gpt4 book ai didi

c - NtQuerySystemInformation - 内存泄漏

转载 作者:行者123 更新时间:2023-11-30 14:47:22 24 4
gpt4 key购买 nike

我通过循环运行NtQuerySystemInformation来枚举所有进程。在调用主循环之前,我会循环NtQuerySystemInformation,直到返回值!= STATUS_INFO_LENGTH_MISMATCH。这样我就知道分配的缓冲区中有足够的内存来容纳所有进程名称及其信息结构。

我通过获取为此结构分配的基值并向其添加 NextEntryOffset 值来迭代 PSYSTEM_PROCESS_INFORMATION 结构,直到 NextEntryOffset != NULL.

所以问题是,在我尝试释放该结构分配的内存后,我在_CrtIsValidHeapPointer上得到了一个断点。

我假设这是因为我已经迭代到结构的末尾,并且没有引用结构的开头(我最初分配的)。

我的问题是,如何获得对原始值的引用,以便我可以正确释放该结构,或者在不获取此断点的情况下释放它的正确方法是什么?

最佳答案

在更新指针结构指向的位置之前存储指向缓冲区原始地址的指针(仅适用于第一个指针地址)。然后,您可以使用开始缓冲区的备份,以便稍后在使用完缓冲区后释放内存。如果您稍后需要释放缓冲区,但需要在使用它执行工作时更新到指针结构指向的位置,那么这就是您需要做的全部事情。

关于c - NtQuerySystemInformation - 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51343846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com