Root Enumerated Hid Device For. (Root Enumerated Hid Device for Generic BDA is certainly one instance of an valuable driver which could be at the root.
When you’re new to the world of Windows driver development, nothing seems simple. Take, for example, the job of monitoring system activity or collecting information from kernel mode. You might expect this to be a relatively straight-forward project. And, it is once you understand a few basics about the different types of software-only drivers that you can write.


Two Types Software-only drivers (or just “software drivers” as they are most often called) are drivers that do not interact with device hardware. That is, they (a) do not claim hardware resources such as registers, ports, or interrupts, (b) do not manage the operation of a hardware device, and (c) do not attach to an already existing device stack that has a Function Driver. Software drivers are often referred to as “Kernel Services” because they provide non-hardware related functions, such as system monitoring or data collection. For example, if you need to monitor changes to the Registry or know which executable images are loaded into the system, you almost certainly would want to write a software driver. There are two types of software-only drivers: • Legacy-style software drivers • PnP-aware software drivers Legacy-style software drivers are based on the original, Windows NT, driver model. This is the model that Windows NT used before PnP and power management were introduced. Legacy-style software drivers are the most common, and the most simple, type of software driver.
This type of software driver is appropriate for just about any task for which you would need a software-only driver and is therefore the type of software driver that we at OSR typically recommend people write. Some people mistakenly believe that all Windows drivers need to be PnP and Power Management aware. While this is generally true for drivers that support hardware, it is not true for software-only drivers. Legacy-style software drivers are in no way deprecated and are in fact still 100% supported by Windows.
Garmin Spanner Vs Serial. Think about it: The purpose of supporting PnP is to allow a driver to respond to the dynamic arrival and departure of a device. The purpose of Power Management is to allow a driver to participate in system power state transitions (such as the transition to sleep or hibernate) and to manage a device’s power state.
Therefore, unless you’re writing a software-only driver that needs to be aware of power-state transitions (which would be a rare thing) a legacy-style software driver is exactly the type you want to write. Of course, it is possible to write a software-only driver that is aware of PnP and Power Management events. This type of driver, referred to as a PnP-aware software driver, can be written using either the WDM or WDF models (though the WDF model is certainly most highly recommended). PnP-aware software drivers are “root enumerated”, that is they are started by the PnP Manager, and exist in their own unique branch of the PnP device tree.
Unlike their legacy-style cousins, PnP-aware software drivers work very much like typical hardware drivers: They receive the full complement of PnP and Power requests and are required to handle those requests just like a driver that supports hardware. The PnP and Power Managers don’t make any special concessions for a driver just because it’s root-enumerated and is not associated with any hardware.