1)驱动程序可以看作是一个特殊的DLL文件被应用程序加载到虚拟内存中,只不过加载的地址是在内核模式,它访问的只是这个进程的虚拟内存,而不是其他进程的虚拟地址
2)windows驱动程序里的不同例程运行在不同的进程中。
例如:DriverEntry例程与AddDevice例程运行在系统(System)进程中,而其他的一些例程比如IRP_MJ_READ和IRP_MJ_WRITE的派遣函数会运行于应用程序的“上下文”中。
3)下面的代码可以看出是运行于哪个进程空间的(可以在任意例程中调用)
VOID DisplayItsProcessName()
{
PEPROCESS pEProcess=PsGetCurrentProcess();
PTSTR ProcessName=(PTSTR)((ULONG)pEProcess+0x174);
KdPrint(("%s\n",ProcessName));
}
阅读(2159) | 评论(0) | 转发(0) |