Funzione WdmlibIoConnectInterruptEx (iointex.h)
La funzione WdmlibIoConnectInterruptEx registra una routine di gestione degli interruzioni per gli interruzioni di un dispositivo.
Sintassi
NTSTATUS WdmlibIoConnectInterruptEx(
[in, out] PIO_CONNECT_INTERRUPT_PARAMETERS Parameters
);
Parametri
[in, out] Parameters
Puntatore a una struttura IO_CONNECT_INTERRUPT_PARAMETERS che specifica la routine di gestione degli interruzioni e del dispositivo. In caso di ritorno, WdmlibIoConnectInterruptEx aggiorna questa struttura per contenere informazioni sugli interruzioni del dispositivo.
Valore restituito
La funzione restituisce STATUS_SUCCESS in caso di esito positivo o il valore di errore NTSTATUS appropriato in caso di errore. I valori di errore possibili includono:
Codice restituito | Descrizione |
---|---|
|
L'operazione non è valida per il dispositivo specificato. Ad esempio, Parametri->versione = CONNECT_LINE_BASED e il sistema ha assegnato più messaggi di interruzione al dispositivo. |
|
Il chiamante ha specificato un parametro non valido. Questo errore si verifica, ad esempio, quando il chiamante specificato NULL per l'oggetto dispositivo del dispositivo. |
|
Il chiamante ha specificato un valore non valido per il membro Version della struttura a cui punta Parameters . Parametri->La versione deve essere una delle CONNECT_LINE_BASED, CONNECT_MESSAGE_BASED o CONNECT_FULLY_SPECIFIED. |
|
Il chiamante ha specificato un valore non valido per il decimo membro della struttura a cui punta Parameters . Questo errore si verifica, ad esempio, quando Parameters->FullySpecified.ProcessorEnableMask non ha alcun bit impostato. |
|
Uno degli argomenti non è stato trovato. Ad esempio, il dispositivo specificato non ha interruzioni o il vettore di interruzione specificato non viene assegnato a alcun dispositivo. |
Commenti
WdmlibIoConnectInterruptEx può essere usato per registrare una routine di gestione degli interruzioni per entrambi gli interruzioni tradizionali basati su linea (ad esempio quelli supportati dal bus PCI) e gli interruzioni con segnale di messaggio più recenti ,ad esempio quelli supportati dalle versioni PCI 2.2 e 3.0.
I driver registrano una routine InterruptService per gli interruzioni basati su riga e una routine InterruptMessageService per gli interruzioni segnalate dal messaggio. Per altre informazioni su come specificare i membri dei parametri in ogni caso, vedere IO_CONNECT_INTERRUPT_PARAMETERS.
WdmlibIoConnectInterruptEx aggiorna i membri dei parametri per fornire informazioni sugli interruzioni del dispositivo. Per altre informazioni sulle informazioni fornite da WdmlibIoConnectInterruptEx, vedere IO_CONNECT_INTERRUPT_PARAMETERS.
Usare WdmlibIoDisconnectInterruptEx per annullare la registrazione di una routine registrata con WdmlibIoConnectInterruptEx.
Il driver non deve programmare il dispositivo per generare interruzioni fino a quando non ha connesso il relativo ISR. Pertanto, l'ISR non può essere attivato prima che WdmlibIoConnectInterruptEx restituisca. Tuttavia, esistono determinati dispositivi, ad esempio pulsanti, che non sono programmabili. Per questi dispositivi, il driver deve essere preparato per gestire l'ISR non appena chiama WdmlibIoConnectInterruptEx. La riga di interruzione può essere già definita quando viene chiamato WdmlibIoConnectInterruptEx e può essere attivata immediatamente dopo l'abilitazione della riga nel controller di interruzione, prima che la chiamata WdmlibIoConnectInterruptEx venga annullata.
Per altre informazioni sulla registrazione di una routine di gestione degli interruzioni, vedere Registrazione di un ISR.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Windows Vista e versioni successive del sistema operativo Windows. I driver che devono funzionare anche in Windows 2000, Windows XP o Windows Server 2003 possono invece collegarsi a Iointex.lib per usare la routine. |
Piattaforma di destinazione | Universale |
Intestazione | iointex.h (include Iointex.h, Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | HwStorPortProhibitedDDDIs |