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。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
E_INVALIDARG
dwEnumPref 参数包含不受支持的位值。
WMDM_E_CALL_OUT_OF_SEQUENCE
方法是在枚举操作后调用的。 必须在枚举操作之前调用它。

注解

此 API 使客户端能够替代 Windows Media 设备管理器的默认设备枚举行为。

客户端应用程序必须在创建设备管理器对象后立即调用此方法,方法是从 Windows Media 设备管理器查询 IWMDeviceManager 接口。 必须在执行任何枚举之前进行调用,无论是显式还是隐式地作为另一个操作的结果。

设置首选项标志后,不能在应用程序的生存期内更改它 (而不仅仅是 Windows Media 设备管理器 对象的生存期) 。 尝试更改首选项标志将导致错误。 使用相同的标志设置再次调用此 API 不会返回错误,并且也会对枚举产生任何影响。

服务提供商必须遵循DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES标志才能生效。 尽管有此标志,但某些设备可能枚举为每个存储的设备。

要求

要求
目标平台 Windows
标头 mswmdm.h
Library Mssachlp.lib

另请参阅

IMDServiceProvider3 接口