首页 > 技术文章 > DO_DEVICE_INITIALIZING

suanguade 2017-03-25 15:56 原文

这个东西的位置在DEVICE_OBJECT的Flags字段中,

本来这个Flags大多的情况下都是在设置IO方式,如DO_BUFFERED_IO,

但特殊的位也可能需要在这里设置。

用处是防止当自己的设备对象初始化完成之前,别的模块来发送信息给自己的模块的。

 

如果程序仅在DriverEntry中创建DeviceObject的话,那么当前位将由IO管理器清除,

如果当前DeviceObject不是在DriverEntry中创建的,那么就要由程序员自己来清除。

 

主要用于PNP设备,以及过滤设备一类设备的安全创建中。

推荐阅读