Поделиться через


функция обратного вызова 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

См. также

DXGK_GRAPHICSPOWER_REGISTER_OUTPUT

DXGK_POWER_COMPONENT_MAPPING

DXGK_QUERYADAPTERINFOTYPE

DXGKMT_POWER_SHARED_TYPE

PDXGK_FSTATE_NOTIFICATION