Compartilhar via


Método ISCPSecureQuery::MakeDecision (mswmdm.h)

O método MakeDecision determina se o acesso ao conteúdo é permitido. Se o acesso for permitido, esse método retornará a interface que será usada para acessar o conteúdo.

Sintaxe

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
);

Parâmetros

[in] fuFlags

Sinalizadores que descrevem os dados oferecidos ao provedor de conteúdo seguro para tomar decisões. Esse parâmetro deve ser incluído no código de autenticação de mensagem de entrada. Os sinalizadores a seguir podem estar presentes.

Sinalizador Descrição
WMDM_SCP_DECIDE_DATA O parâmetro pData aponta para os dados a serem examinados.
WMDM_MODE_TRANSFER_PROTECTED Os dados do objeto de saída da interface ISCPSecureExchange devem ser protegidos. Se o Windows Media Gerenciador de Dispositivos definir nenhum ou ambos os sinalizadores de modo, o DRM decidirá se os dados do objeto de saída da interface ISCPSecureExchange devem ser protegidos ou desprotegidos.
WMDM_MODE_TRANSFER_UNPROTECTED Os dados do objeto de saída da interface ISCPSecureExchange devem estar desprotegidos. Se o Windows Media Gerenciador de Dispositivos definir nenhum ou ambos os sinalizadores de modo, o DRM decidirá se os dados do objeto de saída da interface ISCPSecureExchange devem ser protegidos ou desprotegidos.

[in] pData

Ponteiro para um objeto de dados que contém os dados a serem examinados. Esse parâmetro deve ser incluído no código de autenticação de mensagem de entrada e deve ser criptografado.

[in] dwSize

DWORD que contém o comprimento, em bytes, dos dados a serem examinados. Esse parâmetro deve ser incluído no código de autenticação de mensagem de entrada.

[in] dwAppSec

DWORD que indica o nível atual de segurança do Windows Media Gerenciador de Dispositivos. Esse é o menor dos níveis de segurança atuais do aplicativo e do provedor de serviços de destino. Esse parâmetro deve ser incluído no código de autenticação de mensagem de entrada.

[in] pbSPSessionKey

Ponteiro para uma matriz de bytes que contém a chave de sessão para proteger a comunicação com o provedor de serviços para o qual pStgGlobals aponta. Esse parâmetro deve ser incluído no código de autenticação de mensagem de entrada e deve ser criptografado.

[in] dwSessionKeyLen

Comprimento da matriz de bytes para a qual pbSPSessionKey aponta. Esse parâmetro deve ser incluído no código de autenticação de mensagem de entrada.

[in] pStorageGlobals

Ponteiro para a interface IWMDMStorageGlobals no armazenamento raiz da mídia ou dispositivo para ou do qual o arquivo está sendo transferido. Esse parâmetro deve ser incluído no código de autenticação de mensagem de entrada.

[out] ppExchange

Ponteiro para um objeto exchange que recebe a interface de troca.

[in, out] abMac

Matriz de oito bytes que contém o código de autenticação de mensagem para os dados de parâmetro desse método. (WMDM_MAC_LENGTH é definido como 8.)

Retornar valor

Se o método for bem-sucedido, retornará S_OK. Se falhar, retornará um código de erro HRESULT .

Código de retorno Descrição
WMDM_E_CALL_OUT_OF_SEQUENCE
Esse método foi chamado fora de sequência.
WMDM_E_MAC_CHECK_FAILED
O código de autenticação de mensagem não é válido.
WMDM_E_MOREDATA
O Windows Media Gerenciador de Dispositivos deve chamar esse método novamente com outro pacote de dados. O tamanho do pacote é determinado pelo parâmetro pdwMinDecisionData no método ISCPSecureQuery::GetDataDemands .
S_FALSE
O chamador não tem os direitos necessários para executar a transferência solicitada.
E_INVALIDARG
Um parâmetro é inválido ou é um ponteiro NULL .
E_FAIL
Ocorreu um erro não especificado.

Comentários

Esse método é chamado após o método ISCPSecureQuery::ExamineData e toma a decisão final se o acesso ao conteúdo é permitido.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho mswmdm.h
Biblioteca Mssachlp.lib

Confira também

ISCPSecureExchange Interface

ISCPSecureQuery Interface

ISCPSecureQuery2::MakeDecision2

IWMDMStorageGlobals Interface