阅读:1012回复:0
请问Usb驱动中的厂商请求
驱动是用driver works生成的,然后按照网上的例子添加了如下代码:
NTSTATUS USB_Card_0_4Device::USB_CARD_IOCTL_800_Handler(KIrp I) { NTSTATUS status = STATUS_SUCCESS; //NTSTATUS status = STATUS_INVALID_PARAMETER t << "Entering USB_Card_0_4Device::USB_CARD_IOCTL_800_Handler, " << I << EOL; __try { if(I.IoctlOutputBufferSize() || !I.IoctlBuffer() || (I.IoctlInputBufferSize() != sizeof(UCHAR))) __leave; status to STATUS_PENDING. PURB pUrb = m_Lower.BuildVendorRequest( NULL, 0, 0, (UCHAR)(*(PUCHAR)I.IoctlBuffer()), // request. 1 = LED_ON, 0 = LED_OFF 1 ); status = m_Lower.SubmitUrb(pUrb, NULL, NULL, 5000L); } __finally { I.Information() = 0; I.Status() = status; } return status; } 运行测试程序时,出现了以下错误: >Test_USB_Card_0_4.exe i 0 Test application Test_USB_Card_0_4 starting... Device found, handle open. Issuing Ioctl to device - ERROR: DeviceIoControl returns 57. Exiting... 出错代码57,driverstudio的文档中查不到,ddk文档中也查不到,usb设备在整个ioctl过程中没有收到中断,请问这可能是什么原因呢?谢谢; ) [编辑 - 1/28/05 by iClinux] |
|
|