IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL (parallel.h)
La requête IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT connecte une routine de service d’interruption facultative et un port différé facultatif case activée routine à un port parallèle. Seuls les pilotes en mode noyau peuvent utiliser cette requête.
La demande d’interruption de connexion retourne des informations que le pilote peut utiliser dans le contexte d’un ISR spécifique au pilote. Les informations incluent un pointeur vers l’objet d’interruption et des pointeurs vers des routines de rappel qui allouent et libèrent le port parallèle à IRQL = DIRQL.
Code principal
IRP_MJ_INTERNAL_DEVICE_CONTROL
Mémoire tampon d'entrée
Le membre AssociatedIrp.SystemBuffer pointe vers une structure PARALLEL_INTERRUPT_SERVICE_ROUTINE que le client alloue pour entrer les informations du service d’interruption. Le pilote de fonction fourni par le système pour les ports parallèles utilise la même mémoire tampon, mais le caste vers un type de données différent pour obtenir des informations de sortie.
Longueur de la mémoire tampon d’entrée
Le membre Parameters.DeviceIoControl.InputBufferLength est défini sur la taille, en octets, d’une structure PARALLEL_INTERRUPT_SERVICE_ROUTINE.
Mémoire tampon de sortie
Le membre AssociatedIrp.SystemBuffer pointe vers une structure PARALLEL_INTERRUPT_INFORMATION que le pilote de fonction de port parallèle utilise pour générer des informations d’interruption parallèles.
Longueur de la mémoire tampon de sortie
Le membre Parameters.DeviceIoControl.OutputBufferLength est défini sur la taille, en octets, d’une structure PARALLEL_INTERRUPT_INFORMATION .
Bloc d’état
Si la demande réussit, le membre Information est défini sur la taille, en octets, d’une structure PARALLEL_INTERRUPT_INFORMATION . Sinon, le membre Information est défini sur zéro.
Le membre Status est défini sur l’une des valeurs génériques status retournées par les demandes de contrôle d’appareil internes pour les ports parallèles ou sur l’une des valeurs suivantes :
STATUS_BUFFER_TOO_SMALL
Au moins un des éléments suivants est vrai :
La valeur du membre Parameters.DeviceIoControl.InputBufferLength est inférieure à la taille, en octets, d’une structure PARALLEL_INTERRUPT_SERVICE_ROUTINE.
La valeur du membre Parameters.DeviceIoControl.OuputBufferLength est inférieure à la taille, en octets, d’une structure PARALLEL_INTERRUPT_INFORMATION.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | parallel.h (inclure Parallel.h) |
Voir aussi
PARALLEL_INTERRUPT_SERVICE_ROUTINE