阅读:2317回复:1
求教 USB WDF 驱动开发
小弟想通过control endpoint往USB设备发送控制命令。
所用的WDF的基本框架是基于微软官网上下载的Usbsamp Generic USB Driver,具体是在其中的 VOID UsbSamp_EvtIoDeviceControl( _In_ WDFQUEUE Queue, _In_ WDFREQUEST Request, _In_ size_t OutputBufferLength, _In_ size_t InputBufferLength, _In_ ULONG IoControlCode ) { ...... WDFDEVICE device; NTSTATUS status; PDEVICE_CONTEXT pDevContext; device = WdfIoQueueGetDevice(Queue); pDevContext = GetDeviceContext(device); ..... status = WdfUsbTargetDeviceCreate( device, WDF_NO_OBJECT_ATTRIBUTES, &UsbDevice ); if (!NT_SUCCESS(status)) { UsbSamp_DbgPrint(1, ("WdfUsbTargetDeviceCreate failed %x\n", status)); } ....... ....... ...... } 在执行WdfUsbTargetDeviceCreate函数之后,status变成-1073741810,网上说是指定不存在的设备,用虚拟机单步调试看到device的内容如下: 描述:WinDbg调试信息 图片:J.jpg 想请教下: 1. 为什么会有memory access error的错误,这应该如何消除? 2. 为什么会报有指定不存在设备的错误,应该如何搞定? 谢谢! |
|
沙发#
发布于:2015-04-25 10:13
内存已经释放或指针不对
|
|
|