1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| char Fn[8] = { '\\', '\\', '.', '\\', 'E', ':', '\0' };
HANDLE hCD;
DWORD Dummy;
RAW_READ_INFO ReadInfo;
unsigned char pBuf[2352] = "";
DWORD dwError=0;
DWORD dwBytesRet = 0;
hCD = CreateFile( Fn, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, 0, NULL );
if ( !DeviceIoControl( hCD, IOCTL_STORAGE_CHECK_VERIFY,
NULL,
0,
NULL,
0,
&Dummy,
NULL) )
{
MessageBox(NULL,"Drive E:\\ isn't accessible",NULL,MB_OK);
}else{
ReadInfo.TrackMode = XAForm2;
ReadInfo.SectorCount = 1;
ReadInfo.DiskOffset.QuadPart = 0*2048; // 2048 est obligatoire quelquesoit le format
if ( !DeviceIoControl( hCD,
IOCTL_CDROM_RAW_READ,
&ReadInfo,
sizeof(ReadInfo),
&pBuf,
2352, // 2352 donne erreur 1 (incorrect function), 2048 donne erreur 87 (invalid parameter)
&Dummy,
NULL ) )
{
dwError = GetLastError();
}else{
}
} |
Partager