📄 farcall.lst
字号:
called in protected mode (ignored otherwise)
WORD PnP BIOS writable segment/selector
Return: AX = status (see #F0081)
Notes: the large-model C declaration is
int (*entry)(int, unsigned char *, unsigned int, unsigned int);
if an ESCD selector is required, the caller must construct a 16-bit
data segment selector with a limit of 64K
(Table F0045)
Call Plug-and-Play BIOS function 43h with:
STACK: WORD 0043h (function "Write Extended System Configuration
Data")
DWORD -> buffer containing ESCD
WORD read/writable selector for ESCD if memory-mapped and
called in protected mode (ignored otherwise)
WORD PnP BIOS writable segment/selector
Return: AX = status (see #F0081)
Notes: the large-model C declaration is
int (*entry)(int, unsigned char *, unsigned int, unsigned int);
if an ESCD selector is required, the caller must construct a 16-bit
data segment selector with a limit of 64K
(Table F0046)
Call Desktop Management Specification function 50h with:
STACK: WORD 0050h (function "Get DMI Information")
DWORD -> buffer for ASCIZ DMI BIOS revision string
DWORD -> WORD to receive number of DMI structures
DWORD -> WORD to receive size of largest DMI structure
DWORD -> DWORD to receive DMI storage base address
DWORD -> WORD to receive DMI storage size
WORD BIOS selector
Return: AX = status (see #F0081)
Notes: the large-model C declaration is
short (*entry)(int, unsigned char *, unsigned short *,
unsigned short *, unsigned long *, unsigned short *,
unsigned short) ;
the BIOS may return a structure size larger than the actual largest
DMI structure to permit dynamic information
this function is available in both real mode and 16-bit protected mode
SeeAlso: #F0047
(Table F0047)
Call Desktop Management Specification function 51h with:
STACK: WORD 0051h (function "Get DMI Structure")
DWORD -> WORD number/handle of structure to retrieve
DWORD -> buffer for DMI structure
WORD DMI read/write data selector
WORD PnP BIOS read/write selector
Return: AX = status (see #F0081)
Notes: the large-model c declaration is
short (*entry)(int, unsigned short *,unsigned char *, unsigned short,
unsigned short) ;
structure number 0000h will return the first SMBIOS structure; the
variable is updated with the number of the next structure after each
successful call, returning FFFFh if the last structure has been
returned
this function is available in both real mode and 16-bit protected mode
SeeAlso: #F0046,#F0048
(Table F0048)
Call System Management BIOS function 52h with:
STACK: WORD 0052h (function "Set DMI Structure")
DWORD -> buffer containing new data (see #F0049)
DWORD -> BIOS work buffer
BYTE control flags
bit 0: set structure instead of just validating
bits 7-1: reserved (0)
BYTE padding
WORD DMI read/write data selector
WORD PnP BIOS read/write selector
Return: AX = status (see #F0081)
SeeAlso: #F0025,#F0047,#F0051
Format of DMI data buffer for SMBIOS function 52h:
Offset Size Description (Table F0049)
00h BYTE operation to perform (see #F0050)
01h BYTE offset within fixed data of the structure for the to-be-
changed item
02h DWORD change mask for BYTE/WORD/DWORD change operation
this value is ANDed with the existing data prior to
applying the change value given below
06h DWORD change value for BYTE/WORD/DWORD change operation
this value is ORed with the result of applying the
change mask above to the existing data
0Ah WORD data length for structure-add, string-change, block-change
for a string-change command, this field specifies the
length of the string including the NUL terminator; if
the length is 1 (empty string), the string is removed
if the applicable access rights are met
0Ch 4 BYTEs structure header of structure to be changed/added/removed
(see also #F0059)
10h var new structure data for structure-add or block-change cmd
new string data for string-change command
SeeAlso: #F0048,#F0059
(Table F0050)
Values for SMBIOS structure-change operation:
00h change a single byte in the identified structure
01h change a word (two bytes) in the identified structure
02h change a DWORD (four byets) in the identified structure
03h add the identified structure to the SMBIOS structure pool
04h remove the identified structure from the SMBIOS structure pool
05h change a string in the identified structure
06h change a block of data in the identified structure
07h-FFh reserved for future revisions of specification
SeeAlso: #F0049
(Table F0051)
Call System Management BIOS function 53h with:
STACK: WORD 0053h (function "Get Structure Change Information")
DWORD -> SMBIOS change structure (see #F0052)
WORD DMI read/write data selector
WORD PnP BIOS read/write selector
Return: AX = status (see #F0081)
SeeAlso: #F0025,#F0048,#F0053
Format of SMBIOS change structure:
Offset Size Description (Table F0052)
00h BYTE change status
00h no change
01h other
02h unknown
03h single SMBIOS structure affected
04h multiple SMBIOS structures affected
other reserved
01h BYTE change type
bits 7-2 reserved (0)
bit 1: structure(s) added
bit 0: structure(s) changed
02h WORD structure handle (if change status == 03h)
04h 12 BYTEs reserved (0)
Note: if multiple structures changed, all of the SMBIOS structures must be
enumerated to determine what changed
SeeAlso: #F0051
(Table F0053)
Call System Management BIOS function 54h with:
STACK: WORD 0054h (function "SMBIOS Control")
WORD subfunction (see #F0054)
DWORD -> data
BYTE control flags
bits 7-1: reserved (0)
bit 0: perform the operation instead of just validating
parameters
BYTE padding
WORD DMI read/write data selector
WORD PnP BIOS read/write selector
Return: AX = status (see #F0081)
SeeAlso: #F0025,#F0051,#F0056
(Table F0054)
Values for SMBIOS function 54h subfunction:
0000h clear event log
data parameter must be 00000000h
0001h control event logging
data parameter points at 2-WORD buffer containing AND-mask and
OR-mask for modifying logging values; on return, the second word will
contain the prior value of the control flags (see #F0055)
0002h (v2.1+) clear event log (Type 15)
data parameter is 32-bit physical address of a scratch buffer for use
by the BIOS, which must be writeable and at least as large as the
largest-structure size reported by function 50h
0003h-3FFFh reserved for future revisions of specification
4000h-7FFFh reserved for BIOS vendor
8000h-FFFFh reserved for system vendor
SeeAlso: #F0053
Bitfields for SMBIOS event logging control word:
Bit(s) Description (Table F0055)
15-3 reserved for future use (0)
2 disable logging of POST errors
1 enable logging of correctable memory errors
0 enable overall event logging
SeeAlso: #F0054
(Table F0056)
Call System Management BIOS function 55h with:
STACK: WORD 0055h (function "Get General-Purpose NonVolatile Info")
DWORD -> WORD GPNV handle (set to 0000h for first call)
DWORD -> WORD (ret) minimum buffer size (in bytes)
DWORD -> WORD (ret) size allocated for this GPNV
DWORD -> DWORD (ret) physical base address for memory-mapped
non-volatile storage (00000000h if PMode
mapping not required)
WORD PnP BIOS read/write selector
Return: AX = status (see #F0081)
GPNV handle var set to handle of next GPNV area or FFFFh if no more
SeeAlso: #F0025,#F0053,#F0057
(Table F0057)
Call System Management BIOS function 56h with:
STACK: WORD 0056h (func "Read General-Purpose NonVolatile Data")
WORD GPNV handle for area to be read
DWORD -> buffer for GPNV data (must be large enough to hold
entire area - use "min buffer size" from func 55h)
DWORD -> WORD lock value or FFFFh to ignore
WORD GPNV storage selector
WORD PnP BIOS read/write selector
Return: AX = status (see #F0081)
lock value set to value of the current lock if it was not FFFFh on
entry and locking is supported
SeeAlso: #F0025,#F0056,#F0058
(Table F0058)
Call System Management BIOS function 57h with:
STACK: WORD 0057h (func "Write General-Purpose NonVolatile Data")
WORD GPNV handle for area to be written
DWORD -> buffer containing GPNV data
WORD lock value (must match value set by prior read) or
FFFFh for a forced write
WORD GPNV storage selector
WORD PnP BIOS read/write selector
Return: AX = status (see #F0081)
SeeAlso: #F0025,#F0057
Format of SMBIOS data structure:
Offset Size Description (Table F0059)
00h 4 BYTEs structure header
BYTE structure type (see #F0060)
80h-FFh available for system/OEM-specific data
BYTE length of formatted data, including header
WORD structure handle (a unique value 0000h-FEFFh [v2.0 allows
up to FFFEh])
handles FF00h-FFFFh are reserved for use by the SMBIOS
specification
handles need not be contiguous -- a handle might not
exist any more after a configuration change, but the
BIOS may not re-assign that handle number to another
structure
---type 00h---
04h BYTE string number of the vendor name (string numbers are 1-based)
05h BYTE string number of the version string (00h if not present)
06h WORD starting segment of runtime BIOS
08h BYTE string number of BIOS release date
09h BYTE size of BIOS ROM (stored as one less than number of 64K units)
0Ah QWORD BIOS characteristics (see #F0061)
12h var optional space for BIOS characteristics extension
(see #F0062,#F0063)
(size of optional space is implied by header's length field)
var var free-form ASCIZ strings (max 64 bytes per string)
---type 01h---
04h BYTE string number of manufacturer name
05h BYTE string number of product name
06h BYTE string number of version number
07h BYTE string number of serial number
08h 16 BYTEs (v2.1+) universal unique ID number (UUID)
all-FFh if not currently set
all-00h if not present
18h BYTE (v2.1+) type of last wake-up event (see #F0064)
---type 02h---
04h BYTE string number of manufacturer name
05h BYTE string number of product name
06h BYTE string number of version number
07h BYTE string number of serial number
---type 03h---
04h BYTE string number of manufacturer name
05h BYTE chassis type
bit 7: chassis lock present
bits 6-0: (see #F0065)
06h BYTE string number of version number
07h BYTE string number of serial number
08h BYTE string number of asset tag number
09h BYTE (v2.1+) enclosure state at last boot (see #F0066)
0Ah BYTE (v2.1+) power supply state at last boot
0Bh BYTE (v2.1+) thermal state at last boot
0Ch BYTE (v2.1+) physical security status at last boot (see #F0067)
0Dh DWORD (v2.3+) OEM/BIOS-specific information
---type 04h---
04h BYTE string number of socket designation
05h BYTE processor type (see #F0068)
06h BYTE processor family (see #F0069)
07h BYTE string number of processor manufacturer
08h QWORD processor identification data (see #F0070)
10h BYTE string number of processor version string
11h BYTE voltage (see #F0071)
12h WORD external clock frequency in MHz (0000h if unknown)
14h WORD maximum internal processor speed in MHz (0000h if unknown)
16h WORD current internal processor speed in MHz (0000h if unknown)
18h BYTE processor status (see #F0072)
19h BYTE processor upgrade (see #F0073)
1Ah WORD (v2.1+) handle of L1 cache information structure, or FFFFh
1Ch WORD (v2.1+) handle of L2 cache information structure, or FFFFh
1Eh WORD (v2.1+) handle of L3 cache information structure, or FFFFh
---type 05h---
04h BYTE error-detection method
05h BYTE error-correction capability
06h BYTE supported memory interleave
07h BYTE current memory interleave
08h BYTE maximum memory module size (00h=1M, 01h=2M, 02h=4M, etc.)
09h WORD supported memory speeds
0Bh WORD supported memory types
0Dh BYTE voltages supported by memory modules
bits 7-3: reserved (0)
bit 2: 2.9V
bit 1: 3.3V
bit 0: 5.0V
0Eh BYTE number of memory slots
0Fh N WORDs handles of memory information structures for each slot
BYTE (v2.1+) enabled error-correction capabilities
!!!ftp://download.intel.com/ial/wfm/smbios.pdf p.39
---type 06h---
04h BYTE string number for socket designation
05h BYTE bank connections
06h BYTE current memory speed in ns (00h = unknown)
07h WORD current memory type
09h BYTE installed size
0Ah BYTE enabled size
0Bh BYTE error status
bits 7-3: reserved (0)
bit 2: get error status info from event log (bits 1-0 reserved)
bit 1: correctable errors encountered
bit 0: uncorrectable errors encountered, some or all of module
disabled
---type 07h---
04h BYTE string number of socket designation
05h WORD cache configuration
07h WORD maximum cache size
09h WORD installed cache size
0Bh WORD supported SRAM type(s)
0Dh WORD current SRAM type
0Fh BYTE (v2.1+) cache speed in ns (00h = unknown)
10h BYTE (v2.1+) error correction type
11h BYTE (v2.1+) system cache type
12h BYTE (v2.1+) cache associativity
---type 08h---
------
var WORD 0000h end-of-structure marker
(if strings are present, only a single byte of 00h is needed,
because the terminating NUL of the last string forms the
first byte of the end-of-structure marker)
Note: structures can have new fields added in successive revisions of the
SMBIOS specification, so applications should use the actual length
field given in the SMBIOS structure; as of SMBIOS v2.3, structure
types also have a minimum length to enable the addition of optional
fields
SeeAlso: #F0049
(Table F0060)
Values for SMBIOS structure type:
00h BIOS Information
01h System Information
02h Motherboard Information
03h system enclosure/chassis information
04h processor information
05h memory controller information
06h memory module information
07h cache information
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -