rvmoon
驱动牛犊
驱动牛犊
  • 注册日期2014-11-12
  • 最后登录2014-12-22
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2317回复:1

求教 USB WDF 驱动开发

楼主#
更多 发布于:2014-12-18 16:50
 小弟想通过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

WinDbg调试信息


想请教下:
1. 为什么会有memory access error的错误,这应该如何消除?
2. 为什么会报有指定不存在设备的错误,应该如何搞定?
谢谢!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2015-04-25 10:13
内存已经释放或指针不对
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
游客

返回顶部