[入門と実践]Windows Vista カーネルソフトウェア開発技法

[表紙][入門と実践]Windows Vista カーネルソフトウェア開発技法

紙版発売

B5変形判/280ページ/CD1枚

定価3,630円(本体3,300円+税10%)

ISBN 978-4-7741-3168-9

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

Windows Vistaへのバージョンアップに伴って要求されることになった,新たなカーネルソフトウェア開発のための詳細な解説書です。執筆にあたって,著者は実際のプログラムを多数開発し,動作を確認済み。また,その際,さまざまな要注意点にも気づいていますので,これについても本文で触れています(この情報は英文の資料にも記されていません)。すべてのサンプルと技術資料を付属のCD-ROMに収録しました。

こんな方におすすめ

  • 以前のWindowsでドライバ開発の経験がある方
  • CやC++での開発経験がある方
  • Windows Vistaでの開発方法を身につけたい方

この書籍に関連する記事があります!

プログラム開発の醍醐味! ――カーネルソフトウェア開発
カーネルソフトウェアとは,オペレーティングシステムやハードウェア制御用のソフトウェアなどといった,コンピュータシステムの中核をなす基本ソフトウェアを指します。

目次

  • はじめに
  • 付属CD-ROMの使い方

■基礎編

第1章 カーネルソフトウェアを開発するための基礎知識

  • 1-1 オペレーティングシステムとWindows
    • 1-1-1 オペレーティングシステムとは?
    • 1-1-2 カーネルソフトウェアとは?
    • 1-1-3 Windowsのおおまかな歴史
    • 1-1-4 2つの動作モード
    • 1-1-5 特権レベルと動作の仕組み
    • 1-1-6 マルチタスクオペレーションの実現方法
    • 1-1-7 メモリの利用方法
  • 1-2 Windows Vistaのなかのカーネルソフトウェア
    • 1-2-1 カーネルソフトウェアの必要性
    • 1-2-2 カーネルソフトウェアを開発するための準備
    • 1-2-3 Windowsのバージョン番号について
    • 1-2-4 Windowsビルド番号の表示方法
    • 1-2-5 I/Oマネージャとカーネルモードデバイスドライバ
  • 1-3 カーネルソフトウェアに関するWindows Vistaの改良点・変更点
    • 1-3-1 カーネルソフトウェア開発の容易化
    • 1-3-2 ユーザーモードにおけるデバイス制御
    • 1-3-3 Windowsのエラー報告機能
    • 1-3-4 Vistaに追加されたDriverStore
    • 1-3-5 新たなフレームワークの採用
  • 1-4 新しいドライバモデルWDFの特徴
    • 1-4-1 WDFがめざすもの
    • 1-4-2 デバイスとドライバの関連
    • 1-4-3 デバイスオブジェクトの階層構造
    • 1-4-4 ドライバモデルの選択優先順位と選択方法
    • 1-4-5 開発において推奨されるドライバモデル
    • 1-4-6 WDMドライバモデルに対するWDFドライバモデル
    • 1-4-7 新しいWDFオブジェクトモデル
    • 1-4-8 WDMドライバで用いたオブジェクトの構造体
    • 1-4-9 プラグアンドプレイと電源管理のサポート
    • 1-4-10 IRP(I/O Request Packet)の構造
    • 1-4-11 WDMにおけるIRP Major Functionの発生要因
    • 1-4-12 KMDFによってサポートされるデバイス
    • 1-4-13 ユーザーモードでサポートされるデバイス
    • 1-4-14 カーネルソフトウェアによる同期処理
    • 1-4-15 ユーザーモードドライバとセキュリティ
  • 1-5 Windows Vista上でのハードウェア制御の仕組み
    • 1-5-1 KMDFオブジェクトインターフェースの構成要素
    • 1-5-2 KMDF入出力要求と制御
    • 1-5-3 各種オブジェクトの取り扱い方法

第2章 カーネルソフトウェアの作成方法

  • 2-1 マイクロソフトの開発ツールと入手方法
    • 2-1-1 SDK
    • 2-1-2 DDK
    • 2-1-3 IFS
    • 2-1-4 HCT
    • 2-1-5 WDK
    • 2-1-6 WDMからWDFへの進化とDDKからWDKの利用
    • 2-1-7 開発ツールの入手とMSDN加入方法
    • 2-1-8 DDK/WDKの選び方
  • 2-2 ドライバ開発の情報入手先
    • 2-2-1 MSDNライブラリヘルプの利用
    • 2-2-2 WDKのヘルプの利用
    • 2-2-3 マイクロソフトのWebサイトから得られる各種ドキュメント
    • 2-2-4 WDKによるドライバ開発
  • 2-3 WDKによるKMDFドライバの作成方法
    • 2-3-1 KMDFツール一覧
    • 2-3-2 KMDFドライバの主な関数
    • 2-3-3 サンプルコードから見たKMDFドライバの改良点
    • 2-3-4 カーネルモードWDFドライバのビルドおよびデバッグ
    • 2-3-5 カーネルモードWDFドライバのインストール
  • 2-4 Windows2000/XPカーネルソフトウェアを? Vista用に移植する方法
    • 2-4-1 WDMからKMDFに移植可能なドライバ
    • 2-4-2 ドライバを移植する利点
    • 2-4-3 移植の方法と手順
    • 2-4-4 DriverEntryルーチン
    • 2-4-5 EvtDriverDeviceAdd コールバック
    • 2-4-6 KMDFにおいてサポートされないI/O要求
    • 2-4-7 移植時におけるKMDFドライバのインストール手順
    • 2-4-8 移植についての注意点
  • 2-5 WDKによるUMDFドライバの作成方法
    • 2-5-1 ユーザーモードドライバの特徴
    • 2-5-2 UMDFドライバ作成の身近な資料
    • 2-5-3 UMDFドライバの構造
    • 2-5-4 ECHOサンプルUMDFドライバの構造
    • 2-5-5 UMDFドライバに必要な機能
    • 2-5-6 UMDFドライバにおけるI/O要求の操作
    • 2-5-7 UMDFドライバのビルドとテスト
    • 2-5-8 UMDFドライバのデバッグ
    • 2-5-9 UMDFドライバのインストール

第3章 カーネルソフトウェアのデバッグとテスト方法

  • 3-1 デバッグツールとデバッグ方法
    • 3-1-1 デバッガ,デバッギと開発環境
    • 3-1-2 代表的なデバッグツール
    • 3-1-3 ローカルデバッグの実例
    • 3-1-4 リモートデバッグの実例
    • 3-1-5 システム情報の確認
    • 3-1-6 レジストリエディタの操作
    • 3-1-7 デバッグ用にカスタマイズする方法
    • 3-1-8 デバッグに便利な小道具
  • 3-2 ソフトウェアのさまざまなインストール方法
      • 3-2-1 デバイスマネージャによるインストール方法
      • 3-2-2 DevConコマンドラインユーティリティによるインストール方法
      • 3-2-3 DIFxによるインストールの概要
      • 3-2-4 DIFxインストーラの具体的な作成法
      • 3-2-5 KMDFドライバのインストールトラブル解決方法
      • 3-2-6 Windowsのドライバ署名の要件
    • 3-3 カーネルソフトウェアを呼び出すアプリケーションの作成
        • 3-3-1 WDKによるアプリケーションの作成方法
        • 3-3-2 Visual C++によるアプリケーションの作成方法
        • 3-3-3 ユーザーDeviceIoControlとカーネルWdfEvtIoDeviceControl
        • 3-3-4 管理者権限による起動でテスト実行

      第4章 カーネルソフトウェアの評価方法

      • 4-1 カーネルソフトウェア認証と評価
        • 4-1-1 WHDCからのドライバ情報の入手
        • 4-1-2 HCTによるテスト
        • 4-1-3 WHQLからのドライバ認証
      • 4-2 カーネルソフトウェアパフォーマンスの評価
        • 4-2-1 コントロールパネル「システムパフォーマンスの評価」
        • 4-2-2 解析ツールの利用
        • 4-2-3 Driver Verifierによるパフォーマンスの評価
        • 4-2-4 Event Tracing
        • 4-2-5 PREfastによるパフォーマンスの評価
        • 4-2-6 Static Driver Verifier

      ■実践編

      第5章 カーネルソフトウェア開発の実態

      • 5-1 デバッグ環境の構築
        • 5-1-1 Vistaシステム要件
        • 5-1-2 Vistaインストールの概要
        • 5-1-3 マルチブートとBOOT.INIの無効扱い
        • 5-1-4 BCDの詳細
        • 5-1-5 ブートオプション編集ツール(BcdEdit.exe)
        • 5-1-6 開発環境のセットアップ164
      • 5-2 カーネルソフトウェアのビルド方法
        • 5-2-1 コマンドプロンプトでビルドする理由
        • 5-2-2 コマンドプロンプトの特徴
        • 5-2-3 コンパイラ言語の選択
        • 5-2-4 管理者権限による起動でビルドを実行
        • 5-2-5 WDKによるカーネルソフトウェアのビルド方法
        • 5-2-6 統合環境によるカーネルソフトウェアビルド方法
      • 5-3 WDKを用いたVistaカーネルソフトウェア開発の基礎
        • 5-3-1 事例選択の条件
        • 5-3-2 演習の奨め
        • 5-3-3 カーネルソフトウェア開発における絶対厳守の注意事項

      第6章 開発事例

      • 6-1 WDKに収録されているサンプル開発事例
        • 6-1-1 RAMDISK:ソフトウェアだけからなるRAMディスクドライバ
        • 6-1-1 Echo:UMDFの使い方を体得するタイニー版UMDFサンプルドライバ
      • 6-2 オリジナル開発事例
        • 6-2-1 DebugTool:ユーザーモード/カーネルモードデバッグツール
        • 6-2-2 WdfSimple:架空の一般的なVista kmdfドライバ
        • 6-2-3 Music:スピーカを制御する音楽演奏ソフトウェア
        • 6-2-4 LedControl:キーボードLEDランプ点灯/消灯制御ドライバ
        • 6-2-5 DipSwitch:ソフトウェアディップスイッチ制御ドライバ

      • おわりに

      付録

      • 1 Win32エラーコード
      • 2 ステータスコード
      • 3 アスキーコード一覧表
      • 4 音階と周波数
      • 5 参照リソース
      • 6 カーネルソフトウェア開発者のための情報
      • 7 WDKツリー構造