к компьютеру автора. Первая слева
Первая слева цифра в листинге — adapter ID, следующая за ней — target ID.:
Листинг 2.1.4.13. Устройства, подключенные к компьютеру автора. Первая слева цифра –— adapter ID, следующая за ней –— target ID.
0.0 <-- ELBY DVD-ROM 1.0
1.0 <-- IBM-DTLA-307015 TX2O
1.1 <-- PHILIPS CDRW2412A P1.55VO1214DM10574
2.0 <-- ST380011A 3.06
2.1 <-- TEAC CD-W552E 1.09
3.0 <-- AXV CD/DVD-ROM 2.2a
3.1 <-- AXV CD/DVD-ROM 2.2a
3.2 <-- AXV CD/DVD-ROM 2.2a
Другое немаловажное достоинство ASPI-интерфейса по сравнению с SPTI состоит в поддержке асинхронного режима обработки запросов. Отдав запрос на чтение такого-то количество секторов, вы можете продолжить выполнение своей программы, не дожидаясь, пока процесс чтения секторов полностью не завершится. Конечно, для достижения аналогичного результата при использовании интерфейса SPTI достаточно всего лишь создать еще один поток, но… это уже не так элегантно и красиво. Демонстрационный пример программы, осуществляющей "сырое" чтение сектора с CD-диска показан в листинге 1.4.14.
Листинг 2.1.4.141414. [\etc\RAW.CD.READ\aspi32.raw.c]. Демонстрационный Пример программы, осуществляющийосуществляющей "сырое" чтение сектора с CD-диска
#include "scsidefs.h"
#include "wnaspi32.h"
void ASPI32Post (LPVOID);
#define F_NAME "raw.sector.dat"
/* ASPI SRB packet length */
#define ASPI_SRB_LEN 0x100
#define RAW_READ_CM 0xBE
#define WHATS_READ 0xF8 // Sync & All Headers & User Data
// + EDC/ECC
#define PACKET_LEN 2352
//#define WHATS_READ 0x10 // User Data
//#define PACKET_LEN 2048
#define MY_CMD RAW_READ_CMD
HANDLE hEvent;
//-[DWORD READ_RAW_SECTOR_FROM_CD]---------------------------------------------
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий