PFREE_DMA_BUFFER_WITH_NOTIFICATION 콜백 함수(hdaudio.h)

루틴은 FreeDmaBufferWithNotificationAllocateDmaBufferWithNotification 호출에 의해 이전에 할당된 DMA 버퍼를 해제합니다.

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

구문

PFREE_DMA_BUFFER_WITH_NOTIFICATION PfreeDmaBufferWithNotification;

NTSTATUS PfreeDmaBufferWithNotification(
  [in] PVOID _context,
  [in] HANDLE Handle,
  [in] PMDL BufferMdl,
  [in] SIZE_T BufferSize
)
{...}

매개 변수

[in] _context

HDAUDIO_BUS_INTERFACE_V2 구조체의 Context 멤버에서 컨텍스트 값을 지정합니다.

[in] Handle

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

[in] BufferMdl

버퍼 MDL에 대한 포인터입니다. 이 값은 AllocateDmaBufferWithNotification에 대한 이전 호출에서 가져옵니다.

[in] BufferSize

해제할 버퍼의 크기입니다. 이 값은 AllocateDmaBufferWithNotification에 대한 이전 호출에서 가져옵니다.

반환 값

FreeDmaBufferWithNotification 는 호출이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 는 FreeDmaBufferWithNotification 적절한 오류 코드를 반환합니다. 다음 표에서는 가능한 반환 오류 코드 중 일부를 보여 줍니다.

반환 코드 설명
STATUS_UNSUCCESSFUL
호출자가 너무 높은 IRQL에서 실행 중임을 나타냅니다.
STATUS_INVALID_HANDLE
핸들 매개 변수 값이 잘못되었음을 나타냅니다.
STATUS_INVALID_DEVICE_REQUEST
스트림이 다시 설정 상태가 아니거나 현재 DMA 엔진에 대해 버퍼가 할당되지 않음을 나타냅니다.

설명

FreeDmaBufferWithNotification 루틴은 AllocateDmaBufferWithNotification 루틴과 함께 사용됩니다. 이러한 두 루틴은 HD 오디오 DDI의 HDAUDIO_BUS_INTERFACE_V2 버전에서만 사용할 수 있습니다.

FreeDmaBufferWithNotification의 호출자는 IRQL PASSIVE_LEVEL 실행되어야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 및 이후 버전의 Windows에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 hdaudio.h(Hdaudio.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

AllocateCaptureDmaEngine

AllocateDmaBufferWithNotification

AllocateRenderDmaEngine

HDAUDIO_BUS_INTERFACE_V2