다음을 통해 공유


KSPROPERTY_RTAUDIO_BUFFER

KSPROPERTY_RTAUDIO_BUFFER 속성은 오디오 데이터에 대해 드라이버 할당 주기 버퍼를 지정합니다.

다음 표에는 이 속성의 기능이 요약되어 있습니다.

사용량 요약 테이블

가져오기 설정 대상 속성 설명자 형식 속성 값 형식

Yes

아니요

Pin

KSRTAUDIO_BUFFER_PROPERTY

KSRTAUDIO_BUFFER

속성 설명자(instance 데이터)는 다른 멤버와 함께 KSPROPERTY 구조를 포함하는 KSRTAUDIO_BUFFER_PROPERTY 구조체로 구성됩니다. 클라이언트는 요청된 버퍼 크기를 구조체에 씁니다. 클라이언트가 특정 기본 주소를 사용할 필요가 없는 경우 기본 주소를 NULL로 지정해야 합니다.

속성 값(작업 데이터)은 KSRTAUDIO_BUFFER 형식의 구조체입니다. 드라이버는 할당된 순환 버퍼에 대한 실제 버퍼 크기, 기본 주소 및 메모리 장벽 플래그로 이 구조를 채웁니다.

반환 값

KSPROPERTY_RTAUDIO_BUFFER 속성 요청은 성공적으로 완료되었음을 나타내는 STATUS_SUCCESS 반환합니다. 그렇지 않으면 요청이 코드에 상태 적절한 오류를 반환합니다. 다음 표에서는 코드에 상태 가능한 오류 중 일부를 보여 줍니다.

상태 코드 의미

STATUS_UNSUCCESSFUL

지정된 버퍼 특성 조합이 있는 순환 버퍼는 할당할 수 없습니다.

STATUS_INSUFFICIENT_RESOURCES

버퍼의 메모리를 할당할 수 없습니다.

STATUS_DEVICE_NOT_READY

디바이스가 준비되지 않았습니다.

설명

기본 주소는 주기적 버퍼의 시작 부분에 있는 가상 메모리 주소입니다. 클라이언트는 이 주소에서 버퍼에 직접 액세스할 수 있습니다. 버퍼는 가상 메모리에서 연속적입니다. 물리적 메모리에서 버퍼를 연속으로 만들지 여부를 결정하는 것은 드라이버에 달려 있습니다.

클라이언트는 속성 설명자의 기본 주소를 NULL로 설정해야 합니다. 드라이버는 속성 값의 기본 주소를 할당된 오디오 버퍼의 가상 주소로 설정합니다.

일반적으로 오디오 하드웨어는 샘플 경계에서 시작 및 종료하거나 다른 유형의 하드웨어 종속 맞춤 제약 조건을 충족하도록 오디오 버퍼가 필요합니다. 충분한 메모리를 사용할 수 있는 경우 버퍼의 실제 크기는 요청된 크기가 가장 가까운 샘플 또는 기타 하드웨어 제한 경계로 반올림(위쪽 또는 아래로)됩니다. 실제 크기는 적어도 요청된 크기여야 합니다. 그렇지 않으면 WASAPI(오디오 세션 API) 오디오 엔진이 버퍼를 사용하지 않으며 스트림 만들기가 실패합니다.

KSPROPERTY_RTAUDIO_BUFFER 속성 요청이 성공하면 KSRTAUDIO_BUFFER 형식의 구조인 속성 값에 드라이버 할당 버퍼의 주소와 크기가 포함됩니다.

핀을 닫으면 이 속성을 통해 할당된 버퍼가 자동으로 해제됩니다.

이벤트 알림을 원하는 경우 KSPROPERTY_RTAUDIO_BUFFER 대신 KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION 호출해야 합니다.

요구 사항

Version

Windows Vista 이상 Windows 운영 체제에서 사용할 수 있습니다.

헤더

Ksmedia.h

참고 항목

KSRTAUDIO_BUFFER

KSRTAUDIO_BUFFER_PROPERTY

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION