28 if (
Irp->PendingReturned)
45 DEBUG(
DL_INF, (
"Ext2FlushVolume: Flushing Vcb ...\n"));
93 DEBUG(
DL_INF, (
"Ext2FlushFile: Flushing File Inode=%xh %S ...\n",
94 Fcb->Inode->i_ino,
Fcb->
Mcb->ShortName.Buffer));
128 for (ListEntry =
Vcb->FcbList.Flink;
129 ListEntry != &
Vcb->FcbList;
130 ListEntry = ListEntry->
Flink ) {
189 Irp = IrpContext->Irp;
202 MainResourceAcquired =
204 ASSERT(MainResourceAcquired);
205 DEBUG(
DL_INF, (
"Ext2Flush-pre: total mcb records=%u\n",
235 DEBUG(
DL_INF, (
"Ext2Flush-post: total mcb records=%u\n",
241 if (MainResourceAcquired) {
245 if (!IrpContext->ExceptionInProgress) {
#define KeQuerySystemTime(t)
struct _EXT2_FCB * PEXT2_FCB
NTSTATUS Ext2FlushFiles(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN BOOLEAN bShutDown)
NTSTATUS Ext2FlushFile(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_FCB Fcb, IN PEXT2_CCB Ccb)
VOID NTAPI CcFlushCache(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN OPTIONAL PLARGE_INTEGER FileOffset, IN ULONG Length, OUT OPTIONAL PIO_STATUS_BLOCK IoStatus)
NTSTATUS Ext2FlushVolume(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN BOOLEAN bShutDown)
LARGE_INTEGER Ext2NtTime(IN ULONG i_time)
#define STATUS_INVALID_DEVICE_REQUEST
NTSTATUS Ext2FlushVcb(IN PEXT2_VCB Vcb)
ULONG NTAPI FsRtlNumberOfRunsInLargeMcb(IN PLARGE_MCB Mcb)
#define FCB_DELETE_PENDING
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
EXT2_IDENTIFIER_TYPE Type
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
_In_ PDEVICE_OBJECT DeviceObject
NTFSIDENTIFIER Identifier
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
EXT2_IDENTIFIER Identifier
NTSTATUS NTAPI Ext2FlushCompletionRoutine(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context)
#define STATUS_FILE_DELETED
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
NTSTATUS Ext2Flush(IN PEXT2_IRP_CONTEXT IrpContext)
#define NT_SUCCESS(StatCode)
#define IsVcbReadOnly(Vcb)
#define CCB_LAST_WRITE_UPDATED
struct _EXT2_FCBVCB * PEXT2_FCBVCB
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
#define FILE_ATTRIBUTE_ARCHIVE
NTSTATUS Ext2CompleteIrpContext(IN PEXT2_IRP_CONTEXT IrpContext, IN NTSTATUS Status)
_Must_inspect_result_ _In_ PFLT_INSTANCE _Out_ PBOOLEAN IsDirectory
#define FCB_FILE_MODIFIED
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetNextIrpStackLocation(_In_ PIRP Irp)
ClearFlag(Dirent->Flags, DIRENT_FLAG_NOT_PERSISTENT)
BOOLEAN NTAPI ExAcquireSharedStarveExclusive(IN PERESOURCE Resource, IN BOOLEAN Wait)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
_In_ PIO_STACK_LOCATION IrpSp
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
#define IsExt2FsDevice(DO)
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
struct _EXT2_VCB * PEXT2_VCB
struct _EXT2_CCB * PEXT2_CCB
BOOLEAN Ext2SaveInode(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb, IN struct inode *Inode)
VOID Ext2VerifyVcb(IN PEXT2_IRP_CONTEXT IrpContext, IN PEXT2_VCB Vcb)
ULONG Ext2LinuxTime(IN LARGE_INTEGER SysTime)