反汇编发现KeSetTargetProcessorDpc把dpc结构中的number字段设置为参数2,
同此我推测KeInsertQueueDpc的时候会依据这个number字段值插入到对应的cpu中
for (i = 0; i < DevExt->CpuNumber; i++)
{
KeInitializeDpc(idtDpc, (PKDEFERRED_ROUTINE) myIdtDpc,DevExt);
KeSetTargetProcessorDpc (idtDpc, i);
KeInsertQueueDpc (idtDpc, NULL, NULL);
idtDpc ++;
}
//等待所有进入DPC队列的myIdtDpc例程执行完毕
while (DevExt->cpuID != DevExt->CpuNumber)
{
_asm nop
}

1849

被折叠的 条评论
为什么被折叠?



