21 #pragma alloc_text(PAGE, Ext2QueueCloseRequest) 22 #pragma alloc_text(PAGE, Ext2DeQueueCloseRequest) 61 Ccb = IrpContext->Ccb;
75 DEBUG(
DL_INF, (
"Ext2Close: (VCB) Vcb = %p ReferCount = %d\n",
76 Vcb,
Vcb->ReferenceCount));
92 DEBUG(
DL_INF, (
"Ext2Close: PENDING ... Vcb: %xh/%xh\n",
93 Vcb->OpenHandleCount,
Vcb->ReferenceCount));
97 VcbResourceAcquired =
TRUE;
124 FcbResourceAcquired =
TRUE;
135 DEBUG(
DL_INF, (
"Ext2Close: Fcb = %p OpenHandleCount= %u ReferenceCount=%u NonCachedCount=%u %wZ\n",
144 FcbDerefDeferred =
TRUE;
148 Fcb->TsDrop.QuadPart = 0;
162 if (FcbResourceAcquired) {
166 if (VcbResourceAcquired) {
170 if (!IrpContext->ExceptionInProgress) {
182 if (FcbDerefDeferred)
209 IrpContext->Fcb = (
PEXT2_FCB) IrpContext->FileObject->FsContext;
210 IrpContext->Ccb = (
PEXT2_CCB) IrpContext->FileObject->FsContext2;
214 &IrpContext->WorkQueueItem,
#define KeQuerySystemTime(t)
struct _EXT2_FCB * PEXT2_FCB
#define IRP_CONTEXT_FLAG_WAIT
VOID NTAPI ExQueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType)
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
FSRTL_ADVANCED_FCB_HEADER Header
NTSTATUS Ext2Close(IN PEXT2_IRP_CONTEXT IrpContext)
#define FCB_DELETE_PENDING
#define IRP_CONTEXT_FLAG_DELAY_CLOSE
EXT2_IDENTIFIER_TYPE Type
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
struct _FCB::@713::@716 Fcb
_In_ PDEVICE_OBJECT DeviceObject
NTFSIDENTIFIER Identifier
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define _SEH2_GetExceptionInformation()
#define IsFileDeleted(Mcb)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
VOID NTAPI Ext2DeQueueCloseRequest(IN PVOID Context)
EXT2_IDENTIFIER Identifier
#define ExInitializeWorkItem(Item, Routine, Context)
NTSTATUS Ext2ExceptionHandler(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2ExceptionFilter(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXCEPTION_POINTERS ExceptionPointer)
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
NTSTATUS Ext2CompleteIrpContext(IN PEXT2_IRP_CONTEXT IrpContext, IN NTSTATUS Status)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
#define IRP_CONTEXT_FLAG_FILE_BUSY
VOID Ext2QueueCloseRequest(IN PEXT2_IRP_CONTEXT IrpContext)
struct ext2_icb * PEXT2_IRP_CONTEXT
#define IsExt2FsDevice(DO)
struct _EXT2_VCB * PEXT2_VCB
#define _SEH2_EXCEPT(...)
VOID Ext2FreeCcb(IN PEXT2_VCB Vcb, IN PEXT2_CCB Ccb)
struct _EXT2_CCB * PEXT2_CCB