我有一个进程ID列表,我想列出此进程拥有的所有互斥锁。
我试图在C#中这样做,但我找不到办法做到这一点。
到目前为止我得到了:
foreach(Process thisProcess in processlist)
{
Console.WriteLine("{0} {1}", thisProcess.ProcessName, thisProcess.Id);
}
这将列出所有进程ID,但需要它们拥有的互斥锁。
我读过有关使用NTDLL.dll的内容,但现在不知道如何使用。
答案 0 :(得分:1)
枚举互斥锁是使用"内核对象"的一般工具的一部分。在深入研究此类代码之前,阅读the book- "Windows Internals"是个好主意。
以下是一个关于some info
的enumerate kernel object链接使用带有ObjectNameInformation的SystemHandleInformation,ZwDuplicateObject,ZwQueryObject的ZwQuerySystemInformation。