Функция DRMGetServiceLocation (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.]
Функция DRMGetServiceLocation извлекает URL-адрес сервера, который может выполнять различные службы управления правами, такие как активация или получение лицензии.
Синтаксис
DRMEXPORT HRESULT UDAPICALL DRMGetServiceLocation(
[in, optional] DRMHSESSION hClient,
[in] UINT uServiceType,
[in] UINT uServiceLocation,
[in] PWSTR wszIssuanceLicense,
[in, out] UINT *puServiceURLLength,
[out] PWSTR wszServiceURL
);
Параметры
[in, optional] hClient
Дескриптор сеанса клиента. Дескриптор можно получить с помощью функции DRMCreateClientSession . Дескриптор является необязательным и может иметь значение NULL.
[in] uServiceType
Указывает требуемый тип службы. Это может быть одно из следующих значений.
DRM_SERVICE_TYPE_ACTIVATION
Получите службу активации компьютера.
DRM_SERVICE_TYPE_CERTIFICATION
Получите службу сертификатов учетной записи прав .
DRM_SERVICE_TYPE_CLIENTLICENSOR
Получение службы сертификатов лицензиара клиента (для публикации в автономном режиме).
DRM_SERVICE_TYPE_PUBLISHING
Получите службу подписи лицензий на выдачу (для публикации по сети).
DRM_SERVICE_TYPE_SILENT
Подавляет внешний вид диалоговых окон пользовательского интерфейса при выполнении запроса на получение расположения службы.
[in] uServiceLocation
Указывает, где найти сервер AD RMS. Это может быть одно из следующих значений.
DRM_SERVICE_LOCATION_ENTERPRISE
Найдите сервер AD RMS на предприятии.
DRM_SERVICE_LOCATION_INTERNET
Найдите сервер AD RMS в Интернете.
[in] wszIssuanceLicense
Указатель на строку Юникода, завершающуюся null, которая содержит подписанную лицензию на выдачу. Этот параметр может принимать значение NULL. Дополнительные сведения см. в подразделе "Примечания".
[in, out] puServiceURLLength
Указатель на UINT , который на входных данных содержит размер буфера wszServiceURL в символах. Это значение включает завершающий символ NULL.
После возврата функции этот UINT содержит количество символов, включая завершающий пустой символ, которые были скопированы в буфер wszServiceURL .
Если wszServiceURL имеет значение NULL, этот UINT получает количество символов, включая завершающий символ NULL, необходимый для URL-адреса сервера.
[out] wszServiceURL
Указатель на буфер строки Юникода, который получает URL-адрес сервера. Параметр puServiceURLLength содержит размер этого буфера в символах, включая завершающий пустой символ.
Если этот параметр имеет значение NULL, puServiceURLLength получает количество символов, включая завершающий символ NULL, необходимый для URL-адреса сервера.
Возвращаемое значение
Если функция завершается успешно, функция возвращает S_OK.
Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Возможные значения включают, помимо прочего, значения из следующего списка. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Комментарии
Обнаружение URL-адреса службы зависит от взаимодействия между параметрами uServiceType, uServiceLocation и wszIssuanceLicense следующим образом.
Если для параметра uServiceType задано значение DRM_SERVICE_TYPE_CERTIFICATION или DRM_SERVICE_TYPE_ACTIVATION и:
- Вы передаете подписанную лицензию на выдачу в параметр wszIssuanceLicense . URL-адрес лицензирования извлекается из подписанной лицензии на выдачу, выполняется вызов сервера лицензирования для обнаружения URL-адреса сертификации, соответствующего вызывающей пользователю, а функция возвращает URL-адрес сертификации.
- Для параметра wszIssuanceLicense задается значение NULL , а для параметра uServiceLocation — значение DRM_SERVICE_LOCATION_INTERNET, функция возвращает код ошибки E_DRM_USE_DEFAULT.
- Для параметра wszIssuanceLicense задается значение NULL, а для параметра uServiceLocation — значение DRM_SERVICE_LOCATION_ENTERPRISE, URL-адрес извлекается из реестра или Active Directory (AD).
Если для параметра uServiceType задано значение DRM_SERVICE_TYPE_PUBLISHING или DRM_SERVICE_TYPE_CLIENTLICENSOR и:
- Вы задали параметру uServiceLocation значение DRM_SERVICE_LOCATION_INTERNET, чтобы получить URL-адрес службы из Интернета, поддерживается служба Passport.
- Для параметра uServiceLocation задается значение DRM_SERVICE_LOCATION_ENTERPRISE, а для параметра wszIssuanceLicense — значение NULL. URL-адрес службы лицензирования извлекается из реестра и возвращается вызовом функции. Или при отсутствии записи реестра URL-адрес сертификации извлекается из точки подключения службы в Active Directory (AD), выполняется вызов к серверу сертификации для обнаружения URL-адреса службы лицензирования, а функция возвращает URL-адрес службы лицензирования.
- Вы задаете для параметра uServiceLocation значение DRM_SERVICE_LOCATION_ENTERPRISE и передаете подписанную лицензию на выдачу параметру wszIssuanceLicense . Функция пытается получить настроенный URL-адрес лицензирования из реестра. Если эта попытка завершается сбоем, URL-адрес лицензирования извлекается из подписанной лицензии на выдачу и выполняется вызов сервера лицензирования, чтобы обнаружить конкретный URL-адрес лицензирования пользователя.
В предыдущих случаях, когда функция выполняет поиск в реестре, можно принудительно найти определенный URL-адрес, добавив соответствующий раздел реестра в следующем списке вместе с URL-адресом в качестве строкового значения с именем (по умолчанию). Не добавляйте страницу ASMX в URL-адрес.
Раздел реестра | Описание |
---|---|
|
Для RMS версии 1.0 задайте для этого параметра реестра URL-адрес службы активации компьютера. Чтобы использовать это значение для сертификации, задайте для него виртуальный корень сертификации предприятия.
Начиная с RMS версии 1.0 с пакетом обновления 1 (SP1), это значение можно использовать только для обнаружения службы сертификации. Поэтому задайте для него URL-адрес виртуального корня учетной записи прав, http:// ServerName/_wmcs/certification. |
|
Задайте для этого значения реестра URL-адрес службы, которая подписывает лицензии на выдачу в корпоративной сети. |
|
Задайте для этого значения реестра URL-адрес службы, которая подписывает лицензии на выдачу через Интернет. |
Приложение отвечает за выделение и освобождение памяти для полученных данных. Чтобы найти требуемый размер буфера, вызовите функцию со значением NULL в параметре wszServiceURL . Размер буфера будет передан обратно через параметр puServiceURLLength .
Пример кода обнаружения службы см. в разделе OnlineSigning_GetServiceURL.cpp. Обнаружение служб для получения лицензий конечных пользователей не выполняется, так как эти сведения могут храниться в лицензии на выдачу , используемой для получения лицензии конечного пользователя.
Требования
Целевая платформа | Windows |
Header | msdrm.h |
Библиотека | Msdrm.lib |
DLL | Msdrm.dll |