Ошибка при линковке драйвера

Тема в разделе "WASM.WIN32", создана пользователем ksu_ant, 26 окт 2005.

  1. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    Здравствуйте!

    У меня есть исходники драйвера, написанного на VC .Net + XP DDK.

    На компьютере установлено VC 6 + 2000 DDK.

    Проекты я переделал, вручную сформировал файлы Sources + makefile.

    Компилируется все нормально, но, при сборке драйвера выходит следующая ошибка:

    link() : error LNK2001: unresolved external symbol _DriverEntry@8

    c:\ntddk\src\source\obj\i386\mydriver.sys() : error LNK1120: 1 unresolved externals

    Не могли бы Вы помочь разобраться в причине данного явления?

    Примечание: если важно, для такой проблемы, - это драйвер-фильтр.
     
  2. ubil

    ubil New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2004
    Сообщения:
    203
    Адрес:
    ODESSA:)
    Если твои исходники представляют только "учебную" ценность, то ты мог бы их сюда прикрепить...
     
  3. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    Если так можно выразиться, - они представляют не только "учебную" ценность.
     
  4. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    Посмотри в лог билда.

    Линкер был запущен с опцией /entry:lol: riverEntry

    Вот он и ищет её.
     
  5. bers

    bers New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2005
    Сообщения:
    139
    Адрес:
    Russia
    _DriverEntry@8 - это вид stdcall функции, может от этого

    и следует плясать...
     
  6. Intercepter

    Intercepter New Member

    Публикаций:
    0
    Регистрация:
    22 сен 2005
    Сообщения:
    14
    Адрес:
    Russia
    Как сделать так (что прописать в солюшене .sln к MS Visual .NET), чтобы из студии компилировать драйвера? Было бы удобней, чем запускать скрипт из консоли.
     
  7. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    Добрый день!

    Высылаю в аттаче "пустышку" моего драйвера, которая в точности соответствует по структуре файлов реальному драйверу.

    На этапе линковки возникает идентичная ошибка.

    В архиве все логи, мой makefile.def, используемый для компиляции и сборки, нет только obj файлов, но проект готов к компиляции (Win 2000 DDK).

    Пожалуйста, если интересно, скачайте и, если возможно, напишите как исправить ошибку.

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



    [​IMG] _268898356__simple.rar
     
  8. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    ksu_ant

    ошибка из-за того что ты решил на С++ драйвер писать, DKK под С заточен.



    Чтобы нормально билдилось добавь extern "C" перед декларацией своей DriverEntry в entrypnt.h:



    extern "C"

    NTSTATUS DriverEntry(

    IN PDRIVER_OBJECT pDriverObj,

    IN PUNICODE_STRING pRegistryPath

    );
     
  9. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    Спасибо огромное!!!

    Все заработало.