????
在OALIntrInit这个函数里会调用
// Initialize interrupt mapping
OALIntrMapInit();
// Mask and clear interrupts in INTC
OALIntrStaticTranslate(SYSINTR_USBH,IRQ_PHY_UHC);
这两个函数。
OALIntrMapInit();是微软的代码,做了irq2sysintr[]和sysintr2irq[]的初始化,初始化值都是未定义标志。
OALIntrStaticTranslate也是微软的代码,这里应该是静态分配了usb host的sysintr值了。
那么除了usb host外的中断是不是通过KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR,&Irq, sizeof(UINT32),&SysIntr, sizeof(UINT32), NULL))这样的方式得到Windows CE动态分配的SysIntr值呢?当然Irq是某个已知确定合法值。