home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / sdktools / winnt / perfmon / perfdata.h < prev    next >
Text File  |  1994-10-13  |  5KB  |  184 lines

  1.  
  2. #define dwPerfDataIncrease       0x1000
  3.  
  4. #define AllocatePerfData()      (MemoryAllocate (STARTING_SYSINFO_SIZE))
  5.  
  6. // Messages for the perf data collection thread
  7. #define WM_GET_PERF_DATA (WM_USER + 102)
  8. #define WM_FREE_SYSTEM   (WM_USER + 103)
  9.  
  10. // State for perf data collection
  11. #define WAIT_FOR_PERF_DATA    0x0010
  12. #define PERF_DATA_READY       0x0011
  13. #define PERF_DATA_FAIL        0x0012
  14. #define IDLE_STATE            0x0013
  15.  
  16.  
  17. //==========================================================================//
  18. //                                   Macros                                 //
  19. //==========================================================================//
  20.  
  21.  
  22. #define IsLocalComputer(a) (!lstrcmp(a,LocalComputerName))
  23. #define IsRemoteComputer(a) (!IsLocalComputer(a))
  24.  
  25.  
  26. //==========================================================================//
  27. //                             Exported Functions                           //
  28. //==========================================================================//
  29.  
  30. #if 0
  31. PPERFOBJECT FirstObject (PPERFDATA pPerfData) ;
  32.  
  33. PPERFOBJECT NextObject (PPERFOBJECT pObject) ;
  34.  
  35. PERF_COUNTER_DEFINITION *
  36. FirstCounter(
  37.     PERF_OBJECT_TYPE *pObjectDef) ;
  38.  
  39. PERF_COUNTER_DEFINITION *
  40. NextCounter(
  41.     PERF_COUNTER_DEFINITION *pCounterDef) ;
  42. #endif
  43.  
  44. #define FirstObject(pPerfData)         \
  45.    ((PPERFOBJECT) ((PBYTE) pPerfData + pPerfData->HeaderLength))
  46.  
  47. #define NextObject(pObject)            \
  48.    ((PPERFOBJECT) ((PBYTE) pObject + pObject->TotalByteLength))
  49.  
  50. #define FirstCounter(pObjectDef)       \
  51.    ((PERF_COUNTER_DEFINITION *) ((PCHAR)pObjectDef + pObjectDef->HeaderLength))
  52.  
  53. #define NextCounter(pCounterDef)       \
  54.    ((PERF_COUNTER_DEFINITION *) ((PCHAR)pCounterDef + pCounterDef->ByteLength))
  55.  
  56. void
  57. GetInstanceNameStr (PPERFINSTANCEDEF pInstance,
  58.                     LPTSTR lpszInstance) ;
  59.  
  60. LPTSTR   
  61. GetInstanceName (PPERFINSTANCEDEF pInstance) ;
  62.  
  63. void
  64. GetPerfComputerName(PPERFDATA pPerfData,
  65.                     LPTSTR szComputerName) ;
  66.  
  67. PERF_INSTANCE_DEFINITION *GetInstanceByName(
  68.     PERF_DATA_BLOCK *pDataBlock,
  69.     PERF_OBJECT_TYPE *pObjectDef,
  70.     LPTSTR pInstanceName,
  71.     LPTSTR pParentName) ;
  72.  
  73.  
  74. PERF_INSTANCE_DEFINITION *GetInstanceByUniqueID(
  75.     PERF_OBJECT_TYPE *pObjectDef,
  76.     LONG UniqueID) ;
  77.  
  78.  
  79. HKEY OpenSystemPerfData (IN LPCTSTR lpszSystem) ;
  80.  
  81.  
  82.  
  83. LONG GetSystemPerfData (
  84.     IN HKEY hKeySystem,
  85.     IN LPTSTR lpszValue,
  86.     OUT PPERFDATA pPerfData, 
  87.     OUT PDWORD pdwPerfDataLen
  88. );
  89.  
  90.  
  91. BOOL CloseSystemPerfData (HKEY hKeySystem) ;
  92.  
  93.  
  94.  
  95. int CBLoadObjects (HWND hWndCB,
  96.                    PPERFDATA pPerfData,
  97.                    PPERFSYSTEM pSysInfo,
  98.                    DWORD dwDetailLevel,
  99.                    LPTSTR lpszDefaultObject,
  100.                    BOOL bIncludeAll) ;
  101.  
  102. int LBLoadObjects (HWND hWndCB,
  103.                    PPERFDATA pPerfData,
  104.                    PPERFSYSTEM pSysInfo,
  105.                    DWORD dwDetailLevel,
  106.                    LPTSTR lpszDefaultObject,
  107.                    BOOL bIncludeAll) ;
  108.  
  109.  
  110. BOOL UpdateSystemData (PPERFSYSTEM pSystem, 
  111.                        PPERFDATA *ppPerfData) ;
  112.  
  113.  
  114. BOOL UpdateLinesForSystem (LPTSTR lpszSystem, 
  115.                            PPERFDATA pPerfData, 
  116.                            PLINE pLineFirst,
  117.                            PPERFSYSTEM pSystem) ;
  118.  
  119. BOOL FailedLinesForSystem (LPTSTR lpszSystem, 
  120.                            PPERFDATA pPerfData, 
  121.                            PLINE pLineFirst) ;
  122.  
  123.  
  124. BOOL UpdateLines (PPPERFSYSTEM ppSystemFirst,
  125.                   PLINE pLineFirst) ;
  126.  
  127.  
  128. BOOL PerfDataInitializeInstance (void) ;
  129.  
  130.  
  131. DWORD
  132. QueryPerformanceName(
  133.     PPERFSYSTEM pSysInfo,
  134.     DWORD dwTitleIndex,
  135.     LANGID LangID,
  136.     DWORD cbTitle,
  137.     LPTSTR lpTitle,
  138.     BOOL Help
  139.     );
  140.  
  141. PERF_INSTANCE_DEFINITION *
  142. FirstInstance(
  143.     PERF_OBJECT_TYPE *pObjectDef) ;
  144.  
  145.  
  146.  
  147. PERF_INSTANCE_DEFINITION *
  148. NextInstance(
  149.     PERF_INSTANCE_DEFINITION *pInstDef) ;
  150.  
  151.  
  152.  
  153. int CounterIndex (PPERFCOUNTERDEF pCounterToFind,
  154.                   PPERFOBJECT pObject) ;
  155.  
  156.  
  157. DWORD GetSystemNames(PPERFSYSTEM pSysInfo) ;
  158.  
  159.  
  160.  
  161. PERF_OBJECT_TYPE *GetObjectDefByTitleIndex(
  162.     PERF_DATA_BLOCK *pDataBlock,
  163.     DWORD ObjectTypeTitleIndex) ;
  164.  
  165.  
  166. PERF_OBJECT_TYPE *GetObjectDefByName(
  167.     PPERFSYSTEM pSystem,
  168.     PERF_DATA_BLOCK *pDataBlock,
  169.     LPTSTR pObjectName) ;
  170.  
  171. DWORD GetObjectIdByName(
  172.     PPERFSYSTEM pSystem,
  173.     PERF_DATA_BLOCK *pDataBlock,
  174.     LPTSTR pObjectName) ;
  175.  
  176. LPTSTR
  177. InstanceName(
  178. PERF_INSTANCE_DEFINITION *pInstDef) ;
  179.  
  180. void PerfDataThread (PPERFSYSTEM pSystem) ;
  181.  
  182.  
  183. 
  184.