😎

【非公式】インサイドWindows第7版 私的正誤表

2021/09/24に公開

はじめに

まずはじめに、インサイドWindows第7版の邦訳に携わったすべての方に謝意を表します。このような需要の限られた専門書の訳書を発行していただけるのは、それだけで大変にありがたいことです。

本文書は、この分野に貢献するために作成されたものです。誰か・何かを攻撃する意図は全くありません。

注意

引用部分の著作権は、各著作者に帰属します。

本文書には、基本的に、原文と異なる意味になったり意味が通らなかったりするような重大な誤りと思われる箇所だけを記載します。軽微な誤りは記載しません。

第4章までの範囲については記録していなかったため、記載していません。実習については、基本的に、記録していません。

行位置は、見出しと囲い中の文書を含み、図・キャプションとコード片を含まない、おおよその位置です。

opaque は訳していません。

リンク

私的正誤表

全般

以下の原書の表現に、以下の訳があてられている場合があります。

原書の表現
can できる
describe 説明する
description 説明
ensure 確実にする
essentially 実質的に
not necessarily 必要ない
opaque あいまいな

第5章

p.384 l.3

  • (誤) 各プロセスは
  • (正) 各セッションは

p.426 l.8

  • (誤) 最初のI/Oが"勝ち"で完了し、
  • (正) 最初に完了したI/Oが勝ち、

p.426 l.19

  • (誤) そのインページI/Oが確実に成功で完了するようにします。
  • (正) そのインページI/Oが成功で完了したことを確認します。

p.427 l.22

  • (誤) まだ使用中でありながら、ディスクに書き込まれていない、
  • (正) まだ使用中でありながら、ディスクに書き込まれなければならなかった、

p.428 l.1

  • (誤) 選択されません。
  • (正) 選択できません。

p.432 l.12

  • (誤) 使用された
  • (正) 使用されている

p.432 l.13

  • (誤) 再利用される
  • (正) 再利用できる

p.433 l.18

  • (誤) 部屋が
  • (正) 余裕が

p.434 l.24

  • (誤) これは、潜在的または……必要があります。
  • (正) これは、これらの割り当てのすべてがページファイルに格納される必要が生じたと仮定した場合の、潜在的ないし最大のページファイルの使用量を表しています。

p.447 l.30 (表5-14)

  • (誤) すべてのプロセスが共有するために
  • (正) それを共有するすべてのプロセスにおいて

p.456 l.3

  • (誤) 物理メモリ内の仮想アドレスのサブセットを維持する
  • (正) 仮想アドレスの一部を物理メモリ内に維持する

p.457 l.4

  • (誤) どのページを……全体のポリシー
  • (正) どのページを物理メモリにもってくるのか、それらをどれくらいの時間常駐させるのかを決定する全体のポリシー

p.457 l.27

  • (誤) このジャンプの前後は
  • (正) このあちこちへのジャンプにより

p.457 l.30

  • (誤) より、システムと
  • (正) より、戻るシークを過剰に行わない賢明なアクセス順序が達成できて、システムと

p.457 l.30

  • (誤) 、ブートや……相関が高いため、
  • (正) 、複数回のブートないしアプリケーション起動の間でアクセスの相関が高いため、

p.457 l.34

  • (誤) メモリマネージャーは……に通知します。
  • (正) メモリマネージャーは、カーネルのプリフェッチャーコードにページフォールトを通知します。

p.461 l.16

  • (誤) 部屋を
  • (正) 余裕を

p.489 l.7

  • (誤) 最初のPFNは、……。
  • (正) 最初のPFNは、アクティブでありワーキングセットの一部であるページを表しています。

p.494 l.3

  • (誤) クラスターは壊れています。
  • (正) クラスターは解消されます。
    • (※) 完全に解消されるのではなく、分割されるだけかもしれない?

p.496 l.3

  • (誤) 通常、クライアントでは……副作用を引き起こしていました。
  • (正) システムが……することがテストで判明しました。これは、……一部のデバイスドライバーが、4GBを超える物理アドレスを想定してプログラムされておらず、その結果、そのようなアドレスを切り捨てて、メモリ破損や破損の副作用を引き起こしていたためです。

p.496 l.8

  • (誤) 問題は通常、発生しません。
  • (正) 問題は通常、見つかりませんでした。

p.507 l.5

  • (誤) 見張り役
  • (正) 番兵

第6章

p.525 l.29

  • (誤) システムがそれを配置し、ドライバーをインストールして
  • (正) システムがドライバーを見つけてインストールして

p.539 l.13

  • (誤) ユーザーモードでWMIサービスと
  • (正) ユーザーモードのWMIサービスと

p.539 l.32

  • (誤) HALは、……です。
  • (正) HALは、コンピューターの……すべてのデバイスのうちほかのドライバーによって制御されないもののためのバスドライバーです。

p.543 l.20

  • (誤) プロセッサの関連で"何も
  • (正) IRQLの観点では"何も

p.544 l.22

  • (誤) (待機のタイムアウトが0の場合の唯一の例外。……)
  • (正) (唯一の例外は、待機のタイムアウトが0の場合です。この場合、待機は要求されていないので、単にオブジェクトのシグナル状態が返ります。)

p.544 l.28

  • (誤) 通常、非ページメモリから……。
  • (正) 非ページメモリは、典型的には、非ページプール(定義上、物理メモリに常駐している)から割り当てられます。

p.545 l.7

  • (誤) より低いIRQL(2)のために処理の継続を遅延します。
  • (正) より低いIRQL(2)まで後続の処理を遅延させます。

p.549 l.22

  • (誤) ミニクラスドライバーは……。
  • (正) クラスドライバーはミニクラスドライバーを呼び出し、ミニクラスドライバーはクラスドライバーから関数をインポートします。

p.554 l.5

  • (誤) I/Oマネージャーは、ドライバーの初期化ルーチンを実行します。……セットされます。
  • (正) I/Oマネージャーは、ドライバーをオペレーティングシステムにロードしたとき、その初期化ルーチンを実行します。初期化ルーチンは、WDKがGSDriverEntryにセットします。
  • ※ 原文にコンマが抜けていると思われる。

p.555 l.9

  • (誤) このルーチンは、……ドライバー内にのみ
  • (正) このルーチンは、I/OマネージャーがI/O要求の着信をキューに入れることに頼っているドライバー内にのみ

p.555 l.10

  • (誤) 1つのIRPだけを確実に処理するようにして
  • (正) 1つのIRPだけを処理することを保証して

p.555 l.36

  • (誤) キャンセルされたI/O要求
  • (正) キャンセル可能なI/O要求

p.557 図6-10

  • (誤) デバイス拡張仕様
  • (正) デバイス拡張固有

p.557 l.22

  • (誤) そのメモリは各オブジェクトがそれを管理するために、各オブジェクトに
  • (正) そのメモリは、ドライバーが管理する各オブジェクトに

p.558 l.17

  • (誤) アプリケーションのために……を開くことを
  • (正) アプリケーションが……を開くことを

p.560 l.10

  • (誤) ……インデックスを付けます
  • (正) ファンクションコードをインデックスとしてデバイスオブジェクトにアクセスします。

p.565 l.24

  • (誤) ある程度のあいまいさ
  • (正) ある程度の opacity

p.566 l.18

  • (誤) ファイルを開くインスタンス
  • (正) ファイルの開かれたインスタンス

p.568 l.20

  • (誤) そのファイル名は、……デバイスオブジェクトの名前に含まれます。
  • (正) そのファイル名は、……デバイスオブジェクトの名前を含むようになります。

p.575 l.15

  • (誤) I/Oマネージャーが任意の……完了します。
  • (正) I/Oマネージャーは、ドライバが埋めなかったディスパッチエントリポイントに、自身のIopInvalidDeviceRequestのポインターをセットします。IopInvalidDeviceRequestは、IRPをエラー状態で完了させます。

p.578 l.3

  • (誤) 完了していないI/O要求でスレッドが終了した場合
  • (正) 完了していないI/O要求があるままスレッドが終了した場合

p.580 l.1

  • (誤) I/Oマネージャーは……ではありません。
  • (正) I/OマネージャーだけがIRPを作成するエンティティというわけではありません。

p.581 l.8

  • (誤) する場所が存在しません。
  • (正) する意味がありません。

p.589 l.16

  • (誤) によって、……によって、
  • (正) または、……によって、

p.589 l.40

  • (誤) そのIRPはいつでも解放できます。
  • (正) そのIRPはいつでも解放されうるからです。

p.594 l.21

  • (誤) ドライバーは構造化例外処理……。……。
  • (正) ドライバーは、無効なメモリエラーをキャッチする種類の構造化例外処理(C/C++では__try/__exceptブロックで表現されます)で保護したうえでユーザーバッファーにアクセスし、それらのエラーをアプリケーションに返すエラーコードに変換することができます。

p.595 l.2

  • (誤) (つまり、ディスパッチルーチン)
  • (正) (例えば、ディスパッチルーチン)

p.595 l.28

  • (誤) スピンロックは……。
  • (正) スピンロックは、全く異なる動作と使われ方をします。

p.596 l.23

  • (誤) 図6-17の「関連付けられたIRQL」をレベル2に引き上げるステップを実行します。
  • (正) 「関連付けられたIRQL」をレベル2として、図6-17のステップを実行します。

p.606 l.9

  • (誤) (NotMyFaultユーティリティの更新されたバージョン)
  • (正) (削除)

p.607 l.29

  • (誤) スレッドは、I/O完了ポート上でブロックされ、そのポートに関連付けられます。
  • (正) I/O完了ポート上でブロックしたスレッドは、そのポートに関連付けられます。

p.613 l.29

  • (誤) 一方で、……。
  • (正) 一方で、アイドル優先度設定ストラテジを強制するのは、システム記憶域クラスデバイスドライバです。

p.628 l.14

  • (誤) レジストリに記録されたセットアッププロセスのハードウェアの説明
  • (正) セットアップ処理がレジストリに記録したハードウェアの説明

p.635 l.3

  • (誤) コンテナーIDは、……、これに属するデバイスノードですべての機能が共有されます。
  • (正) コンテナーIDは、……、これに属するすべてのファンクションdevnodeで共有されます。

p.635 l.7

  • (誤) ハードウェアに報告されます。
  • (正) 報告されます。

p.638 l.22

  • (誤) ファンクションドライバーが見つかった場合
  • (正) ファンクションドライバーが見つらなかった場合

p.643 l.7

  • (誤) つまり、必要がない限り、そのようなドライバーは読み込まれません。ドライバーが担当するデバイスは、システムの一員となります。
  • (正) つまり、必要がない限りーーすなわち、ドライバーが担当するデバイスがシステムの一員とならない限りーー読み込まれません。

p.645 l.2

  • (誤) システムのブートを必要としない
  • (正) システムのブートに必要ない

p.645 l.10

  • (誤) システムのブートを必要としない
  • (正) システムのブートに必要ない

p.647 l.25

  • (誤) フラグが付けられます
  • (正) 検出されます(flagged)

p.649 l.7

  • (誤) イベントは、……を参照します。これらのイベントは、同期プリミティブを参照するものではなく、フレームワークの内部にあります。
  • (正) イベント とは、……を指します。これらのイベントは、同期プリミティブとは関係ありません。フレームワーク内部のものです。

p.651 l.15

  • (誤) そのオブジェクトをドライバーのオブジェクトとして公開し、実際のデータ構造を非透過的に維持します。
  • (正) そのオブジェクトをドライバーへのハンドルとして公開し、実際のデータ構造は非透過的(opaque)なままにします。

p.654 l.1

  • (誤) 関連性は、必ずしもすぐに必要なものではありません。
  • (正) 関連性は、直接の関連性でなくても構いません。

p.654 l.4

  • (誤) オブジェクトの場所
  • (正) オブジェクトの局所性

p.654 l.11

  • (誤) 位置関係として親オブジェクトに関連付けられるため、
  • (正) 局所性のために親オブジェクトに関連付けられるため、

p.654 l.18

  • (誤) コンテキストエリアに含める
  • (正) コンテキストエリアを含める

p.678 l.3

  • (誤) B1評価レベルの1つ
  • (正) B評価レベルの1つ

p.678 l.8

  • (誤) 一意が一意に
  • (正) 一意に

p.678 l.13

  • (誤) 様々な種類のアクセスを許可する権利を与えます
  • (正) 様々な種類のアクセスを行う権利を与えます (grants rights that permit various kinds of access)

p.692 l.34

  • (誤) 単一のユーザーモードイメージのみを読み込み可能
  • (正) 署名されたユーザーモードイメージのみを読み込み可能

p.790 l.20

  • (誤) それ以外の方法でUWPプロセスにハンドルを複製することを阻むものは何もありません
  • (正) デスクトップアプリがUWPプロセスにハンドルを複製することを阻むものは何もないからです(阻まれるのは逆だけです)。

p.791 l.10

  • (誤) アプリケーション自身が開始されることによって作成されます
  • (正) アプリコンテナーを起動するアプリケーション(the launch application)自身によって作成されます

p.791 l.18

  • (誤) もともと開始されたアプリケーションが終了し
  • (正) アプリコンテナーを起動したアプリケーション(the launching application)が終了し

p.799 l.20

  • (誤) Windowsを表示できるようにします
  • (正) ウィンドウを表示できるようにします

p.826 l.22 (表7-20内)

  • (誤) これは、スタックベースの……VirtualAllocを呼び出します。
  • (正) これは、VirtualAllocの呼び出しに8ビットエントロピによるASLRが適用されるようにします(スタックの始点のランダム化を含む)。

訳注: VirtualAllocが使うアドレス空間の範囲をずらすということ:

p.833 l.23 (最終行)

  • (誤) テーブル内の関数の一つをターゲットとしたCALLまたはJMP命令を単純に比較するだけです。
  • (正) CALLまたはJMP命令のターゲットとテーブル内の関数の一つとを比較するだけです。
GitHubで編集を提案

Discussion