Windows - 既存のドライバモデルを調べよう

Mona のドライバモデルをきちんと決めるべく既存の OS のドライバモデルを調べていこう。
まずは Windows 。ほとんど Wikipedia からの情報。求む詳しい人の声。

WDF(Windows Driver Foundation)

  • WDM の後継
    • less complicated and less code
    • WDM は細部まで理解しないといけなかったがそこを改良
  • オブジェクト指向
  • "opt-in" model
    • 正しいドライバの一部だけを extend/override することができる
  • Kernel Mode Driver Framework (KMDF)
  • User Mode Driver Framework (UMDF)
    • C++ or COM
    • DLLとして
    • static verification tools 付属

WDM におけるドライバの種類

  • Device function drivers
  • Bus drivers
  • Filter drivers

動き

  • Driver Entry が WDF から呼ばれる
  • ドライバの動的追加
    • PnP manager から呼び出される
      • ドライバのハンドル
      • init 構造体へのポインタ

機能

  • Plug and Play
  • I/O queues
  • DMA
  • 同期

未解決

  • ドライバ開発者が書くべきコードの概略
  • カーネルへのロード方法
    • バイナリ形式
    • 動作メモリ空間
  • 割り込みの扱い
    • 優先度
    • タスクスイッチ?