Benutzerregistrierungseinstellungen

24/04/2026

Inhaltsverzeichnis

Einführung

Dieses Dokument beschreibt die Benutzerregistrierungseinstellungen, die für ASIO4ALL Revision 2 und abgeleitete Einzelversionen davon gelten. Es behandelt nicht die Registrierungseinträge, die für 3 erforderlich sind.rd Drittanbieterstandards, wie die Registrierung als ASIO-Treiber und COM-Schnittstelle. Alle hier behandelten Registrierungseinträge werden unter der Registrierungsstruktur HKEY_CURRENT_USER gespeichert und sind daher für jedes Benutzerkonto individuell.

Strukturübersicht

Registrierungsunterschlüssel sind in der folgenden Hierarchie organisiert: Anwendungen >> Audiogeräte >> Geräteschnittstellen >> Stifte.

Die Abbildung zeigt den Registrierungsort und die grundlegende Struktur der Benutzereinstellungen. Die farblich markierten achtstelligen Hexadezimalzahlen sind Hashwerte, die mit dem folgenden Hashalgorithmus aus Zeichenfolgen erstellt werden:

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);
}

Es wird eine Prüfung auf Hash-Kollisionen durchgeführt und im Falle einer Kollision wird der resultierende Hash um eins erhöht, bis keine weitere Kollision mehr gefunden wird. Diese Methode wurde gewählt, da die Struktur größtenteils statisch ist und der Verlust eines Zweigs (also der schlimmste Fall) die Integrität der Anwendung immer noch nicht gefährdet.

Hashes werden aus den folgenden Zeichenfolgenquellen erstellt:

  • Das Anwendungspfad und ausführbarer Name zurückgegeben von GetModuleFileNameA (blau)
  • Das  Audiogerät PnP-ID, wie sie von der Windows Setup-API verwaltet wird (rot)
  • Das Geräteschnittstelle Pfadname gemäß dem von der Windows Setup-API zurückgegebenen DevicePath-Element SP_DEVICE_INTERFACE_DETAIL_DATA (grün)

Nicht farblich markierte Unterschlüssel in Hex-Nummern entsprechen direkt den Indizes der Ein- und Ausgabe Stifte wodurch Instanzen von jedem erstellt werden können.

Der Zweig „Standardeinstellungen“ enthält einen vollständigen Satz von Einstellungen auf Anwendungsebene, die anstelle von Einstellungen pro Anwendung verwendet werden, wenn zuvor keine Einstellungen innerhalb der jeweiligen Anwendung gespeichert wurden. Über das Desktop-Kontrollfeld („Offline-Einstellungen“) vorgenommene Änderungen werden direkt im Zweig „Standardeinstellungen“ gespeichert.

Registrierungsschlüssel

Flags

Typ: DWORD

Gilt für: Anwendung / Gerät / Interface / Pin

Dies ist ein Bitfeld, das dem internen Status und den Konfigurationseinstellungen für jedes Element entspricht. Allerdings werden nicht alle Informationen aus der Registrierung geladen bzw. in die Registrierung zurückgeschrieben. Eine Reihe von Bits dienen der internen Verwaltung zwischen Sitzungen und sollten ebenfalls nicht geändert werden. Es gelten die folgenden Definitionen:

#define A4A_FLAG_STATEMASK 0x00000060

GUI-Housekeeping, nicht ändern!

#define A4A_FLAG_WATCHDOG_ENABLE 0x00000001 (Anwendung)

#define A4A_FLAG_SAFEMODE_ENABLE 0x00000002 (Anwendung)

Wird verwendet, um die Fehlerbehebungsfunktion auf Anwendungsebene zu aktivieren. „Abgesicherter Modus“ wird nach einem Absturz mit deaktiviertem Audio gestartet. Der Watchdog versucht zu verhindern, dass der Audio-Thread über längere Zeiträume 100 % der CPU-Zeit verbraucht, indem er den Audio-Thread regelmäßig anhält und neu startet, sodass das System einigermaßen reaktionsfähig bleibt. Beide Funktionen sind nicht vollständig getestet und sollten normalerweise nicht aktiviert werden.

#define A4A_FLAG_NOINPUT 0x00002000 (Anwendung)

Wenn Ihr OEM-Build über eine dedizierte globale „Disable Input“-Funktion verfügt (z. B. ein Kontrollkästchen mit diesem Namen im ASIO-Bedienfeld), wird es von diesem Bit gesteuert. Andernfalls ist diese Einstellung reserviert.

#define A4A_FLAG_NOSHUTDOWN 0x00004000 (Anwendung)

Dies wird in Verbindung mit der oben beschriebenen Funktion „Abgesicherter Modus“ als Markierung verwendet, um ein unerwartetes Herunterfahren („Absturz“) der Anwendung beim letzten Ausführen anzuzeigen.

#define A4A_FLAG_ADVANCED 0x00008000 (Anwendung)

Wenn die GUI in Ihrem Build unterschiedliche Einstellungsansichten „Erweitert“ und „Einfach“ bietet, gibt dieses Bit an, welche davon aktiv ist.

#define A4A_FLAG_HWBUFFER 0x00010000 (Gerät / Schnittstelle)

Wenn gesetzt, wird der Hardware-Puffermodus aktiviert. Dieser Modus funktioniert nicht immer, was bedeutet, dass die Ergebnisse ziemlich unvorhersehbar sein können. Mit Vorsicht verwenden!

#define A4A_FLAG_FORCESRC 0x00020000 (Gerät)

Wenn diese Einstellung aktiviert ist, führt der Treiber eine Hoch-/Heruntersamplingrate durch, wenn die Anwendung eine Samplingrate von 44.1 kHz anfordert und 48 kHz eine vom WDM-Treiber unterstützte Samplingrate ist. Dies gilt auch, wenn der WDM-Treiber nativ 44.1 kHz unterstützt.

Wenn dieses Bit nicht gesetzt ist, wird ein Resampling nur bei Bedarf durchgeführt, um die Abtastrate von 44.1 kHz überhaupt zu unterstützen.

#define A4A_FLAG_FORCE16 0x00040000 (Gerät)

Wenn diese Einstellung aktiviert ist, wird die Bittiefe der WDM/KS-Schnittstelle auf 16 beschränkt, selbst wenn das Gerät größere Bittiefen unterstützt. Andernfalls wird das Gerät mit der höchstmöglichen Bittiefe betrieben. Diese Einstellung hat keinen Einfluss auf das ASIO-Sampleformat, das immer Int32Lsb ist.

#define A4A_FLAG_LOW_CPU 0x00040000 (Gerät)

Diese im Jahr 2026 eingeführte Eigenschaft ist anwendungsweit verfügbar (Energiesparmodus in der Benutzeroberfläche). Beachten Sie, dass die Bedeutung dieses Flags umgekehrt ist, d. h. „1“ = „Deaktiviert“, „0“ = „Aktiviert“!
Da dies nur für die Anwendungsflags gilt, gibt es keine Kollision mit der bisherigen Verwendung derselben Bitposition in den einzelnen Geräteflags.

#define A4A_FLAG_RTAUDIO 0x00080000 (Gerät/Schnittstelle)

#define A4A_FLAG_MEMBARRIER 0x00100000 (Schnittstelle)

Markiert die Geräteeigenschaftenschnittstelle des Typs WaveRT intern. Normalerweise wird diese Information nicht in die Registry zurückgeschrieben und wenn doch, darf sie nicht verändert werden!

#define A4A_FLAG_PULLMODE 0x00200000 (Gerät)

(v2.9 +) Wenn gesetzt, versucht ASIO4ALL, den Pull-Modus für die WaveRT-Pins dieses Geräts zu verwenden. Wenn nicht gesetzt, wird immer der (sicherere) Polling-Modus („Push“) verwendet. (V2.8) Dieses Bit hat keine Wirkung. Der Pull-Modus wird, wann immer möglich, verwendet.

Ab 2026 wird dieses Flag stattdessen die Eigenschaft „Alternative Puffersynchronisierung“ steuern.

#define A4A_FLAG_OFFSET_VALID 0x01000000 (Stift)

#define A4A_FLAG_RELAX_NUMPLAYING 0x02000000 (Gerät)

Interne Haushaltsführung. Normalerweise werden diese Informationen nicht in die Registrierung zurückgeschrieben und wenn doch, dürfen sie nicht geändert werden!

#define A4A_FLAG_RUNNING 0x10000000 (Gerät / Schnittstelle / Pin)

#define A4A_FLAG_ERROR 0x20000000 (Gerät / Schnittstelle / Pin)

#define A4A_FLAG_AVAILABLE 0x40000000 (Gerät / Schnittstelle / Pin)

Wird intern verwendet, um den Status dynamischer Objekte zu verfolgen. Normalerweise werden diese Informationen nicht in die Registrierung zurückgeschrieben, und wenn doch, sind sie von sehr geringem Nutzen und dürfen nicht geändert werden!

#define A4A_FLAG_ENABLED 0x80000000 (Gerät / Schnittstelle / Pin)

Wenn gesetzt, ist das jeweilige Objekt in der aktuellen Konfiguration aktiviert. Damit ein Pin tatsächlich aktiv wird, muss allerdings auch seine übergeordnete Schnittstelle auf „aktiviert“ gesetzt sein. Umgekehrt muss auch das übergeordnete Gerät auf „aktiviert“ gesetzt sein, damit die Schnittstelle aktiv wird.

Beispielrate

Typ: DWORD

Gilt für: Anwendung

Einheit: 1 / s

Dies ist die Abtastrate, die der Treiber an den Aufruf ASIOgetSampleRate() der Hostanwendung als Standardabtastrate zurückgibt.

Puffergröße

Typ: DWORD

Gilt für: Gerät

Einheit: Muster

Die Puffergröße für das Gerät, die von ASIOgetBufferSize() als vom Treiber bevorzugte Puffergröße zurückgegeben werden soll. Wenn mehr als ein Gerät aktiv ist, wird der jeweilige Wert an das Gerät mit der größten zugehörigen Puffergröße zurückgegeben.

(v2.20 +) Gilt für: Anwendung

Auf Anwendungsebene bedeutet ein Wert ungleich null, dass der Host die vom Treiber bevorzugte Puffergröße überschrieben hat. Der Wert entspricht der vom Host festgelegten Größe.

Kernelpuffer – Wird 2026 eingestellt!

Typ: DWORD

Gilt für: Gerät

Einheit: n/a

Die Anzahl der Puffer in der WDM/KS-Pufferwarteschlange. Kann 2, 3 oder 4 sein.

Abonnieren

Typ: DWORD

Gilt für: Gerät

Einheit: Muster

Zusätzliche Eingabelatenz, die von ASIogetLatencies () zurückgegeben werden soll. Dieser Parameter hat keine weiteren Auswirkungen auf die Ausführung des Treibercodes und dient ausschließlich zur Unterstützung der automatischen Latenzkompensation, wenn diese von der Hostanwendung ausgeführt wird.

Abonnieren

Typ: DWORD

Gilt für: Gerät

Einheit: Muster

Zusätzliche Ausgabelatenz, die von ASIOgetLatencies () zurückgegeben werden soll. Dieser Parameter hat keine weiteren Auswirkungen auf die Ausführung des Treibercodes und dient ausschließlich zur Unterstützung der automatischen Latenzkompensation, wenn diese von der Hostanwendung ausgeführt wird.

WndPos

Typ: DWORD

Gilt für: Anwendung

Einheit: X/Y-Koordinaten

Die vorherige Bildschirmposition des ASIO4ALL-Systemsteuerungsfensters.

Referenzen

  1. ASIO SDK, Steinberg Media Technologies GmbH
  2. Windows-Treiberkit, Microsoft, Corp.
  3. Win32 Software Development Kit, Microsoft, Corp.
  4. ASIO4ALL Bedienungsanleitung, Michael Tippach

Copyright © 2003-2026, Michael Tippach

Für die Richtigkeit der in diesem Dokument bereitgestellten Informationen wird keine Garantie übernommen. Sofern nicht anders vereinbart, können Produktspezifikationen jederzeit und ohne Vorankündigung geändert werden.

Copyright © Michael Tippach

Impressum | Datenschutz

Erhöhte Sicherheit. Geringerer Aufwand. Nachhaltiger Erfolg. WordPress

ASIO ist ein Warenzeichen von Steinberg Media Technologies GmbH.  Alle anderen Marken sind Eigentum der jeweiligen Inhaber und werden nur zu Zwecken der Produktidentifikation verwendet.

  • Einführung

    Einführung

    Willkommen bei ASIO4ALL! Dieses Handbuch hilft Ihnen, Ihre ASIO4ALL-Installation optimal zu nutzen, insbesondere die neuen, erweiterten Funktionen dieser Version. Um mit ASIO4ALL die bestmöglichen Ergebnisse zu erzielen, empfiehlt sich eine entsprechende Konfiguration Ihres Computers. Für Updates, Hilfe und weitere Informationen,

    Mehr

  • Erste Schritte

    Erste Schritte

    Einrichtung Ihrer Audio-Software Um ASIO4ALL nutzen zu können, müssen Sie Ihre Audio-Software entsprechend konfigurieren. Die Vorgehensweise hängt von Ihrer jeweiligen Software ab. Im Allgemeinen rufen Sie das Audio-Konfigurationsmenü auf und wählen ASIO -> ASIO4ALL v2. Anschließend sollte eine Schaltfläche zum Starten des Programms vorhanden sein.

    Mehr

  • WDM-Geräteliste

    WDM-Geräteliste

    Dies ist die Liste der in Ihrem System gefundenen Audiogeräte. Markieren Sie das Gerät, an dem Sie Änderungen vornehmen möchten. Hinweis: Alle Parameteränderungen gelten immer nur für das aktuell markierte Gerät! Aktivieren Sie das gewünschte Gerät, indem Sie auf die Schaltfläche neben dem Gerätenamen klicken! Im obigen Bild ist das

    Mehr