IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL (ntdd8042.h)
La richiesta di IOCTL_INTERNAL_I8042_HOOK_KEYBOARD esegue le operazioni seguenti:
- Aggiunge una routine di inizializzazione del callback alla routine di inizializzazione della tastiera I8042prt
- Aggiunge una routine di callback ISR alla tastiera ISR I8042prt
Dopo che I8042prt riceve una richiesta di IOCTL_INTERNAL_KEYBOARD_CONNECT , invia una richiesta sincrona IOCTL_INTERNAL_I8042_HOOK_KEYBOARD alla parte superiore dello stack di dispositivi da tastiera.
Dopo che Kbfiltr riceve la richiesta di tastiera hook, Kbfiltr filtra la richiesta nel modo seguente:
- Salva le informazioni di livello superiore passate a Kbfiltr, che include il contesto di un oggetto dispositivo di livello superiore, un puntatore a un callback di inizializzazione e un puntatore a un callback ISR
- Sostituisce le informazioni di livello superiore con il proprio
- Salva il contesto di I8042prt e puntatori ai callback che il callback ISR kbfiltr può usare
Codice principale
IRP_MJ_INTERNAL_DEVICE_CONTROL
Buffer di input
Parameters.DeviceIoControl.Type3InputBuffer punta a una struttura INTERNAL_I8042_HOOK_KEYBOARD. Questa struttura include i membri seguenti:
Lunghezza del buffer di input
Il membro Parameters.DeviceIoControl.InputBufferLength è impostato su un valore maggiore o uguale alle dimensioni, in byte, di una struttura INTERNAL_I8042_HOOK_KEYBOARD .
Buffer di output
Nessuno
Lunghezza del buffer di output
Nessuno
Blocco dello stato
Il membro Status è impostato su uno dei valori seguenti:
STATUS_INVALID_PARAMETER
Parameters.DeviceIoControl.InputBufferLength è minore delle dimensioni, in byte, di una struttura INTERNAL_I8042_HOOK_KEYBOARD.
STATUS_SUCCESS
La richiesta è stata completata correttamente.
Requisiti
Requisito | Valore |
---|---|
Intestazione | ntdd8042.h (include Ntdd8042.h) |