ISCPSecureQuery2::MakeDecision2 方法 (mswmdm.h)

MakeDecision2 方法通过检查 Windows Media 设备管理器传递给此方法的数据来确定安全内容提供程序是否对内容负责。 此方法提供两个用于错误处理的输出参数,一个用于更新吊销组件的默认位置,以及一个指示哪些组件已被撤销的位标志。

语法

HRESULT MakeDecision2(
  [in]      UINT                fuFlags,
  [in]      BYTE                *pData,
  [in]      DWORD               dwSize,
  [in]      DWORD               dwAppSec,
  [in]      BYTE                *pbSPSessionKey,
  [in]      DWORD               dwSessionKeyLen,
  [in]      IMDSPStorageGlobals *pStorageGlobals,
  [in]      BYTE                *pAppCertApp,
  [in]      DWORD               dwAppCertAppLen,
  [in]      BYTE                *pAppCertSP,
  [in]      DWORD               dwAppCertSPLen,
  [in, out] LPWSTR              *pszRevocationURL,
  [in, out] DWORD               *pdwRevocationURLLen,
  [out]     DWORD               *pdwRevocationBitFlag,
  [in, out] ULONGLONG           *pqwFileSize,
  [in]      IUnknown            *pUnknown,
  [out]     ISCPSecureExchange  **ppExchange,
  [in, out] BYTE [8]            abMac
);

参数

[in] fuFlags

描述提供给安全内容提供商进行决策的数据的标志。 此参数必须包含在输入消息身份验证代码中。 可以使用按位 OR 组合以下一个或多个标志。

标志 描述
WMDM_SCP_DECIDE_DATA pData 参数指向要检查的数据。
WMDM_MODE_TRANSFER_PROTECTED 必须保护 来自 ISCPSecureExchange 接口的输出对象数据。 如果 Windows Media 设备管理器未设置这两个模式标志或两个模式标志,Windows Media Digital Rights Manager 将决定 ISCPSecureExchange 接口的输出对象数据必须受到保护还是不受保护。
WMDM_MODE_TRANSFER_UNPROTECTED 来自 ISCPSecureExchange 接口的输出对象数据必须不受保护。 如果 Windows Media 设备管理器未设置这两个模式标志或两个模式标志,Windows Media Digital Rights Manager 将决定 ISCPSecureExchange 接口的输出对象数据必须受到保护还是不受保护。

[in] pData

指向包含要检查的数据的数据对象的指针。 此参数必须包含在输入消息身份验证代码中,并且必须加密。

[in] dwSize

包含文件数据大小的 DWORD

[in] dwAppSec

包含要检查的服务提供程序和安全内容提供程序的 WMDMRIGHTS 结构的 dwAppSec 成员的长度(以字节为单位)的 DWORD。 此参数必须包含在输入消息身份验证代码中。

[in] pbSPSessionKey

指向字节数组的指针,其中包含用于保护与 pStgGlobals 指向的服务提供程序的通信的会话密钥。 此参数必须包含在输入消息身份验证代码中,并且必须加密。

[in] dwSessionKeyLen

包含会话密钥长度的 DWORD

[in] pStorageGlobals

指向要从中传输文件的媒体或设备的根存储上的 IWMDMStorageGlobals 接口的指针。 此参数必须包含在输入消息身份验证代码中。

[in] pAppCertApp

指向应用程序对象的应用程序证书的指针。

[in] dwAppCertAppLen

包含应用程序证书长度(以字节为单位)的 DWORD

[in] pAppCertSP

指向服务提供程序对象的应用程序证书的指针。

[in] dwAppCertSPLen

包含应用程序证书长度(以字节为单位)的 DWORD

[in, out] pszRevocationURL

指向用于保存吊销 URL 的缓冲区的指针。

[in, out] pdwRevocationURLLen

指向包含 rpszRevocationURL 缓冲区大小的 DWORD 的指针(以字节为单位)。

[out] pdwRevocationBitFlag

指向包含吊销位标志的 DWORD 的指针。 标志值将为零,或者通过使用按位 OR 组合的以下一个或多个标志名称。

说明
WMDM_WMDM_REVOKED Windows Media 设备管理器本身已被撤销。
WMDM_APP_REVOKED 应用程序已被撤销,需要先更新,然后才能传输受 DRM 保护的内容。
WMDM_SP_REVOKED 服务提供商已被撤销,需要更新,然后才能将受 DRM 保护的任何内容传输到该提供程序。
WMDM_SCP_REVOKED 安全内容提供程序已被撤销,需要更新后才能传输任何受 DRM 保护的内容。

[in, out] pqwFileSize

指向包含文件大小的 QWORD 的指针。 如果此时无法确定目标文件的大小,安全内容提供程序负责更新此值或将其设置为零。

[in] pUnknown

指向应用程序中未知接口的指针。

[out] ppExchange

指向接收 exchange 接口的 exchange 对象的指针。

[in, out] abMac

包含此方法的参数数据的消息身份验证代码的 8 个字节的数组。 (WMDM_MAC_LENGTH 定义为 8.)

返回值

如果该方法成功,则它会返回 S_OK。 如果失败,则返回 HRESULT 错误代码。

返回代码 说明
WMDM_E_REVOKED
安全内容提供程序用于与 DRM 客户端通信的应用程序证书已被撤销。

要求

要求
目标平台 Windows
标头 mswmdm.h
Library Mssachlp.lib

另请参阅

ISCPSecureQuery 接口

ISCPSecureQuery2 接口

ISCPSecureQuery::MakeDecision