objectx
驱动牛犊
驱动牛犊
  • 注册日期2002-03-15
  • 最后登录2005-06-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1865回复:12

了解当前某个文件正在被那些进程所使用,如何实现

楼主#
更多 发布于:2002-07-18 09:41
typedef struct _SYSTEM_HANDLE_INFORMATION { //  
Information     ULONG ProcessId;
    UCHAR ObjectTypeNumber;
    UCHAR Flags;  // 0x01 = PROTECT_FROM_CLOSE, 0x02 = INHERIT
    USHORT Handle;
    PVOID Object;
    ACCESS_MASK GrantedAccess;
} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;

这是windows native API中的一个结构。他是描述系统的句柄的,
其中的ObjectTypeNumber 代表什么含义? 假如我想写一个程序
了解当前的某个文件正在被那些进程所使用,该如何实现?
谢谢各位指教!

最新喜欢:

baoyibao99baoyib...
objectx
驱动牛犊
驱动牛犊
  • 注册日期2002-03-15
  • 最后登录2005-06-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-19 09:27
我已经编译成功了,谢谢各位
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-18 17:46
[quote]那么我该如何编译这些代码呢? 可不可以直接在VC中编译连接

当然。处理好各数据与函数申明、加入ntdll.lib

很简单的东西,自己摸索一下吧。 [/quote]
阿P,DCOM问题,去看看 :( :( :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-18 17:43
那么我该如何编译这些代码呢? 可不可以直接在VC中编译连接

当然。处理好各数据与函数申明、加入ntdll.lib

很简单的东西,自己摸索一下吧。
objectx
驱动牛犊
驱动牛犊
  • 注册日期2002-03-15
  • 最后登录2005-06-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-18 17:19
那么我该如何编译这些代码呢? 可不可以直接在VC中编译连接
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-18 13:00
我已经知道了,谢谢。不过顺便问一下,是不是zwQuerySystenInfomation得在 驱动中写。


of cource not
objectx
驱动牛犊
驱动牛犊
  • 注册日期2002-03-15
  • 最后登录2005-06-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-18 11:59
我已经知道了,谢谢。不过顺便问一下,是不是zwQuerySystenInfomation得在 驱动中写。
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-18 11:32
我想问一下:如果我用CreateFile打开文件句柄,再通过什么
办法得到句柄信息呢? 还是得通过枚举进程,然后QureyProcessInformation,在如何找到对应的句柄信息,来得知我要的结果呢? 谢谢各位了


??你在问什么?
你有了句柄可以Query它,但似乎你是想找到其它使用它的进程,这是不行的。用ZwSystemInformation就可以了,它会列出对象,你依次比较是否所需,仔细看看“再谈进程与端口的映射”再说吧。
objectx
驱动牛犊
驱动牛犊
  • 注册日期2002-03-15
  • 最后登录2005-06-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-07-18 11:09
我想问一下:如果我用CreateFile打开文件句柄,再通过什么
办法得到句柄信息呢? 还是得通过枚举进程,然后QureyProcessInformation,在如何找到对应的句柄信息,来得知我要的结果呢? 谢谢各位了
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
9楼#
发布于:2002-07-18 11:09
typedef struct _SYSTEM_HANDLE_INFORMATION { //  
Information     ULONG ProcessId;  //这是进程ID非Handle
    UCHAR ObjectTypeNumber;   //这就是对象类型
    UCHAR Flags;  // 0x01 = PROTECT_FROM_CLOSE, 0x02 = INHERIT
    USHORT Handle;
    PVOID Object;
    ACCESS_MASK GrantedAccess;
} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;

ObjectTypeNumber-----------
A number which identifies the type of object to which the handle refers. The number can be translated to a name by using the information returned by ZwQueryObject

如果你觉得2000NativeAPI还不清楚的话,可以看看“再谈进程与端口的映射”是怎么用的。


还是你牛阿!
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-07-18 10:58
typedef struct _SYSTEM_HANDLE_INFORMATION { //  
Information     ULONG ProcessId;  //这是进程ID非Handle
    UCHAR ObjectTypeNumber;   //这就是对象类型
    UCHAR Flags;  // 0x01 = PROTECT_FROM_CLOSE, 0x02 = INHERIT
    USHORT Handle;
    PVOID Object;
    ACCESS_MASK GrantedAccess;
} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;

ObjectTypeNumber-----------
A number which identifies the type of object to which the handle refers. The number can be translated to a name by using the information returned by ZwQueryObject

如果你觉得2000NativeAPI还不清楚的话,可以看看“再谈进程与端口的映射”是怎么用的。
objectx
驱动牛犊
驱动牛犊
  • 注册日期2002-03-15
  • 最后登录2005-06-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-07-18 10:27
可我不知道那种句柄是文件句柄啊?
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
12楼#
发布于:2002-07-18 10:19
那个ProcessId是不是就是打开这个句柄的进程?
游客

返回顶部