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