阅读:2250回复:6
高分请教ntStatus为c0000010(STATUS_INVALID_DEVICE_REQUEST)的原因?
先形成一个读取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) 请问这是什么原因??? 小弟我先行谢过了. 另:这个驱动只是一个程序框架,也没有任何实际的硬件连接到计算机,跟这个无关吧??? |
|
沙发#
发布于:2005-01-06 08:12
up
|
|
板凳#
发布于:2005-01-06 08:21
没有任何实际的硬件连接是不行的
|
|
|
地板#
发布于:2005-01-06 09:49
楼主形成的文件框架是向导生成的。我也没硬件实体,形成筐架就出问题拉,我用的是XP系统,driverstudio 3.1,这个东东和系统有关吗?那请问该怎么办呢,
|
|
地下室#
发布于:2005-01-07 07:59
to snowStart:
请问我想开发打印机的USB驱动程序, 那开发的时候要用什么实际硬件连接到机器做开发呢? 要把那USB打印机连接到计算机吗?? 还是需要什么别的开发板或者什么的来做模拟开发?? [编辑 - 1/7/05 by rogerwoo] |
|
5楼#
发布于:2005-01-07 08:38
to snowStart: 当然要连接USB打印机了, 如果是2000/xp/2003, 系统本身自带了USBprint.sys,可以满足打印要求 如果安装了相应的打印机驱动,系统会自动枚举并添加打印端口 |
|
|
6楼#
发布于:2005-01-07 08:58
[quote]to snowStart: 当然要连接USB打印机了, 如果是2000/xp/2003, 系统本身自带了USBprint.sys,可以满足打印要求 如果安装了相应的打印机驱动,系统会自动枚举并添加打印端口 [/quote] 不如再说得清晰点,其实我要做一个USB打印机的GDI驱动程序, 既然已经有了USBprint.sys,岂不是打印机驱动程序不需要做了? 那我需要做点什么? 怎么入手啊??? 高人请多多指点! |
|