如何在Nvidia GPU上调用此方法:
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或其他方式实现吗?
发布于 2017-04-16 20:07:16
我个人没有测试这个,但是您可以尝试这个库,看看它是否可以设置EDID信息,没有任何问题,如果它失败了,请打开一个问题。
https://github.com/falahati/NvAPIWrapper
你应该这么做,
DisplayDevice或GPUOutput。有多种方法可以做到这一点。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。
DisplayDevice或GPUOutput之后,应该使用NvAPIWrapper.GPU.PhysicalGPU.WriteEDIDData()方法。此方法允许您将存储在字节数组中的EDID数据写入您之前选择的DisplayDevice或GPUOutput。注意:确保捕获NVIDIAApiException并检查NVIDIAApiException.Status属性,以防发生错误。
https://stackoverflow.com/questions/37659417
复制相似问题