Поделиться через


Функция WdfFdoInitSetFilter (wdffdo.h)

[Относится к KMDF и UMDF]

Метод WdfFdoInitSetFilter определяет вызывающий драйвер как драйвер фильтра верхнего или нижнего уровня для указанного устройства.

Синтаксис

void WdfFdoInitSetFilter(
  [in] PWDFDEVICE_INIT DeviceInit
);

Параметры

[in] DeviceInit

Указатель на структуру WDFDEVICE_INIT , полученную драйвером из функции обратного вызова EvtDriverDeviceAdd .

Возвращаемое значение

None

Remarks

Драйверы фильтров обычно обрабатывают некоторые запросы ввода-вывода, но они просто передают большинство запросов следующему драйверу в стеке драйверов. Если платформа получает запрос на одно из устройств драйвера и если драйвер не создал очередь ввода-вывода для получения запросов, соответствующих типу запроса, то способ обработки запроса зависит от того, вызвал ли драйвер WdfFdoInitSetFilter:

  • Если драйвер вызывает WdfFdoInitSetFilter, платформа драйвера перенаправит запрос следующему драйверу.
  • Если драйвер не вызывает WdfFdoInitSetFilter, платформа завершает запрос со значением состояния STATUS_INVALID_DEVICE_REQUEST.
Если драйвер вызывает WdfFdoInitSetFilter, он не должен вызывать WdfDeviceInitSetIoType, WdfDeviceInitSetPowerInrush или WdfDeviceInitSetPowerPageable , так как платформа игнорирует сведения, предоставляемые этими вызовами. Вместо этого платформа получает эти сведения из следующего ниже объекта устройства в стеке устройств драйвера.

Драйвер должен вызвать WdfFdoInitSetFilter перед вызовомWdfDeviceCreate. Дополнительные сведения о вызове WdfDeviceCreate см. в разделе Создание объекта устройства платформы. Кроме того, драйвер должен вызвать WdfFdoInitSetFilter перед возвратом из функции обратного вызова EvtDriverDeviceAdd .

Дополнительные сведения о WdfFdoInitSetFilter см. в статьях Создание объектов устройств в драйвере фильтра, Создание очередей ввода-вывода и перенаправление запросов ввода-вывода.

Примеры

В следующем примере кода вызывающий драйвер идентифицируется как драйвер фильтра для указанного устройства.

WdfFdoInitSetFilter(DeviceInit);

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdffdo.h (включая Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Правила соответствия DDI DeviceInitAPI(kmdf), DriverCreate(kmdf), DrvAckIoStop(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

См. также раздел

WDFDEVICE_INIT