62 DPRINT(
"VfatFlushVolume(DeviceExt %p, VolumeFcb %p)\n", DeviceExt, VolumeFcb);
64 ASSERT(VolumeFcb == DeviceExt->VolumeFcb);
66 ListEntry = DeviceExt->FcbListHead.Flink;
67 while (ListEntry != &DeviceExt->FcbListHead)
70 ListEntry = ListEntry->
Flink;
85 ListEntry = DeviceExt->FcbListHead.Flink;
86 while (ListEntry != &DeviceExt->FcbListHead)
89 ListEntry = ListEntry->
Flink;
104 Fcb = (
PVFATFCB) DeviceExt->FATFileObject->FsContext;
112 DeviceExt->StorageDevice,
129 DPRINT1(
"Flush not supported, ignored\n");
#define STATUS_INSUFFICIENT_RESOURCES
#define IRP_MJ_FLUSH_BUFFERS
PIRP NTAPI IoBuildSynchronousFsdRequest(IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER StartingOffset, IN PKEVENT Event, IN PIO_STATUS_BLOCK IoStatusBlock)
FORCEINLINE BOOLEAN vfatFCBIsDirectory(PVFATFCB FCB)
#define STATUS_INVALID_DEVICE_REQUEST
static NTSTATUS VfatFlushFile(PDEVICE_EXTENSION DeviceExt, PVFATFCB Fcb)
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
_In_ PVOID _In_ ULONG Event
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)
struct _LIST_ENTRY * Flink
#define NT_SUCCESS(StatCode)
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
struct _VFATFCB * PVFATFCB
#define KeInitializeEvent(pEvt, foo, foo2)
static OUT PIO_STATUS_BLOCK IoStatusBlock
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)