EnumProcess(Source Code), 列举当前系统下所有进程

说明:用PSAPI.DLL里函数写的,此代码无PSAPI.H头文件,无PSAPI.LIB链接库文件。
功能:列举当前系统下所有进程,包括PID,进程名,进程完整路径。
环境:Win2000+sp4+VC6.0
另外:本人水平有限,错误在所难免,望高手批评。

 

-------------------------------------------------------------------------------------

请教个问题楼主:
我在Windows2000P + sp4 + VC6.0下调试的时候有2个进程如下:
Path:/??/C:/WINNT/system32/csrss.exe

4 192 winlogon.exe
Path:/??/C:/WINNT/system32/winlogon.exe

为什么路径前面有2个“?”号呢?
还有个进程为:
2 140 smss.exe
Path:/SystemRoot/System32/smss.exe
它的路径为什么是/SystemRoot?虽然systemroot和C:/winnt/差不多。
其他进程基本都正常... ...

 

 

-----------------------------------------------------------------------------------

/??/C:是符号连接 这是为了让应用程序操作设备而导出的
在存储Windows对象的Hash Table中 它看上去是这样的
DosDevices --> Global --> 符号连接 比如 C:是符号连接
但"连接"的设备就是/Device/HarddiskVolume1 系统第一个分区

至于SystemRoot 表示系统根目录 也是一个符号连接 形如
/Device/Harddisk0/Partition1/WINNT或WINDOWS 如果是2000
系统 就是WINNT 如果是XP/2003 就是Windows
而Partition1也是一个符号连接 它"连接"到/Device/HarddiskVolume1
拼接起来就是/Device/HarddiskVolume1/WINDOWS或WINNT
其实就是C:/WINDOWS或WINNT了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值