다음을 통해 공유


PFREE_DMA_ENGINE 콜백 함수(hdaudio.h)

루틴은 FreeDmaEngineAllocateCaptureDmaEngine 또는 AllocateRenderDmaEngine 호출에 의해 이전에 할당된 DMA 엔진을 해제합니다.

루틴의 FreeDmaEngine 함수 포인터 형식은 다음과 같이 정의됩니다.

구문

PFREE_DMA_ENGINE PfreeDmaEngine;

NTSTATUS PfreeDmaEngine(
  [in] PVOID _context,
  [in] HANDLE Handle
)
{...}

매개 변수

[in] _context

HDAUDIO_BUS_INTERFACE 컨텍스트 멤버, HDAUDIO_BUS_INTERFACE_V2또는HDAUDIO_BUS_INTERFACE_BDL 구조체의 컨텍스트 값을 지정합니다.

[in] Handle

DMA 엔진 식별을 처리합니다. 이 핸들 값은 AllocateCaptureDmaEngine 또는 AllocateRenderDmaEngine에 대한 이전 호출에서 가져옵니다.

반환 값

FreeDmaEngine 는 호출이 DMA 엔진을 해제하는 데 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 루틴은 적절한 오류 코드를 반환합니다. 다음 표에서는 가능한 반환 상태 코드 중 일부를 보여 줍니다.

반환 코드 설명
STATUS_INVALID_HANDLE
핸들 매개 변수 값이 잘못되었음을 나타냅니다.
STATUS_INVALID_DEVICE_REQUEST
스트림이 다시 설정 상태가 아니거나 버퍼가 여전히 DMA 엔진에 할당되어 있음을 나타냅니다.

설명

이 루틴은 AllocateCaptureDmaEngine 또는 AllocateRenderDmaEngine 루틴을 호출하여 이전에 예약된 DMA 엔진을 해제합니다.

이 루틴은 실패하고 다음 상황 중 하나에서 STATUS_INVALID_DEVICE_REQUEST 오류 코드를 반환합니다.

오디오 드라이버는 이 루틴을 호출하여 핀을 닫고 스트림을 파괴합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 hdaudio.h(Hdaudio.h 포함)
IRQL <=DISPATCH_LEVEL

추가 정보

AllocateCaptureDmaEngine

AllocateRenderDmaEngine

FreeContiguousDmaBuffer

FreeDmaBuffer

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2