Partager via


ISCPSecureQuery ::MakeDecision, méthode (mswmdm.h)

La méthode MakeDecision détermine si l’accès au contenu est autorisé. Si l’accès est autorisé, cette méthode retourne l’interface qui sera utilisée pour accéder au contenu.

Syntaxe

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

Paramètres

[in] fuFlags

Indicateurs décrivant les données offertes au fournisseur de contenu sécurisé pour prendre des décisions. Ce paramètre doit être inclus dans le code d’authentification du message d’entrée. Les indicateurs suivants peuvent être présents.

Indicateur Description
WMDM_SCP_DECIDE_DATA Le paramètre pData pointe vers les données à examiner.
WMDM_MODE_TRANSFER_PROTECTED Les données de l’objet de sortie de l’interface ISCPSecureExchange doivent être protégées. Si Windows Media Gestionnaire de périphériques ne définit aucun indicateur de mode ou les deux, la gestion des droits numériques détermine si les données de l’objet de sortie de l’interface ISCPSecureExchange doivent être protégées ou non protégées.
WMDM_MODE_TRANSFER_UNPROTECTED Les données de l’objet de sortie de l’interface ISCPSecureExchange doivent être non protégées. Si Windows Media Gestionnaire de périphériques ne définit aucun indicateur de mode ou les deux, la gestion des droits numériques détermine si les données de l’objet de sortie de l’interface ISCPSecureExchange doivent être protégées ou non protégées.

[in] pData

Pointeur vers un objet de données contenant les données à examiner. Ce paramètre doit être inclus dans le code d’authentification du message d’entrée et doit être chiffré.

[in] dwSize

DWORD qui contient la longueur, en octets, des données à examiner. Ce paramètre doit être inclus dans le code d’authentification du message d’entrée.

[in] dwAppSec

DWORD qui indique le niveau de sécurité actuel de Windows Media Gestionnaire de périphériques. Il s’agit du plus petit des niveaux de sécurité actuels de l’application et du fournisseur de services cible. Ce paramètre doit être inclus dans le code d’authentification du message d’entrée.

[in] pbSPSessionKey

Pointeur vers un tableau d’octets contenant la clé de session pour sécuriser la communication avec le fournisseur de services vers lequel pStgGlobals pointe. Ce paramètre doit être inclus dans le code d’authentification du message d’entrée et doit être chiffré.

[in] dwSessionKeyLen

Longueur du tableau d’octets vers lequel pbSPSessionKey pointe. Ce paramètre doit être inclus dans le code d’authentification du message d’entrée.

[in] pStorageGlobals

Pointeur vers l’interface IWMDMStorageGlobals sur le stockage racine du média ou de l’appareil vers ou à partir duquel le fichier est transféré. Ce paramètre doit être inclus dans le code d’authentification du message d’entrée.

[out] ppExchange

Pointeur vers un objet exchange qui reçoit l’interface exchange.

[in, out] abMac

Tableau de huit octets contenant le code d’authentification de message pour les données de paramètre de cette méthode. (WMDM_MAC_LENGTH est défini sur 8.)

Valeur retournée

Si la méthode réussit, retourne S_OK. En cas d’échec, elle retourne un code d’erreur HRESULT .

Code de retour Description
WMDM_E_CALL_OUT_OF_SEQUENCE
Cette méthode a été appelée hors séquence.
WMDM_E_MAC_CHECK_FAILED
Le code d’authentification du message n’est pas valide.
WMDM_E_MOREDATA
Windows Media Gestionnaire de périphériques devez appeler à nouveau cette méthode avec un autre paquet de données. La taille du paquet est déterminée par le paramètre pdwMinDecisionData dans la méthode ISCPSecureQuery ::GetDataDemands .
S_FALSE
L’appelant ne dispose pas des droits requis pour effectuer le transfert demandé.
E_INVALIDARG
Un paramètre n’est pas valide ou est un pointeur NULL .
E_FAIL
Une erreur non spécifiée s'est produite.

Remarques

Cette méthode est appelée après la méthode ISCPSecureQuery ::ExamineData et prend la décision finale si l’accès au contenu est autorisé.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête mswmdm.h
Bibliothèque Mssachlp.lib

Voir aussi

ISCPSecureExchange, interface

ISCPSecureQuery, interface

ISCPSecureQuery2 ::MakeDecision2

IWMDMStorageGlobals, interface