PeerDistServerPublishStream 函数 (peerdist.h)

PeerDistServerPublishStream 函数初始化要发布到对等分发服务的新流。

语法

DWORD PeerDistServerPublishStream(
  [in]           PEERDIST_INSTANCE_HANDLE       hPeerDist,
                 DWORD                          cbContentIdentifier,
  [in]           PBYTE                          pContentIdentifier,
                 ULONGLONG                      cbContentLength,
  [in, optional] PCPEERDIST_PUBLICATION_OPTIONS pPublishOptions,
  [in, optional] HANDLE                         hCompletionPort,
  [in, optional] ULONG_PTR                      ulCompletionKey,
  [out]          PPEERDIST_STREAM_HANDLE        phStream
);

参数

[in] hPeerDist

PeerDistStartup 返回的PEERDIST_INSTANCE_HANDLE。

cbContentIdentifier

包含内容标识符数据的缓冲区的长度(以字节为单位)。

[in] pContentIdentifier

指向包含内容标识符数据的数组的指针。

cbContentLength

要发布的内容的长度(以字节为单位)。 如果尚不知道内容长度,则此值可以为 0。 如果提供了非零参数,则它必须与 PeerDistServerPublishAddToStream 函数调用添加的总数据长度匹配。

[in, optional] pPublishOptions

指向指定内容发布规则 的PEERDIST_PUBLICATION_OPTIONS 结构的指针。

[in, optional] hCompletionPort

可用于检索异步函数的完成通知的完成端口的句柄。 若要创建完成端口,请使用 CreateIoCompletionPort 函数。 此参数可以为 NULL。

[in, optional] ulCompletionKey

通过 GetQueuedCompletionStatus 函数的 lpCompletionKey 参数返回的值。 当 hCompletionPortNULL 时,将忽略此参数。

[out] phStream

一个指针,它接收用于将数据发布到对等分发服务的流的句柄。

返回值

如果函数成功,则返回值 ERROR_SUCCESS。 否则,该函数返回以下值之一:

返回代码 说明
ERROR_INVALID_PARAMETER
一个或多个参数无效。
ERROR_INVALID_HANDLE
指定的 hPeerDist 无效。
PEERDIST_ERROR_ALREADY_EXISTS
用于发布的内容标识符已发布。
ERROR_ACCESS_DISABLED_BY_POLICY
组策略禁用该功能。
PEERDIST_ERROR_SERVICE_UNAVAILABLE
服务不可用。

注解

内容标识符是所发布内容的用户定义标签。 此内容标识符用于 PeerDistServerOpenContentInformationPeerDistServerUnpublishPeerDistServerCancelAsyncOperation 调用。

phStream 接收的句柄可以在 PeerDistServerPublishAddToStreamPeerDistServerPublishCompleteStream 中使用,将数据发布到对等分发服务中。 此句柄应由 PeerDistServerCloseStreamHandle 关闭。

发布只能由最初发布内容的用户帐户访问。 如果其他用户使用相同的内容标识符调用 PeerDistServerPublishStream ,则将在该用户的上下文中创建单独的发布。

要求

要求
最低受支持的客户端 Windows 7 专业版 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 peerdist.h
Library PeerDist.lib
DLL PeerDist.dll

另请参阅

PeerDistServerCancelAsyncOperation

PeerDistServerCloseStreamHandle

PeerDistServerOpenContentInformation

PeerDistServerPublishAddToStream

PeerDistServerPublishCompleteStream

PeerDistServerUnpublish