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 반환합니다. 그렇지 않으면 메서드가 적절한 오류 상태 코드를 반환합니다. 다음 표에서는 코드에 상태 가능한 오류 중 일부를 보여 줍니다.

반환 코드 설명
STATUS_UNSUCCESSFUL
드라이버는 버퍼 특성의 지정된 조합을 지원하지 않습니다.
STATUS_INSUFFICIENT_RESOURCES
버퍼를 할당하는 데 사용할 수 있는 메모리가 부족합니다.
STATUS_DEVICE_NOT_READY
디바이스가 준비되지 않았습니다.

설명

참고 Intel 고화질 오디오 코덱용 미니포트는 캐시 일관성을 보장하기 위해 MmWriteCombined의 CacheType을 지정해야 합니다. Intel 고화질 오디오 컨트롤러가 스눕이 아닌 작업에 대해 구성될 수 있기 때문입니다.
 
클라이언트에서 KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION 요청을 받은 후 포트 드라이버는 메서드를 호출 AllocateBufferWithNotification 하여 포트 드라이버가 나중에 클라이언트의 가상 주소 공간에 매핑할 수 있는 순환 버퍼를 할당합니다. AllocateBufferWithNotificationIMiniportWaveRTStream::AllocateAudioBuffer와 유사한 방식으로 작동합니다. 또한 DMA AllocateBufferWithNotification 기반 이벤트 알림이 필요한 WaveRT 포트 드라이버를 식별하고, 주기 버퍼의 주기당 알림 수를 지정합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 portcls.h
IRQL 수동 수준입니다.

추가 정보

IMiniportWaveRTStream::AllocateAudioBuffer

IMiniportWaveRTStreamNotification

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION

Mdl

MEMORY_CACHING_TYPE