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


функция обратного вызова 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 указывает. Если InBuffer не задано, установите значение нуля.

[in, optional] OutBuffer

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

[in] OutBufferSize

Размер в байтах необязательного буфера, на который OutBuffer указывает. Если 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 (include D3dkmddi.h)
IRQL <=DISPATCH_LEVEL

См. также

DXGKCB_SETPOWERCOMPONENTACTIVE

DxgkDdiStartDevice

DXGKRNL_INTERFACE