Compartilhar via


Usando um índice de NET_LUID

O NDIS fornece funções para alocar e liberar os índices NET_LUID necessários para criar valores NET_LUID. Um provedor de interface NDIS deve alocar um valor NET_LUID para registrar uma interface.

Para alocar um índice NET_LUID, um provedor de interface chama a função NdisIfAllocateNetLuidIndex . Depois de alocar o índice, o provedor de interface chama a macro NDIS_MAKE_NET_LUID para criar o valor NET_LUID. Para liberar um índice NET_LUID, um provedor de interface chama a função NdisIfFreeNetLuidIndex .

NdisIfAllocateNetLuidIndex tenta alocar um valor de 24 bits associado ao tipo de interface que o chamador especificou no parâmetro IfType e que é exclusivo para o computador local. Se a alocação de índice for bem-sucedida, NdisIfAllocateNetLuidIndex retornará NDIS_STATUS_SUCCESS e fornecerá um índice NET_LUID no endereço fornecido no parâmetro pNetLuidIndex . Se o NDIS não conseguir encontrar um índice de NET_LUID gratuito, NdisIfAllocateNetLuidIndex retornará NDIS_STATUS_RESOURCES. NdisIfAllocateNetLuidIndex pode retornar outros valores de NDIS status para indicar erros internos no NDIS. O NDIS registra a alocação desse índice para quando o computador é reiniciado posteriormente. O NDIS não usará um índice específico para chamadas futuras, mesmo após a reinicialização do computador, até que o provedor de interface que alocou esse índice chame a função NdisIfFreeNetLuidIndex para esse índice.

NdisIfFreeNetLuidIndex libera um índice de NET_LUID alocado anteriormente para que o NDIS possa realocar esse índice para outra interface. O chamador deve passar o mesmo tipo de interface em IfType que o chamador usou quando chamou NdisIfAllocateNetLuidIndex para alocar o índice NET_LUID. Se a operação gratuita for bem-sucedida, NdisIfFreeNetLuidIndex retornará NDIS_STATUS_SUCCESS. Se a chamada para NdisIfFreeNetLuidIndex falhar, o provedor de interface deverá remover todas as informações salvas no armazenamento persistente relacionadas ao índice NET_LUID. A remoção das informações garantirá que o provedor não continue tentando liberar um índice que já esteja liberado após a reinicialização de cada computador. Depois de chamar NdisIfFreeNetLuidIndex, o chamador não deve usar o valor NET_LUID novamente, a menos que chame NdisIfAllocateNetLuidIndex novamente para o mesmo tipo de interface e receba o mesmo índice NET_LUID que liberou.

Para registrar um adaptador de rede, um provedor de interface deve passar um valor de NET_LUID válido para a função NdisIfRegisterInterface . Para obter mais informações sobre como registrar interfaces de rede, consulte Registrando um adaptador de rede.