|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
HANDLE OpenThreadNT(ACCESS_MASK dwDesiredAccess,
HANDLE bInheritHandle,
HANDLE dwThreadId)
{
OBJECT_ATTRIBUTES ObjectAttributes;
CLIENT_ID ClientId;
HANDLE hThread;
NTSTATUS Status;
InitializeObjectAttributes(&ObjectAttributes, NULL, 0, NULL, NULL);
if (bInheritHandle)
ObjectAttributes.Attributes = OBJ_INHERIT;
ClientId.UniqueProcess = NULL;
ClientId.UniqueThread = (HANDLE)dwThreadId;
Status = NtOpenThread(&hThread, // Thread handle
dwDesiredAccess, // Access to thread object
&ObjectAttributes, // Object attributes
&ClientId); // Client Id
if (!NT_SUCCESS(Status))
{
//SetLastError(RtlNtStatusToDosError(Status));
return NULL;
}
return hThread;
hThread=OpenThreadNT(THREAD_ALL_ACCESS,FALSE,IDThread);
确定传入的 线程TID 完全正确 就是 句柄 返回0 NtOpenThread 执行返回 8 要疯掉了恳请大牛指点 |
|