설명 된 기술을 사용하여 InstanceSetup 콜백 내에서 미니 파일러 파일 시스템 드라이버 내부에서 USB 저장 장치 일련 번호를 추출하려면 here 유일한 차이점은 내가 수행한다는 것입니다 커널 모드.USB 저장 장치 SerialNumber (USB 장치 설명자에서)
status = IoGetDeviceInterfaces(
&GUID_DEVINTERFACE_DISK,
NULL,
0,
&SymbolicLinkList
);
가능 인터페이스 (예를 들어, 결과)을 통해 열거 할 :
내가 사용
\??\SCSI#Disk&Ven_VMware_&Prod_VMware_Virtual_S&Rev_1.0#4&5fcaafc&0&000#{53f56307 -b6bf-11d0-94f2-00a0c91efb8b}
\??\USBSTOR#Disk&Ven_Kingston&Prod_DataTraveler_C10&Rev_1.00#001D92AD7568F030E3CC 0AFC&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
\??\USBSTOR#Disk&Ven_USB_2.0&Prod_Flash_Disk&Rev_1100#AA04012700007777&0#{53f5630 7-b6bf-11d0-94f2-00a0c91efb8b}
을 나는 그들 중 하나가 IOCTL_STORAGE_GET_DEVICE_NUMBER에 의하여 나의 볼륨의 인터페이스 인 찾고 싶어요.
나는 ZwCreateFile을 시도했다. & ZwDeviceIoControlFile 그러나 ZwCreateFile은 STATUS_OBJECT_NAME_INVALID를 반환한다.
어떻게 이러한 인터페이스에 IOCTLS를 보낼 수 있습니까? 사용자 모드에서는 모든 것이 정상이지만 커널 모드에서는 실패합니다!