2000 年 3 月 27 日 - 此问题:

  1. 编辑

    • 将 Mark 标记为"在 Windows 2000 年第 3 个 Ed 内"与 David 用户
  2. SYSINTERNALS 的新增功能

    • PsKill v1.03、PsList v1.12
    • 交接 v1.0
    • ElogList v1.0
    • NTFrob v1.6a
    • GetSid v1.1
    • HandleEx v2.23
    • Regmon v4.24、Filemon v4.28
    • AutoRuns v1.0
    • NT 4。 ACL 编辑器
    • SysInternals T-Shirts
    • 更多 SysInternals microsoft.com
    • 3 月/4 月内部列
    • 非新内容
  3. INTERNALS 信息

    • 重分析点
    • 内核句柄表
    • 一个或多个驱动程序无法启动
    • Microsoft NT-Related管理
  4. 即将提供哪些功能

    • TdiMon

发起人:NALS 软件

系统内部信息新闻稿由 TheNalnals Software 赞助,网址为 http://www.winternals.com. TheNalnals Software 是适用于 Windows NT/2K 的高级系统工具的领先开发人员和提供商。 功能软件产品包括适用于 Windows NT 4.0 的 FAT32、ERD Commander Professional Edition (Windows NT) 高级启动磁盘功能以及远程恢复。

可 Professional让你从 DOS、Windows 95 和 Windows 98 对 NTFS 驱动器进行完全读取和写入访问。 NTFSDOS Pro将单软盘"启动磁盘"功能Windows NT/2K。 使用 NTFSDOS Pro可以从 DOS 启动软盘中删除 bug 驱动程序、刷新文件,以及对 NTFS 驱动器执行常规文件系统维护。 NTFS for Win98 提供从 95 到 98 Windows NTFS Windows的透明访问。 在双启动环境中,在 NTFS 驱动器上的 NT 和 Win9x 之间轻松共享应用程序和文件。 这两个实用工具甚至具有内置的 NTFS Chkdsk 功能。 在 上提供了 NTFSDOS Pro的免费只读版本,并可在 上获得 http://www.sysinternals.com/ntfspro.htm 适用于 Win98 的免费 NTFS 只读版本http://www.sysinternals.com/ntfs98.htm.

大家好,

欢迎使用 Systems Internals 新闻稿。 该新闻稿当前有 20,000 名订阅者。 列表在过去两个月内增长很大,新订阅者超过 6,000 个! 请继续将新闻稿传递给朋友。

我们很高兴地宣布,我将与 Dave 用户共同Windows 2000 年第 3 版 (http://www.solsem.com). 如果你对内部Windows NT感兴趣,那么几乎肯定已阅读 Dave 在 Microsoft Press) 的"内部 Windows NT,第 2 版 (。 2000 Windows 版本对 NT 内核和周围组件(一些大型和一些小型组件)进行了大量更改,这些更改意味着 Dave 的书籍需要修订。

从许多意义上讲,Dave 和我过去三年一直在独立处理"Inside Windows 2000",因为我们一直在了解 Microsoft 在从 NT 5.0 Beta 1 到 Windows 2000 内部版本 2195 演变过程中对 Windows 2000 所做的更改。 实际上,我一直在编写自己的"Windows NT Internals"书籍,但当有机会与 Dave 合作创作一本质量如此高的书籍,并帮助编写 Microsoft 关于 Windows 2000 内部机制的官方观点时,我无法传递它。

我们决定一起创作本书是一个相当最新的决定,因此,我们在过去几个月中一直在合并我们的研究、笔记和文章。 出于完全无关的原因,我们碰巧在 Connect一角的远程角彼此仅距离了 20 分钟。 我们的邻近性使我们能够在彼此的家中交替工作,我们最近花费了许多后期研究并讨论 2000 年 Windows 的内部工作细节。 可以看到 Dave 和我在他家工作的照片 http://www.sysinternals.com/inspic.jpg.

我们合作关系的一个异常方面是 Dave 可以完全访问 Windows 2000 源代码, (但我从未访问设备驱动程序工具包和可安装文件系统工具包) 中公开提供的源代码之外的任何 Windows 源代码。 Dave 通过浏览源代码文件来找出问题,同时我分析自定义反汇编程序生成的列表,并通过 NuMega 的 SoftICE 内核模式调试器探索实时系统上 Windows 2000 的9000。 因此,我们各自为表带来了独特的观点,并多次共同应用各自的资源,共同回答棘手问题。

我们不仅更新原始书籍以反映 Windows 2000 更改,还添加了 30% 以上的全新内容,包括几个新章节。 我们将在新书中介绍的主题包括启动、关闭、崩溃、存储管理、服务内部、注册表内部和 WMI。 此修订版本甚至附带了一个 CD-ROM,其中包含 SysInternals 网站的快照,以及我专门为本书编写的六十种工具。 使用 LiveKd 工具之一,可以在实时系统中运行 i386kd 内核调试器,从而轻松浏览内核内部,而无需串行电缆和多台计算机。 本书为它的前身已经建立的基础添加了重要的技术信息和见解,

本书何时可用? Dave 和我将在 4 月 4 日当周前往 Redmond,从 Windows 2000 内核开发人员处获得最终的技术评论,Microsoft Press 表示该书将于 7 月上架。 当然,我将在新闻稿中发布你。

谢谢!

-Mark

系统内部机制的新增功能

PSKILL V1.03、PSLIST V1.12

PsList 是一个实用工具,可用于查看有关本地或远程系统活动进程的详细信息,PsKill 允许终止本地或远程系统上的进程。 这些实用工具具有类似的命令行语法,可在其中以""格式指定可选的计算机 \\computer 名称。 如果包含具有计算机名的用户名,则这些工具允许你使用与运行工具的帐户不同的用户帐户登录到指定的计算机。 这些最新版本提供了一种替代方法,让你在其他人之前运行密码且不想公开密码的环境中输入密码。 现在,如果将计算机帐户作为选项包含,但省略了密码,则系统会提示你输入密码,并且不会将输入回显到屏幕。

在 下载 PsKill v1.03 http://www.sysinternals.com/pskill.htm.
在 下载 PsList v1.12 http://www.sysinternals.com/pslist.htm.

JUNCTION V1.0

一种形式的符号链接最终以 Windows 2000 NTFS Windows的形式提供。 交接点是目录符号链接,Windows 2000 资源工具包包含链接的工具,可用于创建和删除交接点。 遗憾的是,Windows 2000 安装不包括用于创建交接点的任何工具,并且平台 SDK 文档没有充分记录重新分析点。 这些缺陷引导我实现交接点,该工具不仅允许你创建交接点,还可用于查询文件并显示有关其重新分析点的信息(如果有)。 为了帮助想要实现自己的重新分析点工具的开发人员,我已将完整的源代码发布到联接。 有关交接点以及如何在 2000 年 2 月实现交接点Windows,请参阅本新闻稿中稍后有关重新分析点的部分。

下载包含完整源代码的交接点 v1.0 http://www.sysinternals.com/misc.htm.

ELOGLIST V1.0

Windows 2000 资源工具包包含一个名为 ELogDump 的工具,可用于从本地或远程计算机上的事件日志转储记录。 ELogList 是一个 ElogDump 克隆,还允许指定可选的帐户名和密码,以便可以从与运行该工具的帐户不同的帐户访问计算机的事件日志。 ElogList 可用于从批处理文件转储事件日志,或将事件日志记录捕获到文本文件中,你可以将其导入电子表格以用于记录保留或分析。

在 下载 ElogList v1.0 http://www.sysinternals.com/eloglist.htm.

NTFROB V1.6A

NTFrob 是一个小程序,可让你对前台和后台量子进行更多控制 () 使 Windows NT 计划程序分配给线程的线程数高于系统控制面板小程序允许的"性能"选项卡。 使用较短的量子可以提高交互式应用程序的响应能力,而较长的量子更适合长时间运行的服务器工作负荷。 NTFrob 继续与最新版本 1.6a 的新 Service Pack 保持同步。 版本 1.6a 适用于通过 Service Pack 6a 发布的所有 NT 4.0 版本,但 Service Pack 6 (Microsoft 在 Service Pack 6 发布后不久,由于存在明显的 bug) 。 即将推出适用于 Win2K 的 NTFrob 版本。

在 下载 NTFrob v1.6a http://www.sysinternals.com/ntfrob.htm.

GETSID V1.1

如果管理的环境允许克隆减轻推出负担,则你可能对 GetSid 感兴趣。 GetSid Windows NT同名的 Windows NT 资源工具包工具,但 SysInternals GetSid 使你不仅能够获取用户帐户的 ID,还可用于计算机。 由于 GetSid 可跨网络工作,无需安装任何客户端软件,因此可以轻松使用 GetSid 来验证网络上的计算机是否未遇到克隆随附的重复 SID 问题。

在 下载 GetSid v1.1 http://www.sysinternals.com/misc.htm.
在 了解重复 SID 问题 http://www.sysinternals.com/newsid.htm.

REGMON V 4.24、FILEMON V 4.28

除了显示执行文件或注册表活动的进程的名称外,对 Regmon 和 Filemon 的这些更新也会显示处理标识符。 此增强功能有助于区分具有相同名称的多个进程之间的文件和注册表访问。

在这些版本中提供的其他增强功能使你能够从远程 Win2K 终端服务会话中运行 Regmon 和 Filemon, (与控制台) 不同。 应用程序可实现此支持,因为它们的 Gui 检查操作系统版本号,如果在 Win2K 上运行,请指定在 \\.\Global\ CreateFile 打开其驱动程序组件的设备对象时对其进行调用时使用的名称前缀 ""。 在终端服务环境中,将设备驱动程序分配给其对象的名称存储在全局 (控制台) 命名空间,这是默认情况下在远程会话中不可见的命名空间。 每个远程会话都有一个本地命名空间。 "Global" 前缀向 Win2K 对象管理器指示对象管理器应在全局命名空间中执行名称查找,而不是执行查找的会话的命名空间。

下载 Regmon v 4.24,网址为 http://www.sysinternals.com/regmon.htm.
下载 Filemon v 4.28,网址为 http://www.sysinternals.com/filemon.htm.

AUTORUNS.EXE V1。0

如果你具有典型配置,则每次启动系统并登录各种组件(例如,资源管理器)时,都将查找隐藏的注册表项和文件夹,并自动运行其中引用的程序。 David 所罗门群岛显示了在 "Windows 2000 内部" 研讨会 (中指定自动运行文件的所有位置的列表 http://www.solsem.com) ,并且 Bryce Cogswell 已获取了列表并编写 autoruns.exe,这是一个可让你查看其内容的程序。 在不知道您的知识的情况下,您几乎肯定会感到惊讶。

下载 Autoruns.exe 1.0 版 http://www.sysinternals.com/misc.htm.

HANDLEEX V 2.23

最新版本的 HandleEx 添加了许多新的用户界面可用性增强功能,例如,可以在其上部视图和下部视图之间进行 ctrl + +。 但更明显的是,HandleEx 现在与 "Win2K 安全编辑器" 对话框界面集成,显示某个进程已打开的内存映射文件,并显示已授予的打开句柄的访问掩码。

将 HandleEx 切换到其基于句柄的视图时,它会显示进程通过句柄打开的文件。 在 DLL 视图中,HandleEx 显示进程已作为模块加载的文件,并添加内存映射文件支持,HandleEx 列出进程通过 Win32 内存映射文件 Api 映射的文件。 由于 WinNT 和 Win2K 不允许删除进程已映射的文件,HandleEx 的内存映射文件支持可帮助你确定由于未完成的映射而阻止你删除文件的进程。

下载 HandleEx v 2.23,网址为 http://www.sysinternals.com/handleex.htm.

NT 4 ACL 编辑器

说到安全编辑器,Microsoft 在最新版本的平台 SDK 中记录了新的 Win2K 安全编辑器对话框 Api。 但是,NT 4 编辑器的 Api 始终未记录,它们仍以这种方式保留。 当你在 "资源管理器" 中编辑 Regedt32 和 NTFS 文件权限中的注册表项权限时,可以使用 NT 4 编辑器。

我在将对象安全编辑功能添加到我们的 WinObj 工具时确定了 NT 4 安全编辑器接口,并使用相同的接口将安全性编辑添加到 HandleEx 中。 我最终决定发布我的文档,以便您可以将本机安全编辑器功能添加到您自己的应用程序的 NT 4 版本。

获取 NT 4 ACL 编辑器文档,网址为 http://www.sysinternals.com/acledit.htm.
下载 WinObj http://www.sysinternals.com/winobj.htm.

SYSINTERNALS T 恤衫

如果你喜欢 SysInternals 的技术信息和实用程序,请戴上 SysInternals t 恤。 T 恤衫为100% 的 Hanes 加强-T,在正面和背面都以清晰的颜色打印,而仅按 $14.95 打印。 此外,每个销售的 $5 都转到美国癌症社会。

查看并排序 SysInternals t 恤衫 http://www.sysinternals.com/tshirt.htm.

WWW.MICROSOFT.COM 上的更多 SYSINTERNALS

我非常自豪地说,将用户 SysInternals 工具的 Microsoft 知识库文章的数量不断增长。 下面是已向下跟踪的最近添加的列表。

  • Q243583 PRB: mib-ii 导致 Visual Studio 安装程序失败http://support.microsoft.com/support/kb/articles/Q243/5/83.ASP
    本文建议使用 Filemon 来追踪 Visual Studio 安装错误。

  • Q242131 如何:显示打开了文件的进程的列表 http://support.microsoft.com/support/kb/articles/Q242/1/31.ASP
    Microsoft 将用户作为 HandleEx,用于显示进程打开的文件。

  • Q232060 如何: MDAC 安装疑难解答指南 http://support.microsoft.com/support/kb/articles/q232/0/60.asp
    DLLView 和 HandleEx 获取了本文中的聚焦,指导用户使用工具来查找具有 Microsoft 数据访问组件 Dll 的进程,以便用户可以在重新安装 MDAC 之前终止它们。

  • Q245068 ERRMSG:访问被拒绝。 你没有权限或该文件使用 http://support.microsoft.com/support/kb/articles/q245/0/68.asp?lng=eng& sa = allkb
    NtHandle 获取本文中再次引用的引用,该引用会告诉你如何在删除错误时,确定哪个进程的文件正在使用中。

  • Q247957 示例:使用 DUPS.EXE 解决 DLL 兼容性问题 http://support.microsoft.com/support/kb/articles/q247/9/57.asp
    本文将 ListDLLs、DllView 和 HandleEx 引用为可用于跟踪 DLL 版本问题的工具。

并不仅在所有这些新的知识库文章中都有 SysInternals,Rick Anderson,最后一篇知识库文章中介绍了 DUPS 实用工具的作者,她的 MSDN 新闻文章中的 "引用了 DLL Hell"。 你可以在 Microsoft 的此处查看文章: http://www.msdn.microsoft.com/isapi/msdnlib.idc?theURL=/library/techart/DLLdanger1.htm. 由于这一提示,ListDLLs 收到的注意事项是将它移植到 Windows 9x,因此版本2.21 适用于 Windows 9x、Windows NT 和 Windows 2000。

下载 ListDLLs v 2.21,网址为 http://www.sysinternals.com/listdlls.htm.

3月/4 月内部专栏

查看 Windows NT 和 Windows 2000 存储管理上两部分 "内部" 列 Windows 2000 杂志的3月和4月问题。 在本系列文章的第一部分中,我介绍了 NT 4 磁盘分区、高级卷配置、驱动器号分配和设备驱动程序存储体系结构。

在第2部分中,我介绍了 Win2K 中存在的存储更改,包括新的存储管理设备驱动程序、动态磁盘分区、对不需要重新启动以重新配置的高级卷的支持以及 Win2K's 的驱动器号分配机制。

内部信息

重新分析点

出于某种原因,人们始终都非常兴奋文件系统技巧,2000 Windows 包括几个新的文件。 Windows 2000 之前,所有 Microsoft 文件系统都缺少 UNIX 用户所熟知的功能:符号链接。 符号链接使你可以创建一个文件或目录,用于引用文件系统命名空间中其他位置的另一个文件或目录。 当应用程序访问链接时,它会实际访问链接的目标。 例如,如果链接 C:\drivers 引用目录 C:\winnt\system32\drivers ,则对文件名的引用将 C:\drivers\ntfs.sys 解析为 C:\winnt\system32\drivers\ntfs.sys

ntfs 版本5(Windows 2000 附带的 ntfs 修订版本)支持一种称为重新分析点的机制。 重新分析点是一种与文件或目录关联的数据块,其中包含一个 "标记",以及负责管理具有该标记的重新分析点的驱动程序所定义的信息。 Microsoft 定义了多个内置标记,包括接合点和装入点标记。 如果 NTFS 在查找文件名时遇到重新分析点,它将中止查找并将代码返回 STATUS_REPARSE 到其调用方。 文件系统筛选器驱动程序和 i/o 管理器监视其标记的重新分析代码,并通过多种方式进行响应。 层次结构存储管理 (HSM) 重新分析点表示 HSM 子系统已移动到远程存储的文件 (如磁带) 、远程存储筛选器驱动程序 (RsFilter.sys) ,例如,以透明方式从远程存储中取出文件的数据,删除重新分析点,并允许文件查找重试。

筛选器驱动程序还可以更改正在打开的文件的名称。 装入点标记表示卷装入点,并允许你从其名称空间中将卷连接在一起。 因此,你可以在驱动器目录中装载包含项目文档的卷 \projectsC: 。 这样做可以组织文件系统数据,并使您可以避免使用 DOS 样式的驱动器号。

交接点类似于装入点,但不是将目录链接到卷,而是将目录链接到其他目录。 它们是 NTFS 的符号链接支持。 此时,你可能想知道为什么 Microsoft 不包含基于文件的符号链接。 答案是,符号链接与现有的 Win32 应用程序造成破坏。

虽然有许多典型的应用程序行为会导致在处理真正是符号链接的文件时产生意外结果,但使用链接不兼容程序删除符号链接是一个简单的示例。 请考虑将文件存储在一个中心位置,其中有多个符号链接引用。 用户删除其中一个链接可能只是删除链接,而不是文件本身。 但是,如果程序不知道符号链接,它将不会检测到该文件确实是一个链接,并提示您输入所需的行为。 当应用程序创建与通过链接引用的文件相关的文件时,如果相关文件存储在链接目标所在的目录或符号链接所在目录中,则问题会变得更加严重。

Microsoft 面临着一个困难的问题,我确信有一些应用程序执行更复杂的文件操作,即使您可以找到有关我提到的问题的解决方法,也会发生这种情况。 出于此原因,我认为在 Windows 中,我们可能看不到基于文件的符号链接。

内核句柄表

Win2K 对象管理器引入了一种新的句柄表,可提高某些类型的设备驱动程序的性能。 某些驱动程序在用户进程的安全上下文中运行时,需要打开系统对象的句柄。 在打开对象时,设备驱动程序可以绕过安全检查,因此在非特权进程的句柄表中创建敏感对象的句柄时,必须采取措施来防止安全漏洞。 避免安全问题的 NT 4 驱动程序必须将工作项排队到系统进程上下文中运行的工作线程,或使用 KeAttachProcess API 切换到系统进程的句柄表和地址空间。 这两种方法可能会降低性能,尤其是在驱动程序必须频繁执行它们时。

此问题的 Win2K's 解决方案以新标志形式出现,驱动程序在 OBJECT_ATTRIBUTES 打开对象并获取句柄时可以在结构中传递该标志。 该标志并未记录在 DDK 中,而是在 NTDEF 中定义的。H 头文件作为 OBJ_KERNEL_HANDLE 。 当对象管理器打开指定的对象并创建一个要返回给调用方的句柄时,它将检查是否存在此标志。 如果是这样,它将在名为 "ObpKernelHandleTable" 的句柄表中创建句柄,而不是当前正在执行的进程的句柄表。 对象管理器返回给请求内核句柄的调用方的句柄设置了其高位,因此所有内核句柄的值都大于0x80000000。

只要对象管理器被传递到一个句柄,则在对的调用中, ObReferenceObjectByHandle 它必须将句柄转换为指向句柄基础对象的指针,它将检查该句柄引用是否是内核模式引用以及是否设置了句柄的高位。 对于满足这些条件的引用,对象管理器会在内核句柄表中查找句柄,而不是当前正在执行的进程的句柄表。 因此,对安全对象的内核句柄进行引用的驱动程序可避免性能降低并导致开放安全漏洞。

一个或多个驱动程序无法启动

下面是一段有趣的Windows NT/2K 琐事。 在启动期间看到一个对话框,告知"一个或多个驱动程序无法启动"时,即服务控制管理器 (SCM) 它同时决定并呈现对话框。

SCM 如何知道驱动程序无法启动? SCM 在初始化注册表项时扫描注册表项,查找具有 Start 值的设备驱动程序,这些驱动程序指定它们作为启动或 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services 系统启动驱动程序启动。 找到条目时,它会打开对象管理器命名空间,并查看设备驱动程序的名称是否存在于 \Drivers 目录中。 当设备驱动程序成功启动时,I/O 管理器会在其目录中设置其驱动程序对象,因此当 SCM 找不到名称时,它会假定驱动程序未 \Drivers 成功启动。 可以使用 \Drivers WinObj 查看目录的内容。

在 下载 WinObj http://www.sysinternals.com/winobj.htm.

软件专利最近受到很多关注。 似乎美国专利和商标Office向即使是最明显的"创新"授予专利,并且公司正在利用专利政策锁定关键技术,供其独占使用。 Microsoft 对专利游戏并不想知道,但许多人不知道的是,Microsoft 拥有他们通过 microsoft 开发的几个关键Windows NT。 下面是我在 IBM 的 Patent Server 网站上发现与内核相关的专利列表:

"用于执行可运行线程请求的异步文件操作的系统,其方法为处理具有不同队列线程的完成消息,并检查可运行线程是否完成"
http://www.patents.ibm.com/details?pn=US05758184__

此专利涵盖了称为完成端口的高级 NT 同步机制背后的基本理念。 完成端口允许进程有效地等待多个不同对象的 I/O,并使用 Windows NT/2000 计划程序中的支持来允许与完成端口关联的线程有效地利用多处理器。
在 上详细了解完成端口 http://www.sysinternals.com/comport.htm.

"基于对象的计算机操作系统中客户端进程的服务器模拟"
http://www.patents.ibm.com/details?&pn10=US05187790

模拟是 Windows NT/2000 安全模型的一项强大功能,它允许服务器线程在服务器代表客户端执行活动时临时采用客户端线程的安全上下文。 这样,服务器在访问客户端的受保护对象时Windows NT/2000 安全模型。 这是一种智能的分布式安全性方法(尽管不太明显)。Microsoft 拥有它的专利。

"基于对象的计算机操作系统中的可等待对象创建系统和方法"
http://www.patents.ibm.com/details?&pn10=US05057996

"创建具有不同对象指针的系统的条件对象,用于访问一组数据结构对象"
http://www.patents.ibm.com/details?&pn10=US05129083

"基于对象的计算机操作系统中的对象容器传输系统和方法"
http://www.patents.ibm.com/details?&pn10=US05129084

"基于对象的计算机操作系统中的临时对象处理系统和方法"
http://www.patents.ibm.com/details?&pn10=US05136712

"基于对象的计算机操作系统中的对象传输系统和方法"
http://www.patents.ibm.com/details?&pn10=US05297283

Windows NT/2000 对象管理器实现命名空间,这与虚拟文件系统 (VFS) 实现UNIX不同。 Microsoft 在对象管理器上获得的一些专利实际上看起来就像面向对象的设计上的发明,并且有些看起来是重叠的。 但是,我并不是一名专利法官,因此可能只是我未获得许可的视图点。

如果你看一看这些专利,你会发现内核开发人员中几个核心Windows NT的名称,包括 David Cutler。 有趣的是,一些专利是 NT 开发人员在 VMS 上工作时为 NT 开发人员为 MA Maynard 的数字设备公司获取的,但专利过程耗时太长,因此被专利公司将其列出为位于华盛顿州 Redmond。

即将提供哪些功能

TDIMON

你是否曾经想要实时观看 TCP 和 UDP 网络活动,并确切知道哪些进程正在执行该活动? 请继续关注 TdiMon,这是 SysInternals 监视工具包的强大补充。


感谢你阅读系统内部信息通讯。

发布时间:2000 年 3 月 27 日,星期一下午 7:09,由 ottoh 发布

[新闻稿存档 ^][ 第 2 卷,第 1卷][第 2 卷,第 3 卷 ]

[新闻稿存档 ^][ 第 2 卷,第 1卷][第 2 卷,第 3 卷 ]

系统内部信息新闻稿第 2 卷,第 2 号

http://www.sysinternals.com
版权所有© 2000 Mark Russin中