Показать сообщение отдельно

  #3  
Старый 27.09.2007, 16:58
slesh
Познавший АНТИЧАТ
Регистрация: 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 на экране они не появляются
 
Ответить с цитированием