NotifyRouteChange2 함수
NotifyRouteChange2 함수는 로컬 컴퓨터의 IP 경로 항목 변경에 대한 알림을 받을 드라이버를 등록합니다.
구문
NETIOAPI_API NotifyRouteChange2(
_In_ ADDRESS_FAMILY Family,
_In_ PIPFORWARD_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]
초기화할 MIB_IPINTERFACE_ROW 구조체에 대한 포인터입니다. 반환이 성공적이면 이 구조체의 멤버가 로컬 컴퓨터의 인터페이스에 대한 기본 정보로 초기화됩니다.
반환 값
NotifyRouteChange2 는 함수가 성공하면 STATUS_SUCCESS 반환합니다.
함수가 실패하면 NotifyRouteChange2 는 다음 오류 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
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 형식의 함수로 정의되어야 합니다. 콜백 함수에 전달되는 매개 변수는 다음과 같습니다.
매개 변수 | Description |
---|---|
IN PVOID CallerContext |
변경 알림을 위해 드라이버를 등록할 때 NotifyRouteChange2 함수에 전달되는 CallerContext 매개 변수입니다. |
PMIB_IPFORWARD_ROW2 행 선택 사항 |
변경된 IP 경로 항목의 MIB_IPFORWARD_ROW2 항목에 대한 포인터입니다. 이 매개 변수는 NotificationType 매개 변수에서 콜백 함수에 전달되는 MIB_NOTIFICATION_TYPE 값이 MibInitialNotification으로 설정된 경우 NULL 포인터입니다. 이 상황은 변경 알림을 위해 드라이버를 등록할 때 NotifyRouteChange2에 전달된 InitialNotification 매개 변수가 TRUE로 설정된 경우에만 발생할 수 있습니다. |
IN MIB_NOTIFICATION_TYPE NotificationType |
알림 유형입니다. 이 멤버는 MIB_NOTIFICATION_TYPE 열거형 형식의 값 중 하나일 수 있습니다. |
변경 알림에 대한 드라이버를 등록 취소하려면 CancelMibChangeNotify2 함수를 호출하여 NotifyRouteChange2가 반환하는 NotificationHandle 매개 변수를 전달합니다.
요구 사항
대상 플랫폼 |
유니버설 |
버전 |
Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
헤더 |
Netioapi.h(Netioapi.h 포함) |
라이브러리 |
Netio.lib |
Irql |
< DISPATCH_LEVEL |