Поделиться через


Функция QueryWorkingSetEx (psapi.h)

Извлекает расширенные сведения о страницах по определенным виртуальным адресам в адресном пространстве указанного процесса.

Синтаксис

BOOL QueryWorkingSetEx(
  [in]      HANDLE hProcess,
  [in, out] PVOID  pv,
  [in]      DWORD  cb
);

Параметры

[in] hProcess

Дескриптор процесса. Дескриптор должен иметь право доступа к PROCESS_QUERY_INFORMATION . Дополнительные сведения см. в разделе Управление правами на доступ и безопасность процесса.

[in, out] pv

Указатель на массив PSAPI_WORKING_SET_EX_INFORMATION структур. На входных данных каждый элемент в массиве задает интересующий виртуальный адрес. В выходных данных каждый элемент в массиве получает сведения о соответствующей виртуальной странице.

[in] cb

Размер буфера pv в байтах.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

В отличие от функции QueryWorkingSet , которая ограничена рабочим набором целевого процесса, функцию QueryWorkingSetEx можно использовать для запроса адресов, которые не входят в рабочий набор процесса, но по-прежнему являются частью процесса, например AWE и больших страниц.

Начиная с Windows 7 и Windows Server 2008 R2, Psapi.h устанавливает номера версий для функций PSAPI. Номер версии PSAPI влияет на имя, используемое для вызова функции, и библиотеку, которую должна загрузить программа.

Если PSAPI_VERSION имеет значение 2 или больше, эта функция определяется как K32QueryWorkingSetEx в Psapi.h и экспортируется в Kernel32.lib и Kernel32.dll. Если PSAPI_VERSION равно 1, эта функция определяется как QueryWorkingSetEx в Psapi.h и экспортируется в Psapi.lib и Psapi.dll как оболочка, которая вызывает K32QueryWorkingSetEx.

Программы, которые должны работать в более ранних версиях Windows, а также Windows 7 и более поздних версиях, всегда должны вызывать эту функцию как QueryWorkingSetEx. Чтобы обеспечить правильное разрешение символов, добавьте Psapi.lib в макрос TARGETLIBS и скомпилируйте программу с "–DPSAPI_VERSION=1". Чтобы использовать динамическое связывание во время выполнения, загрузите Psapi.dll.

Примеры

Пример см. в разделе Выделение памяти из узла NUMA.

Требования

Требование Значение
Минимальная версия клиента Windows Vista, Windows XP Professional x64 Edition [только классические приложения]
Минимальная версия сервера Windows Server 2008, Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения]
Целевая платформа Windows
Header psapi.h
Библиотека Kernel32.lib в Windows 7 и Windows Server 2008 R2; Psapi.lib (если PSAPI_VERSION=1) в Windows 7 и Windows Server 2008 R2; Psapi.lib в Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP
DLL Kernel32.dll в Windows 7 и Windows Server 2008 R2; Psapi.dll (если PSAPI_VERSION=1) в Windows 7 и Windows Server 2008 R2; Psapi.dll в Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP

См. также раздел

EnumProcesses

Функции PSAPI

PSAPI_WORKING_SET_EX_INFORMATION

Сведения о рабочем наборе