Опять про драйвера

Тема в разделе "WASM.NT.KERNEL", создана пользователем Int64, 10 окт 2006.

  1. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    Как во время DriveEntry или CreateFile
    передать клиенту (приложение из User Mode ) значение размером в DWORD?
     
  2. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    А Вы уверены, что нет другого способа решения Вашей задачи?
    Мне кажется самым простым и подходящим решением какой-либо технологический IOCTL (DeviceIoControl), который будет вызван сразу после открытия устройства (CreateFile).
    Если нужно передавать данные, получаемые в указанных Вами процедурах, просто пишите их в глобальный буфер данных драйвера, который выдавайте юзермоду во время обработки IOCTL.
    Надеюсь, поможет.
    Удачи.
     
  3. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Через реестр.
     
  4. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    Four-F
    В смысле?
    Из драйвера в реестр писать? :)
    Тогда и файлы можно использовать. :)
    Или я что-то не так понял?
     
  5. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Ну да. А что такого?

    Через реестр проще.
     
  6. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    Ну напридумывали... А про память забыли :)

    Ладно.
    А какой самый быстры метод I/O
    Direct
    Buffered
    или Nerired или как его там...
     
  7. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Можно узнать способ передать что-то из DriveEntry в юзерную память?

    Теоретически - neither, когда драйвер, находясь в контексте юзерного процесса, пишет прямо в юзерный буфер не отображая его в ядро.
     
  8. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    Ну например отобразить нужный участов в юзерскую память...
    в который предварительно записанно значение...
    Это может быть и системное адресное пространство
    там редко система что-то делает...
    Просто найти пустых четыре байт скажем в по 000C0000h и
    записать...
     
  9. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    Понятно!
    А Buffered?
    или
    Direct I/O
     
  10. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Когда устанешь всё это реализовывать на практике, вспомни про реестр.

    Что Buffered или Direct I/O? Вопрос был "какой самый быстры метод I/O". Я и говорю, что самый быстрый neither, а buffered и direct, соответственно, медленнее чем neither ;)
     
  11. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    Да нет, ничего, просто подумал, что это не очень "интерактивно" для программы, так сказать.
    Просто в таком случае я бы сделал так как описал выше (через код инициализации). Но может быть для данной задачи больше подходит способ, предложенный тобой.
     
  12. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    Four-F
    Все понял спасибо!
     
  13. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Конечно, нормальному драйверу зачем что-то из DriveEntry юзеру передавать.
     
  14. TermoSINteZ

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

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.548
    Адрес:
    Russia
    ДА.. бред полнейший, по поводу "в интерактивном режиме из DriveEntry юзеру передавать что либо" :)
    Но можно APC послать . Тоже вариант. И таким образом можно не только данные отправить но и выполнить что-либо, с контексте того приложения в юзермоде.
     
  15. Int64

    Int64 New Member

    Публикаций:
    0
    Регистрация:
    30 сен 2006
    Сообщения:
    38
    TermoSINteZ
    Мне надо было дескриптор передать...
    Но я решил задачу по другому... :)