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 |