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