CcUninitializeCacheMap (FileObject, NULL, NULL);
#endif
pFcb->OpenHandleCount--;
- IoRemoveShareAccess(FileObject, &pFcb->FCBShareAccess);
+ if (!(*pFcb->Attributes & FILE_ATTRIBUTE_DIRECTORY))
+ {
+ IoRemoveShareAccess(FileObject, &pFcb->FCBShareAccess);
+ }
}
return STATUS_SUCCESS;
}
pFcb = FileObject->FsContext;
- if (pFcb->OpenHandleCount != 0)
+ if (pFcb->OpenHandleCount != 0 &&
+ !(*pFcb->Attributes & FILE_ATTRIBUTE_DIRECTORY))
{
Status = IoCheckShareAccess(Stack->Parameters.Create.SecurityContext->DesiredAccess,
Stack->Parameters.Create.ShareAccess,
}
}
- if (pFcb->OpenHandleCount == 0)
+ if (pFcb->OpenHandleCount == 0 &&
+ !(*pFcb->Attributes & FILE_ATTRIBUTE_DIRECTORY))
{
IoSetShareAccess(Stack->Parameters.Create.SecurityContext->DesiredAccess,
Stack->Parameters.Create.ShareAccess,