суббота, 28 мая 2011 г.

DbgEng in Windows Debugging tools

DbgEng In Windows Debugging tools
dbgeng.dll
Export 2 functions.
DebugCreate
DebugConnect


This is note about DebugCreate
I use 2 general interface: IDebugClient(5 version) and IDebugControl(4 version).

понедельник, 9 мая 2011 г.

NOTE: Performance Communication driver with single process

NOTE: Performance Communication driver with single process

Description idea about perfom communication driver.
Dispatching 3 routines:
  1.     IRP_MJ_CREATE
  2.     IRP_MJ_READ
  3.     IRP_MJ_WRITE

Dispatcher IRP_MJ_CREATE
Как косвенный признак начало работы с драйвером для передачи данных. В этом месте можно размести логику запросов на получения данных к нежестоящему драйверу. Основная задача, сформированть Н запросов и отослать нижестоящему драйверу. При завершении запроса положить в список завершенных, если не было запросов от IRP_MJ_READ, если они были то взять первый запрос и скопировать в него тело и установить запрос как завершенный

Dispatcher IRP_MJ_READ

Проверить список завершенных запросов, если не пуст, скопировать тело и установить что запрос завершен, в противном случае, отложить запрос(Mark) не устонавливая Complete.
Сложен в реализации.

Dispatcher IRP_MJ_WRITE
Формируем запрос на отправку данных, копируем из пришедшего запроса "тело". Устанавливаем пришедший запрос как завершонный. А новый запрос отправляем.
Побочный эфект может: Если отправка не удалась, то участник который отослал не узнает об этом. Так что нужно будет ему сообщить либым другим способом.