Condividi tramite


WaveCyclic Miniport Driver

Importante L'uso di WavePci non è più consigliato, invece usare WaverRT.

Un driver miniport WaveCyclic gestisce le funzioni dipendenti dall'hardware di un dispositivo wave-rendering o wave-capture che usa un buffer ciclico per i dati audio. Il buffer ciclico è in genere un singolo blocco di memoria fisica contigua e può trovarsi in un'area di memoria scelta dal driver. Un dispositivo con una delle limitazioni seguenti deve fornire un driver miniport WaveCyclic anziché un driver miniport WavePci:

  • Il dispositivo non dispone dell'hardware DMA.

  • L'hardware DMA del dispositivo può accedere ai dati solo in un buffer che occupa un singolo blocco di memoria fisica contigua.

  • L'hardware DMA del dispositivo non è in grado di accedere ai dati in tutte le aree della memoria fisica.

Un driver miniport WaveCyclic deve implementare due interfacce:

  • L'interfaccia miniport supporta l'inizializzazione del driver miniport e la creazione del flusso.

  • L'interfaccia del flusso gestisce un flusso d'onda ed espone la maggior parte delle funzionalità del driver miniport.

L'interfaccia miniport, IMiniportWaveCyclic, eredita i metodi nell'interfaccia IMiniport . IMiniportWaveCyclic offre i metodi aggiuntivi seguenti:

IMiniportWaveCyclic::Init

Inizializza l'oggetto miniport.

IMiniportWaveCyclic::NewStream

Crea un nuovo oggetto flusso.

L'interfaccia di flusso IMiniportWaveCyclicStream eredita i metodi nell'interfaccia IUnknown . IMiniportWaveCyclicStream offre i metodi aggiuntivi seguenti:

IMiniportWaveCyclicStream::GetPosition

Ottiene la posizione corrente del dispositivo nel flusso d'onda.

IMiniportWaveCyclicStream::NormalizePhysicalPosition

Converte un valore di posizione del buffer fisico in un valore basato sul tempo.

IMiniportWaveCyclicStream::SetFormat

Imposta il formato dei dati del flusso d'onda.

IMiniportWaveCyclicStream::SetNotificationFreq

Imposta la frequenza con cui si verificano gli interrupt di notifica.

IMiniportWaveCyclicStream::SetState

Imposta lo stato del flusso d'onda.

IMiniportWaveCyclicStream::Silence

Copia il silenzio in un buffer.