Pavel Yosifovich 著
吉川 邦夫 翻訳
【本書の内容】
本書は
Pavel Yosifovich, "Windows Kernel Programming",
Leanpub Publishing, 2019
の邦訳です。
本書はWindows用のカーネルドライバの開発方法について解説した書籍です。
カーネルドライバは、ハードウェアを扱うのではなく、プロセスやスレッド、
モジュール、レジストリなど、Windows特有のシステム自体を扱います。
そのため、注意深く目を配らなければならない範囲は広大です。
とはいえ、Visual Studioとデバッガーをはじめとする数種類のツールの使いかた
さえ理解できれば、Windowsカーネルが持っているパワーを最大限に活用できる
ドライバのプログラミングは難しいことではありません。
『Windowsカーネルドライバプログラミング』は、プログラミングをはじめるに
あたって必要となる環境構築と、システムを構成するオブジェクト群を解説し、
重要なイベントの監視やイベントの抑制などに役立つ、フィルタードライバの開発
まで紹介します。
【本書のポイント】
・フィルタードライバ開発に向けた最短距離
・必要最小限のAPI解説
・プログラムコードはC/C++
【読者が得られること】
・カーネルドライバ開発の概要がわかる
・カーネルドライバ開発に入門できる
・各種ツールを扱えるようになる
・Windowsシステムが理解できるようになる
・ハッカーを気取れる
【著者について】
・Pavel Yosifovich(パーベル・ヨシフォビッチ)は、開発者、トレーナー、著者、
講演者です。共著に『インサイドWindows 第7版 システムアーキテクチャ、プロセス、
スレッド、メモリ管理、他』(日経BP、2018年4月)、著書に
"Windows Presentation Foundation 4.5 Cookbook"(Packt Publishing、2012年9月)、
"Windows 10 System Programming,Part1"(Independently published、2020年4月)
などがあります。Pavelはソフトウェア全般を愛しており、古いCommodore 64が今でも
大好きです。
※本電子書籍は同名出版物を底本として作成しました。記載内容は印刷出版当時のものです。
※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。
※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。
※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。
(翔泳社)
本書はWindows用のカーネルドライバの開発方法について解説した書籍です。カーネルドライバは、ハードウェアを扱うのではなく、プロセスやスレッド、モジュール、レジストリなど、Windows特有のシステム自体を扱います。そのため、注意深く目を配らなければならない範囲は広大です。とはいえ、Visual Studioとデバッガーをはじめとする数種類のツールの使いかたさえ理解できれば、Windowsカーネルが持っているパワーを最大限に活用できるドライバのプログラミングは難しいことではありません。『Windowsカーネルドライバプログラミング』は、プログラミングをはじめるにあたって必要となる環境構築と、システムを構成するオブジェクト群を解説し、重要なイベントの監視やイベントの抑制などに役立つ、フィルタードライバの開発まで紹介します。
※本書はPavel Yosifovich著『Windows Kernel Programming』(Leanpub Publishing, 2019)の邦訳です。
プロセス/仮想メモリ/スレッド/システムサービス/システムアーキテクチャ/ハンドルとオブジェクト
ツールのインストール/ドライバプロジェクトの作成/DriverEntryとUnloadのルーチン/ドライバの配置/単純なトレーシング
カーネルプログラミング全般のガイドライン/デバッグビルドとリリースビルドの違い/カーネルAPI/関数とエラーコード/文字列/動的なメモリ割り当て/リスト/ドライバオブジェクト/デバイスオブジェクト
優先順位の問題/ドライバの初期化/クライアントのコード/CreateとCloseのディスパッチルーチン/DeviceIoControlのディスパッチルーチン/インストールとテスト
Debugging Tools for Windows/WinDbgの紹介/カーネルデバッグ/フルカーネルデバッグ/チュートリアル:カーネルドライバをデバッグする
割り込み要求レベル(IRQL)/遅延プロシージャコール(DPC)/非同期プロシージャコール(APC)/構造化例外処理(SEH)/システムクラッシュ スレッド同期/高レベルIRQLの同期/作業項目(ワークアイテム)
IRPの紹介/デバイスノード/IRPとI/Oスタックロケーション/ディスパッチルーチン/ユーザーバッファをアクセスする/「ゼロ・ドライバ」に統合する
プロセス通知 プロセス通知を実装する ユーザーモードにデータを提供する スレッド通知 イメージロード通知
オブジェクト通知/プロセス保護ドライバ/レジストリ通知/レジストリ通知の実装
ロードとアンロード/初期化/インストール/I/O操作の処理/削除保護ドライバ/ファイル名/コンテクスト/I/O要求を出す/ファイルバックアップドライバ/ユーザーモードとの通信/デバッグ
ドライバの署名/ドライバの検証ツール/ネイティブAPI/フィルタードライバ/デバイスモニタ/ドライバフッキング/カーネルライブラリ
サンプルコードは、すべて本書のGitHubリポジトリから自由に入手できます。コードサンプルの更新は、このリポジトリにプッシュしていく予定です。
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
walker さん
2021-06-19
日本語唯一(訳だが)のWindows 10時代のWDMに関する書籍。内容は入門者向けである。WDM自体ほとんど完成しているものと思われるので、あまり目新しい内容はないと思われる。ソフトウェアドライバに関する内容なので、ハードウェアドライバなどに関しては未だにXP時代のものを参考にする必要があると思われる。ドライバに関する書籍は書かれている内容が難しいことと文章(もしくは訳)が下手糞なことがあって読みにくいことが多いのだが、これは比較的読みやすいと感じた