Share via


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

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

소프트웨어 구성 가능한 네트워크 주소 지정을 지원하는 NIC의 설치 프로그램은 HKLM\System\CurrentControlSet\Control\Class{4d36e972...}에 NetworkAddress 키워드(keyword) 있는 라는 값 항목을 저장해야 합니다. 레지스트리의 \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