FreeDmaEngine
루틴은 AllocateCaptureDmaEngine 또는 AllocateRenderDmaEngine호출하여 이전에 할당된 DMA 엔진을 해제합니다.
FreeDmaEngine
루틴에 대한 함수 포인터 형식은 다음과 같이 정의됩니다.
통사론
PFREE_DMA_ENGINE PfreeDmaEngine;
NTSTATUS PfreeDmaEngine(
[in] PVOID _context,
[in] HANDLE Handle
)
{...}
매개 변수
[in] _context
HDAUDIO_BUS_INTERFACEContext 멤버, 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 |