gpt4 book ai didi

c - VirtualQueryEx 的 dwLength 参数的用途是什么?

转载 作者:可可西里 更新时间:2023-11-01 14:49:55 25 4
gpt4 key购买 nike

VirtualQueryEx 的dwLength 参数的作用是什么? Here它是这样描述的:

lpBuffer [out] A pointer to a MEMORY_BASIC_INFORMATION structure in which information about the specified page range is returned.

dwLength [in] The size of the buffer pointed to by the lpBuffer parameter, in bytes.

除了 sizeof(MEMORY_BASIC_INFORMATION) 之外,还有其他原因吗?

最佳答案

  1. 与 Windows API 中经常发生的情况一样,大小字段用于结构版本控制。 Windows 的 future 版本可以在更大的结构中为了解新功能的应用程序提供附加信息,而不会破坏与旧应用程序的二进制兼容性。

  2. 还有一个更有趣的用例:当前的 Windows 版本允许 32 位和 64 位进程在同一台机器上共存。每个进程都获得具有正确数据类型大小的 API,但是如果 64 位进程(比如调试器)想要弄乱 32 位进程的内存页会发生什么,反之亦然?在这种情况下,它不能使用“常规”MEMORY_BASIC_INFORMATION 结构 - 这是适合其“位数”的结构的别名,但必须使用适合目标进程的版本(参见页面底部的 here ) ).在这种情况下,VirtualQueryEx 可以使用大小信息来检查调用者是否提供了正确的结构,并提供错误信息而不是写入错误的内存。

关于c - VirtualQueryEx 的 dwLength 参数的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24961639/

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