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