Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Проблемка с дампом оптических дисков |

23.06.2009, 17:58
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Проблемка с дампом оптических дисков
С обычными сд все ОК а с двд копирование может оборватся на средине
Код:
#include <windows.h>
#include <stdlib.h>
#include <iostream>
#include <conio.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hh=GetProcessHeap();
ULARGE_INTEGER TNOFB;
DWORD rb,wb;unsigned long curpos=0;
char *buf=(char*)HeapAlloc(hh,HEAP_ZERO_MEMORY,(1024*1024)*10);
char dsk[35],dd[5],buff[1024];
strcpy(dsk,"\\\\.\\");
cout<<"DISK name:"<<endl;
cin>>dd;strcat(dsk,dd);
HANDLE d=CreateFile(dsk,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_FLAG_NO_BUFFERING,NULL);
if(d==INVALID_HANDLE_VALUE){cout<<dsk<<" oups :("<<endl;goto End;}
HANDLE f=CreateFile("D:\\dump.iso",GENERIC_READ | GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_FLAG_RANDOM_ACCESS,NULL);
GetDiskFreeSpaceEx(dd,0,&TNOFB,0);
wsprintf(buff,"%I64u",TNOFB.QuadPart);
cout<<"ds:"<<buff;
for(;;)
{
ReadFile(d,buf,(1024*1024)*10,&rb,NULL);
system("cls");
if(rb==0){break;}
curpos=curpos+rb;
cout<<curpos<<endl<<"FROM:"<<endl<<buff;
SetFilePointer(d,curpos,NULL,FILE_BEGIN);
WriteFile(f,buf,rb,&wb,0);
}
CloseHandle(d);
CloseHandle(f);
cout<<"DONE";
End:
getch();
HeapFree(hh,0,buf);
return 0;
}
Почему так?Какая то ошибка чтения?
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|