2000年1月6日-在此问题中:

  1. 系统内部的新功能

    • PsKill v1。0
    • PsList 1.1 版
    • WinObj 2。1
    • Contig 1。3
    • NTFSCHK v1。0
    • HandleEx 2。1
    • Ctrl2cap v2。0
    • Filemon v 4.26
    • 蓝屏 v 2。1
    • Fundelete 2.01 版
    • Openlist v 1.11
    • NT 年12月
  2. 内部资讯

    • 已发布的 Win2K DDK
    • 带有击键的崩溃 Win2K
    • 写保护系统内存更新
    • Win2K API 分解
    • David 所罗门群岛讨论会
  3. 即将推出的内容

    • Microsoft NT-Related 专利

赞助商: WINTERNALS 软件

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

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

大家好,

欢迎使用系统内部新闻稿。 新闻稿当前包含14000个订阅者。

正如您所知,Win2K 是 duplicator 的磁盘。 版本的 (RTM) 版本的 Win2K 最终是版本2195。 RC3 为2128,正如我在前面的新闻稿中所介绍的那样,Microsoft 将在每夜周末和节假日之后递增生成号-当它们编译当前源树时。

我在 11 (月份的 Microsoft 在 Filemon 上看到了 update,因为这是我) 的原因,而另一个内核团队的成员在 Microsoft 校园就开始构建26。 构建26是 Windows NT/2K 基本内核团队的位置,是 Windows NT/2K 生成和测试实验室所在的位置。 "生成和测试实验室" 的大小大致相等 (可能为 30 "60" ) ,但测试实验室与计算机货架 crammed,而构建实验室具有制造商的桌面空间和座位。 每晚,构建者都将源树提取到若干四核处理器系统上并运行编译。 如果有人的代码签入在 (上帝禁止) 中断生成,则会调用该人员,而不考虑在哪一小时内获取其对接来解决问题。 由2007年11月的 Win2K 在代码冻结下,只允许委员会批准所做的唯一更改,并定向到 "显示阻止程序" bug 修复。

生成新的生成后,测试人员即可将其安装到实验室中的所有计算机上。 测试实验室的系统机架是从小规模的小型计算机,到每个巨大的 PC 供应商的洗碗机大小的多处理器服务器。 在 Win2K 安装完成后,系统将运行大量的压力测试脚本。 在此版本的开发中,其开发的 Win2K 通过负载测试的速率高于90% 这些速率比驱动程序验证器引入几个 Win2K 可靠性增强功能要少得多,这是一个可帮助开发人员在自己的测试过程中发现问题的工具。

不管生成是否通过了所有测试,都将其上传到 microsoft 的内部分发服务器,Microsoft 员工可在其中下载和安装它。 如果开发人员引入了一个重大问题,他们将从过去一周后的几百名员工开始发送电子邮件。 仅当出现严重问题时,如果确定遇到了严重的问题,而导致测试团队发送企业范围电子邮件警告,公司 (将电子邮件广播到超过25000人,则不会) 。

我还在 Dave Cutler,这是 Windows NT 的首席架构师。 他在过去的时间是多少? 11月,内核团队已经 (致力于在 Neptune 中作为 NT 6 或) 提供,而 Dave 正在努力解决64位版本的 Win2K 的安装。 Dave led,64位开发工作和64位 Win2K 都可以顺利完成。 从11月开始,内核团队仍在 Alphas 上执行64位工作,因为 Intel 刚刚开始生成 Merced 处理器的样本,并且校园上只有一个。

与往常一样,请将新闻稿传递给你认为可能会感兴趣的朋友。

谢谢!

-标记

系统内部的新功能

PSKILL V1。0

Windows NT 和 win2k 资源工具包附带了一个命令行 "kill" 实用程序,但仅因为 Windows NT 和 win2k 缺乏。 可以用资源工具包 "kill" 终止本地进程,但不能终止远程进程。 因此,我决定编写一个免费的 "终止",如我的 PsList,它具有远程功能。 PsKill 采用进程 ID 或名称和可选的计算机名称,并在本地系统或指定的远程计算机上终止匹配进程。 甚至无需在远程计算机上安装客户端组件。 如果在中运行的帐户在远程计算机上没有管理权限,则可以登录到远程系统以执行 kill,方法是将帐户名称和密码添加到 PsKill 命令行。

下载 PsKill 1.0 版 http://www.sysinternals.com/pskill.htm.

PSLIST 1.1 版

我在 PsList 发布了一段时间,作为一个 UNIX ps 样式的进程和线程查看器。 与 Windows NT 和 Win2K 资源工具包中的类似工具不同,PsList 使你可以查看远程系统以及本地系统上的进程和线程信息。 PsList 的工作原理是读取 Win NT/2K's 性能 API 信息,例如 Perfmon。 此 PsList 版本可通过在其命令行中指定帐户名称和密码来添加登录到远程系统的功能。 此选项允许你访问你从中运行 PsList 的帐户不具有管理权限的远程计算机。

下载 PsList v1.1,网址为 http://www.sysinternals.com/pslist.htm.

WINOBJ 2。1

WinObj 是用于 Windows NT/2K. 的对象管理器命名空间查看器 对象管理器命名空间是通常对用户不可见的命名空间,但它是所有命名的 Win32 (\BaseNamedObjects\??) ,以及命名的内核对象。 它还用作文件系统命名空间的入口点, (通过) 的驱动器号符号链接 \?? 和注册表命名空间, (通过键对象) 实现的 \Key

WinObj 类似于 Win32 软件开发工具包中的工具 (SDK) 使用同一名称,但我们的 WinObj 比 Microsoft 版本要大得多。 例如,当你在 WinObj 中查看对象的属性时,你将看到参考和句柄计数,而不是任意数字, (SDK WinObj) 有一些主要 bug。 我们的 WinObj 还显示同步对象的状态和对象安全信息。

这一最新的 WinObj 更新修复了一个 bug,该 bug 阻止其正确显示 Win2K's 命名空间中存在的一些长符号链接值。 当你在 NT 4 上的 Win2K (上运行时,它还使用新的更友好的 "Win2K 安全编辑器" 对话框,它使用 ACLEDIT.DLL) 提供的未记录的安全编辑器界面。 用户界面增强功能包括在退出时重新调用所查看的目录,以便下一次启动 WinObj 该目录时,以及对目录内容 listview 窗口进行排序的功能。

下载 WinObj 2。1 http://www.sysinternals.com/winobj.htm.

CONTIG 1。3

Microsoft 在发布 NT 4 时包含了内置的文件碎片整理 Api。 我记录 Api,并提供使用 API 的示例代码 http://www.sysinternals.com/defrag.htm. 使用我实现的 Api Contig,这是一个可用于对单个文件或目录进行碎片整理的命令行碎片整理程序。 由于 Contig 的初始版本,我收到了许多添加分段分析选项的请求,我最后就实现它了。 Contig v1.0 使你可以查看你指定的文件碎片如何,以便确定是否需要执行更昂贵的碎片整理过程。

谈到文件碎片整理,Symantec 还发布了最先进的碎片整理程序,Speedisk 5.0。 为了使竞争最重要,它会绕过碎片整理 API,并将磁盘上的块手动移动,以便在系统联机时对目录甚至甚至 MFT 进行碎片整理。 与的管理软件不同 http://www.execsoft.com/diskeeper/infosheet.asp#Q9 ,它们的 Diskeeper 产品 (版本4.0 和版本 5.0) 也会绕过碎片整理 API (但其碎片整理程序并不像 Norton 的) 那样高,尤其是在执行启动时目录合并时。 执行市场营销是您无法相信您所阅读的所有内容的另一课。

下载 Contig v1.0,网址为 http://www.sysinternals.com/contig.htm.

下载 PageDefrag、注册表和页面文件 defragmeter,网址为 http://www.sysinternals.com/pagedfrg.htm.

NTFSCHK V1。0

高级用户在其计算机上安装 Win2K (与 NT 4 一起安装)的一个常见投诉是: Win2K's 将任何 NTFS 驱动器自动升级到 NTFS v5 会使 NT 4 Chkdsk 无法检查这些驱动器。 无需扫描 NTFS v5 驱动器和更正错误。 NT 4 Chkdsk 只是宣布它无法在由较新版本的 NTFS 创建的驱动器上运行并退出。 这要求你在至少要检查驱动器之前,启动到 Win2K。

借助 NTFSCHK,可以从 NT 4 运行 Chkdsk 的 Win2K 版本。 如何操作? 通过使用我们为从 DOS 执行 NT 的本机 Chkdsk 和 Windows 9x 作为 NTFSDOS Professional 和 NTFSDOS for Win98 的一部分而开发的技术,NTFSCHK 将在看似 win2k 的环境中包装 Win2K Chkdsk。

下载 NTFSCHK 1.0 版 http://www.sysinternals.com/ntfschk.htm.

HANDLEEX 2。1

HandleEx 是一种用于 Windows NT/2K 的多面诊断实用程序,用于显示哪些 dll 进程已加载以及它们在) 的句柄中 (打开的对象。 HandleEx 可用于跟踪 DLL 版本控制问题、处理泄漏和确定哪些应用程序正在访问特定文件、目录或注册表项。

HandleEx 版本2.1 使你可以查看处理已打开的对象的属性,包括引用计数和同步对象的状态。 你还可以使用 NT 的安全编辑器来查看和修改对象安全属性。

下载 HandleEx 2。1 http://www.sysinternals.com/handleex.htm.

CTRL2CAP V2。0

如果你已开始使用 UNIX 背景,你将同意我的电脑键盘上的控制键位于错误位置:应为 caps-lock 键所在位置。 那么,谁还是使用 caps lock 键呢? Ctrl2cap 是一个键盘筛选器驱动程序,它将大写锁定变为左控件,删除大写锁定作为副作用 (我在播放半生命) 时,使用标准的左控件作为消防键。

尽管 Ctrl2cap v1.0 在 Win2K 上起作用,但使用它会禁用 Win2K's 电源管理功能,这在便携式计算机上有点头疼。 因此,我已将 Ctrl2cap 更新为符合 Windows 驱动模型 (WDM) ,其中包括易于管理的电源。 我提供完整的源代码,相同的源文件同时生成 NT 4 和 Win2K 版本。

下载 Ctrl2cap v2.0,其中包含源代码 http://www.sysinternals.com/ctrl2cap.htm.

FILEMON V 4.26

我在11月份的 Microsoft 的原因是 Microsoft 在内部将 "文件系统筛选器 Plugfest (" 称为 "olooza" ) 。 plugfest 将所有基于 Windows NT/2K 文件系统筛选器驱动程序的主要产品组合在一起,并以轮循机制方式配对,并针对不同的配对运行压力测试。 包含9个不同病毒扫描程序的产品、多个文件加密工具和磁盘配额管理器。 Fest 的目标是确定与不同筛选器组合关联的互操作性问题,帮助查找和识别主要筛选器产品中的 bug,甚至可能会在 Win2K 中找到 bug。 由于 Filemon 是世界上最广泛使用的筛选器之一,并且 Microsoft 的许多组依赖它来进行开发和故障排除工作,因此 plugfest 组织程序邀请我进入事件并代表它。

Filemon 通过了所有压力测试,但没有事件。 由于 Filemon 是动态加载的筛选器驱动程序,因此它分层到事件中存在的所有产品(除了一个)。 上述 Filemon 的产品是一种病毒扫描程序,它也会动态加载,这实际上是一个基于 Filemon 的产品。 由于病毒扫描程序会动态加载,因此我们尝试了这两个分层排列,而在 Filemon 所在的位置导致病毒扫描程序崩溃。 当 Filemon 的 GUI 退出其驱动程序时,它将删除其筛选器设备对象。 对于筛选器驱动程序,它对于删除筛选器设备对象实际上是非法的,除非它从 i/o 管理器获取一个命令,该命令告诉 iit (FastIoDetach 在文件系统筛选器中,而 IRP_MJ_PN P 与 IRP_MN_REMOVE_DEVICE WDM) 。 不令人吃惊的是,Filemon 的设备对象的意外消失导致了病毒扫描程序访问已释放的内存并发生崩溃。

幸运的是,Filemon 在 plugfest 的最后一次会话中发生了崩溃,因此我有最少的尴尬,因为测试在每种产品中发现至少一个严重的 bug 或互操作性问题。 Filemon v 4.26 是更正 plugfest 上发现的 bug 的版本。

即使在有人参与 plugfest 之前,我在 Filemon 中找到了一个可能对 NT 设备和文件系统驱动程序开发人员感兴趣的 bug。 我最近修改了 Filemon,以使用记录不佳的执行资源 (E-资源) 同步机制。 Microsoft 的文件系统驱动程序会广泛使用电子资源,因此我认为这是在 Filemon 的源代码中包含它们的教育。 电子资源必须由具有 Apc 的线程获取 (异步过程调用) 禁用。 你只需 "知道" 这一点,因为 DDK 文档不会告诉你。 遗憾的是,在 haste 实现中,我省略了对 Filemon 的电子资源购置禁用和重新启用 Apc 的函数所需的调用。 此 bug 仅在极少数情况下会导致问题,因此,在 Win2K's Driver Verifier 为我发现它之前,我未检测到它。 若要解决此问题,我添加了一个对 KeEnterCriticalSection 的调用,然后获取电子资源并在释放电子资源后 KeLeaveCriticalSection。

下载 Filemon v 4.26,网址为 http://www.sysinternals.com/filemon.htm.

蓝屏 V 2。1

蓝屏屏幕保护程序是我编写的屏幕保护程序,用于模拟死亡 Windows NT 蓝屏 (BSOD) 。 我在提供了 Win2K 版本之前编写了原始版本,因此它模拟了 NT 4 BSOD 并重新启动,并检测到磁盘错误。 我提供了两个可用版本:一个执行磁盘 i/o,增加了真实性,另一个则没有。 完成 Win2K Beta 3 后,我更新了蓝屏,以模拟新的 Win2K BSOD 和系统重新启动。 在 RC3 中,重新启动屏幕发生了变化,因此我不得不再次更新蓝屏。 同时,我将使用蓝屏的屏幕保护程序属性(而不是使用两个版本)来生成磁盘 i/o。

在上下载蓝屏 v 2。1 http://www.sysinternals.com/bluescrn.htm.

FUNDELETE 2.01 版

长时间等待后,对 Windows NT 的撤消删除会将其返回为 Windows NT 的 Fundelete。 Fundelete 是一个实用工具,可增强 Windows NT/2K 回收站捕获从程序内删除的文件,以及从资源管理器中删除的文件。 名称为何发生更改? Bryce 之后几个月后,就 Windows NT,执行的软件取消删除是一个类似的实用程序。 一年来,他们决定将我们的实用程序名称更喜欢,而不是他们自己的名称,因此他们更改为 Windows NT 的撤消删除。 同时,他们的律师向我们发送了一个信件警告,我们会将注册商标侵犯到自1987以来已持有的 "取消删除" 字样。 我们更改了我们的实用程序的名称,而不是抵抗。

开发人员可以将源代码下载到 Fundelete 的设备驱动程序的核心,该驱动程序演示了一些功能强大的驱动程序技术,包括从驱动程序获取用户的 SID、从驱动程序中枚举目录的内容以及创建新的 Irp。

下载 Fundelete for Windows NT 2.01http://www.sysinternals.com/fundelete.htm.

OPENLIST V 1.11

Openlist 是一个 Windows 9x 实用程序,用于显示系统上打开的所有文件。 版本1.11 添加了查看有关文件的详细信息(包括 Dll 的版本信息)的功能。

下载 Openlist v 1.11,网址为 http://www.sysinternals.com/openlist.htm.

12月 "NT 内部"

Windows NT 杂志的12月发行版中的 "NT 内部内容" 列是 "Win2K 可扩展性增强功能,第2部分"。 这是由两个部分组成的系列系列中的第二部分,介绍了 Microsoft 在 Win2K 中为多处理器可伸缩性(包括作业对象、新的量程控制、新的计划类和用户模式线程池)所做的增强。

最近8月 Windows NT 杂志更改了其在线项目浏览策略,以便只允许订户访问。 上个月,他们将策略宽松到8月之前的位置。 现在非订阅服务器可以自由查看超过四个问题的文章。

查看发布的完整列表,网址为: http://www.sysinternals.com/publ.htm.

内部资讯

已发布的 WIN2K DDK

Microsoft 的 Win2K 设备驱动程序开发工具包 (DDK) 的最终版本现已在 http://www.microsoft.com/ddk. 可以免费下载工具包,也可以浏览联机文档。

带有击键的崩溃 WIN2K

不是,这不是一个 bug。 David 所罗门群岛,"内部 Windows NT 第2版" 的作者提供了此酷技巧。 如果添加 DWORD 注册表值 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScroll ,请将其设置为 "1",然后重新启动,使用键盘可以使 Win2K 崩溃。 按住右控制键的同时按两次滚动键两次。 在第二次按下滚动键时,系统将显示一条消息 "最终用户手动生成故障转储"。

如果内核或设备驱动程序已死锁,并且计算机不再响应,则能够手动崩溃系统会很有用。 发生死锁时,生成的故障转储可以为开发人员提供信息,指示导致死锁的原因。 此选项的引入是,即使 Win2K's 核心内核开发人员在 plugfest 时传递它也是如此。

写保护系统内存更新

在以前的新闻稿中,我介绍了写保护系统内存,作为 Win2K 中的一种新的可靠性功能。 事实证明,在许多配置中,默认情况下不存在完全写入保护。 如果计算机的物理内存至少为128MB,则使用4MB 的 "大页面" 来映射内核内存。 使用4MB 而不是4KB 页面可节省一层页面翻译,从而提高性能。 由于只读代码和读/写数据可能位于同一4MB 页面上,因此在这些系统上禁用了写入保护,除非用户使用驱动程序验证程序请求写入保护。 如果驱动程序验证程序强制实施写入保护,则 Win2K 使用较慢的4KB 页面来映射内核内存不同的内存区域,这意味着可以将各个代码页标记为只读。

因此,写保护仅在内存小于128MB 的系统上处于活动状态,其中的驱动程序验证程序启用了此功能。 对于不处于活动状态的写入保护的系统,Microsoft 正在考虑将系统内存与系统内存进行校验和,然后根据校验和定期验证内存的监视程序的 Win2K Service Pack。 尽管验证操作与硬件辅助写入保护不一样精确,但会检测残存错误写入应为只读的区域。

WIN2K API 分解

Win2K 没有明显大于 NT 4 的问题。 当然,有许多新的服务和集成功能,这些功能作为 Win2K's 大小的一部分计数 (Active Directory、MMC、COM + 等 ) ,甚至是核心操作系统增长。 操作系统大小增加的一个原因是它为应用程序导出的 Api 数增加了。 Win2K 核心 OS Dll 包括 KERNEL32.DLL、GDI32.DLL、USER32.DLL 和 ADVAPI32.DLL (NTDLL.DLL 也是核心 OS DLL,但 KERNEL32.DLL 依赖于 NTDLL.DLL for Win32 Api) 。 让我们快速了解每个中的 API 分解。 下面是原始数字:

LIBRARY NT 4 SP5 WIN2K
KERNEL32.DLL 681 823 21%
GDI32 401 553 38%
USER32.DLL 629 695 10%
ADVAPI32.DLL 401 557 39%

请注意,在某些情况下,增长将被人为放大到最多30%,因为某些 Api 同时采用 ANSI 和宽字符串形式,因此会将上述数字中的两倍计数。

KERNEL32.DLL 是导出所谓的 "基本操作系统" 功能的 DLL,其中包括进程、内存、文件 i/o 和区域设置管理 Api。 Win2K 的新 Api 包含新的语言函数 (例如 EnumUILanguages) 、作业对象函数 (例如 AssignProcessToJobObject) 、内存管理函数 () 、文件函数 () AllocateUserPhysicalPagesFindFirstVolume 和 ToolHelp32 api (例如 Process32First) 。

GDI32 提供绘图和与位图相关的例程。 其增长是因为大多数其他新函数的外观,包括新的字体管理 Api (例如 CreateFontIndirectEx) 、alpha 混合和路径对象函数。

USER32 实现了窗口化函数,其增长的一个重要部分是使用新的多监视器 Api。 其他新的 USER32 Api 包含一组信息性函数 (例如 GetWindowInfoGetTitleBarInfo) 。

最后,ADVAPI32.DLL 是提供高级 Win32 Api 的 DLL。 有很多新的 API 组会对其增长造成影响: EFS (例如 DecryptFile) 、CryptoAPI (,例如 CryptEnumProviders) 、security () CheckTokenMembership 、 (StartTrace 和) 管理界面 Windows WMI () (WmiOpenBlock 构成新功能的大部分。

DAVID 所罗门群岛讨论会

David 所罗门群岛每年2月到2月21-25。 向 Microsoft 讲授的专家提供的开发人员培训。

  • Win32 编程(Jeffrey Richter)
  • 按 John Robbins 进行电源调试
  • Windows 2000 的设备驱动程序,按晓明 Hanrahan
  • Windows CE 设备驱动程序 &按 Doug Boling 的应用程序

有关详细信息,请参阅 http://www.solsem.com

即将推出的内容

对于想要利用其知识产权的公司而言,软件 patenting 已成为必需的 pastime。 Microsoft 对专利游戏没有 stranger,而 NT 的内核具有几个机制,这些机制已被美国专利和商标 Office (PTO) 认定。 Microsoft 获得专利的内核区域包括 i/o 管理器和对象管理器。 接下来,我将向您介绍我能够在 NT 内核上进行深入了解的专利列表。


感谢您阅读系统内部新闻稿。

发布时间:2006年1月6日,2000 7:09 PM ottoh

[新闻稿存档 ^][ volume 1,number 5][volume 2,number 2 ]

[新闻稿存档 ^][ volume 1,number 5][volume 2,number 2 ]

系统内部新闻稿第2卷,编号1

http://www.sysinternals.com

版权所有© 2000 Mark Russinovich