I've read that in some XP systems the keyboard interrupt is located at 0x31 in IDT, but the only way to know for sure is parsing hall.dll to see what vector is tied to IRQ 1. I've been searching on the internet more information about this and I've found this function:
ULONG HalGetInterruptVector(IN INTERFACE_TYPE InterfaceType,
IN ULONG BusNumber,
IN ULONG BusInterruptLevel,
IN ULONG BusInterruptVector,
OUT PKIRQL Irql,
OUT PKAFFINITY Affinity
);
But it says that function is obsolete anyone know other way to get the interrupt vector tied to IRQ 1?.
Thanks guys!