Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как получить доступ к диску USB Card Reader ( он как диск)  (Прочитано 8845 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Alexei Govorukhin
Гость
« : 09-09-2003 11:07 » 

Здравствуйте всем.
Подскажите, пожалуйста, как получить доступ к Флэшкарте в УСБ ридере, чтобы можно было писать прямо в секторы (там своя ФАТ система). Этот ридер видется как диск в системе. CreateFile с ним не хочет работать. Говорит - что "неверный парамeтр". И все на этом.
Или подскажите, в каком направдении копать в справочниках (в MSDN например)?
Заранее спасибо.
Алексей.
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #1 : 09-09-2003 12:05 » 

Я встречал USB диски, которые было невозможно отформатировать стандартными виндовыми утилитами, вылетали с ошибками. Твой наверно из этой серии. Приведи код, которым ты пытаешься писать в сектора.
Записан
Alexei Govorukhin
Гость
« Ответ #2 : 09-09-2003 12:18 » 

Sorry za latinizu - na rabote netu russkich bukv.
Woobscheto - eto Compact Flash karta v USB Reader'e.
Ona viditsya v Windows kak disk (smennyi). Normal'nye kartochki chitayuts'a i pishuts'a s pomosch'yu etogo reader'a i Windows'skich sredstv. Na moei karte u menya svoi FAT (dlya moego mp3 player'a), sootvetstvenno - otdel'nyi soft dlya pisaniya v kartu nado delat'. Ya pytayus' otkryt' kartu cheres CreateFile. Ona otkryvaetsya.
Pri popytke chteniya is otkrytogo faila (cheres poluchennyi HANDLE) ReadFile'om vosvraschaetsya oshibka "Nevernyi parametr".

 hDrive=CreateFile("\\\\.\\H:",GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);
...  
 fRes = ReadFile(hDrive,   // handle of file to read
                         Buffer,   // address of buffer that receives data  
                         1,   // number of bytes to read
                         &NumberOfBytesRead,   // address of number of bytes read
                         NULL    // address of structure for data
                        );
zdes' fRes == FALSE;
Vot v principe i vse.
A po idee eta schema dolzhna rabotat' ili net?
Esli da - to ya poprobuyu esche pokovyrat' ee.
Записан
Alexei Govorukhin
Гость
« Ответ #3 : 09-09-2003 20:15 » 

Вот. Теперь она вроде читается. Но есть проблема с позиционированием.
SetFilePointer( hDrive,   // handle of file
                      125L,   // number of bytes to move file pointer
                      (LONG *)&dwCardSizeHigh,   //
                      (DWORD)FILE_BEGIN   // how to move
                    );
не рабоает. Возвращает результатом 0хFFFFFFFF.
Так как же мне спозиционироваться то на 128 мегабайтовой флэшке?
Каждый раз перечитывать все 128 метров - как-то муторно.
Есть у кого нить какие нить идеи по этому поводу?
ЗЫ: На обычных дисках эта функция работает, что самое интересное. Но только в перед. Назад с конца файла она не хочет - говорит - параметр неверный.
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #4 : 10-09-2003 06:27 » 

Сначала вот тут почитай.
https://forum.shelek.ru/index.php/topic,430.0.html

CreateFile вызывай с флагом FILE_FLAG_NO_BUFFERING и посекторно читай, то есть устанавливай смещение кратным размеру сектора.
Записан
Alexei Govorukhin
Гость
« Ответ #5 : 10-09-2003 09:30 » 

Ok. Poglyazhu. No poposzhe, Kak s raboty domo' priidu.
No voobsche tam narod pro fisicheskie diski govorit. A u menya to _USB_ drive.
Mozhet tut byt' problema???
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines