XPDM と WDDM の比較

Direct3D 9 API は、インストールされたオペレーティング システムに応じて Windows XP ディスプレイ ドライバー モデル (XPDM) と Windows Vista ディスプレイ ドライバー モデル (WDDM) のどちらでも動作します。この 2 つのドライバー モデルでは、Direct3D API の動作に多少の違いがあります。

  • セキュリティで保護されたデスクトップ
  • リモート デスクトップ
  • Windows サービス

セキュリティで保護されたデスクトップ

セキュリティで保護されたデスクトップは、ユーザーが自分のデスクトップをロックしたとき (Windows+L)、スクリーン セーバーが始動したとき (ログイン中のユーザーがいないとき)、または既定でユーザー アカウント コントロールがプロンプトを表示したときに必ず有効になります。セキュリティで保護されたデスクトップが有効になると、HAL デバイスにはアクセスできなくなります。

XPDM と WDDM の相違点:

Direct3D9 HAL デバイスを作成しようとすると D3DERR_NOT_AVAILABLE で失敗し、既存の Direct3D 9 デバイスからデバイス喪失のリターン コードが Present に示されます。

Direct3D9Ex API および Direct3D 10 API は、セキュリティで保護されたデスクトップが有効な場合でもデバイスを正常に作成できます。Present (IDirect3D9Ex または DXGI) を呼び出すと、デスクトップが現在使用できないことを示すステータス コードが返されます。

リモート デスクトップ

リモート デスクトップが有効なとき、ディスプレイは表示する側のマシンによって操作され、ホスト側のマシンがネットワーク経由で情報を送信します。

XPDM と WDDM の相違点:

XPDM では、Direct3D 9 デバイスをリモート デスクトップ上に作成する試みはすべて失敗します。

WDDM では、リモート デスクトップ セッションを介した HAL デバイスの作成をリモート デスクトップがサポートしています。

Windows サービス

Windows サービスとは、バックグラウンドで動作し、サービス コントロール マネージャー (SCM) によって制御されるプロセスです。サービスはアクティブなデスクトップから独立して動作するため、ユーザーとの対話機能は限定されています。

XPDM と WDDM の相違点:

WDDM ではセキュリティ対策として、セッション 0 の分離により、サービスがどのユーザー デスクトップにもアクセスできないようにしています。このため、Direct3D 9 HAL デバイスを Windows サービスから利用することは不可能です。

以上の相違点を次の表にまとめます。

XPDMWDDM (Direct3D9)WDDM(Direct3D9Ex/Direct3D10)
セキュリティで保護されたデスクトップ
NULLREF
HAL不可不可
REF
リモート デスクトップ
NULLREF不可
HAL不可
REF
Windows サービス
NULLREF不可
HAL不可不可不可
REF

XPDM、WDDM、Direct3D9Ex、および Direct3D 10 の詳細については、「Windows Vista のグラフィック API」を参照してください。