KSRTAUDIO_HWREGISTER Struktur (ksmedia.h)

Die KSRTAUDIO_HWREGISTER-Struktur gibt die Adresse und zusätzliche Informationen zu einem vom Client angeforderten Hardwareregister an. Er wird vom Fahrer als Antwort auf eine Registrierungsanfrage über KSPROPERTY_RTAUDIO_POSITIONREGISTER und KSPROPERTY_RTAUDIO_CLOCKREGISTER ausgefüllt.

Syntax

typedef struct {
  PVOID     Register;
  ULONG     Width;
  ULONGLONG Numerator;
  ULONGLONG Denominator;
  ULONG     Accuracy;
} KSRTAUDIO_HWREGISTER, *PKSRTAUDIO_HWREGISTER;

Member

Register

Zeiger auf das Register. Dieses Element gibt die virtuelle Adresse an, der das Register zugeordnet ist.

Width

Gibt die Breite des Registers in Bits an. Der Wert dieses Members kann 32 oder 64 sein.

Numerator

Gibt den Zähler der Häufigkeit an, mit der die Uhr Inkremente registriert. Siehe die folgenden Hinweise. -Abschnitt.

Denominator

Gibt den Nenner der Häufigkeit an, mit der die Uhr Inkremente registriert. Siehe die folgenden Hinweise. -Abschnitt.

Accuracy

Gibt die Genauigkeit des Uhr- oder Positionsregisters an. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

Hinweise

Für Hardwarepositionsregistrierungsanforderungen über KSPROPERTY_RTAUDIO_POSITIONREGISTER füllt der Treiber die Member Register, Width und Accuracy aus , da die anderen Member für Uhrenregister spezifisch sind. Für Hardwareuhrregistrierungsanforderungen über KSPROPERTY_RTAUDIO_CLOCKREGISTER füllt der Treiber die gesamte Struktur aus.

Ein Uhrenregister ist ein Zähler, der mit der Häufigkeit der internen Hardwareuhr erhöht wird, die den internen Bus des Audiogeräts antreibt. Die Registerschritte um eins mit jedem Tick der Uhr. Das Register beginnt zu zählen, wenn das Gerät eingeschaltet wird, und wird weiter ausgeführt, bis das Gerät ausgeschaltet wird. Das Uhrenregister wird von Software verwendet, um zwei oder mehr Geräte mit unabhängigen Hardwareuhren zu synchronisieren.

Member Numerator und Nenner geben zusammen die Häufigkeit an, mit der die Uhr Inkremente registriert. Die Häufigkeit wird berechnet, indem Zähler durch Nenner dividiert wird.

Die Uhr registriert Inkremente bei der Häufigkeit der internen Uhr des Audiogeräts. Dies ist die Häufigkeit, die das Audiogerät normalerweise verwendet, um Ereignisse auf seinem internen Bus oder auf dem externen Codeclink zu überwachen. Die Hardware leitet die Audiobeispielfrequenzen ab, indem sie die interne Taktfrequenz aufteilt.

Das Audiogerät kann seine interne Uhr von einem On-Chip-Kristalloszillator oder einem externen Taktsignal ableiten. Wenn ein Gerät beispielsweise einen internen 16,5-MHz-Takt leitet, indem es einen externen 33-MHz-Takt durch zwei dividiert, können Zähler und Nenner als 33.000.000 bzw. 2 angegeben werden.

Der Genauigkeitsparameter gibt den maximalen Fehler in einer Position oder einem Uhrenregister an. Dies ist im Wesentlichen eine Darstellung der Aktualisierungsrate für das Register. Für Uhrenregister gibt der Genauigkeitsparameter die Anzahl der Taktzecken zwischen Registerupdates an. Im vorherigen Beispiel eines internen 16,5-MHz-Takts wird der Genauigkeitsparameter auf 4 festgelegt, da das Register die Genauigkeit des Taktregisters in Takttakteinheiten darstellen muss.

Bei Positionsregistern stellt der Genauigkeitsparameter die Genauigkeit des Positionsregisters in Byteseinheiten dar. Beispielsweise beträgt die Audioframegröße für einen 16-Bit-PCM-Stream mit 2 Kanälen 4 Bytes. Wenn die Position einmal jeden zweiten Tick der Beispieluhr Inkremente registriert (um das Doppelte der Framegröße), beträgt der Genauigkeitswert 8 Bytes. Wenn die Position Inkremente (um das Vierfache der Framegröße) einmal jeden vierten Tick der Beispieluhr registriert, beträgt der Genauigkeitswert 16 Bytes usw.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar unter Windows Vista und höheren Windows-Betriebssystemen.
Kopfzeile ksmedia.h

Weitere Informationen

KSPROPERTY_RTAUDIO_CLOCKREGISTER

KSPROPERTY_RTAUDIO_POSITIONREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY