2001年8月20日-在此問題中:

  1. 編輯

  2. SYSINTERNALS 的新功能

    • Process Explorer v 5。1
    • 處理 v2。0
    • PsInfo v1。1
    • PsExec v 1.24
    • PsLogList v 2.07
    • Windows XP 來源版面配置
    • DebugView v 4.13
    • PageDefrag 2.1、Contig v 1.41
    • Microsoft 的 Sysinternals
  3. 內部資訊

    • 在 Windows 2000 (互動式 DVD)內
    • 將日期標示為 Russinovich 和索羅門群島在奧斯丁的教授
    • 命令列磁片管理
    • 線上 WINHEC 2001 滑片
    • XP 中的新檔案系統篩選器驅動程式介面
    • 使用按鍵筆劃的損毀 Windows
    • Windows XP 預先提取
    • Windows .net 連接
  4. 即將推出的內容

    • 我的 Itanium 體驗

贊助商: WINTERNALS SOFTWARE

Sysinternals 電子報是由 Winternals Software 贊助,網址為: http://www.winternals.com. Winternals Software 是 advanced systems tools for Windows NT 的領導開發人員和提供者/2K/XP。 Winternals Software 產品包括 FAT32 適用于 Windows NT 4.0、NTFSDOS Professional Edition (讀取/寫入 NTFS 驅動程式以進行 DOS) 和遠端復原。

Winternals 很榮幸地宣佈重組的1.31 版,這是最快、最完整的企業磁碟重組工具。 您現在可以從簡單的 MMC 嵌入式管理單元,管理整個 Windows enterprise 的磁碟重組排程,而不需要在您的 NT 或 Windows 2000 系統上安裝任何用戶端軟體。 有10個系統授權可用於僅限 $169 的線上購買,且有主動式數量折扣可用。 請造訪以 http://www.winternals.com/39 取得詳細資訊,或免費下載並使用30天。

大家好,

歡迎使用 Sysinternals 電子報。 這份電子報目前有33000的訂閱者。

我使用的電腦有數種不同的容量:軟體發展人員;作為使用者;而且,系統管理員也 (自己的開發和測試系統網路) 。 由於我想要觸及最廣泛的物件來 Sysinternals 可免費使用的工具及 Winternals 商用產品,因此大部分的公用程式都是以最低 Windows NT 4 到 Windows XP 為目標,而且許多公用程式也會透過 Windows Me 在 Windows 95 上執行。 我撰寫的大部分工具都是系統層級,這表示它們通常會包含一或多個不同 Windows 變異的特殊案例代碼。 可惜的是,Windows NT 線和 Windows 9x 線之間有明顯的使用者介面和核心差異,甚至是相同行的版本之間的差異。

我用來執行測試的方法是使用數個偵錯工具,這些系統全都設定成多重開機我所列舉的 Windows 類別,然後開機進入某個版本、測試,然後重新開機到下一個版本。 除了緩慢,測試有時也會因為干擾未正確清除之公用程式的中繼測試組建靈光一現而扭曲。 雖然我的多重開機系統有一個可用於偵測問題的集合,但稱為 VMWare (www.vmware.com) 的創新產品讓我的測試週期更快、更容易。

VMWare 是一種虛擬機器環境,可讓您用來建立虛擬電腦, (來賓) 在 Windows NT、Windows 2000 或 Linux 安裝 (主機) 上執行。 來賓可以執行大部分的 Windows、DOS 和 Linux 變體。 它的令人不安是在另一部電腦上執行的作業系統版本,尤其是當您將虛擬機器設為全螢幕時,幾乎無法偵測到您沒有在 linux 電腦的螢幕上,而是在 Windows 2000 上執行的 linux 電腦虛擬顯示器。 虛擬機器是軟體強加的方塊,可封裝虛擬機器中執行的作業系統和應用程式,如此一來,當他們嘗試並與他們認為有的硬體互動時,虛擬機器軟體就會攔截存取權。 虛擬機器軟體會建立虛擬裝置,以控制實際的硬體或虛擬硬體,以謹慎控制代理程式。 例如,當在視窗中顯示的虛擬機器中執行的應用程式寫入虛擬機器的顯示記憶體時,虛擬機器軟體會更新代表虛擬機器顯示的視窗內容,而不是讓存取觸碰實際的視訊記憶體。 如果虛擬機器是以全螢幕模式執行,則虛擬機器軟體會讓這類存取直接操作影片記憶體。

虛擬機器功能可讓 VMWare 很有用,因為您可以在硬碟周圍有任意數量的「測試系統」。 讓 VMWare 更強大的功能,就是您可以「暫停」虛擬電腦,將其狀態儲存到磁片,然後再繼續進行,以在還原暫停的狀態時還原。 但不只是這樣而已。 我廣泛使用一項稱為「非持續性磁片」的功能,這項功能會以虛擬磁片啟動虛擬電腦,其中包含您已定義 (的內容,只需要基本的 OS 安裝) 然後追蹤變更,以便您可以復原並還原為啟動狀態。 如果我安裝了公用程式的測試版本,然後需要確定我回復的狀態不會反映任何公用程式的變更,就只是復原變更。 我在使用者和系統管理員角色中也覺得 VMWare 很有用。 當我下載應用程式時,我不確定是否要保留,而不是可能危及我的開發系統,或在卸載應用程式時,將它填入遺留的碎片,只要在具有非持續性磁片的虛擬機器中嘗試它即可。

目前的版本有一些相對較小的缺點,讓我無法使用我的實際 debug 電腦。 第一個原因是因為虛擬機器不支援 DirectX,所以您無法執行 Numega 的 SoftICE 偵錯工具,除了虛擬機器的螢幕解析度為640x480 之外。 第二個原因是 VMWare 的序列埠虛擬化受限,可防止在主機與來賓之間或在來賓之間使用 Windbg 或 Kd 進行內核偵錯工具。 不過,下一個主要的 VMWare 版本應該要解決後者問題。

VMWare 的特別有趣之處在于,在 VMWare 之前的情況下,電腦科學家一直都認為無法在軟體中將 x86 架構虛擬化的功能,足以執行未修改的作業系統,而不會造成效能降低。 挑戰很重要,尤其是在硬體裝置虛擬化的領域中,VMWare 的成功也會被視為突破性的,因此 VMWare 最近發佈了「最佳的會議」檔,以瞭解他們在年度 USENIX 技術會議如何實行裝置虛擬化。 您可以閱讀文章: http://vmware1.m0.net/m/s.asp?HB4162878203X1075673X73339X.

說到 USENIX 的技術研討會,我也合著了文章,High-Performance Memory-Based 網頁伺服器:核心和 User-Space 效能 (http://www.sysinternals.com/files/webserver.pdf). 本文將說明我在進行 IBM Research 時所參與的一些創新研究。 工作的投稿是在核心模式的 Web 服務器加速區域中,而除了參與架構之外,我也負責 Windows NT 和 Windows 2000 的大部分執行。 專案成功的原因是,我們一直保有了 SPECWeb 的世界記錄,以提供 web 服務效能,它已發行為名為 ibm Netfinity web 伺服器加速器的不斷演進 ibm 產品,Microsoft 和 Linux 團體都已將數個重要構想併入自己的產品 (例如 Windows 2000 的 IIS,以及 linux) 上的 Tux。

請將電子報傳遞給您認為可能對其內容感興趣的朋友。

謝謝!

-Mark

SYSINTERNALS 的新功能

PROCESS EXPLORER V 5。1

Process Explorer 是 HandleEx 的新名稱,這個多用途公用程式會顯示有關進程的詳細資訊、已載入的 Dll,以及它們已開啟之作業系統資源的控制碼。 除了新的名稱之外,最新版本的 Process Explorer 還引進了新功能的許多,包括有效率的自動重新整理、CPU 使用量資料行、變更進程優先順序的能力,以及處理常式會話識別碼(如果系統是終端機伺服器)。 此外,它還會顯示更多有關處理常式的資訊。 例如,您可以查看在進程內執行的服務清單 (如果適用) 、檢查進程的環境變數,以及查看進程命令列。 您可以使用稱為「進程樹狀結構」的新排序選項,以圖形方式查看進程的父子式關聯性,這可協助您識別進程的用途。 Process Explorer 會在所有 Windows 9x 版本以及 Windows NT 4 到 Windows XP 上執行。

流程 Explorer 介面可能無法立即察覺的部分,就是能夠為您展示哪些進程開啟了特定的檔案或目錄。 切換顯示以處理模式,並在 [搜尋] 對話方塊中輸入有問題的檔案或目錄的名稱。 搜尋功能最常用來追蹤防止您刪除或重新命名檔案或目錄的程式,但您也可以使用它來列出已載入特定 Dll 的進程。

下載 Process Explorer v 5.1,網址為 http://www.sysinternals.com/ntw2k/freeware/procexp.shtml.

處理 V2。0

控制碼是 Process Explorer 的控制碼流覽功能的命令列版本,可讓您查看進程已開啟之作業系統資源(例如檔案)的控制碼。 在某些情況下,使用控制碼是識別開啟檔案或目錄的進程,而不是使用 Process Explorer 的搜尋功能,因為您只需要在控制碼命令列上輸入部分的檔案或目錄名稱。 除了更有效率的控制碼名稱查閱,控制碼2.0 現在可在 Windows 95/98/Me 上運作。

下載 Handle 2.0 版,網址為 http://www.sysinternals.com/ntw2k/freeware/handle.shtml.

PSINFO V1。1

PsTools 管理工具套件的最新新增功能是 PsInfo。 PsInfo 是一種命令列工具,可報告電腦的硬體和作業系統特性。 例如,它會告訴您正在執行哪個作業系統,包括 service pack 號碼、安裝和到期日 (如適用) ,以及 configuration (例如網域控制站、成員伺服器) 。 它也會列出電腦上 Cpu 的類型、速度和數量,以及已安裝的實體記憶體數量。 此資訊可讓 PsInfo 方便系統識別或清查。 如同 PsTools suite 中的所有工具,PsInfo 是在本機或遠端 Windows NT、2000或 XP 電腦上執行。

下載 PsInfo v1.1,網址為 http://www.sysinternals.com/ntw2k/freeware/psinfo.shtml.

PSEXEC V 1.24

PsExec 可讓您在遠端系統上啟動進程,而不需要在遠端系統上手動安裝任何軟體,只要系統位於您的網路鄰近。 PsExec 的強度在於其對重新導向的主控台程式 i/o 的支援,它會處理遠端主控台程式的鍵盤輸入和文字輸出,就像是在您的本機系統上執行一樣。

最新版本的 PsExec 在相同的遠端系統上支援多個執行中的處理常式,可讓您在另一個系統上遠端開啟數個命令提示字元。 它也有新的 [強制複製] 選項,可讓您指定要讓 PsExec 將檔案複製到遠端電腦以執行,並取代任何現有的版本。

下載 PsExec v 1.24,位置: http://www.sysinternals.com/ntw2k/freeware/psexec.shtml.

PSLOGLIST V 2.07

PsLogList 是另一個 PsTools 公用程式,會從本機或遠端系統傾印事件記錄檔。 不同于 eloglist,Windows 2000 資源套件工具具有相同的目的,PsLogList 會顯示記錄的完整事件字串,而在傾印遠端記錄時,它會使用來自遠端系統的事件記錄檔字串資源檔,而不是從本機系統。

2.07 版的 PsLogList 包含命令列參數,可讓您將擴充的事件記錄檔記錄資訊寫入 (可與記錄) 相關聯的其他資訊,以及新的交換器,讓您可以只從指定的最新日期查看記錄。

下載 PsLogList v 2.07,網址為 http://www.sysinternals.com/ntw2k/freeware/psloglist.shtml.

WINDOWS XP 來源版面配置

您是否曾經想過 Microsoft 如何組織原始程式碼,以組成 Windows NT/2000/XP 核心的程式碼? 我也知道,這項資訊已公開提供。 當 Microsoft 發行 Windows 2000/XP 的新組建時,它會發行數個版本:

  • 單處理器「免費」版本
  • 支援超過 4 GB 實體記憶體的 uiniprocessor 「免費」版本
  • 多處理器「免費」版本
  • 多處理器「免費」版本,可支援超過 4 GB 的實體記憶體
  • 「已檢查」多處理器版本
  • 「已檢查」多處理器版本,可支援超過 4 GB 的實體記憶體

總共6個版本。 「免費」與「已檢查」之間的區別,不是「免費」版本是免費的 (不) ,但 MSDN CD 組中包含的「已檢查」版本,包括可協助作業系統和設備磁碟機進行偵錯工具的程式碼和資料。 「免費」版本只會以條件式編譯語句中包含的額外程式碼進行編譯。

額外檢查的程式碼範例包括可報告作業系統正在執行的偵錯工具列印語句、從設備磁碟機傳遞至核心模式函式之參數的嚴格一致性檢查,以及 "assertion" 語句。 Assert 語句會針對套用至程式碼區域的條件,驗證開發人員的假設。 例如,如果指標應指向具有識別簽章的資料結構,則開發人員可以插入該效果的判斷提示。 違反判斷提示的假設時,會發生什麼事? 這取決於判斷提示,但在已檢查組建中的情況下,會列印偵錯工具中斷點,然後觸發偵錯工具中斷點,讓內核偵錯工具啟動 (或者,如果沒有任何偵錯工具在作用中,就會發生損毀,希望產生可稍後再檢查的傾印檔案) 。

為了讓判斷提示所攔截到的問題變得簡單,檢查的組建中使用的判斷提示會印出判斷提示位置的檔案、函式和行號。 我可以藉由使用「字串」字串解壓縮公用程式來解壓縮這些字串,並將它們組織成 java treeview,來顯示來源樹狀結構版面配置。

查看 Windows XP 來源配置,並在 (深入瞭解判斷提示 http://www.sysinternals.com/ntw2k/info/xpsrctree.shtml ,請注意,IE 會顯示頁面載入速度緩慢的警告。 將它關閉,您將會看到) 的樹狀結構。

DEBUGVIEW V 4.13

DebugView 是一種開發人員公用程式,可讓您從本機系統上的應用程式或驅動程式或遠端的驅動程式(甚至是從多個系統)捕捉偵錯工具的輸出。 此最新版本增加了與 Windows XP RC 1 的相容性。 DebugView 可在 Windows 9x、Windows Me、Windows NT、Windows 2000 和 Windows XP 上運作。

下載 DebugView v 4.13,網址為 http://www.sysinternals.com/ntw2k/freeware/debugview.shtml.

PAGEDEFRAG 2.1、CONTIG V 1.41

最受歡迎的 Sysinternals 下載最上層的排名為 PageDefrag 和 Contig。 PageDefrag 會在開機時重組核心系統資料檔,而 Contig 則是命令列檔磁碟重組公用程式。 這些工具的最新版本具有改良的磁碟重組引擎來 Windows 2000,而且每一個都有自己的增強功能。

除了重組登錄和分頁檔案之外,最新版本的 PageDefrag 也會重組事件記錄檔。 而且類似于 Windows 2000 中的 Chkdsk,在開機程式期間,PageDefrag 現在有3秒的計數,您可以按任意鍵將它略過磁碟重組。

Contig 的獨特之處在于,您可以使用它來重組個別檔案、整個目錄或整個磁片。 Contig 的目標是要將對應用程式效能很重要的特定檔案優化,因為與商業磁碟重組工具不同的是,它不會合並可用空間,以協助防止磁片上的未來片段。 除了增強的重組引擎之外,新的 Contig 在非詳細資訊和詳細資訊模式中都有更好的輸出格式。

下載 PageDefrag v 2.1,網址為 http://www.sysinternals.com/ntw2k/freeware/pagedefrag.shtml.
下載 Contig v 1.4,網址為 http://www.sysinternals.com/ntw2k/freeware/contig.shtml.

SYSINTERNALS AT WWW.MICROSOFT.COM

同樣地,以下是 Microsoft 知識庫中的最新 Sysinternals 參考文章 (KB) 自從上次電子報以來發行的文章。 這會帶來27個 Sysinternals 的 KB 參考總數。

  • 使用 SQL Server ODBC 驅動程式來0x8000FFFF 「嚴重失敗」訊息
    http://support.microsoft.com/support/kb/articles/Q243/3/49.ASP

  • ACC:錯誤訊息: ActiveX 元件無法建立物件
    http://support.microsoft.com/support/kb/articles/Q296/2/05.ASP

  • 做法:判斷 Internet Explorer 使用的 MSXML 版本
    http://support.microsoft.com/support/kb/articles/Q296/6/47.ASP

  • 做法:疑難排解「ADODB。從記錄集 DTC 800a0bb9 連接錯誤
    http://support.microsoft.com/support/kb/articles/Q197/3/23.ASP

  • 資訊:80004005和其他錯誤訊息的疑難排解指南
    http://support.microsoft.com/support/kb/articles/Q183/0/60.ASP

  • XADM:填入信箱存放區時,會發生事件識別碼3036和3026訊息
    http://support.microsoft.com/support/kb/articles/Q296/1/36.ASP

內部資訊

在 WINDOWS 2000 內,互動式 DVD

Dave 索羅門群島和我寫了「在 Windows 2000,第三版」中,Windows 2000 內部和架構的官方指南,我們很高興宣佈即將推出「內部 Windows 2000」 DVD 教學課程。 本教學課程實際上是由5個 dvd 組成,內含超過9小時的內容,由 Dave 所組成,而我則是以非正式的設定說明 Windows 2000 的內部運作方式。

涵蓋的主題包括記憶體管理、進程和執行緒、儲存體、檔案系統、網路功能等,而且每個都分成10-20 分鐘的模組,方便您進行觀看。 此簡報包含數十個圖表、示範、螢幕擷取畫面和摘要清單,而每個課程模組最後都有複習問題,以測試及鞏固您的理解。

最終定價和發行日期尚未完成,但如果您想要收到發行通知,請傳送電子郵件給主旨中的「 mailto:video@... 感興趣」一詞。 或者,觀賞 http://www.sysinternals.com/video/ 詳細資料。

標記日期: RUSSINOVICH & 索羅門群島在奧斯丁的教授

如果您對 DVD 組有興趣,就一定會有興趣查看 Dave,而我會即時教授 NT 內部。 在11-13 年12月德克薩斯州奧斯丁,告訴我們,我們有3天的 Windows XP/2000/NT 內部架構類別。 此類別以「內部 Windows 2000,第三版」為基礎,涵蓋了環境子系統、系統呼叫分派、系統執行緒、啟動 & 關機、登錄內部、進程和執行緒排程、記憶體管理、安全性、i/o 系統、儲存體、NTFS 和快取管理員。 藉由瞭解 Windows XP 2000 的內部運作方式 & ,您可以更有效地利用平臺,並更有效地進行疑難排解並針對問題進行疑難排解。

當有詳細資料可供使用時,我們會在電子報和網站上告訴您,因此請持續關注!

命令列磁片管理

Microsoft 最後發行了可編寫腳本的命令列工具來管理 Windows 2000 的磁片,Bowing 對系統管理員的壓力。 DiskPart 可讓您建立磁片區或磁碟分割、建立和中斷鏡像、擴充磁片區,以及檢查磁片、磁片區和磁碟分割的詳細資料。 最棒的是,DiskPart 是免費下載的 http://www.microsoft.com/downloads/release.asp?ReleaseID=31167.

線上 WINHEC 2001 滑片

如果您錯過了 Microsoft 年度 Windows 硬體工程會議 (WINHEC) 您還是可以從許多簡報中觀看投影片。 請造訪 http://www.microsoft.com/winhec/sessions/driver.htm 一份研討會清單、描述,以及隨附于 Power Point 的連結。 一般感興趣的簡報是有關驅動程式調試技術、篩選器驅動程式,以及 NDIS 微型埠和中繼驅動程式的簡報。

XP 中的新檔案系統篩選器驅動程式介面

如果您有即時檔案鏡像、內部存取病毒檢查,或是以檔案系統篩選器驅動程式為基礎的階層式存放裝置管理產品,則您會想要確定 Microsoft 在 Windows XP 中引進的變更,並對您的影響。

最大的變更與快速 i/o 常式有關,這是檔案系統驅動程式所註冊的特殊函式,可讓記憶體管理員、快取管理員和 i/o 系統執行檔案系統 i/o 並與檔案系統驅動程式互動,而不需要產生 Irp。 您可能會發現,有些人驚訝的是,有6個快速的 i/o 常式可讓檔案系統篩選器驅動程式永遠略過。 分別是:

FastIoAcquireFileExclusive
FastIoReleaseFile
FastIoAcquireFileForCcFlush
FastIoReleaseFileForCcFlush
FastIoAcquireFileForModWrite
FastIoReleaseFileForModWrite

記憶體管理員會在 FastIoAcquireFileExclusiveFastIoReleaseFile 建立檔案支援的區段之前和之後呼叫,而其他核心模式子系統則可以呼叫這些常式,以暫時防止建立區段。 快取管理員會 FastIoAcquireFileForCcFlushFastIoReleaseFileForCcFlush 在將所有或部分檔案的已修改快取資料排清回磁片之後,以及記憶體管理員在將中途 FastIoAcquireFileForModWrite 對應檔案 FastIoReleaseFileForModWrite 頁面寫入至檔案之前和之後呼叫。

核心模式子系統不會直接叫用快速的 i/o 函式,而是使用代理檔案系統執行時間 (FsRtl) 常式。 最快速 i/o 函式的執行時間常式會透過對目標檔案物件的呼叫取得其篩選器設備物件的參考, IoGetRelatedDeviceObject 然後呼叫篩選器的相對應快速 i/o 常式來叫用篩選器驅動程式,但與快速 i/o 呼叫相關的執行時間常式會改為呼叫 IoGetBaseFileSystemDeviceObject ,這會傳回基礎檔案系統驅動程式的裝置物件。 執行時間略過這些函式之篩選準則的原因是,我的意見中有點了一點,那就是執行時間並不信任篩選器驅動程式。 如果篩選器不會將這些呼叫向下傳遞到基礎檔案系統驅動程式,它會導致檔案系統資料損毀,而且幾乎肯定會損毀。 但是,篩選器驅動程式可能會造成損毀的許多事情。

在 Windows XP 中,FsRtl 引進了新的函式, FsRtlRegisterFileSystemFilterCallbacks 它會使用篩選器驅動程式來註冊這些不同作業的回呼。 如此一來,檔案系統篩選器驅動程式就可以檢查這些作業,甚至讓它們失敗,而且執行時間可以確保在適當時,一律會叫用基礎檔案系統驅動程式。 您可以在哪裡找到函數的檔? Windows XP 可安裝的檔案系統套件,可從 Microsoft 取得 $995:http://www.microsoft.com/ddk/ifskit/XPdefault.asp.

使用按鍵筆劃的損毀視窗

我在幾天的電子報中告訴您如何將設定新增至 Windows 2000 登錄,讓您能夠以特殊的按鍵順序起始執行中系統的藍屏損毀,讓您能夠分析不會回應輸入的系統。 如何在不需要在登錄中設定任何專案的情況下,損毀 Windows NT 和 Windows 2000 的方法?

開啟命令提示字元視窗,將目前目錄變更為開機磁碟機的根目錄 (磁片磁碟機 \winnt) ,然後輸入 dir /s 。 執行時,請輸入 F7 + 輸入幾次,然後輸入 Ctrl-c 以中止清單。 您將立即遇到藍色畫面或自發重新開機。 很酷吧? 可惜的是,與先前所報告的技巧不同的是,這種行為並不是設計的行為,而是您可以在下列位置找到報表的錯誤: http://www.WindowsITsecurity.com/articles/index.cfm?articleID=22037.

如果您錯過了包含擊鍵設定的電子報,請根據 Microsoft 偵錯工具說明檔中的指示,將下列登錄值新增至您的 Windows 2000 或 XP 登錄:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScrll DWORD 1

重新開機,您可以在按住左邊控制鍵時輸入滾動鎖兩次,以損毀系統。

WINDOWS XP 預先提取

Microsoft 專注 Windows XP 來改善終端使用者體驗,而使用者會考慮到電腦開啟和可用的速度很大的一部分。 因此,Microsoft 開發人員已花大量精力來改善開機程式和應用程式啟動的效能。 它們以數種方式解決此問題:第一種方式是序列和網路設備磁碟機以平行方式初始化,不像在 Windows 2000 中,會以序列方式初始化。 其次,Winlogon 不再等候工作站服務 (在呈現登入對話方塊和允許使用者登入之前,會先等待網路服務) 變成可用。 最後,他們將稱為「預先提取」的技術納入開機程式和應用程式啟動。 我即將簡短介紹預先提取的運作方式,並將您帶到 Microsoft 在開機優化時所發佈的白皮書。

Windows (所有版本(非實際模式 win 3.1) )是一種需要分頁的作業系統,其中檔案資料和程式碼會在應用程式嘗試存取時,從磁片「發生錯誤」至記憶體。 資料和程式碼在「頁面」中發生錯誤-頁面大小是由 CPU 的記憶體管理硬體所決定的細微區塊。 在 x86 上,頁面為 4 KB。 預先提取是在要求之前將資料和字碼頁從磁片帶入記憶體的程式。

為了知道它應預先提取的內容,XP 快取管理員會監視應用程式啟動時所產生的分頁錯誤。 依預設,它會追蹤開機程式的前2分鐘和應用程式啟動的前10秒。 在收集至 NTFS 主要檔案資料表上所建立之錯誤的追蹤之後 (MFT) 中繼資料檔案 (如果應用程式存取 NTFS 磁片區上的檔案或目錄) 、參考的檔案,以及所參考的目錄,則會向命名的事件物件發出信號,以通知工作排程器的預先提取元件。 工作排程器會使用指定追蹤查詢的資訊類型來執行 NtQuerySystemInformation 的呼叫,並將其讀取。 在追蹤資料上執行 post 處理之後,工作排程器會將它寫出到下的檔案 \Windows\Prefetch 。 檔案的名稱是追蹤所套用的應用程式名稱,後面接著破折號和檔案路徑雜湊的十六進位標記法。 檔案的副檔名為 "AF43252301.PF",例如 NOTEPAD.EXE-。

檔案名規則的例外是儲存開機追蹤的檔案,該檔案的名稱一律是 NTOSBOOT-B00DFAAD.PF (十六進位相容字組 "BAADF00D" 的卷積,而程式設計人員通常會使用此檔案來代表未初始化的資料) 。 系統或閒置進程中所採取的任何錯誤都會被視為開機的一部分,因為它是在裝置驅動程式載入和初始化的系統進程中。

當開機啟動或應用程式執行時,進程管理員會呼叫快取管理員,讓它有機會執行預先提取。 快取管理員會查看預先提取目錄,以查看有問題之預先提取案例的追蹤檔案是否存在。 當快取管理員呼叫 NTFS 來預先提取任何 MFT 中繼資料檔案參考時,它會讀取每個參考的目錄的內容,最後會開啟每個參考的檔案,並使用記憶體管理員來讀取在追蹤中所指定的任何資料和程式碼,而該追蹤中還沒有記憶體。 記憶體管理員會以非同步方式起始所有讀取,然後等候它們完成,再讓應用程式的啟動繼續進行。

此配置如何提供效能優勢? 答案就是在正常開機或應用程式啟動期間,發生錯誤的順序,讓某些頁面從檔案的某個部分帶入,然後再從不同的檔案中放入一些頁面,然後再從某個目錄等等。 這跳到了直接對應到磁片上的問題,Microsoft 已經透過分析來瞭解磁片搜尋時間是使開機和應用程式啟動時間變慢的主要因素。 當預先提取讀取特定檔案或目錄中的資料,然後再移至另一個檔案或目錄時,幾乎會排除搜尋。

為了盡可能減少搜尋的次數,每隔三天或之後工作排程器會依照開機或應用程式啟動時所參照的順序來組織檔案和目錄的清單,並將清單儲存在名為的檔案中 \Windows\Prefech\Layout.ini 。 然後,它會使用命令列選項來啟動系統磁碟重組工具,告知磁碟重組工具會根據檔案的內容進行重組,而不是執行完整的磁碟重組。 磁碟重組工具會尋找磁片區上的連續區域,足以容納所有列出的檔案和目錄,然後將它們移至區域,以便將它們儲存在另一個區域。

這些是 xp 預先提取配置的基本概念,Microsoft 報告大幅加速開機程式 (您可以看到 xp 的開機速度比 Windows 2000) 快許多。 您可以在以下白皮書中找到預先提取和其他快速開機增強功能的詳細資訊: http://www.microsoft.com/hwdev/fastboot/. 此外,Dave 索羅門群島和我已開始在 (的《 Windows 2000 》的 XP 修訂版本中發行,在) 中發行,您可以在此找到更詳細的說明。

WINDOWS .NET 連接

如果您在 TechEd 錯過了我,就會聽到在10月3日的《 Scottsdale,亞利桑那州的 Windows .net 連接會議。 我在 Windows XP 中提供 Windows NT/2000 損毀傾印分析和核心變更的簡報。 會議中的其他說話者也包含了 Windows 2000 雜誌,每日都有提供編輯人員 Mark Minasi 和小紅的作者。 如果您是從電子報的會議中參加,請讓我知道。

您可以看到我所說的摘要,並尋找 Windows .net 連接網站的連結,網址為:http://www.sysinternals.com/ntw2k/info/talk.shtml.

即將推出的內容

我的 ITANIUM 體驗

Microsoft 已將 Itanium 系統,讓我能夠將 Sysinternals 公用程式移植到 Win64。 電腦有一些令人印象深刻的規格,方法是: 2 733 MHz 處理器和 8 GB (! ) 的 RAM。 接下來,我會告訴您移植體驗的相關資訊,包括我對各種公用程式所做的變更,以便在 Win64 上運作。


感謝您閱讀 Sysinternals 電子報。

依 ottoh 在2001年8月20日星期一的 7:03 PM 發行

[電子報封存^][ volume 3,number 1][volume 4,number 1 ]

[電子報封存^][ volume 3,number 1][volume 4,number 1 ]

系統內部電子報第3號,第2號

http://www.sysinternals.com
著作權 (C) 2001 Mark Russinovich