Chinaunix首页 | 论坛 | 博客
  • 博客访问: 433212
  • 博文数量: 72
  • 博客积分: 1583
  • 博客等级: 上尉
  • 技术积分: 775
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-23 09:36
文章分类

全部博文(72)

文章存档

2011年(72)

我的朋友

分类: WINDOWS

2011-03-05 14:15:35

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) |
给主人留下些什么吧!~~