在AddDevice KeInitializeDpc( &pDevExt->Dpc[i], DpcFunc, pDevExt ),DpcFunc方法处理插入的DPC
在PnpStartDevice中用IoConnectInterrupt 关联了isr,在isr中调用KeInsertQueueDpc( &m_pDevExt->Dpc[dec], (void*)dec, NULL );插入DPC。
在32位系统下没有问题,运行正确,但是在64位系统下KeInsertQueueDpc调用完成后,并没跳转到DpcFunc中去处理插入的DPC,而是继续产插入dpc,并且KeInsertQueueDpc时常返回false.
32位和64位系统在执行这些函数上存在区别吗?要注意什么?
------解决方案--------------------
或许是某些参数是64为的吧
Win32 核心 DPC 设计思想和实现思路浅析