Поделиться через


Функция PeerDistServerPublishStream (peerdist.h)

Функция PeerDistServerPublishStream инициализирует новый поток для публикации в службе однорангового распространения.

Синтаксис

DWORD PeerDistServerPublishStream(
  [in]           PEERDIST_INSTANCE_HANDLE       hPeerDist,
                 DWORD                          cbContentIdentifier,
  [in]           PBYTE                          pContentIdentifier,
                 ULONGLONG                      cbContentLength,
  [in, optional] PCPEERDIST_PUBLICATION_OPTIONS pPublishOptions,
  [in, optional] HANDLE                         hCompletionPort,
  [in, optional] ULONG_PTR                      ulCompletionKey,
  [out]          PPEERDIST_STREAM_HANDLE        phStream
);

Параметры

[in] hPeerDist

PEERDIST_INSTANCE_HANDLE, возвращенный PeerDistStartup.

cbContentIdentifier

Длина буфера в байтах, содержащего данные идентификатора контента.

[in] pContentIdentifier

Указатель на массив, содержащий данные идентификатора контента.

cbContentLength

Длина содержимого, публикуемого в байтах. Это значение может быть равно 0, если длина содержимого еще не известна. Если указан ненулевой аргумент, он должен соответствовать общей длине данных, добавленной одноранговым серверомPublishAddToStream вызовами функций.

[in, optional] pPublishOptions

Указатель на структуру PEERDIST_PUBLICATION_OPTIONS, указывающую правила публикации контента.

[in, optional] hCompletionPort

Дескриптор порта завершения, который можно использовать для получения уведомления о завершении асинхронной функции. Чтобы создать порт завершения, используйте функцию createIoCompletionPort. Этот параметр может быть NULL.

[in, optional] ulCompletionKey

Значение, возвращаемое через параметр lpCompletionKey функции GetQueuedCompletionStatus. Этот параметр игнорируется, если hCompletionPortNULL.

[out] phStream

Указатель, который получает дескриптор потока, который используется для публикации данных в службе однорангового распространения.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение ERROR_SUCCESS. В противном случае функция может вернуть одно из следующих значений:

Возвращаемый код Описание
ERROR_INVALID_PARAMETER
Один или несколько параметров недопустимы.
ERROR_INVALID_HANDLE
Указанный hPeerDist недопустим.
PEERDIST_ERROR_ALREADY_EXISTS
Идентификатор контента, используемый для публикации, уже опубликован.
ERROR_ACCESS_DISABLED_BY_POLICY
Функция отключена групповой политикой.
PEERDIST_ERROR_SERVICE_UNAVAILABLE
Служба недоступна.

Замечания

Идентификатор контента — это определяемая пользователем метка для опубликованного содержимого. Этот идентификатор содержимого используется для PeerDistServerOpenContentInformation, PeerDistServerUnpublishи одноранговых вызовов PeerDistServerCancelAsyncOperation.

Дескриптор, полученный phStream, можно использовать в PeerDistServerPublishAddToStream и PeerDistServerPublishCompleteStream для публикации данных в службе однорангового распространения. Этот дескриптор должен быть закрыт PeerDistServerCloseStreamHandle.

Публикация доступна только учетной записи пользователя, которая первоначально опубликовала содержимое. Если другой пользователь вызывает PeerDistServerPublishStream с тем же идентификатором содержимого, то в контексте этого пользователя будет создана отдельная публикация.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 7 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2008 R2 [только классические приложения]
целевая платформа Виндоус
заголовка peerdist.h
библиотеки PeerDist.lib
DLL PeerDist.dll

См. также

PeerDistServerCancelAsyncOperation

PeerDistServerCloseStreamHandle

PeerDistServerOpenContentInformation

PeerDistServerPublishAddToStream

PeerDistServerPublishCompleteStream

PeerDistServerUnpublish