KSPROPERTY_RTAUDIO_BUFFER

La proprietà KSPROPERTY_RTAUDIO_BUFFER specifica un buffer ciclico allocato driver per i dati audio.

Nella tabella seguente vengono riepilogate le funzionalità di questa proprietà.

Tabella riepilogo utilizzo

Recupero Set Destinazione Tipo di descrittore delle proprietà Tipo di valore della proprietà

No

Aggiungi (Blocca)

KSRTAUDIO_BUFFER_PROPERTY

KSRTAUDIO_BUFFER

Il descrittore di proprietà (dati dell'istanza) è costituito da una struttura KSRTAUDIO_BUFFER_PROPERTY che contiene una struttura KSPROPERTY insieme ad altri membri. Il client scrive le dimensioni del buffer richieste nella struttura. Se il client non deve usare un indirizzo di base specifico, deve specificare l'indirizzo di base come NULL.

Il valore della proprietà (dati operazione) è una struttura di tipo KSRTAUDIO_BUFFER. Il driver riempie questa struttura con le dimensioni effettive del buffer, l'indirizzo di base e il flag di barriera di memoria per il buffer ciclico allocato.

Valore restituito

Una richiesta di proprietà KSPROPERTY_RTAUDIO_BUFFER restituisce STATUS_SUCCESS per indicare che è stata completata correttamente. In caso contrario, la richiesta restituisce un codice di stato di errore appropriato. La tabella seguente mostra alcuni dei possibili codici di stato degli errori.

Codice stato Significato

STATUS_UNSUCCESSFUL

Impossibile allocare un buffer ciclico con la combinazione specificata di attributi del buffer.

STATUS_INSUFFICIENT_RESOURCES

Impossibile allocare la memoria per il buffer.

STATUS_DEVICE_NOT_READY

Il dispositivo non è pronto

Commenti

L'indirizzo di base è l'indirizzo di memoria virtuale all'inizio del buffer ciclico. Il client può accedere direttamente al buffer in questo indirizzo. Il buffer è contiguo in memoria virtuale. La decisione se prendere il buffer contiguo nella memoria fisica viene lasciato fino al driver.

Il client deve impostare l'indirizzo di base nel descrittore della proprietà su NULL. Il driver imposta l'indirizzo di base nel valore della proprietà sull'indirizzo virtuale del buffer audio allocato.

In genere, l'hardware audio richiede il buffer audio per iniziare e terminare sui limiti di esempio o soddisfare altri tipi di vincoli di allineamento dipendenti dall'hardware. Se è disponibile memoria sufficiente, la dimensione effettiva del buffer è la dimensione richiesta arrotondata (verso l'alto o verso il basso) al limite più vicino o ad altri limiti vincolati hardware. La dimensione effettiva deve essere almeno la dimensione richiesta; in caso contrario, il motore audio WASAPI (Audio Session API) non userà il buffer e la creazione del flusso avrà esito negativo.

Se una richiesta di proprietà KSPROPERTY_RTAUDIO_BUFFER ha esito positivo, il valore della proprietà, ovvero una struttura di tipo KSRTAUDIO_BUFFER, contiene l'indirizzo e le dimensioni del buffer allocato del driver.

La chiusura del pin libera automaticamente il buffer allocato tramite questa proprietà.

Se si vogliono notifiche di eventi, è necessario chiamare KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION anziché KSPROPERTY_RTAUDIO_BUFFER.

Requisiti

Versione

Disponibile in Windows Vista e nei sistemi operativi Windows successivi.

Intestazione

Ksmedia.h

Vedere anche

KSRTAUDIO_BUFFER

KSRTAUDIO_BUFFER_PROPERTY

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION