Поделиться через


Метод 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 Media диспетчер устройств.

Возвращаемое значение

Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Метод выполнен успешно.
E_INVALIDARG
Параметр dwEnumPref содержит неподдерживаемое битовое значение.
WMDM_E_CALL_OUT_OF_SEQUENCE
Метод был вызван после операции перечисления. Его необходимо вызвать перед операцией перечисления.

Комментарии

Этот API предоставляет клиентам возможность переопределить поведение перечисления устройств по умолчанию диспетчер устройств Windows Media.

Клиентские приложения должны вызывать этот метод сразу после создания объекта диспетчера устройств, запрашивая интерфейс IWMDeviceManager из Windows Media диспетчер устройств. Вызов должен выполняться перед выполнением перечисления явным или неявным образом в результате другой операции.

После установки флага предпочтения его нельзя изменить на время существования приложения (а не только на время существования объекта диспетчер устройств Windows Media). Попытка изменить флаг предпочтения приведет к ошибке. Повторный вызов этого API с теми же параметрами флага не возвращает ошибку, а также оказывает какое-либо влияние на перечисление.

Чтобы DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES флаг вступают в силу, должен соблюдаться поставщиком услуг. Вполне возможно, что, несмотря на этот флаг, некоторые устройства перечисляются как устройства для каждого хранилища.

Требования

Требование Значение
Целевая платформа Windows
Header mswmdm.h
Библиотека Mssachlp.lib

См. также раздел

Интерфейс IMDServiceProvider3