структура DXGKARG_COMMITVIDPN_FLAGS (d3dkmddi.h)
Структура DXGKARG_COMMITVIDPN_FLAGS определяет сведения о вызове функции DxgkDdiCommitVidPn .
Синтаксис
typedef struct _DXGKARG_COMMITVIDPN_FLAGS {
UINT PathPowerTransition : 1;
UINT PathPoweredOff : 1;
UINT Reserved : 30;
} DXGKARG_COMMITVIDPN_FLAGS;
Члены
PathPowerTransition
Значение UINT, указывающее, вызывает ли подсистема ядра графики Microsoft DirectX функцию DxgkDdiCommitVidPn для выключения подключенного монитора.
Если параметр PathPowerTransition имеет значение TRUE, драйвер мини-порта дисплея может оптимизировать этот вызов для отключения питания (например, драйвер может отключить вертикальную синхронизацию). Драйвер также должен знать, что он может по-прежнему получать вызовы функции DxgkDdiPresent в затронутом источнике.
Задание этого элемента эквивалентно установке первого бита 32-разрядного значения (0x00000001).
Дополнительные сведения см. в разделе "Примечания".
PathPoweredOff
Значение UINT, указывающее, вызывает ли подсистема графического ядра DirectX DxgkDdiCommitVidPn , чтобы сообщить драйверу о том, что пользователь изменил режимы.
Если параметр PathPoweredOff имеет значение TRUE, драйвер мини-порта дисплея должен ожидать наличие операций, основанных на новой топологии. Драйвер не может выполнять какие-либо операции, которые привели бы к повторному включению пути топологии (например, драйвер не может включить вертикальную синхронизацию), так как теперь монитор должен быть выключен.
Если параметр PathPoweredOff имеет значение FALSE, путь топологии включен. Драйвер мини-порта дисплея должен программировать оборудование для нынешних операций, основанных на прежнем пути топологии, а драйвер должен зафиксировать оборудование для поддержки этого пути топологии. Задание этого элемента эквивалентно установке второго бита 32-разрядного значения (0x00000002).
Дополнительные сведения см. в разделе "Примечания".
Reserved
Этот элемент зарезервирован и должен иметь нулевое значение. Установка для этого элемента нулевого значения эквивалентна установке оставшихся 30 бит (0xFFFFFFFC) 32-разрядного значения нулями.
Комментарии
В структуре DXGKARG_COMMITVIDPN_FLAGS хранятся сведения, которые драйвер мини-порта дисплея может использовать для определения того, как реагировать на запрошенные изменения режима. С помощью этих сведений драйвер может различать изменения режима, которые происходят во время обычной работы, поскольку приложение запросило изменение режима, изменения, которые происходят из-за переключения питания, и изменения, происходящие при отключении мониторов.
Во время обычного действия при вызове функции DxgkDdiCommitVidPn элементы PathPowerTransition и PathPoweredOff будут иметь значение FALSE , чтобы драйвер немедленно применил изменения режима. Такие изменения режима обычно выполняются как изолированные события. Поэтому драйверу не нужно отслеживать состояние, связанное с предыдущей конфигурацией режима.
Если мониторы отключены или включены, pathPowerTransition будет иметь значение TRUE , чтобы указать на переход питания. В этом случае распространенный шаблон заключается в том, что мониторы будут отключены, а затем через некоторое время будет восстановлена исходная конфигурация. Это может быть значительной рабочей нагрузкой для драйвера, чтобы полностью сбросить конфигурацию дисплея после завершения работы системы. Кроме того, драйвер должен продолжать выполнять операции DxgkDdiPresent , пока мониторы отключены. Однако драйвер может уменьшить свою рабочую нагрузку при вызове DxgkDdiCommitVidPn , убедившись, что задействованные мониторы отключены. Таким образом, при восстановлении питания снижается рабочая нагрузка драйвера для восстановления конфигурации дисплея.
Так как монитор может быть физически не подключен (например, во время возобновления работы системы), драйвер не должен полагаться на Windows для последующего вызова функции DxgkDdiSetPowerState , чтобы задать состояние питания дочернего устройства видеоадаптера. Тем не менее Windows по-прежнему запрашивает включение CRTC. Если драйвер не включает вертикальную синхронизацию, когда он запрашивается диспетчером режима отображения (DMM), а пользователь позже повторно подключает монитор, дисплей монитора может быть пустым.
Операции DxgkDdiPresent должны по-прежнему соблюдаться драйвером, пока мониторы отключены. Драйверу может потребоваться действовать в случае изменения режима, активированного приложением, например для внесения изменений в конвейер отрисовки с учетом изменений поворота. Параметры PathPowerTransition = FALSE и PathPoweredOff = TRUE сообщают драйверу, что произошло такое изменение режима. В этом случае драйвер не должен включать мониторы, но вместо этого он должен перепрограммировать оборудование, если это необходимо, чтобы обеспечить возможность изменения режима, чтобы можно было завершить дополнительные операции DxgkDdiPresent . Если такое изменение режима было выполнено, а мониторы впоследствии снова включены, маловероятно, что режим, который произошел до отключения питания, будет восстановлен.
Если операция возобновления системы активируется после отключения мониторов для операции приостановки системы, драйвер может получить вызов DxgkDdiCommitVidPn с pathPowerTransition = FALSE и PathPoweredOff = FALSE , прежде чем вызов DxgkDdiCommitVidPn будет выполнен с pathPowerTransition = TRUE. Эта ситуация должна возникать только с пустой топологией, и в этом случае драйвер не должен включать мониторы, так как переход на питание еще не завершен.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Верхняя часть | d3dkmddi.h (включая D3dkmddi.h) |