20#define UDF_BUG_CHECK_ID UDF_FILE_ENV_SPEC
22#define MEASURE_IO_PERFORMANCE
24#ifdef MEASURE_IO_PERFORMANCE
32ULONG UDF_SIMULATE_WRITES=0;
46 UDFPrint((
"UDFAsyncCompletionRoutine ctx=%x\n", Contxt));
88 UDFPrint((
"UDFSyncCompletionRoutine ctx=%x\n", Contxt));
146#ifdef MEASURE_IO_PERFORMANCE
159#ifdef MEASURE_IO_PERFORMANCE
222 (*ReadBytes) =
Context->IosbToUse.Information;
246#ifdef MEASURE_IO_PERFORMANCE
249 dt = (
ULONG)((IoExitTime-IoEnterTime)/10/1000);
250 dtm = (
ULONG)(((IoExitTime-IoEnterTime)/10)%1000);
251 PerfPrint((
"\nUDFPhReadSynchronous() exit: %08X, after %d.%4.4d msec.\n", RC, dt, dtm));
253 UDFPrint((
"UDFPhReadSynchronous() exit: %08X\n", RC));
293#ifdef MEASURE_IO_PERFORMANCE
306#ifdef MEASURE_IO_PERFORMANCE
318 if(UDF_SIMULATE_WRITES) {
389 (*WrittenBytes) =
Context->IosbToUse.Information;
401#ifdef MEASURE_IO_PERFORMANCE
410 dt = (
ULONG)((IoExitTime-IoEnterTime)/10/1000);
411 dtm = (
ULONG)(((IoExitTime-IoEnterTime)/10)%1000);
412 PerfPrint((
"\nUDFPhWriteSynchronous() exit: %08X, after %d.%4.4d msec.\n", RC, dt, dtm));
414 UDFPrint((
"nUDFPhWriteSynchronous() exit: %08X\n", RC));
481 Vcb->TargetDeviceObject,
605 if((FI)->ParentFile) {
608 ((FI)->ParentFile->Fcb->FCBName->ObjectName.Length +
sizeof(
WCHAR)),
struct _UDF_PH_CALL_CONTEXT * PUDF_PH_CALL_CONTEXT
#define NT_SUCCESS(StatCode)
BOOLEAN UDFAcquireResourceExclusiveWithCheck(IN PERESOURCE Resource)
NTSTATUS NTAPI UDFSyncCompletionRoutine(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Contxt)
NTSTATUS NTAPI UDFAsyncCompletionRoutine(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Contxt)
NTSTATUS NTAPI UDFPhSendIOCTL(IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer, IN ULONG InputBufferLength, OUT PVOID OutputBuffer, IN ULONG OutputBufferLength, IN BOOLEAN OverrideVerify, OUT PIO_STATUS_BLOCK Iosb OPTIONAL)
NTSTATUS NTAPI UDFTSendIOCTL(IN ULONG IoControlCode, IN PVCB Vcb, IN PVOID InputBuffer, IN ULONG InputBufferLength, OUT PVOID OutputBuffer, IN ULONG OutputBufferLength, IN BOOLEAN OverrideVerify, OUT PIO_STATUS_BLOCK Iosb OPTIONAL)
NTSTATUS NTAPI UDFPhWriteSynchronous(PDEVICE_OBJECT DeviceObject, PVOID Buffer, SIZE_T Length, LONGLONG Offset, PSIZE_T WrittenBytes, ULONG Flags)
NTSTATUS NTAPI UDFPhReadSynchronous(PDEVICE_OBJECT DeviceObject, PVOID Buffer, SIZE_T Length, LONGLONG Offset, PSIZE_T ReadBytes, ULONG Flags)
#define UDFNotifyVolumeEvent(FileObject, EventCode)
__inline VOID UDFNotifyFullReportChange(PVCB V, PUDF_FILE_INFO FI, ULONG E, ULONG A)
#define UDFPhWriteVerifySynchronous
#define UDFReleaseResource(Resource)
#define DbgAllocatePoolWithTag(a, b, c)
#define KeInitializeEvent(pEvt, foo, foo2)
#define KeSetEvent(pEvt, foo, foo2)
#define DbgWaitForSingleObject(o, to)
#define KeQuerySystemTime(t)
#define KeGetCurrentIrql()
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
VOID NTAPI MmUnlockPages(IN PMDL Mdl)
_In_ NDIS_STATUS EventCode
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
VOID NTAPI FsRtlNotifyFullReportChange(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PSTRING FullTargetName, IN USHORT TargetNameOffset, IN PSTRING StreamName OPTIONAL, IN PSTRING NormalizedParentName OPTIONAL, IN ULONG FilterMatch, IN ULONG Action, IN PVOID TargetContext)
PIRP NTAPI IoBuildSynchronousFsdRequest(IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER StartingOffset, IN PKEVENT Event, IN PIO_STATUS_BLOCK IoStatusBlock)
PIRP NTAPI IoBuildAsynchronousFsdRequest(IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER StartingOffset, IN PIO_STATUS_BLOCK IoStatusBlock)
PIRP NTAPI IoBuildDeviceIoControlRequest(IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer, IN ULONG InputBufferLength, IN PVOID OutputBuffer, IN ULONG OutputBufferLength, IN BOOLEAN InternalDeviceIoControl, IN PKEVENT Event, IN PIO_STATUS_BLOCK IoStatusBlock)
VOID NTAPI IoFreeIrp(IN PIRP Irp)
OSSTATUS UDFVWrite(IN PVCB Vcb, IN void *Buffer, IN uint32 BCount, IN uint32 LBA, IN uint32 Flags)
OSSTATUS UDFVRead(IN PVCB Vcb, IN void *Buffer, IN uint32 BCount, IN uint32 LBA, IN uint32 Flags)
#define STATUS_MORE_PROCESSING_REQUIRED
PULONG MinorVersion OPTIONAL
#define RtlCopyMemory(Destination, Source, Length)
#define STATUS_DATA_OVERRUN
#define STATUS_INSUFFICIENT_RESOURCES
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_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_ _In_ ULONG Flags
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetNextIrpStackLocation(_In_ PIRP Irp)
#define SL_OVERRIDE_VERIFY_VOLUME