winapi - FS在Win32中注册

标签 winapi filesystems seh

我正在阅读如何在Win32中实现SEH,并且遇到了称为 FS寄存器的东西。我在Google上找不到任何好的东西(很可能是我在寻找错误的东西)。那么谁能解释一下这是什么呢?

最佳答案

这是一个段寄存器。 x86有六个:CS,DS,ES,SS,FS和GS(FS和GS是80386中的新增功能)。助记符来自它们的角色:代码段,数据段,扩展段(实际上是辅助寄存器),堆栈段。这些角色在x86汇编指令的语义中进行了硬编码。 FS和GS与ES一样是辅助的,因此它们仅在E之后带有下一个字母。

在通常使用的32位保护模式下(例如,在Windows,Linux,* BSD中),CS,DS,ES和SS均设置为0的基数和4Gig的限制,并且仅使用页面权限。 FS在用户模式下指向线程信息块(TIB),在内核模式下指向处理器控制区域(KPCR)。 Matt Pietrek在几年前为此写了一个很好的article,现在在MSDN上仍然可用。

关于winapi - FS在Win32中注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4860225/

相关文章:

.net - 如何从 Delphi Win32 应用程序访问 .Net Web 服务?

windows - 有没有办法从 NTFS 卷的 MFT 获取文件名/位置信息?

PHP警告: mkdir(): Not a directory when creating directory

linux - 在 Linux 中创建一个虚拟文件

c++ - PlaySound 无法播放两个异步声音

c++ - 当我使用 C++ win32 API 单击确定按钮时,如何隐藏当前窗口?

c++ - 在 win32 应用程序中动态设置 DPI 感知级别

c++ - 通过 SEH 处理访问冲突

c++ - `LoadLibraryExW` 从 `0xC0000023` 触发异常 `NtMapViewOfSection`

c++ - __try 和 __except 在发布版本中不起作用