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à |
---|---|---|---|---|
Sì |
No |
Aggiungi (Blocca) |
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 |