进入笔记本电脑的主板BIOS后怎么查看BIOS的序列号

进入笔记本电脑的主板BIOS后怎么查看BIOS的序列号,第1张

1、在系统加电后,屏幕上会有提示,请仔细查阅。如果太快,请按“PAUSE/BREAK”键暂停。

2、详细查阅宠基笔记本使用说明书,内一定有,或是看它的PDF文件也有介绍。

3、进入BIOS后,一般查看第一个应用选项。

在我们的日常办公中,我们有时候会遇到需要查看bios信息的问题,有些用户不知道怎么做,该如何解决查看bios信息这个难题呢下面是我收集的关于查看bios信息的步骤,希望对你有所帮助。

查看bios信息的步骤

进入bios我们首先能够看到的就是我们的bios基本信息,那么我们可以看到我们bios的哪些信息呢

BIOS Vendor:就是本BIOS的生产商,American Megatrends

Version:BIOS的版本信息。我的bios版本是209的,当然如果我们需要刷新bios那么他是非常关键的。我们要根据版本进行选择。

VBIOS Version:SNB集显显卡的版本信息

EC Version:嵌入式控制器(Embed Controller)版本信息

可能需要ddk,否则有些结构可能没有,可以回帖我补上

#include <stdioh>

#include <conioh>

#include <tcharh>

#include <RegStrh>

#include <winioctlh>

#include <ntddndish>

//结构定义

typedef struct _UNICODE_STRING

{

USHORT Length;

USHORT MaximumLength;

PWSTR Buffer;

} UNICODE_STRING,PUNICODE_STRING;

typedef struct _OBJECT_ATTRIBUTES

{

ULONG Length; // 长度 18h

HANDLE RootDirectory; // 00000000

PUNICODE_STRING ObjectName; // 指向对象名的指针

ULONG Attributes; // 对象属性00000040h

PVOID SecurityDescriptor;

PVOID SecurityQualityOfService;

} OBJECT_ATTRIBUTES;

typedef OBJECT_ATTRIBUTES POBJECT_ATTRIBUTES;

typedef DWORD (__stdcall ZWOS )( PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);

typedef DWORD (__stdcall ZWMV )( HANDLE,HANDLE,PVOID,ULONG,ULONG,PLARGE_INTEGER,PSIZE_T,DWORD,ULONG,ULONG);

typedef DWORD (__stdcall ZWUMV )( HANDLE,PVOID);

/====================================================================

函数 : FindAwardBios

功能 : 获取Award 系列的Bios序列号

输入 : TSystemInfo& tSystemInfo [OUT]

输出 : TSystemInfo

返回 : FALSE 表示获取失败

======================================================================/

UINT FindAwardBios( BYTE ppBiosAddr )

{

BYTE pBiosAddr = ppBiosAddr + 0xEC71;

BYTE szBiosData[128];

::CopyMemory( szBiosData, pBiosAddr, 127 );

szBiosData[127] = 0;

int iLen = lstrlen( ( char )szBiosData );

if( iLen > 0 && iLen < 128 )

{

//AWard: 07/08/2002-i845G-ITE8712-JF69VD0CC-00

//Phoenix-Award: 03/12/2002-sis645-p4s333

if( szBiosData[2] == '/' && szBiosData[5] == '/' )

{

BYTE p = szBiosData;

while( p )

{

if( p < ' ' || p >= 127 )

{

break;

}

++ p;

}

if( p == 0 )

{

ppBiosAddr = pBiosAddr;

return ( UINT )iLen;

}

}

}

return 0;

}

/====================================================================

函数 : FindAmiBios

功能 : 获取Ami 系列的Bios序列号

输入 : TSystemInfo& tSystemInfo [OUT]

输出 : TSystemInfo

返回 : FALSE 表示获取失败

======================================================================/

UINT FindAmiBios( BYTE ppBiosAddr )

{

BYTE pBiosAddr = ppBiosAddr + 0xF478;

BYTE szBiosData[128];

::CopyMemory( szBiosData, pBiosAddr, 127 );

szBiosData[127] = 0;

int iLen = lstrlen( ( char )szBiosData );

if( iLen > 0 && iLen < 128 )

{

// Example: "AMI: 51-2300-000000-00101111-030199-"

if( szBiosData[2] == '-' && szBiosData[7] == '-' )

{

BYTE p = szBiosData;

while( p )

{

if( p < ' ' || p >= 127 )

{

break;

}

++ p;

}

if( p == 0 )

{

ppBiosAddr = pBiosAddr;

return ( UINT )iLen;

}

}

}

return 0;

}

/====================================================================

函数 : FindPhoenixBios

功能 : 获取Phoenix 系列的Bios序列号

输入 : TSystemInfo& tSystemInfo [OUT]

输出 : TSystemInfo

返回 : FALSE 表示获取失败

======================================================================/

UINT FindPhoenixBios( BYTE ppBiosAddr )

{

UINT uOffset[3] = { 0x6577, 0x7196, 0x7550 };

for( UINT i = 0; i < 3; ++ i )

{

BYTE pBiosAddr = ppBiosAddr + uOffset[i];

BYTE szBiosData[128];

::CopyMemory( szBiosData, pBiosAddr, 127 );

szBiosData[127] = 0;

int iLen = lstrlen( ( char )szBiosData );

if( iLen > 0 && iLen < 128 )

{

// Example: Phoenix "NITELT086B0044P119910111055"

if ( szBiosData[7] == '' && szBiosData[11] == '' )

{

BYTE p = szBiosData;

while( p )

{

if( p < ' ' || p >= 127 )

{

break;

}

++ p;

}

if( p == 0 )

{

ppBiosAddr = pBiosAddr;

return ( UINT )iLen;

}

}

}

}

return 0;

}

/====================================================================

函数 : GetBiosSerialNum

功能 : 获取Bios序列号

输入 : TSystemInfo& tSystemInfo [OUT]

输出 : TSystemInfo

返回 : FALSE 表示获取失败

======================================================================/

BOOL GetBiosSerialNum(TSystemInfo& tSystemInfo)

{

SIZE_T ssize;

LARGE_INTEGER so;

soLowPart=0x000f0000;

soHighPart=0x00000000;

ssize=0xffff;

wchar_t strPH[30]= L"\\device\\physicalmemory";

DWORD ba=0;

UNICODE_STRING struniph;

struniphBuffer=strPH;

struniphLength=0x2c;

struniphMaximumLength =0x2e;

OBJECT_ATTRIBUTES obj_ar;

obj_arAttributes =64;

obj_arLength =24;

obj_arObjectName=&struniph;

obj_arRootDirectory=0;

obj_arSecurityDescriptor=0;

obj_arSecurityQualityOfService =0;

HMODULE hinstLib = LoadLibrary("ntdlldll");

ZWOS ZWopenS=(ZWOS)GetProcAddress(hinstLib,"ZwOpenSection");

ZWMV ZWmapV=(ZWMV)GetProcAddress(hinstLib,"ZwMapViewOfSection");

ZWUMV ZWunmapV=(ZWUMV)GetProcAddress(hinstLib,"ZwUnmapViewOfSection");

//调用函数,对物理内存进行映射

HANDLE hSection;

if( 0 == ZWopenS(&hSection,4,&obj_ar) &&

0 == ZWmapV(

( HANDLE )hSection, //打开Section时得到的句柄

( HANDLE )0xFFFFFFFF, //将要映射进程的句柄,

&ba, //映射的基址

0,

0xFFFF, //分配的大小

&so, //物理内存的地址

&ssize, //指向读取内存块大小的指针

1, //子进程的可继承性设定

0, //分配类型

2 //保护类型

)

)

//执行后会在当前进程的空间开辟一段64k的空间,并把f000:0000到f000:ffff处的内容映射到这里

//映射的基址由ba返回,如果映射不再有用,应该用ZwUnmapViewOfSection断开映射

{

BYTE pBiosSerial = ( BYTE )ba;

UINT uBiosSerialLen = FindAwardBios( &pBiosSerial );

if( uBiosSerialLen == 0U )

{

uBiosSerialLen = FindAmiBios( &pBiosSerial );

if( uBiosSerialLen == 0U )

{

uBiosSerialLen = FindPhoenixBios( &pBiosSerial );

}

}

if( uBiosSerialLen != 0U )

{

tSystemInfoAppend((u8)"BIOS=", 5);

::CopyMemory( tSystemInfoszInfo+5, pBiosSerial, uBiosSerialLen );

tSystemInfodwRealSize = uBiosSerialLen+5;

}

else

{

printf("BIOS: not support!\n");

return FALSE;

}

ZWunmapV( ( HANDLE )0xFFFFFFFF, ( void )ba );

printf("BIOS: %s\n", (s8)tSystemInfoszInfo);

return TRUE;

}

printf("BIOS: not supported!\n");

return FALSE;

}

以上就是关于进入笔记本电脑的主板BIOS后怎么查看BIOS的序列号全部的内容,包括:进入笔记本电脑的主板BIOS后怎么查看BIOS的序列号、怎么查看bios信息、如何用VC++读取BIOS的版本号等信息。奖励100分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10080313.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存