我需要运行以下代码:
asm
push eax
mov eax, esp
push 0
push 4
...
call NtQueryInformationThread
...
end;
但是我收到错误消息说NtQueryInformationThread是
“未声明的标识符:'NtQueryInformationThread'”。
你能帮我宣布一下吗?
提前致谢。
最佳答案
您缺少的是您需要使程序从ntdll.dll
导入功能。而且,您不需要asm
,因此您实际上应该避免使用它,因为它会使您的程序难以维护。
您可以像导入其他Windows API函数一样导入该函数:
function NtQueryInformationThread(
ThreadHandle: THandle;
ThreadInformationClass: THREADINFOCLASS;
ThreadInformation: Pointer;
ThreadInformationLength: ULONG;
ReturnLength: PULONG
): NTSTATUS; stdcall; external 'ntdll.dll';
您还将需要几个类型声明:
type
NTSTATUS = LONG;
THREADINFOCLASS = DWORD;