20 #define UDF_BUG_CHECK_ID UDF_FILE_FAST_IO 71 MmPrint((
" UDFFastIoCheckIfPossible() TRUE, Failed\n"));
108 MmPrint((
" UDFFastIoCheckIfPossible() %s\n", ReturnedStatus ?
"TRUE" :
"FALSE"));
109 return(ReturnedStatus);
124 UDFPrint((
" FastIoIsNotPossible\n"));
135 UDFPrint((
" FastIoIsQuestionable\n"));
199 MainResourceAcquired =
TRUE;
214 if (MainResourceAcquired) {
217 MainResourceAcquired =
FALSE;
229 return(ReturnedStatus);
321 return(ReturnedStatus);
348 MmPrint((
" AcqForCreateSection()\n"));
354 MmPrint((
" already acquired\n"));
392 MmPrint((
" RelFromCreateSection()\n"));
432 MmPrint((
" UDFAcqLazyWrite()\n"));
480 MmPrint((
" UDFRelLazyWrite()\n"));
522 #define NtReqFcb ((PtrUDFNTRequiredFCB)Context) 524 MmPrint((
" AcqForReadAhead()\n"));
564 #define NtReqFcb ((PtrUDFNTRequiredFCB)Context) 566 MmPrint((
" RelFromReadAhead()\n"));
581 #if(_WIN32_WINNT >= 0x0400) 601 UDFFastIoQueryNetInfo(
640 MainResourceAcquired =
TRUE;
655 if (MainResourceAcquired) {
658 MainResourceAcquired =
FALSE;
670 return(ReturnedStatus);
920 UDFFastIoAcqModWrite(
932 #define NtReqFcb ((PtrUDFNTRequiredFCB)(FileObject->FsContext)) 960 (*ResourceToRelease) = &(
NtReqFcb->PagingIoResource);
992 UDFFastIoRelModWrite(
1001 #define NtReqFcb ((PtrUDFNTRequiredFCB)(FileObject->FsContext)) 1039 UDFFastIoAcqCcFlush(
1052 #define NtReqFcb ((PtrUDFNTRequiredFCB)(FileObject->FsContext)) 1085 UDFFastIoRelCcFlush(
1096 #define NtReqFcb ((PtrUDFNTRequiredFCB)(FileObject->FsContext)) 1156 #endif //_WIN32_WINNT >= 0x0400 1181 if(
Fcb->
Vcb->VerifyCtx.QueuedCount ||
1183 AdPrint((
" Verify queue overflow -> UDFFastIoCopyWrite() = FALSE\n"));
1186 if(
Fcb->NTRequiredFCB->SectionObject.DataSectionObject &&
1191 MmPrint((
" no FastIo 16Mb\n"));
#define UDFAcquireResourceExclusive(Resource, CanWait)
_In_ PLARGE_INTEGER EndingOffset
VOID NTAPI UDFRelReadAhead(IN PVOID Context)
struct _UDFContextControlBlock * PtrUDFCCB
BOOLEAN NTAPI FsRtlFastCheckLockForRead(IN PFILE_LOCK FileLock, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, IN ULONG Key, IN PFILE_OBJECT FileObject, IN PVOID Process)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define FsRtlEnterFileSystem
VOID NTAPI UDFFastIoAcqCreateSec(IN PFILE_OBJECT FileObject)
#define FsRtlExitFileSystem
VOID UDFLogEvent(NTSTATUS UDFEventLogId, NTSTATUS RC)
enum _FAST_IO_POSSIBLE FAST_IO_POSSIBLE
#define STATUS_INVALID_PARAMETER
_In_ PLARGE_INTEGER _Out_ struct _ERESOURCE ** ResourceToRelease
#define UDF_NODE_TYPE_VCB
_In_ WDFDPC _In_ BOOLEAN Wait
#define UDFReleaseResource(Resource)
NTSTATUS UDFGetBasicInformation(IN PFILE_OBJECT FileObject, IN PtrUDFFCB Fcb, IN PFILE_BASIC_INFORMATION PtrBuffer, IN OUT LONG *PtrReturnedLength)
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN CheckForReadOperation
struct _FILE_NETWORK_OPEN_INFORMATION FILE_NETWORK_OPEN_INFORMATION
VOID NTAPI UDFFastIoRelCreateSec(IN PFILE_OBJECT FileObject)
struct _FCB::@713::@716 Fcb
BOOLEAN NTAPI UDFAcqReadAhead(IN PVOID Context, IN BOOLEAN Wait)
_In_ PDEVICE_OBJECT DeviceObject
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define PsGetCurrentProcess
#define _SEH2_GetExceptionInformation()
BOOLEAN NTAPI UDFFastIoQueryBasicInfo(IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_BASIC_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
BOOLEAN NTAPI ExIsResourceAcquiredExclusiveLite(IN PERESOURCE Resource)
#define FsRtlAreThereCurrentFileLocks(FL)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
NTSTATUS UDFExceptionHandler(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
#define UDF_MAX_VERIFY_CACHE
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG LockKey
BOOLEAN NTAPI UDFFastIoCopyWrite(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, IN PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
NTSTATUS UDFGetStandardInformation(IN PtrUDFFCB Fcb, IN PFILE_STANDARD_INFORMATION PtrBuffer, IN OUT LONG *PtrReturnedLength)
VOID NTAPI UDFRelLazyWrite(IN PVOID Context)
#define UDF_FCB_DIRECTORY
PIRP NTAPI IoGetTopLevelIrp(VOID)
#define UDF_VCB_FLAGS_VOLUME_MOUNTED
BOOLEAN NTAPI UDFFastIoCheckIfPossible(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, IN BOOLEAN CheckForReadOperation, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
VOID NTAPI IoSetTopLevelIrp(IN PIRP Irp)
#define FILE_STANDARD_INFORMATION
long UDFExceptionFilter(PtrUDFIrpContext PtrIrpContext, PEXCEPTION_POINTERS PtrExceptionPointers)
BOOLEAN NTAPI UDFAcqLazyWrite(IN PVOID Context, IN BOOLEAN Wait)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
#define UDFAcquireResourceShared(Resource, CanWait)
#define UDF_FCB_PAGE_FILE
FAST_IO_POSSIBLE NTAPI UDFIsFastIoPossible(IN PtrUDFFCB Fcb)
#define UDF_ERROR_INTERNAL_ERROR
NTSTATUS UDFGetNetworkInformation(IN PtrUDFFCB Fcb, IN PFILE_NETWORK_OPEN_INFORMATION PtrBuffer, IN OUT PLONG PtrReturnedLength)
_In_ PFCB _In_ LONGLONG FileOffset
#define UDF_CHECK_PAGING_IO_RESOURCE(NTReqFCB)
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)
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
BOOLEAN NTAPI UDFFastIoQueryStdInfo(IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, OUT PFILE_STANDARD_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
#define _SEH2_EXCEPT(...)
#define FSRTL_CACHE_TOP_LEVEL_IRP
BOOLEAN NTAPI FsRtlFastCheckLockForWrite(IN PFILE_LOCK FileLock, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, IN ULONG Key, IN PFILE_OBJECT FileObject, IN PVOID Process)
struct _UDFNTRequiredFCB * PtrUDFNTRequiredFCB
#define FILE_BASIC_INFORMATION