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


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

Извлекает сведения о страницах, добавленных в рабочий набор указанного процесса.

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

Синтаксис

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

Параметры

[in] hProcess

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

[out] pv

Указатель на буфер, который получает сведения. Дополнительные сведения см. в разделе PSAPI_WORKING_SET_INFORMATION.

Если буфер, на который указывает параметр pv, недостаточно велик, чтобы содержать все записи рабочего набора для целевого процесса, функция завершается сбоем с ERROR_BAD_LENGTH. В этом случае элементу NumberOfEntriesструктуры PSAPI_WORKING_SET_INFORMATION присваивается необходимое количество записей, но функция не возвращает сведения о записях рабочего набора.

[in] cb

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

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

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

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

Комментарии

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

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

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа 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_INFORMATION

QueryWorkingSetEx

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