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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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 |