共用方式為


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作系統上,Ws2def.h 頭文件中定義了 Family 參數的可能值。 請注意,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。

串行化 Callback 參數中指定的回呼函式調用。 回呼函式應定義為類型為 VOID的函式。 傳遞至回呼函式的參數包括下列各項。

參數 描述

IN PVOID CallerContext

CallerContext 參數,在註冊驅動程式以進行變更通知時,傳遞給 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

另請參閱

CancelMibChangeNotify2

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_NOTIFICATION_TYPE

SetIpForwardEntry2