[ros-dev] vfat bug (hartmut?)

Hartmut Birr hartmut.birr at gmx.de
Wed Mar 16 18:34:26 CET 2005


Gunnar Dalsnes schrieb:

>
> This problem prevents ros from deleting a file/directory (observed
> while running wine kernel32 reg. tests with param "path")
>
> around line  295 in vfat\finfo.c: (svn blame says Hartmut made the
> last changes around here)
>
>  ------------------------------------------------
>   if (DispositionInfo->DeleteFile)
>     {
>       if (MmFlushImageSection (FileObject->SectionObjectPointer,
> MmFlushForDelete))
>         {
>           if (FCB->OpenHandleCount > 1)
>             {
>           DPRINT1("%d %x\n", FCB->OpenHandleCount,
> CcGetFileObjectFromSectionPtrs(FileObject->SectionObjectPointer));
>               Status = STATUS_ACCESS_DENIED;
>             }
>           else
>             {
>               FCB->Flags |= FCB_DELETE_PENDING;
>               FileObject->DeletePending = TRUE;
>             }
>         }
>       else
>         {
>  ------------------------------------------------
> Why deny deletion with STATUS_ACCESS_DENIED if FCB->OpenHandleCount >
> 1 ??????
>
It is only possible to delete a file if the file is not mapped (as image
or data section) and if nobody else has open this file. The second
condition is the reason for the handle check. There exist one situation
for more than one handle. The file can be open with FILE_SHARE_DELETE.
Currently it is not implemented.

- Hartmut


More information about the Ros-dev mailing list