2016-06-06 6 views
0

Как называется этот метод на Nvidia GPU:Вызов NvAPI_GPU_SetEDID t на Nvidia карты

NVAPI_INTERFACE NvAPI_GPU_SetEDID (
    NvPhysicalGpuHandle hPhysicalGpu, 
    NvU32 displayOutputId, 
    NV_EDID * pEDID 
) 

Src: http://docs.nvidia.com/gameworks/content/gameworkslibrary/coresdk/nvapi/group__gpu.html#ga6a41b31dd9743120213435d985f8fbcf

Мне нужно выполнить команду для удаления всех EDID набор на все DisplayOutputs на нашем новые графические карты Quadro. На основе документации API, я попытался найти NvPhysicalGpuHandle и наткнулся на этот проект/библиотека:

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

Это не имеет метод, мне нужно NvAPI_GPU_SetEDID

Я не аппаратный программист, я просто нужно иметь возможность вызвать эту команду. есть идеи? Можно ли это сделать, используя nvapi.dll/nvapi64.dll через pinvoke или что-то в этом роде?

ответ

0

Я лично не тестировал это, но вы можете попробовать библиотеку и посмотреть, может ли она установить информацию EDID без каких-либо проблем, если она не удалась, пожалуйста, откройте проблему.

https://github.com/falahati/NvAPIWrapper


Вот как вы должны это сделать,

  1. Во-первых, вам нужно найти правильный DisplayDevice или GPUOutput, что вы хотите написать EDID информацию. Существует несколько способов сделать это.
    • Получить список всех PhysicalGPU с в системе с помощью статического метода NvAPIWrapper.GPU.PhysicalGPU.GetPhysicalGPUs(), а затем выберите PhysicalGPU вы желаете на основе вашей логики. Найдя нужное PhysicalGPU, воспользуйтесь методом NvAPIWrapper.GPU.PhysicalGPU.GetDisplayDevices(), чтобы получить список всех подключенных DisplayDevice s к этому графическому процессору и сохранить правильный номер в переменной.
    • Вместо поиска подключенного DisplayDevice s, вы также можете обратиться за GPUOutput. Как и раньше, сначала вам нужно найти правильный PhysicalGPU, а затем вы можете получить список всех GPUOutput с помощью NvAPIWrapper.GPU.PhysicalGPU.ActiveOutputs и сохранить направо GPUOutput в переменной.
    • Другой способ найти нужный DisplayDevice - это перечислить список всех Displays. Для этого вам необходимо использовать статический метод NvAPIWrapper.Display.Display.GetDisplays(). Это возвращает массив Display s. Затем, используя свойство NvAPIWrapper.Display.Display.DisplayDevice, вы можете получить соответствующий DisplayDeviceDisplay.
  2. После нахождения права DisplayDevice или GPUOutput, вы должны использовать метод NvAPIWrapper.GPU.PhysicalGPU.WriteEDIDData(). Этот метод позволяет вам записывать данные EDID, хранящиеся в массиве байтов, в DisplayDevice или GPUOutput, которые вы выбрали ранее.

Примечание: Обязательно запишите NVIDIAApiException и проверьте наличие имущества NVIDIAApiException.Status в случае, если что-то пошло не так.

 Смежные вопросы

  • Нет связанных вопросов^_^