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.

123 lines
3.2 KiB

  1. //---------------------------------------------------------------------------
  2. //
  3. // Module: tn.h
  4. //
  5. // Description: Topology Node 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. #define TN_FLAGS_DONT_FORWARD 0x00000001
  29. //---------------------------------------------------------------------------
  30. // Classes
  31. //---------------------------------------------------------------------------
  32. typedef ListMulti<CLogicalFilterNode> LIST_MULTI_LOGICAL_FILTER_NODE;
  33. //---------------------------------------------------------------------------
  34. typedef class CTopologyNode : public CListSingleItem
  35. {
  36. public:
  37. CTopologyNode(
  38. PFILTER_NODE pFilterNode,
  39. ULONG ulNodeNumber,
  40. GUID *pguidType
  41. );
  42. ~CTopologyNode(
  43. );
  44. static NTSTATUS
  45. Create(
  46. PTOPOLOGY_NODE *ppTopologyNode,
  47. PFILTER_NODE pFilterNode,
  48. ULONG ulNodeNumber,
  49. GUID *pguidType
  50. );
  51. ENUMFUNC
  52. Destroy()
  53. {
  54. Assert(this);
  55. delete this;
  56. return(STATUS_CONTINUE);
  57. };
  58. ENUMFUNC
  59. InitializeTopologyNode(
  60. PVOID pGraphNodeInstance
  61. );
  62. ENUMFUNC
  63. AddTopologyNode(
  64. PVOID pGraphNodeInstance
  65. );
  66. ENUMFUNC
  67. MatchTopologyNode(
  68. PVOID pReference
  69. )
  70. {
  71. if(this == PTOPOLOGY_NODE(pReference)) {
  72. return(STATUS_SUCCESS);
  73. }
  74. return(STATUS_CONTINUE);
  75. };
  76. PFILTER_NODE pFilterNode;
  77. GUID *pguidType;
  78. ULONG ulFlags;
  79. ULONG ulRealNodeNumber;
  80. ULONG ulSysaudioNodeNumber;
  81. ULONG iVirtualSource;
  82. LIST_TOPOLOGY_PIN lstTopologyPin;
  83. LIST_MULTI_LOGICAL_FILTER_NODE lstLogicalFilterNode;
  84. DefineSignature(0x20204E54); // TN
  85. } TOPOLOGY_NODE, *PTOPOLOGY_NODE;
  86. //---------------------------------------------------------------------------
  87. typedef ListSingleDestroy<TOPOLOGY_NODE> LIST_TOPOLOGY_NODE;
  88. //---------------------------------------------------------------------------
  89. typedef ListData<TOPOLOGY_NODE> LIST_DATA_TOPOLOGY_NODE, *PLIST_DATA_TOPOLOGY_NODE;
  90. //---------------------------------------------------------------------------
  91. // Globals
  92. //---------------------------------------------------------------------------
  93. //---------------------------------------------------------------------------
  94. // Local prototypes
  95. //---------------------------------------------------------------------------
  96. NTSTATUS
  97. CreateTopology(
  98. PFILTER_NODE pFilterNode,
  99. PKSTOPOLOGY pTopology
  100. );
  101. //---------------------------------------------------------------------------