TC 2.0源文件:获得IDE硬盘C的序列号

/* 获得IDE硬盘C的序列号 */

/* Hard Disk Serial Number */

# include <stdio.h>

# include <stdlib.h>

# include <dos.h>

# include <conio.h>

# include <string.h>

char *getascii (unsigned int in_data [],int off_start,int off_end);

void main(void)

{

unsigned int dd[256];

/* 磁盘数据 */

unsigned int dd_off;

/* 磁盘数据偏移地址 */

while(inp(0x1F7)!=0x50)

/* 等待控制 */

outp(0x1F6,0xA0);

/* 得到磁盘信息 */

outp(0x1F7,0xEC);

/* 得到磁盘数据信息 */

while(inp(0x1F7)!=0x58)

/* 等待数据 */

for(dd_off=0;dd_off!=256;dd_off++)

/* 读磁盘扇区 */

dd [dd_off]=inpw(0x1F0);

printf("The Serial Number Hard Disk [C] is %s",getascii(dd,10,19));

}

char *getascii (unsigned int in_data [],int off_start,int off_end)

{

static char ret_val [255];

int loop,loop1;

for(loop=off_start,loop1=0;loop<=off_end;loop++)

{

ret_val[loop1++]=(char)(in_data[loop]/256);

/* 得到高位地址字节 */

ret_val[loop1++]=(char)(in_data[loop]%256);

/* 得到低位地址字节 */

}

ret_val[loop]='\0';

/* 确认以'0'结束 */

return(ret_val);

}

版权声明:

作者: freeclashnode

链接: https://www.freeclashnode.com/news/article-2113.htm

来源: FreeClashNode

文章版权归作者所有,未经允许请勿转载。

免费节点实时更新

热门文章

最新文章

归档