Funzione NdisIfRegisterInterface (ndis.h)

La funzione NdisIfRegisterInterface registra un'interfaccia di rete NDIS.

Sintassi

NDIS_STATUS NdisIfRegisterInterface(
  [in] NDIS_HANDLE         NdisProviderHandle,
  [in] NET_LUID            NetLuid,
  [in] NDIS_HANDLE         ProviderIfContext,
  [in] PNET_IF_INFORMATION pIfInfo,
       PNET_IFINDEX        pfIndex
);

Parametri

[in] NdisProviderHandle

Handle che identifica il provider di interfaccia di rete che registra l'interfaccia. Il chiamante ha ottenuto questo handle da una chiamata precedente al Funzione NdisIfRegisterProvider .

[in] NetLuid

Valore di NET_LUID fornito dal chiamante associato all'interfaccia. Il provider di interfaccia ha usato la macro NDIS_MAKE_NET_LUID per creare questo valore NET_LUID. Il provider di interfaccia deve ripristinare il valore di NET_LUID dall'archiviazione persistente dopo il riavvio del computer e specificare lo stesso valore NET_LUID ogni volta che registra un'interfaccia specifica.

[in] ProviderIfContext

Handle per un'area di contesto allocata dal chiamante associata all'interfaccia. NDIS passa questo handle alle funzioni di callback registrate dal chiamante con NdisIfRegisterProvider.

[in] pIfInfo

Puntatore a una struttura NET_IF_INFORMATION allocata dal chiamante che fornisce informazioni sull'interfaccia. Questa struttura contiene informazioni che rimangono costanti mentre l'interfaccia esiste.

pfIndex

Puntatore a una variabile di indice dell'interfaccia fornita dal chiamante. Se NDIS registra correttamente un'interfaccia, NDIS alloca un indice di interfaccia per tale interfaccia e imposta il valore in pIfIndex . L'indice dell'interfaccia è un valore a 24 bit univoco nel computer locale. NDIS potrebbe non restituire lo stesso indice dell'interfaccia ogni volta che un provider registra un'interfaccia con lo stesso valore NET_LUID . Il valore dell'indice dell'interfaccia zero è riservato e NDIS non lo assegna a nessuna interfaccia. Non confondere l'indice dell'interfaccia con un indice NET_LUID.

Valore restituito

NdisIfRegisterInterface restituisce uno dei valori di stato seguenti:

Codice restituito Descrizione
NDIS_STATUS_SUCCESS
Operazione riuscita.
NDIS_STATUS_RESOURCES
L'operazione non è riuscita a causa di risorse insufficienti.
NDIS_STATUS_INVALID_PARAMETER
NdisIfRegisterInterface non è riuscito perché alcuni dei parametri di input non sono validi.
NDIS_STATUS_DUPLICATE_OBJECTID
NdisIfRegisterInterface non è riuscito perché esiste già un'interfaccia registrata con lo stesso valore NET_LUID specificato dal parametro NetLuid .

Commenti

I provider di interfaccia NDIS chiamano la funzione NdisIfRegisterInterface per registrare un'interfaccia di rete. Una chiamata a questa funzione non implica che l'interfaccia sia attiva.

Ogni volta che un computer viene riavviato, NDIS inizia con un elenco vuoto di interfacce di rete registrate. Un provider di interfaccia chiama la funzione NdisIfRegisterInterface ogni volta che viene avviata un'interfaccia (o rilevata) e l'interfaccia
NET_LUID è noto.

Il metodo per rilevare o avviare un'interfaccia dipende dall'applicazione. Ad esempio, se un driver intermedio MUX LBFO è un provider di interfaccia, tale driver potrebbe registrare un'interfaccia interna quando NDIS chiama la funzione ProtocolBindAdapterEx del driver per la prima scheda miniport sottostante.

Un provider di interfacce può inserire informazioni su un'interfaccia nell'archiviazione persistente e ripristinare l'interfaccia in base alle esigenze per l'applicazione specifica. Ad esempio, il provider può archiviare informazioni aggiuntive sull'interfaccia con il NET_LUID e può riregistrare l'interfaccia dopo il riavvio del computer.

Se NdisIfRegisterInterface ha esito positivo, NDIS aggiunge l'interfaccia all'elenco delle interfacce note e alloca un nuovo indice di interfaccia per questa interfaccia. I provider di interfacce devono registrare interfacce abilitate e disabilitate, ovunque possibile. Tutte le interfacce abilitate devono essere registrate.

NDIS potrebbe non restituire lo stesso indice di interfaccia ogni volta che un provider registra un'interfaccia con lo stesso valore di NET_LUID. Ad esempio, NDIS non assegna necessariamente lo stesso indice di interfaccia quando un'interfaccia viene riregistrata dopo il riavvio di un computer o quando l'interfaccia viene deregisterata e riregistrata. Il valore dell'indice dell'interfaccia zero è riservato e NDIS non lo assegna a nessuna interfaccia.

Per indicare che un'interfaccia deve essere rimossa dall'elenco di interfacce note nel computer, un provider di interfacce chiama il Funzione NdisIfDeregisterInterface , ad esempio perché l'interfaccia è stata disinstallata. .

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0 e versioni successive.
Piattaforma di destinazione Desktop
Intestazione ndis.h (includere Ndis.h)
Libreria Ndis.lib
IRQL PASSIVE_LEVEL
Regole di conformità DDI Irql_Interfaces_Function(ndis)

Vedi anche

NDIS_MAKE_NET_LUID

NET_IF_INFORMATION

NET_LUID

NdisIfDeregisterInterface

NdisIfRegisterProvider

ProtocolBindAdapterEx