структура DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 (d3dkmthk.h)

Структура DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 используется для регистрации состояния питания нового входного значения.

Синтаксис

typedef struct _DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 {
  ULONG                         Version;
  PVOID                         PrivateHandle;
  PDXGK_POWER_NOTIFICATION      PowerNotificationCb;
  PDXGK_REMOVAL_NOTIFICATION    RemovalNotificationCb;
  PDXGK_FSTATE_NOTIFICATION     FStateNotificationCb;
  PDXGK_INITIAL_COMPONENT_STATE InitialComponentStateCb;
} DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2, *PDXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2;

Члены

Version

Используемая текущая версия. Этому значению необходимо задать одно из следующих DXGK_GRAPHICSPOWER_VERSIONs:

#define DXGK_GRAPHICSPOWER_VERSION_1_0 0x1000
#define DXGK_GRAPHICSPOWER_VERSION_1_1 0x1001
#define DXGK_GRAPHICSPOWER_VERSION_1_2 0x1002
#define DXGK_GRAPHICSPOWER_VERSION DXGK_GRAPHICSPOWER_VERSION_1_2

По умолчанию DXGK_GRAPHICSPOWER_VERSION представляет последнюю версию. Графическая подсистема поддерживает текущую и все предыдущие версии. Если это значение является версией, которая не распознается, произойдет сбой с STATUS_NOINTERFACE. Это должно произойти только в том случае, если драйвер, не относящийся к графике, был создан для более новой ОС, чем текущая версия, и в этом случае мы ожидаем, что драйвер, не относящийся к графике, повторит попытку с более низким номером версии.

DXGK_GRAPHICSPOWER_VERSION_1_1 поддерживает уведомления об изменении состояния F. DXGK_GRAPHICSPOWER_VERSION_1_2 поддерживает начальное перечисление общих данных и состояния компонентов питания.

PrivateHandle

Непрозрачный дескриптор, который будет предоставляться в любых обратных вызовах. Этот дескриптор должен быть глобально уникальным, поэтому следует использовать указатель на PDO или FDO вызывающего драйвера. Этот дескриптор будет использоваться графикой в качестве ключа для отслеживания этой конкретной регистрации и будет связан с обратными вызовами драйвера, не связанными с графикой, для обработки их последующего удаления.

PowerNotificationCb

Обратный вызов, предоставляющий уведомление о том, что графическое устройство будет проходить переход состояния питания устройства, и предоставляет новую DEVICE_POWER_STATE. Этот обратный вызов необходимо реализовать. См . PDXGK_POWER_NOTIFICATION.

RemovalNotificationCb

Обратный вызов, уведомляющий об удалении графического устройства. Любые дальнейшие обратные вызовы в графику для этого DeviceHandle будут возвращать неисправный код NTSTATUS и будут заблокированы до тех пор, пока вы не вернелись из обратного вызова RemovalNotificationCb. Этот обратный вызов необходимо реализовать. См . PDXGK_REMOVAL_NOTIFICATION

FStateNotificationCb

Выдает уведомление о состоянии. Этот обратный вызов является необязательным и используется не графическими драйверами. См . PDXGK_FSTATE_NOTIFICATION.

InitialComponentStateCb

Инициализирует состояние компонента. См . PDXGK_INITIAL_COMPONENT_STATE.

Комментарии

Графические драйверы указывают, какие компоненты питания существуют, отвечая на запросы DXGKQAITYPE_NUMPOWERCOMPONENTS и DXGKQAITYPE_POWERCOMPONENTINFO в _DXGK_QUERYADAPTERINFOTYPE.

Если графический драйвер регистрирует хотя бы один компонент DXGK_POWER_COMPONENT_SHARED , для этого адаптера будет создан интерфейс GRAPHICSPOWER. Интерфейс не будет зарегистрирован для адаптеров, которые не предоставляют ни одного из этих компонентов.

Графические драйверы могут зарегистрировать "блокирующий" компонент, установив для DXGK_POWER_RUNTIME_COMPONENT флаг ActiveInD3значение 0, или "неблокирующий" компонент, установив для этого флага значение 1.

Блокирующий компонент питания предотвращает выключение графического устройства при использовании, а неблокирующий компонент питания — нет. Оба варианта позволяют графическому драйверу правильно управлять своими плоскостями питания при использовании не графическим драйвером.

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

Если интерфейс драйвера GRAPHICSPOWER доступен и включен, драйвер, не являющийся графическим, может выполнить вызов ввода-вывода графическому драйверу, чтобы зарегистрировать себя в графическом драйвере, предоставляя и получая обратные вызовы, которые будут использоваться для управления общими компонентами питания. Вызов ввода-вывода будет использовать код элемента управления IOCTL_INTERNAL_GRAPHICSPOWER_REGISTER с DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 входных и выходных данных _DXGK_GRAPHICSPOWER_REGISTER_OUTPUT.

Требования

Требование Значение
Минимальная версия клиента Windows 10, версия 1803 (WDDM 2.4)
Верхняя часть d3dkmthk.h