阅读:1359回复:3
HELP:控制传输的问题?
NTSTATUS MyUsbDrv1Device::MYUSBDRV1_IOCTL_GETDECR_Handler(KIrp I)
{ NTSTATUS status = STATUS_SUCCESS; PUSB_DEVICE_DESCRIPTOR pdeviceDescriptor=(PUSB_DEVICE_DESCRIPTOR)ExAllocatePool(NonPagedPool,sizeof(USB_DEVICE_DESCRIPTOR)); I.Information()=18; m_Lower.GetDeviceDescriptor(pdeviceDescriptor); return status; } 我想通过上述代码得到USB的设备描述符,用softice调试,在结构变量pdeviceDescriptor里已经显示出接收到的正确的数据,可是无法返回到应用程序的bufOutput缓冲区中。看帮助里说,在结束例程前,先在information里设置返回的字节数,我代码里这样设置行吗?还会有什么问题呢?望大侠能多多赐教! |
|
沙发#
发布于:2002-10-14 09:57
望用过driverworks编程的高手能给予帮助,我想这是一个很简单的问题,可就是不知道卡在哪了。
|
|
板凳#
发布于:2002-10-14 19:46
你要
|
|
地板#
发布于:2002-10-15 00:06
多谢bbear(加分),我看了下例程,添加了两行代码,顺利收到了设备描述符,如下:
ULONG DevDescSize=sizeof(USB_DEVICE_DESCRIPTOR); PUSB_DEVICE_DESCRIPTOR pdevDesc =(PUSB_DEVICE_DESCRIPTOR) ExAllocatePool(NonPagedPool,DevDescSize); m_Lower.GetDeviceDescriptor(pdevDesc); I.IoctlBuffer()=pdevDesc; I.Information() = DevDescSize; status=I.Status(); return status; |
|