IP_ADAPTER_ADDRESSES_LH 結構 (iptypes.h)
IP_ADAPTER_ADDRESSES結構是特定配接器之位址連結清單的標頭節點。 這個結構可以同時當做 IP_ADAPTER_ADDRESSES 結構連結清單的一部分使用。
語法
typedef struct _IP_ADAPTER_ADDRESSES_LH {
union {
ULONGLONG Alignment;
struct {
ULONG Length;
IF_INDEX IfIndex;
};
};
struct _IP_ADAPTER_ADDRESSES_LH *Next;
PCHAR AdapterName;
PIP_ADAPTER_UNICAST_ADDRESS_LH FirstUnicastAddress;
PIP_ADAPTER_ANYCAST_ADDRESS_XP FirstAnycastAddress;
PIP_ADAPTER_MULTICAST_ADDRESS_XP FirstMulticastAddress;
PIP_ADAPTER_DNS_SERVER_ADDRESS_XP FirstDnsServerAddress;
PWCHAR DnsSuffix;
PWCHAR Description;
PWCHAR FriendlyName;
BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
ULONG PhysicalAddressLength;
union {
ULONG Flags;
struct {
ULONG DdnsEnabled : 1;
ULONG RegisterAdapterSuffix : 1;
ULONG Dhcpv4Enabled : 1;
ULONG ReceiveOnly : 1;
ULONG NoMulticast : 1;
ULONG Ipv6OtherStatefulConfig : 1;
ULONG NetbiosOverTcpipEnabled : 1;
ULONG Ipv4Enabled : 1;
ULONG Ipv6Enabled : 1;
ULONG Ipv6ManagedAddressConfigurationSupported : 1;
};
};
ULONG Mtu;
IFTYPE IfType;
IF_OPER_STATUS OperStatus;
IF_INDEX Ipv6IfIndex;
ULONG ZoneIndices[16];
PIP_ADAPTER_PREFIX_XP FirstPrefix;
ULONG64 TransmitLinkSpeed;
ULONG64 ReceiveLinkSpeed;
PIP_ADAPTER_WINS_SERVER_ADDRESS_LH FirstWinsServerAddress;
PIP_ADAPTER_GATEWAY_ADDRESS_LH FirstGatewayAddress;
ULONG Ipv4Metric;
ULONG Ipv6Metric;
IF_LUID Luid;
SOCKET_ADDRESS Dhcpv4Server;
NET_IF_COMPARTMENT_ID CompartmentId;
NET_IF_NETWORK_GUID NetworkGuid;
NET_IF_CONNECTION_TYPE ConnectionType;
TUNNEL_TYPE TunnelType;
SOCKET_ADDRESS Dhcpv6Server;
BYTE Dhcpv6ClientDuid[MAX_DHCPV6_DUID_LENGTH];
ULONG Dhcpv6ClientDuidLength;
ULONG Dhcpv6Iaid;
PIP_ADAPTER_DNS_SUFFIX FirstDnsSuffix;
} IP_ADAPTER_ADDRESSES_LH, *PIP_ADAPTER_ADDRESSES_LH;
成員
Alignment
類型: ULONGLONG
保留的。 編譯器用來對齊 結構。
Length
類型: ULONG
這個結構的長度,以位元組為單位。 請注意,在 Windows XP 上,SP1 和更新版本以及 Windows Vista 和更新版本的 IP_ADAPTER_ADDRESSES 結構長度已變更。
IfIndex
類型: DWORD
與這些位址相關聯的 IPv4 介面索引。 在 Windows Server 2003 和 Windows XP 上,如果介面上無法使用 IPv4,則此成員為零。
Next
類型: 結構_IP_ADAPTER_ADDRESSES*
清單中下一個配接器位址結構的指標。
AdapterName
類型: PCHAR
包含這些位址相關聯之配接器名稱的字元陣列。 不同于介面卡的易記名稱, AdapterName 中指定的配接器名稱是永久的,而且使用者無法修改。
FirstUnicastAddress
類型: PIP_ADAPTER_UNICAST_ADDRESS
介面卡 IP 單播位址連結清單中第一 個IP_ADAPTER_UNICAST_ADDRESS 結構的指標。
FirstAnycastAddress
類型: PIP_ADAPTER_ANYCAST_ADDRESS
介面卡 IP 任何播位址連結清單中的第一個 IP_ADAPTER_ANYCAST_ADDRESS 結構的指標。
FirstMulticastAddress
類型: PIP_ADAPTER_MULTICAST_ADDRESS
介面卡 IP 多播地址清單中的第一個 IP_ADAPTER_MULTICAST_ADDRESS 結構的指標。
FirstDnsServerAddress
類型: PIP_ADAPTER_DNS_SERVER_ADDRESS
介面卡之 DNS 伺服器位址連結清單中的第一個 IP_ADAPTER_DNS_SERVER_ADDRESS 結構的指標。
DnsSuffix
類型: PWCHAR
與這個配接器相關聯的網域名稱系統 (DNS) 尾碼。
Description
類型: PWCHAR
配接器的描述。 這個成員是唯讀的。
FriendlyName
類型: PWCHAR
配接器的使用者易記名稱。 例如:「區域網路 1」。此名稱會出現在 ipconfig 命令列程式和 Connection 資料夾等內容中。 此成員是唯讀的,而且無法使用任何 IP 協助程式函式來修改。
此成員是 NDIS 所使用的 ifAlias 欄位,如 RFC 2863中所述。 安裝 NDIS 驅動程式時,NDIS 介面提供者可以設定 ifAlias 欄位。 針對 NDIS 迷你埠驅動程式,此欄位是由 NDIS 設定。
PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH]
類型: BYTE[MAX_ADAPTER_ADDRESS_LENGTH]
介面卡的 Media 存取控制 (MAC) 位址。 例如,在乙太網路上,此成員會指定乙太網路硬體位址。
PhysicalAddressLength
類型: DWORD
PhysicalAddress成員中指定的位址長度,以位元組為單位。 對於沒有資料連結層的介面,此值為零。
Flags
類型: DWORD
一組旗標,指定配接器的各種設定。 這些值定義于 Iptypes.h 標頭檔中。 這些旗標位的組合是可行的。
DdnsEnabled
RegisterAdapterSuffix
Dhcpv4Enabled
ReceiveOnly
NoMulticast
Ipv6OtherStatefulConfig
NetbiosOverTcpipEnabled
Ipv4Enabled
Ipv6Enabled
Ipv6ManagedAddressConfigurationSupported
Mtu
類型: DWORD
最大傳輸單位 (MTU) 大小,以位元組為單位。
IfType
類型: DWORD
由網際網路指派名稱授權單位所定義的介面類別型, (IANA) 。 介面類別型的可能值會列在 Ipifcons.h 標頭檔中。
下表列出介面類別型的一般值,但可能有許多其他值。
值 | 意義 |
---|---|
|
有些其他類型的網路介面。 |
|
乙太網路網路介面。 |
|
權杖通道網路介面。 |
|
PPP 網路介面。 |
|
軟體回送網路介面。 |
|
ATM 網路介面。 |
|
IEEE 802.11 無線網路介面。
在 Windows Vista 和更新版本上,無線網路卡會回報為 IF_TYPE_IEEE80211。 在舊版 Windows 上,無線網路卡會回報為 IF_TYPE_ETHERNET_CSMACD。 在具有 SP3 的 Windows XP 上,以及在已安裝 SP2 的無線區域網路 API for Windows XP 的 Sp2 x86 上, WlanEnumInterfaces 函式可用來列舉本機電腦上的無線介面。 |
|
通道類型封裝網路介面。 |
|
IEEE 1394 (Firewire) 高效能序列匯流排網路介面。 |
OperStatus
類型: IF_OPER_STATUS
RFC 2863 中所定義的介面作業狀態。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2863.txt。 這個成員可以是Iftypes.h標頭檔中所定義之IF_OPER_STATUS列舉類型的其中一個值。 在 Windows Vista 和更新版本上,標頭檔已重新組織,而且此列舉定義于 Ifdef.h 標頭檔中。
Ipv6IfIndex
類型: DWORD
IPv6 IP 位址的介面索引。 如果介面上無法使用 IPv6,則此成員為零。
ZoneIndices[16]
類型: DWORD[16]
用於撰寫 sockaddr 結構之每個範圍層級的範圍識別碼陣列。 SCOPE_LEVEL列舉是用來編制陣列的索引。 在 IPv6 上,單一介面可能會根據範圍識別碼指派多個 IPv6 多播位址。
FirstPrefix
類型: PIP_ADAPTER_PREFIX
介面卡之 IP 配接器前置詞連結清單中的第一 個IP_ADAPTER_PREFIX 結構的指標。
TransmitLinkSpeed
類型: ULONG64
介面卡傳輸連結每秒位的目前速度。
ReceiveLinkSpeed
類型: ULONG64
介面卡接收連結每秒位的目前速度。
FirstWinsServerAddress
類型: PIP_ADAPTER_WINS_SERVER_ADDRESS_LH
Windows 網際網路名稱服務連結清單中的第一個 IP_ADAPTER_WINS_SERVER_ADDRESS 結構的指標, (WINS) 介面卡的伺服器位址。
FirstGatewayAddress
類型: PIP_ADAPTER_GATEWAY_ADDRESS_LH
介面卡閘道連結清單中第一個 IP_ADAPTER_GATEWAY_ADDRESS 結構的指標。
Ipv4Metric
類型: ULONG
介面卡位址的 IPv4 介面計量。 此成員僅適用于 IPv4 介面卡位址。
用來計算 IPv4 路由喜好設定的實際路由計量是MIB_IPFORWARD_ROW2結構之計量成員中指定的路由計量位移總和,以及 IPv4 在此成員中指定的介面計量。
Ipv6Metric
類型: ULONG
介面卡位址的 IPv6 介面計量。 此成員僅適用于 IPv6 配接器位址。
用來計算 IPv6 路由喜好設定的實際路由計量是MIB_IPFORWARD_ROW2結構之計量成員中指定的路由計量位移總和,以及 IPv4 在此成員中指定的介面計量。
Luid
類型: IF_LUID
介面卡位址的介面 LUID。
Dhcpv4Server
類型: SOCKET_ADDRESS
介面卡位址之 DHCP 伺服器的 IPv4 位址。 此成員僅適用于使用 DHCP 設定的 IPv4 介面卡位址。
CompartmentId
類型: NET_IF_COMPARTMENT_ID
配接器位址的路由區間識別碼。
NetworkGuid
類型: NET_IF_NETWORK_GUID
與介面所屬網路相關聯的 GUID 。
如果介面提供者無法提供網路 GUID,這個成員可以是零 GUID。 在此情況下,介面是由預設網路中 NDIS 註冊。
ConnectionType
類型: NET_IF_CONNECTION_TYPE
配接器位址的介面連線類型。
這個成員可以是Ifdef.h標頭檔中所定義NET_IF_CONNECTION_TYPE列舉類型的其中一個值。
TunnelType
類型: TUNNEL_TYPE
如果配接器位址是通道,通道所使用的封裝方法。
Dhcpv6Server
類型: SOCKET_ADDRESS
介面卡位址之 DHCPv6 伺服器的 IPv6 位址。 此成員僅適用于使用 DHCPv6 設定的 IPv6 介面卡位址。 目前不支援此結構成員,並保留供日後使用。
Dhcpv6ClientDuid[MAX_DHCPV6_DUID_LENGTH]
類型: BYTE[MAX_DHCPV6_DUID_LENGTH]
DHCPv6 用戶端的 DHCP 唯一識別碼 (DUID) 。 此成員僅適用于使用 DHCPv6 設定的 IPv6 介面卡位址。
Dhcpv6ClientDuidLength
類型: ULONG
DHCPv6 用戶端的 DHCP 唯一識別碼長度,以位元組為單位 (DUID) 。 此成員僅適用于使用 DHCPv6 設定的 IPv6 介面卡位址。
Dhcpv6Iaid
類型: ULONG
DHCPv6 用戶端所選擇之身分識別關聯的識別碼。 此成員僅適用于使用 DHCPv6 設定的 IPv6 介面卡位址。
FirstDnsSuffix
類型: PIP_ADAPTER_DNS_SUFFIX
介面卡之 DNS 尾碼連結清單中第一個 IP_ADAPTER_DNS_SUFFIX 結構的指標。
備註
GetAdaptersAddresses函式會擷取 IPv4 和 IPv6 位址的資訊,並傳回此資訊作為IP_ADAPTER_ADDRESSES結構的連結清單
在 IfIndex和Ipv6IfIndex成員中指定的配接器索引值可能會在停用後再啟用時或在其他情況下變更,且不應視為持續性。
IfType成員的值定義于Ipifcons.h標頭檔中。 目前僅支援 IfType 成員描述中所列的可能值。
windows XP 上 SP1 和更新版本變更 IP_ADAPTER_ADDRESSES 結構的大小。 Windows Vista 和更新版本上 IP_ADAPTER_ADDRESSES 結構的大小也會變更。 windows Vista 上的 IP_ADAPTER_ADDRESSES 結構大小也會隨著 SP1 和更新版本和 Windows Server 2008 和更新版本而變更。 Length成員應該用來判斷正在使用哪一個版本的IP_ADAPTER_ADDRESSES結構。
Windows XP SP1 和更新版本上的 IP_ADAPTER_ADDRESSES 結構版本新增了下列新成員: Ipv6IfIndex、 ZoneIndices和 FirstPrefix。
Windows Vista 和更新版本上的IP_ADAPTER_ADDRESSES結構版本新增了下列成員:TransmitLinkSpeed、ReceiveLinkSpeed、FirstWinsServerAddress、FirstGatewayAddress、Ipv4Metric、Ipv6Metric、Luid、Dhcpv4Server、CompartmentId、NetworkGuid、ConnectionType、TunnelType、Dhcpv6Server、Dhcpv6ClientDuid、 Dhcpv6ClientDuidLength和Dhcpv6Iaid。
Windows Vista 上具有 SP1 和更新版本和 Windows Server 2008 及更新版本的 IP_ADAPTER_ADDRESSES 結構版本,新增了下列新成員: FirstDnsSuffix。
Ipv4Metric和Ipv6Metric成員可用來排定連線到本機電腦上多個介面之路由的路由計量的優先順序。
GetAdaptersAddresses函式所傳回之 FirstUnicastAddress成員所指向的連結IP_ADAPTER_UNICAST_ADDRESS結構順序不會反映 IP 位址新增至介面卡的順序,而且在 Windows 版本之間可能會有所不同。 同樣地,FirstAnycastAddress成員所指向的連結IP_ADAPTER_ANYCAST_ADDRESS結構順序,以及FirstMulticastAddress成員所指向之連結IP_ADAPTER_MULTICAST_ADDRESS結構的順序,不會反映 IP 位址新增至介面卡的順序,而且在 Windows 版本之間可能會有所不同。
此外,FirstUnicastAddress成員所指向的連結IP_ADAPTER_UNICAST_ADDRESS結構,以及FirstPrefix成員所指向的連結IP_ADAPTER_PREFIX結構會維護為作業系統個別的內部連結清單。 因此,FirstUnicastAddress成員所指向的連結IP_ADAPTER_UNICAST_ADDRESS結構順序與FirstPrefix成員所指向之連結IP_ADAPTER_PREFIX結構的順序沒有任何關聯性。
在 Windows Vista 和更新版本上,FirstPrefix成員指向的連結IP_ADAPTER_PREFIX結構包含指派給介面卡之每個 IP 位址的三個 IP 介面卡前置詞。 其中包括主機 IP 位址首碼、子網 IP 位址首碼,以及子網廣播 IP 位址首碼。 此外,每個介面卡都有多播位址首碼和廣播位址首碼。
在 Windows XP 上,SP1 和更新版本在 Windows Vista 之前,FirstPrefix成員所指向的連結IP_ADAPTER_PREFIX結構只會包含指派給介面卡之每個 IP 位址的單一 IP 介面卡前置詞。
在 Windows SDK 中,用於 Windows Vista 和更新版本的 結構版本會定義為 IP_ADAPTER_ADDRESSES_LH。 在 Microsoft Windows 軟體發展工具組 (SDK) 中,要用於舊版系統上的這個結構版本,包括 Windows XP sp1 和更新版本會定義為 IP_ADAPTER_ADDRESSES_XP。 當編譯應用程式時,如果目標平臺是 Windows Vista,且稍後 (NTDDI_VERSION >= NTDDI_LONGHORN
、 _WIN32_WINNT >= 0x0600
或 WINVER >= 0x0600
) , 則IP_ADAPTER_ADDRESSES_LH 結構會依 IP_ADAPTER_ADDRESSES 結構進行類型定義。 如果目標平臺不是 Windows Vista 和更新版本,編譯應用程式時, IP_ADAPTER_ADDRESSES_XP 結構會依 IP_ADAPTER_ADDRESSES 結構進行類型定義。
SOCKET_ADDRESS結構用於IP_ADAPTER_ADDRESSES結構中。 在針對 Windows Vista 和更新版本發行的 Windows SDK 上,標頭檔的組織已變更,而且SOCKET_ADDRESS結構定義在Winsock2.h標頭檔自動包含的Ws2def.h標頭檔中。 在 Windows Server 2003 和 Windows XP 發行的平臺軟體發展工具組 (SDK) 上, SOCKET_ADDRESS 結構會在 Winsock2.h 標頭檔中宣告。 若要使用IP_ADAPTER_ADDRESSES結構,必須在Iphlpapi.h標頭檔之前包含Winsock2.h標頭檔。
範例
此範例會擷取與系統相關聯之介面卡 的IP_ADAPTER_ADDRESSES 結構,並列印每個介面卡介面的一些成員。
#include <winsock2.h>
#include <iphlpapi.h>
#include <stdio.h>
#pragma comment(lib, "IPHLPAPI.lib")
#define MALLOC(x) HeapAlloc(GetProcessHeap(), 0, (x))
#define FREE(x) HeapFree(GetProcessHeap(), 0, (x))
/* Note: could also use malloc() and free() */
int __cdecl main(int argc, char **argv)
{
/* Declare and initialize variables */
DWORD dwSize = 0;
DWORD dwRetVal = 0;
unsigned int i = 0;
// Set the flags to pass to GetAdaptersAddresses
ULONG flags = GAA_FLAG_INCLUDE_PREFIX;
// default to unspecified address family (both)
ULONG family = AF_UNSPEC;
LPVOID lpMsgBuf = NULL;
PIP_ADAPTER_ADDRESSES pAddresses = NULL;
ULONG outBufLen = 0;
PIP_ADAPTER_ADDRESSES pCurrAddresses = NULL;
PIP_ADAPTER_UNICAST_ADDRESS pUnicast = NULL;
PIP_ADAPTER_ANYCAST_ADDRESS pAnycast = NULL;
PIP_ADAPTER_MULTICAST_ADDRESS pMulticast = NULL;
IP_ADAPTER_DNS_SERVER_ADDRESS *pDnServer = NULL;
IP_ADAPTER_PREFIX *pPrefix = NULL;
if (argc != 2) {
printf(" Usage: getadapteraddresses family\n");
printf(" getadapteraddresses 4 (for IPv4)\n");
printf(" getadapteraddresses 6 (for IPv6)\n");
printf(" getadapteraddresses A (for both IPv4 and IPv6)\n");
exit(1);
}
if (atoi(argv[1]) == 4)
family = AF_INET;
else if (atoi(argv[1]) == 6)
family = AF_INET6;
outBufLen = sizeof (IP_ADAPTER_ADDRESSES);
pAddresses = (IP_ADAPTER_ADDRESSES *) MALLOC(outBufLen);
// Make an initial call to GetAdaptersAddresses to get the
// size needed into the outBufLen variable
if (GetAdaptersAddresses(family, flags, NULL, pAddresses, &outBufLen)
== ERROR_BUFFER_OVERFLOW) {
FREE(pAddresses);
pAddresses = (IP_ADAPTER_ADDRESSES *) MALLOC(outBufLen);
}
if (pAddresses == NULL) {
printf("Memory allocation failed for IP_ADAPTER_ADDRESSES struct\n");
exit(1);
}
// Make a second call to GetAdaptersAddresses to get the
// actual data we want
printf("Memory allocated for GetAdapterAddresses = %d bytes\n", outBufLen);
printf("Calling GetAdaptersAddresses function with family = ");
if (family == AF_INET)
printf("AF_INET\n");
if (family == AF_INET6)
printf("AF_INET6\n");
if (family == AF_UNSPEC)
printf("AF_UNSPEC\n\n");
dwRetVal =
GetAdaptersAddresses(family, flags, NULL, pAddresses, &outBufLen);
if (dwRetVal == NO_ERROR) {
// If successful, output some information from the data we received
pCurrAddresses = pAddresses;
while (pCurrAddresses) {
printf("\tLength of the IP_ADAPTER_ADDRESS struct: %ld\n",
pCurrAddresses->Length);
printf("\tIfIndex (IPv4 interface): %u\n", pCurrAddresses->IfIndex);
printf("\tAdapter name: %s\n", pCurrAddresses->AdapterName);
pUnicast = pCurrAddresses->FirstUnicastAddress;
if (pUnicast != NULL) {
for (i = 0; pUnicast != NULL; i++)
pUnicast = pUnicast->Next;
printf("\tNumber of Unicast Addresses: %d\n", i);
} else
printf("\tNo Unicast Addresses\n");
pAnycast = pCurrAddresses->FirstAnycastAddress;
if (pAnycast) {
for (i = 0; pAnycast != NULL; i++)
pAnycast = pAnycast->Next;
printf("\tNumber of Anycast Addresses: %d\n", i);
} else
printf("\tNo Anycast Addresses\n");
pMulticast = pCurrAddresses->FirstMulticastAddress;
if (pMulticast) {
for (i = 0; pMulticast != NULL; i++)
pMulticast = pMulticast->Next;
printf("\tNumber of Multicast Addresses: %d\n", i);
} else
printf("\tNo Multicast Addresses\n");
pDnServer = pCurrAddresses->FirstDnsServerAddress;
if (pDnServer) {
for (i = 0; pDnServer != NULL; i++)
pDnServer = pDnServer->Next;
printf("\tNumber of DNS Server Addresses: %d\n", i);
} else
printf("\tNo DNS Server Addresses\n");
printf("\tDNS Suffix: %wS\n", pCurrAddresses->DnsSuffix);
printf("\tDescription: %wS\n", pCurrAddresses->Description);
printf("\tFriendly name: %wS\n", pCurrAddresses->FriendlyName);
if (pCurrAddresses->PhysicalAddressLength != 0) {
printf("\tPhysical address: ");
for (i = 0; i < pCurrAddresses->PhysicalAddressLength;
i++) {
if (i == (pCurrAddresses->PhysicalAddressLength - 1))
printf("%.2X\n",
(int) pCurrAddresses->PhysicalAddress[i]);
else
printf("%.2X-",
(int) pCurrAddresses->PhysicalAddress[i]);
}
}
printf("\tFlags: %ld\n", pCurrAddresses->Flags);
printf("\tMtu: %lu\n", pCurrAddresses->Mtu);
printf("\tIfType: %ld\n", pCurrAddresses->IfType);
printf("\tOperStatus: %ld\n", pCurrAddresses->OperStatus);
printf("\tIpv6IfIndex (IPv6 interface): %u\n",
pCurrAddresses->Ipv6IfIndex);
printf("\tZoneIndices (hex): ");
for (i = 0; i < 16; i++)
printf("%lx ", pCurrAddresses->ZoneIndices[i]);
printf("\n");
pPrefix = pCurrAddresses->FirstPrefix;
if (pPrefix) {
for (i = 0; pPrefix != NULL; i++)
pPrefix = pPrefix->Next;
printf("\tNumber of IP Adapter Prefix entries: %d\n", i);
} else
printf("\tNo IP Adapter Prefix entries\n");
printf("\n");
pCurrAddresses = pCurrAddresses->Next;
}
} else {
printf("Call to GetAdaptersAddresses failed with error: %d\n",
dwRetVal);
if (dwRetVal == ERROR_NO_DATA)
printf("\tNo addresses were found for the requested parameters\n");
else {
if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dwRetVal, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) & lpMsgBuf, 0, NULL)) {
printf("\tError: %s", lpMsgBuf);
LocalFree(lpMsgBuf);
FREE(pAddresses);
exit(1);
}
}
}
FREE(pAddresses);
return 0;
}
需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
標頭 | iptypes.h (包含 Iphlpapi.h) |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應