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

重疊結構的指標。 如果結構的 hEvent 成員不是 NULL,則會透過用來發出通知的 SetEvent () 發出訊號。 即使透過 hCompletionPort 自變數指定完成埠,也會發生這種情況。

[out] pPeerDistStatus

指出對等散發服務目前狀態 之PEERDIST_STATUS 列舉的指標。

傳回值

如果函式成功,傳回值 會ERROR_IO_PENDING。 否則,此函式可能會傳回下列其中一個值:

傳回碼 Description
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
程式庫 PeerDist.lib
Dll PeerDist.dll

另請參閱

PeerDistClientCloseContent

PeerDistServerCloseContentInformation

PeerDistServerCloseStreamHandle

PeerDistStartup