[ニュースレター アーカイブ ^] [< Vol. 1、No. 2] [Vol. 1、No. 4 >]

Systems Internals ニュースレター Vol. 1、No. 3

http://www.sysinternals.com
Copyright (C) 1999 Mark Russinovich


1999 年 6 月 19 日 - 本号の内容:

  1. Systems Internals の新機能

    • SDelete v1.1
    • Strings v2.0
    • LoggedOn
    • Filemon v4.13
    • DebugView/EE v3.1
    • "NT ネットワークの内部"
    • 6 月の "NT Internals"
    • NTFrob の更新状態
    • 新しくない内容
  2. 内部ニュース

    • Numega DriverStudio のリリース
    • 6 月プラットフォーム SDK が利用可能
    • Win2K System File Protector (SFP)
    • ネットワークから開かれたファイルを閉じる
  3. 近日公開予定

    • 素晴らしい "AWE" Win2K API

スポンサー: 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 Software は、Regmon および Filemon Enterprise Edition のリリースを発表しました。 これらのユーティリティは、フリーウェアの Filemon および Regmon のすべての機能を提供し、次の強力な機能を追加します。

  • リモート Win9x/NT システムで実行されているレジストリおよびファイル システムのアクティビティを表示する
  • リアルタイムで出力をファイルに記録する
  • 出力行をクリップボードにコピーする
  • フィルターに一致する行を強調表示する
  • 異なるコンピューターからの出力を同時に表示する
  • プリンターで出力を直接印刷する
  • 過去 5 回のフィルター選択を簡単に呼び出す

注文および価格情報については、http://www.winternals.com. をご覧ください。


皆さん、こんにちは。

Systems Internals ニュースレター第 3 版へようこそ。 現在、ニュースレターの購読者数は 4,400 人です。

前回のニュースレターでは、Microsoft が Windows 2000 (Win2K) に向けてどのようにしてブルー スクリーンを排除したかについて注目してもらいました。 新しい Win2K ブルー スクリーンには、以前のバージョンの Windows NT のブルー スクリーンには存在していた、読み込まれたドライバーおよびスタック ダンプの情報がありません。 私は、Microsoft が削除した情報が有益だと思うか、また、そのままにしておいたほうがよかったかを尋ねました。 回答はほぼ満場一致で、すべての回答者 (1 人を除く) が、Microsoft がなぜ分母の最小公倍数を目指すのかと疑問を抱いていました。 Tony Lavinio から送られてきた典型的な意見を紹介します。

つまり、これは、Microsoft が決定の根拠としている顧客の反応です。

"私は理解できないので、適切ではないはずです。表示しないようにしてください。"

なぜ彼らは、画面表示全体を削除し、"プラグを抜き、プラグを再挿入して、最初からやり直してください" というメッセージを表示しないのでしょうか? なぜ彼らは、状況が悪化した理由について私たちが持つ数少ない手がかりの 1 つを取り去ろうとするのでしょうか?

少なくとも以前は、ウイルス スキャナー、デフラグ ツール、またはバグの多いドライバーの場合、検索を開始するポイントがありました。

NT の展開が広範囲に行われている中で、このツールが 10,000 人に 1 人しか役に立たないとしても、それだけの価値はあります。 その理由は、特に私たち 0.01% が他の 99.99% のかなりの部分をサポートしているためです。

唯一の反対者は誰だったのでしょうか? ブルー スクリーン クラッシュ レポートを担当しているのが Microsoft の人物であることは、それほど驚くべきことではありません。 Tony の推測を裏付ける、この変更に対する彼らの見解を紹介します。

私は MS の PSS の NT セットアップ グループ (ブルースクリーンのトラブルシューティングを扱う) で仕事をしています。 私が話をする人の大多数は、4.0 ブルー スクリーン上の情報をどうすればよいのかわかっていないと断言できます。 もしあなたが、スタック中に NAIFILTR.SYS を含む stop 0xA を見つけたら、ウイルス対策を更新する必要があることがわかると思いますが、ほとんどの人はそのような関連付けを行わないし、実際には stop コードとパラメータが有用であることに気づいていません。 ブルー スクリーンのデータを解釈する方法を理解している人はおそらくイライラしていると思いますが、残念ながら少数派です。

前回のニュースレターで述べたように、Microsoft は読み込まれたドライバーのリストとスタック ダンプを維持したまま、NT 4.0 ブルー スクリーンを今後も継続すべきだと思います。 また、情報を減らすのではなく、より多く提供することで、ブルー スクリーンを改善できると思います。 たとえば、クラッシュ時に現在実行中のプロセスの名前を表示しないのはなぜでしょうか? あるいは、より多くの BugCheck 呼び出しで、障害が発生したアドレスだけでなく、障害のあるアドレスを渡すようにしますか? PSS がブルー スクリーンについて何も知らない多くの顧客に遭遇した大きな理由は、Microsoft がブルー スクリーンの読み方について、ドキュメントを一度も作成しなかったことにあります。 したがって、ユーザーの無知について少なくとも一部は Microsoft 自身に責任があります。

ブルー スクリーンがどのように発生するか、および (NT 4) ブルー スクリーンに何が表示されるかについて詳しく知りたい場合は、Windows NT Magazine の 1997 年 12 月の記事「ブルー スクリーンの内部」をご覧ください (http://www.sysinternals.com/publ.htm). からオンライン版にアクセスできます)。

いつもどおり、このニュース レターに興味を持ってくれそうな友達に伝えてください。

ありがとうございます。

-Mark

Systems Internals の新機能

SDelete v1.1

前回のニュースレターでは、ファイル データを回復不能な形で破壊したり、以前に削除したデータをディスクの空き領域から消去したりするために使用できる安全性の高い削除ユーティリティである SDelete を紹介しました。 SDelete の最初のバージョンでは、それを使用して削除したファイルの名前を安全に上書きできませんでした。 ファイルの名前から機密情報が明らかになることが多く、SDelete を使用してそのような名前のファイルを削除すると、その情報が見える状態のままになる可能性があります。 この抜け穴に対処するために、ファイル データだけでなくファイル名も安全に上書きするように SDelete を更新しました。 SDelete は、ファイル名の各文字を "A" から "Z" までの連続するアルファベットの文字に置き換えて、ファイル名を 26 回変更することにより、ファイル名を安全に削除します。

完全なソース コードを含む SDelete v1.1 は http://www.sysinternals.com/sdelete.htm. からダウンロードしてください。

Strings v2.0

実行可能ファイルや DLL には、文書化されていないレジストリ値を明らかにする文字列や、文書化されていない機能を示唆するエラー メッセージが埋め込まれていることがよくあります。 Windows NT/2K システムのほとんどの DLL および EXE は Unicode 文字列を使用して作成されていますが、残念ながら、Grep などの従来の文字列検索ツールで抽出されるのは ASCII 文字列のみです。 私はバイナリ ファイルで ASCII または Unicode 文字列をスキャンするために、数年前に Strings ユーティリティの最初のバージョンを作成しました。 私は、「NT Internals」の調査で、Microsoft によって文書化されていないことを解明するために、これを何度も使用してきました。

ただし、Strings には常に大きな欠陥がありました。それは、一度に複数のファイルをスキャンできるように、ファイル指定子としてワイルドカード式を使用できないことです。 たとえば、レジストリ値の名前を指定したときに、どのシステム DLL がその値を参照しているかを簡単に判断できるように、この機能が必要でした。

ついに、Strings を更新して、完全なワイルドカードのファイル名を指定できるようにし、さらに、ディレクトリを再帰するようにしました。 ワイルドカード式を指定すると、Strings は文字列が見つかったファイルの名前を出力行の先頭に自動的に追加するため、次のようなことができます。

strings *.dll | grep SafeBoot

この式の出力を確認することで (Grep のバージョンは Windows NT リソース キット Posix ユーティリティで入手可能)、どのシステム DLL が Windows 2000 上の SafeBoot レジストリ キーをチェックしているかがわかります。 Strings は、Win2K システム DLL、ドライバー、および実行可能ファイルで使用される新しいレジストリ値を確認するのにも非常に役に立ちます。 たとえば、Strings を使用して、NT 4.0 SP4 TCP/IP スタック (tcpip.sys) で参照されているレジストリ値と Windows 2000 TCPIP スタックによって参照されているレジストリ値を比較しました。 以下は、Win2K の TCPIP スタックに新しく追加された値の約半分です (これらはすべて HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters の下にあると仮定しています)。

ReservedPorts
DefaultGatewayMetric
InterfaceMetric
TempLeaseExpirationTime
TempIpAddress
TempMask
DhcpDefaultGateway
TcpWindowSize
TcpInitialRTT
TcpDelAckTicks
EnableTrafficControl
EnableTOSetting
MaxNormLookupMemory
MaxSendSegments
MaxFreeConnections
MaxFreeTWTcbs
FFPFastForwardingCacheSize

私は Microsoft がスタックの新しい構成パラメータをすべて文書化するのを期待していません。

Strings v2.0 は http://www.sysinternals.com/misc.htm. からダウンロードしてください。

LoggedOn

リモート NT システムに誰がログオンしているかを知りたいと思ったことはありませんか? もしそうなら、LoggedOn をダウンロードしてください。 LoggedOn は、どのユーザーがローカル コンピューターまたはリモート コンピューターに対話的にログオンしているか、またどのユーザーがリソース接続 (ファイルまたはプリンター共有など) 経由でログオンしているかを示すシンプルなユーティリティです。 LogedOn 出力の例を次に示します。

C:\>loggedon main

LoggedOn v1.0 - Logon Session Displayer
Copyright (C) 1999 Mark Russinovich
Systems Internals - http://www.sysinternals.com

Users logged on locally:
MAIN\Administrator

Users logged on via resource shares:
MAINDOM\MARK

Windows NT と Win2K には、コンピューターにログオンしているユーザーを特定するためにアプリケーションが使用できる API は用意されていませんが、LoggedOn はシステムの HKEY\USERS レジストリ ツリーに読み込まれるレジストリ キーを調べることでこれを判断します。 対話的にログオンしているユーザーのプロファイルはこのキーに読み込まれ、プロファイルにはプロファイルに関連付けられているユーザー アカウントの SID (セキュリティ ID) を識別する名前が付けられます。 たとえば、Regedit を開いて HKEY_USERS の下を見ると、次のような内容が表示されます。

HKEY_USERS\.DEFAULT\S-1-5-21-734676951-386466661-1233803906-500

ここでは、1 人のユーザーのみが対話的にログオンしています。 RID (相対 ID) は 500 であり、これは NT が管理者アカウント用に予約している RID であるため、ローカル管理者またはドメイン管理者のどちらであるかがわかります。

LogedOn は、あるシステムが別のシステムのレジストリを参照するのを許可する API を使用することで、リモート コンピューターの HKEY_USERS キーを読み取り、見つけた SID をアカウント名に変換します。 リソース共有を介してログオンしているユーザーを確認するために、LoggedOn は NET API を使用します。これは SDK に文書化されています。 Net コマンド ライン ツールは、NET API を広範に利用しています。 LoggedOn がリモート システムのレジストリにアクセスする副作用として、LoggedOn を実行したアカウントが、LoggedOn の出力では常にリソース共有を介してリモート システムにログオンしているように表示されます。

完全なソース コードを含む LoggedOn は http://www.sysinternals.com/misc.htm. からダウンロードできます。

Filemon v4.13

Filemon v4.13 がリリースされました。これは、Windows NT のフィルター ドライバーへの変更を反映しており、誤って 4.12 ドライバーに導入してしまったバグを修正する更新プログラムです。 4.13 フィルター ドライバーには、次の変更があります。

  • リソース同期の種類を使用して、内部データ構造の一部を保護します
  • 新しい Win2K IRP である IRP_MJ_PNP_POWER を処理します

リソース同期の種類は、Windows NT 4.0 と Win2K デバイス ドライバー開発キット (DDK) の両方で事実上文書化されていません。 設計ガイドではリソースについて触れられてさえいませんが、その機能については、リファレンスの「エグゼクティブ サポート ルーチン」セクションに記載されています。 リソースは、異なるスレッドで同時に読み取ることができますが、更新中にスレッドによる排他アクセスを必要とするデータ構造を保護するための便利なメカニズムです。 したがって、これらはリーダー/ライター ロックであり、リーダーによる共有アクセスとライターによる排他アクセスのために取得されます。 ファイル システム ドライバーはリソースを広範囲に利用するため、必要に応じてそれらを使用するために Filemon を更新するのが適切だと感じました。

Filemon v4.13 は、新しい IRP_MJ_PNP_POWER IRP も処理するため、Win2K で実行する場合に、電源とプラグ アンド プレイに対応したフィルター ドライバーになります。 ファイル システム フィルター ドライバーがこの種類の IRP を処理する場合の唯一の要件は、フィルターが接続されているファイル システム デバイスに渡すことです。

完全なソース コードを含む Filemon v4.13 は http://www.sysinternals.com/filemon.htm. からダウンロードできます。

DebugView/EE v3.1

DebugView/EE は、Win95、Win98、WinNT、および Win2K の Win32 プログラムまたはカーネル モード デバイス ドライバーによって生成されたローカルまたはリモートのデバッグ出力をキャプチャするために使用できる、汎用性の高いデバッグ出力モニターです。 ただし、ユーザーがデバイス ドライバーを使用するとクラッシュが発生する環境では、その有用性は制限されています。クラッシュ前に DebugView がキャプチャしたすべてのデバッグ出力は失われます。 DebugView/EE の最新バージョンは、Windows NT/2K でのこの問題に対処しています。 ユーザーがデバイス ドライバーによって生成されたカーネル モードの出力をキャプチャしていて、クラッシュ ダンプを保存するように NT を構成している場合、DebugView/EE はシステムの再起動時にダンプ ファイルからデバッグ出力を抽出できます。 DebugView/EE の [Edit]、[Process Crash Dump] メニューを選択して、デバッグ出力のメモリ ダンプをスキャンします。 この機能を使用すると、ユーザーは、クラッシュの直前までにドライバーが生成したデバッグ出力を含むテキスト ファイルを自分に送ることができます。

DebugView/EE v3.1 は http://www.sysinternals.com/debugview.htm. からダウンロードしてください。

"NT ネットワークの内部"

1999 年 3 月の Windows NT Magazineの「NT Internals」コラムがオンラインになりました。 どのような API が実装されているか、プロトコル スタックがどのように API とやり取りしているか、ハードウェア ベンダーがどのようにネットワーク ドライバーを作成してプロトコル ドライバーと連携させているかなど、NT のネットワーク アーキテクチャを隅から隅まで説明します。 また、逆シリアル化された NDIS や ATM のサポートなど、Win2K ネットワークのいくつかの新機能についても説明しています。

「NT ネットワークの内部」およびその他の過去の「NT Internals」コラムを http://www.sysinternals.com/publ.htm. からオンラインでご覧いただけます。

6 月の "NT Internals"

Windows NT Magazine コラムの 6 月の連載は「EFS の内部、パート 1」です。 この記事では、Microsoft の暗号化ファイル システム (EFS) のアーキテクチャについて説明し、EFS がファイルを暗号化するときに従う手順について詳しく解説します。 EFS は Win2K NTFS ドライブに透過的な暗号化機能を提供します。Microsoft は、NTFSDOS ツールがセキュリティを無視して NTFS ファイルを読み取る機能に対処するためにこれを特別に開発しました。 このコラムは 3 か月以内にオンラインで公開される予定です。

2 つ前のニュースレターで、暗号化されたファイルのバックアップと復元に必要な EFS API が文書化されていないことについてお話しました。 残念ながら、これらの API は MSDN の現在のエディションにはまだ記載されていません。 ただし、Microsoft が "Microsoft 社外秘" と記されたドキュメントをパートナーやバックアップ ソフトウェア ベンダーに送付していると聞いています。 また、Microsoft のファイル システム プログラム マネージャーである David Golds は、最近ダラスで開催された Microsoft TechEd カンファレンスで、Win2K のファイル システム拡張機能に関する講演を行いました。 プレゼンテーションのスライドは、http://www.teched99.com/slides/1-337.ppt からオンラインで見ることができますが、その中で彼は、バックアップ API はドキュメントに記載されていないが、ドキュメントが欲しい場合は要求できると述べています。 残念ながら、彼のメール アドレスはスライドに記載されていません。

Windows NT Magazine の購読情報については、http://www.winntmag.com にアクセスしてください。

NTFrob の更新状態

NTFrob は、数年前にリリースされたユーティリティで、NT 4.0 上でフォアグラウンドおよびバックグラウンド プロセスのクォンタムの長さを正確に構成できるようにします。 NTFrob は NT カーネル内部のデータ構造を変更するため、サービス パックにきわめて固有です。 NT 4.0 Service Pack 5 がリリースされてから、SP 5 の更新である NTFrob v1.5 をいつリリースするのかという問い合わせが殺到しています。 答えとしては、更新は近日中に予定されています。Microsoft が MSDN サブスクライバーに SP5 (デバッグ情報を含む) を提供するのを待っているところです。 新しいサービス パックに対応する NTFrob を更新するには、デバッグ情報が必要です。

NTFrob for NT 4 SP0-4 は http://www.sysinternals.com/ntfrob.htm. からダウンロードできます。

新しくない内容

数か月前に、System Internals で Win9x/NT/2K シリアルおよびパラレル ポート モニターをリリースしました。 Portmon を使用すると、アプリケーションがシリアルおよびパラレル ポートとどのように対話しているか、どのようなデータを送受信しているのかを含めて、正確に確認できます。 これを使用して、ダイヤルアップ セッション、LAPLINK シリアル接続、またはプリンター アクティビティを監視できます。 Portmon は大ヒットしており、最近では Ziff-Davis のソフトウェア ライブラリで最高評価である 5 つ星を獲得しました。 5 つ星を獲得した他の Systems Internals ツールには、Regmon、NTFSDOS、BlueSave があります。

Portmon は http://www.sysinternals.com/portmon.htm. からダウンロードしてください。

内部ニュース

Numega DriverStudio のリリース

CompuWare の NuMega Labs は、Windows 9x/NT/2K デバイス ドライバー開発者向けの包括的なツールキットである DriverStudio をリリースしました。 これには、SoftICE 4.0、BoundsChecker for Drivers、VtoolsD、DriverAgent、DriverWorks、FieldAgent for Drivers が含まれており、将来的には TrueTime for Drivers と TrueCoverage for Drivers が追加される予定です。 前回のニュースレターで述べたように、これは必須の開発者ツールキットです。 NuMega は、"Driver Central" というデバイス ドライバー開発者向け Web サイトも立ち上げました - http://www.numega.com/drivercentral/default.asp.。

プラットフォーム SDK の 6 月のリリース

Microsoft のプラットフォーム SDK の 6 月のリリースは、http://www.msdn.microsoft.com/developer/sdk/platform.asp. から今すぐダウンロードできます。

Win2K System File Protector (SFP)

NT システム管理者とユーザーの最大の不満の 1 つは、NT の "DLL 地獄" です。 DLL 地獄は、多くのアプリケーションがバンドルされているバージョンで主要なシステム DLL を更新した結果発生します。 通常、アプリケーションが正しく動作することを保証するためにそれを行いますが、DLL を置き換えると、互換性のないバージョンのインストールや、古いバージョンへの DLL の "更新"によって、他のアプリケーションが壊れてしまうことが多々あります。

Microsoft は、System File Protector (SFP) の導入により、Win2K の DLL バージョン管理の問題に対処しました。 実際は、その名前は間もなく Windows File Protector (WFP) に変更されますが、Beta 3 (ビルド 2031) の時点ではまだ SFP です。 SFP は、システムの起動時に Winlogon プロセス (winlogon.exe) によって読み込まれる sfc.dll という名前の DLL に実装されています。 SFP には、約 3,000 の標準 Win2K システム DLL、実行可能ファイル (.exe)、インストール ファイル (.inf)、ドライバ (.sys)、およびフォント (.fon) ファイルの組み込みリストが含まれており、これらは 30 から 40 の異なるディレクトリにインストールされます。 SFP は初期化時に、保護するファイルを含む各ディレクトリに対して変更通知ディレクトリ操作が実行されます。 ファイルの改ざんを検出すると、ダイアログ ボックスをポップアップして現在のユーザーに通知し、イベント ログにイベントを書き込み、変更されたファイルを %systemroot%\system32\dllcache に保存されているバックアップと置き換えます。 SFP が dllcache 内で検索するバックアップ ファイルがないか、改ざんされている場合、SFP は Win2K インストール メディアから新しいコピーを取得します。

SFP がどのファイルを保護しているかを確認するには、このニュースレターの他の箇所で紹介した Strings ユーティリティを使用して、%systemroot%\system32\sfc.dll に埋め込まれている Unicode 文字列名をダンプできます。

システム ファイルを更新できるユーティリティは、hotfix.exe、サービス パック (update.exe)、アップグレード インストール、Win2K Update サービスのみです。 これらのツールはどのようにして SFP をバイパスするのでしょうか? エクスポートされた sfc.dll 関数 SfcTerminateWatcherThread を呼び出すことで一時的に無効にし、dllcache サブディレクトリに更新を反映させます。 Win2K では、すべてのシステム ファイルが Microsoft によってデジタル署名される必要があるため、通常、システム ファイルを独自の任意のバージョンで更新することはできないことに注意してください。

Win32 プログラムでは、FindFirstChangeNotification および FindNextChangeNotification Win32 API を使用して、ディレクトリ内の変更を監視できます。 ただし、これらの API は、何かが変更されたことをアプリケーションに通知するだけです。何が変更されたかをアプリケーションに正確に伝えるわけではありません。 したがって、アプリケーションはディレクトリ全体をスキャンして、どのファイルまたはサブディレクトリが変更された可能性があるかを判断する必要があります。 SFP は NT ネイティブ API を使用して変更通知要求を実行し、NT は監視対象ディレクトリで変更されたファイルまたはサブディレクトリを正確に伝えます。 SFP が使用する関数は NtNotifyChangeDirectoryFile という名前ですが、NT のネイティブ API の 90% と同様、文書化されていません。 近い将来、Systems Internals で NtNotifyChangeDirectoryFile の使用方法を示すアプレットが公開される予定です。

9 月の「NT Internals」コラム、「Win2K の信頼性強化の内部、パート 2」では、SFP について詳しく説明しています。

ネットワークから開かれたファイルを閉じる

Systems Internals の訪問者から最もよく寄せられる質問の 1 つに、"ユーザーがネットワークから開いているファイルを閉じるにはどうすればよいですか?" というものがあります。ユーザーがファイルまたはディレクトリをリモートで開いている場合、ファイルまたはディレクトリをローカルで削除したり、名前変更したり、更新したりすることはできません。 似たような質問に、"ユーザーがネットワークから開いたファイルを確認するにはどうすればよいですか?" というものがあります。これらの質問はどちらも、Windows NT/2K に付属している Net コマンド ライン ユーティリティで解決できます。 どのファイルが開かれているかを確認するには、"net file" と入力するだけです。 開いているファイル名、対応するファイル名識別子、およびファイルを開いているユーザーの名前の一覧が表示されます。 開いているファイルの 1 つを閉じるには、「net file <id> /close」と入力します。 ローカルで開かれたファイルを表示するには、NTHandle または HandleEx ツールを使用できます。

Net コマンドのファイルを表示および閉じる機能の基礎となる API は、プラットフォーム SDK および MSDN ライブラリに文書化されています。 開いているファイルを列挙するには NetFileEnum API を、開いているファイルを閉じるには NetFileClose API を使用します。 API を使用すると、実際には、リモート サーバー上の開いているファイルを列挙できます。これは Net コマンドでは許可されていません。

NTHandle は http://www.sysinternals.com/nthandle.htm. で入手できます。 HandleEx は http://www.sysinternals.com/handleex.htm. で入手できます。

近日公開予定

素晴らしい "AWE" Win2K API

Win2K では、AWE (Address Window Extensions) と呼ばれる新しい API が導入され、メモリを大量に使用するアプリケーションは、大容量の物理 RAM (Windows NT アプリケーションが仮想アドレス空間でアドレス指定できる RAM の上限である 3GB 以上) に直接アクセスして管理できるようになりました。 実際、x86 システムに PSE (Page Size Extensions) と 4 GB を超える RAM が搭載されている場合、アプリケーションは AWE を使用してコンピューターのすべてのメモリを利用できます。 したがって、この API は、Web サーバーやデータベース サーバーなどのメモリ不足のアプリケーションに最適です。 次回は、Win32 アプリケーションとデバイス ドライバーの両方から API を使用する方法について説明します。

メモリを大量に消費するアプリケーションを話題にしていますが、ここでは、ファイルをキャッシュするアプリケーション (Web サーバーなど) を作成する人へのヒントを紹介します。 Windows NT キャッシュ マネージャーは、キャッシュ メモリを "ビュー" と呼ばれる 256 KB スロットに分割します。 サイズが 256 KB 未満のファイルがキャッシュされた場合でも、キャッシュ マネージャーはファイルに 256 KB スロット全体を割り当てる必要があります。これは、キャッシュの仮想メモリの一部が無駄になることを意味しています。 したがって、一般に、サイズが 256 KB 未満のファイルは独自のアプリケーションの仮想メモリにキャッシュし、サイズが 256 KB を超えるファイルはファイル システムに依存してキャッシュする方がパフォーマンス効率が高くなります。 IIS 5.0 では、このトリックが使用されています。


Systems Internals ニュースレターをお読みいただき、ありがとうございました。

公開日: 1999 年 6 月 19 日 (土) 午後 7:14 by ottoh

[ニュースレター アーカイブ ^] [< Vol. 1、No. 2] [Vol. 1、No. 4 >]