157 lines
4.1 KiB
Plaintext
157 lines
4.1 KiB
Plaintext
|
|
/*++
|
|
|
|
Copyright (c) 1998 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
perffrs.idl
|
|
|
|
Abstract:
|
|
|
|
This is the .idl file that defines the RPC interface between the PerformanceDLL
|
|
and the ntfrs (server) application.
|
|
|
|
Author:
|
|
|
|
Rohan Kumar [rohank] 08-Sept-1998
|
|
|
|
Environment:
|
|
|
|
User Mode Service
|
|
|
|
Revision History:
|
|
|
|
Comments:
|
|
Important version information
|
|
-------------------------------
|
|
Whenever this interface is updated, the version number (a few lines
|
|
below) MUST be changed. This insures that a the client and server remain
|
|
synchronized, and that calls will succeed only if the client and server
|
|
are compatible. The version number is in the form of x.y where x is the
|
|
major version number and y is the minor version number. If the changes
|
|
to the interface are upwardly compatible, (i.e., a client calling
|
|
through the old interface definition is allowed to connect to a server
|
|
exposing the new interface definition), you should increase the minor
|
|
version number (y) and maintain the same major version number. If the
|
|
changes to the interface render it incompatible with the older clients,
|
|
increase the major version (x) and reset the minor version number to 0.
|
|
|
|
--*/
|
|
|
|
//
|
|
// VERSION 1.0
|
|
//
|
|
// Don't reorder.
|
|
// Add new functions to end of idl and change version's minor number.
|
|
//
|
|
|
|
[
|
|
uuid(a00c021c-2be2-11d2-b678-0000f87a8f8e),
|
|
version(1.0),
|
|
pointer_default(ref)
|
|
]
|
|
|
|
interface PerfFrs // name of the interface
|
|
{
|
|
|
|
const unsigned long MAJORVERSION = 1; // Major version of the interface definition
|
|
|
|
const unsigned long MINORVERSION = 0; // Minor version of the interface definition
|
|
|
|
const unsigned long REPSET = 0; // Object Type is REPLICASET
|
|
|
|
const unsigned long REPCONN = 1; // Object Type is REPLICACONN
|
|
|
|
|
|
//
|
|
// Data structure that defines the name of each Instance.
|
|
//
|
|
typedef struct s1 {
|
|
long size;
|
|
[size_is(size)] wchar_t *name;
|
|
} inst_name;
|
|
|
|
//
|
|
// Data structure that defines the Indices (UniqueID) structure
|
|
// for all the Instances. This is filled in by the server in the
|
|
// RPC call in the Open function.
|
|
//
|
|
typedef struct s2 {
|
|
long size;
|
|
[size_is(size)] long *index;
|
|
} inst_index;
|
|
|
|
//
|
|
// Data structure that contains the names of all Instances. This is
|
|
// sent to the server in the RPC call of the Open function. The server
|
|
// sets the corresponding indices (see above) and returns them to the
|
|
// client.
|
|
//
|
|
typedef struct s3 {
|
|
long size;
|
|
[size_is(size)] inst_name *InstanceNames;
|
|
} InstanceNames;
|
|
|
|
//
|
|
// Data structure containing the Counter data for all the Instances. This filled
|
|
// in by the server in the RPC call of the Collect function.
|
|
//
|
|
typedef struct s5 {
|
|
long size;
|
|
[size_is(size)] byte *data;
|
|
} DataBuffer;
|
|
|
|
//
|
|
// Data structure containing all fields (described above) used in the
|
|
// RPC call of the Open function.
|
|
//
|
|
typedef struct o {
|
|
long majorver;
|
|
long minorver;
|
|
long ObjectType;
|
|
long numofinst; // number of instances
|
|
long *ver;
|
|
inst_index *indices;
|
|
InstanceNames *instnames;
|
|
} OpenRpcData;
|
|
|
|
//
|
|
// Data structure containing all fields (described above) used in the
|
|
// RPC call of the Collect function.
|
|
//
|
|
typedef struct c {
|
|
long majorver;
|
|
long minorver;
|
|
long ObjectType;
|
|
long ver;
|
|
long numofinst; // number of instances
|
|
long numofcotrs; // number of counters
|
|
inst_index *indices;
|
|
DataBuffer *databuff;
|
|
} CollectRpcData;
|
|
|
|
|
|
//
|
|
// Signatures that define the RPC API for the client (PerformanceDLL) follow.
|
|
// These functions are implemented by the server which is the NTFRS service.
|
|
//
|
|
|
|
//
|
|
// This function is called by the Open function(s) of the PerformanceDLL.
|
|
// It is used to set the Indices of the Instance names to be used later
|
|
// by the Collect function of the PerformanceDLL.
|
|
//
|
|
unsigned long GetIndicesOfInstancesFromServer ([in, out] OpenRpcData *packt);
|
|
|
|
|
|
//
|
|
// This function is called by the Collect function(s) of the PerformanceDLL.
|
|
// It is used to collect the counter data for the Instances to be sent to PERFMON.
|
|
//
|
|
unsigned long GetCounterDataOfInstancesFromServer([in, out] CollectRpcData *packg);
|
|
|
|
}
|
|
|
|
// end perffrs.idl
|