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