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 |
---|---|
|
Esse método foi chamado fora de sequência. |
|
O código de autenticação de mensagem não é válido. |
|
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 . |
|
O chamador não tem os direitos necessários para executar a transferência solicitada. |
|
Um parâmetro é inválido ou é um ponteiro NULL . |
|
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 |