deviceobject->flag &= ~DO_DEVICE_INITIALIZING;
当设置DO_DEVICE_INITIALIZING标志时,I/O管理器将拒绝所有打开该设备句柄的请求以及向该设备对象上附着其他设备对象。
故驱动程序完成初始化后,须清除该标志。
在IoCreateDevice创建设备完成后,默认devieobject->flags==0xc0,是包含DO_DEVICE_INITIALIZING字段的,如果该设备是在DriverEntry例程中创建的,则DriverEntry例程结束后,I/O管理器会自动遍历在DriverEntry中的设备列表,并清除DO_DEVICE_INITIALIZING标志。但是WDM驱动中,设备对象是在DriverEntry返回后才创建的,所以I/O管理器不会自动清除该标志,驱动程序需要自己清除。
DO_DEVICE_INITIALIZING 创建设备 iocreatedevice windows内核开发
最新推荐文章于 2023-11-20 12:07:14 发布