~steve-sk2/mingw-w64/oneiric

« back to all changes in this revision

Viewing changes to mingw-w64-headers/include/ntddmmc.h

  • Committer: Bazaar Package Importer
  • Author(s): Stephen Kitt
  • Date: 2010-11-18 00:04:46 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20101118000446-xe24b423su55onyl
Tags: 1.0+20101003-1
* New maintainer. (Closes: #594371.)
* New upstream snapshot:
  - Includes getopt.h. (Closes: #569914.)
* Build g++ for Win64. (Closes: #600451.)
* Standards-Version 3.9.1 (new packaging).
* Include patch from
  http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64?view=revision&revision=3715
  as suggested by Rafaël Carré.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * This file has no copyright assigned and is placed in the Public Domain.
 
3
 * This file is part of the ReactOS PSDK package.
 
4
 * No warranty is given; refer to the file DISCLAIMER within this package.
 
5
 */
 
6
 
 
7
#pragma once
 
8
 
 
9
#define __NTDDMMC__
 
10
 
 
11
#ifdef __cplusplus
 
12
extern "C" {
 
13
#endif
 
14
 
 
15
#define SCSI_GET_CONFIGURATION_REQUEST_TYPE_ALL          0x0
 
16
#define SCSI_GET_CONFIGURATION_REQUEST_TYPE_CURRENT      0x1
 
17
#define SCSI_GET_CONFIGURATION_REQUEST_TYPE_ONE          0x2
 
18
 
 
19
typedef struct _GET_CONFIGURATION_HEADER {
 
20
  UCHAR DataLength[4];
 
21
  UCHAR Reserved[2];
 
22
  UCHAR CurrentProfile[2];
 
23
#if !defined(__midl) && !defined(__WIDL__)
 
24
  UCHAR Data[0];
 
25
#endif
 
26
} GET_CONFIGURATION_HEADER, *PGET_CONFIGURATION_HEADER;
 
27
 
 
28
typedef struct _FEATURE_HEADER {
 
29
  UCHAR FeatureCode[2];
 
30
  UCHAR Current:1;
 
31
  UCHAR Persistent:1;
 
32
  UCHAR Version:4;
 
33
  UCHAR Reserved0:2;
 
34
  UCHAR AdditionalLength;
 
35
} FEATURE_HEADER, *PFEATURE_HEADER;
 
36
 
 
37
typedef enum _FEATURE_PROFILE_TYPE {
 
38
  ProfileInvalid = 0x0000,
 
39
  ProfileNonRemovableDisk = 0x0001,
 
40
  ProfileRemovableDisk = 0x0002,
 
41
  ProfileMOErasable = 0x0003,
 
42
  ProfileMOWriteOnce = 0x0004,
 
43
  ProfileAS_MO = 0x0005,
 
44
  ProfileCdrom = 0x0008,
 
45
  ProfileCdRecordable = 0x0009,
 
46
  ProfileCdRewritable = 0x000a,
 
47
  ProfileDvdRom = 0x0010,
 
48
  ProfileDvdRecordable = 0x0011,
 
49
  ProfileDvdRam = 0x0012,
 
50
  ProfileDvdRewritable = 0x0013,
 
51
  ProfileDvdRWSequential = 0x0014,
 
52
  ProfileDvdDashRDualLayer = 0x0015,
 
53
  ProfileDvdDashRLayerJump = 0x0016,
 
54
  ProfileDvdPlusRW = 0x001A,
 
55
  ProfileDvdPlusR = 0x001B,
 
56
  ProfileDDCdrom = 0x0020,
 
57
  ProfileDDCdRecordable = 0x0021,
 
58
  ProfileDDCdRewritable = 0x0022,
 
59
  ProfileDvdPlusRWDualLayer = 0x002A,
 
60
  ProfileDvdPlusRDualLayer = 0x002B,
 
61
  ProfileBDRom = 0x0040,
 
62
  ProfileBDRSequentialWritable = 0x0041,
 
63
  ProfileBDRRandomWritable = 0x0042,
 
64
  ProfileBDRewritable = 0x0043,
 
65
  ProfileHDDVDRom = 0x0050,
 
66
  ProfileHDDVDRecordable = 0x0051,
 
67
  ProfileHDDVDRam = 0x0052,
 
68
  ProfileHDDVDRewritable = 0x0053,
 
69
  ProfileHDDVDRDualLayer = 0x0058,
 
70
  ProfileHDDVDRWDualLayer = 0x005A,
 
71
  ProfileNonStandard = 0xffff
 
72
} FEATURE_PROFILE_TYPE, *PFEATURE_PROFILE_TYPE;
 
73
 
 
74
typedef enum _FEATURE_NUMBER {
 
75
  FeatureProfileList = 0x0000,
 
76
  FeatureCore = 0x0001,
 
77
  FeatureMorphing = 0x0002,
 
78
  FeatureRemovableMedium = 0x0003,
 
79
  FeatureWriteProtect = 0x0004,
 
80
  FeatureRandomReadable = 0x0010,
 
81
  FeatureMultiRead = 0x001D,
 
82
  FeatureCdRead = 0x001E,
 
83
  FeatureDvdRead = 0x001F,
 
84
  FeatureRandomWritable = 0x0020,
 
85
  FeatureIncrementalStreamingWritable = 0x0021,
 
86
  FeatureSectorErasable = 0x0022,
 
87
  FeatureFormattable = 0x0023,
 
88
  FeatureDefectManagement = 0x0024,
 
89
  FeatureWriteOnce = 0x0025,
 
90
  FeatureRestrictedOverwrite = 0x0026,
 
91
  FeatureCdrwCAVWrite = 0x0027,
 
92
  FeatureMrw = 0x0028,
 
93
  FeatureEnhancedDefectReporting = 0x0029,
 
94
  FeatureDvdPlusRW = 0x002A,
 
95
  FeatureDvdPlusR = 0x002B,
 
96
  FeatureRigidRestrictedOverwrite = 0x002C,
 
97
  FeatureCdTrackAtOnce = 0x002D,
 
98
  FeatureCdMastering = 0x002E,
 
99
  FeatureDvdRecordableWrite = 0x002F,
 
100
  FeatureDDCDRead = 0x0030,
 
101
  FeatureDDCDRWrite = 0x0031,
 
102
  FeatureDDCDRWWrite = 0x0032,
 
103
  FeatureLayerJumpRecording = 0x0033,
 
104
  FeatureCDRWMediaWriteSupport = 0x0037,
 
105
  FeatureBDRPseudoOverwrite = 0x0038,
 
106
  FeatureDvdPlusRWDualLayer = 0x003A,
 
107
  FeatureDvdPlusRDualLayer = 0x003B,
 
108
  FeatureBDRead = 0x0040,
 
109
  FeatureBDWrite = 0x0041,
 
110
  FeatureTSR = 0x0042,
 
111
  FeatureHDDVDRead = 0x0050,
 
112
  FeatureHDDVDWrite = 0x0051,
 
113
  FeatureHybridDisc = 0x0080,
 
114
  FeaturePowerManagement = 0x0100,
 
115
  FeatureSMART = 0x0101,
 
116
  FeatureEmbeddedChanger = 0x0102,
 
117
  FeatureCDAudioAnalogPlay = 0x0103,
 
118
  FeatureMicrocodeUpgrade = 0x0104,
 
119
  FeatureTimeout = 0x0105,
 
120
  FeatureDvdCSS = 0x0106,
 
121
  FeatureRealTimeStreaming = 0x0107,
 
122
  FeatureLogicalUnitSerialNumber = 0x0108,
 
123
  FeatureMediaSerialNumber = 0x0109,
 
124
  FeatureDiscControlBlocks = 0x010A,
 
125
  FeatureDvdCPRM = 0x010B,
 
126
  FeatureFirmwareDate = 0x010C,
 
127
  FeatureAACS = 0x010D,
 
128
  FeatureVCPS = 0x0110,
 
129
} FEATURE_NUMBER, *PFEATURE_NUMBER;
 
130
 
 
131
typedef struct _FEATURE_DATA_PROFILE_LIST_EX {
 
132
  UCHAR ProfileNumber[2];
 
133
  UCHAR Current:1;
 
134
  UCHAR Reserved1:7;
 
135
  UCHAR Reserved2;
 
136
} FEATURE_DATA_PROFILE_LIST_EX, *PFEATURE_DATA_PROFILE_LIST_EX;
 
137
 
 
138
typedef struct _FEATURE_DATA_PROFILE_LIST {
 
139
  FEATURE_HEADER Header;
 
140
#if !defined(__midl) && !defined(__WIDL__)
 
141
  FEATURE_DATA_PROFILE_LIST_EX Profiles[0];
 
142
#endif
 
143
} FEATURE_DATA_PROFILE_LIST, *PFEATURE_DATA_PROFILE_LIST;
 
144
 
 
145
typedef struct _FEATURE_DATA_CORE {
 
146
  FEATURE_HEADER Header;
 
147
  UCHAR PhysicalInterface[4];
 
148
  UCHAR DeviceBusyEvent:1;
 
149
  UCHAR INQUIRY2:1;
 
150
  UCHAR Reserved1:6;
 
151
  UCHAR Reserved2[3];
 
152
} FEATURE_DATA_CORE, *PFEATURE_DATA_CORE;
 
153
 
 
154
typedef struct _FEATURE_DATA_MORPHING {
 
155
  FEATURE_HEADER Header;
 
156
  UCHAR Asynchronous:1;
 
157
  UCHAR OCEvent:1;
 
158
  UCHAR Reserved01:6;
 
159
  UCHAR Reserved2[3];
 
160
} FEATURE_DATA_MORPHING, *PFEATURE_DATA_MORPHING;
 
161
 
 
162
typedef struct _FEATURE_DATA_REMOVABLE_MEDIUM {
 
163
  FEATURE_HEADER Header;
 
164
  UCHAR Lockable:1;
 
165
  UCHAR Reserved1:1;
 
166
  UCHAR DefaultToPrevent:1;
 
167
  UCHAR Eject:1;
 
168
  UCHAR Reserved2:1;
 
169
  UCHAR LoadingMechanism:3;
 
170
  UCHAR Reserved3[3];
 
171
} FEATURE_DATA_REMOVABLE_MEDIUM, *PFEATURE_DATA_REMOVABLE_MEDIUM;
 
172
 
 
173
typedef struct _FEATURE_DATA_WRITE_PROTECT {
 
174
  FEATURE_HEADER Header;
 
175
  UCHAR SupportsSWPPBit:1;
 
176
  UCHAR SupportsPersistentWriteProtect:1;
 
177
  UCHAR WriteInhibitDCB:1;
 
178
  UCHAR DiscWriteProtectPAC:1;
 
179
  UCHAR Reserved01:4;
 
180
  UCHAR Reserved2[3];
 
181
} FEATURE_DATA_WRITE_PROTECT, *PFEATURE_DATA_WRITE_PROTECT;
 
182
 
 
183
typedef struct _FEATURE_DATA_RANDOM_READABLE {
 
184
  FEATURE_HEADER Header;
 
185
  UCHAR LogicalBlockSize[4];
 
186
  UCHAR Blocking[2];
 
187
  UCHAR ErrorRecoveryPagePresent:1;
 
188
  UCHAR Reserved1:7;
 
189
  UCHAR Reserved2;
 
190
} FEATURE_DATA_RANDOM_READABLE, *PFEATURE_DATA_RANDOM_READABLE;
 
191
 
 
192
typedef struct _FEATURE_DATA_MULTI_READ {
 
193
  FEATURE_HEADER Header;
 
194
} FEATURE_DATA_MULTI_READ, *PFEATURE_DATA_MULTI_READ;
 
195
 
 
196
typedef struct _FEATURE_DATA_CD_READ {
 
197
  FEATURE_HEADER Header;
 
198
  UCHAR CDText:1;
 
199
  UCHAR C2ErrorData:1;
 
200
  UCHAR Reserved01:5;
 
201
  UCHAR DigitalAudioPlay:1;
 
202
  UCHAR Reserved2[3];
 
203
} FEATURE_DATA_CD_READ, *PFEATURE_DATA_CD_READ;
 
204
 
 
205
typedef struct _FEATURE_DATA_DVD_READ {
 
206
  FEATURE_HEADER Header;
 
207
  UCHAR Multi110:1;
 
208
  UCHAR Reserved1:7;
 
209
  UCHAR Reserved2;
 
210
  UCHAR DualDashR:1;
 
211
  UCHAR Reserved3:7;
 
212
  UCHAR Reserved4;
 
213
} FEATURE_DATA_DVD_READ, *PFEATURE_DATA_DVD_READ;
 
214
 
 
215
typedef struct _FEATURE_DATA_RANDOM_WRITABLE {
 
216
  FEATURE_HEADER Header;
 
217
  UCHAR LastLBA[4];
 
218
  UCHAR LogicalBlockSize[4];
 
219
  UCHAR Blocking[2];
 
220
  UCHAR ErrorRecoveryPagePresent:1;
 
221
  UCHAR Reserved1:7;
 
222
  UCHAR Reserved2;
 
223
} FEATURE_DATA_RANDOM_WRITABLE, *PFEATURE_DATA_RANDOM_WRITABLE;
 
224
 
 
225
typedef struct _FEATURE_DATA_INCREMENTAL_STREAMING_WRITABLE {
 
226
  FEATURE_HEADER Header;
 
227
  UCHAR DataTypeSupported[2];
 
228
  UCHAR BufferUnderrunFree:1;
 
229
  UCHAR AddressModeReservation:1;
 
230
  UCHAR TrackRessourceInformation:1;
 
231
  UCHAR Reserved01:5;
 
232
  UCHAR NumberOfLinkSizes;
 
233
#if !defined(__midl) && !defined(__WIDL__)
 
234
  UCHAR LinkSize[0];
 
235
#endif
 
236
} FEATURE_DATA_INCREMENTAL_STREAMING_WRITABLE, *PFEATURE_DATA_INCREMENTAL_STREAMING_WRITABLE;
 
237
 
 
238
typedef struct _FEATURE_DATA_SECTOR_ERASABLE {
 
239
  FEATURE_HEADER Header;
 
240
} FEATURE_DATA_SECTOR_ERASABLE, *PFEATURE_DATA_SECTOR_ERASABLE;
 
241
 
 
242
typedef struct _FEATURE_DATA_FORMATTABLE {
 
243
  FEATURE_HEADER Header;
 
244
  UCHAR FullCertification:1;
 
245
  UCHAR QuickCertification:1;
 
246
  UCHAR SpareAreaExpansion:1;
 
247
  UCHAR RENoSpareAllocated:1;
 
248
  UCHAR Reserved1:4;
 
249
  UCHAR Reserved2[3];
 
250
  UCHAR RRandomWritable:1;
 
251
  UCHAR Reserved3:7;
 
252
  UCHAR Reserved4[3];
 
253
} FEATURE_DATA_FORMATTABLE, *PFEATURE_DATA_FORMATTABLE;
 
254
 
 
255
typedef struct _FEATURE_DATA_DEFECT_MANAGEMENT {
 
256
  FEATURE_HEADER Header;
 
257
  UCHAR Reserved1:7;
 
258
  UCHAR SupplimentalSpareArea:1;
 
259
  UCHAR Reserved2[3];
 
260
} FEATURE_DATA_DEFECT_MANAGEMENT, *PFEATURE_DATA_DEFECT_MANAGEMENT;
 
261
 
 
262
typedef struct _FEATURE_DATA_WRITE_ONCE {
 
263
  FEATURE_HEADER Header;
 
264
  UCHAR LogicalBlockSize[4];
 
265
  UCHAR Blocking[2];
 
266
  UCHAR ErrorRecoveryPagePresent:1;
 
267
  UCHAR Reserved1:7;
 
268
  UCHAR Reserved2;
 
269
} FEATURE_DATA_WRITE_ONCE, *PFEATURE_DATA_WRITE_ONCE;
 
270
 
 
271
typedef struct _FEATURE_DATA_RESTRICTED_OVERWRITE {
 
272
  FEATURE_HEADER Header;
 
273
} FEATURE_DATA_RESTRICTED_OVERWRITE, *PFEATURE_DATA_RESTRICTED_OVERWRITE;
 
274
 
 
275
typedef struct _FEATURE_DATA_CDRW_CAV_WRITE {
 
276
  FEATURE_HEADER Header;
 
277
  UCHAR Reserved1[4];
 
278
} FEATURE_DATA_CDRW_CAV_WRITE, *PFEATURE_DATA_CDRW_CAV_WRITE;
 
279
 
 
280
typedef struct _FEATURE_DATA_MRW {
 
281
  FEATURE_HEADER Header;
 
282
  UCHAR Write:1;
 
283
  UCHAR DvdPlusRead:1;
 
284
  UCHAR DvdPlusWrite:1;
 
285
  UCHAR Reserved01:5;
 
286
  UCHAR Reserved2[3];
 
287
} FEATURE_DATA_MRW, *PFEATURE_DATA_MRW;
 
288
 
 
289
typedef struct _FEATURE_ENHANCED_DEFECT_REPORTING {
 
290
  FEATURE_HEADER Header;
 
291
  UCHAR DRTDMSupported:1;
 
292
  UCHAR Reserved0:7;
 
293
  UCHAR NumberOfDBICacheZones;
 
294
  UCHAR NumberOfEntries[2];
 
295
} FEATURE_ENHANCED_DEFECT_REPORTING, *PFEATURE_ENHANCED_DEFECT_REPORTING;
 
296
 
 
297
typedef struct _FEATURE_DATA_DVD_PLUS_RW {
 
298
  FEATURE_HEADER Header;
 
299
  UCHAR Write:1;
 
300
  UCHAR Reserved1:7;
 
301
  UCHAR CloseOnly:1;
 
302
  UCHAR QuickStart:1;
 
303
  UCHAR Reserved02:6;
 
304
  UCHAR Reserved03[2];
 
305
} FEATURE_DATA_DVD_PLUS_RW, *PFEATURE_DATA_DVD_PLUS_RW;
 
306
 
 
307
typedef struct _FEATURE_DATA_DVD_PLUS_R {
 
308
  FEATURE_HEADER Header;
 
309
  UCHAR Write:1;
 
310
  UCHAR Reserved1:7;
 
311
  UCHAR Reserved2[3];
 
312
} FEATURE_DATA_DVD_PLUS_R, *PFEATURE_DATA_DVD_PLUS_R;
 
313
 
 
314
typedef struct _FEATURE_DATA_DVD_RW_RESTRICTED_OVERWRITE {
 
315
  FEATURE_HEADER Header;
 
316
  UCHAR Blank:1;
 
317
  UCHAR Intermediate:1;
 
318
  UCHAR DefectStatusDataRead:1;
 
319
  UCHAR DefectStatusDataGenerate:1;
 
320
  UCHAR Reserved0:4;
 
321
  UCHAR Reserved1[3];
 
322
} FEATURE_DATA_DVD_RW_RESTRICTED_OVERWRITE, *PFEATURE_DATA_DVD_RW_RESTRICTED_OVERWRITE;
 
323
 
 
324
typedef struct _FEATURE_DATA_CD_TRACK_AT_ONCE {
 
325
  FEATURE_HEADER Header;
 
326
  UCHAR RWSubchannelsRecordable:1;
 
327
  UCHAR CdRewritable:1;
 
328
  UCHAR TestWriteOk:1;
 
329
  UCHAR RWSubchannelPackedOk:1;
 
330
  UCHAR RWSubchannelRawOk:1;
 
331
  UCHAR Reserved1:1;
 
332
  UCHAR BufferUnderrunFree:1;
 
333
  UCHAR Reserved3:1;
 
334
  UCHAR Reserved2;
 
335
  UCHAR DataTypeSupported[2];
 
336
} FEATURE_DATA_CD_TRACK_AT_ONCE, *PFEATURE_DATA_CD_TRACK_AT_ONCE;
 
337
 
 
338
typedef struct _FEATURE_DATA_CD_MASTERING {
 
339
  FEATURE_HEADER Header;
 
340
  UCHAR RWSubchannelsRecordable:1;
 
341
  UCHAR CdRewritable:1;
 
342
  UCHAR TestWriteOk:1;
 
343
  UCHAR RawRecordingOk:1;
 
344
  UCHAR RawMultiSessionOk:1;
 
345
  UCHAR SessionAtOnceOk:1;
 
346
  UCHAR BufferUnderrunFree:1;
 
347
  UCHAR Reserved1:1;
 
348
  UCHAR MaximumCueSheetLength[3];
 
349
} FEATURE_DATA_CD_MASTERING, *PFEATURE_DATA_CD_MASTERING;
 
350
 
 
351
typedef struct _FEATURE_DATA_DVD_RECORDABLE_WRITE {
 
352
  FEATURE_HEADER Header;
 
353
  UCHAR Reserved1:1;
 
354
  UCHAR DVD_RW:1;
 
355
  UCHAR TestWrite:1;
 
356
  UCHAR RDualLayer:1;
 
357
  UCHAR Reserved02:2;
 
358
  UCHAR BufferUnderrunFree:1;
 
359
  UCHAR Reserved3:1;
 
360
  UCHAR Reserved4[3];
 
361
} FEATURE_DATA_DVD_RECORDABLE_WRITE, *PFEATURE_DATA_DVD_RECORDABLE_WRITE;
 
362
 
 
363
typedef struct _FEATURE_DATA_DDCD_READ {
 
364
  FEATURE_HEADER Header;
 
365
} FEATURE_DATA_DDCD_READ, *PFEATURE_DATA_DDCD_READ;
 
366
 
 
367
typedef struct _FEATURE_DATA_DDCD_R_WRITE {
 
368
  FEATURE_HEADER Header;
 
369
  UCHAR Reserved1:2;
 
370
  UCHAR TestWrite:1;
 
371
  UCHAR Reserved2:5;
 
372
  UCHAR Reserved3[3];
 
373
} FEATURE_DATA_DDCD_R_WRITE, *PFEATURE_DATA_DDCD_R_WRITE;
 
374
 
 
375
typedef struct _FEATURE_DATA_DDCD_RW_WRITE {
 
376
  FEATURE_HEADER Header;
 
377
  UCHAR Blank:1;
 
378
  UCHAR Intermediate:1;
 
379
  UCHAR Reserved1:6;
 
380
  UCHAR Reserved2[3];
 
381
} FEATURE_DATA_DDCD_RW_WRITE, *PFEATURE_DATA_DDCD_RW_WRITE;
 
382
 
 
383
typedef struct _FEATURE_DATA_LAYER_JUMP_RECORDING {
 
384
  FEATURE_HEADER Header;
 
385
  UCHAR Reserved0[3];
 
386
  UCHAR NumberOfLinkSizes;
 
387
#if !defined(__midl) && !defined(__WIDL__)
 
388
  UCHAR LinkSizes[0];
 
389
#endif
 
390
} FEATURE_DATA_LAYER_JUMP_RECORDING, *PFEATURE_DATA_LAYER_JUMP_RECORDING;
 
391
 
 
392
typedef struct _FEATURE_CD_RW_MEDIA_WRITE_SUPPORT {
 
393
  FEATURE_HEADER Header;
 
394
  UCHAR Reserved1;
 
395
  struct{
 
396
    UCHAR Subtype0:1;
 
397
    UCHAR Subtype1:1;
 
398
    UCHAR Subtype2:1;
 
399
    UCHAR Subtype3:1;
 
400
    UCHAR Subtype4:1;
 
401
    UCHAR Subtype5:1;
 
402
    UCHAR Subtype6:1;
 
403
    UCHAR Subtype7:1;
 
404
  } CDRWMediaSubtypeSupport;
 
405
  UCHAR Reserved2[2];
 
406
} FEATURE_CD_RW_MEDIA_WRITE_SUPPORT, *PFEATURE_CD_RW_MEDIA_WRITE_SUPPORT;
 
407
 
 
408
typedef struct _FEATURE_BD_R_PSEUDO_OVERWRITE {
 
409
  FEATURE_HEADER Header;
 
410
  UCHAR Reserved[4];
 
411
} FEATURE_BD_R_PSEUDO_OVERWRITE, *PFEATURE_BD_R_PSEUDO_OVERWRITE;
 
412
 
 
413
typedef struct _FEATURE_DATA_DVD_PLUS_RW_DUAL_LAYER {
 
414
  FEATURE_HEADER Header;
 
415
  UCHAR Write:1;
 
416
  UCHAR Reserved1:7;
 
417
  UCHAR CloseOnly:1;
 
418
  UCHAR QuickStart:1;
 
419
  UCHAR Reserved2:6;
 
420
  UCHAR Reserved3[2];
 
421
} FEATURE_DATA_DVD_PLUS_RW_DUAL_LAYER, *PFEATURE_DATA_DVD_PLUS_RW_DUAL_LAYER;
 
422
 
 
423
typedef struct _FEATURE_DATA_DVD_PLUS_R_DUAL_LAYER {
 
424
  FEATURE_HEADER Header;
 
425
  UCHAR Write:1;
 
426
  UCHAR Reserved1:7;
 
427
  UCHAR Reserved2[3];
 
428
} FEATURE_DATA_DVD_PLUS_R_DUAL_LAYER, *PFEATURE_DATA_DVD_PLUS_R_DUAL_LAYER;
 
429
 
 
430
typedef struct _BD_CLASS_SUPPORT_BITMAP {
 
431
  UCHAR Version8:1;
 
432
  UCHAR Version9:1;
 
433
  UCHAR Version10:1;
 
434
  UCHAR Version11:1;
 
435
  UCHAR Version12:1;
 
436
  UCHAR Version13:1;
 
437
  UCHAR Version14:1;
 
438
  UCHAR Version15:1;
 
439
  UCHAR Version0:1;
 
440
  UCHAR Version1:1;
 
441
  UCHAR Version2:1;
 
442
  UCHAR Version3:1;
 
443
  UCHAR Version4:1;
 
444
  UCHAR Version5:1;
 
445
  UCHAR Version6:1;
 
446
  UCHAR Version7:1;
 
447
} BD_CLASS_SUPPORT_BITMAP, *PBD_CLASS_SUPPORT_BITMAP;
 
448
 
 
449
typedef struct _FEATURE_BD_READ {
 
450
  FEATURE_HEADER Header;
 
451
  UCHAR Reserved[4];
 
452
  BD_CLASS_SUPPORT_BITMAP Class0BitmapBDREReadSupport;
 
453
  BD_CLASS_SUPPORT_BITMAP Class1BitmapBDREReadSupport;
 
454
  BD_CLASS_SUPPORT_BITMAP Class2BitmapBDREReadSupport;
 
455
  BD_CLASS_SUPPORT_BITMAP Class3BitmapBDREReadSupport;
 
456
  BD_CLASS_SUPPORT_BITMAP Class0BitmapBDRReadSupport;
 
457
  BD_CLASS_SUPPORT_BITMAP Class1BitmapBDRReadSupport;
 
458
  BD_CLASS_SUPPORT_BITMAP Class2BitmapBDRReadSupport;
 
459
  BD_CLASS_SUPPORT_BITMAP Class3BitmapBDRReadSupport;
 
460
  BD_CLASS_SUPPORT_BITMAP Class0BitmapBDROMReadSupport;
 
461
  BD_CLASS_SUPPORT_BITMAP Class1BitmapBDROMReadSupport;
 
462
  BD_CLASS_SUPPORT_BITMAP Class2BitmapBDROMReadSupport;
 
463
  BD_CLASS_SUPPORT_BITMAP Class3BitmapBDROMReadSupport;
 
464
} FEATURE_BD_READ, *PFEATURE_BD_READ;
 
465
 
 
466
typedef struct _FEATURE_BD_WRITE {
 
467
  FEATURE_HEADER Header;
 
468
  UCHAR SupportsVerifyNotRequired:1;
 
469
  UCHAR Reserved1:7;
 
470
  UCHAR Reserved2[3];
 
471
  BD_CLASS_SUPPORT_BITMAP Class0BitmapBDREWriteSupport;
 
472
  BD_CLASS_SUPPORT_BITMAP Class1BitmapBDREWriteSupport;
 
473
  BD_CLASS_SUPPORT_BITMAP Class2BitmapBDREWriteSupport;
 
474
  BD_CLASS_SUPPORT_BITMAP Class3BitmapBDREWriteSupport;
 
475
  BD_CLASS_SUPPORT_BITMAP Class0BitmapBDRWriteSupport;
 
476
  BD_CLASS_SUPPORT_BITMAP Class1BitmapBDRWriteSupport;
 
477
  BD_CLASS_SUPPORT_BITMAP Class2BitmapBDRWriteSupport;
 
478
  BD_CLASS_SUPPORT_BITMAP Class3BitmapBDRWriteSupport;
 
479
} FEATURE_BD_WRITE, *PFEATURE_BD_WRITE;
 
480
 
 
481
typedef struct _FEATURE_TSR {
 
482
  FEATURE_HEADER Header;
 
483
} FEATURE_TSR, *PFEATURE_TSR;
 
484
 
 
485
typedef struct _FEATURE_DATA_HDDVD_READ {
 
486
  FEATURE_HEADER Header;
 
487
  UCHAR Recordable:1;
 
488
  UCHAR Reserved0:7;
 
489
  UCHAR Reserved1;
 
490
  UCHAR Rewritable:1;
 
491
  UCHAR Reserved2:7;
 
492
  UCHAR Reserved3;
 
493
} FEATURE_DATA_HDDVD_READ, *PFEATURE_DATA_HDDVD_READ;
 
494
 
 
495
typedef struct _FEATURE_DATA_HDDVD_WRITE {
 
496
  FEATURE_HEADER Header;
 
497
  UCHAR Recordable:1;
 
498
  UCHAR Reserved0:7;
 
499
  UCHAR Reserved1;
 
500
  UCHAR Rewritable:1;
 
501
  UCHAR Reserved2:7;
 
502
  UCHAR Reserved3;
 
503
} FEATURE_DATA_HDDVD_WRITE, *PFEATURE_DATA_HDDVD_WRITE;
 
504
 
 
505
typedef struct _FEATURE_HYBRID_DISC {
 
506
  FEATURE_HEADER Header;
 
507
  UCHAR ResetImmunity:1;
 
508
  UCHAR Reserved1:7;
 
509
  UCHAR Reserved2[3];
 
510
} FEATURE_HYBRID_DISC, *PFEATURE_HYBRID_DISC;
 
511
 
 
512
typedef struct _FEATURE_DATA_POWER_MANAGEMENT {
 
513
  FEATURE_HEADER Header;
 
514
} FEATURE_DATA_POWER_MANAGEMENT, *PFEATURE_DATA_POWER_MANAGEMENT;
 
515
 
 
516
typedef struct _FEATURE_DATA_SMART {
 
517
  FEATURE_HEADER Header;
 
518
  UCHAR FaultFailureReportingPagePresent:1;
 
519
  UCHAR Reserved1:7;
 
520
  UCHAR Reserved02[3];
 
521
} FEATURE_DATA_SMART, *PFEATURE_DATA_SMART;
 
522
 
 
523
typedef struct _FEATURE_DATA_EMBEDDED_CHANGER {
 
524
  FEATURE_HEADER Header;
 
525
  UCHAR Reserved1:2;
 
526
  UCHAR SupportsDiscPresent:1;
 
527
  UCHAR Reserved2:1;
 
528
  UCHAR SideChangeCapable:1;
 
529
  UCHAR Reserved3:3;
 
530
  UCHAR Reserved4[2];
 
531
  UCHAR HighestSlotNumber:5;
 
532
  UCHAR Reserved:3;
 
533
} FEATURE_DATA_EMBEDDED_CHANGER, *PFEATURE_DATA_EMBEDDED_CHANGER;
 
534
 
 
535
typedef struct _FEATURE_DATA_CD_AUDIO_ANALOG_PLAY {
 
536
  FEATURE_HEADER Header;
 
537
  UCHAR SeperateVolume:1;
 
538
  UCHAR SeperateChannelMute:1;
 
539
  UCHAR ScanSupported:1;
 
540
  UCHAR Reserved1:5;
 
541
  UCHAR Reserved2;
 
542
  UCHAR NumerOfVolumeLevels[2];
 
543
} FEATURE_DATA_CD_AUDIO_ANALOG_PLAY, *PFEATURE_DATA_CD_AUDIO_ANALOG_PLAY;
 
544
 
 
545
typedef struct _FEATURE_DATA_MICROCODE_UPDATE {
 
546
  FEATURE_HEADER Header;
 
547
  UCHAR M5:1;
 
548
  UCHAR Reserved1:7;
 
549
  UCHAR Reserved2[3];
 
550
} FEATURE_DATA_MICROCODE_UPDATE, *PFEATURE_DATA_MICROCODE_UPDATE;
 
551
 
 
552
typedef struct _FEATURE_DATA_TIMEOUT {
 
553
  FEATURE_HEADER Header;
 
554
  UCHAR Group3:1;
 
555
  UCHAR Reserved1:7;
 
556
  UCHAR Reserved2;
 
557
  UCHAR UnitLength[2];
 
558
} FEATURE_DATA_TIMEOUT, *PFEATURE_DATA_TIMEOUT;
 
559
 
 
560
typedef struct _FEATURE_DATA_DVD_CSS {
 
561
  FEATURE_HEADER Header;
 
562
  UCHAR Reserved1[3];
 
563
  UCHAR CssVersion;
 
564
} FEATURE_DATA_DVD_CSS, *PFEATURE_DATA_DVD_CSS;
 
565
 
 
566
typedef struct _FEATURE_DATA_REAL_TIME_STREAMING {
 
567
  FEATURE_HEADER Header;
 
568
  UCHAR StreamRecording:1;
 
569
  UCHAR WriteSpeedInGetPerf:1;
 
570
  UCHAR WriteSpeedInMP2A:1;
 
571
  UCHAR SetCDSpeed:1;
 
572
  UCHAR ReadBufferCapacityBlock:1;
 
573
  UCHAR Reserved1:3;
 
574
  UCHAR Reserved2[3];
 
575
} FEATURE_DATA_REAL_TIME_STREAMING, *PFEATURE_DATA_REAL_TIME_STREAMING;
 
576
 
 
577
typedef struct _FEATURE_DATA_LOGICAL_UNIT_SERIAL_NUMBER {
 
578
  FEATURE_HEADER Header;
 
579
#if !defined(__midl) && !defined(__WIDL__)
 
580
  UCHAR SerialNumber[0];
 
581
#endif
 
582
} FEATURE_DATA_LOGICAL_UNIT_SERIAL_NUMBER, *PFEATURE_DATA_LOGICAL_UNIT_SERIAL_NUMBER;
 
583
 
 
584
typedef struct _FEATURE_MEDIA_SERIAL_NUMBER {
 
585
  FEATURE_HEADER Header;
 
586
} FEATURE_MEDIA_SERIAL_NUMBER, *PFEATURE_MEDIA_SERIAL_NUMBER;
 
587
 
 
588
typedef struct _FEATURE_DATA_DISC_CONTROL_BLOCKS_EX {
 
589
  UCHAR ContentDescriptor[4];
 
590
} FEATURE_DATA_DISC_CONTROL_BLOCKS_EX, *PFEATURE_DATA_DISC_CONTROL_BLOCKS_EX;
 
591
 
 
592
typedef struct _FEATURE_DATA_DISC_CONTROL_BLOCKS {
 
593
  FEATURE_HEADER Header;
 
594
#if !defined(__midl) && !defined(__WIDL__)
 
595
  FEATURE_DATA_DISC_CONTROL_BLOCKS_EX Data[0];
 
596
#endif
 
597
} FEATURE_DATA_DISC_CONTROL_BLOCKS, *PFEATURE_DATA_DISC_CONTROL_BLOCKS;
 
598
 
 
599
typedef struct _FEATURE_DATA_DVD_CPRM {
 
600
  FEATURE_HEADER Header;
 
601
  UCHAR Reserved0[3];
 
602
  UCHAR CPRMVersion;
 
603
} FEATURE_DATA_DVD_CPRM, *PFEATURE_DATA_DVD_CPRM;
 
604
 
 
605
typedef struct _FEATURE_DATA_FIRMWARE_DATE {
 
606
  FEATURE_HEADER Header;
 
607
  UCHAR Year[4];
 
608
  UCHAR Month[2];
 
609
  UCHAR Day[2];
 
610
  UCHAR Hour[2];
 
611
  UCHAR Minute[2];
 
612
  UCHAR Seconds[2];
 
613
  UCHAR Reserved[2];
 
614
} FEATURE_DATA_FIRMWARE_DATE, *PFEATURE_DATA_FIRMWARE_DATE;
 
615
 
 
616
typedef struct _FEATURE_DATA_AACS {
 
617
  FEATURE_HEADER Header;
 
618
  UCHAR BindingNonceGeneration:1;
 
619
  UCHAR Reserved0:7;
 
620
  UCHAR BindingNonceBlockCount;
 
621
  UCHAR NumberOfAGIDs:4;
 
622
  UCHAR Reserved1:4;
 
623
  UCHAR AACSVersion;
 
624
} FEATURE_DATA_AACS, *PFEATURE_DATA_AACS;
 
625
 
 
626
typedef struct _FEATURE_VCPS {
 
627
  FEATURE_HEADER Header;
 
628
  UCHAR Reserved[4];
 
629
} FEATURE_VCPS, *PFEATURE_VCPS;
 
630
 
 
631
typedef struct _FEATURE_DATA_RESERVED {
 
632
  FEATURE_HEADER Header;
 
633
#if !defined(__midl) && !defined(__WIDL__)
 
634
  UCHAR Data[0];
 
635
#endif
 
636
} FEATURE_DATA_RESERVED, *PFEATURE_DATA_RESERVED;
 
637
 
 
638
typedef struct _FEATURE_DATA_VENDOR_SPECIFIC {
 
639
  FEATURE_HEADER Header;
 
640
#if !defined(__midl) && !defined(__WIDL__)
 
641
  UCHAR VendorSpecificData[0];
 
642
#endif
 
643
} FEATURE_DATA_VENDOR_SPECIFIC, *PFEATURE_DATA_VENDOR_SPECIFIC;
 
644
 
 
645
typedef struct _GET_CONFIGURATION_IOCTL_INPUT {
 
646
  FEATURE_NUMBER Feature;
 
647
  ULONG RequestType;
 
648
  PVOID Reserved[2];
 
649
} GET_CONFIGURATION_IOCTL_INPUT, *PGET_CONFIGURATION_IOCTL_INPUT;
 
650
 
 
651
#if defined(_WIN64)
 
652
typedef struct _GET_CONFIGURATION_IOCTL_INPUT32 {
 
653
  FEATURE_NUMBER Feature;
 
654
  ULONG RequestType;
 
655
  VOID* UPOINTER_32 Reserved[2];
 
656
} GET_CONFIGURATION_IOCTL_INPUT32, *PGET_CONFIGURATION_IOCTL_INPUT32;
 
657
#endif
 
658
 
 
659
#ifdef __cplusplus
 
660
}
 
661
#endif