Použití indexu NET_LUID

NDIS poskytuje funkce pro přidělení a uvolnění indexů NET_LUID, které jsou potřeba k vytvoření NET_LUID hodnot. Poskytovatel rozhraní NDIS musí přidělit NET_LUID hodnotu pro registraci rozhraní.

Pokud chcete přidělit index NET_LUID, zprostředkovatel rozhraní volá funkci NdisIfAllocateNetLuidIndex . Po přidělení indexu zprostředkovatel rozhraní zavolá makro NDIS_MAKE_NET_LUID k sestavení NET_LUID hodnoty. Pokud chcete uvolnit index NET_LUID, zprostředkovatel rozhraní volá funkci NdisIfFreeNetLuidIndex.

NdisIfAllocateNetLuidIndex pokusí přidělit 24bitovou hodnotu přidruženou k typu rozhraní, který volající zadal v parametru IfType a který je jedinečný pro místní počítač. Pokud přidělení indexu proběhne úspěšně, NdisIfAllocateNetLuidIndex vrátí NDIS_STATUS_SUCCESS a poskytne NET_LUID index na adrese zadané v parametru pNetLuidIndex. Pokud NDIS nemůže najít bezplatný index NET_LUID, NdisIfAllocateNetLuidIndex vrátí NDIS_STATUS_RESOURCES. NdisIfAllocateNetLuidIndex může vrátit i jiné stavové hodnoty NDIS, které indikují interní chyby v rámci NDIS. NDIS zaznamenává přidělení tohoto indexu při následném restartu počítače. NDIS nebude používat konkrétní index pro budoucí volající, ani po restartování počítače, dokud poskytovatel rozhraní, který přidělil tento index, nezavolá funkci NdisIfFreeNetLuidIndex pro tento index.

NdisIfFreeNetLuidIndex uvolní dříve přidělený index NET_LUID tak, aby NDIS mohl tento index pravděpodobně relokovat do jiného rozhraní. Volající musí předat stejný typ rozhraní v IfType, který volající použil při volání NdisIfAllocateNetLuidIndex, aby přidělil index NET_LUID. Pokud je operace free úspěšná, NdisIfFreeNetLuidIndex vrátí NDIS_STATUS_SUCCESS. Pokud volání NdisIfFreeNetLuidIndex selže, zprostředkovatel rozhraní by měl odebrat všechny informace uložené v trvalém úložišti, které souvisí s indexem NET_LUID. Odebráním informací zajistíte, že se poskytovatel nepokouší uvolnit index, který je již uvolněn po každém restartování počítače. Po volání NdisIfFreeNetLuidIndexnesmí volající znovu použít hodnotu NET_LUID, pokud nezavolá NdisIfAllocateNetLuidIndex znovu pro stejný typ rozhraní a neobdrží stejný index NET_LUID, který uvolnil.

K registraci síťového rozhraní musí poskytovatel rozhraní předat platnou hodnotu NET_LUID funkci NdisIfRegisterInterface. Další informace o registraci síťových rozhraní naleznete v tématu Registrace síťového rozhraní.