USB IOCTL IOCTL_USB_GET_ROOT_HUB_NAME에 약간 혼란 스럽습니다. 그것의 대상 장치는 무엇입니까? MSDN WDK 문서가 대상 장치를 명확하게 나타내지 만 WDK에서 제공하는 USBVIEW 샘플은 여전히 혼란 스럽습니다. 내가 혼란스러워하는 이유는 다음과 같습니다 :IOCTL_USB_GET_ROOT_HUB_NAME의 대상 장치가 무엇입니까? (USB 드라이버 관련 IOCTL IRQ)
저는 커널 모드와 USB 드라이버 작성에 익숙하며 Windows 드라이버 키트 http://msdn.microsoft.com/en-us/library/ff558728(v=vs.85).aspx에서 USBVIEW 샘플을 연구 중입니다. MSDN은 USBVIEW 샘플이 수행하는 첫 번째 단계를 설명합니다.
호스트 컨트롤러와 루트 허브를 열거합니다. 호스트 컨트롤러는 0
사용 CreateFile이()에서 X 시작 각 호스트 컨트롤러 심볼릭 링크를 열 수있는 형태 "HCDx"의 상징 링크 이름이 있습니다.
트리보기에서 각 호스트 컨트롤러를 나타내는 노드를 만듭니다. 호스트 컨트롤러 후
열 있다, 나는 에 IOCTL_USB_GET_ROOT_HUB_NAME 요청이 호스트의 일부 컨트롤러
인 루트 허브의 심볼릭 링크 이름을 가져 호스트 컨트롤러를 보내지 만 더블 MSDN http://msdn.microsoft.com/en-us/library/ff537326(v=VS.85).aspx 에 IOCTL_USB_GET_ROOT_HUB_NAME의 사용을 확인 밝히는 :
IOCTL_USB_GET_ROOT_HUB_NAM E는 사용자 모드 I/O 제어 요청입니다. 이 요청은 USB 허브 FDO을 대상으로합니다.
IOCTL_USB_GET_ROOT_HUB_NAME IRP의 대상은 USB 허브 FDO입니다. 그러나 USBVIEW 샘플에서 설명한대로 호스트 콘트롤러 심볼릭 링크를 검색했는데, 이는 디바이스 객체가 호스트 콘트롤러 디바이스 객체라는 것을 의미합니다. IOCTL_USB_GET_ROOT_HUB_NAME IRP를 어떻게 전송할 수 있습니까? USB 허브 FDO를 먼저 조사해야합니까?