IOCTL_INTERNAL_I8042_HOOK_MOUSE IOCTL (ntdd8042.h)
La richiesta di IOCTL_INTERNAL_I8042_HOOK_MOUSE aggiunge una routine di callback ISR all'ISR del mouse I8042prt. Il callback ISR è facoltativo e viene fornito da un driver di filtro del mouse di livello superiore.
I8042prt invia questa richiesta dopo aver ricevuto una richiesta di IOCTL_INTERNAL_MOUSE_CONNECT. I8042prt invia una richiesta sincrona IOCTL_INTERNAL_I8042_HOOK_MOUSE all'inizio dello stack di dispositivi del mouse.
Dopo che Moufiltr riceve la richiesta del mouse hook, filtra la richiesta nel modo seguente:
- Salva le informazioni di livello superiore passate a Moufiltr, che include il contesto di un oggetto dispositivo di livello superiore e un puntatore a un callback ISR
- Sostituisce le informazioni di livello superiore con le proprie
- Salva il contesto di I8042prt e puntatori ai callback che i callback isr moufiltr possono usare
Codice principale
IRP_MJ_INTERNAL_DEVICE_CONTROL
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_MOUSE.
Il Parameters.DeviceIoControl.Type3InputBuffer punta a una struttura INTERNAL_I8042_HOOK_MOUSE allocata e impostata inizialmente da I8042prt.
Lunghezza del buffer di input
Il Parameters.DeviceIoControl.Type3InputBuffer punta a una struttura INTERNAL_I8042_HOOK_MOUSE allocata e impostata inizialmente da I8042prt.
Buffer di output
Nessuno
Lunghezza del buffer di output
Nessuno
Blocco di stato
Il membro stato è impostato su uno dei valori seguenti:
STATUS_INVALID_PARAMETER
Parameters.DeviceIoControl.InputBufferLength è minore delle dimensioni, in byte, di una struttura INTERNAL_I8042_HOOK_MOUSE.
STATUS_SUCCESS
La richiesta è stata completata correttamente.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ntdd8042.h (include Ntdd8042.h) |