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.libIphlpapi.lib 文件。 相反,应用程序应检查 icmpCreateFileIphlpapi.dll 中是否存在,并调用 LoadLibraryGetProcAddress。 否则,应用程序应在调用 LoadLibraryGetProcAddressIcmp.dll 中检查 IcmpCreateFile

对于 IPv6,请使用 Icmp6CreateFileIcmp6SendEcho2Icmp6ParseReplies 函数。

请注意, 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

另请参阅

GetLastError

Icmp6CreateFile

Icmp6ParseReplies

Icmp6Sendecho2

IcmpCloseHandle

IcmpParseReplies

IcmpSendecho

IcmpSendecho2

Icmpsendecho2Ex