IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS 構造体 (wdm.h)

IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS構造体には、IoConnectInterruptEx ルーチンの以前の呼び出しによって割り込みまたは割り込みに接続された登録済み割り込みサービス ルーチン (ISR) の接続コンテキストが含まれます。

構文

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 値として扱うには、この共用体の Generic メンバーを使用します (キャストは避けてください)。

詳細については、「解説」を参照してください。

ConnectionContext.Generic

接続コンテキストへの PVOID ポインター。

ConnectionContext.InterruptObject

KINTERRUPT 型の接続コンテキストへのポインター。

ConnectionContext.InterruptMessageTable

IO_INTERRUPT_MESSAGE_INFO型の接続コンテキストへのポインター。

注釈

この構造体は、 IoReportInterruptActive ルーチンと IoReportInterruptInactive ルーチンのパラメーターとして提供されます。

Version メンバーは、ConnectionContext メンバーで指定された接続コンテキストの種類を示します。 このメンバーを、割り込みを接続した IoConnectInterruptEx 呼び出しから取得した Parameters-Version> 値に設定します。

IoConnectInterruptEx から取得した Parameters-Version> 値がCONNECT_FULLY_SPECIFIEDまたはCONNECT_FULLY_SPECIFIED_GROUPの場合は、IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS構造体の ConnectionContext.InterruptObject メンバーを IoConnectInterruptEx から取得した *(Parameters-FullySpecified.InterruptObject>) ポインター値に設定します。

IoConnectInterruptEx から取得した Parameters-Version> 値がCONNECT_MESSAGE_BASED場合は、IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS 構造体の ConnectionContext.InterruptMessageTable メンバーを、IoConnectInterruptEx から取得した *(Parameters-MessageBased.ConnectionContext.InterruptMessageTable>) ポインター値設定します。

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 メンバーを IoConnectInterruptEx から取得した *(Parameters-LineBased.InterruptObject>) ポインター値に設定します。

要件

要件
Header wdm.h (Wdm.h を含む)

こちらもご覧ください

IoConnectInterruptEx

IoReportInterruptActive

IoReportInterruptInactive