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


Метод ISCPSecureQuery::MakeDecision (mswmdm.h)

Метод MakeDecision определяет, разрешен ли доступ к содержимому. Если доступ разрешен, этот метод возвращает интерфейс, который будет использоваться для доступа к содержимому.

Синтаксис

HRESULT MakeDecision(
  [in]      UINT                fuFlags,
  [in]      BYTE                *pData,
  [in]      DWORD               dwSize,
  [in]      DWORD               dwAppSec,
  [in]      BYTE                *pbSPSessionKey,
  [in]      DWORD               dwSessionKeyLen,
  [in]      IMDSPStorageGlobals *pStorageGlobals,
  [out]     ISCPSecureExchange  **ppExchange,
  [in, out] BYTE [8]            abMac
);

Параметры

[in] fuFlags

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

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

[in] pData

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

[in] dwSize

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

[in] dwAppSec

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

[in] pbSPSessionKey

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

[in] dwSessionKeyLen

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

[in] pStorageGlobals

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

[out] ppExchange

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

[in, out] abMac

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

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

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

Код возврата Описание
WMDM_E_CALL_OUT_OF_SEQUENCE
Этот метод был вызван из последовательности.
WMDM_E_MAC_CHECK_FAILED
Недопустимый код проверки подлинности сообщения.
WMDM_E_MOREDATA
Windows Media диспетчер устройств должны снова вызвать этот метод с другим пакетом данных. Размер пакета определяется параметром pdwMinDecisionData в методе ISCPSecureQuery::GetDataDemands .
S_FALSE
Вызывающий объект не имеет прав, необходимых для выполнения запрошенной передачи.
E_INVALIDARG
Недопустимый параметр или является указателем NULL .
E_FAIL
Произошла неизвестная ошибка.

Комментарии

Этот метод вызывается после метода ISCPSecureQuery::ExamineData и принимает окончательное решение о том, разрешен ли доступ к содержимому.

Требования

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

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

Интерфейс ISCPSecureExchange

Интерфейс ISCPSecureQuery

ISCPSecureQuery2::MakeDecision2

Интерфейс IWMDMStorageGlobals