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 컨텍스트 멤버, 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 |