1 /**
2  * This file is part of the mingw-w64 runtime package.
3  * No warranty is given; refer to the file DISCLAIMER within this package.
4  */
5 #ifndef _BDATYPES_
6 #define _BDATYPES_ 1
7 
8 #include <winapifamily.h>
9 
10 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
11 
12 #define BDA_PLP_ID_NOT_SET -1
13 
14 #define MIN_DIMENSION 1
15 
16 typedef LONG PBDARESULT;
17 
18 typedef enum BDA_EVENT_ID {
19   BDA_EVENT_SIGNAL_LOSS = 0,
20   BDA_EVENT_SIGNAL_LOCK,
21   BDA_EVENT_DATA_START,
22   BDA_EVENT_DATA_STOP,
23   BDA_EVENT_CHANNEL_ACQUIRED,
24   BDA_EVENT_CHANNEL_LOST,
25   BDA_EVENT_CHANNEL_SOURCE_CHANGED,
26   BDA_EVENT_CHANNEL_ACTIVATED,
27   BDA_EVENT_CHANNEL_DEACTIVATED,
28   BDA_EVENT_SUBCHANNEL_ACQUIRED,
29   BDA_EVENT_SUBCHANNEL_LOST,
30   BDA_EVENT_SUBCHANNEL_SOURCE_CHANGED,
31   BDA_EVENT_SUBCHANNEL_ACTIVATED,
32   BDA_EVENT_SUBCHANNEL_DEACTIVATED,
33   BDA_EVENT_ACCESS_GRANTED,
34   BDA_EVENT_ACCESS_DENIED,
35   BDA_EVENT_OFFER_EXTENDED,
36   BDA_EVENT_PURCHASE_COMPLETED,
37   BDA_EVENT_SMART_CARD_INSERTED,
38   BDA_EVENT_SMART_CARD_REMOVED
39 } BDA_EVENT_ID, *PBDA_EVENT_ID;
40 
41 typedef enum BDA_MULTICAST_MODE {
42   BDA_PROMISCUOUS_MULTICAST = 0,
43   BDA_FILTERED_MULTICAST,
44   BDA_NO_MULTICAST
45 } BDA_MULTICAST_MODE, *PBDA_MULTICAST_MODE;
46 
47 typedef enum BDA_SIGNAL_STATE {
48   BDA_SIGNAL_UNAVAILABLE = 0,
49   BDA_SIGNAL_INACTIVE,
50   BDA_SIGNAL_ACTIVE
51 } BDA_SIGNAL_STATE, *PBDA_SIGNAL_STATE;
52 
53 typedef enum BDA_CHANGE_STATE {
54   BDA_CHANGES_COMPLETE = 0,
55   BDA_CHANGES_PENDING
56 } BDA_CHANGE_STATE, *PBDA_CHANGE_STATE;
57 
58 #ifdef __WIDL__
59 typedef [v1_enum] enum MEDIA_SAMPLE_CONTENT
60 #else
61 typedef enum MEDIA_SAMPLE_CONTENT
62 #endif
63 {
64   MEDIA_TRANSPORT_PACKET,
65   MEDIA_ELEMENTARY_STREAM,
66   MEDIA_MPEG2_PSI,
67   MEDIA_TRANSPORT_PAYLOAD
68 } MEDIA_SAMPLE_CONTENT;
69 
70 typedef enum ISDBCAS_REQUEST_ID {
71   ISDBCAS_REQUEST_ID_EMG = 0x38,
72   ISDBCAS_REQUEST_ID_EMD = 0x3a,
73 } ISDBCAS_REQUEST_ID;
74 
75 typedef enum MUX_PID_TYPE {
76   PID_OTHER = -1,
77   PID_ELEMENTARY_STREAM,
78   PID_MPEG2_SECTION_PSI_SI
79 } MUX_PID_TYPE;
80 
81 #ifdef __WIDL__
82 typedef [v1_enum] enum DVBSystemType
83 #else
84 typedef enum DVBSystemType
85 #endif
86 {
87   DVB_Cable,
88   DVB_Terrestrial,
89   DVB_Satellite,
90   ISDB_Terrestrial,
91   ISDB_Satellite
92 } DVBSystemType;
93 
94 typedef enum BDA_Channel {
95   BDA_UNDEFINED_CHANNEL = -1
96 } BDA_Channel;
97 
98 #ifdef __WIDL__
99 typedef [v1_enum] enum ComponentCategory
100 #else
101 typedef enum ComponentCategory
102 #endif
103 {
104   CategoryNotSet = -1,
105   CategoryOther = 0,
106   CategoryVideo,
107   CategoryAudio,
108   CategoryText,
109   CategorySubtitles,
110   CategoryCaptions,
111   CategorySuperimpose,
112   CategoryData,
113   CATEGORY_COUNT
114 } ComponentCategory;
115 
116 #ifdef __WIDL__
117 typedef [v1_enum] enum ComponentStatus
118 #else
119 typedef enum ComponentStatus
120 #endif
121 {
122   StatusActive,
123   StatusInactive,
124   StatusUnavailable
125 } ComponentStatus;
126 
127 #ifdef __WIDL__
128 typedef [v1_enum] enum MPEG2StreamType
129 #else
130 typedef enum MPEG2StreamType
131 #endif
132 {
133   BDA_UNITIALIZED_MPEG2STREAMTYPE = -1,
134   Reserved1 = 0x00,
135   ISO_IEC_11172_2_VIDEO = 0x01,
136   ISO_IEC_13818_2_VIDEO = 0x02,
137   ISO_IEC_11172_3_AUDIO = 0x03,
138   ISO_IEC_13818_3_AUDIO = 0x04,
139   ISO_IEC_13818_1_PRIVATE_SECTION = 0x05,
140   ISO_IEC_13818_1_PES = 0x06,
141   ISO_IEC_13522_MHEG = 0x07,
142   ANNEX_A_DSM_CC = 0x08,
143   ITU_T_REC_H_222_1 = 0x09,
144   ISO_IEC_13818_6_TYPE_A = 0x0a,
145   ISO_IEC_13818_6_TYPE_B = 0x0b,
146   ISO_IEC_13818_6_TYPE_C = 0x0c,
147   ISO_IEC_13818_6_TYPE_D = 0x0d,
148   ISO_IEC_13818_1_AUXILIARY = 0x0e,
149   ISO_IEC_13818_7_AUDIO = 0x0f,
150   ISO_IEC_14496_2_VISUAL = 0x10,
151   ISO_IEC_14496_3_AUDIO = 0x11,
152   ISO_IEC_14496_1_IN_PES = 0x12,
153   ISO_IEC_14496_1_IN_SECTION = 0x13,
154   ISO_IEC_13818_6_DOWNLOAD = 0x14,
155   METADATA_IN_PES = 0x15,
156   METADATA_IN_SECTION = 0x16,
157   METADATA_IN_DATA_CAROUSEL = 0x17,
158   METADATA_IN_OBJECT_CAROUSEL = 0x18,
159   METADATA_IN_DOWNLOAD_PROTOCOL = 0x19,
160   IRPM_STREAMM = 0x1a,
161   ITU_T_H264 = 0x1b,
162   ISO_IEC_13818_1_RESERVED = 0x1c,
163   USER_PRIVATE = 0x10,
164   ISO_IEC_USER_PRIVATE = 0x80,
165   DOLBY_AC3_AUDIO = 0x81,
166   DOLBY_DIGITAL_PLUS_AUDIO_ATSC = 0x87
167 } MPEG2StreamType;
168 
169 typedef enum ATSCComponentTypeFlags {
170   ATSCCT_AC3 = 0x1
171 } ATSCComponentTypeFlags;
172 
173 #ifdef __WIDL__
174 typedef [v1_enum] enum BinaryConvolutionCodeRate
175 #else
176 typedef enum BinaryConvolutionCodeRate
177 #endif
178 {
179   BDA_BCC_RATE_NOT_SET = -1,
180   BDA_BCC_RATE_NOT_DEFINED = 0,
181   BDA_BCC_RATE_1_2 = 1,
182   BDA_BCC_RATE_2_3,
183   BDA_BCC_RATE_3_4,
184   BDA_BCC_RATE_3_5,
185   BDA_BCC_RATE_4_5,
186   BDA_BCC_RATE_5_6,
187   BDA_BCC_RATE_5_11,
188   BDA_BCC_RATE_7_8,
189   BDA_BCC_RATE_1_4,
190   BDA_BCC_RATE_1_3,
191   BDA_BCC_RATE_2_5,
192   BDA_BCC_RATE_6_7,
193   BDA_BCC_RATE_8_9,
194   BDA_BCC_RATE_9_10,
195   BDA_BCC_RATE_MAX
196 } BinaryConvolutionCodeRate;
197 
198 #ifdef __WIDL__
199 typedef [v1_enum] enum FECMethod
200 #else
201 typedef enum FECMethod
202 #endif
203 {
204   BDA_FEC_METHOD_NOT_SET = -1,
205   BDA_FEC_METHOD_NOT_DEFINED = 0,
206   BDA_FEC_VITERBI = 1,
207   BDA_FEC_RS_204_188,
208   BDA_FEC_LDPC,
209   BDA_FEC_BCH,
210   BDA_FEC_RS_147_130,
211   BDA_FEC_MAX
212 } FECMethod;
213 
214 #ifdef __WIDL__
215 typedef [v1_enum] enum ModulationType
216 #else
217 typedef enum ModulationType
218 #endif
219 {
220   BDA_MOD_NOT_SET = -1,
221   BDA_MOD_NOT_DEFINED = 0,
222   BDA_MOD_16QAM = 1,
223   BDA_MOD_32QAM,
224   BDA_MOD_64QAM,
225   BDA_MOD_80QAM,
226   BDA_MOD_96QAM,
227   BDA_MOD_112QAM,
228   BDA_MOD_128QAM,
229   BDA_MOD_160QAM,
230   BDA_MOD_192QAM,
231   BDA_MOD_224QAM,
232   BDA_MOD_256QAM,
233   BDA_MOD_320QAM,
234   BDA_MOD_384QAM,
235   BDA_MOD_448QAM,
236   BDA_MOD_512QAM,
237   BDA_MOD_640QAM,
238   BDA_MOD_768QAM,
239   BDA_MOD_896QAM,
240   BDA_MOD_1024QAM,
241   BDA_MOD_QPSK,
242   BDA_MOD_BPSK,
243   BDA_MOD_OQPSK,
244   BDA_MOD_8VSB,
245   BDA_MOD_16VSB,
246   BDA_MOD_ANALOG_AMPLITUDE,
247   BDA_MOD_ANALOG_FREQUENCY,
248   BDA_MOD_8PSK,
249   BDA_MOD_RF,
250   BDA_MOD_16APSK,
251   BDA_MOD_32APSK,
252   BDA_MOD_NBC_QPSK,
253   BDA_MOD_NBC_8PSK,
254   BDA_MOD_DIRECTV,
255   BDA_MOD_ISDB_T_TMCC,
256   BDA_MOD_ISDB_S_TMCC,
257   BDA_MOD_MAX
258 } ModulationType;
259 
260 #ifdef __WIDL__
261 typedef [v1_enum] enum tagScanModulationTypes
262 #else
263 typedef enum tagScanModulationTypes
264 #endif
265 {
266   BDA_SCAN_MOD_16QAM = 0x00000001,
267   BDA_SCAN_MOD_32QAM = 0x00000002,
268   BDA_SCAN_MOD_64QAM = 0x00000004,
269   BDA_SCAN_MOD_80QAM = 0x00000008,
270   BDA_SCAN_MOD_96QAM = 0x00000010,
271   BDA_SCAN_MOD_112QAM = 0x00000020,
272   BDA_SCAN_MOD_128QAM = 0x00000040,
273   BDA_SCAN_MOD_160QAM = 0x00000080,
274   BDA_SCAN_MOD_192QAM = 0x00000100,
275   BDA_SCAN_MOD_224QAM = 0x00000200,
276   BDA_SCAN_MOD_256QAM = 0x00000400,
277   BDA_SCAN_MOD_320QAM = 0x00000800,
278   BDA_SCAN_MOD_384QAM = 0x00001000,
279   BDA_SCAN_MOD_448QAM = 0x00002000,
280   BDA_SCAN_MOD_512QAM = 0x00004000,
281   BDA_SCAN_MOD_640QAM = 0x00008000,
282   BDA_SCAN_MOD_768QAM = 0x00010000,
283   BDA_SCAN_MOD_896QAM = 0x00020000,
284   BDA_SCAN_MOD_1024QAM = 0x00040000,
285   BDA_SCAN_MOD_QPSK = 0x00080000,
286   BDA_SCAN_MOD_BPSK = 0x00100000,
287   BDA_SCAN_MOD_OQPSK = 0x00200000,
288   BDA_SCAN_MOD_8VSB = 0x00400000,
289   BDA_SCAN_MOD_16VSB = 0x00800000,
290   BDA_SCAN_MOD_AM_RADIO = 0x01000000,
291   BDA_SCAN_MOD_FM_RADIO = 0x02000000,
292   BDA_SCAN_MOD_8PSK = 0x04000000,
293   BDA_SCAN_MOD_RF = 0x08000000,
294   ScanModulationTypesMask_MCE_DigitalCable = BDA_MOD_64QAM |
295   BDA_MOD_256QAM,
296   ScanModulationTypesMask_MCE_TerrestrialATSC = BDA_MOD_8VSB,
297   ScanModulationTypesMask_MCE_AnalogTv = BDA_MOD_RF,
298   ScanModulationTypesMask_MCE_All_TV = 0xffffffff,
299   ScanModulationTypesMask_DVBC = BDA_MOD_64QAM | BDA_SCAN_MOD_128QAM |
300   BDA_MOD_256QAM,
301   BDA_SCAN_MOD_16APSK = 0x10000000,
302   BDA_SCAN_MOD_32APSK = 0x20000000,
303 } ScanModulationTypes;
304 
305 #ifdef __WIDL__
306 typedef [v1_enum] enum SpectralInversion
307 #else
308 typedef enum SpectralInversion
309 #endif
310 {
311   BDA_SPECTRAL_INVERSION_NOT_SET = -1,
312   BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
313   BDA_SPECTRAL_INVERSION_AUTOMATIC = 1,
314   BDA_SPECTRAL_INVERSION_NORMAL,
315   BDA_SPECTRAL_INVERSION_INVERTED,
316   BDA_SPECTRAL_INVERSION_MAX
317 } SpectralInversion;
318 
319 #ifdef __WIDL__
320 typedef [v1_enum] enum Polarisation
321 #else
322 typedef enum Polarisation
323 #endif
324 {
325   BDA_POLARISATION_NOT_SET = -1,
326   BDA_POLARISATION_NOT_DEFINED = 0,
327   BDA_POLARISATION_LINEAR_H = 1,
328   BDA_POLARISATION_LINEAR_V,
329   BDA_POLARISATION_CIRCULAR_L,
330   BDA_POLARISATION_CIRCULAR_R,
331   BDA_POLARISATION_MAX
332 } Polarisation;
333 
334 #ifdef __WIDL__
335 typedef [v1_enum] enum LNB_Source
336 #else
337 typedef enum LNB_Source
338 #endif
339 {
340   BDA_LNB_SOURCE_NOT_SET = -1,
341   BDA_LNB_SOURCE_NOT_DEFINED = 0,
342   BDA_LNB_SOURCE_A = 1,
343   BDA_LNB_SOURCE_B = 2,
344   BDA_LNB_SOURCE_C = 3,
345   BDA_LNB_SOURCE_D = 4,
346   BDA_LNB_SOURCE_MAX
347 } LNB_Source;
348 
349 #ifdef __WIDL__
350 typedef [v1_enum] enum GuardInterval
351 #else
352 typedef enum GuardInterval
353 #endif
354 {
355   BDA_GUARD_NOT_SET = -1,
356   BDA_GUARD_NOT_DEFINED = 0,
357   BDA_GUARD_1_32 = 1,
358   BDA_GUARD_1_16,
359   BDA_GUARD_1_8,
360   BDA_GUARD_1_4,
361   BDA_GUARD_1_128,
362   BDA_GUARD_19_128,
363   BDA_GUARD_19_256,
364   BDA_GUARD_MAX
365 } GuardInterval;
366 
367 #ifdef __WIDL__
368 typedef [v1_enum] enum HierarchyAlpha
369 #else
370 typedef enum HierarchyAlpha
371 #endif
372 {
373   BDA_HALPHA_NOT_SET = -1,
374   BDA_HALPHA_NOT_DEFINED = 0,
375   BDA_HALPHA_1 = 1,
376   BDA_HALPHA_2,
377   BDA_HALPHA_4,
378   BDA_HALPHA_MAX
379 } HierarchyAlpha;
380 
381 #ifdef __WIDL__
382 typedef [v1_enum] enum TransmissionMode
383 #else
384 typedef enum TransmissionMode
385 #endif
386 {
387   BDA_XMIT_MODE_NOT_SET = -1,
388   BDA_XMIT_MODE_NOT_DEFINED = 0,
389   BDA_XMIT_MODE_2K = 1,
390   BDA_XMIT_MODE_8K,
391   BDA_XMIT_MODE_4K,
392   BDA_XMIT_MODE_2K_INTERLEAVED,
393   BDA_XMIT_MODE_4K_INTERLEAVED,
394   BDA_XMIT_MODE_1K,
395   BDA_XMIT_MODE_16K,
396   BDA_XMIT_MODE_32K,
397   BDA_XMIT_MODE_MAX
398 } TransmissionMode;
399 
400 #ifdef __WIDL__
401 typedef [v1_enum] enum RollOff
402 #else
403 typedef enum RollOff
404 #endif
405 {
406   BDA_ROLL_OFF_NOT_SET = -1,
407   BDA_ROLL_OFF_NOT_DEFINED = 0,
408   BDA_ROLL_OFF_20 = 1,
409   BDA_ROLL_OFF_25,
410   BDA_ROLL_OFF_35,
411   BDA_ROLL_OFF_MAX
412 } RollOff;
413 
414 #ifdef __WIDL__
415 typedef [v1_enum] enum Pilot
416 #else
417 typedef enum Pilot
418 #endif
419 {
420   BDA_PILOT_NOT_SET = -1,
421   BDA_PILOT_NOT_DEFINED = 0,
422   BDA_PILOT_OFF = 1,
423   BDA_PILOT_ON,
424   BDA_PILOT_MAX
425 } Pilot;
426 
427 typedef enum BDA_Frequency {
428   BDA_FREQUENCY_NOT_SET = -1,
429   BDA_FREQUENCY_NOT_DEFINED = 0
430 } BDA_Frequency;
431 
432 typedef enum BDA_Range {
433   BDA_RANGE_NOT_SET = -1,
434   BDA_RANGE_NOT_DEFINED = 0
435 } BDA_Range;
436 
437 typedef enum BDA_Channel_Bandwidth {
438   BDA_CHAN_BANDWITH_NOT_SET = -1,
439   BDA_CHAN_BANDWITH_NOT_DEFINED = 0
440 } BDA_Channel_Bandwidth;
441 
442 typedef enum BDA_Frequency_Multiplier {
443   BDA_FREQUENCY_MULTIPLIER_NOT_SET = -1,
444   BDA_FREQUENCY_MULTIPLIER_NOT_DEFINED = 0
445 } BDA_Frequency_Multiplier;
446 
447 typedef enum BDA_Comp_Flags {
448   BDACOMP_NOT_DEFINED = 0x00000000,
449   BDACOMP_EXCLUDE_TS_FROM_TR = 0x00000001,
450   BDACOMP_INCLUDE_LOCATOR_IN_TR = 0x00000002,
451   BDACOMP_INCLUDE_COMPONENTS_IN_TR = 0x00000004
452 } BDA_Comp_Flags;
453 
454 typedef enum ApplicationTypeType {
455   SCTE28_ConditionalAccess = 0,
456   SCTE28_POD_Host_Binding_Information,
457   SCTE28_IPService,
458   SCTE28_NetworkInterface_SCTE55_2,
459   SCTE28_NetworkInterface_SCTE55_1,
460   SCTE28_CopyProtection,
461   SCTE28_Diagnostic,
462   SCTE28_Undesignated,
463   SCTE28_Reserved,
464 } ApplicationTypeType;
465 
466 #ifdef __WIDL__
467 typedef [v1_enum] enum BDA_CONDITIONALACCESS_REQUESTTYPE
468 #else
469 typedef enum BDA_CONDITIONALACCESS_REQUESTTYPE
470 #endif
471 {
472   CONDITIONALACCESS_ACCESS_UNSPECIFIED = 0,
473   CONDITIONALACCESS_ACCESS_NOT_POSSIBLE,
474   CONDITIONALACCESS_ACCESS_POSSIBLE,
475   CONDITIONALACCESS_ACCESS_POSSIBLE_NO_STREAMING_DISRUPTION
476 } BDA_CONDITIONALACCESS_REQUESTTYPE;
477 
478 #ifdef __WIDL__
479 typedef [v1_enum] enum BDA_CONDITIONALACCESS_MMICLOSEREASON
480 #else
481 typedef enum BDA_CONDITIONALACCESS_MMICLOSEREASON
482 #endif
483 {
484   CONDITIONALACCESS_UNSPECIFIED = 0,
485   CONDITIONALACCESS_CLOSED_ITSELF,
486   CONDITIONALACCESS_TUNER_REQUESTED_CLOSE,
487   CONDITIONALACCESS_DIALOG_TIMEOUT,
488   CONDITIONALACCESS_DIALOG_FOCUS_CHANGE,
489   CONDITIONALACCESS_DIALOG_USER_DISMISSED,
490   CONDITIONALACCESS_DIALOG_USER_NOT_AVAILABLE
491 } BDA_CONDITIONALACCESS_MMICLOSEREASON;
492 
493 typedef enum BDA_CONDITIONALACCESS_SESSION_RESULT {
494   CONDITIONALACCESS_SUCCESSFULL = 0,
495   CONDITIONALACCESS_ENDED_NOCHANGE,
496   CONDITIONALACCESS_ABORTED
497 } BDA_CONDITIONALACCESS_SESSION_RESULT;
498 
499 typedef enum BDA_DISCOVERY_STATE {
500   BDA_DISCOVERY_UNSPECIFIED = 0,
501   BDA_DISCOVERY_REQUIRED,
502   BDA_DISCOVERY_COMPLETE
503 } BDA_DISCOVERY_STATE;
504 
505 typedef struct _BDA_TEMPLATE_CONNECTION {
506   ULONG FromNodeType;
507   ULONG FromNodePinType;
508   ULONG ToNodeType;
509   ULONG ToNodePinType;
510 } BDA_TEMPLATE_CONNECTION, *PBDA_TEMPLATE_CONNECTION;
511 
512 typedef struct _BDA_TEMPLATE_PIN_JOINT {
513   ULONG uliTemplateConnection;
514   ULONG ulcInstancesMax;
515 } BDA_TEMPLATE_PIN_JOINT, *PBDA_TEMPLATE_PIN_JOINT;
516 
517 typedef struct tagKS_BDA_FRAME_INFO {
518   ULONG ExtendedHeaderSize;
519   DWORD dwFrameFlags;
520   ULONG ulEvent;
521   ULONG ulChannelNumber;
522   ULONG ulSubchannelNumber;
523   ULONG ulReason;
524 } KS_BDA_FRAME_INFO, *PKS_BDA_FRAME_INFO;
525 
526 typedef struct _BDA_ETHERNET_ADDRESS {
527   BYTE rgbAddress[6];
528 } BDA_ETHERNET_ADDRESS, *PBDA_ETHERNET_ADDRESS;
529 
530 typedef struct _BDA_ETHERNET_ADDRESS_LIST {
531   ULONG ulcAddresses;
532   BDA_ETHERNET_ADDRESS rgAddressl[MIN_DIMENSION];
533 } BDA_ETHERNET_ADDRESS_LIST, *PBDA_ETHERNET_ADDRESS_LIST;
534 
535 typedef struct _BDA_IPv4_ADDRESS {
536   BYTE rgbAddress[4];
537 } BDA_IPv4_ADDRESS, *PBDA_IPv4_ADDRESS;
538 
539 typedef struct _BDA_IPv4_ADDRESS_LIST {
540   ULONG ulcAddresses;
541   BDA_IPv4_ADDRESS rgAddressl[MIN_DIMENSION];
542 } BDA_IPv4_ADDRESS_LIST, *PBDA_IPv4_ADDRESS_LIST;
543 
544 typedef struct _BDA_IPv6_ADDRESS {
545   BYTE rgbAddress[6];
546 } BDA_IPv6_ADDRESS, *PBDA_IPv6_ADDRESS;
547 
548 typedef struct _BDA_IPv6_ADDRESS_LIST {
549   ULONG ulcAddresses;
550   BDA_IPv6_ADDRESS rgAddressl[MIN_DIMENSION];
551 } BDA_IPv6_ADDRESS_LIST, *PBDA_IPv6_ADDRESS_LIST;
552 
553 typedef struct _BDANODE_DESCRIPTOR {
554   ULONG ulBdaNodeType;
555   GUID guidFunction;
556   GUID guidName;
557 } BDANODE_DESCRIPTOR, *PBDANODE_DESCRIPTOR;
558 
559 typedef struct _BDA_TABLE_SECTION {
560   ULONG ulPrimarySectionId;
561   ULONG ulSecondarySectionId;
562   ULONG ulcbSectionLength;
563   ULONG argbSectionData[MIN_DIMENSION];
564 } BDA_TABLE_SECTION, *PBDA_TABLE_SECTION;
565 
566 typedef struct _BDA_DISEQC_SEND {
567   ULONG ulRequestId;
568   ULONG ulPacketLength;
569   BYTE argbPacketData[8];
570 } BDA_DISEQC_SEND, *PBDA_DISEQC_SEND;
571 
572 typedef struct _BDA_DISEQC_RESPONSE {
573   ULONG ulRequestId;
574   ULONG ulPacketLength;
575   BYTE argbPacketData[8];
576 } BDA_DISEQC_RESPONSE, *PBDA_DISEQC_RESPONSE;
577 
578 typedef struct {
579   ULONG ulPID;
580   MEDIA_SAMPLE_CONTENT MediaSampleContent;
581 } PID_MAP;
582 
583 typedef struct _BDA_PID_MAP {
584   MEDIA_SAMPLE_CONTENT MediaSampleContent;
585   ULONG ulcPIDs;
586   ULONG aulPIDs[MIN_DIMENSION];
587 } BDA_PID_MAP, *PBDA_PID_MAP;
588 
589 typedef struct _BDA_PID_UNMAP {
590   ULONG ulcPIDs;
591   ULONG aulPIDs[MIN_DIMENSION];
592 } BDA_PID_UNMAP, *PBDA_PID_UNMAP;
593 
594 typedef struct _BDA_CA_MODULE_UI {
595   ULONG ulFormat;
596   ULONG ulbcDesc;
597   ULONG ulDesc[MIN_DIMENSION];
598 } BDA_CA_MODULE_UI, *PBDA_CA_MODULE_UI;
599 
600 typedef struct _BDA_PROGRAM_PID_LIST {
601   ULONG ulProgramNumber;
602   ULONG ulcPIDs;
603   ULONG ulPID[MIN_DIMENSION];
604 } BDA_PROGRAM_PID_LIST, *PBDA_PROGRAM_PID_LIST;
605 
606 typedef struct _BDA_DRM_DRMSTATUS {
607   PBDARESULT lResult;
608   GUID DRMuuid;
609   ULONG ulDrmUuidListStringSize;
610   GUID argbDrmUuidListString[MIN_DIMENSION];
611 } BDA_DRM_DRMSTATUS, *PBDA_DRM_DRMSTATUS;
612 
613 typedef struct _BDA_WMDRM_STATUS {
614   PBDARESULT lResult;
615   ULONG ulMaxCaptureTokenSize;
616   ULONG uMaxStreamingPid;
617   ULONG ulMaxLicense;
618   ULONG ulMinSecurityLevel;
619   ULONG ulRevInfoSequenceNumber;
620   ULONGLONG ulRevInfoIssuedTime;
621   ULONG ulRevListVersion;
622   ULONG ulRevInfoTTL;
623   ULONG ulState;
624 } BDA_WMDRM_STATUS, *PBDA_WMDRM_STATUS;
625 
626 typedef struct _BDA_WMDRM_KEYINFOLIST {
627   PBDARESULT lResult;
628   ULONG ulKeyuuidBufferLen;
629   GUID argKeyuuidBuffer[MIN_DIMENSION];
630 } BDA_WMDRM_KEYINFOLIST, *PBDA_WMDRM_KEYINFOLIST;
631 
632 typedef struct _BDA_BUFFER {
633   PBDARESULT lResult;
634   ULONG ulBufferSize;
635   BYTE argbBuffer[MIN_DIMENSION];
636 } BDA_BUFFER, *PBDA_BUFFER;
637 
638 typedef struct _BDA_WMDRM_RENEWLICENSE {
639   PBDARESULT lResult;
640   ULONG ulDescrambleStatus;
641   ULONG ulXmrLicenseOutputLength;
642   BYTE argbXmrLicenceOutputBuffer[MIN_DIMENSION];
643 } BDA_WMDRM_RENEWLICENSE, *PBDA_WMDRM_RENEWLICENSE;
644 
645 typedef struct _BDA_WMDRMTUNER_PIDPROTECTION {
646   PBDARESULT lResult;
647   GUID uuidKeyID;
648 } BDA_WMDRMTUNER_PIDPROTECTION, *PBDA_WMDRMTUNER_PIDPROTECTION;
649 
650 typedef struct _BDA_WMDRMTUNER_PURCHASEENTITLEMENT {
651   PBDARESULT lResult;
652   ULONG ulDescrambleStatus;
653   ULONG ulCaptureTokenLength;
654   BYTE argbCaptureTokenBuffer[MIN_DIMENSION];
655 } BDA_WMDRMTUNER_PURCHASEENTITLEMENT, *PBDA_WMDRMTUNER_PURCHASEENTITLEMENT;
656 
657 typedef struct _BDA_TUNER_TUNERSTATE {
658   PBDARESULT lResult;
659   ULONG ulTuneLength;
660   BYTE argbTuneData [MIN_DIMENSION];
661 } BDA_TUNER_TUNERSTATE, *PBDA_TUNER_TUNERSTATE;
662 
663 typedef struct _BDA_TUNER_DIAGNOSTICS {
664   PBDARESULT lResult;
665   ULONG ulSignalLevel;
666   ULONG ulSignalLevelQuality;
667   ULONG ulSignalNoiseRatio;
668 } BDA_TUNER_DIAGNOSTICS, *PBDA_TUNER_DIAGNOSTICS;
669 
670 typedef struct _BDA_STRING {
671   PBDARESULT lResult;
672   ULONG ulStringSize;
673   BYTE argbString[MIN_DIMENSION];
674 } BDA_STRING, *PBDA_STRING;
675 
676 typedef struct _BDA_SCAN_CAPABILTIES {
677   PBDARESULT lResult;
678   UINT64 ul64AnalogStandardsSupported;
679 } BDA_SCAN_CAPABILTIES, *PBDA_SCAN_CAPABILTIES;
680 
681 typedef struct _BDA_SCAN_STATE {
682   PBDARESULT lResult;
683   ULONG ulSignalLock;
684   ULONG ulSecondsLeft;
685   ULONG ulCurrentFrequency;
686 } BDA_SCAN_STATE, *PBDA_SCAN_STATE;
687 
688 typedef struct _BDA_SCAN_START {
689   PBDARESULT lResult;
690   ULONG LowerFrequency;
691   ULONG HigerFrequency;
692 } BDA_SCAN_START, *PBDA_SCAN_START;
693 
694 typedef struct _BDA_GDDS_DATATYPE {
695   PBDARESULT lResult;
696   GUID uuidDataType;
697 } BDA_GDDS_DATATYPE, *P_BDA_GDDS_DATATYPE;
698 
699 typedef struct _BDA_GDDS_DATA {
700   PBDARESULT lResult;
701   ULONG ulDataLength;
702   ULONG ulPercentageProgress;
703   BYTE argbData [MIN_DIMENSION];
704 } BDA_GDDS_DATA, *P_BDA_GDDS_DATA;
705 
706 typedef struct _BDA_USERACTIVITY_INTERVAL {
707   PBDARESULT lResult;
708   ULONG ulActivityInterval;
709 } BDA_USERACTIVITY_INTERVAL, *P_BDA_USERACTIVITY_INTERVAL;
710 
711 typedef struct _BDA_CAS_CHECK_ENTITLEMENTTOKEN {
712   PBDARESULT lResult;
713   ULONG ulDescrambleStatus;
714 } BDA_CAS_CHECK_ENTITLEMENTTOKEN, *PBDA_CAS_CHECK_ENTITLEMENTTOKEN;
715 
716 typedef struct _BDA_CAS_CLOSE_MMIDIALOG {
717   PBDARESULT lResult;
718   ULONG SessionResult;
719 } BDA_CAS_CLOSE_MMIDIALOG, *PBDA_CAS_CLOSE_MMIDIALOG;
720 
721 typedef struct _BDA_CAS_REQUESTTUNERDATA {
722   UCHAR ucRequestPriority;
723   UCHAR ucRequestReason;
724   UCHAR ucRequestConsequences;
725   ULONG ulEstimatedTime;
726 } BDA_CAS_REQUESTTUNERDATA, *PBDA_CAS_REQUESTTUNERDATA;
727 
728 typedef struct _BDA_CAS_OPENMMIDATA {
729   ULONG ulDialogNumber;
730   ULONG ulDialogRequest;
731   GUID uuidDialogType;
732   USHORT usDialogDataLength;
733   BYTE argbDialogData[MIN_DIMENSION];
734 } BDA_CAS_OPENMMIDATA, *PBDA_CAS_OPENMMIDATA;
735 
736 typedef struct _BDA_CAS_CLOSEMMIDATA {
737   ULONG ulDialogNumber;
738 } BDA_CAS_CLOSEMMIDATA, *PBDA_CAS_CLOSEMMIDATA;
739 
740 #pragma pack(push, 1)
741 typedef struct _BDA_ISDBCAS_REQUESTHEADER {
742   BYTE bInstruction;
743   BYTE bReserved[3];
744   ULONG ulDataLength;
745   BYTE argbIsdbCommand[MIN_DIMENSION];
746 } BDA_ISDBCAS_REQUESTHEADER, *PBDA_ISDBCAS_REQUESTHEADER;
747 
748 typedef struct _BDA_ISDBCAS_RESPONSEDATA {
749   PBDARESULT lResult;
750   ULONG ulRequestID;
751   ULONG ulIsdbStatus;
752   ULONG ulIsdbDataSize;
753   BYTE argbIsdbCommandData[MIN_DIMENSION];
754 } BDA_ISDBCAS_RESPONSEDATA, *PBDA_ISDBCAS_RESPONSEDATA;
755 
756 typedef struct _BDA_ISDBCAS_EMG_REQ {
757   BYTE bCLA;
758   BYTE bINS;
759   BYTE bP1;
760   BYTE bP2;
761   BYTE bLC;
762   BYTE bCardId[6];
763   BYTE bProtocol;
764   BYTE bCABroadcasterGroupId;
765   BYTE bMessageControl;
766   BYTE bMessageCode[MIN_DIMENSION];
767 } BDA_ISDBCAS_EMG_REQ, *PBDA_ISDBCAS_EMG_REQ;
768 #pragma pack(pop)
769 
770 #pragma pack(push, 2)
771 typedef struct _BDA_MUX_PIDLISTITEM {
772   USHORT usPIDNumber;
773   USHORT usProgramNumber;
774   MUX_PID_TYPE ePIDType;
775 } BDA_MUX_PIDLISTITEM, *PBDA_MUX_PIDLISTITEM;
776 #pragma pack(pop)
777 
778 #pragma pack(push, 1)
779 typedef struct _BDA_TS_SELECTORINFO {
780   BYTE bTSInfolength;
781   BYTE bReserved[2];
782   GUID guidNetworkType;
783   BYTE bTSIDCount;
784   USHORT usTSID[MIN_DIMENSION];
785 } BDA_TS_SELECTORINFO, *PBDA_TS_SELECTORINFO;
786 
787 typedef struct _BDA_TS_SELECTORINFO_ISDBS_EXT {
788   BYTE bTMCC[48];
789 } BDA_TS_SELECTORINFO_ISDBS_EXT, *PBDA_TS_SELECTORINFO_ISDBS_EXT;
790 #pragma pack(pop)
791 
792 typedef struct _BDA_DVBT2_L1_SIGNALLING_DATA {
793   BYTE L1Pre_TYPE;
794   BYTE L1Pre_BWT_S1_S2;
795   BYTE L1Pre_REPETITION_GUARD_PAPR;
796   BYTE L1Pre_MOD_COD_FEC;
797   BYTE L1Pre_POSTSIZE_INFO_PILOT[5];
798   BYTE L1Pre_TX_ID_AVAIL;
799   BYTE L1Pre_CELL_ID[2];
800   BYTE L1Pre_NETWORK_ID[2];
801   BYTE L1Pre_T2SYSTEM_ID[2];
802   BYTE L1Pre_NUM_T2_FRAMES;
803   BYTE L1Pre_NUM_DATA_REGENFLAG_L1POSTEXT[2];
804   BYTE L1Pre_NUMRF_CURRENTRF_RESERVED[2];
805   BYTE L1Pre_CRC32[4];
806   BYTE L1PostData[MIN_DIMENSION];
807 } BDA_DVBT2_L1_SIGNALLING_DATA, *PBDA_DVBT2_L1_SIGNALLING_DATA;
808 
809 typedef struct _BDA_RATING_PINRESET {
810   BYTE bPinLength;
811   BYTE argbNewPin[MIN_DIMENSION];
812 } BDA_RATING_PINRESET, *PBDA_RATING_PINRESET;
813 
814 typedef struct _MPEG2_TRANSPORT_STRIDE {
815   DWORD dwOffset;
816   DWORD dwPacketLength;
817   DWORD dwStride;
818 } MPEG2_TRANSPORT_STRIDE, *PMPEG2_TRANSPORT_STRIDE;
819 
820 typedef struct _BDA_SIGNAL_TIMEOUTS {
821   ULONG ulCarrierTimeoutMs;
822   ULONG ulScanningTimeoutMs;
823   ULONG ulTuningTimeoutMs;
824 } BDA_SIGNAL_TIMEOUTS, *PBDA_SIGNAL_TIMEOUTS;
825 
826 #endif
827 #endif
828