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 |