Función WdfDeviceConfigureWdmIrpDispatchCallback (wdfdevice.h)
[Se aplica a KMDF y UMDF]
El método WdfDeviceConfigureWdmIrpDispatchCallback registra la función de devolución de llamada de un controlador EvtDeviceWdmIrpDispatch.
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 al evtDeviceWdmIrpDispatch del controlador función de devolución de llamada.
[in, optional] DriverContext
Puntero sin tipo a la información de contexto definida por el controlador que el marco pasa a la EvtDeviceWdmIrpDispatch del controlador función de devolución de llamada. 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 |
---|---|
|
Se proporcionó un valor de majorFunction no válido. |
|
Memoria insuficiente disponible. |
Observaciones
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 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 | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.11 |
versión mínima de UMDF | 2.17 |
encabezado de | wdfdevice.h (incluya Wdf.h) |
biblioteca de | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
irQL | <= DISPATCH_LEVEL |
reglas de cumplimiento de DDI | DriverCreate(kmdf) |