windows-nt/Source/XPSP1/NT/base/fs/sis/groveler/grovperf.h
2020-09-26 16:20:57 +08:00

95 lines
1.6 KiB
C

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
grovperf.h
Abstract:
SIS Groveler performance DLL primary include file
Authors:
John Douceur, 1998
Environment:
User Mode
Revision History:
--*/
#ifndef _INC_GROVPERF
#define _INC_GROVPERF
#define WIN32_LEAN_AND_MEAN 1
extern "C" DWORD CALLBACK OpenGrovelerPerformanceData(LPWSTR lpDeviceNames);
extern "C" DWORD WINAPI CloseGrovelerPerformanceData();
extern "C" DWORD WINAPI CollectGrovelerPerformanceData(
LPWSTR lpwszValue,
LPVOID *lppData,
LPDWORD lpcbBytes,
LPDWORD lpcObjectTypes);
int space_needed_for_data(
int num_partitions);
void build_part_object_info_block(
LPVOID *lppData,
int num_partitions,
int data_size);
void build_part_instance_info_block(
LPVOID *lppData,
int partition_index,
SharedDataRecord *records);
void build_total_instance_info_block(
LPVOID *lppData,
int num_partitions,
SharedDataRecord *records);
#pragma pack (8)
const int partition_name_length = 32;
const int total_name_length = 7;
struct PartitionData
{
PERF_COUNTER_BLOCK counter_block;
LARGE_INTEGER counter[num_perf_counters];
};
struct PartitionObjectInformationBlock
{
PERF_OBJECT_TYPE object_type;
PERF_COUNTER_DEFINITION definition[num_perf_counters];
};
struct PartitionInstanceInformationBlock
{
PERF_INSTANCE_DEFINITION instance_def;
_TCHAR instance_name[partition_name_length];
PartitionData partition_data;
};
struct TotalInstanceInformationBlock
{
PERF_INSTANCE_DEFINITION instance_def;
_TCHAR instance_name[total_name_length];
PartitionData partition_data;
};
#pragma pack ()
#endif /* _INC_GROVPERF */