다음을 통해 공유


SetUnicastIpAddressEntry 함수(netioapi.h)

SetUnicastIpAddressEntry 함수는 로컬 컴퓨터에서 기존 유니캐스트 IP 주소 항목의 속성을 설정합니다.

구문

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API SetUnicastIpAddressEntry(
  [in] const MIB_UNICASTIPADDRESS_ROW *Row
);

매개 변수

[in] Row

기존 유니캐스트 IP 주소 항목에 대한 MIB_UNICASTIPADDRESS_ROW 구조 항목에 대한 포인터입니다.

반환 값

함수가 성공하면 반환 값이 NO_ERROR.

함수가 실패하면 반환 값은 다음 오류 코드 중 하나입니다.

반환 코드 설명
ERROR_ACCESS_DENIED
액세스가 거부되었습니다. 이 오류는 사용자가 로컬 컴퓨터에서 필요한 관리 권한이 없거나 애플리케이션이 기본 제공 관리자(RunAs 관리자)로 향상된 셸에서 실행되고 있지 않음을 포함하는 여러 조건에서 반환됩니다.
ERROR_INVALID_PARAMETER
잘못된 매개 변수가 함수에 전달되었습니다. 이 오류는 NULL 포인터가 Row 매개 변수에 전달되거나 Row 매개 변수가 가리키는 MIB_UNICASTIPADDRESS_ROWAddress 멤버가 유효한 유니캐스트 IPv4 또는 IPv6 주소로 설정되지 않았거나 Row 매개 변수가 가리키는 MIB_UNICASTIPADDRESS_ROWInterfaceLuid 또는 InterfaceIndex 멤버가 모두 지정되지 않은 경우 반환됩니다.

이 오류는 MIB_UNICASTIPADDRESS_ROW 구조체의 멤버에 대해 설정된 값의 다른 오류에도 반환됩니다. 이러한 오류에는 ValidLifetime 멤버가 PreferredLifetime 멤버보다 작은 경우 다음 이 포함됩니다. PrefixOrigin 멤버가 IpPrefixOriginUnchanged로 설정되고 SuffixOriginIpSuffixOriginUnchanged로 설정되지 않은 경우 PrefixOrigin 멤버가 IpPrefixOriginUnchanged로 설정되지 않고 SuffixOriginIpSuffixOriginUnchanged로 설정된 경우 PrefixOrigin이 IpSuffixOriginUnchanged로 설정된 경우 SuffixOrigin 멤버가 NL_SUFFIX_ORIGIN열거형의 값으로 설정되지 않았거나 OnLinkPrefixLength 멤버가 IP 주소 길이보다 큰 값(유니캐스트 IPv4 주소의 경우 32, 유니캐스트 IPv6 주소의 경우 128)으로 설정된 경우 멤버는 NL_PREFIX_ORIGIN 열거형의 값으로 설정되지 않습니다.

ERROR_NOT_FOUND
지정된 인터페이스를 찾을 수 없습니다. 이 오류는 Row 매개 변수가 가리키는 MIB_UNICASTIPADDRESS_ROWInterfaceLuid 또는 InterfaceIndex 멤버가 지정한 네트워크 인터페이스를 찾을 수 없는 경우 반환됩니다.
ERROR_NOT_SUPPORTED
요청이 지원되지 않습니다. 이 오류는 로컬 컴퓨터에 IPv4 스택이 없고 Row 매개 변수가 가리키는 주소 멤버 MIB_UNICASTIPADDRESS_ROW IPv4 주소가 지정되었 거나 로컬 컴퓨터에 IPv6 스택이 없고 주소 멤버에 IPv6 주소가 지정된 경우 반환됩니다.
기타
FormatMessage를 사용하여 반환된 오류에 대한 메시지 문자열을 가져옵니다.

설명

SetUnicastIpAddressEntry 함수는 Windows Vista 이상에서 정의됩니다.

GetUnicastIpAddressEntry 함수는 일반적으로 수정할 기존 MIB_UNICASTIPADDRESS_ROW 구조체 항목을 검색하는 데 사용됩니다. 그런 다음 애플리케이션은 수정하려는 MIB_UNICASTIPADDRESS_ROW 항목의 멤버를 변경한 다음 SetUnicastIpAddressEntry 함수를 호출할 수 있습니다.

애플리케이션은 InitializeUnicastIpAddressEntry 함수를 호출하여 변경하기 전에 기본값으로 MIB_UNICASTIPADDRESS_ROW 구조체 항목의 멤버를 초기화할 수 있습니다. 그러나 애플리케이션은 InitializeUnicastIpAddressEntry를 호출하기 전에 일반적으로 InterfaceLuid 또는 InterfaceIndex 멤버를 저장하고 호출 후 이러한 멤버 중 하나를 복원합니다.

Row 매개 변수가 가리키는 MIB_UNICASTIPADDRESS_ROW 구조의 Address 멤버를 유효한 유니캐스트 IPv4 또는 IPv6 주소 및 패밀리로 초기화해야 합니다. 또한 Row 매개 변수를 가리키는 MIB_UNICASTIPADDRESS_ROW 구조체의 다음 멤버 중 하나 이상(InterfaceLuid 또는 InterfaceIndex)을 초기화해야 합니다.

필드는 위에 나열된 순서대로 사용됩니다. 따라서 InterfaceLuid 가 지정된 경우 이 멤버를 사용하여 인터페이스를 확인합니다. InterfaceLuid 멤버에 대해 값이 설정되지 않은 경우(이 멤버의 값이 0으로 설정된 경우) InterfaceIndex 멤버가 인터페이스를 결정하는 데 사용됩니다.

Row 매개 변수가 가리키는 MIB_UNICASTIPADDRESS_ROWOnLinkPrefixLength 멤버가 255로 설정된 경우 SetUnicastIpAddressEntryOnLinkPrefixLength 멤버가 IP 주소의 길이와 같도록 유니캐스트 IP 주소 속성을 설정합니다. 따라서 유니캐스트 IPv4 주소의 경우 OnLinkPrefixLength 가 32로 설정되고 유니캐스트 IPv6 주소의 경우 OnLinkPrefixLength 가 128로 설정됩니다. 이로 인해 IPv4 주소의 서브넷 마스크가 잘못되거나 IPv6 주소에 대한 잘못된 링크 접두사가 발생하는 경우 애플리케이션은 SetUnicastIpAddressEntry를 호출하기 전에 이 멤버를 올바른 값으로 설정해야 합니다.

SetUnicastIpAddressEntry 함수가 호출될 때 Row가 가리키는 MIB_UNICASTIPADDRESS_ROW 구조체의 DadState, ScopeIdCreationTimeStamp 멤버는 무시됩니다. 이러한 멤버는 네트워크 스택에 의해 설정되며 SetUnicastIpAddressEntry 함수를 사용하여 변경할 수 없습니다. ScopeId 멤버는 주소가 추가된 인터페이스에 의해 자동으로 결정됩니다.

SetUnicastIpAddressEntry 함수는 Administrators 그룹의 구성원으로 로그온한 사용자만 호출할 수 있습니다. Administrators 그룹의 구성원이 아닌 사용자가 SetUnicastIpAddressEntry 를 호출하면 함수 호출이 실패하고 ERROR_ACCESS_DENIED 반환됩니다.

Windows Vista 이상에서 UAC(사용자 계정 제어)로 인해 SetUnicastIpAddressEntry 함수가 실패할 수도 있습니다. 이 함수를 포함하는 애플리케이션이 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자에 의해 실행되는 경우 애플리케이션이 requireAdministrator로 설정된 requestedExecutionLevel 이 매니페스트 파일에 표시되지 않는 한 이 호출은 실패합니다. 애플리케이션에 이 매니페스트 파일이 없는 경우 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자는 이 함수가 성공하려면 기본 제공 관리자(RunAs 관리자)로 향상된 셸에서 애플리케이션을 실행해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 netioapi.h(Iphlpapi.h 포함)
라이브러리 Iphlpapi.lib
DLL Iphlpapi.dll

추가 정보

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

IP 도우미 함수 참조

InitializeUnicastIpAddressEntry

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyUnicastIpAddressChange