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 함수를 호출할 때까지 유효합니다.
NdisReadNetworkAddress가 Status에서 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) |
참고 항목
피드백
다음에 대한 사용자 의견 제출 및 보기