次の方法で共有


EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS コールバック関数 (acxelements.h)

EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS コールバックはドライバーによって実装され、指定されたオーディオ エンジンに対して特定のデータ形式のバッファー サイズ制限が要求されたときに呼び出されます。

構文

EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS EvtAcxAudioengineRetrieveBufferSizeLimits;

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

パラメーター

AudioEngine

バッファー サイズの制限が要求された ACXAUDIOENGINE オブジェクト。 ACX オブジェクトの詳細については、「 ACX オブジェクトの概要」を参照してください。

Format

オーディオ エンジンが対応できる最小バッファー サイズと最大バッファー サイズをコールバックが決定する ACXDATAFORMAT。

MinBufferSizeInBytes

指定されたデータ形式に対してハードウェア オーディオ エンジンがサポートできるバッファーの最小サイズ (呼び出し時のインスタンス)。 バッファー サイズはバイト単位で指定されます。

MaxBufferSizeInBytes

ハードウェア オーディオ エンジンが特定のデータ形式に対してサポートできるバッファーの最大サイズ (呼び出し時のインスタンス)。 バッファー サイズはバイト単位で指定されます。

戻り値

STATUS_SUCCESS呼び出しが成功した場合は を返します。 それ以外の場合は、適切なエラー コードを返します。 詳細については、「 NTSTATUS 値の使用」を参照してください。

解説

使用例を次に示します。

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;
}

ACX の要件

最小 ACX バージョン: 1.0

ACX バージョンの詳細については、「 ACX バージョンの概要」を参照してください。

要件

要件
Header acxelements.h
IRQL PASSIVE_LEVEL

こちらもご覧ください