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" ) 347 FatPurgeReferencedFileObjects (
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_ 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 IRP_CONTEXT_FLAG_WAIT
#define UNREFERENCED_PARAMETER(P)
#define DebugTrace(INDENT, LEVEL, X, Y)
#define FCB_STATE_TEMPORARY
SECTION_OBJECT_POINTERS SectionObjectPointers
#define FAT_DIRENT_ATTR_VOLUME_ID
_Requires_lock_held_(_Global_critical_region_)
#define FatRaiseStatus(IRPCONTEXT, STATUS)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN TypeOfOpen
IN PFCB IN FAT_FLUSH_TYPE FlushType
struct _FCB::@706::@708 Dcb
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
struct _LIST_ENTRY * Flink
#define FatReleaseFcb(IRPCONTEXT, Fcb)
#define FatBugCheck(A, B, C)
#define VCB_STATE_FLAG_LOCKED
BOOLEAN NTAPI MmFlushImageSection(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN MMFLUSH_TYPE FlushType)
enum _FAT_FLUSH_TYPE FAT_FLUSH_TYPE
#define ARGUMENT_PRESENT(ArgumentPointer)
enum _TYPE_OF_OPEN TYPE_OF_OPEN
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
ClearFlag(Dirent->Flags, DIRENT_FLAG_NOT_PERSISTENT)
VOID FatSetFileObject(IN PFILE_OBJECT FileObject OPTIONAL, IN TYPE_OF_OPEN TypeOfOpen, IN PVOID VcbOrFcbOrDcb, IN PCCB Ccb OPTIONAL)
#define FO_TEMPORARY_FILE
union _FCB::@706 Specific
TYPE_OF_OPEN FatDecodeFileObject(_In_ PFILE_OBJECT FileObject, _Outptr_ PVCB *Vcb, _Outptr_ PFCB *FcbOrDcb, _Outptr_ PCCB *Ccb)
#define VCB_STATE_FLAG_DELETED_FCB
#define FatVcbAcquiredExclusive(IRPCONTEXT, VCB)
#define FCB_STATE_FORCE_MISS_IN_PROGRESS
PULONG MinorVersion OPTIONAL
PFCB FatGetNextFcbTopDown(IN PIRP_CONTEXT IrpContext, IN PFCB Fcb, IN PFCB TerminationFcb)