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

Discussion in 'WASM.NT.KERNEL' started by Mika0x65, Aug 3, 2011.

  1. Mika0x65

    Mika0x65 New Member

    Blog Posts:
    0
    Joined:
    Jul 30, 2005
    Messages:
    1,384
    Мое почтение всем.

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

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

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

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

    x64 New Member

    Blog Posts:
    0
    Joined:
    Jul 29, 2008
    Messages:
    1,370
    Location:
    Россия
    А вот это зря. Я бы на твоём месте уделил изучению этого варианта чуть больше времени прямо сейчас. Может так статься, что переписывание под KMDF не займёт много времени.
     
  3. TermoSINteZ

    TermoSINteZ Синоби даоса Staff Member

    Blog Posts:
    2
    Joined:
    Jun 11, 2004
    Messages:
    3,568
    Location:
    Russia
    Mika0x65
    Пересобрав, вы рискуете упереться в сложности, которые будете решать методом тыка. x64 дал хороший совет. Плюс переписать на С - это будет гораздо правильнее, потому как пока будете переписывать, разберетесь во всех нюансах и тонкостях. ИМХО
     
  4. shchetinin

    shchetinin Member

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

    Mika0x65 New Member

    Blog Posts:
    0
    Joined:
    Jul 30, 2005
    Messages:
    1,384
    Ага, USB. Драйвер сканера.

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

    Derek New Member

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

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

    Mika0x65 New Member

    Blog Posts:
    0
    Joined:
    Jul 30, 2005
    Messages:
    1,384
    Ага, спасибо за поучительную историю. Придется поговорить о продлении сроков и переписывать все на С, благо наработки есть.

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