30 DPRINT(
"VfatFastIoCheckIfPossible(): returning FALSE.\n");
59 DPRINT(
"VfatFastIoRead()\n");
88 DPRINT(
"VfatFastIoWrite()\n");
119 DPRINT(
"VfatFastIoQueryBasicInfo()\n");
178 DPRINT(
"VfatFastIoQueryStandardInfo()\n");
236 DPRINT(
"VfatFastIoLock\n");
265 DPRINT(
"VfatFastIoUnlockSingle\n");
289 DPRINT(
"VfatFastIoUnlockAll\n");
311 DPRINT(
"VfatFastIoUnlockAllByKey\n");
338 DPRINT(
"VfatFastIoDeviceControl\n");
361 DPRINT(
"VfatAcquireFileForNtCreateSection\n");
373 DPRINT(
"VfatReleaseFileForNtCreateSection\n");
386 DPRINT(
"VfatFastIoDetachDevice\n");
403 DPRINT(
"VfatFastIoQueryNetworkOpenInfo\n");
425 DPRINT(
"VfatAcquireForModWrite\n");
472 DPRINT(
"VfatMdlReadComplete\n");
495 DPRINT(
"VfatPrepareMdlWrite\n");
519 DPRINT(
"VfatMdlWriteComplete\n");
546 DPRINT(
"VfatFastIoReadCompressed\n");
579 DPRINT(
"VfatFastIoWriteCompressed\n");
605 DPRINT(
"VfatMdlReadCompleteCompressed\n");
625 DPRINT(
"VfatMdlWriteCompleteCompressed\n");
645 DPRINT(
"VfatFastIoQueryOpen\n");
664 DPRINT(
"VfatReleaseForModWrite\n");
684 DPRINT(
"VfatAcquireForCcFlush\n");
708 DPRINT(
"VfatReleaseForCcFlush\n");
729 DPRINT(
"VfatAcquireForLazyWrite(): Fcb %p\n",
Fcb);
733 DPRINT(
"VfatAcquireForLazyWrite(): ExReleaseResourceLite failed.\n");
746 DPRINT(
"VfatReleaseFromLazyWrite(): Fcb %p\n",
Fcb);
_In_ PFCB _In_ LONGLONG FileOffset
#define NT_SUCCESS(StatCode)
FAST_IO_DISPATCH FastIoDispatch
static FAST_IO_WRITE_COMPRESSED VfatFastIoWriteCompressed
static FAST_IO_ACQUIRE_FILE VfatAcquireFileForNtCreateSection
static FAST_IO_READ VfatFastIoRead
static FAST_IO_MDL_WRITE_COMPLETE VfatMdlWriteComplete
static FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED VfatMdlWriteCompleteCompressed
static FAST_IO_CHECK_IF_POSSIBLE VfatFastIoCheckIfPossible
static FAST_IO_QUERY_STANDARD_INFO VfatFastIoQueryStandardInfo
static FAST_IO_RELEASE_FILE VfatReleaseFileForNtCreateSection
static FAST_IO_ACQUIRE_FOR_CCFLUSH VfatAcquireForCcFlush
static FAST_IO_UNLOCK_ALL_BY_KEY VfatFastIoUnlockAllByKey
static FAST_IO_MDL_READ_COMPLETE_COMPRESSED VfatMdlReadCompleteCompressed
static FAST_IO_ACQUIRE_FOR_MOD_WRITE VfatAcquireForModWrite
static FAST_IO_DETACH_DEVICE VfatFastIoDetachDevice
VOID VfatInitFastIoRoutines(PFAST_IO_DISPATCH FastIoDispatch)
BOOLEAN NTAPI VfatAcquireForLazyWrite(IN PVOID Context, IN BOOLEAN Wait)
static FAST_IO_MDL_READ VfatMdlRead
static FAST_IO_UNLOCK_SINGLE VfatFastIoUnlockSingle
static FAST_IO_DEVICE_CONTROL VfatFastIoDeviceControl
static FAST_IO_QUERY_BASIC_INFO VfatFastIoQueryBasicInfo
VOID NTAPI VfatReleaseFromLazyWrite(IN PVOID Context)
static FAST_IO_QUERY_OPEN VfatFastIoQueryOpen
static FAST_IO_MDL_READ_COMPLETE VfatMdlReadComplete
static FAST_IO_WRITE VfatFastIoWrite
static FAST_IO_RELEASE_FOR_CCFLUSH VfatReleaseForCcFlush
static FAST_IO_UNLOCK_ALL VfatFastIoUnlockAll
static FAST_IO_LOCK VfatFastIoLock
static FAST_IO_READ_COMPRESSED VfatFastIoReadCompressed
static FAST_IO_PREPARE_MDL_WRITE VfatPrepareMdlWrite
static FAST_IO_QUERY_NETWORK_OPEN_INFO VfatFastIoQueryNetworkOpenInfo
static FAST_IO_RELEASE_FOR_MOD_WRITE VfatReleaseForModWrite
#define ExAcquireResourceExclusiveLite(res, wait)
#define ExAcquireResourceSharedLite(res, wait)
#define BooleanFlagOn(F, SF)
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN BOOLEAN ExclusiveLock
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN CheckForReadOperation
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN FailImmediately
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define FILE_STANDARD_INFORMATION
#define FILE_BASIC_INFORMATION
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
#define UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG _In_ ULONG Length
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
PULONG MinorVersion OPTIONAL
PFAST_IO_ACQUIRE_FOR_MOD_WRITE AcquireForModWrite
PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo
PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey
PFAST_IO_RELEASE_FOR_CCFLUSH ReleaseForCcFlush
PFAST_IO_MDL_READ_COMPLETE MdlReadComplete
PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED MdlWriteCompleteCompressed
PFAST_IO_MDL_READ MdlRead
PFAST_IO_WRITE FastIoWrite
PFAST_IO_UNLOCK_ALL FastIoUnlockAll
PFAST_IO_QUERY_NETWORK_OPEN_INFO FastIoQueryNetworkOpenInfo
PFAST_IO_ACQUIRE_FOR_CCFLUSH AcquireForCcFlush
PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete
ULONG SizeOfFastIoDispatch
PFAST_IO_DEVICE_CONTROL FastIoDeviceControl
PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection
PFAST_IO_QUERY_BASIC_INFO FastIoQueryBasicInfo
PFAST_IO_WRITE_COMPRESSED FastIoWriteCompressed
PFAST_IO_MDL_READ_COMPLETE_COMPRESSED MdlReadCompleteCompressed
PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle
PFAST_IO_READ_COMPRESSED FastIoReadCompressed
PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection
PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite
PFAST_IO_RELEASE_FOR_MOD_WRITE ReleaseForModWrite
PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible
PFAST_IO_QUERY_OPEN FastIoQueryOpen
PFAST_IO_DETACH_DEVICE FastIoDetachDevice
#define STATUS_INVALID_DEVICE_REQUEST
struct _VFATFCB * PVFATFCB
NTSTATUS VfatGetBasicInformation(PFILE_OBJECT FileObject, PVFATFCB FCB, PDEVICE_EXTENSION DeviceExt, PFILE_BASIC_INFORMATION BasicInfo, PULONG BufferLength)
NTSTATUS VfatGetStandardInformation(PVFATFCB FCB, PFILE_STANDARD_INFORMATION StandardInfo, PULONG BufferLength)
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_In_ WDFDPC _In_ BOOLEAN Wait
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
_In_ WDFREQUEST _In_ size_t OutputBufferLength
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT SourceDevice
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
_In_ PLARGE_INTEGER _Out_ struct _ERESOURCE ** ResourceToRelease
_Out_ PFILE_NETWORK_OPEN_INFORMATION NetworkInformation
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO * CompressedDataInfo
_In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Out_ PVOID _Out_ PMDL _Out_ PIO_STATUS_BLOCK _Out_ struct _COMPRESSED_DATA_INFO _In_ ULONG CompressedDataInfoLength
struct _FAST_IO_DISPATCH FAST_IO_DISPATCH
_In_ PLARGE_INTEGER EndingOffset