이 here에 대해 비슷한 스레드가 있었는데 직접 구현하려고했습니다. 즉, C++ 라이브러리를 사용하여 서버에서 실행되는 스레드 수를 얻으려고합니다.Windows 서버의 스레드 수를 계산합니다. 카운터 경로
정확히 COUNTER_PATH이 무엇인지 알 수 있습니까? (예 : 주어진 \ link에서 "\ Process (* _) \ Thread Count")? 그것과 pid 번호로 문자열을 만드는 것이 무슨 뜻입니까?
다음은 정말 이해 아무것도하지 않고 지금까지 쓴 한 것입니다 :
#include <windows.h>
#include <pdh.h> //and suppose there're other libraries as necessary...
CONST PWSTR COUNTER_PATH = L"\Process(*)\Thread Count";
int returnNumThreads()
{
HQUERY hQuery = NULL;
HCOUNTER hCounter;
DWORD counterType;
PDH_FMT_COUNTERVALUE counterValue;
PWSTR Paths = NULL;
PDH_STATUS pdhStatus = PdhOpenQuery(NULL, 0, &hQuery);
pdhStatus = PdhAddCounter(hQuery, COUNTER_PATH, 0, &hCounter);
pdhStatus = PdhCollectQueryData(hQuery);
pdhStatus = PdhGetFormattedCounterValue(hCounter,
PDH_FMT_LONG,
&counterType,
&counterValue);
return counterValue.longValue;
}
// **Here, I removed all the error checking codes such as
// "if (pdhStatus != ERROR_SUCCESS){...}" for better readability
**는 또한, 링크에 주어진 솔루션은 위의 와일드 카드 경로를 확장 말한다,하지만 난 PdhAddCounter page을 선택한 경우, "카운터 경로에 와일드 카드 문자가 포함되어 있으면 와일드 카드 문자와 일치하는 모든 카운터 이름이 쿼리에 추가됩니다."그래서 확장이 실제로 필요한지 확실하지 않았습니다.
나는 variousexamples을보고 있었지만 쿼리를 올바르게 작성하고 있는지 또는 여전히 그 COUNTER_PATH가 무엇인지 확실하지 않습니다. 아무도 나에게 설명을 줄 수 있니?
입니다. 'PdhAddEnglishCounter'를 원할 것입니다 .'PhadAdcounter '를 꿈꾸며 담배를 피우고 싶지 않을 것입니다. – MSalters