NET_LUID 인덱스 사용
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 함수에 전달해야 합니다. 네트워크 인터페이스 등록에 대한 자세한 내용은 네트워크 인터페이스 등록을 참조하세요.