Changeset 6052 for trunk/include


Ignore:
Timestamp:
Jun 20, 2001, 10:51:12 PM (24 years ago)
Author:
sandervl
Message:

header update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/win/winioctl.h

    r6028 r6052  
    154154
    155155
    156 //Storage/disk IOCTLs
     156//Storage IOCTLs
    157157
    158158typedef enum _MEDIA_TYPE {
     
    170170    RemovableMedia,
    171171    FixedMedia,
    172     F3_120M_512
     172    F3_120M_512,
     173    F3_640_512,
     174    F5_640_512,
     175    F5_720_512,
     176    F3_1Pt2_512,
     177    F3_1Pt23_1024,
     178    F5_1Pt23_1024,
     179    F3_128Mb_512,
     180    F3_230Mb_512,
     181    F8_256_128
    173182} MEDIA_TYPE, *PMEDIA_TYPE;
    174183
     
    196205#define IOCTL_STORAGE_RESET_DEVICE       CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
    197206#define IOCTL_STORAGE_GET_DEVICE_NUMBER  CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
     207
     208
     209
     210//CDROM IOCTLs
     211
     212#define IOCTL_CDROM_BASE                 FILE_DEVICE_CD_ROM
     213
     214#define IOCTL_CDROM_UNLOAD_DRIVER        CTL_CODE(IOCTL_CDROM_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS)
     215#define IOCTL_CDROM_READ_TOC             CTL_CODE(IOCTL_CDROM_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS)
     216#define IOCTL_CDROM_GET_CONTROL          CTL_CODE(IOCTL_CDROM_BASE, 0x000D, METHOD_BUFFERED, FILE_READ_ACCESS)
     217#define IOCTL_CDROM_PLAY_AUDIO_MSF       CTL_CODE(IOCTL_CDROM_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS)
     218#define IOCTL_CDROM_SEEK_AUDIO_MSF       CTL_CODE(IOCTL_CDROM_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
     219#define IOCTL_CDROM_STOP_AUDIO           CTL_CODE(IOCTL_CDROM_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS)
     220#define IOCTL_CDROM_PAUSE_AUDIO          CTL_CODE(IOCTL_CDROM_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
     221#define IOCTL_CDROM_RESUME_AUDIO         CTL_CODE(IOCTL_CDROM_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS)
     222#define IOCTL_CDROM_GET_VOLUME           CTL_CODE(IOCTL_CDROM_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS)
     223#define IOCTL_CDROM_SET_VOLUME           CTL_CODE(IOCTL_CDROM_BASE, 0x000A, METHOD_BUFFERED, FILE_READ_ACCESS)
     224#define IOCTL_CDROM_READ_Q_CHANNEL       CTL_CODE(IOCTL_CDROM_BASE, 0x000B, METHOD_BUFFERED, FILE_READ_ACCESS)
     225#define IOCTL_CDROM_GET_LAST_SESSION     CTL_CODE(IOCTL_CDROM_BASE, 0x000E, METHOD_BUFFERED, FILE_READ_ACCESS)
     226#define IOCTL_CDROM_RAW_READ             CTL_CODE(IOCTL_CDROM_BASE, 0x000F, METHOD_OUT_DIRECT,  FILE_READ_ACCESS)
     227#define IOCTL_CDROM_DISK_TYPE            CTL_CODE(IOCTL_CDROM_BASE, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS)
     228#define IOCTL_CDROM_GET_DRIVE_GEOMETRY   CTL_CODE(IOCTL_CDROM_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS)
     229#define IOCTL_CDROM_CHECK_VERIFY         CTL_CODE(IOCTL_CDROM_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
     230#define IOCTL_CDROM_MEDIA_REMOVAL        CTL_CODE(IOCTL_CDROM_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
     231#define IOCTL_CDROM_EJECT_MEDIA          CTL_CODE(IOCTL_CDROM_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
     232#define IOCTL_CDROM_LOAD_MEDIA           CTL_CODE(IOCTL_CDROM_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
     233#define IOCTL_CDROM_RESERVE              CTL_CODE(IOCTL_CDROM_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
     234#define IOCTL_CDROM_RELEASE              CTL_CODE(IOCTL_CDROM_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
     235#define IOCTL_CDROM_FIND_NEW_DEVICES     CTL_CODE(IOCTL_CDROM_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
     236#define IOCTL_CDROM_SIMBAD               CTL_CODE(IOCTL_CDROM_BASE, 0x1003, METHOD_BUFFERED, FILE_READ_ACCESS)
     237
     238#define MAXIMUM_NUMBER_TRACKS 100
     239#define MAXIMUM_CDROM_SIZE 804
     240
     241typedef struct _TRACK_DATA {
     242    UCHAR Reserved;
     243    UCHAR Control : 4;
     244    UCHAR Adr : 4;
     245    UCHAR TrackNumber;
     246    UCHAR Reserved1;
     247    UCHAR Address[4];
     248} TRACK_DATA, *PTRACK_DATA;
     249
     250typedef struct _CDROM_TOC {
     251    UCHAR Length[2];
     252    UCHAR FirstTrack;
     253    UCHAR LastTrack;
     254    TRACK_DATA TrackData[MAXIMUM_NUMBER_TRACKS];
     255} CDROM_TOC, *PCDROM_TOC;
     256
     257#define CDROM_TOC_SIZE sizeof(CDROM_TOC)
     258
     259typedef struct _CDROM_PLAY_AUDIO_MSF {
     260    UCHAR StartingM;
     261    UCHAR StartingS;
     262    UCHAR StartingF;
     263    UCHAR EndingM;
     264    UCHAR EndingS;
     265    UCHAR EndingF;
     266} CDROM_PLAY_AUDIO_MSF, *PCDROM_PLAY_AUDIO_MSF;
     267
     268typedef struct _CDROM_SEEK_AUDIO_MSF {
     269    UCHAR M;
     270    UCHAR S;
     271    UCHAR F;
     272} CDROM_SEEK_AUDIO_MSF, *PCDROM_SEEK_AUDIO_MSF;
     273
     274typedef struct _CDROM_DISK_DATA {
     275    ULONG DiskData;
     276} CDROM_DISK_DATA, *PCDROM_DISK_DATA;
     277
     278#define CDROM_DISK_AUDIO_TRACK      (0x00000001)
     279#define CDROM_DISK_DATA_TRACK       (0x00000002)
     280
     281
     282#define IOCTL_CDROM_SUB_Q_CHANNEL    0x00
     283#define IOCTL_CDROM_CURRENT_POSITION 0x01
     284#define IOCTL_CDROM_MEDIA_CATALOG    0x02
     285#define IOCTL_CDROM_TRACK_ISRC       0x03
     286
     287typedef struct _CDROM_SUB_Q_DATA_FORMAT {
     288    UCHAR Format;
     289    UCHAR Track;
     290} CDROM_SUB_Q_DATA_FORMAT, *PCDROM_SUB_Q_DATA_FORMAT;
     291
     292
     293typedef struct _SUB_Q_HEADER {
     294    UCHAR Reserved;
     295    UCHAR AudioStatus;
     296    UCHAR DataLength[2];
     297} SUB_Q_HEADER, *PSUB_Q_HEADER;
     298
     299typedef struct _SUB_Q_CURRENT_POSITION {
     300    SUB_Q_HEADER Header;
     301    UCHAR FormatCode;
     302    UCHAR Control : 4;
     303    UCHAR ADR : 4;
     304    UCHAR TrackNumber;
     305    UCHAR IndexNumber;
     306    UCHAR AbsoluteAddress[4];
     307    UCHAR TrackRelativeAddress[4];
     308} SUB_Q_CURRENT_POSITION, *PSUB_Q_CURRENT_POSITION;
     309
     310typedef struct _SUB_Q_MEDIA_CATALOG_NUMBER {
     311    SUB_Q_HEADER Header;
     312    UCHAR FormatCode;
     313    UCHAR Reserved[3];
     314    UCHAR Reserved1 : 7;
     315    UCHAR Mcval : 1;
     316    UCHAR MediaCatalog[15];
     317} SUB_Q_MEDIA_CATALOG_NUMBER, *PSUB_Q_MEDIA_CATALOG_NUMBER;
     318
     319typedef struct _SUB_Q_TRACK_ISRC {
     320    SUB_Q_HEADER Header;
     321    UCHAR FormatCode;
     322    UCHAR Reserved0;
     323    UCHAR Track;
     324    UCHAR Reserved1;
     325    UCHAR Reserved2 : 7;
     326    UCHAR Tcval : 1;
     327    UCHAR TrackIsrc[15];
     328} SUB_Q_TRACK_ISRC, *PSUB_Q_TRACK_ISRC;
     329
     330typedef union _SUB_Q_CHANNEL_DATA {
     331    SUB_Q_CURRENT_POSITION CurrentPosition;
     332    SUB_Q_MEDIA_CATALOG_NUMBER MediaCatalog;
     333    SUB_Q_TRACK_ISRC TrackIsrc;
     334} SUB_Q_CHANNEL_DATA, *PSUB_Q_CHANNEL_DATA;
     335
     336#define AUDIO_STATUS_NOT_SUPPORTED  0x00
     337#define AUDIO_STATUS_IN_PROGRESS    0x11
     338#define AUDIO_STATUS_PAUSED         0x12
     339#define AUDIO_STATUS_PLAY_COMPLETE  0x13
     340#define AUDIO_STATUS_PLAY_ERROR     0x14
     341#define AUDIO_STATUS_NO_STATUS      0x15
     342
     343#define ADR_NO_MODE_INFORMATION     0x0
     344#define ADR_ENCODES_CURRENT_POSITION 0x1
     345#define ADR_ENCODES_MEDIA_CATALOG   0x2
     346#define ADR_ENCODES_ISRC            0x3
     347
     348#define AUDIO_WITH_PREEMPHASIS      0x1
     349#define DIGITAL_COPY_PERMITTED      0x2
     350#define AUDIO_DATA_TRACK            0x4
     351#define TWO_FOUR_CHANNEL_AUDIO      0x8
     352
     353typedef struct _CDROM_AUDIO_CONTROL {
     354    UCHAR LbaFormat;
     355    USHORT LogicalBlocksPerSecond;
     356} CDROM_AUDIO_CONTROL, *PCDROM_AUDIO_CONTROL;
     357
     358typedef struct _VOLUME_CONTROL {
     359    UCHAR PortVolume[4];
     360} VOLUME_CONTROL, *PVOLUME_CONTROL;
     361
     362typedef enum _TRACK_MODE_TYPE {
     363    YellowMode2,
     364    XAForm2,
     365    CDDA
     366} TRACK_MODE_TYPE, *PTRACK_MODE_TYPE;
     367
     368typedef struct _RAW_READ_INFO {
     369    LARGE_INTEGER DiskOffset;
     370    ULONG    SectorCount;
     371    TRACK_MODE_TYPE TrackMode;
     372} RAW_READ_INFO, *PRAW_READ_INFO;
     373
     374//Disk IOCTLs
    198375
    199376#define IOCTL_DISK_BASE                 FILE_DEVICE_DISK
Note: See TracChangeset for help on using the changeset viewer.