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

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

?? config.c

?? wince3.0的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
{
    //
    // Parity options and settable bits from winbase.h
    //
    switch (dwParity) {
    case NOPARITY:      if (dwSettableParity & PARITY_NONE) return TRUE; break;
    case ODDPARITY:     if (dwSettableParity & PARITY_ODD)  return TRUE; break;
    case EVENPARITY:    if (dwSettableParity & PARITY_EVEN) return TRUE; break;
    case MARKPARITY:    if (dwSettableParity & PARITY_MARK) return TRUE; break;
    case SPACEPARITY:   if (dwSettableParity & PARITY_SPACE)return TRUE; break;
    }
    return FALSE;
}   // IsValidParity


BOOL
IsValidStopBits(
    DWORD dwStopBits,
    DWORD dwSettableStopBits
    )
{
    //
    // Stop bit values and settable bits from winbase.h
    //
    switch (dwStopBits) {
    case ONESTOPBIT:    if (dwSettableStopBits & STOPBITS_10) return TRUE; break;
    case ONE5STOPBITS:  if (dwSettableStopBits & STOPBITS_15) return TRUE; break;
    case TWOSTOPBITS:   if (dwSettableStopBits & STOPBITS_20) return TRUE; break;
    }
    return FALSE;
}   // IsValidStopBits


BOOL
IsBadStringPtr(
    LPCWSTR lpStr,
    DWORD dwMaxLen
    )
{
    DWORD len;
    BOOL bRet;

    bRet = FALSE;

    try {
        len = wcslen(lpStr);
    } except (EXCEPTION_EXECUTE_HANDLER) {
        DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:IsBadStringPtr: Exception!\n")));        
        bRet = TRUE;
    }
    if (bRet) {
        if (len > dwMaxLen) {
            DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:IsBadStringPtr: String too long %d > %d\n"), len, dwMaxLen));
            bRet = TRUE;
        }
    }
    return bRet;
}   // IsBadStringPtr

//
// Function to edit the specific property of a PDEVMINICONFIG
//
LONG
DevSpecificLineConfigEdit(
    PTLINEDEV   pLineDev,
    PUNIMDM_CHG_DEVCFG pChg
    )
{
    DWORD dwSettableBaud;
    DWORD dwSettableData;
    DWORD dwSettableStopParity;
    DWORD rc;

    PDEVMINICFG  pDevMiniCfg;
    LPVARSTRING  lpDevConfig;
    LPWSTR lpszDeviceClass;
    LPWSTR lpszDialModifier;

    DEBUGMSG(ZONE_FUNC, (TEXT("UNIMODEM:+DevSpecificLineConfigEdit\n")));

    if (IsBadReadPtr(pChg, sizeof(UNIMDM_CHG_DEVCFG))) {
        DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: Invalid PUNIMDM_CHG_DEVCFG\n")));
        rc = LINEERR_INVALPOINTER;
        goto exitPoint;
    }

    lpszDeviceClass = (LPWSTR)MapPtrToProcess((LPVOID)pChg->lpszDeviceClass, GetCallerProcess());

    if (!ValidateDevCfgClass(lpszDeviceClass)) {
        DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: LINEERR_INVALDEVICECLASS\n")));
        rc = LINEERR_INVALDEVICECLASS;
        goto exitPoint;
    }
    
    //
    // Validate the buffer pointers
    //
    if (pChg->lpDevConfig == NULL) {
        DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: LINEERR_INVALPOINTER\n")));
        rc = LINEERR_INVALPOINTER;
        goto exitPoint;
    }

    lpDevConfig = (LPVARSTRING)MapPtrToProcess((LPVOID)pChg->lpDevConfig, GetCallerProcess());
    pDevMiniCfg = (PDEVMINICFG)(((LPBYTE)lpDevConfig) + sizeof(VARSTRING));

    //
    // Validate the buffer size
    //
    if (lpDevConfig->dwTotalSize < sizeof(VARSTRING) + sizeof(DEVMINICFG)) {
        DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: LINEERR_STRUCTURETOOSMALL\n")));
        lpDevConfig->dwNeededSize = sizeof(VARSTRING) + sizeof(DEVMINICFG);
        rc = LINEERR_STRUCTURETOOSMALL;
        goto exitPoint;
    }

    lpDevConfig->dwNeededSize = sizeof(VARSTRING) + sizeof(DEVMINICFG);
    lpDevConfig->dwUsedSize   = sizeof(VARSTRING) + sizeof(DEVMINICFG);
    
    //
    // If they specify version 0, then they want the default devconfig. 
    //
    if (pDevMiniCfg->wVersion == 0) {
        getDefaultDevConfig( pLineDev, pDevMiniCfg );        
    }
    
    rc =  LINEERR_INVALPARAM;

    if (pLineDev->DevMiniCfg.wVersion != (pDevMiniCfg->wVersion)) {
        DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: Invalid DevConfig\n")));
        goto exitPoint;
    }

    switch (pChg->dwOption) {
    case UNIMDM_OPT_BAUDRATE:
    case UNIMDM_OPT_BYTESIZE:
    case UNIMDM_OPT_PARITY:
    case UNIMDM_OPT_STOPBITS:
        dwSettableData = dwSettableStopParity = 0;

        GetSettableFields(
            pLineDev,
            &dwSettableBaud,
            (WORD *)&dwSettableData,
            (WORD *)&dwSettableStopParity
            );
    }

    switch (pChg->dwOption) {
    case UNIMDM_OPT_BAUDRATE:
        if (IsValidBaudRate(pChg->dwValue, dwSettableBaud)) {
            pDevMiniCfg->dwBaudRate = pChg->dwValue;
        } else {
            DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: Unsupported baud rate\n")));
            goto exitPoint;
        }
        break;

    case UNIMDM_OPT_BYTESIZE:
        if (IsValidByteSize(pChg->dwValue, dwSettableData)) {
            pDevMiniCfg->ByteSize = (BYTE)pChg->dwValue;
        } else {
            DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: Unsupported byte size\n")));
            goto exitPoint;
        }
        break;

    case UNIMDM_OPT_PARITY:
        if (IsValidParity(pChg->dwValue, dwSettableStopParity)) {
            pDevMiniCfg->Parity = (BYTE)pChg->dwValue;
        } else {
            DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: Unsupported parity\n")));
            goto exitPoint;
        }
        break;

    case UNIMDM_OPT_STOPBITS:
        if (IsValidStopBits(pChg->dwValue, dwSettableStopParity)) {
            pDevMiniCfg->StopBits = (BYTE)pChg->dwValue;
        } else {
            DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: Unsupported stop bits\n")));
            goto exitPoint;
        }
        break;

    case UNIMDM_OPT_WAITBONG:
        pDevMiniCfg->wWaitBong = (WORD)pChg->dwValue;
        break;

    case UNIMDM_OPT_MDMOPTIONS: // MDM_* values from mcx.h
        //
        // Currently CE unimodem only looks at:
        // MDM_BLIND_DIAL
        // MDM_FLOWCONTROL_HARD
        // MDM_FLOWCONTROL_SOFT
        // MDM_SPEED_ADJUST (enables DCC client automatic baud rate detection)
        //
        if (pChg->dwValue > (MDM_V23_OVERRIDE * 2 - 1)) {
            DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: Invalid modem option\n")));
            goto exitPoint;
        }
        pDevMiniCfg->dwModemOptions = pChg->dwValue;
        break;

    case UNIMDM_OPT_TIMEOUT:
        pDevMiniCfg->dwCallSetupFailTimer = pChg->dwValue;
        break;

    case UNIMDM_OPT_TERMOPTIONS:    // NETUI_LCD_TRMOPT_* values from netui.h
        if (pChg->dwValue == 0) {
            pDevMiniCfg->fwOptions = TERMINAL_NONE;
        } else {
            pDevMiniCfg->fwOptions = 0;
            if (pChg->dwValue & NETUI_LCD_TRMOPT_MANUAL_DIAL) {
                pDevMiniCfg->fwOptions |= MANUAL_DIAL;
            }
            if (pChg->dwValue & NETUI_LCD_TRMOPT_PRE_DIAL) {
                pDevMiniCfg->fwOptions |= TERMINAL_PRE;
            }
            if (pChg->dwValue & NETUI_LCD_TRMOPT_POST_DIAL) {
                pDevMiniCfg->fwOptions |= TERMINAL_POST;
            }
        }
        break;

    case UNIMDM_OPT_DIALMOD:
        lpszDialModifier = (LPWSTR)MapPtrToProcess((LPVOID)pChg->dwValue, GetCallerProcess());
        if (IsBadStringPtr(lpszDialModifier, DIAL_MODIFIER_LEN)) {
            DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: Invalid dial modifier\n")));
            goto exitPoint;
        }
        wcscpy(pDevMiniCfg->szDialModifier, lpszDialModifier);
        break;
        
    default:
        DEBUGMSG(ZONE_ERROR, (TEXT("UNIMODEM:DevSpecificLineConfigEdit: Invalid dwOption\n")));
        goto exitPoint;
    }
    
    rc = 0;

exitPoint:
    DEBUGMSG(ZONE_FUNC, (TEXT("UNIMODEM:-DevSpecificLineConfigEdit: returning 0x%x\n"), rc));
    return rc;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91精品一区二区| 成人小视频在线观看| 一区二区三区中文字幕精品精品 | 国产乱子伦视频一区二区三区| 亚洲主播在线观看| 国产精品人成在线观看免费| 久久久久久久精| 欧美videofree性高清杂交| 精品1区2区3区| 欧美亚州韩日在线看免费版国语版| 成人一区二区三区视频 | 国产福利一区在线| 精品无人码麻豆乱码1区2区| 亚洲高清一区二区三区| 最新国产の精品合集bt伙计| 欧美电影免费观看高清完整版在 | 亚洲精品国产无天堂网2021| 国产欧美一区二区三区在线老狼| 国产三区在线成人av| 国产精品久久久久久久午夜片| 国产亚洲精久久久久久| 国产视频一区在线观看 | 日韩精品一区在线观看| 精品国产乱码久久久久久图片| 欧美三级电影精品| 欧美日韩精品一二三区| 91福利国产精品| 欧美婷婷六月丁香综合色| 欧美区在线观看| 日韩电影在线观看电影| 色综合中文字幕国产| 亚洲在线视频一区| 精品一区二区三区免费播放| eeuss鲁一区二区三区| 在线免费精品视频| 一区在线观看免费| 日韩精品一二区| 在线免费观看日本欧美| 亚洲欧洲av一区二区三区久久| 精品一区二区影视| 91麻豆国产精品久久| 欧美一区二区在线视频| 亚洲精品久久7777| 国产成a人亚洲| 26uuu亚洲| 奇米色一区二区| 欧美撒尿777hd撒尿| 一区二区三区四区激情| 国产精品77777| 久久久久久久综合| 黄色日韩三级电影| 日韩免费看的电影| 美女在线观看视频一区二区| 色哟哟国产精品| 国产精品久久久久精k8 | 欧美综合欧美视频| 亚洲靠逼com| 国产精品99精品久久免费| 精品欧美黑人一区二区三区| 狠狠色综合色综合网络| 欧美一级夜夜爽| 久久国产精品99精品国产| 精品久久久久久最新网址| 国产精品456| 精品国产百合女同互慰| 欧美大片在线观看一区二区| 青椒成人免费视频| 欧美日韩精品一区二区在线播放| 亚洲国产激情av| 91成人免费在线视频| 久久精品99国产国产精| 精品国产乱码久久久久久久久| 粉嫩高潮美女一区二区三区 | 精品奇米国产一区二区三区| 国产成人精品1024| 亚洲1区2区3区视频| 国产欧美一区二区精品婷婷| 在线观看日产精品| 国产一区二区成人久久免费影院| 一区二区三区欧美日| 久久九九影视网| 日韩欧美一级二级| 欧美日韩国产精品自在自线| 成人精品视频一区二区三区| 免费人成在线不卡| 亚洲综合自拍偷拍| 精品国产第一区二区三区观看体验 | 免费成人在线影院| xf在线a精品一区二区视频网站| 成人做爰69片免费看网站| 一区二区免费在线| 国产精品久久久久久亚洲毛片| 欧美日韩一卡二卡| 国产黄色成人av| 免费高清视频精品| 亚洲丶国产丶欧美一区二区三区| 欧美成人精品福利| 欧美日韩一卡二卡| 色欲综合视频天天天| av午夜精品一区二区三区| 国产一区二区三区| 亚洲大尺度视频在线观看| 亚洲乱码中文字幕| 亚洲精品视频在线| 亚洲私人黄色宅男| 亚洲精品乱码久久久久久 | 国产乱子伦视频一区二区三区 | 99精品视频在线观看免费| 国产一区二区三区免费| 久久精品国产亚洲a| 国产一区二区在线看| 亚洲一级二级在线| 亚洲自拍偷拍欧美| 亚洲va国产va欧美va观看| 最新中文字幕一区二区三区| 伊人夜夜躁av伊人久久| 无码av免费一区二区三区试看| 蜜桃在线一区二区三区| 国产一区二区三区美女| 成人开心网精品视频| 一本色道综合亚洲| 91精品在线麻豆| 久久久久久久久蜜桃| 国产精品国产三级国产普通话三级 | 欧美日韩精品三区| 欧美亚洲日本一区| 精品国产伦一区二区三区观看体验 | 欧美一区三区二区| 26uuu精品一区二区三区四区在线| 国产精品美女久久久久久久久 | 在线播放亚洲一区| 欧洲另类一二三四区| 久久免费美女视频| 波多野结衣在线一区| 成人午夜精品一区二区三区| 日韩午夜中文字幕| 亚洲高清免费在线| 在线观看免费亚洲| 中文字幕一区av| 色综合天天综合网国产成人综合天| 国产日本一区二区| 国产成人精品一区二区三区网站观看 | 久久综合色婷婷| 国产精品伊人色| 国产日产亚洲精品系列| 亚洲成av人**亚洲成av**| voyeur盗摄精品| 久久久久久久久蜜桃| 精品中文字幕一区二区小辣椒| 欧美日韩国产bt| 一区二区在线免费观看| yourporn久久国产精品| 国产欧美日韩精品在线| 国产精品中文欧美| 国产午夜精品久久久久久免费视 | av亚洲精华国产精华精华| 久久精品一区二区三区四区| 久久国产福利国产秒拍| 久久日韩精品一区二区五区| 国产美女精品人人做人人爽| 久久午夜电影网| 99亚偷拍自图区亚洲| 综合色中文字幕| 欧美最新大片在线看 | 欧美日韩精品一二三区| 亚洲综合在线第一页| 51精品秘密在线观看| 首页国产欧美久久| 欧美电影免费观看高清完整版在线| 久久 天天综合| 国产精品久久久久影院色老大| 色综合中文综合网| 国产aⅴ精品一区二区三区色成熟| 国产精品视频一二三区| 91黄色激情网站| 久久国产尿小便嘘嘘尿| 国产精品理论片| 91精品中文字幕一区二区三区| 国产ts人妖一区二区| 午夜精品免费在线观看| 久久久久久久久久久久久夜| 91啪亚洲精品| 国产精品综合视频| 天天综合天天综合色| 欧美激情在线一区二区| 欧美乱妇20p| 91免费版在线看| 国产伦精品一区二区三区视频青涩| 亚洲欧美一区二区三区孕妇| 26uuu久久综合| 欧美一二三四在线| av福利精品导航| 精品一区二区三区在线观看| 亚洲电影你懂得| 一区二区三区精品在线| 国产精品视频在线看| 国产精品看片你懂得| 国产女人水真多18毛片18精品视频 | 中文字幕一区二区三区在线播放| 日韩视频一区二区三区在线播放|