Получение аппаратного GUID для видеоадаптера в C # - PullRequest
3 голосов
/ 25 июля 2011

Я разрабатываю приложение для запуска 3D-игры на Windows. Файл конфигурации «ini» требует, чтобы пользователь указал GUID оборудования для нужного устройства, например, GUID идентификатора устройства, возвращенный dxdiag.exe.

Я пытаюсь перечислить доступные адаптеры в системе, позволить пользователю выбрать один и загрузить GUID аппаратного обеспечения этого устройства в INI-файл.

Я исследовал много методов для попытки этого. Я попытался использовать класс System.Management, который возвращает GUID класса, но не конкретный GUID драйвера. Я пытался использовать собственные вызовы функций SetupAPI.h, которые также не могут перечислить конкретный идентификатор GUID идентификатора устройства. Я попытался изучить реестр, чтобы увидеть, находится ли GUID там. Не повезло.

Моя лучшая идея, вероятно, заключалась в том, чтобы использовать библиотеку Managed DirectX для возврата нужного мне GUID, учитывая, что, вероятно, именно так и поступает dxdiag. Мне удалось перечислить и собрать информацию об оборудовании для каждого драйвера с помощью интерфейса SharpDX Managed DirectX для приложений .NET (я нацеливаюсь на Framework 3.5), но, опять же, я не смог вернуть тот же GUID, который возвращает dxdiag.

Я действительно застрял в поисках решения. Помощь

1 Ответ

3 голосов
/ 25 июля 2011

Успел решить сам.

Решил, что лучшим способом решить эту проблему было использование DirectX.Импортированные библиотеки DX, изменил мое приложение на x86.Код, который я искал, был:

Manager.Adapters[0].Information.DeviceIdentifier
...