Freigeben über


KSPROPERTY_RTAUDIO_BUFFER

Die eigenschaft KSPROPERTY_RTAUDIO_BUFFER gibt einen vom Treiber zugewiesenen zyklischen Puffer für Audiodaten an.

In der folgenden Tabelle sind die Features dieser Eigenschaft zusammengefasst.

Nutzungszusammenfassungstabelle

Herunterladen Set Ziel Eigenschaftendeskriptortyp Eigenschaftswerttyp

Ja

Nein

Pin

KSRTAUDIO_BUFFER_PROPERTY

KSRTAUDIO_BUFFER

Der Eigenschaftendeskriptor (instance Daten) besteht aus einer KSRTAUDIO_BUFFER_PROPERTY-Struktur, die eine KSPROPERTY-Struktur zusammen mit anderen Membern enthält. Der Client schreibt seine angeforderte Puffergröße in die -Struktur. Wenn der Client nicht mit einer bestimmten Basisadresse arbeiten muss, muss er die Basisadresse als NULL angeben.

Der Eigenschaftswert (Vorgangsdaten) ist eine Struktur vom Typ KSRTAUDIO_BUFFER. Der Treiber füllt diese Struktur mit der tatsächlichen Puffergröße, der Basisadresse und dem Speicherbarriereflag für den zugeordneten zyklischen Puffer aus.

Rückgabewert

Eine KSPROPERTY_RTAUDIO_BUFFER-Eigenschaftsanforderung gibt STATUS_SUCCESS zurück, um anzugeben, dass sie erfolgreich abgeschlossen wurde. Andernfalls gibt die Anforderung einen geeigneten Fehler status Code zurück. In der folgenden Tabelle sind einige der möglichen Fehler status Codes aufgeführt.

Statuscode Bedeutung

STATUS_UNSUCCESSFUL

Ein zyklischer Puffer mit der angegebenen Kombination von Pufferattributen kann nicht zugeordnet werden.

STATUS_INSUFFICIENT_RESOURCES

Arbeitsspeicher für den Puffer kann nicht zugeordnet werden.

STATUS_DEVICE_NOT_READY

Das Gerät ist nicht bereit

Bemerkungen

Die Basisadresse ist die Adresse des virtuellen Speichers am Anfang des zyklischen Puffers. Der Client kann direkt auf den Puffer unter dieser Adresse zugreifen. Der Puffer ist im virtuellen Arbeitsspeicher zusammenhängend. Die Entscheidung, ob der Puffer im physischen Speicher zusammenhängend werden soll, bleibt dem Treiber überlassen.

Der Client sollte die Basisadresse im Eigenschaftendeskriptor auf NULL festlegen. Der Treiber legt die Basisadresse im Eigenschaftswert auf die virtuelle Adresse des zugeordneten Audiopuffers fest.

In der Regel erfordert die Audiohardware, dass der Audiopuffer entweder an Beispielgrenzen beginnt und endet oder andere Arten von hardwareabhängigen Ausrichtungseinschränkungen erfüllt. Wenn genügend Arbeitsspeicher verfügbar ist, entspricht die tatsächliche Größe des Puffers der angeforderten Größe, die auf die nächste Stichprobe oder andere hardwarebeschränkte Grenze gerundet (nach oben oder unten) gerundet wird. Die tatsächliche Größe muss mindestens der angeforderten Größe entspricht; Andernfalls verwendet die Audiositzungs-API (WASAPI)-Audio-Engine den Puffer nicht, und die Streamerstellung schlägt fehl.

Wenn eine KSPROPERTY_RTAUDIO_BUFFER Eigenschaftsanforderung erfolgreich ist, enthält der Eigenschaftswert, bei dem es sich um eine Struktur vom Typ KSRTAUDIO_BUFFER handelt, die Adresse und Größe des vom Treiber zugewiesenen Puffers.

Durch das Schließen des Pins wird der Puffer, der über diese Eigenschaft zugewiesen wurde, automatisch freigegeben.

Wenn Sie Ereignisbenachrichtigungen wünschen, müssen Sie KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION anstelle von KSPROPERTY_RTAUDIO_BUFFER aufrufen.

Requirements (Anforderungen)

Version

Verfügbar in Windows Vista und höheren Windows-Betriebssystemen.

Header

Ksmedia.h

Siehe auch

KSRTAUDIO_BUFFER

KSRTAUDIO_BUFFER_PROPERTY

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION