执行邻近感应检测
[与此页面关联的功能 Windows Media Format 11 SDK 是一项旧功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用源读取器和接收器编写器,而不是 Windows Media 格式 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
必须先执行名为邻近检测 (也称为验证) 的过程,然后才能将加密数据流式传输到 Windows Media DRM 10 协议中注册的设备。 此过程涉及向设备发送消息并接收响应。 接收响应所需的时间用于确定设备是否“靠近”网络上的计算机接收安全数据。 确认设备在物理上靠近网络上的客户端计算机有助于防止欺骗和其他未经授权的访问。
成功完成邻近感应检测后,设备即为有效设备。 可以通过调用 IWMRegisteredDevice::IsValid 方法检查设备是否有效。 设备必须每 48 小时验证一次。 在程序运行前超过 48 小时验证的设备必须再次通过执行邻近检测过程来重新验证。
若要执行邻近感应检测,必须与设备建立通信,然后调用 IWMProximityDetection::StartDetection 方法。 检测过程由 Windows Media 格式 SDK 的内部 DRM 组件异步完成。 应用程序必须包含 IWMStatusCallback 接口的实现才能处理邻近检测消息。
邻近感应检测进程发送了两条消息:结果消息和完成消息。
检测过程完成后,将发送结果消息(WMT_PROXIMITY_RESULT)。 OnStatus 回调方法的 hr 参数指示设备是否足够接近客户端计算机。 如果结果消息的 hr 参数指示成功,则 pValue 参数包含 一个 DWORD ,用于指定设备测量的延迟(以毫秒为单位)。
完成检测后,将发送完成消息(WMT_PROXIMITY_COMPLETED)。 应仅在收到此消息后释放 IWMProximityDetection 接口。
当设备邻近感应检测成功时,设备注册数据库会自动更新。 对 IWMRegisteredDevice::IsValid 的后续调用将返回 TRUE ,直到 48 小时过去,并且设备需要重新验证。
注意 此 SDK 的基于 x64 的版本不支持 DRM。
相关主题