阅读:1259回复:3
设置接口的信息失败,是哪里的原因?
我现在想设置接口传输的参数,以实现数据的传输,可是,我把urb发下去的时候老是出错,错误号是SendAwaitUrb - error -1073741823,我怀疑不是我驱动程序的问题,而是firmware的问题,不知道是不是这样,如果是这样,那么firmware该加入什么样的设置呢?请大侠们指点,谢谢
具体代码如下 interfaces[0].InterfaceDescriptor = pid; interfaces[0].Interface = NULL; interfaces[1].InterfaceDescriptor = NULL; interfaces[1].Interface = NULL; pii = interfaces[0].Interface; KdPrint(("XBCDStartDevice - selecting the configuration")); selurb = USBD_CreateConfigurationRequestEx(pcd, interfaces); pii->Pipes[0].MaximumTransferSize = 0x0008; pii->Pipes[0].MaximumPacketSize = 0x0008; pii->Pipes[0].PipeType = UsbdPipeTypeInterrupt; pii->Pipes[0].Interval = 0x00; KdPrint(("Pipe 1 : MaxTransfer %d, MaxPckSize %d, PipeType %d, Interval %d, Handle %d Address %d", pii->Pipes[1].MaximumTransferSize, pii->Pipes[1].MaximumPacketSize, pii->Pipes[1].PipeType, pii->Pipes[1].Interval, pii->Pipes[1].PipeHandle, pii->Pipes[1].EndpointAddress)); pii->Pipes[1].MaximumTransferSize = 0x0006; pii->Pipes[1].MaximumPacketSize = 0x0008; pii->Pipes[1].PipeType = UsbdPipeTypeInterrupt; pii->Pipes[1].Interval = 0x00; // Submit the set-configuration request status = SendAwaitUrb(pFdo, selurb); if (!NT_SUCCESS(status)) { ExFreePool(urb); ExFreePool(pcd); ExFreePool(selurb); KdPrint(("XBCDStartDevice - Error %X trying to select configuration", status)); KdPrint(("XBCDStartDevice - the last urb send error")); return status; } |
|
沙发#
发布于:2004-10-01 20:54
有哪位大侠知道吗?
|
|
板凳#
发布于:2004-10-01 22:54
pii->Pipes[1].MaximumTransferSize = 0x0006;
pii->Pipes[1].Interval = 0x00; 会不会写错了? 要和固件一致。 |
|
|
地板#
发布于:2004-10-02 09:34
可是我现在就算是不设置,全都按照默认的,即
selurb = USBD_CreateConfigurationRequestEx(pcd, interfaces); //pii->Pipes[0].MaximumTransferSize = 0x0008; //pii->Pipes[0].MaximumPacketSize = 0x0008; //pii->Pipes[0].PipeType = UsbdPipeTypeInterrupt; //pii->Pipes[0].Interval = 0x00; //pii->Pipes[1].MaximumTransferSize = 0x0006; //pii->Pipes[1].MaximumPacketSize = 0x0008; //pii->Pipes[1].PipeType = UsbdPipeTypeInterrupt; //pii->Pipes[1].Interval = 0x00; // Submit the set-configuration request status = SendAwaitUrb(pFdo, selurb); 这样还是错误啊,大哥,这个会是会是什么问题啊? |
|