IMDServiceProvider3::SetDeviceEnumPreference 方法 (mswmdm.h)
SetDeviceEnumPreference 方法设置设备枚举首选项。
语法
HRESULT SetDeviceEnumPreference(
[in] DWORD dwEnumPref
);
参数
[in] dwEnumPref
包含一个或多个指定枚举首选项的下列位值的按位 OR 组合。 每个设置位启用相应的扩展行为,而不存在该位会禁用扩展行为,并指定默认的向后兼容的枚举行为。 下表提供了 dwEnumPref 的可能值。
值 | 说明 |
---|---|
DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES | 默认情况下,对于包含多个存储媒体的设备,其中每个存储都枚举为单独的伪设备。 但是,当设置此位时,存储不作为设备可见,并且只有设备作为设备可见。 |
ALLOW_OUTOFBAND_NOTIFICATION | 默认情况下, IWMDMNotification 回调机制为应用程序提供设备到达和删除事件。 设置此位后,服务提供商可以通过单独的机制(例如使用窗口消息)通知应用程序。 此行为是 Windows Media 设备管理器通知的补充。 此标志不会禁止显示 Windows 媒体设备管理器通知。 |
返回值
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
dwEnumPref 参数包含不受支持的位值。 |
|
方法是在枚举操作后调用的。 必须在枚举操作之前调用它。 |
注解
此 API 使客户端能够替代 Windows Media 设备管理器的默认设备枚举行为。
客户端应用程序必须在创建设备管理器对象后立即调用此方法,方法是从 Windows Media 设备管理器查询 IWMDeviceManager 接口。 必须在执行任何枚举之前进行调用,无论是显式还是隐式地作为另一个操作的结果。
设置首选项标志后,不能在应用程序的生存期内更改它 (而不仅仅是 Windows Media 设备管理器 对象的生存期) 。 尝试更改首选项标志将导致错误。 使用相同的标志设置再次调用此 API 不会返回错误,并且也会对枚举产生任何影响。
服务提供商必须遵循DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES标志才能生效。 尽管有此标志,但某些设备可能枚举为每个存储的设备。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | mswmdm.h |
Library | Mssachlp.lib |