windows-nt/Source/XPSP1/NT/sdktools/proccon/library/procconclnt.h
2020-09-26 16:20:57 +08:00

101 lines
5.1 KiB
C

/*======================================================================================//
| //
|Copyright (c) 1998, 1999 Sequent Computer Systems, Incorporated //
| //
|Description: //
| //
|---------------------------------------------------------------------------------------//
| This file is the ProcCon header file showing 'on the wire' data for clients/service //
|---------------------------------------------------------------------------------------//
| //
|Created: //
| //
| Jarl McDonald 07-98 //
| //
|Revision History: //
| //
|=======================================================================================*/
// Requests flow from clients to the service. They contain at most one API data item.
typedef struct _PCRequest {
#pragma pack(1)
PCINT32 reqSignature; // sanity check signature
PCINT32 reqSeq; // requestor sequence number
BYTE reqOp; // requested operation: list, add, replace, delete, etc.
BYTE reqType; // requested data type: name rule, mgmt rule, mgmt detail, etc.
BYTE reqVersion; // expected data version code: to support structure changes over time
BYTE future[5]; // fill to 8-byte bdry
PCINT32 reqFlags; // flags for additional information
PCINT32 reqUpdCtr; // requestor's update counter from prior retrieval operation.
PCINT64 reqIndex; // requestor's insertion point, etc.
PCINT32 reqCount; // requestor's returned data item maximum count
PCINT32 reqFirst; // requestor's first data item retrieval index
PCINT32 maxReply; // max user data in reply (excludes reply header)
PCINT16 reqDataLen; // length of the single data item that follows or 0 if none. In bytes.
BYTE reqFuture[32];
BYTE reqData[2]; // data item -- one of the API structures
#pragma pack()
} PCRequest;
// Responses flow from the service to clients. They may contain many data items.
typedef struct _PCResponse {
#pragma pack(1)
PCINT32 rspReqSignature; // echo of sanity check signature
PCINT32 rspReqSeq; // echo of requestor sequence number
BYTE rspReqOp; // echo of original request operation
BYTE rspReqType; // echo of original request data type
BYTE rspReqVersion; // echo of original data version code
BYTE rspVersion; // response version: indicates version of data items returned
BYTE rspResult; // operation result: success, failure, addl info, etc.
BYTE future[3]; // fill to 8-byte bdry
PCINT32 rspFlags; // flags for additional information
PCINT32 rspError; // NT or PC error resulting from the request if rspResult shows error
PCINT32 rspTimeStamp; // time stamp associated with the data returned
PCINT32 rspUpdCtr; // Update counter to use on future related operations.
PCINT16 rspDataItemCount; // number of data items that follow or 0.
PCINT16 rspDataItemLen; // length of each data item that follows or 0. In bytes.
BYTE rspFuture[32];
BYTE rspData[2]; // data items -- an array of one of the API structures
#pragma pack()
} PCResponse;
typedef enum _PCReqOp {
PCOP_GET = 1,
PCOP_ADD = 2,
PCOP_REP = 3,
PCOP_DEL = 4,
PCOP_ORD = 5,
PCOP_CTL = 6,
PCOP_KILL = 7,
} PCReqOp;
typedef enum _PCReqRspType {
PCTYPE_NAMERULE = 1,
PCTYPE_JOBSUMMARY = 2,
PCTYPE_PROCSUMMARY = 3,
PCTYPE_PROCLIST = 4,
PCTYPE_JOBLIST = 5,
PCTYPE_PROCDETAIL = 6,
PCTYPE_JOBDETAIL = 7,
PCTYPE_SERVERINFO = 8,
PCTYPE_SERVERPARMS = 9,
PCTYPE_CONTROL = 77,
} PCReqRspType;
typedef enum _PCRspResult {
PCRESULT_SUCCESS = 0,
PCRESULT_NTERROR = 1,
PCRESULT_PCERROR = 2,
} PCRspResult;
typedef enum _PCReqFlags {
PCREQFLAG_DOLIST = 0x00000001, // perform a list op (based on data) after doing op
} PCReqFlags;
typedef enum _PCRspFlags {
PCRSPFLAG_MOREDATA = 0x00000001, // more data exists
} PCRspFlags;
// End of ProcConClnt.h
//============================================================================J McDonald fecit====//