windows-nt/Source/XPSP1/NT/enduser/windows.com/inc/smbios.h
2020-09-26 16:20:57 +08:00

84 lines
1.8 KiB
C

/*** smbios.h - SMBIOS spec
*
* Copyright (c) 1998-1999 Microsoft Corporation. All Rights Reserved.
*
* Author: Yan Leshinsky (YanL)
* Created 10/04/98
*
* MODIFICATION HISTORY
*/
#ifndef _SMBIOS_H
#define _SMBIOS_H
#include <pshpack1.h>
#define SMBIOS_SEARCH_RANGE_BEGIN 0xF0000 // physical address where we begin searching for the RSDP
#define SMBIOS_SEARCH_RANGE_END 0xFFFFF
#define SMBIOS_SEARCH_RANGE_LENGTH ((ULONG)(SMBIOS_SEARCH_RANGE_END-SMBIOS_SEARCH_RANGE_BEGIN+1))
#define SMBIOS_SEARCH_INTERVAL 16 // search on 16 byte boundaries
#define PNP_SIGNATURE 0x506E5024 // "$PnP"
#define SM_SIGNATURE 0x5F4D535F // "_SM_"
#define SMBIOS_BIOS_INFO_TABLE 0
#define SMBIOS_SYSTEM_INFO_TABLE 1
typedef struct _PNPBIOSINIT
{
DWORD dwSignature;
BYTE bRevision;
BYTE bLength;
WORD wControl;
BYTE bChecksum;
DWORD dwEventNotify;
WORD wRealOffset;
WORD wRealSegment;
WORD wProtectedOffset;
DWORD dwProtectedSegment;
DWORD dwOEMID;
WORD wRealDataSegment;
DWORD dwProtectedDataSegment;
} PNPBIOSINIT, * PPNPBIOSINIT;
typedef struct _SMBIOSENTRY
{
DWORD dwSignature;
BYTE bChecksum;
BYTE bLength;
BYTE bMajorVersion;
BYTE bMinorVersion;
WORD wMaxStructSize;
BYTE bRevision;
BYTE abFormatedArea[5];
BYTE abOldSignature[5]; // _DMI_
BYTE bOldChecksum;
WORD wStructTableLength;
DWORD dwStructTableAddress;
WORD wNumberOfStructs;
BYTE bBCDRevision;
} SMBIOSENTRY, * PSMBIOSENTRY;
typedef struct _SMBIOSHEADER
{
BYTE bType;
BYTE bLength;
WORD wHandle;
} SMBIOSHEADER, * PSMBIOSHEADER;
typedef struct _SMBIOSSYSINFO
{
BYTE bType;
BYTE bLength;
WORD wHandle;
BYTE bManufacturer;
BYTE bProductName;
BYTE bVersion;
BYTE bSerialNumber;
BYTE abUUID[16];
BYTE bWakeUpType;
} SMBIOSSYSINFO, * PSMBIOSSYSINFO;
#endif //_SMBIOS_H