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

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

비트 번호 의미
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으로 설정합니다. IOC 인터럽트가 발생했다고 가정하는 대신 ISR은 항상 interruptBitMask 매개 변수를 검사 스트림 오류가 발생했는지 여부를 확인해야 합니다. 앞의 표에 표시된 인터럽트 상태 비트에 대한 자세한 내용은 Intel 고화질 오디오 사양의 스트림 상태 레지스터에 대한 설명을 참조하세요.

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

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

반환 값

없음

설명

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

요구 사항

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

추가 정보

PSETUP_DMA_ENGINE_WITH_BDL

hdaudio.h