HAL_INITIALIZATION_FAILED

A customer’s system crashed with HAL_INITIALIZATION_FAILED and I’m trying to determine if my driver is to actually blame.

This is a Windows 10 VM and I don’t have all the details behind it but I believe the BSOD occurred during reboot.

I got a small minidump (only about 500kb) for analysis so I’m limited in what I can look for.

There is not a lot of details available about this bugcheck code so I have a few questions.

  1. When can this code occur? That is, if it occurs very early during the boot process then it’s unlikely to be caused by my driver and more likely by some VM issue.
  2. Is the code actually accurate? Some bugcheck codes don’t actually make sense so I’m wondering if this is one of those cases.
  3. Is there any useful data I can get out of this minidump?

0: kd> !analyze -v


  •                                                                         *
    
  •                    Bugcheck Analysis                                    *
    
  •                                                                         *
    

HAL_INITIALIZATION_FAILED (5c)
Arguments:
Arg1: 0000000000000115
Arg2: fffff7c040015538
Arg3: 0000000000001c32
Arg4: ffffffffc0000001

Debugging Details:

BUGCHECK_P1: 115

BUGCHECK_P2: fffff7c040015538

BUGCHECK_P3: 1c32

BUGCHECK_P4: ffffffffc0000001

ADDITIONAL_DEBUG_TEXT: Halfailures structure in bugcheck.cpp needs updated. Please information OCA (alias:werka).

PROCESS_NAME: System

EXCEPTION_RECORD: fffff80147790fbb – (.exr 0xfffff80147790fbb)
ExceptionAddress: ccccccc328c48348
ExceptionCode: 50247c83
ExceptionFlags: 0a850f00
NumberParameters: -858993460
Parameter[0]: 5c8948cccccccccc
Parameter[1]: 4818246c89481024
Parameter[2]: 4156415720247489
Parameter[3]: 00000210ec814857
Parameter[4]: 480029a36e058b48
Parameter[5]: 020024848948c433
Parameter[6]: 0000065181c60000
Parameter[7]: 1c8b4865f98b4801
Parameter[8]: 0013ba0000018825
Parameter[9]: f1a3e8cb8b480000
Parameter[10]: 000006e48b83ffe8
Parameter[11]: 44894868478d4802
Parameter[12]: 2d70fc0d8d484024
Parameter[13]: 000005b0878d4800
Parameter[14]: b78d485024448948

LAST_CONTROL_TRANSFER: from fffff801475aca6b to fffff801477c3a90

STACK_TEXT:
fffff8014de99eb8 fffff801475aca6b : 000000000000005c 0000000000000115 fffff7c040015538 0000000000001c32 : nt!KeBugCheckEx
fffff8014de99ec0 fffff801475ac3d2 : 00000031e00cbeaa 0000000000001c31 fffff7c040016380 fffff801475c8f40 : hal!HalpVpptUpdatePhysicalTimer+0x143
fffff8014de99f00 fffff8014755d4a6 : 00000031e00cbeaa fffff8014de8b5f0 fffff8014de8b670 0000000000000000 : hal!HalpVpptAcknowledgeInterrupt+0x102
fffff8014de99f30 fffff801476f1955 : 00000029e29b24a0 fffff801475cc100 fffff801475cc1b0 0000000000000000 : hal!HalpTimerClockInterrupt+0x36
fffff8014de99f60 fffff801477c551a : fffff8014de8b670 fffff801475cc100 0000000000000000 fffff801475cc100 : nt!KiCallInterruptServiceRoutine+0xa5
fffff8014de99fb0 fffff801477c5a87 : 0000000000000002 fffff8014de8b670 fffff801475cc100 0000000000000000 : nt!KiInterruptSubDispatchNoLockNoEtw+0xfa
fffff8014de8b5f0 fffff8014757582f : fffff80147790fbb 0000000000000000 0000000000000000 0000000000000000 : nt!KiInterruptDispatchNoLockNoEtw+0x37
fffff8014de8b788 fffff80147790fbb : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : hal!HalProcessorIdle+0xf
fffff8014de8b790 fffff80147641bc0 : 0000000000000000 0000000000000000 0000000000000000 000000000000005e : nt!PpmIdleDefaultExecute+0x1b
fffff8014de8b7c0 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!PpmIdleExecuteTransition+0xff0

0: kd> dps nt!KiPreBugcheckStackSaveArea L6000/8
fffff80147a46ea0 ???????????
fffff80147a46ea8 ???????????
fffff80147a46eb0 ???????????
fffff80147a46eb8 ???????????
fffff80147a46ec0 ???????????
fffff80147a46ec8 ???????????
fffff80147a46ed0 ???????????
fffff80147a46ed8 ???????????
fffff80147a46ee0 ???????????
fffff80147a46ee8 ???????????
fffff80147a46ef0 ???????????
fffff80147a46ef8 ???????????
fffff80147a46f00 ???????????

Unless you’re working with the HAL (for example, you’re responsible for the VM or you’re writing HAL Extensions) this isn’t your bug.

IIRC, by convention for HAL_INITIALIZATION_FAILED, when Arg1 is a “small” value like 0x115 as it is here, that indicates an error during system initialization. Much larger values like indicate errors that occur while the system is running.

You should be able to check the dump to see if your driver is even loaded at this point, but I doubt that it is.

Peter