PeerDistRegisterForStatusChangeNotification 函数 (peerdist.h)

PeerDistRegisterForStatusChangeNotification 函数请求对等分发服务状态更改通知。

语法

DWORD PeerDistRegisterForStatusChangeNotification(
  [in]           PEERDIST_INSTANCE_HANDLE hPeerDist,
  [in, optional] HANDLE                   hCompletionPort,
  [in, optional] ULONG_PTR                ulCompletionKey,
  [in]           LPOVERLAPPED             lpOverlapped,
  [out]          PEERDIST_STATUS          *pPeerDistStatus
);

参数

[in] hPeerDist

PeerDistStartup 返回的PEERDIST_INSTANCE_HANDLE

[in, optional] hCompletionPort

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

[in, optional] ulCompletionKey

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

[in] lpOverlapped

指向 OVERLAPPED 结构的指针。 如果 结构的 hEvent 成员不为 NULL,则将通过 SetEvent () 发出信号以发出通知。 即使通过 hCompletionPort 参数指定了完成端口,也会发生这种情况。

[out] pPeerDistStatus

指向 PEERDIST_STATUS 枚举的指针,该枚举指示对等分发服务的当前状态。

返回值

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

返回代码 说明
ERROR_INVALID_PARAMETER
一个或多个参数无效。
ERROR_INVALID_HANDLE
hPeerDist 句柄无效。

注解

此函数可以选择注册状态更改通知的完成端口和 OVERLAPPED 结构。 成功完成后, pPeerDistStatus 参数将包含有效的 PEERDIST_STATUS 值。

每个会话只允许一个活动注册。 调用方必须在每次发出信号后注册通知。 仅当当前状态与上一个通知发生更改时,才会发送通知。 对等分发会话的 PeerDistRegisterForStatusChangeNotification 函数首次调用后,仅当状态不再等于 PEERDIST_STATUS_DISABLED时,才会触发第一个通知。

对等分发状态更改可能导致对等分发服务进入可用、不可用或禁用状态。 如果新状态为“已禁用”或“不可用”,则调用方有权访问的内容、内容信息或流句柄将不再有效。 在这种情况下,使用这些句柄的任何 API 都将失败, PEERDIST_ ERROR_INVALIDATED出现错误。 调用方必须通过调用相应的对等分布 API 显式关闭句柄。

要求

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

另请参阅

PeerDistClientCloseContent

PeerDistServerCloseContentInformation

PeerDistServerCloseStreamHandle

PeerDistStartup