IO_DISCONNECT_INTERRUPT_PARAMETERS 结构 (wdm.h)
IO_DISCONNECT_INTERRUPT_PARAMETERS 结构描述了使用 IoDisconnectInterruptEx 注销中断处理例程时的参数。
语法
typedef struct _IO_DISCONNECT_INTERRUPT_PARAMETERS {
ULONG Version;
union {
PVOID Generic;
PKINTERRUPT InterruptObject;
PIO_INTERRUPT_MESSAGE_INFO InterruptMessageTable;
} ConnectionContext;
} IO_DISCONNECT_INTERRUPT_PARAMETERS, *PIO_DISCONNECT_INTERRUPT_PARAMETERS;
成员
Version
指定要由 IoDisconnectInterruptEx 执行的特定操作。 Version 的值取决于 IoConnectInterruptEx 注册中断处理例程时为 Parameters-Version> 指定的值,如下表所示。
IO_CONNECT_INTERRUPT_PARAMETERS版本值 | IO_DISCONNECT_INTERRUPT_PARAMETERS Version 值 |
---|---|
CONNECT_LINE_BASED | CONNECT_LINE_BASED |
CONNECT_MESSAGE_BASED | IoConnectInterruptEx的版本输出值。 |
CONNECT_FULLY_SPECIFIED | CONNECT_FULLY_SPECIFIED |
ConnectionContext
指向连接中断时 IoConnectInterruptEx 提供的 KINTERRUPT 或 IO_INTERRUPT_MESSAGE_INFO 结构的指针。 ConnectionContext 的值取决于 IoConnectInterruptEx 注册中断处理例程时为 Parameters-Version> 指定的值,如下表所示。
IoConnectInterruptEx 版本值 | IoDisconnectInterruptEx ConnectionContext 值 |
---|---|
CONNECT_LINE_BASED | 存储在 LineBased.InterruptObject 中的值。 |
CONNECT_MESSAGE_BASED | 存储在 MessageBased.ConnectionContext 中的值。 |
CONNECT_FULLY_SPECIFIED | 存储在 FullySpecified.InterruptObject 中的值。 |
为了尽量减少强制转换, ConnectionContext 定义为联合。 使用 ConnectionContext.Generic 将值指定为 PVOID。 使用 ConnectionContext.InterruptObject 和 ConnectionContext.InterruptMessageTable 将值指定为指向 KINTERRUPT 或 IO_INTERRUPT_MESSAGE_INFO 结构的指针。
ConnectionContext.Generic
指向未指定类型的数据结构的指针。
ConnectionContext.InterruptObject
指向 KINTERRUPT 结构的指针。
ConnectionContext.InterruptMessageTable
指向 IO_INTERRUPT_MESSAGE_INFO 结构的指针。
要求
要求 | 值 |
---|---|
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |