MmAllocateContiguousMemoryEx 함수(wdm.h)

MmAllocateContiguousMemoryEx 함수는 물리적으로 연속된 페이징되지 않은 메모리 범위를 할당하고 해당 가상 주소를 반환합니다.

구문

NTSTATUS MmAllocateContiguousMemoryEx(
  [in]           PSIZE_T          NumberOfBytes,
  [in]           PHYSICAL_ADDRESS LowestAcceptableAddress,
  [in]           PHYSICAL_ADDRESS HighestAcceptableAddress,
  [in]           PHYSICAL_ADDRESS BoundaryAddressMultiple,
  [in]           NODE_REQUIREMENT PreferredNode,
  [in]           ULONG            Protect,
  [in, optional] PVOID            PartitionObject,
  [in]           ULONG            Tag,
  [in]           ULONG            Flags,
  [out]          PVOID            *BaseAddress
);

매개 변수

[in] NumberOfBytes

항목에서 할당할 바이트 수를 제공합니다. 반환이 성공하면 할당된 금액을 받습니다.

[in] LowestAcceptableAddress

할당에 유효한 가장 낮은 실제 주소를 제공합니다. 예를 들어 디바이스가 8M에서 16MB 범위의 실제 메모리만 참조할 수 있는 경우 이 값은 0x800000(8Mb)로 설정됩니다.

[in] HighestAcceptableAddress

할당에 유효한 가장 높은 실제 주소를 제공합니다. 예를 들어 디바이스에서 16MB 미만의 실제 메모리만 참조할 수 있는 경우 이 값은 0xFFFFFF(16Mb - 1)로 설정됩니다.

[in] BoundaryAddressMultiple

이 할당이 교차하지 않아야 하는 여러 물리적 주소를 제공합니다.

[in] PreferredNode

해당 노드에서 페이지를 사용할 수 있는 경우 할당해야 하는 기본 노드를 제공합니다. MM_ANY_NODE_OK 노드 기본 설정을 나타내는 데 사용됩니다.

[in] Protect

매핑에 필요한 보호(캐시 유형 포함)를 제공합니다.

[in, optional] PartitionObject

지정한 경우 실제 메모리를 할당할 파티션 개체를 제공합니다. 지정하지 않으면 메모리가 시스템 파티션에서 제공됩니다.

[in] Tag

할당에 대한 태그를 제공합니다.

[in] Flags

다양한 플래그:

  • MM_ALLOCATE_CONTIGUOUS_MEMORY_FAST_ONLY - 신속하게 만족할 수 있는 경우에만 원하는 연속 메모리를 할당합니다. 할당을 충족하기 위해 장기간의 실제 메모리 검색 및 거래가 이뤄져야 하는 경우 실패합니다.

[out] BaseAddress

성공하면 연속 메모리의 기본 가상 주소를 받습니다.

반환 값

NTSTATUS 코드를 반환합니다.

설명

이 메모리는 MmFreeContiguousMemory를 사용하여 해제해야 합니다.

요구 사항

   
지원되는 최소 서버 Windows Server 2022
헤더 wdm.h
IRQL <= DISPATCH_LEVEL

참고 항목

MmFreeContiguousMemory