функция обратного вызова PDXGK_INITIAL_COMPONENT_STATE (d3dkmthk.h)
Функция обратного вызова PDXGK_INITIAL_COMPONENT_STATE реализована драйвером клиента для инициализации состояния компонента.
Синтаксис
PDXGK_INITIAL_COMPONENT_STATE PdxgkInitialComponentState;
void PdxgkInitialComponentState(
PVOID GraphicsDeviceHandle,
PVOID PrivateHandle,
ULONG ComponentIndex,
BOOLEAN IsBlockingType,
UINT InitialFState,
GUID ComponentGuid,
UINT PowerComponentMappingFlag
)
{...}
Параметры
GraphicsDeviceHandle
Дескриптор графического устройства.
PrivateHandle
Непрозрачный дескриптор, предоставленный в любых обратных вызовах. Этот дескриптор должен быть глобально уникальным, поэтому следует использовать указатель на PDO или FDO вызывающего драйвера.
ComponentIndex
Индекс компонента. Как правило, это будет индекс, используемый графическим адаптером. Исключением является сценарий связанного адаптера отображения (LDA), где HIWORD компонента ComponentIndex указывает индекс адаптера, как и при вызове графического драйвера графическим ядром для изменений состояния FDA.
IsBlockingType
Задайте значение TRUE, если компонент является "блокирующим"; Например, графический драйвер сообщил компонент как ActiveInD3 = 0. В противном случае задайте ЗНАЧЕНИЕ FALSE.
InitialFState
Состояние F компонента, представленного ComponentIndex во время вызова. Если переход состояния F в настоящее время выполняется, обратный вызов уведомления о завершении PDXGK_FSTATE_NOTIFICATION с PreNotification=FALSE
будет выполняться через некоторое время после завершения перехода. В зависимости от времени может возникнуть обратный вызов PreNotification=TRUE
. Если это происходит, он предшествует обратному вызову уведомления о завершении.
ComponentGuid
Значение GUID, которое является ИДЕНТИФИКАТОРом GUID компонента, как сообщается графическим драйвером для этого компонента во время ответа DXGKQAITYPE_POWERCOMPONENTINFO.
PowerComponentMappingFlag
HIWORD указывает, является ли это пользовательским значением драйвера (0 = нет, 1 = да). Если значение равно 0 (нет), то низкое слово представляет значение перечисления DXGKMT_POWER_SHARED_TYPE. Эти значения задаются графическим драйвером во время ответа DXGKQAITYPE_POWERCOMPONENTINFO, используя тип DXGK_POWER_COMPONENT_SHARED_DESC, добавленный в DXGK_POWER_COMPONENT_MAPPING.
Возвращаемое значение
Никакой
Замечания
При регистрации общего питания (вызове IoCallDriver), если PDXGK_INITIAL_COMPONENT_STATE предоставлено, он вызывается один раз для каждого общего компонента питания, сообщаемого графическим драйвером. Поведение этого обратного вызова такое, что:
- Эти вызовы являются повторными вызовами записи, происходящими до IoCallDriver возврате
- Эти вызовы выполняются в DISPATCH_LEVEL, что требует, чтобы код драйвера и данные были резидентными
- Так как эти обратные вызовы происходят до IoCallDriver, DXGK_GRAPHICSPOWER_REGISTER_OUTPUT еще не были заполнены
- Если все переходы состояния F в настоящее время выполняются, PDXGK_FSTATE_NOTIFICATION после уведомления оповещает драйвер окончательного состояния. Такие вызовы будут гарантированы после вызовов InitialComponentStateCb. Тем не менее, возможно, что такие обратные вызовы могут возникнуть до IoCallDriver возвращать, если требуется синхронизация. Блокировка спина должна быть вокруг IoCallDriver и обработчик PDXGK_FSTATE_NOTIFICATION.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 8 |
минимальный поддерживаемый сервер | Windows Server 2012 |
заголовка | d3dkmthk.h |
IRQL | DISPATCH_LEVEL |