PxeProviderRecvRequest 回调函数

从客户端收到请求时调用。 此函数是通过调用 PxeRegisterCallback 函数注册的,且 CallbackType 参数设置为 PXE_CALLBACK_RECV_REQUEST

语法

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 函数至少一次成功完成客户端请求。
PXE_BA_CUSTOM
2
提供程序使用不符合 DHCP 规范的自定义响应回复客户端。 返回此操作意味着提供程序通过调用 PxeSendReply 函数至少一次成功完成客户端请求。
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