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.

193 lines
3.9 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (C) 1999-2001 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // SACounter.cpp
  7. //
  8. // Description:
  9. // The implement file of class CSACounter
  10. //
  11. // History:
  12. // 1. lustar.li (Guogang Li), creation date in 7-DEC-2000
  13. //
  14. // Notes:
  15. //
  16. //
  17. //////////////////////////////////////////////////////////////////////////////
  18. #include <windows.h>
  19. #include "SACounter.h"
  20. //
  21. // initial data
  22. //
  23. ULONG CSACounter::s_cLock=0;
  24. ULONG CSACounter::s_cObject=0;
  25. //////////////////////////////////////////////////////////////////////////////
  26. //++
  27. //
  28. // method:
  29. // CSACounter::GetLockCount
  30. //
  31. // Description:
  32. // get the lock num of server
  33. //
  34. // Arguments:
  35. // NONE
  36. //
  37. // Returns:
  38. // ULONG -- lock num of server
  39. //
  40. // History: lustar.li Created 12/7/2000
  41. //
  42. //--
  43. //////////////////////////////////////////////////////////////////////////////
  44. ULONG
  45. CSACounter::GetLockCount(
  46. void
  47. )
  48. {
  49. return s_cLock;
  50. }
  51. //////////////////////////////////////////////////////////////////////////////
  52. //++
  53. //
  54. // method:
  55. // CSACounter::GetLockCount
  56. //
  57. // Description:
  58. // get the refferance num of server object
  59. //
  60. // Arguments:
  61. // NONE
  62. //
  63. // Returns:
  64. // ULONG -- refferance num of server object
  65. //
  66. // History: lustar.li Created 12/7/2000
  67. //
  68. //--
  69. //////////////////////////////////////////////////////////////////////////////
  70. ULONG
  71. CSACounter::GetObjectCount(
  72. void
  73. )
  74. {
  75. return s_cObject;
  76. }
  77. //////////////////////////////////////////////////////////////////////////////
  78. //++
  79. //
  80. // method:
  81. // CSACounter::IncLockCount
  82. //
  83. // Description:
  84. // increase lock num of server
  85. //
  86. // Arguments:
  87. // NONE
  88. //
  89. // Returns:
  90. // NONE
  91. //
  92. // History: lustar.li Created 12/7/2000
  93. //
  94. //--
  95. //////////////////////////////////////////////////////////////////////////////
  96. VOID
  97. CSACounter::IncLockCount(
  98. void
  99. )
  100. {
  101. InterlockedIncrement((LONG*)&s_cLock);
  102. }
  103. //////////////////////////////////////////////////////////////////////////////
  104. //++
  105. //
  106. // method:
  107. // CSACounter::DecLockCount
  108. //
  109. // Description:
  110. // decrease lock num of server
  111. //
  112. // Arguments:
  113. // NONE
  114. //
  115. // Returns:
  116. // NONE
  117. //
  118. // History: lustar.li Created 12/7/2000
  119. //
  120. //--
  121. //////////////////////////////////////////////////////////////////////////////
  122. VOID
  123. CSACounter::DecLockCount(
  124. void
  125. )
  126. {
  127. InterlockedDecrement((LONG*)&s_cLock);
  128. }
  129. //////////////////////////////////////////////////////////////////////////////
  130. //++
  131. //
  132. // method:
  133. // CSACounter::IncObjectCount
  134. //
  135. // Description:
  136. // increase the refferance num of server object
  137. //
  138. // Arguments:
  139. // NONE
  140. //
  141. // Returns:
  142. // NONE
  143. //
  144. // History: lustar.li Created 12/7/2000
  145. //
  146. //--
  147. //////////////////////////////////////////////////////////////////////////////
  148. VOID
  149. CSACounter::IncObjectCount(
  150. void
  151. )
  152. {
  153. InterlockedIncrement((LONG*)&s_cObject);
  154. }
  155. //////////////////////////////////////////////////////////////////////////////
  156. //++
  157. //
  158. // method:
  159. // CSACounter::DecObjectCount
  160. //
  161. // Description:
  162. // decrease the refferance num of server object
  163. //
  164. // Arguments:
  165. // NONE
  166. //
  167. // Returns:
  168. // NONE
  169. //
  170. // History: lustar.li Created 12/7/2000
  171. //
  172. //--
  173. //////////////////////////////////////////////////////////////////////////////
  174. VOID
  175. CSACounter::DecObjectCount(
  176. void
  177. )
  178. {
  179. InterlockedDecrement((LONG*)&s_cObject);
  180. }