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 |