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
3.5 KiB

  1. //---------------------------------------------------------------------------
  2. //
  3. // Module: si.h
  4. //
  5. // Description: Start Info Class
  6. //
  7. //
  8. //@@BEGIN_MSINTERNAL
  9. // Development Team:
  10. // Mike McLaughlin
  11. //
  12. // History: Date Author Comment
  13. //
  14. //@@END_MSINTERNAL
  15. //---------------------------------------------------------------------------
  16. //
  17. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  18. // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  19. // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  20. // PURPOSE.
  21. //
  22. // Copyright (c) 1996-1999 Microsoft Corporation. All Rights Reserved.
  23. //
  24. //---------------------------------------------------------------------------
  25. //---------------------------------------------------------------------------
  26. // Constants and Macros
  27. //---------------------------------------------------------------------------
  28. //---------------------------------------------------------------------------
  29. // Class
  30. //---------------------------------------------------------------------------
  31. typedef class CStartInfo : public CListDoubleItem
  32. {
  33. private:
  34. CStartInfo(
  35. PPIN_INFO pPinInfo,
  36. PCONNECT_INFO pConnectInfo,
  37. PGRAPH_PIN_INFO pGraphPinInfo,
  38. PGRAPH_NODE pGraphNode
  39. );
  40. ~CStartInfo(
  41. );
  42. public:
  43. static NTSTATUS
  44. Create(
  45. PSTART_NODE pStartNode,
  46. PCONNECT_INFO pConnectInfo,
  47. PGRAPH_PIN_INFO pGraphPinInfo,
  48. PGRAPH_NODE pGraphNode
  49. );
  50. ENUMFUNC
  51. Destroy(
  52. )
  53. {
  54. if(this != NULL) {
  55. Assert(this);
  56. ASSERT(cReference > 0);
  57. if(--cReference == 0) {
  58. delete this;
  59. }
  60. }
  61. return(STATUS_CONTINUE);
  62. };
  63. VOID
  64. AddRef(
  65. )
  66. {
  67. if(this != NULL) {
  68. Assert(this);
  69. ++cReference;
  70. }
  71. };
  72. PPIN_INFO
  73. GetPinInfo(
  74. )
  75. {
  76. Assert(this);
  77. return(pPinInfo);
  78. };
  79. PGRAPH_PIN_INFO
  80. GetGraphPinInfo(
  81. )
  82. {
  83. Assert(this);
  84. return(pGraphPinInfo);
  85. };
  86. PKSPIN_CINSTANCES
  87. GetPinInstances(
  88. )
  89. {
  90. Assert(this);
  91. return(pGraphPinInfo->GetPinInstances());
  92. };
  93. VOID
  94. AddPinInstance(
  95. )
  96. {
  97. Assert(this);
  98. if(pPinInfo == pGraphPinInfo->GetPinInfo()) {
  99. pGraphPinInfo->AddPinInstance();
  100. }
  101. };
  102. VOID
  103. RemovePinInstance(
  104. )
  105. {
  106. Assert(this);
  107. if(pPinInfo == pGraphPinInfo->GetPinInfo()) {
  108. pGraphPinInfo->RemovePinInstance();
  109. }
  110. };
  111. BOOL
  112. IsPinInstances(
  113. )
  114. {
  115. Assert(this);
  116. return(pGraphPinInfo->IsPinInstances());
  117. };
  118. BOOL
  119. IsPossibleInstances(
  120. )
  121. {
  122. Assert(this);
  123. return(pGraphPinInfo->IsPossibleInstances());
  124. };
  125. PCONNECT_INFO
  126. GetFirstConnectInfo(
  127. )
  128. {
  129. return(pConnectInfoHead);
  130. };
  131. ENUMFUNC
  132. CreatePinInfoConnection(
  133. PVOID pGraphNode
  134. );
  135. ENUMFUNC
  136. EnumStartInfo(
  137. );
  138. private:
  139. LONG cReference;
  140. PPIN_INFO pPinInfo;
  141. PCONNECT_INFO pConnectInfoHead;
  142. PGRAPH_PIN_INFO pGraphPinInfo;
  143. public:
  144. ULONG ulTopologyConnectionTableIndex;
  145. ULONG ulVolumeNodeNumberPre;
  146. ULONG ulVolumeNodeNumberSuperMix;
  147. ULONG ulVolumeNodeNumberPost;
  148. DefineSignature(0x20204953); // SI
  149. } START_INFO, *PSTART_INFO;
  150. //---------------------------------------------------------------------------
  151. typedef ListDouble<START_INFO> LIST_START_INFO;
  152. //---------------------------------------------------------------------------