Annotation of ntddk/src/perf/vgactrs/perfutil.h, revision 1.1.1.1

1.1       root        1: /*++ BUILD Version: 0001    // Increment this if a change has global effects
                      2: 
                      3: Copyright (c) 1992 Microsoft Corporation
                      4: 
                      5: Module Name:
                      6: 
                      7:     perfutil.h  
                      8: 
                      9: Abstract:
                     10: 
                     11:     This file supports routines used to parse and
                     12:     create Performance Monitor Data Structures.
                     13:     It actually supports Performance Object types with
                     14:     multiple instances
                     15: 
                     16: Author:
                     17: 
                     18:     Russ Blake  7/30/92
                     19: 
                     20: Revision History:
                     21: 
                     22: 
                     23: --*/
                     24: #ifndef _PERFUTIL_H_
                     25: #define _PERFUTIL_H_
                     26: 
                     27: // enable this define to log process heap data to the event log
                     28: #ifdef PROBE_HEAP_USAGE
                     29: #undef PROBE_HEAP_USAGE
                     30: #endif
                     31: //
                     32: //  Utility macro.  This is used to reserve a DWORD multiple of
                     33: //  bytes for Unicode strings embedded in the definitional data,
                     34: //  viz., object instance names.
                     35: //
                     36: #define DWORD_MULTIPLE(x) (((x+sizeof(DWORD)-1)/sizeof(DWORD))*sizeof(DWORD))
                     37: 
                     38: //    (assumes dword is 4 bytes long and pointer is a dword in size)
                     39: #define ALIGN_ON_DWORD(x) ((VOID *)( ((DWORD) x & 0x00000003) ? ( ((DWORD) x & 0xFFFFFFFC) + 4 ) : ( (DWORD) x ) ))
                     40: 
                     41: extern WCHAR  GLOBAL_STRING[];      // Global command (get all local ctrs)
                     42: extern WCHAR  FOREIGN_STRING[];           // get data from foreign computers
                     43: extern WCHAR  COSTLY_STRING[];      
                     44: extern WCHAR  NULL_STRING[];
                     45: 
                     46: #define QUERY_GLOBAL    1
                     47: #define QUERY_ITEMS     2
                     48: #define QUERY_FOREIGN   3
                     49: #define QUERY_COSTLY    4
                     50: 
                     51: //
                     52: // The definition of the only routine of perfutil.c, It builds part of a 
                     53: // performance data instance (PERF_INSTANCE_DEFINITION) as described in 
                     54: // winperf.h
                     55: //
                     56: 
                     57: HANDLE MonOpenEventLog ();
                     58: VOID MonCloseEventLog ();
                     59: DWORD GetQueryType (IN LPWSTR);
                     60: BOOL IsNumberInUnicodeList (DWORD, LPWSTR);
                     61: 
                     62: typedef struct _LOCAL_HEAP_INFO_BLOCK {
                     63:     DWORD   AllocatedEntries;
                     64:     DWORD   AllocatedBytes;
                     65:     DWORD   FreeEntries;
                     66:     DWORD   FreeBytes;
                     67: } LOCAL_HEAP_INFO, *PLOCAL_HEAP_INFO;
                     68: 
                     69: 
                     70: //
                     71: //  Memory Probe macro
                     72: //
                     73: #ifdef PROBE_HEAP_USAGE
                     74: 
                     75: #define HEAP_PROBE()    { \
                     76:     DWORD   dwHeapStatus[5]; \
                     77:     NTSTATUS CallStatus; \
                     78:     dwHeapStatus[4] = __LINE__; \
                     79:     if (!(CallStatus = memprobe (dwHeapStatus, 16L, NULL))) { \
                     80:         REPORT_INFORMATION_DATA (TCP_HEAP_STATUS, LOG_DEBUG,    \
                     81:             &dwHeapStatus, sizeof(dwHeapStatus));  \
                     82:     } else {  \
                     83:         REPORT_ERROR_DATA (TCP_HEAP_STATUS_ERROR, LOG_DEBUG, \
                     84:             &CallStatus, sizeof (DWORD)); \
                     85:     } \
                     86: }
                     87: 
                     88: #else
                     89: 
                     90: #define HEAP_PROBE()    ;
                     91: 
                     92: #endif
                     93: 
                     94: #endif  //_PERFUTIL_H_
                     95: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.