GetIpPathTable 関数
GetIpPathEntry 関数は、ローカル コンピューター上の IP パス エントリの情報を取得します。
構文
NETIOAPI_API GetIpPathTable(
_In_ ADDRESS_FAMILY Family,
_Out_ PMIB_IPPATH_TABLE *Table
);
パラメーター
ファミリ [in]
取得するアドレス ファミリ。アドレス ファミリに使用できる値は、Winsock2.h ヘッダー ファイルに一覧表示されます。 AF_ アドレス ファミリ定数とPF_ プロトコル ファミリ定数の値は同じ (たとえば、AF_INETとPF_INET) ので、どちらの定数も使用できます。
Windows Vista 以降のバージョンの Windows オペレーティング システムでは、ws2def.h ヘッダー ファイルで Family パラメーターに指定できる値が定義されています。 Ws2def.h ヘッダー ファイルは Netioapi.h に自動的に含まれるので、Ws2def.h を直接使用しないでください。
現在、アドレス ファミリでは次の値がサポートされています。
AF_INET
IPv4 アドレス ファミリ。 この値を指定すると、この関数は IPv4 エントリのみを含む IP パス テーブルを返します。AF_INET6
IPv6 アドレス ファミリ。 この値を指定すると、この関数は IPv6 エントリのみを含む IP パス テーブルを返します。AF_UNSPEC
アドレス ファミリは指定されていません。 この値を指定すると、この関数は IPv4 エントリと IPv6 エントリの両方を含む IP パス テーブルを返します。
テーブル [out]
ローカル コンピューター上の IP パス エントリのテーブルを含む MIB_IPPATH_TABLE 構造体へのポインター。
戻り値
GetIpPathEntry は、関数が成功した場合にSTATUS_SUCCESSを返します。
関数が失敗した場合、GetIpPathEntry は次のいずれかのエラー コードを返します。
リターン コード | 形容 |
---|---|
STATUS_INVALID_PARAMETER | 無効なパラメーターが関数に渡されました。 このエラーは、NULL ポインターが Table パラメーターで渡された場合、または Family パラメーターがAF_INET、AF_INET6、またはAF_UNSPECとして指定されていない場合に返されます。 |
STATUS_NOT_ENOUGH_MEMORY | 操作を完了するために使用できるメモリ リソースが不足しています。 |
STATUS_NOT_FOUND | Family パラメーターで指定されている IP パス エントリが見つかりませんでした。 |
STATUS_NOT_SUPPORTED | 要求はサポートされていません。 このエラーは、ローカル コンピューターに IPv4 スタックが存在せず、AF_INETが Family パラメーターで指定された場合、またはローカル コンピューターに IPv6 スタックがなく、ファミリ パラメーターに AF_INET6 が指定されている場合に返されます。 このエラーは、この関数がサポートされていない Windows のバージョンでも返されます。 |
その他の | FormatMessage 関数を使用して、返されたエラーのメッセージ文字列を取得します。 |
備考
GetIpPathTable 関数は、ローカル コンピューター上の IP パス エントリを列挙し、MIB_IPPATH_TABLE 構造体でこの情報を返します。
getIpPathTable は、Table パラメーターが指すバッファー内のMIB_IPPATH_TABLE構造体の IP パス エントリを返します。 MIB_IPPATH_TABLE構造体には、IP パス エントリ数と、各 IP パス エントリの MIB_IPPATH_ROW 構造体の配列が含まれています。 これらの返された構造体が不要になったら、FreeMibTableを呼び出して、ドライバーメモリを解放する必要があります。
ドライバーは、AF_INET、AF_INET6、またはAF_UNSPECに ファミリ パラメーターを初期化する必要があります。
Table パラメーターが指す返されるMIB_IPPATH_TABLE構造体には、NumEntries メンバーと、MIB_IPPATH_TABLE 構造体の Table メンバー内の最初のMIB_IPPATH_ROW配列エントリとの間の配置のためのパディングが含まれている可能性があることに注意してください。 配置のためのパディングは、MIB_IPPATH_ROW配列エントリ間にも存在する可能性があります。 MIB_IPPATH_ROW配列エントリへのアクセスには、パディングが存在する可能性があると想定する必要があります。
必要条件
ターゲット プラットフォーム |
ユニバーサル |
バージョン |
Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ヘッダ |
Netioapi.h (Netioapi.h を含む) |
図書館 |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |
関連項目
FreeMibTableをする
FlushIpPathTableの