描述:
先形成一个读取device descriptor的urb:
UsbBuildGetDescriptorRequest(urb,
(USHORT) sizeof (struct _URB_CONTROL_DESCRIPTOR_REQUEST),
USB_DEVICE_DESCRIPTOR_TYPE,
0,
0,
deviceDescriptor,
NULL,
siz,
NULL);
然后送往底层驱动处理时出现c0000010(STATUS_INVALID_DEVICE_REQUEST)的错误.
irp = IoBuildDeviceIoControlRequest(IOCTL_INTERNAL_USB_SUBMIT_URB,.....);
nextStack = IoGetNextIrpStackLocation(irp);
nextStack->Parameters.Others.Argument1 = urb;
KdPrint(("Ready to send Urb to lower device\n"));
IoSetCompletionRoutine(irp, (PIO_COMPLETION_ROUTINE) OnRequestComplete,(PVOID) &event, TRUE, TRUE, TRUE);
ntStatus = IoCallDriver(deviceExtension->TopOfStackDeviceObject, irp);
问题就在那个IoCallDriver那里出错,用softice查到ntStatus值为:
c0000010(STATUS_INVALID_DEVICE_REQUEST)
请问这是什么原因???
小弟我先行谢过了.
另:这个驱动只是一个程序框架,也没有任何实际的硬件连接到计算机,跟这个无关吧???