491{
493 {
494 {
L"ASUSTeK",
L"ASUS" },
495 {
L"First International Computer",
L"FIC" },
496 {
L"Hewlett-Packard",
L"HP" },
497 {
L"MICRO-STAR",
L"MSI" },
498 {
L"SGI.COM",
L"SGI" },
499 {
L"Silicon Graphics International",
L"SGI" },
500 {
L"Intel(R) Client Systems",
L"Intel" },
501 {
L"InformationComputerSystems",
L"ICS" },
502 {
L"Bernecker + Rainer Industrie-Elektronik",
L"Bernecker & Rainer" },
503 {
L"CHUWI INNOVATION AND TECHNOLOGY",
L"CHUWI" },
504 {
L"CHUWI INNOVATION LIMITED",
L"CHUWI" },
505 {
L"CHUWI INNOVATION LIMITED",
L"CHUWI" },
506 {
L"http://www.abit.com.tw/",
L"ABIT" },
507 {
L"http:\\\\www.abit.com.tw",
L"ABIT" },
508 {
L"www.abit.com.tw",
L"ABIT" },
509 {
L"CASPER BILGISAYAR SISTEMLERI A.S",
L"Casper" },
510 {
L"Colorful Technology And Development",
L"Colorful" },
511 {
L"Colorful Yu Gong Technology And Development",
L"Colorful Yu Gong" },
512 {
L"HaierComputer",
L"Haier" },
513 {
L"Haier Information Technology (Shen Zhen)",
L"Haier" },
514 {
L"HASEECOMPUTERS",
L"Hasee" },
515 {
L"HELIOS BUSINESS COMPUTER",
L"HELIOS" },
516 {
L"Shanghai Zongzhi InfoTech",
L"Zongzhi" },
517 {
L"TSING HUA TONGFANG CO.,LTD",
L"TSINGHUA TONGFANG" },
518 {
L"Yeston Digital Technology Co.,LTD",
L"Yeston" },
519 };
521 {
522 {
L"Corporation",
FALSE },
523 {
L"Communication",
FALSE },
530 {
L"Microsystems",
FALSE },
531 {
L"Infosystems",
FALSE },
533 {
L"Electronics",
FALSE },
538 {
L"International",
FALSE },
539 {
L"Interantonal",
FALSE },
540 {
L"INTERANTIONAL",
FALSE },
543 {
L"Information",
FALSE },
544 {
L"Informatica",
FALSE },
547 {
L"Tecohnology",
FALSE },
548 {
L"Technologies",
FALSE },
574 };
579 BOOL bTrimProduct, bTrimFamily, bGenericName, bRemove;
582
584 if (!SMBiosBuf)
585 {
587 }
588
596
597 if (bTrimProduct)
598 {
600 {
602 bTrimProduct =
FALSE;
603 }
604 }
605
609
612 bGenericName)
613 {
615
617 {
618 if (bRemove)
619 {
620 *ven = 0;
621 }
623 bRemoveVen = bRemove;
624 }
626 {
627 if (bRemove)
628 {
630 }
632 }
633
635 {
639 bGenericVen)
640 {
642 }
644
646 {
647 *ven = 0;
648
649 if (bGenericVen && !bRemoveVen)
650 {
652 }
653 }
655 {
657
658 if (!bGenericDev)
659 {
661 }
662 }
665 {
667
669 {
671 }
672 }
675 {
677
679 {
681 }
682 }
683 }
685 {
687
689 {
691 }
692 }
693
695 {
696
698 }
699 }
700 else
701 {
703 {
705
707 {
708 *ven = 0;
709 }
710 }
711 }
712
713
715 {
718 {
720 }
721 }
722
723
725 {
727 {
728
732 }
734 }
735
736
738 {
739 wcsrep(ven, RedundantWords[
i].pwStr,
L"", RedundantWords[
i].bReplaceFirstWord);
740 }
742 {
745 wcsrep(ven, pBuf,
L"", RedundantWords[
i].bReplaceFirstWord);
746 }
747
748
750 {
752
754 {
756 {
758 }
762 {
765 }
766 else
767 {
770 }
771 }
772
775 strcmp(tmpstr,
"LENOVO") &&
787 {
789 }
790
792 {
793
795 }
796
798 {
800 }
801 }
806 {
808 }
809
810
812 {
818 {
820 }
821 }
822
823
825 {
827 {
830 }
831 }
832
833
838 {
840 }
843 {
845 }
846
847
850
855 {
856
858 }
859 else
860 {
862 {
863
866 {
869 }
870 }
874 {
876 }
878 }
879
881
882 return (
wcslen(pBuf) > 0);
883}
PWSTR LongNames[LONG_NAMES_COUNT]
int strcmp(const char *String1, const char *String2)
char * strstr(char *String1, char *String2)
ACPI_SIZE strlen(const char *String)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
static BOOL TrimNonPrintableProd(PCHAR DmiString)
static VOID wcsrep(_Inout_ PWSTR pwStr, _In_ PCWSTR pwFind, _In_ PCWSTR pwReplace, _In_ BOOL bReplaceFirstWord)
static wchar_t * wcsistr(const wchar_t *s, const wchar_t *b)
static void AppendSystemFamily(PWSTR pBuf, SIZE_T cchBuf, PCHAR *DmiStrings, PWSTR dev)
static BOOL TrimNonPrintable(PCHAR DmiString)
static VOID TrimPunctuation(_Inout_ PWSTR pStr)
static BOOL IsDigitStrA(PCHAR DmiString)
static BOOL IsGenericSystemName(PCWSTR ven, PCWSTR dev, BOOL *bRemove)
#define stricmp(_String1, _String2)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_Check_return_ _CRTIMP int __cdecl wcsncmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
_CRTIMP char *__cdecl _strupr(_Inout_z_ char *_String)
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszSrc)
SIZE_T GetSMBiosStringW(_In_ PCSTR DmiString, _Out_ PWSTR pBuf, _In_ DWORD cchBuf, _In_ BOOL bTrim)
PVOID LoadSMBiosData(_Inout_updates_(ID_STRINGS_MAX) PCHAR *Strings)
VOID FreeSMBiosData(_In_ PVOID Buffer)