filter driver, проблема с правами

Тема в разделе "WASM.NT.KERNEL", создана пользователем sasha_s, 15 май 2009.

  1. sasha_s

    sasha_s New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2005
    Сообщения:
    165
    Адрес:
    Belarus
    Есть драйвер фильтр файловых операций. Он просто перенаправляет обращения к одной шаре на другую шару с другого компа. Но... Юзер всегда отхватывает "Access denied", т.е. на прямую доступ есть, а вот при перенаправлении уже нет.

    Вот код перенаправления:

    Код (Text):
    1.             PFILE_OBJECT FileObject = Data->Iopb->TargetFileObject;
    2.  
    3.             // allocate memory for file name
    4.             if(FileObject->FileName.MaximumLength < Real->Length) {
    5.                 PWCHAR Buffer = (PWCHAR)ExAllocatePool(NonPagedPool, Real->MaximumLength);
    6.                 if(NULL == Buffer) {
    7.                     ERROR(ExAllocatePool, STATUS_INSUFFICIENT_RESOURCES);
    8.                     return FLT_PREOP_SUCCESS_NO_CALLBACK;
    9.                 }
    10.  
    11.                 ExFreePool(FileObject->FileName.Buffer);
    12.  
    13.                 FileObject->FileName.Buffer        = Buffer;
    14.                 FileObject->FileName.MaximumLength = Real->MaximumLength;
    15.             }
    16.  
    17.             // update name in file
    18.             FileObject->FileName.Length = Real->Length;
    19.             memCopy(FileObject->FileName.Buffer, FileObject->FileName.MaximumLength, Real->Buffer, Real->Length);
    20.  
    21.             FltSetCallbackDataDirty(Data);
    22.  
    23.             // reparse information
    24.             Data->IoStatus.Status = STATUS_REPARSE;
    25.             Data->IoStatus.Information = IO_REPARSE;
    Real -- это путь куда идет перенаправление.

    Что это за такая хитрая ишью? Есть рецепты?