다음을 통해 공유


폴링으로 데이터 블록 관리

[이 페이지와 연결된 기능인 Waveform Audio는 레거시 기능입니다. WASAPI오디오 그래프로 대체되었습니다. WASAPI오디오 그래프는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 파형 오디오 대신 WASAPI오디오 그래프를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

콜백 함수를 사용하는 것 외에도 WAVEHDR 구조의 dwFlags 멤버를 폴링하여 오디오 디바이스가 데이터 블록으로 완료되는 시기를 확인할 수 있습니다. 드라이버에서 메시지를 받는 다른 메커니즘을 기다리는 것보다 dwFlags 를 폴링하는 것이 더 좋은 경우가 있습니다. 예를 들어 waveOutReset 함수를 호출하여 보류 중인 데이터 블록을 해제한 후 waveOutUnprepareHeader 를 호출하고 데이터 블록에 대한 메모리를 해제하기 전에 데이터 블록이 해제되었는지 즉시 폴링할 수 있습니다.

WHDR_DONE 플래그를 사용하여 dwFlags 멤버를 테스트할 수 있습니다. WAVEHDR 구조체의 dwFlags 멤버에 WHDR_DONE 플래그가 설정되는 즉시 드라이버가 데이터 블록으로 완료됩니다.