IPv4 ICMP エコー要求を送信し、Event または ApcRoutine が NULL 以外なら即座に、そうでなければ指定したタイムアウト後に返る。ReplyBuffer には ICMP 応答が格納される。
IcmpSendEcho2Ex IcmpHandle, Event, ApcRoutine, ApcContext, SourceAddress, DestinationAddress, RequestData, RequestSize, RequestOptions, ReplyBuffer, ReplySize, Timeout
IcmpHandle : [intptr] IcmpCreateFile 関数が返したオープンハンドル。 Event : [intptr] ICMP 応答が到着したときにシグナル状態にするイベント。指定する場合は有効なイベントオブジェクトへのハンドルが必要。CreateEvent または CreateEventEx でイベントを作成する。詳細は Event Objects を参照。 ApcRoutine : [int] 呼び出しスレッドがアラート可能な状態で ICMP 応答が到着したときに呼ばれるルーチン。このパラメータの型を FARPROC ではなく PIO_APC_ROUTINE にするため PIO_APC_ROUTINE_DEFINED を定義しなければならない。 ApcContext : [intptr] ICMP 応答が到着したかエラーが発生したとき、ApcRoutine で指定したコールバックルーチンに渡される任意パラメータ。 SourceAddress : [int] エコー要求を発行する IPv4 送信元アドレス。IPAddr 構造体の形式で指定する。 DestinationAddress : [int] エコー要求の IPv4 宛先アドレス。IPAddr 構造体の形式で指定する。 RequestData : [intptr] 要求で送信するデータを含むバッファへのポインタ。 RequestSize : [int] RequestData が指す要求データバッファのサイズ (バイト単位)。 RequestOptions : [var] 要求の IP ヘッダオプションへのポインタ。IP_OPTION_INFORMATION 構造体の形式で指定する。64 ビットプラットフォームでは IP_OPTION_INFORMATION32 形式となる。オプションを指定しない場合は NULL でもよい。 ReplyBuffer : [intptr] 要求に対する応答を保持するバッファへのポインタ。戻り時、バッファには ICMP_ECHO_REPLY 構造体の配列に続けてオプションとデータが格納される。バッファは少なくとも ICMP_ECHO_REPLY 構造体 1 つ分と RequestSize バイトのデータ、さらに 8 バイトの ICMP エラーメッセージおよび IO_STATUS_BLOCK 構造体分の領域を収められる大きさでなければならない。 ReplySize : [int] 応答バッファの割り当てサイズ (バイト単位)。少なくとも ICMP_ECHO_REPLY 構造体 1 つと RequestSize バイトのデータ、加えて 8 バイトの ICMP エラーメッセージ分と IO_STATUS_BLOCK 分を収められる必要がある。 Timeout : [int] 応答を待機する時間 (ミリ秒単位)。
(プラグイン / モジュール : iphlpapi.dll)
IPv4 ICMP エコー要求を送信し、Event または ApcRoutine が NULL 以外なら即座に、そうでなければ指定したタイムアウト後に返る。ReplyBuffer には ICMP 応答が格納される。 [戻り値] 同期呼び出し時、IcmpSendEcho2Ex は ReplyBuffer に格納された応答の数を返す。0 の場合は GetLastError で拡張エラー情報を取得する。非同期呼び出し時、IcmpSendEcho2Ex は操作進行中を示す ERROR_IO_PENDING を返す。結果は Event のシグナル、または ApcRoutine の呼び出しで取得できる。失敗した場合、GetLastError は以下のいずれかを返す。 このドキュメントは省略されている。 [備考] IcmpSendEcho2Ex 関数は Windows Server 2008 以降で利用可能であり、IcmpSendEcho2 の拡張版でユーザが ICMP 要求を発行する IPv4 送信元アドレスを指定できる。複数のネットワークインターフェイスを持つコンピュータで有用である。ApcRoutine と Event が NULL のときは同期的に呼び出され、戻り値は Timeout で指定した時間待機した後に ReplyBuffer に格納された応答数となる。0 のときは GetLastError で拡張エラー情報を取得する。ApcRoutine または Event 指定時は非同期呼び出しとなり、ReplyBuffer / ReplySize が必須。応答は ReplyBuffer にコピーされ、Event シグナルまたは ApcRoutine コールバックで通知される。アプリケーションは IcmpParseReplies で解析する必要がある。両方指定時は Event のみが使用され ApcRoutine は無視される。ApcRoutine 非同期呼び出しを行うアプリケーションは、型を PIO_APC_ROUTINE にするため Icmpapi.h のインクルード前に PIO_APC_ROUTINE_DEFINED を定義しなければならない。 コールバック関数は VOID 型で次の構文に従って定義する: このドキュメントは省略されている。
| プラグイン / モジュール | iphlpapi.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の iphlpapi.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_iphlpapi_gen2.hs |