Intentando abrir el controlador de dispositivo de pantalla para cambiar el brillo en Windows XP utilizando C ++

Estoy tratando de escribir un código C ++ / WinAPI para cambiar el brillo de un monitor. El código debe ser compatible con Windows XP, por lo que no puedo usar API como SetMonitorBrightness. Así que pensé en probarIOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS pero parece que ni siquiera puedo conseguir un dispositivo de manejar.

HANDLE hDevice = ::CreateFile(_T("\\\\.\\LCD"),
    GENERIC_READ | GENERIC_WRITE,
    FILE_SHARE_READ | FILE_SHARE_WRITE,
    NULL,
    OPEN_EXISTING,
    0, NULL);
if(hDevice != INVALID_HANDLE_VALUE)
{
    //Do work here

    ::CloseHandle(hDevice);
}
else
{
    nOSErr = ::GetLastError();
    //Get code 2
}

Probé varias combinaciones de indicadores GENERIC_READ, GENERIC_WRITE y FILE_SHARE_READ, FILE_SHARE_WRITE pero siempre obtengo el código de error 2 cuando se llama a CreateFile.

Entonces, ¿qué estoy haciendo mal aquí?

Respuestas a la pregunta(1)

Su respuesta a la pregunta