Метод 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

См. также раздел

Интерфейсы DXGI

IDXGIFactory1