Partager via


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.

Note Microsoft recommande de ne pas utiliser une routine d’interruption fournie par le client. L’utilisation d’interruptions peut entraîner une instabilité du système. Par défaut, la demande d’interruption de connexion est désactivée. Pour plus d’informations, consultez Connexion d’une routine de service d’interruption à un ParallelPort.
 

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

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

PARALLEL_INTERRUPT_INFORMATION