Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

smbios.h

Go to the documentation of this file.
00001 /*++ 00002 00003 Copyright (c) 1998 Microsoft Corporation 00004 00005 Module Name: 00006 00007 smbios.h 00008 00009 Abstract: 00010 00011 This module contains definitions that describe SMBIOS 00012 00013 Author: 00014 00015 Alan Warwick (AlanWar) 12-Feb-1998 00016 00017 00018 Revision History: 00019 00020 00021 --*/ 00022 00023 #ifndef _SMBIOS_ 00024 #define _SMBIOS_ 00025 00026 // 00027 // SMBIOS error codes 00028 #define DMI_SUCCESS 0x00 00029 #define DMI_UNKNOWN_FUNCTION 0x81 00030 #define DMI_FUNCTION_NOT_SUPPORTED 0x82 00031 #define DMI_INVALID_HANDLE 0x83 00032 #define DMI_BAD_PARAMETER 0x84 00033 #define DMI_INVALID_SUBFUNCTION 0x85 00034 #define DMI_NO_CHANGE 0x86 00035 #define DMI_ADD_STRUCTURE_FAILED 0x87 00036 00037 // @@BEGIN_DDKSPLIT 00038 00039 // 00040 // SMBIOS registry values 00041 #define SMBIOSPARENTKEYNAME L"\\Registry\\Machine\\Hardware\\Description\\System\\MultifunctionAdapter" 00042 00043 #define SMBIOSIDENTIFIERVALUENAME L"Identifier" 00044 #define SMBIOSIDENTIFIERVALUEDATA L"PNP BIOS" 00045 #define SMBIOSDATAVALUENAME L"Configuration Data" 00046 00047 #define MAXSMBIOSKEYNAMESIZE 256 00048 00049 // @@END_DDKSPLIT 00050 00051 // 00052 // SMBIOS table search 00053 #define SMBIOS_EPS_SEARCH_SIZE 0x10000 00054 #define SMBIOS_EPS_SEARCH_START 0x000f0000 00055 #define SMBIOS_EPS_SEARCH_INCREMENT 0x10 00056 00057 #pragma pack(push, 1) 00058 typedef struct _SMBIOS_TABLE_HEADER 00059 { 00060 UCHAR Signature[4]; // _SM_ (ascii) 00061 UCHAR Checksum; 00062 UCHAR Length; 00063 UCHAR MajorVersion; 00064 UCHAR MinorVersion; 00065 USHORT MaximumStructureSize; 00066 UCHAR EntryPointRevision; 00067 UCHAR Reserved[5]; 00068 UCHAR Signature2[5]; // _DMI_ (ascii) 00069 UCHAR IntermediateChecksum; 00070 USHORT StructureTableLength; 00071 ULONG StructureTableAddress; 00072 USHORT NumberStructures; 00073 UCHAR Revision; 00074 } SMBIOS_EPS_HEADER, *PSMBIOS_EPS_HEADER; 00075 00076 #define SMBIOS_EPS_SIGNATURE '_MS_' 00077 #define DMI_EPS_SIGNATURE 'IMD_' 00078 00079 typedef struct _SMBIOS_STRUCT_HEADER 00080 { 00081 UCHAR Type; 00082 UCHAR Length; 00083 USHORT Handle; 00084 UCHAR Data[]; 00085 } SMBIOS_STRUCT_HEADER, *PSMBIOS_STRUCT_HEADER; 00086 00087 00088 typedef struct _DMIBIOS_TABLE_HEADER 00089 { 00090 UCHAR Signature2[5]; // _DMI_ (ascii) 00091 UCHAR IntermediateChecksum; 00092 USHORT StructureTableLength; 00093 ULONG StructureTableAddress; 00094 USHORT NumberStructures; 00095 UCHAR Revision; 00096 } DMIBIOS_EPS_HEADER, *PDMIBIOS_EPS_HEADER; 00097 00098 // 00099 // SMBIOS table search 00100 #define SYSID_EPS_SEARCH_SIZE 0x20000 00101 #define SYSID_EPS_SEARCH_START 0x000e0000 00102 #define SYSID_EPS_SEARCH_INCREMENT 0x10 00103 00104 typedef struct _SYSID_EPS_HEADER 00105 { 00106 UCHAR Signature[7]; // _SYSID_ (ascii) 00107 UCHAR Checksum; 00108 USHORT Length; // Length of SYSID_EPS_HEADER 00109 ULONG SysIdTableAddress; // Physical Address of SYSID table 00110 USHORT SysIdCount; // Count of SYSIDs in table 00111 UCHAR BiosRev; // SYSID Bios revision 00112 } SYSID_EPS_HEADER, *PSYSID_EPS_HEADER; 00113 00114 typedef struct _SYSID_TABLE_ENTRY 00115 { 00116 UCHAR Type[6]; // _UUID_ or _1394_ (ascii) 00117 UCHAR Checksum; 00118 USHORT Length; // Length of this table 00119 UCHAR Data[1]; // Variable length UUID/1394 data 00120 } SYSID_TABLE_ENTRY, *PSYSID_TABLE_ENTRY; 00121 00122 #define SYSID_UUID_DATA_SIZE 16 00123 00124 typedef struct _SYSID_UUID_ENTRY 00125 { 00126 UCHAR Type[6]; // _UUID_ (ascii) 00127 UCHAR Checksum; 00128 USHORT Length; // Length of this table 00129 UCHAR UUID[SYSID_UUID_DATA_SIZE]; // UUID 00130 } SYSID_UUID_ENTRY, *PSYSID_UUID_ENTRY; 00131 00132 #define SYSID_1394_DATA_SIZE 8 00133 00134 typedef struct _SYSID_1394_ENTRY 00135 { 00136 UCHAR Type[6]; // _1394_ (ascii) 00137 UCHAR Checksum; 00138 USHORT Length; // Length of this table 00139 UCHAR x1394Id[SYSID_1394_DATA_SIZE]; // 1394 ID 00140 } SYSID_1394_ENTRY, *PSYSID_1394_ENTRY; 00141 00142 #define LARGEST_SYSID_TABLE_ENTRY (sizeof(SYSID_UUID_ENTRY)) 00143 00144 #define SYSID_TYPE_UUID "_UUID_" 00145 #define SYSID_TYPE_1394 "_1394_" 00146 00147 #pragma pack(pop) 00148 #endif

Generated on Sat May 15 19:41:49 2004 for test by doxygen 1.3.7