Функция GetDisplayConfigBufferSizes (winuser.h)
Функция GetDisplayConfigBufferSizes извлекает размер буферов, необходимых для вызова функции QueryDisplayConfig .
Синтаксис
LONG GetDisplayConfigBufferSizes(
[in] UINT32 flags,
[out] UINT32 *numPathArrayElements,
[out] UINT32 *numModeInfoArrayElements
);
Параметры
[in] flags
Тип извлекаемой информации. Значение параметра Flags должно быть одним из следующих значений.
QDC_ALL_PATHS
Вызывающий объект запрашивает размеры таблицы, чтобы вместить все возможные сочетания путей.
QDC_ONLY_ACTIVE_PATHS
Вызывающий объект запрашивает размер таблицы для хранения только активных путей.
QDC_DATABASE_CURRENT
Вызывающий объект запрашивает размер таблицы для хранения активных путей, как определено в базе данных сохраняемости для подключенных в настоящее время мониторов.
[out] numPathArrayElements
Указатель на переменную, получающую количество элементов в таблице сведений о пути. Затем значение параметра pNumPathArrayElements используется при последующем вызове функции QueryDisplayConfig . Этот параметр не может иметь значение NULL.
[out] numModeInfoArrayElements
Указатель на переменную, которая получает количество элементов в таблице сведений о режиме. Затем значение параметра pNumModeInfoArrayElements используется при последующем вызове функции QueryDisplayConfig . Этот параметр не может иметь значение NULL.
Возвращаемое значение
Функция возвращает один из следующих кодов возврата.
Код возврата | Описание |
---|---|
|
Функция выполнена успешно. |
|
Недопустимое сочетание указанных параметров и флагов. |
|
В системе не работает графический драйвер, написанный в соответствии с моделью windows Display Driver Model (WDDM). Функция поддерживается только в системе с работающим драйвером WDDM. |
|
Вызывающий объект не имеет доступа к сеансу консоли. Эта ошибка возникает, если вызывающий процесс не имеет доступа к текущему рабочему столу или выполняется в удаленном сеансе. |
|
Произошла неизвестная ошибка. |
Комментарии
Учитывая текущую конфигурацию пути отображения и запрошенные флаги, GetDisplayConfigBufferSizes возвращает размер таблиц пути и режимов, необходимых для хранения информации. GetDisplayConfigBufferSizes может возвращать значения, которые немного больше, чем требуется на самом деле, так как определяет, что все исходные и целевые пути являются допустимыми; В то время как драйвер может накладывать некоторые ограничения на возможные сочетания.
Так как GetDisplayConfigBufferSizes может определить только требуемый размер массива на этот момент времени, возможно, что между вызовами GetDisplayConfigBufferSizes и QueryDisplayConfig конфигурация системы изменилась и предоставленных размеров массива больше недостаточно для хранения новых данных пути.
Если вызывающему объекту известно, что он должен включить дополнительные источники и целевые объекты, вызывающий объект может выделить больший массив данных режима, чем возвращается из GetDisplayConfigBufferSizes , чтобы у него было пространство для добавления дополнительных исходных и целевых режимов после вызова QueryDisplayConfig и перед вызовом SetDisplayConfig.
Примеры
Пример getDisplayConfigBufferSizes см. в разделе QueryDisplayConfig.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Целевая платформа | Универсальное |
Верхняя часть | winuser.h (включая Windows.h) |
Библиотека | User32.lib; OneCoreUAP.lib в Windows 10 |
DLL | User32.dll |
Набор API | ext-ms-win-ntuser-sysparams-ext-l1-1-1 (представлено в Windows 10, версия 10.0.14393) |