저는 드라이버 개발에 새로운 내용이 있습니다. 나는 몇몇 USB 장치 유형을 사용자에게서 숨기기 위하여 Windows7를위한 usb 필터 운전사를 개발하는 것을 시작했다. USB 허브에 드라이버를 연결하고 IRP_MN_QUERY_DEVICE_RELATIONS를 가로 챌 수 있습니다. 내가 PDO를 포인터를 보유해야 구조체의 객체 배열을 이해 DEVICE_RELATIONS struct
이 .as에 대한 포인터를 수신 (QueryDeviceRelations.Type
이 BusRelations입니다) IRP_MN_QUERY_DEVICE_RELATIONS
에 -USB 필터 드라이버에서 IRP_MN_QUERY_DEVICE_RELATIONS를 처리하는 방법
1 : 제가 몇 가지 질문이 있습니다. 그러나 DO_BUS_ENUMERATED_DEVICE
플래그를 테스트 할 때 (msdn : 에서 운영 체제가 각 물리적 장치 개체 (PDO)에이 플래그를 설정하면 드라이버에서이 플래그를 수정하면 안됩니다.) 때때로이 플래그가 켜져 있고 일부 시간에 플래그가 표시됩니다 꺼져 있습니다. 언젠가는 PDO를보고 언젠가 FDO를 보게된다는 것을 의미합니까? 또는이 문제에 대한 또 다른 설명이 있습니까? PDEVICE_OBJECT
이 생겼을 때 PDO인지 FDO인지 어떻게 알 수 있습니까?
2 - 사용자가 USB 장치를 연결하고 필터 드라이버가 IRP_MN_QUERY_DEVICE_RELATIONS
을 처리해야하는 경우 Object 배열의 어떤 장치가 이제 막 장치에 연결되었는지, 어느 장치가 이전에 연결되었는지, 어떤 장치가 연결되었는지를 어떻게 확인할 수 있습니까? 비활성으로 표시 되었습니까?
미리 감사드립니다. 펠릭스.
Felix, 소스 코드를 게시하여 필터 드라이버 구현 방법을 알 수 있습니까? 마티 –