Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 04.02.2015
Сообщений: 20

SetFilePointer не выставляется корректно

20.05.2016, 10:33. Показов 883. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане! Я разрабатываю C# интерфейс для обработки данных с флеш карты. Начну с начала. У меня есть устройство, которое записывает данные на карты памяти. У него есть два режима работы. Через интерфейс пользователь задает режим работы устройства, далее устройство пишет на карту БЕЗ файловой системы, просто физически пишет в память. Так вот, интерфейс должен записать в первый физический сектор карты. Но если на карте есть Partition, читай раздел, созданный виндами, SetFilePointer по какой-то причине начинает ориентироваться на начало раздела, а не на начало карты. Т.е. я выставляю нулевое смещение, а запись реально происходит в 8192 сектор. Может быть я неправильно использую функцию? Или может быть в принципе неправильно выбрал функции для работы? Вот пример, как я работаю с картой:
C#
1
2
3
4
5
6
7
8
9
10
11
private void Read()
{ 
           IntPtr Hdisk = API.CreateFileA(Disk_Address, API.FileAccess.GENERIC_READ, 0, (System.IntPtr)0,    (System.IO.FileMode)API.FileAccess.OPEN_EXISTING, 0, (System.IntPtr)0);
            
            IntPtr HFile = API.CreateFileA(Tempomary_File_Address, API.FileAccess.GENERIC_WRITE, 0, (System.IntPtr)0, (System.IO.FileMode)API.FileAccess.CREATE_ALWAYS, 0, (System.IntPtr)0); 
 
            System.Threading.NativeOverlapped d = new System.Threading.NativeOverlapped();
 
            int c = 0;
           API.SetFilePointer(Hdisk, 0, out c, 0);
}
Помогите пожалуйста разобраться, заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.05.2016, 10:33
Ответы с готовыми решениями:

Почему не работает SetFilePointer
Итак код: int Error, err_SetFilePointer; if (SetFilePointer(Device, offset, NULL, FILE_BEGIN) != 0xFFFFFFFF) { if (FALSE ==...

setfilepointer возращает 131 ошибку
открываю файл для чтения и записи. hFile = CreateFileW(L"test.vhd", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,...

Как надёжно отловить ошибку в SetFilePointer?
А если младшая часть новой позиции совпадёт с INVALID_SET_FILE_POINTER?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.05.2016, 10:33
Помогаю со студенческими работами здесь

SetFilePointer в Kernel
Коллеги, приветствую! Подскажите, как после открытия файла, переместить указатель на его конец, чтобы начинать писать с конца...

Перемещение указателя позиции в файле SetFilePointer
Здравствуйте! Помогите, пожалуйста, разобраться с функцией SetFilePointer. Позиция в файле перемещается куда-то не туда... ...

Не выставляется разрешение
После установки Windows 7 разрешение стоит 800*600 и изменить нельзя. Но если удалить драйверы от видеокарты, то всё нормально, но после...

выставляется, не ip провайдера
Здравствуйте. не уверен, что угадал с темой, но что-то даже не знаю куда писать. столкнулся с такой проблемой, из всех приложений...

Не выставляется загрузчик в биосе
Здравствуйте! Ребята подскажите по такой проблеме. Материнская плата Intel, биос без версии написано в верху System Setup. Захочу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru