Share via


PSERVICE_CALLBACK_ROUTINE função de retorno de chamada (kbdmou.h)

Um driver de função chama o retorno de chamada do serviço de classe em sua rotina de conclusão de expedição do ISR. O retorno de chamada do serviço de classe transfere dados de entrada do buffer de dados de entrada de um dispositivo para a fila de dados de classe.

Sintaxe

PSERVICE_CALLBACK_ROUTINE PserviceCallbackRoutine;

void PserviceCallbackRoutine(
  [in]      PVOID NormalContext,
  [in]      PVOID SystemArgument1,
  [in]      PVOID SystemArgument2,
  [in, out] PVOID SystemArgument3
)
{...}

Parâmetros

[in] NormalContext

Ponteiro para o objeto de dispositivo de classe.

[in] SystemArgument1

Ponteiro para o primeiro pacote de dados de entrada de teclado no buffer de dados de entrada do dispositivo de porta.

[in] SystemArgument2

Ponteiro para o pacote de dados de entrada do teclado que segue imediatamente o último pacote de dados no buffer de dados de entrada do dispositivo de porta.

[in, out] SystemArgument3

Ponteiro para o número de pacotes de dados de entrada de teclado transferidos pela rotina.

Retornar valor

Nenhum

Comentários

Retorno de chamada do Serviço de Classe de Teclado

Aqui está a definição da rotina de retorno de chamada do serviço de classe de teclado.

O Kbdclass usa uma solicitação IOCTL_INTERNAL_KEYBOARD_CONNECT para conectar seu retorno de chamada de serviço de classe a um dispositivo de teclado. Nessa chamada, o driver define sua implementação em uma estrutura 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 transfere dados de entrada do buffer de entrada do dispositivo para a fila de dados de classe. Essa rotina é chamada pela rotina de conclusão de expedição do ISR do driver de função.

KeyboardClassServiceCallback pode ser complementado por um retorno de chamada de serviço de filtro fornecido por um driver de filtro de teclado de nível superior. Um retorno de chamada do serviço de filtro filtra os dados de teclado transferidos para a fila de dados de classe. Por exemplo, o retorno de chamada do serviço de filtro pode excluir, transformar ou inserir dados. Kbfiltr, o driver de filtro de exemplo na galeria de códigos, inclui KbFilter_ServiceCallback, que é um modelo para um retorno de chamada do serviço de filtro de teclado.

Retorno de chamada do Serviço de Classe do Mouse

Aqui está a rotina MouseClassServiceCallback é a rotina de retorno de chamada do serviço de classe fornecida pelo Mouclass. O driver usa uma solicitação IOCTL_INTERNAL_MOUSE_CONNECT para conectar seu retorno de chamada de serviço de classe a um dispositivo do mouse. Nessa chamada, o driver define sua implementação em uma estrutura 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 transfere dados de entrada do buffer de entrada do dispositivo para a fila de dados de classe. Essa rotina é chamada pela rotina de conclusão de expedição do ISR do driver de função.

MouseClassServiceCallback pode ser complementado por um retorno de chamada de serviço de filtro fornecido por um driver de filtro de mouse de nível superior. Um retorno de chamada do serviço de filtro pode filtrar os dados do mouse transferidos para a fila de dados de classe. Por exemplo, o retorno de chamada do serviço de filtro pode excluir, transformar ou inserir dados. Moufiltr, o driver de filtro de exemplo no WDK, inclui MouFilter_ServiceCallback, que é um modelo para um retorno de chamada de serviço de filtro.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho kbdmou.h
IRQL DISPATCH_LEVEL

Confira também

CONNECT_DATA

KEYBOARD_INPUT_DATA

MOUSE_INPUT_DATA