私の目標は、C# を使用してマルチ GPU システム (たとえば、統合された Intel HD グラフィックス+ ディスクリートAMD Radeonカード) でディスクリート GPU を検出することです。
私は通常、そのコードを使用しています:
String gpuName = String.Empty;
ManagementObjectCollection objectCollection =
new ManagementObjectSearcher("SELECT Name FROM Win32_VideoController").Get();
foreach (ManagementObject managementObject in objectCollection)
{
foreach (PropertyData propertyData in managementObject.Properties)
{
if ((gpuName == String.Empty) || (propertyData.Value.ToString().ToLower().IndexOf("intel") == -1))
{
gpuName = propertyData.Value.ToString();
break;
}
}
}
上記の私の例では、それは魅力のように機能します。
ただし、 AMD、VIAなど (すべてのメーカーを正確に把握しているわけではありません) の統合カードには適していません。
では、統合されたすべての GPU を遮断するための普遍的なアプローチはありますか?