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 ファイルに静的にリンクしないでください。 代わりに、アプリケーションは、LoadLibrary と GetProcAddress の呼び出しを使用して、Iphlpapi.dll に IcmpCloseHandle が存在することをチェックする必要があります。 失敗した場合、アプリケーションは LoadLibrary と GetProcAddress の呼び出しを使用して、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 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 |
関連項目
IcmpSendEcho