GetProcessWorkingSetSize 関数 (memoryapi.h)
指定したプロセスのワーキング セットの最小サイズと最大サイズを取得します。
構文
BOOL GetProcessWorkingSetSize(
[in] HANDLE hProcess,
[out] PSIZE_T lpMinimumWorkingSetSize,
[out] PSIZE_T lpMaximumWorkingSetSize
);
パラメーター
[in] hProcess
ワーキング セットサイズが取得されるプロセスのハンドル。 ハンドルには、PROCESS_QUERY_INFORMATIONまたは PROCESS_QUERY_LIMITED_INFORMATION アクセス権 が 必要です。 詳細については、「 セキュリティとアクセス権の処理」を参照してください。
Windows Server 2003 および Windows XP: ハンドルには 、PROCESS_QUERY_INFORMATION アクセス権が必要です。
[out] lpMinimumWorkingSetSize
指定したプロセスの最小ワーキング セット サイズ (バイト単位) を受け取る変数へのポインター。 仮想メモリ マネージャーは、プロセスがアクティブなときは常に、少なくともこの量のメモリをプロセス内に保持しようとします。
[out] lpMaximumWorkingSetSize
指定したプロセスの最大ワーキング セット サイズをバイト単位で受け取る変数へのポインター。 仮想メモリ マネージャーは、メモリが不足している場合にプロセスがアクティブなときは常に、この数以下のメモリをプロセス内に保持しようとします。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
プロセスの "ワーキング セット" は、物理 RAM メモリ内のプロセスに現在表示されているメモリ ページのセットです。 これらのページは常駐しており、ページ フォールトをトリガーすることなくアプリケーションから使用できます。 ワーキング セットの最小サイズと最大サイズは、プロセスの仮想メモリのページング動作に影響します。
例
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
SIZE_T dwMin, dwMax;
HANDLE hProcess;
if (argc != 2)
{
printf("This program requires a process ID as an argument.\n");
return 1;
}
// Retrieve a handle to the process.
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION,
FALSE, atoi(argv[1]));
if (!hProcess)
{
printf( "OpenProcess failed (%d)\n", GetLastError() );
return 1;
}
// Retrieve the working set size of the process.
if (!GetProcessWorkingSetSize(hProcess, &dwMin, &dwMax))
{
printf("GetProcessWorkingSetSize failed (%d)\n",
GetLastError());
return 1;
}
printf("Process ID: %d\n", atoi(argv[1]));
printf("Minimum working set: %lu KB\n", dwMin/1024);
printf("Maximum working set: %lu KB\n", dwMax/1024);
CloseHandle(hProcess);
return 0;
}
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ヘッダー | memoryapi.h |
Library | onecore.lib |
[DLL] | Kernel32.dll |