WdfFdoInitSetFilter 函数 (wdffdo.h)

[适用于 KMDF 和 UMDF]

WdfFdoInitSetFilter 方法将调用驱动程序标识为指定设备的上级或较低级别的筛选器驱动程序

语法

void WdfFdoInitSetFilter(
  [in] PWDFDEVICE_INIT DeviceInit
);

参数

[in] DeviceInit

指向驱动程序从其 EvtDriverDeviceAdd 回调函数获取的WDFDEVICE_INIT结构的指针。

返回值

备注

筛选器驱动程序通常处理某些 I/O 请求,但它们只是将大多数请求传递到驱动程序堆栈中的下一个驱动程序。 如果框架收到针对某个驱动程序设备的请求,并且驱动程序尚未创建 I/O 队列来接收与请求类型匹配的请求,则框架处理请求的方式取决于驱动程序是否调用 了 WdfFdoInitSetFilter

  • 如果驱动程序调用 WdfFdoInitSetFilter,驱动程序框架会将请求转发到下一个驱动程序。
  • 如果驱动程序不调用 WdfFdoInitSetFilter,框架将完成状态值为 STATUS_INVALID_DEVICE_REQUEST 的请求。
如果驱动程序调用 WdfFdoInitSetFilter,则它不应调用 WdfDeviceInitSetIoTypeWdfDeviceInitSetPowerInrushWdfDeviceInitSetPowerPageable ,因为框架会忽略这些调用提供的信息。 相反,框架会从驱动程序的设备 堆栈中的下一个较低设备对象获取此信息。

驱动程序必须在调用 WdfDeviceCreate 之前调用 WdfFdoInitSetFilter。 有关调用 WdfDeviceCreate 的详细信息,请参阅 创建框架设备对象。 此外,驱动程序必须在从其 EvtDriverDeviceAdd 回调函数返回之前调用 WdfFdoInitSetFilter

有关 WdfFdoInitSetFilter 的详细信息,请参阅 在筛选器驱动程序中创建设备对象创建 I/O 队列转发 I/O 请求

示例

下面的代码示例将调用驱动程序标识为指定设备的筛选器驱动程序。

WdfFdoInitSetFilter(DeviceInit);

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdffdo.h (包括 Wdf.h)
Library Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI 符合性规则 DeviceInitAPI (kmdf) DriverCreate (kmdf) DrvAckIoStop (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、KmdfIrqlExplicit (kmdf)

另请参阅

WDFDEVICE_INIT