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.

211 lines
5.1 KiB

  1. /*++
  2. Copyright (c) 1999 Microsoft Corporation
  3. Module Name:
  4. ObjDesc.cpp
  5. Abstract:
  6. Static object description data structures.
  7. This file includes Property, Method, and Event descriptors that
  8. the BDA Support Library will add to client filters and pins
  9. --*/
  10. #include <wdm.h>
  11. #include <limits.h>
  12. #include <unknown.h>
  13. #include <ks.h>
  14. #include <ksmedia.h>
  15. #include <bdatypes.h>
  16. #include <bdamedia.h>
  17. #include <bdasup.h>
  18. #include "bdasupi.h"
  19. #ifdef ALLOC_DATA_PRAGMA
  20. #pragma const_seg("PAGECONST")
  21. #endif // ALLOC_DATA_PRAGMA
  22. #ifdef ALLOC_PRAGMA
  23. #pragma code_seg("PAGE")
  24. #endif // ALLOC_PRAGMA
  25. #if defined(__cplusplus)
  26. extern "C" {
  27. #endif // defined(__cplusplus)
  28. //
  29. // Filter BDA_Topology property Set.
  30. //
  31. // Defines the dispatch routines for the Default BDA_Topology
  32. // properties added to a BDA filter.
  33. //
  34. DEFINE_KSPROPERTY_TABLE(BdaTopologyProperties)
  35. {
  36. DEFINE_KSPROPERTY_ITEM_BDA_NODE_TYPES(
  37. BdaPropertyNodeTypes,
  38. NULL
  39. ),
  40. DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPES(
  41. BdaPropertyPinTypes,
  42. NULL
  43. ),
  44. DEFINE_KSPROPERTY_ITEM_BDA_TEMPLATE_CONNECTIONS(
  45. BdaPropertyTemplateConnections,
  46. NULL
  47. ),
  48. DEFINE_KSPROPERTY_ITEM_BDA_NODE_METHODS(
  49. BdaPropertyNodeMethods,
  50. NULL
  51. ),
  52. DEFINE_KSPROPERTY_ITEM_BDA_NODE_PROPERTIES(
  53. BdaPropertyNodeProperties,
  54. NULL
  55. ),
  56. DEFINE_KSPROPERTY_ITEM_BDA_NODE_EVENTS(
  57. BdaPropertyNodeEvents,
  58. NULL
  59. ),
  60. DEFINE_KSPROPERTY_ITEM_BDA_CONTROLLING_PIN_ID(
  61. BdaPropertyGetControllingPinId,
  62. NULL
  63. ),
  64. DEFINE_KSPROPERTY_ITEM_BDA_NODE_DESCRIPTORS(
  65. BdaPropertyNodeDescriptors,
  66. NULL
  67. )
  68. };
  69. //
  70. // Filter BDA_DeviceConfiguration Method Set.
  71. //
  72. // Defines the dispatch routines for the Default BdaDeviceConfiguration
  73. // properties added to a BDA filter.
  74. //
  75. DEFINE_KSMETHOD_TABLE(BdaDeviceConfigurationMethods)
  76. {
  77. DEFINE_KSMETHOD_ITEM_BDA_CREATE_PIN_FACTORY(
  78. BdaMethodCreatePin,
  79. NULL
  80. ),
  81. DEFINE_KSMETHOD_ITEM_BDA_CREATE_TOPOLOGY(
  82. BdaMethodCreateTopology,
  83. NULL
  84. )
  85. };
  86. //
  87. // Filter Property Sets supported by defualt
  88. //
  89. // This table defines all property sets added to filters by
  90. // the BDA Support Library
  91. //
  92. DEFINE_KSPROPERTY_SET_TABLE(BdaFilterPropertySets)
  93. {
  94. DEFINE_KSPROPERTY_SET
  95. (
  96. &KSPROPSETID_BdaTopology, // Set
  97. SIZEOF_ARRAY(BdaTopologyProperties), // PropertiesCount
  98. BdaTopologyProperties, // PropertyItems
  99. 0, // FastIoCount
  100. NULL // FastIoTable
  101. ),
  102. };
  103. //
  104. // Filter Mtehod Sets supported by defualt
  105. //
  106. // This table defines all method sets added to filters by
  107. // the BDA Support Library
  108. //
  109. DEFINE_KSMETHOD_SET_TABLE(BdaFilterMethodSets)
  110. {
  111. DEFINE_KSMETHOD_SET
  112. (
  113. &KSMETHODSETID_BdaDeviceConfiguration, // Set
  114. SIZEOF_ARRAY(BdaDeviceConfigurationMethods), // PropertiesCount
  115. BdaDeviceConfigurationMethods, // PropertyItems
  116. 0, // FastIoCount
  117. NULL // FastIoTable
  118. ),
  119. };
  120. //
  121. // Pin Control Property Set
  122. //
  123. // Defines the dispatch routines for the BDA Control Properties
  124. // on a pin
  125. //
  126. DEFINE_KSPROPERTY_TABLE(BdaPinControlProperties)
  127. {
  128. DEFINE_KSPROPERTY_ITEM_BDA_PIN_ID(
  129. BdaPropertyGetPinControl,
  130. NULL
  131. ),
  132. DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPE(
  133. BdaPropertyGetPinControl,
  134. NULL
  135. )
  136. };
  137. //
  138. // Pin Property Sets supported by defualt
  139. //
  140. // This table defines all property sets added to pins by
  141. // the BDA Support Library
  142. //
  143. DEFINE_KSPROPERTY_SET_TABLE(BdaPinPropertySets)
  144. {
  145. DEFINE_KSPROPERTY_SET
  146. (
  147. &KSPROPSETID_BdaPinControl, // Set
  148. SIZEOF_ARRAY(BdaPinControlProperties), // PropertiesCount
  149. BdaPinControlProperties, // PropertyItems
  150. 0, // FastIoCount
  151. NULL // FastIoTable
  152. )
  153. };
  154. //
  155. // BDA Pin Automation Table
  156. //
  157. // Lists all Property, Method, and Event Set tables added to a pin's
  158. // automation table by the BDA Support Library
  159. //
  160. DEFINE_KSAUTOMATION_TABLE(BdaDefaultPinAutomation) {
  161. DEFINE_KSAUTOMATION_PROPERTIES(BdaPinPropertySets),
  162. DEFINE_KSAUTOMATION_METHODS_NULL,
  163. DEFINE_KSAUTOMATION_EVENTS_NULL
  164. };
  165. //
  166. // BDA Filter Automation Table
  167. //
  168. // Lists all Property, Method, and Event Set tables added to a filter's
  169. // automation table by the BDA Support Library
  170. //
  171. DEFINE_KSAUTOMATION_TABLE(BdaDefaultFilterAutomation) {
  172. DEFINE_KSAUTOMATION_PROPERTIES(BdaFilterPropertySets),
  173. DEFINE_KSAUTOMATION_METHODS(BdaFilterMethodSets),
  174. DEFINE_KSAUTOMATION_EVENTS_NULL
  175. };
  176. #if defined(__cplusplus)
  177. }
  178. #endif // defined(__cplusplus)