次の方法で共有


DhcpRequestParams 関数 (dhcpcsdk.h)

DhcpRequestParams 関数を使用すると、呼び出し元は DHCP サーバーから DHCP データを同期的または同期的かつ永続的に取得できます。

構文

DWORD DhcpRequestParams(
  [in]      DWORD                 Flags,
  [in]      LPVOID                Reserved,
  [in]      LPWSTR                AdapterName,
  [in]      LPDHCPCAPI_CLASSID    ClassId,
  [in]      DHCPCAPI_PARAMS_ARRAY SendParams,
  [in, out] DHCPCAPI_PARAMS_ARRAY RecdParams,
  [in]      LPBYTE                Buffer,
  [in, out] LPDWORD               pSize,
  [in]      LPWSTR                RequestIdStr
);

パラメーター

[in] Flags

要求するデータを指定するフラグ。 このパラメーターは省略可能です。 次の可能な値はサポートされており、相互に排他的ではありません。

意味
DHCPCAPI_REQUEST_PERSISTENT
要求は永続化されますが、オプションはフェッチされません。
DHCPCAPI_REQUEST_SYNCHRONOUS
オプションはサーバーからフェッチされます。

[in] Reserved

将来利用するために予約されています。 NULL に設定する必要があります。

[in] AdapterName

要求されたデータが作成されているアダプターの GUID。 256 文字以下にする必要があります。

[in] ClassId

DHCP INFORM メッセージがネットワークに送信されている場合に使用する必要があるクラス識別子 (ID)。 このパラメーターは省略可能です。

[in] SendParams

RecdParams 配列で要求されたデータに加えて、要求される省略可能なデータ。 SendParams パラメーターには、DHCP クライアントが既定で送信する標準オプションを含めることはできません。

[in, out] RecdParams

呼び出し元が受信する DHCP データの配列。 この配列は、 DhcpRequestParams 関数呼び出しの前に空である必要があります。

[in] Buffer

RecdParams で行われた要求に関連付けられているデータを格納するために使用されるバッファー。

[in, out] pSize

バッファーのサイズ。

バッファーの必要なサイズ(データを保持するためのサイズが不十分な場合)、それ以外の場合は、正常に入力されたバッファーのサイズを示します。

[in] RequestIdStr

永続的な要求を容易にするために使用されるアプリケーション識別子 (ID)。 特殊文字を含まない印刷可能な文字列である必要があります (コンマ、円記号、コロン、またはその他の無効な文字は使用できません)。 指定されたアプリケーション識別子 (ID) は、必要に応じて、後続の DhcpUndoRequestParams 関数呼び出しで使用され、永続的な要求をクリアします。

戻り値

正常に完了したときにERROR_SUCCESSを返します。

戻ると、 RecdParams には、要求されたデータへのポインターが入力され、対応するデータが Buffer に配置されます。 pSize が返されたデータを格納するための領域がバッファーに不足していることを示す場合、DhcpRequestParams 関数はERROR_MORE_DATAを返し、pSize で必要なバッファー サイズを返します。 Buffer の必要なサイズは、最初の関数呼び出しの戻り値と後続の呼び出しの間に経過する間に増加する可能性があることに注意してください。したがって、Buffer の必要なサイズ (pSize で示されます) は、BufferpSize で示されているサイズに設定されている場合に後続の呼び出しが正常に返されることを保証するのではなく、Buffer に必要なおおよそのサイズを示します。

その他のエラーでは、適切な Windows エラー コードが返されます。

リターン コード 説明
ERROR_INVALID_PARAMETER
AdapterName パラメーターの長さが 256 文字を超える場合に返されます。
ERROR_BUFFER_OVERFLOW
AdapterName パラメーターの長さが 256 文字を超える場合に返されます。

解説

DHCP クライアントは、DHCP サーバーから取得したデータをローカル キャッシュに格納します。 DHCP クライアント キャッシュに、DhcpRequestParams 関数呼び出しの RecdParams 配列で要求されたすべてのデータが含まれている場合、クライアントはそのキャッシュからデータを返します。 要求されたデータがクライアント キャッシュで使用できない場合、クライアントは DHCP サーバーに DHCP-INFORM メッセージを送信することによって DhcpRequestParams 関数呼び出しを処理します。

クライアントが DHCP-INFORM メッセージを DHCP サーバーに送信すると、オプションの SendParams パラメーターに指定された要求が含まれており、指定されている場合は ClassId パラメーターで指定されたクラス識別子 (ID) が提供されます。

クライアントは、DHCP クライアントが起動するたびに DHCP サーバーから DHCP データを取得するように指定することもできます。これは永続的な要求と見なされます。 永続的な要求を有効にするには、呼び出し元で RequestIdStr パラメーターを指定し、dwFlags パラメーターに追加のDHCPAPI_REQUEST_PERSISTENT フラグを指定する必要があります。 この永続的な要求機能は、クライアントが起動時にアプリケーションクリティカルな情報を自動的に要求する必要がある場合に特に便利です。 永続化要求を無効にするには、クライアントが 関数を呼び出す必要があります。

メモ この API の呼び出し元は、コードまたは状態を返すのに最大 2 分かかる可能性があるため、この API に対してブロック呼び出しを行う必要はありません。 特に UI の動作は、UI の応答時間に大きな遅延が生じる可能性があるため、この呼び出しの戻りをブロックしないでください。
 
DHCP INFORM メッセージの詳細、および DHCP に関するその他の標準ベースの情報については、「 DHCP 標準」を参照してください。

使用中の DhcpRequestParams 関数を確認するには、「DHCP の例」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー dhcpcsdk.h
Library Dhcpcsvc.lib
[DLL] Dhcpcsvc.dll

関連項目

DHCP 関数

DHCPCAPI_PARAMS_ARRAY

DhcpCApiInitialize

DhcpUndoRequestParams