KSRTAUDIO_HWREGISTER 구조체(ksmedia.h)
KSRTAUDIO_HWREGISTER 구조는 클라이언트에서 요청한 하드웨어 레지스터에 대한 주소 및 추가 정보를 지정합니다. KSPROPERTY_RTAUDIO_POSITIONREGISTER 및 KSPROPERTY_RTAUDIO_CLOCKREGISTER 통해 레지스터 요청에 대한 응답으로 드라이버에 의해 채워집니다.
구문
typedef struct {
PVOID Register;
ULONG Width;
ULONGLONG Numerator;
ULONGLONG Denominator;
ULONG Accuracy;
} KSRTAUDIO_HWREGISTER, *PKSRTAUDIO_HWREGISTER;
구성원
Register
레지스터에 대한 포인터입니다. 이 멤버는 레지스터가 매핑되는 가상 주소를 지정합니다.
Width
레지스터의 너비를 비트 단위로 지정합니다. 이 멤버의 값은 32 또는 64일 수 있습니다.
Numerator
클록 레지스터가 증가하는 빈도의 숫자자를 지정합니다. 다음 발언을 참조하세요. 섹션.
Denominator
클록 레지스터가 증가하는 빈도의 분모를 지정합니다. 다음 발언을 참조하세요. 섹션.
Accuracy
클록 또는 위치 레지스터의 정확도를 지정합니다. 다음 주의 섹션을 참조하세요.
설명
하드웨어 위치 레지스터 요청의 경우 다른 멤버는 클록 레지스터와 관련이 있으므로 드라이버가 레지스터, 너비 및 정확도 멤버를 채우는 KSPROPERTY_RTAUDIO_POSITIONREGISTER 통해 요청합니다. 하드웨어 클록의 경우 드라이버가 전체 구조를 채우는 KSPROPERTY_RTAUDIO_CLOCKREGISTER 통해 요청을 등록합니다.
클록 레지스터는 오디오 디바이스의 내부 버스를 구동하는 내부 하드웨어 클록의 빈도로 증가하는 카운터입니다. 레지스터는 클록의 각 틱을 사용하여 하나씩 증가합니다. 레지스터는 디바이스가 켜지면 계산을 시작하고 디바이스가 꺼져 있을 때까지 계속 실행됩니다. 시계 레지스터는 소프트웨어에서 두 개 이상의 디바이스를 독립 하드웨어 클록과 동기화하는 데 사용됩니다.
멤버 숫자와 분모 는 함께 클록이 증가하는 빈도를 지정합니다. 빈도는 분모로 숫자 자를 나누어 계산 됩니다.
시계 레지스터는 오디오 디바이스의 내부 클록 빈도로 증가합니다. 이는 오디오 디바이스가 일반적으로 내부 버스 또는 외부 코덱 링크에서 이벤트를 클록하는 데 사용하는 빈도입니다. 하드웨어는 내부 클록 주파수를 나누어 오디오 샘플 주파수를 파생합니다.
오디오 장치는 온칩 크리스탈 진동기 또는 외부 클록 신호에서 내부 클록을 파생시킬 수 있습니다. 예를 들어 디바이스가 33MHz 외부 클록을 2로 나누어 16.5MHz 내부 클록을 파생하는 경우 숫자와 분모를 각각 33,000,000 및 2로 지정할 수 있습니다.
정확도 매개 변수는 위치 또는 클록 레지스터 읽기의 최대 오류를 지정합니다. 이는 기본적으로 레지스터에 대한 업데이트 속도의 표현입니다. 클록 레지스터의 경우 정확도 매개 변수는 레지스터 업데이트 간의 클록 틱 수를 나타냅니다. 16.5MHz 내부 클록의 앞의 예제에서 클록 레지스터가 4 클록마다 업데이트되는 경우 레지스터가 클록 레지스터의 정확도를 클록 틱 단위로 나타내야 하므로 정확도 매개 변수는 4로 설정됩니다.
위치 레지스터의 경우 Accuracy 매개 변수는 위치 레지스터의 정확도를 바이트 단위로 나타냅니다. 예를 들어 2 채널, 16비트 PCM 스트림의 오디오 프레임 크기는 4바이트입니다. 위치 레지스터가 샘플 클록의 1초 틱마다 한 번씩(프레임 크기의 2배) 증가하면 정확도 값은 8바이트입니다. 위치 레지스터가 샘플 클록의 네 번째 틱마다 한 번씩(프레임 크기의 4배) 증가하는 경우 정확도 값은 16바이트입니다.
요구 사항
| 지원되는 최소 클라이언트 | Windows Vista 이상 Windows 운영 체제에서 사용할 수 있습니다. |
| 헤더 | ksmedia.h |
참고 항목
KSPROPERTY_RTAUDIO_CLOCKREGISTER
피드백
다음에 대한 사용자 의견 제출 및 보기