次の方法で共有


PxeProviderRecvRequest コールバック関数

クライアントから要求を受信したときに呼び出されます。 この関数は、CallbackType パラメーターを PXE_CALLBACK_RECV_REQUEST に設定して PxeRegisterCallback 関数を呼び出すことによって登録されます。

構文

DWORD PXEAPI PxeProviderRecvRequest(
  _In_  HANDLE          hClientRequest,
  _In_  PVOID           pPacket,
  _In_  ULONG           uPacketLen,
  _In_  PXE_ADDRESS     *pLocalAddress,
  _In_  PXE_ADDRESS     *pRemoteAddress,
  _Out_ PXE_BOOT_ACTION pAction,
  _In_  PVOID           pContext
);

パラメーター

hClientRequest [in]

クライアントから受信した要求を処理します。

pPacket [in]

受信したパケットを含むメモリ バッファーへのポインター。

uPacketLen [in]

pPacket パラメーターが指すバッファーの長さ (バイト単位)。

pLocalAddress [in]

パケットが受信されたローカル アドレスを含む PXE_ADDRESS 構造体へのポインター。

pRemoteAddress [in]

パケットの送信元アドレスを含む PXE_ADDRESS 構造体へのポインター。

pAction [out]

システムが実行する必要があるアクションを指定します。

説明
PXE_BA_NBP
1
プロバイダーは、ネットワーク ブート プログラムへのパスを含む標準の DHCP 応答パケットを使用してクライアントに応答しました。 このアクションを返すことは、プロバイダーが PxeSendReply 関数を少なくとも 1 回呼び出してクライアント要求を正常に完了したことを意味します。
PXE_BA_CUSTOM
2
プロバイダーは、DHCP 仕様に準拠していないカスタム応答を使用してクライアントに応答しました。 このアクションを返すことは、プロバイダーが PxeSendReply 関数を少なくとも 1 回呼び出してクライアント要求を正常に完了したことを意味します。
PXE_BA_IGNORE
3
プロバイダーはクライアント要求を処理したくないので、要求を次のプロバイダーに渡すべきではありません。 クライアント要求に関連付けられているすべてのリソースが解放され、クライアント要求は無視されます。 プロバイダーは、クライアントを認識していても要求の形式が正しくない場合にも、この値を使用できます。
PXE_BA_REJECTED
4
プロバイダーはクライアント要求を処理しません。 システムは、登録されたプロバイダーの一覧で次のプロバイダーに要求を渡します。 これがリストの最後のプロバイダーである場合、クライアント要求に関連付けられているすべてのリソースが解放され、クライアント要求は無視されます。

pContext [in]

PxeRegisterCallback 関数に渡されるコンテキスト値。

戻り値

プロバイダーがクライアント要求を正常に処理した場合、コールバックは ERROR_SUCCESSを返す必要があり、pAction パラメーターが指すPXE_BOOT_ACTIONには、この要求に対する適切なブート アクションが含まれます。 プロバイダーがクライアント要求を非同期的に処理する場合、コールバックは ERROR_IO_PENDINGを 返し、クライアント要求が処理されたときに PxeAsyncRecvDone 関数を呼び出す必要があります。 エラーが発生した場合は、適切なエラー コードが返され、 PXE_BA_REJECTED ブート アクションが指定されたかのようにシステムが続行されます。

解説

プロバイダーによって表示されるパケットの種類は、 PxeProviderSetAttribute 関数を使用して変更できます。

要件

要件
サポートされている最小のクライアント
サポートなし
サポートされている最小のサーバー
Windows Server 2008、Windows Server 2003 SP2 [デスクトップ アプリのみ]

関連項目

Windows 展開サービス サーバー関数

PxeRegisterCallback

PxeSendReply

PxeProviderSetAttribute