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 エラー コードから次のいずれかのエラー コードまたはエラー コードが返されます。
値 | 意味 |
---|---|
|
1 つ以上のパラメーターが無効でした。 |
|
IPv6 サブネットが DHCP サーバーに存在しません。 |
|
指定した 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 |