在 Windows 资源管理器中显示可移植音频播放器的要求

可移植音频播放器 shell 命名空间扩展为 Windows 用户提供一致的方式来管理由 Windows Media 设备管理器管理的音频设备。 如果根据以下准则创作服务提供商和驱动程序组件,则设备将显示在 shell 命名空间中。 用户将能够以一致的方式在 Windows 资源管理器中与设备的内容进行交互,以执行基本操作,例如复制、删除和重命名。

以下针对服务提供商和驱动程序组件的 shell 要求旨在补充常规 Windows Media 设备管理器准则。

设备功能

Windows Media 设备管理器 服务提供商应明确其支持的功能。 如果不支持调用,则必须返回错误代码。 对于从以下函数返回时是否存在功能,必须设置相应的字段:

服务提供商必须支持以下功能才能与 shell 兼容:

  • 复制到支持取消和进度回调的设备 ()
  • 从支持取消和进度回调的设备 (中删除文件)
  • 重命名设备上的文件
  • 空间报告 (总空间、可用空间、不可用空间)
  • 即插即用 (请参阅为设备启用 PnP)
  • 格式 (最好支持取消和进度回调)

如果支持元数据,则单个文件必须支持以下字段。 如果没有可用数据,则应将 字段初始化为空字符串:

字段 WMDM.idl) 中定义的常量 ( 元数据标记
歌曲标题 g_wszWMDMTitle WMDM/Title
曲目编号 g_wszWMDMTrack WMDM/Track
艺术家 g_wszWMDMAuthor WMDM/Author
相册: g_wszWMDMAlbumTitle WMDM/AlbumTitle
Year g_wszWMDMYear WMDM/年
流派 g_wszWMDMGenre WMDM/Genre

 

并发

Windows Media 设备管理器的内核模式驱动程序在处理并发访问时需要可靠。 例如,用户可以通过 shell 和媒体播放器或仅通过 shell 中的多个窗口同时访问设备。 作为处理并发的一部分,驱动程序不应仅仅因为加载了服务提供程序就假定设备正在使用中。 相反,它们应实现锁定机制,以便根据单个操作的需要序列化对设备的访问。

UI

Windows Media 设备管理器的服务提供商不应显示任何用户界面。 应尽可能从方法调用返回任何错误,作为特定的 Windows Media 设备管理器错误代码。

在 Shell 中启用

如果包满足所有 shell 要求,则可以通过在设备参数下将 ShowInShell 值设置为 1,使设备显示在 shell 中。 有关详细信息,请参阅 设备参数

创建服务提供商