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 dell'interfaccia di rete che registra l'interfaccia. Il chiamante ha ottenuto questo handle da una chiamata precedente al funzione NdisIfRegisterProvider.
[in] NetLuid
Valore NET_LUID fornito dal chiamante associato all'interfaccia . Il provider di interfaccia ha utilizzato la macro NDIS_MAKE_NET_LUID per creare questo valore NET_LUID. Il provider di interfacce deve recuperare il valore NET_LUID dall'archiviazione permanente dopo il riavvio del computer e fornire lo stesso valore NET_LUID ogni volta che registra una particolare interfaccia.
[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 di 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 corrispondenza di pIfIndex . L'indice dell'interfaccia è un valore a 24 bit univoco nel computer locale. NDIS potrebbe non restituire lo stesso indice di interfaccia ogni volta che un provider registra un'interfaccia con lo stesso valore NET_LUID . Il valore di indice dell'interfaccia zero è riservato e NDIS non lo assegna ad alcuna 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 |
---|---|
|
Operazione completata correttamente. |
|
L'operazione non è riuscita a causa di risorse insufficienti. |
|
NdisIfRegisterInterface non riuscito perché alcuni parametri di input non sono validi. |
|
NdisIfRegisterInterface perché esiste già un'interfaccia registrata con lo stesso valore di NET_LUID specificato dal parametro NetLuid. |
Osservazioni
I provider di interfacce 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 o rilevata un'interfaccia 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 permanente e ripristinare l'interfaccia come richiesto per l'applicazione specifica. Ad esempio, il provider può archiviare informazioni aggiuntive sull'interfaccia con il NET_LUID e può registrare nuovamente 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 interfaccia devono registrare interfacce abilitate e disabilitate, laddove 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 NET_LUID. Ad esempio, NDIS non assegna necessariamente lo stesso indice di interfaccia quando un'interfaccia viene nuovamente registrata dopo il riavvio di un computer o quando l'interfaccia viene annullata e registrata nuovamente. Il valore di indice dell'interfaccia zero è riservato e NDIS non lo assegna ad alcuna interfaccia.
Per indicare che un'interfaccia deve essere rimossa dall'elenco di interfacce note nel computer, un provider di interfacce chiama funzione NdisIfDeregisterInterface, ad esempio perché l'interfaccia è stata disinstallata. .