APIとの関係.ドライバは、OSの一部として機能する。ユーザープロセスでのAPI呼び出しをきっかけに、ドライバのコードが呼び出される。しかしドライバのコード自身は、ユーザープロセスではなく、カーネルコードの一部として動作する。内部構成.のOSでは、ハードウェア同士で機能が似たものは、まとめてひとつのクラス(デバイスクラス)として扱う仕組みも存在する。この場合のドライバはドライバモジュールによる階層構造になっており、あるデバイスクラスで共通の処理をするクラスドライバ()はOS側で供給され、デバイスベンダーが各デバイス固有のミニドライバ()を作製する。これにより、ドライバの開発工数を削減できるようになっている。上位/下位のドライバペアは他の名称としてポートドライバ/ミニポートドライバ、クラスドライバ/ミニクラスドライバなどと呼ばれる場合もある。デバイスドライバがクラスごとに共通化されることで、特定のハードウェアが独自に持っている機能が使えなくなる、あるいは使いにくくなるという欠点もある。新規技術開発で出現したハードウェアでは、その機能をどのようにOSが抽象化するか(クラス化するか)が決まるまで、ミニドライバの開発が待たされることもある。この場合は、ハードウェア毎にネイティブなデバイスドライバを、階層化されないドライバ(モノリシックドライバ)として作成すれば、早期にドライバを提供することができる。デバイスドライバの内部構造は、OSごとに大きく異なる。以上は、ハードウェアに合わせて、ドライバを各種OSに対して用意するという方針である。これとは逆に、PDAなどの開発現場では、ハードウェアの仕様をできるだけ同じにすることでデバイスドライバの開発の手間を省く、という方針が採用されているケースもある。開発.