Leaked source code of windows server 2003
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.

176 lines
5.7 KiB

  1. /*++
  2. Copyright (c) 1991-1992 Microsoft Corporation
  3. Module Name:
  4. RemTypes.h
  5. Abstract:
  6. This header file defines character values used in descriptor strings in
  7. Remote Admin Protocol.
  8. NOTES - All pointer types are lower case, except for buffer pointers,
  9. and the null pointer.
  10. - REM_BYTE should not be used for parameters, since data is
  11. never placed on the stack as individual bytes.
  12. - REM_NULL_PTR is never specified in the call, but may be
  13. used to replace a pointer type if the pointer itself is NULL.
  14. - In some cases as indicated below, a descriptor character
  15. can indicate an array of data items, if followed by an
  16. ASCII representation of the number of items. For pointer
  17. types, this is a count of the data items themselves, not
  18. the pointers. For example, 'b12' describes a pointer
  19. to 12 bytes of data, not 12 pointers to byte values.
  20. Author:
  21. LanMan 2.x people.
  22. Environment:
  23. Portable to any flat, 32-bit environment. (Uses Win32 typedefs.)
  24. Requires ANSI C extensions: slash-slash comments, long external names.
  25. Revision History:
  26. 15-Mar-1991 Shanku Niyogi (w-shanku)
  27. Ported to NT format, and added special 32-bit descriptor characters.
  28. 21-Aug-1991 Jim Waters (t-jamesw)
  29. Added REM_ASCIZ_COMMENT.
  30. 16-Aug-1992 JohnRo
  31. RAID 2920: Support UTC timezone in net code.
  32. --*/
  33. #ifndef _REMTYPES_
  34. #define _REMTYPES_
  35. //
  36. // Data types.
  37. //
  38. #define REM_BYTE 'B' // Byte (s)
  39. #define REM_WORD 'W' // Word (s)
  40. #define REM_DWORD 'D' // DWord (s)
  41. #define REM_DATE_TIME 'C' // Date time field
  42. #define REM_FILL_BYTES 'F' // Pad field
  43. //
  44. // Pointer types.
  45. //
  46. //
  47. // For internal use, the count following a REM_ASCIZ may specify the maximum
  48. // string length. On the network no count may be present.
  49. //
  50. // In RapConvertSingleEntry, attempting to copy a REM_ASCIZ into a buffer too
  51. // small to hold it will result in an error. Use REM_ASCIZ_TRUNCATABLE
  52. // for strings which can be truncated.
  53. //
  54. #define REM_ASCIZ 'z' // Far pointer to asciz string
  55. #define REM_BYTE_PTR 'b' // Far pointer to byte(s)
  56. #define REM_WORD_PTR 'w' // Far pointer to word(s)
  57. #define REM_DWORD_PTR 'd' // Far pointer to dword(s)
  58. #define REM_RCV_BYTE_PTR 'g' // Far pointer to rcv byte(s)
  59. #define REM_RCV_WORD_PTR 'h' // Far pointer to rcv word(s)
  60. #define REM_RCV_DWORD_PTR 'i' // Far pointer to rcv dword(s)
  61. #define REM_NULL_PTR 'O' // NULL pointer
  62. //
  63. // Buffer pointer and length types.
  64. //
  65. #define REM_RCV_BUF_PTR 'r' // Far pointer to receive data buffer
  66. #define REM_RCV_BUF_LEN 'L' // Word length of receive buffer
  67. #define REM_SEND_BUF_PTR 's' // Far pointer to send data buffer
  68. #define REM_SEND_BUF_LEN 'T' // Word length of send buffer
  69. //
  70. // Other special types.
  71. //
  72. #define REM_AUX_NUM 'N' // !!! Temporary - for compatibility
  73. #define REM_PARMNUM 'P' // parameter number word
  74. #define REM_ENTRIES_READ 'e' // Far pointer to entries read word
  75. #define REM_DATA_BLOCK 'K' // Unstructured data block
  76. #define REM_SEND_LENBUF 'l' // Far pointer to send data buffer,
  77. // where first word in buffer is the
  78. // length of the buffer.
  79. //
  80. // Items from here on are "internal use only", and should never actually
  81. // appear on the network.
  82. //
  83. //
  84. // The following is used in the MVDM driver to get various API support
  85. //
  86. #define REM_WORD_LINEAR 'a' // Far linear pointer to word(s)
  87. //
  88. // The following is used while processing 32-bit APIs and 16-bit APIs with
  89. // different padding requirements or info levels with ignored fields.
  90. //
  91. #define REM_IGNORE 'Q' // Ignore this field (16->32 or
  92. // 32->16 conversions).
  93. //
  94. // A dword version of the auxiliary structure count (for 32-bit data).
  95. //
  96. #define REM_AUX_NUM_DWORD 'A' // 32-bit dword count of aux structures
  97. //
  98. // Sign extended dword - for 16->32 bit conversion where the 16-bit
  99. // quantity may represent signed negative quantities which need
  100. // to be extended over 32 bits.
  101. //
  102. #define REM_SIGNED_DWORD 'X' // 32-bit signed dword(s)
  103. #define REM_SIGNED_DWORD_PTR 'x' // Far pointer to signed dword(s)
  104. //
  105. // Truncatable asciz string - If a count is specified, the field only
  106. // accepts strings up to the specified length. In
  107. // RapConvertSingleEntry, if a REM_ASCIZ_TRUNCATABLE is too long to
  108. // fit in the destination field, the string will be truncated to fit.
  109. // Use REM_ASCIZ for fields which cannot accept truncated strings.
  110. //
  111. #define REM_ASCIZ_TRUNCATABLE 'c' // Far pointer to asciz comment
  112. // Count signifies maximum length.
  113. // Time and date in seconds since 1970 (GMT). In POSIX, this is usually
  114. // called "seconds since the epoch".
  115. #define REM_EPOCH_TIME_GMT 'G' // 32-bit unsigned num of seconds.
  116. // Time and date in seconds since 1970 (local time zone).
  117. #define REM_EPOCH_TIME_LOCAL 'J' // 32-bit unsigned num of seconds.
  118. //
  119. // Unsupported fields - for set info calls. A 'U' indicates that a parameter
  120. // cannot be changed.
  121. //
  122. #define REM_UNSUPPORTED_FIELD 'U' // Unsupported field
  123. #endif // ndef _REMTYPES_