estrutura IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS (wdm.h)
A estrutura IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS contém o contexto de conexão de uma ISR (rotina de serviço de interrupção) registrada que foi conectada a uma interrupção ou interrupções por uma chamada anterior à rotina IoConnectInterruptEx .
Sintaxe
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;
Membros
Version
O tipo de conexão de interrupção descrito por essa estrutura. Esse membro deve corresponder ao tipo de conexão que o chamador obteve da chamada IoConnectInterruptEx que conectou a interrupção. Estes são valores válidos para este membro:
- CONNECT_FULLY_SPECIFIED
- CONNECT_LINE_BASED
- CONNECT_MESSAGE_BASED
- CONNECT_FULLY_SPECIFIED_GROUP
ConnectionContext
Uma união que contém o contexto de conexão associado à interrupção. Cada membro da união é um ponteiro para um contexto de conexão de um tipo específico. Se Version = CONNECT_MESSAGE_BASED, o membro InterruptMessageTable dessa união conterá um ponteiro para uma estrutura IO_INTERRUPT_MESSAGE_INFO . Para todos os outros valores version , o membro InterruptObject dessa união contém um ponteiro para uma estrutura KINTERRUPT . Use o membro genérico dessa união para tratar o ponteiro de contexto de conexão como um valor PVOID (e evitar a conversão).
Para obter mais informações, consulte Comentários.
ConnectionContext.Generic
Um ponteiro PVOID para um contexto de conexão.
ConnectionContext.InterruptObject
Um ponteiro para um contexto de conexão do tipo KINTERRUPT.
ConnectionContext.InterruptMessageTable
Um ponteiro para um contexto de conexão do tipo IO_INTERRUPT_MESSAGE_INFO.
Comentários
Essa estrutura é fornecida como um parâmetro para as rotinas IoReportInterruptActive e IoReportInterruptInactive .
O membro Version indica o tipo do contexto de conexão especificado no membro ConnectionContext . Defina esse membro como o valor Parameters-Version> obtido da chamada IoConnectInterruptEx que conectou a interrupção.
Se o valor Parameters-Version> obtido de IoConnectInterruptEx for CONNECT_FULLY_SPECIFIED ou CONNECT_FULLY_SPECIFIED_GROUP, defina o membro ConnectionContext.InterruptObject da estrutura IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS como o valor do ponteiro *(Parameters-FullySpecified.InterruptObject>) obtido de IoConnectInterruptEx.
Se o valor Parameters-Version> obtido de IoConnectInterruptEx for CONNECT_MESSAGE_BASED, defina o membro connectionContext.InterruptMessageTable da estrutura IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS como o valor do ponteiro *(Parameters-MessageBased.ConnectionContext.InterruptMessageTable>) obtido de IoConnectInterruptEx.
Se o valor Parameters-Version> obtido de IoConnectInterruptEx for CONNECT_LINE_BASED, mas o chamador inicialmente definir Parameters-Version> como CONNECT_MESSAGE_BASED, defina o membro ConnectionContext.InterruptObject da estrutura IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS como o valor do ponteiro *(Parameters-MessageBased.ConnectionContext.InterruptObject>) obtido deIoConnectInterruptEx.
Se o valor Parameters-Version> obtido de IoConnectInterruptEx for CONNECT_LINE_BASED e o chamador definir inicialmente Parameters-Version> como CONNECT_LINE_BASED, defina o membro ConnectionContext.InterruptObject da estrutura IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS como o valor do ponteiro *(Parameters-LineBased.InterruptObject>) obtido deIoConnectInterruptEx.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | wdm.h (include Wdm.h) |