Compartir a través de


Función WdfDeviceConfigureWdmIrpDispatchCallback (wdfdevice.h)

[Se aplica a KMDF y UMDF]

El método WdfDeviceConfigureWdmIrpDispatchCallback registra la función de devolución de llamada EvtDeviceWdmIrpDispatch de un controlador.

Sintaxis

NTSTATUS WdfDeviceConfigureWdmIrpDispatchCallback(
  [in]           WDFDEVICE                      Device,
  [in, optional] WDFDRIVER                      Driver,
  [in]           UCHAR                          MajorFunction,
                 PFN_WDFDEVICE_WDM_IRP_DISPATCH EvtDeviceWdmIrpDispatch,
  [in, optional] WDFCONTEXT                     DriverContext
);

Parámetros

[in] Device

Identificador de un objeto de dispositivo de marco.

[in, optional] Driver

Identificador del objeto de controlador del marco de trabajo del controlador que obtuvo el controlador de una llamada anterior a WdfDriverCreate o WdfGetDriver. Este parámetro es opcional.

[in] MajorFunction

Uno de los siguientes códigos de función principales de IRP: IRP_MJ_DEVICE_CONTROL, IRP_MJ_INTERNAL_DEVICE_CONTROL, IRP_MJ_READ, IRP_MJ_WRITE.

EvtDeviceWdmIrpDispatch

Puntero a la función de devolución de llamada EvtDeviceWdmIrpDispatch del controlador.

[in, optional] DriverContext

Puntero sin tipo a la información de contexto definida por el controlador que el marco pasa a la función de devolución de llamada EvtDeviceWdmIrpDispatch del controlador. Este parámetro es opcional y puede ser NULL.

Valor devuelto

Si el método WdfDeviceConfigureWdmIrpDispatchCallback no encuentra ningún error, devuelve STATUS_SUCCESS. Entre los valores devueltos adicionales se incluyen:

Código devuelto Descripción
STATUS_INVALID_PARAMETER
Se proporcionó un valor MajorFunction no válido.
STATUS_INSUFFICIENT_RESOURCES
Memoria insuficiente disponible.

Comentarios

Un controlador llama al método WdfDeviceConfigureWdmIrpDispatchCallback para registrar una función de devolución de llamada EvtDeviceWdmIrpDispatch . A continuación, el marco llama a EvtDeviceWdmIrpDispatch cada vez que recibe un paquete de solicitud de E/S (IRP) que contiene un código de función principal de IRP que coincide con el parámetro MajorFunction de este método.

Normalmente, un controlador llama a WdfDeviceConfigureWdmIrpDispatchCallback desde su función de devolución de llamada EvtDriverDeviceAdd .

Debe llamar a WdfDeviceConfigureWdmIrpDispatchCallback una vez para cada función de MJ para la que el controlador desea registrar una función de devolución de llamada. En otras palabras, se requieren varias llamadas para interceptar varias funciones de MJ.

Un controlador puede llamar al método WdfDeviceConfigureWdmIrpDispatchCallback por estas razones:

  • Para examinar un IRP y asignarlo a una cola específica basada en criterios específicos del dominio, por ejemplo, dirija todas las E/S asociadas a un objeto de archivo a una cola determinada.
  • Para seleccionar una solicitud individual, es necesario llamar a la función de devolución de llamada EvtIoInCallerContext .

Para obtener más información sobre cómo especificar colas para IRP a medida que llegan, consulte Envío de IRP a colas de E/S.

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.11
Versión mínima de UMDF 2.17
Encabezado wdfdevice.h (incluya Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf)

Consulte también

EvtDeviceWdmIrpDispatch

WdfDeviceWdmDispatchIrp

WdfDeviceWdmDispatchIrpToIoQueue