Функция AllocateUserPhysicalPages2 (memoryapi.h)
Выделяет страницы физической памяти для сопоставления и отмены сопоставления в любой области расширений адресного окна (AWE) указанного процесса с расширенными параметрами.
Синтаксис
BOOL AllocateUserPhysicalPages2(
[in] HANDLE ObjectHandle,
[in,out] PULONG_PTR NumberOfPages,
[out] PULONG_PTR PageArray,
[in,out] PMEM_EXTENDED_PARAMETER ExtendedParameters,
[in] ULONG ExtendedParameterCount
);
Параметры
[in] ObjectHandle
Дескриптор процесса.
Функция выделяет память, которая впоследствии может быть сопоставлена в виртуальном адресном пространстве этого процесса. Дескриптор должен иметь право доступа PROCESS_VM_OPERATION . Дополнительные сведения см. в разделе Обработка прав на безопасность и доступ.
[in,out] NumberOfPages
Размер выделяемой физической памяти в страницах.
Чтобы определить размер страницы компьютера, используйте функцию GetSystemInfo . В выходных данных этот параметр получает количество фактически выделенных страниц, которое может быть меньше запрошенного числа.
[out] PageArray
Указатель на массив для хранения номеров кадров страниц выделенной памяти.
Размер выделенного массива должен быть не меньше , чем NumberOfPages , раз больше размера ULONG_PTR типа данных.
Не пытайтесь изменить этот буфер. Он содержит данные операционной системы, и повреждение может привести к катастрофическим последствиям. Сведения в буфере не являются полезными для приложения.
[in,out] ExtendedParameters
Указатель на массив MEM_EXTENDED_PARAMETER структур.
[in] ExtendedParameterCount
Число MEM_EXTENDED_PARAMETER в массиве ExtendedParameters .
Возвращаемое значение
Если функция выполняется успешно, возвращается значение TRUE.
Можно выделить меньше страниц, чем запрошено. Вызывающий объект должен проверка значение параметра NumberOfPages при возврате, чтобы узнать, сколько страниц выделено. Все выделенные номера кадров страниц последовательно помещаются в память, на которую указывает параметр UserPfnArray .
Если функция завершается сбоем, возвращается значение FALSE и кадры не выделяются. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Функция AllocateUserPhysicalPages2 аналогична функции AllocateUserPhysicalPages , но добавляет параметры ExtendedParameters и ExtendedParameterCount .
Функция AllocateUserPhysicalPages2 используется для выделения физической памяти, которая впоследствии может быть сопоставлена в виртуальном адресном пространстве процесса. Привилегия SeLockMemoryPrivilege должна быть включена в маркере вызывающего объекта, иначе функция завершится сбоем с ERROR_PRIVILEGE_NOT_HELD. Дополнительные сведения см. в разделе Константы привилегий.
Память, выделенная этой функцией, должна физически присутствовать в системе. После выделения памяти она блокируется и недоступна для остальной части системы управления виртуальной памятью.
Физические страницы не могут одновременно сопоставляться по нескольким виртуальным адресам.
Физические страницы могут находиться по любому физическому адресу. Не следует делать никаких предположений о непрерывности физических страниц.
Требования
Минимальная версия клиента | Windows 11, сборка 20348 |
Минимальная версия сервера | Windows Server, сборка 20348 |
Верхняя часть | memoryapi.h |
Библиотека | onecore.lib |
DLL | kernelbase.dll |