在应用层调用ZwQueryInformationThread失败,求大神帮忙

Luke_zhuhuanjun 2014-03-02 02:38:07
//下面是一部分代码
//头文件
#include <windows.h>

#include <psapi.h>
#include <TLHELP32.H>

//还有这些声明
#pragma comment(lib,"psapi.lib")
typedef enum _THREADINFOCLASS {
ThreadBasicInformation,
ThreadTimes,
ThreadPriority,
ThreadBasePriority,
ThreadAffinityMask,
ThreadImpersonationToken,
ThreadDescriptorTableEntry,
ThreadEnableAlignmentFaultFixup,
ThreadEventPair_Reusable,
ThreadQuerySetWin32StartAddress,
ThreadZeroTlsCell,
ThreadPerformanceCount,
ThreadAmILastThread,
ThreadIdealProcessor,
ThreadPriorityBoost,
ThreadSetTlsArrayAddress,
ThreadIsIoPending,
ThreadHideFromDebugger,
ThreadBreakOnTermination,
MaxThreadInfoClass
} THREADINFOCLASS;


extern "C"
LONG
(__stdcall *ZwQueryInformationThread)( HANDLE ThreadHandle,
THREADINFOCLASS ThreadInformationClass,
PVOID ThreadInformation,
ULONG ThreadInformationLength,
PULONG ReturnLength) = NULL;

typedef struct _CLIENT_ID
{
HANDLE UniqueProcess;
HANDLE UniqueThread;
} CLIENT_ID;

typedef CLIENT_ID *PCLIENT_ID;

typedef struct _THREAD_BASIC_INFORMATION
{
LONG ExitStatus;
PVOID TebBaseAddress;
CLIENT_ID ClientId;
LONG AffinityMask;
LONG Priority;
LONG BasePriority;
}THREAD_BASIC_INFORMATION,*PTHREAD_BASIC_INFORMATION;
//

//下面是调用部分,我调试时发现 ZwQueryInformationThread 的地址为NULL,然后就报错
HANDLE hThread = OpenThread(THREAD_QUERY_INFORMATION,FALSE,dwThreadId);

THREAD_BASIC_INFORMATION tbi;

ZwQueryInformationThread(hThread,ThreadBasicInformation,&tbi,sizeof(THREAD_BASIC_INFORMATION),0);


//求帮帮助
...全文
324 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2014-03-03
  • 打赏
  • 举报
回复
自己解决的问题请选择无满意答案结帖,以防不劳而获者倒分。
Luke_zhuhuanjun 2014-03-02
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/280042905 原来有人使用过了。此帖终结了
Luke_zhuhuanjun 2014-03-02
  • 打赏
  • 举报
回复
ZwQueryInformationThread这个函数老是不识别啊。到底怎么回事呢?

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧