Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Funktionstreiber ruft den Klassendienstrückruf in seiner ISR-Verteilerabschlussroutine auf. Der Klassendienstrückruf überträgt Eingabedaten aus dem Eingabedatenpuffer eines Geräts in die Klassendatenwarteschlange.
Syntax
PSERVICE_CALLBACK_ROUTINE PserviceCallbackRoutine;
VOID PserviceCallbackRoutine(
[in] PVOID NormalContext,
[in] PVOID SystemArgument1,
[in] PVOID SystemArgument2,
[in, out] PVOID SystemArgument3
)
{...}
Parameter
[in] NormalContext
Zeiger auf das Klassengerätobjekt.
[in] SystemArgument1
Zeigen Sie auf das erste Tastatureingabedatenpaket im Eingabedatenpuffer des Portgeräts.
[in] SystemArgument2
Zeigen Sie auf das Tastatureingabedatenpaket, das unmittelbar auf das letzte Datenpaket im Eingabedatenpuffer des Portgeräts folgt.
[in, out] SystemArgument3
Zeigen Sie auf die Anzahl der Tastatureingabedatenpakete, die von der Routine übertragen werden.
Rückgabewert
Nichts
Bemerkungen
Rückruf des Tastaturklassendiensts
Hier ist die Definition der Rückrufroutine für den Tastaturklassendienst.
Kbdclass verwendet eine IOCTL_INTERNAL_KEYBOARD_CONNECT Anforderung, um den Klassendienstrückruf mit einem Tastaturgerät zu verbinden. In diesem Aufruf legt der Treiber seine Implementierung in einer CONNECT_DATA Struktur fest.
/*
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 überträgt Eingabedaten aus dem Eingabepuffer des Geräts in die Klassendatenwarteschlange. Diese Routine wird von der ISR-Verteilerabschlussroutine des Funktionstreibers aufgerufen.
KeyboardClassServiceCallback kann durch einen Filterdienstrückruf ergänzt werden, der von einem Tastaturfiltertreiber auf oberster Ebene bereitgestellt wird. Ein Filterdienstrückruf filtert die Tastaturdaten, die in die Klassendatenwarteschlange übertragen werden. Beispielsweise kann der Filterdienstrückruf Daten löschen, transformieren oder einfügen. Kbfiltr-enthält der Beispielfiltertreiber im Codekatalog KbFilter_ServiceCallback, die eine Vorlage für einen Tastaturfilterdienstrückruf ist.
Mouse Class Service Callback-
Dies ist die MouseClassServiceCallback Routine ist die Klassendienstrückrufroutine, die von Mouclass bereitgestellt wird. Der Treiber verwendet eine IOCTL_INTERNAL_MOUSE_CONNECT Anforderung, um den Klassendienstrückruf mit einem Mausgerät zu verbinden. In diesem Aufruf legt der Treiber seine Implementierung in einer CONNECT_DATA Struktur fest.
/*
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 überträgt Eingabedaten aus dem Eingabepuffer des Geräts in die Klassendatenwarteschlange. Diese Routine wird von der ISR-Verteilerabschlussroutine des Funktionstreibers aufgerufen.
MouseClassServiceCallback kann durch einen Filterdienstrückruf ergänzt werden, der von einem Mausfiltertreiber auf oberer Ebene bereitgestellt wird. Ein Filterdienstrückruf kann die Mausdaten filtern, die in die Klassendatenwarteschlange übertragen werden. Beispielsweise kann der Filterdienstrückruf Daten löschen, transformieren oder einfügen. Moufiltrenthält der Beispielfiltertreiber im WDK MouFilter_ServiceCallback, die eine Vorlage für einen Filterdienstrückruf ist.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform- | Desktop |
| Header- | kbdmou.h |
| IRQL- | DISPATCH_LEVEL |