윈도우 O.S 에는 현재 시스템의 상태를 모니터링 할 수 있는 성능 모니터라는 어플리케이션이 존재합니다.
이 어플리케이션은 하드웨어단위의 사용상태 및 프로세스 단위의 현재 상태 정보 등을 알 수 있습니다.
PDH 함수를 사용하면 이런 성능데이터를 개발자의 어플리케이션에 수집할 수 있습니다.
PDH 함수를 사용하여 성능 데이터를 수집하는 방법은 다음과 같습니다.
쿼리 생성
1: PDH_STATUS PdhOpenQuery(2: __in LPCTSTR szDataSource,3: __in DWORD_PTR dwUserData,4: __out PDH_HQUERY *phQuery5: );
쿼리에 카운터 추가
1: PDH_STATUS PdhAddCounter(2: __in PDH_HQUERY hQuery,3: __in LPCTSTR szFullCounterPath,4: __in DWORD_PTR dwUserData,5: __out PDH_HCOUNTER *phCounter6: );
성능 데이터 수집
1: PDH_STATUS PdhCollectQueryData(2: __inout PDH_HQUERY hQuery3: );
성능 데이터를 출력가능한 데이터로 계산
1: PDH_STATUS PdhGetFormattedCounterValue(2: __in PDH_HCOUNTER hCounter,3: __in DWORD dwFormat,4: __out LPDWORD lpdwType,5: __out PPDH_FMT_COUNTERVALUE pValue6: );
쿼리 해제
1: PDH_STATUS PdhCloseQuery(2: __in PDH_HQUERY hQuery3: );
위 다섯가지의 순서로 진행되며, 성능데이터 수집 및 출력가능한 데이터로 가공하는 부분을 반복적으로 진행하게되면 계속적인 데이터 수집이 가능합니다.
위 순서는 기본적인 방법만을 나열한 것이며, 수집을 위한 여러가지 방법이 있습니다. 자세한 내용은 출처를 따라가 보시면 방법이 있습니다.
Posts