Debugging Tools for Windows

Device Node Status Flags

The Device Node Status flags describe the status of a device.

The most important flags are:

DNF_PROCESSED (0x00000001)
Indicates that the registry instance key of the device node was created.
DNF_STARTED (0x00000002)
Indicates that the device was started (that is, its IRP_MN_START_DEVICE request was processed successfully).
DNF_START_FAILED (0x00000004)
Indicates that the device failed the start request. However, the I/O Manager supplied the device with resources and attempted to start it.
DNF_ENUMERATED (0x00000008)
Indicates that the PDO for this device was exposed by its parent.
DNF_DELETED (0x00000010)
Indicates that the device was removed.
DNF_MADEUP (0x00000020)
Indicates that the PDO was created and is owned by the PnP Manager (as opposed to being created by a bus driver).
DNF_START_REQUEST_PENDING (0x00000040)
Indicates that the device is in the process of being started.
DNF_NO_RESOURCE_REQUIRED (0x00000080)
Indicates that the device does not require resources.
DNF_INSUFFICIENT_RESOURCES (0x00000100)
Indicates that the device was not started because there were no resources available. Use the procedures in described in the following section to identify the resource conflict.
DNF_RESOURCE_ASSIGNED (0x000200)
Indicates that the resources are assigned by the PnP Manager.
DNF_RESOURCE_REPORTED (0x00000400)
Indicates that a legacy driver reported its resources to the PnP Manager, rather than letting the PnP Manager assign the resources.
DNF_ADDED ( 0x00001000)
Indicates that the device has been added to the system. (The PnP Manager called the AddDevice routine for the device's function and filter driver, if any, and these routines completed successfully.)
DNF_ADD_FAILED (0x00002000)
Indicates that the Add routine failed. Reasons for the failure may include: a driver's AddDevice routine returned an error, there is no service listed for the device in the registry, there is more than one service listed, or the controlling driver could not be loaded.
DNF_LEGACY_DRIVER (0x00004000)
Indicates that the device's controlling driver is a non-PnP driver.
DNF_STOPPED( 0x00008000)
Indicates that the device is currently stopped for reconfiguration of its resources.
DNF_WILL_BE_REMOVED (0x00010000)
Corresponds to the user-mode CM_PROB_WILL_BE_REMOVED problem value and the DN_WILL_BE_REMOVED status flag. Set by user mode only, after the user uninstalled a device ("Remove" in Device Manager).
DNF_NEED_TO_ENUM (0x00020000)
Corresponds to the user-mode DN_NEED_TO_ENUM status flag. Set only by user mode.
DNF_NOT_CONFIGURED(0x00040000)
Corresponds to the user-mode CM_PROB_NOT_CONFIGURED problem value. Set for a device that was enumerated, but needs to be installed. The device was not previously installed.
DNF_REINSTALL (0x00080000)
Corresponds to the user-mode CM_PROB_NOT_REINSTALL problem value. Set for a device that was enumerated, but needs to be installed. The device was previously installed.
DNF_DISABLED(0x00200000)
Corresponds to the user-mode CM_PROB_DISABLED problem value.
DNF_RESTART_OK (0x00400000)
Set when user mode initiates a remove; will be followed by a re-enumeration to bring it back on line.
DNF_NEED_RESTART (0x00800000)
Set when user mode informs the kernel that a reboot is required for this device.
DNF_VISITED (0x01000000)
A temporary flag while walking the device tree. Currently used by the device ejection and removal code.
DNF_ASSIGNING_RESOURCES(0x02000000)
Indicates that device resources are being assigned, but the assignment has not been completed.
DNF_BEING_ENUMERATED(0x04000000)
Indicates that the device is being enumerated.
DNF_NEED_ENUMERATION_ONLY(0x08000000)
Indicates that the reported detected devices are considered started.
DNF_LOCKED(0x10000000)
A temporary flag that is used while device nodes are locked for removal.
DNF_HAS_BOOT_CONFIG(0x20000000)
Indicates that the device has resources assigned by the BIOS. This is not truly started (it is considered "pseudo-started").
DNF_BOOT_CONFIG_RESERVED (0x40000000)
Indicates that the BOOT resources of the device are reserved.

Build machine: CAPEBUILD