#include "UdfProcs.h"
Go to the source code of this file.
Classes | |
struct | _IO_RUN |
Defines | |
#define | BugCheckFileId (UDFS_BUG_CHECK_DEVIOSUP) |
#define | Dbg (UDFS_DEBUG_LEVEL_DEVIOSUP) |
#define | MAX_PARALLEL_IOS 5 |
Typedefs | |
typedef _IO_RUN | IO_RUN |
typedef IO_RUN * | PIO_RUN |
Functions | |
BOOLEAN | UdfPrepareBuffers (IN PIRP_CONTEXT IrpContext, IN PIRP Irp, IN PFCB Fcb, IN PVOID UserBuffer, IN ULONG UserBufferOffset, IN LONGLONG StartingOffset, IN ULONG ByteCount, IN PIO_RUN IoRuns, IN PULONG RunCount, IN PULONG ThisByteCount, OUT PBOOLEAN SparseRuns) |
BOOLEAN | UdfFinishBuffers (IN PIRP_CONTEXT IrpContext, IN PIO_RUN IoRuns, IN ULONG RunCount, IN BOOLEAN FinalCleanup) |
VOID | UdfMultipleAsync (IN PIRP_CONTEXT IrpContext, IN ULONG RunCount, IN PIO_RUN IoRuns) |
VOID | UdfSingleAsync (IN PIRP_CONTEXT IrpContext, IN LONGLONG ByteOffset, IN ULONG ByteCount) |
VOID | UdfWaitSync (IN PIRP_CONTEXT IrpContext) |
NTSTATUS | UdfMultiSyncCompletionRoutine (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) |
NTSTATUS | UdfMultiAsyncCompletionRoutine (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) |
NTSTATUS | UdfSingleSyncCompletionRoutine (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) |
NTSTATUS | UdfSingleAsyncCompletionRoutine (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) |
NTSTATUS | UdfNonCachedRead (IN PIRP_CONTEXT IrpContext, IN PFCB Fcb, IN LONGLONG StartingOffset, IN ULONG ByteCount) |
NTSTATUS | UdfCreateUserMdl (IN PIRP_CONTEXT IrpContext, IN ULONG BufferLength, IN BOOLEAN RaiseOnError) |
NTSTATUS | UdfPerformDevIoCtrl (IN PIRP_CONTEXT IrpContext, IN ULONG IoControlCode, IN PDEVICE_OBJECT Device, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength, IN BOOLEAN InternalDeviceIoControl, IN BOOLEAN OverrideVerify, OUT PIO_STATUS_BLOCK Iosb OPTIONAL) |
NTSTATUS | UdfReadSectors (IN PIRP_CONTEXT IrpContext, IN LONGLONG StartingOffset, IN ULONG ByteCount, IN BOOLEAN ReturnError, IN OUT PVOID Buffer, IN PDEVICE_OBJECT TargetDeviceObject) |
BOOLEAN | UdfPrepareBuffers (IN PIRP_CONTEXT IrpContext, IN PIRP Irp, IN PFCB Fcb, IN PVOID UserBuffer, IN ULONG UserBufferOffset, IN LONGLONG StartingOffset, IN ULONG ByteCount, IN PIO_RUN IoRuns, IN PULONG RunCount, IN PULONG ThisByteCount, IN PBOOLEAN SparseRuns) |
|
Definition at line 27 of file deviosup.c. |
|
Definition at line 33 of file deviosup.c. |
|
Definition at line 107 of file deviosup.c. Referenced by UdfNonCachedRead(), and UdfPrepareBuffers(). |
|
|
|
Definition at line 105 of file deviosup.c. Referenced by UdfFinishBuffers(), and UdfPrepareBuffers(). |
|
Definition at line 474 of file deviosup.c. References ASSERT, ASSERT_IRP, ASSERT_IRP_CONTEXT, EXCEPTION_EXECUTE_HANDLER, FALSE, FsRtlIsNtstatusExpected(), IoAllocateMdl(), IoFreeMdl(), IoWriteAccess, MmProbeAndLockPages(), NTSTATUS(), NULL, PAGED_CODE, Status, and UdfRaiseStatus(). Referenced by UdfNonCachedRead().
|
|
Definition at line 1280 of file deviosup.c. References Add2Ptr, FALSE, IoFreeIrp(), IoFreeMdl(), _IRP::MdlAddress, NULL, PAGED_CODE, PIO_RUN, _IO_RUN::SavedIrp, _IO_RUN::TransferBuffer, _IO_RUN::TransferBufferOffset, _IO_RUN::TransferByteCount, _IO_RUN::TransferMdl, TRUE, UdfFreePool(), and _IO_RUN::UserBuffer. Referenced by UdfNonCachedRead().
|
|
Definition at line 1863 of file deviosup.c. References ExReleaseResourceForThread, IoFreeIrp(), IoFreeMdl(), IoGetCurrentIrpStackLocation, IoMarkIrpPending, _IRP::IoStatus, Irp, _UDF_IO_CONTEXT::IrpCount, _UDF_IO_CONTEXT::MasterIrp, _IRP::MdlAddress, NT_SUCCESS, _UDF_IO_CONTEXT::RequestedByteCount, _UDF_IO_CONTEXT::Resource, _UDF_IO_CONTEXT::ResourceThreadId, _UDF_IO_CONTEXT::Status, and UdfFreeIoContext. Referenced by UdfMultipleAsync().
|
|
Definition at line 1435 of file deviosup.c. References _IRP::AssociatedIrp, FALSE, FlagOn, IoAllocateMdl(), IoBuildPartialMdl(), IoCallDriver, IoGetCurrentIrpStackLocation, IoGetNextIrpStackLocation, IoMakeAssociatedIrp(), IoSetCompletionRoutine, IoSetNextIrpStackLocation, Irp, IRP_CONTEXT_FLAG_WAIT, IRP_MJ_READ, _IO_STACK_LOCATION::MajorFunction, NULL, PAGED_CODE, _IO_STACK_LOCATION::Parameters, PIO_COMPLETION_ROUTINE, TRUE, UdfMultiAsyncCompletionRoutine(), UdfMultiSyncCompletionRoutine(), UdfRaiseStatus(), and VOID(). Referenced by UdfNonCachedRead().
|
|
Definition at line 1779 of file deviosup.c. References FALSE, IoFreeIrp(), IoFreeMdl(), _IRP::IoStatus, Irp, _UDF_IO_CONTEXT::IrpCount, KeSetEvent(), _UDF_IO_CONTEXT::MasterIrp, _IRP::MdlAddress, NT_SUCCESS, PUDF_IO_CONTEXT, _UDF_IO_CONTEXT::Status, and _UDF_IO_CONTEXT::SyncEvent. Referenced by UdfMultipleAsync().
|
|
Definition at line 201 of file deviosup.c. References Add2Ptr, ASSERT, ClearFlag, DebugUnwind, FALSE, FCB_STATE_EMBEDDED_DATA, FCB_STATE_VMCB_MAPPING, FlagOn, IRP_CONTEXT_FLAG_ALLOC_IO, IRP_CONTEXT_FLAG_WAIT, KeFlushIoBuffers(), MAX_PARALLEL_IOS, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, Status, TRUE, try_leave, UdfCreateUserMdl(), UdfFinishBuffers(), UdfMapUserBuffer, UdfMultipleAsync(), UdfPrepareBuffers(), UdfRaiseStatus(), UdfSingleAsync(), and UdfWaitSync(). Referenced by UdfCommonRead().
|
|
Definition at line 573 of file deviosup.c. References Event(), Executive, FALSE, IoBuildDeviceIoControlRequest(), IoCallDriver, IoGetNextIrpStackLocation, Irp, KeInitializeEvent, KernelMode, KeWaitForSingleObject(), NTSTATUS(), NULL, PAGED_CODE, SetFlag, SL_OVERRIDE_VERIFY_VOLUME, Status, and VOID(). Referenced by UdfDetermineVolumeBounding(), UdfMountVolume(), UdfVerifyVcb(), and UdfVerifyVolume().
|
|
Definition at line 883 of file deviosup.c. References Add2Ptr, _IO_RUN::DiskByteCount, _IO_RUN::DiskOffset, FALSE, FlagOn, FsRtlAllocatePoolWithTag, IoAllocateMdl(), Irp, IRP_CONTEXT_FLAG_WAIT, LlSectorTruncate, MAX_PARALLEL_IOS, _IRP::MdlAddress, MmBuildMdlForNonPagedPool(), NULL, PAGE_SIZE, PAGED_CODE, PIO_RUN, SectorAlign, SectorOffset, SectorSize, SectorTruncate, TAG_IO_BUFFER, _IO_RUN::TransferBuffer, _IO_RUN::TransferBufferOffset, _IO_RUN::TransferByteCount, _IO_RUN::TransferMdl, _IO_RUN::TransferVirtualAddress, TRUE, UdfLookupAllocation(), UdfNonPagedPool, UdfRaiseStatus(), _IRP::UserBuffer, and _IO_RUN::UserBuffer. Referenced by UdfNonCachedRead().
|
|
|
|
Definition at line 685 of file deviosup.c. References ASSERT, Buffer, BytesFromSectors, Dbg, DebugTrace, Event(), Executive, FALSE, FlagOn, FsRtlLookupLargeMcbEntry(), IoBuildSynchronousFsdRequest(), IoCallDriver, IoGetNextIrpStackLocation, Irp, IRP_MJ_READ, KeInitializeEvent, KernelMode, KeWaitForSingleObject(), LlSectorsFromBytes, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, SectorSize, SetFlag, SL_OVERRIDE_VERIFY_VOLUME, Status, UdfMethod2TransformByteOffset, UdfNormalizeAndRaiseStatus(), UdfRaiseStatus(), and VCB_STATE_METHOD_2_FIXUP. Referenced by UdfFindAnchorVolumeDescriptor(), UdfFindFileSetDescriptor(), UdfFindVolumeDescriptors(), UdfLoadSparingTables(), UdfRecognizeVolume(), and UdfUpdateVcbPhase0().
|
|
Definition at line 1642 of file deviosup.c. References FlagOn, IoCallDriver, IoGetNextIrpStackLocation, IoSetCompletionRoutine, IRP_CONTEXT_FLAG_WAIT, IRP_MJ_READ, _IO_STACK_LOCATION::MajorFunction, PAGED_CODE, _IO_STACK_LOCATION::Parameters, PIO_COMPLETION_ROUTINE, TRUE, UdfSingleAsyncCompletionRoutine(), UdfSingleSyncCompletionRoutine(), and VOID(). Referenced by UdfNonCachedRead().
|
|
Definition at line 2039 of file deviosup.c. References ExReleaseResourceForThread, IoMarkIrpPending, _IRP::IoStatus, Irp, NT_SUCCESS, Resource, and UdfFreeIoContext. Referenced by UdfSingleAsync().
|
|
Definition at line 1980 of file deviosup.c. References FALSE, _IRP::IoStatus, Irp, KeSetEvent(), and NT_SUCCESS. Referenced by UdfSingleAsync().
|
|
Definition at line 1740 of file deviosup.c. References Executive, FALSE, KeClearEvent, KernelMode, KeWaitForSingleObject(), NULL, and PAGED_CODE. Referenced by UdfNonCachedRead().
|