Как создать новую папку из драйвера?

Тема в разделе "WASM.NT.KERNEL", создана пользователем nbyte, 29 июл 2007.

  1. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    Вот что получилось
     
  2. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Ты наверно так поставил
    Код (Text):
    1. #include "ntddk.h"
    2. #include "driver.h"
    А если так ,то увидишь кучю errorов (поменяй местами)
    Код (Text):
    1. #include "driver.h"
    2. #include "ntddk.h"
    Вроде ничего недолжно быть ,но есть.
    И если даже компилиться ,то при добавлении функции которые пользуються функциями из этого модуля идут опять ерроры.
     
  3. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    nbyte

    Вот полный вариант исходников
     
  4. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    PROFi, так-тыж не добавил.
    Короч вот этот enable.c закинь в папку где у тебя исходники.
    Начни компилировать и увидешь ошибку. По крайне мере у меня она есть.
     
  5. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Низнаю чтото у меня ничего не получаеться.
    Вот проект отражаюший судь ошибки.
    Скачайте->распакуйте->скомпилируйте и увидете кипу ошибок о которых я говорю. Он все идут от того что объявил
    Код (Text):
    1. #include "ntddk.h"
     
  6. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    nbyte

    Подожди, ты хочешь сказать, что из видео драйвера хочешь обратиться в функциям ntoskrnl и поэтому включаешь в компановку #include "ntddk.h", так вот делать этого нельзя поскольку во-первых mirror.dll - это не библиотека в полном понимании этого слова, у нее точка входа отличная от обычной библиотеки И САМОЕ ГЛАВНОЕ ПОСКОЛЬКУ ЭТОТ ВИДЕОДРАЙВЕР ЦЕЛИКОМ И ПОЛНОСТЬЮ ГРУЗИТЬСЯ WIN32.SYS НИКАКОГО ИМПОРТА ИЗ ДРУГИХ МОДУЛЕЙ КРОМЕ КАК ИЗ WIN32.SYS В НЕМ НЕ ДОЛЖНО БЫТЬ т.е. #include "ntddk.h" это ошибка для видеодрайвера. (это не относится к мини драйверу (mirror.sys), он может все это импортировать и к нему будет обращаться mirror.dll) ВООБЩЕ ПРОГРАММИРОВАНИЕ ВИДОДРАЙВЕРА ОДНА ИЗ САМЫХ СЛОЖНАЯ ЗАДАЧА, И ДАЖЕ НА ЭТОМ ФОРУМЕ Я НЕ ВСТРЕЧАЛ НАМЕКОВ ИЛИ ОПИСАНИЙ КАК ЭТО ДЕЛАЕТСЯ.

    Лучше посмотри папку D:\WINDDK\3790.xxxx\src\general\toaster\ тут лежит исходники всех типов драйверов которые могут быть использованы в Windows причем для изучения эта папка самая ценная из DDK и позволяет включать в себя любой код. Короче если новчек в написании драйверов то экспирементируй с тостером :)
     
  7. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    PROFi, понятно.
    Я тут сегодня утром это нашол, что нельзя из Видео драверов вызывать, ты прав.
    Лан я тут обойду просто этот момент.
     
  8. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    nbyte

    Не точто бы совсем нельзя, есть ведь существует
    Код (Text):
    1. PVOID
    2. HANDLE
    3.   EngLoadImage(
    4.     IN LPWSTR  pwszDriver
    5.     );
    6.   EngFindImageProcAddress(
    7.     IN HANDLE  hModule,
    8.     IN LPSTR  lpProcName
    9.     );