?? dalbase.h
字號(hào):
typedef struct _EDID_BUFFER
{
ULONG ulSize;
ULONG ulFormatId;
UCHAR aucEdidDataBuffer[256];
} EDID_BUFFER, FAR *LPEDID_BUFFER;
#define EDID_DETAILED_V1x_FLAG_BIT1 0x02
#define EDID_DETAILED_V1x_FLAG_BIT2 0x04
#define EDID_DETAILED_V1x_FLAG_BIT3 0x08
#define EDID_DETAILED_V1x_FLAG_BIT4 0x10
#define EDID_DETAILED_V1x_FLAG_INTERLACED 0x80
// Structure definition for EDID detailed timing section
typedef struct _EDID_DETAILED_V11
{
USHORT usPixelClock; // Pixel Clock
UCHAR ucHActiveL8; // H.Active[7-0]
UCHAR ucHBlankingL8; // H.Blanking[7-0]
UCHAR ucHActive_HBlankU4; // 7-4:H.Active[11-8], 3-0:H.blanking[11-8]
UCHAR ucVActiveL8; // V.Active[7-0]
UCHAR ucVBlankingL8; // V.Blanking[7-0]
UCHAR ucVActive_VBlankU4; // 7-4:V.Active[11-8], 3-0:V.blanking[11-8]
UCHAR ucHSyncOffsetL8; // H.SyncOffset[7-0]
UCHAR ucHSyncWidthL8; // H.SyncWidth[7-0]
UCHAR ucVSyncOffset_VSyncWidthL4; // 7-4:V.SyncOffset[3-0], 3-0:V.SyncWidth[3-0]
UCHAR ucHSyncOffset_HSyncWidth_VSyncOffset_VSyncWidth; // 7,6:HSyncOffset[9,8], 5,4:HSyncWidth[9,8], 3,2:VSyncOffset[5,4], 1,0:VSyncWidth[5,4]
UCHAR ucHImageSize; // mm, lower 8 bits
UCHAR ucVImageSize; // mm, lower 8 bits
UCHAR ucHVImageSizeU4; // 7-4:H.ImageSize[11-8], 3-0:V.ImageSize[11-8]
UCHAR ucHBorder; // H.Border in pixels
UCHAR ucVBorder; // V.Border in lines
UCHAR ucFlags; // Interlace, stereo, H.Polarity, V.Polaritym, SConfig, Reserved
} EDID_DETAILED_V11, FAR *LPEDID_DETAILED_V11;
typedef struct _EDID_STANDARD_TIMING
{
UCHAR ucHorizontalActive; // (Horizontal Active pixels / 8) - 1
UCHAR ucAspectAndRefreshRate; // Bits 6-7 = aspect ratio, bits 0-5 = refresh rate - 60
} EDID_STANDARD_TIMING, *LPEDID_STANDARD_TIMING;
// Structure definition for DDC EDID information block
typedef struct _EDID_DATA_V11
{
UCHAR aucHeader [8];
UCHAR aucVendorID [10];
UCHAR aucVersion [2];
UCHAR aucBasicDisplayParameters [5];
UCHAR aucColorCharacteristics [10];
UCHAR aucEstablishedTimings [3];
USHORT ausStandardTimings [8];
EDID_DETAILED_V11 EDIDDetailedTimings [4];
UCHAR ucExtensionFlag;
UCHAR ucChecksum;
} EDID_DATA_V11, FAR *LPEDID_DATA_V11;
// Structure definition for DDC EDID 2.0 information block
typedef struct _EDID_DATA_V20
{
UCHAR ucVersion;
UCHAR aucVendorID [7];
UCHAR aucManufacturerID[32];
UCHAR aucSerialNumber[16];
UCHAR aucReserved[8];
UCHAR aucDisplayInterfaceParameters[15];
UCHAR aucDisplayDeviceDescription[5];
UCHAR aucDisplayResponseTime[2];
UCHAR aucColorDescription[28];
UCHAR aucDisplaySpatialDescription[10];
UCHAR ucReserved;
UCHAR ucGTFInformation;
UCHAR aucMapofTimingInfo[2];
UCHAR aucTimingDescriptions[127];
UCHAR ucChecksum;
} EDID_DATA_V20, FAR *LPEDID_DATA_V20;
typedef struct _EDID_DETAILED_V11 EDID_DETAILED_V1X, FAR *LPEDID_DETAILED_V1X;
typedef struct _EDID_DATA_V1X
{
UCHAR aucHeader [8];
UCHAR aucVendorID [10];
UCHAR aucVersion [2];
UCHAR aucBasicDisplayParameters [5];
UCHAR aucColorCharacteristics [10];
UCHAR aucEstablishedTimings [3];
EDID_STANDARD_TIMING ausStandardTimings [8];
EDID_DETAILED_V1X EDIDDetailedTimings[4];
UCHAR ucExtensionFlag;
UCHAR ucChecksum;
}EDID_DATA_V1X, FAR * LPEDID_DATA_V1X;
typedef struct _FREQUENCY_RANGE
{
USHORT usMax_Frequency;
USHORT usMin_Frequency;
} FREQUENCY_RANGE, FAR *LPFREQUENCY_RAGNE;
#define MODESUPPORTEDFLAG_EXACT_FREQ 0x00000001 // Flag to indicate only this frequecy
// is supported
typedef struct _MODE_SUPPORTED
{
ULONG ulModeFlags;
ULONG ulHorizontalRes;
ULONG ulVerticalRes;
ULONG ulRefreshRate;
}MODE_SUPPORTED, FAR *LPMODE_SUPPORTED;
#define MONITORINFO_DISPLAYCAPS_FIXEDDISPLAY 0x00000001 // Flag to indicate that
// the display device could
// not be changed.
#define MONITORINFO_DISPLAYCAPS_USEOSMONITORINFO 0x80000000 // Is this should be here???
typedef struct _MONITOR_INFO
{
ULONG ulMaxHorizontalRes;
ULONG ulMaxVerticalRes;
ULONG ulMaxRefreshRate;
ULONG ulMinHorizontalFreq;
ULONG ulMaxHorizontalFreq;
ULONG ulUseOverride;
ULONG ulDisplayCaps;
MODE_SUPPORTED aModeSupported[MAX_NO_MONITOR_INFO_MODES];
EDID_BUFFER EDIDRegMonInfo;
}MONITOR_INFO, FAR *LPMONITOR_INFO;
typedef struct _MONITOR_RANGE_LIMTS
{
ULONG ulMinVerticalRate;
ULONG ulMaxVerticalRate;
ULONG ulMinHorizontalRate;
ULONG ulMaxHorizontalRate;
ULONG ulMaxPixelClock;
}MONITOR_RANGE_LIMITS, FAR *LPMONITOR_RANGE_LIMITS;
#define DDC_INFO_FLAG_MONITORRANGELIMITSUPPORTED 0x00000001L
typedef struct _DDC_INFO
{
UCHAR DDCDisplayName[EDID_DISPLAY_NAME_SIZE];
ULONG ulDDCInfoFlag;
ULONG ulDDCManufacturerName;
ULONG ulDDCProductCode;
ULONG ulDDCEdidVersion;
MODE_SUPPORTED DDCMaxModeSupported;
MONITOR_RANGE_LIMITS sMonitorRangeLimits;
}DDC_INFO, FAR *LPDDC_INFO;
enum
{
VRAM_FASTPAGE = 1,
VRAM_EDO,
VRAM_WRAM,
VRAM_SDRSDRAM,
VRAM_DDRSDRAM,
VRAM_SDRSGRAM,
VRAM_DDRSGRAM,
VRAM_INBEDDED,
VRAM_RAMBUS
};
// DAL_DISPLAYDEVICEINFO structure will be used by GDOs
// to pass device info to DAL.
typedef struct _DAL_DISPLAYDEVICEINFO
{
ULONG ulOutputType; // Composite/SVIDEO/Analog/Digital/...
ULONG ulFlag;
ULONG ulReserved1;
ULONG ulReserved2;
ULONG ulReserved3;
ULONG ulReserved4;
} DAL_DISPLAYDEVICEINFO, FAR *LPDAL_DISPLAYDEVICEINFO;
//
// Flags used for manipulating the DAL_DISPLAYDEVICEINFO structure.
//
#define DAL_DISPLAY_OUTPUTTYPE_UNKNOWN 0
#define DAL_DISPLAY_OUTPUTTYPE_COMPOSITE 1
#define DAL_DISPLAY_OUTPUTTYPE_SVIDEO 2
#define DAL_DISPLAY_OUTPUTTYPE_ANALOG 3
#define DAL_DISPLAY_OUTPUTTYPE_DIGITAL 4
#define DAL_DISPLAY_FEATUREFLAG_SMARTDETECTION_SUPPORTED 0x00000001
#ifdef CE_BUILD
typedef struct _VIDEO_MODE_INFORMATION {
ULONG Length;
ULONG ModeIndex;
ULONG VisScreenWidth;
ULONG VisScreenHeight;
ULONG ScreenStride;
ULONG NumberOfPlanes;
ULONG BitsPerPlane;
ULONG Frequency;
ULONG XMillimeter;
ULONG YMillimeter;
ULONG NumberRedBits;
ULONG NumberGreenBits;
ULONG NumberBlueBits;
ULONG RedMask;
ULONG GreenMask;
ULONG BlueMask;
ULONG AttributeFlags;
ULONG VideoMemoryBitmapWidth;
ULONG VideoMemoryBitmapHeight;
ULONG DriverSpecificAttributeFlags;
} VIDEO_MODE_INFORMATION, FAR *LPVIDEO_MODE_INFORMATION;
//
// Bit definitions for Attribute Flags
//
#define VIDEO_MODE_COLOR 0x0001 // 0 = Mono-compatible, 1 = Color
#define VIDEO_MODE_GRAPHICS 0x0002 // 0 = Text mode, 1 = Graphics
#define VIDEO_MODE_PALETTE_DRIVEN 0x0004 // 0 = Colors are direct
// 1 = Colors are index to a palette
#define VIDEO_MODE_MANAGED_PALETTE 0x0008 // 0 = Palette is fixed (must be
// queried from miniport
// 1 = Palette is settable.
#define VIDEO_MODE_INTERLACED 0x0010 // 1 = Mode is interlaced
// 0 = non-interlaced
#define VIDEO_MODE_NO_OFF_SCREEN 0x0020 // 1 = Offscreen memory CAN NOT be
// used to store information.
// 0 = Offscreen memory is available
#define VIDEO_MODE_NO_64_BIT_ACCESS 0x0040 // 1 = 64 bit memory writes to frame
// buffer are not handled properly.
// 0 = 64 bit memory writes to frame
// buffer are handled properly.
//
//Length - Length of the structure in bytes. Also used to do verisioning.
//
//ModeIndex - Number used to set this mode when calling the miniport driver.
//
//VisScreenWidth - Number of visible horizontal pixels on a scan line
//
//VisScreenHeight - Number of visible lines (or scan lines)
//
//ScreenStride - Delta, in *BYTES*, between the start of two scan lines.
//
// NOTE: the width and height are in pixels, but the stride is in bytes !!!
//
//NumberOfPlanes - Number of separate planes combined by the device.
//
//BitsPerPlane - Number of bits per pixel on a plane.
//
//Frequency - Screen Frequency, in Hertz.
//
//XMillimeter - Size of the horizontal active region on the output device,
// in millimeters.
//
//YMillimeter - Size of the vertical active region on the output device,
// in millimeters.
//
//NumberRedBits - Number of bits in the red DAC.
//
//NumberGreenBits - Number of bits in the green DAC.
//
//NumberBlueBits - Number of bits in the blue DAC.
//
//RedMask - Red color Mask for device with direct color modes. Bits turned
// on indicate the bit is of color Red.
//
//GreenMask - Green color Mask for device with direct color modes. Bits
// turned on indicate the bit is of color Green.
//
//BlueMask - Blue color Mask for device with direct color modes. Bits
// turned on indicate the bit is of color Blue.
//
//AttributeFlags. Flags indicating certain behavior for the device.
//
//VideoMemoryBitmapWidth - Width of the video memory bitmap.
// VisScreenWidth <= VideoMemoryBitmapWidth <= ScreenStride
//
//VideoMemoryBitmapHeight - Height of the video memory bitmap.
// VisScreenHeight <= VideoMemoryBitmapHeight = VideoRamLength / ScreenStride
//
//DriverSpecificAttributeFlags - Flags indicating certain behavior for the
// device that are private to the miniport\display driver.
//
typedef struct _VIDEO_NUM_MODES {
ULONG NumModes;
ULONG ModeInformationLength;
} VIDEO_NUM_MODES, FAR *LPVIDEO_NUM_MODES;
//
//NumModes - Returns the number of modes supported by the kernel driver.
//
//ModeInformationLength - Length of the VIDEO_MODE_INFORMATION structure
// for the IOCTL_VIDEO QUERY_AVAILABLE_MODES IOCTL.
#endif // WIN9X_BUILD
// The following registry keys are shared among DAL - GCOs - GDOs
#define DALREGKEY_DDC1SUPPORT "DALRULE_DDC1SUPPORT"
#define DALREGKEY_MAXDDC1TRIES "DALOPTION_MAXDDC1TRIES"
// options definition,used for GCOProcessMiscINFO to get/set required info from GCO
#define GCO_PROCESSMISCINFO_VGAACTIVEDISPLAY 0x00000001L
#if defined(_X86_)
#pragma pack()
#endif
#endif /*_DALBASE_H*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -