Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

изменение размера сектора


Страницы:   1 2 3 4

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 как по-твоему обращается ? Тоже через порты.


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо