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.
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:
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) |