[Applies to KMDF and UMDF]
The WdfFdoInitSetFilter method identifies the calling driver as an upper-level or lower-level filter driver, for a specified device.
void WdfFdoInitSetFilter( PWDFDEVICE_INIT DeviceInit );
Filter drivers typically process some I/O requests, but they simply pass most requests to the next driver in the driver stack. If the framework receives a request for one of your driver's devices, and if the driver has not created an I/O queue to receive requests that match the request type, the way the framework processes the request depends on whether the driver has called WdfFdoInitSetFilter:
If a driver calls WdfFdoInitSetFilter, the driver framework forwards the request to the next driver.
If a driver does not call WdfFdoInitSetFilter, the framework completes the request with a status value of STATUS_INVALID_DEVICE_REQUEST.
The driver must call WdfFdoInitSetFilter before calling WdfDeviceCreate. For more information about calling WdfDeviceCreate, see Creating a Framework Device Object. In addition, the driver must call WdfFdoInitSetFilter before returning from its EvtDriverDeviceAdd callback function.
The following code example identifies the calling driver as a filter driver for the specified device.
|Minimum KMDF version||1.0|
|Minimum UMDF version||2.0|
|Header||wdffdo.h (include Wdf.h)|
|Library||Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)|
|DDI compliance rules||DeviceInitAPI, DriverCreate, DrvAckIoStop, KmdfIrql, KmdfIrql2|