структура 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 |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по