26{
33
34 DPRINT(
"VfatCleanupFile(DeviceExt %p, FileObject %p)\n",
36
37
41
43 if (IsVolume)
44 {
46 DeviceExt->OpenHandleCount--;
47
49 {
51 }
52 }
53 else
54 {
57
60 {
62 }
63
64
68
70 DeviceExt->OpenHandleCount--;
71
74 {
75
80 }
81
83 {
85 }
86
89 {
92 {
93 pFcb->
Flags &= ~FCB_DELETE_PENDING;
94 }
95 else
96 {
99 if (tmpFileObject !=
NULL)
100 {
105 }
106
110 }
111 }
112
113
115
118 {
120
122 pFcb,
126 }
127
129 {
131 }
132
133#if 0
134
135
136
139 {
140
141
142
146 {
149 }
150 }
151#endif
152
154#ifdef KDBG
155 pFcb->
Flags |= FCB_CLEANED_UP;
156#endif
157
160 }
161
162#ifdef ENABLE_SWAPOUT
164 {
166 }
167#endif
168
170}
NTSTATUS VfatUpdateEntry(IN PDEVICE_EXTENSION DeviceExt, IN PVFATFCB pFcb)
#define FCB_CACHE_INITIALIZED
BOOLEAN VfatCheckForDismount(IN PDEVICE_EXTENSION DeviceExt, IN BOOLEAN Force)
#define IsListEmpty(ListHead)
#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)
#define FsRtlAreThereCurrentFileLocks(FL)
BOOLEAN NTAPI CcUninitializeCacheMap(IN PFILE_OBJECT FileObject, IN OPTIONAL PLARGE_INTEGER TruncateSize, IN OPTIONAL PCACHE_UNINITIALIZE_EVENT UninitializeEvent)
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)
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