Спасибо за ответ. В процессе вдумчивого наблюдения появились следующие мысли:
Вот что происходит в winxp:
вызываем функцию:
Vector = HalGetInterruptVector(Isa, 0, INTERRUPT_IRQ, INTERRUPT_IRQ, &kIrql, &kAffinity);
вывод отладки: DriverEntry: Interrupt 0xb, Irql = 0x7, Affinity = 0x1, Vector = 0x181
тот же самый драйвер в win7-x32
вывод отладки: DriverEntry: Interrupt 0xb, Irql = 0x93, Affinity = 0x2, Vector = 0x0
видно что вектор нулевой из-за чего (как мне кажется) дальнейший вызов
status = IoConnectInterrupt
завершается ошибкой.
Что не так с функцией HalGetInterruptVector в win7?