Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La funzione WdmlibIoConnectInterruptEx registra una routine di gestione degli interrupt per gli interrupt 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 dell'interrupt e del dispositivo. Al ritorno, WdmlibIoConnectInterruptEx aggiorna questa struttura per contenere informazioni sugli interrupt 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 possibili valori di errore 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 interrupt 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 Parameters punta. Parametri->versione deve essere uno dei 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 Parametri punta. Questo errore si verifica, ad esempio, quando Parametri->FullySpecified.ProcessorEnableMask non include bit impostati. |
|
Uno degli argomenti non è stato trovato. Ad esempio, il dispositivo specificato non ha interruzioni o il vettore di interrupt specificato non viene assegnato ad alcun dispositivo. |
Osservazioni
WdmlibIoConnectInterruptEx può essere usato per registrare una routine di gestione degli interrupt per gli interrupt tradizionali basati su riga (ad esempio quelli supportati dal bus PCI) e per gli interrupt con segnalazione dei messaggi più recenti ,ad esempio quelli supportati da PCI versioni 2.2 e 3.0.
I driver registrano una routine InterruptService per gli interrupt basati su riga e una routine InterruptMessageService per gli interrupt con segnalazione dei messaggi. Per altre informazioni su come specificare i membri di Parameters in ogni caso, vedere IO_CONNECT_INTERRUPT_PARAMETERS.
WdmlibIoConnectInterruptEx aggiorna i membri di Parameters per fornire informazioni sugli interrupt 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 interrupt fino a quando non ha connesso l'ISR. Pertanto, l'ISR non può essere generato prima che WdmlibIoConnectInterruptEx restituisce. Esistono tuttavia alcuni dispositivi, ad esempio pulsanti, che non sono programmabili. Per questi dispositivi, il driver deve essere preparato per gestire l'ISR non appena chiama WdmlibIoConnectInterruptEx. È possibile che la riga di interrupt sia già asseribile quando viene chiamato WdmlibIoConnectInterruptEx e può essere attivata immediatamente dopo l'abilitazione della riga nel controller di interrupt, prima che il WdmlibIoConnectInterruptEx rimozione delle chiamate.
Per altre informazioni sulla registrazione di una routine di gestione degli interrupt, vedere Registrazione di un isr.
Fabbisogno
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 | HwStorPortProhibitedDDIs |