Icmp6SendEcho2 関数は IPv6 ICMPv6 エコー要求を送信し、Event または ApcRoutine が NULL 以外なら即座に、そうでなければ指定したタイムアウト後に返る。ReplyBuffer には IPv6 ICMPv6 エコー応答が格納される。
Icmp6SendEcho2 IcmpHandle, Event, ApcRoutine, ApcContext, SourceAddress, DestinationAddress, RequestData, RequestSize, RequestOptions, ReplyBuffer, ReplySize, Timeout
IcmpHandle : [intptr] Icmp6CreateFile が返したオープンハンドル。 Event : [intptr] ICMPv6 応答が到着したときにシグナル状態にするイベント。指定する場合は有効なイベントオブジェクトへのハンドルが必要。イベントオブジェクトは CreateEvent / CreateEventEx で作成する。イベントの使い方の詳細は Event Objects を参照。 ApcRoutine : [int] 呼び出しスレッドがアラート可能な状態で ICMPv6 応答が到着したときに呼ばれるルーチン。Windows Vista 以降では、このパラメータの型を FARPROC ではなく PIO_APC_ROUTINE にするために PIO_APC_ROUTINE_DEFINED を定義する必要がある。Windows Server 2003 / Windows XP では PIO_APC_ROUTINE_DEFINED を定義してはならず、型は FARPROC のままにする。 ApcContext : [intptr] ICMPv6 応答が到着したかエラーが発生したとき、ApcRoutine で指定したコールバックルーチンに渡される任意パラメータ。 SourceAddress : [var] エコー要求を発行する IPv6 送信元アドレス。sockaddr 構造体の形式で指定する。 DestinationAddress : [var] エコー要求の IPv6 宛先アドレス。sockaddr 構造体の形式で指定する。 RequestData : [intptr] 要求で送信するデータを含むバッファへのポインタ。 RequestSize : [int] RequestData が指す要求データバッファのサイズ (バイト単位)。 RequestOptions : [var] 要求に対する IPv6 ヘッダオプションへのポインタ。IP_OPTION_INFORMATION 構造体の形式で指定する。64 ビットプラットフォームでは IP_OPTION_INFORMATION32 の形式となる。ヘッダオプションを指定しない場合は NULL でもよい。Windows Server 2003 / Windows XP ではこのパラメータは必須であり NULL にはできず、Ttl と Flags メンバのみが使用される。 ReplyBuffer : [intptr] 応答を保持するバッファへのポインタ。戻り時、バッファには ICMPV6_ECHO_REPLY 構造体に続けて ICMPv6 エコー応答のメッセージ本体が格納される。バッファは ICMPV6_ECHO_REPLY 構造体 1 つ分と RequestSize バイトのデータ、さらに 8 バイトの ICMP エラーメッセージおよび IO_STATUS_BLOCK 構造体分の領域を収められる大きさでなければならない。 ReplySize : [int] ReplyBuffer が指す応答バッファのサイズ (バイト単位)。少なくとも ICMPV6_ECHO_REPLY 構造体 1 つ分と RequestSize バイト、加えて 8 バイトの ICMP エラーメッセージ分と IO_STATUS_BLOCK 分を収められる必要がある。 Timeout : [int] 応答を待機する時間 (ミリ秒単位)。Icmp6SendEcho2 が同期的に呼び出された場合にのみ使用される。ApcRoutine または Event が NULL 以外の場合は使用されない。
(プラグイン / モジュール : iphlpapi.dll)
Icmp6SendEcho2 関数は IPv6 ICMPv6 エコー要求を送信し、Event または ApcRoutine が NULL 以外なら即座に、そうでなければ指定したタイムアウト後に返る。ReplyBuffer には IPv6 ICMPv6 エコー応答が格納される。 [戻り値] 同期呼び出し時、Icmp6SendEcho2 は ReplyBuffer に格納された応答の数を返す。0 の場合は GetLastError で拡張エラー情報を取得する。非同期呼び出し時、Icmp6SendEcho2 は操作進行中を示す ERROR_IO_PENDING を返す。結果は Event のシグナル、または ApcRoutine の呼び出しで取得できる。関数が失敗した場合、GetLastError は以下のいずれかを返す。 このドキュメントは省略されている。 [備考] Icmp6SendEcho2 関数は ApcRoutine と Event が NULL の場合は同期的に呼び出される。同期呼び出し時の戻り値は、Timeout の時間待機した後に ReplyBuffer に格納された応答の数である。0 の場合は GetLastError で拡張エラー情報を取得できる。ApcRoutine または Event が指定されている場合は非同期呼び出しとなる。非同期時は ReplyBuffer / ReplySize が必要で、ICMP 応答データは ReplyBuffer にコピーされ、Event 指定時はイベントがシグナル状態になり、ApcRoutine 指定時はコールバック関数が呼び出される。アプリケーションは Icmp6ParseReplies で ReplyBuffer を解析する必要がある。両方を指定した場合は Event のみが使用され ApcRoutine は無視される。Windows Vista 以降で 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 |