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_STATUS_SUCCESS
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.
NDIS_STATUS_RESOURCES
NdisMRegisterInterruptEx non è riuscito a causa di risorse insufficienti.
NDIS_STATUS_XXX o NT_STATUS_XXX
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:

MiniportInterrupt

MiniportInterruptDPC

MiniportDisableInterruptEx

MiniportEnableInterruptEx

Se 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:

MiniportMessageInterrupt

MiniportMessageInterruptDPC MiniportDisableMessageInterrupt MiniportEnableMessageInterrupt

Se 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)

Vedi anche

MiniportDisableInterruptEx

MiniportDisableMessageInterrupt

MiniportEnableInterruptEx

MiniportEnableMessageInterrupt

MiniportInitializeEx

MiniportInterrupt

MiniportInterruptDPC

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS

NdisMDeregisterInterruptEx

NdisMSetMiniportAttributes