NdisReadNetworkAddress 함수(ndis.h)

NdisReadNetworkAddress 함수는 컴퓨터에 설치되었을 때 NIC에 대한 레지스트리에 저장된 소프트웨어 구성 가능한 네트워크 주소를 반환합니다.

구문

void NdisReadNetworkAddress(
  [out] PNDIS_STATUS Status,
  [out] PVOID        *NetworkAddress,
  [out] PUINT        NetworkAddressLength,
  [in]  NDIS_HANDLE  ConfigurationHandle
);

매개 변수

[out] Status

이 함수가 호출 상태를 다음 중 하나로 반환하는 호출자 제공 변수에 대한 포인터입니다.

NDIS_STATUS_SUCCESS

호출자는 NIC에 대해 NetworkAddress 에서 반환된 주소를 사용할 수 있습니다.

NDIS_STATUS_FAILURE

호출자의 레지스트리 매개 변수 키에서 사용할 수 있는 NIC 주소 정보가 없거나 저장된 값이 문자열이 아닙니다.

[out] NetworkAddress

호출이 성공하면 이 함수가 바이트 정수 시퀀스로 저장된 네트워크 주소(일반적으로 MAC 주소)가 포함된 버퍼에 대한 포인터를 반환하는 호출자 제공 변수에 대한 포인터입니다.

[out] NetworkAddressLength

이 함수가 NetworkAddress에서 반환되는 바이트 수를 반환하는 호출자 제공 변수에 대한 포인터입니다.

[in] ConfigurationHandle

NdisOpenConfigurationEx 함수에서 반환된 구성 핸들입니다.

반환 값

없음

설명

NdisReadNetworkAddress는 지정된 ConfigurationHandle에서 지정한 레지스트리 매개 변수 키에서 NetworkAddress 키워드를 검색하고, 이 문자열 형식 항목의 값을 바이트 정수 시퀀스로 변환하고, 요청된 정보를 내부적으로 저장합니다. NDIS가 이러한 주소에 할당하는 스토리지는 미니포트 드라이버가 메모리를 해제하는 NdisCloseConfiguration 함수를 호출할 때까지 유효합니다.

NdisReadNetworkAddressStatus에서 NDIS_STATUS_SUCCESS 반환하지 않는 한 호출자는 NetworkAddress의 변수를 포인터로 사용할 수 없습니다.

소프트웨어 구성 가능한 네트워크 주소를 지원하는 NIC의 설치 프로그램은 NetworkAddress 키워드로 명명된 값 항목을 HKLM\System\CurrentControlSet\Control\Class4d36e972{...}에 저장해야 합니다. 레지스트리의 <i>00xx 키입니다.

NIC 설치 관리자는 일반적으로 레지스트리의 NetworkAddress 항목 값을 16진수 문자열로 저장합니다. 필요에 따라 설치 관리자는 이러한 주소를 쌍을 이루는 숫자 문자열로 저장할 수 있으며 각 쌍은 하이픈으로 다음 쌍과 구분됩니다. NdisReadNetworkAddress 는 하이픈을 삭제하고 이러한 각 쌍을 단일 바이트로 변환합니다.

두 형식에서 NdisReadNetworkAddress 는 문자열로 지정된 주소를 한 번에 한 문자씩 문자열이 소진될 때까지 해당하는 정수로 변환합니다.

Windows 2000 이상 버전의 레지스트리에서 이러한 설치된 주소 문자열에는 유니코드 문자가 포함됩니다.

NDIS는 NetworkAddress에서 값의 유효성을 검사하지 않습니다. NDIS는 이 값이 유효한 주소인지, 값의 길이가 적절한지 또는 값이 네트워크 주소인지를 보장하지 않습니다. 따라서 NdisReadNetworkAddress 의 호출자는 이 값에 대해 어떠한 가정도 하지 않아야 하며 그 자체에서 값의 유효성을 검사해야 합니다. 호출자가 값이 범위를 벗어나는 것으로 확인되면 값을 사용하면 안 됩니다. 대신 MAC(영구 중간 액세스 제어) 주소 또는 기본 주소를 사용해야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista 이상에서 NDIS 6.0 이상 드라이버에 지원됩니다. Windows XP 이상에서 NDIS 5.1 드라이버(NdisReadNetworkAddress(NDIS 5.1 참조)에 대해 지원됩니다.
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 Irql_Miscellaneous_Function(ndis)

참고 항목

NdisCloseConfiguration

NdisOpenConfigurationEx