_disable and setting IRQL to PASSIVE_LEVEL makes no sense whatsoever. You basically hacked the HAL to support a bug in KDBG. Good job.
I gathered that what I was supporting was pretty nasty, but either way the behavior that was going on was completely wrong. I'm fairly sure there are other misuses of _disable() (and KeLowerIrql) that could result in weird behavior. I'll review them when I get some time. KDBG certainly needs to be fixed to avoid needing to manually lower IRQL.
Regards, Cameron