WDM デバイス オブジェクトには、次の 3 種類があります。
物理デバイス オブジェクト (PDO) – バス ドライバーへのバス上のデバイスを表します。
機能デバイス オブジェクト (FDO) – 関数ドライバーへのデバイスを表します。
フィルター デバイス オブジェクト (フィルター DO) – フィルター ドライバーへのデバイスを表します。
3 種類のデバイス オブジェクトはすべて DEVICE_OBJECT の種類ですが、異なる方法で使用され、異なるデバイス拡張機能を持つことができます。
ドライバーは、デバイス オブジェクト (IoCreateDevice) を作成し、デバイス スタック (IoAttachDeviceToDeviceStack) に接続することで、デバイスの I/O を処理するドライバーのスタックに追加します。 IoAttachDeviceToDeviceStack は、デバイス スタックの現在の最上位を決定し、新しいデバイス オブジェクトをデバイス スタックの一番上にアタッチします。