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 隔离可确保服务无权访问任何用户桌面作为安全措施,因此,Direct3D 9 HAL 设备永远不会从 Windows 服务获得。

 

注意

不能在 Windows 服务中使用 Direct3D 9。 有关详细信息,请参阅 Microsoft 支持文章978635

 

下表总结了此处列出的差异。

安全桌面 XPDM WDDM (Direct3D9) WDDM (Direct3D9Ex/Direct3D10)
NULLREF
HAL
REF
远程桌面
NULLREF
HAL
REF
Windows 服务
NULLREF
HAL
REF
WARP10 空值 空值

 

有关 XPDM、WDDM、Direct3D9Ex 和 Direct3D 10 的详细信息,请参阅 Windows 中的图形 API

Direct3D 设备