亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? monitor.cpp

?? ril source code for Windows CE
?? CPP
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES.
//
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.

Module Name:

monitor.cpp

Abstract:


Notes:


--*/

#ifndef RIL_RADIO_RESILIENCE

#include "precomp.h"

void Reboot() 
{
    // Flush the flash database volumes
    CeFlushDBVol(NULL);
    
    // Flush the registry to flash.
    RegFlushKey(HKEY_CURRENT_USER);

    KernelIoControl(IOCTL_HAL_REBOOT, NULL, NULL, NULL, 0, NULL);

    return;
}


//
// Thread responsible for monitoring RIL
//
DWORD WINAPI MonitorThreadProc(LPVOID lpParameter)
{
    FUNCTION_TRACE(MonitorThreadProc);
#ifdef UNDER_CE
    DWORD dwWait;
    CMonitor* pMonitor = (CMonitor*)lpParameter;
    int nEventCnt = 2;
    
    DEBUGCHK(NULL != pMonitor);

    // Let the main thead know that the thread has started up
    pMonitor->m_pCheckPoint->Reached();

    HANDLE rghEvents[] = { g_hCriticalErrorEvent, pMonitor->m_hCancelEvent };

    // Switch the thread into higher priority (to guarantee that CPM doesn't reboot the device just because this
    //    thread didn't get scheduled)
    if (!SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST)) {
        goto Error;
    }

    while (1) {
        dwWait = WaitForMultipleObjects(nEventCnt, rghEvents, FALSE, INFINITE);
        if (WAIT_OBJECT_0 == dwWait) {
                // For platforms that do not use CPM, just reboot thank you
                DEBUGMSG(ZONE_ERROR, (TEXT("RILDrv : E : RIL: Critical error has occurred, rebooting system...\r\n")));
                Reboot();
        } else if (WAIT_OBJECT_0 + 1 == dwWait) {
            // RIL is exiting -- terminate this thread
            goto Error;
        }
    }

Error:
#endif // UNDER_CE

    return 0;
}


//
// Ctor
//
CMonitor::CMonitor()
: m_hCancelEvent(NULL),
  m_pCheckPoint(NULL),
  m_hMonitorThread(NULL)
{
    FUNCTION_TRACE(CMonitor::CMonitor);
}


//
// Dtor
//
CMonitor::~CMonitor()
{
    FUNCTION_TRACE(CMonitor::~CMonitor);

    // Destroy the monitor thread
    if (m_hMonitorThread)
    {
        // Wait for the monitor thread to terminate
        DWORD dwRes = WaitForSingleObject(m_hMonitorThread, 10000);
        if (WAIT_OBJECT_0 != dwRes)
        {
            // If the thread did not terminate, then maybe
            // the timeout is too short. Alert someone.
            ASSERT(0);

            // We could try to force the thread to terminate,
            // but it's probably not worth the risk. The monitor
            // thread does two things: notify CPM, and quit.
            // If the thread is stuck in CPM, then let's not
            // exacerbate the problem by killing a thread that
            // is executing CPM code.
        }

        // Close thread object
        (void)CloseHandle(m_hMonitorThread);
        m_hMonitorThread = NULL;
    }

    delete m_pCheckPoint;
    m_pCheckPoint = NULL;
}


//
// Initialisation
//
BOOL CMonitor::Init(const HANDLE hCancelEvent, const DWORD dwCmdThreadID, const DWORD dwReadThreadID)
{
    FUNCTION_TRACE(CMonitor::Init);
    DEBUGCHK(NULL != hCancelEvent);
    DEBUGCHK(0 != dwCmdThreadID);
    DEBUGCHK(0 != dwReadThreadID);
    DEBUGCHK(NULL != g_hCriticalErrorEvent);

    BOOL fRet = FALSE;

#ifdef UNDER_CE
    m_hCancelEvent = hCancelEvent;

    // Create the thread checkpoint
    m_pCheckPoint = new CCheckPoint;
    if (!m_pCheckPoint || !m_pCheckPoint->Init(1)) {
        goto Error;
    }

    // Launch the monitor thread
    m_hMonitorThread = CreateThread(NULL, 0, MonitorThreadProc, (LPVOID)this, 0, NULL);
    if (!m_hMonitorThread) {
        goto Error;
    }

    // Wait until the thread starts up
    if (!m_pCheckPoint->Wait(30000)) {
        goto Error;
    }
    fRet = TRUE;

Error:
    delete m_pCheckPoint;
    m_pCheckPoint = NULL;

    if (!fRet) {
        if (m_hMonitorThread) {
            (void)CloseHandle(m_hMonitorThread);
            m_hMonitorThread = NULL;
        }
    }
#endif // UNDER_CE

    return fRet;
}

#endif // !RIL_RADIO_RESILIENCE

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜精品美女毛片视频| 91美女在线观看| 亚洲成av人影院在线观看网| 亚洲人成影院在线观看| 国产精品久久久久永久免费观看| 国产免费久久精品| 国产精品午夜在线| 中文字幕永久在线不卡| 日韩一区在线播放| 亚洲小说欧美激情另类| 亚洲高清免费视频| 美女国产一区二区| 老司机精品视频在线| 国产精品99久久久久久似苏梦涵| 成人综合激情网| 99精品黄色片免费大全| 欧美揉bbbbb揉bbbbb| 在线成人av网站| 久久午夜电影网| 亚洲欧洲色图综合| 亚洲电影第三页| 久久国产精品露脸对白| 国产成人午夜电影网| 色婷婷综合久久久中文字幕| 在线电影院国产精品| 久久午夜电影网| 亚洲精品乱码久久久久久| 午夜精品久久久久久| 国产精品自拍毛片| 色综合久久88色综合天天免费| 欧美亚洲综合网| 欧美va亚洲va香蕉在线| 中文字幕一区二区三区不卡在线 | 欧美经典一区二区| 一区二区三区欧美久久| 日韩高清欧美激情| 成人综合婷婷国产精品久久免费| 欧美日韩一级大片网址| 久久精品视频免费| 偷窥国产亚洲免费视频| 成人免费黄色大片| 欧美一级在线免费| 亚洲免费在线看| 国产一区二区三区在线看麻豆| 一本大道av一区二区在线播放| 欧美videossexotv100| 亚洲精品高清在线观看| 国产精品原创巨作av| 欧美日韩国产综合一区二区三区 | 成人污视频在线观看| 欧美日韩中字一区| 国产精品久久久久久久久搜平片| 日韩激情av在线| 91视频www| 国产视频在线观看一区二区三区| 日韩国产精品大片| 欧美亚洲免费在线一区| 中文字幕亚洲成人| 粉嫩13p一区二区三区| 日韩天堂在线观看| 日韩激情视频网站| 欧美日韩亚洲综合一区| 综合自拍亚洲综合图不卡区| 国产一区二区久久| 日韩亚洲欧美成人一区| 亚洲你懂的在线视频| 欧美一区二区性放荡片| 亚洲欧美福利一区二区| 成人av资源在线观看| 国产亚洲精品免费| 国产福利精品一区二区| 国产午夜精品理论片a级大结局| 麻豆一区二区三区| 日韩视频不卡中文| 精品午夜一区二区三区在线观看| 欧美精品一二三| 视频一区欧美日韩| 欧美一区二区视频观看视频| 午夜免费欧美电影| 91精品国产综合久久福利软件| 亚洲电影一级黄| 91麻豆精品国产91| 蜜臀精品久久久久久蜜臀 | 精品久久久久久最新网址| 日韩影院精彩在线| 精品毛片乱码1区2区3区| 国产一区二区三区不卡在线观看| www成人在线观看| 国产激情一区二区三区四区| 国产欧美精品一区| 99精品视频中文字幕| 亚洲一区在线视频| 欧美丰满嫩嫩电影| 国产酒店精品激情| 亚洲美女免费视频| 91精品综合久久久久久| 韩国欧美国产一区| 亚洲欧洲精品一区二区三区不卡| www.综合网.com| 亚洲成国产人片在线观看| 日韩手机在线导航| 成人h动漫精品| 亚洲最大成人网4388xx| 欧美一级艳片视频免费观看| 国产精品1024久久| 亚洲主播在线观看| wwwwww.欧美系列| 欧美性三三影院| 韩国午夜理伦三级不卡影院| 亚洲人午夜精品天堂一二香蕉| 91麻豆精品国产自产在线| 国产成人综合网站| 午夜成人在线视频| 国产精品网曝门| 欧美精品第一页| 国产成人精品免费网站| 亚洲国产成人av网| 国产精品日韩成人| 日韩欧美国产系列| 日本二三区不卡| 国产成人综合网站| 麻豆一区二区三区| 午夜精品久久一牛影视| 日本一区二区免费在线 | 成人黄动漫网站免费app| 亚洲国产日韩一区二区| 日本一区二区视频在线观看| 欧美三级韩国三级日本三斤| 成a人片国产精品| 精品一区二区三区在线观看国产| 成人免费在线视频| 国产亚洲精品bt天堂精选| 日韩欧美中文字幕制服| 欧美又粗又大又爽| 99久久免费国产| 懂色一区二区三区免费观看 | 国产成人在线视频网站| 麻豆成人久久精品二区三区小说| 亚洲成av人片一区二区| 亚洲欧洲国产日本综合| 中文字幕免费不卡| 久久精品日韩一区二区三区| 欧美变态口味重另类| 欧美一级夜夜爽| 日韩欧美成人激情| 日韩网站在线看片你懂的| 91精品国产福利| 日韩一区二区在线看片| 日韩免费观看高清完整版| 欧美一级久久久| 日韩区在线观看| 欧美刺激午夜性久久久久久久| 欧美一区二区私人影院日本| 7777精品伊人久久久大香线蕉的 | 粉嫩aⅴ一区二区三区四区| 国产精品一区在线| 国产高清无密码一区二区三区| 国产精品系列在线播放| 懂色中文一区二区在线播放| 成人ar影院免费观看视频| av一区二区三区四区| 色嗨嗨av一区二区三区| 欧美日韩一区二区三区在线看| 欧美日韩专区在线| 日韩免费一区二区| 久久精品一区蜜桃臀影院| 国产精品久久久久久亚洲伦| 亚洲欧美日韩国产综合在线| 亚洲精品视频在线观看免费| 午夜精品免费在线| 国内精品免费**视频| 懂色av中文一区二区三区| 色综合久久中文综合久久牛| 欧美三级日本三级少妇99| 欧美成人r级一区二区三区| 国产日产欧美一区二区三区| 亚洲欧美日韩国产手机在线| 亚洲123区在线观看| 久久精品国产亚洲一区二区三区| 国产一区二区三区美女| 色婷婷激情久久| 精品电影一区二区| 亚洲视频一区二区在线| 图片区小说区区亚洲影院| 国产精品中文字幕欧美| 在线欧美日韩精品| 久久综合色天天久久综合图片| 亚洲色图视频免费播放| 琪琪久久久久日韩精品| 成人毛片视频在线观看| 欧美精品在线视频| 国产精品进线69影院| 美女久久久精品| 一道本成人在线| 久久久91精品国产一区二区精品| 亚洲自拍与偷拍| 国产91丝袜在线播放| 欧美一级久久久| 亚洲成人激情综合网| 不卡的av网站|