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分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)