Creating Device Objects in a Function Driver

Each function driver creates a framework device object for each of its supported devices that exists on the system. Because these device objects are created by function drivers, they are called functional device objects (FDOs). Each FDO is a function driver's representation of a device.

A function driver must create a framework device object each time the framework calls the driver's EvtDriverDeviceAdd callback function. The framework calls this callback function to inform the driver that one of its supported devices exists on the system.

The driver's EvtDriverDeviceAdd callback function receives a pointer to a WDFDEVICE_INIT structure. The driver can call a set of framework device object initialization methods, which store information in the WDFDEVICE_INIT structure. Additionally, function drivers can call framework FDO initialization methods.

Creating a framework device object in a function driver typically includes the following steps: