IWMDeviceManager3::SetDeviceEnumPreference 方法 (mswmdm.h)
SetDeviceEnumPreference 方法设置设备枚举首选项。
语法
HRESULT SetDeviceEnumPreference(
[in] DWORD dwEnumPref
);
参数
[in] dwEnumPref
指定以下一个或多个指定枚举首选项的位值的按位 OR 组合。 每个设置位启用相应的扩展行为,而不存在该位会禁用扩展行为,并指定默认的向后兼容的枚举行为。 下表提供了 fuPrefs 的可能值。
值 | 说明 |
---|---|
DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES | 默认情况下,对于包含多个存储媒体 (例如,) 多个闪存卡的设备,每个存储都枚举为单独的伪设备。 但是,设置此标志时,存储不作为设备可见,并且只有设备作为设备可见。 有关更多信息,请参见备注。 |
ALLOW_OUTOFBAND_NOTIFICATION | 设置此标志后,服务提供商可以通过其他机制(例如使用窗口消息)以及调用任何应用程序实现的 IWMDMNotification 接口的默认机制发送设备到达和删除。 |
返回值
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
fuPrefs 参数指定不受支持的位值。 |
|
方法是在枚举操作后调用的;必须在枚举操作之前调用它。 |
注解
此方法使客户端能够替代 Windows Media 设备管理器的默认设备枚举行为。 为了替代默认行为,客户端应用程序必须在创建设备管理器对象后立即调用此方法,方法是从媒体设备管理器查询 IWMDMDeviceManager3 接口。 必须在执行任何枚举之前进行调用,无论是显式还是隐式地作为另一个操作的结果。
设置首选项标志后,不能在应用程序的生存期内更改它 (而不仅仅是 Windows Media 设备管理器 对象的生存期) 。 尝试更改首选项标志将导致错误。 使用相同的标志设置再次调用此方法不会返回错误,并且对枚举也没有任何影响。
服务提供商不得遵循DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES标志。 确定存储是否由同一设备托管的一种更可靠的方法是调用 IWMDMDevice2::GetCanonicalName。 同一设备的存储将返回相同的值,最后一个“$”字符后的最后一个数字除外。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | mswmdm.h |