Настройки реестра пользователя

24/04/2026

Содержание

Введение

В этом документе описываются параметры реестра пользователя, которые применяются к ASIO4ALL версии 2 и производным от нее отдельным версиям. Он не охватывает записи реестра, требуемые 3rd стандарты сторон, такие как регистрация в качестве драйвера ASIO и интерфейса COM. Все записи реестра, рассматриваемые здесь, хранятся в кусте реестра HKEY_CURRENT_USER и, следовательно, являются индивидуальными для каждой учетной записи пользователя.

Обзор структуры

Подразделы реестра организованы в следующей иерархии: Области применения >> Аудиоустройства >> Интерфейсы устройства >> Пальцы.

На рисунке показано расположение реестра и базовая структура пользовательских настроек. Цветом отмечены восьмизначные шестнадцатеричные числа, представляющие собой хэш-значения, созданные из строк с использованием следующего алгоритма хэширования:

DWORD CreateHash (char inStr[])
{
  DWORD hash = 0;
  unsigned char x, y, z = 0;
  long idx = 0;
  while (x = (unsigned char) inStr[idx++])
  {
    y = (unsigned char) (hash & 0xFF);
    z = y - x;
    y^= x;
    hash = (hash & 0xFFFFFF00) + (DWORD) y;
    hash = (hash >> (z & 31)) | (hash << ((32 - z) & 31));
  }
  return (hash);
}

Выполняется проверка на наличие коллизий хэшей, и в случае коллизии результирующий хэш увеличивается на единицу до тех пор, пока не будет обнаружено ни одной новой коллизии. Этот метод был выбран, поскольку структура в основном статична, а потеря ветви (т.е. наихудший случай) все равно не нарушит целостность приложения.

Хэши создаются из следующих источников строк:

  • путь к приложению и имя исполняемого файла возвращено GetModuleFileNameA (синий)
  •   аудио-устройство PnP ID, поддерживаемый API установки Windows (красный)
  • интерфейс устройства Имя пути в соответствии с элементом SP_DEVICE_INTERFACE_DETAIL_DATA DevicePath, возвращаемым API установки Windows (зеленый)

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

Ветка «Defaults» содержит полный набор настроек уровня приложения, которые используются вместо настроек для каждого приложения, когда ранее не было сохранено никаких настроек из соответствующего приложения. Изменения, внесенные с помощью панели управления рабочего стола («Off-line settings»), сохраняются непосредственно в ветке «Defaults».

Ключи реестра

Флаги

Тип DWORD

Относится к: Область применения / Устройство / Интерфейс / шпилька

Это битовое поле, которое соответствует внутреннему состоянию и параметрам конфигурации для каждого элемента. Однако не вся информация загружается из реестра или записывается обратно в него. Ряд битов служат для внутреннего обслуживания между сеансами и также не должны изменяться. Применяются следующие определения:

#определить A4A_FLAG_STATEMASK 0x00000060

Уборка графического интерфейса, не меняйте!

#define A4A_FLAG_WATCHDOG_ENABLE 0x00000001 (приложение)

#define A4A_FLAG_SAFEMODE_ENABLE 0x00000002 (приложение)

Используется для включения функции устранения неполадок на уровне приложений. «Безопасный режим» запустится с отключенным звуком после сбоя. Сторожевой таймер попытается предотвратить потребление аудиопотоком 100% процессорного времени в течение длительных периодов, периодически приостанавливая и перезапуская звук, тем самым сохраняя некоторую отзывчивость системы. Обе функции не были полностью протестированы и обычно не должны быть включены.

#define A4A_FLAG_NOINPUT 0x00002000 (приложение)

Если ваша сборка OEM имеет выделенную глобальную функцию «Отключить ввод» (например, флажок с таким именем в панели управления ASIO), она управляется этим битом. В противном случае эта настройка зарезервирована.

#define A4A_FLAG_NOSHUTDOWN 0x00004000 (приложение)

Используется совместно с функцией «Безопасный режим» выше в качестве маркера, указывающего на неожиданное завершение работы («сбой») приложения при последнем запуске.

#define A4A_FLAG_ADVANCED 0x00008000 (приложение)

Если графический интерфейс пользователя в вашей сборке предлагает отдельные «Расширенные» и «Простые» представления настроек, этот бит указывает, какой из них активен.

#define A4A_FLAG_HWBUFFER 0x00010000 (устройство / интерфейс)

Если установлено, включает режим аппаратного буфера. Этот режим не всегда работает, а это означает, что результаты могут быть довольно непредсказуемыми. Используйте с осторожностью!

#define A4A_FLAG_FORCESRC 0x00020000 (устройство)

Если установлено, драйвер будет увеличивать/уменьшать частоту дискретизации всякий раз, когда приложение запрашивает частоту дискретизации 44.1 кГц, а 48 кГц — поддерживаемая частота дискретизации драйвера WDM. Это также будет применяться, если драйвер WDM изначально поддерживает частоту 44.1 кГц.

Если этот бит не установлен, передискретизация будет выполняться только в случае необходимости для поддержки частоты дискретизации 44.1 кГц.

#define A4A_FLAG_FORCE16 0x00040000 (устройство)

При установке битовая глубина на интерфейсе WDM/KS будет ограничена 16, даже если устройство заявляет о поддержке большей битовой глубины. В противном случае устройство будет работать с максимально возможной битовой глубиной. Эта настройка не влияет на формат выборки ASIO, который всегда будет Int32Lsb.

#define A4A_FLAG_LOW_CPU 0x00040000 (device)

Введенная в 2026 году, эта функция применяется ко всему приложению (режим энергосбережения в графическом интерфейсе). Обратите внимание, что значение этого флага инвертировано, то есть «1» = «Отключено», «0» = «Включено»!
Поскольку это относится только к флагам приложения, не возникнет конфликта с прежним использованием той же позиции бита в флагах отдельных устройств.

#define A4A_FLAG_RTAUDIO 0x00080000 (устройство/интерфейс)

#define A4A_FLAG_MEMBARRIER 0x00100000 (интерфейс)

Интерфейс свойств устройства типа WaveRT внутри. Обычно эта информация не записывается обратно в реестр, а если записывается, то ее нельзя изменять!

#define A4A_FLAG_PULLMODE 0x00200000 (устройство)

(v2.9 +) Если установлено, ASIO4ALL попытается использовать режим pull на контактах WaveRT этого устройства. Если не установлено, всегда будет использоваться (более безопасный) режим опроса («push»). (V2.8) Этот бит не имеет никакого эффекта, режим pull будет использоваться везде, где это возможно.

Начиная с 2026 года, этот флаг будет управлять свойством «Альтернативная синхронизация буфера».

#define A4A_FLAG_OFFSET_VALID 0x01000000 (контакт)

#define A4A_FLAG_RELAX_NUMPLAYING 0x02000000 (устройство)

Внутреннее ведение хозяйства. Обычно эта информация не записывается обратно в реестр, а если записывается, то ее нельзя менять!

#define A4A_FLAG_RUNNING 0x10000000 (устройство / интерфейс / контакт)

#define A4A_FLAG_ERROR 0x20000000 (устройство / интерфейс / контакт)

#define A4A_FLAG_AVAILABLE 0x40000000 (устройство / интерфейс / контакт)

Используется внутри для отслеживания динамических состояний объектов. Обычно эта информация не записывается обратно в реестр, а если и записывается, то она бесполезна и не должна изменяться!

#define A4A_FLAG_ENABLED 0x80000000 (устройство / интерфейс / контакт)

При установке соответствующий объект включается в текущей конфигурации. Однако для того, чтобы пин действительно стал активным, его родительский интерфейс также должен быть установлен на «включен». Аналогично, чтобы интерфейс стал активным, родительское устройство также должно быть установлено на «включен».

Частота дискретизации

Тип DWORD

Относится к: Область применения

За штуку: 1 / s

Это частота дискретизации, которую драйвер вернет вызову ASIOgetSampleRate() хост-приложения в качестве частоты дискретизации по умолчанию.

Размер буфера

Тип DWORD

Относится к: Устройство

За штуку: образцы

Размер буфера для устройства, возвращаемый ASIOgetBufferSize () как предпочтительный размер буфера драйвера. Если активно более одного устройства, то устройство с наибольшим связанным размером буфера будет иметь соответствующее возвращаемое значение.

(v2.20 +) Относится к: Область применения

На уровне приложения ненулевое значение указывает на то, что хост решил переопределить предпочтительный размер буфера драйвера. Это значение соответствует размеру, установленному хостом.

KernelBuffers – Устарело в 2026 году!

Тип DWORD

Относится к: Устройство

За штуку: н /

Количество буферов в очереди буферов WDM/KS. Может быть: 2, 3 или 4.

LtcyIn

Тип DWORD

Относится к: Устройство

За штуку: образцы

Дополнительная задержка ввода для возврата с помощью ASIogetLatencies(). Этот параметр не оказывает дальнейшего влияния на выполнение кода драйвера и служит исключительно для поддержки автоматической компенсации задержки, если она выполняется хост-приложением.

LtcyOut

Тип DWORD

Относится к: Устройство

За штуку: образцы

Дополнительная задержка вывода для возврата ASIOgetLatencies(). Этот параметр не оказывает дальнейшего влияния на выполнение кода драйвера и служит исключительно для поддержки автоматической компенсации задержки, если она выполняется хост-приложением.

WndPos

Тип DWORD

Относится к: Область применения

За штуку: Координаты X/Y

Предыдущее расположение окна панели управления ASIO4ALL на экране.

Референсы

  1. ASIO-SDK, Steinberg Media Technologies GmbH
  2. Набор драйверов для Windows, Microsoft, Корпорация
  3. Win32 Software Development Kit, Microsoft, Корпорация
  4. Руководство по эксплуатации ASIO4ALL, Михаэль Типпах

Авторские права © 2003-2026, Михаэль Типпах

Никаких гарантий относительно точности информации, представленной в этом документе, не дается. Если не согласовано иное, спецификации продукта могут быть изменены в любое время и без предварительного уведомления.

Авторские права © Михаэль Типпах

Правовая информация | конфиденциальность

Powered by WordPress

ASIO является торговой маркой Штейнберг Медиа Технолоджис ГмбХ.  Все остальные товарные знаки являются собственностью их владельцев и используются исключительно в целях идентификации продукта.

  • Размер буфера ASIO

    Размер буфера ASIO

    Используйте ползунок для регулировки размера ASIO-буфера для выделенного в данный момент устройства. Меньший размер буфера означает меньшую задержку. Если вы слышите треск или искажение звука, вам необходимо увеличить размер буфера. Размер ASIO-буфера напрямую связан с задержкой звука. Поэтому вам следует выбрать здесь довольно небольшое значение. Вы можете

    больше

  • Загрузите стандартные настройки

    Загрузите стандартные настройки

    Нажатие этой кнопки сбросит все параметры конфигурации к их первоначальным значениям по умолчанию. Используйте, когда звук изначально работал, а затем вы запутались в процессе настройки. Кроме того, если вы обновили свой ASIO4ALL до новой версии, эта опция загрузит настройки, рекомендуемые новой версией.

    больше

  • Перейти в расширенный режим

    Перейти в расширенный режим

    Эта функция переключает панель управления в «расширенный» режим, где вы можете исправлять или полностью изменять настройки по своему усмотрению. Описание «расширенного» режима приведено в разделе «Расширенная конфигурация» данного документа.

    больше