NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS-Struktur (ndis.h)
Ein NDIS-Miniporttreiber definiert seine Interrupteigenschaften in einer NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS-Struktur und übergibt die -Struktur an die NdisMRegisterInterruptEx-Funktion .
Syntax
typedef struct _NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS {
NDIS_OBJECT_HEADER Header;
MINIPORT_ISR_HANDLER InterruptHandler;
MINIPORT_INTERRUPT_DPC_HANDLER InterruptDpcHandler;
MINIPORT_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler;
MINIPORT_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler;
BOOLEAN MsiSupported;
BOOLEAN MsiSyncWithAllMessages;
MINIPORT_MSI_ISR_HANDLER MessageInterruptHandler;
MINIPORT_MSI_INTERRUPT_DPC_HANDLER MessageInterruptDpcHandler;
MINIPORT_DISABLE_MSI_INTERRUPT_HANDLER DisableMessageInterruptHandler;
MINIPORT_ENABLE_MSI_INTERRUPT_HANDLER EnableMessageInterruptHandler;
NDIS_INTERRUPT_TYPE InterruptType;
PIO_INTERRUPT_MESSAGE_INFO MessageInfoTable;
} NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS, *PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS;
Member
Header
Die NDIS_OBJECT_HEADER-Struktur für die NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS-Struktur. Legen Sie den Typmember der Struktur, die Header angibt, auf NDIS_OBJECT_TYPE_MINIPORT_INTERRUPT, das Revisionselement auf NDIS_MINIPORT_INTERRUPT_REVISION_1 und das Size-Element auf NDIS_SIZEOF_MINIPORT_INTERRUPT_CHARACTERISTICS_REVISION_1.
InterruptHandler
Der Einstiegspunkt für die MiniportInterrupt-Funktion , die diesem Interrupt zugeordnet ist.
InterruptDpcHandler
Der Einstiegspunkt für die MiniportInterruptDPC-Funktion , die diesem Interrupt zugeordnet ist.
DisableInterruptHandler
Der Einstiegspunkt für die MiniportDisableInterruptEx-Funktion .
EnableInterruptHandler
Der Einstiegspunkt für die MiniportEnableInterruptEx-Funktion .
MsiSupported
Legen Sie diesen Member auf TRUE fest, wenn der Miniporttreiber MSI-Dienstfunktionen (Message-Signaled Interrupt) unterstützt. Der Miniporttreiber muss Einstiegspunkte für die MSI-Dienstfunktionen bereitstellen.
Wenn Sie diesen Wert auf FALSE festlegen, wird msi nicht unterstützt. Die Einstiegspunkte für die MSI-Dienstfunktion sollten auf NULL festgelegt werden.
MsiSyncWithAllMessages
Legen Sie dieses Element auf TRUE fest, wenn der Miniporttreiber alle MSI-Dienstfunktionen serialisieren muss.
Wenn Sie diesen Wert auf TRUE festlegen, kann die Interruptleistung beeinträchtigt werden. Es ist effizienter für mehrere Interruptdienstfunktionen, die verschiedene Nachrichten verarbeiten, die gleichzeitig ausgeführt werden.
MessageInterruptHandler
Der Einstiegspunkt für die MiniportMessageInterrupt-Funktion , sofern vorhanden, die diesem Interrupt zugeordnet ist. Wenn der Treiber keine Nachrichtenunterbrechungen unterstützt, legen Sie diesen Member auf NULL fest.
MessageInterruptDpcHandler
Der Einstiegspunkt für die MiniportMessageInterruptDPC-Funktion , falls vorhanden, die diesem Interrupt zugeordnet ist. Wenn der Treiber keine Interrupts mit Nachrichtensignalen unterstützt, legen Sie diesen Member auf NULL fest.
DisableMessageInterruptHandler
Der Einstiegspunkt für die MiniportDisableMessageInterrupt-Funktion , falls vorhanden. Wenn der Treiber keine Signalunterbrechungen unterstützt, legen Sie diesen Member auf NULL fest.
EnableMessageInterruptHandler
Der Einstiegspunkt für die MiniportEnableMessageInterrupt-Funktion , falls vorhanden. Wenn der Treiber keine Interrupts mit Nachrichtensignalen unterstützt, legen Sie diesen Member auf NULL fest.
InterruptType
Eine Variable vom Typ NDIS_INTERRUPT_TYPE. NDIS legt diese Variable fest, um anzugeben, welche Art von Interrupt sie dem Miniporttreiber gewährt. Wenn der Treiber MSI unterstützt, muss er diesen Wert überprüfen, wenn NdisMRegisterInterruptEx NDIS_STATUS_SUCCESS zurückgibt. Wenn InterruptType auf NDIS_CONNECT_LINE_BASED festgelegt ist, gewährte NDIS dem Treiber einen zeilenbasierten Interrupt, der auch dann auftreten kann, wenn der Treiber interrupts mit Nachrichtensignalen unterstützt. Wenn InterruptType auf NDIS_CONNECT_MESSAGE_BASED festgelegt ist, gewährte NDIS dem Treiber einen Interrupt mit Nachrichtensignal. In diesem Fall kann der Treiber auf MessageInfoTable zugreifen, um die Interruptinformationen abzurufen.
MessageInfoTable
Ein von NDIS bereitgestellter Zeiger auf einen IO_INTERRUPT_MESSAGE_INFO Struktur.
- Wenn InterruptTypeNDIS_CONNECT_MESSAGE_BASED ist, initialisiert NDIS eine IO_INTERRUPT_MESSAGE_INFO-Struktur mit Informationen zum Interrupt und legt MessageInfoTable auf einen Zeiger auf die Struktur fest. Miniport-Treiber dürfen die Struktur nicht ändern.
- Wenn InterruptTypeNDIS_CONNECT_LINE_BASED ist, muss MessageInfoTable NULL sein.
Hinweise
Ein Miniporttreiber ruft die NdisMRegisterInterruptEx-Funktion auf, um einen Interrupt zu registrieren. Der Treiber ordnet und initialisiert eine NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS-Struktur , um die Interruptmerkmale und Handlereinstiegspunkte anzugeben, und übergibt die Struktur an NdisMRegisterInterruptEx.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt in NDIS 6.0 und höher. |
Kopfzeile | ndis.h (include Ndis.h) |