PSERVICE_CALLBACK_ROUTINE función de devolución de llamada (kbdmou.h)
Un controlador de función llama a la devolución de llamada del servicio de clase en su rutina de finalización de distribución de ISR. La devolución de llamada del servicio de clase transfiere los datos de entrada del búfer de datos de entrada de un dispositivo a la cola de datos de clase.
Sintaxis
PSERVICE_CALLBACK_ROUTINE PserviceCallbackRoutine;
void PserviceCallbackRoutine(
[in] PVOID NormalContext,
[in] PVOID SystemArgument1,
[in] PVOID SystemArgument2,
[in, out] PVOID SystemArgument3
)
{...}
Parámetros
[in] NormalContext
Puntero al objeto de dispositivo de clase.
[in] SystemArgument1
Puntero al primer paquete de datos de entrada de teclado en el búfer de datos de entrada del dispositivo de puerto.
[in] SystemArgument2
Puntero al paquete de datos de entrada del teclado que sigue inmediatamente el último paquete de datos en el búfer de datos de entrada del dispositivo de puerto.
[in, out] SystemArgument3
Puntero al número de paquetes de datos de entrada de teclado transferidos por la rutina.
Valor devuelto
None
Observaciones
Devolución de llamada del servicio de clase keyboard
Esta es la definición de la rutina de devolución de llamada del servicio de clase de teclado.
Kbdclass usa una solicitud de IOCTL_INTERNAL_KEYBOARD_CONNECT para conectar su devolución de llamada de servicio de clase a un dispositivo de teclado. En esta llamada, el controlador establece su implementación en una estructura de CONNECT_DATA .
/*
DeviceObject [in]
Pointer to the class device object.
InputDataStart [in]
Pointer to the first keyboard input data packet in the input data buffer of the port device.
InputDataEnd [in]
Pointer to the keyboard input data packet that immediately follows the last data packet in the input data buffer of the port device.
InputDataConsumed [in, out]
Pointer to the number of keyboard input data packets that are transferred by the routine.
*/
VOID KeyboardClassServiceCallback(
_In_ PDEVICE_OBJECT DeviceObject,
_In_ PKEYBOARD_INPUT_DATA InputDataStart,
_In_ PKEYBOARD_INPUT_DATA InputDataEnd,
_Inout_ PULONG InputDataConsumed
);
KeyboardClassServiceCallback transfiere los datos de entrada del búfer de entrada del dispositivo a la cola de datos de clase. El ISR llama a esta rutina de finalización de distribución del controlador de función.
KeyboardClassServiceCallback puede complementarse mediante una devolución de llamada de servicio de filtro proporcionada por un controlador de filtro de teclado de nivel superior. Una devolución de llamada del servicio de filtro filtra los datos de teclado que se transfieren a la cola de datos de clase. Por ejemplo, la devolución de llamada del servicio de filtro puede eliminar, transformar o insertar datos. Kbfiltr, el controlador de filtro de ejemplo de la galería de código, incluye KbFilter_ServiceCallback, que es una plantilla para una devolución de llamada del servicio de filtro de teclado.
Devolución de llamada del servicio de clase mouse
Esta es la rutina MouseClassServiceCallback es la rutina de devolución de llamada de servicio de clase proporcionada por Mouclass. El controlador usa una solicitud de IOCTL_INTERNAL_MOUSE_CONNECT para conectar su devolución de llamada de servicio de clase a un dispositivo del mouse. En esta llamada, el controlador establece su implementación en una estructura de CONNECT_DATA .
/*
DeviceObject [in]
Pointer to the class device object.
InputDataStart [in]
Pointer to the first mouse input data packet in the input buffer of the port device.
InputDataEnd [in]
Pointer to the mouse input data packet that immediately follows the last data packet in the input data buffer of the port device.
InputDataConsumed [in, out]
Pointer to the number of mouse input data packets that are transferred by the routine.
*/
VOID MouseClassServiceCallback(
_In_ PDEVICE_OBJECT DeviceObject,
_In_ PMOUSE_INPUT_DATA InputDataStart,
_In_ PMOUSE_INPUT_DATA InputDataEnd,
_Inout_ PULONG InputDataConsumed
);
);
MouseClassServiceCallback transfiere datos de entrada desde el búfer de entrada del dispositivo a la cola de datos de clase. El ISR llama a esta rutina de finalización de distribución del controlador de función.
MouseClassServiceCallback puede complementarse mediante una devolución de llamada de servicio de filtro proporcionada por un controlador de filtro de mouse de nivel superior. Una devolución de llamada del servicio de filtro puede filtrar los datos del mouse que se transfieren a la cola de datos de clase. Por ejemplo, la devolución de llamada del servicio de filtro puede eliminar, transformar o insertar datos. Moufiltr, el controlador de filtro de ejemplo del WDK, incluye MouFilter_ServiceCallback, que es una plantilla para una devolución de llamada del servicio de filtro.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | kbdmou.h |
IRQL | DISPATCH_LEVEL |