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 设备都将指示当前设备上的丢失设备返回代码。

  • 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 是的 是的 是的
哈尔 是的
裁判 是的 是的 是的
远程桌面
NULLREF 是的 是的
哈尔 是的 是的
裁判 是的 是的 是的
Windows 服务
NULLREF
哈尔
裁判
WARP10 N/A N/A 是的

 

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

Direct3D 设备