Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++ BUILD Version: 0001 // Increment this if a change has global effects
Copyright (c) 1992 Microsoft Corporation
Module Name:
perfutil.h
Abstract:
This file supports routines used to parse and create Performance Monitor Data Structures. It actually supports Performance Object types with multiple instances
Author:
Russ Blake 7/30/92
Revision History:
--*/ #ifndef _PERFUTIL_H_
#define _PERFUTIL_H_
// enable this define to log process heap data to the event log
#ifdef PROBE_HEAP_USAGE
#undef PROBE_HEAP_USAGE
#endif
//
// Utility macro. This is used to reserve a DWORD multiple of
// bytes for Unicode strings embedded in the definitional data,
// viz., object instance names.
//
#define DWORD_MULTIPLE(x) (((x+sizeof(DWORD)-1)/sizeof(DWORD))*sizeof(DWORD))
// (assumes dword is 4 bytes long and pointer is a dword in size)
#define ALIGN_ON_DWORD(x) ((VOID *)( ((DWORD) x & 0x00000003) ? ( ((DWORD) x & 0xFFFFFFFC) + 4 ) : ( (DWORD) x ) ))
extern WCHAR GLOBAL_STRING[]; // Global command (get all local ctrs)
extern WCHAR FOREIGN_STRING[]; // get data from foreign computers
extern WCHAR COSTLY_STRING[]; extern WCHAR NULL_STRING[];
#define QUERY_GLOBAL 1
#define QUERY_ITEMS 2
#define QUERY_FOREIGN 3
#define QUERY_COSTLY 4
//
// This routine builds part of a
// performance data instance (PERF_INSTANCE_DEFINITION) as described in
// winperf.h
//
HANDLE MonOpenEventLog ();
VOID MonCloseEventLog ();
DWORD GetQueryType (IN LPWSTR);
BOOL IsNumberInUnicodeList (DWORD, LPWSTR);
BOOL MonBuildInstanceDefinition(PERF_INSTANCE_DEFINITION *, PVOID, DWORD, DWORD, DWORD, PUNICODE_STRING);
typedef struct _LOCAL_HEAP_INFO_BLOCK { DWORD AllocatedEntries; DWORD AllocatedBytes; DWORD FreeEntries; DWORD FreeBytes; } LOCAL_HEAP_INFO, *PLOCAL_HEAP_INFO;
//
// Memory Probe macro
//
#ifdef PROBE_HEAP_USAGE
#define HEAP_PROBE() { \
DWORD dwHeapStatus[5]; \ NTSTATUS CallStatus; \ dwHeapStatus[4] = __LINE__; \ if (!(CallStatus = memprobe (dwHeapStatus, 16L, NULL))) { \ REPORT_INFORMATION_DATA (TCP_HEAP_STATUS, LOG_DEBUG, \ &dwHeapStatus, sizeof(dwHeapStatus)); \ } else { \ REPORT_ERROR_DATA (TCP_HEAP_STATUS_ERROR, LOG_DEBUG, \ &CallStatus, sizeof (DWORD)); \ } \ }
#else
#define HEAP_PROBE() ;
#endif
#endif //_PERFUTIL_H_
|