Freigeben über


PSERVICE_CALLBACK_ROUTINE Rückruffunktion (kbdmou.h)

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

Siehe auch

CONNECT_DATA

KEYBOARD_INPUT_DATA

MOUSE_INPUT_DATA