238 SIZE_T NumberBytesRead = 0;
267 UDFPrint((
" FSRTL_FSP_TOP_LEVEL_IRP\n"));
270 UDFPrint((
" FSRTL_CACHE_TOP_LEVEL_IRP\n"));
273 UDFPrint((
" FSRTL_MOD_WRITE_TOP_LEVEL_IRP\n"));
277 UDFPrint((
" FSRTL_FAST_IO_TOP_LEVEL_IRP\n"));
281 UDFPrint((
" NULL TOP_LEVEL_IRP\n"));
287 UDFPrint((
" RECURSIVE_IRP, TOP = %x\n", TopIrp));
294 MmPrint((
" Enter Irp, MDL=%x\n",
Irp->MdlAddress));
295 if(
Irp->MdlAddress) {
349 CanWait ?
"W" :
"w", PagingIo ?
"Pg" :
"pg",
350 NonBufferedIo ?
"NBuf" :
"buff", SynchronousIo ?
"Snc" :
"Asc"));
385 UDFPrint((
" UDF_IRP_CONTEXT_FLUSH2_REQUIRED\n"));
391 #ifdef UDF_DELAYED_CLOSE 393 #endif //UDF_DELAYED_CLOSE 399 UDFPrint((
" UDF_IRP_CONTEXT_FLUSH_REQUIRED\n"));
404 PtrResourceAcquired = &(
Vcb->VCBResource);
409 PtrResourceAcquired =
NULL;
414 PtrResourceAcquired = &(
Vcb->VCBResource);
452 NonBufferedIo =
TRUE;
518 UDFPrint((
" TruncatedLength = %x\n", TruncatedLength));
536 #define UDF_REQ_NOT_VIA_CACHE_MGR(ptr) (!MmIsRecursiveIoFault() && ((ptr)->ImageSectionObject != NULL)) 555 MmPrint((
" CcFlushCache()\n"));
584 PtrResourceAcquired2 = &(
NtReqFcb->PagingIoResource);
593 PtrResourceAcquired2 = &(
NtReqFcb->PagingIoResource);
602 PtrResourceAcquired = &(
NtReqFcb->MainResource);
619 #ifdef UDF_DISABLE_SYSTEM_CACHE_MANAGER 620 NonBufferedIo =
TRUE;
623 if(
Fcb &&
Fcb->FileInfo &&
Fcb->FileInfo->Dloc) {
624 AdPrint((
"UDFCommonRead: DataLoc %x, Mapping %x\n", &
Fcb->FileInfo->Dloc->DataLoc,
Fcb->FileInfo->Dloc->DataLoc.Mapping));
628 if (!NonBufferedIo) {
638 MmPrint((
" CcInitializeCacheMap()\n"));
643 MmPrint((
" CcSetReadAheadGranularity()\n"));
677 RC =
Irp->IoStatus.Status;
678 NumberBytesRead =
Irp->IoStatus.Information;
684 MmPrint((
" Read NonBufferedIo\n"));
688 UDFPrint((
"FSRTL_MOD_WRITE_TOP_LEVEL_IRP => CanWait\n"));
692 UDFPrint((
"FSRTL_CACHE_TOP_LEVEL_IRP => CanWait\n"));
707 MmPrint((
" !PASSIVE_LEVEL\n"));
712 MmPrint((
" Locked => CanWait\n"));
725 PtrResourceAcquired2 = &(
NtReqFcb->PagingIoResource);
739 CacheLocked, (
PCHAR)SystemBuffer, &NumberBytesRead);
784 if(PtrResourceAcquired2) {
787 if(PtrResourceAcquired) {
789 (PtrResourceAcquired ==
820 if (SynchronousIo && !PagingIo &&
NT_SUCCESS(RC)) {
832 Irp->IoStatus.Status = RC;
833 Irp->IoStatus.Information = NumberBytesRead;
834 UDFPrint((
" NumberBytesRead = %x\n", NumberBytesRead));
838 MmPrint((
" Complete Irp, MDL=%x\n",
Irp->MdlAddress));
839 if(
Irp->MdlAddress) {
#define KeGetCurrentIrql()
#define UDFAcquireResourceExclusive(Resource, CanWait)
VOID UDFReleaseIrpContext(PtrUDFIrpContext PtrIrpContext)
struct _UDFContextControlBlock * PtrUDFCCB
#define UDFCloseAllSystemDelayedInDir(Vcb, FI)
#define FSRTL_MOD_WRITE_TOP_LEVEL_IRP
VOID NTAPI CcFlushCache(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN OPTIONAL PLARGE_INTEGER FileOffset, IN ULONG Length, OUT OPTIONAL PIO_STATUS_BLOCK IoStatus)
#define STATUS_INVALID_PARAMETER
#define UDF_NODE_TYPE_VCB
#define CollectStatistics2(VCB, Field)
#define UDFReleaseResource(Resource)
#define STATUS_INVALID_DEVICE_REQUEST
OSSTATUS UDFReadData(IN PVCB Vcb, IN BOOLEAN Translate, IN LONGLONG Offset, IN ULONG Length, IN BOOLEAN Direct, OUT PCHAR Buffer, OUT PSIZE_T ReadBytes)
#define UDF_IRP_CONTEXT_CAN_BLOCK
VOID UDFMdlComplete(PtrUDFIrpContext PtrIrpContext, PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN ReadCompletion)
#define STATUS_END_OF_FILE
#define UDF_VCB_FLAGS_RAW_DISK
#define FO_SYNCHRONOUS_IO
#define UDF_IRP_CONTEXT_FLUSH2_REQUIRED
#define IO_DISK_INCREMENT
#define FO_FILE_FAST_IO_READ
#define FILE_ACTION_MODIFIED
#define STATUS_INVALID_USER_BUFFER
#define FILE_ACTION_MODIFIED_STREAM
#define UDFAcquireSharedWaitForExclusive(Resource, CanWait)
#define _SEH2_AbnormalTermination()
#define IoCompleteRequest
BOOLEAN UDFAcquireResourceSharedWithCheck(IN PERESOURCE Resource)
__inline VOID UDFNotifyFullReportChange(PVCB V, PUDF_FILE_INFO FI, ULONG E, ULONG A)
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
#define UDF_VCB_SKIP_EJECT_CHECK
#define FILE_USE_FILE_POINTER_POSITION
#define NT_SUCCESS(StatCode)
VOID NTAPI CcInitializeCacheMap(IN PFILE_OBJECT FileObject, IN PCC_FILE_SIZES FileSizes, IN BOOLEAN PinAccess, IN PCACHE_MANAGER_CALLBACKS Callbacks, IN PVOID LazyWriteContext)
BOOLEAN NTAPI FsRtlCheckLockForReadAccess(IN PFILE_LOCK FileLock, IN PIRP Irp)
#define UDF_FCB_DIRECTORY
PIRP NTAPI IoGetTopLevelIrp(VOID)
#define STATUS_ACCESS_DENIED
#define FSRTL_FSP_TOP_LEVEL_IRP
#define UDF_IRP_CONTEXT_FORCED_POST
#define CollectStatisticsEx(VCB, Field, a)
#define OVERFLOW_READ_THRESHHOLD
PVOID UDFGetCallersBuffer(PtrUDFIrpContext PtrIrpContext, PIRP Irp)
#define UDF_VCB_FLAGS_VOLUME_MOUNTED
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 UDFIsFileCached__(Vcb, FileInfo, Offset, Length, ForWrite)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
OSSTATUS WCacheEODirect__(IN PW_CACHE Cache, IN PVOID Context)
NTSTATUS UDFUnlockCallersBuffer(PtrUDFIrpContext PtrIrpContext, PIRP Irp, PVOID SystemBuffer)
#define UDFAcquireResourceShared(Resource, CanWait)
#define UDF_FCB_PAGE_FILE
OSSTATUS UDFTRead(IN void *_Vcb, IN void *Buffer, IN SIZE_T Length, IN uint32 LBA, OUT PSIZE_T ReadBytes, IN uint32 Flags)
#define FSRTL_FAST_IO_TOP_LEVEL_IRP
FAST_IO_POSSIBLE NTAPI UDFIsFastIoPossible(IN PtrUDFFCB Fcb)
__inline OSSTATUS UDFReadFile__(IN PVCB Vcb, IN PUDF_FILE_INFO FileInfo, IN int64 Offset, IN SIZE_T Length, IN BOOLEAN Direct, OUT int8 *Buffer, OUT PSIZE_T ReadBytes)
struct _FCB::@706::@709 Fcb
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
NTSTATUS UDFPostRequest(IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp)
NTSTATUS UDFPostStackOverflowRead(IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp, IN PtrUDFFCB Fcb)
#define UDF_CHECK_PAGING_IO_RESOURCE(NTReqFCB)
#define CollectStatistics(VCB, Field)
ULONG UDFFlushLogicalVolume(IN PtrUDFIrpContext PtrIrpContext, IN PIRP Irp, IN PVCB Vcb, IN ULONG FlushFlags)
#define STATUS_FILE_LOCK_CONFLICT
VOID UDFCloseAllDelayed(IN PVCB Vcb)
#define UDF_IRP_CONTEXT_RES1_ACQ
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
#define FSRTL_CACHE_TOP_LEVEL_IRP
#define FILE_NOTIFY_CHANGE_LAST_ACCESS
NTSTATUS UDFLockCallersBuffer(PtrUDFIrpContext PtrIrpContext, PIRP Irp, BOOLEAN IsReadOperation, uint32 Length)
#define UDF_IRP_CONTEXT_RES2_ACQ
#define UDF_IRP_CONTEXT_FLUSH_REQUIRED
_In_ PIO_STACK_LOCATION IrpSp
IN PDCB IN PCCB IN VBO IN OUT PULONG OUT PDIRENT OUT PBCB OUT PVBO ByteOffset
ULONG UDFIsResourceAcquired(IN PERESOURCE Resource)
VOID NTAPI CcSetReadAheadGranularity(IN PFILE_OBJECT FileObject, IN ULONG Granularity)