home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the 3D Game Programming Gurus / gurus.iso / DirectX / dx9sdkcp.exe / SDK (C++) / Include / bdamedia.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-11-12  |  53.3 KB  |  1,555 lines

  1. //------------------------------------------------------------------------------
  2. // File: BDAMedia.h
  3. //
  4. // Desc: Broadcast Driver Architecture Multimedia Definitions.
  5. //
  6. // Copyright (c) 1996 - 2001, Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8.  
  9.  
  10. #if !defined(_KSMEDIA_)
  11. #error KSMEDIA.H must be included before BDAMEDIA.H
  12. #endif // !defined(_KSMEDIA_)
  13.  
  14. #if !defined(_BDATYPES_)
  15. #error BDATYPES.H must be included before BDAMEDIA.H
  16. #endif // !defined(_BDATYPES_)
  17.  
  18. #if !defined(_BDAMEDIA_)
  19. #define _BDAMEDIA_
  20.  
  21. #if defined(__cplusplus)
  22. extern "C" {
  23. #endif // defined(__cplusplus)
  24.  
  25.  
  26.  
  27. //===========================================================================
  28. //
  29. //  KSProperty Set Structure Definitions for BDA
  30. //
  31. //===========================================================================
  32.  
  33. typedef struct _KSP_BDA_NODE_PIN {
  34.     KSPROPERTY      Property;
  35.     ULONG           ulNodeType;
  36.     ULONG           ulInputPinId;
  37.     ULONG           ulOutputPinId;
  38. } KSP_BDA_NODE_PIN, *PKSP_BDA_NODE_PIN;
  39.  
  40.  
  41. typedef struct _KSM_BDA_PIN
  42. {
  43.     KSMETHOD    Method;
  44.     union
  45.     {
  46.         ULONG       PinId;
  47.         ULONG       PinType;
  48.     };
  49.     ULONG       Reserved;
  50. } KSM_BDA_PIN, * PKSM_BDA_PIN;
  51.  
  52.  
  53. typedef struct _KSM_BDA_PIN_PAIR
  54. {
  55.     KSMETHOD    Method;
  56.     union
  57.     {
  58.         ULONG       InputPinId;
  59.         ULONG       InputPinType;
  60.     };
  61.     union
  62.     {
  63.         ULONG       OutputPinId;
  64.         ULONG       OutputPinType;
  65.     };
  66. } KSM_BDA_PIN_PAIR, * PKSM_BDA_PIN_PAIR;
  67.  
  68.  
  69. typedef struct {
  70.     KSP_NODE        Property;
  71.     ULONG           EsPid;
  72. } KSP_NODE_ESPID, *PKSP_NODE_ESPID;
  73.  
  74.  
  75.  
  76. //===========================================================================
  77. //
  78. //  BDA Data Range definitions.  Includes specifier definitions.
  79. //
  80. //===========================================================================
  81.  
  82. //  Antenna Signal Formats
  83. //
  84.  
  85. typedef struct tagKS_DATARANGE_BDA_ANTENNA {
  86.    KSDATARANGE                  DataRange;
  87.  
  88.    //   Antenna specifier can go here if required
  89.    //
  90. } KS_DATARANGE_BDA_ANTENNA, *PKS_DATARANGE_BDA_ANTENNA;
  91.  
  92.  
  93.  
  94. //  Transport Formats
  95. //
  96.  
  97. typedef struct tagBDA_TRANSPORT_INFO {
  98.     ULONG           ulcbPhyiscalPacket; // Size, in bytes, of a physical packet
  99.                                         // (e.g. Satellite link payload size.
  100.     ULONG           ulcbPhyiscalFrame;  // Size, in bytes, of each physical frame
  101.                                         // 0 indicates no HW requirement
  102.     ULONG           ulcbPhyiscalFrameAlignment; // Capture buffer alignment in bytes
  103.                                                 // 0 and 1 indicate no alignment requirements
  104.     REFERENCE_TIME  AvgTimePerFrame; // Normal ActiveMovie units (100 nS)
  105.  
  106. } BDA_TRANSPORT_INFO, *PBDA_TRANSPORT_INFO;
  107.  
  108. typedef struct tagKS_DATARANGE_BDA_TRANSPORT {
  109.    KSDATARANGE                  DataRange;
  110.    BDA_TRANSPORT_INFO           BdaTransportInfo;
  111.  
  112.    //   Transport specifier can go here if required
  113.    //
  114. } KS_DATARANGE_BDA_TRANSPORT, *PKS_DATARANGE_BDA_TRANSPORT;
  115.  
  116.  
  117. //===========================================================================
  118. //  BDA Event Guids
  119. //
  120. //      These are sent by the IBroadcastEvent service on the graph.
  121. //      To receive,
  122. //          0) Implement IBroadcastEvent in your receiving object - this has one Method on it: Fire() 
  123. //          1) QI the graphs service provider for SID_SBroadcastEventService
  124. //                 for the IID_IBroadcastEvent object
  125. //          2) OR create the event service (CLSID_BroadcastEventService) if not already there
  126. //                 and register it
  127. //          3) QI that object for it's IConnectionPoint interface (*pCP)
  128. //          4) Advise your object on *pCP  (e.g. pCP->Advise(static_cast<IBroadCastEvent*>(this), &dwCookie)
  129. //          5) Unadvise when done..
  130. //          6) Implement IBroadcastEvent::Fire(GUID gEventID)
  131. //             Check for relevant event below and deal with it appropriatly...
  132. //===========================================================================
  133.  
  134. // {9D7E6235-4B7D-425d-A6D1-D717C33B9C4C}
  135. #define STATIC_EVENTID_TuningChanged \
  136.     0x9d7e6235, 0x4b7d, 0x425d, 0xa6, 0xd1, 0xd7, 0x17, 0xc3, 0x3b, 0x9c, 0x4c
  137. DEFINE_GUIDSTRUCT("9D7E6235-4B7D-425d-A6D1-D717C33B9C4C", EVENTID_TuningChanged);
  138. #define EVENTID_TuningChanged DEFINE_GUIDNAMED(EVENTID_TuningChanged)
  139.  
  140. // {2A65C528-2249-4070-AC16-00390CDFB2DD}
  141. #define STATIC_EVENTID_CADenialCountChanged \
  142.     0x2a65c528, 0x2249, 0x4070, 0xac, 0x16, 0x0, 0x39, 0xc, 0xdf, 0xb2, 0xdd
  143. DEFINE_GUIDSTRUCT("2A65C528-2249-4070-AC16-00390CDFB2DD", EVENTID_CADenialCountChanged);
  144. #define EVENTID_CADenialCountChanged DEFINE_GUIDNAMED(EVENTID_CADenialCountChanged)
  145.  
  146. // {6D9CFAF2-702D-4b01-8DFF-6892AD20D191}
  147. #define STATIC_EVENTID_SignalStatusChanged \
  148.     0x6d9cfaf2, 0x702d, 0x4b01, 0x8d, 0xff, 0x68, 0x92, 0xad, 0x20, 0xd1, 0x91
  149. DEFINE_GUIDSTRUCT("6D9CFAF2-702D-4b01-8DFF-6892AD20D191", EVENTID_SignalStatusChanged);
  150. #define EVENTID_SignalStatusChanged DEFINE_GUIDNAMED(EVENTID_SignalStatusChanged)
  151.  
  152. //===========================================================================
  153. //
  154. //  BDA Stream Format GUIDs
  155. //
  156. //===========================================================================
  157.  
  158. #define STATIC_KSDATAFORMAT_TYPE_BDA_ANTENNA\
  159.     0x71985f41, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  160. DEFINE_GUIDSTRUCT("71985F41-1CA1-11d3-9CC8-00C04F7971E0", KSDATAFORMAT_TYPE_BDA_ANTENNA);
  161. #define KSDATAFORMAT_TYPE_BDA_ANTENNA DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_ANTENNA)
  162.  
  163.  
  164. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT\
  165.     0xf4aeb342, 0x0329, 0x4fdd, 0xa8, 0xfd, 0x4a, 0xff, 0x49, 0x26, 0xc9, 0x78
  166. DEFINE_GUIDSTRUCT("F4AEB342-0329-4fdd-A8FD-4AFF4926C978", KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT);
  167. #define KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT)
  168.  
  169.  
  170. #define STATIC_KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT\
  171.     0x8deda6fd, 0xac5f, 0x4334, 0x8e, 0xcf, 0xa4, 0xba, 0x8f, 0xa7, 0xd0, 0xf0
  172. DEFINE_GUIDSTRUCT("8DEDA6FD-AC5F-4334-8ECF-A4BA8FA7D0F0", KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT);
  173. #define KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT)
  174.  
  175.  
  176. #define STATIC_KSDATAFORMAT_TYPE_BDA_IF_SIGNAL\
  177.     0x61be0b47, 0xa5eb, 0x499b, 0x9a, 0x85, 0x5b, 0x16, 0xc0, 0x7f, 0x12, 0x58
  178. DEFINE_GUIDSTRUCT("61BE0B47-A5EB-499b-9A85-5B16C07F1258", KSDATAFORMAT_TYPE_BDA_IF_SIGNAL);
  179. #define KSDATAFORMAT_TYPE_BDA_IF_SIGNAL DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IF_SIGNAL)
  180.  
  181.  
  182. #define STATIC_KSDATAFORMAT_TYPE_MPEG2_SECTIONS\
  183.     0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5
  184. DEFINE_GUIDSTRUCT("455F176C-4B06-47CE-9AEF-8CAEF73DF7B5", KSDATAFORMAT_TYPE_MPEG2_SECTIONS);
  185. #define KSDATAFORMAT_TYPE_MPEG2_SECTIONS DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_SECTIONS)
  186.  
  187.  
  188. #define STATIC_KSDATAFORMAT_SUBTYPE_ATSC_SI\
  189.     0xb3c7397c, 0xd303, 0x414d, 0xb3, 0x3c, 0x4e, 0xd2, 0xc9, 0xd2, 0x97, 0x33
  190. DEFINE_GUIDSTRUCT("B3C7397C-D303-414D-B33C-4ED2C9D29733", KSDATAFORMAT_SUBTYPE_ATSC_SI);
  191. #define KSDATAFORMAT_SUBTYPE_ATSC_SI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ATSC_SI)
  192.  
  193.  
  194. #define STATIC_KSDATAFORMAT_SUBTYPE_DVB_SI\
  195.     0xe9dd31a3, 0x221d, 0x4adb, 0x85, 0x32, 0x9a, 0xf3, 0x9, 0xc1, 0xa4, 0x8
  196. DEFINE_GUIDSTRUCT("e9dd31a3-221d-4adb-8532-9af309c1a408", KSDATAFORMAT_SUBTYPE_DVB_SI);
  197. #define KSDATAFORMAT_SUBTYPE_DVB_SI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DVB_SI)
  198.  
  199.  
  200. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP\
  201.     0x762e3f66, 0x336f, 0x48d1, 0xbf, 0x83, 0x2b, 0x0, 0x35, 0x2c, 0x11, 0xf0
  202. DEFINE_GUIDSTRUCT("762E3F66-336F-48d1-BF83-2B00352C11F0", KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP);
  203. #define KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP)
  204.  
  205. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP\
  206.     0x951727db, 0xd2ce, 0x4528, 0x96, 0xf6, 0x33, 0x1, 0xfa, 0xbb, 0x2d, 0xe0
  207. DEFINE_GUIDSTRUCT("951727DB-D2CE-4528-96F6-3301FABB2DE0", KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP);
  208. #define KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP)
  209.  
  210. //===========================================================================
  211. //
  212. //  KSPinName Definitions for BDA
  213. //
  214. //===========================================================================
  215.  
  216. //  Pin name for a BDA transport pin
  217. //
  218. // {78216A81-CFA8-493e-9711-36A61C08BD9D}
  219. //
  220. #define STATIC_PINNAME_BDA_TRANSPORT \
  221.     0x78216a81, 0xcfa8, 0x493e, 0x97, 0x11, 0x36, 0xa6, 0x1c, 0x8, 0xbd, 0x9d
  222. DEFINE_GUIDSTRUCT("78216A81-CFA8-493e-9711-36A61C08BD9D", PINNAME_BDA_TRANSPORT);
  223. #define PINNAME_BDA_TRANSPORT DEFINE_GUIDNAMED(PINNAME_BDA_TRANSPORT)
  224.  
  225.  
  226. //  Pin name for a BDA analog video pin
  227. //
  228. // {5C0C8281-5667-486c-8482-63E31F01A6E9}
  229. //
  230. #define STATIC_PINNAME_BDA_ANALOG_VIDEO \
  231.     0x5c0c8281, 0x5667, 0x486c, 0x84, 0x82, 0x63, 0xe3, 0x1f, 0x1, 0xa6, 0xe9
  232. DEFINE_GUIDSTRUCT("5C0C8281-5667-486c-8482-63E31F01A6E9", PINNAME_BDA_ANALOG_VIDEO);
  233. #define PINNAME_BDA_ANALOG_VIDEO DEFINE_GUIDNAMED(PINNAME_BDA_ANALOG_VIDEO)
  234.  
  235.  
  236. //  Pin name for a BDA analog audio pin
  237. //
  238. // {D28A580A-9B1F-4b0c-9C33-9BF0A8EA636B}
  239. //
  240. #define STATIC_PINNAME_BDA_ANALOG_AUDIO \
  241.     0xd28a580a, 0x9b1f, 0x4b0c, 0x9c, 0x33, 0x9b, 0xf0, 0xa8, 0xea, 0x63, 0x6b
  242. DEFINE_GUIDSTRUCT("D28A580A-9B1F-4b0c-9C33-9BF0A8EA636B", PINNAME_BDA_ANALOG_AUDIO);
  243. #define PINNAME_BDA_ANALOG_AUDIO DEFINE_GUIDNAMED(PINNAME_BDA_ANALOG_AUDIO)
  244.  
  245.  
  246. //  Pin name for a BDA FM Radio pin
  247. //
  248. // {D2855FED-B2D3-4eeb-9BD0-193436A2F890}
  249. //
  250. #define STATIC_PINNAME_BDA_FM_RADIO \
  251.     0xd2855fed, 0xb2d3, 0x4eeb, 0x9b, 0xd0, 0x19, 0x34, 0x36, 0xa2, 0xf8, 0x90
  252. DEFINE_GUIDSTRUCT("D2855FED-B2D3-4eeb-9BD0-193436A2F890", PINNAME_BDA_FM_RADIO);
  253. #define PINNAME_BDA_FM_RADIO DEFINE_GUIDNAMED(PINNAME_BDA_FM_RADIO)
  254.  
  255.  
  256. //  Pin name for a BDA Intermediate Frequency pin
  257. //
  258. // {1A9D4A42-F3CD-48a1-9AEA-71DE133CBE14}
  259. //
  260. #define STATIC_PINNAME_BDA_IF_PIN \
  261.     0x1a9d4a42, 0xf3cd, 0x48a1, 0x9a, 0xea, 0x71, 0xde, 0x13, 0x3c, 0xbe, 0x14
  262. DEFINE_GUIDSTRUCT("1A9D4A42-F3CD-48a1-9AEA-71DE133CBE14", PINNAME_BDA_IF_PIN);
  263. #define PINNAME_BDA_IF_PIN DEFINE_GUIDNAMED(PINNAME_BDA_IF_PIN)
  264.  
  265.  
  266. //  Pin name for a BDA Open Cable PSIP pin
  267. //
  268. // {297BB104-E5C9-4ACE-B123-95C3CBB24D4F}
  269. //
  270. #define STATIC_PINNAME_BDA_OPENCABLE_PSIP_PIN \
  271.     0x297bb104, 0xe5c9, 0x4ace, 0xb1, 0x23, 0x95, 0xc3, 0xcb, 0xb2, 0x4d, 0x4f
  272. DEFINE_GUIDSTRUCT("297BB104-E5C9-4ACE-B123-95C3CBB24D4F", PINNAME_BDA_OPENCABLE_PSIP_PIN);
  273. #define PINNAME_BDA_OPENCABLE_PSIP_PIN DEFINE_GUIDNAMED(PINNAME_BDA_OPENCABLE_PSIP_PIN)
  274.  
  275.  
  276. //===========================================================================
  277. //
  278. //  KSProperty Set Definitions for BDA
  279. //
  280. //===========================================================================
  281.  
  282.  
  283. //------------------------------------------------------------
  284. //
  285. //  BDA Network Ethernet Filter Property Set
  286. //
  287. // {71985F43-1CA1-11d3-9CC8-00C04F7971E0}
  288. //
  289. #define STATIC_KSPROPSETID_BdaEthernetFilter \
  290.     0x71985f43, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  291. DEFINE_GUIDSTRUCT("71985F43-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaEthernetFilter);
  292. #define KSPROPSETID_BdaEthernetFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaEthernetFilter)
  293.  
  294. typedef enum {
  295.     KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE = 0,
  296.     KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST,
  297.     KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_MODE
  298. } KSPROPERTY_BDA_ETHERNET_FILTER;
  299.  
  300. #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  301.     DEFINE_KSPROPERTY_ITEM(\
  302.         KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE,\
  303.         (GetHandler),\
  304.         sizeof(KSPROPERTY),\
  305.         sizeof(ULONG),\
  306.         FALSE,\
  307.         NULL, 0, NULL, NULL, 0)
  308.  
  309. #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  310.     DEFINE_KSPROPERTY_ITEM(\
  311.         KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST,\
  312.         (GetHandler),\
  313.         sizeof(KSPROPERTY),\
  314.         sizeof(BDA_ETHERNET_ADDRESS_LIST),\
  315.         (SetHandler),\
  316.         NULL, 0, NULL, NULL, 0)
  317.  
  318. #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  319.     DEFINE_KSPROPERTY_ITEM(\
  320.         KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_MODE,\
  321.         (GetHandler),\
  322.         sizeof(KSPROPERTY),\
  323.         sizeof(BDA_MULTICAST_MODE),\
  324.         (SetHandler),\
  325.         NULL, 0, NULL, NULL, 0)
  326.  
  327.  
  328.  
  329. //------------------------------------------------------------
  330. //
  331. //  BDA Network IPv4 Filter Property Set
  332. //
  333. // {71985F44-1CA1-11d3-9CC8-00C04F7971E0}
  334. //
  335. #define STATIC_KSPROPSETID_BdaIPv4Filter \
  336.     0x71985f44, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  337. DEFINE_GUIDSTRUCT("71985F44-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaIPv4Filter);
  338. #define KSPROPSETID_BdaIPv4Filter DEFINE_GUIDNAMED(KSPROPSETID_BdaIPv4Filter)
  339.  
  340. typedef enum {
  341.     KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE = 0,
  342.     KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST,
  343.     KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_MODE
  344. } KSPROPERTY_BDA_IPv4_FILTER;
  345.  
  346. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  347.     DEFINE_KSPROPERTY_ITEM(\
  348.         KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE,\
  349.         (GetHandler),\
  350.         sizeof(KSPROPERTY),\
  351.         sizeof(ULONG),\
  352.         FALSE,\
  353.         NULL, 0, NULL, NULL, 0)
  354.  
  355. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  356.     DEFINE_KSPROPERTY_ITEM(\
  357.         KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST,\
  358.         (GetHandler),\
  359.         sizeof(KSPROPERTY),\
  360.         sizeof(BDA_IPv4_ADDRESS_LIST),\
  361.         (SetHandler),\
  362.         NULL, 0, NULL, NULL, 0)
  363.  
  364. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  365.     DEFINE_KSPROPERTY_ITEM(\
  366.         KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_MODE,\
  367.         (GetHandler),\
  368.         sizeof(KSPROPERTY),\
  369.         sizeof(BDA_MULTICAST_MODE),\
  370.         (SetHandler),\
  371.         NULL, 0, NULL, NULL, 0)
  372.  
  373.  
  374.  
  375. //------------------------------------------------------------
  376. //
  377. //  BDA Network IPv6 Filter Property Set
  378. //
  379. // {E1785A74-2A23-4fb3-9245-A8F88017EF33}
  380. //
  381. #define STATIC_KSPROPSETID_BdaIPv6Filter \
  382.     0xe1785a74, 0x2a23, 0x4fb3, 0x92, 0x45, 0xa8, 0xf8, 0x80, 0x17, 0xef, 0x33
  383. DEFINE_GUIDSTRUCT("E1785A74-2A23-4fb3-9245-A8F88017EF33", KSPROPSETID_BdaIPv6Filter);
  384. #define KSPROPSETID_BdaIPv6Filter DEFINE_GUIDNAMED(KSPROPSETID_BdaIPv6Filter)
  385.  
  386. typedef enum {
  387.     KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE = 0,
  388.     KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST,
  389.     KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_MODE
  390. } KSPROPERTY_BDA_IPv6_FILTER;
  391.  
  392. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  393.     DEFINE_KSPROPERTY_ITEM(\
  394.         KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE,\
  395.         (GetHandler),\
  396.         sizeof(KSPROPERTY),\
  397.         sizeof(ULONG),\
  398.         FALSE,\
  399.         NULL, 0, NULL, NULL, 0)
  400.  
  401. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  402.     DEFINE_KSPROPERTY_ITEM(\
  403.         KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST,\
  404.         (GetHandler),\
  405.         sizeof(KSPROPERTY),\
  406.         sizeof(BDA_IPv6_ADDRESS_LIST),\
  407.         (SetHandler),\
  408.         NULL, 0, NULL, NULL, 0)
  409.  
  410. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  411.     DEFINE_KSPROPERTY_ITEM(\
  412.         KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_MODE,\
  413.         (GetHandler),\
  414.         sizeof(KSPROPERTY),\
  415.         sizeof(BDA_MULTICAST_MODE),\
  416.         (SetHandler),\
  417.         NULL, 0, NULL, NULL, 0)
  418.  
  419.  
  420. //------------------------------------------------------------
  421. //
  422. //
  423. //  BDA Signal Statistics Property Set
  424. //
  425. //  Used to get signal statistics from a control node or a pin.
  426. //  Set NodeId == -1 to get properties from the pin.
  427. //
  428. //  {1347D106-CF3A-428a-A5CB-AC0D9A2A4338}
  429. //
  430. #define STATIC_KSPROPSETID_BdaSignalStats \
  431.     0x1347d106, 0xcf3a, 0x428a, 0xa5, 0xcb, 0xac, 0xd, 0x9a, 0x2a, 0x43, 0x38
  432. DEFINE_GUIDSTRUCT("1347D106-CF3A-428a-A5CB-AC0D9A2A4338", KSPROPSETID_BdaSignalStats);
  433. #define KSPROPSETID_BdaSignalStats DEFINE_GUIDNAMED(KSPROPSETID_BdaSignalStats)
  434.  
  435. typedef enum {
  436.     KSPROPERTY_BDA_SIGNAL_STRENGTH = 0,
  437.     KSPROPERTY_BDA_SIGNAL_QUALITY,
  438.     KSPROPERTY_BDA_SIGNAL_PRESENT,
  439.     KSPROPERTY_BDA_SIGNAL_LOCKED,
  440.     KSPROPERTY_BDA_SAMPLE_TIME
  441. } KSPROPERTY_BDA_SIGNAL_STATS;
  442.  
  443. //  OPTIONAL
  444. //  Carrier strength in mDb (1/1000 of a DB).
  445. //
  446. //  A strength of 0 is nominal strength as expected for the given
  447. //  type of broadcast network.
  448. //
  449. //  Sub-nominal strengths are reported as positive mDb
  450. //
  451. //  Super-nominal strengths are reported as negative mDb
  452. //
  453. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_STRENGTH(GetHandler, SetHandler)\
  454.     DEFINE_KSPROPERTY_ITEM(\
  455.         KSPROPERTY_BDA_SIGNAL_STRENGTH,\
  456.         (GetHandler),\
  457.         sizeof(KSP_NODE),\
  458.         sizeof(LONG),\
  459.         (SetHandler),\
  460.         NULL, 0, NULL, NULL, 0)
  461.  
  462. //  OPTIONAL
  463. //  Amount of data successfully extracted from the signal as a percent.
  464. //
  465. //  Signal Quality is usually reported by the demodulation node and is
  466. //  a representation of how much of the original data could be extracted
  467. //  from the signal.
  468. //
  469. //  In the case of Analog Signals, this percentage can be
  470. //  computed by examining the timing of HSync and VSync as will as by
  471. //  looking at information contained in HBlanking and VBlanking intervals.
  472. //
  473. //  In the case of Digital Signals, this percentage can be
  474. //  computed by examining packet CRCs and FEC confidence values.
  475. //
  476. //  100 percent is ideal.
  477. //  95 percent shows very little (almost unnoticable) artifacts when rendered.
  478. //  90 percent contains few enough artifacts as to be easily viewable.
  479. //  80 percent is the minimum level to be viewable.
  480. //  60 percent is the minimum level to expect data services
  481. //  (including EPG) to work.
  482. //  20 percent indicates that the demodulator knows that a properly modulated
  483. //  signal exists but can't produce enough data to be useful.
  484. //
  485. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_QUALITY(GetHandler, SetHandler)\
  486.     DEFINE_KSPROPERTY_ITEM(\
  487.         KSPROPERTY_BDA_SIGNAL_QUALITY,\
  488.         (GetHandler),\
  489.         sizeof(KSP_NODE),\
  490.         sizeof(LONG),\
  491.         (SetHandler),\
  492.         NULL, 0, NULL, NULL, 0)
  493.  
  494. //  REQUIRED
  495. //  True if a signal carrier is present.
  496. //
  497. //  Should be returned by the RF tuner node.
  498. //
  499. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_PRESENT(GetHandler, SetHandler)\
  500.     DEFINE_KSPROPERTY_ITEM(\
  501.         KSPROPERTY_BDA_SIGNAL_PRESENT,\
  502.         (GetHandler),\
  503.         sizeof(KSP_NODE),\
  504.         sizeof(BOOL),\
  505.         (SetHandler),\
  506.         NULL, 0, NULL, NULL, 0)
  507.  
  508. //  REQUIRED
  509. //  True if the signal can be locked.
  510. //
  511. //  Ususally represents PLL lock when returned by the RF Tuner Node.
  512. //
  513. //  Represents Signal Quality of at least 20% when returned by the
  514. //  demodulator node.
  515. //
  516. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_LOCKED(GetHandler, SetHandler)\
  517.     DEFINE_KSPROPERTY_ITEM(\
  518.         KSPROPERTY_BDA_SIGNAL_LOCKED,\
  519.         (GetHandler),\
  520.         sizeof(KSP_NODE),\
  521.         sizeof(BOOL),\
  522.         (SetHandler),\
  523.         NULL, 0, NULL, NULL, 0)
  524.  
  525. //  OPTIONAL
  526. //  Indicates the sample time overwhich signal level and quality are
  527. //  averaged.
  528. //
  529. //  Each time a signal statistics property is requested, the node should
  530. //  report the average value for the last n milliseconds where n is the
  531. //  value set by this property.  If no value is set or if the driver does
  532. //  not support this property, the driver should default to 
  533. //  100 millisecond sample times.
  534. //
  535. //  The driver may report values for the most recently completed sample
  536. //  period.
  537. //
  538. #define DEFINE_KSPROPERTY_ITEM_BDA_SAMPLE_TIME(GetHandler, SetHandler)\
  539.     DEFINE_KSPROPERTY_ITEM(\
  540.         KSPROPERTY_BDA_SAMPLE_TIME,\
  541.         (GetHandler),\
  542.         sizeof(KSP_NODE),\
  543.         sizeof(LONG),\
  544.         (SetHandler),\
  545.         NULL, 0, NULL, NULL, 0)
  546.  
  547.  
  548.  
  549. //------------------------------------------------------------
  550. //
  551. //
  552. //  BDA Change Sync Method Set
  553. //
  554. // {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}
  555. //
  556. #define STATIC_KSMETHODSETID_BdaChangeSync \
  557.     0xfd0a5af3, 0xb41d, 0x11d2, 0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  558. DEFINE_GUIDSTRUCT("FD0A5AF3-B41D-11d2-9C95-00C04F7971E0", KSMETHODSETID_BdaChangeSync);
  559. #define KSMETHODSETID_BdaChangeSync DEFINE_GUIDNAMED(KSMETHODSETID_BdaChangeSync)
  560.  
  561. typedef enum {
  562.     KSMETHOD_BDA_START_CHANGES = 0,
  563.     KSMETHOD_BDA_CHECK_CHANGES,
  564.     KSMETHOD_BDA_COMMIT_CHANGES,
  565.     KSMETHOD_BDA_GET_CHANGE_STATE
  566. } KSMETHOD_BDA_CHANGE_SYNC;
  567.  
  568. #define DEFINE_KSMETHOD_ITEM_BDA_START_CHANGES(MethodHandler, SupportHandler)\
  569.     DEFINE_KSMETHOD_ITEM(\
  570.         KSMETHOD_BDA_START_CHANGES,\
  571.         KSMETHOD_TYPE_NONE,\
  572.         (MethodHandler),\
  573.         sizeof(KSMETHOD),\
  574.         0,\
  575.         SupportHandler)
  576.  
  577. #define DEFINE_KSMETHOD_ITEM_BDA_CHECK_CHANGES(MethodHandler, SupportHandler)\
  578.     DEFINE_KSMETHOD_ITEM(\
  579.         KSMETHOD_BDA_CHECK_CHANGES,\
  580.         KSMETHOD_TYPE_NONE,\
  581.         (MethodHandler),\
  582.         sizeof(KSMETHOD),\
  583.         0,\
  584.         SupportHandler)
  585.  
  586. #define DEFINE_KSMETHOD_ITEM_BDA_COMMIT_CHANGES(MethodHandler, SupportHandler)\
  587.     DEFINE_KSMETHOD_ITEM(\
  588.         KSMETHOD_BDA_COMMIT_CHANGES,\
  589.         KSMETHOD_TYPE_NONE,\
  590.         (MethodHandler),\
  591.         sizeof(KSMETHOD),\
  592.         0,\
  593.         SupportHandler)
  594.  
  595. #define DEFINE_KSMETHOD_ITEM_BDA_GET_CHANGE_STATE(MethodHandler, SupportHandler)\
  596.     DEFINE_KSMETHOD_ITEM(\
  597.         KSMETHOD_BDA_GET_CHANGE_STATE,\
  598.         KSMETHOD_TYPE_READ,\
  599.         (MethodHandler),\
  600.         sizeof(KSMETHOD),\
  601.         0,\
  602.         SupportHandler)
  603.  
  604.  
  605.  
  606. //------------------------------------------------------------
  607. //
  608. //
  609. //  BDA Device Configuration Method Set
  610. //
  611. // {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
  612. //
  613. #define STATIC_KSMETHODSETID_BdaDeviceConfiguration \
  614.     0x71985f45, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  615. DEFINE_GUIDSTRUCT("71985F45-1CA1-11d3-9CC8-00C04F7971E0", KSMETHODSETID_BdaDeviceConfiguration);
  616. #define KSMETHODSETID_BdaDeviceConfiguration DEFINE_GUIDNAMED(KSMETHODSETID_BdaDeviceConfiguration)
  617.  
  618. typedef enum {
  619.     KSMETHOD_BDA_CREATE_PIN_FACTORY = 0,
  620.     KSMETHOD_BDA_DELETE_PIN_FACTORY,
  621.     KSMETHOD_BDA_CREATE_TOPOLOGY
  622. } KSMETHOD_BDA_DEVICE_CONFIGURATION;
  623.  
  624. #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_PIN_FACTORY(MethodHandler, SupportHandler)\
  625.     DEFINE_KSMETHOD_ITEM(\
  626.         KSMETHOD_BDA_CREATE_PIN_FACTORY,\
  627.         KSMETHOD_TYPE_READ,\
  628.         (MethodHandler),\
  629.         sizeof(KSM_BDA_PIN),\
  630.         sizeof(ULONG),\
  631.         SupportHandler)
  632.  
  633. #define DEFINE_KSMETHOD_ITEM_BDA_DELETE_PIN_FACTORY(MethodHandler, SupportHandler)\
  634.     DEFINE_KSMETHOD_ITEM(\
  635.         KSMETHOD_BDA_DELETE_PIN_FACTORY,\
  636.         KSMETHOD_TYPE_NONE,\
  637.         (MethodHandler),\
  638.         sizeof(KSM_BDA_PIN),\
  639.         0,\
  640.         SupportHandler)
  641.  
  642. #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_TOPOLOGY(MethodHandler, SupportHandler)\
  643.     DEFINE_KSMETHOD_ITEM(\
  644.         KSMETHOD_BDA_CREATE_TOPOLOGY,\
  645.         KSMETHOD_TYPE_WRITE,\
  646.         (MethodHandler),\
  647.         sizeof(KSM_BDA_PIN_PAIR),\
  648.         0,\
  649.         SupportHandler)
  650.  
  651.  
  652.  
  653. //------------------------------------------------------------
  654. //
  655. //
  656. //  BDA Topology Property Set
  657. //
  658. // {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
  659. //
  660. #define STATIC_KSPROPSETID_BdaTopology \
  661.     0xa14ee835, 0x0a23, 0x11d3, 0x9c, 0xc7, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  662. DEFINE_GUIDSTRUCT("A14EE835-0A23-11d3-9CC7-00C04F7971E0", KSPROPSETID_BdaTopology);
  663. #define KSPROPSETID_BdaTopology DEFINE_GUIDNAMED(KSPROPSETID_BdaTopology)
  664.  
  665. typedef enum {
  666.     KSPROPERTY_BDA_NODE_TYPES,
  667.     KSPROPERTY_BDA_PIN_TYPES,
  668.     KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,
  669.     KSPROPERTY_BDA_NODE_METHODS,
  670.     KSPROPERTY_BDA_NODE_PROPERTIES,
  671.     KSPROPERTY_BDA_NODE_EVENTS,
  672.     KSPROPERTY_BDA_CONTROLLING_PIN_ID,
  673.     KSPROPERTY_BDA_NODE_DESCRIPTORS
  674.  }KSPROPERTY_BDA_TOPOLOGY;
  675.  
  676. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_TYPES(GetHandler, SetHandler)\
  677.     DEFINE_KSPROPERTY_ITEM(\
  678.         KSPROPERTY_BDA_NODE_TYPES,\
  679.         (GetHandler),\
  680.         sizeof(KSPROPERTY),\
  681.         0,\
  682.         FALSE,\
  683.         NULL, 0, NULL, NULL, 0)
  684.  
  685. #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPES(GetHandler, SetHandler)\
  686.     DEFINE_KSPROPERTY_ITEM(\
  687.         KSPROPERTY_BDA_PIN_TYPES,\
  688.         (GetHandler),\
  689.         sizeof(KSPROPERTY),\
  690.         0,\
  691.         FALSE,\
  692.         NULL, 0, NULL, NULL, 0)
  693.  
  694. #define DEFINE_KSPROPERTY_ITEM_BDA_TEMPLATE_CONNECTIONS(GetHandler, SetHandler)\
  695.     DEFINE_KSPROPERTY_ITEM(\
  696.         KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,\
  697.         (GetHandler),\
  698.         sizeof(KSPROPERTY),\
  699.         sizeof( BDA_TEMPLATE_CONNECTION),\
  700.         FALSE,\
  701.         NULL, 0, NULL, NULL, 0)
  702.  
  703. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_METHODS(GetHandler, SetHandler)\
  704.     DEFINE_KSPROPERTY_ITEM(\
  705.         KSPROPERTY_BDA_NODE_METHODS,\
  706.         (GetHandler),\
  707.         sizeof(KSP_NODE),\
  708.         0,\
  709.         FALSE,\
  710.         NULL, 0, NULL, NULL, 0)
  711.  
  712. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_PROPERTIES(GetHandler, SetHandler)\
  713.     DEFINE_KSPROPERTY_ITEM(\
  714.         KSPROPERTY_BDA_NODE_PROPERTIES,\
  715.         (GetHandler),\
  716.         sizeof(KSP_NODE),\
  717.         0,\
  718.         FALSE,\
  719.         NULL, 0, NULL, NULL, 0)
  720.  
  721. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_EVENTS(GetHandler, SetHandler)\
  722.     DEFINE_KSPROPERTY_ITEM(\
  723.         KSPROPERTY_BDA_NODE_EVENTS,\
  724.         (GetHandler),\
  725.         sizeof(KSP_NODE),\
  726.         0,\
  727.         FALSE,\
  728.         NULL, 0, NULL, NULL, 0)
  729.  
  730. #define DEFINE_KSPROPERTY_ITEM_BDA_CONTROLLING_PIN_ID(GetHandler, SetHandler)\
  731.     DEFINE_KSPROPERTY_ITEM(\
  732.         KSPROPERTY_BDA_CONTROLLING_PIN_ID,\
  733.         (GetHandler),\
  734.         sizeof(KSP_BDA_NODE_PIN),\
  735.         sizeof( ULONG),\
  736.         FALSE,\
  737.         NULL, 0, NULL, NULL, 0)
  738.  
  739. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_DESCRIPTORS(GetHandler, SetHandler)\
  740.     DEFINE_KSPROPERTY_ITEM(\
  741.         KSPROPERTY_BDA_NODE_DESCRIPTORS,\
  742.         (GetHandler),\
  743.         sizeof(KSPROPERTY),\
  744.         0,\
  745.         FALSE,\
  746.         NULL, 0, NULL, NULL, 0)
  747.  
  748.  
  749.  
  750. //------------------------------------------------------------
  751. //
  752. //
  753. //  BDA Pin Control Property Set
  754. //
  755. // {0DED49D5-A8B7-4d5d-97A1-12B0C195874D}
  756. //
  757. #define STATIC_KSPROPSETID_BdaPinControl \
  758.     0xded49d5, 0xa8b7, 0x4d5d, 0x97, 0xa1, 0x12, 0xb0, 0xc1, 0x95, 0x87, 0x4d
  759. DEFINE_GUIDSTRUCT("0DED49D5-A8B7-4d5d-97A1-12B0C195874D", KSPROPSETID_BdaPinControl);
  760. #define KSPROPSETID_BdaPinControl DEFINE_GUIDNAMED(KSPROPSETID_BdaPinControl)
  761.  
  762. typedef enum {
  763.     KSPROPERTY_BDA_PIN_ID = 0,
  764.     KSPROPERTY_BDA_PIN_TYPE
  765. } KSPROPERTY_BDA_PIN_CONTROL;
  766.  
  767. #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_ID(GetHandler, SetHandler)\
  768.     DEFINE_KSPROPERTY_ITEM(\
  769.         KSPROPERTY_BDA_PIN_ID,\
  770.         (GetHandler),\
  771.         sizeof( KSPROPERTY),\
  772.         sizeof( ULONG),\
  773.         FALSE,\
  774.         NULL, 0, NULL, NULL, 0)
  775.  
  776. #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPE(GetHandler, SetHandler)\
  777.     DEFINE_KSPROPERTY_ITEM(\
  778.         KSPROPERTY_BDA_PIN_TYPE,\
  779.         (GetHandler),\
  780.         sizeof( KSPROPERTY),\
  781.         sizeof( ULONG),\
  782.         FALSE,\
  783.         NULL, 0, NULL, NULL, 0)
  784.  
  785.  
  786.  
  787. //------------------------------------------------------------
  788. //
  789. //
  790. //  BDA Pin Event Set
  791. //
  792. // {104781CD-50BD-40d5-95FB-087E0E86A591}
  793. //
  794. #define STATIC_KSEVENTSETID_BdaPinEvent \
  795.     0x104781cd, 0x50bd, 0x40d5, 0x95, 0xfb, 0x08, 0x7e, 0xe, 0x86, 0xa5, 0x91
  796. DEFINE_GUIDSTRUCT("104781CD-50BD-40d5-95FB-087E0E86A591", KSEVENTSETID_BdaPinEvent);
  797. #define KSEVENTSETID_BdaPinEvent DEFINE_GUIDNAMED(KSEVENTSETID_BdaPinEvent)
  798.  
  799. typedef enum {
  800.     KSEVENT_BDA_PIN_CONNECTED = 0,
  801.     KSEVENT_BDA_PIN_DISCONNECTED
  802. } KSPROPERTY_BDA_PIN_EVENT;
  803.  
  804. #define DEFINE_KSEVENT_ITEM_BDA_PIN_CONNECTED(AddHandler, RemoveHandler, SupportHandler)\
  805.     DEFINE_KSEVENT_ITEM(\
  806.         KSEVENT_BDA_PIN_CONNECTED,\
  807.         sizeof( KSEVENTDATA), \
  808.         0, \
  809.         (AddHandler),\
  810.         (RemoveHandler),\
  811.         (SupportHandler)\
  812.         )
  813.  
  814. #define DEFINE_KSEVENT_ITEM_BDA_PIN_DISCONNECTED(AddHandler, RemoveHandler, SupportHandler)\
  815.     DEFINE_KSEVENT_ITEM(\
  816.         KSEVENT_BDA_PIN_DISCONNECTED,\
  817.         sizeof( KSEVENTDATA), \
  818.         0, \
  819.         (AddHandler),\
  820.         (RemoveHandler),\
  821.         (SupportHandler)\
  822.         )
  823.  
  824.  
  825.  
  826. //------------------------------------------------------------
  827. //
  828. //
  829. //  BDA Void Transform Property Set
  830. //
  831. // {71985F46-1CA1-11d3-9CC8-00C04F7971E0}
  832. //
  833. #define STATIC_KSPROPSETID_BdaVoidTransform \
  834.     0x71985f46, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  835. DEFINE_GUIDSTRUCT("71985F46-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaVoidTransform);
  836. #define KSPROPSETID_BdaVoidTransform DEFINE_GUIDNAMED(KSPROPSETID_BdaVoidTransform)
  837.  
  838. typedef enum {
  839.     KSPROPERTY_BDA_VOID_TRANSFORM_START = 0,
  840.     KSPROPERTY_BDA_VOID_TRANSFORM_STOP
  841. } KSPROPERTY_BDA_VOID_TRANSFORM;
  842.  
  843. #define DEFINE_KSPROPERTY_ITEM_BDA_VOID_TRANSFORM_START(GetHandler, SetHandler)\
  844.     DEFINE_KSPROPERTY_ITEM(\
  845.         KSPROPERTY_BDA_VOID_TRANSFORM_START,\
  846.         FALSE,\
  847.         sizeof(KSPROPERTY),\
  848.         0,\
  849.         (SetHandler),\
  850.         NULL, 0, NULL, NULL, 0)
  851.  
  852. #define DEFINE_KSPROPERTY_ITEM_BDA_VOID_TRANSFORM_STOP(GetHandler, SetHandler)\
  853.     DEFINE_KSPROPERTY_ITEM(\
  854.         KSPROPERTY_BDA_VOID_TRANSFORM_STOP,\
  855.         FALSE,\
  856.         sizeof(KSPROPERTY),\
  857.         0,\
  858.         (SetHandler),\
  859.         NULL, 0, NULL, NULL, 0)
  860.  
  861.  
  862.  
  863. //------------------------------------------------------------
  864. //
  865. //
  866. //  BDA Null Transform Property Set
  867. //
  868. // {DDF15B0D-BD25-11d2-9CA0-00C04F7971E0}
  869. //
  870. #define STATIC_KSPROPSETID_BdaNullTransform \
  871.     0xddf15b0d, 0xbd25, 0x11d2, 0x9c, 0xa0, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  872. DEFINE_GUIDSTRUCT("DDF15B0D-BD25-11d2-9CA0-00C04F7971E0", KSPROPSETID_BdaNullTransform);
  873. #define KSPROPSETID_BdaNullTransform DEFINE_GUIDNAMED(KSPROPSETID_BdaNullTransform)
  874.  
  875. typedef enum {
  876.     KSPROPERTY_BDA_NULL_TRANSFORM_START = 0,
  877.     KSPROPERTY_BDA_NULL_TRANSFORM_STOP
  878. } KSPROPERTY_BDA_NULL_TRANSFORM;
  879.  
  880. #define DEFINE_KSPROPERTY_ITEM_BDA_NULL_TRANSFORM_START(GetHandler, SetHandler)\
  881.     DEFINE_KSPROPERTY_ITEM(\
  882.         KSPROPERTY_BDA_NULL_TRANSFORM_START,\
  883.         FALSE,\
  884.         sizeof(KSPROPERTY),\
  885.         0,\
  886.         (SetHandler),\
  887.         NULL, 0, NULL, NULL, 0)
  888.  
  889. #define DEFINE_KSPROPERTY_ITEM_BDA_NULL_TRANSFORM_STOP(GetHandler, SetHandler)\
  890.     DEFINE_KSPROPERTY_ITEM(\
  891.         KSPROPERTY_BDA_NULL_TRANSFORM_STOP,\
  892.         FALSE,\
  893.         sizeof(KSPROPERTY),\
  894.         0,\
  895.         (SetHandler),\
  896.         NULL, 0, NULL, NULL, 0)
  897.  
  898.  
  899.  
  900. //------------------------------------------------------------
  901. //
  902. //
  903. //  BDA Frequency Filter Property Set
  904. //
  905. // {71985F47-1CA1-11d3-9CC8-00C04F7971E0}
  906. //
  907. #define STATIC_KSPROPSETID_BdaFrequencyFilter \
  908.     0x71985f47, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  909. DEFINE_GUIDSTRUCT("71985F47-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaFrequencyFilter);
  910. #define KSPROPSETID_BdaFrequencyFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaFrequencyFilter)
  911.  
  912. typedef enum {
  913.     KSPROPERTY_BDA_RF_TUNER_FREQUENCY = 0,
  914.     KSPROPERTY_BDA_RF_TUNER_POLARITY,
  915.     KSPROPERTY_BDA_RF_TUNER_RANGE,
  916.     KSPROPERTY_BDA_RF_TUNER_TRANSPONDER,
  917.     KSPROPERTY_BDA_RF_TUNER_BANDWIDTH,
  918.     KSPROPERTY_BDA_RF_TUNER_FREQUENCY_MULTIPLIER
  919. } KSPROPERTY_BDA_FREQUENCY_FILTER;
  920.  
  921. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_FREQUENCY(GetHandler, SetHandler)\
  922.     DEFINE_KSPROPERTY_ITEM(\
  923.         KSPROPERTY_BDA_RF_TUNER_FREQUENCY,\
  924.         (GetHandler),\
  925.         sizeof(KSP_NODE),\
  926.         sizeof(ULONG),\
  927.         (SetHandler),\
  928.         NULL, 0, NULL, NULL, 0)
  929.  
  930. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_POLARITY(GetHandler, SetHandler)\
  931.     DEFINE_KSPROPERTY_ITEM(\
  932.         KSPROPERTY_BDA_RF_TUNER_POLARITY,\
  933.         (GetHandler),\
  934.         sizeof(KSP_NODE),\
  935.         sizeof(ULONG),\
  936.         (SetHandler),\
  937.         NULL, 0, NULL, NULL, 0)
  938.  
  939. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_RANGE(GetHandler, SetHandler)\
  940.     DEFINE_KSPROPERTY_ITEM(\
  941.         KSPROPERTY_BDA_RF_TUNER_RANGE,\
  942.         (GetHandler),\
  943.         sizeof(KSP_NODE),\
  944.         sizeof(ULONG),\
  945.         (SetHandler),\
  946.         NULL, 0, NULL, NULL, 0)
  947.  
  948. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_TRANSPONDER(GetHandler, SetHandler)\
  949.     DEFINE_KSPROPERTY_ITEM(\
  950.         KSPROPERTY_BDA_RF_TUNER_TRANSPONDER,\
  951.         (GetHandler),\
  952.         sizeof(KSP_NODE),\
  953.         sizeof(ULONG),\
  954.         (SetHandler),\
  955.         NULL, 0, NULL, NULL, 0)
  956.  
  957. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_BANDWIDTH(GetHandler, SetHandler)\
  958.     DEFINE_KSPROPERTY_ITEM(\
  959.         KSPROPERTY_BDA_RF_TUNER_BANDWIDTH,\
  960.         (GetHandler),\
  961.         sizeof(KSP_NODE),\
  962.         sizeof(ULONG),\
  963.         (SetHandler),\
  964.         NULL, 0, NULL, NULL, 0)
  965.  
  966. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_FREQUENCY_MULTIPLIER(GetHandler, SetHandler)\
  967.     DEFINE_KSPROPERTY_ITEM(\
  968.         KSPROPERTY_BDA_RF_TUNER_FREQUENCY_MULTIPLIER,\
  969.         (GetHandler),\
  970.         sizeof(KSP_NODE),\
  971.         sizeof(ULONG),\
  972.         (SetHandler),\
  973.         NULL, 0, NULL, NULL, 0)
  974.  
  975.  
  976.  
  977. //------------------------------------------------------------
  978. //
  979. //
  980. //  BDA LNB Info Property Set
  981. //
  982. // {992CF102-49F9-4719-A664-C4F23E2408F4}
  983. //
  984. #define STATIC_KSPROPSETID_BdaLNBInfo \
  985.     0x992cf102, 0x49f9, 0x4719, 0xa6, 0x64, 0xc4, 0xf2, 0x3e, 0x24, 0x8, 0xf4
  986. DEFINE_GUIDSTRUCT("992CF102-49F9-4719-A664-C4F23E2408F4", KSPROPSETID_BdaLNBInfo);
  987. #define KSPROPSETID_BdaLNBInfo DEFINE_GUIDNAMED(KSPROPSETID_BdaLNBInfo)
  988.  
  989. typedef enum {
  990.     KSPROPERTY_BDA_LNB_LOF_LOW_BAND = 0,
  991.     KSPROPERTY_BDA_LNB_LOF_HIGH_BAND,
  992.     KSPROPERTY_BDA_LNB_SWITCH_FREQUENCY
  993. } KSPROPERTY_BDA_LNB_INFO;
  994.  
  995. #define DEFINE_KSPROPERTY_ITEM_BDA_LNB_LOF_LOW_BAND(GetHandler, SetHandler)\
  996.     DEFINE_KSPROPERTY_ITEM(\
  997.         KSPROPERTY_BDA_LNB_LOF_LOW_BAND,\
  998.         (GetHandler),\
  999.         sizeof(KSP_NODE),\
  1000.         sizeof(ULONG),\
  1001.         (SetHandler),\
  1002.         NULL, 0, NULL, NULL, 0)
  1003.  
  1004. #define DEFINE_KSPROPERTY_ITEM_BDA_LNB_LOF_HIGH_BAND(GetHandler, SetHandler)\
  1005.     DEFINE_KSPROPERTY_ITEM(\
  1006.         KSPROPERTY_BDA_LNB_LOF_HIGH_BAND,\
  1007.         (GetHandler),\
  1008.         sizeof(KSP_NODE),\
  1009.         sizeof(ULONG),\
  1010.         (SetHandler),\
  1011.         NULL, 0, NULL, NULL, 0)
  1012.  
  1013. #define DEFINE_KSPROPERTY_ITEM_BDA_LNB_SWITCH_FREQUENCY(GetHandler, SetHandler)\
  1014.     DEFINE_KSPROPERTY_ITEM(\
  1015.         KSPROPERTY_BDA_LNB_SWITCH_FREQUENCY,\
  1016.         (GetHandler),\
  1017.         sizeof(KSP_NODE),\
  1018.         sizeof(ULONG),\
  1019.         (SetHandler),\
  1020.         NULL, 0, NULL, NULL, 0)
  1021.  
  1022.  
  1023.  
  1024. //------------------------------------------------------------
  1025. //
  1026. //
  1027. //  BDA Digital Demodulator Property Set
  1028. //
  1029. // {EF30F379-985B-4d10-B640-A79D5E04E1E0}
  1030. //
  1031. #define STATIC_KSPROPSETID_BdaDigitalDemodulator \
  1032.     0xef30f379, 0x985b, 0x4d10, 0xb6, 0x40, 0xa7, 0x9d, 0x5e, 0x4, 0xe1, 0xe0
  1033. DEFINE_GUIDSTRUCT("EF30F379-985B-4d10-B640-A79D5E04E1E0", KSPROPSETID_BdaDigitalDemodulator);
  1034. #define KSPROPSETID_BdaDigitalDemodulator DEFINE_GUIDNAMED(KSPROPSETID_BdaDigitalDemodulator)
  1035.  
  1036. typedef enum {
  1037.     KSPROPERTY_BDA_MODULATION_TYPE = 0,
  1038.     KSPROPERTY_BDA_INNER_FEC_TYPE,
  1039.     KSPROPERTY_BDA_INNER_FEC_RATE,
  1040.     KSPROPERTY_BDA_OUTER_FEC_TYPE,
  1041.     KSPROPERTY_BDA_OUTER_FEC_RATE,
  1042.     KSPROPERTY_BDA_SYMBOL_RATE,
  1043.     KSPROPERTY_BDA_SPECTRAL_INVERSION,
  1044.     KSPROPERTY_BDA_GUARD_INTERVAL,
  1045.     KSPROPERTY_BDA_TRANSMISSION_MODE
  1046. } KSPROPERTY_BDA_DIGITAL_DEMODULATOR;
  1047.  
  1048. #define DEFINE_KSPROPERTY_ITEM_BDA_MODULATION_TYPE(GetHandler, SetHandler)\
  1049.     DEFINE_KSPROPERTY_ITEM(\
  1050.         KSPROPERTY_BDA_MODULATION_TYPE,\
  1051.         (GetHandler),\
  1052.         sizeof(KSP_NODE),\
  1053.         sizeof(ModulationType),\
  1054.         (SetHandler),\
  1055.         NULL, 0, NULL, NULL, 0)
  1056.  
  1057. #define DEFINE_KSPROPERTY_ITEM_BDA_INNER_FEC_TYPE(GetHandler, SetHandler)\
  1058.     DEFINE_KSPROPERTY_ITEM(\
  1059.         KSPROPERTY_BDA_INNER_FEC_TYPE,\
  1060.         (GetHandler),\
  1061.         sizeof(KSP_NODE),\
  1062.         sizeof(FECMethod),\
  1063.         (SetHandler),\
  1064.         NULL, 0, NULL, NULL, 0)
  1065.  
  1066. #define DEFINE_KSPROPERTY_ITEM_BDA_INNER_FEC_RATE(GetHandler, SetHandler)\
  1067.     DEFINE_KSPROPERTY_ITEM(\
  1068.         KSPROPERTY_BDA_INNER_FEC_RATE,\
  1069.         (GetHandler),\
  1070.         sizeof(KSP_NODE),\
  1071.         sizeof(BinaryConvolutionCodeRate),\
  1072.         (SetHandler),\
  1073.         NULL, 0, NULL, NULL, 0)
  1074.  
  1075. #define DEFINE_KSPROPERTY_ITEM_BDA_OUTER_FEC_TYPE(GetHandler, SetHandler)\
  1076.     DEFINE_KSPROPERTY_ITEM(\
  1077.         KSPROPERTY_BDA_OUTER_FEC_TYPE,\
  1078.         (GetHandler),\
  1079.         sizeof(KSP_NODE),\
  1080.         sizeof(FECMethod),\
  1081.         (SetHandler),\
  1082.         NULL, 0, NULL, NULL, 0)
  1083.  
  1084. #define DEFINE_KSPROPERTY_ITEM_BDA_OUTER_FEC_RATE(GetHandler, SetHandler)\
  1085.     DEFINE_KSPROPERTY_ITEM(\
  1086.         KSPROPERTY_BDA_OUTER_FEC_RATE,\
  1087.         (GetHandler),\
  1088.         sizeof(KSP_NODE),\
  1089.         sizeof(BinaryConvolutionCodeRate),\
  1090.         (SetHandler),\
  1091.         NULL, 0, NULL, NULL, 0)
  1092.  
  1093. #define DEFINE_KSPROPERTY_ITEM_BDA_SYMBOL_RATE(GetHandler, SetHandler)\
  1094.     DEFINE_KSPROPERTY_ITEM(\
  1095.         KSPROPERTY_BDA_SYMBOL_RATE,\
  1096.         (GetHandler),\
  1097.         sizeof(KSP_NODE),\
  1098.         sizeof(ULONG),\
  1099.         (SetHandler),\
  1100.         NULL, 0, NULL, NULL, 0)
  1101.  
  1102. #define DEFINE_KSPROPERTY_ITEM_BDA_SPECTRAL_INVERSION(GetHandler, SetHandler)\
  1103.     DEFINE_KSPROPERTY_ITEM(\
  1104.         KSPROPERTY_BDA_SPECTRAL_INVERSION,\
  1105.         (GetHandler),\
  1106.         sizeof(KSP_NODE),\
  1107.         sizeof(SpectralInversion),\
  1108.         (SetHandler),\
  1109.         NULL, 0, NULL, NULL, 0)
  1110.  
  1111. #define DEFINE_KSPROPERTY_ITEM_BDA_GUARD_INTERVAL(GetHandler, SetHandler)\
  1112.     DEFINE_KSPROPERTY_ITEM(\
  1113.         KSPROPERTY_BDA_GUARD_INTERVAL,\
  1114.         (GetHandler),\
  1115.         sizeof(KSP_NODE),\
  1116.         sizeof(GuardInterval),\
  1117.         (SetHandler),\
  1118.         NULL, 0, NULL, NULL, 0)
  1119.  
  1120. #define DEFINE_KSPROPERTY_ITEM_BDA_TRANSMISSION_MODE(GetHandler, SetHandler)\
  1121.     DEFINE_KSPROPERTY_ITEM(\
  1122.         KSPROPERTY_BDA_TRANSMISSION_MODE,\
  1123.         (GetHandler),\
  1124.         sizeof(KSP_NODE),\
  1125.         sizeof(TransmissionMode),\
  1126.         (SetHandler),\
  1127.         NULL, 0, NULL, NULL, 0)
  1128.  
  1129.  
  1130.  
  1131. //------------------------------------------------------------
  1132. //
  1133. //
  1134. //  BDA Autodemodulate Property Set
  1135. //
  1136. // {DDF15B12-BD25-11d2-9CA0-00C04F7971E0}
  1137. //
  1138. #define STATIC_KSPROPSETID_BdaAutodemodulate \
  1139.     0xddf15b12, 0xbd25, 0x11d2, 0x9c, 0xa0, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1140. DEFINE_GUIDSTRUCT("DDF15B12-BD25-11d2-9CA0-00C04F7971E0", KSPROPSETID_BdaAutodemodulate);
  1141. #define KSPROPSETID_BdaAutodemodulate DEFINE_GUIDNAMED(KSPROPSETID_BdaAutodemodulate)
  1142.  
  1143. typedef enum {
  1144.     KSPROPERTY_BDA_AUTODEMODULATE_START = 0,
  1145.     KSPROPERTY_BDA_AUTODEMODULATE_STOP
  1146. } KSPROPERTY_BDA_AUTODEMODULATE;
  1147.  
  1148. #define DEFINE_KSPROPERTY_ITEM_BDA_AUTODEMODULATE_START(GetHandler, SetHandler)\
  1149.     DEFINE_KSPROPERTY_ITEM(\
  1150.         KSPROPERTY_BDA_AUTODEMODULATE_START,\
  1151.         FALSE,\
  1152.         sizeof(KSP_NODE),\
  1153.         0,\
  1154.         (SetHandler),\
  1155.         NULL, 0, NULL, NULL, 0)
  1156.  
  1157. #define DEFINE_KSPROPERTY_ITEM_BDA_AUTODEMODULATE_STOP(GetHandler, SetHandler)\
  1158.     DEFINE_KSPROPERTY_ITEM(\
  1159.         KSPROPERTY_BDA_AUTODEMODULATE_STOP,\
  1160.         FALSE,\
  1161.         sizeof(KSP_NODE),\
  1162.         0,\
  1163.         (SetHandler),\
  1164.         NULL, 0, NULL, NULL, 0)
  1165.  
  1166. //------------------------------------------------------------
  1167. //
  1168. //
  1169. //  BDA Table Section Property Set
  1170. //
  1171. // {516B99C5-971C-4aaf-B3F3-D9FDA8A15E16}
  1172. //
  1173.  
  1174. #define STATIC_KSPROPSETID_BdaTableSection \
  1175.     0x516b99c5, 0x971c, 0x4aaf, 0xb3, 0xf3, 0xd9, 0xfd, 0xa8, 0xa1, 0x5e, 0x16
  1176. DEFINE_GUIDSTRUCT("516B99C5-971C-4aaf-B3F3-D9FDA8A15E16", KSPROPSETID_BdaTableSection);
  1177. #define KSPROPSETID_BdaTableSection DEFINE_GUIDNAMED(KSPROPSETID_BdaTableSection)
  1178.  
  1179. typedef enum {
  1180.     KSPROPERTY_BDA_TABLE_SECTION = 0,
  1181. } KSPROPERTY_IDS_BDA_TABLE;
  1182.  
  1183. #define DEFINE_KSPROPERTY_ITEM_BDA_TABLE_SECTION(GetHandler, SetHandler)\
  1184.     DEFINE_KSPROPERTY_ITEM(\
  1185.         KSPROPERTY_BDA_TABLE_SECTION,\
  1186.         (GetHandler),\
  1187.         sizeof(KSP_NODE),\
  1188.         sizeof(BDA_TABLE_SECTION),\
  1189.         (SetHandler),\
  1190.         NULL, 0, NULL, NULL, 0)
  1191.  
  1192.  
  1193.  
  1194. //------------------------------------------------------------
  1195. //
  1196. //
  1197. //  BDA PID Filter Property Set
  1198. //
  1199. // {D0A67D65-08DF-4fec-8533-E5B550410B85}
  1200. //
  1201. #define STATIC_KSPROPSETID_BdaPIDFilter \
  1202.     0xd0a67d65, 0x8df, 0x4fec, 0x85, 0x33, 0xe5, 0xb5, 0x50, 0x41, 0xb, 0x85
  1203. DEFINE_GUIDSTRUCT("D0A67D65-08DF-4fec-8533-E5B550410B85", KSPROPSETID_BdaPIDFilter);
  1204. #define KSPROPSETID_BdaPIDFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaPIDFilter)
  1205.  
  1206. typedef enum {
  1207.     KSPROPERTY_BDA_PIDFILTER_MAP_PIDS = 0,
  1208.     KSPROPERTY_BDA_PIDFILTER_UNMAP_PIDS,
  1209.     KSPROPERTY_BDA_PIDFILTER_LIST_PIDS
  1210. } KSPROPERTY_BDA_PIDFILTER;
  1211.  
  1212. #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_MAP_PIDS(GetHandler, SetHandler)\
  1213.     DEFINE_KSPROPERTY_ITEM(\
  1214.         KSPROPERTY_BDA_PIDFILTER_MAP_PIDS,\
  1215.         (GetHandler),\
  1216.         sizeof(KSP_NODE),\
  1217.         sizeof(BDA_PID_MAP),\
  1218.         (SetHandler),\
  1219.         NULL, 0, NULL, NULL, 0)
  1220.  
  1221. #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_UNMAP_PIDS(GetHandler, SetHandler)\
  1222.     DEFINE_KSPROPERTY_ITEM(\
  1223.         KSPROPERTY_BDA_PIDFILTER_UNMAP_PIDS,\
  1224.         (GetHandler),\
  1225.         sizeof(KSP_NODE),\
  1226.         sizeof(BDA_PID_UNMAP),\
  1227.         (SetHandler),\
  1228.         NULL, 0, NULL, NULL, 0)
  1229.  
  1230. #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_LIST_PIDS(GetHandler, SetHandler)\
  1231.     DEFINE_KSPROPERTY_ITEM(\
  1232.         KSPROPERTY_BDA_PIDFILTER_LIST_PIDS,\
  1233.         (GetHandler),\
  1234.         sizeof(KSP_NODE),\
  1235.         0,\
  1236.         (SetHandler),\
  1237.         NULL, 0, NULL, NULL, 0)
  1238.  
  1239.  
  1240.  
  1241. //------------------------------------------------------------
  1242. //
  1243. //
  1244. //  BDA CA Property Set
  1245. //
  1246. // {B0693766-5278-4ec6-B9E1-3CE40560EF5A}
  1247. //
  1248. #define STATIC_KSPROPSETID_BdaCA \
  1249.     0xb0693766, 0x5278, 0x4ec6, 0xb9, 0xe1, 0x3c, 0xe4, 0x5, 0x60, 0xef, 0x5a
  1250. DEFINE_GUIDSTRUCT("B0693766-5278-4ec6-B9E1-3CE40560EF5A", KSPROPSETID_BdaCA);
  1251. #define KSPROPSETID_BdaCA DEFINE_GUIDNAMED(KSPROPSETID_BdaCA)
  1252.  
  1253. typedef enum {
  1254.     KSPROPERTY_BDA_ECM_MAP_STATUS = 0,
  1255.     KSPROPERTY_BDA_CA_MODULE_STATUS,
  1256.     KSPROPERTY_BDA_CA_SMART_CARD_STATUS,
  1257.     KSPROPERTY_BDA_CA_MODULE_UI,
  1258.     KSPROPERTY_BDA_CA_SET_PROGRAM_PIDS,
  1259.     KSPROPERTY_BDA_CA_REMOVE_PROGRAM
  1260. } KSPROPERTY_BDA_CA;
  1261.  
  1262. #define DEFINE_KSPROPERTY_ITEM_BDA_ECM_MAP_STATUS(GetHandler, SetHandler)\
  1263.     DEFINE_KSPROPERTY_ITEM(\
  1264.         KSPROPERTY_BDA_ECM_MAP_STATUS,\
  1265.         (GetHandler),\
  1266.         sizeof(KSP_NODE),\
  1267.         sizeof(ULONG),\
  1268.         (SetHandler),\
  1269.         NULL, 0, NULL, NULL, 0)
  1270.  
  1271. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_MODULE_STATUS(GetHandler, SetHandler)\
  1272.     DEFINE_KSPROPERTY_ITEM(\
  1273.         KSPROPERTY_BDA_CA_MODULE_STATUS,\
  1274.         (GetHandler),\
  1275.         sizeof(KSP_NODE),\
  1276.         sizeof(ULONG),\
  1277.         (SetHandler),\
  1278.         NULL, 0, NULL, NULL, 0)
  1279.  
  1280. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_SMART_CARD_STATUS(GetHandler, SetHandler)\
  1281.     DEFINE_KSPROPERTY_ITEM(\
  1282.         KSPROPERTY_BDA_CA_SMART_CARD_STATUS,\
  1283.         (GetHandler),\
  1284.         sizeof(KSP_NODE),\
  1285.         sizeof(ULONG),\
  1286.         (SetHandler),\
  1287.         NULL, 0, NULL, NULL, 0)
  1288.  
  1289. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_MODULE_UI(GetHandler, SetHandler)\
  1290.     DEFINE_KSPROPERTY_ITEM(\
  1291.         KSPROPERTY_BDA_CA_MODULE_UI,\
  1292.         (GetHandler),\
  1293.         sizeof(KSP_NODE),\
  1294.         sizeof(BDA_CA_MODULE_UI),\
  1295.         (SetHandler),\
  1296.         NULL, 0, NULL, NULL, 0)
  1297.  
  1298. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_SET_PROGRAM_PIDS(GetHandler, SetHandler)\
  1299.     DEFINE_KSPROPERTY_ITEM(\
  1300.         KSPROPERTY_BDA_CA_SET_PROGRAM_PIDS,\
  1301.         (GetHandler),\
  1302.         sizeof(KSP_NODE),\
  1303.         sizeof(BDA_PROGRAM_PID_LIST),\
  1304.         (SetHandler),\
  1305.         NULL, 0, NULL, NULL, 0)
  1306.  
  1307. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_REMOVE_PROGRAM(GetHandler, SetHandler)\
  1308.     DEFINE_KSPROPERTY_ITEM(\
  1309.         KSPROPERTY_BDA_CA_REMOVE_PROGRAM,\
  1310.         (GetHandler),\
  1311.         sizeof(KSP_NODE),\
  1312.         sizeof(ULONG),\
  1313.         (SetHandler),\
  1314.         NULL, 0, NULL, NULL, 0)
  1315.  
  1316.  
  1317.  
  1318. //------------------------------------------------------------
  1319. //
  1320. //
  1321. //  BDA CA Event Set
  1322. //
  1323. // {488C4CCC-B768-4129-8EB1-B00A071F9068}
  1324. //
  1325. #define STATIC_KSEVENTSETID_BdaCAEvent \
  1326.     0x488c4ccc, 0xb768, 0x4129, 0x8e, 0xb1, 0xb0, 0xa, 0x7, 0x1f, 0x90, 0x68
  1327. DEFINE_GUIDSTRUCT("488C4CCC-B768-4129-8EB1-B00A071F9068", KSEVENTSETID_BdaCAEvent);
  1328. #define KSEVENTSETID_BdaCAEvent DEFINE_GUIDNAMED(KSEVENTSETID_BdaCAEvent)
  1329.  
  1330. typedef enum {
  1331.     KSEVENT_BDA_PROGRAM_FLOW_STATUS_CHANGED = 0,
  1332.     KSEVENT_BDA_CA_MODULE_STATUS_CHANGED,
  1333.     KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED,
  1334.     KSEVENT_BDA_CA_MODULE_UI_REQUESTED
  1335. } KSPROPERTY_BDA_CA_EVENT;
  1336.  
  1337. #define DEFINE_KSEVENT_BDA_PROGRAM_FLOW_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  1338.     DEFINE_KSEVENT_ITEM(\
  1339.         KSEVENT_BDA_PROGRAM_FLOW_STATUS_CHANGED,\
  1340.         sizeof( KSEVENTDATA), \
  1341.         0, \
  1342.         (AddHandler),\
  1343.         (RemoveHandler),\
  1344.         (SupportHandler)\
  1345.         )
  1346.  
  1347. #define DEFINE_KSEVENT_BDA_CA_MODULE_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  1348.     DEFINE_KSEVENT_ITEM(\
  1349.         KSEVENT_BDA_CA_MODULE_STATUS_CHANGED,\
  1350.         sizeof( KSEVENTDATA), \
  1351.         0, \
  1352.         (AddHandler),\
  1353.         (RemoveHandler),\
  1354.         (SupportHandler)\
  1355.         )
  1356.  
  1357. #define DEFINE_KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  1358.     DEFINE_KSEVENT_ITEM(\
  1359.         KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED,\
  1360.         sizeof( KSEVENTDATA), \
  1361.         0, \
  1362.         (AddHandler),\
  1363.         (RemoveHandler),\
  1364.         (SupportHandler)\
  1365.         )
  1366.  
  1367. #define DEFINE_KSEVENT_BDA_CA_MODULE_UI_REQUESTED(AddHandler, RemoveHandler, SupportHandler)\
  1368.     DEFINE_KSEVENT_ITEM(\
  1369.         KSEVENT_BDA_CA_MODULE_UI_REQUESTED,\
  1370.         sizeof( KSEVENTDATA), \
  1371.         0, \
  1372.         (AddHandler),\
  1373.         (RemoveHandler),\
  1374.         (SupportHandler)\
  1375.         )
  1376.  
  1377.  
  1378. //===========================================================================
  1379. //
  1380. // BDA Filter Categories
  1381. //
  1382. //===========================================================================
  1383.  
  1384. #define STATIC_KSCATEGORY_BDA_RECEIVER_COMPONENT \
  1385.     0xFD0A5AF4, 0xB41D, 0x11d2, 0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1386. DEFINE_GUIDSTRUCT("FD0A5AF4-B41D-11d2-9C95-00C04F7971E0", KSCATEGORY_BDA_RECEIVER_COMPONENT);
  1387. #define KSCATEGORY_BDA_RECEIVER_COMPONENT DEFINE_GUIDNAMED(KSCATEGORY_BDA_RECEIVER_COMPONENT)
  1388.  
  1389.  
  1390. #define STATIC_KSCATEGORY_BDA_NETWORK_TUNER \
  1391.     0x71985f48, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1392. DEFINE_GUIDSTRUCT("71985F48-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_TUNER);
  1393. #define KSCATEGORY_BDA_NETWORK_TUNER DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_TUNER)
  1394.  
  1395.  
  1396. #define STATIC_KSCATEGORY_BDA_NETWORK_EPG \
  1397.     0x71985f49, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1398. DEFINE_GUIDSTRUCT("71985F49-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_EPG);
  1399. #define KSCATEGORY_BDA_NETWORK_EPG DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_EPG)
  1400.  
  1401.  
  1402. #define STATIC_KSCATEGORY_BDA_IP_SINK \
  1403.     0x71985f4aL, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x00, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1404. DEFINE_GUIDSTRUCT("71985F4A-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_IP_SINK);
  1405. #define KSCATEGORY_IP_SINK DEFINE_GUIDNAMED(KSCATEGORY_BDA_IP_SINK)
  1406.  
  1407.  
  1408. #define STATIC_KSCATEGORY_BDA_NETWORK_PROVIDER \
  1409.     0x71985f4b, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1410. DEFINE_GUIDSTRUCT("71985F4B-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_PROVIDER);
  1411. #define KSCATEGORY_BDA_NETWORK_PROVIDER DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_PROVIDER)
  1412.  
  1413. // {A2E3074F-6C3D-11d3-B653-00C04F79498E}
  1414. #define STATIC_KSCATEGORY_BDA_TRANSPORT_INFORMATION \
  1415.         0xa2e3074f, 0x6c3d, 0x11d3, 0xb6, 0x53, 0x0, 0xc0, 0x4f, 0x79, 0x49, 0x8e
  1416. DEFINE_GUIDSTRUCT("A2E3074F-6C3D-11d3-B653-00C04F79498E", KSCATEGORY_BDA_TRANSPORT_INFORMATION);
  1417. #define KSCATEGORY_BDA_TRANSPORT_INFORMATION DEFINE_GUIDNAMED(KSCATEGORY_BDA_TRANSPORT_INFORMATION)
  1418.  
  1419. //===========================================================================
  1420. //
  1421. // BDA Node Categories
  1422. //
  1423. //===========================================================================
  1424.  
  1425.  
  1426. #define STATIC_KSNODE_BDA_RF_TUNER \
  1427.     0x71985f4c, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1428. DEFINE_GUIDSTRUCT("71985F4C-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_RF_TUNER);
  1429. #define KSNODE_BDA_RF_TUNER DEFINE_GUIDNAMED(KSNODE_BDA_RF_TUNER)
  1430.  
  1431.  
  1432. #define STATIC_KSNODE_BDA_QAM_DEMODULATOR \
  1433.     0x71985f4d, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1434. DEFINE_GUIDSTRUCT("71985F4D-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_QAM_DEMODULATOR);
  1435. #define KSNODE_BDA_QAM_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_QAM_DEMODULATOR)
  1436.  
  1437.  
  1438. #define STATIC_KSNODE_BDA_QPSK_DEMODULATOR \
  1439.     0x6390c905, 0x27c1, 0x4d67, 0xbd, 0xb7, 0x77, 0xc5, 0xd, 0x7, 0x93, 0x0
  1440. DEFINE_GUIDSTRUCT("6390C905-27C1-4d67-BDB7-77C50D079300", KSNODE_BDA_QPSK_DEMODULATOR);
  1441. #define KSNODE_BDA_QPSK_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_QPSK_DEMODULATOR)
  1442.  
  1443.  
  1444. #define STATIC_KSNODE_BDA_8VSB_DEMODULATOR \
  1445.     0x71985f4f, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1446. DEFINE_GUIDSTRUCT("71985F4F-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_8VSB_DEMODULATOR);
  1447. #define KSNODE_BDA_8VSB_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_8VSB_DEMODULATOR)
  1448.  
  1449.  
  1450. #define STATIC_KSNODE_BDA_COFDM_DEMODULATOR \
  1451.     0x2dac6e05, 0xedbe, 0x4b9c, 0xb3, 0x87, 0x1b, 0x6f, 0xad, 0x7d, 0x64, 0x95
  1452. DEFINE_GUIDSTRUCT("2DAC6E05-EDBE-4b9c-B387-1B6FAD7D6495", KSNODE_BDA_COFDM_DEMODULATOR);
  1453. #define KSNODE_BDA_COFDM_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_COFDM_DEMODULATOR)
  1454.  
  1455.  
  1456. #define STATIC_KSNODE_BDA_OPENCABLE_POD \
  1457.     0xd83ef8fc, 0xf3b8, 0x45ab, 0x8b, 0x71, 0xec, 0xf7, 0xc3, 0x39, 0xde, 0xb4
  1458. DEFINE_GUIDSTRUCT("D83EF8FC-F3B8-45ab-8B71-ECF7C339DEB4", KSNODE_BDA_OPENCABLE_POD);
  1459. #define KSNODE_BDA_OPENCABLE_POD DEFINE_GUIDNAMED(KSNODE_BDA_OPENCABLE_POD)
  1460.  
  1461.  
  1462. #define STATIC_KSNODE_BDA_COMMON_CA_POD \
  1463.     0xd83ef8fc, 0xf3b8, 0x45ab, 0x8b, 0x71, 0xec, 0xf7, 0xc3, 0x39, 0xde, 0xb4
  1464. DEFINE_GUIDSTRUCT("D83EF8FC-F3B8-45ab-8B71-ECF7C339DEB4", KSNODE_BDA_COMMON_CA_POD);
  1465. #define KSNODE_BDA_COMMON_CA_POD DEFINE_GUIDNAMED(KSNODE_BDA_COMMON_CA_POD)
  1466.  
  1467.  
  1468. #define STATIC_KSNODE_BDA_PID_FILTER \
  1469.     0xf5412789, 0xb0a0, 0x44e1, 0xae, 0x4f, 0xee, 0x99, 0x9b, 0x1b, 0x7f, 0xbe
  1470. DEFINE_GUIDSTRUCT("F5412789-B0A0-44e1-AE4F-EE999B1B7FBE", KSNODE_BDA_PID_FILTER);
  1471. #define KSNODE_BDA_PID_FILTER DEFINE_GUIDNAMED(KSNODE_BDA_PID_FILTER)
  1472.  
  1473.  
  1474. #define STATIC_KSNODE_BDA_IP_SINK \
  1475.     0x71985f4e, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1476. DEFINE_GUIDSTRUCT("71985F4E-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_IP_SINK);
  1477. #define KSNODE_IP_SINK DEFINE_GUIDNAMED(KSNODE_BDA_IP_SINK)
  1478.  
  1479.  
  1480. //===========================================================================
  1481. //
  1482. // IPSink PINNAME GUID
  1483. //
  1484. //===========================================================================
  1485.  
  1486. #define STATIC_PINNAME_IPSINK_INPUT \
  1487.     0x3fdffa70L, 0xac9a, 0x11d2, 0x8f, 0x17, 0x00, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1488. DEFINE_GUIDSTRUCT("3fdffa70-ac9a-11d2-8f17-00c04f7971e2", PINNAME_IPSINK_INPUT);
  1489. #define PINNAME_IPSINK_INPUT   DEFINE_GUIDNAMED(PINNAME_IPSINK_INPUT)
  1490.  
  1491.  
  1492. //===========================================================================
  1493. //
  1494. // BDA IPSink Categories/Types
  1495. //
  1496. //===========================================================================
  1497.  
  1498.  
  1499. #define STATIC_KSDATAFORMAT_TYPE_BDA_IP\
  1500.     0xe25f7b8e, 0xcccc, 0x11d2, 0x8f, 0x25, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1501. DEFINE_GUIDSTRUCT("e25f7b8e-cccc-11d2-8f25-00c04f7971e2", KSDATAFORMAT_TYPE_BDA_IP);
  1502. #define KSDATAFORMAT_TYPE_BDA_IP  DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IP)
  1503.  
  1504. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_IP\
  1505.     0x5a9a213c, 0xdb08, 0x11d2, 0x8f, 0x32, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1506. DEFINE_GUIDSTRUCT("5a9a213c-db08-11d2-8f32-00c04f7971e2", KSDATAFORMAT_SUBTYPE_BDA_IP);
  1507. #define KSDATAFORMAT_SUBTYPE_BDA_IP  DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_IP)
  1508.  
  1509. #define STATIC_KSDATAFORMAT_SPECIFIER_BDA_IP\
  1510.     0x6b891420, 0xdb09, 0x11d2, 0x8f, 0x32, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1511. DEFINE_GUIDSTRUCT("6B891420-DB09-11d2-8F32-00C04F7971E2", KSDATAFORMAT_SPECIFIER_BDA_IP);
  1512. #define KSDATAFORMAT_SPECIFIER_BDA_IP  DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_BDA_IP)
  1513.  
  1514.  
  1515.  
  1516. #define STATIC_KSDATAFORMAT_TYPE_BDA_IP_CONTROL\
  1517.     0xdadd5799, 0x7d5b, 0x4b63, 0x80, 0xfb, 0xd1, 0x44, 0x2f, 0x26, 0xb6, 0x21
  1518. DEFINE_GUIDSTRUCT("DADD5799-7D5B-4b63-80FB-D1442F26B621", KSDATAFORMAT_TYPE_BDA_IP_CONTROL);
  1519. #define KSDATAFORMAT_TYPE_BDA_IP_CONTROL  DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IP_CONTROL)
  1520.  
  1521. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL\
  1522.     0x499856e8, 0xe85b, 0x48ed, 0x9b, 0xea, 0x41, 0xd, 0xd, 0xd4, 0xef, 0x81
  1523. DEFINE_GUIDSTRUCT("499856E8-E85B-48ed-9BEA-410D0DD4EF81", KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL);
  1524. #define KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL  DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL)
  1525.  
  1526.  
  1527. //===========================================================================
  1528. //
  1529. // MPE PINNAME GUID
  1530. //
  1531. //===========================================================================
  1532.  
  1533. #define STATIC_PINNAME_MPE \
  1534.     0xc1b06d73L, 0x1dbb, 0x11d3, 0x8f, 0x46, 0x00, 0xC0, 0x4f, 0x79, 0x71, 0xE2
  1535. DEFINE_GUIDSTRUCT("C1B06D73-1DBB-11d3-8F46-00C04F7971E2", PINNAME_MPE);
  1536. #define PINNAME_MPE   DEFINE_GUIDNAMED(PINNAME_MPE)
  1537.  
  1538.  
  1539. /////////////////////////////////////////////////////////////
  1540. //
  1541. // BDA MPE Categories/Types
  1542. //
  1543. #define STATIC_KSDATAFORMAT_TYPE_MPE \
  1544.     0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5
  1545. DEFINE_GUIDSTRUCT("455F176C-4B06-47ce-9AEF-8CAEF73DF7B5", KSDATAFORMAT_TYPE_MPE);
  1546. #define KSDATAFORMAT_TYPE_MPE  DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPE)
  1547.  
  1548.  
  1549. #if defined(__cplusplus)
  1550. }
  1551. #endif // defined(__cplusplus)
  1552.  
  1553. #endif // !defined(_BDAMEDIA_)
  1554.  
  1555.