Condividi tramite


Funzione WdmlibIoConnectInterruptEx (iointex.h)

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
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 interrupt 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 Parameters punta. Parametri->versione deve essere uno dei 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 Parametri punta. Questo errore si verifica, ad esempio, quando Parametri->FullySpecified.ProcessorEnableMask non include bit impostati.
STATUS_NOT_FOUND
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

Vedere anche

IO_CONNECT_INTERRUPT_PARAMETERS

InterruptMessageService

InterruptService

WdmlibIoDisconnectInterruptEx