IMiniportWaveRTStreamNotification::AllocateBufferWithNotification 메서드(portcls.h)
AllocateAudioBufferWithNotification
메서드는 DMA 기반 이벤트 알림을 구현하려는 경우 오디오 데이터에 대해 순환 버퍼를 할당합니다. 이벤트 알림을 원하지 않는 경우 IMiniportWaveRTStream::AllocateAudioBuffer사용해야 합니다.
통사론
NTSTATUS AllocateBufferWithNotification(
[in] ULONG NotificationCount,
[in] ULONG RequestedSize,
[out] PMDL *AudioBufferMdl,
[out] ULONG *ActualSize,
[out] ULONG *OffsetFromFirstPage,
[out] MEMORY_CACHING_TYPE *CacheType
);
매개 변수
[in] NotificationCount
버퍼 주기당 원하는 알림 수를 지정합니다. 유효한 값은 1 또는 2입니다. 여기서 1은 순환 버퍼의 끝에 단일 알림을 나타내고 2는 버퍼 주기당 두 개의 알림을 나타내며, 하나는 버퍼의 중간 지점에, 다른 하나는 끝에 있습니다.
[in] RequestedSize
오디오 버퍼의 요청된 크기(바이트)를 지정합니다.
[out] AudioBufferMdl
오디오 버퍼를 설명하는 메모리 설명자 목록(MDL)에 대한 출력 포인터입니다. 이 매개 변수는 메서드가 MDL에 포인터를 쓰는 호출자 할당 포인터 변수를 가리킵니다.
[out] ActualSize
할당된 버퍼의 실제 크기(바이트)에 대한 출력 포인터입니다. 이 매개 변수는 메서드가 크기 값을 쓰는 ULONG 변수를 가리킵니다.
[out] OffsetFromFirstPage
MDL의 첫 번째 페이지 시작부터 버퍼의 오프셋(바이트)에 대한 출력 포인터입니다. 이 매개 변수는 메서드가 오프셋 값을 쓰는 호출자 할당 ULONG 변수를 가리킵니다.
[out] CacheType
클라이언트가 오디오 버퍼에 대해 요청하는 캐싱 유형을 지정합니다. 이 매개 변수는 MEMORY_CACHING_TYPE 열거형 값입니다.
반환 값
AllocateBufferWithNotification
호출에 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 메서드가 적절한 오류 상태 코드를 반환합니다. 다음 표에서는 가능한 오류 상태 코드 중 일부를 보여 줍니다.
반환 코드 | 묘사 |
---|---|
|
드라이버는 지정된 버퍼 특성 조합을 지원하지 않습니다. |
|
버퍼를 할당하는 데 사용할 수 있는 메모리가 부족합니다. |
|
디바이스가 준비되지 않았습니다. |
발언
AllocateBufferWithNotification
메서드를 호출하여 포트 드라이버가 나중에 클라이언트의 가상 주소 공간에 매핑할 수 있는 순환 버퍼를 할당합니다.
AllocateBufferWithNotification
IMiniportWaveRTStream::AllocateAudioBuffer유사한 방식으로 작동합니다. 또한 AllocateBufferWithNotification
DMA 기반 이벤트 알림이 필요한 WaveRT 포트 드라이버를 식별하고 주기적 버퍼의 주기당 알림 수를 지정합니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 Windows 운영 체제에서 사용할 수 있습니다. |
대상 플랫폼 | 보편적 |
헤더 | portcls.h |
IRQL | 수동 수준입니다. |
참고 항목
IMiniportWaveRTStream::AllocateAudioBuffer
IMiniportWaveRTStreamNotification