2000年1月6日-在此問題中:

  1. 系統內部的新功能

    • PsKill v1。0
    • PsList v1。1
    • WinObj v 2。1
    • Contig 1.3 版
    • NTFSCHK v1。0
    • HandleEx v 2。1
    • Ctrl2cap v 2。0
    • Filemon v 4.26
    • 藍屏2。1
    • Fundelete 2.01
    • Openlist v 1.11
    • 12月 NT 內部
  2. 內部新聞

    • 已發行的 Win2K DDK
    • 使用按鍵的損毀 Win2K
    • 受寫入保護的系統記憶體更新
    • Win2K API 爆炸
    • David 索羅門群島的研討會
  3. 即將推出的內容

    • Microsoft NT-Related 專利

贊助商: WINTERNALS SOFTWARE

系統內部電子報是由 Winternals Software 贊助,網址為: http://www.winternals.com. Winternals Software 是 advanced systems tools for Windows NT 的領導開發人員和提供者/2K。 Winternals Software 產品包含適用于 Windows NT 4.0 的 FAT32、ERD Commander Professional 版 (advanced boot 磁片功能,適用于 Windows NT) 和遠端復原。

Winternals Software 的 NTFSDOS Professional 和 ntfs for Win98 可提供您 ntfs 磁片磁碟機的完整讀取和寫入權限,從 DOS、Windows 95 和 Windows 98。 NTFSDOS Pro 將單一磁片的「開機磁片」功能帶入 Windows NT/2K。 有了 NTFSDOS Pro 您可以從 DOS 開機軟碟刪除錯誤的驅動程式、重新整理檔案,以及在 NTFS 磁片磁碟機上執行一般的檔案系統維護。 ntfs for Win98 可讓您從 Windows 95 和 Windows 98 透明地存取 NTFS 磁片磁碟機。 在您的雙重開機環境中,輕鬆地在 NTFS 磁片磁碟機上的 NT 和 Win9x 之間共用應用程式和檔案。 這兩個公用程式甚至都有內建的 NTFS Chkdsk 功能。 A free read-only version of NTFSDOS Pro is available at http://www.sysinternals.com/ntfspro.htm and a free read-only version of NTFS for Win98 is available at http://www.sysinternals.com/ntfs98.htm.

大家好,

歡迎使用系統內部電子報。 這份電子報目前有14000的訂閱者。

我相信您已經知道,Win2K 是在磁片 duplicator。 (RTM 的發行前版本) 版的 Win2K 最後成為組建2195。 RC3 是2128,如我在前一篇電子報中所述,Microsoft 會在編譯目前的來源樹狀結構時,每晚和假日增加組建編號。

我是在11月的 Microsoft, (查看電子報中稍後的 Filemon 更新,以瞭解我) 的原因,而核心小組的成員將我帶我前往 Microsoft 校園的大樓26教學課程。 建築物26是 Windows NT/2K 基礎核心小組的所在位置,也是 Windows NT/2K 組建和測試實驗室的所在位置。 組建和測試實驗室的大小大致相等 (可能是30「60」 ) ,但測試實驗室是以電腦機架 crammed,而組建實驗室則是建立者的電腦空間和基座。 每晚都會將來源樹狀結構解壓縮到數個四處理器系統上,並執行編譯。 如果有人的程式碼簽入發生 (上帝禁止) 中斷組建,就會呼叫該人員-無論是哪一小時都能取得其對接入修正問題。 依11月版的 Win2K,在程式碼凍結的情況下,只允許委員會核准所需的變更,並將其導向至「顯示操作程式」錯誤修正。

一旦產生新的組建,測試人員就會將它放在實驗室中的所有電腦上,並將其同時安裝在電腦上。 測試實驗室的系統機架會填滿每個大型電腦廠商的洗碗機大小的多處理器伺服器。 在完成 Win2K 安裝之後,系統會執行大量的壓力測試腳本。 在開發過程的稍後部分中,會以高於90% 的速率傳遞壓力測試。 在導入數個 Win2K 可靠性增強功能(例如驅動程式驗證器)之前,費率較低,這項工具可協助開發人員在他們自己的測試期間攔截問題。

無論組建是否會將所有測試都傳遞給 Microsoft 的內部散發伺服器,Microsoft 員工都可以下載並安裝它。 如果開發人員引進了重大的問題,就會期待數百個員工的電子郵件,最後會在下一周遇到。 它只有在有嚴重的問題時,請務必達到測試小組傳送全公司電子郵件警告的大量使用者,公司 (將電子郵件傳送給超過25000的人,是不會稍微) 的事。

我在這裡也有 Dave Cutler,也就是 Windows NT 的首席架構設計師。 這幾天後,該怎麼辦? 在11月,核心團隊一直致力於在 Neptune 為 NT 6 或) (的最新版本上,而 Dave 正致力於在64位版的 Win2K 上進行的安裝。 Dave 帶領64位開發工作和64位的 Win2K 完成的方式。 從11月開始,核心小組仍在 Alpha 上執行64位工作,因為 Intel 最近剛開始產生 Merced 處理器的範例,而且校園只有一個。

如往常一樣,請將電子報傳遞給您認為可能會覺得有興趣的朋友。

謝謝!

-Mark

系統內部的新功能

PSKILL V1。0

Windows NT 和 win2k 資源套件隨附命令列 "kill" 公用程式,但只有 Windows NT 和 win2k 沒有一個。 您可以使用資源套件 "kill" 來終止本機進程,但不能終止遠端處理。 因此,我決定撰寫可自由使用的「kill」(例如我的 PsList)具有遠端功能。 PsKill 接受處理常式識別碼或名稱,以及選擇性的電腦名稱稱,並在您指定的本機系統或遠端上終止相符的進程。 您甚至不需要在遠端電腦上安裝用戶端元件。 如果您在中執行的帳戶在遠端電腦上沒有系統管理許可權,您可以將帳戶名稱和密碼新增至 PsKill 命令列,以登入遠端系統來執行 kill。

下載 PsKill 1.0 版,網址為 http://www.sysinternals.com/pskill.htm.

PSLIST V1。1

我在 UNIX ps 樣式的進程和執行緒檢視器之前,先發行 PsList。 與 Windows NT 和 Win2K 資源套件中的類似工具不同的是,PsList 可讓您查看遠端系統以及本機系統上的進程和執行緒資訊。 PsList 的運作方式是讀取 Win NT/2K's 效能 API 資訊,例如 Perfmon。 這項 PsList 修訂新增了在命令列上指定帳戶名稱和密碼來登入遠端系統的功能。 此選項可讓您存取執行 PsList 之帳戶沒有系統管理許可權的遠端電腦。

下載 PsList v1.1,網址為 http://www.sysinternals.com/pslist.htm.

WINOBJ V 2。1

WinObj 是 Windows NT/2K. 的物件管理員命名空間檢視器 物件管理員命名空間是使用者通常看不到的命名空間,但在此命名空間中,所有命名的 Win32 (\BaseNamedObjects\??) ,以及名為核心物件的位置。 它也可作為檔案系統命名空間的進入點, (透過) 下的磁碟機號符號連結 \?? ,以及透過金鑰組象) (的登錄命名空間 \Key

WinObj 類似于 Win32 軟體發展工具組中的工具 (SDK) 相同名稱,但我們的 WinObj 會比 Microsoft 版本多出許多。 比方說,當您在 WinObj 中查看物件的屬性時,您會看到參考和處理計數,而不是任一數字 (SDK WinObj 有一些重大 bug) 。 我們的 WinObj 也會顯示同步處理物件和物件安全性資訊的狀態。

這項最新的 WinObj 更新修正了錯誤,使其無法正確地顯示存在於 Win2K's 命名空間中的一些較長的符號連結值。 當您在 [在 Win2K (上執行] 時,它也會使用新的更易記的 [Win2K 安全性編輯器] 對話方塊,它會使用 ACLEDIT.DLL) 提供的未記載安全性編輯器介面。 使用者介面增強功能包括您在結束時所要查看的目錄,讓您下次開始 WinObj 該目錄時,以及您排序目錄內容 listview 視窗的能力。

下載 WinObj v 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 1.3 讓您瞭解您所指定的檔案有多分散,讓您可以判斷是否需要執行更昂貴的磁碟重組處理常式。

說到檔案磁碟重組,Symantec 還發行了最先進的磁碟重組工具,Speedisk 5.0。 為了在競爭上,它會略過重組 API,並以手動方式移動磁片上的區塊,讓它可以在系統線上時重組目錄,甚至是 MFT。 相較于執行軟體的狀態 http://www.execsoft.com/diskeeper/infosheet.asp#Q9 ,其 Diskeeper 產品 (4.0 版和5.0 版) 也會略過重組 API (但其磁碟重組程式與諾頓的) 並不像是諾頓的,尤其是在執行開機時間目錄合併時。 主管的行銷是您無法相信您所閱讀之所有專案的另一堂課程。

下載 Contig 1.3 版,網址為 http://www.sysinternals.com/contig.htm.

下載 PageDefrag、登錄和分頁檔案 defragmeter,位於 http://www.sysinternals.com/pagedfrg.htm.

NTFSCHK V1。0

從 power 使用者在電腦上安裝 Win2K 和 NT 4 的常見投訴是 Win2K's 將任何 NTFS 磁片磁碟機自動升級至 NTFS v5,會轉譯 NT 4 Chkdsk 無法檢查那些磁片磁碟機。 NT 4 Chkdsk 不會掃描 NTFS v5 磁片磁碟機並更正錯誤,只要宣佈它無法在以較新版本的 NTFS 建立的磁片磁碟機上執行,就會結束。 如果您想要檢查這些磁片磁碟機至少到目前為止,這會需要您開機進入 Win2K。

透過 NTFSCHK,您可以從 NT 4 執行 Chkdsk 版本的 Chkdsk。 怎麼做? NTFSCHK 會使用我們為執行 NT 原生 Chkdsk 而開發的相同技術,Windows 而不是 NTFSDOS Professional 和 NTFSDOS 的一部分,會在看起來像是 win2k 的環境中包裝 win2k Chkdsk。

下載 NTFSCHK 1.0 版,網址為 http://www.sysinternals.com/ntfschk.htm.

HANDLEEX V 2。1

HandleEx 是一個適用于 Windows NT/2K 的多元診斷公用程式,可顯示 dll 進程已載入的內容,以及它們) 的控制碼 (開啟的物件。 HandleEx 適用于追蹤 DLL 版本控制問題、處理流失,以及判斷哪個應用程式正在存取特定檔案、目錄或登錄機碼。

2.1 版的 HandleEx 可讓您查看進程已開啟之物件的屬性,包括參考計數和同步處理物件的狀態。 您也可以使用 NT 的安全性編輯器來查看和修改物件安全性屬性。

下載 HandleEx v 2.1,網址為 http://www.sysinternals.com/handleex.htm.

CTRL2CAP V 2。0

如果您是從 UNIX 的背景,您會同意電腦鍵盤上的控制機碼位於錯誤的位置:它應該是 caps lock 鍵的位置。 以及使用 caps-lock 金鑰的人員嗎? Ctrl2cap 是一種鍵盤篩選器驅動程式,可將 caps lock 變更為左方控制項,以副作用 (我在播放半生命) 時使用標準的左控制項做為引發鍵。

雖然 Ctrl2cap v1.0 可在 Win2K 上運作,但使用它會停用 Win2K's 電源管理功能,這對膝上型電腦而言有點煩人。 因此,我已將 Ctrl2cap 更新為符合 Windows Driver Model 的 (WDM) ,其中包含電源管理的易用性。 我提供完整的原始程式碼,而相同的原始程式檔會建立 NT 4 和 Win2K 版本。

下載 Ctrl2cap 2.0 版與原始程式碼,網址為 http://www.sysinternals.com/ctrl2cap.htm.

FILEMON V 4.26

我在11月的 Microsoft 的原因是 Microsoft 在內部保留「檔案系統篩選器 Plugfest」 (在內部稱為「olooza」 ) 。 plugfest 會將所有以 Windows NT/2K 檔案系統篩選器驅動程式為基礎的主要產品結合在一起,並以迴圈配置資源的方式將它們配對,並且針對不同的配對執行壓力測試。 代表九種不同病毒掃描的產品、許多檔案加密工具,以及磁片配額管理員。 Fest 的目標是要找出與不同篩選組合相關的互通性問題、協助找出和識別主要篩選產品中的 bug,甚至可能在 Win2K 中找到 bug。 由於 Filemon 是世界上最廣泛使用的其中一個篩選器,而許多 Microsoft 的群組都依賴它來進行開發和疑難排解工作,因此 plugfest 召集人邀請我進入活動並代表它。

Filemon 通過所有壓力測試,但不含任何事件。 由於 Filemon 是動態載入的篩選器驅動程式,因此它會在事件以外的所有產品之上分層。 上面的分層產品 Filemon 是病毒掃描程式,它也會以 Filemon 的形式動態載入。 由於病毒掃描程式會以動態方式載入,因此我們嘗試這兩種分層排列,而在 Filemon 的底部,會導致病毒掃描程式損毀。 當 Filemon 的 GUI 結束時,其驅動程式會刪除其篩選裝置物件。 篩選器驅動程式刪除篩選設備物件其實是不合法的,除非它從 i/o 管理員取得命令,告知 iit (FastIoDetach 在檔案系統篩選器中,而 P 在 IRP_MJ_PNIRP_MN_REMOVE_DEVICE WDM) 中。 不令人驚訝的是,Filemon 的裝置物件的非預期消失導致病毒掃描程式存取已解除配置的記憶體和損毀。

幸運的是,Filemon 在 plugfest 的最後一個會話中發生損毀,因此我有最少的困窘,而且因為測試在每個產品中找到至少一個嚴重的錯誤或互通性問題,所以我並非單獨出現。 Filemon v 4.26 是修正在 plugfest 發現之 bug 的版本。

即使在我參與 plugfest 之前,我在 Filemon 中發現了一些可能對 NT 裝置和檔案系統驅動程式開發人員感興趣的 bug。 我最近修改過 Filemon,以使用記錄不佳的 Executive 資源 (電子資源) 同步處理機制。 Microsoft 的檔案系統驅動程式會廣泛地使用電子資源,因此我認為它會在 Filemon 的原始程式碼中包含其使用。 E-資源必須由具有 Apc (非同步程序呼叫) 停用的執行緒取得。 您只需要「知道」這是因為 DDK 檔不會告訴您。 可惜的是,在匆忙時,我省略了在 Filemon 的電子資源收購周圍停用和重新啟用 Apc 的函式所需的呼叫。 此錯誤只會在非常罕見的情況下造成問題,因此我在 Win2K's Driver Verifier 將它攔截到之前,不會偵測到問題。 為了修正此問題,我在釋出電子資源之後取得電子資源和 KeLeaveCriticalSection 之前新增了 KeEnterCriticalSection 呼叫。

下載 Filemon v 4.26,網址為 http://www.sysinternals.com/filemon.htm.

藍屏2。1

藍屏螢幕保護裝置是我所撰寫的螢幕保護裝置,可模擬 (BSOD) 的可怕 Windows NT 藍螢幕。 我在提供 Win2K 版本之前寫了原始版本,因此它模擬了 NT 4 BSOD 並重新啟動,並使用 Chkdsk 偵測到磁片錯誤完成。 我有提供兩個可用的版本:一種是執行磁片 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 資源回收筒,以便從程式、命令列以及從 Explorer 刪除的檔案中,捕獲已刪除的檔案。 為何要變更名稱? 在 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 內部"

我在12月 Windows NT 雜誌的「NT 內部」資料行是「內部的 Win2K 擴充性增強功能,第2部分」。 本系列的第二篇將說明 Microsoft 針對多處理器擴充性所進行的增強功能,包括工作物件、新的量子控制項、新的排程類別和使用者模式執行緒集區。

過去8月 Windows NT 雜誌變更了他們的線上文章流覽原則,只允許訂閱者存取。 在上個月,他們會將原則更寬鬆至8月之前的位置。 現在,非訂閱者可以自由地查看超過四個問題的文章。

請參閱我們的發行集完整清單: http://www.sysinternals.com/publ.htm.

內部新聞

已發行的 WIN2K DDK

The final release of Microsoft's Win2K Device Driver Development Kit (DDK) is now available at http://www.microsoft.com/ddk. 您可以免費下載套件,也可以流覽線上檔。

使用按鍵的損毀 WIN2K

否,這不是錯誤。 David 索羅門群島,「在 Windows NT 第二版內」的作者為我提供了這個酷炫的秘訣。 如果您新增登錄 DWORDHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScroll ,將它設為 "1" 並重新啟動,您將能夠使用鍵盤損毀 Win2K。 按住右邊的控制項鍵時,連續按兩次方向鍵。 在第二次按下滾動鍵時,系統會出現藍色畫面和「使用者手動產生損毀傾印」訊息。

如果核心或設備磁碟機已鎖死,且電腦不再回應,則能夠以手動方式損毀的系統會很有用。 當鎖死存在時產生損毀傾印,可提供開發人員資訊來指出鎖死的原因。 此選項的推出,是為了讓 Win2K's 核心的核心開發人員不知道它,直到我在 plugfest 時傳遞它為止。

受寫入保護的系統記憶體更新

在先前的電子報中,我討論了以寫入保護的系統記憶體作為 Win2K 的新可靠性功能。 結果是,在許多設定中,預設不會有完整的寫入保護。 如果電腦至少有128MB 的實體記憶體,則會使用4MB 的「大型頁面」來對應核心記憶體。 使用4MB 而不是 4 KB 的頁面,可以節省頁面轉譯層級,進而改善效能。 因為唯讀程式碼和讀取/寫入資料可能位於相同的4MB 頁面寫入保護,所以在這些系統上已停用,除非使用者使用驅動程式驗證器要求寫入保護。 如果驅動程式驗證器強制執行寫入保護,則 Win2K 會使用較慢的 4 KB 頁面來對應核心記憶體不同的記憶體區域,這表示您可以將個別的字碼頁標示為唯讀。

因此,只有在記憶體少於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 依賴適用于 Win32 Api) 的 NTDLL.DLL。 讓我們快速查看每個應用程式中的 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 是匯出所謂「基底 OS」功能的 DLL,包括進程、記憶體、檔案 i/o 和地區設定管理 Api。 Win2K 新的 Api 包含新的語言函式 (例如 EnumUILanguages) 、工作物件函式 (例如 AssignProcessToJobObject) 、記憶體管理函式 (例如) 、檔案函式 AllocateUserPhysicalPages (例如 FindFirstVolume) ,以及 ToolHelp32 api (例如 Process32First) 。

GDI32 提供繪圖和點陣圖相關的常式。 其成長是因為大部分的新函式的外觀,包括新的字型管理 Api (例如 CreateFontIndirectEx) 、Alpha 混色和路徑物件函數。

在使用新的多重監視器 Api 時,USER32 會實視窗化函數,而其成長中有很大的一部分。 其他新的 USER32 Api 包含許多資訊函數 (例如 GetWindowInfoGetTitleBarInfo) 。

最後,ADVAPI32.DLL 是提供 advanced Win32 Api 的 DLL。 有幾個新的 API 群組會導致其成長: EFS (例如 DecryptFile) 、CryptoAPI (例如 CryptEnumProviders) 、安全性 (例如) CheckTokenMembership 、事件追蹤 (例如 StartTrace) 和 Windows 管理介面 (WMI) ,例如 WmiOpenBlock (組成大量的新功能。

DAVID 索羅門群島的研討會

David 的一場索羅門群島的技術研討會,在21-25 年2月。 由 Microsoft 教授的專家訓練開發人員。

  • Jeffrey Richter 的 Win32 程式設計
  • John Robbins 的電源偵測
  • 依曉明 Hanrahan Windows 2000 設備磁碟機
  • Windows CE 設備磁碟機 &Doug Boling 的應用程式

如需詳細資料,請參閱 http://www.solsem.com

即將推出的內容

軟體 patenting 已成為需要利用其智慧財產的公司所需的慣用。 Microsoft 對於專利遊戲並不 stranger,而 NT 的核心有一些已被美國專利和商標 Office (PTO) 的機制。 Microsoft 取得專利權的核心區域包括 i/o 管理員和物件管理員。 接下來,我將提供一份我可以在 NT 核心上發掘的專利清單。


感謝您閱讀系統內部電子報。

依 ottoh 發佈的2000年1月6日星期四下午7:09

[電子報封存^][ 磁片區1,第5號][磁片區2,數位 2 ]

[電子報封存^][ 磁片區1,第5號][磁片區2,數位 2 ]

系統內部電子報第2號,第1篇

http://www.sysinternals.com

著作權© 2000 Mark Russinovich