Аппаратное обеспечение персонального компьютера



           

Программа CDINFO - часть 2


track 15: location: 4130306, info: 01 * audio, copy prohibited *

Status of CD Drive I: 00000390

VolumeSize: 278505 blocks

Tracks: (1 - 4) 13598

track 1: location: 512, info: 41 * digital, copy prohibited *

track 2: location: 3282733, info: 01 * audio, copy prohibited *

track 3: location: 3608079, info: 01 * audio, copy prohibited *

track 4: location: 3801921, info: 01 * audio, copy prohibited *

Заметим, что в среде виртуальной машины операционной системы Microsoft Windows NT эта программа показывает неверные результаты. Скорее всего это происходит из-за неправильной работы эмулятора расширения MSCDEX.

Исходный текст программы CDINFO вы найдете в листинге 9.1.

Листинг 9.1. Файл cdinfo\cdinfo.с

// =====================================================

// Прсмотр различной информации об устройствах

// чтения CD-ROM и компакт-дисках

// с помощью интерфейса MSCDEX и обращением к драйверу

// устройства чтения CD-ROM

//

// (C) Фролов А.В, 1997

//

// E-mail: frolov@glas.apc.org

// WWW:    http://www.glasnet.ru/~frolov

//            или

//         http://www.dials.ccas.ru/frolov

// =====================================================

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <dos.h>

#include <memory.h>

 

typedef unsigned char BYTE;

typedef unsigned int  WORD;

typedef unsigned long DWORD;

// Необходимо для обеспечения выравнивания

// полей структур на границу байта

#pragma pack(1)

// Заголовок запроса для обращения к драйверу

typedef struct _ReqHdr

{

  BYTE bSize;

  BYTE bSubUnit;

  BYTE bCmd;

  WORD wStatus;

  BYTE bReserved[8];   

} ReqHdr;

 

// Запрос IOCTL Input

typedef struct _IOCTL_Input

{            

  ReqHdr rh;

  BYTE   bMediaDescriptor;

  DWORD  lpTransferAddress;

  WORD   wDataSize;

  WORD   wStartSector;

  DWORD  lpVolID;

} IOCTL_Input;      

// Запрос на получение информации о компакт-диске

typedef struct _DiskInfo

{

  BYTE bControl;




Содержание  Назад  Вперед