📄 daldef.h
字号:
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 + -