ReactOS 0.4.15-dev-7788-g1ad9096
cdrw_usr.h
Go to the documentation of this file.
1
2// Copyright (C) Alexander Telyatnikov, Ivan Keliukh, Yegor Anchishkin, SKIF Software, 1999-2013. Kiev, Ukraine
3// All rights reserved
4// This file was released under the GPLv2 on June 2015.
6/*
7
8Module Name:
9
10 cdrw_usr.h
11
12Abstract:
13
14 This file defines the interface between CD-Writer's driver & user
15 applications.
16
17Environment:
18
19 NT kernel mode or Win32 app
20 */
21
22#ifndef __CDRW_PUBLIC_H__
23#define __CDRW_PUBLIC_H__
24
25#define CDRW_SIGNATURE_v1 "ALWA CD-R/W v1"
26
27//#define CDRW_RESTRICT_ACCESS // require W-acces rights for some IOCTLs
28
29#include "cdrw_hw.h"
30//#include "ntdddisk.h"
31
32#include <ntddcdrm.h>
33#include <ntddcdvd.h>
34
35#ifndef CTL_CODE
36#pragma pack(push, 8)
37#include "winioctl.h"
38#pragma pack(pop)
39#endif
40
41#if defined(CDRW_EXPORTS) || defined(FileSys_EXPORTS)
42#include "mountmgr.h"
43#endif
44
45#ifndef FILE_DEVICE_SECURE_OPEN
46#define FILE_DEVICE_SECURE_OPEN 0x00000100
47#endif //FILE_DEVICE_SECURE_OPEN
48
49#pragma pack(push, 1)
50
51#ifndef IRP_MJ_PNP
52#define IRP_MJ_PNP IRP_MJ_PNP_POWER // Obsolete....
53#endif //IRP_MJ_PNP
54
55#ifndef FILE_DEVICE_CDRW
56#define FILE_DEVICE_CDRW 0x00000999
57#endif
58
59#define IOCTL_CDROM_MEDIA_REMOVAL CTL_CODE(IOCTL_CDROM_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
60#define IOCTL_CDROM_EJECT_MEDIA CTL_CODE(IOCTL_CDROM_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
61#define IOCTL_CDROM_LOAD_MEDIA CTL_CODE(IOCTL_CDROM_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
62
63#ifdef CDRW_RESTRICT_ACCESS
64
65#define CDRW_CTL_CODE_R(a,b) CTL_CODE(FILE_DEVICE_CDRW, a,b, FILE_READ_DATA)
66#define CDRW_CTL_CODE_W(a,b) CTL_CODE(FILE_DEVICE_CDRW, a,b, FILE_READ_DATA)
67#define CDRW_CTL_CODE_W(a,b) CTL_CODE(FILE_DEVICE_CDRW, a,b, FILE_WRITE_DATA )
68#define CDRW_CTL_CODE_A(a,b) CTL_CODE(FILE_DEVICE_CDRW, a,b, FILE_READ_DATA | FILE_WRITE_DATA )
69
70#else //CDRW_RESTRICT_ACCESS
71
72#define CDRW_CTL_CODE_R(a,b) CTL_CODE(FILE_DEVICE_CDRW, a,b, FILE_READ_DATA)
73#define CDRW_CTL_CODE_W(a,b) CTL_CODE(FILE_DEVICE_CDRW, a,b, FILE_READ_DATA)
74#define CDRW_CTL_CODE_A(a,b) CTL_CODE(FILE_DEVICE_CDRW, a,b, FILE_READ_DATA)
75#define CDRW_CTL_CODE_X(a,b) CTL_CODE(FILE_DEVICE_CDRW, a,b, FILE_ANY_ACCESS )
76
77#endif //CDRW_RESTRICT_ACCESS
78
79#define IOCTL_CDRW_LOCK_DOOR CDRW_CTL_CODE_R(0x801, METHOD_BUFFERED)
80#define IOCTL_CDRW_SET_SPEED CDRW_CTL_CODE_R(0x802, METHOD_BUFFERED)
81#define IOCTL_CDRW_SYNC_CACHE CDRW_CTL_CODE_W(0x803, METHOD_BUFFERED)
82#define IOCTL_CDRW_GET_CAPABILITIES CDRW_CTL_CODE_X(0x804, METHOD_BUFFERED)
83#define IOCTL_CDRW_GET_SPEED IOCTL_CDRW_GET_CAPABILITIES
84#define IOCTL_CDRW_GET_MEDIA_TYPE CDRW_CTL_CODE_X(0x805, METHOD_BUFFERED)
85#define IOCTL_CDRW_GET_WRITE_MODE CDRW_CTL_CODE_R(0x806, METHOD_BUFFERED)
86#define IOCTL_CDRW_SET_WRITE_MODE CDRW_CTL_CODE_W(0x807, METHOD_BUFFERED)
87#define IOCTL_CDRW_RESERVE_TRACK CDRW_CTL_CODE_W(0x808, METHOD_BUFFERED)
88#define IOCTL_CDRW_BLANK CDRW_CTL_CODE_R(0x809, METHOD_BUFFERED)
89#define IOCTL_CDRW_CLOSE_TRK_SES CDRW_CTL_CODE_W(0x80a, METHOD_BUFFERED)
90//#define IOCTL_CDRW_LL_WRITE CDRW_CTL_CODE_R(0x80b, METHOD_OUT_DIRECT)
91#define IOCTL_CDRW_LL_WRITE CDRW_CTL_CODE_R(0x80b, METHOD_BUFFERED)
92#define IOCTL_CDRW_READ_TRACK_INFO CDRW_CTL_CODE_R(0x80c, METHOD_IN_DIRECT)
93#define IOCTL_CDRW_READ_DISC_INFO CDRW_CTL_CODE_R(0x80d, METHOD_IN_DIRECT)
94#define IOCTL_CDRW_BUFFER_CAPACITY CDRW_CTL_CODE_A(0x80e, METHOD_IN_DIRECT)
95#define IOCTL_CDRW_GET_SIGNATURE CDRW_CTL_CODE_X(0x80f, METHOD_BUFFERED)
96#define IOCTL_CDRW_RESET_DRIVER CDRW_CTL_CODE_A(0x810, METHOD_BUFFERED)
97//#ifndef WITHOUT_FORMATTER
98#define IOCTL_CDRW_FORMAT_UNIT CDRW_CTL_CODE_W(0x811, METHOD_BUFFERED)
99#define IOCTL_CDRW_SET_RANDOM_ACCESS CDRW_CTL_CODE_W(0x812, METHOD_BUFFERED)
100//#endif //WITHOUT_FORMATTER
101#define IOCTL_CDRW_TEST_UNIT_READY CDRW_CTL_CODE_X(0x813, METHOD_BUFFERED)
102#define IOCTL_CDRW_RESET_WRITE_STATUS CDRW_CTL_CODE_X(0x814, METHOD_BUFFERED)
103#define IOCTL_CDRW_GET_LAST_ERROR CDRW_CTL_CODE_R(0x815, METHOD_BUFFERED)
104#define IOCTL_CDRW_MODE_SENSE CDRW_CTL_CODE_X(0x816, METHOD_BUFFERED)
105#define IOCTL_CDRW_MODE_SELECT CDRW_CTL_CODE_R(0x817, METHOD_BUFFERED)
106#define IOCTL_CDRW_SET_READ_AHEAD CDRW_CTL_CODE_R(0x818, METHOD_BUFFERED)
107#define IOCTL_CDRW_SET_DEFAULT_SESSION CDRW_CTL_CODE_R(0x819, METHOD_BUFFERED) // RESERVED !!!
108#define IOCTL_CDRW_NOTIFY_MEDIA_CHANGE CDRW_CTL_CODE_X(0x81a, METHOD_BUFFERED)
109#define IOCTL_CDRW_SEND_OPC_INFO CDRW_CTL_CODE_W(0x81b, METHOD_BUFFERED)
110#define IOCTL_CDRW_LL_READ CDRW_CTL_CODE_R(0x81c, METHOD_BUFFERED)
111#define IOCTL_CDRW_SEND_CUE_SHEET CDRW_CTL_CODE_W(0x81d, METHOD_OUT_DIRECT)
112#define IOCTL_CDRW_INIT_DEINIT CDRW_CTL_CODE_A(0x81e, METHOD_BUFFERED)
113#define IOCTL_CDRW_READ_FULL_TOC CDRW_CTL_CODE_R(0x81f, METHOD_BUFFERED)
114#define IOCTL_CDRW_READ_PMA CDRW_CTL_CODE_R(0x820, METHOD_BUFFERED)
115#define IOCTL_CDRW_READ_SESSION_INFO CDRW_CTL_CODE_R(0x821, METHOD_BUFFERED)
116#define IOCTL_CDRW_READ_ATIP CDRW_CTL_CODE_R(0x822, METHOD_BUFFERED)
117#define IOCTL_CDRW_READ_CD_TEXT CDRW_CTL_CODE_R(0x823, METHOD_BUFFERED)
118#define IOCTL_CDRW_READ_TOC_EX CDRW_CTL_CODE_R(0x824, METHOD_BUFFERED)
119#define IOCTL_CDRW_GET_DEVICE_INFO CDRW_CTL_CODE_R(0x825, METHOD_BUFFERED)
120#define IOCTL_CDRW_GET_EVENT CDRW_CTL_CODE_R(0x826, METHOD_IN_DIRECT)
121#define IOCTL_CDRW_GET_DEVICE_NAME CDRW_CTL_CODE_R(0x827, METHOD_BUFFERED)
122#define IOCTL_CDRW_RESET_DRIVER_EX CDRW_CTL_CODE_A(0x828, METHOD_BUFFERED)
123#define IOCTL_CDRW_GET_MEDIA_TYPE_EX CDRW_CTL_CODE_X(0x829, METHOD_BUFFERED)
124#ifndef WITHOUT_FORMATTER
125#define IOCTL_CDRW_GET_MRW_MODE CDRW_CTL_CODE_X(0x82a, METHOD_BUFFERED)
126#define IOCTL_CDRW_SET_MRW_MODE CDRW_CTL_CODE_X(0x82b, METHOD_BUFFERED)
127#endif //WITHOUT_FORMATTER
128#define IOCTL_CDRW_READ_CAPACITY CDRW_CTL_CODE_R(0x82c, METHOD_IN_DIRECT)
129#define IOCTL_CDRW_GET_DISC_LAYOUT CDRW_CTL_CODE_R(0x82d, METHOD_IN_DIRECT)
130#define IOCTL_CDRW_SET_STREAMING CDRW_CTL_CODE_W(0x82e, METHOD_BUFFERED)
131
132#define IOCTL_CDRW_UNLOAD_DRIVER IOCTL_CDROM_UNLOAD_DRIVER
133
134#define IOCTL_CDRW_READ_TOC IOCTL_CDROM_READ_TOC
135#define IOCTL_CDRW_GET_CONTROL IOCTL_CDROM_GET_CONTROL
136#define IOCTL_CDRW_PLAY_AUDIO_MSF IOCTL_CDROM_PLAY_AUDIO_MSF
137#define IOCTL_CDRW_SEEK_AUDIO_MSF IOCTL_CDROM_SEEK_AUDIO_MSF
138#define IOCTL_CDRW_STOP_AUDIO IOCTL_CDROM_STOP_AUDIO
139#define IOCTL_CDRW_PAUSE_AUDIO IOCTL_CDROM_PAUSE_AUDIO
140#define IOCTL_CDRW_RESUME_AUDIO IOCTL_CDROM_RESUME_AUDIO
141#define IOCTL_CDRW_GET_VOLUME IOCTL_CDROM_GET_VOLUME
142#define IOCTL_CDRW_SET_VOLUME IOCTL_CDROM_SET_VOLUME
143#define IOCTL_CDRW_READ_Q_CHANNEL IOCTL_CDROM_READ_Q_CHANNEL
144#define IOCTL_CDRW_GET_LAST_SESSION IOCTL_CDROM_GET_LAST_SESSION
145#define IOCTL_CDRW_RAW_READ IOCTL_CDROM_RAW_READ
146#define IOCTL_CDRW_DISK_TYPE IOCTL_CDROM_DISK_TYPE
147
148#define IOCTL_CDRW_CHECK_VERIFY IOCTL_CDROM_CHECK_VERIFY
149#define IOCTL_CDRW_MEDIA_REMOVAL IOCTL_CDROM_MEDIA_REMOVAL
150#define IOCTL_CDRW_EJECT_MEDIA IOCTL_CDROM_EJECT_MEDIA
151#define IOCTL_CDRW_LOAD_MEDIA IOCTL_CDROM_LOAD_MEDIA
152#define IOCTL_CDRW_RESERVE IOCTL_CDROM_RESERVE
153#define IOCTL_CDRW_RELEASE IOCTL_CDROM_RELEASE
154#define IOCTL_CDRW_FIND_NEW_DEVICES IOCTL_CDROM_FIND_NEW_DEVICES
155
156#ifndef IOCTL_DVD_READ_STRUCTURE
157#define IOCTL_DVD_READ_STRUCTURE CTL_CODE(IOCTL_DVD_BASE, 0x0450, METHOD_BUFFERED, FILE_READ_ACCESS)
158
159#define IOCTL_DVD_START_SESSION CTL_CODE(IOCTL_DVD_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
160#define IOCTL_DVD_READ_KEY CTL_CODE(IOCTL_DVD_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
161#define IOCTL_DVD_SEND_KEY CTL_CODE(IOCTL_DVD_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS)
162#define IOCTL_DVD_END_SESSION CTL_CODE(IOCTL_DVD_BASE, 0x0403, METHOD_BUFFERED, FILE_READ_ACCESS)
163#define IOCTL_DVD_SET_READ_AHEAD CTL_CODE(IOCTL_DVD_BASE, 0x0404, METHOD_BUFFERED, FILE_READ_ACCESS)
164#define IOCTL_DVD_GET_REGION CTL_CODE(IOCTL_DVD_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS)
165#define IOCTL_DVD_SEND_KEY2 CTL_CODE(IOCTL_DVD_BASE, 0x0406, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
166#endif //IOCTL_DVD_READ_STRUCTURE
167
168#ifndef IOCTL_DISK_GET_DRIVE_GEOMETRY
169#define IOCTL_DISK_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)
170#define IOCTL_DISK_VERIFY CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS)
171#define IOCTL_DISK_FORMAT_TRACKS CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
172#define IOCTL_DISK_IS_WRITABLE CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS)
173#define IOCTL_DISK_FORMAT_TRACKS_EX CTL_CODE(IOCTL_DISK_BASE, 0x000b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
174
175#define IOCTL_DISK_CHECK_VERIFY CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
176#define IOCTL_DISK_MEDIA_REMOVAL CTL_CODE(IOCTL_DISK_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
177#define IOCTL_DISK_EJECT_MEDIA CTL_CODE(IOCTL_DISK_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
178#define IOCTL_DISK_LOAD_MEDIA CTL_CODE(IOCTL_DISK_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
179#define IOCTL_DISK_RESERVE CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
180#define IOCTL_DISK_RELEASE CTL_CODE(IOCTL_DISK_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
181#define IOCTL_DISK_FIND_NEW_DEVICES CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
182#define IOCTL_DISK_GET_MEDIA_TYPES CTL_CODE(IOCTL_DISK_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
183#endif //IOCTL_DISK_GET_DRIVE_GEOMETRY
184
185#ifndef IOCTL_STORAGE_SET_READ_AHEAD
186#define IOCTL_STORAGE_SET_READ_AHEAD CTL_CODE(IOCTL_STORAGE_BASE, 0x0100, METHOD_BUFFERED, FILE_READ_ACCESS)
187#endif //IOCTL_STORAGE_SET_READ_AHEAD
188
189#ifndef IOCTL_STORAGE_GET_MEDIA_TYPES_EX
190#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
191
193 //
194 // Following are defined in ntdddisk.h in the MEDIA_TYPE enum
195 //
196 // Unknown, // Format is unknown
197 // F5_1Pt2_512, // 5.25", 1.2MB, 512 bytes/sector
198 // F3_1Pt44_512, // 3.5", 1.44MB, 512 bytes/sector
199 // F3_2Pt88_512, // 3.5", 2.88MB, 512 bytes/sector
200 // F3_20Pt8_512, // 3.5", 20.8MB, 512 bytes/sector
201 // F3_720_512, // 3.5", 720KB, 512 bytes/sector
202 // F5_360_512, // 5.25", 360KB, 512 bytes/sector
203 // F5_320_512, // 5.25", 320KB, 512 bytes/sector
204 // F5_320_1024, // 5.25", 320KB, 1024 bytes/sector
205 // F5_180_512, // 5.25", 180KB, 512 bytes/sector
206 // F5_160_512, // 5.25", 160KB, 512 bytes/sector
207 // RemovableMedia, // Removable media other than floppy
208 // FixedMedia, // Fixed hard disk media
209 // F3_120M_512, // 3.5", 120M Floppy
210 // F3_640_512, // 3.5" , 640KB, 512 bytes/sector
211 // F5_640_512, // 5.25", 640KB, 512 bytes/sector
212 // F5_720_512, // 5.25", 720KB, 512 bytes/sector
213 // F3_1Pt2_512, // 3.5" , 1.2Mb, 512 bytes/sector
214 // F3_1Pt23_1024, // 3.5" , 1.23Mb, 1024 bytes/sector
215 // F5_1Pt23_1024, // 5.25", 1.23MB, 1024 bytes/sector
216 // F3_128Mb_512, // 3.5" MO 128Mb 512 bytes/sector
217 // F3_230Mb_512, // 3.5" MO 230Mb 512 bytes/sector
218 // F8_256_128, // 8", 256KB, 128 bytes/sector
219 //
220
221 DDS_4mm = 0x20, // Tape - DAT DDS1,2,... (all vendors)
222 MiniQic, // Tape - miniQIC Tape
223 Travan, // Tape - Travan TR-1,2,3,...
224 QIC, // Tape - QIC
225 MP_8mm, // Tape - 8mm Exabyte Metal Particle
226 AME_8mm, // Tape - 8mm Exabyte Advanced Metal Evap
227 AIT1_8mm, // Tape - 8mm Sony AIT1
228 DLT, // Tape - DLT Compact IIIxt, IV
229 NCTP, // Tape - Philips NCTP
230 IBM_3480, // Tape - IBM 3480
231 IBM_3490E, // Tape - IBM 3490E
232 IBM_Magstar_3590, // Tape - IBM Magstar 3590
233 IBM_Magstar_MP, // Tape - IBM Magstar MP
234 STK_DATA_D3, // Tape - STK Data D3
235 SONY_DTF, // Tape - Sony DTF
236 DV_6mm, // Tape - 6mm Digital Video
237 DMI, // Tape - Exabyte DMI and compatibles
238 SONY_D2, // Tape - Sony D2S and D2L
239 CLEANER_CARTRIDGE, // Cleaner - All Drive types that support Drive Cleaners
240 CD_ROM, // Opt_Disk - CD
241 CD_R, // Opt_Disk - CD-Recordable (Write Once)
242 CD_RW, // Opt_Disk - CD-Rewriteable
243 DVD_ROM, // Opt_Disk - DVD-ROM
244 DVD_R, // Opt_Disk - DVD-Recordable (Write Once)
245 DVD_RW, // Opt_Disk - DVD-Rewriteable
246 MO_3_RW, // Opt_Disk - 3.5" Rewriteable MO Disk
247 MO_5_WO, // Opt_Disk - MO 5.25" Write Once
248 MO_5_RW, // Opt_Disk - MO 5.25" Rewriteable (not LIMDOW)
249 MO_5_LIMDOW, // Opt_Disk - MO 5.25" Rewriteable (LIMDOW)
250 PC_5_WO, // Opt_Disk - Phase Change 5.25" Write Once Optical
251 PC_5_RW, // Opt_Disk - Phase Change 5.25" Rewriteable
252 PD_5_RW, // Opt_Disk - PhaseChange Dual Rewriteable
253 ABL_5_WO, // Opt_Disk - Ablative 5.25" Write Once Optical
254 PINNACLE_APEX_5_RW, // Opt_Disk - Pinnacle Apex 4.6GB Rewriteable Optical
255 SONY_12_WO, // Opt_Disk - Sony 12" Write Once
256 PHILIPS_12_WO, // Opt_Disk - Philips/LMS 12" Write Once
257 HITACHI_12_WO, // Opt_Disk - Hitachi 12" Write Once
258 CYGNET_12_WO, // Opt_Disk - Cygnet/ATG 12" Write Once
259 KODAK_14_WO, // Opt_Disk - Kodak 14" Write Once
260 MO_NFR_525, // Opt_Disk - Near Field Recording (Terastor)
261 NIKON_12_RW, // Opt_Disk - Nikon 12" Rewriteable
262 IOMEGA_ZIP, // Mag_Disk - Iomega Zip
263 IOMEGA_JAZ, // Mag_Disk - Iomega Jaz
264 SYQUEST_EZ135, // Mag_Disk - Syquest EZ135
265 SYQUEST_EZFLYER, // Mag_Disk - Syquest EzFlyer
266 SYQUEST_SYJET, // Mag_Disk - Syquest SyJet
267 AVATAR_F2, // Mag_Disk - 2.5" Floppy
268 MP2_8mm, // Tape - 8mm Hitachi
269 DST_S, // Ampex DST Small Tapes
270 DST_M, // Ampex DST Medium Tapes
271 DST_L, // Ampex DST Large Tapes
272 VXATape_1, // Ecrix 8mm Tape
273 VXATape_2, // Ecrix 8mm Tape
274 STK_EAGLE, // STK Eagle
275 LTO_Ultrium, // IBM, HP, Seagate LTO Ultrium
276 LTO_Accelis // IBM, HP, Seagate LTO Accelis
278
279#endif //IOCTL_STORAGE_GET_MEDIA_TYPES_EX
280
281
282//**********************************************************************************************
283
284typedef struct _SET_CD_SPEED_USER_IN {
285 ULONG ReadSpeed; // Kbyte/sec 176 = 1X
286 ULONG WriteSpeed; // Kbyte/sec
288
290 ULONG ReadSpeed; // Kbyte/sec 176 = 1X
291 ULONG WriteSpeed; // Kbyte/sec
295
296//**********************************************************************************************
297
299 union {
301 struct {
302 UCHAR RA : 1; // Random Access
304 UCHAR RDD : 1; // Restore Defaults
309
311
314
315 ULONG ReadSize; // KBytes
317
318 ULONG WriteSize; // KBytes
321
322//**********************************************************************************************
323
324/*
325#ifndef SyncCache_RELADR
326#define SyncCache_RELADR 0x01
327#define SyncCache_Immed 0x02
328#endif //SyncCache_RELADR
329*/
330
331typedef struct _SYNC_CACHE_USER_IN {
332 union {
334 struct {
343
344//**********************************************************************************************
345
356
357//**********************************************************************************************
358
364
365 union {
367 struct {
374
375 union {
376 UCHAR Flags;
377 struct {
385
392
393// MMC-3
394
399
400// MMC-5
401
403
404// Additional
405
410
412
413//**********************************************************************************************
414
419
420//**********************************************************************************************
421
424
425//**********************************************************************************************
426
431 USHORT VersiomId ; // alfa/beta/...
435
436//**********************************************************************************************
437
438/*
439#ifndef BlankMedia_Mask
440#define BlankMedia_Mask 0x07
441#define BlankMedia_Complete 0x00
442#define BlankMedia_Minimal 0x01
443#define BlankMedia_Track 0x02
444#define BlankMedia_UnreserveTrack 0x03
445#define BlankMedia_TrackTail 0x04
446#define BlankMedia_UncloseLastSes 0x05
447#define BlankMedia_EraseSes 0x06
448#define BlankMedia_Immed 0x10
449#endif //BlankMedia_Mask
450*/
451
452typedef struct _BLANK_MEDIA_USER_IN {
453 union {
456 struct {
465
466//**********************************************************************************************
467
471
472#define RESERVE_TRACK_EX_SIZE 0x0
473#define RESERVE_TRACK_EX_START_LBA 0x1
474#define RESERVE_TRACK_EX_RMZ 0x2
475
478 union {
481 };
483
484//**********************************************************************************************
485
486typedef struct _LL_WRITE_USER_IN {
487 union {
490 struct {
500 UCHAR Reserved1[2];
502
503//**********************************************************************************************
504
505//#ifndef WITHOUT_FORMATTER
506
507/*
508#ifndef FormatDesc_Grow
509#define FormatDesc_Grow 0x40
510#define FormatDesc_Ses 0x80
511#endif
512*/
513
514#define FORMAT_UNIT_FORCE_STD_MODE 0x80000000
515#define FORMAT_UNIT_FORCE_FULL_FMT 0x40000000
516#define FORMAT_UNIT_RESTART_MRW 0x01000000
517
519 union {
522 struct {
530
531//#endif //WITHOUT_FORMATTER
532
533//**********************************************************************************************
534
535/*
536#ifndef CloseTrkSes_Immed
537#define CloseTrkSes_Immed 0x01
538
539#define CloseTrkSes_Trk 0x01
540#define CloseTrkSes_Ses 0x02
541
542#define CloseTrkSes_LastTrkSes 0xff
543#endif
544*/
545
547 union {
549 struct {
554 union {
555 UCHAR Flags;
556 struct {
559 UCHAR Reserved0 : 6;
564
565//**********************************************************************************************
566
570
571//**********************************************************************************************
572
576
577//**********************************************************************************************
578
579/*
580#ifndef DiscInfo_Disk_Mask
581#define DiscInfo_Disk_Mask 0x03
582#define DiscInfo_Disk_Empty 0x00
583#define DiscInfo_Disk_Appendable 0x01
584#define DiscInfo_Disk_Complete 0x02
585
586#define DiscInfo_Ses_Mask 0x0C
587#define DiscInfo_Ses_Empty 0x00
588#define DiscInfo_Ses_Incomplete 0x04
589#define DiscInfo_Ses_Complete 0x0C
590
591#define DiscInfo_Disk_Erasable 0x10
592
593#define DiscInfo_URU 0x10
594#define DiscInfo_DBC_V 0x20
595#define DiscInfo_DID_V 0x40
596
597#define DiscInfo_Type_cdrom 0x00 // CD-DA / CD-ROM
598#define DiscInfo_Type_cdi 0x10 // CD-I
599#define DiscInfo_Type_cdromxa 0x20 // CD-ROM XA
600#define DiscInfo_Type_unknown 0xFF // HZ ;)
601
602#endif
603*/
604
615
618
622 ULONG Reserved1; // this is used to align data
623
625
626#define DiscStatus_Formattable 0x01
627
628typedef struct _DISC_INFO_BLOCK_USER_OUT { //
629
631
633
634 union {
636 struct {
643
648
649 union {
650 UCHAR Flags;
651 struct {
654 UCHAR DBC_V : 1; // 0
658
660 UCHAR NumOfSes2; // MSB MMC-3
670
671//**********************************************************************************************
672
676
683
684//**********************************************************************************************
685
686/*
687#ifndef MediaType_Unknown
688
689#define MediaType_Unknown 0x00
690#define MediaType_120mm_CDROM_DataOnly 0x01
691#define MediaType_120mm_CDROM_AudioOnly 0x02 //CDDA
692#define MediaType_120mm_CDROM_DataAudioCombined 0x03
693#define MediaType_120mm_CDROM_Hybrid_PhotoCD 0x04
694#define MediaType_80mm_CDROM_DataOnly 0x05
695#define MediaType_80mm_CDROM_AudioOnly 0x06 //CDDA
696#define MediaType_80mm_CDROM_DataAudioCombined 0x07
697#define MediaType_80mm_CDROM_Hybrid_PhotoCD 0x08
698
699#define MediaType_UnknownSize_CDR 0x10
700#define MediaType_120mm_CDR_DataOnly 0x11
701#define MediaType_120mm_CDR_AudioOnly 0x12 //CDDA
702#define MediaType_120mm_CDR_DataAudioCombined 0x13
703#define MediaType_120mm_CDR_Hybrid_PhotoCD 0x14
704#define MediaType_80mm_CDR_DataOnly 0x15
705#define MediaType_80mm_CDR_AudioOnly 0x16 //CDDA
706#define MediaType_80mm_CDR_DataAudioCombined 0x17
707#define MediaType_80mm_CDR_Hybrid_Photo_CD 0x18
708
709#define MediaType_UnknownSize_CDRW 0x20
710#define MediaType_120mm_CDRW_DataOnly 0x21
711#define MediaType_120mm_CDRW_AudioOnly 0x22 //CDDA
712#define MediaType_120mm_CDRW_DataAudioCombined 0x23
713#define MediaType_120mm_CDRW_Hybrid 0x24
714#define MediaType_80mm_CDRW_DataOnly 0x25
715#define MediaType_80mm_CDRW_AudioOnly 0x26 //CDDA
716#define MediaType_80mm_CDRW_DataAudioCombined 0x27
717#define MediaType_80mm_CDRW_Hybrid 0x28
718
719#define MediaType_UnknownSize_Unknown 0x30
720
721#define MediaType_NoDiscPresent 0x70
722#define MediaType_DoorOpen 0x71
723
724#endif
725*/
726
730
732 UCHAR OldStyleMediaType; // see GET_MEDIA_TYPE_USER_OUT
739 UCHAR Layers; // Number of layers - 1 (e.g. 0 => 1 layer)
740 UCHAR Reserved[8]; // for future implementation
742
743#define CdMediaClass_CDROM 0x00
744#define CdMediaClass_CDR 0x01
745#define CdMediaClass_CDRW 0x02
746#define CdMediaClass_DVDROM 0x03
747#define CdMediaClass_DVDRAM 0x05
748#define CdMediaClass_DVDR 0x06
749#define CdMediaClass_DVDRW 0x07
750#define CdMediaClass_DVDpR 0x08
751#define CdMediaClass_DVDpRW 0x09
752#define CdMediaClass_DDCDROM 0x0a
753#define CdMediaClass_DDCDR 0x0b
754#define CdMediaClass_DDCDRW 0x0c
755#define CdMediaClass_BDROM 0x0d
756#define CdMediaClass_BDRE 0x0e
757#define CdMediaClass_BDR 0x0f
758#define CdMediaClass_HD_DVDROM 0x10
759#define CdMediaClass_HD_DVDRAM 0x11
760#define CdMediaClass_HD_DVDR 0x12
761#define CdMediaClass_HD_DVDRW 0x13
762#define CdMediaClass_NoDiscPresent 0x70
763#define CdMediaClass_DoorOpen 0x71
764#define CdMediaClass_Unknown 0xff
765
766#define CdMediaClass_Max CdMediaClass_HD_DVDRW
767
768#define CdMediaSize_Unknown 0
769#define CdMediaSize_120mm 1
770#define CdMediaSize_80mm 2
771
772#define CdDataType_Unknown 0
773#define CdDataType_DataOnly 1
774#define CdDataType_AudioOnly 2 //CDDA
775#define CdDataType_DataAudioCombined 3
776#define CdDataType_Hybrid 4
777#define CdDataType_DataOnlyMRW 5
778
779#define CdMediaClassEx_CD 0x00
780#define CdMediaClassEx_DVD 0x01
781#define CdMediaClassEx_DDCD 0x02
782#define CdMediaClassEx_BD 0x03
783#define CdMediaClassEx_HD_DVD 0x04
784#define CdMediaClassEx_None 0x70
785#define CdMediaClassEx_Unknown 0xff
786
787#define CdDataClassEx_ROM 0x00
788#define CdDataClassEx_R 0x01
789#define CdDataClassEx_RW 0x02
790#define CdDataClassEx_Unknown 0xff
791
792#define CdCapFlags_Writable 0x01
793#define CdCapFlags_Erasable 0x02
794#define CdCapFlags_Formatable 0x04
795#define CdCapFlags_WriteParamsReq 0x08
796#define CdCapFlags_RandomWritable 0x10
797#define CdCapFlags_Cav 0x20
798
799#define CdrwMediaClassEx_IsRAM(MediaClassEx) ( \
800 ((MediaClassEx) == CdMediaClass_DVDRAM) || \
801 ((MediaClassEx) == CdMediaClass_BDRE) || \
802 ((MediaClassEx) == CdMediaClass_HD_DVDRAM) )
803
804#define CdrwIsDvdOverwritable(MediaClassEx) \
805 ((MediaClassEx) == CdMediaClass_DVDRW || \
806 (MediaClassEx) == CdMediaClass_DVDpRW || \
807 (MediaClassEx) == CdMediaClass_DVDRAM || \
808 (MediaClassEx) == CdMediaClass_BDRE || \
809 (MediaClassEx) == CdMediaClass_HD_DVDRW || \
810 (MediaClassEx) == CdMediaClass_HD_DVDRAM \
811 )
812
813//**********************************************************************************************
814
815/*
816#ifndef MAX_PAGE_SIZE
817#define MAX_PAGE_SIZE 0x100
818#endif
819*/
820
821typedef struct _MODE_SENSE_USER_IN {
822 union {
824 struct {
831
832typedef struct _MODE_SENSE_USER_OUT {
835
836//**********************************************************************************************
837
838typedef struct _MODE_SELECT_USER_IN {
841
842//**********************************************************************************************
843
844typedef struct _MODE_WRITE_PARAMS_PAGE_USER { // 0x05
848
850
851/*
852#ifndef WParam_WType_Mask
853#define WParam_WType_Mask 0x0f
854#define WParam_WType_Packet 0x00
855#define WParam_WType_TAO 0x01
856#define WParam_WType_Ses 0x02
857#define WParam_WType_Raw 0x03
858#define WParam_TestWrite 0x10
859#define WParam_LS_V 0x20
860#define WParam_BUFF 0x40
861#endif
862*/
863
864 union {
866 struct {
874
875/*
876#ifndef WParam_TrkMode_Mask
877#define WParam_TrkMode_Mask 0x0f
878#define WParam_TrkMode_None 0x00
879#define WParam_TrkMode_Audio 0x00
880#define WParam_TrkMode_Audio_PreEmph 0x01
881#define WParam_TrkMode_Data 0x04
882#define WParam_TrkMode_IncrData 0x05
883#define WParam_TrkMode_QAudio_PreEmph 0x08
884#define WParam_TrkMode_AllowCpy 0x02
885#define WParam_Copy 0x10
886#define WParam_FP 0x20
887#define WParam_MultiSes_Mask 0xc0
888#define WParam_Multises_None 0x00
889#define WParam_Multises_Final 0x80
890#define WParam_Multises_Multi 0xc0
891#endif
892*/
893
894 union {
895 UCHAR Flags;
896 struct {
898 UCHAR Copy : 1; // 0
899 UCHAR FP : 1; // 0
903
904/*
905#ifndef WParam_BlkType_Mask
906#define WParam_BlkType_Mask 0x0f
907#define WParam_BlkType_Raw_2352 0x00
908#define WParam_BlkType_RawPQ_2368 0x01
909#define WParam_BlkType_RawPW_2448 0x02
910#define WParam_BlkType_RawPW_R_2448 0x03
911#define WParam_BlkType_M1_2048 0x08
912#define WParam_BlkType_M2_2336 0x09
913#define WParam_BlkType_M2XAF1_2048 0x0a
914#define WParam_BlkType_M2XAF1SH_2056 0x0b
915#define WParam_BlkType_M2XAF2_2324 0x0c
916#define WParam_BlkType_M2XAFXSH_2332 0x0d
917#endif
918*/
919
920 union {
921 UCHAR Flags;
922 struct {
927
930
931 union {
932 UCHAR Flags;
933 struct {
938
939/*
940#ifndef WParam_SesFmt_CdRom
941#define WParam_SesFmt_CdRom 0x00
942#define WParam_SesFmt_CdI 0x10
943#define WParam_SesFmt_CdRomXa 0x20
944#endif
945*/
946
951
954
955 UCHAR N[13];
958
961
962 UCHAR I[12];
966
967 struct {
968 union {
970 struct _SubHdrParams1 {
973
974/*
975#define WParam_SubHdr_SubMode0 0x00
976#define WParam_SubHdr_SubMode1 0x08
977*/
978
982
983/*
984#define WParam_SubHdr_Mode_Mask 0x03
985#define WParam_SubHdr_Mode0 0x00
986#define WParam_SubHdr_Mode1 0x01
987#define WParam_SubHdr_Mode2 0x02
988#define WParam_SubHdr_Format_Mask 0xe0
989#define WParam_SubHdr_Format_UserData 0x00
990#define WParam_SubHdr_Format_RunIn4 0x20
991#define WParam_SubHdr_Format_RunIn3 0x40
992#define WParam_SubHdr_Format_RunIn2 0x60
993#define WParam_SubHdr_Format_RunIn1 0x80
994#define WParam_SubHdr_Format_Link 0xa0
995#define WParam_SubHdr_Format_RunOut2 0xc0
996#define WParam_SubHdr_Format_RunOut1 0xe0
997*/
998
999 union {
1000 UCHAR Flags;
1001 struct {
1009
1012
1015
1016//**********************************************************************************************
1017
1018#ifndef WITHOUT_FORMATTER
1019
1022
1025
1026#endif //WITHOUT_FORMATTER
1027
1028//**********************************************************************************************
1029
1034
1035//**********************************************************************************************
1036
1041
1043
1044/*
1045#ifndef DevCap_read_cd_r
1046#define DevCap_read_cd_r 0x01 // reserved in 1.2
1047#define DevCap_read_cd_rw 0x02 // reserved in 1.2
1048#define DevCap_method2 0x04
1049#define DevCap_read_dvd_rom 0x08
1050#define DevCap_read_dvd_r 0x10
1051#define DevCap_read_dvd_ram 0x20
1052#endif //DevCap_cd_r_read
1053*/
1054
1055 UCHAR ReadCap; // DevCap_*_read
1056/* UCHAR cd_r_read : 1; // reserved in 1.2
1057 UCHAR cd_rw_read : 1; // reserved in 1.2
1058 UCHAR method2 : 1;
1059 UCHAR dvd_rom : 1;
1060 UCHAR dvd_r_read : 1;
1061 UCHAR dvd_ram_read : 1;
1062 UCHAR Reserved2 : 2;*/
1063
1064/*
1065#ifndef DevCap_write_cd_r
1066#define DevCap_write_cd_r 0x01 // reserved in 1.2
1067#define DevCap_write_cd_rw 0x02 // reserved in 1.2
1068#define DevCap_test_write 0x04
1069#define DevCap_write_dvd_r 0x10
1070#define DevCap_write_dvd_ram 0x20
1071#endif //DevCap_cd_r_write
1072*/
1073
1074 UCHAR WriteCap; // DevCap_*_write
1075/* UCHAR cd_r_write : 1; // reserved in 1.2
1076 UCHAR cd_rw_write : 1; // reserved in 1.2
1077 UCHAR dvd_ram_write : 1;
1078 UCHAR dvd_r_write : 1;
1079 UCHAR reserved3a : 1;
1080 UCHAR test_write : 1;
1081 UCHAR Reserved3 : 2;*/
1082
1083/*
1084#ifndef DevCap_audio_play
1085#define DevCap_audio_play 0x01
1086#define DevCap_composite 0x02
1087#define DevCap_digport1 0x04
1088#define DevCap_digport2 0x08
1089#define DevCap_mode2_form1 0x10
1090#define DevCap_mode2_form2 0x20
1091#define DevCap_multisession 0x40
1092#endif //DevCap_audio_play
1093*/
1094
1096/* UCHAR audio_play : 1;
1097 UCHAR composite : 1;
1098 UCHAR digport1 : 1;
1099 UCHAR digport2 : 1;
1100 UCHAR mode2_form1 : 1;
1101 UCHAR mode2_form2 : 1;
1102 UCHAR multisession : 1;
1103 UCHAR Reserved4 : 1;*/
1104
1105/*
1106#ifndef DevCap_cdda
1107#define DevCap_cdda 0x01
1108#define DevCap_cdda_accurate 0x02
1109#define DevCap_rw_supported 0x04
1110#define DevCap_rw_corr 0x08
1111#define DevCap_c2_pointers 0x10
1112#define DevCap_isrc 0x20
1113#define DevCap_upc 0x40
1114#define DevCap_read_bar_code 0x80
1115#endif //DevCap_cdda
1116*/
1117
1119/* UCHAR cdda : 1;
1120 UCHAR cdda_accurate : 1;
1121 UCHAR rw_supported : 1;
1122 UCHAR rw_corr : 1;
1123 UCHAR c2_pointers : 1;
1124 UCHAR isrc : 1;
1125 UCHAR upc : 1;
1126 UCHAR Reserved5 : 1;*/
1127
1128/*
1129#ifndef DevCap_lock
1130#define DevCap_lock 0x01
1131#define DevCap_lock_state 0x02
1132#define DevCap_prevent_jumper 0x04
1133#define DevCap_eject 0x08
1134#define DevCap_mechtype_mask 0xE0
1135#define DevCap_mechtype_caddy 0x00
1136#define DevCap_mechtype_tray (0x01<<5)
1137#define DevCap_mechtype_popup (0x02<<5)
1138#define DevCap_mechtype_individual_changer (0x04<<5)
1139#define DevCap_mechtype_cartridge_changer (0x05<<5)
1140#endif //DevCap_lock
1141*/
1142
1144/* UCHAR lock : 1;
1145 UCHAR lock_state : 1;
1146 UCHAR prevent_jumper : 1;
1147 UCHAR eject : 1;
1148 UCHAR Reserved6 : 1;
1149 UCHAR mechtype : 3;*/
1150
1151/*
1152#ifndef DevCap_separate_volume
1153#define DevCap_separate_volume 0x01
1154#define DevCap_separate_mute 0x02
1155#define DevCap_disc_present 0x04 // reserved in 1.2
1156#define DevCap_sw_slot_select 0x08 // reserved in 1.2
1157#define DevCap_change_side_cap 0x10
1158#define DevCap_rw_leadin_read 0x20
1159#endif //DevCap_separate_volume
1160*/
1161
1163/* UCHAR separate_volume : 1;
1164 UCHAR separate_mute : 1;
1165 UCHAR disc_present : 1; // reserved in 1.2
1166 UCHAR sss : 1; // reserved in 1.2
1167 UCHAR Reserved7 : 4;*/
1168
1173
1175
1177/* UCHAR Reserved9 : 1;
1178 UCHAR BCK : 1;
1179 UCHAR RCK : 1;
1180 UCHAR LSBF : 1;
1181 UCHAR Length : 2;
1182 UCHAR Reserved10 : 2;*/
1183
1188
1190
1192
1196
1198 UCHAR ReadCap; // DevCap_*_read
1199 UCHAR WriteCap; // DevCap_*_write
1208
1211
1216
1217// MMC 3
1218
1220
1222/* UCHAR RCS : 2; // rotation control selected
1223 UCHAR Reserved13 : 6; */
1224
1227
1228// LUN_WRITE_PERF_DESC_USER WritePerfDescs[0];
1229
1231
1234
1235#define LunWPerf_RotCtrl_Mask 0x07
1236#define LunWPerf_RotCtrl_CLV 0x00
1237#define LunWPerf_RotCtrl_CAV 0x01
1238
1241
1243
1244//**********************************************************************************************
1245
1250
1255
1256//**********************************************************************************************
1257
1258typedef struct _LL_READ_USER_IN {
1259
1260#define ReadCd_BlkType_Mask 0x1c
1261#define ReadCd_BlkType_Any (0x00<<2)
1262#define ReadCd_BlkType_CDDA (0x01<<2)
1263#define ReadCd_BlkType_M1 (0x02<<2)
1264#define ReadCd_BlkType_M2FX (0x03<<2)
1265#define ReadCd_BlkType_M2F1 (0x04<<2)
1266#define ReadCd_BlkType_M2F2 (0x05<<2)
1267
1269
1270 ULONG LBA; // negative value (-1) indicates tha (H)MSF must be used
1272
1273#define ReadCd_Error_Mask 0x0006
1274#define ReadCd_Error_None 0x0000
1275#define ReadCd_Error_C2 0x0002
1276#define ReadCd_Error_C2ex 0x0004
1277#define ReadCd_Include_EDC 0x0008
1278#define ReadCd_Include_UsrData 0x0010
1279#define ReadCd_Header_Mask 0x0060
1280#define ReadCd_Header_None 0x0000
1281#define ReadCd_Header_Hdr 0x0020
1282#define ReadCd_Header_SubHdr 0x0040
1283#define ReadCd_Header_AllHdr 0x0060
1284#define ReadCd_Include_SyncData 0x0080
1285#define ReadCd_SubChan_Mask 0x0700
1286#define ReadCd_SubChan_None 0x0000
1287#define ReadCd_SubChan_Raw 0x0100
1288#define ReadCd_SubChan_Q 0x0200
1289#define ReadCd_SubChan_PW 0x0400
1290#define ReadCd_SubChan_All ReadCd_SubChan_Mask
1291
1292 union {
1294 struct {
1301
1306
1310
1312
1313//**********************************************************************************************
1314
1316
1326
1328
1329//**********************************************************************************************
1330
1331typedef struct _RAW_READ_USER_IN {
1336
1337//**********************************************************************************************
1338
1343
1344//**********************************************************************************************
1345
1346#define AudioStatus_NotSupported 0x00
1347#define AudioStatus_InProgress 0x11
1348#define AudioStatus_Paused 0x12
1349#define AudioStatus_PlayComplete 0x13
1350#define AudioStatus_PlayError 0x14
1351#define AudioStatus_NoStatus 0x15
1352
1353#define IOCTL_CDROM_SUB_Q_CHANNEL 0x00
1354#define IOCTL_CDROM_CURRENT_POSITION 0x01
1355#define IOCTL_CDROM_MEDIA_CATALOG 0x02
1356#define IOCTL_CDROM_TRACK_ISRC 0x03
1357
1362
1363//**********************************************************************************************
1364
1368
1369//**********************************************************************************************
1370
1375
1376//**********************************************************************************************
1377
1380
1383
1386
1389
1392
1395
1396//**********************************************************************************************
1397
1398typedef struct _INIT_DEINIT_USER_IN {
1400 BOOLEAN Reserved; // For separate device (de)initialization
1402
1405
1406//**********************************************************************************************
1407
1412
1415
1416//**********************************************************************************************
1417
1418typedef struct _READ_TOC_EX_USER_IN {
1422
1425
1426//**********************************************************************************************
1427
1428#define DefSession_LastAvailable 0xff
1429
1433
1434//**********************************************************************************************
1435
1439
1440//**********************************************************************************************
1441
1444
1445//**********************************************************************************************
1446
1448 UCHAR WModes [4][16];
1454 ULONG Features2[4]; // form GET_CONFIG 0 - 128
1456
1460 UCHAR WModes [4][16];
1466 ULONG Features2[4]; // from GET_CONFIG
1467 ULONG Features2ex[64-4]; // from GET_CONFIG (reserved for higher values)
1468 ULONG WriteCaps; // CDRW_DEV_CAPABILITY_xxx
1469 ULONG ReadCaps; // CDRW_DEV_CAPABILITY_xxx
1471
1472#define CDRW_DEV_CAPABILITY_TAG 0xCA10AB11
1473
1474#define WMODE_SUPPORTED 0x01
1475#define WMODE_SUPPORTED_FP 0x02
1476#define WMODE_SUPPORTED_VP 0x04
1477#define WMODE_NOT_SUPPORTED 0xff
1478#define WMODE_NOT_TESTED 0x00
1479
1480#define CDRW_FEATURE_OPC 0x00000001 // use OPC regardless of OPCn in DISK_INFO
1481#define CDRW_FEATURE_EVENT 0x00000002
1482#define CDRW_FEATURE_GET_CFG 0x00000004
1483#define CDRW_FEATURE_NO_LOCK_REP 0x00000008 // device doesn't report tray lock state
1484#define CDRW_FEATURE_SYNC_ON_WRITE 0x00000010 // device preferes Sync Cache after each Write
1485#define CDRW_FEATURE_BAD_RW_SEEK 0x00000020 // seek error occures with status Illegal Sector Mode For This Track
1486 // on old CdRoms when they attempt to read outer sectors on FP formatted
1487 // disk. Workaround: perform sequence of seeks from lower address
1488 // to required with step about 0x800 blocks.
1489#define CDRW_FEATURE_FP_ADDRESSING_PROBLEM 0x00000040
1490#define CDRW_FEATURE_MRW_ADDRESSING_PROBLEM 0x00000080
1491#define CDRW_FEATURE_FORCE_SYNC_ON_WRITE 0x00000100 // device requires Sync Cache after each Write
1492#define CDRW_FEATURE_BAD_DVD_LAST_LBA 0x00000200 // device cannot determile LastLba on not closed DVD disks
1493#define CDRW_FEATURE_FULL_BLANK_ON_FORMAT 0x00000400 // device cannot format disk until it is full-blanked
1494#define CDRW_FEATURE_STREAMING 0x00000800 // device supports streaming read/write
1495#define CDRW_FEATURE_FORCE_SYNC_BEFORE_READ 0x00001000 // device requires Sync Cache on Write -> Read state transition
1496#define CDRW_FEATURE_CHANGER 0x80000000
1497
1498#define DEV_CAP_GET_PROFILE(arr, pf) \
1499 (((pf) > PFNUM_Max) ? 0 : (((arr)[(pf)/32] >> (pf)%32) & 1))
1500
1501#define CDRW_DEV_CAPABILITY_CDROM ((ULONG)1 << CdMediaClass_CDROM )
1502#define CDRW_DEV_CAPABILITY_CDR ((ULONG)1 << CdMediaClass_CDR )
1503#define CDRW_DEV_CAPABILITY_CDRW ((ULONG)1 << CdMediaClass_CDRW )
1504#define CDRW_DEV_CAPABILITY_DVDROM ((ULONG)1 << CdMediaClass_DVDROM )
1505#define CDRW_DEV_CAPABILITY_DVDRAM ((ULONG)1 << CdMediaClass_DVDRAM )
1506#define CDRW_DEV_CAPABILITY_DVDR ((ULONG)1 << CdMediaClass_DVDR )
1507#define CDRW_DEV_CAPABILITY_DVDRW ((ULONG)1 << CdMediaClass_DVDRW )
1508#define CDRW_DEV_CAPABILITY_DVDpR ((ULONG)1 << CdMediaClass_DVDpR )
1509#define CDRW_DEV_CAPABILITY_DVDpRW ((ULONG)1 << CdMediaClass_DVDpRW )
1510#define CDRW_DEV_CAPABILITY_DDCDROM ((ULONG)1 << CdMediaClass_DDCDROM)
1511#define CDRW_DEV_CAPABILITY_DDCDR ((ULONG)1 << CdMediaClass_DDCDR )
1512#define CDRW_DEV_CAPABILITY_DDCDRW ((ULONG)1 << CdMediaClass_DDCDRW )
1513
1514//**********************************************************************************************
1515
1517
1518//**********************************************************************************************
1519
1520/*
1521#ifndef EventStat_Class_OpChange
1522#define EventStat_Class_OpChange 0x01
1523#define EventStat_Class_PM 0x02
1524#define EventStat_Class_Media 0x04
1525#define EventStat_Class_DevBusy 0x06
1526#endif // end EventStat_Class_OpChange
1527*/
1528
1529typedef struct _GET_EVENT_USER_IN {
1533
1534typedef union _GET_EVENT_USER_OUT {
1541
1542//**********************************************************************************************
1543
1545
1552
1556// UCHAR Data[0];
1558
1559//**********************************************************************************************
1560
1564
1565//**********************************************************************************************
1566
1572 union {
1576// UCHAR KeyData[0];
1578
1581
1582//**********************************************************************************************
1583
1586
1587//**********************************************************************************************
1588
1589// Predefined (Mt. Fuji) key sizes
1590// Add sizeof(DVD_COPY_PROTECT_KEY) to get allocation size for
1591// the full key structure
1592
1593#define DVD_CHALLENGE_KEY_LENGTH (12 + sizeof(DVD_COPY_PROTECT_KEY))
1594#define DVD_BUS_KEY_LENGTH (8 + sizeof(DVD_COPY_PROTECT_KEY))
1595#define DVD_TITLE_KEY_LENGTH (8 + sizeof(DVD_COPY_PROTECT_KEY))
1596#define DVD_DISK_KEY_LENGTH (2048 + sizeof(DVD_COPY_PROTECT_KEY))
1597#define DVD_RPC_KEY_LENGTH (sizeof(DVD_RPC_KEY) + sizeof(DVD_COPY_PROTECT_KEY))
1598#define DVD_SET_RPC_KEY_LENGTH (sizeof(DVD_SET_RPC_KEY) + sizeof(DVD_COPY_PROTECT_KEY))
1599#define DVD_ASF_LENGTH (sizeof(DVD_ASF) + sizeof(DVD_COPY_PROTECT_KEY))
1600
1601//**********************************************************************************************
1602
1603typedef struct _DISK_VERIFY_USER_IN {
1607
1608//**********************************************************************************************
1609
1611
1613
1615
1616//**********************************************************************************************
1617
1623
1624//**********************************************************************************************
1625
1626typedef struct _MediaTrackMap {
1635
1637#define TrackMap_AllowCopyBit_variated 0x01
1638#define TrackMap_CopyBit_variated 0x02
1639#define TrackMap_Try_variation 0x04
1640#define TrackMap_Use_variation 0x08
1641#define TrackMap_FixFPAddressing 0x10
1642#define TrackMap_FixMRWAddressing 0x20
1643
1644 // are used only if FixFPAddressing is enabled
1647
1649
1654 // Number of last session
1658 // First & Last LBA of the last session
1661 // Last writable LBA
1663 // First writable LBA
1665 // sector type map
1667 //
1670 // disk state
1680
1681#define DiskLayout_FLAGS_TRACKMAP (0x00002000)
1682#define DiskLayout_FLAGS_RAW_DISK (0x00040000)
1683
1684//**********************************************************************************************
1685
1686// Error codes returned by IOCTL_CDRW_GEL_LAST_ERROR
1687
1688//#ifndef CDRW_ERR_NO_ERROR
1689
1690#define CDRW_ERR_NO_ERROR 0x0000
1691#define CDRW_ERR_WRITE_IN_PROGRESS_BUSY 0x0001
1692#define CDRW_ERR_FORMAT_IN_PROGRESS_BUSY 0x0002
1693#define CDRW_ERR_CLOSE_IN_PROGRESS_BUSY 0x0003
1694#define CDRW_ERR_BAD_ADDR_ALIGNMENT 0x0004
1695#define CDRW_ERR_BAD_SIZE_ALIGNMENT 0x0005
1696#define CDRW_ERR_STREAM_LOSS 0x0006
1697#define CDRW_ERR_TEST_WRITE_UNSUPPORTED 0x0007
1698#define CDRW_ERR_UNHANDLED_WRITE_TYPE 0x0008
1699#define CDRW_ERR_CANT_ALLOC_TMP_BUFFER 0x0009
1700#define CDRW_ERR_BUFFER_IS_FULL 0x000a
1701#define CDRW_ERR_VERIFY_REQUIRED 0x000b
1702#define CDRW_ERR_PLAY_IN_PROGRESS_BUSY 0x000c
1703#define CDRW_ERR_TOO_LONG_BLOCK_TO_TRANSFER 0x000d
1704#define CDRW_ERR_INWALID_WRITE_PARAMETERS 0x000e // use SET_WRITE_PARAMS properly
1705#define CDRW_ERR_INVALID_IO_BUFFER_ADDRESS 0x000f
1706#define CDRW_ERR_INVALID_INPUT_BUFFER_SIZE 0x0010
1707#define CDRW_ERR_INVALID_OUTPUT_BUFFER_SIZE 0x0011
1708#define CDRW_ERR_UNRECOGNIZED_MEDIA 0x0012
1709#define CDRW_ERR_MEDIA_WRITE_PROTECTED 0x0013
1710#define CDRW_ERR_NO_MEDIA 0x0014
1711#define CDRW_ERR_TRAY_OPEN 0x0015
1712#define CDRW_ERR_MEDIA_NOT_APPENDABLE 0x0016
1713#define CDRW_ERR_INVALID_LBA 0x0017
1714#define CDRW_ERR_INVALID_FIXED_PACKET_SIZE 0x0018
1715#define CDRW_ERR_INVALID_WRITE_TYPE_FOR_MEDIA 0x0019
1716#define CDRW_ERR_CUE_SHEET_REQUIRED 0x001a // you sould send cue sheet before SAO
1717#define CDRW_ERR_CANT_DEINIT_IN_CLASS_MODE 0x001b // there is no underlayered driver
1718#define CDRW_ERR_INVALID_FORMAT_UNIT_SETTINGS 0x001c // use SET_WRITE_PARAMS properly before
1719 // calling FormatUnit
1720#define CDRW_ERR_UNHANDLED_FORMAT_UNIT_MODE 0x001d // this mode is not supported by
1721 // Workaround module
1722#define CDRW_ERR_CANT_READ_BUFFER_CAPACITY 0x001e
1723#define CDRW_ERR_DEVICE_WRITE_ERROR 0x001f
1724#define CDRW_ERR_UNHANDLED_IOCTL 0x0020
1725#define CDRW_ERR_UNHANDLED_FORMAT_WORKAROUND_MODE 0x0021 // check your Registry settings
1726#define CDRW_ERR_DOOR_LOCKED_BUSY 0x0022
1727#define CDRW_ERR_MAGIC_WORD_REQUIRED 0x0023
1728#define CDRW_ERR_INVALID_SECTOR_MODE 0x0024
1729#define CDRW_ERR_DVD_LICENSE_VIOLATION 0x0025
1730#define CDRW_ERR_INVALID_DVD_KEY_TYPE 0x0026
1731#define CDRW_ERR_INVALID_DVD_REGION_CODE 0x0027
1732#define CDRW_ERR_PAGE_IS_NOT_SUPPORTED 0x0028
1733#define CDRW_ERR_STD_FORMAT_REQUIRED 0x0029
1734//#define CDRW_ERR_ 0x00
1735//#define CDRW_ERR_ 0x00
1736//#define CDRW_ERR_ 0x00
1737//#define CDRW_ERR_ 0x00
1738
1739//#endif
1740
1741// Registry keys
1742#define REG_TIMEOUT_NAME_USER ("TimeOutValue")
1743#define REG_AUTORUN_NAME_USER ("Autorun")
1744#define REG_LOADMODE_NAME_USER ("LoadMode")
1745
1746#define LOADMODE_CDRW_ONLY 0
1747#define LOADMODE_ALWAYS 1
1748#define LOADMODE_NEVER 2
1749
1750#define REG_PACKETSIZE_NAME_USER ("PacketSize") // Initial packet size (FP)
1751
1752#define PACKETSIZE_STREAM 0
1753#define PACKETSIZE_UDF 32
1754
1755#ifndef WITHOUT_FORMATTER
1756#define REG_FORMATUNIT_NAME_USER ("FormatUnitMode") // FORMAT_UNIT workaround mode
1757
1758#define FORMATUNIT_FP 0 // simulation via FP
1759#define FORMATUNIT_STD 1
1760#endif //WITHOUT_FORMATTER
1761
1762#define REG_R_SPLIT_SIZE_NAME_USER ("ReadSplitSize") // Read request spliting limit
1763#define REG_W_SPLIT_SIZE_NAME_USER ("WriteSplitSize") // Write request spliting limit
1764
1765#define REG_CDR_SIMULATION_NAME_USER ("CdRSimulationMode") // Influence on READ_DISC_INFO
1766 // capability check on startup
1767#define CDR_SIMULATION_CDROM 0
1768#define CDR_SIMULATION_ALWAYS 1
1769#define CDR_SIMULATION_NEVER 2
1770
1771#define REG_SPEEDMODE_NAME_USER ("SpeedDetectionMode")
1772
1773#define SPEEDMODE_ASSUME_OK 0
1774#define SPEEDMODE_REREAD 1
1775
1776//#define REG_MAX_WRITE_SPEED_R_NAME_USER ("MaxWriteSpeedCDR")
1777//#define REG_MAX_WRITE_SPEED_RW_NAME_USER ("MaxWriteSpeedCDRW")
1778
1779//#define REG_SIMULATION_TABLE_NAME_USER ("WModeSimulationTable") // via Raw
1780
1781#define REG_WMODE_SIMULATION_NAME_USER ("WModeSimulation") // via Raw
1782#define WMODE_SIMULATION_ON 1
1783#define WMODE_SIMULATION_OFF 0
1784#define WMODE_ASSUME_OK 2
1785
1786#define REG_SYNC_PACKETS_NAME_USER ("SyncPacketsMode")
1787#define SYNC_PACKETS_ALWAYS 0
1788#define SYNC_PACKETS_RESET_DRV 1
1789#define SYNC_PACKETS_NEVER 2
1790#define SYNC_PACKETS_FP 3
1791#define SYNC_PACKETS_DISABLED 4
1792#define SYNC_PACKETS_VP_ONLY 5
1793#define SYNC_PACKETS_BY_W_THROUGH 6
1794
1795#define REG_ASSURE_READY_NAME_USER ("AssureReadiness")
1796#define ASSURE_READY_TEST_UNIT 0
1797#define ASSURE_READY_DELAY_100 1
1798#define ASSURE_READY_NONE 2
1799
1800#define REG_WAIT_PACKETS_NAME_USER ("WaitPackets")
1801#define WAIT_PACKETS_ALWAYS 0
1802#define WAIT_PACKETS_STREAM 1
1803
1804#define REG_BAD_RW_SEEK_NAME_USER ("BadRWSeek")
1805
1806#define REG_ALLOW_PACKET_ON_CDR_NAME_USER ("AllowPacketOnCdR")
1807#define ALLOW_PACKET_ON_CDR_OFF 0
1808#define ALLOW_PACKET_ON_CDR_ON 1
1809
1810#define REG_MAX_READY_RETRY_NAME_USER ("MaxReadyRetry")
1811
1812#define REG_BAD_DVD_READ_TRACK_INFO_NAME_USER ("DvdBadReadTrackInfo")
1813#define REG_BAD_DVD_READ_DISC_INFO_NAME_USER ("DvdBadReadDiscInfo")
1814#define REG_BAD_DVD_READ_CAPACITY_NAME_USER ("DvdBadReadCapacity")
1815#define REG_BAD_DVD_LAST_LBA_NAME_USER ("DvdBadLastLba")
1816#define REG_BAD_DVD_LAST_LBA_NAME_USER ("DvdBadLastLba")
1817
1818#define REG_FULL_BLANK_ON_FORMAT_NAME_USER ("FullEraseBeforeFormat")
1819
1820#define DEFAULT_LAST_LBA_FP_CD 276159
1821#define DEFAULT_LAST_LBA_DVD 0x23053f
1822#define DEFAULT_LAST_LBA_BD (25*1000*1000/2-1)
1823
1824
1825#pragma pack(pop)
1826
1827#endif //__CDRW_PUBLIC_H__
unsigned char BOOLEAN
struct _MODE_SENSE_USER_OUT MODE_SENSE_USER_OUT
ULONG DVD_SESSION_ID
Definition: cdrw_usr.h:1544
struct _FORMAT_CDRW_PARAMETERS_USER_IN * PFORMAT_CDRW_PARAMETERS_USER_IN
struct _INIT_DEINIT_USER_IN * PINIT_DEINIT_USER_IN
PREAD_TOC_TOC PREAD_TOC_USER_OUT
Definition: cdrw_usr.h:1379
struct _LL_WRITE_USER_IN LL_WRITE_USER_IN
struct _GET_DEVICE_INFO_USER_OUT GET_DEVICE_INFO_USER_OUT
PREAD_TOC_SES PREAD_SESSION_INFO_USER_OUT
Definition: cdrw_usr.h:1414
PREAD_TOC_FULL_TOC PREAD_PMA_USER_OUT
Definition: cdrw_usr.h:1388
struct _RAW_READ_USER_IN * PRAW_READ_USER_IN
struct _READ_TOC_EX_USER_IN READ_TOC_EX_USER_IN
struct _SET_RANDOM_ACCESS_USER_IN SET_RANDOM_ACCESS_USER_IN
struct _GET_EVENT_USER_IN GET_EVENT_USER_IN
struct _TRACK_INFO_BLOCK_USER_OUT * PTRACK_INFO_BLOCK_USER_OUT
struct _SET_RANDOM_ACCESS_USER_IN * PSET_RANDOM_ACCESS_USER_IN
READ_TOC_ATIP READ_ATIP_USER_OUT
Definition: cdrw_usr.h:1390
struct _TRACK_INFO_BLOCK_USER_IN * PTRACK_INFO_BLOCK_USER_IN
struct _MODE_WRITE_PARAMS_PAGE_USER MODE_WRITE_PARAMS_PAGE_USER
struct _SEND_OPC_INFO_HEADER_USER_IN SEND_OPC_INFO_HEADER_USER_IN
struct _MediaTrackMap * PMediaTrackMap
struct _SEND_OPC_INFO_HEADER_USER_IN * PSEND_OPC_INFO_HEADER_USER_IN
struct _DVD_START_SESSION_USER_OUT DVD_START_SESSION_USER_OUT
struct _TEST_UNIT_READY_USER_OUT * PTEST_UNIT_READY_USER_OUT
struct _CDROM_DISK_DATA_USER_OUT CDROM_DISK_DATA_USER_OUT
struct _SEEK_AUDIO_MSF_USER_IN * PSEEK_AUDIO_MSF_USER_IN
struct _AUDIO_CONTROL_USER_OUT * PAUDIO_CONTROL_USER_OUT
struct _GET_MEDIA_TYPE_USER_OUT * PGET_MEDIA_TYPE_USER_OUT
struct _PREVENT_MEDIA_REMOVAL_USER_IN * PPREVENT_MEDIA_REMOVAL_USER_IN
MODE_MRW_PAGE SET_MRW_MODE_USER_IN
Definition: cdrw_usr.h:1023
struct _DVD_READ_KEY_USER_IN DVD_READ_KEY_USER_IN
MODE_WRITE_PARAMS_PAGE_USER GET_WRITE_MODE_USER_OUT
Definition: cdrw_usr.h:1010
struct _GET_SIGNATURE_USER_OUT GET_SIGNATURE_USER_OUT
struct _GET_LAST_ERROR_USER_OUT GET_LAST_ERROR_USER_OUT
struct _TEST_UNIT_READY_USER_IN * PTEST_UNIT_READY_USER_IN
struct _GET_CAPABILITIES_3_USER_OUT GET_CAPABILITIES_3_USER_OUT
struct _RESERVE_TRACK_EX_USER_IN * PRESERVE_TRACK_EX_USER_IN
PREAD_CAPACITY_DATA PREAD_CAPACITY_USER_OUT
Definition: cdrw_usr.h:423
struct _SET_READ_AHEAD_USER_IN SET_READ_AHEAD_USER_IN
struct _DISK_VERIFY_USER_IN DISK_VERIFY_USER_IN
struct _DISC_INFO_BLOCK_USER_OUT * PDISC_INFO_BLOCK_USER_OUT
struct _CDROM_DISK_DATA_USER_OUT * PCDROM_DISK_DATA_USER_OUT
struct _GET_MEDIA_TYPE_EX_USER_OUT GET_MEDIA_TYPE_EX_USER_OUT
struct _SET_CD_SPEED_EX_USER_IN * PSET_CD_SPEED_EX_USER_IN
struct _DVD_READ_STRUCTURE_USER_OUT DVD_READ_STRUCTURE_USER_OUT
struct _PREVENT_MEDIA_REMOVAL_USER_IN PREVENT_MEDIA_REMOVAL_USER_IN
struct _CDRW_RESET_DRIVER_USER_IN CDRW_RESET_DRIVER_USER_IN
struct _SEND_OPC_INFO_USER_IN SEND_OPC_INFO_USER_IN
enum _STORAGE_MEDIA_TYPE STORAGE_MEDIA_TYPE
READ_TOC_SES READ_TOC_EX_USER_OUT
Definition: cdrw_usr.h:1423
struct _TRACK_INFO_BLOCK_USER_IN TRACK_INFO_BLOCK_USER_IN
struct _SEEK_AUDIO_MSF_USER_IN SEEK_AUDIO_MSF_USER_IN
struct _READ_SESSION_INFO_USER_IN READ_SESSION_INFO_USER_IN
struct _MODE_SELECT_USER_IN * PMODE_SELECT_USER_IN
PINIT_DEINIT_USER_IN PINIT_DEINIT_USER_OUT
Definition: cdrw_usr.h:1404
ULONG * PDVD_SESSION_ID
Definition: cdrw_usr.h:1544
struct _LUN_WRITE_PERF_DESC_USER * PLUN_WRITE_PERF_DESC_USER
ULONG CHECK_VERIFY_USER_OUT
Definition: cdrw_usr.h:1516
enum _STORAGE_MEDIA_TYPE * PSTORAGE_MEDIA_TYPE
struct _CLOSE_TRK_SES_USER_IN * PCLOSE_TRK_SES_USER_IN
struct _SEND_OPC_INFO_USER_IN * PSEND_OPC_INFO_USER_IN
struct _SYNC_CACHE_USER_IN * PSYNC_CACHE_USER_IN
READ_CAPACITY_DATA READ_CAPACITY_USER_OUT
Definition: cdrw_usr.h:422
DVD_READ_KEY_USER_IN DVD_READ_KEY_USER_OUT
Definition: cdrw_usr.h:1579
struct _GET_DEVICE_INFO_USER_OUT * PGET_DEVICE_INFO_USER_OUT
PDISK_GEOMETRY PGET_DRIVE_GEOMETRY_USER_OUT
Definition: cdrw_usr.h:1443
READ_TOC_CD_TEXT READ_CD_TEXT_USER_OUT
Definition: cdrw_usr.h:1393
READ_TOC_FULL_TOC READ_PMA_USER_OUT
Definition: cdrw_usr.h:1387
PMODE_MRW_PAGE PGET_MRW_MODE_USER_OUT
Definition: cdrw_usr.h:1021
PMODE_WRITE_PARAMS_PAGE_USER PSET_WRITE_MODE_USER_IN
Definition: cdrw_usr.h:1014
struct _NOTIFY_MEDIA_CHANGE_USER_IN NOTIFY_MEDIA_CHANGE_USER_IN
struct _LL_READ_USER_IN LL_READ_USER_IN
union _GET_EVENT_USER_OUT GET_EVENT_USER_OUT
struct _DVD_START_SESSION_USER_OUT * PDVD_START_SESSION_USER_OUT
struct _LUN_WRITE_PERF_DESC_USER LUN_WRITE_PERF_DESC_USER
struct _SUB_Q_CHANNEL_DATA_USER_IN SUB_Q_CHANNEL_DATA_USER_IN
union _GET_EVENT_USER_OUT * PGET_EVENT_USER_OUT
READ_TOC_SES GET_LAST_SESSION_USER_OUT
Definition: cdrw_usr.h:1381
PDVD_READ_KEY_USER_IN PDVD_READ_KEY_USER_OUT
Definition: cdrw_usr.h:1580
struct _CDRW_RESET_DRIVER_USER_IN * PCDRW_RESET_DRIVER_USER_IN
PMODE_MRW_PAGE PSET_MRW_MODE_USER_IN
Definition: cdrw_usr.h:1024
struct _DVD_READ_STRUCTURE_USER_OUT * PDVD_READ_STRUCTURE_USER_OUT
struct _RESERVE_TRACK_EX_USER_IN RESERVE_TRACK_EX_USER_IN
PREAD_TOC_FULL_TOC PREAD_FULL_TOC_USER_OUT
Definition: cdrw_usr.h:1385
struct _TEST_UNIT_READY_USER_OUT TEST_UNIT_READY_USER_OUT
struct _DVD_READ_KEY_USER_IN * PDVD_READ_KEY_USER_IN
struct _SET_CD_SPEED_EX_USER_IN SET_CD_SPEED_EX_USER_IN
struct _PLAY_AUDIO_MSF_USER_IN PLAY_AUDIO_MSF_USER_IN
struct _CLOSE_TRK_SES_USER_IN CLOSE_TRK_SES_USER_IN
struct _MODE_WRITE_PARAMS_PAGE_USER * PMODE_WRITE_PARAMS_PAGE_USER
struct _GET_DISK_LAYOUT_USER_OUT GET_DISK_LAYOUT_USER_OUT
struct _INIT_DEINIT_USER_IN INIT_DEINIT_USER_IN
DVD_START_SESSION_USER_OUT DVD_END_SESSION_USER_IN
Definition: cdrw_usr.h:1584
struct _DVD_READ_STRUCTURE_USER_IN DVD_READ_STRUCTURE_USER_IN
PMODE_WRITE_PARAMS_PAGE_USER PGET_WRITE_MODE_USER_OUT
Definition: cdrw_usr.h:1011
struct _GET_CAPABILITIES_3_USER_OUT * PGET_CAPABILITIES_3_USER_OUT
struct _BUFFER_CAPACITY_BLOCK_USER_OUT BUFFER_CAPACITY_BLOCK_USER_OUT
ULONG * PCHECK_VERIFY_USER_OUT
Definition: cdrw_usr.h:1516
struct _BLANK_MEDIA_USER_IN BLANK_MEDIA_USER_IN
struct _BLANK_MEDIA_USER_IN * PBLANK_MEDIA_USER_IN
struct _SET_STREAMING_USER_IN SET_STREAMING_USER_IN
struct _GET_SIGNATURE_USER_OUT * PGET_SIGNATURE_USER_OUT
MODE_MRW_PAGE GET_MRW_MODE_USER_OUT
Definition: cdrw_usr.h:1020
struct _MODE_SENSE_USER_IN MODE_SENSE_USER_IN
struct _RESERVE_TRACK_USER_IN RESERVE_TRACK_USER_IN
struct _READ_SESSION_INFO_USER_IN * PREAD_SESSION_INFO_USER_IN
struct _TEST_UNIT_READY_USER_IN TEST_UNIT_READY_USER_IN
struct _DVD_READ_STRUCTURE_USER_IN * PDVD_READ_STRUCTURE_USER_IN
DISK_GEOMETRY GET_DRIVE_GEOMETRY_USER_OUT
Definition: cdrw_usr.h:1442
MODE_WRITE_PARAMS_PAGE_USER SET_WRITE_MODE_USER_IN
Definition: cdrw_usr.h:1013
struct _GET_DEVICE_INFO_OLD_USER_OUT * PGET_DEVICE_INFO_OLD_USER_OUT
struct _GET_EVENT_USER_IN * PGET_EVENT_USER_IN
struct _SET_READ_AHEAD_USER_IN * PSET_READ_AHEAD_USER_IN
struct _GET_DISK_LAYOUT_USER_OUT * PGET_DISK_LAYOUT_USER_OUT
struct _READ_TOC_EX_USER_IN * PREAD_TOC_EX_USER_IN
struct _SET_DEFAULT_SESSION_USER_IN * PSET_DEFAULT_SESSION_USER_IN
INIT_DEINIT_USER_IN INIT_DEINIT_USER_OUT
Definition: cdrw_usr.h:1403
struct _SET_STREAMING_USER_IN * PSET_STREAMING_USER_IN
struct _SET_CD_SPEED_USER_IN * PSET_CD_SPEED_USER_IN
struct _PLAY_AUDIO_MSF_USER_IN * PPLAY_AUDIO_MSF_USER_IN
struct _SET_CD_SPEED_USER_IN SET_CD_SPEED_USER_IN
struct _RESERVE_TRACK_USER_IN * PRESERVE_TRACK_USER_IN
_STORAGE_MEDIA_TYPE
Definition: cdrw_usr.h:192
@ SYQUEST_EZ135
Definition: cdrw_usr.h:264
@ NCTP
Definition: cdrw_usr.h:229
@ VXATape_1
Definition: cdrw_usr.h:272
@ SONY_DTF
Definition: cdrw_usr.h:235
@ AIT1_8mm
Definition: cdrw_usr.h:227
@ IOMEGA_JAZ
Definition: cdrw_usr.h:263
@ CD_R
Definition: cdrw_usr.h:241
@ KODAK_14_WO
Definition: cdrw_usr.h:259
@ DST_M
Definition: cdrw_usr.h:270
@ SYQUEST_EZFLYER
Definition: cdrw_usr.h:265
@ SYQUEST_SYJET
Definition: cdrw_usr.h:266
@ DST_L
Definition: cdrw_usr.h:271
@ CD_ROM
Definition: cdrw_usr.h:240
@ PC_5_WO
Definition: cdrw_usr.h:250
@ DVD_RW
Definition: cdrw_usr.h:245
@ DV_6mm
Definition: cdrw_usr.h:236
@ PHILIPS_12_WO
Definition: cdrw_usr.h:256
@ DMI
Definition: cdrw_usr.h:237
@ AME_8mm
Definition: cdrw_usr.h:226
@ IBM_3480
Definition: cdrw_usr.h:230
@ CLEANER_CARTRIDGE
Definition: cdrw_usr.h:239
@ QIC
Definition: cdrw_usr.h:224
@ HITACHI_12_WO
Definition: cdrw_usr.h:257
@ MP_8mm
Definition: cdrw_usr.h:225
@ STK_DATA_D3
Definition: cdrw_usr.h:234
@ PC_5_RW
Definition: cdrw_usr.h:251
@ IOMEGA_ZIP
Definition: cdrw_usr.h:262
@ PINNACLE_APEX_5_RW
Definition: cdrw_usr.h:254
@ DVD_R
Definition: cdrw_usr.h:244
@ ABL_5_WO
Definition: cdrw_usr.h:253
@ DLT
Definition: cdrw_usr.h:228
@ SONY_D2
Definition: cdrw_usr.h:238
@ CYGNET_12_WO
Definition: cdrw_usr.h:258
@ MO_3_RW
Definition: cdrw_usr.h:246
@ DVD_ROM
Definition: cdrw_usr.h:243
@ DDS_4mm
Definition: cdrw_usr.h:221
@ MP2_8mm
Definition: cdrw_usr.h:268
@ IBM_Magstar_3590
Definition: cdrw_usr.h:232
@ IBM_Magstar_MP
Definition: cdrw_usr.h:233
@ LTO_Ultrium
Definition: cdrw_usr.h:275
@ IBM_3490E
Definition: cdrw_usr.h:231
@ CD_RW
Definition: cdrw_usr.h:242
@ VXATape_2
Definition: cdrw_usr.h:273
@ NIKON_12_RW
Definition: cdrw_usr.h:261
@ DST_S
Definition: cdrw_usr.h:269
@ LTO_Accelis
Definition: cdrw_usr.h:276
@ MO_5_RW
Definition: cdrw_usr.h:248
@ SONY_12_WO
Definition: cdrw_usr.h:255
@ MiniQic
Definition: cdrw_usr.h:222
@ Travan
Definition: cdrw_usr.h:223
@ PD_5_RW
Definition: cdrw_usr.h:252
@ MO_NFR_525
Definition: cdrw_usr.h:260
@ AVATAR_F2
Definition: cdrw_usr.h:267
@ MO_5_WO
Definition: cdrw_usr.h:247
@ MO_5_LIMDOW
Definition: cdrw_usr.h:249
@ STK_EAGLE
Definition: cdrw_usr.h:274
struct _GET_DEVICE_INFO_OLD_USER_OUT GET_DEVICE_INFO_OLD_USER_OUT
struct _GET_MEDIA_TYPE_EX_USER_OUT * PGET_MEDIA_TYPE_EX_USER_OUT
struct _LL_WRITE_USER_IN * PLL_WRITE_USER_IN
struct _GET_LAST_ERROR_USER_OUT * PGET_LAST_ERROR_USER_OUT
struct _RAW_READ_USER_IN RAW_READ_USER_IN
struct _MODE_SENSE_USER_IN * PMODE_SENSE_USER_IN
struct _SYNC_CACHE_USER_IN SYNC_CACHE_USER_IN
struct _BUFFER_CAPACITY_BLOCK_USER_OUT * PBUFFER_CAPACITY_BLOCK_USER_OUT
struct _MODE_SELECT_USER_IN MODE_SELECT_USER_IN
PREAD_TOC_CD_TEXT PREAD_CD_TEXT_USER_OUT
Definition: cdrw_usr.h:1394
struct _LL_READ_USER_IN * PLL_READ_USER_IN
READ_TOC_FULL_TOC READ_FULL_TOC_USER_OUT
Definition: cdrw_usr.h:1384
PREAD_TOC_ATIP PREAD_ATIP_USER_OUT
Definition: cdrw_usr.h:1391
struct _MODE_SENSE_USER_OUT * PMODE_SENSE_USER_OUT
struct _SET_DEFAULT_SESSION_USER_IN SET_DEFAULT_SESSION_USER_IN
struct _AUDIO_CONTROL_USER_OUT AUDIO_CONTROL_USER_OUT
PREAD_TOC_SES PREAD_TOC_EX_USER_OUT
Definition: cdrw_usr.h:1424
PDVD_START_SESSION_USER_OUT PDVD_END_SESSION_USER_IN
Definition: cdrw_usr.h:1585
struct _SUB_Q_CHANNEL_DATA_USER_IN * PSUB_Q_CHANNEL_DATA_USER_IN
struct _FORMAT_CDRW_PARAMETERS_USER_IN FORMAT_CDRW_PARAMETERS_USER_IN
struct _TRACK_INFO_BLOCK_USER_OUT TRACK_INFO_BLOCK_USER_OUT
struct _GET_CAPABILITIES_USER_OUT GET_CAPABILITIES_USER_OUT
struct _DISK_VERIFY_USER_IN * PDISK_VERIFY_USER_IN
PREAD_TOC_SES PGET_LAST_SESSION_USER_OUT
Definition: cdrw_usr.h:1382
struct _DISC_STATUS_INFO_USER_OUT * PDISC_STATUS_INFO_USER_OUT
struct _GET_MEDIA_TYPE_USER_OUT GET_MEDIA_TYPE_USER_OUT
struct _NOTIFY_MEDIA_CHANGE_USER_IN * PNOTIFY_MEDIA_CHANGE_USER_IN
struct _MediaTrackMap MediaTrackMap
READ_TOC_SES READ_SESSION_INFO_USER_OUT
Definition: cdrw_usr.h:1413
struct _DISC_INFO_BLOCK_USER_OUT DISC_INFO_BLOCK_USER_OUT
struct _DISC_STATUS_INFO_USER_OUT DISC_STATUS_INFO_USER_OUT
READ_TOC_TOC READ_TOC_USER_OUT
Definition: cdrw_usr.h:1378
struct _GET_CAPABILITIES_USER_OUT * PGET_CAPABILITIES_USER_OUT
enum _TRACK_MODE_TYPE TRACK_MODE_TYPE
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
DVD_STRUCTURE_FORMAT
Definition: ntddcdvd.h:108
DVD_KEY_TYPE
Definition: ntddcdvd.h:38
union _BLANK_MEDIA_USER_IN::@916 Byte1
struct _BLANK_MEDIA_USER_IN::@916::@917 Fields
union _CLOSE_TRK_SES_USER_IN::@924 Byte1
struct _CLOSE_TRK_SES_USER_IN::@924::@926 Fields
union _CLOSE_TRK_SES_USER_IN::@925 Byte2
DISC_STATUS_INFO_USER_OUT Status
Definition: cdrw_usr.h:630
struct _DISC_INFO_BLOCK_USER_OUT::@928::@930 Fields
LARGE_INTEGER MediaChangeTime
Definition: cdrw_usr.h:614
LONGLONG StartingOffset
Definition: cdrw_usr.h:1604
DVD_SESSION_ID SessionId
Definition: cdrw_usr.h:1569
DVD_KEY_TYPE KeyType
Definition: cdrw_usr.h:1570
LARGE_INTEGER TitleOffset
Definition: cdrw_usr.h:1574
union _DVD_READ_KEY_USER_IN::@948 Parameters
DVD_SESSION_ID SessionId
Definition: cdrw_usr.h:1549
LARGE_INTEGER BlockByteOffset
Definition: cdrw_usr.h:1547
DVD_STRUCTURE_FORMAT Format
Definition: cdrw_usr.h:1548
DVD_SESSION_ID SessionId
Definition: cdrw_usr.h:1562
struct _FORMAT_CDRW_PARAMETERS_USER_IN::@922::@923 Fields
UCHAR SimulatedWModes[4][16]
Definition: cdrw_usr.h:1462
struct _MediaTrackMap * TrackMap
Definition: cdrw_usr.h:1666
UCHAR AdditionalSenseCodeQualifier
Definition: cdrw_usr.h:1320
LARGE_INTEGER MediaChangeTime
Definition: cdrw_usr.h:1324
UCHAR IncludeUserData
Definition: cdrw_usr.h:1298
UCHAR ExpectedBlkType
Definition: cdrw_usr.h:1268
BOOLEAN UseMFS
Definition: cdrw_usr.h:1307
CHAR Ending_MSF[3]
Definition: cdrw_usr.h:1309
UCHAR SubChannelSelection
Definition: cdrw_usr.h:1302
CHAR Starting_MSF[3]
Definition: cdrw_usr.h:1308
struct _LL_READ_USER_IN::@946::@947 Fields
UCHAR IncludeSyncData
Definition: cdrw_usr.h:1300
USHORT NumOfBlocks
Definition: cdrw_usr.h:499
struct _LL_WRITE_USER_IN::@920::@921 Fields
MODE_PARAMETER_HEADER Header
Definition: cdrw_usr.h:839
struct _MODE_SENSE_USER_IN::@932::@933 Fields
MODE_PARAMETER_HEADER Header
Definition: cdrw_usr.h:833
struct _MODE_WRITE_PARAMS_PAGE_USER::@934::@939 Fields
union _MODE_WRITE_PARAMS_PAGE_USER::@937 Byte7
struct _MODE_WRITE_PARAMS_PAGE_USER::@938::@943::_SubHdrParams1 Params1
union _MODE_WRITE_PARAMS_PAGE_USER::@936 Byte4
union _MODE_WRITE_PARAMS_PAGE_USER::@938::@943 Params
union _MODE_WRITE_PARAMS_PAGE_USER::@934 Byte2
struct _MODE_WRITE_PARAMS_PAGE_USER::@938 SubHeader
union _MODE_WRITE_PARAMS_PAGE_USER::@935 Byte3
UCHAR TrackParam
Definition: cdrw_usr.h:1632
UCHAR DataParam
Definition: cdrw_usr.h:1633
ULONG TrackFPOffset
Definition: cdrw_usr.h:1645
ULONG FirstLba
Definition: cdrw_usr.h:1627
ULONG PacketSize
Definition: cdrw_usr.h:1630
ULONG PacketFPOffset
Definition: cdrw_usr.h:1646
LARGE_INTEGER DiskOffset
Definition: cdrw_usr.h:1332
TRACK_MODE_TYPE TrackMode
Definition: cdrw_usr.h:1334
struct _SET_STREAMING_USER_IN::@908::@909 Fields
union _SET_STREAMING_USER_IN::@908 Options
struct _SYNC_CACHE_USER_IN::@910::@911 Fields
union _SYNC_CACHE_USER_IN::@910 Byte1
UCHAR AdditionalSenseCodeQualifier
Definition: cdrw_usr.h:681
union _TRACK_INFO_BLOCK_USER_OUT::@912 TrackParam
union _TRACK_INFO_BLOCK_USER_OUT::@913 DataParam
struct _TRACK_INFO_BLOCK_USER_OUT::@912::@914 Fields
int64_t LONGLONG
Definition: typedefs.h:68
uint32_t ULONG
Definition: typedefs.h:59
EVENT_STAT_DEV_BUSY_BLOCK DeviceBusy
Definition: cdrw_usr.h:1539
EVENT_STAT_EXT_REQ_BLOCK ExternalReq
Definition: cdrw_usr.h:1537
EVENT_STAT_MEDIA_BLOCK MediaChange
Definition: cdrw_usr.h:1538
EVENT_STAT_PM_BLOCK PowerManagement
Definition: cdrw_usr.h:1536
EVENT_STAT_OPERATIONAL_BLOCK Operational
Definition: cdrw_usr.h:1535
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
unsigned char UCHAR
Definition: xmlstorage.h:181
char CHAR
Definition: xmlstorage.h:175