[ニュースレター アーカイブ ^] [< Vol. 1、No. 3] [Vol. 1、No. 5 >]
システム内部ニュースレター Vol. 1、No. 4
http://www.sysinternals.com
Copyright (C) 1999 Mark Russinovich
1999 年 8 月 5 日 - 本号では:
Systems Internals の新機能
- Portmon v3.0
- Frob v1.5
- ListDLLs v2.1
- 新しい BOOT.INI オプション
- PsList v1.0
- 8 月 "NT Internals"
- 新しくない内容
内部ニュース
- 再修正: システム ファイル保護
- Win2K RC1 DDK がリリースされました
- Win2K AWE API
- WinDev '99 West
近日公開予定
- SP4 のドキュメントに記載されていない DiskEdit ツール
スポンサー: WINTERNALS SOFTWARE
Systems Internals ニュースレターは、http://www.winternals.com. の Web で Winternals Software によって後援されています。 Winternals Software は、Windows NT/2K 用の高度なシステム ツールの主要な開発者およびプロバイダーです。 Winternals Software 製品には、FAT32 for Windows NT 4.0、ERD コマンダー (Windows NT 向けブート ディスク機能)、NTRecover などがあります。
Winternals ソフトウェアは、最新のシステム回復ユーティリティである Remote Recover のリリースを発表しました。 Remote Recover を使用すると、社内のどこからでも TCP/IP 経由で起動できないコンピューターのドライブにアクセスできます。 NT または Win9x システムをオフラインで維持しているドライバー、ファイル システム、構成の問題をリモートで修正することで、時間とコストを節約できます。 http://www.sysinternals.com/rrecover.htm で無料の読み取り専用試用版をダウンロードし、http://www.winternals.com. で読み取り/書き込みバージョンを購入します
皆さん、こんにちは。
Systems Internals ニュースレター第 4 版へようこそ。 現在、ニュースレターの購読者数は 7,000 人です。
最後のニュースレターで、私は Windows 2000(Win2K)AWE API を取り上げることをお伝えしました。 私は、AWE が「Address Windowing Extensions」の略称であることを指摘しました (Windows の世界に入ったばかりの方向けに、API は「アプリケーション プログラミング インターフェイス」を意味します)。 Microsoft のハードウェア開発者向け Web サイトのこのページでは、次のように説明しています: http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. しかし、読者の Laxmikant Gunda 氏から、Microsoft の Web サイト http://www.microsoft.com/windows/server/News/fromMS/intelpae.asp 別の URL があること (AWE は "Advanced Windowing Extensions" API と指定されています) を指摘されました。 明らかに、API (このニュースレターで後述) のコンテキストでは、"Advanced" よりも "Address" の方が理にかなっているため、ニュース ページの技術資料を消化する際に、目をくらまされたマーケティング ライターがいたのでしょう。
Microsoft のテクニカル カバレッジでは、この混乱が以前に発生しているのを目にしてきました。 最近では、Win2K Installable File Systems (IFS) Kit のベータ 3 リリースのセットアップ プログラムが、スプラッシュ スクリーンで "Internal File Systems Kit" のセットアップとして発表されました。 IFS の 'I' は常に「Installable」の略で、「Internal」はここではあまり意味をなさないため (誤ってキットの非公開バージョンをリリースしない限り)、翻訳で内容が台無しになった (またはセットアップ コーダーにファイル システム チーム メンバーを手元に置かず、最良の推測を使用した) 別のケースであると推測しています。
要点を教えてください。 遅かれ早かれ、頭字語の氾濫が起こり、開発者やマーケティング担当者が異なるテクノロジーを説明するのに、誤って同じ 3 文字の頭字語を使い始めるようになります。 Microsoft の IIS (インターネット インフォメーション サーバー) グループのユーザーが AIE ("高度な ISAPI 拡張機能" - ISAPI はインターネット サーバー API の略) という新しい API に名前を付け、MTS (Microsoft Transaction Server) グループの誰かが別の AIE (Atomic Interface Exchange) を生み出すでしょう。 いつの日か、マーケティング担当者や技術ライターが IIS チームから「AIE」を引用した技術論文を手渡された時、データベースとファイル システムの違いが分からず、それが「高度なインターネット エクスプローラー」の略であると推測するようになるでしょう。
私も他の職場で頭字語の混乱を目にしてきました。 最近の Windows NT Magazine の記事のシリアル ポートと並列ポートに関する説明では、そのテキストに "COM ポート" という用語が使用されました。 コピー エディターが最終パスを通過し、記事が公開された後、そのフレーズは "COM (コンポーネント オブジェクト モデル) ポート" になりました。
いつもどおり、このニュース レターに興味を持ってくれそうな友達に伝えてください。
ありがとうございます。
-Mark
Systems Internals の新機能
PORTMON V3.0
Portmon は、その 3.0 リリースで大きく強化されました。 Portmon は、Windows 95/98/NT/2K 用のシリアルおよびパラレル ポート監視アプリケーションです。 バージョン 3.0 には、次の内容が導入されています。
- 高度なフィルター処理と出力強調表示機能
- リモート システム上のシリアルおよびパラレル ポート アクティビティーを監視する機能
- ファイルへのログと印刷のサポート
- クリップボードの統合
- ログに記録する読み取り/書き込みデータの量を指定できる設定
http://www.sysinternals.com/portmon.htm. での Portmon v3.0 のダウンロード
FROB V1.5
Windows NT 4.0 Server は、NT スレッド スケジューラがスレッドに与える Quantum 値 (ターン) の長さを管理者が制御する機能はありません。 Windows 4.0 ワークステーションでは、コントロール パネルのシステム アプレットに [パフォーマンス] タブがあり、フォアグラウンド スレッドの Quantum 値ブーストを指定できるスライダーがあります (スライダーはサーバーにもありますが、何もしません)。 Quantum 値が短いほど、通常、アプリケーションはユーザー入力に対する応答性が高くなりますが、Quantum 値が長くなると非対話型サーバー アプリケーションの実行専用システムに適しています。
Systems Internals の Frob プログラムでは、ワークステーションとサーバーの両方で Quantum 値の長さをきめ細かく制御でき、システムで実行するワークロードに合わせて Quantum 値を調整できます。 ただし、Frob は NT カーネル内部の設定を変更するため、新しい Service Pack ごとに動作するように更新する必要があります。 Frob v1.5 が利用可能になり、Service Pack 5 との互換性が提供されます。
http://www.sysinternals.com/ntfrob.htm. で Frob v1.5 をダウンロードできます
LISTDLLS V2.1
ListDLLs は、プロセスで読み込んだ DLL の詳細なバージョン情報を示すコマンド ライン ユーティリティです。 ListDLLs は、読み込まれた DLL のファイル パスに対応するディスク上のファイルからバージョン情報を抽出し、ドキュメントに記載されていないインターフェイスを使用してパス名を取得します。 DLL ファイルがアプリケーションで既に読み込まれた後にディスク上で更新される場合があります。その場合、ListDLLs に間違ったバージョン情報が表示されます。
ListDLLs v2.1 は、DLL のディスク上のバージョンと読み込まれたバージョンの間に違いがあることを認識し、その出力の違いにフラグを設定します。 ListDLL に不一致がある場合は、ディスク上のファイルと読み込まれたファイルのリンク時間が出力されます。 実行可能ファイルと DLL ファイルのリンク時間は、NT がパッケージ化するために使用するポータブル実行可能ファイル (PE) 形式のヘッダーにあります。
http://www.sysinternals.com/listdlls.htm. で ListDLLs v2.1 をダウンロードする
新しい BOOT.INI オプション
Win2K ベータ 3 には、3 つの新しい BOOT.INI スイッチが導入されています。 3 つはすべて Intel Physical Address Extensions (PAE) に関連しており、これは Intel が x86 システムが最大 64 GB の物理メモリを処理できるように Pentium Pro と共に導入されたテクノロジです。 従来、x86 システムは 4 GB の物理メモリしか処理できませんが、PAE と 450NX チップセットでは、この障壁が破られます。 Win2K は、PAE を利用する最初の Microsoft オペレーティング システムです (Sun Solaris 7 と SCO UnixWare 7 は既に PAE をサポートしています)。 実際には、ntkrnlpa.exe という名前の Win2K カーネルの特別なビルドがあり、サポートが組み込まれています。 Win2K ブート ローダーである NTLDR は、システムが 4 GB を超えるメモリを処理でき、その量があるかどうかに基づいて、標準カーネル、ntoskrnl.exe、または PAE 対応のいずれかを読み込む役割があります。
3 つの新しい BOOT.INI スイッチはすべて、大容量メモリ システム (4 GB を超えるシステム) で動作するように設計されたデバイス ドライバーのデバッグを目的としています。 1 つ目の /PAE では、コンピューターに 4 GB を超えるメモリがない場合でも、NTLDR でカーネルの PAE バージョンを読み込みます。 2 つ目の /NOPAE では、NTLDR に標準カーネルを強制的に読み込ませます。 最後に、/NOLOWMEM スイッチには Win2K カーネルがあり、4 GB を超える物理メモリのみが使用されます。 これにより、Win2K で使用されるすべての物理アドレスは、それらを表現するために 32 ビットを超える必要が生じ、大きな物理アドレスのデバイス ドライバー処理が実行されます。
http://www.sysinternals.com/bootini.htm. で利用可能な BOOT.INI スイッチの最も完全なリストを見つける
PSLIST V1.0
UNIX のほとんどのフレーバーには、管理者が CPU とメモリの統計情報の処理を一覧表示するために使用する 'ps' というコマンド ライン ツールが付属しています。 NT には同等の GUI ベースのツールであるタスク マネージャーがありますが、NT にはコマンドライン バージョンはありません。 Windows NT リソース キットには、pstat と pumon という 2 つのコマンド ラインの 'ps' のようなツールが含まれています。 PsList には、pstat と pumon で使用できる情報を組み合わせて表示しますが、どちらの Resource Kit ツールにもない、PsList を使用してリモート システムのプロセス情報を照会できる機能があります。
PsList には、プロセス CPU、メモリ、またはスレッドの統計情報を表示できるいくつかのフラグと、クエリを実行する別の NT コンピューターを指定できるスイッチが用意されています。 PsList は、NT の組み込みのパフォーマンス カウンターを使用して情報を取得し、NT 3.51、4.0、Win2K で動作します。
http://www.sysinternals.com/pslist.htm. での PsList のダウンロード
8 月の "NT Internals"
Windows NT Magazine 8 月号の "NT Internals" コラムは、"Inside Win2K の信頼性の強化、パート 1" です。 この 3 部構成の最初のシリーズでは、システムが起動不能になった後に管理者がシステムを起動できるようにサポートすることを目的とした Win2K 機能について説明します。 これには、"セーフ モード" の起動と回復コンソールが含まれます。
8 月上旬の時点で、Windows NT Magazine のオンライン版の記事にはサブスクライバーのみがアクセスでき、新しい号ごとに記事がオンラインに投稿されます。 サブスクライブしていない場合は、http://www.sysinternals.com/publ.htm のサブスクリプション リンクから、Systems Internals サブスクリプションの割引を受けてください。
新しくない内容
まだ友達を怖がらせていない場合は、システム内部のブルースクリーン スクリーン セーバーを確認します。 バージョン 2.0 では、Win2K システムで実行すると、Win2K バージョンの死のブルー スクリーン (BSOD) と Win2K スタートアップ シーケンスが表示されます。 ブルースクリーン スクリーン セーバーが最近、ジフ・デイヴィスのソフトウェア ライブラリから最高評価の 5 つ星を獲得したことを誇りに思います。
http://www.sysinternals.com/bluescrn.htm. でブルースクリーン スクリーン セーバー v2.0 をダウンロードする
内部ニュース
再修正: システム ファイル保護
最新のニュースレターでは、Win2K のシステム ファイル保護 (SFP) を使用すると、Service Pack (SP) やホットフィックスなどのアプリケーションで、SfcTerminateWatcherThread という名前の関数 SFP エクスポートを呼び出してシステム ファイルを更新できます。 SFP はその関数をエクスポートしますが、SP とホットフィックスはシステム ファイルの更新時に関数を使用しません。 代わりに、既存のシステム ファイルを Microsoft のデジタル署名を得たシステム ファイルに置き換えるため、システム ファイルを更新できます。 SFP は更新プログラムを検出しますが、SFP が新しいファイルがデジタル署名されていることを確認するため、更新プログラムを実行できます。 SFP カバレッジに関するもう 1 つの修正は、Win2K ベータ 3 Microsoft が SFP の名前を Windows ファイル保護 (WFP) に変更したことです。
Windows NT Magazine の 9 月号では、WFP と Microsoft のデジタル ファイル署名について詳しく説明した NT Internals のコラムと "Inside Win2K の信頼性の強化、パート 2" が掲載されているため、ぜひご覧ください。
Win2K RC1 DDK がリリースされました
Microsoft の Device Driver Development Kit (DDK) の Win2K RC1 リリースは、http://www.microsoft.com/ddk/ddk2kRC1.htm. で今すぐダウンロードできます キットを無料でダウンロードすることも、オンラインでドキュメントを参照することもできます。
WIN2K AWE API
AWE API については、このニュースレターの概要で既に説明していますが、Microsoft の Web ページを参照して、http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. で詳細を確認できます。 物理メモリが 4 GB を超えるシステムでは、Win2K の PAE 対応カーネル (ntkrnlpa.exe) は、アプリケーションに変更を加えることなく、すべてのコンピューターの物理メモリを利用できます。 Win2K Advanced Server は最大 8 GB の物理メモリを使用し、Win2K Datacenter Server は最大 64 GB の物理メモリを使用します。
大容量メモリ システム上の各アプリケーションは、その破棄時に最大 2 GB の仮想メモリ (/3 GB BOOT.INI スイッチが指定されている場合は 3 GB) がありますが、実行中のすべてのアプリケーションに割り当てられた物理メモリの合計は、物理メモリの量と等しい場合があります。 さらに、Win2K では、ファイル システム キャッシュには最大 960 MB の仮想メモリが割り当てられますが、キャッシュされたファイル データの量は、キャッシュに割り当てられる物理メモリが 960 MB をはるかに超える可能性があります。
AWE API は、個々のアプリケーションに物理メモリを直接制御する機能を提供し、仮想アドレス空間のサイズで暗黙的に示される 2 GB または 3 GB の制限を超えます。 AWE API の背後にある基本的な考え方は、アプリケーションが仮想アドレス空間の一部を物理メモリへの "ウィンドウ" として指定することです。 次に、物理メモリのチャンクを割り当てます。 アプリケーションが割り当てることができる物理メモリの量の上限は、基本的に、システム上の物理メモリの量から、カーネル、デバイス ドライバー、および AWE API を使用するその他のアプリケーションによって既に割り当てられているページ以外のメモリを差し引いた値です。 アプリケーションは、割り当てた物理メモリの一部にアクセスする場合、そのメモリを仮想アドレス ウィンドウにマッピングします。 したがって、アプリケーションが特定のマッピングでアクセスできる物理メモリの量は、そのアプリケーションで予約したウィンドウのサイズによって制限されます。 最後に、アプリケーションが物理メモリを使い終わると、単にメモリが解放され、作成した仮想アドレス ウィンドウが閉じられます (割り当て解除されます)。
これらのアクションに対応する API は、kernel32.dll でエクスポートされ、次のようになります。
- アプリケーションは、MEM_PHYSICAL フラグと MEM_RESERVE フラグを使用して VirtualAlloc を呼び出して仮想アドレス ウィンドウを作成します
- AllocateUserPhysicalPages は、アプリケーションの物理メモリを割り当てます
- アプリケーションは MapUserPhysicalPages を使用して、物理メモリの一部をウィンドウにマッピングします
- FreeUserPhysicalPages は、アプリケーションが割り当てた物理メモリを解放します
アプリケーションが複数 GB のメモリを直接操作できることは、データベース サーバー、メール サーバー、Web サーバー、財務分析、科学的アプリケーションなど、メモリ集約型のプログラムにとって大きな利点です。
4 GB を超える物理メモリを使用する機能は、Win2K の特定のバージョンでのみ許可されていますが、AWE API はすべてのバージョンに存在します。 つまり、たとえば 4 GB のメモリを備えた Win2K Professional システム上の AWE API では、メモリ集約型のアプリケーションで、物理メモリ内の 2 GB または 3 GB を超えるデータを管理する機能が提供されることを意味します。
AWE API には、kernel32.dll がユーザー モード API をベースとする同等のカーネル モード インターフェイスがあります。 ドライバーは、MmAllocatePagesForMdl を使用して物理メモリを割り当てることができます。これは、AllocateUserPhysicalPages と同等のカーネル モードです。 この関数のプロトタイプは Win2K DDK ntddk.h ファイルにありますが、ドキュメントには記載されていません。 そのプロトタイプは次のとおりです。
NTKERNELAPI
PMDL
MmAllocatePagesForMdl (
IN PHYSICAL_ADDRESS LowAddress,
IN PHYSICAL_ADDRESS HighAddress,
IN PHYSICAL_ADDRESS SkipBytes,
IN ULONG TotalBytes
);
LowAddress
は割り当てる物理アドレスが許容される最小値、HighAddress が最大値です。 SkipBytes は、カーネルが LowAddress
以上で、物理メモリの割り当てを開始するアドレス以下で解放する必要があるバイト数です。 TotalBytes
は、ドライバーが割り当てるバイト数です。 関数の戻り値は MDL で、ゼロ以外の場合は、カーネルがドライバーに指定した物理メモリを記述します。 メモリの一部にアクセスするには、ドライバーは、返された MDL から物理メモリの適切な部分を記述するサブ MDL を作成する必要があります。 ドライバーがサブ MDL で記述された物理メモリにアクセスする場合は、MmGetSystemAddressForMdlSafe
を使用してサブ MDL をマッピングする必要があります。
ドライバーは、FreeUserPhysicalPages
と同等のカーネル モードである MmFreePagesFromMdl
を使用して、MmAllocatePagesForMdl
で割り当てた物理メモリを解放します。 この関数は、ntddk.h でもプロトタイプ化されています。
NTKERNELAPI
VOID
MmFreePagesFromMdl (
IN PMDL MemoryDescriptorList
);
MmFreePagesFromMdl
は MDL を解放しないため、MmAllocatePagesForMdl
が ExFreePool を呼び出して返した MDL を解放する責任はドライバーにあることに注意してください。
WinDev '99 West
Windows 開発者向けのプレミア会議の 1999 西海岸版は、間もなく開催されます。 WinDev '99 West は、カリフォルニア州サンタ クララ マリオットで 9 月 13 日から 18 日に行われます。 Jeff Richter、Jeff Prosise、Don Box など、Windows 開発の多くのビッグ ネームが登壇します。 私は、デバイス ドライバーのトラックに Jamie Hanrahan と Brian Catlin と一緒に参加します。プレゼンテーションには、NT 内部に関する 1 日のチュートリアルと、Windows NT/2K ファイル システム ドライバーの作成に関するチュートリアルと、高度なデバイス ドライバー開発の問題に関するチュートリアルがあります。 ぜひご参加ください。
http://www.butrain.bu.edu/windev/. で WinDev West Web ページにアクセスする
近日公開予定
NT 4.0 SP4 DISKEDIT
Windows NT 4.0 Service Pack 4 の CD には、多くのユーザーが気づかなかった可能性がある、便利なユーティリティ (DiskEdit) が付属しています。 また、ツールはハード ディスクにインストールされず、ドキュメントも付属していません。 これは、Microsoft ファイル システム開発者によって内部的に使用されるツールであり、CD に誤って同梱されたものにほぼ間違いありません。 DiskEdit は、Windows NT 用のノートン ユーティリティ ディスク編集型ツールを見逃した方や、NTFS と FAT のディスク上のデータ構造を調べるだけのユーザーにとって宝物です。 次回は、DiskEdit の使用方法について説明します。
Systems Internals ニュースレターをお読みいただき、ありがとうございました。
公開日: 1999 年 8 月 5 日 (木) 午後 7:13 by ottoh