Próba otwarcia uchwytu urządzenia wyświetlającego w celu zmiany jasności w systemie Windows XP przy użyciu C ++

Próbuję napisać kod C ++ / WinAPI, aby zmienić jasność monitora. Kod musi być zgodny z Windows XP, więc nie mogę używać API takich jak SetMonitorBrightness. Więc pomyślałem, żeby spróbowaćIOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS ale nie mogę nawet dostać uchwytu urządzenia.

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
}

Próbowałem różnych kombinacji flag GENERIC_READ, GENERIC_WRITE i FILE_SHARE_READ, FILE_SHARE_WRITE, ale zawsze otrzymuję kod błędu 2, gdy wywoływany jest CreateFile.

Więc co tu robię źle?

questionAnswers(1)

yourAnswerToTheQuestion