2002-11-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
[reactos.git] / reactos / include / ntos / cdrom.h
1 /* $Id: cdrom.h,v 1.4 2002/11/14 18:21:03 chorns Exp $
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 #define IOCTL_CDROM_READ_TOC CTL_CODE(FILE_DEVICE_CD_ROM, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS)
16 #define IOCTL_CDROM_GET_LAST_SESSION CTL_CODE(FILE_DEVICE_CD_ROM, 0x000E, METHOD_BUFFERED, FILE_READ_ACCESS)
17 #define IOCTL_CDROM_GET_DRIVE_GEOMETRY CTL_CODE(FILE_DEVICE_CD_ROM, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS)
18
19 #define MAXIMUM_NUMBER_TRACKS 100
20 #define MAXIMUM_CDROM_SIZE 804
21
22 typedef struct _TRACK_DATA {
23 UCHAR Reserved;
24 UCHAR Control : 4;
25 UCHAR Adr : 4;
26 UCHAR TrackNumber;
27 UCHAR Reserved1;
28 UCHAR Address[4];
29 } TRACK_DATA, *PTRACK_DATA;
30
31 typedef struct _CDROM_TOC {
32 UCHAR Length[2];
33 UCHAR FirstTrack;
34 UCHAR LastTrack;
35 TRACK_DATA TrackData[MAXIMUM_NUMBER_TRACKS];
36 } CDROM_TOC, *PCDROM_TOC;
37
38 #define CDROM_TOC_SIZE sizeof(CDROM_TOC)
39
40
41
42 #endif /* __INCLUDE_NTOS_CDROM_H */
43
44 /* EOF */