Re[2]: Имя обрабатываемого файла в драйвере
От: Orifiel  
Дата: 10.06.05 08:14
Оценка:
Здравствуйте, serg_fork, Вы писали:

_>Здравствуйте, Mike_12, Вы писали:


M_>>Подскажите, как из драйвера узнать имя обрабатываемого файла? Например мне нужно обрабаьтывать только текстовые. Я написал драйвер-фильтр, но немогу понять, как узнать расширение файла.

M_>>Спасибо

_>Если ты написал драйвер-фильтр, то узнать расширение файла для тебя не составит особого труда.


_>P.S. Так и пиши, содрал подчистую пример из IFS/filemon а что он делает, ума не приложу.




VOID GetFileName(PUNICODE_STRING pusFileName)
{
 ANSI_STRING asFileName;
 RtlUnicodeStringToAnsiString(&asFileName, pusFileName, TRUE);
    
 // напечатать имя файла
 if(asFileName.Buffer)
   DbgPrint("FILE NAME: %s \n", asFileName.Buffer);

 RtlFreeAnsiString(asFileName);
}

}

 NTSTATUS HookDispatcher(PDEVICE_OBJECT pDeviceObject, PIRP pIrp)
 {
   PIO_STACK_LOCATION pCurStack = IoGetCurrentIrpStackLocation();

   switch(pCurStack->MajorFunction)
  {
   case IRP_MJ_CREATE:
    // имя файла хранится в pCurStack->FileObject->FileName
   GetFileName(&pCurStack->FileObject->FileName);
   break;
   ///другие обработчики
  }
 }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.