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。
相关主题