Firewall filter hook driver feedback.

Тема в разделе "WASM.NETWORKS", создана пользователем 9ine, 25 окт 2004.

  1. 9ine

    9ine New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    24
    Адрес:
    Russia
    Как организовать обратную связь из filter-hook sys драйвера обратно в windows приложение?

    Например пришел(ушел) инет пакет как из функции PF_FORWARD_ACTION filterFunc(...) сразуже сообшить в user-mode приложение - (в смысле interprocess comunication PostMessage() или тому подобное)?
     
  2. Four-F

    Four-F New Member

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

    bigglass New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    2
  4. 9ine

    9ine New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    24
    Адрес:
    Russia
    Как можно сделать чтоб из драйвера перед вызовом KeSetEvent() передать информацию в user-mode приложение (в какое-нибуть место в памяти и т.д.) чтобы в user-mode треде после завершения WaitForSigleObject() не использовать обращение к драйверу deviceiocontrol(...) на передачу нужной информации а взять и прочитать ее из 'заданного' места памяти куда ее драйвер запишет?

    (для ускорения обмена с драйвером)

    Thread()

    while(true){

    WaitForSingleObject();

    "read some memory location"

    ...

    }
     
  5. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
  6. 9ine

    9ine New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    24
    Адрес:
    Russia
    Можно ли по примеру выделения памяти для чтения из user-mode "Драйверы режима ядра: Часть 9" использовать "ввод-вывод без управления" (Часть 5: Полнофункциональный драйвер) т.е. user-mode выделяет у себя память и посылает DeviceIoControl(тип,"ввод-вывод без управления") а kernel-mode driver используя in(out) параметры блокирует их в памяти и т.д. чтобы адрес был постоянным для user-mode.





    ввод-вывод без управления

    Диспетчер ввода-вывода помещает в поле DeviceIoControl.Type3InputBuffer структуры IO_STACK_LOCATION указатель на пользовательский входной буфер, а в поле UserBuffer структуры _IRP указатель на пользовательский выходной буфер и оставляет драйверу возможность управлять ими самостоятельно. Т.о. вся ответственность за управление пользовательскими буферами ложится на драйвер. Он может блокировать их в памяти, отображать на системное адресное пространство или обращаться к ним напрямую и т.д.
     
  7. Four-F

    Four-F New Member

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



    IoAllocateMdl

    __try {

    MmProbeAndLockPages

    }



    Если надо отобразить в ядро, то + ещё MmGetSystemAddressForMdlSafe