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

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

?? comhand.h

?? ril source code for Windows CE
?? H
字號:
//
// 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:

comhand.h

Abstract:


Notes:


--*/

#pragma once



//
// Defines
//

#define STAT_BUCKETS                10
#define STAT_BUCKET_WEIGHTS         (STAT_BUCKETS * (STAT_BUCKETS + 1) / 2)


//
// Forward declarations
//
class CComInstanceHandle;


//
// Virtual serial device handle
//
class CComHandle : public CSharedResource
{
public:
                CComHandle();
                ~CComHandle();

    BOOL        Init();
    BOOL        OpenDownstreamPort();
    BOOL        CloseDownstreamPort();
    BOOL        Read(void* pBuf, const UINT cb, DWORD& rdwRead) const;
    BOOL        Read2(void* pBuf, const UINT cb, DWORD& rdwRead) const;
    BOOL        Write(const void* pBuf, const UINT cb, DWORD& rdwWritten) const;
    BOOL        IOControl(const DWORD dwCode, const BYTE* const pBufIn, const DWORD dwLenIn, __out_bcount( dwLenOut ) BYTE* const pBufOut,
                          const DWORD dwLenOut, DWORD& rdwActualOut) const;
    BOOL        WriteCharsToComPort(CRilHandle* const pRilDevice, LPCSTR szChars, UINT cbToWrite);
    BOOL        WriteCmdsToComPort (CRilHandle* const pRilDevice, LPCSTR szChars, UINT cbToWrite);

    BOOL        WaitCommEventWithTimeout(DWORD dwTimeout, DWORD& rdwMask);
    BOOL        SendRILCmdHandleRsp(CRilHandle* const pRilDevice, CCommand*& rpCmd, BOOL& rfHungUp, BOOL& rfTimedOut);
    BOOL        SendRILCmdsInDataMode(CRilHandle* const pRilDevice, BOOL& rfBackToCmdMode);
    BOOL        WaitForRadioSignon(CRilHandle* const pRilDevice);
    BOOL        EnterDataMode(const LPCSTR szData, const UINT cbData);
    BOOL        ExitDataMode();
    BOOL        FDataMode();
    BOOL        WaitForCommandMode() const;
    BOOL        FEnoughTimeToSendCmd(CCommand* pCmd, DWORD dwTimeLeft) const;
    UINT        ReadFromBackupBuffer(void* const pDestination, const DWORD cbToRead);
    BOOL        InitComPortForRIL(DCB* const pdcbOld, COMMTIMEOUTS* const pctOld) const;
    BOOL        GetDTRDropResponse(CRilHandle* const pRilDevice);
    BOOL        FPortOpened() const                 { return m_fPortOpened; };
    CBuffer*    GetBackupBuffer() const             { return m_pBuffer; };
    BOOL        SetOwner(const CComInstanceHandle* const pHandle);
    BOOL        ClearOwner(const CComInstanceHandle* const pOwner);
    BOOL        FHandleIsOwner(const CComInstanceHandle* const pHandle)
                                                    { SYNCBLOCK(m_csOwner); return (pHandle == m_pOwner); };
#ifndef DEDICATED_DATA_PORT
        BOOL        FDataModeInterrupted();
        void        ResetDataModeInterrupted();
#endif
    void        UpdateComStatData(const BOOL fRead, const DWORD dwBytes);
    void        CalculateComStats(DWORD& rdwReadBitsPerSec, DWORD& rdwWrittenBitsPerSec);
    DWORD       CalculateCmdModeTime();
    void        SetCancelledDial() { m_fCancelledDial = TRUE; }

    BOOL        VirtWaitCommEvent(DWORD* const pdwMask) const;
    BOOL        VirtClearCommBreak() const;
    BOOL        VirtClearCommError(DWORD* const pdwErrors, COMSTAT* const pcs) const;
    BOOL        VirtEscapeCommFunction(const DWORD dwFunc) const;
    BOOL        VirtGetCommMask(DWORD* const pdwMask) const;
    BOOL        VirtSetCommMask(const DWORD dwMask) const;
    BOOL        VirtGetCommModemStatus(DWORD* const pdwStatus) const;
    BOOL        VirtGetCommProperties(COMMPROP* const pcp) const;
    BOOL        VirtGetCommState(DCB* const pdcb) const;
    BOOL        VirtSetCommState(DCB* const pdcb) const;
    BOOL        VirtGetCommTimeouts(COMMTIMEOUTS* const pct) const;
    BOOL        VirtSetCommTimeouts(COMMTIMEOUTS* const pct) const;
    BOOL        VirtPurgeComm(const DWORD dwFlags) const;
    BOOL        VirtSetCommBreak() const;
    BOOL        VirtSetupComm(const DWORD dwInQueue, const DWORD dwOutQueue) const;
    BOOL        VirtTransmitCommChar(const char cChar) const;

    void        SetTimeoutStatus(BOOL bTimedOut);

    static void ResetCommMask(DWORD dwParam);
    BOOL        EnterExclusiveUse()
    {
        return CSharedResource::EnterExclusiveUse(ResetCommMask,(DWORD)m_hDownstream);
    }

    BOOL        InitCommState(DCB* const pdcbOld) const;

private:
    HANDLE                      m_hDownstream;
    HANDLE                      m_hDownstream2;
    HANDLE                      m_hCommandModeEvent;
    HANDLE                      m_hCancelEvent;
#ifndef DEDICATED_DATA_PORT
        HANDLE                      m_hDataModeInterrupted;
#endif
#ifdef DEDICATED_DATA_PORT
    HANDLE                      m_hDataModeEvent;
#endif
    CBuffer*                    m_pBuffer;
    DWORD                       m_dwDownstreamBaudRate;
    DWORD                       m_dwStatQuantum;
    DWORD                       m_rgdwReadStatBits[STAT_BUCKETS];
    DWORD                       m_rgdwWriteStatBits[STAT_BUCKETS];
    DWORD                       m_dwReadStatTimestamp;
    DWORD                       m_dwWriteStatTimestamp;
    const CComInstanceHandle*   m_pOwner;
    CRITICAL_SECTION            m_csDataMode;
    CRITICAL_SECTION            m_csOwner;
    CRITICAL_SECTION            m_csStats;
    DWORD                       m_fInited : 1;
    DWORD                       m_fPortOpened : 1;
    DWORD                       m_fDataMode : 1;
    DWORD                       m_fCancelledDial : 1;
    DWORD                       m_dwNumTimeouts;
    DWORD                       m_dwMaxTimeouts;
};



//
// Virtual serial instance handle
//
class CComInstanceHandle
{
public:
                        CComInstanceHandle();
                        ~CComInstanceHandle();

    BOOL                Init(CComHandle* const pDevice, const DWORD dwAccess);
    CComHandle*         GetDevice() const        { return m_pDevice; };

private:
    CComHandle*     m_pDevice;
};



//
// Parameter structure passed to WCETimeoutThread()
//
struct WCETIMEOUT_THREAD_DATA {
    DWORD dwTimeout;
    HANDLE hCancelEvent;
    HANDLE hPort;
};


//
// Parameter strcuture passed to HangupThreadProc
//
struct HANGUP_THREAD_DATA {
    HANDLE hQuitEvent;
    CComHandle* pComDevice;
    CRilHandle* pRilDevice;
};



//
// Functions
//
#ifndef UNDER_CE

//
// Operlapped operations
//
enum OVERLAPPED_OPER
{
    OVERLAPPED_WAIT = 1,
    OVERLAPPED_READ,
    OVERLAPPED_WRITE
};

BOOL PerformOverlappedIO(const OVERLAPPED_OPER oper, const HANDLE hCom, void* pbData, UINT cbData, DWORD* pdwData);

#endif // UNDER_CE

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜三级在线| 成人综合婷婷国产精品久久蜜臀| 九九精品一区二区| 色噜噜狠狠色综合欧洲selulu | 亚洲国产精品久久人人爱蜜臀 | 精品精品国产高清一毛片一天堂| 国产精品视频一二三| 轻轻草成人在线| 色综合久久天天综合网| 久久久久久久久久久久久夜| 日韩高清国产一区在线| 欧美日韩在线精品一区二区三区激情| 亚洲国产精品激情在线观看| 蜜臀av性久久久久蜜臀av麻豆| 欧美午夜不卡视频| 亚洲视频一区在线| 波多野结衣亚洲一区| 久久综合九色综合97婷婷女人| 蜜臀av性久久久久蜜臀av麻豆| 欧美三级三级三级| 一个色在线综合| 在线观看日韩一区| 综合中文字幕亚洲| va亚洲va日韩不卡在线观看| 欧美mv日韩mv国产网站app| 日韩精品一区第一页| 欧美日韩亚洲综合在线 | 日本高清成人免费播放| 中文字幕一区二区三区蜜月| 国产精品123| 欧美国产一区在线| 99视频精品在线| 国产精品欧美极品| 91在线视频网址| 成人免费在线观看入口| 91首页免费视频| 亚洲国产一区二区三区| 欧美性猛交xxxxxx富婆| 午夜精品国产更新| 日韩一区二区中文字幕| 久久99国产精品久久| 国产亚洲欧美日韩俺去了| 国产一区二区三区不卡在线观看 | 国产一区二区三区久久久| 久久亚洲欧美国产精品乐播 | 丁香婷婷综合色啪| 日韩久久一区二区| 欧美日韩一区中文字幕| 秋霞午夜鲁丝一区二区老狼| 精品日韩一区二区三区免费视频| 国产一区二区调教| 亚洲欧美福利一区二区| 欧美日精品一区视频| 美女诱惑一区二区| 日本一区二区在线不卡| 欧美亚洲日本一区| 韩国精品一区二区| 一区二区不卡在线播放| 日韩精品自拍偷拍| 91性感美女视频| 蜜桃一区二区三区在线观看| 中文字幕二三区不卡| 欧美日本视频在线| 成人动漫一区二区三区| 午夜精品成人在线视频| 国产清纯白嫩初高生在线观看91 | 蜜桃一区二区三区在线| 国产欧美一区视频| 精品视频免费在线| 成人午夜免费视频| 美女视频黄久久| 国产精品不卡在线| 精品噜噜噜噜久久久久久久久试看 | 久久亚洲一区二区三区明星换脸| 色综合天天狠狠| 国模冰冰炮一区二区| 亚洲一区在线观看免费观看电影高清 | 国产欧美精品在线观看| 欧美日韩一级视频| 成人ar影院免费观看视频| 麻豆91在线观看| 亚洲午夜私人影院| 国产精品初高中害羞小美女文| 日韩欧美资源站| 在线一区二区三区四区| 成人开心网精品视频| 青娱乐精品视频| 亚洲va国产天堂va久久en| 日韩毛片视频在线看| 欧美高清在线精品一区| 精品国产污网站| 日韩欧美二区三区| 欧美人妇做爰xxxⅹ性高电影| 91丝袜美女网| 99久久免费视频.com| 国产精品一卡二卡| 狠狠网亚洲精品| 极品瑜伽女神91| 九九精品一区二区| 蜜臀av一区二区| 日韩成人一级片| 日韩电影免费在线看| 午夜精品久久久久久久蜜桃app| 一区二区三区四区乱视频| 亚洲欧洲性图库| 日本一区二区综合亚洲| 欧美激情在线看| 亚洲国产精品成人综合色在线婷婷| 日韩午夜精品电影| 日韩无一区二区| 精品福利二区三区| 精品国产凹凸成av人导航| 日韩欧美亚洲一区二区| 日韩欧美国产1| 久久婷婷久久一区二区三区| 精品中文字幕一区二区小辣椒| 亚洲午夜精品久久久久久久久| 久久影院视频免费| 国产精品久久久久三级| 亚洲一区二区三区四区在线| 亚洲1区2区3区4区| 亚洲图片自拍偷拍| 精品视频免费看| 国产成人免费视| 国产iv一区二区三区| 国产成都精品91一区二区三| 丁香桃色午夜亚洲一区二区三区| 国产aⅴ精品一区二区三区色成熟| 国产乱对白刺激视频不卡| 成人理论电影网| 欧美人妇做爰xxxⅹ性高电影| 欧美一级欧美一级在线播放| 久久毛片高清国产| 中文字幕一区二区三区四区不卡| 亚洲免费视频成人| 蜜臀av一区二区在线观看| 国产一区高清在线| 天堂资源在线中文精品| 91黄视频在线| 国产盗摄一区二区三区| 91免费国产在线观看| 91精品国产色综合久久ai换脸| 日韩精品专区在线影院观看| 日韩女优电影在线观看| 国产精品久久一卡二卡| 亚洲国产精品久久人人爱蜜臀| 麻豆视频观看网址久久| 成人av电影在线网| 欧美一区在线视频| 国产精品网站在线| 秋霞av亚洲一区二区三| 99精品一区二区| 91精品国产综合久久婷婷香蕉 | 国产麻豆午夜三级精品| 色哟哟一区二区三区| 精品国精品国产尤物美女| 亚洲精品日日夜夜| 国产一区二区久久| 欧美日韩国产小视频在线观看| 久久久www成人免费毛片麻豆| 激情综合色丁香一区二区| 99国产精品久| 亚洲综合色噜噜狠狠| 欧美女孩性生活视频| 另类小说一区二区三区| 99久久婷婷国产综合精品电影| 精品成人私密视频| 国产成人超碰人人澡人人澡| 欧美精品在欧美一区二区少妇| 国产日韩欧美激情| 蜜桃精品视频在线| 欧美三区免费完整视频在线观看| 中文字幕一区二区三区不卡在线| 精品亚洲成a人| 欧美一区二区三区成人| 亚洲午夜免费视频| 色老汉av一区二区三区| 亚洲欧洲国产日本综合| 国产精品99久久久久久有的能看 | 久久精品人人做| 久久精品国产亚洲一区二区三区| 欧美日韩精品欧美日韩精品| 亚洲六月丁香色婷婷综合久久| 高清免费成人av| 中文字幕欧美日本乱码一线二线 | 国产精品天美传媒| 激情综合网最新| 欧美大片在线观看一区二区| 日日夜夜精品视频免费| 欧美中文字幕一二三区视频| 亚洲丝袜另类动漫二区| 成人午夜精品在线| 国产精品成人一区二区三区夜夜夜| 国产激情精品久久久第一区二区 | 欧美日韩一区三区| 亚洲精选免费视频| 91九色02白丝porn| 亚洲综合激情网| 欧美挠脚心视频网站| 天堂蜜桃91精品|