Kernel-Mode WDM-Audiokomponenten

Die Audiokomponenten des Microsoft Windows Driver Model (WDM) im Kernelmodus sind:

WDMAud-Systemtreiber

SysAudio-Systemtreiber

KMixer-Systemtreiber

Redbook-Systemtreiber

SBEmul-Systemtreiber

SWMidi-Systemtreiber

DMusic-Systemtreiber

AEC-Systemtreiber

DRMK-Systemtreiber

Splittersystemtreiber

Portklassenadaptertreiber und PortCls-Systemtreiber

USB-Audioklassensystemtreiber (Usbaudio.sys)

AVCAudio-Klassensystemtreiber

WDMAud-Systemtreiber

Der Kernelmodus-WDMAud-Systemtreiber (Wdmaud.sys) wird mit dem Benutzermodus-WDMAud-Systemtreiber (Wdmaud.drv) gekoppelt. Das WDMAud-Treiberpaar übersetzt zwischen Microsoft Windows-Multimediasystemaufrufen im Benutzermodus und Kernelstreaming-E/A-Anforderungen. WDMAud führt E/A für die folgenden APIs durch: waveIn, waveOut, midiIn, midiOut, mixer und aux (in der Microsoft Windows SDK-Dokumentation beschrieben). Der Kernelmodus-WDMAud-Treiber ist ein Kernelstreamingfilter (KS) und ein Client des SysAudio-Systemtreibers.

SysAudio-Systemtreiber

Der SysAudio-Systemtreiber (Sysaudio.sys) erstellt die Filterdiagramme, die Audioinhalte rendern und erfassen. Der SysAudio-Treiber stellt Audiofilterdiagramme als virtuelle Audiogeräte dar und registriert jedes virtuelle Audiogerät als instance einer KSCATEGORY_AUDIO_DEVICE Geräteschnittstelle. (Adaptertreiber sollten sich nicht selbst in dieser Kategorie registrieren, die exklusiv für SysAudio reserviert ist.) Ein virtuelles MIDI-Gerät kann beispielsweise ein Filterdiagramm darstellen, das durch Verbinden des SWMidi-Treibers, des KMixer-Treibers und eines Port-/Miniporttreibers erstellt wird. Der Client kommuniziert nur mit dem virtuellen Audiogerät und nicht mit den einzelnen Geräten, aus denen das virtuelle Audiogerät besteht. Der SysAudio-Treiber ist für den Client transparent und konfiguriert alle KS-Filter im Filterdiagramm, die miteinander verbunden sind, um das virtuelle Audiogerät zu bilden. Die folgenden Audiostreamquellen verwenden die Diagramme, die SysAudio erstellt:

  • DirectSound (Siehe Microsoft Windows SDK Dokumentation.)

  • Windows-Multimedia-APIs waveIn, waveOut, midiIn, midiOut, mixer und aux (siehe Dokumentation zum Windows SDK.)

  • Redbook CD Digital Audio (siehe Redbook System Driver.)

  • Sound Blaster-Emulator (siehe SBEmul-Systemtreiber.)

  • Kernelmodus-Softwaresynthesizer (siehe SWMidi-Systemtreiber und DMusic-Systemtreiber.)

  • DRMK-Systemtreiber

KMixer-Systemtreiber

Der KMixer-Systemtreiber (Kmixer.sys) ist der KS-Filter, der folgendes ausführt:

  • Mischen mehrerer PCM-Audiostreams

  • Hochwertige Formatkonvertierung

  • Bittiefekonvertierung

  • Sprecherkonfiguration und Kanalzuordnung

Neben einfachen 8- und 16-Bit-, Mono- und Stereodatenformaten unterstützt der KMixer-Treiber Folgendes:

  • PCM- und IEEE-Gleitkommadaten

  • Bittiefen größer als 16 Bit und Mehrkanalformate mit mehr als zwei Kanälen

  • Head-Related Transfer Function (HRTF) 3D-Verarbeitung

Informationen zu den Lautstärkebereichen und den Standardlautstärken in den verschiedenen Versionen von Windows finden Sie unter Standardeinstellungen für Audiolautstärke.

Redbook-Systemtreiber

Der Redbook-Systemtreiber (Redbook.sys) ist der KS-Filter, der das Rendern digitaler CD-Audiodaten verwaltet. Der Redbook-Treiber ist ein Client des SysAudio-Systemtreibers. Das System leitet digitale CD-Audiodaten über das Dateisystem an den Redbook-Treiber und dann an den SysAudio-Treiber weiter. Die digitale CD-Audiowiedergabe wird auf dem bevorzugten Wave-Ausgabegerät gerendert (wie auf den Multimedia-Eigenschaftenseiten in Systemsteuerung festgelegt).

SBEmul-Systemtreiber

Der SBEmul-Systemtreiber (Sbemul.sys) bietet Sound Blaster-Emulation für MS-DOS-Anwendungen. Der SBEmul-Treiber ist ein Client des SysAudio-Systemtreibers. Zum Rendern und Erfassen von Inhalten verwendet der SysAudio-Treiber die bevorzugten Wave- und MIDI-Geräte (wie auf den Multimedia-Eigenschaftenseiten in Systemsteuerung festgelegt).

Die Sound Blaster-Emulation wird nur in Windows 98/Me unterstützt.

SWMidi-Systemtreiber

Der SWMidi-Systemtreiber (Swmidi.sys) ist der KS-Filter, der software emulierte General MIDI (GM) und eine hochwertige Roland GS Wavetable-Synthese bietet. Eine midiOutXxx-Anwendung verwendet SWMidi, wenn ein Hardwaresynthesizer nicht verfügbar ist. Der SWMidi-Filter empfängt als Eingabe einen zeitstempelten MIDI-Stream vom WDMAud-Systemtreiber und gibt einen PCM-Wellenstrom an den KMixer-Systemtreiber aus. SWMidi mischt alle Stimmen intern zu einem einzigen Zweikanal-Ausgabestream mit einem PCM-Wellenformat.

DMusic-Systemtreiber

Der DMusic-Systemtreiber (Dmusic.sys) ist der KS-Filter, der software emulierte, qualitativ hochwertige DLS-Synthese (Downloadable Sound) unterstützt. Der DMusic-Treiber ist ein vom System bereitgestellter Miniporttreiber der Portklasse. Es macht einen einzelnen DirectMusic-Pin verfügbar, der einen DirectMusic-Streamdatenbereich unterstützt. Der DMusic-Filter empfängt als Eingabe einen zeitstempelten MIDI-Stream von der DirectMusic-Systemkomponente und gibt einen PCM-Wellenstrom an den KMixer-Systemtreiber aus. Der DMusic-Treiber mischt alle Stimmen intern, um einen einzelnen Zweikanalausgabestream mit einem PCM-Wellenformat zu bilden. Eine DirectMusic-Anwendung muss explizit den Kernelmodus-Softwaresynth (Dmusic.sys) auswählen, um ihn anstelle des standardmäßigen Benutzermodussynth von DirectMusic zu verwenden.

AEC-Systemtreiber

Der AEC-Systemtreiber (Aec.sys) unterstützt Vollduplex-DirectSound-Anwendungen, indem er AEC (akustische Echounterdrückung) und Rauschunterdrückungsalgorithmen in Software implementiert. Weitere Informationen finden Sie unter DirectSound Capture Effects.

DRMK-Systemtreiber

Der DRMK-Systemtreiber (Drmk.sys) ist der KS-Filter, der Audiostreams entschlüsselt, die DRM-geschützte Inhalte enthalten. Weitere Informationen finden Sie unter Digital Rights Management.

Splittersystemtreiber

Der Splitter-Systemtreiber (Splitter.sys) ist der KS-Filter, der zwei oder mehr Ausgabestreams aus einem einzelnen Eingabeerfassungsstream erstellt. Der Splittertreiber kopiert den Eingabedatenstrom transparent in zwei weitere Ausgabedatenströme unabhängig vom Format des Eingabedatenstroms.

Der Splitter-Treiber wird von Microsoft Windows XP und höher unterstützt. Weitere Informationen finden Sie unter AVStream-Splitter.

Portklassenadaptertreiber und PortCls-Systemtreiber

Ein Portklassenadaptertreiber verwendet die Port-/Miniporttreiberarchitektur, um ein Audiogerät zu unterstützen. Der PortCls-Treiber umfasst integrierte Treiberunterstützung für ISA- und PCI-Audiogeräte. Obwohl der PortCls-Systemtreiber (Portcls.sys) auch das Framework für vom Anbieter bereitgestellte Portklassenadaptertreiber bereitstellt, empfiehlt Microsoft, dass Anbieter einen vom System bereitgestellten Portklassenadaptertreiber verwenden, um ISA- und PCI-Audiogeräte zu unterstützen. Das PortCls-Framework kann auch nützlich sein, um Treiber für Audiogeräte auf anderen Hardwarebussen oder für reine Softwaregeräte zu erstellen. Weitere Informationen finden Sie unter Einführung in die Portklasse.

USB Audio Class System Driver (Usbaudio.sys)

Der USBAudio-Klassensystemtreiber (Usbaudio.sys) bietet Treiberunterstützung für USB-Audiogeräte, die der Universal Serial Bus Device Class Definition für Audiogeräte entsprechen. Weitere Informationen zu diesem Klassensystemtreiber finden Sie unter USB Audio Class System Driver (Usbaudio.sys).

AVCAudio-Klassensystemtreiber

Der AVCAudio-Klassensystemtreiber (Avcaudio.sys) ist ein AVStream-Minitreiber, der Treiberunterstützung für Audiogeräte bereitstellt, die sich in einem IEEE 1394-Bus befinden. Der AVCAudio-Treiber und die zugehörige Unterstützung für IEEE 1394-Audiogeräte sind in Windows XP und höher verfügbar.

Um mit den vom System bereitgestellten Treibern zu arbeiten, sollten Hardwarehersteller ihre Audiogeräte so entwerfen, dass sie den entsprechenden Abschnitten der folgenden Spezifikationen entsprechen:

  • IEC 61883-1 und IEC 61883-6 (IEC 60958)

  • AV/C Digital Interface Command Set Allgemeine Spezifikation Ver. 3.0

  • AV/C Audio-Untereinheit Spezifikation 1.0

  • Verbindungs- und Kompatibilitätsverwaltungsspezifikation 1.0

  • AV/C-Medienstreamformatinformationen und -aushandlung

  • Updates zu den derzeit in Bearbeitung befindlichen AV/C-Audiountereinheitsspezifikationen

Diese Spezifikationen werden auf der Ieee 1394 Wiki Page-Website beschrieben. Der AVCAudio-Treiber unterstützt eine Teilmenge der Features, die in diesen Spezifikationen beschrieben werden.

Wenn sich ein Audiogerät während Plug & Play Geräteenumeration als IEEE 1394-kompatibles Audiogerät identifiziert, lädt das System automatisch den AVCAudio-Treiber, um das Gerät zu steuern. AVCAudio steuert das Gerät direkt, ohne die Hilfe eines proprietären Adaptertreibers. Dies bedeutet, dass ein Gerät, das die entsprechenden IEEE 1394-Spezifikationen erfüllt, keinen proprietären Adaptertreiber benötigt.

Microsoft empfiehlt Hardwareherstellern, den AVCAudio-Treiber für ihre IEEE 1394-Audiogeräte zu verwenden, anstatt proprietäre Adaptertreiber zu schreiben.

Die folgende Abbildung zeigt die Treiberhierarchie für ein IEEE 1394-Audiogerät in Windows XP. In Windows XP und höher werden alle in dieser Abbildung gezeigten Treiberkomponenten von Microsoft mit dem Betriebssystem bereitgestellt.

Diagramm, das die Treiberhierarchie für ein IEEE 1394-Audiogerät in Windows XP zeigt.

Weitere Informationen zu den Treiberkomponenten in der Abbildung finden Sie in den folgenden Abschnitten:

Übersicht über AVStream

AV/C-Clienttreiber

IEEE 1394 Bus