277 PSHARED_CACHE_MAP SharedCacheMap;
333 if ((FileOffsetAppend ==
FALSE) &&
337 ResourceAcquiredShared =
TRUE;
348 if (FileOffsetAppend !=
FALSE)
380 if (ResourceAcquiredShared &&
386 if (FileOffsetAppend !=
FALSE)
441 &FastIoCheckIfPossibleStatus,
454 FileSizeModified =
TRUE;
500 if (FileSizeModified)
503 (PSHARED_CACHE_MAP)
FileObject->SectionObjectPointer->SharedCacheMap;
504 SharedCacheMap->FileSize.LowPart =
NewSize.LowPart;
515 if (FileSizeModified)
553 if ((FileOffsetAppend ==
FALSE) &&
559 goto LeaveCriticalAndFail;
561 ResourceAcquiredShared =
TRUE;
568 goto LeaveCriticalAndFail;
573 if (FileOffsetAppend !=
FALSE)
597 if (ResourceAcquiredShared &&
603 goto LeaveCriticalAndFail;
607 if (FileOffsetAppend)
651 &FastIoCheckIfPossibleStatus,
664 FileSizeModified =
TRUE;
750 if (FileSizeModified)
754 (PSHARED_CACHE_MAP)
FileObject->SectionObjectPointer->SharedCacheMap;
755 SharedCacheMap->FileSize.QuadPart =
NewSize.QuadPart;
767 if (FileSizeModified)
792 LeaveCriticalAndFail:
832 FastDispatch =
DeviceObject->DriverObject->FastIoDispatch;
868 Irp->AssociatedIrp.SystemBuffer = &
Info;
871 IoStackLocation =
Irp->Tail.Overlay.CurrentStackLocation;
876 IoStackLocation->
Parameters.QueryFile.Length =
878 IoStackLocation->
Parameters.QueryFile.FileInformationClass =
933 FastDispatch =
DeviceObject->DriverObject->FastIoDispatch;
936 if (FastDispatch && FastDispatch->
MdlRead)
950 FastDispatch = BaseDeviceObject->DriverObject->FastIoDispatch;
981 FastDispatch =
DeviceObject->DriverObject->FastIoDispatch;
992 FastDispatch = BaseDeviceObject->DriverObject->FastIoDispatch;
1162 FastDispatch =
DeviceObject->DriverObject->FastIoDispatch;
1176 FastDispatch = BaseDeviceObject->DriverObject->FastIoDispatch;
1230 FastDispatch =
DeviceObject->DriverObject->FastIoDispatch;
1247 FastDispatch = BaseDeviceObject->DriverObject->FastIoDispatch;
1284 PSHARED_CACHE_MAP SharedCacheMap;
1329 if ((FileOffsetAppend ==
FALSE) &&
1334 ResourceAcquiredShared =
TRUE;
1343 if (FileOffsetAppend !=
FALSE)
1360 if (ResourceAcquiredShared &&
1367 if (FileOffsetAppend)
1382 goto FailAndCleanup;
1411 goto FailAndCleanup;
1420 FileSizeModified =
TRUE;
1505 if (FileSizeModified)
1508 (PSHARED_CACHE_MAP)
FileObject->SectionObjectPointer->SharedCacheMap;
1509 SharedCacheMap->FileSize.QuadPart =
NewSize.QuadPart;
1518 if (FileSizeModified)
1539 goto FailAndCleanup;
1611 FastDispatch =
DeviceObject->DriverObject->FastIoDispatch;
1668 FastDispatch =
DeviceObject->DriverObject->FastIoDispatch;
1703 FastDispatch =
DeviceObject->DriverObject->FastIoDispatch;
1772 FastDispatch =
DeviceObject->DriverObject->FastIoDispatch;
1815 FastDispatch =
DeviceObject->DriverObject->FastIoDispatch;
1857 ResourceToAcquire = FcbHeader->
Resource;
1865 ResourceToAcquire = FcbHeader->
Resource;
1898 ResourceToAcquire = FcbHeader->
Resource;
1909 else if (ResourceToAcquire != FcbHeader->
Resource)
1913 ResourceToAcquire = FcbHeader->
Resource;
1960 FastDispatch =
DeviceObject->DriverObject->FastIoDispatch;
2017 if (NewCallbacks ==
NULL)
BOOLEAN NTAPI ExAcquireSharedWaitForExclusive(IN PERESOURCE Resource, IN BOOLEAN Wait)
_In_ PLARGE_INTEGER EndingOffset
#define FS_FILTER_ACQUIRE_FOR_SECTION_SYNCHRONIZATION
VOID NTAPI CcMdlRead(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus)
BOOLEAN NTAPI FsRtlIsNtstatusExpected(IN NTSTATUS NtStatus)
#define STATUS_FILE_IS_A_DIRECTORY
#define STATUS_INSUFFICIENT_RESOURCES
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define FsRtlEnterFileSystem
ULONG CcFastReadNotPossible
#define PsGetCurrentThread()
#define FsRtlExitFileSystem
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
BOOLEAN NTAPI FsRtlMdlReadCompleteDev(IN PFILE_OBJECT FileObject, IN PMDL MemoryDescriptorList, IN PDEVICE_OBJECT DeviceObject)
#define STATUS_INVALID_PARAMETER
_In_ PLARGE_INTEGER _Out_ struct _ERESOURCE ** ResourceToRelease
BOOLEAN NTAPI FsRtlMdlWriteCompleteDev(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject)
_In_ WDFDPC _In_ BOOLEAN Wait
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
#define FSRTL_FLAG_ACQUIRE_MAIN_RSRC_EX
VOID NTAPI ExConvertExclusiveToSharedLite(IN PERESOURCE Resource)
VOID NTAPI FsRtlIncrementCcFastReadWait(VOID)
PFAST_IO_MDL_READ MdlRead
#define STATUS_INVALID_DEVICE_REQUEST
PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite
PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection
PDEVICE_OBJECT NTAPI IoGetRelatedDeviceObject(IN PFILE_OBJECT FileObject)
BOOLEAN NTAPI FsRtlMdlReadComplete(IN PFILE_OBJECT FileObject, IN OUT PMDL MdlChain)
NTSTATUS NTAPI FsRtlGetFileSize(IN PFILE_OBJECT FileObject, IN OUT PLARGE_INTEGER FileSize)
VOID NTAPI FsRtlAcquireFileExclusive(IN PFILE_OBJECT FileObject)
BOOLEAN NTAPI FsRtlPrepareMdlWriteDev(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
PFAST_IO_RELEASE_FOR_MOD_WRITE ReleaseForModWrite
VOID NTAPI FsRtlReleaseFile(IN PFILE_OBJECT FileObject)
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
BOOLEAN NTAPI FsRtlPrepareMdlWrite(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus)
PFAST_IO_MDL_READ_COMPLETE MdlReadComplete
BOOLEAN NTAPI KeIsExecutingDpc(VOID)
VOID NTAPI CcMdlReadComplete2(IN PFILE_OBJECT FileObject, IN PMDL MdlChain)
#define STATUS_END_OF_FILE
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
FS_FILTER_PARAMETERS Parameters
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
#define FO_FILE_SIZE_CHANGED
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER _In_ ULONG SectionPageProtection
_In_ PDEVICE_OBJECT DeviceObject
#define EXCEPTION_CONTINUE_SEARCH
PFS_FILTER_CALLBACK PreAcquireForSectionSynchronization
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
VOID NTAPI CcPrepareMdlWrite(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus)
NTSTATUS NTAPI FsRtlAcquireFileExclusiveCommon(IN PFILE_OBJECT FileObject, IN FS_FILTER_SECTION_SYNC_TYPE SyncType, IN ULONG Reserved)
BOOLEAN NTAPI CcZeroData(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER StartOffset, IN PLARGE_INTEGER EndOffset, IN BOOLEAN Wait)
#define FO_FILE_FAST_IO_READ
_Inout_ PMDL MemoryDescriptorList
PDRIVER_EXTENSION DriverExtension
NTSTATUS NTAPI FsRtlAcquireToCreateMappedSection(_In_ PFILE_OBJECT FileObject, _In_ ULONG SectionPageProtection)
_In_ PVOID _In_ ULONG Event
#define EXCEPTION_EXECUTE_HANDLER
NTSTATUS NTAPI FsRtlAcquireFileForModWriteEx(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER EndingOffset, IN PERESOURCE *ResourceToRelease)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_Reserved_ PVOID Reserved
VOID NTAPI FsRtlIncrementCcFastReadNoWait(VOID)
#define FSRTL_FLAG_ACQUIRE_MAIN_RSRC_SH
VOID NTAPI FsRtlIncrementCcFastReadNotPossible(VOID)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(_Va, _Size)
BOOLEAN NTAPI FsRtlMdlReadDev(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
VOID NTAPI FsRtlReleaseFileForModWrite(IN PFILE_OBJECT FileObject, IN PERESOURCE ResourceToRelease)
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
const struct winhelp_callbacks Callbacks
#define NT_SUCCESS(StatCode)
BOOLEAN NTAPI CcCanIWrite(IN PFILE_OBJECT FileObject, IN ULONG BytesToWrite, IN BOOLEAN Wait, IN UCHAR Retrying)
VOID NTAPI FsRtlAcquireFileForCcFlush(IN PFILE_OBJECT FileObject)
struct _DEVICE_OBJECT * DeviceObject
__in PWDFDEVICE_INIT __in BOOLEAN Exclusive
PDEVICE_OBJECT DeviceObject
VOID NTAPI CcFastCopyRead(IN PFILE_OBJECT FileObject, IN ULONG FileOffset, IN ULONG Length, IN ULONG PageCount, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus)
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
struct _EXTENDED_DRIVER_EXTENSION * PEXTENDED_DRIVER_EXTENSION
#define ExAllocatePoolWithTag(hernya, size, tag)
NTSTATUS NTAPI FsRtlRegisterFileSystemFilterCallbacks(PDRIVER_OBJECT FilterDriverObject, PFS_FILTER_CALLBACKS Callbacks)
PFAST_IO_ACQUIRE_FOR_CCFLUSH AcquireForCcFlush
BOOLEAN NTAPI CcCopyRead(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus)
#define FILE_STANDARD_INFORMATION
BOOLEAN NTAPI IoSetThreadHardErrorMode(IN BOOLEAN HardErrorEnabled)
NTKERNELAPI BOOLEAN NTAPI CcCopyWriteWontFlush(_In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ ULONG Length)
ULONG CcFastReadResourceMiss
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
_Must_inspect_result_ _In_ USHORT NewSize
static const WCHAR Cleanup[]
_Must_inspect_result_ _In_ WDFDEVICE Device
PPCI_DRIVER_EXTENSION DriverExtension
PFAST_IO_ACQUIRE_FOR_MOD_WRITE AcquireForModWrite
#define FSRTL_FAST_IO_TOP_LEVEL_IRP
BOOLEAN NTAPI CcCopyWrite(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN PVOID Buffer)
_In_ ULONG _In_ ULONG Offset
FAST_IO_DISPATCH FastIoDispatch
VOID NTAPI CcMdlWriteComplete2(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain)
#define KeInitializeEvent(pEvt, foo, foo2)
_In_ PFCB _In_ LONGLONG FileOffset
PDEVICE_OBJECT NTAPI IoGetBaseFileSystemDeviceObject(IN PFILE_OBJECT FileObject)
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo
ULONG SizeOfFsFilterCallbackData
#define ExAcquireResourceShared
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
#define FileStandardInformation
BOOLEAN NTAPI FsRtlCopyRead(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
enum _FS_FILTER_SECTION_SYNC_TYPE FS_FILTER_SECTION_SYNC_TYPE
BOOLEAN NTAPI FsRtlCopyWrite(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete
ULONG CcFastMdlReadNotPossible
NTSTATUS NTAPI FsRtlAcquireFileForCcFlushEx(IN PFILE_OBJECT FileObject)
struct _FILE_OBJECT * FileObject
VOID NTAPI FsRtlReleaseFileForCcFlush(IN PFILE_OBJECT FileObject)
BOOLEAN NTAPI FsRtlMdlWriteComplete(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain)
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
PFS_FILTER_COMPLETION_CALLBACK PostAcquireForSectionSynchronization
PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible
ULONG NTAPI ExIsResourceAcquiredSharedLite(IN PERESOURCE Resource)
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
PIRP NTAPI IoAllocateIrp(IN CCHAR StackSize, IN BOOLEAN ChargeQuota)
#define IRP_MJ_QUERY_INFORMATION
#define _SEH2_EXCEPT(...)
struct _FS_FILTER_PARAMETERS::@3892 AcquireForSectionSynchronization
#define _SEH2_GetExceptionCode()
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection
PFAST_IO_RELEASE_FOR_CCFLUSH ReleaseForCcFlush
BOOLEAN NTAPI FsRtlMdlRead(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus)
VOID NTAPI FsRtlIncrementCcFastReadResourceMiss(VOID)
VOID NTAPI CcFastCopyWrite(IN PFILE_OBJECT FileObject, IN ULONG FileOffset, IN ULONG Length, IN PVOID Buffer)
struct _FSRTL_COMMON_FCB_HEADER * PFSRTL_COMMON_FCB_HEADER
#define IRP_SYNCHRONOUS_PAGING_IO