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 |