Freigeben über


IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL (kbdmou.h)

Die IOCTL_INTERNAL_KEYBOARD_CONNECT Anforderung verbindet den Kbdclass-Dienst mit dem Tastaturgerät. Kbdclass sendet diese Anforderung nach unten auf dem Tastaturgerätestapel, bevor das Tastaturgerät geöffnet wird.

Nachdem Kbfiltr die Verbindungsanforderung für die Tastatur erhalten hat, filtert Kbfiltr die Verbindungsanforderung wie folgt:

  • Speichert eine Kopie der kbdclass CONNECT_DATA-Struktur (Kbdclass), die von Kbdclass an den Filtertreiber übergeben wird.
  • Ersetzt seine eigenen Verbindungsinformationen für die Verbindungsinformationen des Klassentreibers.
  • Sendet die IOCTL_INTERNAL_KEYBOARD_CONNECT Anforderung nach unten im Gerätestapel.
Wenn die Anforderung nicht erfolgreich ist, schließt Kbfiltr die Anforderung mit einem entsprechenden Fehler status ab.

Kbfiltr stellt eine Vorlage für eine Filterdienstrückrufroutine bereit, die den Vorgang von KeyboardClassServiceCallback, der Rückrufroutine für den Kbdclass-Klassendienst, ergänzen kann. Der Filterdienstrückruf kann die Eingabedaten filtern, die vom Geräteeingabepuffer in die Klassendatenwarteschlange übertragen werden.

Weitere Informationen zur Verbindung des Kbdclass-Diensts finden Sie in den folgenden Themen:

Kbdclass Class Service Callback Routine

Kbfiltr-Rückrufroutinen

Hauptcode

IRP_MJ_INTERNAL_DEVICE_CONTROL

Eingabepuffer

Der Parameters.DeviceIoControl.Type3InputBuffer-Member verweist auf eine CONNECT_DATA Struktur, die von Kbdclass zugeordnet und festgelegt wird.

Länge des Eingabepuffers

Das Parameters.DeviceIoControl.InputBufferLength-Element wird auf einen Wert festgelegt, der größer oder gleich der Größe einer CONNECT_DATA-Struktur in Bytes ist.

Ausgabepuffer

Das Parameters.DeviceIoControl.Type3InputBuffer-Element verweist auf eine CONNECT_DATA Struktur, die von Kbfiltr festgelegt wird.

Länge des Ausgabepuffers

Die Größe einer CONNECT_DATA-Struktur .

Statusblock

Der Information-Member ist auf 0 (null) festgelegt.

Das Status-Element wird auf einen der folgenden Werte festgelegt:

STATUS_INVALID_PARAMETER

Parameters.DeviceIoControl.InputBufferLength ist kleiner als die Größe einer CONNECT_DATA-Struktur in Bytes.

STATUS_SHARING_VIOLATION

Kbfiltr ist bereits verbunden (der Filtertreiber unterstützt nur eine Verbindungsanforderung).

STATUS_SUCCESS

Die Anforderung wurde erfolgreich abgeschlossen.

Anforderungen

Anforderung Wert
Header kbdmou.h (include Kbdmou.h)

Weitere Informationen

CONNECT_DATA (Kbdclass)

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

KeyboardClassServiceCallback