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


функция обратного вызова 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 указывает индекс адаптера, как это делается при вызове графического драйвера графическим ядром для изменения F-состояния в сценариях LDA.

IsBlockingType

Задайте значение TRUE, если компонент является "блокирующим"; Например, графический драйвер сообщил о компоненте как ActiveInD3 = 0. В противном случае задайте значение FALSE.

InitialFState

F-состояние компонента, представленного ComponentIndex во время вызова. Если переход по F-состоянию в настоящее время выполняется, через некоторое время после завершения перехода будет выполнен обратный PreNotification=FALSE вызов уведомления о завершении PDXGK_FSTATE_NOTIFICATION. В зависимости от времени может произойти обратный 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.

Возвращаемое значение

None

Remarks

При регистрации общего питания (вызов 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