GetUnicastIpAddressTable 関数

GetAnycastIpAddressTable 関数は、ローカル コンピューター上のユニキャスト IP アドレス テーブルを取得します。

構文

NETIOAPI_API GetUnicastIpAddressTable(
  _In_  ADDRESS_FAMILY              Family,
  _Out_ PMIB_UNICASTIPADDRESS_TABLE *Table
);

パラメーター

  • ファミリ [in]
    取得するアドレス ファミリ。

    アドレス ファミリに使用できる値は、Winsock2.h ヘッダー ファイルに一覧表示されます。 AF_ アドレス ファミリ定数と PF_ プロトコル ファミリ定数の値は同じ (たとえば、AF_INET と PF_INET) なので、どちらの定数も使用できます。

    Windows Vista 以降のバージョンの Windows オペレーティング システムでは、Family パラメーターに使用できる値は Ws2def.h ヘッダー ファイルで定義されています。 Ws2def.h ヘッダー ファイルは Netioapi.h に自動的に含まれるので、Ws2def.h を直接使用しないでください。

    現在、アドレス ファミリでは次の値がサポートされています:

    • AF_INET
      IPv4 アドレス ファミリ。 この値を指定すると、この関数は IPv4 エントリのみを含むマルチキャスト IP アドレス テーブルを返します。

    • AF_INET6
      IPv6 アドレス ファミリ。 この値を指定すると、この関数は IPv6 エントリのみを含むマルチキャスト IP アドレス テーブルを返します。

    • AF_UNSPEC
      アドレス ファミリは指定されていません。 この値を指定すると、この関数は IPv4 と IPv6 の両方のエントリを含むマルチキャスト IP アドレス テーブルを返します。

  • テーブル [out]
    ローカル コンピューター上のユニキャスト IP アドレス エントリのテーブルを含む MIB_UNICASTIPADDRESS_TABLE 構造体へのポインター。

戻り値

関数が成功した場合、GetUnicastIpAddressTable は STATUS_SUCCESS を返します。

関数が失敗した場合、GetAnycastIpAddressTable は次のいずれかのエラー コードを返します:

リターン コード 説明
STATUS_INVALID_PARAMETER

その関数に渡された無効なパラメーター。 このエラーは、Table パラメーターに NULL ポインターが渡された場合、または 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 が Family パラメーターで指定されている場合に返されます。 このエラーは、この関数がサポートされていない Windows のバージョンでも返されます。

その他

FormatMessage 関数を使用して、返されたエラーのメッセージ文字列を取得します。

解説

GetUnicastIpAddressTable 関数は、ローカル コンピューター上のユニキャスト IP アドレスを列挙し、この情報を MIB_UNICASTIPADDRESS_TABLE 構造体で返します。

GetUnicastIpAddressTable は、Table パラメーターが指すバッファー内の MIB_UNICASTIPADDRESS_TABLE 構造のユニキャスト IP アドレス エントリを返します。 MIB_UNICASTIPADDRESS_TABLE 構造体には、ユニキャスト IP アドレス エントリ数と、各ユニキャスト IP アドレス エントリの MIB_UNICASTIPADDRESS_ROW 構造体の配列が含まれています。 これらの返された構造体が不要になった場合、ドライバーは FreeMibTable を呼び出してメモリを解放する必要があります。

ドライバーは、Family パラメーターを AF_INET、AF_INET6、または AF_UNSPEC のいずれかに初期化する必要があります。

Table パラメーターが指す返された MIB_UNICASTIPADDRESS_TABLE 構造体には、NumEntries メンバーと MIB_UNICASTIPADDRESS_TABLE 構造体の Table メンバー内の最初の MIB_UNICASTIPADDRESS_ROW 配列エントリとの間に、整列のための埋め込みが含まれている場合があることに注意してください。 整列のための埋め込みは、MIB_UNICASTIPADDRESS_ROW 配列エントリ間にも存在する場合があります。 MIB_UNICASTIPADDRESS_ROW 配列エントリへのアクセスには、埋め込みが存在する可能性を前提とする必要があります。

要件

対象プラットフォーム

ユニバーサル

バージョン

Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。

ヘッダー

Netioapi.h (Netioapi.h を含む)

ライブラリ

Netio.lib

IRQL

< DISPATCH_LEVEL

関連項目

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

FreeMibTable

GetUnicastIpAddressEntry

InitializeUnicastIpAddressEntry

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyStableUnicastIpAddressTable

NotifyUnicastIpAddressChange

SetUnicastIpAddressEntry