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 구조체에 대한 포인터가 포함됩니다. 다른 모든 버전 값의 경우 이 공용 구조체의 InterruptObject 멤버에는 KINTERRUPT 구조체에 대한 포인터가 포함됩니다. 이 공용 구조체의 제네릭 멤버를 사용하여 연결 컨텍스트 포인터를 PVOID 값으로 처리하고 캐스팅을 방지합니다.

자세한 내용은 설명 부분을 참조하세요.

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>) 포인터 값으로 설정합니다.

요구 사항

요구 사항
헤더 wdm.h(Wdm.h 포함)

추가 정보

IoConnectInterruptEx

IoReportInterruptActive

IoReportInterruptInactive