1999年10月12日-在此問題中:

  1. 系統內部的新功能

    • NTFS for Windows 98/NTFSDOS Professional
    • DebugView v 3.21
    • Filemon 和 Regmon v 4.21
    • Diskmon v1。1
    • Www.microsoft.com上的系統內部
    • 10月 "NT 內部"
    • 不是-新的東西
  2. 內部新聞

    • 已發行的 Win2K RC2 DDK
    • 新的 Win2K RC 核心 Api
    • 軟體發展的99東部
    • 使用 DiskEdit
  3. 即將推出的內容

    • Win2K API 爆炸

贊助商: 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 (Windows NT) 的開機磁片功能,以及 NTRecover。

Winternals Software 的遠端復原功能可讓您從企業中的任何地方透過 TCP/IP 存取可開機電腦的磁片磁碟機。 從遠端修正驅動程式、檔案系統,以及將 NT 或 Win9x 系統離線的設定問題,以節省時間和支援費用。 您甚至可以使用遠端復原來執行遠端 chkdsk 或資料分割作業,使其成為多功能的災難修復工具。 請下載免費的唯讀試用版 http://www.sysinternals.com/rrecover.htm ,並購買 http://www.winternals.com.

大家好,

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

Windows 2000 (Win2K) 的版本似乎遵循即將進行的模式,然後再推送回來。 最新的 rumors 是它將在二月推出。 此外,有關 Win2K 出貨日期的唯一資訊是在 rumors,因為 Microsoft 甚至不會告知 Oem 或合作夥伴寄送。 這些都是:「它會在準備就緒時寄出」 (我將不會在這裡將您銷售葡萄酒的相關指示,) 。

關於 Microsoft 的煩人,是因為他們所產生的產品,一律會像是在 vaporware 產品時,就像是在出貨 brink 一樣。 最新的範例是 Millennium,也就是 Windows 98 的後續版本。 Microsoft 還不太久,因為它是已完成的產品,所以可以將所有的家用設備轉換成智慧型裝置。 諷刺是一小段時間,稍後顯示 Microsoft 尚未完全定義該產品,而且在商店貨架上看到它之前,可能會有一年以上的時間。

這種模式不是新的,我不是第一次撰寫的。 但是,這不會讓我從猜測中看出,sawing 是一種仔細協調的計畫,還有總缺乏軟體工程主體的結果數量。 如果您以 conspiracy theorists 的方式來購買先前的角度,Microsoft brilliantly stifles 的競賽會很吸引人具有該絕佳產品的客戶,如果他們等待更長的時間,就會讓他們的等候更具價值,並排除任何必須轉變成非 Microsoft 產品的需求。 第二個角度指出 Microsoft 永遠不會學習軟體發展程式,而且會持續低估工程工作並 overestimates Beta 程式碼的品質。

我的範圍是我所歸屬的理論。 我真的認為模式是因為兩者都有。 我認為它已協助 Microsoft 的行為,就像 Active Directory 幾乎已經準備好兩年了。 當然,如果客戶事先知道需要等待 Win2K 的時間長度,就有可能會變成 Novell 目錄服務。 另一方面,Microsoft 從所期望的產品交付一直到了一場重複的黑色眼睛,然後再進行延遲。 我認為 Microsoft 的管理只是不知道重現、隔離及修正最後5% 的 bug。

說到 Microsoft 的開發實務,它們的發行前版本命名配置是我最 baffling 的一種。 他們的搶鮮版(Beta)其實是 Alpha,而其發行候選項目其實是 Beta 版 甚至使用這些定義是一項延展: Microsoft 在從一個候選版到下一個發行候選版本,或甚至新增新的軟體時,不會發生任何問題。 他們使用了 NT 4.0 來執行此操作,並透過 Win2K 進行。 這種作法當然不會加速發行週期。

我們將于2月發行的 Win2K? 我認為在通道末端看到燈。 畢竟,RC2 中只有少數新的 Api .。。

在最後一個電子報中,我討論過 Microsoft 的縮寫混淆,讀者 George Janczuk 找到另一個範例。 在標題為:「擴充至大型主機 Transaction-Processing 世界」的一節中,本文 http://msdn.microsoft.com/library/backgrnd/html/msdn_windnapps.htm 是指 CISC 複雜的指令集計算。 這對任何熟悉大型主機應用程式的人很明顯,也就是想要的縮寫是 CICS-客戶資訊控制系統。 相反的字母順序,您是在完全不同的技術領域。

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

謝謝!

-Mark

系統內部的新功能

適用于 WINDOWS 98/NTFSDOS PROFESSIONAL 的 NTFS

最後就完成了。 自從 Bryce 以來,我在1996年發行了 NTFSDOS 1.0,我們一直在搜尋 Windows 檔案系統相容性的聖聖杯: Windows 9x 和 DOS 的 NTFS 讀取/寫入存取權。 我們判斷過很長的一段時間之前,反向工程 NTFS 格式以及為此複雜日誌檔案系統撰寫驅動程式,是一項很難和具風險的主張。 即使一個精確地判斷出格式的每個細微之處,對格式的更新(例如 Win2K's NTFS v 5.0)都需要全新的反向工程和開發工作。 此外,驗證檔案系統驅動程式的正確性是否比 NTFS 更複雜,是一項令人望而生畏的主張。

我們其實作弊啦。

ntfs for Windows 98 提供 ntfs 磁片磁碟機的完整讀取/寫入權限,Windows 95 或 Windows 98,而 NTFSDOS Professional 可提供從 DOS 取得的完整 ntfs 讀取/寫入存取權。 Windows 98 或 NTFSDOS Professional 的 ntfs 都沒有任何 ntfs 檔案系統格式的知識。 相反地,它們依賴 Windows NT 的 NTFS 驅動程式,或 Windows 2000 安裝來實現該知識。 這兩個公用程式都使用相同的程式碼基底,作為 NTFS 檔案系統驅動程式的環境包裝函式。 ntfs for Windows 98 提供了 ntfs 以上的 Windows 9x 檔案系統 API 介面,以及 ntfs 底下的 Windows 9x 磁片服務。 ntfs 的 Windows 98 介面看起來像是 ntfs 的原生 Windows NT/2K 環境、完成的 irp、i/o 管理員、快取管理員、NT 樣式的磁片裝置,以及 NTFS 互動的其他 nt/2k 子系統。

NTFSDOS Professional 的運作方式與 ntfs 適用于 Windows 98,不同之處在于它會將 ntfs 指向上述的 DOS 服務,而 BIOS 中斷13個磁片服務。 為了協助建立 NT/2K 的環境,我們依賴 NTOSKRNL.EXE 中的許多函式,也就是 NT/2K 核心檔案。 這兩個公用程式都會與 NTFS 一起載入 NTOSKRNL.EXE,讓 NTFS 可以直接使用核心原生服務的可能。

我們在建立 NTFS 環境方面有很大的好處,就是使用 NT 的開機時間 chkdsk 公用程式(Autochk)來執行相同的工作。 NTFSDOS Professional 和 ntfs for Windows 98 隨附一個名為 NTFSCHK 的 ntfs chkdsk 公用程式。 NTFSCHK 適用于與 NTFS 檔案系統包裝函式相同的主體,它會針對 autochk 程式建立類似 NT 的環境,讓 autochk 在 Windows 95/98 和 DOS 下執行。 此 trickery 的結果是 Windows 95/98 和 DOS 的完整 NTFS 讀取/寫入支援。

您可以下載 Windows 98 的免費唯讀版本 NTFS http://www.sysinternals.com/ntfs98.htm ,以及免費的唯讀版本 NTFSDOS Professional,網址為:http://www.sysinternalscom/ntfspro.htm. 您可以在 Winternals Software 購買這兩種工具的完整讀取/寫入版本, http://www.winternals.com.

DEBUGVIEW V 3.21

DebugView 是一種可在 Windows 95、Windows 98、NT 4.0 和 Windows 2000 的情況下,同時捕捉核心和 Win32 debug 輸出的偵錯工具輸出監視器。 它具有先進的篩選、反白顯示和記錄功能,甚至可以從網路上的系統中捕捉偵錯工具輸出。 3.21 的最新版本引進了在 Windows 95 和 Windows 98 上監視16位 OutputDebugString 輸出的能力。

您可以下載 DebugView v 3.21,網址為: http://www.sysinternals.com/dbgview.htm.

FILEMON 和 REGMON V 4.21

Filemon 和 Regmon 是適用于 Windows 95、98、NT 4.0 和 Win2K 的檔案系統和登錄刺探公用程式。 它們會繼續使用新的可用性功能和版本4.21 來發展, (Filemon 和 Regmon 都有同步處理的版本號碼) 它們引進了較新篩選清單的更先進篩選、定義醒目提示篩選 (的自訂色彩,甚至) 、可自訂的字型、剪貼簿支援,以及其他 CUI 相容的熱鍵。 驅動程式原始程式碼也已經過修改,並且在 GUI 介面函式中包含更健全的參數驗證。

下載 Filemon v 4.21 at http://www.sysinternals.com/filemon.htm And Regmon v 4.21 at http://www.sysinternals.com/regmon.htm.

DISKMON V1。1

Diskmon 是一種工具,可監視並顯示邏輯和實體磁片活動。 版本1.1 更新 Diskmon 以搭配 Windows 2000,並引進新的可用性增強功能。 此外,Diskmon 現在會解釋大量的磁片和大量儲存 i/o 控制程式代碼,並將其十六進位代碼轉譯成 Diskmon 輸出視窗中的文字標記法。

Diskmon v1.1 不僅能作為磁片監視器,還可以用來做為以軟體為基礎的磁片燈。 當您在磁片輕量模式中設定它時,Diskmon 會在磁片讀取存取時將本身降至最低,並在具有磁片寫入存取權時,將其設為紅色。

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

WWW.MICROSOFT.COM 上的系統內部

考慮系統內部 (的內部) 的內部,很 flattery 地,Microsoft 會將 sysinternals.com 做為客戶的資源。 有越來越多的 Microsoft 知識庫文章可指向系統內部的公用程式。 以下是最新的:

  • Q183060 資訊: 80004005 & 其他錯誤訊息的疑難排解指南 http://support.microsoft.com/support/kb/articles/Q183/0/60.ASP
    本文說明您可以使用 Filemon 來檢查 OLE DB、ActiveX Data Objects 和遠端資料服務中的資料存取錯誤原因。

  • Q196453-針對 NTVDM 和 WOW 啟動錯誤進行疑難排解 http://support.microsoft.com/support/kb/articles/Q196/4/53.ASP
    本文也會以工具的形式指向 Filemon,以判斷哪些遺失的檔案會導致 NTVDM (在 NT) 中的 Win16/DOS 相容性環境。

  • Q216368-PRB:使用檔案時,在應用程式安裝期間發生存取違規 http://support.microsoft.com/support/kb/articles/Q216/3/68.ASP
    HandleEx 和 DLLView 是建議的工具,用來判斷 Visual Basic 安裝程式和部署嚮導所產生之安裝程式執行期間的原因 oferrors。

  • Q232830-做法:判斷檔案控制代碼擁有權 http://support.microsoft.com/support/kb/articles/Q232/8/30.ASP
    HandleEx 會再次取得本文中的參考,討論找出哪些進程開啟了檔案或目錄。

10月 "NT 內部"

我在10月 Windows NT 雜誌的「NT 內部」資料行是「內部的 Win2K 可靠性增強功能,第3部分」。 三部分系列的第三部分將說明兩個功能強大的 Win2K 功能,可協助開發人員和系統管理員找出錯誤的驅動程式:寫入保護的核心記憶體和驅動程式驗證器。

俄文讀者現在可以在自己的母語中閱讀我的文章。 前往 Windows NT 雜誌的俄文版, http://www.osp.ru/win2000/ 並查看開機程式內部第一個翻譯的 NT 內部資料行 (http://www.osp.ru/win2000/1999/10/59.htm). 感謝 Ivan Rouzanov,讓我知道這一點。

自8月起,Windows NT 雜誌文章的線上版本只可供訂閱者存取,而文章則張貼在每個新問題的線上。 如果您尚未訂閱,請前往的訂用帳戶連結 http://www.sysinternals.com/publ.htm 取得系統內部訂用帳戶折扣。

不是-新的東西

WinObj 是探索 Windows NT/2K 物件命名空間的強大工具。 物件命名空間是 NT/2K 中三個命名空間的其中一個:物件命名空間、登錄命名空間和檔案系統命名空間。 您可以透過物件命名空間中的物件取得登錄和檔案系統命名空間。 例如,當 Win32 程式開啟登錄機碼時, HKEY_LOCAL_MACHINE\Software\Microsoft ADVAPI32.DLL 程式庫會在 \Registry\Machine\Software\Microsoft 呼叫核心服務之前將名稱轉換成 NtCreateKey 。 如果您查看 WinObj 中物件命名空間的根目錄,您會看到名為 Registry 的 "key" 類型物件。 登錄名稱與金鑰名稱的第一個元件相符,因此 NT/2K 物件管理員會將名稱的其餘部分傳遞 \Machine\Software\Microsoft 給定義金鑰組象的子系統。 設定管理員核心子系統會維護登錄和金鑰組象,因此它會剖析名稱的其餘部分,以找出所需的金鑰。

您可以使用 WinObj 探索物件命名空間,並查看或設定物件安全性屬性。 下載 Winobj,網址為 http://www.sysinternals.com/winobj.htm. 我將在1997年10月 NT 內部專欄的「物件管理員」中討論物件管理員命名空間和 WinObj。 遵循上的線上版本連結: http://www.sysinternals.com/publ.htm.

內部新聞

已發行的 WIN2K RC2 DDK

您可以 (DDK) 下載 Microsoft 裝置驅動程式開發工具組的 Win2K RC2 版本,現在是 http://www.microsoft.com/ddk/ddkRC2.htm. 您可以免費下載套件,或線上流覽檔。

新的 WIN2K RC2 核心 API

最新的 Win2K 核心中的事物應該是穩定的。 RC3 中只有四個新的匯出核心 Api,而不是大約數十年出現 (還有另一半) 從 Beta 3 進入 RC1。 有幾個新函式有點有趣,所以我決定為您記錄這些功能。 第一個是 MmGetSystemRoutineAddress ,雖然它未記載,但是它的原型會包含在 RC2 DDK 的 ntddk 標頭檔中:

NTKERNELAPI
PVOID
MmGetSystemRoutineAddress (
    IN PUNICODE_STRING SystemRoutineName
    );

它的使用方式與外觀一樣簡單。 傳入位於 NTOSKRNL.EXE 或 HAL.DLL 中之函式的名稱,您將會取回其進入點位址。 這項功能在第一版的 Win2K 中真的沒有用,但可能會在道路上變得非常實用,而且是 Microsoft 在第一版的 NT (3.1) 中所應包含的功能。 如同 GetProcAddress 在 Win32 應用程式的使用者空間中,此函式可讓驅動程式動態地確定 API 的可用性。 如果 Microsoft 將新的 Api 新增至 Win2K service pack (,並確定可以撰寫) 的驅動程式來利用 Api,但也可以在舊版的 Win2K 上正常失敗,或在不使用 Api 的模式下執行。 驅動程式能夠進行這項作業的關鍵,是能夠在載入後檢查 Api 是否存在。 如果沒有這種功能,驅動程式必須以靜態方式連結其使用的函式,而且如果在驅動程式載入時沒有函式,則核心載入器會向使用者回報錯誤的錯誤,並無法載入驅動程式。

第二個新的 API 是 MmGetPhysicalMemoryPages 。 同樣地,它的原型是在 RC2 ntddk 中,但並未記載。 其原型為:

NTKERNELAPI
PPHYSICAL_MEMORY_RANGE
MmGetPhysicalMemoryRanges (
    VOID
    );

其中 PHYSICAL_MEMORY_RANGE 是:

typedef struct _PHYSICAL_MEMORY_RANGE {
    PHYSICAL_ADDRESS BaseAddress;
    LARGE_INTEGER NumberOfBytes;
} PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE;

此函式會傳回專案的陣列, PHYSICAL_MEMORY_RANGE 其中陣列的結尾會以專案為,而且和的專案都是 0 BaseAddressNumberOfBytes 。 就像一樣 MmGetSystemRoutineAddress ,這是相當簡單的 API。 它會向您傳回有關 Win2K 知道的所有實體記憶體的描述。 Win2K 支援使用和 api 來即時新增和移除記憶體 MmAddPhysicalMemoryMmRemovePhysicalMemory 。 這會應採用可讓您查詢記憶體範圍的 API 是否存在的原因。 MmAddPhysicalMemory 已在 RC1 和 MmRemovePhysicalMemory RC2 中新增。 這兩個函式也是 ntddk 中的原型。

其他新的 RC2 Api 是什麼? PoShutdownBugCheckRtlInvertRangeListPoShutdownBugCheck 讓您損毀系統,並執行與電源相關的動作,例如暫停。 它會用於 RC2 核心的幾個地方。 範圍是一般的起始端規格,由許多核心 Api (用於管理、排序和逐一查看)提供使用者定義和支援。 「Win2K 隨插即用」資源 arbiters 使用它們來追蹤和組織硬體資源需求。 雖然未記載範圍清單 Api,但它們的所有原型和結構定義都包含在 ntddk 中,因此您可以使用 API 來管理您自己的起始端導向資料。

在後續的電子報中使用未記載的 Api,持續掌握更多樂趣。

軟體發展99東部

8-12 年11月華盛頓特區的軟體發展1999東部 Coast 版。 最後一天有三個討論:適用于開發人員的 Windows 2000 的新功能、Windows NT/2000 藍螢幕和 Windows NT/2000 網路內。 此外,Dave 索羅門群島的作者是 Windows NT 第2版和鄰近的 (他在 Danbury、CT) ,以及 Windows NT/2K 內部的資料表中,都只需要20分鐘的時間。 我們將會一起回答您最棘手的 Windows NT/2K 內部問題。 比方說,您可以說出電子報,我將為您提供免費的系統內部 t 恤!

造訪軟體發展網站,網址是: http://www.sdexpo.com.

使用 DISKEDIT

您可能不知道,但是有一個磁片編輯器公用程式適用于 Windows NT 以適用于 DOS 的早期諾頓磁片編輯樣式。 更多,此公用程式瞭解 FAT 和 NTFS,也是免費的。 Microsoft 明顯地在 Windows NT 4.0 Service Pack 4 CD 上的檔案系統團隊,必須是內部偵錯工具的工具,而不小心地寄出 DiskEdit。 DiskEdit 有一個什麼嗎介面,會進行一份簡單的檔,但我將開始簡單的逐步解說。 我將把重點放在使用 DiskEdit 來解決 NTFS 檔案系統格式,因為 DiskEdit 是我知道 NTFS 的唯一公開可用工具。

首先,您必須從 Service Pack 4 (SP4) CD-ROM 取得 DiskEdit。 只要將它從 \i386 目錄複寫到硬碟就可以了。 如果您想要在 Win2K 下使用 DiskEdit,您必須為其建立私人目錄,並將下列 Dll 從 SP4 winnt\system32 目錄複寫 (或 SP4 CD) 至與 DiskEdit: IFSUTIL.DLL、ULIB.DLL、UNTFS.DLL 和 UFAT.DLL 相同的目錄。 現在您可以開始 DiskEdit。

針對此逐步解說,請在 NTFS 磁片磁碟機的根目錄建立名為 TEMP 的目錄,並在命令提示字元視窗中輸入下列命令,並以 TEMP 作為目前的目錄來建立名為 OUT.TXT 的檔案: echo hello > out.txt 。 選擇檔案以在 DiskEdit 中選取新的 OUT.TXT 檔案的磁片磁碟機 |開啟功能表項目,然後在產生之對話方塊的 [磁片區名稱] 欄位中輸入磁碟機號。 請確定您包含冒號,例如 " d: "。 幾乎所有 DiskEdit 的功能都需要您開啟磁片磁碟機。

我們會從 NTFS 磁片磁碟機的根目錄開始找出 OUT.TXT 檔案。 選取 [讀取] 功能表項目 |NTFS 檔案記錄:開啟對話方塊,讓您只要輸入其號碼就能查看任何 MFT 記錄專案。 每個 NTFS 磁片磁碟機的前16個 MFT 記錄專案會保留下來,並對應到預先定義的 NTFS 中繼資料檔案。 以下是數個指派 (請注意,DiskEdit 會將所有輸入以十六進位) 來解讀:

        0: $MFT - MFT
        1: $MFTMirr - MFT Mirror (a copy of the first 4 entries of the MFT)
        2: $LogFile - NTFS LogFile
        3: $Volume - volume information file
        4: $AttrDef - the attribute definition file
        5: . - the root directory
        6: $Bitmap - the volume allocation bitmap file
        7: $Boot - the boot sector
        8: $BadClus - the bad cluster database file
        9: $Secure - new to SP4, the security attribute database
        A: $UpCase - the lower-to-upper case mapping file
        B: $Extend - new to Win2K, the directory that contains
                             the reparse, object ID, and quota metadata files
        C-F: Unused as of NTFS v5.0 (Win2K)

請繼續查看其中一些 MFT 專案。 您將會開始注意到常見的主題:它們都包含屬性 $INDEX_ROOT ,例如、 $FILE_NAME$DATA 。 它是儲存在檔案特定資料的屬性中。 當屬性資料是較小的 NTFS 時,會將檔案的 MFT 記錄中的資料儲存為「常駐」資料,而當資料很大時,NTFS 會將磁片上叢集的資料以「非常駐」資料的形式儲存在磁片上。

現在輸入 "5" 作為檔案名,您將會看到根目錄的檔案。 我們要查看根目錄中的檔案和目錄,方法是查看目錄的屬性,也就是 $INDEX_ALLOCATION 記錄目錄內容之目錄的特定屬性。 若要這樣做,請選取 [讀取] |NTFS [屬性] 功能表項目,它會開啟另一個對話方塊。 DiskEdit 區分大小寫,因此請依照我列出的方式精確地輸入下列內容:

        Base Frs Number: 5

基底 Frs (基底檔案記錄區段) 是另一個適用于 MFT 號碼的名稱。 您可以輸入5來指定您要從根目錄讀取屬性。

        Attribute Type: $INDEX_ALLOCATION

這表示 DiskEdit 您想要讀取目錄的內容資料。 我建議使用下拉式功能表來選擇您想要的屬性,因為 DiskEdit 非常挑剔輸入屬性類型的方式。

        Attribute Name: $I30

如果您 $INDEX_ALLOCATION 看到根目錄的屬性,您會看到 " $I30 " 在其 "" 行中列為其名稱 Type code, name ,所以您輸入的名稱會是屬性名稱。

按下 [確定],您會看到屬性內容的十六進位傾印。 我們想要查看更智慧型的內容,因此請選取 [View] |NTFS 索引緩衝區功能表項目。 您將會看到目錄的內容清單。 滾動清單,直到您看到名稱為 "" 的專案為止 TEMP 。 如果您沒有看到它,則專案可能位於根目錄的 $INDEX_ROOT 屬性中,也就是與目錄相關聯的屬性類型,而且一律會將其值儲存在 MFT 記錄中。 將根專案和設定項目編制索引,形成 B + 樹狀結構來儲存目錄的所有專案。 如果您需要查看屬性,您必須 $INDEX_ROOT 遵循相同的步驟來查看該屬性,就像是用來查看 $INDEX_ALLOCATION 屬性一樣。 當您流覽索引緩衝區時,您可能會遇到雙行的星號:這些會指定一個索引緩衝區的結尾和下一個索引緩衝區的開頭。

找到臨時目錄的專案之後,請記下其檔案參考 (FRS) 。 選取 [讀取] |NTFS 檔案記錄,並輸入暫存的 FRS。 現在您要查看臨時目錄的 MFT 記錄。 我們想要尋找 OUT.TXT 檔案,因此我們必須查看 TEMP 的內容以找出它。 查看 $INDEX_ALLOCATION TEMP 目錄的 (或 $INDEX_ROOT) 屬性、切換為以 NTFS 索引緩衝區的形式來查看資料,然後找出 OUT.TXT 的檔案。 請記得在 [屬性選取] 對話方塊中輸入暫存的 FRS 作為基底 FRS 號碼。 如果您剛才建立了 TEMP,它只會有 $INDEX_ROOT (如果您錯了某個東西,就會有很高興看到 DiskEdit 的空白錯誤對話方塊) 。

當您找到 OUT.TXT 並判斷其 FRS 使用 Read |NTFS 檔案記錄以查看其 MFT 專案。 向下滾動直到您找到 $DATA 屬性為止。 您現在正在查看 OUT.TXT 資料的位置。 由於我們製作了小型檔案,因此資料會儲存在 MFT 記錄中。 如果您嘗試使用 DiskEdit 來查看 OUT.TXT 的 $DATA 屬性,您將不會看到任何內容,因為 DiskEdit 不會正確地顯示其中一個 DiskEdit 的許多 bug) 的 (資料。 因此,請將 largish (> 2kb) 文本檔案複製到 \TEMP\ OUT.TXT 。 現在您可以使用下列兩種方式之一來查看 OUT.TXT 資料:您可以檢查資料 (的開頭,或使用 Read 將資料連續儲存在磁片) 上NTFS 叢集,並指定您在 OUT.TXT 的屬性「範圍清單」中看到的第一個「lcn」值 $DATA ; 或者,您可以使用 Read |NTFS 屬性,並輸入 " $DATA " 做為屬性類型,而不是 (,因為在中,不會將任何內容輸入至該欄位) 作為屬性名稱。

範圍清單描述屬性非常駐資料的位置。 長度最多可達16個叢集的每個連續資料區塊會以一個範圍清單專案來描述。 範圍清單專案會指定虛擬叢集編號 (vcn) 、邏輯群集編號 (lcn) 和執行長度。 Vcn 是檔案中的叢集,由專案所描述的資料開始。 Lcn 指定將資料儲存在磁片上的邏輯叢集,而 runlength 是位於該位置之屬性資料的位元組數目 (請記住,DiskEdit 會顯示) 的十六進位值。

我逐步解說了如何掃描目錄內容,藉以尋找 OUT.TXT 檔案的 MFT 記錄。 但有一個快捷方式:選取 [破解] |NTFS 路徑,然後輸入 TEMP\OUT.TXT。 您將會看到 OUT.TXT 的 FRS,並且可以使用 Read |NTFS 檔案記錄。

這會帶您前往 DiskEdit 入門的結尾。 我鼓勵您流覽您的 FAT 或 NTFS 磁片磁碟機,以使用這個好用的工具。 您很不太可能發現使用 DiskEdit 來修改資料,以使您的磁片無法正常運作,但如果您想知道 NTFS 磁片 (格式,) 這是最適合用來進行調查的工具。

即將推出的內容

WIN2K API 爆炸

雖然只有4個新的已匯出核心模式 Api 會在 RC2 中進行首次推出,但 Microsoft 從 NT 4.0 (在核心和核心 Win32 Dll 中)引進的 Api 總數已分裂。 下個月,我將告訴您有多少新的 Api,以及它們出現的位置,同時不幸的是,對於他們的 alt. linux Usenet rants 來說,膨脹怪物了一些絕佳看完本文。


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

Ottoh 發行于1999年10月20日星期三,7:10 PM

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

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

系統內部電子報第1部,第5期

http://www.sysinternals.com
著作權 1999 Mark Russinovich