PeerDistRegisterForStatusChangeNotification-Funktion (peerdist.h)

Die Funktion PeerDistRegisterForStatusChangeNotification fordert den Peerverteilungsdienst status Änderungsbenachrichtigung an.

Syntax

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

Parameter

[in] hPeerDist

Eine vonPeerDistStartup zurückgegebene PEERDIST_INSTANCE_HANDLE.

[in, optional] hCompletionPort

Ein Handle für den Vervollständigungsport, der zum Abrufen der Abschlussbenachrichtigung der asynchronen Funktion verwendet werden kann. Verwenden Sie zum Erstellen eines Abschlussports die Funktion CreateIoCompletionPort. Dieser Parameter kann NULL sein.

[in, optional] ulCompletionKey

Der Wert, der über den lpCompletionKey-Parameter der GetQueuedCompletionStatus-Funktion zurückgegeben werden soll. Dieser Parameter wird ignoriert, wenn hCompletionPortNULL ist.

[in] lpOverlapped

Zeiger auf eine OVERLAPPED-Struktur . Wenn der hEvent-Member der -Struktur nicht NULL ist, wird es über SetEvent() signalisiert, mit dem die Benachrichtigung signalisiert wird. Dies kann auch dann der Fall sein, wenn der Abschlussport über das Argument hCompletionPort angegeben wird.

[out] pPeerDistStatus

Ein Zeiger auf eine PEERDIST_STATUS-Enumeration, die die aktuelle status des Peerverteilungsdiensts angibt.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert ERROR_IO_PENDING. Andernfalls gibt die Funktion möglicherweise einen der folgenden Werte zurück:

Rückgabecode Beschreibung
ERROR_INVALID_PARAMETER
Mindestens ein Parameter ist ungültig.
ERROR_INVALID_HANDLE
Das hPeerDist-Handle ist ungültig.

Hinweise

Diese Funktion registriert optional einen Abschlussport und eine OVERLAPPED-Struktur für status Änderungsbenachrichtigung. Nach erfolgreichem Abschluss enthält der Parameter pPeerDistStatus einen gültigen PEERDIST_STATUS Wert.

Es ist nur eine aktive Registrierung für jede Sitzung zulässig. Der Anrufer muss sich jedes Mal nach dem Signal für eine Benachrichtigung registrieren. Die Benachrichtigung wird nur gesendet, wenn die aktuelle status gegenüber der vorherigen Benachrichtigung geändert wurde. Nach dem ersten Aufruf der PeerDistRegisterForStatusChangeNotification-Funktion für die Peerverteilungssitzung wird die erste Benachrichtigung nur ausgelöst, wenn die status nicht mehr gleich PEERDIST_STATUS_DISABLED ist.

Eine Peerverteilung status Änderung kann dazu führen, dass der Peerverteilungsdienst in einen verfügbaren, nicht verfügbaren oder deaktivierten Zustand wechselt. Wenn die neue status deaktiviert oder nicht verfügbar ist, funktionieren die Inhalte, Inhaltsinformationen oder Streamhandles, auf die der Aufrufer Zugriff hat, nicht mehr. In diesem Fall schlägt jede API, die diese Handles verwendet, mit Fehler PEERDIST_ ERROR_INVALIDATED fehl. Der Aufrufer muss die Handles explizit schließen, indem er die entsprechende Peerverteilungs-API aufruft.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile peerdist.h
Bibliothek PeerDist.lib
DLL PeerDist.dll

Weitere Informationen

PeerDistClientCloseContent

PeerDistServerCloseContentInformation

PeerDistServerCloseStreamHandle

PeerDistStartup