다음을 통해 공유


NotifyTeredoPortChange 함수

NotifyTeredoPortChange 함수는 Teredo 클라이언트가 로컬 컴퓨터의 Teredo 서비스 포트에 사용하는 UDP 포트 번호 변경에 대한 알림을 받을 드라이버를 등록합니다.

구문

NETIOAPI_API NotifyTeredoPortChange(
  _In_    PTEREDO_PORT_CHANGE_CALLBACK Callback,
  _In_    PVOID                        CallerContext,
  _In_    BOOLEAN                      InitialNotification,
  _Inout_ HANDLE *                     NotificationHandle
);

매개 변수

  • 콜백 [in]
    Teredo 클라이언트 포트 변경이 발생할 때 호출할 함수에 대한 포인터입니다. 이 함수는 Teredo 포트 변경 알림이 수신될 때 호출됩니다.

  • CallerContext [in]
    Teredo 포트 변경 알림을 받을 때 콜백 매개 변수에 지정된 콜백 함수에 전달되는 사용자 컨텍스트입니다.

  • InitialNotification [in]
    드라이버 변경 알림 등록이 완료된 직후 콜백을 호출해야 하는지 여부를 나타내는 값입니다. 이 초기 알림은 Teredo 클라이언트 포트에 변경이 발생했음을 나타내지 않습니다. 이 매개 변수는 콜백이 등록되었음을 확인합니다.

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

반환 값

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

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

반환 코드 설명
ERROR_INVALID_HANDLE

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

STATUS_INVALID_PARAMETER

잘못된 매개 변수가 함수에 전달되었습니다. 이 오류는 콜백 매개 변수가 NULL 포인터인 경우 반환됩니다.

STATUS_NOT_ENOUGH_MEMORY

메모리가 부족했습니다.

기타

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

설명

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

매개 변수 Description

IN PVOID CallerContext

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

USHORT 포트에서

Teredo 클라이언트가 현재 사용하는 UDP 포트 번호입니다. NotificationType 매개 변수에서 콜백 함수에 전달되는 MIB_NOTIFICATION_TYPE 값이 MibInitialNotification으로 설정된 경우 이 매개 변수는 0입니다. 이 상황은 변경 알림을 위해 드라이버를 등록할 때 NotifyTeredoPortChange에 전달된 InitialNotification 매개 변수가 TRUE로 설정된 경우에만 발생할 수 있습니다.

IN MIB_NOTIFICATION_TYPE NotificationType

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

드라이버는 GetTeredoPort 함수를 사용하여 Teredo 클라이언트가 Teredo 서비스 포트에 사용한 초기 UDP 포트 번호를 검색할 수 있습니다.

Teredo 포트는 동적이며 로컬 컴퓨터에서 Teredo 클라이언트가 다시 시작될 때마다 변경할 수 있습니다. 드라이버는 notifyTeredoPortChange 함수를 호출하여 Teredo 서비스 포트가 변경될 때 알림을 받도록 등록할 수 있습니다.

또한 Teredo 클라이언트는 RFC 4380에 정의된 대로 멀티캐스트 IPv4 주소 224.0.0.253에서 전송되는 멀티캐스트 트래픽을 수신 대기하는 데 정적 UDP 포트 3544를 사용합니다. 자세한 내용은 Teredo: UDPthrough NAT(네트워크 주소 변환)를 통해 IPv6 터널링을 참조하세요.

NotifyTeredoPortChange 함수는 주로 방화벽 드라이버에서 들어오고 나가는 Teredo 트래픽을 사용하도록 적절한 예외를 구성하는 데 사용됩니다.

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

요구 사항

대상 플랫폼

유니버설

버전

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

헤더

Netioapi.h(Netioapi.h 포함)

라이브러리

Netio.lib

Irql

< DISPATCH_LEVEL

추가 정보

CancelMibChangeNotify2

GetTeredoPort

NotifyStableUnicastIpAddressTable