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

📄 dal.h

📁 此代码为WCE5.0下显示器的源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
  PFNGCOSETDISPLAYOFFSET   pfnSetDisplayOffset;
  // EPR# 36064 remove obsolete function  PFNGCOSETPOWERSTATE      pfnSetPowerState;
  PFNGCOENABLEOVERLAY      pfnEnableOverlay;
  PFNGCOGETCRTCTIMINGS     pfnGetCrtcTimings;
  PFNGCOGETEXPANSION       pfnGetExpansionSetting;
  PFNGCOUPDATEBIOSDISPLAYINFO    pfnUpdateBIOSDisplayInfo;
  PFNGCOSETMODEEXTENDED          pfnSetModeExtended;
  PFNGCOISDEVICEMAPPINGSUPPORTED pfnIsDeviceMappingSupported;
  PFNGCOGETBLINKOVERLAY    pfnGetOverlayColorGammaAdjustment;
  PFNGCOSETBLINKOVERLAY    pfnSetOverlayColorGammaAdjustment;
  PFNGCOGETBLINKOVERLAY    pfnGetOverlayContrastAdjustment;
  PFNGCOSETBLINKOVERLAY    pfnSetOverlayContrastAdjustment;
  PFNGCOGETBLINKOVERLAY    pfnGetOverlaySaturationAdjustment;
  PFNGCOSETBLINKOVERLAY    pfnSetOverlaySaturationAdjustment;
  PFNGCOGETBLINKOVERLAY    pfnGetOverlayHueAdjustment;
  PFNGCOSETBLINKOVERLAY    pfnSetOverlayHueAdjustment;
  PFNGCOGETBLINKOVERLAY    pfnGetOverlayChromacityAdjustment;
  PFNGCOSETBLINKOVERLAY    pfnSetOverlayChromacityAdjustment;
  PFNGCOGETBLINKOVERLAY    pfnGetOverlayBlackWhiteLevelAdjustment;
  PFNGCOSETBLINKOVERLAY    pfnSetOverlayBlackWhiteLevelAdjustment;
  PFNGCOGETCRC             pfnGetCRC;
  PFNGCOGETHARDWAREDATA    pfnGetHardwareData;
  PFNGETMODETIMING         pfnGetModeTiming;
  PFNGCOVALIDATEMODE       pfnValidateMode;
  PFNGCOALLOCOVERLAY       pfnAllocOverlay;
  PFNGCOFREEOVERLAY        pfnFreeOverlay;
  PFNGCOCONTROLLERTESTHARNESS  pfnControllerTestHarness;
  PFNGCOGETSYSTEMBIOSINFO      pfnGetSystemBIOSInfo;
  PFNGCOGETBLINKOVERLAY    pfnGetOverlayAlphaAdjustment;
  PFNGCOSETBLINKOVERLAY    pfnSetOverlayAlphaAdjustment;
  PFNGCOGETPOWERSTATE      pfnGetPowerState;
  PFNGCOSETPOWERSTATE      pfnSetPowerState;
  PFNGCOVALIDATEPOWERSTATE pfnValidatePowerState;
  PFNGCOSETPOWERSTATEEX    pfnGCOSetPowerState;
  PFNGCOGETCLOCKINFO       pfnGetClockInfo;
  PFNGCOVALIDATECLOCKCONFIG   pfnValidateClockConfig;
  PFNGCOCALCMODEBWEX       pfnCalculateModeBandwidthEx;
  PFNGCOCALCMODEBWEX       pfnCalculatePeakModeBandwidthEx;
  PFNGETDETAILEDMODETIMING pfnGCOGetDetailedTiming;
  PFNGCOSETEVENT           pfnGCOSetEvent;
  PFNGCOPROCESSMISCINFO    pfnGCOProcessMiscInfo;
  PFNGCOGETDISPLAYXYPOS    pfnGCOGetDisplayXYPos;
  PFNGCOSETDISPLAYXYPOS    pfnGCOSetDisplayXYPos;
} HW_CONTROLLER_ENABLEDATA, FAR *LPHW_CONTROLLER_ENABLEDATA;


typedef struct _HW_DISPLAY_ENABLEDATA
{
  ULONG                         ulSize;  // required as first entry in structure [GG]
  ULONG                         ulDisplayVersion;
  ULONG                         ulDisplayType;
  BOOL                          bEnabledAtBoot;
  ULONG                         ulDisplayCaps;
  ULONG                         ulSharedResDisplayType;     //Indicate the other party of DisplayType
  ULONG                         ulExtendedCaps;
  ULONG                         ulExtendedType;
  ULONG                         ulFunctionHooks;
  ULONG                         ulFunctionHooks2;
  ULONG                         ulHPDInterruptBitmap;
  LPUCHAR                       lpDisplayName;
  ULONG                         ulDefaultRefreshRate;
  USHORT                        usI2CWriteStartAddr;
  USHORT                        usI2CWriteLastAddr;
  PFNGDOBLANKING                pfnBlanking;
  PFNGDODISABLE                 pfnDisable;
  PFNGDOENABLE                  pfnEnable;
  PFNGDOGETADJUSTMENT           pfnGetBrightnessAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetChromaFlickerAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetColorControlAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetContrastAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetDisplayPositionAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetDisplaySizeAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetDotCrawlAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetFilterSVideoAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetFilterCompAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetGammaAdjustment;
  PFNGDOLIDSTATE                pfnGetLidState;
  PFNGDOGETADJUSTMENT           pfnGetLumaFlickerAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetOverscanAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetMultimediaPassThruAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetSyncCompositeAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetSyncHorizontalAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetSyncVerticalAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetVideoStandardAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetVideoSignalStandardAdjustment;
  PFNGDOGETEDIDDATA             pfnGetEdidData; // Obsolete !
  PFNSETDSPLCONNECTOR           pfnSetDisplayConnector;
  PFNDDCPREDDCQUERY             pfnDDC_I2C_PreDDCQuery;
  PFNDDCREADLINE                pfnDDC_I2C_ReadLine;
  PFNDDCWRITELINE               pfnDDC_I2C_WriteLine;
  PFNDDCPOSTDDCQUERY            pfnDDC_I2C_PostDDCQuery;
  PFNGDOGETMONITORINFO          pfnGetMonitorInfo;
  PFNGDOCONNECT                 pfnIsDisplayPhysicallyConnected;
  PFNGDOMODESUPPORTED           pfnIsModeSupported;
  PFNGDOPPMODE                  pfnPreModeChange;
  PFNGDOPPMODE                  pfnPostModeChange;
  PFNGDOSETADJUSTMENT           pfnSetBrightnessAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetChromaFlickerAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetColorControlAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetContrastAdjustment;
  PFNGDODISPLAYONOFF            pfnSetDisplayOff;
  PFNGDODISPLAYONOFF            pfnSetDisplayOn;
  PFNGDOSETPOSITIONADJUSTMENT   pfnSetDisplayPositionAdjustment;
  PFNGDOSETSIZEADJUSTMENT       pfnSetDisplaySizeAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetDotCrawlAdjustment;
  PFNGDOSETDPMS                 pfnSetDPMS;
  PFNGDOSETADJUSTMENT           pfnSetFilterSVideoAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetFilterCompAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetGammaAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetLumaFlickerAdjustment;
  PFNGDOMODE                    pfnSetMode;
  PFNGDOSETOVERSCANADJUSTMENT   pfnSetOverscanAdjustment;
  PFNGDOSETPOWERSTATE           pfnSetPowerState;
  PFNGDOSETMULTIMEDIAADJUSTMENT pfnSetMultimediaPassThruAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetSyncCompositeAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetSyncHorizontalAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetSyncVerticalAdjustment;
  PFNGDOSETVIDEOSTANDARDADJUSTMENT  pfnSetVideoStandardAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetVideoSignalStandardAdjustment;
  PFNGDOINITIALIZEDEVICE        pfnInitializeDevice;
  PFNGDOISDEVICEHOTPLUGGABLE    pfnIsDeviceHotPluggable;
  PFNGDOPPADJUSTMENTCHANGE      pfnPreAdjustmentChange;
  PFNGDOPPADJUSTMENTCHANGE      pfnPostAdjustmentChange;
  PFNGDOALIGNER                 pfnAligner;
  PFNGDODISPLAYTESTHARNESS      pfnDisplayTestHarness;
  PFNGDOENABLESIBLING           pfnEnableSibling;
  PFNGDOGETADJUSTMENT           pfnGetSaturationAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetSaturationAdjustment;
  PFNGDOGETADJUSTMENT           pfnGetHueAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetHueAdjustment;
  PFNGDOSETADJUSTMENT           pfnSetCGMSAdjustment;
  PFNGDOGETSUPPORTEDREFRESHRATE     pfnGetSupportedRefreshRate;  //To get supported low refresh rate .
  PFNGDOSETREFRESHRATE          pfnSetRefreshRate;               //Set a specific refresh rate.
  PFNGDOGETADJUSTMENT           pfnGetFrameModulation;
  PFNGDOSETADJUSTMENT           pfnSetFrameModulation;           //set DFP frame modulation
  PFNGDODISPLAYGETDEVICEINFO    pfnDisplayGetDeviceInfo;
  PFNGDOGETSETI2CDATA           pfnGetSetI2CData;
  PFNGDOSETPOWERSTATE           pfnGDOSetPowerState;
  PFNGDOGETFIXEDDISPLAYMODES    pfnGetFixedDisplayModes;         //For NON_standard Fixed mode enumeration use
  PFNGETFIXEDDISPLAYMODETIMING  pfnGetFixedDisplayModeTiming;
  PFNGDOMODESUPPORTEDEX         pfnIsModeSupportedEx;
} HW_DISPLAY_ENABLEDATA, FAR *LPHW_DISPLAY_ENABLEDATA;


typedef struct _EVENTINFO
{
  ULONG            ulSize;
  ULONG            ulController;
  ULONG            ulDriverID;
  ULONG            ulEvent;
  ULONG            ulModeMajorFlag;
  ULONG            ulModeMinorFlag;
  SIZE             sDesktop;
  DEVMODE_INFO     sModeInfo;
  ULONG            ulReserved[4];
} EVENTINFO, FAR *LPEVENTINFO;


#ifdef NT_BUILD
typedef struct _VIDEO_X86_BIOS_ARGUMENTS
{
  ULONG Eax;
  ULONG Ebx;
  ULONG Ecx;
  ULONG Edx;
  ULONG Esi;
  ULONG Edi;
  ULONG Ebp;
} VIDEO_X86_BIOS_ARGUMENTS, FAR *PVIDEO_X86_BIOS_ARGUMENTS;
#endif /* NT_BUILD */



/******************************Public*Definition*****************************\
*
* DAL MACROS
*
\****************************************************************************/


#define DALDBG_ENTRY_EXIT 2
#define DALDBG_DETAIL     1
#define DALDBG_NORMAL     0


#ifdef DBG

#if defined (i386) || defined (_i386_) || defined (_X86_)
    #define INT_3() __asm { __asm int 3 }
#else
    VOID DbgBreakPoint();
    #define INT_3() DbgBreakPoint()
#endif /* X86 */

 #define DALASSERT(x, y) if (!(x)) { DDLDebugPrint(0,y); DebugBreak();}
#define DALDEBUG(arg) DDLDebugPrint arg

#else /* DBG */

#define DALASSERT(x, y)
#define DALDEBUG(arg)

#endif /* DBG */


#ifdef WIN9X_BUILD

#define COMPAREMEMORY(d,s,l)
#define MOVEMEMORY(d,s,l) _fmemmove((LPVOID)d, (LPVOID)s, (size_t)l)
#define WRITEREGUCHAR(d,s,l) _fmemmove((LPVOID)d, (LPVOID)s, (size_t)l)
#define READREGUCHAR(d,s,l)  _fmemmove((LPVOID)d, (LPVOID)s, (size_t)l)
#define ZEROMEMORY(p,l) _fmemset((LPVOID)p, (char)0, (size_t)l)

#define IOREADULONG(p,r)
#define IOWRITEULONG(p,r,v)
#define IOWRITEUCHAR(p,r,v)

#define MMREADULONG(lp,r) asmMM_ReadULONG(lp, r)
#define MMWRITEULONG(lp,r,v) asmMM_WriteULONG(lp, r, v)

#define MMWRITEUCHAR(p,r,v,n) (*(((LPUCHAR)((LPULONG)p+r)) + n) = v)
#define MMREADUCHAR(p,r,n) (*(((LPUCHAR)((LPULONG)p+r)) + n))

//for reading memory map bios area
#define MMBAREADULONG(lp,r)  *((ULONG FAR*)((UCHAR FAR*) lp + r ))
#define MMBAREADUSHORT(lp,r) *((USHORT FAR*)((UCHAR FAR*) lp + r ))
#define MMBAREADUCHAR(lp,r) *((UCHAR FAR*)((UCHAR FAR*) lp + r ))
#define MMBAREADBUFFER(lp,r,d,l) _fmemmove((LPVOID)d, (LPVOID)((UCHAR FAR*)lp + r), (size_t)l)

#define SYNCEXECUTION(p,r,d,v) d(v)

    // This is a temporary workaround because BOOLEAN is not defined in Win9x.
    // In NT DDK this is defined with BOOLEAN (== unsigned char). The BOOL 
    // type (== long) is known to both Win9x and NT projects. Mismatching 
    // type in NT won't matter because either 0 or 1 is returned and BOOL
    // is wider than BOOLEAN.
    //
  typedef
  BOOL  // BOOL instead of BOOLEAN!
  (*PMINIPORT_SYNCHRONIZE_ROUTINE)(
      void *Context
      );

#ifdef NDEBUG
#define STALLEXECUTION(l) DALSTALLEXECUTION(l)
#else  /* NDEBUG */
#define STALLEXECUTION(l)
#endif /* NDEBUG */

VOID asmMM_WriteULONG(LPVOID lp, ULONG r, ULONG v);
ULONG asmMM_ReadULONG(LPVOID lp, ULONG r);

VOID DALSTALLEXECUTION(ULONG ulCounter);
VOID asmStallExecution(USHORT usDelay);
VOID asmReadCounter();

#else /* WIN9X_BUILD */

#if !defined(CE_BUILD)

#define COMPAREMEMORY(d,s,l)    // VideoPortCompareMemory((LPVOID)d, (LPVOID)s,(ULONG)l)
#define MOVEMEMORY(d,s,l)           // VideoPortMoveMemory((LPVOID)d, (LPVOID)s, (ULONG)l)
#define WRITEREGUCHAR(d,s,l)        WRITE_REGISTER_BUFFERED_UCHAR(((PUCHAR)d, (PUCHAR)s, (ULONG)l)
#define READREGUCHAR(d,s,l)         //VideoPortReadRegisterBufferUchar((PUCHAR)d, (PUCHAR)s,(ULONG)l)
#define ZEROMEMORY(p,l)                 // VideoPortZeroMemory((LPVOID)p, (ULONG)l)

#define IOREADULONG(p,r)                //VideoPortReadPortUlong((LPULONG)p + r)
#define IOWRITEULONG(p,r,v)             //VideoPortWritePortUlong(((LPULONG)p + r),v)
#define IOWRITEUCHAR(p,r,v)             //VideoPortWritePortUchar(((LPUCHAR)p + r),v)

#define MMREADULONG(p,r)               //VideoPortReadRegisterUlong((LPULONG)p + r)
#define MMWRITEULONG(p,r,v)             //VideoPortWriteRegisterUlong(((LPULONG)p + r),v)

#define MMWRITEUCHAR(p,r,v,n)           //VideoPortWriteRegisterUchar((LPUCHAR)((LPULONG)p+r)+n,v)
#define MMREADUCHAR(p,r,n)               //deoPortReadRegisterUchar((LPUCHAR)((LPULONG)p+r)+n)

//for reading memory map bios area

//#define MMBAREADULONG(p,r) VideoPortReadRegisterUlong((LPULONG)((LPUCHAR)p + r))
__inline ULONG MMBAREADULONG(LPVOID p, ULONG r)

⌨️ 快捷键说明

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