Метод 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 .
Код возврата | Описание |
---|---|
|
Этот метод был вызван из последовательности. |
|
Недопустимый код проверки подлинности сообщения. |
|
Windows Media диспетчер устройств должны снова вызвать этот метод с другим пакетом данных. Размер пакета определяется параметром pdwMinDecisionData в методе ISCPSecureQuery::GetDataDemands . |
|
Вызывающий объект не имеет прав, необходимых для выполнения запрошенной передачи. |
|
Недопустимый параметр или является указателем NULL . |
|
Произошла неизвестная ошибка. |
Комментарии
Этот метод вызывается после метода ISCPSecureQuery::ExamineData и принимает окончательное решение о том, разрешен ли доступ к содержимому.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | mswmdm.h |
Библиотека | Mssachlp.lib |