Портирование 32->64

Тема в разделе "WASM.NT.KERNEL", создана пользователем Mika0x65, 3 авг 2011.

  1. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Мое почтение всем.

    Есть драйвер, написанный с помощью DriverStudio (активно использует библиотеки NuMega). Написан на С++. Задача перенести его на 64битную платформу (надо полагать, Windows 7, но это еще предстоит уточнить). Покопавшись в DriverStudio, я обнаружил, что их библиотеку можно собрать под 64битную платформу. Собирается это все с помощью WDK\build.exe. Т.е. теоретически можно получить 64битный WDM-драйвер, только перекомпилировав исходные коды. Вопросы:

    1. Есть ли какие-то коренные изменения в работе драйверов (особенно меня волнует управление питанием), которые DriverStudio не охватывает?
    2. Стоит ли так делать или лучше переписать это все на чистом С?

    Ну и вообще, какие есть подводные камни? Кто-нибудь делал нечто подобное? Уточню, что сроки довольно сжатые, поэтому пришла в голову мысль о перекомпиляции. Есть так же идея с KMDF, но с KMDF еще предстоит разобраться, поэтому оставляю это пока в стороне. В общем, рад любым предложениям/предостережениям.

    Заранее благодарен.
     
  2. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    А вот это зря. Я бы на твоём месте уделил изучению этого варианта чуть больше времени прямо сейчас. Может так статься, что переписывание под KMDF не займёт много времени.
     
  3. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Mika0x65
    Пересобрав, вы рискуете упереться в сложности, которые будете решать методом тыка. x64 дал хороший совет. Плюс переписать на С - это будет гораздо правильнее, потому как пока будете переписывать, разберетесь во всех нюансах и тонкостях. ИМХО
     
  4. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    Mika0x65
    Смотря что за дров, и на что основной упор. KMDF хороший фрейм, и все стандартные диспатчеры хорошо написан, так что с повером проблем быть не долно, да и к тому же он проще в поддержке всех этих диспатчеров.
    п.с. ПО USB так точно лучше KMDF.
     
  5. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Ага, USB. Драйвер сканера.

    KMDF вещь неплохая -- best practices, как я понимаю, но мне приходится учитывать личностные факторы: мне трудно с наскоку во что-то въехать. А т.к. опыта с KMDF нет, он пока в стороне. Опять же, сроки довольно жесткие, поэтому ищу кратчайший, пусть и не самый правильный путь. Завтра попробую поговорить с заказчиком по срокам, может получится их немного увеличить. В общем, если есть еще какие-то соображения -- буду рад.
     
  6. Derek

    Derek New Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2008
    Сообщения:
    121
    В свое время делали попытку пересборки (комплект драйверов также зависим от библиотек DriverStudio), ощущения сравнимы с лотереей. Прежде всего, не сразу получилось пересобрать библиотеку, нюансов, к сожалению, не помню. Затем, что-то рабочее получилось только на тестовом наборе драйверов, наш комплект даже если собирался нечеловеческими ухищрениями, то подавить череду бсодов не представлялось реальным, спеца по ядру у нас не было. Кончилось тем, что даже те, кто сели переписывать комплект, бросили затею. Just for practice. Надеюсь, вам повезет больше.

    Предположим, Win7.
    1. - Чисто теоретически возникают большие сомнения в работоспособности.
    2. - Подпись?
     
  7. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Ага, спасибо за поучительную историю. Придется поговорить о продлении сроков и переписывать все на С, благо наработки есть.

    Насчет подписи я предупредил заказчика, но это его волнует в меньшей степени. Они этот драйвер используют для внутренних нужд, будут запускать ОС с разрешением недоверенных сертификатов.