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 |
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 |