Condividi tramite


EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS funzione di callback (acxelements.h)

Il callback EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS viene implementato dal driver e viene chiamato quando vengono richiesti limiti di dimensione del buffer per un determinato formato di dati per il motore audio specificato.

Sintassi

EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS EvtAcxAudioengineRetrieveBufferSizeLimits;

NTSTATUS EvtAcxAudioengineRetrieveBufferSizeLimits(
  ACXAUDIOENGINE AudioEngine,
  ACXDATAFORMAT Format,
  PULONG MinBufferSizeInBytes,
  PULONG MaxBufferSizeInBytes
)
{...}

Parametri

AudioEngine

Oggetto ACXAUDIOENGINE per il quale sono stati richiesti i limiti delle dimensioni del buffer. Per altre informazioni sugli oggetti ACX, vedere Riepilogo degli oggetti ACX.

Format

ACXDATAFORMAT con cui il callback determina le dimensioni minime e massime del buffer con cui il motore audio può accomodarlo.

MinBufferSizeInBytes

Dimensioni minime del buffer che il motore audio hardware può supportare per il formato dati specificato, all'istanza quando viene chiamata. Le dimensioni del buffer sono specificate in byte.

MaxBufferSizeInBytes

Dimensioni massime del buffer che il motore audio hardware può supportare per il formato dati specificato, all'istanza quando viene chiamata. Le dimensioni del buffer sono specificate in byte.

Valore restituito

Restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo. In caso contrario, restituisce un codice di errore appropriato. Per altre informazioni, vedere Uso dei valori NTSTATUS.

Commenti

Esempio

Di seguito è riportato un esempio di utilizzo.

EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS CodecR_EvtAcxAudioEngineRetrieveBufferSizeLimits;

NTSTATUS
CodecR_EvtAcxAudioEngineRetrieveBufferSizeLimits(
    _In_    ACXAUDIOENGINE  AudioEngine,
    _In_    ACXDATAFORMAT   DataFormat,
    _Out_   PULONG          MinBufferBytes,
    _Out_   PULONG          MaxBufferBytes
    )
{
    PAGED_CODE();

    ULONG bytesPerSecond = AcxDataFormatGetAverageBytesPerSec(DataFormat);

    *MinBufferBytes = (ULONG) (MIN_AUDIOENGINE_BUFFER_DURATION_IN_MS * bytesPerSecond / 1000);
    *MaxBufferBytes = (ULONG) (MAX_AUDIOENGINE_BUFFER_DURATION_IN_MS * bytesPerSecond / 1000);

    return STATUS_SUCCESS;
}

Requisiti di ACX

Versione minima di ACX: 1.0

Per altre informazioni sulle versioni ACX, vedere La panoramica della versione di ACX.

Requisiti

Requisito Valore
Intestazione acxelements.h
IRQL PASSIVE_LEVEL

Vedi anche