⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 powersaver_ctl.c

📁 威盛 wince5.0 bsp 包 for x86 系统, 支持 VT8601 等北桥
💻 C
字号:
#include <windows.h>
#include <oal.h>
#include "powersaver_ctl.h"
#include <ceddk.h>
#include <wdm.h>
#include <Winbase.h>
#include "nkintr.h"
#include "pc.h"
#include "timer.h"


extern void SetQueryPeriod(LPDWORD lpPeriod);
extern void SetIdleThresholdHigh(LPDWORD lpThreshold);
extern void SetIdleThresholdLow(LPDWORD lpThreshold);
extern void SetCurrentRatio(LPDWORD lpCurRatio);
extern void GetCurrentRatio(LPDWORD lpCurRatio);
extern void GetDefaultRatio(LPDWORD lpDefRatio);
extern void SetAdjustFrequencyRatioMode(LPDWORD lpMode);
extern void GetVRMType(LPDWORD lpVRMType);
extern void SetAdjustSoftVIDMode(LPDWORD lpMode);
extern void GetCurrentVID(LPDWORD lpCurVID);
extern void SetCurrentVID(LPDWORD lpCurVID);
extern void GetRatioCounter(LPDWORD lpUpDown, LPDWORD lpValue);
extern void SetRatioCounter();
extern void GetAutoVID(LPDWORD lpAutoVID);
extern void SetAutoVID(LPDWORD lpAutoVID);
extern void GetCPUType(LPDWORD lpCPUType);
extern void GetCPUIdelTime(LPDWORD lpCPUIdelTime);
extern void SetSoftVIDFlag(LPDWORD lpFlag);
extern void GetSoftVIDFlag(LPDWORD lpFlag);
extern void SetGPOBaseAddr(LPDWORD lpGPOBase);
extern void SetGPONumber(LPDWORD lpGPONumber);
extern void ChagneCPURatioFlag();
extern void SetCPUMiniRatio(LPDWORD lpMiniRatio);
extern void SetCPUMaxVID(LPDWORD lpMaxVID);
extern void SetCPUMiniVID(LPDWORD lpMiniVID);



   

BOOL PowSaverOEMIoControl( 
    UINT32 dwIoControlCode,
    PBYTE lpInBuf,
    UINT32 nInBufSize,
    PBYTE lpOutBuf,
    UINT32 nOutBufSize,
    UINT32* lpBytesReturned
    )
{
    BOOL retval = FALSE;
//    DWORD len;
    DEBUGMSG(0, (TEXT("+PowSaverOEMIoControl %X\r\n"), dwIoControlCode));

    switch (dwIoControlCode) {
   
        case IOCTL_HAL_SET_PERIOD:
            SetQueryPeriod((LPDWORD)lpInBuf);
            return TRUE;

        case IOCTL_HAL_SET_IDLE_THRESHOLDHIGH:
            SetIdleThresholdHigh((LPDWORD)lpInBuf);
            return TRUE;

        case IOCTL_HAL_SET_IDLE_THRESHOLDLOW:
            SetIdleThresholdLow((LPDWORD)lpInBuf);
            return TRUE;

        case IOCTL_HAL_GET_CURRENT_RATIO:
            GetCurrentRatio((LPDWORD)lpOutBuf);
            return TRUE;

        case IOCTL_HAL_GET_DEFAULT_RATIO:
            GetDefaultRatio((LPDWORD)lpOutBuf);
            return TRUE;

        case IOCTL_HAL_ADJUST_FREQUENCY_MODE:
            SetAdjustFrequencyRatioMode((LPDWORD)lpInBuf);
            return TRUE;

        case IOCTL_HAL_SET_CURRENT_RATIO:
            SetCurrentRatio((LPDWORD)lpInBuf);
            return TRUE;

        case IOCTL_HAL_ADJUST_SOFTVID_MODE:
            SetAdjustSoftVIDMode((LPDWORD)lpInBuf);
            return TRUE;

        case IOCTL_HAL_GET_CURRENT_VID:
            GetCurrentVID((LPDWORD)lpOutBuf);
            return TRUE;

        case IOCTL_HAL_SET_CURRENT_VID:
            SetCurrentVID((LPDWORD)lpInBuf);
            return TRUE;

        case IOCTL_HAL_GET_RATIO_COUNTER:
            GetRatioCounter((LPDWORD)lpInBuf, (LPDWORD)lpOutBuf);
            return TRUE;

        case IOCTL_HAL_SET_RATIO_COUNTER:
            SetRatioCounter();
            return TRUE;

        case IOCTL_HAL_GET_AUTO_VID:
            GetAutoVID((LPDWORD)lpOutBuf);
            return TRUE;

        case IOCTL_HAL_SET_AUTO_VID:
            SetAutoVID((LPDWORD)lpInBuf);
            return TRUE;

        case IOCTL_HAL_GET_VRM_TYPE:
            GetVRMType((LPDWORD)lpOutBuf);
            return TRUE;

        case IOCTL_HAL_GET_CPU_TYPE:
            GetCPUType((LPDWORD)lpOutBuf);
            return TRUE;

        case IOCTL_HAL_GET_CPU_IdelTime:
            GetCPUIdelTime((LPDWORD)lpOutBuf);
            return TRUE;
        
        case IOCTL_HAL_Set_SOFTVID_FLAG:
            SetSoftVIDFlag((LPDWORD)lpInBuf);
            return TRUE;
        
        case IOCTL_HAL_Get_SOFTVID_FLAG:
            GetSoftVIDFlag((LPDWORD)lpOutBuf);
            return TRUE;
        
        case IOCTL_HAL_SET_GPO_BASEADDR:
            SetGPOBaseAddr((LPDWORD)lpInBuf);
            return TRUE;
        
        case IOCTL_HAL_SET_GPO_NUMBER:
            SetGPONumber((LPDWORD)lpInBuf);
            return TRUE;
        
        case IOCTL_HAL_SET_CPU_MINIRATIO:
            SetCPUMiniRatio((LPDWORD)lpInBuf);
            return TRUE;
       
        case IOCTL_HAL_SET_CPU_MAXVID:
            SetCPUMaxVID((LPDWORD)lpInBuf);
            return TRUE;
        
        case IOCTL_HAL_SET_CPU_MINIVID:
            SetCPUMiniVID((LPDWORD)lpInBuf);
            return TRUE;
        
        case IOCTL_HAL_CHANGE_CPURTAIO_FLAG:
            ChagneCPURatioFlag((LPDWORD)lpInBuf);
            return TRUE;
     
    default:
#ifdef INTERNAL_HAL_TESTING
        return InternalHalTesting(dwIoControlCode, lpInBuf, nInBufSize, lpOutBuf, nOutBufSize, lpBytesReturned);
#else
       // SetLastError(ERROR_NOT_SUPPORTED);
        return FALSE;
#endif
    }
    
    return FALSE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -