zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

bdatypes.h (20367B) - Raw


      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