Функция 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. |
Возвращаемое значение
Возвращает ноль в случае успешного выполнения или ошибку в противном случае. Возможные значения ошибок:
Код возврата | Описание |
---|---|
|
Отложенная широковещательная блокировка принадлежит другой задаче. |
|
По крайней мере один флаг недопустим. |
|
Указанный дескриптор недопустим. |
|
По крайней мере один параметр недопустим. |
|
Запрошенная операция не поддерживается для указанного драйвера. Например, локальные идентификаторы драйверов и идентификаторы драйверов уведомлений не поддерживают приоритеты (но могут быть включены и отключены). Если приложение указывает ненулевое значение для 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 |