PFREE_DMA_ENGINE回调函数 (hdaudio.h)
例 FreeDmaEngine
程释放以前通过调用 AllocateCaptureDmaEngine 或 AllocateRenderDmaEngine 分配 的 DMA 引擎。
例程的 FreeDmaEngine
函数指针类型定义如下。
语法
PFREE_DMA_ENGINE PfreeDmaEngine;
NTSTATUS PfreeDmaEngine(
[in] PVOID _context,
[in] HANDLE Handle
)
{...}
参数
[in] _context
指定HDAUDIO_BUS_INTERFACE的 Context 成员(HDAUDIO_BUS_INTERFACE_V2或HDAUDIO_BUS_INTERFACE_BDL结构)中的上下文值。
[in] Handle
标识 DMA 引擎的句柄。 此句柄值是从以前调用 AllocateCaptureDmaEngine 或 AllocateRenderDmaEngine 获取的。
返回值
FreeDmaEngine
如果调用成功释放 DMA 引擎,则返回STATUS_SUCCESS。 否则,例程将返回相应的错误代码。 下表显示了一些可能的返回状态代码。
返回代码 | 说明 |
---|---|
|
指示 句柄 参数值无效。 |
|
指示流未处于重置状态,或者仍为 DMA 引擎分配缓冲区。 |
注解
此例程释放以前通过调用 AllocateCaptureDmaEngine 或 AllocateRenderDmaEngine 例程保留的 DMA 引擎 。
此例程在以下任一情况下失败并返回错误代码STATUS_INVALID_DEVICE_REQUEST:
- 之前分配的任何 DMA 缓冲区尚未通过调用 FreeDmaBuffer 或 FreeContiguousDmaBuffer) 释放 (。
- 流处于重置以外的状态。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | hdaudio.h (包括 Hdaudio.h) |
IRQL | <=DISPATCH_LEVEL |