43{
46
47 DPRINT(
"NtfsCleanupFile(DeviceExt %p, FileObject %p, CanWait %u)\n",
48 DeviceExt,
50 CanWait);
51
55
57 {
59
61 {
62
63 }
64 }
65 else
66 {
68 {
70 }
71
73
75 {
77 }
78
79
80
83 {
85
87 {
91 }
92 }
93
94
96 !DeletePending &&
100 {
102
105 {
107 }
108 else
109 {
111 }
112 }
113
115
116
117
118 if (DeletePending)
119 {
121
123
124
125
128 {
130
136
139 }
140
143
144
147
149 {
150 DPRINT1(
"ERROR: Failed to delete '%wS' (MFT record %I64u), Status %lx\n",
152 }
153
155 }
156
158 {
159
160 }
161
163
165 }
166
168}
#define NT_SUCCESS(StatCode)
#define VCB_VOLUME_DISMOUNTED
#define ExAcquireResourceSharedLite(res, wait)
#define ROUND_UP(n, align)
#define FCB_DELETE_PENDING
VOID NTAPI CcSetFileSizes(IN PFILE_OBJECT FileObject, IN PCC_FILE_SIZES FileSizes)
BOOLEAN NTAPI CcUninitializeCacheMap(IN PFILE_OBJECT FileObject, IN OPTIONAL PLARGE_INTEGER TruncateSize, IN OPTIONAL PCACHE_UNINITIALIZE_EVENT UninitializeEvent)
#define KeLeaveCriticalRegion()
#define KeEnterCriticalRegion()
NTSTATUS NtfsIsDirectoryEmpty(_In_ PDEVICE_EXTENSION Vcb, _In_ ULONGLONG MftIndex, _Out_ PBOOLEAN Empty)
NTSTATUS NtfsDeleteFileRecord(PDEVICE_EXTENSION DeviceExt, ULONGLONG MftIndex, BOOLEAN CaseSensitive)
NTSTATUS NtfsTrimAllocation(_In_ PNTFS_FCB Fcb)
BOOLEAN NtfsFCBIsDirectory(PNTFS_FCB Fcb)
VOID NtfsRemoveFCBFromTable(_In_ PNTFS_VCB Vcb, _In_ PNTFS_FCB Fcb)
VOID NTAPI IoRemoveShareAccess(IN PFILE_OBJECT FileObject, IN PSHARE_ACCESS ShareAccess)
BOOLEAN NTAPI MmFlushImageSection(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN MMFLUSH_TYPE FlushType)
FSRTL_COMMON_FCB_HEADER RFCB
SECTION_OBJECT_POINTERS SectionObjectPointers
#define STATUS_DIRECTORY_NOT_EMPTY
#define FO_CLEANUP_COMPLETE