SetVCPFeature function (lowlevelmonitorconfigurationapi.h)


The physical monitor configuration functions work using the VESA Monitor Control Command Set (MCCS) standard over an I2C interface. Many monitors don't fully implement that standard; so your use of these commands might result in undefined monitor behavior. We don't recommend using these functions for arbitrary monitors without physically validating that they work as intended.

Sets the value of a Virtual Control Panel (VCP) code for a monitor.


_BOOL SetVCPFeature(
  [in] HANDLE hMonitor,
  [in] BYTE   bVCPCode,
  [in] DWORD  dwNewValue


[in] hMonitor

Handle to a physical monitor. To get the monitor handle, call GetPhysicalMonitorsFromHMONITOR or GetPhysicalMonitorsFromIDirect3DDevice9.

[in] bVCPCode

VCP code to set. The VCP codes are defined in the VESA Monitor Control Command Set (MCCS) standard, version 1.0 and 2.0. This parameter must specify a continuous or non-continuous VCP, or a vendor-specific code. It should not be a table control code.

[in] dwNewValue

Value of the VCP code.

Return value

If the function succeeds, the return value is TRUE. If the function fails, the return value is FALSE. To get extended error information, call GetLastError.


This function corresponds to the "Set VCP Feature" command from the Display Data Channel Command Interface (DDC/CI) standard.

This function takes about 50 milliseconds to return.


Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header lowlevelmonitorconfigurationapi.h
Library Dxva2.lib
DLL Dxva2.dll

See also

Monitor Configuration Functions