Share via


KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION 속성은 오디오 데이터에 대해 드라이버 할당 순환 버퍼를 지정하고 이벤트 알림 요구 사항을 식별합니다.

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

사용 요약 테이블

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

Pin

KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION

KSRTAUDIO_BUFFER

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

이 속성은 DMA 기반 이벤트 알림을 원할 때 사용됩니다. NotificationCount 멤버에 따라 등록된 이벤트는 순환 버퍼를 통해 주기당 한 번(끝에) 또는 두 번(중간 지점 및 끝에) 신호를 보냅니다. 이벤트는 KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION 성공적으로 호출한 후 KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT 사용하여 등록됩니다.

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

반환 값

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

상태 코드 의미

STATUS_UNSUCCESSFUL

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

STATUS_INSUFFICIENT_RESOURCES

버퍼에 대한 메모리를 할당할 수 없습니다.

STATUS_DEVICE_NOT_READY

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

설명

기본 주소는 순환 버퍼의 시작 부분에 있는 가상 메모리 주소입니다. 클라이언트는 이 주소에서 버퍼에 직접 액세스할 수 있습니다. 버퍼는 가상 메모리에서 연속적입니다. 드라이버는 버퍼가 실제 메모리에서 연속적인지 여부를 확인합니다.

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

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

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

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

요구 사항

Version

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

헤더

Ksmedia.h

참고 항목

KSPROPERTY

KSRTAUDIO_BUFFER

KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION

KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT