次の方法で共有


PeerDistRegisterForStatusChangeNotificationEx 関数 (peerdist.h)

PeerDistRegisterForStatusChangeNotificationEx 関数は、ピア配布サービスの状態変更通知を要求します。

構文

DWORD PeerDistRegisterForStatusChangeNotificationEx(
  [in]           PEERDIST_INSTANCE_HANDLE hPeerDist,
  [in, optional] HANDLE                   hCompletionPort,
  [in, optional] ULONG_PTR                ulCompletionKey,
  [in]           LPOVERLAPPED             lpOverlapped,
  [in, out]      PEERDIST_STATUS_INFO     *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 引数を使用して入力候補ポートが指定されている場合でも発生する可能性があります。

[in, out] pPeerDistStatus

ピア配布 サービスの現在 の状態と機能を含むPEERDIST_STATUS_INFO構造体へのポインター。

戻り値

関数が成功した場合、戻り値は ERROR_SUCCESS です。

注釈

この関数は、必要に応じて、状態変更通知用の完了ポートと OVERLAPPED 構造体を登録します。 正常に完了すると、 pPeerDistStatus パラメーターには有効な PEERDIST_STATUS 値が含まれます。

セッションごとに 1 つのアクティブな登録のみが許可されます。 呼び出し元は、通知後に毎回通知に登録する必要があります。 通知は、前の通知から現在の状態が変更された場合にのみ送信されます。 ピア配布セッションの PeerDistRegisterForStatusChangeNotification 関数の最初の呼び出しの後、状態が PEERDIST_STATUS_DISABLED と等しなくなった場合にのみ、最初の通知がトリガーされます。

ピア配布の状態を変更すると、ピア配布サービスが使用可能、使用不可、または無効の状態に移行する可能性があります。 新しい状態が無効または使用できない場合、呼び出し元がアクセスできるコンテンツ、コンテンツ情報、またはストリーム ハンドルは機能しなくなります。 この場合、これらのハンドルを使用するすべての API はエラー PEERDIST_ ERROR_INVALIDATEDで失敗します。 呼び出し元は、適切なピア分散 API を呼び出して、ハンドルを明示的に閉じる必要があります。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー peerdist.h

こちらもご覧ください

CreateIoCompletionPort

GetQueuedCompletionStatus

PEERDIST_STATUS

PeerDistServerCloseContentInformation

PeerDistServerRetrieveContentInformation

PeerDistStartup