IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS 结构 (wdm.h)

IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS结构包含已注册的中断服务例程的连接上下文 (ISR) ,该例程已连接到中断,或者以前调用 IoConnectInterruptEx 例程时中断。

语法

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;

成员

Version

此结构描述的中断连接类型。 此成员必须与从连接中断的 IoConnectInterruptEx 调用获取的调用方的连接类型匹配。 下面是此成员的有效值:

  • CONNECT_FULLY_SPECIFIED
  • CONNECT_LINE_BASED
  • CONNECT_MESSAGE_BASED
  • CONNECT_FULLY_SPECIFIED_GROUP
有关详细信息,请参阅“备注”。

ConnectionContext

包含与中断关联的连接上下文的联合。 每个联合成员都是指向特定类型的连接上下文的指针。 如果 Version = CONNECT_MESSAGE_BASED,则此联合的 InterruptMessageTable 成员包含指向 IO_INTERRUPT_MESSAGE_INFO 结构的指针。 对于所有其他 Version 值,此联合的 InterruptObject 成员包含指向 KINTERRUPT 结构的指针。 使用此联合的 泛型 成员将连接上下文指针视为 PVOID 值 (并避免强制转换) 。

有关详细信息,请参阅“备注”。

ConnectionContext.Generic

指向连接上下文的 PVOID 指针。

ConnectionContext.InterruptObject

指向 KINTERRUPT 类型的连接上下文的指针。

ConnectionContext.InterruptMessageTable

指向 IO_INTERRUPT_MESSAGE_INFO 类型的连接上下文的指针。

注解

此结构作为参数提供给 IoReportInterruptActiveIoReportInterruptInactive 例程。

Version 成员指示 ConnectionContext 成员中指定的连接上下文的类型。 将此成员设置为从连接中断的 IoConnectInterruptEx 调用获取的参数>版本值。

如果从 IoConnectInterruptEx 获取的 Parameters-Version> 值CONNECT_FULLY_SPECIFIED或CONNECT_FULLY_SPECIFIED_GROUP,请将 IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS 结构的 ConnectionContext.InterruptObject 成员设置为 * (Parameters-FullySpecified.InterruptObject >) 从 IoConnectInterruptEx 获取的指针值。

如果从 IoConnectInterruptEx 获取的 Parameters-Version> 值CONNECT_MESSAGE_BASED,请将IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS 结构的 ConnectionContext.InterruptMessageTable 成员设置为 * (Parameters-MessageBased.ConnectionContext.InterruptMessageTable>) 从 IoConnectInterruptEx 获取的指针值。

如果从 IoConnectInterruptEx 获取的 Parameters-Version> 值CONNECT_LINE_BASED,但调用方最初将 Parameters-Version> 设置为 CONNECT_MESSAGE_BASED,请将 IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS 结构的 ConnectionContext.InterruptObject 成员设置为 * ( Parameters-MessageBased.ConnectionContext.InterruptObject >) 从获取的指针值IoConnectInterruptEx

如果从 IoConnectInterruptEx 获取的 Parameters-Version> 值CONNECT_LINE_BASED,并且调用方最初将 Parameters-Version> 设置为 CONNECT_LINE_BASED,请将 IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS 结构的 ConnectionContext.InterruptObject 成员设置为 * (Parameters-LineBased.InterruptObject>) 从 IoConnectInterruptEx 获取的指针值。

要求

要求
Header wdm.h (包括 Wdm.h)

另请参阅

IoConnectInterruptEx

IoReportInterruptActive

IoReportInterruptInactive