WsFlushBody 函数 (webservices.h)

刷新已写入的所有累积消息正文数据。

当消息使用 WsWriteBody 或 XML 编写器时,数据将累积在缓冲区中。 WsFlushBody 随后执行实际 I/O。

当通道 I/O 设置为 WS_STREAMED_OUTPUT_TRANSFER_MODE,或使用 XML 编写器设置为使用 WS_XML_WRITER_STREAM_OUTPUT 时,通常使用 WsFlushBody。

语法

HRESULT WsFlushBody(
  [in]           WS_MESSAGE             *message,
  [in]           ULONG                  minSize,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

参数

[in] message

指向包含累积消息正文数据的 WS_MESSAGE 结构的指针。

[in] minSize

指定函数执行数据刷新时消息中必须存在的最小字节数。

注意 如果消息包含小于 minSize WSFlushBody,则终止而不执行 I/O 刷新。 较大的值可确保在累积较大的值之前不会执行任何 I/O。 这可用于确保在执行 I/O 时使用较大的区块。 假设至少有一个字节的累积数据(以 minSize 为单位)的值为 0,则保证会刷新数据。
 

[in, optional] asyncContext

指向 WS_ASYNC_CONTEXT 数据结构的指针,其中包含有关异步调用函数的信息。 NULL 值指示同步操作的请求。

[in, optional] error

指向 WS_ERROR 对象的指针,如果函数失败,应存储有关错误的其他信息。

返回值

此函数可以返回其中一个值。

返回代码 说明
WS_S_ASYNC
异步操作仍处于挂起状态。
WS_E_INVALID_FORMAT
输入数据的格式不是预期的,或者没有预期的值。
E_INVALIDARG
一个或多个参数无效。
E_OUTOFMEMORY
内存不足。
其他错误
此函数可能会返回上面未列出的其他错误。

注解

如果未设置WS_STREAMED_OUTPUT_TRANSFER_MODE,或者使用具有WS_XML_WRITER_BUFFER_OUTPUT集的 XML 编写器,则此函数为“no-op”。

此函数是用于为用于写入消息的 XML 编写器调用 WsFlushWriter 的快捷方式。 直接调用 WsFlushWriter 等效于调用此函数。

要求

要求
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 webservices.h
Library WebServices.lib
DLL WebServices.dll