Бөлісу құралы:


[Архив бюллетеней ^] [ Том 1, Число 4] [<Том 2, Число 1 >]

Информационный бюллетень внутренних систем 1, номер 5

http://www.sysinternals.com
Авторские права 1999 Марк Руссинович


12 октября 1999 г. — в этой проблеме:

  1. НОВЫЕ ВОЗМОЖНОСТИ ВНУТРЕННИХ СИСТЕМ

    • NTFS для Windows 98/NTFSDOS Professional
    • DebugView версии 3.21
    • Filemon и Regmon версии 4.21
    • Diskmon версии 1.1
    • Внутренние системы в www.microsoft.com
    • Октябрь "NT Internals"
    • Не так-новые вещи
  2. ВНУТРЕННИЕ НОВОСТИ

    • Выпущена версия Win2K RC2 DDK
    • Новые API ядра RC Win2K
    • Разработка программного обеспечения "99 восточная часть"
    • Использование DiskEdit
  3. ЧТО ПРОИСХОДИТ

    • Взрыв API Win2K

СПОНСОР: WINTERNALS SOFTWARE

Информационный бюллетень по внутренним системам спонсируется По Winternals, в Интернете http://www.winternals.com. Winternals Software является ведущим разработчиком и поставщиком расширенных системных средств для Windows NT/2K. Продукты Winternals Software включают FAT32 для Windows NT 4.0, ERD Commander (возможность загрузки диска для Windows NT) и NTRecover.

Удаленное восстановление программного обеспечения Winternals позволяет получить доступ к дискам неизменяемого компьютера через TCP/IP из любого места в вашей организации. Экономите время и поддержку долларов, удаленно исправляя драйвер, файловую систему и проблемы конфигурации, которые хранят системы NT или Win9x вне линии. Вы даже можете выполнять удаленные операции chkdsk или секционирования с помощью удаленного восстановления, что делает его универсальным средством аварийного восстановления. Скачайте бесплатную пробную версию http://www.sysinternals.com/rrecover.htmтолько для чтения и приобретите версию для чтения и записи по адресу http://www.winternals.com.

Здравствуйте!

Добро пожаловать в информационный бюллетень System Internals. В настоящее время бюллетень имеет 10 000 подписчиков.

Выпуск Windows 2000 (Win2K), кажется, следует шаблону стать неизбежным, а затем отталкиваться. Последние слухи о том, что она станет доступной в феврале. И единственная информация о дате корабля Win2K находится в слухах, так как Корпорация Майкрософт даже не говорит изготовителям оборудования или партнерам, когда она будет отправляться. Ну, они: "Он будет отправляться, когда это готово" (я не буду заставить датированные говорить о продаже вина на вас здесь).

Раздражающая вещь о Корпорации Майкрософт заключается в том, что пресса, которую они генерируют о своих продуктах, всегда делает это кажется, как будто они находятся на грани доставки, даже если продукты являются парными. Последним примером является тысячелетие, преемник Windows 98. Корпорация Майкрософт не слишком давно сделала большой толчок в прессе, как если бы это был готовый продукт, готовый преобразовать все ваши домашние устройства в интеллектуальные устройства. Ирония заключается в том, что статьи вскоре позже показали, что Корпорация Майкрософт еще не полностью определила продукт, и его, вероятно, будет год или более, прежде чем мы увидим его на полках магазина.

Этот шаблон не новый, и я не первый, чтобы написать об этом. Но это не останавливает меня от спекулирования в том, сколько из видимых пил является тщательно оркестрированным планом, и сколько является результатом полного отсутствия субъектов программного проектирования. Если вы покупаете в бывший угол, как теории заговора делают, Корпорация Майкрософт блестяще заглушает конкуренцию, затухая клиентов с этим невероятным продуктом, который, если они ждут всего немного дольше, сделает их ожидание стоит и обнажет любую необходимость обратиться к продукту, отличному от Майкрософт. Последний угол говорит, что Корпорация Майкрософт никогда не будет изучать процесс разработки программного обеспечения и постоянно недооценивает инженерные усилия и переоценивает качество бета-кода.

Я сидеть на заборе, к какой теории я писаю. Я на самом деле думаю, что шаблон должен быть немного обоих. Я думаю, что это помогло Корпорации Майкрософт действовать так, как Active Directory уже два года. Конечно, есть клиенты, которые повернулись бы к Службам каталогов Novell давно, если бы они знали заранее, как долго им придется ждать Win2K. С другой стороны, Корпорация Майкрософт получила повторяющиеся черные глаза в прессе от многообещающей доставки продуктов, а затем задержки. Я думаю, что управление Майкрософт просто не понимает, насколько трудно воспроизвести, изолировать и исправить, что последние 5% ошибок.

Говоря о методиках разработки Корпорации Майкрософт, их схема именования предварительной версии является одной из самых смутных я видел. Их бета-версии действительно альфа- и их кандидаты на выпуск на самом деле бета-версии. И даже использование этих определений является растянутой: корпорация Майкрософт не имеет проблем с разрыва функций из своего программного обеспечения в переходе от одного кандидата выпуска к следующему или даже добавления новых. Они сделали это с NT 4.0, и они делают это с Win2K. Эта практика, безусловно, не ускоряет цикл выпуска.

Так будет ли в феврале корабль Win2K? Я думаю, что мы видим свет в конце туннеля. В конце концов, есть только горстка новых API в RC2...

Как продолжение последнего бюллетеня, где я говорил о акрониме путаницы в Корпорации Майкрософт, читатель Джордж Янчук нашел еще один пример. В разделе под названием "Расширение до мейнфрейма транзакций-обработки мира", статья http://msdn.microsoft.com/library/backgrnd/html/msdn_windnapps.htm ссылается на CISC — сложные вычисления наборов инструкций. Очевидно, что любой пользователь, знакомый с приложениями мейнфрейма, что предполагаемое акроним — CICS — система управления информацией о клиентах. Обратная последовательность букв и вы находитесь в совершенно другой области технологий.

Как обычно, пожалуйста, передайте бюллетень друзьям, что вы думаете, может найти его интересно.

Спасибо!

-Метка

НОВЫЕ ВОЗМОЖНОСТИ ВНУТРЕННИХ СИСТЕМ

NTFS ДЛЯ WINDOWS 98/NTFSDOS PROFESSIONAL

Мы, наконец, сделали это. С тех пор, как Брайс и я выпустили NTFSDOS 1.0 еще весной 1996 года, мы были в поиске святой граил файловой системы Windows: доступ на чтение и запись для NTFS из Windows 9x и DOS. Мы давно определили, что обратная инженерия формата NTFS и написание драйвера для этой сложной файловой системы журнала будет трудным и рискованным предложением. Даже если один точно определяет каждый нюанс формата, обновление формата, например NTFS Win2K версии 5.0, требует совершенно новых усилий по обратной инженерии и разработке. Кроме того, проверка правильности драйвера файловой системы для формата как сложного, так как NTFS является сложным предложением.

Так что мы обманули.

NTFS для Windows 98 предоставляет полный доступ на чтение и запись к дискам NTFS из Windows 95 или Windows 98, а NTFSDOS Профессиональный предоставляет полный доступ на чтение и запись NTFS из DOS. Ни NTFS для Windows 98, ни NTFSDOS Professional не имеют никаких знаний о формате файловой системы NTFS. Скорее, они полагаются на драйвер NTFS из установки Windows NT или Windows 2000 для реализации этих знаний. Обе служебные программы используют ту же базу кода, которая служит оболочкой среды для драйвера файловой системы NTFS. NTFS для Windows 98 предоставляет интерфейс API файловой системы Windows 9x над NTFS и службами дисков Windows 9x ниже NTFS. Интерфейс NTFS для Windows 98 представляет собой собственную среду NTFS Windows NT/2K, в комплекте с IRPs, диспетчером ввода-вывода, диспетчером кэша, устройствами с дисками в стиле NT и другими подсистемами NT/2K, с которыми взаимодействует NTFS.

NTFSDOS Professional работает так же, как NTFS для Windows 98, за исключением того, что он интерфейсирует NTFS со службами DOS выше и BIOS Прерывание 13 дисков ниже. Чтобы помочь создать среду NT/2K, мы опираемся на многие функции в NTOSKRNL, nt/2K-файл ядра. Обе служебные программы загружают NTOSKRNL вместе с NTFS, чтобы NTFS мог напрямую использовать собственные службы ядра.

У нас было так много удовольствия построить среду NTFS, что мы пошли еще один шаг: мы сделали то же самое с программой CHkdsk во время загрузки NT, Autochk. NTFSDOS Профессиональный и NTFS для Windows 98 поставляется с служебной программой NTFS chkdsk с именем NTFSCHK. NTFSCHK работает с тем же субъектом, что и оболочка файловой системы NTFS, в которой она создает среду NT-like для программы Autochk, чтобы autochk работал в Windows 95/98 и DOS. Результатом этой сложной работы является полная поддержка чтения и записи NTFS для Windows 95/98 и DOS.

Вы можете скачать бесплатную версию NTFS только для чтения для Windows 98 http://www.sysinternals.com/ntfs98.htm и бесплатную версию NTFSDOS Professional только для чтения. http://www.sysinternalscom/ntfspro.htm. Вы можете приобрести полные версии для чтения и записи обоих инструментов в Winternals Software, http://www.winternals.com.

DEBUGVIEW версии 3.21

DebugView — это монитор вывода отладки, который записывает выходные данные ядра и Win32 в Windows 95, Windows 98, NT 4.0 и Windows 2000. Он имеет расширенные возможности фильтрации, выделения и ведения журнала, а также может записывать выходные данные отладки из системы в сети. В последнем выпуске 3.21 представлена возможность отслеживать 16-разрядные выходные данные OutputDebugString в Windows 95 и Windows 98.

Вы можете скачать DebugView версии 3.21 по адресу http://www.sysinternals.com/dbgview.htm.

FILEMON И REGMON ВЕРСИИ 4.21

Filemon и Regmon — это файловая система и программы шпионажа реестра для Windows 95, 98, NT 4.0 и Win2K. Они продолжают развиваться с новыми функциями удобства использования и с выпуском 4.21 (Filemon и Regmon синхронизированы номера версий) они вводят более расширенную фильтрацию с последними списками фильтров, возможность определять фильтр выделения (с настраиваемыми цветами даже), настраиваемый шрифт, поддержка буфера обмена и более совместимые с CUI горячие ключи. Исходный код драйвера также был переработан и включает более надежную проверку параметров в функциях интерфейса GUI.

Скачайте файловыймон версии 4.21 и http://www.sysinternals.com/filemon.htm Regmon версии 4.21 по адресу http://www.sysinternals.com/regmon.htm.

DISKMON версии 1.1

Diskmon — это средство, которое отслеживает и отображает логическое и физическое действие диска. Версия 1.1 обновляет Diskmon для работы с Windows 2000 и предоставляет новые улучшения удобства использования. Кроме того, Diskmon теперь интерпретирует большое количество кодов операций ввода-вывода и дискового ввода-вывода, преобразовыв их шестнадцатеричные коды в текстовые представления в окне вывода Diskmon.

Diskmon версии 1.1 не только работает в качестве монитора диска, но и можно использовать его в качестве программного освещения диска. При настройке диска в режиме дискового режима Diskmon минимизирует себя в области системы в виде светлого цвета, когда есть доступ на чтение диска и красный цвет при наличии доступа к записи на диск.

Скачать Diskmon версии 1.1 по адресу http://www.sysinternals.com/diskmon.htm.

ВНУТРЕННИЕ СИСТЕМЫ В WWW.MICROSOFT.COM

Учитывая историю внутренних систем (ранее NT Internals), это большая лестность действительно, что Корпорация Майкрософт ссылается на sysinternals.com как ресурс для своих клиентов. Существует растущее количество статей Базы знаний Майкрософт, которые указывают на служебные программы внутренних систем. Ниже приведены последние версии:

  • Q183060 INFO: руководство по устранению неполадок для 80004005 и других сообщений об ошибках http://support.microsoft.com/support/kb/articles/Q183/0/60.ASP
    В этой статье описано, как использовать Filemon для проверки причины ошибок доступа к данным в OLE DB, объектах данных ActiveX и удаленной службе данных.

  • Q196453. Устранение ошибок запуска NTVDM и WOW http://support.microsoft.com/support/kb/articles/Q196/4/53.ASP
    Эта статья также указывает на Filemon в качестве средства для определения отсутствующих файлов, вызывающих ошибки запуска NTVDM (среда совместимости Win16/DOS в NT).

  • Q216368 — PRB: нарушение доступа во время установки приложения при использовании файла http://support.microsoft.com/support/kb/articles/Q216/3/68.ASP
    HandleEx и DLLView — это рекомендуемые средства для определения причины возникновения ошибки во время выполнения программ установки, созданных мастером установки Visual Basic и мастером развертывания.

  • Q232830 — HOWTO: определение владения дескриптором файлов http://support.microsoft.com/support/kb/articles/Q232/8/30.ASP
    HandleEx снова получает ссылку в этой статье, которая описывает, какой процесс открыт в файле или каталоге.

ОКТЯБРЬ "NT INTERNALS"

Мой столбец "NT Internals" в октябрьском выпуске Windows NT Magazine — "Внутри усовершенствований надежности Win2K, часть 3". Третий в трех частях серии описывает две мощные функции Win2K, которые помогают разработчикам и администраторам определить драйверы ошибок: память ядра, защищенной записью, и средство проверки драйверов.

Российские читатели теперь могут читать мои статьи на родном языке. Перейдите к российскому выпуску Windows NT Magazine http://www.osp.ru/win2000/ и ознакомьтесь с первым переведенным столбцом NT Internals, внутри процесса загрузки (http://www.osp.ru/win2000/1999/10/59.htm). Спасибо Ивану Рузанову за то, что я знаю об этом.

По состоянию на начало августа в строке статей Windows NT Magazine доступны только подписчикам, а статьи публикуются в строке с каждой новой проблемой. Если вы еще не подписаны, перейдите по ссылке http://www.sysinternals.com/publ.htm подписки, чтобы получить скидку на подписку System Internals.

НЕ ТАК-НОВЫЕ ВЕЩИ

WinObj — это мощный инструмент для изучения пространства имен объектов Windows NT/2K. Пространство имен объекта — это одно из трех пространств имен в NT/2K: пространство имен объекта, пространство имен реестра и пространство имен файловой системы. Вы получите доступ к пространствам имен реестра и файловой системы через объекты в пространстве имен объекта. Например, когда программа Win32 открывает раздел HKEY_LOCAL_MACHINE\Software\Microsoft реестра, ADVAPI32.DLL библиотека преобразует имя в имя \Registry\Machine\Software\Microsoft перед вызовом службы NtCreateKeyядра. При просмотре корневого пространства имен объекта в WinObj вы увидите объект типа "key" с именем Registry. Имя реестра соответствует первому компоненту имени ключа, поэтому диспетчер объектов NT/2K передает остальную часть имени \Machine\Software\Microsoftв подсистему, определяющую ключевой объект. Подсистема ядра Configuration Manager поддерживает объекты реестра и ключей, поэтому анализирует остальную часть имени, чтобы найти нужный ключ.

Вы можете изучить пространство имен объекта и просмотреть или задать свойства безопасности объектов с помощью WinObj. Скачать Winobj по адресу http://www.sysinternals.com/winobj.htm. Я обсуждаю пространство имен диспетчера объектов и WinObj в столбце "Внутренние элементы NT" за октябрь 1997 года "Внутри диспетчера объектов". Перейдите по ссылке на локальную версию столбца по адресу http://www.sysinternals.com/publ.htm.

ВНУТРЕННИЕ НОВОСТИ

ВЫПУЩЕНО WIN2K RC2 DDK

Теперь вы можете скачать выпуск Win2K RC2 пакета средств разработки драйверов устройств Майкрософт (DDK) http://www.microsoft.com/ddk/ddkRC2.htm. Вы можете скачать комплект бесплатно или просмотреть документацию в строке.

НОВЫЕ API ЯДРА WIN2K RC2

Все выглядит, чтобы стабилизировать в последнем ядре Win2K. Существует только четыре новых, экспортированных API ядра в RC3, а не около десятка появившихся (и еще половина десятков, которые исчезли) переход с бета-версии 3 на RC1. Некоторые из новых функций несколько интересны, поэтому я решил задокументировать их для вас. Первое — MmGetSystemRoutineAddressэто, и хотя он не был задокументирован его прототип включен в файл заголовка ntddk.h DDK RC2:

NTKERNELAPI
PVOID
MmGetSystemRoutineAddress (
    IN PUNICODE_STRING SystemRoutineName
    );

Его использование так же просто, как выглядит. Передайте имя функции, которая находится в NTOSKRNL.EXE или HAL.DLL, и вы вернетесь в адрес точки входа. Эта функция фактически бесполезна в первом выпуске Win2K, но может стать очень полезной вниз по дороге, и это функция, которую корпорация Майкрософт должна включить в первый выпуск NT (3.1). Как GetProcAddress и в пользовательском пространстве для приложений Win32, эта функция позволяет драйверу динамически определять доступность API. Если Корпорация Майкрософт добавляет новые API-интерфейсы в пакеты обновления Win2K (и я уверен, что они будут), можно написать драйверы, чтобы воспользоваться преимуществами API, но также выполнить сбой в более ранних версиях Win2K или запустить в режиме, где они не используют API. Ключом к драйверу, который может сделать это, является возможность проверить наличие API после загрузки. Без этой функции драйвер должен статически связываться с функциями, которые он использует, и если функции отсутствуют при загрузке драйвера, то загрузчик ядра сообщает об ошибке уродливой ошибке пользователю и не загружает драйвер.

Второй новый API — это MmGetPhysicalMemoryPages. Опять же, его прототип находится в RC2 ntddk.h, но его не документировано. Его прототип:

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 для обоих BaseAddress и NumberOfBytes. Как MmGetSystemRoutineAddressи, это довольно простой API. Он возвращает вам описание всей физической памяти, о которую знает Win2K. Win2K поддерживает добавление и удаление памяти на лету с MmAddPhysicalMemory помощью API и MmRemovePhysicalMemory api. Это мотивирует причину существования API, которая позволяет запрашивать диапазоны памяти. MmAddPhysicalMemory добавлен в RC1 и MmRemovePhysicalMemory RC2. Обе эти функции также прототипируются в ntddk.h.

Что такое другие новые API-интерфейсы RC2? PoShutdownBugCheck и RtlInvertRangeList. PoShutdownBugCheck позволяет завершить работу системы и выполнить действие, связанное с питанием, например приостановку. Он используется в нескольких местах ядром RC2. Диапазоны — это универсальные начальные спецификации, определяемые пользователем и поддерживаемые рядом API ядра для управления, сортировки и итерации по ним. Арбитеры ресурсов Win2K Plug-and-Play используют их для отслеживания требований к оборудованию и организации ресурсов. Несмотря на то, что API списка диапазонов не документированы, все их прототипы и определения структуры включены в ntddk.h, поэтому вы можете использовать API для управления собственными начальными ориентированными данными.

Следите за тем, чтобы получить больше удовольствия от незарегистрированных API в последующих бюллетенях.

РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 99 EAST

Выпуск 1999 Восточного побережья программного обеспечения проходит в Вашингтоне с 8 по 12 ноября. Я представляю три переговора в последний день: новые возможности Windows 2000 для разработчиков, внутри Windows NT/2000 синий экран и внутри Windows NT/2000 Сети. Кроме того, Дэйв Соломон, автор In Windows NT 2nd Edition и сосед (он живет всего 20 минут от меня, из всех мест, Danbury, CT), и я размещаю Windows NT/2K внутренних внутренних столов. Мы будем вместе отвечать на самые сложные вопросы о внутренних системах Windows NT/2K. Скажи привет и упоминай бюллетень, и я даю вам бесплатные футболки Внутренние системы!

Посетите веб-сайт разработки программного обеспечения на сайте http://www.sdexpo.com.

ИСПОЛЬЗОВАНИЕ DISKEDIT

Возможно, вы не знаете его, но есть служебная программа редактора дисков для Windows NT в стиле почитаемого изменения диска Norton для DOS. Более того, программа понимает FAT и NTFS, и это бесплатно. Корпорация Майкрософт, по-видимому, случайно отправляла DiskEdit, средство, которое должно быть внутренним средством отладки для своих файловых систем, на компакт-диске Windows NT 4.0 с пакетом обновления 4 (SP4). DiskEdit имеет особый интерфейс, который будет принимать небольшой ручной документ, но я собираюсь приступить к работе с простым пошаговым руководством. Я сосредоточусь на использовании DiskEdit для распутки формата файловой системы NTFS, так как DiskEdit является единственным общедоступным инструментом, который я знаю, что понимает NTFS.

Сначала необходимо получить DiskEdit из компакт-диска с пакетом обновления 4 (SP4). Просто скопируйте его из каталога \i386 на жесткий диск. Если вы хотите использовать DiskEdit в Win2K, необходимо создать для него частный каталог и скопировать следующие библиотеки DLL из каталога winnt\system32 (или SP4 CD) в тот же каталог, что и DiskEdit: IFSUTIL.DLL, ULIB.DLL, UNTFS.DLL и UFAT.DLL. Теперь вы можете запустить DiskEdit.

В этом пошаговом руководстве создайте каталог TEMP в корне диска NTFS и создайте файл с именем OUT.TXT в этом каталоге, введя следующую команду в окне командной строки в качестве текущего каталога: echo hello > out.txt Выберите диск с новым файлом OUT.TXT в DiskEdit, выбрав файл |Откройте пункт меню и введите букву диска в поле "Имя тома" результирующего диалогового окна. Убедитесь, что вы включаете двоеточие, например "d:". Практически все функциональные возможности DiskEdit требуют, чтобы вы открыли диск.

Мы найдем файл OUT.TXT, начиная с корневого каталога диска NTFS. Выберите запись меню "Чтение" |Запись файлов NTFS, чтобы открыть диалоговое окно, которое позволяет просматривать любую запись записи MFT только путем ввода его номера. Первые 16 записей MFT каждого диска NTFS зарезервированы и соответствуют предварительно определенным файлам метаданных 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

Base Frs (базовый сегмент записи файлов) — это другое имя номера MFT. Введите значение 5, чтобы указать, что вы хотите прочитать атрибут из корневого каталога.

        Attribute Type: $INDEX_ALLOCATION

Это означает, что DiskEdit требуется считывать данные содержимого каталога. Я рекомендую использовать раскрывающийся меню, чтобы выбрать нужный атрибут, так как DiskEdit очень выбирает способ ввода типа атрибута.

        Attribute Name: $I30

Если вы просматриваете $INDEX_ALLOCATION атрибут корневого каталога, вы увидите, что "$I30" отображается как его имя в строке "Type code, name", поэтому это то, что вы вводите в качестве имени атрибута.

Нажмите кнопку ОК, и вы увидите шестнадцатеричный дамп содержимого атрибута. Мы хотим увидеть что-то более понятное, чтобы выбрать представление|Запись меню буфера индекса NTFS. Вы увидите список содержимого каталога. Прокрутите список, пока не увидите запись с именем "TEMP". Если он не отображается, запись может находиться в атрибуте корневого каталога, тип атрибута также связан с каталогами $INDEX_ROOT и всегда имеет его значение, хранящееся в записи MFT. Корневые записи индекса и записи выделения вместе образуют структуру дерева B+, в котором хранятся все записи каталога. Если вы должны просмотреть $INDEX_ROOT атрибут, выполните те же действия для просмотра этого атрибута, что и для просмотра атрибута $INDEX_ALLOCATION . Прокручивая буфер индекса, вы можете приступить к двойным строкам звездочек: они определяют конец одного буфера индекса и начало следующего.

После того как вы нашли запись каталога TEMP, запишите ссылку на файл (FRS). Выберите "Чтение" |Запись файлов NTFS и введите FRS TEMP. Теперь вы просматриваете запись MFT для каталога TEMP. Мы хотим найти файл OUT.TXT, поэтому нам придется просмотреть содержимое TEMP, чтобы найти его. Просмотрите $INDEX_ALLOCATION атрибут (или $INDEX_ROOT) каталога TEMP, переключитесь на просмотр данных в виде буфера индекса NTFS и найдите файл OUT.TXT. Не забудьте ввести FRS TEMP в качестве базового номера FRS в диалоговом окне выбора атрибутов. Если вы только что создали TEMP, он будет иметь $INDEX_ROOT только (если вы неправильно введете что-то, что вы получите удовольствие от просмотра пустых диалогов ошибок DiskEdit).

Когда вы нашли OUT.TXT и определили его использование FRS с помощью Read|Запись файлов NTFS для просмотра записи MFT. Прокрутите вниз, пока не найдете атрибут $DATA. Теперь вы просматриваете расположение OUT. Данные TXT. Так как мы сделали небольшой файл, данные хранятся в записи MFT. Если вы попытаетесь просмотреть OUT. $DATA Атрибут TXT с помощью DiskEdit вы не увидите ничего, так как DiskEdit неправильно отображает данные резидента (одна из многих ошибок DiskEdit). Поэтому скопируйте в текстовый файл \TEMP\ OUT.TXTlargish (>2 КБ). Теперь вы можете просматривать данные OUT.TXT одним из двух способов: вы можете проверить начало данных (или все из них, если его непрерывно хранится на диске) с помощью read|Кластер NTFS и указание первого значения lcn, которое отображается в OUT. $DATA Атрибут TXT "Список экстентов" или можно использовать read|Атрибут NTFS и введите "$DATA" в качестве типа атрибута и ничего (как не введите ничего в это поле) в качестве имени атрибута.

Списки экстентов описывают расположение данных атрибута, не являющихся резидентами. Каждый непрерывный блок данных длиной до 16 кластеров описывается одной записью списка экстентов. Запись списка экстентов указывает номер виртуального кластера (vcn), номер логического кластера (lcn) и длину выполнения. Vcn — это кластер в файле, с которого начинаются данные, описанные записью. Lcn обозначает логический кластер, где данные хранятся на диске, и runlength — это количество байтов данных атрибутов в этом расположении (помните, diskEdit отображает шестнадцатеричные значения).

Я прошел вам долгий путь поиска записи MFT файла OUT.TXT, показывая, как сканировать содержимое каталога. Но есть ярлык: выберите "Трещина" |Путь NTFS и введите TEMP\OUT.TXT. Вы будете представлены в out. FRS TXT и вы можете использовать read|Запись файлов NTFS, чтобы перейти к ней.

Это приводит меня к концу моего праймера DiskEdit. Я призываю вас играть вокруг с этим nifty инструментом, просматривая диски FAT или NTFS. Его очень маловероятно, что вы когда-либо найдете возможность использовать DiskEdit для изменения данных, чтобы получить диск из пробок, но если вам интересно о формате NTFS на диске (формат FAT хорошо документирован) это идеальный инструмент для изучения.

ЧТО ПРОИСХОДИТ

ВЗРЫВ API WIN2K

Хотя есть только 4 новых экспортированных API режима ядра, которые дебютировали в RC2, число общих API, которые корпорация Майкрософт представила с NT 4.0, как в ядре, так и в основных библиотеках DLL Win32, взорвалось. В следующем месяце я скажу вам точно, сколько новых API есть и где они появились, и, к сожалению, дают людям, которые считают, что Win2K является большие монстр некоторые большие боеприпасы для их alt.advocacy.linux Usenet rants.


Благодарим вас за чтение бюллетеня внутренних систем.

Опубликовано в среду, 20 октября 1999 г. 7:10 вечера по оттох

[Архив бюллетеней ^] [ Том 1, Число 4] [<Том 2, Число 1 >]