107 if (StreamFile ==
NULL) {
116 StreamFile->ReadAccess =
TRUE;
117 StreamFile->WriteAccess =
FALSE;
118 StreamFile->DeleteAccess =
FALSE;
126 CdSetFileObject( IrpContext,
138 StreamFile->FileName = *
Name;
150 DecrementReference =
TRUE;
186 CleanupDirContext =
TRUE;
220 if (NewDataLength == 0) {
225 if (NewDataLength !=
Fcb->FileSize.QuadPart) {
227 Fcb->AllocationSize.QuadPart =
228 Fcb->FileSize.QuadPart =
229 Fcb->ValidDataLength.QuadPart = NewDataLength;
239 UpdateFcbSizes =
TRUE;
273 CleanupDirContext =
FALSE;
275 if (UpdateFcbSizes) {
290 if (CleanupDirContext) {
300 if (StreamFile !=
NULL) {
307 StreamFile->FileName.Buffer =
NULL;
308 StreamFile->FileName.MaximumLength = StreamFile->FileName.Length = 0;
318 if (DecrementReference) {
BOOLEAN NTAPI CcPurgeCacheSection(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN OPTIONAL PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN UninitializeCacheMaps)
#define FCB_STATE_INITIALIZED
#define CD_ATTRIBUTE_HIDDEN
#define STATUS_INSUFFICIENT_RESOURCES
CACHE_MANAGER_CALLBACKS CacheManagerCallbacks
VOID CdUpdateDirentName(_In_ PIRP_CONTEXT IrpContext, _Inout_ PDIRENT Dirent, _In_ ULONG IgnoreCase)
#define CdCleanupDirContext(IC, DC)
PFILE_OBJECT NTAPI IoCreateStreamFileObjectLite(IN PFILE_OBJECT FileObject OPTIONAL, IN PDEVICE_OBJECT DeviceObject OPTIONAL)
#define CdUnlockFcb(IC, F)
#define STATUS_FILE_CORRUPT_ERROR
#define ASSERT_IRP_CONTEXT(IC)
#define CdDecrementReferenceCounts(IC, F, C, UC)
VOID CdTruncateAllocation(_In_ PIRP_CONTEXT IrpContext, _Inout_ PFCB Fcb, _In_ LONGLONG StartingFileOffset)
WCHAR CdUnicodeSelfArray[]
VOID NTAPI CcInitializeCacheMap(IN PFILE_OBJECT FileObject, IN PCC_FILE_SIZES FileSizes, IN BOOLEAN PinAccess, IN PCACHE_MANAGER_CALLBACKS Callbacks, IN PVOID LazyWriteContext)
#define CdInitializeDirContext(IC, DC)
#define CdUnlockVcb(IC, V)
_In_ PFCB _In_ PDIRENT_ENUM_CONTEXT DirContext
#define ObDereferenceObject
#define CdInitializeDirent(IC, D)
#define CdConvertCdTimeToNtTime(IC, CD, NT)
#define CdRaiseStatus(IC, S)
VOID NTAPI CcSetFileSizes(IN PFILE_OBJECT FileObject, IN PCC_FILE_SIZES FileSizes)
#define FILE_ATTRIBUTE_HIDDEN
VOID CdAddInitialAllocation(_In_ PIRP_CONTEXT IrpContext, _Inout_ PFCB Fcb, _In_ ULONG StartingBlock, _In_ LONGLONG DataLength)
SECTION_OBJECT_POINTERS SegmentObject
_In_ PFCB _In_ PDIRENT_ENUM_CONTEXT _Inout_ PDIRENT Dirent
#define CdIncrementReferenceCounts(IC, F, C, UC)
PFCB_NONPAGED FcbNonpaged
#define CdCleanupDirent(IC, D)
VOID CdLookupDirent(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _In_ ULONG DirentOffset, _Out_ PDIRENT_ENUM_CONTEXT DirContext)