22#define BugCheckFileId (FAT_BUG_CHECK_FILOBSUP)
28#define Dbg (DEBUG_TRACE_FILOBSUP)
31#pragma alloc_text(PAGE, FatForceCacheMiss)
32#pragma alloc_text(PAGE, FatPurgeReferencedFileObjects)
33#pragma alloc_text(PAGE, FatSetFileObject)
34#pragma alloc_text(PAGE, FatDecodeFileObject)
126 if ( VcbOrFcbOrDcb !=
NULL ) {
280 *
Vcb = (*FcbOrDcb)->Vcb;
284 DebugTrace(0,
Dbg,
"Referencing directory: %wZ\n", &(*FcbOrDcb)->FullFileName);
292 *
Vcb = (*FcbOrDcb)->Vcb;
297 DebugTrace(0,
Dbg,
"Referencing file: %wZ\n", &(*FcbOrDcb)->FullFileName);
309 DebugTrace(0,
Dbg,
"Referencing EA file: %wZ\n", &(*FcbOrDcb)->FullFileName);
314#pragma prefast(suppress:28159, "things are seriously wrong if we get here")
327#pragma prefast( suppress:28159, "things are seriously wrong if we get here" )
347FatPurgeReferencedFileObjects (
415 DebugTrace(-1,
Dbg,
"FatPurgeReferencedFileObjects (VOID)\n", 0 );
486 ChildrenAcquired =
TRUE;
490 Links = Links->
Flink) {
494 (
VOID)FatAcquireExclusiveFcb( IrpContext, TempFcb );
498 (
VOID)FatAcquireExclusiveFcb( IrpContext,
Fcb );
540 if (ImageSectionExists) {
545 if (DataSectionExists) {
560 if (ChildrenAcquired) {
567 Links = Links->
Flink) {
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN TypeOfOpen
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
enum _TYPE_OF_OPEN TYPE_OF_OPEN
#define IRP_CONTEXT_FLAG_WAIT
#define _Requires_lock_held_(lock)
#define FAT_DIRENT_ATTR_VOLUME_ID
#define FatBugCheck(A, B, C)
#define IsListEmpty(ListHead)
#define ClearFlag(_F, _SF)
TYPE_OF_OPEN FatDecodeFileObject(_In_ PFILE_OBJECT FileObject, _Outptr_ PVCB *Vcb, _Outptr_ PFCB *FcbOrDcb, _Outptr_ PCCB *Ccb)
VOID FatSetFileObject(IN PFILE_OBJECT FileObject OPTIONAL, IN TYPE_OF_OPEN TypeOfOpen, IN PVOID VcbOrFcbOrDcb, IN PCCB Ccb OPTIONAL)
#define DebugTrace(INDENT, LEVEL, X, Y)
#define FatVcbAcquiredExclusive(IRPCONTEXT, VCB)
PFCB FatGetNextFcbTopDown(IN PIRP_CONTEXT IrpContext, IN PFCB Fcb, IN PFCB TerminationFcb)
#define FatReleaseFcb(IRPCONTEXT, Fcb)
IN PFCB IN FAT_FLUSH_TYPE FlushType
enum _FAT_FLUSH_TYPE FAT_FLUSH_TYPE
#define FatRaiseStatus(IRPCONTEXT, STATUS)
#define VCB_STATE_FLAG_LOCKED
#define VCB_STATE_FLAG_DELETED_FCB
#define FCB_STATE_TEMPORARY
#define FCB_STATE_FORCE_MISS_IN_PROGRESS
_Inout_ PLIST_ENTRY _In_ PVOID FsContext
BOOLEAN NTAPI CcPurgeCacheSection(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN OPTIONAL PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN UninitializeCacheMaps)
#define UNREFERENCED_PARAMETER(P)
#define ARGUMENT_PRESENT(ArgumentPointer)
BOOLEAN NTAPI MmFlushImageSection(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN MMFLUSH_TYPE FlushType)
PULONG MinorVersion OPTIONAL
union _FCB::@729 Specific
struct _FCB::@729::@731 Dcb
struct _LIST_ENTRY * Flink
SECTION_OBJECT_POINTERS SectionObjectPointers
#define CONTAINING_RECORD(address, type, field)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
#define FO_TEMPORARY_FILE