функция обратного вызова DXGKCB_POWERRUNTIMECONTROLREQUEST (d3dkmddi.h)

Драйвер минипорта в режиме ядра вызывает DXGKCB_POWERRUNTIMECONTROLREQUEST для обмена информацией с подключаемым модулем Power Engine (PEP).

Синтаксис

DXGKCB_POWERRUNTIMECONTROLREQUEST DxgkcbPowerruntimecontrolrequest;

NTSTATUS DxgkcbPowerruntimecontrolrequest(
  [in]           IN_CONST_HANDLE hAdapter,
  [in]           IN LPCGUID PowerControlCode,
  [in, optional] IN PVOID InBuffer,
  [in]           IN SIZE_T InBufferSize,
  [in, optional] OUT PVOID OutBuffer,
  [in]           IN SIZE_T OutBufferSize,
  [out]          OUT PSIZE_T BytesReturned
)
{...}

Параметры

[in] hAdapter

Дескриптор видеоадаптера. Драйвер мини-порта дисплея получает дескриптор от элемента DeviceHandle структуры DXGKRNL_INTERFACE в вызове функции DxgkDdiStartDevice .

[in] PowerControlCode

Указатель на GUID, определяющий значение запроса управления драйвера мини-порта дисплея. Дополнительные сведения см. в подразделе "Примечания".

[in, optional] InBuffer

Необязательный указатель на входной буфер.

[in] InBufferSize

Размер (в байтах) необязательного буфера, на который указывает InBuffer . Установите значение 0, если inBuffer не указан.

[in, optional] OutBuffer

Необязательный указатель на выходной буфер.

[in] OutBufferSize

Размер в байтах необязательного буфера, на который указывает OutBuffer . Установите значение 0, если outBuffer не указан.

[out] BytesReturned

Количество фактических байтов, возвращаемых в буфере, на который указывает OutBuffer . Возвращаемое значение будет <равно = OutBufferSize.

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

DXGKCB_POWERRUNTIMECONTROLREQUEST возвращает STATUS_SUCCESS в случае успешного выполнения. В противном случае возвращается один из кодов ошибок, определенных в ntstatus.h.

Комментарии

Примечание

Чтобы избежать возможной взаимоблокировки, не вызывайте функцию DXGKCB_SETPOWERCOMPONENTACTIVE до тех пор, пока эта функция не будет возвращена.

DXGKCB_XXX функции реализуются dxgkrnl. Чтобы использовать эту функцию обратного вызова, вызовите DxgkCbPowerRuntimeControlRequest через DXGKRNL_INTERFACE.

Хотя драйвер может использовать любой GUID в параметре PowerControlCode , рекомендуется использовать следующие GUID, определенные в D3dkmddi.h . С помощью этих идентификаторов GUID драйвер порта дисплея может выдавать события трассировки событий Windows (ETW), которые полезны для профилирования проблем с производительностью драйвера.

GUID Значение
GUID_DXGKDDI_POWER_VOLTAGE_UP Увеличьте напряжение.
GUID_DXGKDDI_POWER_VOLTAGE_DOWN Уменьшите напряжение.
GUID_DXGKDDI_POWER_VOLTAGE Измените напряжение, но драйвер не знает, является ли изменение увеличением или уменьшением.
GUID_DXGKDDI_POWER_CLOCK_UP Увеличьте параметр часов.
GUID_DXGKDDI_POWER_CLOCK_DOWN Уменьшите значение параметра часов.
GUID_DXGKDDI_POWER_CLOCK Измените параметр часов, но драйвер не знает, является ли изменение увеличением или уменьшением.
GUID_DXGKDDI_POWER_BANDWIDTH_UP Увеличить пропускную способность.
GUID_DXGKDDI_POWER_BANDWIDTH_DOWN Уменьшите пропускную способность.
GUID_DXGKDDI_POWER_BANDWIDTH Измените пропускную способность, но драйвер не знает, является ли изменение увеличением или уменьшением.

Эти идентификаторы GUID не подразумевают наличие какого-либо протокола связи между драйвером минипорта дисплея и PEP, а также не подразумевают, что существуют какие-либо ограничения на значения, которые могут быть переданы между драйвером минипорта дисплея и PEP.

Требования

Требование Значение
Минимальная версия клиента Windows 8 (WDDM 1.2)
Минимальная версия сервера Windows Server 2012
Целевая платформа Персональный компьютер
Верхняя часть d3dkmddi.h (включая D3dkmddi.h)
IRQL <=DISPATCH_LEVEL

См. также раздел

DXGKCB_SETPOWERCOMPONENTACTIVE

DxgkDdiStartDevice

DXGKRNL_INTERFACE