다음을 통해 공유


PHDAUDIO_BDL_ISR 콜백 함수(hdaudio.h)

HDAudioBdlIsr 루틴은 스트림에서 IOC 인터럽트를 수행할 때마다 HD 오디오 버스 드라이버가 호출하는 ISR입니다. PHDAUDIO_BDL_ISR 형식의 함수 포인터이며 다음과 같이 정의됩니다.

통사론

PHDAUDIO_BDL_ISR PhdaudioBdlIsr;

void PhdaudioBdlIsr(
  [in] VOID *Context,
  [in] ULONG InterruptBitMask
)
{...}

매개 변수

[in] Context

HD 오디오 버스 드라이버는 이전 SetupDmaEngineWithBdl 호출의 컨텍스트 매개 변수에 클라이언트가 지정한 것과 동일한 컨텍스트 값으로 ISR을 호출합니다. 자세한 내용은 PSETUP_DMA_ENGINE_WITH_BDL참조하세요.

[in] InterruptBitMask

인터럽트BitMask 매개 변수에는 인터럽트 이유를 나타내는 HD 오디오 컨트롤러 디바이스의 스트림 상태 레지스터의 비트가 포함되어 있습니다. 다음 표에서는 인터럽트BitMask에서 개별 비트의 의미를 보여 줍니다.

비트 번호 의미
31:5 하지 않는.
4 DESE(설명자 오류)입니다. 버퍼 설명자를 가져오는 동안 오류가 발생하면 HD 오디오 컨트롤러는 DESE 비트를 1로 설정합니다.
3 FIFO 오류(FIFOE). FIFO 오류가 발생하는 경우(출력 스트림에서 오버런 또는 입력 스트림의 언더런) HD 오디오 컨트롤러는 FIFOE 비트를 1로 설정합니다.
2 BCIS(버퍼 완료 인터럽트 상태). IOC 비트가 버퍼 설명자의 명령 바이트에서 1로 설정된 경우 HD 오디오 컨트롤러는 버퍼의 마지막 샘플이 처리된 후 BCIS 비트를 1로 설정합니다.
1:0 하지 않는.

HD 오디오 버스 드라이버는 사용되지 않는 비트를 0으로 설정합니다. ISR은 IOC 인터럽트가 발생했다고 가정하는 대신 항상 인터럽트BitMask 매개 변수를 확인하여 스트림 오류가 발생했는지 여부를 확인해야 합니다. 이전 표에 표시된 인터럽트 상태 비트에 대한 자세한 내용은 Intel 고화질 오디오 사양의 스트림 상태 레지스터에 대한 설명을 참조하세요.

FIFO 크기는 DMA 엔진이 내부 버퍼에 한 번에 보유할 수 있는 최대 바이트 수입니다.

하드웨어 구현에 따라 DMA 엔진의 FIFO 크기는 정적이거나 스트림 형식의 변경 내용에 따라 동적으로 달라질 수 있습니다. FIFO 크기에 대한 자세한 내용은 Intel 고화질 오디오 사양을 참조하세요.

반환 값

없음

발언

호출자는 비페이지 풀에서 버퍼 메모리 및 BDL을 할당해야 합니다.

요구 사항

요구
대상 플랫폼 바탕 화면
헤더 hdaudio.h(Hdaudio.h 포함)
IRQL DIRQL

참고 항목

PSETUP_DMA_ENGINE_WITH_BDL

hdaudio.h