DxgkCbPowerRuntimeControlRequest routine

Called by the display miniport driver to exchange information with the Power Engine Plug-in (PEP).

Syntax


DXGKCB_POWERRUNTIMECONTROLREQUEST DxgkCbPowerRuntimeControlRequest;

NTSTATUS APIENTRY CALLBACK* DxgkCbPowerRuntimeControlRequest(
  _In_       const HANDLE hAdapter,
  _In_       LPCGUID PowerControlCode,
  _In_opt_   PVOID InBuffer,
  _In_       SIZE_T InBufferSize,
  _Out_opt_  PVOID OutBuffer,
  _In_       SIZE_T OutBufferSize,
  _Out_opt_  PSIZE_T BytesReturned
)
{ ... }

Parameters

hAdapter [in]

A handle to the display adapter. The display miniport driver receives the handle from the DeviceHandle member of the DXGKRNL_INTERFACE structure in a call to its DxgkDdiStartDevice function.

PowerControlCode [in]

A pointer to a GUID that defines the meaning of the display miniport driver's control request. For more information, see Remarks.

InBuffer [in, optional]

An optional pointer to an input buffer.

InBufferSize [in]

The size, in bytes, of the buffer that InBuffer points to.

OutBuffer [out, optional]

An optional pointer to an output buffer.

OutBufferSize [in]

The size, in bytes, of the buffer that OutBuffer points to.

BytesReturned [out, optional]

An optional pointer to a buffer that contains the number of bytes that are written by the PEP to the output buffer.

Return value

Returns STATUS_SUCCESS if it succeeds. Otherwise, it returns one of the error codes defined in Ntstatus.h.

Remarks

Note  To avoid a possible deadlock, do not call the DxgkCbSetPowerComponentActive function until this function has returned.

Although the driver can use any GUID in the PowerControlCode parameter, the following GUIDs that are defined in D3dkmddi.h are recommended. By using these GUIDs, the display port driver can issue Event Tracing for Windows (ETW) events, which are useful to profile driver performance issues.

GUID_DXGKDDI_POWER_VOLTAGE_UP

Increase the voltage.

GUID_DXGKDDI_POWER_VOLTAGE_DOWN

Decrease the voltage.

GUID_DXGKDDI_POWER_VOLTAGE

Change the voltage, but the driver doesn't know if the change is an increase or decrease.

GUID_DXGKDDI_POWER_CLOCK_UP

Increase the clock setting.

GUID_DXGKDDI_POWER_CLOCK_DOWN

Decrease the clock setting.

GUID_DXGKDDI_POWER_CLOCK

Change the clock setting, but the driver doesn't know if the change is an increase or decrease.

GUID_DXGKDDI_POWER_BANDWIDTH_UP

Increase the bandwidth.

GUID_DXGKDDI_POWER_BANDWIDTH_DOWN

Decrease the bandwidth.

GUID_DXGKDDI_POWER_BANDWIDTH

Change the bandwidth, but the driver doesn't know if the change is an increase or decrease.

These GUIDs do not imply that there is any communication protocol between the display miniport driver and the PEP, nor do they imply that there are any restrictions on the values that can be passed between the display miniport driver and the PEP.

Requirements

Minimum supported client

Windows 8

Minimum supported server

Windows Server 2012

Header

D3dkmddi.h (include D3dkmddi.h)

IRQL

<=DISPATCH_LEVEL

See also

DxgkCbSetPowerComponentActive
DxgkDdiStartDevice
DXGKRNL_INTERFACE

 

 

Send comments about this topic to Microsoft

Afficher:
© 2014 Microsoft