WDM drivers are layered in a stack and communicate with each other via I/O request packets (IRPs).
Microsoft will provide bus drivers as part of the operating system,[1] such as PCI, PnPISA, SCSI, USB and FireWire.
At run time these pointers are used to locate a driver's dispatch routine and member functions.
The bus driver object is at the bottom of the driver stack, and interacts with the hardware abstraction layer, which is part of the Windows operating system kernel and allows Windows operating systems to run on a variety of processors, different memory management unit architectures, and a variety of computer systems with different I/O bus architectures.
[5] The execution of an IRP is finished when any of the driver objects in the stack returns the request back to the I/O manager, with the result and a status flag.
[6] The WDM framework was developed by Microsoft to simplify the communication between the operating system and drivers inside the kernel.
In Windows operating systems, drivers are implemented as Dynamic Link Libraries .DLL or .SYS files.
WDM compliant drivers must follow rules of design, initialisation, plug-and-play, power management and memory allocation.
This means that drivers in the WDM stack may contain residual functionality, which is not documented in specifications.
Migrating a computer to a higher version of a Windows operating system therefore requires that new device drivers are installed for all hardware components.
Finding up to date device drivers and installing them for Windows 10 has introduced complications into the migration process.
64-bit device drivers must be signed by Microsoft, because they run in kernel mode and have unrestricted access to the computer hardware.
For operating system versions before Windows 10 not all files necessary for the driver installation were included in the package, as this requirement was not consistently enforced.
The absence of a user interface does not mean that the installation of the device driver is not successful.
Network device drivers for Windows XP use NDIS 5.x and may work with subsequent Windows operating systems, but for performance reasons network device drivers should implement NDIS 6.0 or higher.
The Device Manager is a Control Panel applet in Microsoft Windows operating systems.