
27.09.2007, 16:58
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами:
10097606
Репутация:
3349
|
|
Чтото начал делать в этоге при копировании идет BSOD
Вообще драйвер должен перехватывать запуск процессов.
И потом по требованию возвращать PID и PARENT последнего запущенного процесса.
Код функции обработчика:
Код:
if (irpStack->MajorFunction == IRP_MJ_READ)
{
DPRINT("READ");
if (irpStack->Parameters.Read.Length < 8)
{
DPRINT("LENGTH < 8");
Irp->IoStatus.Status = status = STATUS_BUFFER_TOO_SMALL;
Irp->IoStatus.Information = 0;
IoCompleteRequest (Irp, IO_NO_INCREMENT);
return status;
} else
{
DPRINT("LENGTH OK");
Еcли раскоментировать, то BSOD >>> //RtlCopyMemory(Irp->AssociatedIrp.SystemBuffer, &RUNPROC, 8);
Irp->IoStatus.Status = status = STATUS_SUCCESS;
IoCompleteRequest (Irp, IO_NO_INCREMENT);
return status;
}
}
где
TRUNPROC RUNPROC
typedef struct _TRUNPROC
{
HANDLE parent;
HANDLE PID;
} TRUNPROC, *PRUNPROC;
И вот вопрос еще один. Как мне получать то, что выводится через DbgPrint?
Юзаю WinDbg. Т.е. я запускаю через него прогу, которая общается с драйвером, но почемуто сообщения от DbgPrint на экране они не появляются 
|
|
|