Функция 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 перед вызовом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) |