Condividi tramite


IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL (kbdmou.h)

La richiesta di IOCTL_INTERNAL_KEYBOARD_CONNECT connette il servizio Kbdclass al dispositivo da tastiera. Kbdclass invia questa richiesta nello stack di dispositivi della tastiera prima di aprire il dispositivo da tastiera.

Dopo aver ricevuto la richiesta di connessione della tastiera, Kbfiltr filtra la richiesta di connessione nel modo seguente:

  • Salva una copia della struttura di CONNECT_DATA di Kbdclass (Kbdclass) passata al driver di filtro di Kbdclass
  • Sostituisce le proprie informazioni di connessione per le informazioni sulla connessione del driver di classe
  • Invia la richiesta di IOCTL_INTERNAL_KEYBOARD_CONNECT verso il basso dello stack di dispositivi
Se la richiesta non ha esito positivo, Kbfiltr completa la richiesta con uno stato di errore appropriato.

Kbfiltr fornisce un modello per una routine di callback del servizio di filtro che può integrare l'operazione di KeyboardClassServiceCallback, la routine di callback del servizio classi Kbdclass. Il callback del servizio filtro può filtrare i dati di input trasferiti dal buffer di input del dispositivo alla coda dei dati della classe.

Per altre informazioni sulla connessione del servizio Kbdclass, vedere gli argomenti seguenti:

Routine di callback del servizio classi Kbdclass

Routine di callback kbfiltr

Codice principale

IRP_MJ_INTERNAL_DEVICE_CONTROL

Buffer di input

Il membro Parameters.DeviceIoControl.Type3InputBuffer punta a una struttura CONNECT_DATA allocata e impostata da Kbdclass.

Lunghezza del buffer di input

Il membro Parameters.DeviceIoControl.InputBufferLength è impostato su un valore maggiore o uguale alle dimensioni, in byte, di una struttura CONNECT_DATA.

Buffer di output

Il membro Parameters.DeviceIoControl.Type3InputBuffer punta a una struttura CONNECT_DATA impostata da Kbfiltr.

Lunghezza del buffer di output

Dimensione di una struttura CONNECT_DATA .

Blocco dello stato

Il membro Information è impostato su zero.

Il membro Status è impostato su uno dei valori seguenti:

STATUS_INVALID_PARAMETER

Parameters.DeviceIoControl.InputBufferLength è minore delle dimensioni, in byte, di una struttura CONNECT_DATA.

STATUS_SHARING_VIOLATION

Kbfiltr è già connesso (il driver di filtro supporta una sola richiesta di connessione).

STATUS_SUCCESS

La richiesta è stata completata correttamente.

Requisiti

Requisito Valore
Intestazione kbdmou.h (includere Kbdmou.h)

Vedi anche

CONNECT_DATA (Kbdclass)

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

KeyboardClassServiceCallback