共用方式為


NotifyUnicastIpAddressChange 函式

NotifyUnicastIpAddressChange函式會註冊驅動程式,以通知本機電腦上所有單播 IP 介面、單播 IPv4 位址或單播 IPv6 位址的變更。

語法

NETIOAPI_API NotifyUnicastIpAddressChange(
  _In_    ADDRESS_FAMILY                     Family,
  _In_    PUNICAST_IPADDRESS_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]
    發生變更時要呼叫之函式的指標。 收到單播 IP 位址通知時,會呼叫此函式。

  • CallerCoNtext [in]
    在收到介面通知時,傳遞至 Callback 參數中指定的回呼函式的使用者內容。

  • InitialNotification [in]
    值,指出在註冊變更通知完成之後,是否應該立即呼叫回呼。 這個初始通知並不表示單播 IP 位址發生變更。 此參數提供回呼已註冊的確認。

  • NotificationHandle [in, out]
    指標,用來傳回驅動程式稍後可用來取消註冊驅動程式變更通知的控制碼。 成功時,此參數會傳回通知控制碼。 如果發生錯誤,則會傳回 Null

傳回值

如果函式成功,NotifyUnicastIpAddressChange會傳回STATUS_SUCCESS。

如果函式失敗, NotifyUnicastIpAddressChange 會傳回下列其中一個錯誤碼:

傳回碼 描述
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參數,當它註冊變更通知的驅動程式時,會傳遞至NotifyUnicastIpAddressChange函式。

IN PMIB_UNICASTIPADDRESS_ROW 選擇性

已變更之單播 IP 位址 之MIB_UNICASTIPADDRESS_ROW 專案的指標。 當NotificationType參數中傳遞至回呼函式的MIB_NOTIFICATION_TYPE值設定為MibInitialNotification時,這個參數是Null指標。 只有在向NotifyUnicastIpAddressChange 傳遞至 NotifyUnicastIpAddressChangeInitialNotification參數在註冊驅動程式以取得變更通知時,才會發生這種情況。

IN MIB_NOTIFICATION_TYPE NotificationType

通知類型。 這個成員可以是 MIB_NOTIFICATION_TYPE 列舉類型的其中一個值。

若要取消註冊變更通知的驅動程式,請呼叫CancelMibChangeNotify2函式,並傳遞NotifyUnicastIpAddressChange傳回的NotificationHandle參數。

規格需求

目標平台

普遍

版本

可在 Windows Vista 和更新版本的 Windows 作業系統中使用。

標頭

Netioapi.h (包含 Netioapi.h)

程式庫

Netio.lib

IRQL

< DISPATCH_LEVEL

另請參閱

CancelMibChangeNotify2

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

GetUnicastIpAddressEntry

GetUnicastIpAddressTable

InitializeUnicastIpAddressEntry

MIB_NOTIFICATION_TYPE

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyStableUnicastIpAddressTable

SetUnicastIpAddressEntry