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

関連項目

プロセスのワーキング セット

処理

SetProcessWorkingSetSize 関数

SetProcessWorkingSetSizeEx 関数