Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Странные счётчики в функции PdhBrowseCounters


Автор: borisbn 6.11.2010, 12:12
Добрый день.
Столкнулся с такой проблемой: в программе необходимо отображать загрузку процессора. Использую для этого функции Pdh_xxx. Есть 3 сервера (Windows Server 2003 SP 2 RUS, Windows Server 2003 EN и Windows Server 2003 SP 1 EN ). На первых двух при вызове функции PdhBrowseCounters выдаются нормальные названия счётчиков, а на 3-м какие-то цифры ( см. рисунок )

user posted image
Windows Server 2003 SP 2 RUS
user posted image
Windows Server 2003 EN
user posted image
Windows Server 2003 SP 1 EN

Не могу понять, что я не так делаю?
Вот код вызова:
Код

#include <windows.h>
#include <Psapi.h>
#include <pdh.h>

#pragma comment( lib, "Pdh.lib" )


int main()
{
    char tmp[ 1024 ];
    //PDH_BROWSE_DLG_CONFIG_A BrowseDlgData;
    PDH_BROWSE_DLG_CONFIG BrowseDlgData;
    ZeroMemory(&BrowseDlgData, sizeof(PDH_BROWSE_DLG_CONFIG));
    // Initialize the browser dialog window settings.
    BrowseDlgData.bIncludeInstanceIndex = FALSE;
    BrowseDlgData.bSingleCounterPerAdd = TRUE;
    BrowseDlgData.bSingleCounterPerDialog = TRUE;
    BrowseDlgData.bLocalCountersOnly = FALSE;
    BrowseDlgData.bWildCardInstances = TRUE;
    BrowseDlgData.bHideDetailBox = TRUE;
    BrowseDlgData.bInitializePath = FALSE;
    BrowseDlgData.bDisableMachineSelection = FALSE;
    BrowseDlgData.bIncludeCostlyObjects = FALSE;
    BrowseDlgData.bReserved = TRUE;
    BrowseDlgData.hWndOwner = NULL;
    BrowseDlgData.bReserved = FALSE;
    BrowseDlgData.szReturnPathBuffer = (LPWSTR)tmp; //NULL;
    BrowseDlgData.cchReturnPathLength = 1024;//0;
    BrowseDlgData.pCallBack = NULL;
    BrowseDlgData.dwCallBackArg = 0;
    BrowseDlgData.CallBackStatus = ERROR_SUCCESS;
    BrowseDlgData.dwDefaultDetailLevel = PERF_DETAIL_WIZARD;
    BrowseDlgData.szDialogBoxCaption = L"Select a counter to monitor.";

    PdhBrowseCounters(&BrowseDlgData);
}

Автор: leniviy 6.11.2010, 13:27
а если зайти на 3-й сервер по remote desktop , как это окошко будет выглядеть там?

Автор: borisbn 6.11.2010, 15:45
leniviy, как раз по RDP и захожу на все три сервера. Зайти локально нет возможности ( они удалены на 15 км )

Автор: leniviy 6.11.2010, 15:55
Тогда проблема не в коде, а в сервере. Ведь это окошко можно вызвать и через консоль управления.

Автор: borisbn 6.11.2010, 18:23
Цитата(leniviy @  6.11.2010,  15:55 Найти цитируемый пост)
Тогда проблема не в коде, а в сервере

Почти наверняка, потому, что на 2-х других ( совершенно разных: rus+sp2 и en без sp ) работает

Цитата(leniviy @  6.11.2010,  15:55 Найти цитируемый пост)
Ведь это окошко можно вызвать и через консоль управления.

не подскажешь как ?

Автор: borisbn 7.11.2010, 09:46
Народ !!! Есть ещё идеи ? Оч. нужно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)