Метод IDXGIFactory1::EnumAdapters1 (dxgi.h)
Перечисляет оба адаптера (видеоадаптеры) с выходными данными или без нее.
Синтаксис
HRESULT EnumAdapters1(
UINT Adapter,
[out] IDXGIAdapter1 **ppAdapter
);
Параметры
Adapter
Тип: UINT
Индекс адаптера для перечисления.
[out] ppAdapter
Тип: IDXGIAdapter1**
Адрес указателя на интерфейс IDXGIAdapter1 в позиции, заданной параметром Adapter .
Этот параметр не должен иметь значение NULL.
Возвращаемое значение
Тип: HRESULT
В случае успешного выполнения возвращает S_OK; В противном случае возвращает DXGI_ERROR_NOT_FOUND , если индекс больше или равен числу адаптеров в локальной системе, или DXGI_ERROR_INVALID_CALL , если параметр ppAdapter имеет значение NULL.
Комментарии
Этот метод не поддерживается DXGI 1.0, который поставляется в Windows Vista и Windows Server 2008. Требуется поддержка DXGI 1.1, которая доступна в Windows 7, Windows Server 2008 R2, а также в качестве обновления до Windows Vista с пакетом обновления 2 (SP2) (KB 971644) и Windows Server 2008 (KB 971512).
При создании фабрики фабрика перечисляет набор адаптеров, доступных в системе. Поэтому при изменении адаптеров в системе необходимо уничтожить и повторно создать объект IDXGIFactory1 . Количество адаптеров в системе изменяется при добавлении или удалении дисплея карта, а также при закреплении или отстыковке ноутбука.
Если метод EnumAdapters1 завершается успешно и заполняет параметр ppAdapter адресом указателя на интерфейс адаптера, EnumAdapters1 увеличивает количество ссылок интерфейса адаптера. Завершив работу с интерфейсом адаптера, вызовите метод Release для уменьшения количества ссылок перед уничтожением указателя.
EnumAdapters1 сначала возвращает адаптер с выходными данными, на которых отображается основной рабочий стол. Этот адаптер соответствует индексу, равному нулю. Далее EnumAdapters1 возвращает другие адаптеры с выходными данными. EnumAdapters1 , наконец, возвращает адаптеры без выходных данных.
Примеры
Перечисление адаптеров
В следующем примере кода показано, как перечислить адаптеры с помощью метода EnumAdapters1 .
UINT i = 0;
IDXGIAdapter1 * pAdapter;
std::vector <IDXGIAdapter1*> vAdapters;
while(pFactory->EnumAdapters1(i, &pAdapter) != DXGI_ERROR_NOT_FOUND)
{
vAdapters.push_back(pAdapter);
++i;
}
Требования
Минимальная версия клиента | Windows 7 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | dxgi.h |
Библиотека | DXGI.lib |