NDIS 提供函式來配置和釋放建立NET_LUID值所需的 NET_LUID 索引。 NDIS 介面提供者必須配置NET_LUID值來註冊介面。
若要配置NET_LUID索引,介面提供者會呼叫 NdisIfAllocateNetLuidIndex 函式。 配置索引之後,介面提供者會呼叫 NDIS_MAKE_NET_LUID 巨集來建置NET_LUID值。 若要釋放NET_LUID索引,介面提供者會呼叫 NdisIfFreeNetLuidIndex 函式。
NdisIfAllocateNetLuidIndex 嘗試配置與呼叫者在 IfType 參數中指定的介面類型相關聯的 24 位值,而且對本機計算機而言是唯一的。 如果索引配置成功,NdisIfAllocateNetLuidIndex 會傳回NDIS_STATUS_SUCCESS,並在 pNetLuidIndex 參數中提供的位址提供NET_LUID索引。 如果 NDIS 找不到免費的NET_LUID索引,NdisIfAllocateNetLuidIndex 傳回NDIS_STATUS_RESOURCES。 NdisIfAllocateNetLuidIndex 可以傳回其他 NDIS 狀態值,以指出 NDIS 內部錯誤。 當電腦再次重啟時,NDIS 會保存此索引的配置。 即使電腦重新啟動,NDIS 也不會針對未來的呼叫端使用特定索引,直到配置該索引的介面提供者呼叫該索引的 NdisIfFreeNetLuidIndex 函式為止。
NdisIfFreeNetLuidIndex 釋放先前配置的 NET_LUID 索引,讓 NDIS 可以將該索引重新配置到另一個介面。 呼叫端必須傳入與呼叫端在呼叫 NdisIfAllocateNetLuidIndex 用來配置 NET_LUID 索引時所使用的相同介面類型 IfType。 如果免費作業成功,NdisIfFreeNetLuidIndex 會傳回NDIS_STATUS_SUCCESS。 如果呼叫 NdisIfFreeNetLuidIndex 失敗,介面提供者應該移除儲存在與NET_LUID索引相關之持續性記憶體中的任何資訊。 移除這些資訊可確保提供者不會在每次電腦重新啟動後繼續嘗試釋放已經釋放的索引。 呼叫 NdisIfFreeNetLuidIndex之後,除非再次針對相同的介面類型呼叫 NdisIfAllocateNetLuidIndex 並收到先前釋放的相同 NET_LUID 索引,否則呼叫者不得再次使用該 NET_LUID 值。
若要註冊網路介面,介面提供者必須將有效的NET_LUID值傳遞至 NdisIfRegisterInterface 函式。 如需註冊網路介面的詳細資訊,請參閱 註冊網路介面。