IRP
MDL
Expand Minimize

IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS structure

The IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS structure contains the connection context for a registered interrupt service routine (ISR) that was connected to an interrupt or interrupts by a previous call to the IoConnectInterruptEx routine.

Syntax


typedef struct _IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS {
  ULONG Version;
  union {
    PVOID                      Generic;
    PIO_INTERRUPT_MESSAGE_INFO InterruptMessageTable;
    PKINTERRUPT                InterruptObject;
  } ConnectionContext;
} IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS, *PIO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS;

Members

Version

The interrupt connection type described by this structure. This member must match the connection type the caller obtained from the IoConnectInterruptEx call that connected the interrupt. The following are valid values for this member:

  • CONNECT_FULLY_SPECIFIED
  • CONNECT_LINE_BASED
  • CONNECT_MESSAGE_BASED
  • CONNECT_FULLY_SPECIFIED_GROUP

For more information, see Remarks.

ConnectionContext

A union that contains the connection context associated with the interrupt. Each union member is a pointer to a connection context of a particular type. If Version = CONNECT_MESSAGE_BASED, the InterruptMessageTable member of this union contains a pointer to an IO_INTERRUPT_MESSAGE_INFO structure. For all other Version values, the InterruptObject member of this union contains a pointer to a KINTERRUPT structure. Use the Generic member of this union to treat the connection context pointer as a PVOID value (and avoid casting).

For more information, see Remarks.

Generic

A PVOID pointer to a connection context.

InterruptMessageTable

A pointer to a connection context of type IO_INTERRUPT_MESSAGE_INFO.

InterruptObject

A pointer to a connection context of type KINTERRUPT.

Remarks

This structure is supplied as a parameter to the IoReportInterruptActive and IoReportInterruptInactive routines.

The Version member indicates the type of the connection context specified in the ConnectionContext member. Set this member to the Parameters->Version value obtained from the IoConnectInterruptEx call that connected the interrupt.

If the Parameters->Version value obtained from IoConnectInterruptEx is CONNECT_FULLY_SPECIFIED or CONNECT_FULLY_SPECIFIED_GROUP, set the ConnectionContext.InterruptObject member of the IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS structure to the *(Parameters->FullySpecified.InterruptObject) pointer value obtained from IoConnectInterruptEx.

If the Parameters->Version value obtained from IoConnectInterruptEx is CONNECT_MESSAGE_BASED, set the ConnectionContext.InterruptMessageTable member of the IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS structure to the *(Parameters->MessageBased.ConnectionContext.InterruptMessageTable) pointer value obtained from IoConnectInterruptEx.

If the Parameters->Version value obtained from IoConnectInterruptEx is CONNECT_LINE_BASED, but the caller initially set Parameters->Version to CONNECT_MESSAGE_BASED, set the ConnectionContext.InterruptObject member of the IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS structure to the *(Parameters->MessageBased.ConnectionContext.InterruptObject) pointer value obtained from IoConnectInterruptEx.

If the Parameters->Version value obtained from IoConnectInterruptEx is CONNECT_LINE_BASED, and the caller initially set Parameters->Version to CONNECT_LINE_BASED, set the ConnectionContext.InterruptObject member of the IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS structure to the *(Parameters->LineBased.InterruptObject) pointer value obtained from IoConnectInterruptEx.

Requirements

Header

Wdm.h (include Wdm.h)

See also

IoConnectInterruptEx
IoReportInterruptActive
IoReportInterruptInactive

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft