update for HEAD-2003091401
[reactos.git] / 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 <ekohl@rz-online.de>
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
24
25 #define MAXIMUM_NUMBER_TRACKS           100
26 #define MAXIMUM_CDROM_SIZE              804
27
28 typedef struct _TRACK_DATA
29 {
30   UCHAR  Reserved;
31   UCHAR  Control : 4;
32   UCHAR  Adr : 4;
33   UCHAR  TrackNumber;
34   UCHAR  Reserved1;
35   UCHAR  Address[4];
36 } TRACK_DATA, *PTRACK_DATA;
37
38 typedef struct _CDROM_TOC
39 {
40   UCHAR  Length[2];
41   UCHAR  FirstTrack;
42   UCHAR  LastTrack;
43   TRACK_DATA  TrackData[MAXIMUM_NUMBER_TRACKS];
44 } CDROM_TOC, *PCDROM_TOC;
45
46 #define CDROM_TOC_SIZE sizeof(CDROM_TOC)
47
48 #endif /* __INCLUDE_NTOS_CDROM_H */
49
50 /* EOF */