Может здесь мне помогут? Создал аналогичную тему в разделе WinAPI: http://www.forum.vingrad.ru/index.php?showtopic=111529, послали сюда. Очень нужно получить низкоуровневый доступ к карточке SD на КПК под управлением Windows Mobile 2003. Необходимо читать и, возможно, писать данные по секторам. Здесь нашёл обсуждение этого вопроса: http://forum.sources.ru/index.php?showtopic=79757, но ничего для себя не прояснил. Ни с помощью ReadFile, ни с помощью DeviceIOControl ничего прочитать не получается. Обе функции возвращают true, но ничего не читают. | Код |
bool ReadData() { PBYTE buff = new BYTE[NUMBER_OF_SECTORS * 512]; BOOL result; DWORD bytesread = 0;
HANDLE hDevice; hDevice = CreateFile( _T( "DSK1:" ), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hDevice == INVALID_HANDLE_VALUE) { return false; }
SetFilePointer( hDevice, 512*STARTING_LOGICAL_SECTOR, 0, FILE_BEGIN); result = ReadFile( hDevice, buff, NUMBER_OF_SECTORS * 512, &bytesread, NULL);
//result = DeviceIoControl( hDevice, IOCTL_DISK_READ, buff, NUMBER_OF_SECTORS * 512, NULL, 0, &bytesread, NULL );
if(!result) { DWORD error = GetLastError(); CloseHandle( hDevice ); delete [] buff; return false; }
// Здесь что-то сделать с buff.
CloseHandle( hDevice ); delete [] buff; return true; }
|
|