66{
69
72
75
77
80
81
82
83
84
85
87
89
91 return;
92 }
93
94
95
96
97
99
100
101
102
103
104
106
107 if (StreamFile ==
NULL) {
108
110 }
111
112
113
114
115
116 StreamFile->ReadAccess =
TRUE;
117 StreamFile->WriteAccess =
FALSE;
118 StreamFile->DeleteAccess =
FALSE;
119
121
122
123
124
125
126 CdSetFileObject( IrpContext,
127 StreamFile,
131
132
133
134
135
136
137
138 StreamFile->FileName = *
Name;
139
140
141
142
143
144
145
146
150 DecrementReference =
TRUE;
151
152
153
154
155
161
162
163
164
165
168
169
170
171
172
173
174
175
177
179
180
181
182
183
186 CleanupDirContext =
TRUE;
187
188
189
190
191
192
197
199
200
201
202
203
204
205
207
209
211 }
212
213
214
215
216
217
219
220 if (NewDataLength == 0) {
221
223 }
224
225 if (NewDataLength !=
Fcb->FileSize.QuadPart) {
226
227 Fcb->AllocationSize.QuadPart =
228 Fcb->FileSize.QuadPart =
229 Fcb->ValidDataLength.QuadPart = NewDataLength;
230
232
237 NewDataLength );
238
239 UpdateFcbSizes =
TRUE;
240 }
241
242
243
244
245
247
249 }
250
251
252
253
254
258
259
260
261
262
263
265
266
267
268
269
270
273 CleanupDirContext =
FALSE;
274
275 if (UpdateFcbSizes) {
276
279 0,
281 }
282 }
283
285
286
287
288
289
290 if (CleanupDirContext) {
291
294 }
295
296
297
298
299
300 if (StreamFile !=
NULL) {
301
302
303
304
305
306
307 StreamFile->FileName.Buffer =
NULL;
308 StreamFile->FileName.MaximumLength = StreamFile->FileName.Length = 0;
309
312 }
313
314
315
316
317
318 if (DecrementReference) {
319
323 }
324
327
328 return;
329}
#define CD_ATTRIBUTE_HIDDEN
#define CdConvertCdTimeToNtTime(IC, CD, NT)
WCHAR CdUnicodeSelfArray[]
#define ASSERT_IRP_CONTEXT(IC)
VOID CdTruncateAllocation(_In_ PIRP_CONTEXT IrpContext, _Inout_ PFCB Fcb, _In_ LONGLONG StartingFileOffset)
VOID CdAddInitialAllocation(_In_ PIRP_CONTEXT IrpContext, _Inout_ PFCB Fcb, _In_ ULONG StartingBlock, _In_ LONGLONG DataLength)
#define CdInitializeDirent(IC, D)
_In_ PFCB _In_ PDIRENT_ENUM_CONTEXT _Inout_ PDIRENT Dirent
VOID CdUpdateDirentName(_In_ PIRP_CONTEXT IrpContext, _Inout_ PDIRENT Dirent, _In_ ULONG IgnoreCase)
#define CdCleanupDirContext(IC, DC)
VOID CdLookupDirent(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _In_ ULONG DirentOffset, _Out_ PDIRENT_ENUM_CONTEXT DirContext)
#define CdCleanupDirent(IC, D)
#define CdInitializeDirContext(IC, DC)
#define CdDecrementReferenceCounts(IC, F, C, UC)
_In_ PFCB _In_ PDIRENT_ENUM_CONTEXT DirContext
#define CdUnlockFcb(IC, F)
#define CdIncrementReferenceCounts(IC, F, C, UC)
#define CdRaiseStatus(IC, S)
#define FCB_STATE_INITIALIZED
VOID NTAPI CcSetFileSizes(IN PFILE_OBJECT FileObject, IN PCC_FILE_SIZES FileSizes)
VOID NTAPI CcInitializeCacheMap(IN PFILE_OBJECT FileObject, IN PCC_FILE_SIZES FileSizes, IN BOOLEAN PinAccess, IN PCACHE_MANAGER_CALLBACKS Callbacks, IN PVOID LazyWriteContext)
#define FILE_ATTRIBUTE_HIDDEN
PFILE_OBJECT NTAPI IoCreateStreamFileObjectLite(IN PFILE_OBJECT FileObject OPTIONAL, IN PDEVICE_OBJECT DeviceObject OPTIONAL)
CACHE_MANAGER_CALLBACKS CacheManagerCallbacks
#define STATUS_FILE_CORRUPT_ERROR
#define STATUS_INSUFFICIENT_RESOURCES
#define ObDereferenceObject