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 |