#include    
#include    
#include    
#include    
#pragma comment( lib, "psapi")   

void PrintMemoryInfo ( DWORD processID )   
{   
    HANDLE hProcess;   
    PROCESS_MEMORY_COUNTERS pmc;   
       
    // Print the process identifier.  
    printf( "\nProcess ID: %u\n", processID );   
       
    // Print information about the memory usage of the process.   
    hProcess = OpenProcess (  PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID );   
    if ( NULL == hProcess )   
        return;   
       
    if ( GetProcessMemoryInfo ( hProcess, &pmc, sizeof(pmc) ) )   
    {   
        printf( "\t PageFaultCount: %d\n", pmc.PageFaultCount);   
        printf( "\t PeakWorkingSetSize:  %d KB\n", pmc.PeakWorkingSetSize/1024);
        printf( "\t WorkingSetSize:  %d KB\n", pmc.WorkingSetSize/1024);   
        printf( "\t QuotaPeakPagedPoolUsage:  %d KB\n", pmc.QuotaPeakPagedPoolUsage /1024);   
        printf( "\t QuotaPagedPoolUsage:  %d KB\n", pmc.QuotaPagedPoolUsage /1024);   
        printf( "\t QuotaPeakNonPagedPoolUsage:  %d KB\n", pmc.QuotaPeakNonPagedPoolUsage /1024);   
        printf( "\t QuotaNonPagedPoolUsage:  %d KB\n", pmc.QuotaNonPagedPoolUsage /1024);   
        printf( "\t PagefileUsage:  %d KB\n", pmc.PagefileUsage /1024);    
        printf( "\t PeakPagefileUsage:  %d KB\n", pmc.PeakPagefileUsage /1024);   
    }   
       
    CloseHandle ( hProcess );   
}   
//////////////////////////////////////////////////////////////////////////////////////////////
int main( )   
{   
    // Get the list of process identifiers.
    DWORD aProcesses[1024], cbNeeded, cProcesses;   
    unsigned int i;   
       
    if ( !EnumProcesses ( aProcesses, sizeof(aProcesses), &cbNeeded ) )   
        return 1;   
       
    // Calculate how many process identifiers were returned.   
    cProcesses = cbNeeded / sizeof(DWORD);   
       
    // Print the memory usage for each process
    for ( i = 0; i < cProcesses; i++ )   
        PrintMemoryInfo ( aProcesses[i] );   
       
    system("pause");   
    return 0;   
}
//////////////////////////////////////////////////////////////////////////////////////////////

'Source' 카테고리의 다른 글

nativeAPI.h  (0) 2011.12.09
psapi.h  (0) 2011.12.08
프로세스 절대 경로  (0) 2011.12.08
현재 실행중인 Process  (0) 2011.11.30
HideProcess  (0) 2011.11.30

+ Recent posts