Creating Device Objects in a Filter Driver
Each filter driver creates a framework device object for each of its supported devices that exists on the system. Because these device objects are created by filter drivers, they are called filter device objects (Filter DOs). Each Filter DO is a filter driver's representation of a device.
Filter drivers, like function drivers, provide an EvtDriverDeviceAdd callback function that receives a handle to a WDFDEVICE_INIT structure. The driver can call the same set of framework device object initialization methods that function drivers call to store information in the WDFDEVICE_INIT structure. Like function drivers, filter drivers can also call framework FDO initialization methods.
A small number of filter drivers enumerate child software-only devices. Such filter drivers can call framework PDO initialization methods.
Filter drivers must call WdfFdoInitSetFilter.
The final step in creating a device object is to call WdfDeviceCreate.