阅读:1864回复:12
了解当前某个文件正在被那些进程所使用,如何实现
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 代表什么含义? 假如我想写一个程序 了解当前的某个文件正在被那些进程所使用,该如何实现? 谢谢各位指教! |
|
最新喜欢:![]() |
沙发#
发布于:2002-07-18 10:19
那个ProcessId是不是就是打开这个句柄的进程?
|
|
板凳#
发布于:2002-07-18 10:27
可我不知道那种句柄是文件句柄啊?
|
|
地板#
发布于: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还不清楚的话,可以看看“再谈进程与端口的映射”是怎么用的。 |
|
地下室#
发布于:2002-07-18 11:09
typedef struct _SYSTEM_HANDLE_INFORMATION { // 还是你牛阿! |
|
5楼#
发布于:2002-07-18 11:09
我想问一下:如果我用CreateFile打开文件句柄,再通过什么
办法得到句柄信息呢? 还是得通过枚举进程,然后QureyProcessInformation,在如何找到对应的句柄信息,来得知我要的结果呢? 谢谢各位了 |
|
6楼#
发布于:2002-07-18 11:32
我想问一下:如果我用CreateFile打开文件句柄,再通过什么 ??你在问什么? 你有了句柄可以Query它,但似乎你是想找到其它使用它的进程,这是不行的。用ZwSystemInformation就可以了,它会列出对象,你依次比较是否所需,仔细看看“再谈进程与端口的映射”再说吧。 |
|
7楼#
发布于:2002-07-18 11:59
我已经知道了,谢谢。不过顺便问一下,是不是zwQuerySystenInfomation得在 驱动中写。
|
|
8楼#
发布于:2002-07-18 13:00
我已经知道了,谢谢。不过顺便问一下,是不是zwQuerySystenInfomation得在 驱动中写。 of cource not |
|
9楼#
发布于:2002-07-18 17:19
那么我该如何编译这些代码呢? 可不可以直接在VC中编译连接
|
|
10楼#
发布于:2002-07-18 17:43
那么我该如何编译这些代码呢? 可不可以直接在VC中编译连接 当然。处理好各数据与函数申明、加入ntdll.lib 很简单的东西,自己摸索一下吧。 |
|
11楼#
发布于:2002-07-18 17:46
[quote]那么我该如何编译这些代码呢? 可不可以直接在VC中编译连接 当然。处理好各数据与函数申明、加入ntdll.lib 很简单的东西,自己摸索一下吧。 [/quote] 阿P,DCOM问题,去看看 :( :( :( |
|
|
12楼#
发布于:2002-07-19 09:27
我已经编译成功了,谢谢各位
|
|