SetIpInterfaceEntry 函式
SetIpInterfaceEntry 函式會在本機電腦上設定 IP 介面的屬性。
語法
NETIOAPI_API SetIpInterfaceEntry(
_Inout_ PMIB_IPINTERFACE_ROW Row
);
參數
- 資料列 [in, out]
介面 MIB_IPINTERFACE_ROW 結構專案的指標。 在輸入時,驅動程式必須將MIB_IPINTERFACE_ROW的 Family 成員設定為AF_INET6或AF_INET,而且驅動程式必須指定 MIB_IPINTERFACE_ROW 的 InterfaceLuid 成員或 InterfaceIndex 成員。 成功傳回時,如果指定MIB_IPINTERFACE_ROW專案的InterfaceIndex成員,就會填入MIB_IPINTERFACE_ROW的InterfaceLuid成員。
傳回值
如果函式成功,SetIpInterfaceEntry會傳回STATUS_SUCCESS。
如果函式失敗, SetIpInterfaceEntry 會傳回下列其中一個錯誤碼:
傳回碼 | 描述 |
---|---|
STATUS_INVALID_PARAMETER | 不正確參數已傳遞至 函式。 如果在Row參數中傳遞Null指標、Row 參數所指向之MIB_IPINTERFACE_ROW結構的Family成員未指定為 AF_INET 或 AF_INET6,或是未指定MIB_IPINTERFACE_ROW 結構的InterfaceLuid和InterfaceIndex成員,就會傳回此錯誤。 |
STATUS_NOT_FOUND | 找不到指定的介面。 如果函式找不到Row參數所指向之 MIB_IPINTERFACE_ROW 結構之InterfaceLuid或InterfaceIndex成員所指定的網路介面,就會傳回這個錯誤。 |
其他 | 使用 FormatMessage 函式來取得傳回錯誤的訊息字串。 |
備註
您的驅動程式必須使用 InitializeIpInterfaceEntry 函式,以預設值初始化 MIB_IPINTERFACE_ROW 結構專案的欄位。 然後,驅動程式可以變更其想要修改之MIB_IPINTERFACE_ROW專案中的欄位,然後呼叫 SetIpInterfaceEntry 函式 。
在輸入時,驅動程式必須初始化 Row 參數指向 的下列MIB_IPINTERFACE_ROW結構成員。
系列
設定為 AF_INET 或 AF_INET6。InterfaceLuid 或 InterfaceIndex
這些成員會依照稍早所列的順序使用。 因此,如果指定 InterfaceLuid ,則會使用此成員來判斷介面。 如果 InterfaceLuid 成員未設定任何值, (此成員的值設定為零) ,則 Next 會使用 InterfaceIndex 成員來判斷介面。
輸出時,如果指定InterfaceIndex,則 Row參數所指向之MIB_IPINTERFACE_ROW結構的InterfaceLuid成員會填入。
SetIpInterfaceEntry會忽略MaxReassemblySize、MinRouterAdvertisementInterval、MaxRouterAdvertisementInterval、Connected、SupportsWakeUpPatterns、SupportsNeighborDiscovery、SupportsRouterDiscovery、ReachableTime、TransmitOffload 及 Row參數指向之MIB_IPINTERFACE_ROW結構的ReceiveOffload成員。 這些成員是由網路堆疊所設定,無法使用 SetIpInterfaceEntry 函式 來變更。
不同安全性需求之多個網路的不特殊許可權同時存取會建立安全性漏洞,並讓不特殊許可權的驅動程式不小心在兩個網路之間轉寄資料。 典型的範例是同時存取虛擬私人網路 (VPN) 和網際網路。 Windows Server 2003 和 Windows XP 作業系統會使用弱式主機模型,其中遠端存取服務 (RAS) 藉由透過其他介面增加所有預設路由的路由計量來防止這類同時存取。 因此,所有流量都會透過 VPN 介面路由傳送,因而中斷其他網路連線。
根據預設,在 Windows Vista 和更新版本的 Windows 作業系統上,會使用強主機模型。 如果使用 GetBestRoute2 函式在路由查閱中指定來源 IP 位址,路由查閱會限制為來源 IP 位址的介面。 RAS 修改路由計量沒有任何作用,因為潛在路由清單甚至沒有 VPN 介面的路由,這可讓流量流向網際網路。 您的驅動程式可以使用 MIB_IPINTERFACE_ROW 結構的 DisableDefaultRoutes 成員,在介面上使用預設路由來停用。 VPN 用戶端可以使用此成員作為安全性措施,以限制 VPN 用戶端不需要分割通道時分割通道。 VPN 用戶端可以在需要時呼叫 SetIpInterfaceEntry 函式,將 DisableDefaultRoutes 成員設定為 TRUE 。 VPN 用戶端可以藉由呼叫GetIpInterfaceEntry函式來查詢DisableDefaultRoutes成員的目前狀態。
規格需求
目標平台 |
普遍 |
版本 |
可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
標頭 |
Netioapi.h (包括 Netioapi.h) |
程式庫 |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |