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

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

?? eaheader.cxx

?? EFI(Extensible Firmware Interface)是下一代BIOS
?? CXX
字號(hào):
/*++

Copyright (c) 1991-1999 Microsoft Corporation

Module Name:

    eaheader.cxx

--*/

#include <pch.cxx>

#define _UFAT_MEMBER_
#include "ufat.hxx"

#include "error.hxx"


DEFINE_EXPORTED_CONSTRUCTOR( EA_HEADER, CLUSTER_CHAIN, UFAT_EXPORT );

VOID
EA_HEADER::Construct (
        )
/*++

Routine Description:

        Constructor for EA_HEADER.  Initializes private data to default values.

Arguments:

        None.

Return Value:

        None.

--*/
{
   _ht = NULL;
   _off_tab_size = 0;
}


UFAT_EXPORT
EA_HEADER::~EA_HEADER(
    )
/*++

Routine Description:

    Destructor for EA_HEADER.  Frees memory.

Arguments:

    None.

Return Value:

    None.

--*/
{
    Destroy();
}


UFAT_EXPORT
BOOLEAN
EA_HEADER::Initialize(
    IN OUT  PMEM                Mem,
    IN OUT  PLOG_IO_DP_DRIVE    Drive,
    IN      PFAT_SA             FatSuperArea,
    IN      PCFAT               Fat,
    IN      ULONG               StartingCluster,
    IN      ULONG               LengthOfChain
    )
/*++

Routine Description:

    This routine prepares this object for reads and writes.  It also
    prepares the object with memory so that it can accept queries.

    If the length of the cluster chain is not specified this routine
    will read in the first cluster in order to compute the actual
    length of the cluster chain.

Arguments:

    Mem             - Supplies the memory for the cluster chain.
    Drive           - Supplies the drive that contains the EA file.
    FatSuperArea    - Supplies information about the FAT file system.
    Fat             - Supplies the file allocation table.
    StartingCluster - Supplies the first cluster of the EA file.
    LengthOfChain   - Supplies the number of clusters necessary to contain
                      the EA file header, base table and offset table.

Return Value:

    FALSE   - Initialization failed.
    TRUE    - Initialization succeeded.

--*/
{
    HMEM    hmem;
    INT     i;

    Destroy();

    // See if the length of the chain needs to be computed.
    if (!LengthOfChain) {
        if (!hmem.Initialize() ||
            !CLUSTER_CHAIN::Initialize(&hmem, Drive, FatSuperArea, Fat,
                                       StartingCluster, 1) ||
            !(_ht = (PEA_HEADER_AND_TABLE) GetBuf()) ||
            !CLUSTER_CHAIN::Read() ||
            !(_ht->Header.Signature == HeaderSignature) ||
            !(_ht->Header.FormatType == 0) ||
            !(_ht->Header.LogType == 0)) {

           perrstk->push(ERR_NOT_INIT, QueryClassId());
           Destroy();
           return FALSE;

        }
        for (i = 0; i < BaseTableSize && !_ht->Table.BaseTab[i]; i++) {
        }
        if (i == BaseTableSize) {

           perrstk->push(ERR_NOT_INIT, QueryClassId());
           Destroy();
           return FALSE;

        }
        LengthOfChain = _ht->Table.BaseTab[i];
    }

    if (!CLUSTER_CHAIN::Initialize(Mem, Drive, FatSuperArea, Fat,
                                   StartingCluster, LengthOfChain) ||
        !(_ht = (PEA_HEADER_AND_TABLE) GetBuf())) {

       perrstk->push(ERR_NOT_INIT, QueryClassId());
       Destroy();
       return FALSE;

    }

    // Compute the number of offset table entries.
    _off_tab_size = Drive->QuerySectorSize() *
                    FatSuperArea->QuerySectorsPerCluster() *
                    LengthOfChain;
    _off_tab_size -= sizeof(EA_FILE_HEADER);
    _off_tab_size -= BaseTableSize*sizeof(USHORT);
    _off_tab_size /= sizeof(USHORT);

    if (_off_tab_size < 0) {

       perrstk->push(ERR_NOT_INIT, QueryClassId());
       Destroy();
       return FALSE;

    }

    return TRUE;
}


UFAT_EXPORT
USHORT
EA_HEADER::QueryEaSetClusterNumber(
    IN  USHORT  Handle
    ) CONST
/*++

Routine Description:

    This function computes the EA cluster number for an EA set in the
    EA file.  This function will return 0 if the handle is invalid or
    outside the range of the table.

Arguments:

    Handle  - Supplies the handle for the desired EA set.

Return Value:

    Returns the EA cluster number for the EA set whose handle is 'Handle'.

--*/
{
    USHORT  off;

    if (!_ht) {
       perrstk->push(ERR_NOT_INIT, QueryClassId());
       return 0;
    }

    Handle = (( Handle << 1 ) >> 1 );

    if ((LONG)Handle >= _off_tab_size ||
        (off = _ht->Table.OffTab[Handle]) == InvalidHandle) {
       return 0;
    }

    return (( off << 1 ) >> 1 ) + _ht->Table.BaseTab[Handle>>7];
}


VOID
EA_HEADER::Destroy(
    )
/*++

Routine Description:

    This routine puts this object in a blank state.  It is not necessary
    to call this routine between calls to Init because Init calls this
    routine automatically.

Arguments:

    None.

Return Value:

    None.

--*/
{
    _ht = NULL;
    _off_tab_size = 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线一区二区三区| 日韩精品中文字幕一区二区三区| 亚洲国产日韩一级| 国产精品久久久一本精品| 久久九九国产精品| 欧美激情综合网| 国产精品久久久久久久久快鸭| 亚洲国产精品ⅴa在线观看| 久久久久国产成人精品亚洲午夜| 亚洲精品一区二区三区香蕉| 精品三级在线观看| 久久久久久亚洲综合影院红桃 | 日韩欧美中文字幕制服| 日韩欧美你懂的| 日韩一级高清毛片| 久久久av毛片精品| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品日日摸夜夜摸av| 自拍偷拍欧美精品| 午夜精品福利一区二区蜜股av| 日本欧洲一区二区| 国产成人亚洲精品狼色在线| 成人在线视频一区二区| 在线亚洲人成电影网站色www| 欧美性xxxxx极品少妇| 制服.丝袜.亚洲.另类.中文| 久久先锋影音av鲁色资源网| 中文字幕一区二区三区在线不卡 | 轻轻草成人在线| 韩国毛片一区二区三区| 成人动漫精品一区二区| 欧美日韩精品福利| 国产欧美精品在线观看| 亚洲一区二区三区小说| 国产乱码精品一区二区三区忘忧草| 成人av一区二区三区| 3d动漫精品啪啪| 国产精品成人一区二区三区夜夜夜| 亚洲成av人片一区二区| 粉嫩欧美一区二区三区高清影视| 欧美伊人精品成人久久综合97| 久久尤物电影视频在线观看| 亚洲自拍都市欧美小说| 国产成人免费网站| 日韩视频在线一区二区| 亚洲免费在线观看视频| 国产成人亚洲综合a∨婷婷 | 国产欧美一区二区三区在线老狼 | 精品久久99ma| 中文字幕色av一区二区三区| 热久久久久久久| 成人h精品动漫一区二区三区| 欧美日韩精品一区视频| 国产精品无圣光一区二区| 日韩高清在线观看| 国产传媒久久文化传媒| 911精品产国品一二三产区| 天堂蜜桃一区二区三区| 粉嫩aⅴ一区二区三区四区| 欧美电影免费观看高清完整版在线观看 | 久久丁香综合五月国产三级网站 | 日韩精品一区二区三区蜜臀| 亚洲一区免费视频| 91视频免费观看| 国产精品久久影院| 成人免费毛片app| 亚洲国产激情av| 国产成人精品1024| 久久久国产精品麻豆| 国产揄拍国内精品对白| 日韩欧美一区在线| 日本伊人精品一区二区三区观看方式| 色成年激情久久综合| 日韩一区欧美一区| 99视频热这里只有精品免费| 欧美国产欧美亚州国产日韩mv天天看完整| 久久99久久99精品免视看婷婷| 6080午夜不卡| 另类欧美日韩国产在线| 日韩一区二区三区视频| 蜜臀久久99精品久久久久久9| 欧美一区二区三区在| 久久成人精品无人区| 精品久久五月天| 粉嫩欧美一区二区三区高清影视 | 2021久久国产精品不只是精品| 久久精品国产亚洲一区二区三区| 精品人在线二区三区| 国产一区二区三区综合| 国产精品视频yy9299一区| 99久久777色| 午夜久久久久久久久久一区二区| 91精品国产色综合久久ai换脸 | 欧美日韩在线直播| 日韩二区三区四区| 欧美精品一区视频| 成人av网址在线| 亚洲成人av在线电影| 欧美一区二区三区系列电影| 狠狠网亚洲精品| 亚洲视频精选在线| 欧美精品视频www在线观看| 另类小说色综合网站| 国产精品久久夜| 欧美日韩精品一区二区| 精品一区二区久久| 亚洲黄色免费电影| 2024国产精品| 在线精品视频小说1| 激情欧美一区二区| 亚洲精品自拍动漫在线| 欧美成人a∨高清免费观看| 99精品欧美一区二区蜜桃免费| 午夜欧美电影在线观看| 中文成人av在线| 欧美一区二区精品久久911| 成人精品视频一区二区三区尤物| 亚洲一区二区在线免费观看视频| 日韩欧美一级在线播放| 在线欧美一区二区| 国产精品乡下勾搭老头1| 亚洲第一福利一区| 国产精品欧美一级免费| 日韩色视频在线观看| 91国产免费观看| 丁香婷婷综合激情五月色| 一区二区三区精品| 26uuuu精品一区二区| 日本高清不卡在线观看| 国产成人精品免费网站| 亚洲午夜私人影院| 国产精品网站在线播放| 精品国精品国产尤物美女| 欧美三级在线视频| 色婷婷亚洲精品| www.66久久| 国产99久久久国产精品潘金 | 日本一二三四高清不卡| 欧美日本视频在线| 日本道色综合久久| 91香蕉视频在线| 高潮精品一区videoshd| 国内外成人在线| 麻豆91在线观看| 免费高清在线一区| 午夜精品福利在线| 亚洲图片欧美视频| 亚洲品质自拍视频| 国产精品久久久久久久久动漫 | 欧美高清在线一区| 久久久高清一区二区三区| 精品久久久久久久久久久久久久久 | 欧美大片一区二区| 日韩午夜精品视频| 欧美tickling网站挠脚心| 日韩欧美一二三| 精品伦理精品一区| 欧美精品一区视频| 国产女人aaa级久久久级| 国产婷婷色一区二区三区在线| 欧美成人官网二区| 欧美国产激情一区二区三区蜜月| 中文字幕不卡在线| 亚洲女同一区二区| 天天av天天翘天天综合网色鬼国产| 五月天一区二区三区| 蜜臀a∨国产成人精品| 久久成人免费网| 国产精品一区在线观看乱码 | 自拍偷拍国产精品| 亚洲欧美视频在线观看| 一区二区三区不卡在线观看| 亚洲综合色婷婷| 美女精品一区二区| 成人免费视频caoporn| 色偷偷成人一区二区三区91| 777久久久精品| 国产亚洲人成网站| 亚洲一区在线视频观看| 精品一区二区精品| 91视频91自| 欧美一区二区三区公司| 国产欧美精品一区二区三区四区 | 日韩一卡二卡三卡四卡| 久久婷婷久久一区二区三区| 国产农村妇女毛片精品久久麻豆 | 99re这里都是精品| 欧美日韩国产天堂| 精品精品国产高清a毛片牛牛| 中文字幕高清一区| 日日摸夜夜添夜夜添亚洲女人| 韩国在线一区二区| 一本久道久久综合中文字幕| 欧美丰满一区二区免费视频| 久久久av毛片精品| 婷婷中文字幕综合| av午夜一区麻豆| 精品国产第一区二区三区观看体验 | 国产精品69久久久久水密桃 | 日韩精品91亚洲二区在线观看|