Windowsデバイスドライバプログラミング 勉強記録2
※本記事は勉強しつつ書いていますので、不正確な情報が含まれる可能性がありますので予めご了承ください。
Windowsデバイスドライバの変遷
①95系⇒仮想デバイスドライバ(VxD) NT系⇒NTカーネルドライバ まったく異なるドライバモデル
↓
②2000(NT系) NTカーネルをベースにWDMを導入
98/Me 従来の仮想デバイスドライバ+ WDMに対応
※NT系と98/MeでWDMデバイスドライバはソースコードレベル互換
↓
③XP WDMに統一
↓
④Vista WDMに加えてWDF(Windows Driver Foundation;UMDF、KMDF)を追加
↓
⑤7,8,10 基本部分はVistaと同様
カーネル構成とモード
カーネルモード/ユーザモード
Windowsシステム構成においてソフトウェアは管理者権限の有無によりカーネルモード/ユーザモードに分けられる
「権限」とはリソース(メモリ、周辺機器)へのアクセス権
MMU(Memory Management Unit)
仮想メモリを空間を提供するIntel CPU機能。メモリマネージャが行う。
⇒仮想メモリ-実メモリ変換テーブルで変換を行う。
MMU変換ができなかったときに「〇〇は動作を停止しました」とメッセージが出る
ユーザモード属性のソフトウェアは仮想メモリしかアクセスできない。
デバイスドライバは外部の周辺機器とデータ通信を行うため、MMUを使用しないで実メモリにアクセスできるカーネルモードで
ある必要がある。(周辺機器は仮想メモリアドレスでアクセスできないため)
Windowsデバイスドライバフレームワークの種類
WDM
WDM(Windows Driver Model)
・従来からある基本的なデバイスドライバーのフレームワーク
KMDF
KMDF(Kernel Mode Driver Model Framework):
WDMを使いやすく定型処理をライブラリとしてより高度な機能を提供するフレームワーク
イメージとしてはWin32 APIに対するMFCのような認識。
UMDF
UMDF(User Mode Driver Model Framework): 実際のデバイス制御をおこなうカーネル部と通信を行うことにより機能を実現する、ユーザモードのフレームワーク
・実際の実行はカーネル側のKernel Driver for UMDFで行われる
・低速
・Driver Manager提供するフレームワーク上でC++,COMで実装を行う。
・バグがあってもシステム安定性に影響を与えない
次回から記録について
箇条書きレベルでもまとめるのは大変であるし、下手すると丸写しに近いものなってしまうのでやり方を変えます。
学習した内容を一部内容をピックアップしての記載とします。具体的には特に難しかったこと、印象に残ったこと、さらに調べたこと、気になったこと、疑問点、感想等を書ければと思います。ただ、部分的にはまとめもします。
参考文献
Author And Source
この問題について(Windowsデバイスドライバプログラミング 勉強記録2), 我々は、より多くの情報をここで見つけました https://qiita.com/ry0tan/items/10740c0844a41110d7e0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .