设备节点状态标志

设备节点状态标志描述设备的状态。

最重要的标志是:

DNF_MADEUP (0x00000001)
设备已创建并归 PnP 管理器所有。 它不是由总线驱动程序创建的。

DNF_DUPLICATE (0x00000002)
设备节点是另一个枚举设备节点的副本。

DNF_HAL_NODE (0x00000004)
设备节点是由硬件抽象层 (HAL) 创建的根节点。

DNF_REENUMERATE (0x00000008)
需要重新枚举设备。

DNF_ENUMERATED (0x00000010)
设备的 PDO 由其父级公开。

DNF_IDS_QUERIED (0x00000020)
操作系统应向设备驱动程序发送IRP_MN_QUERY_ID请求。

DNF_HAS_BOOT_CONFIG (0x00000040)
设备具有 BIOS 分配的资源。 设备被视为伪启动设备,需要参与重新平衡。

DNF_BOOT_CONFIG_RESERVED (0x00000080)
设备的启动资源是保留的。

DNF_NO_RESOURCE_REQUIRED (0x00000100)
设备不需要资源。

DNF_RESOURCE_REQUIREMENTS_NEED_FILTERED (0x00000200)
设备的资源要求列表是筛选列表。

DNF_RESOURCE_REQUIREMENTS_CHANGED (0x00000400)
设备的资源要求列表已更改。

DNF_NON_STOPPED_REBALANCE (0x00000800)
可以使用新资源重启设备,而不会停止。

DNF_LEGACY_DRIVER (0x00001000)
设备的控制驱动程序是非 PnP 驱动程序。

DNF_HAS_PROBLEM (0x00002000)
设备有问题,将被移除。

DNF_HAS_PRIVATE_PROBLEM (0x00004000)
设备报告PNP_DEVICE_FAILED而不报告PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED。

DNF_HARDWARE_VERIFICATION (0x00008000)
设备节点具有硬件验证。

DNF_DEVICE_GONE (0x00010000)
设备的 PDO 不再在IRP_QUERY_RELATIONS请求中返回。

DNF_LEGACY_RESOURCE_DEVICENODE (0x00020000)
为旧资源分配创建了设备节点。

DNF_NEEDS_REBALANCE (0x00040000)
设备节点已触发重新平衡。

DNF_LOCKED_FOR_EJECT (0x00080000)
设备正在弹出或与正在弹出的设备相关。

DNF_DRIVER_BLOCKED (0x00100000)
已阻止设备节点的一个或多个驱动程序加载。

DNF_CHILD_WITH_INVALID_ID (0x00200000)
设备节点的一个或多个子级具有无效的 ID。

DNF_ASYNC_START_NOT_SUPPORTED (0x00400000)
设备不支持异步启动。

DNF_ASYNC_ENUMERATION_NOT_SUPPORTED (0x00800000)
设备不支持异步枚举。

DNF_LOCKED_FOR_REBALANCE (0x01000000)
设备已锁定以重新平衡。

DNF_UNINSTALLED (0x02000000)
设备正在进行IRP_MN_QUERY_REMOVE_DEVICE请求。

DNF_NO_LOWER_DEVICE_FILTERS (0x04000000)
设备没有较低设备筛选器类型的注册表项。

DNF_NO_LOWER_CLASS_FILTERS (0x08000000)
设备没有较低类筛选器类型的注册表项。

DNF_NO_SERVICE (0x10000000)
设备的服务 没有注册表项。

DNF_NO_UPPER_DEVICE_FILTERS (0x20000000)
设备没有上层设备筛选器类型的注册表项。

DNF_NO_UPPER_CLASS_FILTERS (0x40000000)
设备没有上类筛选器类型的注册表项。

DNF_WAITING_FOR_FDO (0x80000000)
设备的枚举正在等待,直到驱动程序附加其 FDO。