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 |
---|---|
|
Se proporcionó un valor MajorFunction no válido. |
|
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) |