Freigeben über


Kernel-Mode WDM-Audiokomponenten

Die Kernelmodus-Audiokomponenten des Microsoft Windows-Treibermodells (WDM) sind:

WDMAud-Systemtreiber

SysAudio-Systemtreiber

KMixer-Systemtreiber

Redbook-Systemtreiber

SBEmul-Systemtreiber

SWMidi Systemtreiber

DMusic-Systemtreiber

AEC-Systemtreiber

DRMK-Systemtreiber

Splitter-Systemtreiber

Portklassenadaptertreiber und PortCls-Systemtreiber

USB-Audioklassensystemtreiber (Usbaudio.sys)

AVCAudio-Klassensystemtreiber

WDMAud-Systemtreiber

Der Kernelmodus-WDMAud-Systemtreiber (Wdmaud.sys) wird mit dem Wdmaud-Systemtreiber für den Benutzermodus (Wdmaud.drv) gekoppelt. Das Paar der WDMAud-Treiber übersetzt zwischen Microsoft Windows-Benutzermodus-Multimediasystemaufrufen und Kernelstreaming-E/A-Anforderungen. WDMAud führt I/O für die folgenden APIs aus: waveIn, waveOut, midiIn, midiOut, mixer und aux (in der Dokumentation zum Microsoft Windows SDK beschrieben). Der WDMAud-Treiber im Kernelmodus 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 Instanz einer KSCATEGORY_AUDIO_DEVICE Geräteschnittstelle. (Adaptertreiber sollten sich nicht in dieser Kategorie registrieren, die ausschließlich für SysAudio reserviert ist.) Ein virtuelles MIDI-Gerät kann z. B. ein Filterdiagramm darstellen, das durch verbinden des SWMidi-Treibers, des KMixer-Treibers und eines Port/Miniport-Treibers erstellt wird. Der Client kommuniziert nur mit dem virtuellen Audiogerät und nicht mit den einzelnen Geräten, die das virtuelle Audiogerät bilden. Transparent für den Client konfiguriert der SysAudio-Treiber 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 Windows SDK-Dokumentation).)

  • Redbook CD digital audio (Siehe Redbook System Driver.)

  • Sound Blaster Emulator (Siehe SBEmul System Driver.)

  • Kernelmodus-Softwaresynthesizer (siehe SWMidi System Driver und DMusic System Driver.)

  • DRMK-Systemtreiber

KMixer-Systemtreiber

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

  • Mischen mehrerer PCM-Audiostreams

  • Qualitativ hochwertige Formatkonvertierung

  • Bittiefe Konvertierung

  • Lautsprecherkonfiguration und Kanalzuordnung

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

  • PCM- und IEEE-Gleitkommadaten

  • Bittiefe 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ärken".

Redbook-Systemtreiber

Der Redbook-Systemtreiber (Redbook.sys) ist der KS-Filter, der das Rendern von digitalen CD-Audio 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. Das digitale CD-Audio wird auf dem bevorzugten Wellenausgabegerät gerendert (wie auf den Multimedia-Eigenschaftenseiten in der 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. Um Inhalte zu rendern und zu erfassen, verwendet der SysAudio-Treiber die bevorzugten Wave- und MIDI-Geräte (wie auf den Multimedia-Eigenschaftenseiten in der Systemsteuerung festgelegt).

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 hochwertige Roland GS Wavetable Synthesis bereitstellt. 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, um einen einzigen Zweikanalausgabestrom mit einem PCM-Wave-Format zu erstellen.

DMusic-Systemtreiber

Der DMusic-Systemtreiber (Dmusic.sys) ist der KS-Filter, der software-emulierte, qualitativ hochwertige, herunterladbare Soundsynthese (DLS) unterstützt. Der DMusic-Treiber ist ein vom System bereitgestellter Portklassen-Miniporttreiber. Sie macht einen einzelnen DirectMusic-Pin verfügbar, der einen DirectMusic-Datenstromdatenbereich unterstützt. Der DMusic-Filter empfängt als Eingabe einen zeitstempelten MIDI-Stream aus der DirectMusic-Systemkomponente und gibt einen PCM-Wellenstrom an den KMixer-Systemtreiber aus. Der DMusic-Treiber mischt alle Stimmen intern, um einen einzelnen Zweikanalausgabedatenstrom mit einem PCM-Wellenformat zu bilden. Eine DirectMusic-Anwendung muss explizit den Kernelmodus-Softwaresynth, Dmusic.sys, auswählen, um es anstelle von DirectMusics Standard-Benutzermodus-Synth zu verwenden.

AEC-Systemtreiber

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

DRMK-Systemtreiber

Der DRMK-Systemtreiber (Drmk.sys) ist der KS-Filter, der Audiodatenströme entschlüsselt, die DRM-geschützte Inhalte enthalten. Weitere Informationen finden Sie unter Verwaltung digitaler Rechte.

Splitter-Systemtreiber

Der Splitter-Systemtreiber (Splitter.sys) ist der KS-Filter, der zwei oder mehr Ausgabedatenströme aus einem einzelnen Eingabeaufnahmedatenstrom erstellt. Der Splitter-Treiber kopiert den Eingabedatenstrom transparent in zwei weitere Ausgabestreams 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 Splitters.

Portklassenadaptertreiber und PortCls-Systemtreiber

Ein Portklassenadaptertreiber verwendet die Port-/Miniporttreiberarchitektur, um ein Audiogerät zu unterstützen. Der PortCls-Treiber enthält 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 hilfreich sein, um Treiber für Audiogeräte auf anderen Hardwarebussen oder nur für Softwaregeräte zu erstellen. Weitere Informationen finden Sie in der Einführung in die Portklasse.

USB-Audioklassensystemtreiber (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-Minidriver, der Treiberunterstützung für Audiogeräte bietet, die sich auf 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 Hardwareanbieter 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 Subunit Spezifikation 1.0

  • Verbindungs- und Kompatibilitätsverwaltungsspezifikation 1.0

  • AV/C Media Stream Format Informationen und Aushandlung

  • Aktualisierungen der AV/C Audio Subunit Spezifikationen, die derzeit in Bearbeitung sind

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 der Plug- und Play-Geräteaufzählung 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 hilfe eines proprietären Adaptertreibers. Dies bedeutet, dass ein Gerät, das den entsprechenden IEEE 1394-Spezifikationen entspricht, keinen proprietären Adaptertreiber erfordert.

Microsoft empfiehlt Hardwareanbietern, 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