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

📄 dal.h

📁 此代码为WCE5.0下显示器的源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
* This FUNCTION TYPEDEF must be defined after DAL TYPE DEFINITIONS. Otherwise
* it will cause compiler errors in 16 bit build environment.
\****************************************************************************/

typedef BOOL (FAR *PFNDALTIMINGS)(LPHANDLE, ULONG, LPADJUSTMENT_PARAMETERS);

typedef VOID (FAR *PFNGCODISABLE)(HGCO);   // (VOID FAR)RageProDisable, (VOID FAR)RageProAcceleratorToVgaMode
typedef BOOL (FAR *PFNGCOENABLE)(HDDL, HGCO, LPHW_ASIC_ID, LPHW_CONTROLLER_ENABLEDATA);  // (BOOL FAR)RageProEnable
typedef BOOL (FAR *PFNGCOENUMERATEMODE)(HGCO, LPDEVMODE_INFO, ULONG, ULONG);  // (BOOL FAR)RageProEnumerateStandardModes
typedef VOID (FAR *PFNGCOGETCRTCLINE)(HGCO, ULONG, LPULONG);
typedef VOID (FAR *PFNGCOGETGAMMA)(HGCO, ULONG, LPDEVCLUT);    // (VOID FAR)RageProGetGammaCorrection, (VOID FAR)RageProSetGammaCorrection
typedef VOID (FAR *PFNGCOGETGAMMA16)(HGCO, ULONG, LPDEVCLUT16);    // (VOID FAR)RageProGetGammaCorrection, (VOID FAR)RageProSetGammaCorrection
typedef VOID (FAR *PFNGCOGETBLINKOVERLAY)(HGCO, LPHW_ADJUSTMENT);       // (VOID FAR)RageProGetTextCursorBlinkingAdjustment
typedef BOOL (FAR *PFNGCONONSTANDARDMODE)(HGCO, LPDEVMODE_INFO, ULONG); // (BOOL FAR)RageProIsNonStandardModeSupported
typedef VOID (FAR *PFNGCOMODECHANGE)(HGCO, LPDEVMODE_INFO, ULONG); // (VOID FAR)RageProPreModeChange, (VOID FAR)RageProPostModeChange
typedef VOID (FAR *PFNGCOSETMODE)(HGCO, LPDEVMODE_INFO, ULONG, ULONG, ULONG, ULONG);  // (BOOL FAR)RageProSetMode
typedef VOID (FAR *PFNGCOSETPALETTE)(HGCO, ULONG, LPDEVCLUT, ULONG, ULONG);  // (VOID FAR)RageProSetPalette
typedef VOID (FAR *PFNGCOSETBLINKOVERLAY)(HGCO, LONG);  // (VOID FAR)RageProSetTextCursorBlinkingAdjustment
typedef VOID (FAR *PFNGCOSETDISPLAYOFFSET)(HGCO, ULONG, ULONG);
typedef BOOL (FAR *PFNGCOTIMINGS)(HGCO, ULONG, LPADJUSTMENT_PARAMETERS);  // (BOOL FAR)RageProSetAdjustmentTimings
typedef BOOL (FAR *PFNGCOGETMULTIMEDIATABLE)(HGCO, LPUCHAR, LPULONG); // RageProGetMultimediaTable
typedef BOOL (FAR *PFNGCOGETHARDWAREINFOTABLE)(HGCO, LPUCHAR, LPULONG); // RageProGetHardwareInfoTable
typedef VOID (FAR *PFNGCOGETINFO)(HGCO, ULONG, LPGCO_QUERY_STRUCTURE);
typedef BOOL (FAR *PFNGCOGETSYSTEMBIOSINFO)(HGCO, ULONG, LPGCO_SYSTEMBIOSINFO);  // This function will get system BIOS related infromation
// EPR# 36064 typedef VOID (FAR *PFNGCOSETPOWERSTATE)(HGCO, ULONG);
typedef VOID (FAR *PFNGCOSETDFPSIZE)(HGCO, ULONG, ULONG, ULONG);
typedef VOID (FAR *PFNGCOGETPOWERSTATECAPS)(HGCO, LPULONG);
typedef VOID (FAR *PFNGCOENABLEOVERLAY)(HGCO, ULONG);
typedef VOID (FAR *PFNGCOGETCRTCTIMINGS)(HGCO, ULONG, LPGCO_CONTROLLER_TIMINGS);
typedef BOOL (FAR *PFNGCOGETEXPANSION)(HGCO, ULONG, ULONG);
typedef VOID (FAR *PFNGCOUPDATEBIOSDISPLAYINFO)(HGCO, LPULONG, ULONG, ULONG, ULONG);
typedef BOOL (FAR *PFNGCOISDEVICEMAPPINGSUPPORTED)(HGCO, ULONG, ULONG);
typedef BOOL (FAR *PFNGCOSETMODEEXTENDED)(HGCO, LPDEVMODE_INFO, ULONG, ULONG, ULONG, ULONG,
                                          LPDAL_DISPLAY_TIMING_INFO);

typedef BOOL (FAR *PFNGCOVALIDATEMODE)(HGCO, ULONG, LPDEVMODE_INFO, LPDAL_DISPLAY_TIMING_INFO);
typedef VOID (FAR *PFNGCOGETTOTALHTIME)(HGCO, LPHORIZONTAL_TIME, LPDEVMODE_INFO, ULONG);

typedef VOID (FAR *PFNGCOCALCMODEBW)(HGCO, LPDEVMODE_INFO, LPFIXEDPOINT);
typedef VOID (FAR *PFNGCOCALCMODEBWEX)(HGCO, LPDEVMODE_INFO, LPDAL_CRTC_TIMING, LPFIXEDPOINT);
typedef VOID (FAR *PFNGCOCALCOVBW)(HGCO, ULONG, LPDEVMODE_INFO, LPFIXEDPOINT);
typedef VOID (FAR *PFNGCOCALCVIDEOBW)(HGCO, LPDEVMODE_INFO, LPFIXEDPOINT);
typedef BOOL (FAR *PFNGCOCALCHFBBW)(HGCO, LPDEVMODE_INFO, LPFIXEDPOINT);

typedef VOID (FAR *PFNGCOCALCMODEHTIME)(HGCO, LPDEVMODE_INFO, LPHORIZONTAL_TIME);
typedef VOID (FAR *PFNGCOCALCOVHTIME)(HGCO, ULONG, LPDEVMODE_INFO, LPHORIZONTAL_TIME);
typedef VOID (FAR *PFNGCOCALCVIDEOHTIME)(HGCO, LPDEVMODE_INFO, LPHORIZONTAL_TIME);
typedef BOOL (FAR *PFNGCOCALCHFBHTIME)(HGCO, LPDEVMODE_INFO, LPHORIZONTAL_TIME);
typedef BOOL (FAR *PFNGCOCALCHTIMEADJUST)(HGCO, LPHORIZONTAL_TIME, LPHORIZONTAL_TIME, LPDEVMODE_INFO, ULONG, LPULONG);
typedef ULONG (FAR *PFNGCOGETCRC)(HGCO, ULONG,ULONG);
typedef ULONG (FAR *PFNGCOGETHARDWAREDATA)(HGCO,ULONG,ULONG,LPGCO_HW_REGISTER);
typedef BOOL (FAR *PFNGETMODETIMING)(HGCO, ULONG, LPDEVMODE_INFO, LPDAL_CRTC_TIMING);
typedef BOOL (FAR *PFNGETDETAILEDMODETIMING)(HGCO, ULONG, LPDEVMODE_INFO, LPDAL_CRTC_TIMING); 

typedef BOOL (FAR *PFNGCOGETPOWERSTATE)(HGCO, LPULONG, LPULONG, LPDAL_ADAPTERPOWERSTATES);
typedef ULONG (FAR *PFNGCOSETPOWERSTATE)(HGCO, ULONG);
typedef ULONG (FAR *PFNGCOVALIDATEPOWERSTATE)(HGCO, ULONG, ULONG, LPDAL_CRTC_TIMING, DEVMODE_INFO);
typedef VOID (FAR *PFNGCOSETPOWERSTATEEX)(HGCO, ULONG, ULONG);

typedef BOOL (FAR *PFNGCOALLOCOVERLAY)(HGCO, ULONG, ULONG,ULONG,ULONG);
typedef VOID (FAR *PFNGCOFREEOVERLAY)(HGCO, ULONG);
typedef ULONG (FAR *PFNGCOCONTROLLERTESTHARNESS) (HGCO, LPVOID, LPVOID);
typedef VOID (FAR *PFNGCOGETCLOCKINFO)(HGCO, LPDAL_ADAPTERCLOCK_INFO);
typedef ULONG (FAR *PFNGCOVALIDATECLOCKCONFIG)(HGCO, LPDAL_GCOCLK_CONFIG);
typedef BOOL (FAR *PFNGCOSETEVENT)(HGCO, ULONG, ULONG);

typedef VOID (FAR *PFNGCOPROCESSMISCINFO)(HGCO, ULONG, ULONG, LPVOID);

typedef VOID (FAR *PFNGCOGETDISPLAYXYPOS)(HGCO, ULONG, LPULONG, LPULONG);
typedef VOID (FAR *PFNGCOSETDISPLAYXYPOS)(HGCO, ULONG, ULONG, ULONG);

typedef VOID (FAR *PFNGDODISABLE)(HGDO);
typedef BOOL (FAR *PFNGDOENABLE)(HDDL, HGDO, LPHW_ASIC_ID, LPHW_DISPLAY_ENABLEDATA);
typedef VOID (FAR *PFNGDOBLANKING)(HGDO, ULONG, BOOL);
typedef BOOL (FAR *PFNGDOCONNECT)(HGDO);
typedef BOOL (FAR *PFNGDOLIDSTATE)(HGDO);
typedef VOID (FAR *PFNGDODISPLAYONOFF)(HGDO, ULONG);
typedef VOID (FAR *PFNGDOSETDPMS)(HGDO, ULONG);
typedef VOID (FAR *PFNGDOSETADJUSTMENT)(HGDO, LONG);
typedef ULONG (FAR *PFNGDOSETVIDEOSTANDARDADJUSTMENT)(HGDO, LONG);
typedef VOID (FAR *PFNGDOSETOVERSCANADJUSTMENT)(HGDO, LONG);
typedef VOID (FAR *PFNGDOSETMULTIMEDIAADJUSTMENT)(HGDO, LONG);
typedef VOID (FAR *PFNGDOSETPOSITIONADJUSTMENT)(HGDO, LONG, LONG);
typedef BOOL (FAR *PFNGDOSETSIZEADJUSTMENT)(HGDO, LONG, LONG);
typedef VOID (FAR *PFNGDOMODE)(HGDO, LPDEVMODE_INFO, ULONG, PFNDALTIMINGS, LPHANDLE);
typedef VOID (FAR *PFNGDOPPMODE)(HGDO, LPDEVMODE_INFO);
typedef BOOL (FAR *PFNGDOMODESUPPORTED)(HGDO, LPDEVMODE_INFO, ULONG);
typedef BOOL (FAR *PFNGDOMODESUPPORTEDEX)(HGDO, LPDEVMODE_INFO, LPDAL_CRTC_TIMING, ULONG);
typedef VOID (FAR *PFNGDOGETADJUSTMENT)(HGDO, LPHW_ADJUSTMENT, LPDEVMODE_INFO);
typedef BOOL (FAR *PFNGDOGETEDIDDATA)(HGDO, LPEDID_BUFFER); // Obsolete!
typedef BOOL (FAR *PFNSETDSPLCONNECTOR)(HGDO, USHORT);
typedef BOOL (FAR *PFNDDCPREDDCQUERY)(HGDO);
typedef BOOL (FAR *PFNDDCREADLINE)(HGDO, USHORT);
typedef VOID (FAR *PFNDDCWRITELINE)(HGDO, BOOL, USHORT);
typedef VOID (FAR *PFNDDCPOSTDDCQUERY)(HGDO, BOOL);
typedef BOOL (FAR *PFNGDOGETMONITORINFO)(HGDO, LPMONITOR_INFO);
typedef VOID (FAR *PFNGDOSETPOWERSTATE)(HGDO, ULONG);
typedef VOID (FAR *PFNGDOINITIALIZEDEVICE)(HGDO, EDID_BUFFER);
typedef BOOL (FAR *PFNGDOISDEVICEHOTPLUGGABLE)(HGDO);
typedef BOOL (FAR *PFNGDOPPADJUSTMENTCHANGE)(HGDO);
typedef BOOL (FAR *PFNGDOALIGNER)(HGDO);
typedef ULONG (FAR *PFNGDODISPLAYTESTHARNESS) (HGDO, LPVOID, LPVOID);
typedef ULONG (FAR *PFNGDOENABLESIBLING) (HDDL, HGDO, HGDO, LPHW_ASIC_ID, LPHW_DISPLAY_ENABLEDATA);
typedef ULONG (FAR *PFNGDOGETSUPPORTEDREFRESHRATE) (HGDO, LPVOID, ULONG);
typedef VOID (FAR *PFNGDOSETREFRESHRATE) (HGDO, ULONG);
typedef VOID (FAR *PFNGDODISPLAYGETDEVICEINFO)(HGDO, LPDAL_DISPLAYDEVICEINFO);
typedef ULONG (FAR *PFNGDOGETSETI2CDATA)(HGDO, LPVOID, ULONG, ULONG);
typedef VOID (FAR *PFNGDOSETPOWERSTATEEX)(HGDO, ULONG);
typedef ULONG (FAR *PFNGDOGETFIXEDDISPLAYMODES)(HGDO, LPDEVMODE_INFO, ULONG);
typedef BOOL (FAR *PFNGETFIXEDDISPLAYMODETIMING)(HGCO, LPDEVMODE_INFO, LPDAL_CRTC_TIMING);

typedef struct _HW_ADJUSTMENT
{
  union
  {
    LONG lDefault;
    LONG lValue;
  };
  LONG   lMin;
  LONG   lMax;
  LONG   lStep;
} HW_ADJUSTMENT, FAR *LPHW_ADJUSTMENT;

typedef struct _HW_ASIC_ID
{
  ULONG    ulChipFamily;
  ULONG    ulChipID;
  ULONG    ulHwInternalRev;
  ULONG    ulVRamInstalled;
  ULONG    ulVRamType;
  ULONG    ulVRamBitWidth;
  ULONG    ulReferenceFrequency;
  ULONG    ulDisplayDevnode;
  LPVOID   lpIO;
  LPVOID   lpMMR;
  LPVOID   lpRomBaseAddress;
  LPVOID   lpRomHeader;
  LPVOID   lpFrameBuffer;
  LPUCHAR  lpucVgaBuffer;
  USHORT   usRealSegment;
} HW_ASIC_ID, FAR *LPHW_ASIC_ID;

#define GCO_QUERY_STRUCTURE_FLAGS_TILEENABLED                  0x00000001L

typedef struct _GCO_QUERY_STRUCTURE
{
  ULONG ulDisplayOffset;
  ULONG ulHorizontalRefreshRate;
  ULONG ulRedMask;
  ULONG ulGreenMask;
  ULONG ulBlueMask;
  ULONG ulFlags;

  ULONG ulTileWidthBytes;
  ULONG ulTileHeightLines;
  ULONG ulTileLineStart;

} GCO_QUERY_STRUCTURE, FAR *LPGCO_QUERY_STRUCTURE;

typedef struct _GCO_SYSTEMBIOSINFO
{
  ULONG ulDisplayTypesRequestEnable;
  ULONG ulReserved[6];
} GCO_SYSTEMBIOSINFO, FAR *LPGCO_SYSTEMBIOSINFO;

typedef struct _GCO_CONTROLLER_TIMINGS
{
  ULONG ulHorizontalTotal;
  ULONG ulVerticalTotal;
  ULONG ulHorizontalDisplay;
  ULONG ulVerticalDisplay;
  ULONG ulPixelClock;         // In 10Khz
} GCO_CONTROLLER_TIMINGS, FAR *LPGCO_CONTROLLER_TIMINGS;

typedef struct _GCO_HW_REGISTER
{
	ULONG ulRegOffset;           
 	ULONG ulRegOffsetIndexMask;
	ULONG ulIndexValue;           //Index's Index
 	ULONG ulIndexValueShiftLeft;  //Index could be in the middle.
	ULONG ulIndexDataOffset; 
 	ULONG ulReserved1;
 	ULONG ulReserved2;
        ULONG ulReserved3;
}GCO_HW_REGISTER, FAR *LPGCO_HW_REGISTER;	

typedef struct _FIXEDPOINT   // define 32.8 fixed-point format
{
  ULONG       Integral;      // 32-bit integral part
  ULONG       Fractional;    // 8-bit fractional part
} FIXEDPOINT, FAR *LPFIXEDPOINT;

typedef struct _HORIZONTAL_TIME
{
  FIXEDPOINT fHActiveTime;
  FIXEDPOINT fHBlankTime;

} HORIZONTAL_TIME, FAR *LPHORIZONTAL_TIME;

typedef struct _ALLOCATED_BW
{
  FIXEDPOINT    Controller;
  FIXEDPOINT    Overlay;
  FIXEDPOINT    DVDSubpivture;
  FIXEDPOINT    HalfFrameBuffer;
} ALLOCATED_BW, FAR *LPALLOCATED_BW;

typedef struct _GDO_DISPLAYREFRESHRATECAPS
{
    ULONG ulSize;
    ULONG ulDefaultRefreshRate;
    ULONG ulNumLowRefreshRates;
    ULONG ulLowRefreshRate[MAX_LCD_REFRESH_COUNT];
    ULONG ulReserved1;
    ULONG ulReserved2;
    ULONG ulReserved3;
    ULONG ulReserved4;
    ULONG ulReserved5;
}GDO_DISPLAYREFRESHRATECAPS, FAR *LPGDO_DISPLAYREFRESHRATECAPS;

typedef struct _PRIO_ELEM
{
  BOOL              bEnabled;
  ULONG             ulMappedController;
  HORIZONTAL_TIME   sHTime;
} PRIO_ELEM, FAR* LPPRIO_ELEM;

typedef struct _GCO_MISC_INFO_VGA_ACTIVE_DISPLAY
{
	ULONG ulSize;           
 	ULONG ulVGAActiveDisplay;
} GCO_MISC_INFO_VGA_ACTIVE_DISPLAY, FAR *LPGCO_MISC_INFO_VGA_ACTIVE_DISPLAY;

typedef struct _HW_CONTROLLER_ENABLEDATA
{
  ULONG                    ulSize;  // required as first entry in structure [GG]
  ULONG                    ulControllerVersion;
  ULONG                    ulNumberOfControllers;
  BOOL                     bEnabledAtBoot[MAX_NUMBER_CONTROLLERS];
  ULONG                    aControllerCaps[MAX_NUMBER_CONTROLLERS];
  ULONG                    ulFunctionHooks;
  ULONG                    ulFunctionHooks2;
  LPUCHAR                  lpAdapterName;
  FIXEDPOINT               sAvailBandwidth;
  FIXEDPOINT               sAvailPeakBandwidth;
  PFNGCOGETTOTALHTIME      pfnGetTotalHTime;
  PFNGCOCALCMODEBW         pfnCalculateModeBandwidth;
  PFNGCOCALCMODEBW         pfnCalculatePeakModeBandwidth;
  PFNGCOCALCOVBW           pfnCalculateOverlayBandwidth;
  PFNGCOCALCVIDEOBW        pfnCalculateVideoBandwidth;
  PFNGCOCALCVIDEOBW        pfnCalculatePeakVideoBandwidth;
  PFNGCOCALCHFBBW          pfnCalculateHFBBandwidth;
  PFNGCOCALCMODEHTIME      pfnCalculateModeHorizontalTime;
  PFNGCOCALCOVHTIME        pfnCalculateOverlayHorizontalTime;
  PFNGCOCALCVIDEOHTIME     pfnCalculateVideoHorizontalTime;
  PFNGCOCALCHFBHTIME       pfnCalculateHFBHorizontalTime;
  PFNGCOCALCHTIMEADJUST    pfnCalculateHTimeAdjustment;
  PFNGCODISABLE            pfnDisable;
  PFNGCOENABLE             pfnEnable;
  PFNGCOENUMERATEMODE      pfnEnumerateStandardModes;
  PFNGCOGETCRTCLINE        pfnGetCrtcLine;
  PFNGCOGETGAMMA           pfnGetGammaCorrection;
  PFNGCOGETGAMMA16         pfnGetGamma16Correction;
  PFNGCOGETBLINKOVERLAY    pfnGetTextCursorBlinkingAdjustment;
  PFNGCOGETBLINKOVERLAY    pfnGetOverlayGammaAdjustment;
  PFNGCOGETMULTIMEDIATABLE pfnGetMultimediaTable;
  PFNGCOGETHARDWAREINFOTABLE  pfnGetHardwareInfoTable;
  PFNGCOGETINFO            pfnGetInfo;
  PFNGCOGETPOWERSTATECAPS  pfnGetPowerStateCaps;
  PFNGCONONSTANDARDMODE    pfnIsNonStandardModeSupported;
  PFNGCOTIMINGS            pfnSetAdjustmentTimings; //added to support programming of CRTC adjustment related routines by GCO
  PFNGCOMODECHANGE         pfnPreModeChange;
  PFNGCOMODECHANGE         pfnPostModeChange;
  PFNGCOSETDFPSIZE         pfnSetDFPSize;
  PFNGCOGETGAMMA           pfnSetGammaCorrection;
  PFNGCOGETGAMMA16         pfnSetGamma16Correction;
  PFNGCOSETMODE            pfnSetMode;
  PFNGCOSETPALETTE         pfnSetPalette;
  PFNGCOSETBLINKOVERLAY    pfnSetTextCursorBlinkingAdjustment;
  PFNGCOSETBLINKOVERLAY    pfnSetOverlayGammaAdjustment;

⌨️ 快捷键说明

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