首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Nvidia卡上调用NvAPI_GPU_SetEDID

在Nvidia卡上调用NvAPI_GPU_SetEDID
EN

Stack Overflow用户
提问于 2016-06-06 13:57:54
回答 1查看 1.4K关注 0票数 1

如何在Nvidia GPU上调用此方法:

代码语言:javascript
复制
NVAPI_INTERFACE NvAPI_GPU_SetEDID (
    NvPhysicalGpuHandle hPhysicalGpu,
    NvU32   displayOutputId,
    NV_EDID *   pEDID 
)

Src:gpu.html#ga6a41b31dd9743120213435d985f8fbcf

我需要执行上面的命令,以删除所有DisplayOutputs设置在我们的新象限图形卡上的所有EDID。基于API文档,我尝试搜索NvPhysicalGpuHandle并发现了这个项目/库:

https://github.com/openhardwaremonitor/openhardwaremonitor/blob/master/Hardware/Nvidia/NVAPI.cs

这没有我需要NvAPI_GPU_SetEDID的方法

我不是硬件程序员,我只需要能够调用这一个命令。有什么想法吗?这可以通过nvapi.dll/nvapi64.dll通过pinvoke或其他方式实现吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-16 20:07:16

我个人没有测试这个,但是您可以尝试这个库,看看它是否可以设置EDID信息,没有任何问题,如果它失败了,请打开一个问题。

https://github.com/falahati/NvAPIWrapper

你应该这么做,

  1. 首先,您需要找到要写入EDID信息的正确的DisplayDeviceGPUOutput。有多种方法可以做到这一点。
    • 使用PhysicalGPU静态方法获取系统中所有NvAPIWrapper.GPU.PhysicalGPU.GetPhysicalGPUs()的列表,然后根据您的逻辑选择您想要的PhysicalGPU。在找到正确的PhysicalGPU之后,使用NvAPIWrapper.GPU.PhysicalGPU.GetDisplayDevices()方法获取到该GPU的所有连接DisplayDevice的列表,并将正确的DisplayDevice存储在变量中。
    • 不需要搜索连接的DisplayDevice,也可以选择GPUOutput,就像以前一样,您首先需要找到正确的PhysicalGPU,然后可以使用NvAPIWrapper.GPU.PhysicalGPU.ActiveOutputs属性获得所有GPUOutput的列表,并将正确的GPUOutput存储在变量中。
    • 另一种找到正确DisplayDevice的方法是查找所有Displays的列表。为此,您需要使用NvAPIWrapper.Display.Display.GetDisplays()静态方法。这将返回一个Display的数组,然后使用NvAPIWrapper.Display.Display.DisplayDevice属性,您可以获得Display的对应DisplayDevice

  1. 在找到正确的DisplayDeviceGPUOutput之后,应该使用NvAPIWrapper.GPU.PhysicalGPU.WriteEDIDData()方法。此方法允许您将存储在字节数组中的EDID数据写入您之前选择的DisplayDeviceGPUOutput

注意:确保捕获NVIDIAApiException并检查NVIDIAApiException.Status属性,以防发生错误。

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

https://stackoverflow.com/questions/37659417

复制
相关文章

相似问题

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