My kernel driver is suffering from occasional locking up of the system, and I'm admittedly too much of a driver newbie to know how to track it down.
The lockup means that the mouse and keyboard and power button do not respond at all, and even the L-ALT+ScrLock+ScrLock+ScrLock that I have configured on my computer doesn't give me a bugcheck like it normally would. So I have to pull the plug on my computer and reboot.
I have been careful to have my driver do all its work on the same core all the time, using KeSetTargetProcessorDpcEx and doing the work via DPCs.
At the moment, the driver is accessing some per-core MSRs on this core. These can raise an interrupt signal, but there is an APIC register that masks this interrupt. So I don't think the computer is being interrupted at all.
I don't have two computers, so I can only use windbg in local mode. Otherwise I could examine my frozen system while it is frozen (assuming the interface to the remote debugger didn't also get frozen out).
1. If there is an interrupt signal that won't go away, can it take down all the processors? Can I get the kernel to log interrupts received somewhere that I can examine after I reboot?
2. What are some typical deadlocks that could occur in my driver? I'm not explicitly using any spinlocks. Can I get the kernel to detect deadlocks and bugcheck or log or break them or whatever?
3. If I'm somehow corrupting kernel memory, can this take down the system? Can I get the kernel to detect this, etc.?
4. Any other things that could result in all the cores being tied up?
5. Is LiveKD possibly helpful to run while I'm exercising my driver? If so, can you point me to some instructions about how to use it? The livekd download only contains the executable files, and the web site shows a usage display with not much explanation.
6. Do you think it would be worth my while to find a friend with another PC and get a debugging connector cable and debug my system remotely? If so, is there a simple tutorial on how to use windbg or kd, more helpful than the Microsoft pages?
Thanks. All suggestions will be appreciated greatly!