KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION

La propiedad KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION especifica un búfer cíclico asignado por el controlador para los datos de audio e identifica los requisitos de notificación de eventos.

En la tabla siguiente se resumen las características de esta propiedad.

Tabla de resumen de uso

Obtener Set Destino Tipo de descriptor de propiedad Tipo de valor de propiedad

No

Anclar

KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION

KSRTAUDIO_BUFFER

El descriptor de propiedad (datos de instancia) consta de una estructura de KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION que contiene una estructura KSPROPERTY junto con otros miembros. El cliente escribe su tamaño de búfer solicitado en la estructura . El cliente debe especificar la dirección base como NULL a menos que se necesite una dirección base específica.

Esta propiedad se usa cuando se desea una notificación de eventos controlada por DMA. En función del miembro NotificationCount , los eventos registrados se indican una vez (al final) o dos veces (en el punto medio y el final) por ciclo a través del búfer cíclico. Los eventos se registran mediante KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT después de llamar correctamente a KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION.

El valor de propiedad (datos de operación) es una estructura de tipo KSRTAUDIO_BUFFER. El controlador rellena esta estructura con el tamaño real del búfer, la dirección base y la marca de barrera de memoria para el búfer cíclico que ha asignado.

Valor devuelto

Una solicitud de propiedad KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION devuelve STATUS_SUCCESS para indicar que se ha completado correctamente. De lo contrario, la solicitud devuelve un código de estado de error adecuado. En la tabla siguiente se muestran algunos de los posibles códigos de estado de error.

status code Significado

STATUS_UNSUCCESSFUL

No se puede asignar un búfer cíclico con la combinación especificada de atributos de búfer.

STATUS_INSUFFICIENT_RESOURCES

No se puede asignar memoria para el búfer.

STATUS_DEVICE_NOT_READY

El dispositivo no está listo.

Observaciones

La dirección base es la dirección de memoria virtual al principio del búfer cíclico. El cliente puede acceder directamente al búfer en esta dirección. El búfer es contiguo en memoria virtual. El controlador determina si el búfer es contiguo en memoria física.

El cliente establece la dirección base en el descriptor de propiedad en NULL. El controlador establece la dirección base en el valor de propiedad en la dirección virtual del búfer de audio asignado.

Normalmente, el hardware de audio requiere que el búfer de audio comience y finalice en los límites de ejemplo o que cumpla otros tipos de restricciones de alineación dependientes del hardware. Si hay suficiente memoria disponible, el tamaño real del búfer es el tamaño solicitado redondeado (arriba o abajo) al ejemplo más cercano u otro límite restringido por hardware. De lo contrario, el tamaño real puede ser menor que el tamaño solicitado.

Si una solicitud de propiedad de KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION se realiza correctamente, el valor de propiedad, que es una estructura de tipo KSRTAUDIO_BUFFER, contiene la dirección y el tamaño del búfer asignado por el controlador.

Al cerrar el pin, se libera automáticamente el búfer que se asignó a través de esta propiedad.

Requisitos

Versión

Disponible en Windows Vista y en sistemas operativos Windows posteriores.

Encabezado

Ksmedia.h

Vea también

KSPROPERTY

KSRTAUDIO_BUFFER

KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION

KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT