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]
在收到介面通知時,傳遞至 Callback 參數中指定的回呼函式的使用者內容。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。
回 呼參數中指定的 回呼函式調用會序列化。 回呼函式應該定義為 VOID類型的函式。 傳遞至回呼函式的參數包括下列專案。
參數 | 描述 |
---|---|
IN PVOID CallerCoNtext |
呼叫器CoNtext參數,在註冊驅動程式以取得變更通知時傳遞給NotifyRouteChange2函式。 |
IN 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 |