다음을 통해 공유


NotifyStableUnicastIpAddressTable 함수

NotifyStableUnicastIpAddressTable 함수는 로컬 컴퓨터에서 안정적인 유니캐스트 IP 주소 테이블을 검색합니다.

구문

NETIOAPI_API NotifyStableUnicastIpAddressTable(
  _In_    ADDRESS_FAMILY                           Family,
  _Out_   PMIB_UNICASTIPADDRESS_TABLE              *Table,
  _In_    PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback,
  _In_    PVOID                                    CallerContext,
  _Inout_ HANDLE                                   *NotificationHandle
);

매개 변수

  • 가족 [in]
    검색할 주소 패밀리입니다.

    주소 패밀리에 대한 가능한 값은 Winsock2.h 헤더 파일에 나열됩니다. AF_ 주소 패밀리 및 PF_ 프로토콜 패밀리 상수의 값은 동일하므로(예: AF_INET 및 PF_INET) 상수 중 하나를 사용할 수 있습니다.

    Windows Vista 이상 버전의 Windows 운영 체제에서는 Family 매개 변수에 대한 가능한 값이 Ws2def.h 헤더 파일에 정의되어 있습니다. Ws2def.h 헤더 파일은 Netioapi.h에 자동으로 포함되며 Ws2def.h를 직접 사용하면 안 됩니다.

    현재 주소 패밀리에 대해 지원되는 값은 다음과 같습니다.

    • AF_INET
      IPv4 주소 패밀리입니다. 이 값을 지정하면 함수는 IPv4 항목만 포함하는 안정적인 유니캐스트 IP 주소 테이블을 검색합니다.

    • AF_INET6
      IPv6 주소 패밀리입니다. 이 값을 지정하면 함수는 IPv6 항목만 포함하는 안정적인 유니캐스트 IP 주소 테이블을 검색합니다.

    • AF_UNSPEC
      주소 패밀리는 지정되지 않습니다. 이 값을 지정하면 함수는 IPv4 및 IPv6 항목이 모두 포함된 안정적인 유니캐스트 IP 주소 테이블을 검색합니다.

  • [out]
    MIB_UNICASTIPADDRESS_TABLE 구조체에 대한 포인터입니다. NotifyStableUnicastIpAddressTable이 성공하면 이 매개 변수는 로컬 컴퓨터에서 안정적인 유니캐스트 IP 주소 테이블을 반환합니다.

    NotifyStableUnicastIpAddressTable이 I/O 요청이 보류 중임을 나타내는 ERROR_IO_PENDING 반환하면 안정적인 유니캐스트 IP 주소 테이블이 CallerCallback 매개 변수의 함수로 반환됩니다.

  • CallerCallback [in]
    안정적인 유니캐스트 IP 주소 테이블을 사용하여 호출할 함수에 대한 포인터입니다. NotifyStableUnicastIpAddressTable이 I/O 요청이 보류 중임을 나타내는 ERROR_IO_PENDING 반환하는 경우 이 함수가 호출됩니다.

  • CallerContext [in]
    안정적인 유니캐스트 IP 주소 테이블을 사용할 수 있을 때 CallerCallback 매개 변수에 지정된 콜백 함수에 전달되는 사용자 컨텍스트입니다.

  • NotificationHandle [in, out]
    드라이버가 안정적인 유니캐스트 IP 주소 테이블을 검색하는 요청을 취소하는 데 사용할 수 있는 핸들을 반환하는 데 사용되는 포인터입니다. NotifyStableUnicastIpAddressTable의 반환 값이 ERROR_IO_PENDING I/O 요청이 보류 중임을 나타내는 경우 이 매개 변수가 반환됩니다.

반환 값

NotifyStableUnicastIpAddressTable 은 STATUS_SUCCESS 반환하고 함수가 즉시 성공하면 안정적인 유니캐스트 IP 테이블이 Table 매개 변수에 반환됩니다.

I/O 요청이 보류 중인 경우 함수는 ERROR_IO_PENDING 반환하고 I/O 요청이 안정적인 유니캐스트 IP 주소 테이블로 완료되면 CallerCallback 매개 변수가 가리키는 함수가 호출됩니다.

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

반환 코드 설명
ERROR_INVALID_HANDLE

잘못된 핸들이 발생한 내부 오류가 발생했습니다.

STATUS_INVALID_PARAMETER

잘못된 매개 변수가 함수에 전달되었습니다. Table 매개 변수가 NULL 포인터이거나 NotificationHandle 매개 변수가 NULL 포인터이거나 Family 매개 변수가 AF_INET, AF_INET6 또는 AF_UNSPEC 않은 경우 이 오류가 반환됩니다.

STATUS_NOT_ENOUGH_MEMORY

메모리가 부족했습니다.

기타

FormatMessage 함수를 사용하여 반환된 오류에 대한 메시지 문자열을 가져옵니다.

설명

주문형 전화 접속 주소를 제외한 모든 유니캐스트 IP 주소는 기본 설정 상태인 경우에만 안정적인 것으로 간주됩니다. 일반적인 유니캐스트 IP 주소 항목의 경우 이 상태는 IpDadStateP 참조로 설정된 IP 주소에 대한 MIB_UNICASTIPADDRESS_ROWDadState 멤버에 해당합니다. 모든 주문형 전화 접속 주소는 자체 안정성 메트릭을 정의합니다. 현재 NotifyStableUnicastIpAddressTable 함수에서 고려하는 유일한 주문형 전화 접속 주소는 Teredo 클라이언트가 로컬 컴퓨터에서 사용하는 유니캐스트 IP 주소입니다.

드라이버는 Family 매개 변수를 AF_INET, AF_INET6 또는 AF_UNSPEC 설정해야 합니다.

NotifyStableUnicastIpAddressTable이 성공하고 STATUS_SUCCESS 반환하면 Table 매개 변수는 로컬 컴퓨터에서 안정적인 유니캐스트 IP 주소 테이블을 반환합니다.

NotifyStableUnicastIpAddressTable이 I/O 요청이 보류 중임을 나타내는 ERROR_IO_PENDING 반환하면 안정적인 유니캐스트 IP 주소 테이블이 CallerCallback 매개 변수의 함수로 반환됩니다.

Teredo 사용하는 유니캐스트 IP 주소가 로컬 컴퓨터에서 사용할 수 있지만 안정적인(정규화된) 상태가 아닌 경우 NotifyStableUnicastIpAddressTable은 ERROR_IO_PENDING 반환하고, 결국 CallerCallback 매개 변수에서 함수를 호출하여 안정적인 유니캐스트 IP 주소 테이블이 반환됩니다. Teredo 주소를 사용할 수 없거나 안정적인 상태이고 다른 유니캐스트 IP 주소가 안정적인 상태인 경우 CallerCallback 매개 변수의 함수는 호출되지 않습니다.

CallerCallback 매개 변수에 지정된 콜백 함수는 VOID 형식의 함수로 정의되어야 합니다. 콜백 함수에 전달되는 매개 변수는 다음과 같습니다.

매개 변수 Description

IN PVOID CallerContext

알림을 위해 드라이버를 등록할 때 NotifyStableUnicastIpAddressTable 함수에 전달되는 CallerContext 매개 변수입니다.

IN PMIB_UNICASTIPADDRESS_TABLE AddressTable

로컬 컴퓨터에서 안정적인 유니캐스트 IP 주소 테이블을 포함하는 MIB_UNICASTIPADDRESS_TABLE 구조체에 대한 포인터입니다.

NotifyStableUnicastIpAddressTable 함수는 주로 Teredo 클라이언트를 사용하는 드라이버에서 사용됩니다.

콜백이 완료된 후 알림을 취소하려면 CancelMibChangeNotify2 함수를 호출하여 NotifyStableUnicastIpAddressTable이 반환하는 NotificationHandle 매개 변수를 전달합니다.

요구 사항

대상 플랫폼

유니버설

버전

Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.

헤더

Netioapi.h(Netioapi.h 포함)

라이브러리

Netio.lib

Irql

< DISPATCH_LEVEL

추가 정보

CancelMibChangeNotify2

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetTeredoPort

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_NOTIFICATION_TYPE

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyTeredoPortChange

NotifyUnicastIpAddressChange

SetUnicastIpAddressEntry