Compartir a través de


Función WdfFdoInitSetFilter (wdffdo.h)

[Se aplica a KMDF y UMDF]

El método WdfFdoInitSetFilter identifica el controlador que realiza la llamada como un controlador de filtro de nivel superior o inferior para un dispositivo especificado.

Sintaxis

void WdfFdoInitSetFilter(
  [in] PWDFDEVICE_INIT DeviceInit
);

Parámetros

[in] DeviceInit

Puntero a una estructura de WDFDEVICE_INIT que el controlador obtuvo de su función de devolución de llamada EvtDriverDeviceAdd .

Valor devuelto

None

Observaciones

Los controladores de filtro suelen procesar algunas solicitudes de E/S, pero simplemente pasan la mayoría de las solicitudes al siguiente controlador de la pila de controladores. Si el marco recibe una solicitud para uno de los dispositivos del controlador y si el controlador no ha creado una cola de E/S para recibir solicitudes que coincidan con el tipo de solicitud, la forma en que el marco procesa la solicitud depende de si el controlador ha llamado WdfFdoInitSetFilter:

  • Si un controlador llama a WdfFdoInitSetFilter, el marco de trabajo del controlador reenvía la solicitud al siguiente controlador.
  • Si un controlador no llama a WdfFdoInitSetFilter, el marco completa la solicitud con un valor de estado de STATUS_INVALID_DEVICE_REQUEST.
Si un controlador llama a WdfFdoInitSetFilter, no debe llamar a WdfDeviceInitSetIoType, WdfDeviceInitSetPowerInrush o WdfDeviceInitSetPowerPageable porque el marco omite la información proporcionada por estas llamadas. En su lugar, el marco obtiene esta información del objeto de dispositivo siguiente inferior en la pila de dispositivos del controlador.

El controlador debe llamar a WdfFdoInitSetFilter antes de llamar a WdfDeviceCreate. Para obtener más información sobre cómo llamar a WdfDeviceCreate, vea Crear un objeto de dispositivo framework. Además, el controlador debe llamar a WdfFdoInitSetFilter antes de volver de su función de devolución de llamada EvtDriverDeviceAdd .

Para obtener más información sobre WdfFdoInitSetFilter, vea Crear objetos de dispositivo en un controlador de filtro, Crear colas de E/ S y reenviar solicitudes de E/S.

Ejemplos

En el ejemplo de código siguiente se identifica el controlador que llama como controlador de filtro para el dispositivo especificado.

WdfFdoInitSetFilter(DeviceInit);

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdffdo.h (incluya Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI DeviceInitAPI(kmdf), DriverCreate(kmdf), DrvAckIoStop(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte también

WDFDEVICE_INIT