- Patch for https://github.com/kofemann/ms-nfs41-client.git commit id #046f5de27df3ae1852ced7da5001c5a0a1582287 (intended to be a workaround for the Windows tar issue, which causes some block to be written as blocks of zeros if it unpacks a bzip2-compressed archive):
- ---- snip ----
- diff --git a/sys/nfs41sys_driver.h b/sys/nfs41sys_driver.h
- index 1c39ab6..0e0107c 100644
- --- a/sys/nfs41sys_driver.h
- +++ b/sys/nfs41sys_driver.h
- @@ -48,8 +48,10 @@
- (POOL_FLAG_UNINITIALIZED|POOL_FLAG_CACHE_ALIGNED)
- #define RxAllocatePoolWithTag(rxallocpool, numbytes, tag) \
- - ExAllocatePool2(((((rxallocpool) == NonPagedPoolNx)? \
- - POOL_FLAG_NON_PAGED:POOL_FLAG_NON_PAGED_EXECUTE) | \
- + ExAllocatePool2((( \
- + ((rxallocpool) == PagedPool)?POOL_FLAG_PAGED: \
- + (((rxallocpool) == NonPagedPoolNx)? \
- + POOL_FLAG_NON_PAGED:POOL_FLAG_NON_PAGED_EXECUTE)) | \
- RXALLOCATEPOOL_DEFAULT_ALLOCATEPOOL2FLAGS), \
- (numbytes), (tag))
- #endif /* EXALLOCATEPOOLWITHTAG_DEPRECATED */
- diff --git a/sys/nfs41sys_readwrite.c b/sys/nfs41sys_readwrite.c
- index 050819c..c39a506 100644
- --- a/sys/nfs41sys_readwrite.c
- +++ b/sys/nfs41sys_readwrite.c
- @@ -58,6 +58,7 @@
- #include <winerror.h>
- #include <Ntstrsafe.h>
- +#include <stdbool.h>
- #include "nfs41sys_buildconfig.h"
- @@ -333,7 +334,7 @@ NTSTATUS nfs41_Write(
- IN OUT PRX_CONTEXT RxContext)
- {
- NTSTATUS status = STATUS_INSUFFICIENT_RESOURCES;
- - nfs41_updowncall_entry *entry;
- + nfs41_updowncall_entry *entry = NULL;
- BOOLEAN async = FALSE;
- PLOWIO_CONTEXT LowIoContext = &RxContext->LowIoContext;
- __notnull PMRX_SRV_OPEN SrvOpen = RxContext->pRelevantSrvOpen;
- @@ -344,6 +345,10 @@ NTSTATUS nfs41_Write(
- __notnull PNFS41_FCB nfs41_fcb = NFS41GetFcbExtension(RxContext->pFcb);
- __notnull PNFS41_FOBX nfs41_fobx = NFS41GetFobxExtension(RxContext->pFobx);
- DWORD io_delay;
- +#if 1
- + void *userbuffer_mem = NULL;
- + PMDL userbuffer_mdl = NULL;
- +#endif
- #ifdef ENABLE_TIMINGS
- LARGE_INTEGER t1, t2;
- t1 = KeQueryPerformanceCounter(NULL);
- @@ -362,9 +367,91 @@ NTSTATUS nfs41_Write(
- pNetRootContext->nfs41d_version, SrvOpen->pAlreadyPrefixedName, &entry);
- if (status) goto out;
- +#if 1
- + ULONG padded_readwrite_bytecount = LowIoContext->ParamsFor.ReadWrite.ByteCount + (256) /* 256==debug padding */;
- +
- + userbuffer_mem = ExAllocatePool2(POOL_FLAG_NON_PAGED, padded_readwrite_bytecount, 'ioio');
- + if (userbuffer_mem == NULL) {
- + status = STATUS_NO_MEMORY;
- + goto out;
- + }
- +
- + RtlZeroMemory(userbuffer_mem, padded_readwrite_bytecount);
- +
- + userbuffer_mdl = IoAllocateMdl(userbuffer_mem,
- + padded_readwrite_bytecount,
- + FALSE, FALSE, NULL);
- + if (userbuffer_mdl == NULL) {
- + status = STATUS_NO_MEMORY;
- + goto out;
- + }
- +
- +#pragma warning( push )
- +/*
- + * C28145: "The opaque MDL structure should not be modified by a
- + * driver.", |MDL_MAPPING_CAN_FAIL| is the exception
- + */
- +#pragma warning (disable : 28145)
- + userbuffer_mdl->MdlFlags |= MDL_MAPPING_CAN_FAIL;
- +#pragma warning( pop )
- + MmProbeAndLockPages(userbuffer_mdl, KernelMode, IoModifyAccess);
- +
- + PVOID Src;
- + if ((Src = MmGetSystemAddressForMdlSafe(
- + LowIoContext->ParamsFor.ReadWrite.Buffer,
- + NormalPagePriority)) == NULL) {
- + status = STATUS_INSUFFICIENT_RESOURCES;
- + goto out;
- + }
- +
- + ULONG mdl_bytecount = MmGetMdlByteCount(LowIoContext->ParamsFor.ReadWrite.Buffer);
- +
- + if (mdl_bytecount < LowIoContext->ParamsFor.ReadWrite.ByteCount) {
- + DbgP("#### ERROR: mdl_bytecount(=%lld) < LowIoContext->ParamsFor.ReadWrite.ByteCount(=%lld)\n",
- + (long long)mdl_bytecount,
- + (long long)LowIoContext->ParamsFor.ReadWrite.ByteCount);
- + DbgP("ReadWrite.Buffer=(Next=0x%p, Size=%ld, MdlFlags=0x%lx, "
- + "Process=0x%p, MappedSystemVa=0x%p, StartVa=0x%p, "
- + "ByteCount=%ld, ByteOffset=%ld)\n",
- + (void *)LowIoContext->ParamsFor.ReadWrite.Buffer->Next,
- + (long)LowIoContext->ParamsFor.ReadWrite.Buffer->Size,
- + (long)LowIoContext->ParamsFor.ReadWrite.Buffer->MdlFlags,
- + (void *)LowIoContext->ParamsFor.ReadWrite.Buffer->Process,
- + (void *)LowIoContext->ParamsFor.ReadWrite.Buffer->MappedSystemVa,
- + (void *)LowIoContext->ParamsFor.ReadWrite.Buffer->StartVa,
- + (long)LowIoContext->ParamsFor.ReadWrite.Buffer->ByteCount,
- + (long)LowIoContext->ParamsFor.ReadWrite.Buffer->ByteOffset);
- + status = STATUS_INTERNAL_ERROR;
- + goto out;
- + }
- +
- +#if 1
- + volatile char *cp_dest = userbuffer_mem;
- + volatile char *cp_src = ((char *)Src)+LowIoContext->ParamsFor.ReadWrite.ByteOffset;
- + volatile char tmpbyte;
- +
- + long long cp_i;
- +
- + long long cp_max = LowIoContext->ParamsFor.ReadWrite.ByteCount;
- +
- + for (cp_i = 0 ; cp_i < cp_max ; cp_i++) {
- + tmpbyte = *cp_src++;
- +
- + *cp_dest++ = tmpbyte;
- + }
- +#else
- + (void)RtlCopyMemory(userbuffer_mem,
- + ((char *)Src)+LowIoContext->ParamsFor.ReadWrite.ByteOffset,
- + LowIoContext->ParamsFor.ReadWrite.ByteCount);
- +#endif
- + entry->u.ReadWrite.MdlAddress = userbuffer_mdl;
- + entry->buf_len = LowIoContext->ParamsFor.ReadWrite.ByteCount;
- + entry->u.ReadWrite.offset = 0;
- +#else
- entry->u.ReadWrite.MdlAddress = LowIoContext->ParamsFor.ReadWrite.Buffer;
- entry->buf_len = LowIoContext->ParamsFor.ReadWrite.ByteCount;
- entry->u.ReadWrite.offset = LowIoContext->ParamsFor.ReadWrite.ByteOffset;
- +#endif
- if (FlagOn(RxContext->CurrentIrpSp->FileObject->Flags,
- FO_SYNCHRONOUS_IO) == FALSE) {
- @@ -420,6 +507,17 @@ NTSTATUS nfs41_Write(
- }
- nfs41_UpcallDestroy(entry);
- out:
- +#if 1
- + if (!async) {
- + if (userbuffer_mdl) {
- + IoFreeMdl(userbuffer_mdl);
- + }
- + if (userbuffer_mem) {
- + RxFreePool(userbuffer_mem);
- + }
- + }
- +#endif
- +
- #ifdef ENABLE_TIMINGS
- t2 = KeQueryPerformanceCounter(NULL);
- InterlockedIncrement(&write.tops);
- ---- snip ----
- This crashes when using $ git clone git://repo.or.cz/bash.git # in Cygwin with "Page Fault in non-paged area" like this:
- ************* Preparing the environment for Debugger Extensions Gallery repositories **************
- ExtensionRepository : Implicit
- UseExperimentalFeatureForNugetShare : true
- AllowNugetExeUpdate : true
- NonInteractiveNuget : true
- AllowNugetMSCredentialProviderInstall : true
- AllowParallelInitializationOfLocalRepositories : true
- EnableRedirectToChakraJsProvider : false
- -- Configuring repositories
- ----> Repository : LocalInstalled, Enabled: true
- ----> Repository : UserExtensions, Enabled: true
- >>>>>>>>>>>>> Preparing the environment for Debugger Extensions Gallery repositories completed, duration 0.000 seconds
- ************* Waiting for Debugger Extensions Gallery to Initialize **************
- >>>>>>>>>>>>> Waiting for Debugger Extensions Gallery to Initialize completed, duration 0.532 seconds
- ----> Repository : UserExtensions, Enabled: true, Packages count: 0
- ----> Repository : LocalInstalled, Enabled: true, Packages count: 42
- Microsoft (R) Windows Debugger Version 10.0.27725.1000 AMD64
- Copyright (c) Microsoft Corporation. All rights reserved.
- Loading Dump File [C:\Windows\MEMORY.DMP]
- Kernel Bitmap Dump File: Kernel address space is available, User address space may not be available.
- ************* Path validation summary **************
- Response Time (ms) Location
- Deferred srv*
- OK C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\destdir\cygdrive\c\cygwin64\sbin
- OK C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\build.vc19\x64\Debug\nfs41_driver
- Symbol search path is: srv*;C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\destdir\cygdrive\c\cygwin64\sbin;C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\build.vc19\x64\Debug\nfs41_driver
- Executable search path is:
- Windows 10 Kernel Version 19041 MP (8 procs) Free x64
- Product: WinNt, suite: TerminalServer SingleUserTS
- Edition build lab: 19041.1.amd64fre.vb_release.191206-1406
- Kernel base = 0xfffff806`19400000 PsLoadedModuleList = 0xfffff806`1a02a3e0
- Debug session time: Wed Dec 18 11:50:41.555 2024 (UTC + 1:00)
- System Uptime: 0 days 0:09:39.323
- Loading Kernel Symbols
- ...............................................................
- ...........Page de19 not present in the dump file. Type ".hh dbgerr004" for details
- .....................................................
- ................................................................
- ......
- Loading User Symbols
- Loading unloaded module list
- ......
- For analysis of this file, run !analyze -v
- nt!KeBugCheckEx:
- fffff806`197fe8f0 48894c2408 mov qword ptr [rsp+8],rcx ss:0018:ffff9582`32c5a910=0000000000000050
- 1: kd> !analyze -v
- *******************************************************************************
- * *
- * Bugcheck Analysis *
- * *
- *******************************************************************************
- PAGE_FAULT_IN_NONPAGED_AREA (50)
- Invalid system memory was referenced. This cannot be protected by try-except.
- Typically the address is just plain bad or it is pointing at freed memory.
- Arguments:
- Arg1: ffffc90145a8d000, memory referenced.
- Arg2: 0000000000000000, X64: bit 0 set if the fault was due to a not-present PTE.
- bit 1 is set if the fault was due to a write, clear if a read.
- bit 3 is set if the processor decided the fault was due to a corrupted PTE.
- bit 4 is set if the fault was due to attempted execute of a no-execute PTE.
- - ARM64: bit 1 is set if the fault was due to a write, clear if a read.
- bit 3 is set if the fault was due to attempted execute of a no-execute PTE.
- Arg3: fffff8061ed3361d, If non-zero, the instruction address which referenced the bad memory
- address.
- Arg4: 0000000000000000, (reserved)
- Debugging Details:
- ------------------
- KEY_VALUES_STRING: 1
- Key : AV.Type
- Value: Read
- Key : Analysis.CPU.mSec
- Value: 2453
- Key : Analysis.Elapsed.mSec
- Value: 4796
- Key : Analysis.IO.Other.Mb
- Value: 0
- Key : Analysis.IO.Read.Mb
- Value: 3
- Key : Analysis.IO.Write.Mb
- Value: 2
- Key : Analysis.Init.CPU.mSec
- Value: 781
- Key : Analysis.Init.Elapsed.mSec
- Value: 5718
- Key : Analysis.Memory.CommitPeak.Mb
- Value: 99
- Key : Analysis.Version.DbgEng
- Value: 10.0.27725.1000
- Key : Analysis.Version.Description
- Value: 10.2408.27.01 amd64fre
- Key : Analysis.Version.Ext
- Value: 1.2408.27.1
- Key : Bugcheck.Code.KiBugCheckData
- Value: 0x50
- Key : Bugcheck.Code.LegacyAPI
- Value: 0x50
- Key : Bugcheck.Code.TargetModel
- Value: 0x50
- Key : Failure.Bucket
- Value: AV_R_(null)_nfs41_driver!nfs41_Write
- Key : Failure.Hash
- Value: {be85c6e9-381a-fb84-c448-edc4d53cac46}
- Key : Hypervisor.Enlightenments.Value
- Value: 12576
- Key : Hypervisor.Enlightenments.ValueHex
- Value: 3120
- Key : Hypervisor.Flags.AnyHypervisorPresent
- Value: 1
- Key : Hypervisor.Flags.ApicEnlightened
- Value: 0
- Key : Hypervisor.Flags.ApicVirtualizationAvailable
- Value: 0
- Key : Hypervisor.Flags.AsyncMemoryHint
- Value: 0
- Key : Hypervisor.Flags.CoreSchedulerRequested
- Value: 0
- Key : Hypervisor.Flags.CpuManager
- Value: 0
- Key : Hypervisor.Flags.DeprecateAutoEoi
- Value: 1
- Key : Hypervisor.Flags.DynamicCpuDisabled
- Value: 0
- Key : Hypervisor.Flags.Epf
- Value: 0
- Key : Hypervisor.Flags.ExtendedProcessorMasks
- Value: 0
- Key : Hypervisor.Flags.HardwareMbecAvailable
- Value: 0
- Key : Hypervisor.Flags.MaxBankNumber
- Value: 0
- Key : Hypervisor.Flags.MemoryZeroingControl
- Value: 0
- Key : Hypervisor.Flags.NoExtendedRangeFlush
- Value: 1
- Key : Hypervisor.Flags.NoNonArchCoreSharing
- Value: 0
- Key : Hypervisor.Flags.Phase0InitDone
- Value: 1
- Key : Hypervisor.Flags.PowerSchedulerQos
- Value: 0
- Key : Hypervisor.Flags.RootScheduler
- Value: 0
- Key : Hypervisor.Flags.SynicAvailable
- Value: 1
- Key : Hypervisor.Flags.UseQpcBias
- Value: 0
- Key : Hypervisor.Flags.Value
- Value: 536632
- Key : Hypervisor.Flags.ValueHex
- Value: 83038
- Key : Hypervisor.Flags.VpAssistPage
- Value: 1
- Key : Hypervisor.Flags.VsmAvailable
- Value: 0
- Key : Hypervisor.RootFlags.AccessStats
- Value: 0
- Key : Hypervisor.RootFlags.CrashdumpEnlightened
- Value: 0
- Key : Hypervisor.RootFlags.CreateVirtualProcessor
- Value: 0
- Key : Hypervisor.RootFlags.DisableHyperthreading
- Value: 0
- Key : Hypervisor.RootFlags.HostTimelineSync
- Value: 0
- Key : Hypervisor.RootFlags.HypervisorDebuggingEnabled
- Value: 0
- Key : Hypervisor.RootFlags.IsHyperV
- Value: 0
- Key : Hypervisor.RootFlags.LivedumpEnlightened
- Value: 0
- Key : Hypervisor.RootFlags.MapDeviceInterrupt
- Value: 0
- Key : Hypervisor.RootFlags.MceEnlightened
- Value: 0
- Key : Hypervisor.RootFlags.Nested
- Value: 0
- Key : Hypervisor.RootFlags.StartLogicalProcessor
- Value: 0
- Key : Hypervisor.RootFlags.Value
- Value: 0
- Key : Hypervisor.RootFlags.ValueHex
- Value: 0
- Key : SecureKernel.HalpHvciEnabled
- Value: 0
- Key : WER.OS.Branch
- Value: vb_release
- Key : WER.OS.Version
- Value: 10.0.19041.1
- BUGCHECK_CODE: 50
- BUGCHECK_P1: ffffc90145a8d000
- BUGCHECK_P2: 0
- BUGCHECK_P3: fffff8061ed3361d
- BUGCHECK_P4: 0
- FILE_IN_CAB: MEMORY.DMP
- FAULTING_THREAD: ffff9d89a3815080
- READ_ADDRESS: unable to get nt!PspSessionIdBitmap
- ffffc90145a8d000
- MM_INTERNAL_CODE: 0
- IMAGE_NAME: nfs41_driver.sys
- MODULE_NAME: nfs41_driver
- FAULTING_MODULE: fffff8061ed20000 nfs41_driver
- BLACKBOXBSD: 1 (!blackboxbsd)
- BLACKBOXNTFS: 1 (!blackboxntfs)
- BLACKBOXWINLOGON: 1
- PROCESS_NAME: System
- TRAP_FRAME: ffff958232c5abb0 -- (.trap 0xffff958232c5abb0)
- NOTE: The trap frame does not contain all registers.
- Some register values may be zeroed or incorrect.
- rax=ffffc90145a8d000 rbx=0000000000000000 rcx=00000000000000f1
- rdx=0000000000000010 rsi=0000000000000000 rdi=0000000000000000
- rip=fffff8061ed3361d rsp=ffff958232c5ad40 rbp=ffff9d89a64b6aa0
- r8=cfffffffffffffff r9=fffff57aa7626910 r10=fffff8061a04f5c0
- r11=fffff57abd5eafff r12=0000000000000000 r13=0000000000000000
- r14=0000000000000000 r15=0000000000000000
- iopl=0 nv up ei ng nz na po cy
- nfs41_driver!nfs41_Write+0x46d:
- fffff806`1ed3361d 0fb600 movzx eax,byte ptr [rax] ds:ffffc901`45a8d000=??
- Resetting default scope
- STACK_TEXT:
- ffff9582`32c5a908 fffff806`19846095 : 00000000`00000050 ffffc901`45a8d000 00000000`00000000 ffff9582`32c5abb0 : nt!KeBugCheckEx
- ffff9582`32c5a910 fffff806`19638cd0 : ffff9d89`a3815080 00000000`00000000 ffff9582`32c5ac30 00000000`00000000 : nt!MiSystemFault+0x1ce5f5
- ffff9582`32c5aa10 fffff806`1980ea6d : ffff9d89`aa48d010 0000000f`ffffffff ffff9582`32c5aca9 00000000`00000000 : nt!MmAccessFault+0x400
- ffff9582`32c5abb0 fffff806`1ed3361d : ffff9d89`a9105aa0 ffffae0e`00000010 0000021d`52627400 ffff9d89`aa48d010 : nt!KiPageFault+0x36d
- ffff9582`32c5ad40 fffff806`1ed53844 : ffff9d89`aa48d010 ffff9d89`00000000 ffff9d89`00000000 00000000`00000001 : nfs41_driver!nfs41_Write+0x46d [C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\sys\nfs41sys_readwrite.c @ 438]
- ffff9582`32c5ae70 fffff806`1ed5ee3a : ffffae0e`fa405660 ffff9d89`a64b6aa0 ffff9d89`a64b6aa0 fffff806`1ed3b3bd : nfs41_driver!RxLowIoSubmit+0x2d4 [base\fs\rdr2\rxce\lowio.c @ 805]
- ffff9582`32c5aed0 fffff806`1ed5e8af : ffff9d89`aa48d010 ffff9d89`a64b6aa0 ffff9d89`a64b6aa0 00000000`00000004 : nfs41_driver!RxLowIoWriteShell+0x9a [base\fs\rdr2\rdbss\write.c @ 2095]
- ffff9582`32c5af20 fffff806`1ed3b262 : ffff9d89`aa48d010 ffff9d89`a64b6aa0 ffff9d89`a61e0000 00000000`00000001 : nfs41_driver!RxCommonWrite+0x1a2f [base\fs\rdr2\rdbss\write.c @ 1508]
- ffff9582`32c5b0f0 fffff806`1ed5696d : fffff806`1ed49160 00000000`00000000 00000000`00000000 ffff9d89`a61e0060 : nfs41_driver!RxFsdCommonDispatch+0x442 [base\fs\rdr2\rdbss\ntfsd.c @ 848]
- ffff9582`32c5b1f0 fffff806`1ed28077 : ffff9d89`a36c5b00 ffff9d89`a33f6160 ffff9d89`a9d94ba0 ffff9d89`a9d94ca8 : nfs41_driver!RxFsdDispatch+0xfd [base\fs\rdr2\rdbss\ntfsd.c @ 442]
- ffff9582`32c5b220 fffff806`1964a295 : ffff9d89`a61e0060 ffff9d89`a64b6aa0 ffff9d89`a38156d0 fffff806`19659bbb : nfs41_driver!nfs41_FsdDispatch+0x67 [C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\sys\nfs41sys_driver.c @ 962]
- ffff9582`32c5b260 fffff806`1cd7f248 : fffff806`1cd78000 00000000`00000000 ffff9d89`a3f53910 ffff9d89`aa45faa8 : nt!IofCallDriver+0x55
- ffff9582`32c5b2a0 fffff806`1cd7ed99 : ffffae0e`f455d420 ffff9d89`a390e4c0 fffff806`1cd78000 00000000`00000000 : mup!MupiCallUncProvider+0xb8
- ffff9582`32c5b310 fffff806`1cd7ecce : ffff9d89`a64b6aa0 ffff9d89`aa45faa0 ffff9d89`abd0e5b0 00000000`00000000 : mup!MupStateMachine+0x59
- ffff9582`32c5b340 fffff806`1964a295 : 00000000`00000000 00000000`00000000 ffff9d89`a36c5b00 fffff806`16085021 : mup!MupFsdIrpPassThrough+0x17e
- ffff9582`32c5b3b0 fffff806`1608710f : 00000000`00000006 00000000`00000000 ffff9d89`a9d83b50 fffff806`1964ec5c : nt!IofCallDriver+0x55
- ffff9582`32c5b3f0 fffff806`16084a43 : ffff9582`32c5b480 ffff9d89`a9105aa0 00000000`00000140 ffff9d89`a384bb40 : FLTMGR!FltpLegacyProcessingAfterPreCallbacksCompleted+0x28f
- ffff9582`32c5b460 fffff806`1964a295 : ffff9d89`a64b6aa0 fffff806`1964a2d7 00000000`00000004 00000000`00000004 : FLTMGR!FltpDispatch+0xa3
- ffff9582`32c5b4c0 fffff806`196b68e3 : ffff9d89`a9105aa0 ffff9d89`a64b6aa0 ffff9d89`abd0e5b0 ffff9582`32c5b580 : nt!IofCallDriver+0x55
- ffff9582`32c5b500 fffff806`19741dc8 : 00000000`00000000 ffff9582`32c5b5a0 ffff9d89`abd0e5b0 fffff806`19676175 : nt!IoSynchronousPageWriteEx+0x13b
- ffff9582`32c5b540 fffff806`19646312 : 00000000`00000011 ffffae0f`00ea3018 00000000`00001000 00000000`00000000 : nt!MiIssueSynchronousFlush+0x70
- ffff9582`32c5b5c0 fffff806`197034a9 : ffff9582`33053a88 00000000`00000000 00000000`00000000 00000000`00000000 : nt!MiFlushSectionInternal+0x862
- ffff9582`32c5b890 fffff806`19675a8d : 00000000`00000001 ffff9d89`a3815080 00000000`0008d000 00000000`00001000 : nt!MmFlushSection+0xbd
- ffff9582`32c5b940 fffff806`19674bd4 : ffff9d89`a1cf4148 00000000`00000000 ffff9d89`00000001 00000000`00000000 : nt!CcFlushCachePriv+0x6cd
- ffff9582`32c5ba90 fffff806`196171c5 : ffff9d89`abe45880 fffff806`196fdc00 ffff9d89`a1a5ac01 00000000`00000000 : nt!CcWriteBehindInternal+0x1f4
- ffff9582`32c5bb70 fffff806`1975a165 : ffff9d89`a3815080 00000000`00000080 ffff9d89`a1a87080 00078404`ad9b3dfe : nt!ExpWorkerThread+0x105
- ffff9582`32c5bc10 fffff806`198078f8 : ffffc901`38fe3180 ffff9d89`a3815080 fffff806`1975a110 00000000`00000000 : nt!PspSystemThreadStartup+0x55
- ffff9582`32c5bc60 00000000`00000000 : ffff9582`32c5c000 ffff9582`32c56000 00000000`00000000 00000000`00000000 : nt!KiStartSystemThread+0x28
- FAULTING_SOURCE_LINE: C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\sys\nfs41sys_readwrite.c
- FAULTING_SOURCE_FILE: C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\sys\nfs41sys_readwrite.c
- FAULTING_SOURCE_LINE_NUMBER: 438
- FAULTING_SOURCE_CODE:
- 434:
- 435: long long cp_max = LowIoContext->ParamsFor.ReadWrite.ByteCount;
- 436:
- 437: for (cp_i = 0 ; cp_i < cp_max ; cp_i++) {
- > 438: tmpbyte = *cp_src++;
- 439:
- 440: *cp_dest++ = tmpbyte;
- 441: }
- 442: #else
- 443: (void)RtlCopyMemory(userbuffer_mem,
- SYMBOL_NAME: nfs41_driver!nfs41_Write+46d
- STACK_COMMAND: .process /r /p 0xffff9d89a1a87080; .thread 0xffff9d89a3815080 ; kb
- BUCKET_ID_FUNC_OFFSET: 46d
- FAILURE_BUCKET_ID: AV_R_(null)_nfs41_driver!nfs41_Write
- OS_VERSION: 10.0.19041.1
- BUILDLAB_STR: vb_release
- OSPLATFORM_TYPE: x64
- OSNAME: Windows 10
- FAILURE_ID_HASH: {be85c6e9-381a-fb84-c448-edc4d53cac46}
- Followup: MachineOwner
- ---------
- 1: kd> kp
- # Child-SP RetAddr Call Site
- 00 ffff9582`32c5a908 fffff806`19846095 nt!KeBugCheckEx
- 01 ffff9582`32c5a910 fffff806`19638cd0 nt!MiSystemFault+0x1ce5f5
- 02 ffff9582`32c5aa10 fffff806`1980ea6d nt!MmAccessFault+0x400
- 03 ffff9582`32c5abb0 fffff806`1ed3361d nt!KiPageFault+0x36d
- 04 ffff9582`32c5ad40 fffff806`1ed53844 nfs41_driver!nfs41_Write(struct _RX_CONTEXT * RxContext = 0xffff9d89`aa48d010)+0x46d [C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\sys\nfs41sys_readwrite.c @ 438]
- 05 ffff9582`32c5ae70 fffff806`1ed5ee3a nfs41_driver!RxLowIoSubmit(struct _RX_CONTEXT * RxContext = 0xffff9d89`aa48d010, struct _IRP * Irp = 0xffff9d89`a64b6aa0, struct _FCB * Fcb = 0xffffae0e`fa405660, <function> * CompletionRoutine = 0xfffff57a`a7626910)+0x2d4 [base\fs\rdr2\rxce\lowio.c @ 805]
- 06 ffff9582`32c5aed0 fffff806`1ed5e8af nfs41_driver!RxLowIoWriteShell(struct _RX_CONTEXT * RxContext = 0xffff9d89`aa48d010, struct _IRP * Irp = 0xffff9d89`a64b6aa0, struct _FCB * Fcb = 0xffffae0e`fa405660)+0x9a [base\fs\rdr2\rdbss\write.c @ 2095]
- 07 ffff9582`32c5af20 fffff806`1ed3b262 nfs41_driver!RxCommonWrite(struct _RX_CONTEXT * RxContext = 0xffff9d89`aa48d010, struct _IRP * Irp = 0xffff9d89`a64b6aa0)+0x1a2f [base\fs\rdr2\rdbss\write.c @ 1508]
- 08 ffff9582`32c5b0f0 fffff806`1ed5696d nfs41_driver!RxFsdCommonDispatch(struct _RX_FSD_DISPATCH_VECTOR * DispatchVector = 0xfffff806`1ed49160, struct _IRP * Irp = 0xffff9d89`a64b6aa0, struct _FILE_OBJECT * FileObject = 0x00000000`00000000, struct _RDBSS_DEVICE_OBJECT * RxDeviceObject = 0xffff9d89`a61e0060)+0x442 [base\fs\rdr2\rdbss\ntfsd.c @ 848]
- 09 ffff9582`32c5b1f0 fffff806`1ed28077 nfs41_driver!RxFsdDispatch(struct _RDBSS_DEVICE_OBJECT * RxDeviceObject = <Value unavailable error>, struct _IRP * Irp = <Value unavailable error>)+0xfd [base\fs\rdr2\rdbss\ntfsd.c @ 442]
- 0a ffff9582`32c5b220 fffff806`1964a295 nfs41_driver!nfs41_FsdDispatch(struct _DEVICE_OBJECT * dev = 0xffff9d89`a61e0060 Device for "\FileSystem\nfs41_driver", struct _IRP * Irp = 0xffff9d89`a64b6aa0)+0x67 [C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\sys\nfs41sys_driver.c @ 962]
- 0b ffff9582`32c5b260 fffff806`1cd7f248 nt!IofCallDriver+0x55
- 0c ffff9582`32c5b2a0 fffff806`1cd7ed99 mup!MupiCallUncProvider+0xb8
- 0d ffff9582`32c5b310 fffff806`1cd7ecce mup!MupStateMachine+0x59
- 0e ffff9582`32c5b340 fffff806`1964a295 mup!MupFsdIrpPassThrough+0x17e
- 0f ffff9582`32c5b3b0 fffff806`1608710f nt!IofCallDriver+0x55
- 10 ffff9582`32c5b3f0 fffff806`16084a43 FLTMGR!FltpLegacyProcessingAfterPreCallbacksCompleted+0x28f
- 11 ffff9582`32c5b460 fffff806`1964a295 FLTMGR!FltpDispatch+0xa3
- 12 ffff9582`32c5b4c0 fffff806`196b68e3 nt!IofCallDriver+0x55
- 13 ffff9582`32c5b500 fffff806`19741dc8 nt!IoSynchronousPageWriteEx+0x13b
- 14 ffff9582`32c5b540 fffff806`19646312 nt!MiIssueSynchronousFlush+0x70
- 15 ffff9582`32c5b5c0 fffff806`197034a9 nt!MiFlushSectionInternal+0x862
- 16 ffff9582`32c5b890 fffff806`19675a8d nt!MmFlushSection+0xbd
- 17 ffff9582`32c5b940 fffff806`19674bd4 nt!CcFlushCachePriv+0x6cd
- 18 ffff9582`32c5ba90 fffff806`196171c5 nt!CcWriteBehindInternal+0x1f4
- 19 ffff9582`32c5bb70 fffff806`1975a165 nt!ExpWorkerThread+0x105
- 1a ffff9582`32c5bc10 fffff806`198078f8 nt!PspSystemThreadStartup+0x55
- 1b ffff9582`32c5bc60 00000000`00000000 nt!KiStartSystemThread+0x28
- 1: kd> .frame 0n4;dv /t /v
- 04 ffff9582`32c5ad40 fffff806`1ed53844 nfs41_driver!nfs41_Write+0x46d [C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\sys\nfs41sys_readwrite.c @ 438]
- ffff9582`32c5ae70 struct _RX_CONTEXT * RxContext = 0xffff9d89`aa48d010
- ffff9582`32c5add8 struct _NFS41_FOBX * nfs41_fobx = 0xffffae0e`fa405b30
- ffff9582`32c5ade8 struct _NFS41_V_NET_ROOT_EXTENSION * pVNetRootContext = 0xffff9d89`a9d527b0
- ffff9582`32c5ae10 struct _NFS41_FCB * nfs41_fcb = 0xffffae0e`fa405900
- ffff9582`32c5adc0 struct _MDL * userbuffer_mdl = 0xffff9d89`a9566010
- ffff9582`32c5ae40 struct _NFS41_NETROOT_EXTENSION * pNetRootContext = 0xffff9d89`a9de43d0
- ffff9582`32c5ae08 char * cp_dest = 0xffff9d89`a44fc000 ""
- ffff9582`32c5ae50 int64 cp_max = 0n577536
- ffff9582`32c5ada8 struct _updowncall_entry * entry = 0xffff9d89`a8ee2e50
- ffff9582`32c5ade0 unsigned long mdl_bytecount = 0x8d000
- ffff9582`32c5ada0 struct _LOWIO_CONTEXT * LowIoContext = 0xffff9d89`aa48d1a8
- ffff9582`32c5ae38 void * Src = 0xffffc901`45a00000
- ffff9582`32c5adb8 struct _MRX_SRV_OPEN_ * SrvOpen = 0xffffae0e`fa405960
- ffff9582`32c5adb0 char tmpbyte = 0n-15 ''
- ffff9582`32c5ad94 long status = 0n0
- ffff9582`32c5adc8 unsigned long padded_readwrite_bytecount = 0x8d100
- ffff9582`32c5ad90 unsigned char async = 0x00 ''
- ffff9582`32c5adf0 unsigned long io_delay = 0
- ffff9582`32c5add0 void * userbuffer_mem = 0xffff9d89`a4470000
- ffff9582`32c5adf8 int64 cp_i = 0n573440
- ffff9582`32c5ae00 char * cp_src = 0xffffc901`45a8d000 "--- memory read error at address 0xffffc901`45a8d000 ---"
- 1: kd> dt -r LowIoContext
- Local var @ 0xffff958232c5ada0 Type _LOWIO_CONTEXT*
- 0xffff9d89`aa48d1a8
- +0x000 Operation : 1
- +0x002 Flags : 0
- +0x008 CompletionRoutine : 0xfffff806`1ed5eeb0 long nfs41_driver!RxLowIoWriteShellCompletion+0
- +0x010 Resource : 0xffff9d89`a1cf41c8 _ERESOURCE
- +0x000 SystemResourcesList : _LIST_ENTRY [ 0xffff9d89`a1cf42b0 - 0xffff9d89`a1cf4160 ]
- +0x000 Flink : 0xffff9d89`a1cf42b0 _LIST_ENTRY [ 0xffff9d89`a8fe2690 - 0xffff9d89`a1cf41c8 ]
- +0x008 Blink : 0xffff9d89`a1cf4160 _LIST_ENTRY [ 0xffff9d89`a1cf41c8 - 0xffff9d89`a7dcb750 ]
- +0x010 OwnerTable : (null)
- +0x018 ActiveCount : 0n1
- +0x01a Flag : 0
- +0x01a ReservedLowFlags : 0 ''
- +0x01b WaiterPriority : 0 ''
- +0x020 SharedWaiters : (null)
- +0x028 ExclusiveWaiters : (null)
- +0x030 OwnerEntry : _OWNER_ENTRY
- +0x000 OwnerThread : 0xffff9d89`a3815080
- +0x008 IoPriorityBoosted : 0y0
- +0x008 OwnerReferenced : 0y0
- +0x008 IoQoSPriorityBoosted : 0y0
- +0x008 OwnerCount : 0y00000000000000000000000000010 (0x2)
- +0x008 TableSize : 0x10
- +0x040 ActiveEntries : 1
- +0x044 ContentionCount : 0
- +0x048 NumberOfSharedWaiters : 0
- +0x04c NumberOfExclusiveWaiters : 0
- +0x050 Reserved2 : (null)
- +0x058 Address : (null)
- +0x058 CreatorBackTraceIndex : 0
- +0x060 SpinLock : 0
- +0x018 ResourceThreadId : 0xffff9d89`a3815080
- +0x020 ParamsFor : <anonymous-tag>
- +0x000 ReadWrite : <anonymous-tag>
- +0x000 Flags : 1
- +0x008 Buffer : 0xffff9d89`a9105aa0 _MDL
- +0x010 ByteOffset : 0n4096
- +0x018 ByteCount : 0x8d000
- +0x01c Key : 0
- +0x020 NonPagedFcb : (null)
- +0x000 Locks : <anonymous-tag>
- +0x000 LockList : 0x00000000`00000001 _LOWIO_LOCK_LIST
- +0x000 Length : 0n1
- +0x008 Flags : 0xa9105aa0
- +0x010 ByteOffset : 0n4096
- +0x018 Key : 0x8d000
- +0x000 FsCtl : _XXCTL_LOWIO_COMPONENT
- +0x000 Flags : 1
- +0x004 FsControlCode : 0
- +0x004 IoControlCode : 0
- +0x008 InputBufferLength : 0xa9105aa0
- +0x010 pInputBuffer : 0x00000000`00001000 Void
- +0x018 OutputBufferLength : 0x8d000
- +0x020 pOutputBuffer : (null)
- +0x028 MinorFunction : 0 ''
- +0x000 IoCtl : _XXCTL_LOWIO_COMPONENT
- +0x000 Flags : 1
- +0x004 FsControlCode : 0
- +0x004 IoControlCode : 0
- +0x008 InputBufferLength : 0xa9105aa0
- +0x010 pInputBuffer : 0x00000000`00001000 Void
- +0x018 OutputBufferLength : 0x8d000
- +0x020 pOutputBuffer : (null)
- +0x028 MinorFunction : 0 ''
- +0x000 NotifyChangeDirectory : <anonymous-tag>
- +0x000 WatchTree : 0x1 ''
- +0x004 CompletionFilter : 0
- +0x008 NotificationBufferLength : 0xa9105aa0
- +0x010 pNotificationBuffer : 0x00000000`00001000 Void
- 1: kd> dx -id 0,0,ffff9d89a1a87080 -r1 ((nfs41_driver!_MDL *)0xffff9d89a9105aa0)
- ((nfs41_driver!_MDL *)0xffff9d89a9105aa0) : 0xffff9d89a9105aa0 [Type: _MDL *]
- [+0x000] Next : 0x0 [Type: _MDL *]
- [+0x008] Size : 1176 [Type: short]
- [+0x00a] MdlFlags : 3 [Type: short]
- [+0x010] Process : 0x0 [Type: _EPROCESS *]
- [+0x018] MappedSystemVa : 0xffffc90145a00000 [Type: void *]
- [+0x020] StartVa : 0x0 [Type: void *]
- [+0x028] ByteCount : 0x8d000 [Type: unsigned long]
- [+0x02c] ByteOffset : 0x0 [Type: unsigned long]
wintar workaround, patch, crash, WinDBG info, 2024-12-18
Posted by Anonymous on Wed 18th Dec 2024 14:37
raw | new post
modification of post by Anonymous (view diff)
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.