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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? getparts.c

?? Due to an increase in demand for and questions about direct disk access for Micrososft platforms, a
?? C
字號:
/*
 * getparts.c       get partition information
 *
 * This file is part of the BETA version of DISKLIB
 * Copyright (C) 1998, Gregg Jennings
 *
 * See README.TXT for information about re-distribution.
 * See DISKLIB.TXT for information about usage.
 *
 * 14-Dec-1998  greggj  fixed casts where offsetof is used
 *
 */

/*
             ******************************************
             * GETPARTS is a "Proof of Concept" only. *
             * It really does not do anything useful. *
             ******************************************

    This program will calculate a partition table for the
    MASTER BOOT RECORD and does so by reading all of the
    BOOT SECTORS of a drive. The MBR table is NOT READ; this
    means that the data displayed here can be used to recreate
    a damaged or missing MBR partition table!

    This program displays the data only. A future version might
    have the option to write to the MBR or to write an MBR to
    a binary file.

    LIMITATIONS:

        o   FAT and NTFS drives only.
        o   Partitions within partitions ARE NOT SUPPORTED.
        o   Although will compile under Windows, it will return
            an error for disk_get_physical() (It's an MS thing.)

    MACHINES TESTED:

        See GETPARTS.TXT.

*/

#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>

#include "dosio.h"
#include "disklib.h"

long get_sectors(char *buf);

void usage(void)
{
    printf("\n");
    printf("usage: getparts <0-3>\n");
    printf("\n");
    printf("Displays partition information from HDD 0-3 to STDOUT\n");
    printf("without reading the MBR.\n");
    printf("\n");

    exit(1);
}

int main(int argc, char **argv)
{
int disk;
int d,i;
int t,s,h;
long sectors,start;
char boot[512];
int cylinders,secs,heads;

    setvbuf(stdout,NULL,_IONBF,0);      /* flush stdout every printf */

    if (argc < 2) {
        disk = 0;
        printf("\nNo drive specified, defaulting to drive 0.\n");
    }
    else {
        disk = atoi(argv[1]);
    }

    if (disk < 0 || disk > 3)
        usage();

    disk += 2;      /* library uses 0,1 as FDD, 2-5 as HDD */


    /* get drive geometry */

    i = disk_get_physical(disk,&cylinders,&secs,&heads);

    if (i != DISK_OK) {
        printf("\nBIOS Error: %s [%02xh]\n",disk_error(i),i);
        exit(2);
    }

    ++heads;        /* library returns these as 0-N but our math */
    ++cylinders;    /*  here thinks of them as 1-N */

    printf("\nHDD %d: %d,%d,%d, sectors: %ld\n",disk-1,cylinders,secs,heads,
            (long)cylinders*secs*heads);

    /* start off at Partition zero and first MBR */

    d = 0;
    sectors = 0;
    t = 0;
    h = 0;
    s = 1;
    start = (long)secs;

    for (;;)
    {
        printf("\n%d, ",d);

        /* first partition is slightly different that any other */

        if (d == 0) {
            printf("start: %d,%d,%d, ",t,h+1,s);
            start = logical_sector(t,s,h+1,0,secs,heads);
        }
        else {
            printf("start: %d,%d,%d, ",t,h,s);
            start = logical_sector(t,s,h,0,secs,heads);
        }

        /* read boot sector (MBR + next head) */

        i = disk_read_p(disk,t,s,h+1,boot,1);

        if (i != DISK_OK) {
            printf("\nBIOS Error: %s [%02xh]\n",disk_error(i),i);
            exit(2);
        }

        if (*(unsigned short*)(boot+510) != 0xAA55) {
            printf(" could not find boot sector!\n");
            break;
        }

        /* get sectors from boot sector */

        sectors += get_sectors(boot);

        /* calculate where next track starts */

        physical_p(&t,&s,&h,sectors,secs,heads);

        printf("end: %d,%d,%d, ",t,h,s);
        if (d == 0)
            printf("sec: %ld, # %ld\n",start,sectors);
        else
            printf("sec: %ld, # %ld\n",start,(sectors-start)+1);

        /* done if end of drive reached */

        if (t >= cylinders-1)
            break;

        /* add to total sectors any "slack space" and the size of a track */

        sectors += (secs - s);
        sectors += secs;

        /* start CHS of next partition (an MBR) is next track, next head */

        s = 1;
        t++;
        h++;
        if (h == heads)
            h = 0;
        d++;
    }

    printf("\n");
    return 0;
}


long get_sectors(char *buf)
{
    /*
        TODO: Figure out how to get partition information on
              EXT2 drives.
    */

    if (strncmp(buf+3,"NTFS",4) == 0)
    {
        /*
            Note that `num_secs_hi' is not used... if it is non-zero
            does that mean a 64 bit number? My NT drive size is less
            than LONG_MAX. Also, I had to add one to get the correct
            number.
        */

        return *(UINT32*)(buf + offsetof(struct BOOT_NTFS,num_secs_lo))+1;
    }
    else if (*(UINT16*)(buf + offsetof(struct BOOT,secs_fat)) == 0)
    {
        return *(UINT32*)(buf + offsetof(struct BOOT_FAT32,total_sectors));
    }
    else
    {
        return *(UINT32*)(buf + offsetof(struct BOOT,total_sectors));
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品欧美一区二区三区麻豆| 成人美女视频在线观看18| 色综合久久久久| 亚洲少妇中出一区| 欧美日韩国产电影| 青青草原综合久久大伊人精品优势 | 日韩免费观看高清完整版在线观看| 午夜精品视频一区| 久久综合视频网| 91久久精品网| 美女视频一区二区| 中文字幕在线不卡一区| 宅男在线国产精品| 成人黄色777网| 日本成人在线看| 亚洲人午夜精品天堂一二香蕉| 精品视频一区 二区 三区| 日韩成人伦理电影在线观看| 免费在线观看成人| 国产麻豆午夜三级精品| 亚洲福利一区二区三区| 国产精品久久久久久久久久免费看| 51精品秘密在线观看| 日韩欧美国产不卡| 国产午夜精品在线观看| 一区二区欧美国产| 国产精品素人视频| www国产亚洲精品久久麻豆| 国产三级一区二区| 亚洲午夜电影在线观看| 激情深爱一区二区| 亚洲成人动漫精品| 亚洲一级二级三级| 蜜芽一区二区三区| 久久精品99国产国产精| 午夜欧美大尺度福利影院在线看| 久久99久久久久| 日韩精品亚洲一区二区三区免费| 一区二区三区在线视频观看58| 手机精品视频在线观看| 国产999精品久久| 国产伦精品一区二区三区免费迷| 91香蕉视频在线| 不卡视频在线观看| 欧美一区二区三区精品| 欧美一二三在线| 日韩精品一区二区在线观看| 亚洲欧洲性图库| 黄色小说综合网站| 在线观看av一区| 欧美挠脚心视频网站| 亚洲欧洲三级电影| 国内精品嫩模私拍在线| 欧美专区日韩专区| 国产精品久久久久久户外露出| 日韩av电影天堂| 色哟哟亚洲精品| 国产精品久久久久一区二区三区| 精品一区二区日韩| 欧美日韩国产另类不卡| 一区二区三区在线观看国产| 国产精品资源站在线| 成人高清免费观看| 久久综合久久综合亚洲| 免费观看在线综合色| 在线亚洲精品福利网址导航| 国产精品久久久久久久第一福利 | 欧美成人在线直播| 精品免费99久久| 午夜影院久久久| 日本精品视频一区二区| 亚洲美女区一区| 91免费版在线| 亚洲激情图片qvod| 日韩av成人高清| 制服丝袜av成人在线看| 国产成人啪免费观看软件| 国产aⅴ精品一区二区三区色成熟| 欧美裸体一区二区三区| 久久精品一区二区三区四区| 九九热在线视频观看这里只有精品| 91精品国产黑色紧身裤美女| 日韩在线卡一卡二| 精品欧美一区二区在线观看| 青娱乐精品在线视频| 日韩免费电影一区| 国产一区二区日韩精品| 国产欧美综合在线观看第十页| 亚洲猫色日本管| 欧美亚洲自拍偷拍| 久久久久9999亚洲精品| 无码av免费一区二区三区试看| 欧美日韩国产综合一区二区 | 日韩午夜激情电影| 久久精品国产**网站演员| 久久综合五月天婷婷伊人| 国产91丝袜在线播放| 国产精品乱码久久久久久| 日本电影亚洲天堂一区| 日韩国产欧美在线播放| 久久精品一区八戒影视| 色婷婷av一区二区| 日本午夜一本久久久综合| 久久婷婷色综合| aaa亚洲精品| 久久久国产精品不卡| 91亚洲资源网| 天天影视网天天综合色在线播放| 精品久久久三级丝袜| voyeur盗摄精品| 香蕉影视欧美成人| 久久午夜国产精品| 欧日韩精品视频| 国产综合久久久久久鬼色| 综合av第一页| 精品国产亚洲一区二区三区在线观看| 亚洲综合久久久| 久久综合久久综合亚洲| 欧美日韩一区二区三区在线看| 久久超碰97中文字幕| 亚洲精品免费在线播放| 18涩涩午夜精品.www| 日韩三级免费观看| 欧洲亚洲精品在线| 粉嫩aⅴ一区二区三区四区五区| 亚洲一二三四区不卡| 欧美高清一级片在线观看| 国产福利精品导航| 五月天一区二区| 亚洲色图视频网| 久久久亚洲欧洲日产国码αv| 欧美三级电影网| aaa欧美大片| 国产成人av一区二区三区在线| 午夜精品久久久久久久99樱桃| 中文字幕在线不卡视频| 国产亚洲短视频| 精品卡一卡二卡三卡四在线| 欧美日韩中文字幕一区| 97久久超碰精品国产| 亚洲一区免费视频| 国产精品精品国产色婷婷| 欧美精品一区二区在线播放| 欧美精品1区2区| 欧美日韩精品一区二区三区蜜桃| 色综合天天综合| 舔着乳尖日韩一区| 亚洲一二三区视频在线观看| 亚洲免费资源在线播放| 国产精品福利一区二区| 国产精品美女久久福利网站| 中文字幕不卡在线| 国产欧美日韩在线看| 亚洲国产激情av| 国产精品美日韩| 国产精品传媒视频| **欧美大码日韩| 亚洲精品国产精品乱码不99| 亚洲欧洲日本在线| 亚洲三级电影网站| 一区二区高清视频在线观看| 午夜视频一区在线观看| 午夜电影网亚洲视频| 青娱乐精品在线视频| 久久er精品视频| 国产成人av福利| 99vv1com这只有精品| 在线一区二区三区| 欧美日韩国产免费一区二区| 欧美电影免费观看高清完整版在线 | 亚洲欧美色图小说| 一区二区三区精品视频在线| 亚洲午夜激情av| 久久av资源站| av在线一区二区| 在线观看亚洲精品| 日韩欧美中文一区二区| 国产亚洲午夜高清国产拍精品| 国产精品美女久久久久久久网站| 亚洲免费在线观看| 日韩二区三区四区| 国产精品18久久久久久久久久久久 | 久久精品国产精品亚洲综合| 国产精品主播直播| 色婷婷av一区二区三区软件| 日韩欧美在线1卡| 中文字幕欧美日韩一区| 亚洲一二三区在线观看| 精品一区二区三区在线观看| 成人av高清在线| 欧美亚洲禁片免费| 久久精品夜夜夜夜久久| 亚洲一区二区三区视频在线| 国产在线视频一区二区三区| 在线一区二区视频| 国产农村妇女毛片精品久久麻豆| 亚洲成av人在线观看| 成人av网站大全| 精品欧美乱码久久久久久1区2区| 亚洲乱码中文字幕综合|