|
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);
|
|