/*++
*******************************************************************************
* Copyright (c) 1990-98 Digi International Inc., All Rights Reserved				*
* 																										*
* This software contains proprietary and confidential information of Digi		*
* International Inc.  By accepting transfer of this copy, Recipient agrees		*
* to retain this software in confidence, to prevent disclosure to others,		*
* and to make no use of this software other than that for which it was			*
* delivered.  This is an unpublished copyrighted work of Digi International	*
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly	*
* prohibited.																						*
* 																										*
* Restricted Rights Legend																		*
*																										*
* Use, duplication, or disclosure by the Government is subject to					*
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in			*
* Technical Data and Computer Software clause at DFARS 252.227-7031 or			*
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -				*
* Restricted Rights at 48 CFR 52.227-19, as applicable.								*
*																										*
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343				*
*																										*
*******************************************************************************

Module Name:

   Sohdata.c

Abstract:

   Constant data structures used in Perfmon data requests.

Author:

   Jeff Romatoski

--*/
#include <windows.h>
#include <winperf.h>
#include <stddef.h>
#include <string.h>
#include "sohctrs.h"
#include "sohdata.h"

SOH_STREAMS_DEFINITION gStreamsDefinition =
{
	{
		0,
		sizeof gStreamsDefinition,
		sizeof gStreamsDefinition.Type,
		STREAM_OBJECT, 0, STREAM_OBJECT,
		0,
		PERF_DETAIL_NOVICE,
		(sizeof gStreamsDefinition - sizeof gStreamsDefinition.Type)/sizeof(PERF_COUNTER_DEFINITION),
		-1,
		0,
		0
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		STREAM_MIN,
		0,
		STREAM_MIN,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Min)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		STREAM_MAX,
		0,
		STREAM_MAX,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Max)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		STREAM_USED,
		0,
		STREAM_USED,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Used)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		STREAM_HWM,
		0,
		STREAM_HWM,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Hwm)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		STREAM_FREE,
		0,
		STREAM_FREE,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Free)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		STREAM_FAIL,
		0,
		STREAM_FAIL,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Fail)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		STREAM_SIZE,
		0,
		STREAM_SIZE,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Size)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		STREAM_TOTAL,
		0,
		STREAM_TOTAL,
		0,
		-4,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Total)
	}
};


SOH_DATABLOCKS_DEFINITION gDataBlocksDefinition =
{
	{
		0,
		sizeof gDataBlocksDefinition,
		sizeof gDataBlocksDefinition.Type,
		DATABLOCK_OBJECT,
		0,
		DATABLOCK_OBJECT,
		0,
		PERF_DETAIL_NOVICE,
		(sizeof gDataBlocksDefinition - sizeof gDataBlocksDefinition.Type)/sizeof(PERF_COUNTER_DEFINITION),
		-1,
		0,
		0
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		DATABLOCK_MIN,
		0,
		DATABLOCK_MIN,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Min)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		DATABLOCK_MAX,
		0,
		DATABLOCK_MAX,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Max)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		DATABLOCK_USED,
		0,
		DATABLOCK_USED,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Used)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		DATABLOCK_HWM,
		0,
		DATABLOCK_HWM,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Hwm)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		DATABLOCK_FREE,
		0,
		DATABLOCK_FREE,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Free)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		DATABLOCK_FAIL,
		0,
		DATABLOCK_FAIL,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Fail)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		DATABLOCK_SIZE,
		0,
		DATABLOCK_SIZE,
		0,
		-2,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Size)
	},
	{
		sizeof(PERF_COUNTER_DEFINITION),
		DATABLOCK_TOTAL,
		0,
		DATABLOCK_TOTAL,
		0,
		-4,
		PERF_DETAIL_NOVICE,
		PERF_COUNTER_RAWCOUNT,
		sizeof(DWORD),
		offsetof(QUEUE_COUNTER,QueueStats.Total)
	}
};


