Сейчас на форуме: tyns777 (+5 невидимых) |
eXeL@B —› Программирование —› Кто работал с жестким диском????? |
Посл.ответ | Сообщение |
|
Создано: 14 сентября 2007 12:32 · Личное сообщение · #1 у меня такая проблема!! открываю жесткий диск через CreateFile Потом читаю его ! вываливаеться выдает ошибку что я и ГДЕ НАКОСячил ! гляньте может ктото с таким работал! *hDevice = CreateFile(TEXT("\\.\C:"), // drive 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (*hDevice==INVALID_HANDLE_VALUE) { return(FALSE); } DWORD inBuffer,nBytesRead; BOOL bResult = ReadFile(*hDevice, &inBuffer, 4, &nBytesRead, NULL) ; CreateFile выполняеться успешно возвращаеться хендел все нормально! а вот при чьтении вываливаеться! |
|
Создано: 14 сентября 2007 14:34 · Поправил: pushick · Личное сообщение · #2 Ну и русский у вас товарищ. hFile = CreateFile(TEXT("file/disk/device name here to open"), // file to open
----- Security through obscurity is just an illusion |
|
Создано: 17 сентября 2007 16:37 · Личное сообщение · #3 pushick пишет: Ну и русский у вас товарищ. hFile = CreateFile(TEXT("file/disk/device name here to open"), // file to open GENERIC_READ, // open for reading FILE_SHARE_READ | FILE_SHARE_WRITE, // share for reading NULL, // default security OPEN_EXISTING, // existing file only FILE_ATTRIBUTE_NORMAL, // normal file NULL); // no attr. template bResult = ReadFile(hFile, &inBuffer, nBytesToRead, &nBytesRead, NULL) ; ты мне переписал копию мсднки!!! и нечего не добавил и не указал ошибки! а оказываеться весь прикол был тока в том что GENERIC_READ вторым параметром надо в ноль поставить и можно читать инфу с жесткого диска!! но все равно спасибо! |
|
Создано: 19 сентября 2007 14:52 · Поправил: pushick · Личное сообщение · #4 |
|
Создано: 19 сентября 2007 20:01 · Поправил: Vitek · Личное сообщение · #5 |
|
Создано: 20 сентября 2007 01:48 · Личное сообщение · #6 |
|
Создано: 20 сентября 2007 10:14 · Поправил: ViSoR · Личное сообщение · #7 |
|
Создано: 20 сентября 2007 11:31 · Личное сообщение · #8 ViSoR пишет: Флаг GENERIC_READ там обязательно должен присутствовать. +1. Без этого никак не может читаться. Есть такой трабл. Когда читаешь с основного тома, то не читается. Не открывается устройство, так и не разобрался почему... Вы не забывайте, что надо читать блоками, размер которых кратен размеру сектора. Мсдн глаголит: File access must be for numbers of bytes that are integer multiples of the volume's sector size. For example, if the sector size is 512 bytes, an application can request reads and writes of 512, 1024, or 2048 bytes, but not of 335, 981, or 7171 bytes. ----- Уважайте других и пишите грамотно. |
|
Создано: 20 сентября 2007 13:52 · Личное сообщение · #9 |
|
Создано: 21 сентября 2007 17:59 · Поправил: Vitek · Личное сообщение · #10 |
|
Создано: 21 сентября 2007 19:06 · Личное сообщение · #11 Сегодня понадобилось дампить хард. Использовал следующий код: HANDLE drive = ::CreateFile(
Двойные слэши (С++ не Delphi) и "?" в пути. Чтение стандартное: ReadFile(drive, buffer, bufferSize, &bytesReaded, NULL);
|
|
Создано: 29 сентября 2007 14:21 · Личное сообщение · #12 |
|
Создано: 29 сентября 2007 15:40 · Личное сообщение · #13 |
eXeL@B —› Программирование —› Кто работал с жестким диском????? |