· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ELECTRONICS —› Работа с FDD.

Посл.отвђт Сообщенiе


Дата: Апр 12, 2004 10:54:21

Здравствуйте!
Сейчас занимаюсь флоппиками и различными операциями с
ними. Возникли сразу несколько волпросов по "железным"
темам. Подскажите, пожалуйста, решения этих задачек.
Никогда с железом дела не имел, так что вопросы могут
быть более чем дубовыми ;-)
(Всё, что я пишу должно работать на Windows 2000)
1) Как определить колличество свободного
места и занятого пространства на дискете (в кб)?
Я заюзал GetDiskFreeSpace, но не понял, как получить
размер в килобайтах.
2) Можно ли получить марку дисковода и другую информацию
о дисководе и как это реализовать? (или для этого нужно
писать драйвер?). Информация: имя привода, какие для него
дискеты он используются. (788 | 1, 44 | ...) ну и ещё
что-нибудь интересное.
3) Как определить наличие сбойных кластеров (об этом
вообще не подозреваю ;) на дискете?
4) Как создать образ дискеты в виде FDI? (Может быть есть
библиотека или сорсы???) и как его туды записать.
Заранее спасибо!
1990


Дата: Апр 12, 2004 11:54:56

Насчет 788, 1.44... Шли IOCTL_STORAGE_GET_MEDIA_TYPES девайсу. У мя был простенький пример. Найду - кину.


Дата: Апр 12, 2004 13:17:15

Four-F
Буду ждать. ;) А то никаких исходников вообще нет. А может быть есть что-то ещё?


Дата: Апр 12, 2004 14:29:02

Ответы на первый и четвёртый вопросы нашёл. Но теперь появился ещё один вопрос:
Как можно узнать имя производителя дискеты?


Дата: Апр 12, 2004 15:05:52

[ 1990: Я заюзал GetDiskFreeSpace, но не понял, как получить размер в килобайтах. ]
local dwSectorsPerCluster:DWORD
local dwBytesPerSector:DWORD
local dwNumberOfFreeClusters:DWORD
local dwTotalNumberOfClusters:DWORD

    invoke GetDiskFreeSpace,  $CTA0("A:"), addr dwSectorsPerCluster, addr dwBytesPerSector, \
            addr dwNumberOfFreeClusters, addr dwTotalNumberOfClusters   

mov eax, dwNumberOfFreeClusters
mov ecx, dwSectorsPerCluster
mul ecx
mov ecx, dwBytesPerSector
mul ecx
; eax = free space



[ 1990: Можно ли получить марку дисковода и другую информацию
о дисководе и как это реализовать?
]

А флоп вообще-то какой-нить ROM имеет?


[ 1990: Как определить наличие сбойных кластеров ]

Ищи на sysinternals.com статью "Inside Disk Defragmenting". Насчет сбойных кластеров не помню, но карту распределения кластеров получишь. Там и сорс был. Нужен будет IFS KIT.


К исходнику я ещё инклуды кое-какие приаттачил, т.к. не помню есть ли они в KmdKit.

1479110098__flop.rar


Дата: Апр 12, 2004 17:31:45 · Поправил: 1990

Four-F
Большое спасибо!!! Статью буду искать.

А флоп вообще-то какой-нить ROM имеет?
Я не понял вопроса - это о производителе?


Дата: Апр 12, 2004 17:47:48

А флоп вообще-то какой-нить ROM имеет?
Я не понял вопроса - это о производителе?

должна же информация о производителе где-то храниться


Дата: Апр 12, 2004 19:03:02

Наверное должна. ;) А как быть с маркой дискеты?


Дата: Апр 12, 2004 19:22:06

Дорогой друг 1990, скажи мне для кого и чего ведется раздел ИСХОДНИКИ? Когда лениться перестанем?
http://wasm.ru/src/6/drive_info.zip


Дата: Апр 12, 2004 21:24:58 · Поправил: 1990

KiNDeR
Скажу - для меня ;). Я ещё давно скачал этот исходник. Теперь использую, но всех ответов он не даёт ... Спасибо однако за информацию! А лень - друг человека! ;)


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.073