VPC2007 DEC 21140 variant causes Vista to BSOD during driver installation
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:
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.
Can I have the dec21x4vm.sys driver please?
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.
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:
Can I have that ntoskrnl.exe, please?
And pci.sys as well.
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
---------
Yes, the entire VM would be nice so that I can test any fix I may try.
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
---------
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.
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
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.