Partager via


IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL (ntdd8042.h)

La requête 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
Les rappels d’initialisation et d’ISR sont facultatifs et sont fournis par un pilote de filtre de niveau supérieur pour un périphérique clavier de style PS/2.

Une fois que I8042prt reçoit une demande de IOCTL_INTERNAL_KEYBOARD_CONNECT, il envoie une requête de IOCTL_INTERNAL_I8042_HOOK_KEYBOARD synchrone en haut de la pile de l’appareil clavier.

Une fois que Kbfiltr reçoit la demande de clavier de hook, Kbfiltr filtre la requête de la manière suivante :

  • Enregistre les informations de niveau supérieur passées à 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 leur propre
  • Enregistre le contexte du rappel I8042prt et des pointeurs vers des 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

Le 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

Aucun

Longueur de la mémoire tampon de sortie

Aucun

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.

Exigences

Exigence Valeur
d’en-tête ntdd8042.h (include Ntdd8042.h)

Voir aussi

INTERNAL_I8042_HOOK_KEYBOARD

IOCTL_INTERNAL_KEYBOARD_CONNECT