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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? backlight_wince.c

?? WINCE下,背光驅(qū)動(dòng)源碼.
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
//
BOOL BKL_Close(DWORD context)
{
    BOOL rc = FALSE;
    BKL_DEVICE *pDevice;
    BKL_INSTANCE *pInstance = (BKL_INSTANCE*)context;

    DEBUGMSG(ZONE_FUNCTION, (L"+BKL_Close(0x%08x)\r\n", context));

    // Check if we get correct context
    if (pInstance == NULL || pInstance->cookie != BKL_INSTANCE_COOKIE) {
        DEBUGMSG (ZONE_ERROR, (L"ERROR: BKL_Read: "
            L"Incorrect context paramer\r\n"
        ));
        goto cleanUp;
    }

    // Get device context
    pDevice = pInstance->pDevice;

    // sanity check number of instances
    ASSERT(pDevice->instances > 0);

    // Decrement number of open instances
    InterlockedDecrement(&pDevice->instances);

    // Free instance structure
    LocalFree(pInstance);

    // Done...
    rc = TRUE;
    
cleanUp:
    DEBUGMSG(ZONE_FUNCTION, (L"-BKL_Close(rc = %d)\r\n", rc));
    return rc;
}

//------------------------------------------------------------------------------
//
//  Function:  BKL_IOControl
//
//  This function sends a command to a device.
//
BOOL BKL_IOControl(
    DWORD context, DWORD code, BYTE *pInBuffer, DWORD inSize, BYTE *pOutBuffer,
    DWORD outSize, DWORD *pOutSize
) {
    BOOL rc = FALSE;
    BKL_INSTANCE *pInstance = (BKL_INSTANCE*)context;
    BKL_DEVICE *pDevice;
    POWER_CAPABILITIES powerCap;
    CEDEVICE_POWER_STATE powerState;

    // Check if we get correct context
    if (pInstance == NULL || pInstance->cookie != BKL_INSTANCE_COOKIE) {
        DEBUGMSG(ZONE_ERROR, (L"ERROR: BKL_IOControl: "
            L"Incorrect context paramer\r\n"
        ));
        goto cleanUp;
    }

    // Device structure
    pDevice = pInstance->pDevice;

    switch (code) {
    // Return device specific power capabilities.
    case IOCTL_POWER_CAPABILITIES :  
        // Check input parameters
        if (pOutSize != NULL) *pOutSize = sizeof(POWER_CAPABILITIES);
        if (pOutBuffer == NULL || outSize < sizeof(POWER_CAPABILITIES)) {
            SetLastError(ERROR_INVALID_PARAMETER);
            break;
        }
        memset(&powerCap, 0, sizeof(powerCap));
        powerCap.DeviceDx = DX_MASK(D0) | DX_MASK(D3) |DX_MASK(D4);
        if (!CeSafeCopyMemory(pOutBuffer, &powerCap, sizeof(powerCap))) {
            SetLastError(ERROR_INVALID_PARAMETER);
            break;
        }
        rc = TRUE;
        break;

    // Request a change from one device power state to another.
    case IOCTL_POWER_SET:
        // Check input parameters
        if (pOutSize != NULL) *pOutSize = sizeof(CEDEVICE_POWER_STATE);
        if (
            pOutBuffer == NULL || outSize < sizeof(CEDEVICE_POWER_STATE) ||
            !CeSafeCopyMemory(&powerState, pOutBuffer, sizeof(powerState))
        ) {
            SetLastError(ERROR_INVALID_PARAMETER);
            break;
        }

        // Check for any valid power state.
        if (!VALID_DX(powerState)) {
            DEBUGMSG(ZONE_ERROR, (L"ERROR: BKL_IOControl: "
                L"Invalid power state 0x%08x\r\n", powerState
            ));
            break;
        }
        pDevice->ps = powerState;
        RefreshBKL(pDevice);
        if (!CeSafeCopyMemory(pOutBuffer, &pDevice->ps, sizeof(pDevice->ps))) {
            SetLastError(ERROR_INVALID_PARAMETER);
            break;
        }
        rc = TRUE;
        break;

    // Return the current device power state.
    case IOCTL_POWER_GET:
        // Check input parameters
        if (pOutSize != NULL) *pOutSize = sizeof(CEDEVICE_POWER_STATE);
        if (
            pOutBuffer == NULL || outSize < sizeof(CEDEVICE_POWER_STATE) ||
            !CeSafeCopyMemory(pOutBuffer, &pDevice->ps, sizeof(pDevice->ps))
        ) {
            SetLastError(ERROR_INVALID_PARAMETER);
            break;
        }
        rc = TRUE;
        break;
    case IOCTL_FORCEBKL_OFF:
    	pDevice->fForceOFF = *(BOOL *)pInBuffer;
    	RefreshBKL(pDevice);
        break;
    }

cleanUp:
    DEBUGMSG(ZONE_FUNCTION, (L"-BKL_IOControl(rc = %d)\r\n", rc));
    return rc;
}

//------------------------------------------------------------------------------
//
//  Function:  DllMain
//
//  Standard Windows DLL entry point.
//
BOOL __stdcall DllMain(HANDLE hDLL, DWORD reason, VOID *pReserved)
{
    switch (reason) {
    case DLL_PROCESS_ATTACH:
        DEBUGREGISTER(hDLL);
        DisableThreadLibraryCalls((HMODULE)hDLL);
        break;
    }
    return TRUE;
}

#ifndef BUILD_ULDR
void RefreshBKL(BKL_DEVICE *pDevice)
{
    CEDEVICE_POWER_STATE ps = pDevice->ps;
    BOOL TurnOn = FALSE;
    RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] Function Called: RefreshBKL\r\n"))); 
    if(pDevice->fForceOFF)
    {
        ps = D4;
    }


    switch(ps)
    {
    case D0:
        RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] RefreshBKL: D0\r\n"))); 
        if(pDevice->Lastps != D0)
        {
            TurnOn = TRUE;
        }
        if(pDevice->JustChanged) 
        {
            RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] RefreshBKL: D0 TURN ON\r\n"))); 
            OUTREG8(&g_pPWLMAPAddress->PWL_CTRL_REG, 0x01);
            OUTREG8(&g_pPWLMAPAddress->PWL_LEVEL_REG, pDevice->dwBrightness);
            pDevice->Lastps = D0;
        }
        if(!TurnOn)
        {
            break;
        }
		if(pDevice->ACLineStatus == AC_LINE_ONLINE && pDevice->Lastps!=D4)
		{
			  if(pDevice->fACOnTap || pDevice->ACTimeout==0 )
           {
            RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] RefreshBKL: D0 TURN ON\r\n"))); 
            OUTREG8(&g_pPWLMAPAddress->PWL_CTRL_REG, 0x01);
            OUTREG8(&g_pPWLMAPAddress->PWL_LEVEL_REG, pDevice->dwBrightness);
            pDevice->Lastps = D0;
           }
			  else
           {
            RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] RefreshBKL: D0 KEEP DIM\r\n"))); 
            OUTREG8(&g_pPWLMAPAddress->PWL_CTRL_REG, 0x01);
            OUTREG8(&g_pPWLMAPAddress->PWL_LEVEL_REG, BACKLIGHTDIMLEVEL);
            pDevice->Lastps = D3;
           }
		}
		else if(pDevice->ACLineStatus != AC_LINE_ONLINE && pDevice->Lastps!=D4)
		{
			if(pDevice->fBattOnTap || pDevice->BatteryTimeout==0)
           {
            RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] RefreshBKL: D0 TURN ON\r\n"))); 
            OUTREG8(&g_pPWLMAPAddress->PWL_CTRL_REG, 0x01);
            OUTREG8(&g_pPWLMAPAddress->PWL_LEVEL_REG, pDevice->dwBrightness);
            pDevice->Lastps = D0;
           }
			  else
           {
            RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] RefreshBKL: D0 KEEP DIM\r\n"))); 
            OUTREG8(&g_pPWLMAPAddress->PWL_CTRL_REG, 0x01);
            OUTREG8(&g_pPWLMAPAddress->PWL_LEVEL_REG, BACKLIGHTDIMLEVEL);
            pDevice->Lastps = D3;
           }
		}
		else
		{
			RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] RefreshBKL: D0 TURN ON\r\n"))); 
            OUTREG8(&g_pPWLMAPAddress->PWL_CTRL_REG, 0x01);
            OUTREG8(&g_pPWLMAPAddress->PWL_LEVEL_REG, pDevice->dwBrightness);
            pDevice->Lastps = D0;
		}
        break;
    case D1:
    case D2:
    case D3:
        OUTREG8(&g_pPWLMAPAddress->PWL_LEVEL_REG, BACKLIGHTDIMLEVEL);
        pDevice->Lastps = D3;
        break;
    case D4:
        RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] RefreshBKL: D4\r\n"))); 
        OUTREG8(&g_pPWLMAPAddress->PWL_LEVEL_REG, 0x00);
        pDevice->Lastps = D4;
        break;
    default:
        break;
    }
    pDevice->JustChanged = FALSE;
}
#endif
#ifdef BUILD_ULDR
void RefreshBKL(BKL_DEVICE *pDevice)
{
    CEDEVICE_POWER_STATE ps = pDevice->ps;
    switch(ps)
    {
    case D0:
        RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] RefreshBKL: D0 KEEP DIM\r\n"))); 
        OUTREG8(&g_pPWLMAPAddress->PWL_CTRL_REG, 0x01);
        OUTREG8(&g_pPWLMAPAddress->PWL_LEVEL_REG, pDevice->dwBrightness);
        break;
    case D1:
    case D2:
    case D3:
        OUTREG8(&g_pPWLMAPAddress->PWL_LEVEL_REG, BACKLIGHTDIMLEVEL);
        break;
    case D4:
        RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] RefreshBKL: D4\r\n"))); 
        OUTREG8(&g_pPWLMAPAddress->PWL_LEVEL_REG, 0x00);
        break;
    default:
        break;
    }
}
#endif

#ifndef BUILD_ULDR
void BrightCallback(HREGNOTIFY hNotify, DWORD dwUserData, const PBYTE pData, const UINT cbData)
{
    BKL_DEVICE *pDevice = (BKL_DEVICE *)dwUserData;
    if(pData == 0)
    {
        return;
    }
    if(hNotify == pDevice->hACLineStatus)
    {
        pDevice->JustChanged = TRUE;
        pDevice->ACLineStatus = (*(DWORD*)pData);
    }
    else if(hNotify == pDevice->hBrightNotify)
    {
        pDevice->JustChanged = TRUE;
        pDevice->dwBrightness = (*(DWORD*)pData);
        RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] Brightness level changed to 0x%x \r\n"),pDevice->dwBrightness)); 
    }
    else if(hNotify == pDevice->hBattOnTapNotify)
    {
        RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] BattOnTap changed to 0x%x \r\n"),*(DWORD *)pData));
        pDevice->fBattOnTap = *(BOOL *)pData;
    }
    else if(hNotify == pDevice->hACOnTapNotify)
    {
        RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] ACOnTap changed to 0x%x \r\n"),*(DWORD *)pData));
        pDevice->fACOnTap = *(BOOL *)pData;
    }
	else if(hNotify == pDevice->hBatteryTimeoutNotify)
    {
        RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] BatteryTimeoutNotify changed to 0x%x \r\n"),*(DWORD *)pData));
		pDevice->BatteryTimeout= (*(DWORD*)pData);
    }
    else if(hNotify == pDevice->hACTimeoutNotify)
    {
        RETAILMSG(RETAILMSGZONE, (TEXT("[BKL] ACTimeoutNotify changed to 0x%x \r\n"),*(DWORD *)pData));
		pDevice->ACTimeout= (*(DWORD*)pData);
    }
    RefreshBKL(pDevice);
}

void CheckBacklightTimeout()
{
    DWORD val = 0;
    
    if(S_OK == RegistryGetDWORD(HKEY_CURRENT_USER, BACKLIGHT_SET_PATH,
                                BACKLIGHT_SET_BACKKEY, &val))
    {
        RegistrySetDWORD(HKEY_CURRENT_USER, BACKLIGHT_SET_PATH,
                         BACKLIGHT_SET_KEY, val);
    }
}
#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一片黄亚洲嫩模| 97久久久精品综合88久久| 欧美另类一区二区三区| 国产亚洲自拍一区| 久久精品久久99精品久久| 欧美日韩三级一区二区| 亚洲精品国产a| 91在线观看美女| 国产精品久久久久久久久免费樱桃 | 日韩激情视频在线观看| 欧美日韩一区国产| 亚洲少妇30p| 色一区在线观看| 国产精品传媒视频| a4yy欧美一区二区三区| 国产精品久久久久久亚洲伦| 国产成人a级片| 中文天堂在线一区| 成人av免费网站| 国产精品高清亚洲| 97精品超碰一区二区三区| 亚洲视频一二三| 成人夜色视频网站在线观看| 亚洲欧洲在线观看av| 国产精品亚洲а∨天堂免在线| 久久久www免费人成精品| 国产91精品久久久久久久网曝门| 欧美不卡一区二区| 国产在线视视频有精品| 国产精品欧美久久久久一区二区| 99久久精品99国产精品| 亚洲成人av一区二区三区| 欧美精品一二三| 国产中文一区二区三区| 国产精品久99| 欧美日本精品一区二区三区| 久久99精品久久久久久| 久久久精品国产免费观看同学| 成人av手机在线观看| 一区二区三区在线高清| 欧美专区日韩专区| 久久精品国产第一区二区三区| 欧美韩国日本综合| 欧美色网站导航| 狠狠色狠狠色综合日日91app| 精品国产乱子伦一区| 99v久久综合狠狠综合久久| 一区二区三区在线免费播放 | 99国产精品久久久久久久久久久 | 国产成人在线视频网址| 一区二区三区欧美激情| 欧美大片一区二区| kk眼镜猥琐国模调教系列一区二区 | 亚洲欧洲国产日本综合| 欧美高清一级片在线| 亚洲一区二区精品视频| 久久精品一区蜜桃臀影院| 一本大道av伊人久久综合| 久久精品99国产精品| 成人欧美一区二区三区视频网页 | 欧美aⅴ一区二区三区视频| 日韩一区二区三| 99久久精品情趣| 亚洲午夜日本在线观看| 51午夜精品国产| 成人av综合一区| 久久精品国产久精国产爱| 国产精品久久久久影院| 日韩精品一区二区三区在线| 91美女片黄在线观看| 国产成人一区二区精品非洲| 午夜精品国产更新| 玉足女爽爽91| 美女网站在线免费欧美精品| 欧美中文字幕一区二区三区| 国产精品毛片久久久久久久| 日本久久电影网| 午夜a成v人精品| 99re66热这里只有精品3直播| 日本中文字幕一区二区视频 | 国产精品一二三四区| 国产精品网曝门| 欧美成人一区二区三区在线观看 | 经典一区二区三区| 亚洲美女视频一区| 久久九九久久九九| 精品1区2区3区| 国产91综合网| 青青草国产精品亚洲专区无| 成人免费一区二区三区在线观看| 色综合久久中文字幕| 国产成人三级在线观看| 经典三级视频一区| 麻豆国产精品777777在线| 国产精品久久久久久亚洲毛片 | 国产在线精品一区二区三区不卡| 亚洲精品v日韩精品| 亚洲一区二区在线免费观看视频| 中文字幕一区二区三区四区不卡| 精品日产卡一卡二卡麻豆| 日韩精品一区二区在线| 日韩午夜三级在线| 欧美videossexotv100| 国产精品久久久久9999吃药| 日韩一级高清毛片| 国产精品进线69影院| 日韩影院精彩在线| 成人综合婷婷国产精品久久免费| 在线免费观看视频一区| 成人免费一区二区三区视频| 亚洲一区在线视频| av综合在线播放| 日韩一区二区免费视频| 亚洲成人黄色小说| 91丨九色丨尤物| 亚洲欧洲精品一区二区三区不卡| 国产在线精品一区二区夜色| 在线精品视频一区二区| 亚洲欧洲三级电影| 99视频精品免费视频| 国产精品天美传媒沈樵| 欧美日韩在线播放三区四区| 播五月开心婷婷综合| 91网站在线播放| 欧美二区乱c少妇| 亚洲男人电影天堂| 国产成人免费视| 精品日韩成人av| 三级不卡在线观看| 色婷婷综合久久久| 亚洲精品视频一区| 不卡视频在线看| 日本一区二区三级电影在线观看| 日韩精彩视频在线观看| 99久久免费国产| 亚洲女厕所小便bbb| 成人激情视频网站| 精品免费视频.| 激情综合色丁香一区二区| 欧美日韩久久久| 亚洲福利电影网| 成人免费视频一区二区| 国产日韩欧美电影| www.成人网.com| 久久久亚洲午夜电影| 国产成人精品免费视频网站| 久久久精品蜜桃| av亚洲精华国产精华| 国产精品乱码妇女bbbb| 99视频一区二区三区| 亚洲女人的天堂| 欧美精品亚洲二区| 加勒比av一区二区| 亚洲色图制服诱惑| 日韩一区二区三区免费观看| 亚洲欧美日韩国产手机在线 | 蜜桃一区二区三区在线观看| 久久99国产精品久久99| 99精品欧美一区二区三区小说| 精品精品欲导航| 视频一区在线播放| 日本大香伊一区二区三区| 久久九九影视网| 国产一区二区三区四区五区美女 | 国产精品大尺度| 国产乱人伦偷精品视频不卡| 日韩精品一区二区三区视频| 免费看日韩a级影片| 9191久久久久久久久久久| 午夜一区二区三区视频| 欧美日免费三级在线| 亚洲地区一二三色| 欧美日韩精品免费| 午夜亚洲国产au精品一区二区| 欧美亚日韩国产aⅴ精品中极品| 亚洲乱码国产乱码精品精可以看 | 91一区二区在线| 一区精品在线播放| 91蝌蚪porny成人天涯| 亚洲欧洲在线观看av| 色综合久久久久网| 亚洲大片精品永久免费| 欧美日韩视频在线一区二区 | 在线不卡欧美精品一区二区三区| 午夜精品久久久久久久蜜桃app| 欧美日本精品一区二区三区| 日本中文字幕一区| 亚洲精品一区二区三区蜜桃下载| 国产在线播精品第三| 国产亚洲欧美色| 99久久久无码国产精品| 亚洲一区二区精品久久av| 欧美一区二区三区男人的天堂| 美女免费视频一区| 国产精品丝袜91| 欧美午夜宅男影院| 国产在线一区二区综合免费视频| 国产精品理论片| 欧美又粗又大又爽| 奇米色777欧美一区二区|