PFREE_DMA_BUFFER 콜백 함수(hdaudio.h)
루틴은 FreeDmaBuffer
AllocateDmaBuffer 호출에 의해 이전에 할당된 DMA 버퍼를 해제합니다.
루틴의 FreeDmaBuffer
함수 포인터 형식은 다음과 같이 정의됩니다.
구문
PFREE_DMA_BUFFER PfreeDmaBuffer;
NTSTATUS PfreeDmaBuffer(
[in] PVOID _context,
[in] HANDLE Handle
)
{...}
매개 변수
[in] _context
HDAUDIO_BUS_INTERFACE 컨텍스트 멤버 또는HDAUDIO_BUS_INTERFACE_V2구조체 의 컨텍스트 값을 지정합니다.
[in] Handle
DMA 엔진 식별을 처리합니다. 이 핸들 값은 AllocateCaptureDmaEngine 또는 AllocateRenderDmaEngine에 대한 이전 호출에서 가져옵니다.
반환 값
FreeDmaBuffer
는 호출이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 루틴은 적절한 오류 코드를 반환합니다. 다음 표에서는 가능한 반환 상태 코드 중 일부를 보여 줍니다.
반환 코드 | 설명 |
---|---|
|
호출자가 너무 높은 IRQL에서 실행 중임을 나타냅니다. |
|
핸들 매개 변수 값이 잘못되었음을 나타냅니다. |
|
스트림이 다시 설정 상태가 아니거나 현재 DMA 엔진에 대해 버퍼가 할당되지 않음을 나타냅니다. |
설명
루틴은 FreeDmaBuffer
AllocateDmaBuffer 루틴과 함께 사용됩니다. 이러한 두 루틴은 hd Audio DDI의 HDAUDIO_BUS_INTERFACE 버전에서만 사용할 수 있습니다. 이 DDI에는 AllocateDmaBuffer 및 와 함께 사용되지 않는 AllocateContiguousDmaBuffer, SetupDmaEngineWithBdl 및 FreeContiguousDmaBufferFreeDmaBuffer
루틴이 포함되지 않습니다. 이전에 할당된 DMA 버퍼를 사용하도록 DMA 엔진을 구성하는 SetupDmaEngineWithBdl과 달리 AllocateDmaBuffer 는 DMA 버퍼를 할당하고 버퍼를 사용하도록 DMA 엔진을 구성합니다.
루틴이 실패하고 다음 상황 중 하나에서 STATUS_INVALID_DEVICE_REQUEST 오류 코드를 반환합니다.
-
클라이언트는 현재 DMA 엔진에 대해 버퍼가 할당되지 않은 경우 를 호출
FreeDmaBuffer
합니다. - 스트림이 다시 설정이 아닌 상태에 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | hdaudio.h(Hdaudio.h 포함) |
IRQL | PASSIVE_LEVEL |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기