Freigeben über


KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION

Die KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION-Eigenschaft gibt einen vom Treiber zugewiesenen zyklischen Puffer für Audiodaten an und identifiziert Ereignisbenachrichtigungsanforderungen.

In der folgenden Tabelle sind die Features dieser Eigenschaft zusammengefasst.

Nutzungszusammenfassungstabelle

Herunterladen Set Ziel Eigenschaftendeskriptortyp Eigenschaftswerttyp

Ja

Nein

Pin

KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION

KSRTAUDIO_BUFFER

Der Eigenschaftendeskriptor (instance Daten) besteht aus einer KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION-Struktur, die zusammen mit anderen Membern eine KSPROPERTY-Struktur enthält. Der Client schreibt seine angeforderte Puffergröße in die -Struktur. Der Client muss die Basisadresse als NULL angeben, es sei denn, es wird eine bestimmte Basisadresse benötigt.

Diese Eigenschaft wird verwendet, wenn Sie eine DMA-gesteuerte Ereignisbenachrichtigung wünschen. Basierend auf dem NotificationCount-Member werden registrierte Ereignisse einmal (am Ende) oder zweimal (an der Mitte und am Ende) pro Zyklus durch den zyklischen Puffer signalisiert. Ereignisse werden mit KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT registriert, nachdem KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION erfolgreich aufgerufen wurde.

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_WITH_NOTIFICATION-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. Der Treiber bestimmt, ob der Puffer im physischen Arbeitsspeicher zusammenhängend ist.

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

In der Regel erfordert Audiohardware, dass der Audiopuffer entweder mit Beispielgrenzen beginnt und endet oder dass er 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. Andernfalls kann die tatsächliche Größe kleiner als die angeforderte Größe sein.

Wenn eine KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION Eigenschaftsanforderung erfolgreich ist, enthält der Eigenschaftswert, der eine Struktur vom Typ KSRTAUDIO_BUFFER ist, 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.

Requirements (Anforderungen)

Version

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

Header

Ksmedia.h

Siehe auch

KSPROPERTY

KSRTAUDIO_BUFFER

KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION

KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT