AllocateUserPhysicalPagesNuma 함수(memoryapi.h)

지정된 프로세스의 AWE( 주소 창 확장 ) 영역 내에서 매핑 및 매핑 해제할 실제 메모리 페이지를 할당하고 실제 메모리에 대한 NUMA 노드를 지정합니다.

구문

BOOL AllocateUserPhysicalPagesNuma(
  [in]      HANDLE     hProcess,
  [in, out] PULONG_PTR NumberOfPages,
  [out]     PULONG_PTR PageArray,
  [in]      DWORD      nndPreferred
);

매개 변수

[in] hProcess

프로세스에 대한 핸들입니다.

함수는 나중에 이 프로세스의 가상 주소 공간 내에서 매핑할 수 있는 메모리를 할당합니다. 핸들에 PROCESS_VM_OPERATION 액세스 권한이 있어야 합니다. 자세한 내용은 프로세스 보안 및 액세스 권한을 참조하세요.

[in, out] NumberOfPages

할당할 실제 메모리의 크기(페이지)입니다.

컴퓨터의 페이지 크기를 확인하려면 GetSystemInfo 함수를 사용합니다. 출력에서 이 매개 변수는 실제로 할당된 페이지 수를 수신하며, 이는 요청된 수보다 적을 수 있습니다.

[out] PageArray

할당된 메모리의 페이지 프레임 번호를 저장할 배열에 대한 포인터입니다.

할당된 배열의 크기는 NumberOfPages 의 크기가 ULONG_PTR 데이터 형식의 크기 이상이어야 합니다.

주의 이 버퍼를 수정하지 마세요. 여기에는 운영 체제 데이터가 포함되어 있으며 손상은 치명적일 수 있습니다. 버퍼의 정보는 애플리케이션에 유용하지 않습니다.
 

[in] nndPreferred

실제 메모리가 상주해야 하는 NUMA 노드입니다.

반환 값

함수가 성공하면 반환 값은 TRUE입니다.

요청된 것보다 적은 수의 페이지를 할당할 수 있습니다. 호출자는 할당된 페이지 수를 확인하려면 반환 시 NumberOfPages 매개 변수 값을 검사 합니다. 할당된 모든 페이지 프레임 번호는 PageArray 매개 변수가 가리키는 메모리에 순차적으로 배치됩니다.

함수가 실패하면 반환 값은 FALSE 이고 프레임이 할당되지 않습니다. 확장 오류 정보를 가져오려면 GetLastError 함수를 호출합니다.

설명

AllocateUserPhysicalPagesNuma 함수는 나중에 프로세스의 가상 주소 공간 내에서 매핑할 수 있는 NUMA 노드 내에서 실제 메모리를 할당하는 데 사용됩니다. SeLockMemoryPrivilege 권한은 호출자의 토큰에서 사용하도록 설정해야 합니다. 그렇지 않으면 함수가 ERROR_PRIVILEGE_NOT_HELD 함께 실패합니다. 자세한 내용은 권한 상수를 참조하세요.

이 함수에 의해 할당된 메모리는 시스템에 물리적으로 있어야 합니다. 메모리가 할당된 후에는 잠기고 나머지 가상 메모리 관리 시스템에서는 사용할 수 없습니다.

물리적 페이지는 둘 이상의 가상 주소에서 동시에 매핑할 수 없습니다.

실제 페이지는 모든 실제 주소에 상주할 수 있습니다. 실제 페이지의 구성에 대해 가정해서는 안 됩니다.

이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 0x0600 이상으로 정의합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 memoryapi.h(Windows.h, Memoryapi.h 포함)
라이브러리 onecore.lib
DLL Kernel32.dll

참고 항목

주소 창 확장

AllocateUserPhysicalPages

FreeUserPhysicalPages

메모리 관리 함수

NUMA 지원