KSPROPERTY_RTAUDIO_PACKETCOUNT

KSPROPERTY_RTAUDIO_PACKETCOUNT gibt die (1-basierte) Anzahl der Pakete zurück, die vollständig aus dem WaveRT-Puffer an die Hardware übertragen wurden.

Nutzungszusammenfassungstabelle

Herunterladen Set Ziel Eigenschaftsdeskriptortyp Eigenschaftswerttyp

Ja

Nein

Pin

KSPROPERTY

ULONG

Der Eigenschaftsdeskriptor (instance Daten) ist eine KSPROPERTY-Struktur. Vor dem Senden der Anforderung lädt der Client die Struktur mit der (1-basierten) Anzahl von Paketen, die vollständig aus dem WaveRT-Puffer in die Hardware übertragen wurden.

Der Eigenschaftswert ist eine Variable vom Typ ULONG.

Rückgabewert

Eine KSPROPERTY_RTAUDIO_PACKETCOUNT-Eigenschaftsanforderung gibt STATUS_SUCCESS zurück, um anzugeben, dass sie erfolgreich abgeschlossen wurde. Andernfalls gibt die Anforderung einen entsprechenden Fehler status Code zurück.

Bemerkungen

Aus der Paketanzahl kann das Betriebssystem die Streamposition der Pakete ableiten, die es in den WaveRT-Puffer schreibt. Das Betriebssystem kann auch die WaveRT-Pufferposition des nächsten Pakets zum Schreiben innerhalb des WaveRT-Puffers ableiten. Bei WaveRT-Treibern signalisiert der Treiber ein einzelnes Benachrichtigungsereignis, während er Daten aus jedem Paket des WaveRT-Puffers überträgt. Daher kann das Ereignis allein nicht angeben, welches Paket innerhalb des WaveRT-Puffers übertragen wird. Im normalen Betrieb ist dies kein Problem, aber in Unterflussfällen lässt sich die Korrektur leichter erreichen, indem die Paketanzahl abfragt, aus der das Betriebssystem bestimmen kann, welches Paket als Nächstes geschrieben werden soll.

Der zurückgegebene PacketCount gibt die (1-basierte) Anzahl der Pakete an, die vollständig aus dem WaveRT-Puffer in die Hardware übertragen wurden. Dadurch kann das Betriebssystem die 0-basierte Anzahl des Pakets ermitteln, das derzeit übertragen wird, und sicherstellen, dass es vor dieses Paket schreibt. Wenn die Paketanzahl beispielsweise 5 ist, wurden 5 Pakete vollständig übertragen. Das heißt, pakete 0-4 wurden vollständig übertragen. Aus diesem Grund wird Paket 5 ausgeführt, und das Betriebssystem sollte Paket 6 schreiben. Wenn die Benachrichtigungsanzahl für den WaveRT-Puffer 2 ist, befindet sich Paket 6 beim Offset 0 innerhalb des WaveRT-Puffers (da 6 modulo 2 0 und 0 mal die Paketgröße 0 ist).

Das Betriebssystem kann diese Eigenschaft jederzeit erhalten. Diese Eigenschaft wird jedoch in der Regel nur in regelmäßigen Abständen abgerufen, oder nachdem der Treiber einen Dataflowfehler (STATUS_DATA_LATE_ERROR, STATUS_DATA_OVERRUN) von SetWritePacket() zurückgibt, um eine erneute Synchronisierung mit dem Treiber zu erzielen.

Der Treiber sollte die Paketanzahl auf 0 zurücksetzen, wenn sich der Stream in KSSTATE_STOP befindet.

Requirements (Anforderungen)

Version

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

Header

Ksmedia.h

Siehe auch

KSPROPSETID_RTAudio