grayguy
驱动牛犊
驱动牛犊
  • 注册日期2009-04-16
  • 最后登录2010-01-15
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望41点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1768回复:0

WDM驱动AddDevice例程中指定设备名的问题

楼主#
更多 发布于:2009-11-22 22:12
WDM模式的驱动程序,创建设备指定设备名有两种方式,一个是调用IoRegisterDeviceInterface,一个是在IoCreateDevice函数中指定设备名。我按照《windows驱动程序开发详解》中的HelloWDM的方式创建的驱动,编译可以通过,但是无法安装成功,安装后有个黄色叹号,并提示reboot。我知道开发中鼓励使用第一种方式,但是第二种方式为什么会出现这种问题呢?
代码如下:

status = IoCreateDevice(
        DriverObject,
        sizeof(DEVICE_EXTENSION),
        &(UNICODE_STRING)devname,
        FILE_DEVICE_DISK,
        0,
        FALSE,
        &fdo);
    if( !NT_SUCCESS(status))
    {
        return status;
    }
    PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION)fdo->DeviceExtension;
    pdx->devName=devName;
    KeInitializeEvent(&pdx->StoppingEvent,NotificationEvent,FALSE);
    pdx->bStopping=FALSE;
    pdx->NextStackDevice = IoAttachDeviceToDeviceStack(fdo, PhysicalDeviceObject);
游客

返回顶部