Funzione PeerDistRegisterForStatusChangeNotification (peerdist.h)

La funzione PeerDistRegisterForStatusChangeNotification richiede la notifica di modifica dello stato del servizio di distribuzione peer.

Sintassi

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

Parametri

[in] hPeerDist

Un PEERDIST_INSTANCE_HANDLE restituito da PeerDistStartup.

[in, optional] hCompletionPort

Handle alla porta di completamento che può essere usata per recuperare la notifica di completamento della funzione asincrona. Per creare una porta di completamento, usare la funzione CreateIoCompletionPort . Questo parametro può essere NULL.

[in, optional] ulCompletionKey

Valore da restituire tramite il parametro lpCompletionKey della funzione GetQueuedCompletionStatus . Questo parametro viene ignorato quando hCompletionPort è NULL.

[in] lpOverlapped

Puntatore a una struttura OVERLAPPED . Se il membro hEvent della struttura non è NULL, verrà segnalato tramite SetEvent() usato per segnalare la notifica. Ciò può verificarsi anche se la porta di completamento viene specificata tramite l'argomento hCompletionPort .

[out] pPeerDistStatus

Puntatore a un'enumerazione PEERDIST_STATUS che indica lo stato corrente del servizio Di distribuzione peer.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è ERROR_IO_PENDING. In caso contrario, la funzione può restituire uno dei valori seguenti:

Codice restituito Descrizione
ERROR_INVALID_PARAMETER
Uno o più parametri non sono validi.
ERROR_INVALID_HANDLE
L'handle hPeerDist non è valido.

Commenti

Questa funzione registra facoltativamente una porta di completamento e una struttura OVERLAPPED per la notifica di modifica dello stato. Al termine del completamento, il parametro pPeerDistStatus conterrà un valore di PEERDIST_STATUS valido.

È consentita una sola registrazione attiva per ogni sessione. Il chiamante deve registrarsi per la notifica ogni volta che segnala. La notifica verrà inviata solo se lo stato corrente viene modificato dalla notifica precedente. Dopo la prima chiamata della funzione PeerDistRegisterForStatusChangeNotification per la sessione di distribuzione peer, la prima notifica verrà attivata solo se lo stato non è più uguale a PEERDIST_STATUS_DISABLED.

Una modifica dello stato della distribuzione peer può comportare lo spostamento del servizio distribuzione peer a uno stato disponibile, non disponibile o disabilitato. Se il nuovo stato è disabilitato o non disponibile, il contenuto, le informazioni sul contenuto o i flussi gestisce il chiamante ha accesso a non funzionerà più. In questo caso, qualsiasi API che usa questi handle avrà esito negativo con l'errore PEERDIST_ ERROR_INVALIDATED. Il chiamante deve chiudere in modo esplicito gli handle chiamando l'API di distribuzione peer appropriata.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 Professional [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione peerdist.h
Libreria PeerDist.lib
DLL PeerDist.dll

Vedi anche

PeerDistClientCloseContent

PeerDistServerCloseContentInformation

PeerDistServerCloseStreamHandle

PeerDistStartup