SYSTEM_PROCESS_INFORMATION结构中某些成员的含义是什么?

时间:2016-10-06 09:12:21

标签: c++ c windows winapi msdn

我在MSDN中查找了它,但它只列出了一些成员的含义。 这是MSDN中的链接 SYSTEM_PROCESS_INFORMATION structure in MSDN

你看,没有PVOID Reserved2[3]的含义的迹象。在我的书中,在挂钩NtQuerySystemInformation函数隐藏进程的例子中,有些代码如下

if(!_tcsicmp((PWSTR)pCur->Reserved2[1],g_szProcName)) //pCur points to a SYSTEM_PROCESS_INFORMATION , g_szProcName variable is the name of the process to hide . According to the book , here is to search for the target process to hide.
{
   // something to do . According to the book , here is to delete the node of the process to hide  in the single linked list of  SYSTEM_PROCESS_INFORMATION structure 
}

如您所见,此处使用此结构的成员PVOID Reserved2[3]。我想这是过程的名称。但是在代码中使用Reserved2[1],所以我想知道它的准确含义以及MSDN中没有提到的其他成员,有谁可以帮助我?

1 个答案:

答案 0 :(得分:4)

保留的结构成员通常不打算供非系统程序员使用(即不打算供您使用)。它们通常被描述为(在MSDN中)为

  

该结构的各个成员保留供操作系统内部使用。

原因是,这些字段的内容/使用不保证保持不变(即Microsoft保留更改这些字段的内容/含义的权利,例如使用下一个操作系统)。

在你的书中,有人可能已经确定/调试了这些领域的确切内容,并且正在根据这些知识行事。但是如果你编写一个利用这些知识的程序,那么该程序不能保证与操作系统的后期(甚至其他)版本一起使用。