|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 8, 2004 17:35:08 > Непойму чего то драйвер то свой или чужой? я говорил о драйвере руссиновича > Если свой то почему не реализовать функцию передачи логов в драйвере в самом? и то верно, но меня спросили как перехватить DebPrint, вот я и привел код, который это делает > И пользователь её просто будет вызывать по DeviceIoControl драйвер в указанный буфер пользователя всё что надо запишет. это не лучший способ. дело в том, что выделять много памяти в ядре вредно для здоровья, а если мало, нет гарантий, что она неожиданно не кончится, поэтому лучше всего либо через call-back'и, либо через event'ы. вот такое мое ИМХО, хотя.. памяти сейчас много и все эти извращения уже давно не актуальны. |
|
|
Дата: Июн 8, 2004 18:22:41 [ kaspersky: нет, DbgView, дизассемблерный листинг которого я приводил выше, смотри: ] Какая это версия? В DbgView v4.20 (драйвер 4.13) никакого cr0 нет и в помине. Зато есть такое: :00010364 Remap proc near :00010364 push PAGE_SIZE :00010369 push pfnDbgPrint :0001036F push 0 :00010371 call ds:MmCreateMdl :00010377 push eax :00010378 mov pMDL, eax :0001037D call ds:MmBuildMdlForNonPagedPool :00010383 push KernelMode :00010385 push pMDL :0001038B call ds:MmMapLockedPages :00010391 mov pfnDbgPrint, eax :00010396 xor eax, eax :00010398 retn :00010398 Remap endp :00010991 call Remap ; ремапим точку входа DbgPrint :00010996 mov ecx, pfnDbgPrint . . . :000109A1 mov word ptr [ecx], 25FFh ; патчим джампом на свою DbgPrintHook . . . :000109BC mov ecx, pfnDbgPrint . . . :000109C3 mov dword ptr [ecx+2], offset pfnDbgPrintHook |
|
|
Дата: Июн 8, 2004 18:23:04 Ничего всё равно не понимаю, драйвер то свой? Он писать то может куда угодно? Не обязательно в память ядра. Непонятно - ему то самому эти логи нужны или нет? А если его вызвают, то и память ядра он может "освобождать" и использовать только под незапрошенные логи. К тому же непонятная инфа что за логи, может их инфу можно бинарно закодировать кратко, а сама программа пусть расшифровывает в строки. Потому фраза твоя непонятна - call-back то чей? Это из 3го кольца можно нырнуть в 0 вое и потом вынурнуть а не наоборот. Или что ты понимаешь под call-back? |
|
|
Дата: Июн 9, 2004 01:54:26 Непойму чего то драйвер то свой или чужой? Если свой то почему не реализовать функцию передачи логов в драйвере в самом? свой. но до тех пор пока драйвер вызовут, логи надо где-то хранить. А места они немало занимают. Или динамически под них выделять память в промежутке между опросами ? |
|
|
Дата: Июн 9, 2004 01:57:47 Непонятно - ему то самому эти логи нужны или нет? ему нет. Он просто висит и делает свою работу. Параллельно логирует проходящие запросы и _если_ есть приложение, которому интересно посмотреть что счас происходит, то оно (ну хотелось бы так) может "подключится" (как ?) к драйверу и начать считывать эти логи. Как надоест - сваливает. А драйвер продолжает работать... |
|
|
Дата: Июн 9, 2004 05:31:54 [ infern0: А драйвер продолжает работать... ] Это какой-то нереальный сценарий, т.к. если никто и никогда не захочет "подключится к драйверу и начать считывать эти логи", а драйвер продолжает работать... Надеюсь, мысль понятна. Какое-то разумное ограничение на размер лога должно быть. [ infern0: А места они немало занимают. ] Сколько? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.057 |