首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >远程桌面最小化时调用GetDeviceCaps失败

远程桌面最小化时调用GetDeviceCaps失败
EN

Stack Overflow用户
提问于 2022-08-15 11:26:01
回答 1查看 59关注 0票数 0

我试着用NVIDIARTX3090卡在windows 10虚拟机上运行一个d3d9演示。此windows vm通过windows远程桌面连接。这是我的演示:

代码语言:javascript
运行
复制
#include <Windows.h>
#include <d3d9.h>
#include <stdio.h>

int main() {
    // sleep 5 seconds and manually minimize the remote desktop window immediately after the sleep operation
    Sleep(5000);

    IDirect3D9* pD3d9 = nullptr;
    
    pD3d9 = Direct3DCreate9(D3D9b_SDK_VERSION);
    
    UINT adapters = pD3d9->GetAdapterCount();

    for (UINT i = 0; i < adapters; i++) {
        D3DCAPS9 caps = {};
        HRESULT res = pD3d9->GetDeviceCaps(i, D3DDEVTYPE_HAL, &caps);
        if (FAILED(res)) {
            printf("Call GetDeviceCaps Failed:%x\n", res);
            break;
        }
    }

    pD3d9->Release();
    return 0;
}

当远程桌面是窗口或全屏模式时,GetDeviceCaps返回S_OK。但是,当在最小化的远程桌面上运行此演示时,GetDeviceCaps返回一个错误代码:D3DERR_NOTAVAILABLE

有人知道是什么导致这个电话失败的吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-17 17:24:02

当“最小化”遗留Direct3D 9无法访问GPU时。这是模拟遗留行为的一部分。Direct3D9Ex或更高版本是WDDM感知API,支持在“屏幕锁定”或“最小化”的情况下访问GPU (如果遗留Direct3D没有)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73360348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档