为什么 EnumDisplayDevices 返回这么多结果?

时间:2021-02-23 11:58:09

标签: c windows winapi

我有一台带有 Nvidia 卡和 Intel 卡的 Windows 计算机。每个 GPU 连接一个屏幕。

然后我用下面的代码列出所有的显示设备:

DISPLAY_DEVICE lDevice;
lDevice.cb = sizeof(DISPLAY_DEVICE);
int i = 0;
while (EnumDisplayDevices(NULL, i, &lDevice, EDD_GET_DEVICE_INTERFACE_NAME) != 0) {
    printf(
        "i: %d\n"
        "cb: %d\n"
        "DeviceName: %s\n"
        "DeviceString: %s\n"
        "StateFlags: %d\n"
        "DeviceID: %s\n"
        "DeviceKey: %s\n",
        i,
        lDevice.cb,
        lDevice.DeviceName,
        lDevice.DeviceString,
        lDevice.StateFlags,
        lDevice.DeviceID,
        lDevice.DeviceKey
    );
    i++;
}

这是输出:

i: 0
cb: 424
DeviceName: \\.\DISPLAY1
DeviceString: Intel(R) HD Graphics 4600
StateFlags: 134217729
DeviceID: 
DeviceKey: \Registry\Machine\System\CurrentControlSet\Control\Video\{3C36D58A-5C95-11EB-ACEC-B083FE9A7909}\0000
i: 1
cb: 424
DeviceName: \\.\DISPLAY2
DeviceString: Intel(R) HD Graphics 4600
StateFlags: 0
DeviceID: 
DeviceKey: \Registry\Machine\System\CurrentControlSet\Control\Video\{3C36D58A-5C95-11EB-ACEC-B083FE9A7909}\0001
i: 2
cb: 424
DeviceName: \\.\DISPLAY3
DeviceString: NVIDIA GeForce GTX 1060 3GB
StateFlags: 5
DeviceID: 
DeviceKey: \Registry\Machine\System\CurrentControlSet\Control\Video\{46FC15D3-C98C-11E9-ACCA-D1E7BCEC4649}\0000
i: 3
cb: 424
DeviceName: \\.\DISPLAY4
DeviceString: NVIDIA GeForce GTX 1060 3GB
StateFlags: 0
DeviceID: 
DeviceKey: \Registry\Machine\System\CurrentControlSet\Control\Video\{46FC15D3-C98C-11E9-ACCA-D1E7BCEC4649}\0001
i: 4
cb: 424
DeviceName: \\.\DISPLAY5
DeviceString: NVIDIA GeForce GTX 1060 3GB
StateFlags: 0
DeviceID: 
DeviceKey: \Registry\Machine\System\CurrentControlSet\Control\Video\{46FC15D3-C98C-11E9-ACCA-D1E7BCEC4649}\0002
i: 5
cb: 424
DeviceName: \\.\DISPLAY6
DeviceString: NVIDIA GeForce GTX 1060 3GB
StateFlags: 0
DeviceID: 
DeviceKey: \Registry\Machine\System\CurrentControlSet\Control\Video\{46FC15D3-C98C-11E9-ACCA-D1E7BCEC4649}\0003

我不明白为什么有 6 个显示设备,2 个用于 Intel 卡,4 个用于 Nvidia 卡。我想我可能误解了显示设备的概念。

完整代码如下:https://gist.github.com/tuket/0cc2f9b77a4a6a82a72655941547e292

0 个答案:

没有答案
相关问题