icmpCloseHandle 函数 (icmpapi.h)

IcmpCloseHandle 函数关闭通过调用 IcmpCreateFileIcmp6CreateFile 函数打开的句柄。

语法

IPHLPAPI_DLL_LINKAGE BOOL IcmpCloseHandle(
  [in] HANDLE IcmpHandle
);

parameters

[in] IcmpHandle

要关闭的句柄。 此句柄必须已通过调用 IcmpCreateFileIcmp6CreateFile 返回。

返回值

如果句柄成功关闭,则返回值为 TRUE,否则返回 值为 FALSE。 调用 GetLastError 函数以获取扩展的错误信息。

注解

IcmpCloseHandle 函数从 Windows 2000 上的 Icmp.dll 导出。 IcmpCloseHandle 函数从 Windows XP 及更高版本的 Iphlpapi.dll 导出。 不建议使用此函数进行 Windows 版本检查。 需要跨 Windows 2000、Windows XP、Windows Server 2003 及更高 Windows 版本的此功能可移植性的应用程序不应静态链接到 Icmp.libIphlpapi.lib 文件。 相反,应用程序应通过调用 LoadLibraryGetProcAddress 来检查 Iphlpapi.dll 中是否存在 IcmpCloseHandle。 否则,应用程序应通过调用 LoadLibraryGetProcAddress 来检查 Icmp.dll 中是否存在 IcmpCloseHandle

请注意, Iphlpapi.h 头文件的 include 指令必须放在 Icmpapi.h 头文件之前。

示例

以下示例打开和关闭可以发出 ICMP 回送请求的句柄。

#include <windows.h>
#include <iphlpapi.h>
#include <icmpapi.h>
#include <stdio.h>

#pragma comment(lib, "iphlpapi.lib")

void main()
{
    HANDLE hIcmpFile;
    BOOL bRetVal; 

    hIcmpFile = IcmpCreateFile();
    if (hIcmpFile == INVALID_HANDLE_VALUE)
      printf("IcmpCreateFile failed with error: %ld\n", GetLastError() );
    else 
    {
      printf("\tHandle created.\n");

      bRetVal = IcmpCloseHandle(hIcmpFile);
      if (bRetVal)
          printf("\tHandle was closed\n");
      else
          printf("IcmpCloseHandle failed with error: %ld\n", GetLastError() );
    }
}


要求

   
最低受支持的客户端 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

IcmpCreateFile

IcmpParseReplies

IcmpSendecho

IcmpSendecho2

IcmpSendecho2Ex