I have two recently produced machines that came with Windows Vista. Since I plan to use these machines for WHQL testing, I reinstall Vista x86 or Vista x64 (free/rtm) from scratch and update them completely. I have found that in the combinations I've tried, Driver Verifier's Disk Integrity Verification consistently results in thrown assertions or VM paging BSODs.
So, how is anyone supposed to use Driver Verifier's Disk Integrity Verification option if it fails out of the box?
Lets start with the Gateway GT5408. The BIOS is configured to present the Intel Matrix Storage SATA controller as a RAID. I did a clean install of Vista Home Premium 32-bit. I installed all of the latest updates. When I use Driver Verifier's Disk Integrity Checking option (execute "verifier /disk /driver partmgr.sys" from an elevated command shell and reboot) and I execute four tasks that pound on the disk, I consistently get VM faults. If I try a few times, a backtrace with iaStor.sys and crcdisk.sys occurs. The four tasks in particular are "defrag c: -w -f -v" "nfi c: > sectors.txt" and two instances of iozone running the backward read test on a 2GB file in 8MB hunks.
So, I reconfigured the BIOS to present the Intel SATA controller as a AHCI controller. (It has three options: IDE, AHCI and RAID.) Reinstall, reupdate. Run the same test. This time, I consistently get assertion failures in crcdisk:
BugCheck 8E, {c0000420, 818285bd, 80406c50, 0}
Probably caused by : crcdisk.sys ( crcdisk!VerifyOrStoreSectorCheckSum+bc )
Followup: MachineOwner
nt!RtlpBreakWithStatusInstruction:
81881760 cc int 3
0: kd> k
ChildEBP RetAddr
804063f4 818d873f nt!RtlpBreakWithStatusInstruction
80406444 818d91ac nt!KiBugCheckDebugBreak+0x1c
804067f0 818d85c9 nt!KeBugCheck2+0x5f4
80406810 818232b3 nt!KeBugCheckEx+0x1e
80406be0 8188d52a nt!KiDispatchException+0x1a9
80406c48 8188d4c6 nt!CommonDispatchException+0x4a
80406c74 81ba98e5 nt!Kei386EoiHelper+0x16e
80406cdc 8189056d hal!HalpHpetQueryPerformanceCounter+0x1d
80406cdc 81c0896c nt!KeUpdateSystemTime+0xed
80406d74 81c08d01 crcdisk!VerifyOrStoreSectorCheckSum+0xbc
80406da4 81c0821a crcdisk!VerifyCheckSum+0xa9
80406de0 81c08570 crcdisk!CompleteXfer+0x16a
80406df4 81acec69 crcdisk!CrcScsiReadCompletion+0x20
80406e2c 818acb3b nt!IovpLocalCompletionRoutine+0xcc
80406e64 81aceb53 nt!IopfCompleteRequest+0x13d
80406ed4 8079d2b1 nt!IovCompleteRequest+0x11c
80406ee4 8079dc94 ataport!IdeCompleteScsiIrp+0x31
80406f04 8079afc4 ataport!IdeCommonCrbCompletion+0x44
80406f14 8079fe21 ataport!IdeTranslateCompletedRequest+0x26
80406f34 807a0057 ataport!IdeProcessCompletedRequests+0x121
Or assertion failures at:
Assertion failure - code c0000420 (first chance)
nt!KeUpdateRunTime+0x248:
818285bd cd2c int 2Ch
0: kd> k
ChildEBP RetAddr
80406cdc 8189056d nt!KeUpdateRunTime+0x248
80406cdc 81c0896c nt!KeUpdateSystemTime+0xed
80406d74 81c08d01 crcdisk!VerifyOrStoreSectorCheckSum+0xbc
80406da4 81c0821a crcdisk!VerifyCheckSum+0xa9
80406de0 81c08570 crcdisk!CompleteXfer+0x16a
80406df4 81acec69 crcdisk!CrcScsiReadCompletion+0x20
80406e2c 818acb3b nt!IovpLocalCompletionRoutine+0xcc
80406e64 81aceb53 nt!IopfCompleteRequest+0x13d
80406ed4 8079d2b1 nt!IovCompleteRequest+0x11c
80406ee4 8079dc94 ataport!IdeCompleteScsiIrp+0x31
80406f04 8079afc4 ataport!IdeCommonCrbCompletion+0x44
80406f14 8079fe21 ataport!IdeTranslateCompletedRequest+0x26
80406f34 807a0057 ataport!IdeProcessCompletedRequests+0x121
80406f88 818a93ae ataport!IdePortCompletionDpc+0xab
80406ff4 81890d8d nt!KiRetireDpcList+0x147
80406ff8 829cbcd0 nt!KiDispatchInterrupt+0x3d
WARNING: Frame IP not in any known module. Following frames may be wrong.
80406ffc 00905a4d 0x829cbcd0
80407000 00000000 0x905a4d
0: kd> .dump /f c:\crcdisk8-assert.dmp
Because these failures occur right out of the box, am I wrong in saying that WHQL doesn't require "/disk" integrity checking? It sure seems like it.
On the same machine with Vista Business x64, I get similar assertion backtraces:
kd> k
Child-SP RetAddr Call Site
fffff800039819d0 fffff8000185117a nt! ?? ::FNODOBFM::string'+0x42a5 fffff80003981a20 fffff80001ce4914 nt!KeUpdateSystemTime+0xea fffff80003981a50 fffff8000184f99d hal!HalpHpetClockInterrupt+0x8c fffff80003981a80 fffff98000403dad nt!KiInterruptDispatchNoLock+0x14d fffff80003981c10 fffff98000403c45 crcdisk!VerifyOrStoreSectorCheckSum+0x131 fffff80003981c70 fffff98000403263 crcdisk!VerifyCheckSum+0x119 fffff80003981ce0 fffff98000403589 crcdisk!CompleteXfer+0x12b fffff80003981d30 fffff80001c21737 crcdisk!CrcScsiWriteCompletion+0x21 fffff80003981d60 fffff8000185c029 nt!IovpLocalCompletionRoutine+0xf7 fffff80003981d90 fffff80001c1b633 nt!IopfCompleteRequest+0x1a9 fffff80003981e00 fffff98000524a0a nt!IovCompleteRequest+0x43 fffff80003981ee0 fffff98000516f87 storport!RaidUnitCompleteRequest+0xde fffff80003981f40 fffff80001850ad2 storport!RaidpAdapterDpcRoutine+0x2f fffff80003981f70 fffff80001850445 nt!KiRetireDpcList+0x155 fffff80003981fe0 00000000`00000000 nt!KiDispatchInterrupt+0x55
The same problem also occurs on clean install of Vista Business x64 on a Dell Dimension C521, except the problem doesn't occur as quickly. The failures described above all occurred in under 5 minutes. The problem on the Dell C521 occurs after about 2.5 hours of stress.
What are your experiences with the "/disk" option and Driver Verifier on Vista? What hardware are you using?
Thank you,
--Steven Bytnar
Software Technologies Group, Inc.
10330 W Roosevelt Road, Suite 310
Westchester, IL 60154