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

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

  1. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Здравствуйте.
    Например, есть путь
    Хочю сделать код который создаёт новую папку или проверяет на наличие папки и если нету создавал-бы её.
    Как я понял эту операцию можно сделать при поши ZwCreateFile функции, только какие параметры надо указывать?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    ZwCreateDirectoryObject ?
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    это не то, это афаик создает другую директорию =)
    nbyte
    просто в флагах укажи, что это директория.
     
  4. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Я шас пробую, только вот тут надо какойто модуль прописать надо, ато ненаходит саму структуру OBJECT_ATTRIBUTES и функции ZWx.
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    наверное ntddk.h ;) (если на сишнике пишешь)
     
  6. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Только чтото когда добавляю у меня ошибок целая кипа из этого модуля идёт.
    Вот я и решил поэтому спросить мож другой :).
    Юзаю DDK 3790 билд
    Вот например отрывок ошибок
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    сорс в студию полный
     
  8. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Great, я понял откуда. Если один модуль вырубить то он проходит это модуль нормально, но тот модуль который я вырубил мне нужен.
    Сорри что я неособо в си понимаю но чем отличаеться например если сделать
    Код (Text):
    1. #include <stdarg.h>
    или так
    Код (Text):
    1. #include "stdarg.h"
     
  9. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Тут скорой всего конфликт между модулями.
    Только как его подправить.
     
  10. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Great, если хочешь увидеть о чем я говорю то заинсталь и открой
    добавь туда
    Код (Text):
    1. #include "ntddk.h"
    и build эту папку и увидишь о чём я говорю.
     
  11. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Поменял последовательность объявления модулей и все компилируеться хоть :).
    Но всетаки интересно почему такое было, можете ктонибудь прокоментировать?
     
  12. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Не всеровно никак неработает.
    Пишет
    Код (Text):
    1. enable.obj : error LNK2019: unresolved external symbol __imp__RtlInitUnicodeStri
    2. ng@8 referenced in function _DrvEnableSurface@4
    Если использую функции из этого модуля.
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А с ntoskrnl.lib линкуешь?
     
  14. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Неа ни в enable.c ни в driver.h его нету.
     
  15. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    nbyte
    Та оно ж в папке lib что с DDK поставляется, и гата ж ващщще библиятэка а не код.
     
  16. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    PROFi, так где что подправить толком можно?
     
  17. PROFi

    PROFi New Member

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

    короче если у тебя установлен DDK и ты хочешь что либо собрать BUILD, то пуск->Development Kits->Windows DDK xxxx.xxx->Build Environments->Windows XP->Windows XP Free Build Environment или Windows XP Checked Build Environment. Откроется коммандная строка, так вот вней нужно перейти в папку где нужно скомпилировать программу и пользовать BUILD, а если хочешь все примеры скомпилировать сразу - то пепейди в папку
    x:\WINDDK\xxxx.xxxx\src\ и из нее запусти BUILD.
    А если пользуешь Visual C++ или другое чудо, то трэба павозится с Tools-options-directoryes, и там выставить папки DDK

    Только задается мне что топик нужно перенести в WASM.BEGINNERS :)
     
  18. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Я уже почти закончил драйвер писать ,аты говоришь как компилить :). Просто этими функциями которые с файлами работают непользовался. Тут в driver.h чтото.
    Я компилю первым вариантом если что, но проблема осталась.
     
  19. PROFi

    PROFi New Member

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

    тогда драйвер на стол, попробую у себя скомпилить
     
  20. nbyte

    nbyte New Member

    Публикаций:
    0
    Регистрация:
    27 май 2007
    Сообщения:
    161
    Я в ответе #10 уже написал, что надо сделать чтобы увидеть.
    Тут ничего лишнего ненужно, только DDK.