Функция DRMCreateBoundLicense (msdrm.h)

[Пакет SDK ДЛЯ AD RMS с функциональными возможностями, предоставляемыми

клиент в Msdrm.dll доступен для использования в Windows Server 2008, Windows Vista, Windows Server 2008 R2, Windows 7, Windows Server 2012 и Windows 8. Он может быть изменен или

недоступно в последующих версиях. Вместо этого используйте пакет SDK 2.1 служб Active Directory Rights Management.

который использует функциональные возможности, предоставляемые клиентом в Msipc.dll.]

Функция DRMCreateBoundLicense позволяет приложению проверять или использовать права на локально хранящуюся лицензию.

Синтаксис

DRMEXPORT HRESULT UDAPICALL DRMCreateBoundLicense(
  [in]  DRMENVHANDLE          hEnv,
  [in]  DRMBOUNDLICENSEPARAMS *pParams,
  [in]  PWSTR                 wszLicenseChain,
  [out] DRMHANDLE             *phBoundLicense,
  [out] DRMHANDLE             *phErrorLog
);

Параметры

[in] hEnv

Дескриптор среды; дескриптор создается с помощью функции DRMInitEnvironment .

[in] pParams

Указатель на структуру DRMBOUNDLICENSEPARAMS , указывающую дополнительные параметры; Дополнительные сведения см. в разделе Примечания. Указанный здесь субъект — это тот, к который приложение будет пытаться выполнить привязку. Если передать значение NULL для идентификации субъекта или группы прав, будет использоваться первый субъект или группа прав в лицензии.

[in] wszLicenseChain

Указатель на строку Юникода, завершающуюся null, которая содержит лицензию конечного пользователя (или цепочку лицензий).

[out] phBoundLicense

Указатель на дескриптор, который получает привязанную лицензию. DRMHANDLE, передаваемый обратно через phBoundLicense, позволяет приложению перемещаться по всем объектам лицензии (таким как субъекты или права) и атрибутам (например, максимальному количеству воспроизведения). Привязанная лицензия объединяет дублирующиеся сведения о правах в лицензии и удаляет все сведения о правах, недоступные текущему пользователю.

[out] phErrorLog

Этот параметр должен иметь значение NULL.

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

Если функция завершается успешно, функция возвращает S_OK.

Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Возможные значения включают, помимо прочего, значения из следующего списка. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

Комментарии

Вызов этой функции привязывает лицензию к правому или правам, указанным в структуре DRMBOUNDLICENSEPARAMS , переданной параметру pParams . Если запрошенное право не может быть выполнено текущим пользователем, функция завершится ошибкой. Обратите внимание также, что перед вызовом этой функции необходимо вызвать DRMSetMetaData и указать значение параметра wszContentId . Это значение должно совпадать с идентификатором, заданным в структуре DRMBOUNDLICENSEPARAMS , иначе функция завершится ошибкой.

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

Если привязка лицензии завершается сбоем из-за отсутствия или устаревшего списка отзыва, возвращаемое значение не указывает, какая лицензия или сертификат вызывает ошибку. Это может быть лицензия конечного пользователя, сертификат учетной записи пользователя с правами, сертификат лицензиара клиента или другая лицензия или сертификат. Необходимо вызывать DRMAcquireAdvisoriesDRMRegisterRevocationList) для каждого сертификата, пока не возникнет ошибка.

Субъекты проверки подлинности, необходимые для лицензии, должны быть загружены перед вызовом этой функции. Однако средство проверки подлинности может продолжать работать после создания лицензии.

Завершив использование дескриптора лицензии, закройте его, вызвав функцию DRMCloseHandle . DRMCloseHandle закрывает дескриптор библиотеки и удаляет лицензию из памяти.

Дескриптор, возвращаемый этой функцией, можно передать в одну из следующих функций для более глубокого перехода в иерархию лицензий:

Требования

   
Целевая платформа Windows
Header msdrm.h
Библиотека Msdrm.lib
DLL Msdrm.dll

См. также раздел

Функции AD RMS

DRMBOUNDLICENSEPARAMS