Поделиться через


Метод IDXGIFactory::EnumAdapters (dxgi.h)

Перечисляет адаптеры (видеоадаптеры).

Синтаксис

HRESULT EnumAdapters(
        UINT         Adapter,
  [out] IDXGIAdapter **ppAdapter
);

Параметры

Adapter

Тип: UINT

Индекс адаптера для перечисления.

[out] ppAdapter

Тип: IDXGIAdapter**

Адрес указателя на интерфейс IDXGIAdapter в позиции, заданной параметром Adapter . Этот параметр не должен иметь значение NULL.

Возвращаемое значение

Тип: HRESULT

В случае успешного выполнения возвращает S_OK; В противном случае возвращает DXGI_ERROR_NOT_FOUND , если индекс больше или равен числу адаптеров в локальной системе, или DXGI_ERROR_INVALID_CALL , если параметр ppAdapter имеет значение NULL.

Комментарии

При создании фабрики фабрика перечисляет набор адаптеров, доступных в системе. Поэтому при изменении адаптеров в системе необходимо уничтожить и повторно создать объект IDXGIFactory . Количество адаптеров в системе изменяется при добавлении или удалении дисплея карта, а также при закреплении или отстыковке ноутбука.

Когда метод EnumAdapters завершается успешно и заполняет параметр ppAdapter адресом указателя на интерфейс адаптера, EnumAdapters увеличивает количество ссылок интерфейса адаптера. Завершив работу с интерфейсом адаптера, вызовите метод Release для уменьшения количества ссылок перед уничтожением указателя.

EnumAdapters сначала возвращает адаптер с выходными данными, на которых отображается основной рабочий стол. Этот адаптер соответствует индексу, равному нулю. Затем EnumAdapters возвращает другие адаптеры с выходными данными. EnumAdapters , наконец, возвращает адаптеры без выходных данных.

Примеры

Перечисление адаптеров

В следующем примере кода показано, как перечислить адаптеры с помощью метода EnumAdapters .


UINT i = 0; 
IDXGIAdapter * pAdapter; 
std::vector <IDXGIAdapter*> vAdapters; 
while(pFactory->EnumAdapters(i, &pAdapter) != DXGI_ERROR_NOT_FOUND) 
{ 
	vAdapters.push_back(pAdapter); 
	++i; 
} 

Требования

Требование Значение
Целевая платформа Windows
Header dxgi.h
Библиотека DXGI.lib

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

Интерфейсы DXGI

IDXGIFactory