能力值:
( LV3,RANK:30 )
|
-
-
2 楼
屏蔽键盘中断需要操作io apic
ULONG ReadPRT(ULONG PRTIndex)
{
ULONG PRT32;
__asm
{
pushad
mov ecx,0xFFD04000;
mov eax,PRTIndex;
add eax,0x10;
mov [ecx],eax;
mov eax,[ecx+0x10];
mov PRT32,eax;
popad
}
return PRT32;
}
VOID WritePRT(ULONG PRTIndex,ULONG PRTData)
{
__asm
{
pushad
mov ecx,0xFFD04000;
mov eax,PRTIndex;
add eax,0x10;
mov [ecx],eax;
mov eax,PRTData;
mov [ecx+0x10],eax;
popad
}
}
WritePRT(1*2,ReadPRT(1*2) | 0x10000); //屏蔽键盘中断
WritePRT(1*2,ReadPRT(1*2) & ~0x10000); //恢复键盘中断
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
为什么是0xFFD04000
我看spec写是的0xfec00000
|
能力值:
( LV3,RANK:30 )
|
-
-
4 楼
spec上是物理地址
0xFFD04000是windows映射好的
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
这个是不是会把键盘和鼠标都屏蔽掉?
还有如果屏蔽掉后,我将那位置0,但好像不能恢复中断。
求赐教
|
|
|