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