Condividi tramite


Uso di un indice NET_LUID

NDIS fornisce funzioni per allocare e liberare gli indici NET_LUID necessari per creare valori NET_LUID. Un provider di interfaccia NDIS deve allocare un valore NET_LUID per registrare un'interfaccia.

Per allocare un indice NET_LUID, un provider di interfacce chiama la funzione NdisIfAllocateNetLuidIndex . Dopo aver allocato l'indice, il provider di interfacce chiama la macro NDIS_MAKE_NET_LUID per compilare il valore NET_LUID. Per liberare un indice NET_LUID, un provider di interfacce chiama la funzione NdisIfFreeNetLuidIndex .

NdisIfAllocateNetLuidIndex tenta di allocare un valore a 24 bit associato al tipo di interfaccia specificato dal chiamante nel parametro IfType e univoco per il computer locale. Se l'allocazione dell'indice ha esito positivo, NdisIfAllocateNetLuidIndex restituisce NDIS_STATUS_SUCCESS e fornisce un indice NET_LUID in corrispondenza dell'indirizzo fornito nel parametro pNetLuidIndex . Se NDIS non è in grado di trovare un indice NET_LUID gratuito, NdisIfAllocateNetLuidIndex restituisce NDIS_STATUS_RESOURCES. NdisIfAllocateNetLuidIndex può restituire altri valori di stato NDIS per indicare errori interni all'interno di NDIS. NDIS registra l'allocazione di questo indice per quando il computer viene riavviato successivamente. NDIS non userà un particolare indice per i chiamanti futuri, anche dopo il riavvio del computer, fino al provider di interfaccia che ha allocato tale indice chiama la funzione NdisIfFreeNetLuidIndex per tale indice.

NdisIfFreeNetLuidIndex libera un indice NET_LUID allocato in precedenza in modo che NDIS possa eventualmente riallocare tale indice a un'altra interfaccia. Il chiamante deve passare lo stesso tipo di interfaccia in IfType usato dal chiamante quando ha chiamato NdisIfAllocateNetLuidIndex per allocare l'indice NET_LUID. Se l'operazione gratuita ha esito positivo, NdisIfFreeNetLuidIndex restituisce NDIS_STATUS_SUCCESS. Se la chiamata a NdisIfFreeNetLuidIndex ha esito negativo, il provider di interfaccia deve rimuovere tutte le informazioni salvate nell'archiviazione permanente correlata all'indice NET_LUID. La rimozione delle informazioni garantisce che il provider non tenti di liberare un indice già liberato dopo ogni riavvio del computer. Dopo aver chiamato NdisIfFreeNetLuidIndex, il chiamante non deve usare di nuovo il valore NET_LUID a meno che non chiami nuovamente NdisIfAllocateNetLuidIndex per lo stesso tipo di interfaccia e riceva lo stesso indice NET_LUID liberato.

Per registrare un'interfaccia di rete, un provider di interfaccia deve passare un valore di NET_LUID valido alla funzione NdisIfRegisterInterface . Per altre informazioni sulla registrazione delle interfacce di rete, vedere Registrazione di un'interfaccia di rete.