次の方法で共有


IcmpCloseHandle 関数 (icmpapi.h)

IcmpCloseHandle 関数は、IcmpCreateFile 関数または Icmp6CreateFile 関数の呼び出しによって開かれたハンドル閉じます。

構文

IPHLPAPI_DLL_LINKAGE BOOL IcmpCloseHandle(
  [in] HANDLE IcmpHandle
);

パラメーター

[in] IcmpHandle

閉じるハンドル。 このハンドルは、IcmpCreateFile または Icmp6CreateFile呼び出しによって返されている必要があります。

戻り値

ハンドルが正常に閉じられた場合、戻り値は TRUE、それ以外の場合は FALSE です。 拡張エラー情報については 、GetLastError 関数を呼び出します。

解説

IcmpCloseHandle 関数は、Windows 2000 の Icmp.dll からエクスポートされます。 IcmpCloseHandle 関数は、Windows XP 以降の Iphlpapi.dll からエクスポートされます。 Windows バージョン チェックは、この関数を使用することはお勧めしません。 Windows 2000、Windows XP、Windows Server 2003 以降の Windows バージョンでこの機能を使用して移植性を必要とするアプリケーションは、 Icmp.lib または Iphlpapi.lib ファイルに静的にリンクしないでください。 代わりに、アプリケーションは、LoadLibraryGetProcAddress の呼び出しを使用して、Iphlpapi.dllIcmpCloseHandle が存在することをチェックする必要があります。 失敗した場合、アプリケーションは LoadLibraryGetProcAddress の呼び出しを使用して、Icmp.dllIcmpCloseHandle が存在することをチェックする必要があります。

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 Professional [デスクトップ アプリ |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 Professional での Icmp.dll

関連項目

GetLastError

Icmp6CreateFile

Icmp6ParseReplies

Icmp6SendEcho2

IcmpCreateFile

IcmpParseReplies

IcmpSendEcho

IcmpSendEcho2

IcmpSendEcho2Ex