我在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中没有提到的其他成员,有谁可以帮助我?
答案 0 :(得分:4)
保留的结构成员通常不打算供非系统程序员使用(即不打算供您使用)。它们通常被描述为(在MSDN中)为
该结构的各个成员保留供操作系统内部使用。
原因是,这些字段的内容/使用不保证保持不变(即Microsoft保留更改这些字段的内容/含义的权利,例如使用下一个操作系统)。
在你的书中,有人可能已经确定/调试了这些领域的确切内容,并且正在根据这些知识行事。但是如果你编写一个利用这些知识的程序,那么该程序不能保证与操作系统的后期(甚至其他)版本一起使用。