Несколько вопросов о процессах

Тема в разделе "WASM.WIN32", создана пользователем marlboro, 21 июн 2006.

  1. marlboro

    marlboro New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2005
    Сообщения:
    35
    1.

    Как узнать загрузку процессора конкретным процессом?

    Я думал так: вызвать ZwQuerySystemInformation с классом 0x05 два раза посчитать разности KernelTime, UserTime и т.д. Но так фигня какая-то выходит: Idle-98%, System-02%.

    2.

    Как получить список загруженных процессом модулей не используя Toolhelp, PSAPI, RtlQueryDebugProcessInformation?

    3.

    Как получить gdi объекты используемые процессом?
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.568
    Адрес:
    Russia
    На второй ворпрос ответ в ZwQuerySystemInformation c флагом SystemProcessesAndThreadsInformation. В Неббете есть пример реализации ToolHelp через эту технику.
     
  3. marlboro

    marlboro New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2005
    Сообщения:
    35
    Мне нужны не thread'ы а модули: dll, mappings, и т.п.
     
  4. marlboro

    marlboro New Member

    Публикаций:
    0
    Регистрация:
    26 июн 2005
    Сообщения:
    35
    А вот ещё вопрос:

    Есть такой код
    Код (Text):
    1.  
    2. BOOL ReadProcessPeb(DWORD dwProcessId, PPEB pPeb)
    3. {
    4.     PROCESS_BASIC_INFORMATION   pbi;
    5.     BOOL    bSuccess = FALSE;
    6.     HANDLE  hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, dwProcessId);
    7.     if(hProcess != INVALID_HANDLE_VALUE)
    8.     {
    9.         ZwQueryInformationProcess(hProcess, 0, &pbi, sizeof(pbi), NULL);
    10.         ReadProcessMemory(hProcess, pbi.PebBaseAddress, pPeb, sizeof(PEB), NULL);
    11.         CloseHandle(hProcess);
    12.         bSuccess = GetLastError() == ERROR_SUCCESS;
    13.     }
    14.     return bSuccess;
    15. }
    16.  


    И в принципе рабочий но на некоторых сервисах(svchost.exe wdfmgr.exe) требует чтобы были включены debug привилегии, не смотря на то что процесс открываеться, почему?
     
  5. Cyber_Mozg

    Cyber_Mozg Andrey

    Публикаций:
    0
    Регистрация:
    4 апр 2005
    Сообщения:
    214
    Адрес:
    Russia
    Мне больше кемел синий нравится ;)

    извените за флуд