migrate substitution keywords to SVN
[reactos.git] / reactos / include / ntos / cdrom.h
1 /* $Id$
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: include/ntos/cdrom.h
6 * PURPOSE: CD-ROM related definitions used by all the parts of the system
7 * PROGRAMMER: Eric Kohl
8 * UPDATE HISTORY:
9 * 10/04/2002: Created
10 */
11
12 #ifndef __INCLUDE_NTOS_CDROM_H
13 #define __INCLUDE_NTOS_CDROM_H
14
15
16 #define IOCTL_CDROM_BASE FILE_DEVICE_CD_ROM
17
18 #define IOCTL_CDROM_READ_TOC CTL_CODE(IOCTL_CDROM_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS)
19 #define IOCTL_CDROM_GET_LAST_SESSION CTL_CODE(IOCTL_CDROM_BASE, 0x000E, METHOD_BUFFERED, FILE_READ_ACCESS)
20 #define IOCTL_CDROM_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_CDROM_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS)
21
22 #define IOCTL_CDROM_CHECK_VERIFY CTL_CODE(IOCTL_CDROM_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
23 #define IOCTL_CDROM_MEDIA_REMOVAL CTL_CODE(IOCTL_CDROM_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
24 #define IOCTL_CDROM_EJECT_MEDIA CTL_CODE(IOCTL_CDROM_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
25 #define IOCTL_CDROM_LOAD_MEDIA CTL_CODE(IOCTL_CDROM_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
26 #define IOCTL_CDROM_RESERVE CTL_CODE(IOCTL_CDROM_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
27 #define IOCTL_CDROM_RELEASE CTL_CODE(IOCTL_CDROM_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
28 #define IOCTL_CDROM_FIND_NEW_DEVICES CTL_CODE(IOCTL_CDROM_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
29
30
31 #define MAXIMUM_NUMBER_TRACKS 100
32 #define MAXIMUM_CDROM_SIZE 804
33
34 typedef struct _TRACK_DATA
35 {
36 UCHAR Reserved;
37 UCHAR Control : 4;
38 UCHAR Adr : 4;
39 UCHAR TrackNumber;
40 UCHAR Reserved1;
41 UCHAR Address[4];
42 } TRACK_DATA, *PTRACK_DATA;
43
44 typedef struct _CDROM_TOC
45 {
46 UCHAR Length[2];
47 UCHAR FirstTrack;
48 UCHAR LastTrack;
49 TRACK_DATA TrackData[MAXIMUM_NUMBER_TRACKS];
50 } CDROM_TOC, *PCDROM_TOC;
51
52 #define CDROM_TOC_SIZE sizeof(CDROM_TOC)
53
54 #endif /* __INCLUDE_NTOS_CDROM_H */
55
56 /* EOF */