自作アプリ+USBSnpys
HANDLE hSniffer = CreateFile(L"\\\\.\\USBSnpys", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, // no SECURITY_ATTRIBUTES structure OPEN_EXISTING, // No special create flags 0, // No special attributes NULL);
は正常終了.
DeviceIoControl(hSniffer, USBSNOOP_GET_SNOOPED_DEVS, NULL, 0, &SnoopedDevices, sizeof(SnoopedDevices), &dwBytesReturned, NULL);
これも正常終了.
DeviceIoControl(hSniffer, USBSNOOP_ENABLE_LOGGING, &EnableLogging, sizeof(EnableLogging), &EnableLogging, sizeof(EnableLogging), &dwBytesReturned, NULL);
これが,GetLastError()によると87のエラー.USBSnpysのコードを読むと,return STATUS_INVALID_PARAMETERの記述が多々ある.まぁドライバの動きは正常だし,エラーもちゃんと見えている.問題なのは,ドライバへのアクセス方法.
試行錯誤の結果.SnoopyProでSniffしてる時は,エラーなしでいけた.結論から行くと,DeviceIoControl(,USBSNOOP_GET_SNOOPED_DEVS,,,)で得た,SnoopedDevicesのEntryにデバイスが入っていても,uCount==0だとだめ.何か処理を飛ばしてるに違いない.
それは,USBデバイスの再接続,もしくは接続であった.接続したときにUSBSnpysがDetectしてるに違いない.