Freigeben über


WdmlibIoConnectInterruptEx-Funktion (iointex.h)

Die WdmlibIoConnectInterruptEx-Funktion registriert eine Interruptbehandlungsroutine für die Interrupts eines Geräts.

Syntax

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

Parameter

[in, out] Parameters

Zeiger auf eine IO_CONNECT_INTERRUPT_PARAMETERS Struktur, die die Geräte- und Interruptbehandlungsroutine angibt. Bei der Rückgabe aktualisiert WdmlibIoConnectInterruptEx diese Struktur, um Informationen zu den Interrupts des Geräts zu enthalten.

Rückgabewert

Die Funktion gibt bei Erfolg STATUS_SUCCESS oder den entsprechenden NTSTATUS-Fehlerwert bei 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. Parameterversion = CONNECT_LINE_BASED beispielsweise->, und das System hat dem Gerät mehrere Interruptnachrichten zugewiesen.
STATUS_INVALID_PARAMETER
Der Aufrufer hat einen ungültigen Parameter angegeben. Dieser Fehler tritt beispielsweise 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-Member der Struktur angegeben, auf die Parameters verweist. Parameter->Die Version muss eine der 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 für Parameters->FullySpecified.ProcessorEnableMask keine Bits festgelegt sind.
STATUS_NOT_FOUND
Eines der Argumente wurde nicht gefunden. Beispielsweise verfügt das angegebene Gerät über keine Interrupts, oder der angegebene Interruptvektor ist keinem Gerät zugewiesen.

Hinweise

WdmlibIoConnectInterruptEx kann verwendet werden, um eine Interruptbehandlungsroutine sowohl für herkömmliche leitungsbasierte Interrupts (z. B. für die vom PCI-Bus unterstützte) als auch für die neueren Nachrichtensignal-Interrupts (z. B. für die von PCI-Versionen 2.2 und 3.0 unterstützten Interrupts) zu registrieren.

Treiber registrieren eine InterruptService-Routine für zeilenbasierte Interrupts und eine InterruptMessageService-Routine für nachrichtengesteuerte Interrupts. Weitere Informationen zum Angeben der Elemente von Parametern finden Sie unter IO_CONNECT_INTERRUPT_PARAMETERS.

WdmlibIoConnectInterruptEx aktualisiert die Member von Parameters , um Informationen zu den Interrupts des Geräts bereitzustellen. Weitere Informationen zu den von WdmlibIoConnectInterruptEx bereitgestellten Informationen finden Sie unter IO_CONNECT_INTERRUPT_PARAMETERS.

Verwenden Sie WdmlibIoDisconnectInterruptEx , um die Registrierung einer bei WdmlibIoConnectInterruptEx registrierten Routine aufzuheben.

Der Treiber sollte sein Gerät erst so programmieren, dass Unterbrechungen generiert werden, bis er seine ISR verbunden hat. Daher kann der ISR nicht ausgelöst werden, bevor WdmlibIoConnectInterruptEx zurückgibt. 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 wdmlibIoConnectInterruptEx aufgerufen wird. Die Interruptzeile kann bereits beim Aufruf von WdmlibIoConnectInterruptEx festgelegt werden und kann unmittelbar nach der Aktivierung der Zeile am Interruptcontroller ausgelöst werden, bevor der WdmlibIoConnectInterruptEx-Aufruf entladen wird.

Weitere Informationen zum Registrieren einer Interruptbehandlungsroutine finden Sie unter Registrieren eines ISR.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (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 mit Iointex.lib verknüpft werden, um die Routine zu verwenden.
Zielplattform Universell
Header iointex.h (einschließlich Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs

Weitere Informationen

IO_CONNECT_INTERRUPT_PARAMETERS

InterruptMessageService

InterruptService

WdmlibIoDisconnectInterruptEx