gpt4 book ai didi

delphi - 我需要调用 RtlQueryProcessHeapInformation 的原型(prototype)

转载 作者:行者123 更新时间:2023-12-03 19:10:20 35 4
gpt4 key购买 nike

我需要在 Delphi 中调用 RtlQueryProcessHeapInformation。
RtlQueryProcessHeapInformation 是从 ntdll.dll 导出的函数。
我没有这个函数的原型(prototype)。我收到“未声明的标识符”错误。

asm 
...
xchg ebx, eax
pop ebp
call RtlQueryProcessHeapInformation
dec ebp
...
end;

感谢您的帮助。

最佳答案

一些网络搜索导致 this pagethis one这表明该函数如下所示:

NTSTATUS NTAPI RtlQueryProcessHeapInformation( 
IN OUT PRTL_DEBUG_INFORMATION Buffer
);

你已经知道了 NTSTATUS来自您的 previous question .至于 NTAPI ,即 __stdcall .这意味着 Delphi 中的函数声明是:
function RtlQueryProcessHeapInformation(
Buffer: PRTL_DEBUG_INFORMATION
): NTSTATUS; stdcall; external 'ntdll.dll';

我链接到的页面还包含 PRTL_DEBUG_INFORMATION 的声明我相信你可以自己翻译。您仍然需要对参数的含义进行逆向工程,因为这是一个实现私有(private)的、未记录的函数。

这是您提出的第二个几乎相同的问题。在这两个问题中,您都将问题作为汇编程序问题提出。但事实并非如此。在这两个问题中,您都需要制定函数的声明,以及如何从外部 DLL 中导入它。你应该从中得到的是,当你需要调用另一个 DLL 中的函数时,你可以做以下两件事之一:
  • 使用 external 隐式导入它我在您的两个问题中都显示了代码。这是更简单的方法。
  • 使用LoadLibraryGetProcAddress显式导入它。这是比较费力的方法。

  • 请不要采取错误的方式——我只是想向您展示您需要知道什么才能自己解决这些问题。

    关于delphi - 我需要调用 RtlQueryProcessHeapInformation 的原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153434/

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