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

📄 daldef.h

📁 此代码为WCE5.0下显示器的源代码
💻 H
📖 第 1 页 / 共 4 页
字号:
  LONG alOverlayYUVDefaultBrightness[MAX_NUMBER_DISPLAYS];
  LONG alOverlayYUVDefaultSaturation[MAX_NUMBER_DISPLAYS];
  LONG alOverlayYUVDefaultContrast  [MAX_NUMBER_DISPLAYS];
  LONG alOverlayYUVDefaultHue       [MAX_NUMBER_DISPLAYS];
  LONG alOverlayYUVBrightness       [MAX_OBJECT_MAP];
  LONG alOverlayYUVSaturation       [MAX_OBJECT_MAP];
  LONG alOverlayYUVContrast         [MAX_OBJECT_MAP];
  LONG alOverlayYUVHue              [MAX_OBJECT_MAP];
  LONG lOverlayYUVGamma;
  LONG lOverlayYUVAlpha;
  OVLADJUST asOvlAdjust[DAL_OVERLAY_MAX_NUM_ADJUSTMENTS];

  // cached detailed timing which read from registry
  ULONG  ulCachedDTIndex;

  REGDETAILEDTIMINGINFO aCachedDetailedTimings[MAX_CACHEDDTM];

  // priority table used for requested HTime
  PRIO_ELEM aPrioTable[MAX_PRIO_ELEM];

  // array of capture engines
  CAPTURE_ENGINE aCaptureEngine[MAX_NUMBER_ENGINE];

  // Pointer to the DAL handle from IDC/miniport
  SDALMEM sAdditionalMemSeg;

  // pointer to the free memory remaining in the reserved block
  LPUCHAR lpReservedFree;
  
  // reserved field is a block of linear memory for GDOs and GCOs to store
  // specific state information since they cannot allocate memory run-time
  UCHAR ucReserved[(MAX_NUMBER_CONTROLLERS * sizeof(HW_CONTROLLER_ENABLEDATA)) +
                   (MAX_NUMBER_DISPLAYS    * sizeof(HW_DISPLAY_ENABLEDATA))];

} HW_DAL_EXTENSION, FAR *LPHW_DAL_EXTENSION;

// ------------------------------------------------------------------------------
// Structure used to remember current object map. If use DAL_DRIVER_MAP to remember 
// current object map, the remembering and restoring process will be a bit more 
// complicated than using DAL_SAVED_OBJECT_MAP
// ------------------------------------------------------------------------------
typedef struct 
{
  ULONG   aControllerMap[MAX_NUMBER_CONTROLLERS];   
  ULONG   aDisplays[MAX_NUMBER_CONTROLLERS]; 
} DAL_SAVED_OBJECT_MAP, FAR * LPDAL_SAVED_OBJECT_MAP; 


// constants used to define Pseudo Large Desktop orientation
#define PSEUDO_LARGE_DESKTOP_HORISONTAL     0
#define PSEUDO_LARGE_DESKTOP_VERTICAL       1


/*****************************Private*Definition*****************************\
*
* PRIVATE DAL REGISTRY KEY DEFINITIONS (INTERNAL ONLY)
*
\****************************************************************************/


#define DALREGKEY_DAL                     "DAL"
#define DALREGKEY_DISPLAY_TYPE_CRT        "_CRT"
#define DALREGKEY_DISPLAY_TYPE_LCD        "_LCD"
#define DALREGKEY_DISPLAY_TYPE_TV         "_TV"
#define DALREGKEY_DISPLAY_TYPE_DFP        "_DFP"
#define DALREGKEY_DISPLAY_TYPE_CRT2NDDAC  "_CRT2NDDAC"
#define DALREGKEY_DISPLAY_TYPE_DFPEXTTMDS "_DFPEXTTMDS"
#define DALREGKEY_DISPLAY_TYPE_CV         "_CV"
#define DALREGKEY_DEFAULT                 "Default"

#define DALREGKEY_DRIVER            "DALDriver"

#define DALREGKEY_DEFAULT_MODE      "DALDefaultModeBCD"
#define DALREGKEY_GAMMA_CORRECTION  "DALGammaCorrection"

#define DALREGKEY_GAMMARED          "Red"
#define DALREGKEY_GAMMAGREEN        "Green"
#define DALREGKEY_GAMMABLUE         "Blue"

#define DALREGKEY_DXMODES           "DALDXModes"
#define DALREGKEY_RESTRICTEDMODES   "DALRestrictedModes"
#define DALREGKEY_NONSTANDARDMODES  "DALNonStandardModes"

#define DALREGKEY_DXMODESBCD                "DALDXModesBCD"
#define DALREGKEY_RESTRICTEDMODESBCD        "DALRestrictedModesBCD"
#define DALREGKEY_NONSTANDARDMODESBCD       "DALNonStandardModesBCD"
#define DALREGKEY_LARGEDESKTOPMODESBCD      "DALLargeDesktopModesBCD"
#define DALREGKEY_VIRTUALDESKTOPMODESBCD    "DALVirtualDesktopModesBCD"
#define DALREGKEY_VIEWONLYMODESBCD          "DALViewOnlyModesBCD"
#define DALREGKEY_CRTDETAILEDTIMINGMODESBCD "DTMCRTBCD"
#define DALREGKEY_DFPDETAILEDTIMINGMODESBCD "DTMDFPBCD"
#define DALREGKEY_VIEWLOCK                  "ViewLock"
#define DALREGKEY_REFRESHRATE               "RefrRate"
#define DALREGKEY_RESTRICTEDMODESBCDPOSTFIX "RestrictedModesBCD"

#define DALREGKEY_LASTCONNECTED     "DALLastConnected"
#define DALREGKEY_LASTTYPES         "DALLastTypes"
#define DALREGKEY_LASTSELECTED      "DALLastSelected"
#define DALREGKEY_OBJECTDATA        "DALObjectData"
#define DALREGKEY_SELECTOBJECTDATA  "DALSelectObjectData"
#define DALREGKEY_CURRENTOBJECTDATA "DALCurrentObjectData"
#define DALREGKEY_DRIVERDATA        "DALDriverData"
#define DALREGKEY_DRIVERGAMMADATA   "DALDriverGammaData"
#define DALREGKEY_GAMEGAMMASCALE    "DALGameGammaScale"
#define DALREGKEY_POWERPLAYOPTIONS  "DALPowerPlayOptions"

#define DALREGKEY_OVERLAYYUV        "OvlYUV"
#define DALREGKEY_OVERLAYBRIGHTNESS "Brightness"
#define DALREGKEY_OVERLAYSATURATION "Saturation"
#define DALREGKEY_OVERLAYCONTRAST   "Contrast"
#define DALREGKEY_OVERLAYHUE        "Hue"
#define DALREGKEY_OVERLAYGAMMA      "Gamma"
#define DALREGKEY_OVERLAYALPHA      "Alpha"

#define DALREGKEY_OPTIMUMFREQUENCY                  "DALOPTION_OPTIMUMFREQUENCY"
#define DALREGKEY_RETRYDDCWRITETIMES                "DALOPTION_RETRYDDCWRITETIMES"

#define DALREGKEY_NOMODECHANGEWITHOVERLAY        "DALRULE_NOMODECHANGEWITHOVERLAY"

#define DALREGKEY_MINIMUMRESOLUTION                 "DALOPTION_MinResBCD"
#define DALREGKEY_MAXIMUMRESOLUTION                 "DALOPTION_MaxResBCD"


/*****************************Private*Definition*****************************\
*
* PRIVATE DAL MACROS (INTERNAL ONLY)
*
\****************************************************************************/

#define VECTORFROMINDEX(i) (1 << i)

#define __max(a,b)  (((a) > (b)) ? (a) : (b))
#define __min(a,b)  (((a) < (b)) ? (a) : (b))


/*****************************Private*Definition*****************************\
*
* DAL FUNCTION PROTOTYPES (INTERNAL ONLY)
*
\****************************************************************************/


//
// DAL.C
//

BOOL bQueryRegistryDefaults(LPHW_DAL_EXTENSION lpHDE);
VOID vSaveRegistryDefaults(LPHW_DAL_EXTENSION lpHDE, LPUCHAR lpBuffer,
                           LPULONG lpulBufferSize);

VOID vQueryDalRulesFromRegistry(LPHW_DAL_EXTENSION lpHDE);
VOID vQueryDalOptionsFromRegistry(LPHW_DAL_EXTENSION lpHDE);
VOID vUpdateDalrulesBasedCapability(LPHW_DAL_EXTENSION lpHDE);


VOID vSetGDOSaveMaxModeFlag(LPHW_DAL_EXTENSION lpHDE);

VOID vMapObjectsToDrivers(LPHW_DAL_EXTENSION lpHDE, ULONG ulDriverID);
VOID vMapObjectsDefault(LPHW_DAL_EXTENSION lpHDE, LPDAL_OBJECT_MAP lpObjectMap,
                        ULONG ulDriverCount, ULONG ulObjectTypes, ULONG ulOptions);

BOOL bApplyObjectMap(LPHW_DAL_EXTENSION lpHDE, LPDAL_OBJECT_MAP lpObjectMap);
VOID vUpdateObjectMap(LPHW_DAL_EXTENSION lpHDE, LPDAL_OBJECT_MAP lpObjectMap);

BOOL bSaveConnectedToRegistry(LPHW_DAL_EXTENSION lpHDE);
BOOL bQueryChangeInLastConnected(LPHW_DAL_EXTENSION lpHDE);

VOID vGetDriverGammaValueName(LPHW_DAL_EXTENSION lpHDE, ULONG ulDriverID, 
                              LPUCHAR lpValueName, LPUCHAR lpChannel);

VOID vUseCMOSDisplays(LPHW_DAL_EXTENSION lpHDE);

BOOL bValidateSavedMappings(LPHW_DAL_EXTENSION lpHDE, 
                            ULONG ulDriverID,
                            LPULONG lpulMapControllers,
                            LPULONG lpulMapDisplays);

VOID vBuildObjectMap(LPHW_DAL_EXTENSION lpHDE, 
                     LPDAL_OBJECT_MAP lpObjectMap, 
                     ULONG ulFlag);

BOOL bUpdateDisplayMapping(LPHW_DAL_EXTENSION lpHDE,
                           LPULONG lpulChangedDisplayTypes);

//
// DALCWDDE.C
//



//
// DALGCO.C
//

VOID vDisableController(LPHW_DAL_EXTENSION lpHDE, LPDEVGCO lpController);
BOOL bEnableController(LPHW_DAL_EXTENSION lpHDE, PFNGCOENABLE pfnEnable);

VOID vControllerSetMode(LPHW_DAL_EXTENSION lpHDE, LPDEVMODE_INFO lpMI,
                        LPDEVGCO lpController, ULONG ulDisplays,
                        ULONG ulDisplayOffset, ULONG ulDisplayPitch);

VOID vControllerResetMode(LPHW_DAL_EXTENSION lpHDE, LPDEVGCO lpController);
VOID vControllerPowerDown(LPHW_DAL_EXTENSION lpHDE, LPDEVGCO lpController);

VOID vGetDefaultGammaCorrection(LPHW_DAL_EXTENSION lpHDE, ULONG ulDriverID);

BOOL bControllerIsModeSupported(LPHW_DAL_EXTENSION lpHDE, LPDEVGCO lpController,
                                LPDEVMODE_INFO lpMode);

VOID vControllersSetDFPSize(LPHW_DAL_EXTENSION lpHDE, 
                            ULONG ulHorizontal, 
                            ULONG ulVertical,
                            ULONG ulDFPType);

VOID vGetControllerAdjustmentsValueName(LPDEVGCO lpController, LPUCHAR lpValueName);

VOID vInitializeControllerAdjustments(LPHW_DAL_EXTENSION lpHDE, LPDEVGCO lpController);

VOID vSetControllerAdjustments(LPHW_DAL_EXTENSION lpHDE, LPDEVGCO lpController,
                               LPLONG lplAdjust);

VOID vGetControllerAdjustmentDefaults(LPHW_DAL_EXTENSION lpHDE, LPDEVGCO lpController);

ULONG ulGenerateRandomNumber(LPHW_DAL_EXTENSION lpHDE);

VOID vConvert8To16Gamma(LPDEVCLUT lpaGamma, LPDEVCLUT16 lpaGamma16);
VOID vConvert16To8Gamma(LPDEVCLUT16 lpaGamma16, LPDEVCLUT lpaGamma);

VOID vUpdateBIOSDisplayInfo(LPHW_DAL_EXTENSION lpHDE, BOOL bUpdateConnected, BOOL bUpdateCMOS);

BOOL bGetDetailedTimingFromRegistry(LPHW_DAL_EXTENSION lpHDE, ULONG ulDisplayType,
                                    LPDEVMODE_INFO lpMI, LPDAL_CRTC_TIMING lpTimingInfo);


VOID vGetAdapterPowerState(LPHW_DAL_EXTENSION lpHDE);

ULONG ulSetPowerState(LPHW_DAL_EXTENSION  lpHDE, 
                      ULONG               ulRequestedPowerState,
                      ULONG               ulDisplayTypeActive,
                      DEVMODE_INFO        sModeInfo,
                      BOOL                bMultiControllersActive,
                      BOOL                bMultiDisplaysActive,
                      BOOL                bNewRequest,
                      LPULONG             lpulReturnAction);

BOOL bGetFakeEDID(LPHW_DAL_EXTENSION  lpHDE,
                  ULONG               ulDisplayIndex);

//
// DALGDO.C
//
VOID vDisableDisplay(LPHW_DAL_EXTENSION lpHDE, LPDEVGDO lpDisplay);
BOOL bEnableDisplay(LPHW_DAL_EXTENSION lpHDE, PFNGDOENABLE pfnEnable);

ULONG ulGetDisplayTVStandard(LPHW_DAL_EXTENSION lpHDE, LPDEVGDO lpDisplay);
BOOL bIsAdjustmentValid(LPHW_DAL_EXTENSION lpHDE, 
                        LPHW_ADJUSTMENT lpAdjustment, LPLONG lplValue);


VOID vGetDisplayAdjustmentDefaults(LPHW_DAL_EXTENSION lpHDE,
                                   LPDEVGDO lpDisplay,
                                   LPDEVMODE_INFO lpMI);

VOID vGetDisplayAdjustmentsValueName(LPHW_DAL_EXTENSION lpHDE,
                                     LPDEVGDO lpDisplay, LPUCHAR lpValueName);

VOID vGetDisplayPerModeValueName(LPHW_DAL_EXTENSION lpHDE,
                                 LPUCHAR lpTypeName,
                                 LPDEVMODE_INFO lpMI,
                                 LPUCHAR lpValueName);

BOOL bIsLidOpen(LPHW_DAL_EXTENSION lpHDE, LPDEVGDO lpDisplay);

ULONG ulDetectConnectedDisplays(LPHW_DAL_EXTENSION lpHDE);

VOID vIsDisplayPhysicallyConnected(LPHW_DAL_EXTENSION lpHDE,
                                   LPDEVGDO lpDisplay);

BOOL bIsPositionAdjustmentAllowed(LPHW_DAL_EXTENSION lpHDE, LPDEVGDO lpDisplay);

BOOL bIsSizeAdjustmentAllowed(LPHW_DAL_EXTENSION lpHDE,LPDEVGDO lpDisplay);

ULONG ulSetDisplayAdjustments(LPHW_DAL_EXTENSION lpHDE, LPDEVGDO lpDisplay, 
                              LPLONG lplAdjust);

VOID vSetDisplayOff(LPHW_DAL_EXTENSION lpHDE, LPDEVGDO lpDisplay);
VOID vSetDisplayOn(LPHW_DAL_EXTENSION lpHDE, LPDEVGDO lpDisplay);

ULONG vGetSelectedDisplays(LPHW_DAL_EXTENSION lpHDE);

VOID vSetDisplayPowerState(LPHW_DAL_EXTENSION lpHDE, LPDEVGDO lpDisplay,
                           ULONG ulPowerState);

VOID vSetBlanking(LPHW_DAL_EXTENSION lpHDE, LPDEVGDO lpDisplay,
                  ULONG ulController, BOOL bBlank);

VOID vAddDisplaysToModeTable(LPHW_DAL_EXTENSION lpHDE);
ULONG ulDisplaysSupportingMode(LPHW_DAL_EXTENSION lpHDE,
                               LPDEVMODE_INFO lpMode, ULONG ulController);

BOOL bValidateDisplayAdjustments(LPHW_DAL_EXTENSION lpHDE, LPDEVGDO lpDisplay,
                                 LPLONG lplAdjust);

VOID vDisplayQueryModeRestrictions(LPHW_DAL_EXTENSION lpHDE, 
                                   LPDEVGDO lpDisplay);

BOOL bDisplayIsModeSupported(LPHW_DAL_EXTENSION lpHDE,
                             LPDEVGDO lpDisplay,
                             LPDEVMODE_INFO lpMode,
                             ULONG ulController);

BOOL bDisplayMonitorInfoModeRestrictions(LPHW_DAL_EXTENSION lpHDE, 
                                         LPDEVGDO lpDisplay);

BOOL bEDIDIsSupportsMode(LPHW_DAL_EXTENSION lpHDE, 
                         LPEDID_BUFFER      lpEdidBuffer, 
                         LPDDC_INFO         lpDDCInfo,
                         ULONG              ulDisplayType,
                         LPDEVMODE_INFO     lpMode);

BOOL bEDID11Mode(LPHW_DAL_EXTENSION lpHDE, 
                 LPEDID_BUFFER      lpEdidBuffer, 
                 LPDDC_INFO         lpDDCInfo,
                 ULONG              ulDisplayType,
                 LPDEVMODE_INFO     lpMode);

BOOL bEDID20Mode(LPHW_DAL_EXTENSION lpHDE, 
                 LPEDID_BUFFER      lpEdidBuffer, 
                 LPDDC_INFO         lpDDCInfo,
                 ULONG              ulDisplayType,
                 LPDEVMODE_INFO     lpMode);

ULONG ulDisplaySetModeOptions(LPHW_DAL_EXTENSION lpHDE,
                              LPDEVMODE_INFO lpMI, 
                              LPDEVGDO lpDisplay);

VOID vUpdatePerModeDisplayAdjustments(LPDEVGDO lpDisplay, 
                                      ULONG ulHookedAdjustments, 
                                      LPLONG lpAdjustments,
                                      ULONG ulActionRequest);

VOID vGetDisplayPerModeAdjustments(LPHW_DAL_EXTENSION lpHDE,
                                   LPDEVGDO lpDisplay,
                                   LPDEVMODE_INFO lpMI);

BOOL bValidateDisplayINFInfo(MONITOR_INFO sDisplayINFInfo);

VOID vGetDisplayINFInfoName(LPDEVGDO lpDisplay, LPUCHAR lpValueName);

BOOL bGetDetailedTimings(LPEDID_BUFFER lpEdidBuffer ,
       LPDEVMODE_INFO lpMode, 
       LPDAL_DISPLAY_TIMING_INFO lpDalDisplayTimingInfo,
       LPDEVMODE_INFO pNativeModes,
       ULONG ulMaxEntries);

ULONG ulValidateMonitorRangeMode(LPHW_DAL_EXTENSION lpHDE, 
                                 ULONG              ulDisplayType,
                                 LPDDC_INFO         lpDDCInfo,
                                 LPDEVMODE_INFO     lpMode);

VOID vUpdateDisplaysModeSupported(LPHW_DAL_EXTENSION lpHDE);

BOOL bValidateDisplayMapping(LPHW_DAL_EXTENSION lpHDE,
                             LPULONG            lpDisplayMapping);

BOOL bCompareEDIDs( LPEDID_BUFFER lpFirstEDID, LPEDID_BUFFER lpSecondEDID );

//
// DALMODE.C
//

VOID vBuildModeTable(LPHW_DAL_EXTENSION lpHDE);
VOID vAddModeToTable(LPHW_DAL_EXTENSION lpHDE, LPDEVGCO lpController,
                     LPUCHAR lpDXModes, ULONG ulDXModes, 
                     LPDEVMODE_INFO lpMode);

⌨️ 快捷键说明

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