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 类型的连接上下文的指针。
注解
此结构作为参数提供给 IoReportInterruptActive 和 IoReportInterruptInactive 例程。
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) |