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


Метод IWMDeviceManager3::SetDeviceEnumPreference (mswmdm.h)

Метод SetDeviceEnumPreference задает параметры перечисления устройств.

Синтаксис

HRESULT SetDeviceEnumPreference(
  [in] DWORD dwEnumPref
);

Параметры

[in] dwEnumPref

Задает побитовую комбинацию ИЛИ одного или нескольких из следующих битовых значений, определяющих предпочтения перечисления. Каждый бит набора включает соответствующее расширенное поведение, тогда как отсутствие этого бита отключает расширенное поведение и задает поведение перечисления по умолчанию с обратной совместимостью. Возможные значения для fuPrefs приведены в следующей таблице.

Значение Описание
DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES По умолчанию для устройств, содержащих несколько носителей (например, несколько карт флэш-памяти), каждое из этих хранилищ перечисляется как отдельное псевдоустройство. Однако если этот флаг установлен, хранилища не отображаются как устройства, а только устройства отображаются как устройства. Дополнительные сведения см. в разделе "Примечания".
ALLOW_OUTOFBAND_NOTIFICATION Если этот флаг установлен, поставщик услуг может отправлять сведения о поступлении и удалении устройства с помощью дополнительного механизма, например с помощью сообщения окна, а также механизма по умолчанию для вызова любых интерфейсов IWMDMNotification , реализованных приложением.

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

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

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

Комментарии

Этот метод предоставляет клиентам возможность переопределить поведение перечисления устройств по умолчанию в Windows Media диспетчер устройств. Чтобы переопределить поведение по умолчанию, клиентское приложение должно вызвать этот метод сразу после создания объекта диспетчера устройств, запросив интерфейс IWMDMDeviceManager3 из media диспетчер устройств. Вызов должен быть выполнен до выполнения какого-либо перечисления явным или неявным образом в результате другой операции.

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

Поставщик услуг может не учитывать флаг DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES. Более надежным способом определить, размещаются ли хранилища на одном устройстве, является вызов IWMDMDevice2::GetCanonicalName. Хранилища с того же устройства будут возвращать одинаковые значения, за исключением последней цифры после последнего символа "$".

Требования

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

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

IWMDMDevice2::GetCanonicalName