阅读:1768回复:0
WDM驱动AddDevice例程中指定设备名的问题
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); |
|