Training
Module
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
In the following scenario, the device node includes a KMDF bus driver and one or more KMDF function or filter drivers that support a PnP device.
When a user plugs the device into the bus while the system is running, the device's bus driver and the framework perform the following tasks:
The bus driver for the device detects the device and calls WdfChildListAddOrUpdateChildDescriptionAsPresent. (This process is known as "dynamic enumeration.")
The framework calls the bus driver's EvtChildListCreateDevice callback function, so the bus driver can call WdfDeviceCreate to create a framework device object for the physical device (a PDO).
The framework calls the bus driver's EvtDeviceResourcesQuery and EvtDeviceResourceRequirementsQuery callback functions to determine the system hardware resources that the device requires.
For more information about the power-up sequence for a KMDF bus driver, see Power-Up Sequence for a Bus Driver.
Next, the PnP manager determines which additional drivers (function drivers and filter drivers) the device requires. If these drivers are not already loaded, the PnP manager loads them and calls their DriverEntry routines. For each function or filter driver, the following actions occur:
The framework calls each additional driver's EvtDriverDeviceAdd callback function so that the driver can call WdfDeviceCreate to create a framework device object that represents the device for the driver. Function drivers create a functional device object (FDO), and filter drivers create a filter device object (Filter DO).
The framework calls each function and filter driver's EvtDeviceFilterRemoveResourceRequirements callback function and then each driver's EvtDeviceFilterAddResourceRequirements callback function. Immediately before the device is started, the framework calls the EvtDeviceRemoveAddedResources callback function. These three callback functions allow the filter and function drivers to modify the list of hardware resources that the device requires, before the PnP manager assigns resources to the device. For more information, see Hardware Resources for Framework-Based Drivers
The framework ensures that the device has reached its working (D0) power state.
For each function and filter driver that supports the device, the framework does the following, in sequence, one driver at a time, starting with the driver that is lowest in the driver stack:
For more information about the power-up sequence for KMDF function or filter drivers, Power-Up Sequence for a Function or Filter Driver.
Training
Module
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.