IcmpCreateFile 函数 (icmpapi.h)
IcmpCreateFile 函数打开一个句柄,可在该句柄上发出 IPv4 ICMP 回显请求。
语法
IPHLPAPI_DLL_LINKAGE HANDLE IcmpCreateFile();
返回值
IcmpCreateFile 函数在成功时返回一个打开的句柄。 失败时,函数返回 INVALID_HANDLE_VALUE。 调用 GetLastError 函数以获取扩展错误信息。
注解
IcmpCreateFile 函数是从 Windows 2000 上的Icmp.dll 导出的。 IcmpCreateFile 函数是从 Windows XP 及更高版本上的 Iphlpapi.dll 导出的。 建议不要使用此函数进行 Windows 版本检查。 需要跨 Windows 2000、Windows XP、Windows Server 2003 及更高 Windows 版本的此功能可移植性的应用程序不应静态链接到 Icmp.lib 或 Iphlpapi.lib 文件。 相反,应用程序应检查 icmpCreateFile 在 Iphlpapi.dll 中是否存在,并调用 LoadLibrary 和 GetProcAddress。 否则,应用程序应在调用 LoadLibrary 和 GetProcAddress 的 Icmp.dll 中检查 IcmpCreateFile。
对于 IPv6,请使用 Icmp6CreateFile、 Icmp6SendEcho2 和 Icmp6ParseReplies 函数。
请注意, Iphlpapi.h 头文件的 include 指令必须放在 Icmpapi.h 头文件之前。
示例
以下示例打开可对其发出 ICMP 回显请求的句柄。
#include <windows.h>
#include <stdio.h>
#include <iphlpapi.h>
#include <icmpapi.h>
// Need to link with Iplhlapi.lib
#pragma comment(lib, "IPHLPAPI.lib")
void main()
{
HANDLE hIcmpFile;
hIcmpFile = IcmpCreateFile();
if (hIcmpFile == INVALID_HANDLE_VALUE) {
printf("\tUnable to open handle.\n");
printf("IcmpCreatefile returned error: %ld\n", GetLastError() );
}
else {
printf("\tHandle created.\n");
// Need to close the handle when done using it
IcmpCloseHandle(hIcmpFile);
}
}
要求
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | icmpapi.h |
Library | Iphlpapi.lib |
DLL | 在 Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP 上 Iphlpapi.dll;Windows 2000 Server 和 Windows 2000 专业版上的 Icmp.dll |
另请参阅
IcmpSendecho