Freigeben über


WdmlibIoConnectInterruptEx-Funktion (iointex.h)

Die WdmlibIoConnectInterruptEx--Funktion registriert eine Unterbrechungsbehandlungsroutine für die Unterbrechungen eines Geräts.

Syntax

NTSTATUS WdmlibIoConnectInterruptEx(
  [in, out] PIO_CONNECT_INTERRUPT_PARAMETERS Parameters
);

Parameter

[in, out] Parameters

Zeigen Sie auf eine IO_CONNECT_INTERRUPT_PARAMETERS Struktur, die das Gerät angibt, und die Unterbrechungsbehandlungsroutine. Zurück aktualisiert WdmlibIoConnectInterruptEx diese Struktur so, dass Informationen zu den Unterbrechungen des Geräts aufbewahrt werden.

Rückgabewert

Die Funktion gibt STATUS_SUCCESS bei Erfolg oder den entsprechenden NTSTATUS-Fehlerwert beim Fehler zurück. Mögliche Fehlerwerte sind:

Rückgabecode Beschreibung
STATUS_INVALID_DEVICE_REQUEST
Der Vorgang ist für das angegebene Gerät ungültig. Beispielsweise Parameter->Version = CONNECT_LINE_BASED, und das System hat dem Gerät mehrere Unterbrechungsmeldungen zugewiesen.
STATUS_INVALID_PARAMETER
Der Aufrufer hat einen ungültigen Parameter angegeben. Dieser Fehler tritt z. B. auf, wenn der Aufrufer NULL- für das Geräteobjekt des Geräts angegeben hat.
STATUS_INVALID_PARAMETER_1
Der Aufrufer hat einen ungültigen Wert für das Version Element der Struktur angegeben, auf das Parameters verweist. Parameter->Version müssen eine CONNECT_LINE_BASED, CONNECT_MESSAGE_BASED oder CONNECT_FULLY_SPECIFIED sein.
STATUS_INVALID_PARAMETER_10
Der Aufrufer hat einen ungültigen Wert für das zehnte Element der Struktur angegeben, auf das Parameters verweist. Dieser Fehler tritt beispielsweise auf, wenn Parameter->FullySpecified.ProcessorEnableMask keine Bits festgelegt haben.
STATUS_NOT_FOUND
Eines der Argumente wurde nicht gefunden. Das angegebene Gerät hat beispielsweise keine Unterbrechungen, oder der angegebene Interruptvektor wird keinem Gerät zugewiesen.

Bemerkungen

WdmlibIoConnectInterruptEx- kann verwendet werden, um eine Interruptbehandlungsroutine für herkömmliche leitungsbasierte Interrupts (z. B. die vom PCI-Bus unterstützt) und die neueren Nachrichtensignalunterbrüche zu registrieren (z. B. dies wird von PCI-Versionen 2.2 und 3.0 unterstützt).

Treiber registrieren eine InterruptService- Routine für leitungsbasierte Unterbrechungen und eine InterruptMessageService- Routine für Nachrichtensignalunterbrechungen. Weitere Informationen zum Angeben der Member von Parameters in jedem Fall finden Sie unter IO_CONNECT_INTERRUPT_PARAMETERS.

WdmlibIoConnectInterruptEx aktualisiert die Elemente Parameters, um Informationen über die Unterbrechungen des Geräts bereitzustellen. Weitere Informationen zu den informationen, die von WdmlibIoConnectInterruptExbereitgestellt werden, finden Sie unter IO_CONNECT_INTERRUPT_PARAMETERS.

Verwenden Sie WdmlibIoDisconnectInterruptEx-, um die Registrierung einer Routine aufzuheben, die bei WdmlibIoConnectInterruptExregistriert ist.

Der Treiber sollte sein Gerät nicht so programmieren, dass Unterbrechungen generiert werden, bis er seinen ISR angeschlossen hat. Daher kann der ISR nicht ausgelöst werden, bevor WdmlibIoConnectInterruptEx zurückgegeben wird. Es gibt jedoch bestimmte Geräte, z. B. Schaltflächen, die nicht programmierbar sind. Für diese Geräte sollte der Treiber bereit sein, den ISR zu verarbeiten, sobald er WdmlibIoConnectInterruptExaufruft. Die Unterbrechungslinie kann bereits bestätigt werden, wenn WdmlibIoConnectInterruptEx- aufgerufen wird und sofort ausgelöst werden kann, nachdem die Zeile am Interruptcontroller aktiviert wurde, bevor die WdmlibIoConnectInterruptEx Anruf abbricht.

Weitere Informationen zum Registrieren einer Unterbrechungsbehandlungsroutine finden Sie unter Registrieren eines ISR-.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar unter Windows Vista und höheren Versionen des Windows-Betriebssystems. Treiber, die auch unter Windows 2000, Windows XP oder Windows Server 2003 funktionieren müssen, können stattdessen eine Verknüpfung mit Iointex.lib herstellen, um die Routine zu verwenden.
Zielplattform- Universal
Header- iointex.h (include Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs

Siehe auch

IO_CONNECT_INTERRUPT_PARAMETERS

InterruptMessageService-

InterruptService-

WdmlibIoDisconnectInterruptEx