IPortWaveRTStream::MapAllocatedPages 메서드(portcls.h)

메서드는 MapAllocatedPages 이전에 할당된 물리적 페이지 목록을 커널 모드에서 액세스할 수 있는 연속된 가상 메모리 블록에 매핑합니다.

구문

PVOID MapAllocatedPages(
  [in] PMDL                MemoryDescriptorList,
  [in] MEMORY_CACHING_TYPE CacheType
);

매개 변수

[in] MemoryDescriptorList

매핑될 MDL(메모리 설명자 목록)에 대한 포인터입니다. MDL은 IPortWaveRTStream::AllocatePagesForMdl 또는 IPortWaveRTStream::AllocateContiguousPagesForMdl을 호출하여 할당할 수 있습니다.

[in] CacheType

캐시 유형을 지정합니다. 이 매개 변수를 다음 MEMORY_CACHING_TYPE 열거형 값 중 하나로 설정합니다. MmNonCached, MmCached 또는 MmWriteCombined.

반환 값

MapAllocatedPages 는 가상 메모리에 매핑된 버퍼의 시작 주소를 반환합니다. 메서드가 버퍼를 매핑할 수 없는 경우 NULL을 반환합니다.

설명

Windows 오디오 스택은 버퍼에 대한 메모리 액세스 맞춤 요구 사항을 표현하는 메커니즘을 지원하지 않으므로 오디오 드라이버는 플랫폼별 맞춤 요구 사항을 적용하지 않는 매핑된 메모리 버퍼에 대한 캐싱 유형을 선택해야 합니다. 즉, 매핑된 메모리 버퍼에 대해 오디오 드라이버에서 사용하는 캐싱 형식은 특정 플랫폼에 대한 메모리 맞춤 요구 사항을 가정해서는 안 됩니다.

이 메서드는 MDL의 실제 메모리 페이지를 커널 모드 가상 메모리에 매핑합니다. 일반적으로 미니포트 드라이버는 오디오 버퍼에 대한 분산형 수집 목록에 소프트웨어 액세스가 필요한 경우 이 메서드를 호출합니다. 이 경우 분산형 수집 목록에 대한 스토리지는 IPortWaveRTStream::AllocatePagesForMdl 또는 IPortWaveRTStream::AllocateContiguousPagesForMdl 메서드에 의해 할당되어야 합니다.

WaveRT 미니포트 드라이버는 오디오 버퍼 자체에 대한 소프트웨어 액세스가 필요하지 않습니다.

MapAllocatedPagesMmMapLockedPagesSpecifyCache 함수와 유사합니다. 미니포트 드라이버는 메모리를 해제하기 전에 매핑 해제를 담당합니다. 자세한 내용은 IPortWaveRTStream::UnmapAllocatedPages를 참조하세요.

요구 사항

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

추가 정보

IPortWaveRTStream

IPortWaveRTStream::AllocateContiguousPagesForMdl

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::UnmapAllocatedPages

Mdl

MEMORY_CACHING_TYPE

MmMapLockedPagesSpecifyCache