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,
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
#define IRP_CONTEXT_FLAG_WAIT
VOID NTAPI Ext2DeQueueCloseRequest(IN PVOID Context)
NTSTATUS Ext2Close(IN PEXT2_IRP_CONTEXT IrpContext)
VOID Ext2QueueCloseRequest(IN PEXT2_IRP_CONTEXT IrpContext)
#define KeQuerySystemTime(t)
#define ExAcquireResourceExclusiveLite(res, wait)
NTSTATUS Ext2ExceptionHandler(IN PEXT2_IRP_CONTEXT IrpContext)
NTSTATUS Ext2ExceptionFilter(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXCEPTION_POINTERS ExceptionPointer)
#define IsFileDeleted(Mcb)
#define IsExt2FsDevice(DO)
struct ext2_icb * PEXT2_IRP_CONTEXT
#define FCB_DELETE_PENDING
struct _EXT2_VCB * PEXT2_VCB
#define IRP_CONTEXT_FLAG_DELAY_CLOSE
struct _EXT2_CCB * PEXT2_CCB
VOID Ext2FreeCcb(IN PEXT2_VCB Vcb, IN PEXT2_CCB Ccb)
struct _EXT2_FCB * PEXT2_FCB
NTSTATUS Ext2CompleteIrpContext(IN PEXT2_IRP_CONTEXT IrpContext, IN NTSTATUS Status)
#define IRP_CONTEXT_FLAG_FILE_BUSY
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionInformation()
EXT2_IDENTIFIER_TYPE Type
struct _FCB::@729::@732 Fcb
NTFSIDENTIFIER Identifier
FSRTL_ADVANCED_FCB_HEADER Header
EXT2_IDENTIFIER Identifier
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
VOID NTAPI ExQueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType)
#define ExInitializeWorkItem(Item, Routine, Context)