Share via


PSERVICE_CALLBACK_ROUTINE Rückruffunktion (kbdmou.h)

Ein Funktionstreiber ruft den Klassendienstrückruf in seiner ISR-Dispatch-Vervollständigungsroutine auf. Der Klassendienstrückruf überträgt Eingabedaten aus dem Eingabedatenpuffer eines Geräts an 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äteobjekt.

[in] SystemArgument1

Zeiger auf das erste Tastatureingabedatenpaket im Eingabedatenpuffer des Portgeräts.

[in] SystemArgument2

Zeiger auf das Tastatureingabedatenpaket, das unmittelbar auf das letzte Datenpaket im Eingabedatenpuffer des Portgeräts folgt.

[in, out] SystemArgument3

Zeiger auf die Anzahl der Tastatureingabedatenpakete, die von der Routine übertragen werden.

Rückgabewert

Keine

Bemerkungen

Rückruf des Tastaturklassendiensts

Hier sehen Sie 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 an die Klassendatenwarteschlange. Diese Routine wird von der ISR-Vervollständigungsroutine 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. Der Rückruf des Filterdiensts kann beispielsweise Daten löschen, transformieren oder einfügen. Kbfiltr, der Beispielfiltertreiber im Codekatalog, enthält KbFilter_ServiceCallback, bei dem es sich um eine Vorlage für einen Tastaturfilterdienstrückruf handelt.

Rückruf des Mausklassendiensts

Hier ist die MouseClassServiceCallback-Routine die Klassendienstrückrufroutine, die von Mouclass bereitgestellt wird. Der Treiber verwendet eine IOCTL_INTERNAL_MOUSE_CONNECT-Anforderung , um seinen 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 an die Klassendatenwarteschlange. Diese Routine wird von der ISR-Vervollständigungsroutine des Funktionstreibers aufgerufen.

MouseClassServiceCallback kann durch einen Filterdienstrückruf ergänzt werden, der von einem Mausfiltertreiber auf oberster Ebene bereitgestellt wird. Ein Filterdienstrückruf kann die Mausdaten filtern, die in die Klassendatenwarteschlange übertragen werden. Der Rückruf des Filterdiensts kann beispielsweise Daten löschen, transformieren oder einfügen. Moufiltr, der Beispielfiltertreiber im WDK, enthält MouFilter_ServiceCallback, bei dem es sich um eine Vorlage für einen Filterdienstrückruf handelt.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile kbdmou.h
IRQL DISPATCH_LEVEL

Weitere Informationen

CONNECT_DATA

KEYBOARD_INPUT_DATA

MOUSE_INPUT_DATA