Share via


IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL (ntdd8042.h)

La demande IOCTL_INTERNAL_I8042_HOOK_KEYBOARD effectue les opérations suivantes :

  • Ajoute une routine de rappel d’initialisation à la routine d’initialisation du clavier I8042prt
  • Ajoute une routine de rappel ISR au clavier I8042prt ISR
L’initialisation et les rappels ISR sont facultatifs et sont fournis par un pilote de filtre de niveau supérieur pour un clavier de style PS/2.

Une fois qu’I8042prt a reçu une demande de IOCTL_INTERNAL_KEYBOARD_CONNECT , il envoie une requête de IOCTL_INTERNAL_I8042_HOOK_KEYBOARD synchrone en haut de la pile du clavier.

Une fois que Kbfiltr a reçu la demande de clavier de crochet, Kbfiltr filtre la requête de la manière suivante :

  • Enregistre les informations de niveau supérieur transmises à Kbfiltr, qui incluent le contexte d’un objet d’appareil de niveau supérieur, un pointeur vers un rappel d’initialisation et un pointeur vers un rappel ISR
  • Remplace les informations de niveau supérieur par leurs propres
  • Enregistre le contexte de I8042prt et les pointeurs vers les rappels que le rappel Kbfiltr ISR peut utiliser
Pour plus d’informations sur cette demande et les rappels, consultez les rubriques suivantes :

Routines de rappel I8042prt

Routines de rappel Kbfiltr

Code principal

IRP_MJ_INTERNAL_DEVICE_CONTROL

Mémoire tampon d'entrée

Parameters.DeviceIoControl.Type3InputBuffer pointe vers une structure INTERNAL_I8042_HOOK_KEYBOARD. Cette structure comprend les membres suivants :

Longueur de la mémoire tampon d’entrée

Le membre Parameters.DeviceIoControl.InputBufferLength est défini sur une valeur supérieure ou égale à la taille, en octets, d’une structure INTERNAL_I8042_HOOK_KEYBOARD .

Mémoire tampon de sortie

None

Longueur de la mémoire tampon de sortie

None

Bloc d’état

Le membre Status est défini sur l’une des valeurs suivantes :

STATUS_INVALID_PARAMETER

Parameters.DeviceIoControl.InputBufferLength est inférieur à la taille, en octets, d’une structure INTERNAL_I8042_HOOK_KEYBOARD.

STATUS_SUCCESS

La demande s’est terminée avec succès.

Configuration requise

Condition requise Valeur
En-tête ntdd8042.h (inclure Ntdd8042.h)

Voir aussi

INTERNAL_I8042_HOOK_KEYBOARD

IOCTL_INTERNAL_KEYBOARD_CONNECT