社区
硬件/系统
帖子详情
如何取主板的bios的ID?在线等!!
li_zhifu
2003-01-08 10:28:29
加精
如题
...全文
111
3
打赏
收藏
如何取主板的bios的ID?在线等!!
如题
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
li_zhifu
2003-01-08
打赏
举报
回复
行了,非常感谢!
li_zhifu
2003-01-08
打赏
举报
回复
谢谢,试试先
shb80
2003-01-08
打赏
举报
回复
DWORD CComputerInfo::GetMainboardBIOSIdentification(LPSTR lpbuf,BYTE *buflen)
{
DWORD retvalue=RET_BIOS_FAILED_CHECK;
DWORD Add=0;
HANDLE physmem;
DWORD dwPlatformId=dllGetPlatformId();
if(m_bBIOSCheckSuccess){
retvalue=(DWORD)strlen(m_pBIOSData);
goto RETURN_DATA;
}
if(dwPlatformId==VER_PLATFORM_WIN32_NT){//NT/2k
UNICODE_STRING physmemString;
OBJECT_ATTRIBUTES attributes;
WCHAR physmemName[] = L"\\Device\\PhysicalMemory";
NTSTATUS ntStatus;
HMODULE hNTDLL=::GetModuleHandle(TEXT("NTDLL.DLL"));//ntdll.dll must be loaded,it is OK.
ZwOpenSection=(TZwOpenSection)GetProcAddress(hNTDLL,"ZwOpenSection");
ZwMapViewOfSection=(TZwMapViewOfSection)GetProcAddress(hNTDLL,"ZwMapViewOfSection");
ZwUnmapViewOfSection=(TZwUnmapViewOfSection)GetProcAddress(hNTDLL,"ZwUnmapViewOfSection");
RtlInitUnicodeString=(TRtlInitUnicodeString)GetProcAddress(hNTDLL,"RtlInitUnicodeString");
RtlInitUnicodeString( &physmemString, physmemName );
InitializeObjectAttributes( &attributes,
&physmemString,
OBJ_CASE_INSENSITIVE,
NULL,
NULL
);
ntStatus = ZwOpenSection( &physmem,
SECTION_MAP_READ,
&attributes
);
if( !NT_SUCCESS( ntStatus ))
return retvalue;
DWORD PAdd = 0xF0000;
DWORD LPAdd = 0xFFFF;
if(!biosMapView(physmem,&PAdd,&LPAdd,&Add))
return retvalue;
}
if(!((retvalue=biosCheckAward(Add)) > 0 || \
(retvalue=biosCheckPhoenix(Add)) > 0 || \
(retvalue=biosCheckAMI(Add)) > 0)){//No supported
m_bBIOSCheckSuccess=_BIOS_CHECK_UNKNOWN;
if(dwPlatformId==VER_PLATFORM_WIN32_NT)
ZwUnmapViewOfSection((HANDLE)-1,(PVOID)Add);
return RET_BIOS_UNKNOWN;
}
if(dwPlatformId==VER_PLATFORM_WIN32_NT)
ZwUnmapViewOfSection((HANDLE)-1,(PVOID)Add);
m_bBIOSCheckSuccess=_BIOS_CHECK_SUCCESS;
RETURN_DATA:
if(lpbuf!=NULL){
if(*buflen > retvalue){
__try{
strcpy(lpbuf,m_pBIOSData);
}
__except(1)
{
retvalue=RET_BIOS_INALID_BUFFER;
}
}
else
{
*buflen=(BYTE)(retvalue+1);
retvalue=RET_BIOS_INSUFFICIENT_LEN;
}
}
return retvalue;
}
BYTE CComputerInfo::biosCheckAward(DWORD Add)
{
size_t nlen;
if(dllGetPlatformId()==VER_PLATFORM_WIN32_NT)//NT/2k
Add+=0xEC71;
else
Add=0xFEC71;
//Validate
memcpy(m_pBIOSData,(LPBYTE)Add,MAX_BIOS_IDENTIFICATION);
m_pBIOSData[MAX_BIOS_IDENTIFICATION+1]='\0';
if((nlen=strlen(m_pBIOSData)) < MAX_BIOS_IDENTIFICATION && nlen > 0){
//Example
//AWard:07/08/2002-i845G-ITE8712-JF69VD0CC-00
// 10/10/98-xxx……
//Phoenix-Award:03/12/2002-sis645-p4s333
if(m_pBIOSData[2]=='/' && m_pBIOSData[5]=='/'){
CHAR *p=m_pBIOSData;
while(*p){
if(*p < 0x20 || *p > 0x71)
goto NOT_AWARD;
p++;
}
return (BYTE)nlen;
}
}
NOT_AWARD:
return 0;
}
BYTE CComputerInfo::biosCheckPhoenix(DWORD Add)
{
size_t nlen;
if(dllGetPlatformId()==VER_PLATFORM_WIN32_NT)//NT/2k
Add+=0x6577;
else
Add=0xF6577;
//Validate
memcpy(m_pBIOSData,(LPBYTE)Add,MAX_BIOS_IDENTIFICATION);
m_pBIOSData[MAX_BIOS_IDENTIFICATION+1]='\0';
if((nlen=strlen(m_pBIOSData)) < MAX_BIOS_IDENTIFICATION && nlen > 0){
//Example
//Phoenix:NITELT0.86B.0044.P11.9910111055
if(m_pBIOSData[7]=='.' && m_pBIOSData[11]=='.'){
CHAR *p=m_pBIOSData;
while(*p){
if(*p < 0x20 || *p > 0x71)
goto NOT_PHOENIX;
p++;
}
return (BYTE)nlen;
}
}
NOT_PHOENIX:
return 0;
}
BYTE CComputerInfo::biosCheckAMI(DWORD Add)
{
size_t nlen;
if(dllGetPlatformId()==VER_PLATFORM_WIN32_NT)//NT/2k
Add+=0xF478;
else
Add=0xFF478;
//Validate
memcpy(m_pBIOSData,(LPBYTE)Add,MAX_BIOS_IDENTIFICATION);
m_pBIOSData[MAX_BIOS_IDENTIFICATION+1]='\0';
if((nlen=strlen(m_pBIOSData)) < MAX_BIOS_IDENTIFICATION && nlen > 0){
//Example
//AMI:51-2300-000000-00101111-030199-
if(m_pBIOSData[2]=='-' && m_pBIOSData[7]=='-'){
CHAR *p=m_pBIOSData;
while(*p){
if(*p < 0x20 || *p > 0x71)
goto NOT_AMI;
p++;
}
return (BYTE)nlen;
}
}
NOT_AMI:
return 0;
}
BOOL CComputerInfo::biosMapView( HANDLE hPMemory,DWORD *dwPAddress,DWORD *dwLength,DWORD *dwVAddress)
{
NTSTATUS Status;
PHYSICAL_ADDRESS ViewBaseAddress;
*dwVAddress = 0;
ViewBaseAddress.QuadPart = (ULONGLONG) (*dwPAddress);
Status = ZwMapViewOfSection ( hPMemory,
(HANDLE) -1,
(PVOID*)dwVAddress,
0,
*dwLength,
&ViewBaseAddress,
dwLength,
ViewShare,
0,
PAGE_READONLY
);
return NT_SUCCESS( Status);
}
VC++获
取
网卡MAC、硬盘序列号、CPU
ID
、
BIOS
编号
《VC++获
取
网卡MAC、硬盘序列号、CPU
ID
、
BIOS
编号》是一篇word文档,其中包含了vc代码,感兴趣的读者可以自己下载测试这些代码!
获
取
硬盘、
主板
、CPU、网卡MAC地址等硬件序列号信息的c++/vc6.0GetHDSerial源码
VC6.0/C++可以提
取
硬盘、
主板
、CPU、网卡MAC地址等硬件序列号,包含了CPP和.h等源代码文件及lib库
技嘉
主板
bios
设置方法
许多客户的电脑主播使用技嘉
主板
的电脑
主板
,一些消费者需要设置
BIOS
,但是不知道怎么操作,有的甚至没听说过
BIOS
这是什么?许多客户的电脑主播使用技嘉
主板
的电脑
主板
,一些消费者需要设置
BIOS
,但是不知道怎么操作,有的甚至没听说过
BIOS
这是什么?6.最后,一定要设置每变化的设置F10进行存储,此时会弹出一个存储并撤出确认的对话框,大家可以按回车键。6.最后,一定要设置每变化的设置F10进行存储,此时会弹出一个存储并撤出确认的对话框,大家可以按回车键。品牌型号:华硕天选2。品牌型号:华硕天选2。
服务器
主板
BIOS
位置,服务器
主板
bios
设置
服务器
主板
bios
设置 内容精选换一换切换操作系统是为您的云服务器重新切换一个系统盘。切换完成后云服务器的系统盘
ID
会发生改变,并删除原有系统盘。如果云服务器当前使用的操作系统不能满足业务需求(如软件要求的操作系统版本较高),您可以选择切换云服务器的操作系统。使用市场镜像创建的“包年/包月”云服务器不支持切换操作系统。使用私有镜像切换操作时,仅支持使用系统盘镜像或整机镜像。云华为云帮助中心,为用户...
透过
BIOS
的
ID
序列号查询
主板
厂商
我听说根据开机后屏幕上显示的
BIOS
的
ID
序列号可以识别
主板
生产厂商的信息,我的
主板
采用的是Award的
BIOS
,可我找到后仍然不知道这块板子的生产厂商,您能不能将该编号所对应的厂商名称挑主要的介绍一下?[@more@]答:...
硬件/系统
2,643
社区成员
17,232
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章