Funzione NdisMRegisterInterruptEx (ndis.h)
I driver miniport NDIS chiamano la funzione NdisMRegisterInterruptEx per registrare un interrupt.
Sintassi
NDIS_STATUS NdisMRegisterInterruptEx(
[in] NDIS_HANDLE MiniportAdapterHandle,
[in] NDIS_HANDLE MiniportInterruptContext,
[in] PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS MiniportInterruptCharacteristics,
[out] PNDIS_HANDLE NdisInterruptHandle
);
Parametri
[in] MiniportAdapterHandle
Handle dell'adattatore miniport passato a NDIS Funzione MiniportInitializeEx .
[in] MiniportInterruptContext
Puntatore a un blocco di informazioni di contesto. Il driver miniport alloca questa memoria per archiviare informazioni sull'interrupt. NDIS passa il blocco di informazioni di contesto nelle chiamate successive ad altre funzioni associate all'interrupt.
[in] MiniportInterruptCharacteristics
Puntatore a un oggetto NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS struttura creata dal driver miniport. Il driver inizializza questa struttura con i punti di ingresso del gestore e i parametri di configurazione che definiscono le caratteristiche di interruzione.
[out] NdisInterruptHandle
Puntatore a un handle NDIS. NDIS scrive l'handle per l'oggetto interrupt appena creato nell'indirizzo specificato dal puntatore NdisInterruptHandle .
Valore restituito
NdisMRegisterInterruptEx può restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
NDIS inizializza l'oggetto interrupt e fornisce un handle di interrupt valido in NdisInterruptHandle . NDIS ha richiesto risorse hardware e configurare le funzioni chiamate quando si verifica un interrupt. |
|
NdisMRegisterInterruptEx non è riuscito a causa di risorse insufficienti. |
|
Tentativo di inizializzazione dell'oggetto interrupt non riuscito per motivi diversi da quelli dell'elenco precedente. |
Commenti
Un driver miniport deve chiamare NdisMRegisterInterruptEx dalla funzione MiniportInitializeEx se gestisce una scheda di interfaccia di rete che genera interrupt.
MiniportInitializeEx deve chiamare il Funzione NdisMSetMiniportAttributes prima di chiamare NdisMRegisterInterruptEx.
Il driver miniport deve specificare i punti di ingresso per le funzioni del servizio interrupt seguenti:
MiniportDisableInterruptExSe la scheda di interfaccia di rete supporta interrupt con segnale di messaggio (MSI), il driver miniport deve specificare i punti di ingresso per le funzioni del servizio MSI seguenti:
MiniportMessageInterruptDPC MiniportDisableMessageInterrupt MiniportEnableMessageInterruptSe un driver specifica i punti di ingresso per l'identità del servizio gestito, deve anche specificare punti di ingresso per le funzioni del servizio interrupt non MSI. Inoltre, se NdisMRegisterInterruptEx restituisce NDIS_STATUS_SUCCESS, il driver deve esaminare il valore del membro InterruptType dell'oggetto NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS struttura per determinare il tipo di interrupt concessi dall'NDIS. Se NDIS non può concedere il supporto MSI, concederà il supporto per gli interrupt basati su riga.
Quando gli interrupt sono abilitati nella scheda di interfaccia di rete, la funzione MiniportInterrupt(o MiniportMessageInterrupt) di un driver può essere chiamata in qualsiasi momento dopo che il driver chiama NdisMRegisterInterruptEx, anche prima che NdisMRegisterInterruptEx restituisca. Pertanto, un driver non deve chiamare NdisMRegisterInterruptEx finché non è pronto per gestire un interrupt.
I driver chiamano il Funzione NdisMDeregisterInterruptEx per rilasciare le risorse allocate in precedenza con NdisMRegisterInterruptEx.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.0 e versioni successive. |
Piattaforma di destinazione | Universale |
Intestazione | ndis.h (include Ndis.h) |
Libreria | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | Init_DeRegisterInterrupt(ndis), Init_RegisterInterrupt(ndis), Irql_Interrupt_Function(ndis), NdisMDeregisterInterruptEx(ndis) |