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.
Weitere Informationen zu den Treiberkomponenten in der Abbildung finden Sie in den folgenden Abschnitten: