34 DPRINT(
"VfatCleanupFile(DeviceExt %p, FileObject %p)\n",
46 DeviceExt->OpenHandleCount--;
70 DeviceExt->OpenHandleCount--;
99 if (tmpFileObject !=
NULL)
155 pFcb->
Flags |= FCB_CLEANED_UP;
162 #ifdef ENABLE_SWAPOUT PEPROCESS NTAPI IoGetRequestorProcess(IN PIRP Irp)
static BOOLEAN VfatCleanupFile(PVFAT_IRP_CONTEXT IrpContext)
#define CCB_DELETE_ON_CLOSE
PDEVICE_EXTENSION DeviceExt
#define BooleanFlagOn(F, SF)
FORCEINLINE BOOLEAN vfatFCBIsDirectory(PVFATFCB FCB)
#define FILE_NOTIFY_CHANGE_FILE_NAME
#define FILE_NOTIFY_CHANGE_DIR_NAME
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
VOID NTAPI IoRemoveShareAccess(IN PFILE_OBJECT FileObject, IN PSHARE_ACCESS ShareAccess)
#define FCB_DELETE_PENDING
VOID NTAPI FsRtlNotifyCleanup(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PVOID FsContext)
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
SHARE_ACCESS FCBShareAccess
#define FILE_ACTION_REMOVED
#define FsRtlAreThereCurrentFileLocks(FL)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
PDEVICE_OBJECT DeviceObject
#define ObDereferenceObject
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
FSRTL_COMMON_FCB_HEADER RFCB
#define FCB_CACHE_INITIALIZED
FORCEINLINE BOOLEAN VfatIsDirectoryEmpty(PDEVICE_EXTENSION DeviceExt, struct _VFATFCB *Fcb)
#define VCB_DISMOUNT_PENDING
NTSTATUS VfatCleanup(PVFAT_IRP_CONTEXT IrpContext)
NTSTATUS NTAPI FsRtlFastUnlockAll(IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN PEPROCESS Process, IN PVOID Context OPTIONAL)
ClearFlag(Dirent->Flags, DIRENT_FLAG_NOT_PERSISTENT)
struct _VFATFCB * PVFATFCB
#define FCB_DELAYED_CLOSE
ERESOURCE PagingIoResource
FORCEINLINE VOID vfatReportChange(IN PDEVICE_EXTENSION DeviceExt, IN PVFATFCB Fcb, IN ULONG FilterMatch, IN ULONG Action)
PVFAT_GLOBAL_DATA VfatGlobalData
BOOLEAN NTAPI CcUninitializeCacheMap(IN PFILE_OBJECT FileObject, IN OPTIONAL PLARGE_INTEGER TruncateSize, IN OPTIONAL PCACHE_UNINITIALIZE_EVENT UninitializeEvent)
FORCEINLINE NTSTATUS VfatDelEntry(PDEVICE_EXTENSION DeviceExt, struct _VFATFCB *Fcb, struct _VFAT_MOVE_CONTEXT *MoveContext)
#define FO_CLEANUP_COMPLETE
PDEVICE_OBJECT DeviceObject
NTSTATUS VfatUpdateEntry(IN PDEVICE_EXTENSION DeviceExt, IN PVFATFCB pFcb)
LIST_ENTRY ParentListHead
BOOLEAN VfatCheckForDismount(IN PDEVICE_EXTENSION DeviceExt, IN BOOLEAN Force)