IWMDRMDeviceApp2::QueryDeviceStatus2 方法

QueryDeviceStatus2 方法查询设备以查找特定 DRM 状态或功能。

语法

HRESULT QueryDeviceStatus2(
  [in]  IWMDMDevice *pDevice,
  [in]  DWORD       dwFlags,
  [out] DWORD       *pdwStatus
);

参数

pDevice [in]

指向 IWMDMDevice 对象的指针。

dwFlags [in]

以下一个或多个 DWORD 值,用于指定要请求的功能,并结合按位 OR

标志 描述
WMDRM_QUERY_CLIENT_INDIVSTATUS 查询计算机 DRM 组件是否需要个性化。
WMDRM_QUERY_DEVICE_CLOCKSTATUS 查询是需要添加还是更新设备的安全时钟。
WMDRM_QUERY_DEVICE_ISREVOKED 查询设备是否已吊销。
WMDRM_QUERY_DEVICE_ISWMDRM 查询设备是否支持适用于可移植设备的 Windows Media DRM 10。

pdwStatus [out]

指定请求的设备状态的以下 DWORD 值的零个或多个,并结合按位 OR

状态 说明
WMDRM_DEVICE_ISWMDRM 设备支持 Windows Media DRM。
WMDRM_DEVICE_NEEDCLOCK 设备没有安全时钟。
WMDRM_DEVICE_REVOKED 设备已被吊销。
WMDRM_CLIENT_NEEDINDIV 计算机的 DRM 组件需要个性化。
WMDRM_DEVICE_REFRESHCLOCK 时钟需要刷新。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
DRM_E_INVALIDARG
一个或多个参数无效。
NS_E_DRM_INVALID_CERTIFICATE
从设备检索到的设备证书无效。
NS_E_DRM_UNABLE_TO_GET_DEVICE_CERT
无法从设备检索设备证书。

备注

在对 DRM 内容执行任何受限操作(例如将 DRM 内容传输到设备或获取计量信息)之前,应调用此方法。 如果 pdwStatus 检索的值指示需要 (执行某些操作,例如桌面个性化或获取设备) 的时钟,则应用程序应调用 IWMDRMDeviceApp::AcquireDeviceData,并将从此函数检索到的 pdwStatus 值传递到 AcquireDeviceData 中的 dwFlags 参数。 如果返回零,则设备不支持适用于可移植设备的 Windows Media DRM 10,并且无需执行任何操作。 有关详细信息 ,请参阅处理应用程序中的受保护内容

要求

要求
标头
WMDRMDeviceApp.h (还需要Wmdrmdeviceapp_i.c,这是从 WMDRMDeviceApp.idl)

Mssachlp.lib

另请参阅

处理应用程序中受保护的内容

IWMDRMDeviceApp::QueryDeviceStatus

IWMDRMDeviceApp2 接口