WEB开发网
开发学院软件开发VC Win32 系统线程信息块(TIB)浅析 阅读

Win32 系统线程信息块(TIB)浅析

 2009-03-05 20:02:37 来源:WEB开发网   
核心提示: Windows NT TIB 域TIB 中某些数据当运行在不同的 Windows 平台上其意义是不同的,OS/2 子系统-Windows NT 这部分数据中支持运行 OS/2.1.X 应用,Win32 系统线程信息块(TIB)浅析(5),而对于常规的 Win32 应用,这个域的值总是零,如

Windows NT TIB 域

TIB 中某些数据当运行在不同的 Windows 平台上其意义是不同的。OS/2 子系统-Windows NT 这部分数据中支持运行 OS/2.1.X 应用。而对于常规的 Win32 应用,这个域的值总是零。

10h DWORD FiberData 域根据线程运行在不同的 Windows NT 版本其意义不同。在 Windows NT 3.51 SP3 SDK 更新中,WINNT.H 描述将此域描述为指向光线数据,关于光线在 HLP 帮助文件中被描述为手动调度的轻量级线程。在此服务包更新之前,这个域叫 “Version”。我推测意思是线程期望运行的系统版本,但是我无法这个域中该值的意义。

20h DWORD processID 域保存线程的进程 ID。Windows NT  3.51 中的 GetCurrentProcessId 函数返回的任何值都保存其中。

24h DWORD threadID 域是线程 ID。保存 Windows NT  3.51 中的 GetCurrentThreadId 函数返回值。

Windows NT TIB 段指向的位置实际上大大了超出了在此描述的这个域的范围。而我前面提到的这个域位置是在最前面的 34h 字节之内(Windows 95 TIB 的尺寸)

Windows 95 TIB

与 Windows NT TIB 相比,Windows 95 TIB 包含相当多令人感兴趣的信息,在这一部分作详细描述。

0CH WORD pvTDB 是任务数据库选择器,这里的任务是与线程关联的。任务数据库是一个段,它从 16位的全局堆中分配,句柄就是 HTASK。Windows 95 中每个进程(即使在 Win32 进程中)都具备一个任务数据库。

0EH WORD pvThunkSS 是 Windows 95 用于保存 16位堆选择器的,当某个线程从 32位转换到16位时要用到它。

1CH WORD TIBFlags 被用于保存不同的位标志。也就是 TIB_WIN32(即 1)。如果置在该值的低位,表示是32位线程,否则表示线程来自一个16位进程。

上一页  1 2 3 4 5 6 7  下一页

Tags:Win 线程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接