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

Consulte también

CONNECT_DATA

KEYBOARD_INPUT_DATA

MOUSE_INPUT_DATA