Condividi tramite


PSERVICE_CALLBACK_ROUTINE funzione di callback (kbdmou.h)

Un driver di funzione chiama il callback del servizio di classe nella routine di completamento dell'invio ISR. Il callback del servizio di classe trasferisce i dati di input dal buffer dei dati di input di un dispositivo alla coda dei dati della classe.

Sintassi

PSERVICE_CALLBACK_ROUTINE PserviceCallbackRoutine;

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

Parametri

[in] NormalContext

Puntatore all'oggetto dispositivo della classe.

[in] SystemArgument1

Puntatore al primo pacchetto di dati di input della tastiera nel buffer dei dati di input del dispositivo porta.

[in] SystemArgument2

Puntatore al pacchetto di dati di input della tastiera che segue immediatamente l'ultimo pacchetto di dati nel buffer dei dati di input del dispositivo porta.

[in, out] SystemArgument3

Puntatore al numero di pacchetti di dati di input della tastiera trasferiti dalla routine.

Valore restituito

nessuno

Osservazioni

Callback del servizio classe tastiera

Di seguito è riportata la definizione della routine di callback del servizio della classe della tastiera.

Kbdclass usa una richiesta di IOCTL_INTERNAL_KEYBOARD_CONNECT per connettere il callback del servizio di classe a un dispositivo da tastiera. In questa chiamata, il driver imposta l'implementazione in una struttura 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 trasferisce i dati di input dal buffer di input del dispositivo alla coda dei dati della classe. Questa routine viene chiamata dalla routine di completamento dell'invio ISR del driver di funzione.

KeyboardClassServiceCallback può essere integrato da un callback del servizio di filtro fornito da un driver di filtro della tastiera di livello superiore. Un callback del servizio di filtro filtra i dati della tastiera trasferiti alla coda dei dati della classe. Ad esempio, il callback del servizio di filtro può eliminare, trasformare o inserire dati. Kbfiltr, il driver di filtro di esempio nella raccolta di codice, include KbFilter_ServiceCallback, ovvero un modello per un callback del servizio di filtro da tastiera.

Callback del servizio classe mouse

Ecco la routine MouseClassServiceCallback è la routine di callback del servizio di classe fornita da Mouclass. Il driver usa una richiesta di IOCTL_INTERNAL_MOUSE_CONNECT per connettere il callback del servizio di classe a un dispositivo mouse. In questa chiamata, il driver imposta l'implementazione in una struttura 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 trasferisce i dati di input dal buffer di input del dispositivo alla coda dei dati della classe. Questa routine viene chiamata dalla routine di completamento dell'invio ISR del driver di funzione.

MouseClassServiceCallback può essere integrato da un callback del servizio di filtro fornito da un driver di filtro del mouse di livello superiore. Un callback del servizio di filtro può filtrare i dati del mouse trasferiti alla coda dei dati della classe. Ad esempio, il callback del servizio di filtro può eliminare, trasformare o inserire dati. Moufiltr, il driver di filtro di esempio in WDK, include MouFilter_ServiceCallback, che è un modello per un callback del servizio di filtro.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione kbdmou.h
IRQL DISPATCH_LEVEL

Vedi anche

CONNECT_DATA

KEYBOARD_INPUT_DATA

MOUSE_INPUT_DATA