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 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 peerdist.h
라이브러리 PeerDist.lib
DLL PeerDist.dll

추가 정보

PeerDistClientCloseContent

PeerDistServerCloseContentInformation

PeerDistServerCloseStreamHandle

PeerDistStartup