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

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

http://www.sysinternals.com
Copyright © 2000 Mark Russinovich


2000 年 3 月 27 日 - 本号では:

  1. 論説

    • David Solomon と「Inside Windows 2000、第 3 版」を共同で執筆する Mark
  2. SYSINTERNALS の新機能

    • PsKill v1.03、PsList v1.12
    • Junction v1.0
    • ElogList v1.0
    • NTFrob v1.6a
    • GetSid v1.1
    • HandleEx v2.23
    • Regmon v4.24、Filemon v4.28
    • AutoRuns v1.0
    • NT 4. ACL エディター
    • SysInternals T シャツ
    • microsoft.com における SysInternals の詳細
    • 3 月/4 月版の INTERNALS コラム
    • 新しくない内容
  3. INTERNALS INFORMATION

    • 再解析ポイント
    • カーネル ハンドル テーブル
    • 1 つ以上のドライバーの起動失敗
    • Microsoft NT 関連の特許
  4. 近日公開予定

    • TdiMon

スポンサー: 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 コマンダー Professional Edition (Windows NT 向けの先進ブート ディスク機能)、Remote Recover などがあります。

Winternals Software の NTFSDOS Professional と NTFS for Win98 では、DOS、Windows 95、Windows 98 から NTFS ドライブへの完全な読み取りと書き込みアクセス権が提供されます。 NTFSDOS Pro は、Windows NT/2K にシングルフロッピーの "ブート ディスク" 機能を提供します。 NTFSDOS Pro を使用すると、バグのあるドライバーを削除したり、ファイルを更新したり、DOS ブート フロッピーから NTFS ドライブの一般的なファイル システム メンテナンスを実行したりすることができます。 NTFS for Win98 では、Windows 95 および Windows 98 から NTFS ドライブに透過的にアクセスできます。 デュアルブート環境の NTFS ドライブ上で NT と Win9x 間でアプリケーションとファイルを簡単に共有します。 どちらのユーティリティにも NTFS Chkdsk 機能が組み込まれています。 NTFSDOS Pro の無料読み取り専用バージョンは http://www.sysinternals.com/ntfspro.htm で入手でき、NTFS for Win98 の無料読み取り専用バージョンは http://www.sysinternals.com/ntfs98.htm. で入手できます。

皆さん、こんにちは。

Systems Internals ニュースレターへようこそ。 現在、ニュースレターの購読者数は 20,000 人です。 このリストは過去 2 か月間で大きく拡大しており、新規購読者数は 6,000 人を超えています。 引き続きお友達にニュースレターをお渡しください。

Dave Solomon (http://www.solsem.com). と「Inside Windows 2000、第 3 版」を共同で執筆していることをお知らせします。 Windows NT の内部に関心がある場合は、ほとんどの場合、Dave の「Inside Windows NT、第 2 版」 (Microsoft Press) をお読みになっています。 Windows 2000 のリリースでは、NT カーネルとその周辺のコンポーネントに多数の大小の変更が加えられ、Dave の書籍に改訂が必要になりました。

多くの意味で、Dave と私は、過去 3 年間、「Inside Windows 2000」に個別に取り組んで、Microsoft が NT 5.0 Beta 1 から Windows 2000 ビルド 2195 までの進化において Windows 2000 に導入した変更に対応してきました。 私は実際にしばらくの間、独自に「Windows NT Internals」を書くことに取り組んできましたが、このような高品質の本の後継版で Dave と協力し、Windows 2000 Internals に関する Microsoft の公式見解を作成するのを手伝うチャンスが訪れたとき、そのチャンスを逃すことはできませんでした。

この本を一緒に作成するという決定はごく最近のものなので、研究、メモ、記事のマージにこの数か月を費やしました。 無関係な理由から、私たちはたまたまコネチカット州の田舎でほんの 20 分の距離に住んでいました。 近くに住んでいたことにより、私たちは互いの家で交互に数日ずつ作業することができ、最近は、Windows 2000 の内部動作の詳細の調査と議論に何日も遅くまで時間を費やしました。 Dave と私が彼の家で作業している様子を http://www.sysinternals.com/inspic.jpg. で見ることができます。

私たちの協力関係の変わった側面は、Dave がWindows 2000 のソースコードに完全にアクセスできるのに対し、私はできないということです (私は Device Driver Kit と Installable File System Kit で一般公開されているもの以外の Windows ソースコードにアクセスできませんでした)。 Dave はソース コード ファイルを調べて物事を把握する一方、私はカスタム逆アセンブラーによって生成されたリストを分析し、NuMega の SoftICE カーネル モード デバッガーを使用してライブ システム上で Windows 2000 の内部構造を調べます。 その結果、私たちはそれぞれ独自の視点を持ち込み、一度ならずそれぞれのリソースを一緒に適用して困難な質問に答えを出してきました。

Windows 2000 の変更を反映するように元の書籍を更新するだけでなく、いくつかの新しい章を含めて、30% 以上のまったく新しいコンテンツも追加しています。 新しい書籍で紹介するトピックには、起動、シャットダウン、クラッシュ、ストレージ管理、サービス内部、レジストリ内部、WMI などがあります。 この改訂には、SysInternals Web サイトのスナップショットと、書籍専用に作成した 6 つのツールを含む CD-ROM も付属しています。 ツールの 1 つである LiveKd を使用すると、ライブ システムで i386kd カーネル デバッガーを実行できます。これにより、シリアル ケーブルや複数のコンピューターを気にすることなくカーネル内部を簡単に調べることができます。 間違いなく、この本は、その前身の既に強固な基盤に重要な技術情報と分析情報を追加します。

この本がいつ入手できるかと言うと、 Dave と私は、Windows 2000 カーネル開発者から最終的な技術レビュー コメントを得るために 4 月 4 日の週に Redmond に向かい、Microsoft Press によると、この本は 7 月に市販されます。 もちろんニュースレターでお知らせします。

ありがとうございます。

-Mark

Systems Internals の新機能

PSKILL V1.03、PSLIST V1.12

PsList は、ローカルまたはリモート システムのアクティブなプロセスに関する詳細情報を表示できるユーティリティであり、PsKill では、ローカルまたはリモート システム上のプロセスを強制終了できます。 これらのユーティリティには同様のコマンド ライン構文があります。ここで、"\\computer" という形式で任意のコンピューター名を指定できます。 ユーザー名をコンピューター名に含める場合、これらのツールを使用すると、ツールを実行しているユーザー アカウントとは異なるユーザー アカウントで指定のコンピューターにログオンできます。 これらの最新バージョンでは、他のユーザーの前でパスワードを実行していて、パスワードを公開したくない環境でパスワードを入力する別の方法が用意されています。 コンピューター アカウントをオプションとして含め、パスワードを省略すると、パスワードの入力を求めるメッセージが表示され、画面に入力内容がエコー出力されません。

PsKill v1.03 のダウンロード: http://www.sysinternals.com/pskill.htm.
PsList v1.12 のダウンロード: http://www.sysinternals.com/pslist.htm.

JUNCTION V1.0

Windows では、シンボリック リンクの形式は、最終的に Windows 2000 NTFS ジャンクションの形式になりました。 ジャンクションはディレクトリのシンボリック リンクであり、Windows 2000 リソース キットには、ジャンクションを作成および削除できるツール linkd が含まれています。 残念ながら、基本的な Windows 2000 のインストールには、ジャンクションを作成するためのツールは含まれていません。プラットフォーム SDK のドキュメントでは、再解析ポイントが十分に文書化されていません。 これらの不備により、Junction を実装する必要があります。これは、ジャンクションを作成するだけでなく、ファイルに対してクエリを実行し、再解析ポイントがある場合はその情報を表示できるようにするツールです。 独自の再解析ポイント ツールを実装したい開発者を支援するために、完全なソース コードを Junction に投稿しました。 ジャンクションと Windows 2000 での実装方法の詳細については、ニュースレターで後述する再解析ポイントに関するセクションを参照してください。

完全なソース コードを含む Junction v1.0 のダウンロード: http://www.sysinternals.com/misc.htm.

ELOGLIST V1.0

Windows 2000 リソース キットには、ローカル コンピューターまたはリモート コンピューター上のイベント ログからレコードをダンプできる、ELogDump という名前のツールが含まれています。 ELogList は ElogDump のクローンであり、オプションのアカウント名とパスワードを指定して、ツールを実行しているアカウントとは異なるアカウントからコンピューターのイベント ログにアクセスできるようにします。 ElogList は、バッチ ファイルからイベント ログをダンプしたり、レコードの保持や分析のためにスプレッドシートにインポートできるテキスト ファイルにイベント ログ レコードをキャプチャしたりする場合に便利です。

ElogList v1.0 のダウンロード: http://www.sysinternals.com/eloglist.htm.

NTFROB V1.6A

NTFrob は、Windows NT スケジューラがスレッドに割り当てるフォアグラウンドとバックグラウンドのQuantum 値 (ターン) を、[システム コントロール パネル] アプレットの [パフォーマンス] タブで可能なものよりも詳細に制御できるアプレットです。 短い Quantum 値を使用すると、対話型アプリケーションの応答性が向上し、長時間実行されるサーバー ワークロードには長い Quantum 値の方が適しています。 NTFrob は、最新リリースのバージョン 1.6a を使用して、引き続き新しいサービス パックに対応しています。 バージョン 1.6a は、Service Pack 6 を除き、Service Pack 6a を介して NT 4.0 のすべてのリリース バージョンで動作します (Microsoft は、重大なバグのため、リリース直後に Service Pack 6 を廃止しました)。 Win2K で動作する NTFrob のバージョンが近日提供予定です。

NTFrob v1.6a のダウンロード: http://www.sysinternals.com/ntfrob.htm.

GETSID V1.1

複製によってロールアウトの負担が軽減される環境を管理している場合、おそらく GetSid に興味があるでしょう。 GetSid は同じ名前の Windows NT リソース キット ツールに似ていますが、SysInternals GetSid を使用すると、ユーザー アカウントだけでなく、コンピューターの SID も取得できます。 GetSid はクライアント ソフトウェアをインストールしなくてもネットワーク全体で動作するため、GetSid を使用して、ネットワーク上のコンピューターが複製に伴う重複する SID の問題に悩まされていないことを簡単に確認できます。

GetSid v1.1 のダウンロード: http://www.sysinternals.com/misc.htm.
重複する SID の問題については、http://www.sysinternals.com/newsid.htm. を参照してください

REGMON V4.24、FILEMON V4.28

ファイルまたはレジストリ アクティビティを実行するプロセスの名前を表示するだけでなく、Regmon と Filemon に対するこれらの更新では、プロセス ID も表示されます。 この拡張機能は、同じ名前の複数のプロセス間でファイルとレジストリのアクセスを区別するのに役立ちます。

これらのバージョンに存在するもう 1 つの拡張機能を使用すると、(コンソールではなく) リモート Win2K ターミナル サービス セッションから Regmon と Filemon を実行できます。 アプリケーションがこのサポートを実現するのは、オペレーティング システムのバージョン番号を GUI で確認するためであり、Win2K で実行されている場合は、ドライバー コンポーネントのデバイス オブジェクトを開くときに CreateFile の呼び出しで使用する名前に "\\.\Global\" プレフィックスを指定します。 ターミナル サービス環境では、デバイス ドライバーがオブジェクトに割り当てる名前はグローバル (コンソール) 名前空間に格納されます。これは、既定ではリモート セッションで表示されない名前空間です。 リモート セッションにはそれぞれ、ローカル名前空間があります。 "Global" プレフィックスは、Win2K オブジェクト マネージャーに対して、オブジェクト マネージャーが、検索が開始されるセッションの名前空間ではなく、グローバル名前空間で名前検索を実行する必要があることを示します。

Regmon v4.24 のダウンロード: http://www.sysinternals.com/regmon.htm.
Filemon v4.28 のダウンロード: http://www.sysinternals.com/filemon.htm.

AUTORUNS V1.0

標準的な構成がある場合は、システムを起動し、エクスプローラーなどの各種コンポーネントにログインするたびに、あいまいなレジストリ キーとフォルダーを調べ、それらの中で参照されるプログラムを自動的に実行します。 David Solomon は、"Windows 2000 Internals" セミナー (http://www.solsem.com) で自動実行ファイルが指定されているすべての場所のリストを示します。また、Bryce Cogswell はそのリストを取得し、内容を表示できるプログラムである AutoRuns を作成しました。 自分が知らないうちに実行される隠されたプログラムに間違いなく驚くでしょう。

AutoRuns v1.0 のダウンロード: http://www.sysinternals.com/misc.htm.

HANDLEEX V2.23

最新リリースの HandleEx では、上と下のビューの間で Ctrl Tab キーを押す機能など、新しいユーザー インターフェイスの使いやすさの強化が複数追加されました。 ただし、さらに重要なのは、HandleEx が Win2K セキュリティ エディター ダイアログ インターフェイスと統合され、プロセスが開いているメモリ マップ ファイルを示し、開いているハンドルに付与されたアクセス マスクを表示することです。

HandleEx をハンドルベースのビューに切り替えると、プロセスがハンドルを介して開いたファイルが表示されます。 DLL ビューで、HandleEx は、プロセスがモジュールとして読み込んだファイルを表示します。メモリ マップ ファイルのサポートが追加されると、HandleEx は、Win32 メモリ マップ ファイル API を介してプロセスがマップしたファイルを一覧表示します。 WinNT と Win2K では、プロセスがマップしたファイルを削除できないため、HandleEx のメモリ マップファイルのサポートは、未処理のマッピングのためにファイルを削除できないプロセスを判別するのに役立ちます。

HandleEx v2.23 のダウンロード: http://www.sysinternals.com/handleex.htm.

NT 4 ACL エディター

セキュリティ エディターと言えば、Microsoft は新しい Win2K セキュリティ エディター ダイアログ API を最新バージョンのプラットフォーム SDK で文書化しています。 ただし、NT 4 エディターの API は常に文書化されておらず、そのままです。 NT 4 エディターは、Regedt32 のレジストリ キーのアクセス許可と、エクスプローラーの NTFS ファイルのアクセス許可を編集するときに使用するエディターです。

オブジェクト セキュリティ編集機能を WinObj ツールに追加し、同じインターフェイスを使用して HandleEx にセキュリティ編集を追加したときに、NT 4 セキュリティ エディター インターフェイスを決定しました。 最終的に、独自のアプリケーションの NT 4 バージョンにネイティブ セキュリティ エディタ機能を追加できるように、ドキュメントを公開することを決定しました。

NT 4 ACL エディターのドキュメントは、http://www.sysinternals.com/acledit.htm. で取得してください
WinObj のダウンロード: http://www.sysinternals.com/winobj.htm.

SYSINTERNALS T シャツ

SysInternals で入手できる技術情報とユーティリティが気に入った場合は、SysInternals の T シャツを着て世界に示してください。 この T シャツは綿 100% の Hanes Beef-T で、正面と背面の両方に目立つ色で印刷され、たった 14.95 ドルです。 さらに、各売り上げのうち、5 ドルが米国癌学会に寄付されます。

SysInternals T シャツの表示と注文: http://www.sysinternals.com/tshirt.htm.

WWW.MICROSOFT.COM における SYSINTERNALS の詳細

SysInternals のツールをユーザーに紹介する Microsoft サポート技術情報の記事数が増え続けていることを誇りに思います。 最近見つけた追加記事の一覧を次に示します。

  • Q243583 PRB: Mib.bin によって Visual Studio のセットアップが失敗する http://support.microsoft.com/support/kb/articles/Q243/5/83.ASP
    この記事では、Filemon を使用して Visual Studio のセットアップ エラーを追跡することを推奨しています。

  • Q242131 HOWTO: ファイルが開いているプロセスの一覧を表示する http://support.microsoft.com/support/kb/articles/Q242/1/31.ASP
    Microsoft は、プロセスが開いているファイルを示すユーティリティとして HandleEx をユーザーに示しています。

  • Q232060 HOWTO: MDAC セットアップ トラブルシューティング ガイド http://support.microsoft.com/support/kb/articles/q232/0/60.asp
    DLLView と HandleEx は、この記事で注目を集めています。このツールを使用して、Microsoft Data Access Component DLL を持つプロセスを見つけて、MDAC を再インストールする前にユーザーが終了できるようにユーザーに指示しています。

  • Q245068 ERRMSG: アクセスが拒否されました。 アクセス許可がないか、ファイルが使用中です http://support.microsoft.com/support/kb/articles/q245/0/68.asp?lng=eng&sa=allkb
    NtHandle は、この記事で参照を再度取得します。この記事は、ファイルの削除中にエラーが発生したときに使用中のファイルがあるプロセスを判別する方法について説明しています。

  • Q247957 SAMPLE: DUPS.EXE を使用して DLL の互換性の問題を解決する http://support.microsoft.com/support/kb/articles/q247/9/57.asp
    この記事では、DLL のバージョンの問題を追跡できるツールとして ListDLLs、DllView、HandleEx を参照します。

SysInternals がこれらのすべての新しい KB 記事で紹介されているだけでなく、直前の KB 記事で紹介された DUPS ユーティリティの作成者である Rick Anderson は、MSDN ニュース記事「The End of DLL Hell」で ListDLL を参照しています。 この記事は、Microsoft でオンラインで確認できます (http://www.msdn.microsoft.com/isapi/msdnlib.idc?theURL=/library/techart/DLLdanger1.htm.)。 この結果として注目を集めた ListDLL では、Windows 9x に移植するように求められたので、バージョン 2.21 は Windows 9x、Windows NT、および Windows 2000 で動作します。

ListDLLs v2.21 のダウンロード: http://www.sysinternals.com/listdlls.htm.

3 月/4 月版の INTERNALS コラム

Windows NT と Windows 2000 ストレージ管理に関する 2 部構成の "Internals" コラムについて、3 月と 4 月版の Windows 2000 マガジンを確認してください。 シリーズの最初のパートで、NT 4 ディスクのパーティション分割、高度なボリューム構成、ドライブ文字の割り当て、デバイス ドライバーの記憶域アーキテクチャについて説明しています。

パート 2 では、新しいストレージ管理デバイス ドライバー、ダイナミック ディスク パーティション分割、再構成の再起動を必要としない高度なボリュームのサポート、Win2K のドライブ文字割り当てメカニズムなど、Win2K に存在するストレージの変更について説明しています。

INTERNALS INFORMATION

再解析ポイント

何らかの理由で人々は常にファイル システムのテクニックにワクワクし、Windows 2000 にはいくつかの新しいテクニックが組み込まれています。 Windows 2000 より前では、すべての Microsoft ファイル システムに UNIX ユーザーになじみのある機能 (シンボリック リンク) がありません。 シンボリック リンクを使用すると、ファイル システム名前空間の別の場所にある別のファイルまたはディレクトリを参照するファイルまたはディレクトリを作成できます。 アプリケーションがリンクにアクセスする場合、実際にはリンクのターゲットにアクセスします。 たとえば、リンク C:\drivers が ディレクトリ C:\winnt\system32\drivers を参照している場合、ファイル名 C:\drivers\ntfs.sys への参照は C:\winnt\system32\drivers\ntfs.sys に解決されます。

NTFS バージョン 5 (Windows 2000 に含まれる NTFS リビジョン) では、再解析ポイントと呼ばれるメカニズムがサポートされています。 再解析ポイントは、ファイルまたはディレクトリに関連付けられているデータのブロックであり、これには、"タグ" と、そのタグを持つ再解析ポイントの管理を担当するドライバーによって定義された情報が含まれます。 Microsoft では、ジャンクション タグやマウント ポイント タグなど、いくつかの組み込みタグを定義しています。 NTFS でファイル名を検索中に再解析ポイントが検出されると、検索が中止され、呼び出し元に STATUS_REPARSE コードが返されます。 ファイル システム フィルター ドライバーと I/O マネージャーは、タグに対する再解析コードを監視し、いくつかの方法のいずれかで対応します。 階層型ストレージ管理 (HSM) の再解析ポイントは、HSM サブシステムがリモート ストレージ (テープなど) に移動したファイルを示し、たとえば、リモート ストレージ フィルター ドライバー (RsFilter.sys) は、リモート ストレージからファイルのデータを透過的にプルし、再解析ポイントを削除し、ファイル検索の再試行を可能にします。

フィルター ドライバーは、開いているファイルの名前を変更することもできます。 マウント ポイント タグはボリューム マウント ポイントを表し、名前空間内からボリュームをまとめて接続できます。 したがって、プロジェクト ドキュメントを含むボリュームを C: ドライブの \projects ディレクトリにマウントできます。 これを行うと、ファイル システム データが整理され、DOS スタイルのドライブ文字の使用を回避できます。

ジャンクションはマウント ポイントに似ていますが、ディレクトリをボリュームにリンクするのではなく、ディレクトリを他のディレクトリにリンクします。 これらは NTFS のシンボリック リンクのサポートです。 この時点で、Microsoft がファイルベースのシンボリック リンクを組み込まなかった理由を疑問に思うでしょう。 その答えは、シンボリック リンクが既存の Win32 アプリケーションで大混乱を引き起こす可能性があることです。

実際にシンボリック リンクであるファイルを操作するときに予期しない結果を引き起こす一般的なアプリケーション動作は多数ありますが、リンク非対応のプログラムを使用してシンボリック リンクを削除することが簡単な例です。 複数のシンボリック リンクが参照する中央の場所に格納されているファイルについて考えてみましょう。 リンクの 1 つを削除するユーザーは、おそらくファイル自体ではなく、単にリンクを削除することを意図しています。 ただし、プログラムがシンボリック リンクを認識しない場合は、ファイルが実際にはリンクであることを検出せず、必要な動作を求めるメッセージが表示されます。 アプリケーションがリンクを介して参照するファイルに関連するファイルを作成するとき、問題はより深刻になります。リンク ターゲットが配置されているディレクトリまたはシンボリック リンクが存在するディレクトリに、関連するファイルを格納する必要がありますか?

Microsoft は困難な問題に直面しており、前述した問題の回避策が見つかった場合でも、さらに複雑なファイル操作を実行するアプリケーションがあるのは確かです。 このため、Windows でファイルベースのシンボリック リンクが表示される可能性は低いと思います。

カーネル ハンドル テーブル

Win2K オブジェクト マネージャーは、特定の種類のデバイス ドライバーのパフォーマンスを向上させる新しい種類のハンドル テーブルを導入しました。 一部のドライバーでは、ユーザー プロセスのセキュリティ コンテキストで実行中に、システム オブジェクトに対してハンドルを開く必要があります。 デバイス ドライバーは、オブジェクトを開くときにセキュリティ チェックをバイパスできるため、特権のないプロセスのハンドル テーブルに機密性の高いオブジェクトへのハンドルを作成するときに発生するセキュリティ ホールを防ぐ手順を実行する必要があります。 セキュリティの問題を回避する NT 4 ドライバーは、システム プロセス コンテキストで実行されるワーカー スレッドに作業項目をキューに入れるか、KeAttachProcess API を使用してシステム プロセスのハンドル テーブルとアドレス空間に切り替える必要があります。 これらの方法はどちらも、特にドライバーが頻繁に実行する必要がある場合は、パフォーマンスを低下させる可能性があります。

この問題に対する Win2K の解決策は、オブジェクトを開いてハンドルを取得するときにドライバーが OBJECT_ATTRIBUTES 構造体で渡すことができる新しいフラグの形式で提供されます。 このフラグは DDK に記載されていませんが、NTDEF.H ヘッダー ファイルで OBJ_KERNEL_HANDLE として定義されています。 オブジェクト マネージャーが指定のオブジェクトを開き、呼び出し元に戻るハンドルを作成すると、このフラグが存在するかどうかを確認します。 その場合、現在実行中のプロセスのハンドル テーブルではなく、'ObpKernelHandleTable という名前のハンドル テーブルにハンドルを作成します。 オブジェクト マネージャーがカーネル ハンドルを要求する呼び出し元に返すハンドルには、上位ビットが設定されているため、すべてのカーネル ハンドルには 0x80000000 より大きい値があります。

オブジェクト マネージャーにハンドルが渡されるたびに、ObReferenceObjectByHandle への呼び出しで、たとえば、ハンドルの基になるオブジェクトへのポインターにハンドルを変換する必要がある場合、ハンドル参照がカーネル モード参照かどうか、およびハンドルの上位ビットが設定されているかどうかを確認します。 これらの条件に一致する参照の場合、オブジェクト マネージャーは、現在実行中のプロセスのハンドル テーブルではなく、カーネル ハンドル テーブル内のハンドルを検索します。 したがって、セキュリティで保護されたオブジェクトのカーネル ハンドルを参照するドライバーは、パフォーマンスに影響を及ぼしてセキュリティ ホールを開くのを回避します。

1 つ以上のドライバーの起動失敗

興味深い Windows NT/2K トリビアの一つを紹介します。 起動中に "1 つ以上のドライバーが起動に失敗しました" というダイアログ ボックスが表示された場合、決定とダイアログの表示の両方を行うのがサービス コントロール マネージャー (SCM) です。

SCM は、ドライバーが起動に失敗したことをどのように認識しますか? SCM は、初期化時に HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services レジストリ キーをスキャンして、起動またはシステム開始ドライバーとして開始することを指定する Start 値を持つデバイス ドライバーを探します。 エントリが見つかると、オブジェクト マネージャー名前空間を開き、デバイス ドライバーの名前が \Drivers ディレクトリに存在するかどうかを確認します。 デバイス ドライバーが正常に開始すると、I/O マネージャーはドライバー オブジェクトを \Drivers ディレクトリに置くため、SCM で名前が見つからない場合は、ドライバーが正常に開始しなかったと見なされます。 \Drivers ディレクトリの内容を表示するには、WinObj を使用します。

WinObj のダウンロード: http://www.sysinternals.com/winobj.htm.

ソフトウェアの特許が最近、多くの注目を集めています。 米国特許商標局は最も明白な「イノベーション」に特許を付与しているように見え、企業はリベラルな特許ポリシーを利用して、主な技術を排他的に使用するためにロックダウンしています。 Microsoft は特許戦略に精通していますが、Microsoft が Windows NT で開発した複数の重要なアイデアに対する特許を所有していることを多くの人は知りません。 IBM の Patent Server Web サイトで発見したカーネル関連の特許の一覧を次に示します。

"異なるキュー スレッドで完了メッセージを処理し、実行可能スレッドによる完了を確認することで、実行可能スレッドによって要求される非同期ファイル操作を実行するためのシステム"
http://www.patents.ibm.com/details?pn=US05758184__

この特許は、完了ポートと呼ばれる高度な NT 同期メカニズムの背景にある基本的なアイデアをカバーしています。 完了ポートを使用すると、プロセスはさまざまなオブジェクトで I/O を効率良く待機し、Windows NT/2000 スケジューラのサポートを使用して、完了ポートに関連付けられているスレッドがマルチプロセッサを効果的に利用できるようにします。
完了ポートの詳細については、http://www.sysinternals.com/comport.htm. を参照してください。

"オブジェクト ベースのコンピューター オペレーティング システムでのクライアント プロセスのサーバー偽装"
http://www.patents.ibm.com/details?&pn10=US05187790

偽装は、Windows NT/2000 セキュリティ モデルの強力な機能であり、サーバーがクライアントに代わってアクティビティを実行しているときに、サーバー スレッドがクライアント スレッドのセキュリティ コンテキストを一時的に採用できるようにします。 これにより、サーバーは、クライアントの保護されたオブジェクトにアクセスするときに、Windows NT/2000 セキュリティ モデルを簡単に利用できるようになります。 これは、分散セキュリティに対する賢明な (賢明でないとしてもやや明白な) アプローチであり、Microsoft はそれに関する特許を所有しています。

"オブジェクトベースのコンピューター オペレーティング システムにおける待機可能オブジェクト作成システムおよびメソッド"
http://www.patents.ibm.com/details?&pn10=US05057996

"一連のデータ構造オブジェクトにアクセスするための異なるオブジェクト ポインターを持つシステムを作成する条件付きオブジェクト"
http://www.patents.ibm.com/details?&pn10=US05129083

"オブジェクトベースのコンピューター オペレーティング システムにおけるオブジェクト コンテナー転送システムおよびメソッド"
http://www.patents.ibm.com/details?&pn10=US05129084

"オブジェクトベースのコンピューター オペレーティング システムにおける一時オブジェクト処理システムおよびメソッド"
http://www.patents.ibm.com/details?&pn10=US05136712

"オブジェクトベースのコンピューター オペレーティング システムにおけるオブジェクト転送システムおよびメソッド"
http://www.patents.ibm.com/details?&pn10=US05297283

Windows NT/2000 オブジェクト マネージャーは、UNIX 実装に存在する仮想ファイル システム (VFS) 名前空間に似た名前空間を実装します。 Microsoft がオブジェクト マネージャーに対して取得した特許の一部は、オブジェクト指向設計に関する特許のように見え、いくつかは重複しているように見えます。 しかし、私は特許弁護士ではないので、それは私の誤った見解に過ぎないかもしれません。

特許を調べると、David Cutler を含めて、主な Windows NT カーネル開発者の名前がいくつか見つかります。 興味深いことに、一部の特許は、NT 開発者が VMS に取り組んだときにマサチューセッツ州メーナードの Digital Equipment Corp のために取得されましたが、特許プロセスには非常に長い時間がかかったので、特許にはワシントン州レッドモンド在住として記載されています。

近日公開予定

TDIMON

TCP と UDP のネットワーク アクティビティをリアルタイムで監視し、アクティビティを実行しているプロセスを正確に把握したいと思ったことはありますか? SysInternals 監視ツールキットに追加された強力な TdiMon にご注目ください。


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

公開日: 2000 年 3 月 27 日 (月) 午後 7:09 by ottoh

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