![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
изменение размера сектора
Fabo © (2004-09-01 13:36:00)Как можно длину какого-нибудь сектора жесткого диска менять с 512 байтов на другую?
Shiza (2004-09-22 10:25:00) [1]И тишина... :)
Shiza (2004-09-20 10:52:00) [2]>Мне это неинтересно и пользы от этого я не вижу.
Если не интересно, зачем надо было в форум заходить? Сказать: "Я не могу, значит и вы не сумеете."?
Для большинства программистов, которые используют Дельфи, почему-то вопросы низкоуровневого программирования кажутся какими-то запретными. В форумах не обсуждать! С БИОСом работать нельзя, с диском напрямую - ни-ни! А если один программист напишет программу на Дельфи, которая читает Linux-разделы, то проэто никто как-будто и не слышал... Дальше WinAPI не пускают! "Не ходите дети в Африку гулять" (с) :)
>Тут Алекс Коншин спрашивал: а зачем ?
Я могу ошибаться, но по-моему в форум в осовном заходят чтобы задать вопрос, и получить ответ, а не для того, чтобы у них спросили: "А зачем?". Обсуждать давайте как сделать, а не то, зачем это сделать... Если ответ на вопрос не знаете - не отвечайте... Есть предположения как сделать - милости просим :)
Alex Konshin (2004-09-18 07:07:00) [3]Shiza (17.09.04 10:41) [63]
>Флаг тебе в руки.
Не груби.
Это кто грубит?
Тебе ответили: тебе нужно - ты и экспериментируй. Мне это неинтересно и пользы от этого я не вижу. Если объяснишь зачем это может быть нужно людям, то тогда и посмотрим, стоит ли заморачиваться.
В регистры IDE под NT ты точно не попишешь. По крайне мере без хакерских штучек.
И на SCSI будут проблемы: ASPI есть не везде и не всегда. MS его не поддерживает, Adaptec свой ASPI убрал, а потом и сам исчез. Другие производители тоже далеко не всегда драйвер ASPI предоставляют. Можно работать через SPTI, но там нужны права админа.
Игорь Шевченко (2004-09-17 17:38:00) [4]
> Вы знаете, Игорь, мне на самом деле важен результат
Тут Алекс Коншин спрашивал: а зачем ?
Я присоединяюсь к этому вопросу.
Shiza (2004-09-17 17:20:00) [5]>То есть, насколько я понимаю, тебе важен именно процесс обсуждения, а не результат?
Зря иронизируете. Вы знаете, Игорь, мне на самом деле важен результат: (Shiza (10.09.04 10:15) [58] "...только бы код был рабочий.")
>И какая разница в данном случае, IDE или SCSI?
Я знаю адреса портов для общения с IDE и не знаю, совпадают ли они для SCSI. Да и потом, для SCSI существует ASPI...
Игорь Шевченко (2004-09-17 13:21:00) [6]Shiza (17.09.04 12:54) [65]
То есть, насколько я понимаю, тебе важен именно процесс обсуждения, а не результат ?
И какая разница в данном случае, IDE или SCSI ?
Shiza (2004-09-17 12:54:00) [7]>А попробуй поработать. Практика - критерий истины.
Я бы попробовал, только у меня не IDE контроллер, а SCSI. Да и потом, кто сказал что мы работаем именно в NT?
Игорь Шевченко (2004-09-17 10:45:00) [8]
> но с портами контроллера IDE не работал.
А попробуй поработать. Практика - критерий истины.
Shiza (2004-09-17 10:41:00) [9]>Флаг тебе в руки.
Не груби.
>В порты контроллера IDE?
Я разве сказал в порты контроллера IDE? Я читал и писал в порты в NT, но с портами контроллера IDE не работал. Но логика подсказывает, что если можно писать в порт по адресу $0070, то можно писать и в порт с другим адресом.
Может поправишь?
Alex Konshin (2004-09-16 20:44:00) [10]В NT? В порты контроллера IDE? Ну-ну.
Флаг тебе в руки.
Shiza (2004-09-16 16:09:00) [11]>В порты напрямую не попишешь.
Да ну блин, ну почему не попишешь??? Можно. И в Win9X, и в WinNT.
>А уж возиться в выходом в 0 кольцо и т.п. хакерские выходки - извольте сами.
Во-первых выход в 0 кольцо не нужен наверное, а во-вторых - я бы назвал это не "хакерские выходки", а низкоуровневое программирование.
>Дык, а кому это нужно?
"Если звёзды зажигают, значит это кому нибудь нужно" (с)
Alex Konshin (2004-09-15 20:12:00) [12]Дык, а кому это нужно?
В порты напрямую не попишешь. Можно что-то сделать через SPTI или miniport, но IMHO этого все равно будет недостаточно. А уж возиться в выходом в 0 кольцо и т.п. хакерские выходки - извольте сами.
Shiza (2004-09-15 17:14:00) [13]А вот ответ тишина :)
Shiza (2004-09-10 10:15:00) [14]>Под NT+ в порты не попишешь
Да ну почему не попишешь? Можно и под NT писать и читать порты, просто делается это немного сложнее, чем обычные in-out.
>Вот и вопрос: чего хотим и зачем?
Ладно, хоть я и не автор вопроса, но очень хочеться разобраться. Чего хотим? Размер сектора нужен или 524 байт, или 1024, любой, только бы код был рабочий.
Alex Konshin (2004-09-09 19:37:00) [15]Да наверное к любому устройству обращаются через порты, но я не о том. Мы как будем обращаться, с помощью ассемблеровских in-out, или через DeviceIOControl?
Вот сначала нужно понять, чего хотим, а потом уже способы искать.
Под NT+ в порты не попишешь и DeviceIOControl не всегда поможет.
Да помоему некоторые уже забыли вопрос на который мы ищем ответ. :) Вопрос в самом начале форума.
В вопросе не говорится о конкретном размере. Более-менее ясно, что нельзя сделать сектор меньше 512. Ясно, что теоретически можно сделать его чуть больше 512 или объеденить несколько секторов в длинный. Вот и вопрос: чего хотим и зачем?
Shiza (2004-09-09 14:26:00) [16]>Зачем - я могу попробовать догадаться, скорее всего, защита от несанкционированного копирования :)
Я не знаю зачем это нужно автору вопроса, но мне это интересно.
А насчёт защиты, то это помоему не самый эффективный способ...
Shiza (2004-09-09 14:23:00) [17]>А BIOS как по-твоему обращается? Тоже через порты.
Да наверное к любому устройству обращаются через порты, но я не о том. Мы как будем обращаться, с помощью ассемблеровских in-out, или через DeviceIOControl?
>И все равно не ясно, как Windows отнесется к такому сектору, если она его случайно найдет.
Почему же не ясно? Она будет считать его сбойным.
>И какой именно размер сектора тебе нужен? О чем хоть разговор?
>И, собственно, зачем? Может есть более простое решение?
Да помоему некоторые уже забыли вопрос на который мы ищем ответ. :) Вопрос в самом начале форума.
Игорь Шевченко (2004-09-09 12:36:00) [18]Alex Konshin © (09.09.04 10:55) [53]
> И, собственно, зачем? Может есть более простое решение?
Зачем - я могу попробовать догадаться, скорее всего, защита от несанкционированного копирования :)
Alex Konshin (2004-09-09 10:55:00) [19]И ещё. Коль мы затронули тему АТА, то не лишим будет напомнить, что к винчестеру можно обращатся двумя путями: через 13int (сектор, головка, цилиндр), или как в случае с АТА через порты ввода-вывода (LBA). В каком русле будем плыть дальше?
Первый путь все равно идет через второй. И все равно не ясно, как Windows отнесется к такому сектору, если она его случайно найдет.
Честно говоря, я не знаю, как винчестер обычно отформатирован и как Windows его читает-пишет. Судя по документу, если используются команды DMA, то сектора будут читаться целиком. И что будет, если размер буфера (512) окажется недостаточным? Как Windows отнесется к такой ошибке? Если же используются команды READ/WRITE BUFFER, то всегда будет читаться 512 байт (опять-таки если верить документу). Но все равно я бы на это закладываться не стал бы. Что будет, если диск начнут дефрагментировать? Если же хочется создать свой не Windows раздел с нестандартными секторами и своими драйверами доступа, то тогда вопросов нет - флаг тебе в руки.
И какой именно размер сектора тебе нужен? О чем хоть разговор?
И, собственно, зачем? Может есть более простое решение?
Игорь Шевченко (2004-09-09 10:38:00) [20]
> что к винчестеру можно обращатся двумя путями: через 13int
> (сектор, головка, цилиндр)
А BIOS как по-твоему обращается ? Тоже через порты.