получение данных из драйвера в прил. win.

Тема в разделе "WASM.BEGINNERS", создана пользователем sergejp, 20 дек 2005.

  1. sergejp

    sergejp New Member

    Публикаций:
    0
    Регистрация:
    20 дек 2005
    Сообщения:
    3
    Адрес:
    Russia
    Драйвер управляет pci-девайсом с собственным чипом, осуществляющим обработку входного потока данных(tv-сигнал). Как чип обрабатывает данные мне не подходит. При дизасс. драйвера нашел точку вида mov eax,[указ.на буфер]

    с входными данными. Задача: использовать этот буфер в моём приложении (самому обрабат. эти данные), в реал. времени.

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

    да, то в каком направлении рыть :)
     
  2. Topor

    Topor New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2005
    Сообщения:
    31
    Нужно установить железный бряк на чтение из этого буфера.

    Для этого нужно запустить первичный процесс с параметром

    DEBUG_PROCESS. Типа так:
    Код (Text):
    1.  
    2. invoke CreateProcess, offset sProc1, 0, 0, 0, 1, DEBUG_PROCESS, 0, 0, offset StartupInfo, offset ProcessInfo
    3.  




    Потом устанавливаем железный бряк на чтение из этого буфера.

    И ловим отладочные события.



    это мое имхо.
     
  3. sergejp

    sergejp New Member

    Публикаций:
    0
    Регистрация:
    20 дек 2005
    Сообщения:
    3
    Адрес:
    Russia
    Наверно, неточно сформулировал, уточню :

    Упрощеная блок-схема:

    Win-интерфейс <--- Чип+микроконтроллер ^A<--- Dig-тюнер <

    ^ --- упр.драйвер--^

    В sdk для девайса нет метода получения всего потока в (.)

    А, только после обработки в чипе. Есть подозрения, что возникают ошибки ( теряются пакеты ) из-за недостаточного быстродеиствия чипа ( при большой скорости вх. потока).

    При увеличении частоты шины pci ошибки пропадают (up to 38-40 MHz).

    Есть исходники драйвера другого автора.Не смог определить

    , где учитывается clk шины. Точно известно, что основная синхронизация обработки осущ. по входному сигналу.

    Поэтому для проверки хотел бы получить поток в точке А,

    в реале, параллельно с драйвером в своё приложение для

    дальнейшей обработки по своему алгоритму.
     
  4. Topor

    Topor New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2005
    Сообщения:
    31
    Теперь уже я нефкурил, чем же тебе такой способ не нравится.

    Твоя программа будет являться отладчиком для "упр.драйвера", тоесть "упр.драйвер" и дернуться без твоего разрешения не сможет. Ты ставишь железный бряк на этот

    буферок и при каждой попытке чтения из него, будет происходить отладочное событие, и управление будет передаваться твоей проге. Ты данные из буфера прочитал,

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



    Одно меня смущает - слово "драйвер". Если это действительно ринг0 драйвер, тогда Debug API отдыхает.
     
  5. sergejp

    sergejp New Member

    Публикаций:
    0
    Регистрация:
    20 дек 2005
    Сообщения:
    3
    Адрес:
    Russia
    1.Упр.драйвер - управляет драйвер(чипом и интерфейсом,

    ну там DShow)

    2.В том то и смысл, присосаться к процессу в ринг 0,

    что-то типа ReadProccessMemory