86Box icon indicating copy to clipboard operation
86Box copied to clipboard

VPC2007 DEC 21140 variant causes Vista to BSOD during driver installation

Open WinFutureX opened this issue 2 years ago • 11 comments

What happened?

Continuing from issue #4081, which has since been resolved.

When Windows Vista detects the network adapter and tries to install the drivers, it crashes. Otherwise, it should install and load normally like in VPC2007.

Report from BlueScreenView: Monitor_1_20240127-001920-968

Configuration file

[Machine]
machine = atc7020bxii
cpu_family = c3_samuel
cpu_speed = 500000000
cpu_multi = 5
cpu_use_dynarec = 0
fpu_softfloat = 0
time_sync = local
fpu_type = internal
cpu_manufacturer = 1
cpu = 8
mem_size = 524288

[Video]
gfxcard = trio64v2dx_pci

[Input devices]
mouse_type = ps2

[Sound]
fm_driver = nuked
sndcard = es1371

[Network]
net_01_link = 0
net_02_link = 0
net_03_link = 0
net_04_link = 0
net_01_card = dec_21140_tulip_vpc
net_01_net_type = slirp

[Storage controllers]
hdc = internal
cassette_mode = load

[General]
vid_renderer = opengl_core
rctrl_is_lalt = 1
confirm_exit = 0
hide_tool_bar = 1
hide_status_bar = 1

[Microsoft Virtual PC Network (DECchip 21140 "Tulip FasterNet") #1]
mac = 6b:ca:99

[Hard disks]
hdd_01_parameters = 63, 16, 33288, 0, ide
hdd_01_fn = vista.img
hdd_01_speed = ramdisk
hdd_01_ide_channel = 0:0

[Floppy and CD-ROM drives]
fdd_01_type = 35_2hd
fdd_01_turbo = 1
fdd_01_check_bpb = 0
fdd_02_type = none
cdrom_01_speed = 72
cdrom_01_parameters = 1, atapi
cdrom_01_ide_channel = 1:0
cdrom_01_type = 86BOX_CD-ROM_1.00
cdrom_01_host_drive = 200
cdrom_01_image_path = C:\Users\Kelsey\Documents\isos\os_stuffs.iso

[DEC 21140 Fast Ethernet (DECchip 21140 "Tulip FasterNet") #1]
mac = 14:51:b6

Operating system

Win11 22631.3007

CPU

AMD Ryzen 9 7950X

86Box version

d465992d384101a10b39e72d8752b16134bc2a67

Build architecture

Windows - x86 (32-bit)

Build type

  • [ ] New recompiler
  • [ ] Debug build

Download source

I built 86Box myself (please tell us more about your build configuration)

Additional context

None.

WinFutureX avatar Jan 26 '24 16:01 WinFutureX

Can I have the dec21x4vm.sys driver please?

OBattler avatar Jan 27 '24 01:01 OBattler

Try enabling the network card's BIOS, it may be that the driver assumes the BIOS BAR is always valid because the BIOS is always present on Virtual PC, while we allow disabling in, in which case the BIOS BAR would return 0x00000000.

OBattler avatar Jan 27 '24 01:01 OBattler

Even with the BIOS enabled, I still get a BSOD: Monitor_1_20240127-194840-119

Also, here is the driver: dc21x4vm_vista.zip

WinFutureX avatar Jan 27 '24 11:01 WinFutureX

So I did some meddling with the configuration and I realized that selecting the "enable BIOS" option didn't actually enable the BIOS due to a configuration bug, where the new value is appended to the wrong place, but only in the case where the setting is changed after the fact. So, instead of looking like this, which is supposed to be the correct value:

[Microsoft Virtual PC Network (DECchip 21140 "Tulip FasterNet") #1]
bios = 1
mac = 6b:ca:99

it looks like this instead:

[Microsoft Virtual PC Network (DECchip 21140 "Tulip FasterNet") #1]
mac = 6b:ca:99

(some misc config lines...)

[Microsoft Virtual PC Network (DECchip 21140 "Tulip FasterNet")]
bios = 1

As a result, this incorrect positioning of the values causes the change to not take effect at all. But if the VPC 21140 wasn't selected beforehand (e.g. configured from scratch on a first-time run), this bug won't occur.

After manually changing the setting to the correct place, the PXE BIOS now shows up properly. This time, getting Vista to load the driver causes a BSOD, albeit a different one: Monitor_1_20240130-030536-523 Monitor_1_20240130-030951-381 Monitor_1_20240130-030958-067

WinFutureX avatar Jan 29 '24 19:01 WinFutureX

Can I have that ntoskrnl.exe, please?

OBattler avatar Jan 30 '24 00:01 OBattler

And pci.sys as well.

OBattler avatar Jan 30 '24 00:01 OBattler

Here.

Do you also need the entire VM as well?

EDIT: below is the WinDbg log of the dump file


************* Preparing the environment for Debugger Extensions Gallery repositories **************
   ExtensionRepository : Implicit
   UseExperimentalFeatureForNugetShare : true
   AllowNugetExeUpdate : true
   AllowNugetMSCredentialProviderInstall : true
   AllowParallelInitializationOfLocalRepositories : true

   -- 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.078 seconds
   ----> Repository : UserExtensions, Enabled: true, Packages count: 0
   ----> Repository : LocalInstalled, Enabled: true, Packages count: 36

Microsoft (R) Windows Debugger Version 10.0.25921.1001 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\Users\Kelsey\Documents\vista_86box\Mini013024-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available


************* Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       srv*
Symbol search path is: srv*
Executable search path is: 
ReadVirtual: 9e950000 not properly sign extended
ReadVirtual: 9fc00000 not properly sign extended
Windows Vista Kernel Version 6000 UP Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Edition build lab: 6000.16386.x86fre.vista_rtm.061101-2205
Kernel base = 0x81800000 PsLoadedModuleList = 0x81908ab0
Debug session time: Tue Jan 30 03:00:19.385 2024 (UTC + 8:00)
System Uptime: 0 days 0:02:04.995
ReadVirtual: 9fc00000 not properly sign extended
Loading Kernel Symbols
...............................................................
.........................................................
Loading User Symbols
Loading unloaded module list
....
For analysis of this file, run !analyze -v
eax=818ec83c ebx=00000001 ecx=00000401 edx=8191fe5c esi=818ec820 edi=0000001f
eip=81857535 esp=88cc3208 ebp=88cc3270 iopl=0         nv up ei ng nz na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000286
nt!MmAccessFault+0x14b:
81857535 837c242000      cmp     dword ptr [esp+20h],0 ss:0010:88cc3228=88cc3304
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: ffffffc9, memory referenced.
Arg2: 00000001, 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: 818360e4, If non-zero, the instruction address which referenced the bad memory
	address.
Arg4: 00000000, (reserved)

Debugging Details:
------------------


KEY_VALUES_STRING: 1

    Key  : AV.Type
    Value: Write

    Key  : Analysis.CPU.mSec
    Value: 687

    Key  : Analysis.Elapsed.mSec
    Value: 8334

    Key  : Analysis.IO.Other.Mb
    Value: 6

    Key  : Analysis.IO.Read.Mb
    Value: 7

    Key  : Analysis.IO.Write.Mb
    Value: 18

    Key  : Analysis.Init.CPU.mSec
    Value: 171

    Key  : Analysis.Init.Elapsed.mSec
    Value: 28497

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 74

    Key  : Bugcheck.Code.KiBugCheckData
    Value: 0x50

    Key  : Bugcheck.Code.LegacyAPI
    Value: 0x50

    Key  : Failure.Bucket
    Value: IP_MISALIGNED_CentaurHauls.sys

    Key  : Failure.Hash
    Value: {ec974eab-1289-3e42-33a9-93774d3ed5c8}

    Key  : WER.OS.Branch
    Value: vista_rtm

    Key  : WER.OS.Version
    Value: 0.0.6000.16386


BUGCHECK_CODE:  50

BUGCHECK_P1: ffffffffffffffc9

BUGCHECK_P2: 1

BUGCHECK_P3: ffffffff818360e4

BUGCHECK_P4: 0

FILE_IN_CAB:  Mini013024-01.dmp

WRITE_ADDRESS: Target machine operating system not supported
 ffffffc9 

MM_INTERNAL_CODE:  0

CUSTOMER_CRASH_COUNT:  1

PROCESS_NAME:  System

TRAP_FRAME:  88cc3288 -- (.trap 0xffffffff88cc3288)
ErrCode = 00000002
eax=00000000 ebx=82b3d0e8 ecx=00000001 edx=00000001 esi=804a399c edi=ffffffc9
eip=818360e4 esp=88cc32fc ebp=88cc3304 iopl=0         nv up ei pl nz na po nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000202
nt!memcpy+0x74:
818360e4 8807            mov     byte ptr [edi],al          ds:0023:ffffffc9=??
Resetting default scope

LOCK_ADDRESS:  81924aa0 -- (!locks 81924aa0)
Cannot get _ERESOURCE Flag field
Unexpected resource format: 0
1 total locks

PNP_TRIAGE_DATA: 
	Lock address  : 0x81924aa0
	Thread Count  : 0
	Thread address: 0x00000000
	Thread wait   : 0x0

MISALIGNED_IP: 
nt!memcpy+74
818360e4 8807            mov     byte ptr [edi],al

STACK_TEXT:  
88cc3270 81849304     00000001 ffffffc9 00000000 nt!MmAccessFault+0x14b
    <Intermediate frames may have been skipped due to lack of complete unwind>
88cc3270 818360e4 (T) 00000001 ffffffc9 00000000 nt!KiTrap0E+0xdc
    <Intermediate frames may have been skipped due to lack of complete unwind>
88cc3304 8049a03d (T) ffffffc9 804a399c 00000004 nt!memcpy+0x74
88cc3320 8049a34d     00b3d0e8 ffffffc9 0000007c pci!PciExternalReadDeviceConfig+0xb3
88cc3340 8049a434     82b3d0e8 00000000 ffffffc9 pci!PciReadDeviceSpace+0x73
88cc3364 83b72743     82b3d0e8 00000000 ffffffc9 pci!PciBusInterface_GetBusData+0x22
88cc3390 83adcb59     83191488 0000007c ffffffc9 ndis!ndisGetSetBusConfigSpace+0x92
88cc33bc 8cde0752     83191488 00000000 0000007c ndis!NdisReadPciSlotInformation+0x4d
88cc3684 83b7db50     88cc36c0 88cc3720 83ae28c0 dc21x4vm!DC21X4Initialize+0x44
88cc3930 83b856aa     83191010 83191488 83252bb8 ndis!ndisMInitializeAdapter+0x5aa
88cc3968 83b85525     83191010 831913d0 83400c48 ndis!ndisInitializeAdapter+0x109
88cc3990 83b80edc     831913d0 8ef195c0 831037e0 ndis!ndisPnPStartDevice+0xf3
88cc39e0 81867cc9     831913d0 83103728 88cc3a5c ndis!ndisPnPDispatch+0x697
88cc39f8 8195ecaf     00000000 82b3d030 831056b8 nt!IofCallDriver+0x63
88cc3a14 8180fccd     88cc3a38 8180faf8 831056b8 nt!PnpAsynchronousCall+0x96
88cc3a60 8195f0fe     8180faf8 831056b8 82b3fea8 nt!PnpStartDevice+0xb0
88cc3abc 8195efb9     831056b8 0000003c 00000000 nt!PnpStartDeviceNode+0x13a
88cc3ad8 8195dd9a     00000000 00000000 82b3fea8 nt!PipProcessStartPhase1+0x65
88cc3cd4 81a51401     82b3fea8 82ed9b98 88cc3d00 nt!PipProcessDevNodeTree+0x18d
88cc3d08 8180f6f1     818f55fc 82dff020 81923ce0 nt!PiRestartDevice+0x8a
88cc3d44 8186b8aa     00000000 00000000 82dff020 nt!PnpDeviceActionWorker+0x1ae
88cc3d7c 819afbfd     00000000 88cc8680 00000000 nt!ExpWorkerThread+0xfd
88cc3dc0 8189a396     8186b7ad 80000001 00000000 nt!PspSystemThreadStartup+0x9d
00000000 00000000     00000000 00000000 00000000 nt!KiThreadStartup+0x16


SYMBOL_NAME:  pci!PciExternalReadDeviceConfig+b3

IMAGE_VERSION:  6.0.6000.16386

STACK_COMMAND:  .cxr; .ecxr ; kb

MODULE_NAME: CentaurHauls

IMAGE_NAME:  CentaurHauls.sys

FAILURE_BUCKET_ID:  IP_MISALIGNED_CentaurHauls.sys

OS_VERSION:  0.0.6000.16386

BUILDLAB_STR:  vista_rtm

OSPLATFORM_TYPE:  x86

OSNAME:  Windows Vista

FAILURE_ID_HASH:  {ec974eab-1289-3e42-33a9-93774d3ed5c8}

Followup:     MachineOwner
---------


EDIT 2: this also occurs under the VPC2007 machine

************* Preparing the environment for Debugger Extensions Gallery repositories **************
   ExtensionRepository : Implicit
   UseExperimentalFeatureForNugetShare : true
   AllowNugetExeUpdate : true
   AllowNugetMSCredentialProviderInstall : true
   AllowParallelInitializationOfLocalRepositories : true

   -- 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.094 seconds
   ----> Repository : UserExtensions, Enabled: true, Packages count: 0
   ----> Repository : LocalInstalled, Enabled: true, Packages count: 36

Microsoft (R) Windows Debugger Version 10.0.25921.1001 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\Users\Kelsey\Documents\86box_vista_vpc\pagefile.sys]
Kernel Summary Dump File: Kernel address space is available, User address space may not be available.


************* Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       srv*
Symbol search path is: srv*
Executable search path is: 
VirtualToOffset: 10800000 not properly sign extended
Windows Vista Kernel Version 6000 UP Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Edition build lab: 6000.16386.x86fre.vista_rtm.061101-2205
Kernel base = 0x81400000 PsLoadedModuleList = 0x81508ab0
Debug session time: Tue Jan 30 19:41:09.585 2024 (UTC + 8:00)
System Uptime: 0 days 0:09:00.046
VirtualToOffset: 17800000 not properly sign extended
Loading Kernel Symbols
...............................................................
................................................................
...................................
Loading User Symbols

Loading unloaded module list
........
For analysis of this file, run !analyze -v
eax=814ec83c ebx=00000001 ecx=00000008 edx=8151fe5c esi=814ec820 edi=0000001f
eip=81457535 esp=925b5208 ebp=925b5270 iopl=0         nv up ei ng nz na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000286
nt!MmAccessFault+0x14b:
81457535 837c242000      cmp     dword ptr [esp+20h],0 ss:0010:925b5228=925b5304
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: ffffffc9, memory referenced.
Arg2: 00000001, 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: 814360e4, If non-zero, the instruction address which referenced the bad memory
	address.
Arg4: 00000000, (reserved)

Debugging Details:
------------------


KEY_VALUES_STRING: 1

    Key  : AV.Type
    Value: Write

    Key  : Analysis.CPU.mSec
    Value: 1093

    Key  : Analysis.Elapsed.mSec
    Value: 1107

    Key  : Analysis.IO.Other.Mb
    Value: 0

    Key  : Analysis.IO.Read.Mb
    Value: 0

    Key  : Analysis.IO.Write.Mb
    Value: 0

    Key  : Analysis.Init.CPU.mSec
    Value: 249

    Key  : Analysis.Init.Elapsed.mSec
    Value: 19167

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 74

    Key  : Bugcheck.Code.KiBugCheckData
    Value: 0x50

    Key  : Bugcheck.Code.LegacyAPI
    Value: 0x50

    Key  : Failure.Bucket
    Value: IP_MISALIGNED_GenuineIntel.sys

    Key  : Failure.Hash
    Value: {e930d917-b247-3f7f-23cb-88a0c9f1b274}

    Key  : WER.OS.Branch
    Value: vista_rtm

    Key  : WER.OS.Version
    Value: 0.0.6000.16386


BUGCHECK_CODE:  50

BUGCHECK_P1: ffffffffffffffc9

BUGCHECK_P2: 1

BUGCHECK_P3: ffffffff814360e4

BUGCHECK_P4: 0

FILE_IN_CAB:  pagefile.sys

VIRTUAL_MACHINE:  HyperV

WRITE_ADDRESS: Target machine operating system not supported
 ffffffc9 

MM_INTERNAL_CODE:  0

PROCESS_NAME:  System

TRAP_FRAME:  925b5288 -- (.trap 0xffffffff925b5288)
ErrCode = 00000002
eax=00000000 ebx=82b477b8 ecx=00000001 edx=00000001 esi=8045499c edi=ffffffc9
eip=814360e4 esp=925b52fc ebp=925b5304 iopl=0         nv up ei pl nz na po nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000202
nt!memcpy+0x74:
814360e4 8807            mov     byte ptr [edi],al          ds:0023:ffffffc9=??
Resetting default scope

LOCK_ADDRESS:  81524aa0 -- (!locks 81524aa0)

Resource @ nt!PiEngineLock (0x81524aa0)    Exclusively owned
    Contention Count = 4
     Threads: 83b6ad10-01<*> 
1 total locks

PNP_TRIAGE_DATA: 
	Lock address  : 0x81524aa0
	Thread Count  : 1
	Thread address: 0x83b6ad10
	Thread wait   : 0xd2a7

MISALIGNED_IP: 
nt!memcpy+74
814360e4 8807            mov     byte ptr [edi],al

STACK_TEXT:  
925b5270 81449304     00000001 ffffffc9 00000000 nt!MmAccessFault+0x14b
    <Intermediate frames may have been skipped due to lack of complete unwind>
925b5270 814360e4 (T) 00000001 ffffffc9 00000000 nt!KiTrap0E+0xdc
    <Intermediate frames may have been skipped due to lack of complete unwind>
925b5304 8044b03d (T) ffffffc9 8045499c 00000004 nt!memcpy+0x74
925b5320 8044b34d     00b477b8 ffffffc9 0000007c pci!PciExternalReadDeviceConfig+0xb3
925b5340 8044b434     82b477b8 00000000 ffffffc9 pci!PciReadDeviceSpace+0x73
925b5364 847c1743     82b477b8 00000000 ffffffc9 pci!PciBusInterface_GetBusData+0x22
925b5390 8472bb59     83a58488 0000007c ffffffc9 ndis!ndisGetSetBusConfigSpace+0x92
925b53bc 8b2ea752     83a58488 00000000 0000007c ndis!NdisReadPciSlotInformation+0x4d
925b5684 847ccb50     925b56c0 925b5720 847318c0 dc21x4vm!DC21X4Initialize+0x44
925b5930 847d46aa     83a55b68 83a58488 82f4b188 ndis!ndisMInitializeAdapter+0x5aa
925b5968 847d4525     83a55b68 83a583d0 83a5c408 ndis!ndisInitializeAdapter+0x109
925b5990 847cfedc     83a583d0 8542b9c8 83a3fd00 ndis!ndisPnPStartDevice+0xf3
925b59e0 81467cc9     83a583d0 83a3fc48 925b5a5c ndis!ndisPnPDispatch+0x697
925b59f8 8155ecaf     00000000 82b47700 88870798 nt!IofCallDriver+0x63
925b5a14 8140fccd     925b5a38 8140faf8 88870798 nt!PnpAsynchronousCall+0x96
925b5a60 8155f0fe     8140faf8 88870798 82b468b0 nt!PnpStartDevice+0xb0
925b5abc 8155efb9     88870798 0000003c 00000000 nt!PnpStartDeviceNode+0x13a
925b5ad8 8155dd9a     00000000 00000000 82b468b0 nt!PipProcessStartPhase1+0x65
925b5cd4 81651401     82b468b0 83a5aad8 925b5d00 nt!PipProcessDevNodeTree+0x18d
925b5d08 8140f6f1     814f55fc 83b6ad10 81523ce0 nt!PiRestartDevice+0x8a
925b5d44 8146b8aa     00000000 00000000 83b6ad10 nt!PnpDeviceActionWorker+0x1ae
925b5d7c 815afbfd     00000000 925be680 00000000 nt!ExpWorkerThread+0xfd
925b5dc0 8149a396     8146b7ad 80000001 00000000 nt!PspSystemThreadStartup+0x9d
00000000 00000000     00000000 00000000 00000000 nt!KiThreadStartup+0x16


SYMBOL_NAME:  pci!PciExternalReadDeviceConfig+b3

IMAGE_VERSION:  6.0.6000.16386

STACK_COMMAND:  .cxr; .ecxr ; kb

MODULE_NAME: GenuineIntel

IMAGE_NAME:  GenuineIntel.sys

FAILURE_BUCKET_ID:  IP_MISALIGNED_GenuineIntel.sys

OS_VERSION:  0.0.6000.16386

BUILDLAB_STR:  vista_rtm

OSPLATFORM_TYPE:  x86

OSNAME:  Windows Vista

FAILURE_ID_HASH:  {e930d917-b247-3f7f-23cb-88a0c9f1b274}

Followup:     MachineOwner
---------

WinFutureX avatar Jan 30 '24 11:01 WinFutureX

Yes, the entire VM would be nice so that I can test any fix I may try.

OBattler avatar Jan 30 '24 13:01 OBattler

Here.

WinFutureX avatar Jan 30 '24 15:01 WinFutureX

Also, here is a WinDbg trace without the BIOS enabled:

*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

KERNEL_MODE_EXCEPTION_NOT_HANDLED (8e)
This is a very common BugCheck.  Usually the exception address pinpoints
the driver/function that caused the problem.  Always note this address
as well as the link date of the driver/image that contains this address.
Some common problems are exception code 0x80000003.  This means a hard
coded breakpoint or assertion was hit, but this system was booted
/NODEBUG.  This is not supposed to happen as developers should never have
hardcoded breakpoints in retail code, but ...
If this happens, make sure a debugger gets connected, and the
system is booted /DEBUG.  This will let us see why this breakpoint is
happening.
Arguments:
Arg1: c0000005, The exception code that was not handled
Arg2: 8cd9a76c, The address that the exception occurred at
Arg3: 89a54364, Trap Frame
Arg4: 00000000

Debugging Details:
------------------


KEY_VALUES_STRING: 1

    Key  : Analysis.CPU.mSec
    Value: 718

    Key  : Analysis.Elapsed.mSec
    Value: 5221

    Key  : Analysis.IO.Other.Mb
    Value: 0

    Key  : Analysis.IO.Read.Mb
    Value: 0

    Key  : Analysis.IO.Write.Mb
    Value: 0

    Key  : Analysis.Init.CPU.mSec
    Value: 171

    Key  : Analysis.Init.Elapsed.mSec
    Value: 2420

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 71

    Key  : Bugcheck.Code.LegacyAPI
    Value: 0x1000008e

    Key  : Failure.Bucket
    Value: 0x8E_dc21x4vm!DC21X4Initialize+5e

    Key  : Failure.Hash
    Value: {fab89be0-83d4-2969-6b52-321f1971cf36}

    Key  : WER.OS.Branch
    Value: vista_rtm

    Key  : WER.OS.Version
    Value: 0.0.6000.16386


BUGCHECK_CODE:  8e

BUGCHECK_P1: ffffffffc0000005

BUGCHECK_P2: ffffffff8cd9a76c

BUGCHECK_P3: ffffffff89a54364

BUGCHECK_P4: 0

FILE_IN_CAB:  Mini013124-01.dmp

TRAP_FRAME:  89a54364 -- (.trap 0xffffffff89a54364)
ErrCode = 00000000
eax=00000000 ebx=834040e8 ecx=8cd9708d edx=89a54684 esi=89a54720 edi=834040e8
eip=8cd9a76c esp=89a543d8 ebp=00000001 iopl=0         nv up ei pl zr na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000246
dc21x4vm!DC21X4Initialize+0x5e:
8cd9a76c 394514          cmp     dword ptr [ebp+14h],eax ss:0010:00000015=????????
Resetting default scope

CUSTOMER_CRASH_COUNT:  1

PROCESS_NAME:  System

LOCK_ADDRESS:  81924aa0 -- (!locks 81924aa0)
Cannot get _ERESOURCE Flag field
Unexpected resource format: 0
1 total locks

PNP_TRIAGE_DATA: 
	Lock address  : 0x81924aa0
	Thread Count  : 0
	Thread address: 0x00000000
	Thread wait   : 0x0

STACK_TEXT:  
89a54684 83b7db50     89a546c0 89a54720 83ae28c0 dc21x4vm!DC21X4Initialize+0x5e
89a54930 83b856aa     83262e60 834040e8 83024cd0 ndis!ndisMInitializeAdapter+0x5aa
89a54968 83b85525     83262e60 83404030 8274af88 ndis!ndisInitializeAdapter+0x109
89a54990 83b80edc     83404030 89ff6ba0 83371ee0 ndis!ndisPnPStartDevice+0xf3
89a549e0 81867cc9     83404030 83371e28 89a54a5c ndis!ndisPnPDispatch+0x697
89a549f8 8195ecaf     00000000 82746b98 82ed3ac0 nt!IofCallDriver+0x63
89a54a14 8180fccd     89a54a38 8180faf8 82ed3ac0 nt!PnpAsynchronousCall+0x96
89a54a60 8195f0fe     8180faf8 82ed3ac0 82748ea8 nt!PnpStartDevice+0xb0
89a54abc 8195efb9     82ed3ac0 0000003c 00000000 nt!PnpStartDeviceNode+0x13a
89a54ad8 8195dd9a     00000000 00000000 82748ea8 nt!PipProcessStartPhase1+0x65
89a54cd4 81a51401     82748ea8 82edce40 89a54d00 nt!PipProcessDevNodeTree+0x18d
89a54d08 8180f6f1     818f55fc 8302fd78 81923ce0 nt!PiRestartDevice+0x8a
89a54d44 8186b8aa     00000000 00000000 8302fd78 nt!PnpDeviceActionWorker+0x1ae
89a54d7c 819afbfd     00000000 89a5f680 00000000 nt!ExpWorkerThread+0xfd
89a54dc0 8189a396     8186b7ad 80000001 00000000 nt!PspSystemThreadStartup+0x9d
00000000 00000000     00000000 00000000 00000000 nt!KiThreadStartup+0x16


SYMBOL_NAME:  dc21x4vm!DC21X4Initialize+5e

MODULE_NAME: dc21x4vm

IMAGE_NAME:  dc21x4vm.sys

IMAGE_VERSION:  6.0.0.0

STACK_COMMAND:  .cxr; .ecxr ; kb

FAILURE_BUCKET_ID:  0x8E_dc21x4vm!DC21X4Initialize+5e

OS_VERSION:  0.0.6000.16386

BUILDLAB_STR:  vista_rtm

OSPLATFORM_TYPE:  x86

OSNAME:  Windows Vista

FAILURE_ID_HASH:  {fab89be0-83d4-2969-6b52-321f1971cf36}

Followup:     MachineOwner
---------

And the same for VPC2007:

*******************************************************************************
*                                                                             *
*                        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: ffffffc9, memory referenced.
Arg2: 00000001, 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: 814360e4, If non-zero, the instruction address which referenced the bad memory
	address.
Arg4: 00000000, (reserved)

Debugging Details:
------------------


KEY_VALUES_STRING: 1

    Key  : AV.Type
    Value: Write

    Key  : Analysis.CPU.mSec
    Value: 765

    Key  : Analysis.Elapsed.mSec
    Value: 12852

    Key  : Analysis.IO.Other.Mb
    Value: 0

    Key  : Analysis.IO.Read.Mb
    Value: 0

    Key  : Analysis.IO.Write.Mb
    Value: 0

    Key  : Analysis.Init.CPU.mSec
    Value: 218

    Key  : Analysis.Init.Elapsed.mSec
    Value: 2072

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 75

    Key  : Bugcheck.Code.KiBugCheckData
    Value: 0x50

    Key  : Bugcheck.Code.LegacyAPI
    Value: 0x50

    Key  : Failure.Bucket
    Value: IP_MISALIGNED_GenuineIntel.sys

    Key  : Failure.Hash
    Value: {e930d917-b247-3f7f-23cb-88a0c9f1b274}

    Key  : WER.OS.Branch
    Value: vista_rtm

    Key  : WER.OS.Version
    Value: 0.0.6000.16386


BUGCHECK_CODE:  50

BUGCHECK_P1: ffffffffffffffc9

BUGCHECK_P2: 1

BUGCHECK_P3: ffffffff814360e4

BUGCHECK_P4: 0

FILE_IN_CAB:  Mini013124-01.dmp

VIRTUAL_MACHINE:  HyperV

WRITE_ADDRESS: Target machine operating system not supported
 ffffffc9 

MM_INTERNAL_CODE:  0

CUSTOMER_CRASH_COUNT:  1

PROCESS_NAME:  System

TRAP_FRAME:  92665288 -- (.trap 0xffffffff92665288)
ErrCode = 00000002
eax=00000000 ebx=82b477b8 ecx=00000001 edx=00000001 esi=8045499c edi=ffffffc9
eip=814360e4 esp=926652fc ebp=92665304 iopl=0         nv up ei pl nz na po nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000202
nt!memcpy+0x74:
814360e4 8807            mov     byte ptr [edi],al          ds:0023:ffffffc9=??
Resetting default scope

LOCK_ADDRESS:  81524aa0 -- (!locks 81524aa0)
Cannot get _ERESOURCE Flag field
Unexpected resource format: 0
1 total locks

PNP_TRIAGE_DATA: 
	Lock address  : 0x81524aa0
	Thread Count  : 0
	Thread address: 0x00000000
	Thread wait   : 0x0

MISALIGNED_IP: 
nt!memcpy+74
814360e4 8807            mov     byte ptr [edi],al

STACK_TEXT:  
92665270 81449304     00000001 ffffffc9 00000000 nt!MmAccessFault+0x14b
    <Intermediate frames may have been skipped due to lack of complete unwind>
92665270 814360e4 (T) 00000001 ffffffc9 00000000 nt!KiTrap0E+0xdc
    <Intermediate frames may have been skipped due to lack of complete unwind>
92665304 8044b03d (T) ffffffc9 8045499c 00000004 nt!memcpy+0x74
92665320 8044b34d     00b477b8 ffffffc9 0000007c pci!PciExternalReadDeviceConfig+0xb3
92665340 8044b434     82b477b8 00000000 ffffffc9 pci!PciReadDeviceSpace+0x73
92665364 847c1743     82b477b8 00000000 ffffffc9 pci!PciBusInterface_GetBusData+0x22
92665390 8472bb59     839f8488 0000007c ffffffc9 ndis!ndisGetSetBusConfigSpace+0x92
926653bc 8baf6752     839f8488 00000000 0000007c ndis!NdisReadPciSlotInformation+0x4d
92665684 847ccb50     926656c0 92665720 847318c0 dc21x4vm!DC21X4Initialize+0x44
92665930 847d46aa     839e0a50 839f8488 8329ece0 ndis!ndisMInitializeAdapter+0x5aa
92665968 847d4525     839e0a50 839f83d0 83a1f158 ndis!ndisInitializeAdapter+0x109
92665990 847cfedc     839f83d0 91f44e08 8399d608 ndis!ndisPnPStartDevice+0xf3
926659e0 81467cc9     839f83d0 8399d550 92665a5c ndis!ndisPnPDispatch+0x697
926659f8 8155ecaf     00000000 82b47700 83a880b8 nt!IofCallDriver+0x63
92665a14 8140fccd     92665a38 8140faf8 83a880b8 nt!PnpAsynchronousCall+0x96
92665a60 8155f0fe     8140faf8 83a880b8 82b46750 nt!PnpStartDevice+0xb0
92665abc 8155efb9     83a880b8 0000003c 00000000 nt!PnpStartDeviceNode+0x13a
92665ad8 8155dd9a     00000000 00000000 82b46750 nt!PipProcessStartPhase1+0x65
92665cd4 81651401     82b46750 839a0060 92665d00 nt!PipProcessDevNodeTree+0x18d
92665d08 8140f6f1     814f55fc 83b88390 81523ce0 nt!PiRestartDevice+0x8a
92665d44 8146b8aa     00000000 00000000 83b88390 nt!PnpDeviceActionWorker+0x1ae
92665d7c 815afbfd     00000000 9266e680 00000000 nt!ExpWorkerThread+0xfd
92665dc0 8149a396     8146b7ad 80000001 00000000 nt!PspSystemThreadStartup+0x9d
00000000 00000000     00000000 00000000 00000000 nt!KiThreadStartup+0x16


SYMBOL_NAME:  pci!PciExternalReadDeviceConfig+b3

IMAGE_VERSION:  6.0.6000.16386

STACK_COMMAND:  .cxr; .ecxr ; kb

MODULE_NAME: GenuineIntel

IMAGE_NAME:  GenuineIntel.sys

FAILURE_BUCKET_ID:  IP_MISALIGNED_GenuineIntel.sys

OS_VERSION:  0.0.6000.16386

BUILDLAB_STR:  vista_rtm

OSPLATFORM_TYPE:  x86

OSNAME:  Windows Vista

FAILURE_ID_HASH:  {e930d917-b247-3f7f-23cb-88a0c9f1b274}

Followup:     MachineOwner
---------

WinFutureX avatar Jan 31 '24 12:01 WinFutureX

I tested the adapter in the checked build of Windows 7 and found something different. This time, the VM still BSODs, but this was caused by a CPU double fault, and the dc21x4vm.sys driver doesn't seem to be the cause. Monitor_1_20240204-011810-979 Monitor_1_20240204-014047-803 Monitor_1_20240204-014152-427 Monitor_1_20240204-014221-016 The WinDbg stack trace output isn't useful either as the stack pointer is somewhere else:

eax=8e34d000 ebx=8e34e224 ecx=8e34dd3c edx=00000001 esi=0000027f edi=00000000
eip=829b6a43 esp=8e34e000 ebp=8e34e1f4 iopl=0         nv up di ng nz na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000086
nt!KiTrap0E+0xb:
829b6a43 0fa0            push    fs

[...]

BUGCHECK_CODE:  7f

BUGCHECK_P1: 8

BUGCHECK_P2: ffffffff801ca000

BUGCHECK_P3: 0

BUGCHECK_P4: 0

FILE_IN_CAB:  020424-4291579354-01.dmp

STACK_OVERFLOW: Stack Limit: 8e34e000. Use (kF) and (!stackusage) to investigate stack usage.

CUSTOMER_CRASH_COUNT:  1

PROCESS_NAME:  System

STACK_TEXT:  
    <Intermediate frames may have been skipped due to lack of complete unwind>
8e34e1f4 00000000 (T) 8e34e210 00000000 8e34e264 nt!KiTrap0E+0xb
WARNING: Frame IP not in any known module. Following frames may be wrong.
    <Intermediate frames may have been skipped due to lack of complete unwind>
8e34e264 00000000 (T) badb0d00 829b9d96 00000000 0x0

EDIT: WinDbg trace from free build of Win7 with the VPC2007 machine (note: on Linux, on which this was tested, there is a bug in which the "enable BIOS" option for the VPC DEC 21140 does nothing at all)

eax=00000000 ebx=80e0f0a8 ecx=83fead48 edx=8285bc76 esi=00000000 edi=00001f80
eip=82864b89 esp=80e0f000 ebp=80e0f014 iopl=0         nv up ei pl zr na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000246
nt!MmAccessFault+0x2:
82864b89 55              push    ebp

[...]

BUGCHECK_CODE:  7f

BUGCHECK_P1: 8

BUGCHECK_P2: ffffffff801c6000

BUGCHECK_P3: 0

BUGCHECK_P4: 0

FILE_IN_CAB:  020524-64002-01.dmp

VIRTUAL_MACHINE:  HyperV

STACK_OVERFLOW: Stack Limit: 80e0f000. Use (kF) and (!stackusage) to investigate stack usage.

STACKUSAGE_FUNCTION: The function at address 0xffffffff828ad8b9 was blamed for the stack overflow. It is using 2092 bytes of stack.

CUSTOMER_CRASH_COUNT:  1

PROCESS_NAME:  System

STACK_TEXT:  
80e0effc 8283e968     00000000 00001f80 00000000 nt!MmAccessFault+0x2
    <Intermediate frames may have been skipped due to lack of complete unwind>
80e0effc 00001f80 (T) 00000000 00001f80 00000000 nt!KiTrap0E+0xdc
WARNING: Frame IP not in any known module. Following frames may be wrong.
    <Intermediate frames may have been skipped due to lack of complete unwind>
80e0f084 8285bc62 (T) 80e0f590 80e11dd4 80e0f170 0x1f80
80e0f0a8 8285bc34     80e0f590 80e11dd4 80e0f170 nt!ExecuteHandler2+0x26
80e0f160 828ad8b9     80e0f590 80e0f170 00010017 nt!ExecuteHandler+0x24
80e0f574 8283c386     80e0f590 00000000 80e0f5e4 nt!KiDispatchException+0x17c
80e0f5dc 8283c33a     80e0f678 00001f80 badb0d00 nt!CommonDispatchException+0x4a
80e0f654 8285bc62     80e0fb60 80e11dd4 80e0f740 nt!KiExceptionExit+0x192
80e0f678 8285bc34     80e0fb60 80e11dd4 80e0f740 nt!ExecuteHandler2+0x26
80e0f730 828ad8b9     80e0fb60 80e0f740 00010017 nt!ExecuteHandler+0x24
80e0fb44 8283c386     80e0fb60 00000000 80e0fbb4 nt!KiDispatchException+0x17c
80e0fbac 8283c33a     80e0fc48 00001f80 badb0d00 nt!CommonDispatchException+0x4a
80e0fc24 8285bc62     80e10130 80e11dd4 80e0fd10 nt!KiExceptionExit+0x192
80e0fc48 8285bc34     80e10130 80e11dd4 80e0fd10 nt!ExecuteHandler2+0x26
80e0fd00 828ad8b9     80e10130 80e0fd10 00010017 nt!ExecuteHandler+0x24
80e0fd04 80e10130     80e0fd10 00010017 00000000 nt!KiDispatchException+0x17c
80e0fd08 80e0fd10     00010017 00000000 00000000 0x80e10130
80e0fd0c 00010017     00000000 00000000 00000000 0x80e0fd10
80e0fd10 00000000     00000000 00000000 00000000 0x10017

WinFutureX avatar Feb 03 '24 18:02 WinFutureX

Closing this because it's most likely a CANTFIX - the driver most likely relies on Virtual PC-specific behavior that we have no way of knowing.

OBattler avatar Sep 01 '24 13:09 OBattler