Partager via


structure IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS (wdm.h)

La structure IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS contient le contexte de connexion d’une routine de service d’interruption inscrite (ISR) qui a été connectée à une interruption ou qui s’interrompt par un appel précédent à la routine IoConnectInterruptEx .

Syntaxe

typedef struct _IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS {
  ULONG Version;
  union {
    PVOID                      Generic;
    PKINTERRUPT                InterruptObject;
    PIO_INTERRUPT_MESSAGE_INFO InterruptMessageTable;
  } ConnectionContext;
} IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS, *PIO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS;

Membres

Version

Type de connexion d’interruption décrit par cette structure. Ce membre doit correspondre au type de connexion que l’appelant a obtenu à partir de l’appel IoConnectInterruptEx qui a connecté l’interruption. Les valeurs suivantes sont valides pour ce membre :

  • CONNECT_FULLY_SPECIFIED
  • CONNECT_LINE_BASED
  • CONNECT_MESSAGE_BASED
  • CONNECT_FULLY_SPECIFIED_GROUP
Pour plus d'informations, consultez la section Notes.

ConnectionContext

Union qui contient le contexte de connexion associé à l’interruption. Chaque membre de l’union est un pointeur vers un contexte de connexion d’un type particulier. Si Version = CONNECT_MESSAGE_BASED, le membre InterruptMessageTable de cette union contient un pointeur vers une structure IO_INTERRUPT_MESSAGE_INFO . Pour toutes les autres valeurs Version , le membre InterruptObject de cette union contient un pointeur vers une structure KINTERRUPT . Utilisez le membre générique de cette union pour traiter le pointeur de contexte de connexion comme une valeur PVOID (et éviter le casting).

Pour plus d'informations, consultez la section Notes.

ConnectionContext.Generic

Pointeur PVOID vers un contexte de connexion.

ConnectionContext.InterruptObject

Pointeur vers un contexte de connexion de type KINTERRUPT.

ConnectionContext.InterruptMessageTable

Pointeur vers un contexte de connexion de type IO_INTERRUPT_MESSAGE_INFO.

Remarques

Cette structure est fournie en tant que paramètre aux routines IoReportInterruptActive et IoReportInterruptInactive .

Le membre Version indique le type du contexte de connexion spécifié dans le membre ConnectionContext . Définissez ce membre sur la valeur Parameters-Version> obtenue à partir de l’appel IoConnectInterruptEx qui a connecté l’interruption.

Si la valeur Parameters-Version> obtenue à partir d’IoConnectInterruptEx est CONNECT_FULLY_SPECIFIED ou CONNECT_FULLY_SPECIFIED_GROUP, définissez le membre ConnectionContext.InterruptObject de la structure IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS sur la valeur du pointeur *(Parameters-FullySpecified.InterruptObject>) obtenue à partir d’IoConnectInterruptEx.

Si la valeur Parameters-Version> obtenue à partir d’IoConnectInterruptEx est CONNECT_MESSAGE_BASED, définissez le membre ConnectionContext.InterruptMessageTable de la structure IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS sur la valeur du pointeur *(Parameters-MessageBased.ConnectionContext.InterruptMessageTable>) obtenue à partir d’IoConnectInterruptEx.

Si la valeur Parameters-Version> obtenue à partir d’IoConnectInterruptEx est CONNECT_LINE_BASED, mais que l’appelant a initialement défini Parameters-Version> sur CONNECT_MESSAGE_BASED, définissez le membre ConnectionContext.InterruptObject de la structure IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS sur la valeur du pointeur *(Parameters-MessageBased.ConnectionContext.InterruptObject>) obtenue à partir deIoConnectInterruptEx.

Si la valeur Parameters-Version> obtenue à partir d’IoConnectInterruptEx est CONNECT_LINE_BASED et que l’appelant a initialement défini Parameters-Version> sur CONNECT_LINE_BASED, définissez le membre ConnectionContext.InterruptObject de la structure IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS sur la valeur du pointeur *(Parameters-LineBased.InterruptObject>) obtenue à partird’IoConnectInterruptEx.

Configuration requise

Condition requise Valeur
En-tête wdm.h (inclure Wdm.h)

Voir aussi

IoConnectInterruptEx

IoReportInterruptActive

IoReportInterruptInactive