2

我有一个进程 ID 列表,我想列出该进程拥有的所有互斥锁。

我正在尝试在 C# 中执行此操作,但我无法找到执行此操作的方法。

到目前为止,我得到了:

foreach(Process thisProcess in processlist)
{
    Console.WriteLine("{0} {1}", thisProcess.ProcessName, thisProcess.Id);
}

这将列出所有进程 ID,但需要它们拥有的互斥锁。

我读过一些关于使用 NTDLL.dll 的内容,但现在不知道如何使用。

4

1 回答 1

2

枚举互斥锁是使用“内核对象”的一般工作的一部分。在深入研究此类代码之前,阅读“Windows Internals”一书是个好主意。

这是一个链接,提供有关枚举内核对象的一些信息

将 ZwQuerySystemInformation 与 SystemHandleInformation、ZwDuplicateObject、ZwQueryObject 与 ObjectNameInformation 一起使用。

于 2012-06-29T20:34:37.453 回答