XPDM 與 WDDM
Direct3D 9 API 會根據安裝的作業系統,在 Windows XP 顯示器驅動程式模型 (XPDM) 或 Windows Vista 顯示驅動程式模型 (WDDM) 上運作。 Direct3D API 在兩個驅動程式模型上的行為有一些差異。
安全桌面
每當發生下列任何情況時,安全桌面都會處於作用中狀態:使用者鎖定其桌面 (Windows+L) 、螢幕保護裝置程式會在沒有使用者登入) 時啟動 (,或在使用者帳戶控制顯示提示時預設為啟用。 當安全桌面處於作用中狀態時,無法存取 HAL 裝置。
XPDM 與 WDDM 之間的差異:
嘗試建立 Direct3D9 HAL 裝置將會因為 D3DERR_NOT_AVAILABLE) 而失敗 (,而任何現有的 Direct3D 9 裝置都會在 Present 上指出遺失的裝置傳回碼。
Direct3D9Ex 和 Direct3D 10 API 可以在安全桌面作用中時成功建立裝置,而任何對 Present (IDirect3D9Ex 或 DXGI) 的呼叫都會傳回狀態碼,指出桌面目前無法使用。
遠端桌面
當遠端桌面處於作用中狀態時,檢視電腦會透過網路傳送資訊的電腦來處理顯示器。
XPDM 與 WDDM 之間的差異:
在 XPDM 上,所有嘗試在遠端桌面上建立 Direct3D 9 裝置都會失敗。
在 WDDM 上,遠端桌面支援透過遠端桌面會話建立 HAL 裝置。
Windows 服務
Windows 服務是在背景中執行的程式,由服務控制管理員 (SCM) 控制。 服務與使用中桌面無關,因此能夠與使用者互動有限。
XPDM 與 WDDM 之間的差異:
- 在 WDDM 上,會話 0 隔離可確保服務無法存取任何使用者桌面作為安全性措施,因此,Windows 服務永遠不會提供 Direct3D 9 HAL 裝置。
注意
您無法在 Windows 服務中使用 Direct3D 9。 如需詳細資訊,請參閱 Microsoft 支援文章978635。
下表摘要說明這裡所列的差異。
安全桌面 | XPDM | WDDM (Direct3D9) | WDDM (Direct3D9Ex/Direct3D10) |
---|---|---|---|
NullREF | Yes | Yes | Yes |
HAL | No | No | Yes |
REF | Yes | Yes | Yes |
遠端桌面 | |||
NullREF | No | Yes | Yes |
HAL | No | Yes | Yes |
REF | Yes | Yes | Yes |
Windows 服務 | |||
NullREF | No | No | No |
HAL | No | No | No |
REF | No | No | No |
WARP10 | N/A | N/A | 是 |
如需 XPDM、WDDM、Direct3D9Ex 和 Direct3D 10 的詳細資訊,請參閱 Windows 中的圖形 API。
相關主題