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 版本概述。
要求
要求 | 价值 |
---|---|
标头 | acxelements.h |
IRQL | PASSIVE_LEVEL |