Source code of Windows XP (NT5)
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.

100 lines
5.1 KiB

  1. /*======================================================================================//
  2. | //
  3. |Copyright (c) 1998, 1999 Sequent Computer Systems, Incorporated //
  4. | //
  5. |Description: //
  6. | //
  7. |---------------------------------------------------------------------------------------//
  8. | This file is the ProcCon header file showing 'on the wire' data for clients/service //
  9. |---------------------------------------------------------------------------------------//
  10. | //
  11. |Created: //
  12. | //
  13. | Jarl McDonald 07-98 //
  14. | //
  15. |Revision History: //
  16. | //
  17. |=======================================================================================*/
  18. // Requests flow from clients to the service. They contain at most one API data item.
  19. typedef struct _PCRequest {
  20. #pragma pack(1)
  21. PCINT32 reqSignature; // sanity check signature
  22. PCINT32 reqSeq; // requestor sequence number
  23. BYTE reqOp; // requested operation: list, add, replace, delete, etc.
  24. BYTE reqType; // requested data type: name rule, mgmt rule, mgmt detail, etc.
  25. BYTE reqVersion; // expected data version code: to support structure changes over time
  26. BYTE future[5]; // fill to 8-byte bdry
  27. PCINT32 reqFlags; // flags for additional information
  28. PCINT32 reqUpdCtr; // requestor's update counter from prior retrieval operation.
  29. PCINT64 reqIndex; // requestor's insertion point, etc.
  30. PCINT32 reqCount; // requestor's returned data item maximum count
  31. PCINT32 reqFirst; // requestor's first data item retrieval index
  32. PCINT32 maxReply; // max user data in reply (excludes reply header)
  33. PCINT16 reqDataLen; // length of the single data item that follows or 0 if none. In bytes.
  34. BYTE reqFuture[32];
  35. BYTE reqData[2]; // data item -- one of the API structures
  36. #pragma pack()
  37. } PCRequest;
  38. // Responses flow from the service to clients. They may contain many data items.
  39. typedef struct _PCResponse {
  40. #pragma pack(1)
  41. PCINT32 rspReqSignature; // echo of sanity check signature
  42. PCINT32 rspReqSeq; // echo of requestor sequence number
  43. BYTE rspReqOp; // echo of original request operation
  44. BYTE rspReqType; // echo of original request data type
  45. BYTE rspReqVersion; // echo of original data version code
  46. BYTE rspVersion; // response version: indicates version of data items returned
  47. BYTE rspResult; // operation result: success, failure, addl info, etc.
  48. BYTE future[3]; // fill to 8-byte bdry
  49. PCINT32 rspFlags; // flags for additional information
  50. PCINT32 rspError; // NT or PC error resulting from the request if rspResult shows error
  51. PCINT32 rspTimeStamp; // time stamp associated with the data returned
  52. PCINT32 rspUpdCtr; // Update counter to use on future related operations.
  53. PCINT16 rspDataItemCount; // number of data items that follow or 0.
  54. PCINT16 rspDataItemLen; // length of each data item that follows or 0. In bytes.
  55. BYTE rspFuture[32];
  56. BYTE rspData[2]; // data items -- an array of one of the API structures
  57. #pragma pack()
  58. } PCResponse;
  59. typedef enum _PCReqOp {
  60. PCOP_GET = 1,
  61. PCOP_ADD = 2,
  62. PCOP_REP = 3,
  63. PCOP_DEL = 4,
  64. PCOP_ORD = 5,
  65. PCOP_CTL = 6,
  66. PCOP_KILL = 7,
  67. } PCReqOp;
  68. typedef enum _PCReqRspType {
  69. PCTYPE_NAMERULE = 1,
  70. PCTYPE_JOBSUMMARY = 2,
  71. PCTYPE_PROCSUMMARY = 3,
  72. PCTYPE_PROCLIST = 4,
  73. PCTYPE_JOBLIST = 5,
  74. PCTYPE_PROCDETAIL = 6,
  75. PCTYPE_JOBDETAIL = 7,
  76. PCTYPE_SERVERINFO = 8,
  77. PCTYPE_SERVERPARMS = 9,
  78. PCTYPE_CONTROL = 77,
  79. } PCReqRspType;
  80. typedef enum _PCRspResult {
  81. PCRESULT_SUCCESS = 0,
  82. PCRESULT_NTERROR = 1,
  83. PCRESULT_PCERROR = 2,
  84. } PCRspResult;
  85. typedef enum _PCReqFlags {
  86. PCREQFLAG_DOLIST = 0x00000001, // perform a list op (based on data) after doing op
  87. } PCReqFlags;
  88. typedef enum _PCRspFlags {
  89. PCRSPFLAG_MOREDATA = 0x00000001, // more data exists
  90. } PCRspFlags;
  91. // End of ProcConClnt.h
  92. //============================================================================J McDonald fecit====//