бут сектор на с++

Тема в разделе "WASM.OS.DEVEL", создана пользователем aidos, 12 апр 2008.

  1. aidos

    aidos New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2008
    Сообщения:
    12
    Как нить мона работать на с++ с загрузочным сектором? Считывать для начала. на асме я видел, но нужно С.
     
  2. soveren

    soveren Дмитрий Петерсон

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    94
    Адрес:
    Россия
    CreateFile + ReadFile будет вам достаточно. Исчерпывающую информацию как открыть диск через первую функцию вы найдете в её официальном описании.
     
  3. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Боюсь, что не хватит Си, чтобы написать полноценный бутсектор с общим размером код+данные не более 512 байт.
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    SadKo
    как я понял, имеется ввиду не написание бутсектора а работа с ним:считывание/запись.
     
  5. soveren

    soveren Дмитрий Петерсон

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    94
    Адрес:
    Россия
    Хм, а ещё это KERNEL, так что функции аналоги режима ядра.
     
  6. aidos

    aidos New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2008
    Сообщения:
    12
    Вобщем да - для начала считывание/запись нужны, то есть нужно узнать, чтО в нем прописано
     
  7. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    бут сектор считывается и перезаписывается из под админа "юзермодными" функциями, по крайней
    мере под ХР
     
  8. Quark

    Quark New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2007
    Сообщения:
    211
    Точнее 446. Мало того нужно как-то по смещению 1FE выставить сигнатуру... сишный компилятор заставить сделать такое не получится. Да и толку-то от Си, если юзать всё-равно придётся биос прерывания.
     
  9. aidos

    aidos New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2008
    Сообщения:
    12
    мда... хреновасто..... - тада скажите как хотя бы считывать, что в него записано. Хотя бы названия функций..
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
  11. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Quark, здесь скорее всего речь идет не о MBR-секторе, тем более SadKo сказал код+данные, поэтому его фраза в любом случае вполне корректна и точна.

    aidos, тебе уже указали на эти функции. Могу только уточнить, что если ты хочешь прочитать MBR-сектор первого харда, то следует использовать имя PhysicalDrive0, а если бут-сектор первого тома, то как обычно C:
     
  12. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    aidos
    Если ты про названия функций для считывания MBR, то по-моему обычный ReadFile. Просто имя файла специальное.
    А вот в самом MBR никаких функций нет - там команда INT - обращение в БИОС.
     
  13. aidos

    aidos New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2008
    Сообщения:
    12
    Насчет функций я понял, какие нить особые параметры есть?
     
  14. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    hFile = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_READ, ....)
    ReadFile( hFile, ... )

    все как обычно как с обычными файлами. считываешь первые 512 байт и все