source: trunk/include/cdioctl.h@ 9969

Last change on this file since 9969 was 8579, checked in by sandervl, 23 years ago

added

File size: 2.7 KB
Line 
1//----------------------------------------------------------------------//
2// //
3// File: CDIOCTL.H //
4// //
5// (c) 2001 S&T Systemtechnik GmbH //
6// //
7// erzeugt: 03.03.01 R.Ihle //
8// //
9//----------------------------------------------------------------------//
10
11#ifndef __CDIOCTL_H
12#define __CDIOCTL_H
13
14
15// CDROM IOCTLs
16
17#ifndef IOCTL_CDROMDISK
18 #define IOCTL_CDROMDISK 0x80
19
20 #define CDROMDISK_RESETDRIVE 0x40
21 #define CDROMDISK_EJECTDISK 0x44
22 #define CDROMDISK_LOCKUNLOCKDOOR 0x46
23 #define CDROMDISK_SEEK 0x50
24 #define CDROMDISK_DEVICESTATUS 0x60
25 #define CDROMDISK_GETDRIVER 0x61
26 #define CDROMDISK_GETSECTORSIZE 0x63
27 #define CDROMDISK_GETHEADLOC 0x70
28 #define CDROMDISK_READLONG 0x72
29 #define CDROMDISK_GETVOLUMESIZE 0x78
30 #define CDROMDISK_GETUPC 0x79
31#endif
32
33#ifndef CDROMDISK_EXECMD
34 #define CDROMDISK_EXECMD 0x7a
35#endif
36
37
38// CDROM audio IOCTLs
39
40#ifndef IOCTL_CDROMAUDIO
41 #define IOCTL_CDROMAUDIO 0x81
42
43 #define CDROMAUDIO_SETCHANNELCTRL 0x40
44 #define CDROMAUDIO_PLAYAUDIO 0x50
45 #define CDROMAUDIO_STOPAUDIO 0x51
46 #define CDROMAUDIO_RESUMEAUDIO 0x52
47 #define CDROMAUDIO_GETCHANNEL 0x60
48 #define CDROMAUDIO_GETAUDIODISK 0x61
49 #define CDROMAUDIO_GETAUDIOTRACK 0x62
50 #define CDROMAUDIO_GETSUBCHANNELQ 0x63
51 #define CDROMAUDIO_GETAUDIOSTATUS 0x65
52#endif
53
54
55// CD-ROM$2 IOCTLs
56
57#ifndef IOCTL_CDROMDISK2
58 #define IOCTL_CDROMDISK2 0x82
59
60 #define CDROMDISK2_DRVINFO 0x60
61#endif
62
63#ifndef CDROMDISK2_FEATURES
64 #define CDROMDISK2_FEATURES 0x63
65#endif
66
67
68#pragma pack(1)
69
70
71
72/*
73 * CDROMDISK2_DRIVEINFO
74 *
75 * Parameter packet: none
76 * Data packet: DrvInfo structure
77 */
78
79struct DrvInfo
80{
81 USHORT usDrvCount; // number of drive letters
82 USHORT usFirstDrvNo; // first drive letter (0 = A, 1 = B ..)
83};
84
85
86/*
87 * CDROMDISK2_FEATURES
88 *
89 * Parameter packet: none
90 * Data packet: ULONG
91 */
92
93#define FEATURE_USB_SUPPORT 0x00000001L
94#define FEATURE_CDRW_SUPPORT 0x00000002L
95#define FEATURE_EXECMD_SUPPORT 0x00000004L
96
97
98
99
100/*
101 * CDROMDISK_EXECMD
102 *
103 * Parameter packet: ExecCmd structure
104 * Data packet: depends on the SCSI command. Length is defined
105 * by data_length field in the Parameter Packet.
106 *
107 * Returns: 02 - device not ready
108 * 13 - unsupported parameter
109 * 14 - device already in use
110 */
111
112struct ExecCmd
113{
114 ULONG ID_code; // 'CD01'
115 USHORT data_length; // length of the Data Packet
116 USHORT cmd_length; // length of the Command Buffer
117 USHORT flags; // flags
118 UCHAR cmd_buffer[16]; // Command Buffer for SCSI command
119};
120
121// flags
122#define EX_DIRECTION_IN 0x0001 // 0, if transfer data to device
123 // 1, if transfer data from device
124#define EX_PLAYING_CHK 0x0002 // 0, if don't check playing audio
125 // 1, if device plays audio return error
126
127#pragma pack()
128
129
130#endif
131
132
Note: See TracBrowser for help on using the repository browser.