KSPROPERTY_RTAUDIO_PACKETCOUNT
KSPROPERTY_RTAUDIO_PACKETCOUNT restituisce il conteggio (basato su 1) dei pacchetti completamente trasferiti dal buffer WaveRT all'hardware.
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) è una struttura KSPROPERTY . Prima di inviare la richiesta, il client carica la struttura con il conteggio (basato su 1) dei pacchetti completamente trasferiti dal buffer WaveRT all'hardware.
Il valore della proprietà è una variabile di tipo ULONG.
Valore restituito
Una richiesta di proprietà KSPROPERTY_RTAUDIO_PACKETCOUNT restituisce STATUS_SUCCESS per indicare che è stata completata correttamente. In caso contrario, la richiesta restituisce un codice di stato di errore appropriato.
Commenti
Dal conteggio dei pacchetti, il sistema operativo può derivare la posizione di flusso dei pacchetti che scrive nel buffer WaveRT. Il sistema operativo può anche derivare la posizione del buffer WaveRT del pacchetto successivo da scrivere all'interno del buffer WaveRT. Per i driver WaveRT, il driver segnala un singolo evento di notifica mentre trasferisce i dati da ogni pacchetto del buffer WaveRT. Pertanto l'evento da solo non può indicare quale pacchetto all'interno del buffer WaveRT viene trasferito. Nell'operazione normale questo non è un problema, ma nella correzione dei casi di sottoflow è più facilmente ottenuto eseguendo una query sul conteggio dei pacchetti da cui il sistema operativo può determinare quale pacchetto scrivere successivamente.
Il packetCount restituito indica il conteggio (basato su 1) dei pacchetti completamente trasferiti dal buffer WaveRT all'hardware. In questo modo, il sistema operativo può determinare il numero basato su 0 del pacchetto attualmente trasferito e assicurarsi che scrive prima di tale pacchetto. Ad esempio, se il conteggio dei pacchetti è 5, 5 pacchetti sono stati completamente trasferiti. Vale a dire, i pacchetti 0-4 sono stati completamente trasferiti. Pertanto il pacchetto 5 è in corso e il sistema operativo deve scrivere pacchetti 6. Se il conteggio delle notifiche per il buffer WaveRT è 2, il pacchetto 6 sarà all'interno del buffer WaveRT (perché 6 modulo 2 è 0 e 0 volte la dimensione del pacchetto è 0).
Il sistema operativo può ottenere questa proprietà in qualsiasi momento. Tuttavia, in genere ottiene questa proprietà solo periodicamente o dopo che il driver restituisce un errore di flusso di dati (STATUS_DATA_LATE_ERROR, STATUS_DATA_OVERRUN) da SetWritePacket() per risincronizzare con il driver.
Il driver deve reimpostare il numero di pacchetti su 0 quando il flusso è in KSSTATE_STOP.
Requisiti
Versione |
Disponibile in Windows 10 e versioni successive dei sistemi operativi Windows. |
Intestazione |
Ksmedia.h |