次の方法で共有


DhcpV6GetFreeIPAddress 関数 (dhcpsapi.h)

DhcpV6GetFreeIPAddress 関数は、クライアントにリースできる使用可能な IPv6 アドレスの一覧を取得します。

構文

DWORD DHCP_API_FUNCTION DhcpV6GetFreeIPAddress(
  [in, optional] LPWSTR            ServerIpAddress,
  [in]           DHCP_IPV6_ADDRESS ScopeId,
  [in]           DHCP_IPV6_ADDRESS StartIP,
  [in]           DHCP_IPV6_ADDRESS EndIP,
  [in]           DWORD             NumFreeAddrReq,
  [out]          LPDHCPV6_IP_ARRAY *IPAddrList
);

パラメーター

[in, optional] ServerIpAddress

DHCP サーバーの IP アドレスまたはホスト名を表す null で終わる Unicode 文字列へのポインター。

[in] ScopeId

DHCP_IPV6_ADDRESS クライアントにリースできるアドレスの取得元となる IPv6 サブネット ID を指定する構造体です。

[in] StartIP

DHCP_IPV6_ADDRESS 使用可能なアドレスの取得元のスコープ IPv6 範囲の開始点アドレスを指定する構造体です。 このパラメーターが 0 の場合、 ScopeId で指定された IPv6 サブネットの開始アドレスが既定です。

[in] EndIP

DHCP_IPV6_ADDRESS 使用可能なアドレスの取得元のスコープ IPv6 範囲のエンドポイント アドレスを指定する構造体です。 このパラメーターが 0 の場合、 ScopeId パラメーターで指定された IPv6 サブネットの終了アドレスが既定値として使用されます。

[in] NumFreeAddrReq

IPAddrList で指定されたスコープから取得された IPv6 アドレスの数を指定する整数。 このパラメーターが 0 の場合、1 つの IPv6 アドレスのみが返されます。

[out] IPAddrList

クライアントにリースできる 使用可能な IPv6 アドレスの一覧を含むDHCPV6_IP_ARRAY構造体へのポインター。

戻り値

関数が成功すると、 ERROR_SUCCESSが返されます。

関数が失敗した場合は、 DHCP サーバー管理 API エラー コードから次のいずれかのエラー コードまたはエラー コードが返されます。

意味
ERROR_INVALID_PARAMETER
1 つ以上のパラメーターが無効でした。
ERROR_DHCP_SUBNET_NOT_PRESENT
IPv6 サブネットが DHCP サーバーに存在しません。
ERROR_DHCP_REACHED_END_OF_SELECTION
指定した DHCP サーバーが、空き IP アドレスを見つける間に、選択した範囲の末尾に達しました。

解説

IPAddrList、DhcpRpcFreeMemory を使用して無料にする必要があります。

返される IPv6 アドレスの最大数は 1024 です。 1024 個の IPv6 アドレスをさらに取得するには、 DhcpV6GetFreeIPAddress を複数回呼び出す必要があります。 最初の呼び出しの後、DhcpV6GetFreeIPAddress への後続の各呼び出しでは、dhcpV6GetFreeIPAddress の前回の呼び出しから IPAddrList で受信したリストの最後のアドレスに startIP を設定する必要があります。

DHCP サーバーで使用可能な空き IPv6 アドレスの数が要求された数より少ない場合は、使用可能な空き IPv6 アドレスの一覧がエラー コード ERROR_DHCP_REACHED_END_OF_SELECTIONで呼び出し元に返されます。

要件

   
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー dhcpsapi.h
Library Dhcpsapi.lib
[DLL] Dhcpsapi.dll