Функция acmDriverPriority (msacm.h)

Функция acmDriverPriority изменяет приоритет и состояние драйвера ACM.

Синтаксис

MMRESULT ACMAPI acmDriverPriority(
  HACMDRIVERID hadid,
  DWORD        dwPriority,
  DWORD        fdwPriority
);

Параметры

hadid

Обработка идентификатора драйвера установленного драйвера ACM. Если указаны флаги ACM_DRIVERPRIORITYF_BEGIN и ACM_DRIVERPRIORITYF_END, этот параметр должен иметь значение NULL.

dwPriority

Новый приоритет для глобального идентификатора драйвера ACM. Нулевое значение указывает, что приоритет идентификатора драйвера должен оставаться неизменным. Значение 1 указывает, что драйвер должен быть помещен в качестве драйвера с наивысшим приоритетом поиска. Значение –1 указывает, что драйвер должен быть помещен в качестве драйвера с наименьшим приоритетом поиска. Приоритеты используются только для глобальных факторов.

fdwPriority

Флаги для задания приоритетов драйверов ACM. Определены следующие значения.

Значение Значение
ACM_DRIVERPRIORITYF_BEGIN Трансляции уведомлений об изменениях следует отложить. Приложение должно как можно скорее повторно впустить широковещательные уведомления с флагом ACM_DRIVERPRIORITYF_END. Обратите внимание, что hadid должен иметь значение NULL, dwPriority — ноль, и можно задать только флаг ACM_DRIVERPRIORITYF_BEGIN.
ACM_DRIVERPRIORITYF_DISABLE Драйвер ACM должен быть отключен, если он включен в данный момент. Отключение отключенного драйвера не выполняет никаких действий.
ACM_DRIVERPRIORITYF_ENABLE Драйвер ACM должен быть включен, если он в настоящее время отключен. Включение включенного драйвера ничего не делает.
ACM_DRIVERPRIORITYF_END Вызывающая задача хочет повторно включить широковещательные уведомления об изменениях. Приложение должно вызывать acmDriverPriority с ACM_DRIVERPRIORITYF_END для каждого успешного вызова с флагом ACM_DRIVERPRIORITYF_BEGIN. Обратите внимание, что hadid должен иметь значение NULL, dwPriority — ноль, и можно задать только флаг ACM_DRIVERPRIORITYF_END.

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

Возвращает ноль в случае успешного выполнения или ошибку в противном случае. Возможные значения ошибок:

Код возврата Описание
MMSYSERR_ALLOCATED
Отложенная широковещательная блокировка принадлежит другой задаче.
MMSYSERR_INVALFLAG
По крайней мере один флаг недопустим.
MMSYSERR_INVALHANDLE
Указанный дескриптор недопустим.
MMSYSERR_INVALPARAM
По крайней мере один параметр недопустим.
MMSYSERR_NOTSUPPORTED
Запрошенная операция не поддерживается для указанного драйвера. Например, локальные идентификаторы драйверов и идентификаторы драйверов уведомлений не поддерживают приоритеты (но могут быть включены и отключены). Если приложение указывает ненулевое значение для dwPriority для локальных идентификаторов драйверов и уведомляет об этом, эта ошибка будет возвращена.

Комментарии

Можно включить и отключить все идентификаторы драйверов, включая глобальные, локальные идентификаторы и идентификаторы драйверов уведомлений.

Если необходимо включить, отключить или сместить несколько глобальных идентификаторов драйверов в приоритете, приложение должно отложить широковещательное уведомление об изменениях с помощью флага ACM_DRIVERPRIORITYF_BEGIN. При указании флага ACM_DRIVERPRIORITYF_END будет транслироваться одно уведомление об изменениях.

Приложение может использовать функцию с индексом метрик acmMetrics ACM_METRIC_DRIVER_PRIORITY для получения текущего приоритета глобального драйвера. Функция acmDriverEnum всегда перечисляет драйверы с самого высокого к самому низкому приоритету.

Все включенные идентификаторы драйверов будут получать уведомления об изменениях. Приложение может зарегистрировать уведомление с помощью функции acmDriverAdd в сочетании с флагом ACM_DRIVERADDF_NOTIFYHWND. Изменения неглобаловых идентификаторов драйверов не будут широковещательными.

Приоритеты используются для порядка поиска, если приложение не указывает драйвер. Повышение приоритета драйвера не повлияет на производительность драйвера.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header msacm.h
Библиотека Msacm32.lib
DLL Msacm32.dll

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

Функции сжатия звука

Диспетчер сжатия аудио