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

システム内部ニュースレター Vol. 3、No. 1

http://www.sysinternals.com
Copyright (c) 2001 Mark Russinovich


2001 年 4 月 18 日 - 本号では:

  1. 論説

  2. SYSINTERNALS の新機能

    • PsService v1.01
    • PsFile v1.0
    • PsExec v1.11
    • HandleEx v4.0
    • DebugView v4.11
    • Windows 2000 内の 3 番目の論説。
    • 2 月 Windows 2000 マガジン
    • Microsoft の Sysinternals
  3. INTERNALS 情報

    • クールなキーボード ショートカット
    • PnP デバッグ メッセージ
    • リバース エンジニアリングの裁定
    • 新しい Windows XP システム呼び出し
    • 切断されたネットワーク
    • WinDev
    • TechEd US
  4. 近日公開予定

    • Windows XP プリフェッチ内

スポンサー: WINTERNALS SOFTWARE ~~~~

Sysinternals ニュースレターは、http://www.winternals.com. の Web で Winternals Software によって後援されています Winternals Software は、Windows NT/2K 用の高度なシステム ツールの主要な開発者およびプロバイダーです。 Winternals Software 製品には、Wdinows NT 4.0 用 FAT32、NTFSDOS Professional Edition (DOS 用の読み取り/書き込み NTFS ドライバー)、およびリモート回復が含まれます。

Winternals は、既存の Windows 95/98/Me と Windows 2000 のサポートに NT 4 サポートを追加した、低コストで使いやすいエンタープライズ デフラグ ソリューションである Defrag Commander NE バージョン 1.2 を発表することを誇りに思っています。 Defrag Commander NE は、Windows 2000 と Windows 95/98/Me の内蔵のデフラグ機能を活用し、Windows NT 4 用の独自の強力なデフラグ機能を追加します。 NT または Windows 2000 システムにクライアント ソフトウェアをインストールしなくても、シンプルな MMC スナップインから Windows エンタープライズ全体のデフラグ スケジュールを管理できるようになりました。 10 システムのライセンスは、わずか 169 ドルでオンライン購入が可能で、積極的な数量割引も用意されています。 詳細については、http://www.winternals.com を参照してください。

皆さん、こんにちは。

Sysinternals ニュースレターへようこそ。 現在、ニュースレターの購読者数は 31,500 人です。

Windows XP のベータ版をインストールするときに最初に気付くことの 1 つに、Luna という名前の再設計されたユーザー インターフェイスがあります。 Luna の外観は、スタートアップ メニューの動作から、アプリケーション メニューやダイアログ ボックスの設計に至るまで、インターフェイスのあらゆる側面に浸透しています。 この総合的な変換は、「テーマ」エンジンを使用して実現されます。 テーマはテーマ スタイル ファイル (.msstyles で終わるファイル) で記述され、 Luna テーマ ファイル luna.msstyle\Windows\Resources\Themes\Luna にあります。 同じディレクトリ配下に Shell というサブディレクトリがあり、その中に shellstyle.dll があります。 XP が DLL をどのように使用しているかは不明瞭となっており、エクスプローラーで読み込まれ、HTML スタイル シートが埋め込まれていますが、エクスポート機能はありません。 comdlg.dll と kernel32.dll がこれをインポートし、すべてのアプリケーションがこれらの DLL のコピーを取得するため、すべてのプロセスで、テーマ クライアント ライブラリである \Windows\System32\UxTheme.DLL の読み込まれたコピーが取得されます。 この DLL は IsThemeActiveIsAppThemedGetCurrentThemeNameDrawThemeBackgroundGetThemeColorなどの関数をエクスポートします。

レジストリは、現在のテーマが指定され、テーマの浸透度を設定する場所です。 HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes 配下を見ると、 Apply という名前のキーがあり、「色」や「アイコン」など、テーマをアクティブにする場所を指定する値があります。 同じキー配下にある Current サブキーには、現在のテーマの.msstyles ファイルへのパスがあります。

WinAmp や Windows Media Player などのアプリケーションの「スキニング」が流行していることを考えると、Microsoft は、サード パーティが独自のテーマを開発するツールを公開するか、少なくとも .msstyles ファイルとシェルスタイル DLL の形式を文書化して、サード パーティがテーマ エディターを開発できるようにすると想定しているかもしれません。 しかし、それは間違っています。 「Microsoft Windows XP: 開発者向けのメリットとは」(http://msdn.microsoft.com/library/default.asp?URL=/library/techart/winxpintro.htm) でのオンライン投稿で、Microsoft は、サード パーティのテーマを許可するつもりはないことを明確にします。

「一見すると、複数の Windows XP スタイルの可能性は、Window Media Player などのアプリケーションのスキン機能のように見えるかもしれませんが、違いがあります。 テーマはオペレーティング システムのビジュアル スタイルを変更しますが、以前のバージョンの Windows と一貫性のある UI を提供します。 テーマはシステム全体で適用されるため、これは重要です。 ボタンの削除など、アプリケーション スキンに適用される変更は、オペレーティング システム レベルでは適切ではありません。 テーマのファイル形式は公開されていません。Microsoft では、一貫性のあるユーザー インターフェイスを可能にし、設計の継続性を確保するために、テーマの設計コントロールを保持しています。 テーマ開発者のキットは、Windows XP では使用できません。」

このようなスタンスを取る理由として、サードパーティのテーマが何らかの形で UI を壊す可能性があり、ユーザーが Microsoft サポートに問い合わせるという点です。 なぜ Windows Media Player と同じような恐怖を持っていないのか、分かりません。 それでも、デスクトップやアプリケーションにテーマのような外観を適用する方法はあります。 Apple の OS X デスクトップの外観を Windows に提供する新しい Aqua-Soft (WindowBlinds スキン - http://www.windowblinds.net) などの Windows デスクトップ スキンを見つけるには、http://www.wincustomize.com/ にアクセスします。 そして、リリースされたすべてのものをスキンする方法を見つけ出すスキニング コミュニティの永続性を考えると、Microsoft のテーマ形式をリバース エンジニアリングする人々が今いることは間違いありません。 Microsoft がテーマの制御するポリシーに関係なく、誰かがテーマ エディターをリリースするのは時間の問題です。

では、Windows XP テーマ エディターとサード パーティのテーマが表示され始めた場合、Microsoft はどうしますか? しばらく待つ必要がありますが、Apple の動作によってプレビューが提供される可能性があります。 数日前、Appleは Mac OS 用のテーマ エディターを開発している会社に対し、販売停止命令: http://www.macworld.co.uk/news/main_news.cfm?NewsID=2773. を出しました テーマ開発者は注意してください。

その内容に興味があると思われる友人にニュースレターをお渡しください。

ありがとうございます。

-Mark

SYSINTERNALS の新機能

PSSERVICE V1.01

NT 4 と Win2K リソースキットには、私が覚えている限り、コマンドライン サービス制御ユーティリティ、SC がありました。 SC を使用すると、ローカル システムまたはリモート システム上の Win32 サービスの状態と構成を表示および変更できます。 PsService は SC のフリーウェア クローンであり、いくつかの追加機能を備えています。

1 つ目は、PsService で別のユーザー資格情報を使用してリモート システムに接続できる点です。 これは、実行元のアカウントがリモート システムに対する管理者権限を持っていないが、実行するアカウントにアクセスできる場合に便利です。 2 つ目は、PsService の検索機能です。 ネットワーク内で DNS、DHCP、またはその他のサービスを実行しているシステムを忘れてしまった場合、サービス名を指定してサービスを実行しているコンピューターを表示できるため、検索機能が役立ちます。

PsService はサービス コントロール マネージャー API に依存しており、その完全なドキュメントはプラットフォーム SDK にあります。PsService はクライアント ソフトウェアのインストールを必要としません。

http://www.sysinternals.com/ntw2k/freeware/psservice.shtml. で PsService v1.01 のダウンロード

PSFILE V1.0

PsFile は、Windows NT/2K の 「net file」 コマンドの制限を克服するものが欲しいという要求に応じて作成したツールです。 NT と Win2K では、内蔵の「net」 コマンドを 「file」 オプションと共に使用することで、他のコンピュータがシステムによってエクスポートされた共有上で開いたファイルを一覧表示することができます。 ただし、net コマンドは長いパス名を切り捨ててしまうため、ローカル システムでのみ機能します。

PsFile は net コマンドと同じ API (正しくはプラットフォーム SDK に記載されている「Net」 API) を使用しますが、ファイル名を切り捨てず、ローカルとリモートの両方で動作し、クライアント ソフトウェアのインストールは必要ありません。

http://www.sysinternals.com/pstools.htm. で PsFile v1.0 のダウンロード

PSEXEC V1.11

PsExec は、Windows NT/2K 用のコマンド ライン アプリケーションで、リモート システムでプログラムを実行できます。 特に強力なのは、コンソール プログラムをリモートで有効にし、対話的に実行できるようにすることです。 たとえば、PsExec を使用してリモート システムでコマンド プロンプトの実行可能ファイル (cmd.exe) を起動すると、実質的にリモート シェルが作成されるため、クライアント ソフトウェアをインストールする必要はありません。

PsExec は、軽量な telnet として機能するだけでなく、「ローカル専用」のアプリケーションをリモートで有効にすることもできます。 IpConfig は、システムのネットワーク構成を示す内蔵ツールですが、リモート システムの構成を表示できません。 ただし、PsExec を使用すると、リモートで起動し、その出力をローカルで表示できます。

アプリケーションを実行するアカウントが重要な場合もあります。 レジストリまたはファイルに対する変更が正しいセキュリティ コンテキストで実施されるように、アプリケーションをご自身のアカウントで実行する必要がある場合があります。 PsExec を実行するアカウントとは別のアカウントでアプリケーションを実行することが望ましい場合もあれば、リモート アプリケーションをシステム アカウントで実行する必要がある場合もあります。 PsExec は、これらすべての状況をサポートします。

既定では、PsExec は「偽装」のセキュリティ コンテキストでプログラムを実行します。 つまり、管理者のアカウントで PsExec を実行すると、リモート プロセスは管理者アカウントで実行されます。 偽装機能には制限があるため、リモート プロセスはリモート システム上のネットワーク リソースにアクセスできません。 PsExec のコマンド ラインでユーザー名とパスワードを指定すると、PsExec は代替アカウントでリモート プロセスを起動し、リモート プロセスはそのアカウントからアクセス可能なネットワーク リソースにアクセスできます。 最後に、コマンド ライン オプションを使用すると、Win32 サービスが実行されるのと同じアカウントであるシステム アカウントでリモート プロセスを実行するように PsExec に指示できます。

http://www.sysinternals.com/ntw2k/freeware/psexec.shtml. で PsExec v1.11 のダウンロード

HANDLEEX V4.0

HandleEx は、コンピューター上でアクティブなプロセスの一覧と、そのプロセスが開いているオペレーティング システム リソースと読み込まれた DLL へのハンドルを示す多面的なツールです。 その検索機能とプロセス、ハンドル、および DLL プロパティの詳細な表示機能により、HandleEx は、DLL バージョンの問題、ハンドルのリーク、および特定のファイルまたはディレクトリにアクセスしているプロセスを追跡するための最適なツールです。

Sysinternals の更新に従っている場合は、HandleEx が過去数か月間に 2 つのメジャー バージョン番号にジャンプしたことに気付くかと思います。 最初のメジャー更新プログラム v3.0 では、プロセス ビューのアプリケーション アイコン、すべてのリスト ビュー アイテムのツールチップ、はるかに効率的な更新、検索ダイアログで結果アイテムをクリックして HandleEx を適切なハンドルまたは DLL エントリにジャンプできる検索機能など、多くの機能が導入されました。

ただし、開発者にとって最も便利な機能は、「更新の強調表示」と relocated-DLL の強調表示です。 更新の強調表示は、ビューを更新するときの HandleEx の動作を指します。 更新前に存在しなかったプロセス、ハンドル、読み込まれた DLL を含む新しい項目は緑色で強調表示されますが、存在しなくなった項目は赤で強調表示されます。 これにより、変更を視覚的に表示するだけでなく、ハンドルリークが進行中で、新しく開いたハンドルが更新後に緑色で表示されることが鮮明にわかります。

HandleEx relocated-DLL の強調表示は、DLL の再配置に関連しています。これは、DLL をビルドするときに開発者が指定した推奨の「ベース アドレス」を Windows のモジュール ローダーが考慮できない場合の動作を表す用語です。 リンカー (DLL または EXE ビルドの最終フェーズに使用されるツール) が DLL に対して生成するコードには、ローダーが DLL のベース アドレスを受け入れるという前提で、DLL 内のメモリ参照が設定されています。 DLL をロードするプロセスにおいて、ベース アドレスから始まり、読み込まれた DLL イメージのサイズに対応するメモリの範囲は、DLL が優先ベース アドレスで読み込むために空いている必要があります。 複数のプロセスでベース アドレスが受け入れられると、すべてのプロセスが同じ DLL コード メモリを共有するため、メモリ使用効率が向上します。

たとえば、別の DLL が既に目的のアドレス範囲を使用している場合など、ローダーが DLL のベース アドレスを優先できない場合、ローダーは「再配置」を実行する必要があります。これには、DLL の実際の読み込みアドレスを反映するためにすべての DLL 内のメモリ参照を更新する必要があります。 プロセスの読み込み時間を遅くするだけでなく (通常は気付かないほど)、再配置された DLL イメージは、優先ベース アドレスに DLL が読み込まれている他のプロセスと共有することはできません。 つまり、メモリを消費する DLL の 2 番目のコピーを効果的に取得できます。

DLL モードの場合は、「再配置された DLL を強調表示する」オプションを選択すると、優先ベース アドレスで読み込まれていない DLL のエントリを HandleEx が黄色で表示します。 開発者は、再配置を回避するために DLL のベース アドレスをリセットできます。

HandleEx のバージョン 4.0 へのジャンプについてはどうですか? この HandleEx の最新バージョンは、Win9x/Me プラットフォームに完全なハンドル表示をもたらします。 これで、WinNT/2K/XP で HandleEx を実行する場合と同じように、プロセスを選択し、そのプロセスが開いているハンドルを確認できます。 それだけでなく、WinNT/2K/XP のように、イベント、ミューテックス、セマフォのプロパティを表示すると、状態 (保留、シグナル) に関する情報が表示されます。

http://www.sysinternals.com/ntw2k/freeware/handleex.shtml. で HandleEx 4.0 のダウンロード

DEBUGVIEW V4.11

DebugView は、複数のシステムから同時に取得した場合でも、ローカル システムまたはリモート システム上のアプリケーションまたはドライバーからのデバッグ出力をキャプチャできる開発者向けユーティリティです。 この最新リリースでは、Windows XP Beta 2 との互換性、一部のユーザビリティ機能、WinNT/2K/XP のデバイス ドライバー開発者向けの機能が追加されています。

DebugView のフィルター処理ダイアログでは、包含フィルター マスクと除外フィルター マスクを定義して、表示するデバッグ出力に絞り込むことができます。 さらに、最大 5 つの異なる強調表示フィルターを指定可能で、それぞれに異なるカスタマイズ可能な色を付けることができます。 以前は、異なるフィルターを必要とするプロジェクトがある場合、プロジェクトを切り替えるたびにフィルターを再入力する必要がありました。 DebugView 4.11 では、フィルターをファイルに保存して、すばやく再読み込みできます。 以前と同様に、DebugView は、前回終了時にアクティブだったフィルターで起動します。

後で分析したり、他のトレースと比較したりするために、デバッグ出力トレースをキャプチャするために必要な場合があります。 DebugView の新バージョン以前では、ログ ファイルを表示するには、テキスト エディターに読み込むしかありませんでした。そのため、役に立つ強調表示フィルターを適用できませんでした。 DebugView ログ ファイルを DebugView に読み込み直し、最初にキャプチャしたときと同じ方法で出力を確認できるようになりました。 複数の DebugView ウィンドウを使用すると、トレースを比較できます。

最後の新機能であるブートタイム ログ記録は、NT/Win2K での DebugView のクラッシュ ダンプのサポートを補完します。 DebugView のクラッシュ ダンプのサポートを使用すると、デバイス ドライバーからの出力をキャプチャできます。ドライバーがシステムをクラッシュさせ、クラッシュ ダンプが有効になっている (完全またはカーネル) 場合は、DebugView を使用してドライバーのダンプからデバッグ出力を抽出します。これにより、クラッシュした時点までのドライバーの出力が確認できます。

ブートタイム ログ記録では、ブート プロセス中に読み込まれるドライバーからの出力をブート開始ドライバーまたはシステムスタート ドライバーとしてキャプチャできます。 DebugView ドライバーは、ブートタイム ログ記録を有効にすると、ブート中に最大 1 MB のデバッグ出力をキャプチャしてバッファリングします。 システムの起動後、DebugView アプリケーションを実行すると、バッファリングされた出力が表示用にインポートされます。 また、起動時にドライバーがクラッシュし、クラッシュ ダンプが有効になっている場合、DebugView のクラッシュ ダンプのサポートにより、クラッシュ前にドライバーが生成した出力を確認できます。

http://www.sysinternals.com/ntw2k/freeware/debugview.shtml. で DebugView v4.11 のダウンロード

INSIDE WINDOWS 2000、第 3 版

Windows 2000 の内部に関する公式書籍が公開されました。 David Solomon (www.solsem.com) と Mark Russinovich の共著であるこの版は、ネットワーク、プラグアンドプレイ、電源管理、サービス、レジストリ、WMI、ブートとシャットダウン、ストレージを新たにカバーし、前版より 40% 以上量が増えています。 また、Windows 2000 の内部を調査するために、他の場所では利用できないいくつかの強力なツールを備えた CD も含まれています。

書籍 http://www.amazon.com/exec/obidos/ASIN/0735610215/o/qid%3D957490318/sr%3D8-1/ref%3Daps%5Fsr%5Fb%5F1%5F1/103-5793119-3499040/systemsinternals/107-2386425-6078131 の Amazon.com ページに移動すると、9 月の販売以来、わずか 2 件のレビューしか投稿されていないことがわかります。 本をお持ちの場合は、他の読者の皆様と意見を共有することを強く推奨します。

本の目次をご覧になり、http://www.sysinternals.com/insidew2k.htm. でご注文ください

2 月 WINDOWS 2000 マガジン

NT/Win2K クラッシュ ダンプ分析に関する記事については、Windows 2000 マガジンの 2 月号をチェックしてください。 この記事では、まず、クラッシュ ダンプの構成の基本について説明し、オペレーティング システムがどのようにクラッシュ ダンプを作成するかについて説明します (ダンプの生成に失敗する理由に関するヒントも含みます)。 次に、最新のダンプ分析ツールを入手できる場所について説明し、Microsoft の強力な新ユーティリティ、 Kanalyze の使用方法について説明します。 最後に、カーネル デバッガーを使用してダンプを調べる方法について簡単に説明します。 たとえダンプのごく一部だけが分析で原因を明らかにしたとしても、有益な情報が見つかるはずです。

この記事は、 http://www.sysinternals.com/publ.shtml のリンクからオンラインで掲載されており、ここではすべての出版物へのリンクが表示されます。

SYSINTERNALS AT WWW.MICROSOFT.COM

前回のニュースレター以降、Sysinternals はさらに多くの Microsoft サポート技術情報 (KB) の記事に登場し、Sysinternals ツールを参照しているのが見つかった合計は 17 件になりました。

  • Q274038: PRB: ASP Error 8002801d 「ライブラリが登録されていません」
    http://support.microsoft.com/support/kb/articles/Q274/0/38.ASP
    この記事では、Active Server Pages エラーのトラブルシューティングを行うために、 Regmon を使用する方法を説明します。

  • Q232830: HOWTO: ファイル ハンドルの所有権を決定する
    http://support.microsoft.com/support/kb/articles/Q232/8/30.ASP
    ファイルが開かれているプロセスを知りたいですか? この KB 記事では、HandleEx について説明します。

  • Q2163868: PRB: ファイル使用中のアプリケーション セットアップ時のアクセス違反
    http://support.microsoft.com/support/kb/articles/Q216/3/68.ASP
    コピーしようとしているファイルが使用中の場合、Visual Basic セットアップ アプリケーションがクラッシュする可能性があります。 HandleEx は、干渉しているプロセスを追跡するための理想的なツールです。

  • Q286198: HOWTO: DLL ファイルの「アクセス許可が拒否されました」エラーを追跡する
    http://support.microsoft.com/support/kb/articles/Q286/1/98.ASP
    Filemon (この記事では Regmon についても言及しています) を使用すると、COM または MTS アプリケーションのどのプロセスが「アクセス拒否」エラーを受け取っているかを確認できます。

  • Q246199: バグ: 拡張ストアド プロシージャのロケール設定を変更すると、正しくない結果になる可能性がある
    http://support.microsoft.com/support/kb/articles/Q246/1/99.ASP
    この記事では、SQL Serverが使用している Cランタイム ライブラリのバージョンを確認するために ListDLL を使用することを推奨します。

  • Q196453: NTVDM と WOW スタートアップ エラー http://support.microsoft.com/support/kb/articles/Q196/4/53.ASP のトラブルシューティング 16 ビット アプリケーションの起動時に問題が発生したユーザーは、16 ビット環境サブシステム (NTVDM) がどのファイルにアクセスする際にエラーが発生しているかを確認するために、 Filemon を使用します。

INTERNALS 情報

クールなキーボード ショートカット

多くの場合、新しいキーボードの Windows キーは、単に領域を占有するキーとしか見ていませんかもしれません。 私も最近までそうでしたが、 頻繁に行う操作のための Windows キーのショートカットを偶然見つけたことから、今ではそのショートカットキーのロゴを頻繁に使うようになりました。 私が役に立つと思ういくつかのキーボードショートカットを紹介しようと思います。これらのショートカットはすべて Windows の全バージョンで動作します。

アクション ショートカット
タスク マネージャーを起動する Ctrl + Shift + エスケープ
[システムのプロパティ] ダイアログ を表示する Windows + Break
ウィンドウをすべて最小化する Windows + m
すべてのウィンドウを最大化する Windows + M
マイ コンピューターを開く Windows + e
ファイルを検索する Windows + F
[ファイル名を指定して実行] ダイアログ を開く Windows + r

私は試行錯誤の末にこれらを決定した後、David Solomon は、Windows 2000 のヘルプの「ナチュラル キーボード ショートカット」に記載されていることを指摘しました。

PNP デバッグ メッセージ

Windows 2000 用のプラグアンドプレイ ドライバーを開発している場合、Windows 2000 のリテール版でさえ、その列挙とドライバーの読み込みプロセス中に広範なプラグアンドプレイ システムの デバッグ メッセージを生成するために同化できることを知って驚かれるかもしれません。 システム ブートの開始時にカーネル デバッガーを中断させ、内部カーネル変数 PnpEnumDebugLevel を 2 に設定します (ほとんどのメッセージはレベル 1 でトリガーされます)。 表示される出力の例を次に示します。これは、Swenum ドライバー (ソフトウェア列挙バス ドライバー) を読み込む PnP マネージャーを示しています。

.
IopCallDriverAddDevice: Processing devnode 0xfe503208
IopCallDriverAddDevice: DevNode flags going in = 0x000019
IopCallDriverAddDevice: Will load driver
IopCallDriverAddDevice: Opening registry key Root\SYSTEM\0000
IopCallDriverAddDevice:         Class GUID is {4D36E97D-E325-11CE-BFC1-08002BE10318}
IopCallDriverAddDevice: Unable to open GUID\Properties key {4D36E97D-E325-11CE-BFC1-08002BE10318} - 0xc0000034
IopCallDriverAddDevice:         Value Service [Type 1, Len 14] @ 0xe14ee82c
IopCallDriverAddDevice:                 Service Name swenum
IopCallDriverAddDevice:                 DriverName is \Driver\swenum
IopCallDriverAddDevice:                 Driver Reference 0xff3a8af0
IopCallDriverAddDevice: Adding Services (type 0)
IopCallDriverAddDevice: Adding Services (type 1)
IopCallDriverAddDevice: Adding Services (type 2)
IopCallDriverAddDevice: Adding driver 0xff3a8af0
IopCallDriverAddDevice:         Routine returned 00000000
.

リバースエンジニアリングの裁定

Sysinternals に従っているユーザーは、私が Windows ソース コード (DDK に付属するドライバー ソース以外の) にアクセスできず、SoftICE と独自のカスタム逆アセンブラーを苦労して使いながら、実装の複雑さを学んでいることをご存じかと思います。

「リバース エンジニアリング: 必要な機能か違法行為か?」(http://www.planetit.com/techcenters/docs/security/news/PIT20010123S0001)) という記事を見つけました。これはソニーと Connectix の間の訴訟におけるアメリカ合衆国第 9 巡回区控訴裁判所による 1 月の判決について述べています。リバース エンジニアリングに関係している方には興味深い内容です。 ソニーは、Connectix がPC上でソニーのプレイステーションゲームを実行できるプログラムである「Virtual Game Station」を開発した後、Connectix に対して訴訟を起こしましたが、裁判所は、Connectix がエミュレーターを開発できるようにプレイステーションを (分解によって) リバースエンジニアリングしたとき、法律の範囲内であるとの判決を下しました。

リバース エンジニアリングの合法性の範囲、特にそれを禁止する圧縮ラップ ライセンスを考慮すると、まだ曖昧ですが、この裁判はリバース エンジニアリング側に軍配が上がりました。

WINDOWS XP カーネルの更新

NT 4 から Windows 2000 への移行とは異なり、Windows XP カーネルはより細かな変更が加えられており、その多くはパフォーマンスの向上を目的としています。 ドライバー開発者が利用できるカーネル API には、200 を超える新しいカーネル関数がエクスポートされ、以前の穴が埋められています。 たとえば、Filemon やその他の Sysinternals ツールは、文書化されていないプロセス環境ブロックに到達することで、操作を実行するプロセス名を取得します。Windows XP では、PsGetProcessImageFileName を呼び出すことができます。 プロセス属性を取得して設定するための新しい Ps呼び出し、出力タイプとデバッグ レベルを分類できる新しいデバッグ出力 API、レジストリ ハイブを保存するための新しいシステム呼び出しが約 3 ダースあります。 また、64 ビット Windows XP と同等の Boot.ini を編集するためのZwQueryBootOptionsZwSetBootEntryOrderZwDeleteBootEntry などの API がいくつかあり、これらはファイルに格納される代わりに、非揮発性メモリに格納されます。

ただし、カーネルの上にはさらに大きな変更があり、そのほとんどはデバイス ドライバーまたはカーネルのサポートに依存しています。 たとえば、ファイル システム フィルター ドライバー (sr.sys) の助けを借りて、ファイルへの変更を追跡し、システムを以前の時点にロールバックできるようにするシステム復元サービスがあります。 volsnap.sys という名前のストレージ フィルター ドライバーがあり、ファイル システム ドライバーの協力を得て、ボリュームのポイントインタイム コピーを作成できます。 カーネルに組み込まれているターミナル サービスサポートを使用して、複数のユーザーのログインと切り替えを可能にする高速なユーザー切り替えサービスがあり、ファイル システム ドライバーによって提供される最適化 API のサポートが改善されています。

Microsoft は、http://www.microsoft.com/hwdev/Whistler/download/Whistler_kernel.zip. での機能拡張の多くを説明したホワイト ペーパーを公開しました 詳細の程度はさまざまで、実装と動作に関する多くの質問は未回答のままですが、全体的なレビューとしてはかなり良いものとなっています。 もちろん、今後の Sysinternals のニュースレターや記事、そして私の Windows 2000 マガジンの記事で、そのいくつかの質問に回答できます。

切断されたネットワーク

開発の多くはネットワーク対応アプリケーションを中心にしていますが、Windows 2000 では、切断されたコンピューター (ノート パソコンなど) を既定の構成で起動しても、このようなアプリケーションをテストすることはできません。 これは、システムがネットワーク接続を検出しない限り、TCP/IP スタックがアクティブ化されないためです。 これは、たとえば、dir \\laptop\c$ (「laptop」がコンピューターの名前) と ping 127.0.0.1 の両方が切断されたシステムで失敗することを意味します。 ドメインベースのコンピューターを使用している場合、起動中に手痛い遅延が発生する可能性もあります。

これには 2 つの回避策があります。 1 つ目は、ハードウェア ウィザードを使用してインストールできる仮想ネットワーク アダプターである Microsoft ループバック アダプターをインストールすることです。 もう 1 つは、Microsoft KB 記事 Q239924: http://support.microsoft.com/support/kb/articles/Q239/9/24.ASP. で記載されているようにレジストリ値を設定することで、システムが切断を検出しないようにするメディア センスを無効にすることです どちらのアプローチでも、TCP/IP スタックは切断されたシステムでもアクティブであり、ネットワーク API や UNC パス (\\laptop\c$ など) を介してローカル システムにアクセスできます。

WINDEV

Windows の開発者カンファレンスである Windev は、今年 6 月 11 日から 15 日までボストンで開催されます。 Win32、システム、.NET プログラミングのトップ ネームが一同に会し、今年は、David Solomon (www.solsem.com) と私の両名による Windows 2000 内部のセッションに参加できる唯一の時間です。 初日のチュートリアル「Inside Windows 2000 Fundamentals」は、Dave と私が共同で担当します。 また、Windows でのプロセス間通信メカニズムのプログラミングに関するセッションと、Windows XP の新機能に関するセッションも担当します。

私の講演の要約と Windev Web サイトへのリンクは、http://www.sysinternals.com/ntw2k/info/talk.shtml.でご覧いただけます

TECHED US

TechEd は、Microsoft の最高のカンファレンスで、ここ数年は 1 万人を集め、完売しています。 今年は 6 月 17 日から 21 日までジョージア州アトランタで開催され、.NET に焦点が当てられていますが、Microsoft から招待を受け、「Sysinternals Tools のツアー」と「Windows NT/2000 クラッシュ ダンプ分析の概要」を説明することになりました。 また、David Solomon も参加し、Windows 2000 のメモリ管理とプロセスとスレッドの内部について説明します。

ヨーロッパでは、David と私が 7 月 3 日から 6 日までバルセロナで開催される TechEd Europe でこれと同じセッションを発表しているのを見ることができます。

私の要約をご覧いただき、http://www.sysinternals.com/ntw2k/info/talk.shtml. から TechEd ホーム ページのリンクへお進みください

近日公開予定

WINDOWS XP プリフェッチ内

Windows XP で最も顕著な機能強化の 1 つは、高速の起動時間です。 プリフェッチは、改善の基礎的なものです。 XP は、ブート中にディスク アクセスを監視し、その情報を次回のブートで使用するために保存し、それ以降のブートでそのデータを使用して、アプリケーションが参照される前にメモリに読み込みます。 次は、XPがどのようにプリフェッチ メカニズムを実装しているのか、その内部について説明します。


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

公開日: 2001年4月18日 (水) 午後 7:04 by ottoh

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