亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? dalcwdde.c

?? 此代碼為WCE5.0下顯示器的源代碼
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/****************************************************************************\
*
*  Module Name    dalcwdde.c
*  Project        ATI Display Abstraction Layer
*  Device         RageProPNP / Rage128 (Win95/98 & WinNT 4.0/5.0)
*
*  Description    source file for Display Abstraction Layer 0.87
*                 contains functions for processing CWDDE Extensions
*
*  Copyright (c) 1998-2002 ATI Technologies Inc. (unpublished)
*
*  All rights reserved.  This notice is intended as a precaution against
*  inadvertent publication and does not imply publication or any waiver
*  of confidentiality.  The year included in the foregoing notice is the
*  year of creation of the work.
*
*  Refer to DAL Developers Guide & Programming Reference Rev 0.87 for usage
*
\****************************************************************************/

#include "dal.h"
#include "daldef.h"
#include "dalddc.h"
#include "cwddedi.h"
#include "cwddemm.h"
#include "cwddeth.h"
#include "atimcode.h"

typedef CWDDECMD FAR *LPCWDDECMD;

const DAL_GDOGCO_ADJUSTMENT aGCO_Adjustment[] = 
  {//*********** ulHook ***************************Hookindex**
   { GCO_HOOK_TEXT_CURSOR_BLINKING_ADJUSTMENT       , 0 },
   { GCO_HOOK_RATIOMETRIC_EXPANSION_ADJUSTMENT      , 0 },
   { GCO_HOOK_OVERLAY_CHROMACITY_ADJUSTMENT         , 0 },
   { GCO_HOOK_OVERLAY_BLACKWHITELEVEL_ADJUSTMENT    , 0 }
};


//
// DALCWDDE.C - functions are declared locally only since no other files in
//              DAL include the CWDDE header files
//


ULONG DALCWDDE_AdapterSetPowerState(LPHW_DAL_EXTENSION   lpHDE,
                                    ULONG                ulDriverID,
                                    BOOL                 bNewRequest,
                                    DI_POWERSETTING FAR *lpPowerSetting);

ULONG DALCWDDE_ControllerValidateConfig(LPHW_DAL_EXTENSION lpHDE,
                                        ULONG ulDriverID,
                                        LPCWDDECMD lpCmd,
                                        CONTROLLERCONFIG FAR *lpControllerConfig,
                                        ULONG ulConfigCount);

ULONG DALCWDDE_ControllerSetConfig(LPHW_DAL_EXTENSION lpHDE,
                                   ULONG ulDriverID,
                                   LPCWDDECMD lpCmd,
                                   CONTROLLERCONFIG FAR *lpControllerConfig,
                                   ULONG ulConfigCount);

ULONG DALCWDDE_ControllerEnumNextView(LPHW_DAL_EXTENSION lpHDE,
                                      LPDAL_MODEINFO FAR *lplpDalMode,
                                      CONTROLLERVIEW FAR *lpControllerView,
                                      ULONG ulController, ULONG ulDisplays);

ULONG DALCWDDE_ControllerEnumNextRefresh(LPHW_DAL_EXTENSION lpHDE,
                                         LPDAL_MODEINFO FAR *lplpDalMode,
                                         CONTROLLERENUMREFRESH FAR * lpEnumRefresh,
                                         ULONG FAR *lpRefresh, ULONG ulController);


ULONG DALCWDDE_DisplayGetCaps(LPHW_DAL_EXTENSION lpHDE, LPDEVGDO lpDisplay);
ULONG DALCWDDE_DisplayGetInfo(LPHW_DAL_EXTENSION lpHDE, LPCWDDECMD lpCmd,
                  LPVOID lpOutput);

ULONG DALCWDDE_DisplayGetConfig(LPHW_DAL_EXTENSION lpHDE, LPCWDDECMD lpCmd,
                LPVOID lpOutput);

ULONG DALCWDDE_DisplaySetConfig(LPHW_DAL_EXTENSION lpHDE, LPCWDDECMD lpCmd,
                LPVOID lpInput);

ULONG DALCWDDE_AdapterFlushData(LPHW_DAL_EXTENSION lpHDE, ULONG ulDriverID,
                                SAVEDATA FAR *lpSaveData);

ULONG DALCWDDE_DisplaySetLimits(LPHW_DAL_EXTENSION lpHDE,LPCWDDECMD lpCmd,
                                DISPLAYLIMITS FAR *lpDisplaySetLimits);


ULONG DALCWDDE_DisplayGetDDCInfo(LPHW_DAL_EXTENSION lpHDE, LPCWDDECMD lpCmd,
                                 LPVOID lpOutput);


ULONG DALCWDDE_MM(HDAL hDAL, LPVOID lpInput, ULONG ulInputSize, LPVOID lpOutput,
                  ULONG ulOutputSize, LPLONG lpInfoSize);


ULONG DALCWDDE_DisplaySetRefreshRate(LPHW_DAL_EXTENSION lpHDE, LPCWDDECMD lpCmd, DISPLAYREFRESHRATE FAR *lpDisplayRefreshRate );

ULONG DALCWDDE_DisplayGetRefreshRate(LPHW_DAL_EXTENSION lpHDE, LPCWDDECMD lpCmd, LPVOID lpOutput);

ULONG DALCWDDE_DisplayGetRefreshRateCaps(LPHW_DAL_EXTENSION lpHDE, LPCWDDECMD lpCmd, LPVOID lpOutput);

static ULONG ulGetAdapterDefaultSetting(
  LPHW_DAL_EXTENSION  lpHDE,
  ULONG               ulDriverIndex,
  ULONG               ulOutputSize,
  ADAPTERSETTING FAR* lpAdapterSetting);

static ULONG 
ulGetDisplayAdjustmentIndex(
  ULONG              ulAdjustType);

static ULONG 
ulGetDisplayAdjustmentInfo(
  LPHW_DAL_EXTENSION lpHDE, 
  LPDEVGDO           lpDisplay, 
  ULONG              ulAdjustType, 
  LPHW_ADJUSTMENT    lpAdjustment);

static ULONG 
ulGetDisplayAdjustmentData(
  LPHW_DAL_EXTENSION lpHDE, 
  LPDEVGDO           lpDisplay, 
  ULONG              ulAdjustType, 
  LPLONG             lpData);

static ULONG 
ulSetDisplayAdjustmentData(
  LPHW_DAL_EXTENSION lpHDE, 
  LPDEVGDO           lpDisplay, 
  ULONG              ulAdjustType, 
  LONG               lData);

static ULONG ulGetAdapterConfig(
  LPHW_DAL_EXTENSION  lpHDE,
  ULONG               ulConfig,
  LPULONG             lpulValue);

static ULONG ulSetAdapterConfig(
  LPHW_DAL_EXTENSION  lpHDE,
  ULONG               ulConfig,
  ULONG               ulValue);

static ULONG DALCWDDE_DisplayGetEDIDData(
  LPHW_DAL_EXTENSION        lpHDE,
  CWDDECMD             FAR *lpCmd,
  DISPLAYEDIDDATAINPUT FAR *lpOption,
  DISPLAYEDIDDATA      FAR *lpEDIDData);

static ULONG DALCWDDE_AdapterSetClockConfig(
  LPHW_DAL_EXTENSION lpHDE,
  DI_ADAPTERCLOCK_CONFIG FAR *lpDiAdapterClkCfg);

/******************************Public*Routine******************************\
*
* BOOL DALCWDDE()
*
* Processes the Common Windows Display Driver Extensions (Display Interface)
* function calls, with adapter, controller, or display escape calls.
*
* Note:
*
\**************************************************************************/

ULONG DALCWDDE(
HDAL hDAL,
LPVOID lpInput,
ULONG ulInputSize,
LPVOID lpOutput,
ULONG ulOutputSize,
LPLONG lpInfoSize)
{
  LPHW_DAL_EXTENSION  lpHDE;
  LPCWDDECMD          lpCmd;
  ULONG               ulReturn;
  ULONG               i, j;

  DALDEBUG((DALDBG_ENTRY_EXIT, "DALCWDDE - Entry"));
  DALASSERT((hDAL != NULL), "DAL handle 'hDAL' is NULL!");

  // grab the structure for the DAL out of the DDL's handle to it
  lpHDE = (LPHW_DAL_EXTENSION)hDAL;
  ulReturn = (ULONG)CWDDE_OK;

  if (ulInputSize < sizeof(CWDDECMD))
  {
    // size of the input structure is smaller than the size of the CWDDE
    // command block and hence the DAL cannot process the call.

    ulReturn = (ULONG)CWDDE_ERR_BADINPUTSIZE;
    goto DALCWDDE_Return;
  }

  lpCmd = (LPCWDDECMD)lpInput;

  if (lpCmd->ulDriverReserved >= MAX_NUMBER_CONTROLLERS)
  {
    // caller provided an invalid value for the DriverID in the reserved
    // field of the CWDDE command block, hence fail the call.

    ulReturn = (ULONG)CWDDE_ERR_BADINPUT;
    goto DALCWDDE_Return;
  }

  switch(lpCmd->ulEscape32)
  {
    case CWDDEDI_AdapterGetVersion:
      {
        OUTPUTULONG FAR *lpOutputUlong;

        // used to return the version of the CWDDE API Extensions API support
        // which is CWDDEDI_VERSION from the CWDDE header file.

        if (ulOutputSize < sizeof(OUTPUTULONG))
        {
          // cannot return the version because there is insufficient room in
          // the output buffer for a OUTPUTULONG.

          ulReturn = CWDDE_ERR_BADOUTPUTSIZE;
        } else
        {
          // Return version number as defined in cwddedi.h:
          // the version should always come directly from the header file and
          // not be hardcoded by the developer!

          lpOutputUlong          = (OUTPUTULONG FAR *) lpOutput;
          lpOutputUlong->ulSize  = sizeof(OUTPUTULONG);
          lpOutputUlong->ulValue = CWDDEDI_VERSION;
        }
      }
      *lpInfoSize = sizeof(OUTPUTULONG);
      break;

    case CWDDEDI_AdapterGetCaps:

      // returns the capabilities of the adapter, hence the capabilities of
      // the one or more controllers.

      {
        ADAPTERCAPS FAR *lpAdapterCaps;
        LPDEVGCO         lpController;

        if (ulOutputSize < sizeof(ADAPTERCAPS))
        {
          // cannot return the version because there is insufficient room in
          // the output buffer for an ADAPTERCAPS structure

          ulReturn = CWDDE_ERR_BADOUTPUTSIZE;
        } else
        {
          lpAdapterCaps = (ADAPTERCAPS FAR *) lpOutput;
          lpAdapterCaps->ulSize = sizeof(ADAPTERCAPS);
          lpAdapterCaps->ulAdapterID = (ULONG) *((LPULONG) &hDAL);    // EPR 35062
          lpAdapterCaps->ulNumControllers = lpHDE->ulControllersCount;
          lpAdapterCaps->ulNumDisplays = lpHDE->ulDisplaysCount;

          // poll each controller to see if it supports overlay.
          lpAdapterCaps->ulNumOverlays = 0;
          for (i = 0; i < lpHDE->ulControllersCount; i++)
          {
            lpController = (LPDEVGCO) &lpHDE->aControllers[i];
            if (lpController->lpHWED->aControllerCaps[i] & DAL_CONTROLLER_CAPS_OVERLAY)
              lpAdapterCaps->ulNumOverlays += 1;
          }

          lpAdapterCaps->ulCaps = 0;
          if (  (GCO_HOOK2_VALIDATEMODE & lpHDE->aControllers[0].lpHWED->ulFunctionHooks2)
              &&(lpHDE->aControllers[0].lpHWED->pfnValidateMode                          ))
          {
            lpAdapterCaps->ulCaps |= CWDDEDI_ADAPTER_CAPS_SUPPORTREGISTRYDETAILEDTIMING;

            if (lpHDE->ulControllersCount > 1)
            {
              lpAdapterCaps->ulCaps |= CWDDEDI_ADAPTER_CAPS_SUPPORTLARGEDESKTOP;
            }
          }

          // force these values to zero in case the caller is trying to read
          // so information out of these in a future version and we do not
          // support that future version.
          lpAdapterCaps->ulReserved2 = 0;
          lpAdapterCaps->ulReserved3 = 0;
        }
      }
      *lpInfoSize = sizeof(ADAPTERCAPS);
      break;

    case CWDDEDI_AdapterGetInfo:

      // returns information about the adapter ... at present, only the
      // connected displays are required.

      {
        ADAPTERINFO FAR *lpAdapterInfo;

        if (ulOutputSize < sizeof(ADAPTERINFO))
        {
          // cannot return the version because there is insufficient room in
          // the output buffer for an ADAPTERCAPS structure

          ulReturn = CWDDE_ERR_BADOUTPUTSIZE;
        } else
        {
          lpAdapterInfo = (ADAPTERINFO FAR *) lpOutput;
          lpAdapterInfo->ulSize = sizeof(ADAPTERINFO);

          if (lpHDE->ulDalRule1 & DALRULE1_DISABLECWDDEDETECTION)
          {
            // Since the INF suggests not to do the detection return
            // from dal stored data. Warning : This flag will limit
            // device detection to boot time only.
            lpAdapterInfo->ulDisplaysHaveLoad = lpHDE->ulConnectedDisplays;
          }
          else
          {
            if (lpHDE->ulFlags & HDAL_INITIALIZING)
            {
             lpAdapterInfo->ulDisplaysHaveLoad = lpHDE->ulConnectedDisplays;
            }
            else
            {           
              lpAdapterInfo->ulDisplaysHaveLoad = ulDetectConnectedDisplays(lpHDE);

              // Save the current detected displays in DAL. This is needed
              // when saving object map on a detection scheme.
              lpHDE->ulConnectedDisplays = lpAdapterInfo->ulDisplaysHaveLoad;

        			// Update connected displays in BIOS Scratch Registers
              // Do not update CMOS
              vUpdateBIOSDisplayInfo(lpHDE, TRUE, FALSE);
            }
          }

          lpAdapterInfo->ulHotPluggableDisplays = lpHDE->ulHotPlaggableDisplays;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费在线视频一区 二区| 欧美在线制服丝袜| 91在线视频免费观看| 色综合久久久久综合| 欧美一级二级三级乱码| 久久精品人人做人人爽人人| 亚洲精品久久久蜜桃| 免费欧美在线视频| 成人av网站大全| 欧美久久久一区| 国产日韩欧美a| 亚洲图片欧美综合| 国产成人在线视频网址| 色视频成人在线观看免| 欧美成人三级在线| 一区二区高清在线| 国产一区二区视频在线播放| 色综合婷婷久久| 久久奇米777| 亚洲国产欧美在线| 国产成人三级在线观看| 欧美日韩中文字幕精品| 欧美激情在线观看视频免费| 五月天激情综合网| av中文一区二区三区| 欧美电影免费观看高清完整版在 | 天堂在线亚洲视频| 成人一级黄色片| 91麻豆精品国产综合久久久久久| 欧美国产精品久久| 久久99精品国产麻豆婷婷洗澡| 午夜视频在线观看一区二区三区| 亚洲国产视频一区| 免费观看成人av| 在线观看日韩电影| 日本一区二区三区电影| 日韩国产一区二| 日本精品一级二级| 国产农村妇女精品| 久久99九九99精品| 婷婷夜色潮精品综合在线| 欧美视频一区二区三区四区| 久久久99免费| 日韩在线播放一区二区| 日本精品免费观看高清观看| 中文成人av在线| 国模套图日韩精品一区二区| 91精品国产综合久久福利软件 | 国产激情视频一区二区在线观看 | 麻豆国产精品官网| 69久久99精品久久久久婷婷 | 欧美精品乱码久久久久久| 综合久久给合久久狠狠狠97色| 国产一区二区免费视频| 欧美变态tickle挠乳网站| 视频精品一区二区| 欧美日韩卡一卡二| 亚洲影视在线观看| 在线亚洲欧美专区二区| 一区二区在线看| 91网站黄www| 亚洲柠檬福利资源导航| 99久久精品国产麻豆演员表| 亚洲国产精品精华液2区45| 国产精一区二区三区| 精品国一区二区三区| 奇米色一区二区| 3d动漫精品啪啪一区二区竹菊| 亚洲不卡在线观看| 欧美日韩精品一区二区三区四区| 亚洲在线观看免费| 欧美人狂配大交3d怪物一区| 午夜伦欧美伦电影理论片| 欧美美女网站色| 日韩二区三区四区| 欧美成人三级在线| 国产精品99久久久久久久女警| 国产丝袜在线精品| 99久久99久久免费精品蜜臀| 亚洲同性同志一二三专区| 91偷拍与自偷拍精品| 亚洲最快最全在线视频| 欧美日韩一区三区四区| 午夜精品福利在线| 91精品国产综合久久久久久漫画| 免费在线观看一区二区三区| 精品久久人人做人人爰| 国产在线国偷精品免费看| 国产欧美综合在线观看第十页| aaa国产一区| 亚洲国产精品久久艾草纯爱| 3d动漫精品啪啪1区2区免费 | 国产精品网站一区| 色综合天天综合狠狠| 亚洲国产综合91精品麻豆| 91精品欧美一区二区三区综合在| 久久国产人妖系列| 国产欧美久久久精品影院| 91在线小视频| 日韩专区欧美专区| 久久久www免费人成精品| 亚洲三级小视频| 成人app下载| 亚洲高清视频的网址| 精品欧美一区二区久久| 成年人国产精品| 三级久久三级久久久| 久久色中文字幕| 91视频一区二区三区| 日韩av中文字幕一区二区三区| 精品国产乱码91久久久久久网站| 成人手机电影网| 婷婷夜色潮精品综合在线| 久久久久久久综合日本| 在线观看免费一区| 国产一区二区电影| 亚洲综合精品久久| 26uuu色噜噜精品一区二区| 色偷偷久久一区二区三区| 日本亚洲三级在线| 国产精品成人免费| 在线不卡的av| 99riav久久精品riav| 美女任你摸久久| 亚洲美女视频一区| 精品国产免费视频| 欧美特级限制片免费在线观看| 激情伊人五月天久久综合| 亚洲视频图片小说| 精品久久久久久亚洲综合网| 色哟哟国产精品免费观看| 激情小说欧美图片| 亚洲国产精品嫩草影院| 欧美国产国产综合| 欧美一级xxx| 在线观看不卡一区| 丁香天五香天堂综合| 日韩精品成人一区二区三区 | av中文字幕一区| 精品亚洲porn| 亚洲在线中文字幕| 亚洲欧美在线高清| 久久色成人在线| 日韩一区二区影院| 欧美日韩中文精品| 91一区二区三区在线观看| 国产麻豆成人精品| 蜜桃视频一区二区| 亚洲成人精品一区| 亚洲欧美电影院| 中文字幕中文字幕一区二区| 日韩欧美成人午夜| 欧美丰满嫩嫩电影| 在线看日本不卡| 99re在线视频这里只有精品| 国产精品香蕉一区二区三区| 免费不卡在线视频| 午夜伊人狠狠久久| 一区二区三区四区在线播放| 国产精品视频你懂的| 久久精品日产第一区二区三区高清版 | 欧美一区二区视频观看视频| 欧美在线不卡一区| 色婷婷国产精品久久包臀 | 亚洲欧美电影院| 久久久精品国产免大香伊| 日韩精品一区二区三区视频在线观看 | 国产精品久久久久久久久搜平片| 精品国产污网站| 精品卡一卡二卡三卡四在线| 欧美一区二区三区在线| 欧美日韩一区在线观看| 欧美视频你懂的| 欧美性猛片xxxx免费看久爱| 日本韩国欧美国产| 欧美影院一区二区三区| 在线免费观看日本一区| 在线看日本不卡| 欧美午夜在线观看| 精品视频一区 二区 三区| 欧美午夜片在线观看| 欧美精品亚洲一区二区在线播放| 日本高清不卡视频| 欧美亚洲精品一区| 欧美理论片在线| 欧美一二三四区在线| 精品欧美一区二区在线观看| 久久综合九色综合久久久精品综合| 精品噜噜噜噜久久久久久久久试看 | 亚洲特黄一级片| 亚洲人成人一区二区在线观看| 亚洲四区在线观看| 日韩欧美电影一区| 欧美中文字幕不卡| 欧美午夜免费电影| 欧美一区国产二区| 精品国内片67194| 国产人成亚洲第一网站在线播放| 国产精品网站在线| 一区二区三区高清在线|