bool ProcSysInfo(void* p) { PSystemInfo pSystem = (PSystemInfo)p; const char *str = toPointString(p); _tprintf(TEXT("%s\n"), getHeaderString(1)); _tprintf(TEXT("Manufacturer: %s\n"), LocateString(str, pSystem->Manufacturer)); _tprintf(TEXT("Product Name: %s\n"), LocateString(str, pSystem->ProductName)); _tprintf(TEXT("Version: %s\n"), LocateString(str, pSystem->Version)); _tprintf(TEXT("Serial Number: %s\n"), LocateString(str, pSystem->SN)); // for v2.1 and later if (pSystem->Header.Length > 0x08) { _tprintf(TEXT("UUID: %02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X\n"), pSystem->UUID[0], pSystem->UUID[1], pSystem->UUID[2], pSystem->UUID[3], pSystem->UUID[4], pSystem->UUID[5], pSystem->UUID[6], pSystem->UUID[7], pSystem->UUID[8], pSystem->UUID[9], pSystem->UUID[10], pSystem->UUID[11], pSystem->UUID[12], pSystem->UUID[13], pSystem->UUID[14], pSystem->UUID[15]); } if (pSystem->Header.Length > 0x19) { // fileds for spec. 2.4 _tprintf(TEXT("SKU Number: %s\n"), LocateString(str, pSystem->SKUNumber)); _tprintf(TEXT("Family: %s\n"), LocateString(str, pSystem->Family)); } return true; }
bool DispatchStructType(PSMBIOSHEADER hdr) { typedef struct { BYTE t; bool(*Proc)(void* p); } TPFUNC; const TPFUNC tpfunc[] = { { 0, ProcBIOSInfo }, { 1, ProcSysInfo }, { 2, ProcBoardInfo }, { 3, ProcSystemEnclosure }, { 4, ProcProcessorInfo }, { 6, ProcMemModuleInfo }, { 7, ProcCacheInfo }, { 11, ProcOEMString }, { 17, ProcMemoryDevice }, { 19, ProcMemoryArrayMappedAddress }, { 22, ProcPortableBattery }, }; for (UINT i = 0; i < sizeof(tpfunc) / sizeof(TPFUNC); i++) { if (tpfunc[i].t == hdr->Type) { _tprintf(TEXT("%s\n"), getHeaderString(cstrHEADER)); tpfunc[i].Proc((void*)hdr); return true; } } return false; }
bool ProcOEMString(void* p) { PSMBIOSHEADER pHdr = (PSMBIOSHEADER)p; const char *str = toPointString(p); _tprintf(TEXT("%s\n"), getHeaderString(11)); _tprintf(TEXT("OEM String: %s\n"), LocateString(str, *(((char*)p) + 4))); return true; }
bool ProcCacheInfo(void *p) { PCacheInfo pCache = (PCacheInfo)p; const char *str = toPointString(p); _tprintf(TEXT("%s\n"), getHeaderString(7)); _tprintf(TEXT("Length: 0x%X\n"), pCache->Header.Length); _tprintf(TEXT("Socket Designation: %s\n"), LocateString(str, pCache->SocketDesignation)); return true; }
bool ProcMemModuleInfo(void* p) { PMemModuleInfo pMemModule = (PMemModuleInfo)p; const char *str = toPointString(p); _tprintf(TEXT("%s\n"), getHeaderString(6)); _tprintf(TEXT("Length: 0x%X\n"), pMemModule->Header.Length); _tprintf(TEXT("Socket Designation: %s\n"), LocateString(str, pMemModule->SocketDesignation)); _tprintf(TEXT("Current Speed: %dns\n"), pMemModule->CurrentSpeed); return true; }
String Request::getHeaderString(const StringRef& header, DWORD size) { String txt = header; if (HttpQueryInfo(_hRequest , HTTP_QUERY_CUSTOM , txt.useBuffer<char>(size) , &size , 0)) { txt.releaseBuffer<char>(size); return txt; } else { if (GetLastError()==ERROR_INSUFFICIENT_BUFFER) { return getHeaderString(header, size + 1); } else { return ""; } } }
bool ProcMemoryArrayMappedAddress(void* p) { PMemoryArrayMappedAddress pMAMA = (PMemoryArrayMappedAddress)p; const char *str = toPointString(p); _tprintf(TEXT("%s\n"), getHeaderString(19)); _tprintf(TEXT("Length: 0x%X\n"), pMAMA->Header.Length); _tprintf(TEXT("Starting Address: 0x%08X\n"), pMAMA->Starting); _tprintf(TEXT("Ending Address: 0x%08X\n"), pMAMA->Ending); _tprintf(TEXT("Memory Array Handle: 0x%X\n"), pMAMA->Handle); _tprintf(TEXT("Partition Width: 0x%X\n"), pMAMA->PartitionWidth); return true; }
bool ProcSystemEnclosure(void* p) { PSystemEnclosure pSysEnclosure = (PSystemEnclosure)p; const char *str = toPointString(p); _tprintf(TEXT("%s\n"), getHeaderString(3)); _tprintf(TEXT("Length: 0x%X\n"), pSysEnclosure->Header.Length); _tprintf(TEXT("Manufacturer: %s\n"), LocateString(str, pSysEnclosure->Manufacturer)); _tprintf(TEXT("Version: %s\n"), LocateString(str, pSysEnclosure->Version)); _tprintf(TEXT("Serial Number: %s\n"), LocateString(str, pSysEnclosure->SN)); _tprintf(TEXT("Asset Tag Number: %s\n"), LocateString(str, pSysEnclosure->AssetTag)); return true; }
bool ProcProcessorInfo(void* p) { PProcessorInfo pProcessor = (PProcessorInfo)p; const char *str = toPointString(p); _tprintf(TEXT("%s\n"), getHeaderString(4)); _tprintf(TEXT("Length: 0x%X\n"), pProcessor->Header.Length); _tprintf(TEXT("Socket Designation: %s\n"), LocateString(str, pProcessor->SocketDesignation)); _tprintf(TEXT("Processor Manufacturer: %s\n"), LocateString(str, pProcessor->Manufacturer)); _tprintf(TEXT("Processor Version: %s\n"), LocateString(str, pProcessor->Version)); _tprintf(TEXT("External Clock: %dMHz, 0MHz is unknown clock\n"), pProcessor->ExtClock); _tprintf(TEXT("Max Speed: %dMHz\n"), pProcessor->MaxSpeed); _tprintf(TEXT("Current Speed: %dMHz\n"), pProcessor->CurrentSpeed); return true; }
bool ProcBIOSInfo(void* p) { PBIOSInfo pBIOS = (PBIOSInfo)p; const char *str = toPointString(p); _tprintf(TEXT("%s\n"), getHeaderString(0)); _tprintf(TEXT("Vendor: %s\n"), LocateString(str, pBIOS->Vendor)); _tprintf(TEXT("Version: %s\n"), LocateString(str, pBIOS->Version)); _tprintf(TEXT("BIOS Starting Segment: 0x%X\n"), pBIOS->StartingAddrSeg); _tprintf(TEXT("Release Date: %s\n"), LocateString(str, pBIOS->ReleaseDate)); _tprintf(TEXT("Image Size: %dK\n"), (pBIOS->ROMSize + 1) * 64); if (pBIOS->Header.Length > 0x14) { // for spec v2.4 and later _tprintf(TEXT("System BIOS version: %d.%d\n"), pBIOS->MajorRelease, pBIOS->MinorRelease); _tprintf(TEXT("EC Firmware version: %d.%d\n"), pBIOS->ECFirmwareMajor, pBIOS->ECFirmwareMinor); } return true; }
bool ProcBoardInfo(void* p) { PBoardInfo pBoard = (PBoardInfo)p; const char *str = toPointString(p); _tprintf(TEXT("%s\n"), getHeaderString(2)); _tprintf(TEXT("Length: 0x%X\n"), pBoard->Header.Length); _tprintf(TEXT("Manufacturer: %s\n"), LocateString(str, pBoard->Manufacturer)); _tprintf(TEXT("Product Name: %s\n"), LocateString(str, pBoard->Product)); _tprintf(TEXT("Version: %s\n"), LocateString(str, pBoard->Version)); _tprintf(TEXT("Serial Number: %s\n"), LocateString(str, pBoard->SN)); _tprintf(TEXT("Asset Tag Number: %s\n"), LocateString(str, pBoard->AssetTag)); if (pBoard->Header.Length > 0x08) { _tprintf(TEXT("Location in Chassis: %s\n"), LocateString(str, pBoard->LocationInChassis)); } return true; }
bool ProcMemoryDevice(void* p) { PMemoryDevice pMD = (PMemoryDevice)p; const char *str = toPointString(p); _tprintf(TEXT("%s\n"), getHeaderString(17)); _tprintf(TEXT("Length: 0x%X\n"), pMD->Header.Length); _tprintf(TEXT("Total Width: %dbits\n"), pMD->TotalWidth); _tprintf(TEXT("Data Width: %dbits\n"), pMD->DataWidth); _tprintf(TEXT("Device Locator: %s\n"), LocateString(str, pMD->DeviceLocator)); _tprintf(TEXT("Bank Locator: %s\n"), LocateString(str, pMD->BankLocator)); if (pMD->Header.Length > 0x15) { _tprintf(TEXT("Speed: %d\n"), pMD->Speed); _tprintf(TEXT("Manufacturer: %s\n"), LocateString(str,pMD->Manufacturer)); _tprintf(TEXT("Serial Number: %s\n"), LocateString(str, pMD->SN)); _tprintf(TEXT("Asset Tag Number: %s\n"), LocateString(str, pMD->AssetTag)); _tprintf(TEXT("Part Number: %s\n"), LocateString(str, pMD->PN)); } return true; }
string AdcCommand::toString(uint32_t sid /* = 0 */, bool nmdc /* = false */) const { return getHeaderString(sid, nmdc) + getParamString(nmdc); }
string AdcCommand::toString(const CID& aCID) const { return getHeaderString(aCID) + getParamString(false); }
string AdcCommand::toString() const { return getHeaderString() + getParamString(false); }