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


Метод ISCPSecureQuery2::MakeDecision2 (mswmdm.h)

Метод MakeDecision2 определяет, отвечает ли поставщик защищенного содержимого за содержимое, проверяя данные, которые Windows Media диспетчер устройств передает этому методу. Этот метод предоставляет два выходных параметра для обработки ошибок, расположение по умолчанию для обновления отозванных компонентов и битовый флаг, указывающий, какие компоненты были отозваны.

Синтаксис

HRESULT MakeDecision2(
  [in]      UINT                fuFlags,
  [in]      BYTE                *pData,
  [in]      DWORD               dwSize,
  [in]      DWORD               dwAppSec,
  [in]      BYTE                *pbSPSessionKey,
  [in]      DWORD               dwSessionKeyLen,
  [in]      IMDSPStorageGlobals *pStorageGlobals,
  [in]      BYTE                *pAppCertApp,
  [in]      DWORD               dwAppCertAppLen,
  [in]      BYTE                *pAppCertSP,
  [in]      DWORD               dwAppCertSPLen,
  [in, out] LPWSTR              *pszRevocationURL,
  [in, out] DWORD               *pdwRevocationURLLen,
  [out]     DWORD               *pdwRevocationBitFlag,
  [in, out] ULONGLONG           *pqwFileSize,
  [in]      IUnknown            *pUnknown,
  [out]     ISCPSecureExchange  **ppExchange,
  [in, out] BYTE [8]            abMac
);

Параметры

[in] fuFlags

Флаги, описывающие данные, предлагаемые поставщику защищенного содержимого для принятия решений. Этот параметр должен быть включен в код проверки подлинности входного сообщения. Один или несколько из следующих флагов можно комбинировать с помощью побитового ИЛИ.

Flag Описание
WMDM_SCP_DECIDE_DATA Параметр pData указывает на данные для изучения.
WMDM_MODE_TRANSFER_PROTECTED Выходные данные объекта из интерфейса ISCPSecureExchange должны быть защищены. Если windows Media диспетчер устройств не устанавливает ни один или оба флага режима, диспетчер цифровых прав Windows Media решает, должны ли данные выходных объектов из интерфейса ISCPSecureExchange быть защищены или не защищены.
WMDM_MODE_TRANSFER_UNPROTECTED Выходные данные объекта из интерфейса ISCPSecureExchange должны быть незащищены. Если windows Media диспетчер устройств не устанавливает ни один или оба флага режима, диспетчер цифровых прав Windows Media решает, должны ли данные выходных объектов из интерфейса ISCPSecureExchange быть защищены или не защищены.

[in] pData

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

[in] dwSize

DWORD , содержащий размер данных файла.

[in] dwAppSec

DWORD , содержащий длину (в байтах) члена dwAppSec структуры WMDMRIGHTS поставщика услуг и поставщика защищенного содержимого для проверки. Этот параметр должен быть включен в код проверки подлинности входного сообщения.

[in] pbSPSessionKey

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

[in] dwSessionKeyLen

DWORD , содержащий длину ключа сеанса.

[in] pStorageGlobals

Указатель на интерфейс IWMDMStorageGlobals в корневом хранилище носителя или устройства, из которого передается файл. Этот параметр должен быть включен в код проверки подлинности входного сообщения.

[in] pAppCertApp

Указатель на сертификат приложения объекта приложения.

[in] dwAppCertAppLen

DWORD , содержащий длину (в байтах) сертификата приложения.

[in] pAppCertSP

Указатель на сертификат приложения объекта поставщика услуг.

[in] dwAppCertSPLen

DWORD , содержащий длину (в байтах) сертификата приложения.

[in, out] pszRevocationURL

Указатель на буфер для хранения URL-адреса отзыва.

[in, out] pdwRevocationURLLen

Указатель на DWORD , содержащий размер буфера rpszRevocationURL в байтах.

[out] pdwRevocationBitFlag

Указатель на DWORD , содержащий флаг бита отзыва. Значение флага будет равно нулю или одному или нескольким из следующих имен флагов, объединенных с использованием побитового ИЛИ.

Значение Описание
WMDM_WMDM_REVOKED Сама диспетчер устройств Windows Media была отозвана.
WMDM_APP_REVOKED Приложение было отозвано, и его необходимо обновить перед передачей любого содержимого, защищенного DRM.
WMDM_SP_REVOKED Поставщик услуг был отозван и должен быть обновлен перед передачей в него любого содержимого, защищенного DRM.
WMDM_SCP_REVOKED Поставщик безопасного содержимого был отозван и должен быть обновлен перед передачей содержимого, защищенного DRM.

[in, out] pqwFileSize

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

[in] pUnknown

Указатель на неизвестный интерфейс из приложения.

[out] ppExchange

Указатель на объект exchange, который получает интерфейс exchange.

[in, out] abMac

Массив из восьми байтов, содержащий код проверки подлинности сообщения для данных параметров этого метода. (WMDM_MAC_LENGTH определяется как 8.)

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

Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возвращается код ошибки HRESULT .

Код возврата Описание
WMDM_E_REVOKED
Сертификат приложения, который поставщик безопасного содержимого использует для взаимодействия с клиентом DRM, был отозван.

Требования

Требование Значение
Целевая платформа Windows
Header mswmdm.h
Библиотека Mssachlp.lib

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

Интерфейс ISCPSecureQuery

Интерфейс ISCPSecureQuery2

ISCPSecureQuery::MakeDecision