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
STATUS_INVALID_DEVICE_REQUEST
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.
STATUS_INVALID_PARAMETER
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.
STATUS_INVALID_PARAMETER_1
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.
STATUS_INVALID_PARAMETER_10
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.
STATUS_NOT_FOUND
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

Vedi anche

IO_CONNECT_INTERRUPT_PARAMETERS

InterruptMessageService

InterruptService

WdmlibIoDisconnectInterruptEx