다음을 통해 공유


NotifyIpInterfaceChange 함수

NotifyIpInterfaceChange 함수는 로컬 컴퓨터의 모든 IP 인터페이스, IPv4 인터페이스 또는 IPv6 인터페이스 변경에 대한 알림을 받을 드라이버를 등록합니다.

통사론

NETIOAPI_API NotifyIpInterfaceChange(
  _In_    ADDRESS_FAMILY               Family,
  _In_    PIPINTERFACE_CHANGE_CALLBACK Callback,
  _In_    PVOID                        CallerContext,
  _In_    BOOLEAN                      InitialNotification,
  _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 변경 알림에 대해서만 알림을 받도록 드라이버를 등록합니다.

    • AF_INET6
      IPv6 주소 패밀리입니다. 이 값을 지정하면 이 함수는 IPv6 변경 알림에 대해서만 드라이버를 등록합니다.

    • AF_UNSPEC
      주소 패밀리가 지정되지 않았습니다. 이 값을 지정하면 이 함수는 IPv4 및 IPv6 변경 내용에 대해 알림을 받을 드라이버를 등록합니다.

  • 콜백 [in]
    변경이 발생할 때 호출할 함수에 대한 포인터입니다. 이 함수는 인터페이스 알림을 받을 때 호출됩니다.

  • CallerContext [in]
    인터페이스 알림이 수신될 때 콜백 매개 변수에 지정된 콜백 함수에 전달되는 사용자 컨텍스트입니다.

  • InitialNotification [in]
    변경 알림 등록이 완료된 직후 콜백을 호출해야 하는지 여부를 나타내는 값입니다. 이 초기 알림은 IP 인터페이스에 변경이 발생했음을 나타내지 않습니다. 콜백이 등록되었음을 확인하는 이 매개 변수의 용도입니다.

  • NotificationHandle [in, out]
    나중에 변경 알림을 등록 취소하는 데 사용할 수 있는 핸들을 반환하는 데 사용되는 포인터입니다. 성공하면 알림 핸들이 이 매개 변수에 반환됩니다. 오류가 발생하면 NULL 반환됩니다.

반환 값

NotifyIpInterfaceChange 함수가 성공하면 STATUS_SUCCESS 반환합니다.

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

반환 코드 묘사
ERROR_INVALID_HANDLE

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

STATUS_INVALID_PARAMETER

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

STATUS_NOT_ENOUGH_MEMORY

메모리가 부족했습니다.

기타

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

발언

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

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

매개 변수 묘사

IN PVOID CallerContext

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

IN PMIB_IPINTERFACE_ROW Row OPTIONAL

변경된 인터페이스의 MIB_IPINTERFACE_ROW 항목에 대한 포인터입니다. 콜백 함수에 NotificationType 매개 변수에 전달된 MIB_NOTIFICATION_TYPE 값이 MibInitialNotification 설정된 경우 이 매개 변수는 NULL 포인터입니다. 이 상황은 변경 알림을 위해 드라이버를 등록할 때 NotifyIpInterfaceChange 전달된 InitialNotification 매개 변수가 TRUE 설정된 경우에만 발생할 수 있습니다.

IN MIB_NOTIFICATION_TYPE NotificationType

알림 유형입니다. 이 멤버는 MIB_NOTIFICATION_TYPE 열거형 형식의 값 중 하나일 수 있습니다.

변경 알림에 대한 드라이버를 등록 취소하려면 CancelMibChangeNotify2 함수를 호출하여 NotifyIpInterfaceChange 반환할NotificationHandle 매개 변수를 전달합니다.

요구 사항

대상 플랫폼

유니버설

버전

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

머리글

Netioapi.h(Netioapi.h 포함)

도서관

Netio.lib

IRQL

< DISPATCH_LEVEL

참고 항목

CancelMibChangeNotify2

GetIfEntry2

GetIfStackTable

GetIfTable2

GetInvertedIfStackTable

GetIpInterfaceEntry

InitializeIpInterfaceEntry

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_NOTIFICATION_TYPE

setIpInterfaceEntry