IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS-Struktur (wdm.h)
Die IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS-Struktur enthält den Verbindungskontext für eine registrierte Interruptdienstroutine (ISR), die durch einen vorherigen Aufruf der IoConnectInterruptEx-Routine mit einem Interrupt oder Interrupt verbunden wurde.
Syntax
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;
Member
Version
Der von dieser Struktur beschriebene Interruptverbindungstyp. Dieser Member muss mit dem Verbindungstyp übereinstimmen, den der Aufrufer aus dem IoConnectInterruptEx-Aufruf abgerufen hat , der den Interrupt verbunden hat. Die folgenden Werte gelten für dieses Element:
- CONNECT_FULLY_SPECIFIED
- CONNECT_LINE_BASED
- CONNECT_MESSAGE_BASED
- CONNECT_FULLY_SPECIFIED_GROUP
ConnectionContext
Eine Union, die den dem Interrupt zugeordneten Verbindungskontext enthält. Jedes Union-Element ist ein Zeiger auf einen Verbindungskontext eines bestimmten Typs. Wenn Version = CONNECT_MESSAGE_BASED, enthält das InterruptMessageTable-Element dieser Union einen Zeiger auf eine IO_INTERRUPT_MESSAGE_INFO-Struktur . Für alle anderen Versionswerte enthält das InterruptObject-Element dieser Union einen Zeiger auf eine KINTERRUPT-Struktur . Verwenden Sie das generische Element dieser Union, um den Verbindungskontextzeiger als PVOID-Wert zu behandeln (und eine Umwandlung zu vermeiden).
Weitere Informationen finden Sie in den Hinweisen.
ConnectionContext.Generic
Ein PVOID-Zeiger auf einen Verbindungskontext.
ConnectionContext.InterruptObject
Ein Zeiger auf einen Verbindungskontext vom Typ KINTERRUPT.
ConnectionContext.InterruptMessageTable
Ein Zeiger auf einen Verbindungskontext vom Typ IO_INTERRUPT_MESSAGE_INFO.
Hinweise
Diese Struktur wird als Parameter für die Routinen IoReportInterruptActive und IoReportInterruptInactive bereitgestellt.
Das Version-Element gibt den Typ des Verbindungskontexts an, der im ConnectionContext-Element angegeben ist. Legen Sie dieses Element auf den Parameter-Version-Wert> fest, der vom IoConnectInterruptEx-Aufruf abgerufen wurde, der den Interrupt verbunden hat.
Wenn der von IoConnectInterruptEx abgerufene Parameter-Version-Wert> CONNECT_FULLY_SPECIFIED oder CONNECT_FULLY_SPECIFIED_GROUP ist, legen Sie den ConnectionContext.InterruptObject-Member der IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS-Struktur auf den Zeigerwert *(Parameters-FullySpecified.InterruptObject>) fest, der von IoConnectInterruptEx abgerufen wird.
Wenn der von IoConnectInterruptEx abgerufene Parameter-Version-Wert> CONNECT_MESSAGE_BASED ist, legen Sie den ConnectionContext.InterruptMessageTable-Member der IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS-Struktur auf den Zeigerwert *(Parameters-MessageBased.ConnectionContext.InterruptMessageTable>) fest, der von IoConnectInterruptEx abgerufen wird.
Wenn der von IoConnectInterruptEx abgerufene Parameter-Version-Wert> CONNECT_LINE_BASED ist, der Aufrufer Parameters-Version> jedoch zunächst auf CONNECT_MESSAGE_BASED festgelegt hat, legen Sie das ConnectionContext.InterruptObject-Element der IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS-Struktur auf den Zeigerwert *(Parameters-MessageBased.ConnectionContext.InterruptObject>) fest, der von abgerufen wird.IoConnectInterruptEx.
Wenn der von IoConnectInterruptEx abgerufene Parameter-Version-Wert> CONNECT_LINE_BASED ist und der AufruferParameters-Version> zunächst auf CONNECT_LINE_BASED festgelegt hat, legen Sie das ConnectionContext.InterruptObject-Element der IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS Struktur auf den Zeigerwert *(Parameters-LineBased.InterruptObject>) fest, der von IoConnectInterruptEx abgerufen wird.
Anforderungen
Anforderung | Wert |
---|---|
Header | wdm.h (einschließen von Wdm.h) |