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

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

?? msmddoal.cpp

?? 6410BSP3
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
	pNANDXIPLoc = AllocXIPLoc();
	if (0 == pNANDXIPLoc)
	{
		MSMDD_ERR_PRINT((TEXT("[MSMDD:ERR]  FATAL ERROR: AllocXIPLoc fail!!!!\r\n")));
        MSMDD_LOG_PRINT((TEXT("[MSMDD:OUT] --VerifyChainInPocketStore()\r\n")));
		return FALSE;
	}

    pMDDChain = (XIPCHAIN_ENTRY *)(pNANDXIPLoc + 1);
    dwNumOfXIPLoc = (*pNANDXIPLoc) + 1;

#if defined(PS_DEBUG)
	ViewXIPChain((DWORD) *pNANDXIPLoc, pMDDChain);
#endif	//(PS_DEBUG)	

    if ( dwNumExtEntries != (dwNumOfXIPLoc) )
    {
    	FreeXIPLoc(pNANDXIPLoc);
    	
    	MSMDD_ERR_PRINT((TEXT("[MSMDD:ERR]  VerifyChain(dwNumExtEntries=%d,dwNumOfXIPLoc=%d)\r\n"),
    		             dwNumExtEntries, dwNumOfXIPLoc));
        MSMDD_LOG_PRINT((TEXT("[MSMDD:OUT] --VerifyChainInPocketStore()\r\n")));
        return FALSE;
    }

    // walk through chain to verify

    for ( UINT i = 1; i < dwNumExtEntries; ++i )
    {
        if ( pExtChain[i].pvAddr != pMDDChain[i-1].pvAddr )
        {
        	FreeXIPLoc(pNANDXIPLoc);
        	
	    	MSMDD_ERR_PRINT((TEXT("[MSMDD:OUT]  pExtChain[%d].pvAddr=(%X),pMDDChain[%d].pvAddr=(%X)\r\n"),
    			             i, pExtChain[i].pvAddr, i-1, pMDDChain[i-1].pvAddr));
    	    MSMDD_LOG_PRINT((TEXT("[MSMDD:OUT] --VerifyChainInPocketStore()\r\n")));
            return FALSE;
        }
    }

	FreeXIPLoc(pNANDXIPLoc);
    
    MSMDD_INF_PRINT((TEXT("[MSMDD:MSG]  VerifyChainInPocketStore OK\r\n")));
    MSMDD_LOG_PRINT((TEXT("[MSMDD:OUT] --VerifyChainInPocketStore()\r\n")));
    return TRUE;
}


// ***************************************************************************
//
//  Function Name: DoGetBinExtensions
// 
//  Purpose: tells BINFS what regions to load
//
//  Arguments:
//      IN        ppRomPid     XIPSUMMARY chain
//
//  Return Values:
//
//      E_OUTOFMEMORY   
//
//
//  Description:  
//
//      BINFS calls this at init to get the XIP chain.  
//      We walk the MDD chain and put regions into the BINFS chain
//      accordingly to the flags settings.
//
//      One pain is that the BINFS chain structure is different than the MDD chain.
//      BINFS chain is an array of XIPCHAIN_SUMMARY structures
//      MDD chain is an array of XIPCHAIN_ENTRY structures
//
//

HRESULT
DoGetBinExtensions(XIPCHAIN_SUMMARY   *pExtChain,
                   LPDWORD             pdwSize)
{
    DEBUGCHK(pdwXIPLoc != NOT_FIXEDUP);
    DEBUGCHK(pdwSize);

    PXIPCHAIN_ENTRY     pMDDChain;
    XIPCHAIN_SUMMARY *  pOSChain;
    DWORD               dwNumOSEntries, dwCurEntry;
    HRESULT             hr;
    DWORD				*pNANDXIPLoc;

    MSMDD_LOG_PRINT((TEXT("[MSMDD: IN] ++DoGetBinExtensions()\r\n")));
    
    hr = GetOSChain(&pOSChain, &dwNumOSEntries);
    if ( SUCCEEDED(hr) )
    {
#if	1
    	{
    		UINT i;

            MSMDD_INF_PRINT((TEXT("[MSMDD:   ]  ====== pOSChain Info Print ======\r\n")));
        
    		for (i = 0; i < dwNumOSEntries; i ++)
    		{
    			MSMDD_INF_PRINT((TEXT("[MSMDD:   ]  \tpOSChain[%d].pvAddr       =0x%X\r\n"),   i, pOSChain[i].pvAddr));
    			MSMDD_INF_PRINT((TEXT("[MSMDD:   ]  \tpOSChain[%d].dwMaxLength  =0x%X\r\n"),   i, pOSChain[i].dwMaxLength));
    			MSMDD_INF_PRINT((TEXT("[MSMDD:   ]  \tpOSChain[%d].usOrder      =0x%X\r\n"),   i, pOSChain[i].usOrder));
    			MSMDD_INF_PRINT((TEXT("[MSMDD:   ]  \tpOSChain[%d].usFlags      =0x%X\r\n"),   i, pOSChain[i].usFlags));
    		}
    		MSMDD_INF_PRINT((TEXT("[MSMDD:   ]  =================================\r\n")));
    	}
#endif
        //
        // NOTE: we always put a copy of the MDD chain into the BINFS chain
        //  that's just the way BINFS expects it, it always skips the first
        //  entry assuming it's our chain bin
        //

        if ( pExtChain )
        {
            memcpy(pExtChain, pOSChain, sizeof(pExtChain[0]));
        }
        dwCurEntry = 1;
    }
    else
    {
        MSMDD_LOG_PRINT((TEXT("[MSMDD:OUT] --DoGetBinExtensions()\r\n")));
        return hr;
    }

#if defined(_ORG_CODE_)
	if ( !VerifyChain(pOSChain, dwNumOSEntries) )
#else	//_ORG_CODE_
    if ( !VerifyChainInPocketStore(pOSChain, dwNumOSEntries) )
#endif	//_ORG_CODE_
    {
        //
        // the chains are inconsistent-- the kernel chain that's 
        // being used is not in sync with the MDD chain
        // we don't want the system to boot with any regions
        //
        DEBUGCHK(0);

        MSMDD_ERR_PRINT((TEXT("[MSMDD:ERR]  MDD Chain and OS chain are not matched!!!!\r\n")));
        MSMDD_LOG_PRINT((TEXT("[MSMDD:OUT] --DoGetBinExtensions()\r\n")));
        return HRESULT_FROM_WIN32(ERROR_INVALID_DATA);
    }

	pNANDXIPLoc = AllocXIPLoc();

	if (0 == pNANDXIPLoc)
	{
		MSMDD_ERR_PRINT((TEXT("[MSMDD:ERR]  AllocXIPLoc fail\r\n")));
		MSMDD_LOG_PRINT((TEXT("[MSMDD:OUT] --DoGetBinExtensions()\r\n")));
		return HRESULT_FROM_WIN32(ERROR_INVALID_DATA);
	}
#if defined(_ORG_CODE_)
	pMDDChain = (PXIPCHAIN_ENTRY)(pdwXIPLoc + 1);
#else	//_ORG_CODE_
    pMDDChain = (PXIPCHAIN_ENTRY)(pNANDXIPLoc + 1);
#endif	//_ORG_CODE_


    for ( UINT i = 1; i < dwNumOSEntries; ++i )
    {
        if ( pMDDChain[i-1].usFlags & ROMXIP_OK_TO_LOAD )
        {
            if ( pExtChain )
            {
                memcpy(&(pExtChain[dwCurEntry]), &(pOSChain[i]), sizeof(pExtChain[dwCurEntry]));
				pExtChain[dwCurEntry].usOrder = (USHORT)(dwCurEntry-1); // BINFS counts on this field
            }

            ++dwCurEntry;
        }
    }

    if ( !pExtChain )
    {
        *pdwSize = dwCurEntry * sizeof(XIPCHAIN_SUMMARY);
    }

    FreeXIPLoc(pNANDXIPLoc);

    MSMDD_LOG_PRINT((TEXT("[MSMDD:OUT] --DoGetBinExtensions()\r\n")));
    return S_OK;
}

#endif // (CE_MAJOR_VER == 0x0004)  && (CE_MINOR_VER == 0x0014) && (CE_BUILD_VER >= 13100)

// ***************************************************************************
//
//  Function Name: MSMDDInit
// 
//  Purpose: called at OEMInit for MSMDD platforms.  Does OEMInit type stuff for MDD.
//
//  Description:  
//
//      List of things that this function will do per MDD requirements:
//      1. Writes OEMRomChain for multixip images except when BLOCKROM/BINFS is used
//      2. initializes paging pool if specified in config.bib
//
//

BOOL
MSMDDInit()
{
    static		ROMChain_t	s_pNextRom[MAX_ROM];
    DWORD		dwRomCount = 0;
    DWORD       dwChainCount = 0;
    DWORD *     pdwCurXIP;
    DWORD       dwNumXIPs;

    PXIPCHAIN_ENTRY pChainEntry = NULL;
    
	MSMDD_LOG_PRINT((TEXT("[MSMDD: IN] ++MSMDDInit()\r\n")));

	// Added for MultiXIP stuff
    if ( pdwXIPLoc != NOT_FIXEDUP && dwDontUseChain == (DWORD)NOT_FIXEDUP )
    {
        MSMDD_INF_PRINT((TEXT("pdwXIPLoc fixed up correctly\n")));
    
        MSMDD_INF_PRINT((TEXT("pdwXIPLoc = 0x%x\n"), pdwXIPLoc));
		
        // Set the top bit to mark it a virtual address
        pdwCurXIP = (DWORD*)(((DWORD)pdwXIPLoc) | 0x80000000 );
    
        MSMDD_INF_PRINT((TEXT("pdwCurXIP = 0x%x\n"), pdwCurXIP));
		
        //
        // first DWORD is the number of XIPs
        //
        dwNumXIPs = *pdwCurXIP;
		
        MSMDD_INF_PRINT((TEXT("dwNumXIPs = 0x%x\n"), dwNumXIPs));
		
        if ( dwNumXIPs > MAX_ROM )
        {
            MSMDD_INF_PRINT((TEXT("ERROR: Number of XIPs exceeds MAX\n")));
        }
        else
        {
            pChainEntry = (PXIPCHAIN_ENTRY)(pdwCurXIP + 1);
            while (dwChainCount < dwNumXIPs)
            {
                if ((pChainEntry->usFlags & ROMXIP_OK_TO_LOAD) &&  // flags indicates valid XIP
                    *(LPDWORD)(((DWORD)(pChainEntry->pvAddr)) + ROM_SIGNATURE_OFFSET) == ROM_SIGNATURE)
                {

                    s_pNextRom[dwRomCount].pTOC = *(ROMHDR **)(((DWORD)(pChainEntry->pvAddr)) + ROM_SIGNATURE_OFFSET + 4);
                    s_pNextRom[dwRomCount].pNext = NULL;
    
                    MSMDD_INF_PRINT((TEXT("[MSMDD:INF]  XIP region found: %a\r\n"), pChainEntry->szName));
    
                    if (dwRomCount != 0)
                    {
                        s_pNextRom[dwRomCount-1].pNext = &s_pNextRom[dwRomCount];
                    }
                    else
                    {
                        OEMRomChain = s_pNextRom;
                    }
                    dwRomCount++;
                }
                else
                {
                    MSMDD_ERR_PRINT((TEXT("[MSMDD:ERR]  Invalid XIP found\n")));
                }
    
                ++pChainEntry;
                dwChainCount++;
            }
        }
    }
    else
    {
        MSMDD_INF_PRINT((TEXT("[MSMDD:INF]  pdwXIPLoc=0x%x, dwDontUseChain=0x%x\r\n"), pdwXIPLoc, dwDontUseChain));
        MSMDD_INF_PRINT((TEXT("[MSMDD:INF]  XIP chain location not fixed up\r\n")));
    }

	// end MultiXIP stuff

	MSMDD_LOG_PRINT((TEXT("[MSMDD:OUT] --MSMDDInit()\r\n")));

    return TRUE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品在线观| 精品日韩一区二区三区免费视频| 日韩精品一级二级| 国产精品无人区| 亚洲摸摸操操av| 精品欧美一区二区久久| 色综合天天综合网天天狠天天| 开心九九激情九九欧美日韩精美视频电影 | 亚洲国产高清aⅴ视频| 欧美狂野另类xxxxoooo| eeuss鲁一区二区三区| 久久精品噜噜噜成人av农村| 亚洲女性喷水在线观看一区| 精品国精品自拍自在线| 欧美久久婷婷综合色| a美女胸又www黄视频久久| 国产麻豆视频一区| 蜜桃视频在线观看一区二区| 亚洲一卡二卡三卡四卡无卡久久| 中文字幕欧美区| 久久久久高清精品| 欧美本精品男人aⅴ天堂| 欧美高清dvd| 91成人在线免费观看| av一本久道久久综合久久鬼色| 国产一区二区三区四区五区美女| 日韩电影在线免费| 亚洲国产成人av| 亚洲一卡二卡三卡四卡无卡久久| 亚洲欧美另类久久久精品2019| 国产欧美一区二区在线观看| 精品久久久久久久人人人人传媒| 91麻豆精品久久久久蜜臀| 欧美日韩午夜在线视频| 欧美吻胸吃奶大尺度电影| 一本到不卡免费一区二区| av网站免费线看精品| 不卡av电影在线播放| 国产.欧美.日韩| 成人听书哪个软件好| 国产91对白在线观看九色| 国产成人精品网址| 成人国产精品免费网站| 成人免费看视频| bt7086福利一区国产| 91丝袜呻吟高潮美腿白嫩在线观看| 成人av综合在线| 色综合亚洲欧洲| 精品国产伦一区二区三区观看体验 | 国产精品无人区| 中文字幕一区二区三区精华液 | 久久免费的精品国产v∧| 欧美精品一区二区三区视频| 精品99久久久久久| 欧美极品aⅴ影院| 国产精品超碰97尤物18| 一区二区三区产品免费精品久久75| 亚洲欧美日韩小说| 亚洲成av人片在线观看| 午夜激情久久久| 国内不卡的二区三区中文字幕| 国内成人自拍视频| 国v精品久久久网| 91视视频在线观看入口直接观看www| 色哟哟一区二区三区| 欧美日韩欧美一区二区| 日韩免费视频线观看| 国产亚洲人成网站| 亚洲欧美激情一区二区| 亚洲一本大道在线| 精品在线播放午夜| av在线一区二区三区| 欧美日韩视频在线观看一区二区三区 | 韩国毛片一区二区三区| 成人小视频在线观看| 在线观看日韩av先锋影音电影院| 日韩一级二级三级| 国产精品久久久久久久久免费丝袜| 亚洲免费视频成人| 美国欧美日韩国产在线播放| 成人中文字幕在线| 欧美日韩高清影院| 日本一区二区三区视频视频| 一个色在线综合| 久久av资源网| 日本道精品一区二区三区 | 欧美日韩一区二区三区四区 | 日韩成人免费在线| 国产98色在线|日韩| 欧美三区在线视频| 国产日韩欧美不卡在线| 午夜成人在线视频| 99热精品一区二区| 日韩欧美电影在线| 一区二区三区成人在线视频| 国产一区二区三区免费观看| 欧美影视一区二区三区| 国产日韩综合av| 日韩电影免费在线观看网站| av在线播放一区二区三区| 精品蜜桃在线看| 亚洲成人动漫一区| 91亚洲精品久久久蜜桃网站| 欧美zozo另类异族| 国产精品系列在线观看| 欧美日韩黄色一区二区| 国产精品初高中害羞小美女文| 九九九精品视频| 在线播放视频一区| 亚洲一二三区不卡| 91丨国产丨九色丨pron| 中文成人综合网| 久久99在线观看| 91精品国产欧美一区二区成人| 亚洲精品免费电影| 91亚洲国产成人精品一区二区三| 久久综合精品国产一区二区三区| 日韩不卡一区二区三区| 欧美在线免费观看亚洲| 亚洲视频中文字幕| 成人动漫一区二区在线| 国产日韩欧美a| 国产伦精品一区二区三区视频青涩| 91精品国产综合久久久久久久久久| 亚洲欧美日韩国产成人精品影院| 成人免费视频一区| 亚洲国产精品成人综合色在线婷婷 | 国产精品一区二区三区99| 日韩一级大片在线观看| 天堂成人免费av电影一区| 欧美色国产精品| 性做久久久久久| 欧美精选在线播放| 日韩影院在线观看| 欧美人体做爰大胆视频| 亚洲h精品动漫在线观看| 欧美熟乱第一页| 午夜久久久影院| 在线成人免费观看| 蜜臀av在线播放一区二区三区| 91精品国产手机| 麻豆一区二区在线| 久久久久97国产精华液好用吗| 国产美女精品一区二区三区| 久久午夜电影网| 成人免费看片app下载| 中文字幕综合网| 欧美日韩中文字幕一区二区| 亚洲va国产天堂va久久en| 91精品久久久久久蜜臀| 日本aⅴ免费视频一区二区三区| 日韩欧美一级二级三级| 国产麻豆一精品一av一免费| 国产精品人成在线观看免费| 99久久99久久久精品齐齐| 亚洲一区中文日韩| 欧美一二区视频| 国产成人av自拍| 一区二区三区四区五区视频在线观看 | 欧美一区二区视频在线观看| 激情综合色播激情啊| 国产精品福利电影一区二区三区四区| 91视频在线观看| av不卡在线观看| 亚洲永久免费av| 欧美电影免费观看完整版| 成人成人成人在线视频| 亚洲午夜激情网站| 精品福利二区三区| av不卡在线观看| 蜜臀av在线播放一区二区三区| 国产人妖乱国产精品人妖| 色婷婷av一区| 久久99久久99| 亚洲区小说区图片区qvod| 日韩一区二区精品| k8久久久一区二区三区| 日韩高清在线不卡| 国产精品伦理一区二区| 91精品婷婷国产综合久久竹菊| 国产成人av一区二区三区在线 | 国产精品日韩成人| 欧美区一区二区三区| 国产超碰在线一区| 五月天激情综合网| 国产精品久久夜| 日韩你懂的在线播放| 91官网在线观看| 国产精品夜夜爽| 首页欧美精品中文字幕| 欧美激情综合网| 日韩三级精品电影久久久| 91在线视频免费观看| 国内外成人在线| 性做久久久久久免费观看欧美| 国产精品欧美综合在线| 日韩欧美第一区| 欧美日韩中字一区| 91免费小视频| 国产成都精品91一区二区三|