网站首页  词典首页

请输入您要查询的函数:

 

术语 getsystemfirmwaretable
释义 GetSystemFirmwareTable
语法:
C++
UINT WINAPI GetSystemFirmwareTable(
__in DWORD FirmwareTableProviderSignature,
__in DWORD FirmwareTableID,
__out PVOID pFirmwareTableBuffer,
__in DWORD BufferSize
);
GetSystemFirmwareTable功能
将指定的固件固件表从表供应商。
参数
FirmwareTableProviderSignature [in]
固件的表供应商的查询是被定向标识符。此参数可以是下列值之一。
ValueMeaning
'ACPI'The ACPI的固件表供应商。
'FIRM'The原始固件表供应商。
'RSMB'The固件提供原料的SMBIOS表。
FirmwareTableID [in]
固件的表标识符。该标识符小端,您必须扭转字符串中的字符。
例如,FACP是ACPI的供应商,如同在ACPI规范DESCRIPTION_HEADER结构签名字段描述(见http://www.acpi.info)。因此,使用'PCAF'指定FACP表,如下面的示例所示:
retVal = GetSystemFirmwareTable('ACPI的','PCAF',pBuffer,BUFSIZE);
有关更多信息,见EnumSystemFirmwareTables功能备注部分。
pFirmwareTableBuffer [out]
阿一个缓冲区指针,接收请求的固件表。如果该参数为NULL,则返回值是所需的缓冲区大小。
欲了解更多有关此缓冲区内容的信息,请参见备注部分。
缓冲区大小 [in]
该pFirmwareTableBuffer缓冲区大小,以字节为单位。
返回值
如果函数成功,返回值是写入到缓冲区的字节数。此值总是小于或等于缓冲区大小。
如果函数失败,因为缓冲区不够大,返回值是所需的缓冲区大小,以字节为单位。此值总是大于缓冲区大小。
如果该函数的任何其他原因而失败,返回值是零。为了获得更多错误信息,调用GetLastError。
备注
作为Windows Server 2003带有Service Pack 1(SP1)中,应用程序无法访问\\设备\\ PhysicalMemory对象。访问此对象仅限于内核模式驱动程序。此更改会影响应用程序读取系统管理BIOS(SMBIOS)或其他数据的BIOS中是最低的物理内存1MB的存储。应用有以下选择读取低物理内存中的数据:
检索SMBIOS的属性使用WMI。许多个别属性包含在Win32类。您也可以在一个单一的原始SMBIOS数据缓冲区使用MSSMBios_RawSMBiosTables类。
使用GetSystemFirmwareTable函数来读取原始的SMBIOS固件表。
没有办法申请写入低物理内存。
原始SMBIOS表提供商('RSMB')获取的原始固件的SMBIOS表中的内容。在pFirmwareTableBuffer缓冲区收到以下数据:
结构RawSMBIOSData
(
字节Used20CallingMethod;
字节SMBIOSMajorVersion;
字节SMBIOSMinorVersion;
字节DmiRevision;
DWORD Length;
字节SMBIOSTableData [];
);
原始固件表提供商('事务所')检索指定的物理地址范围的内容。该函数返回地址范围的大小。
ACPI表的供应商('ACPI的')检索指定的ACPI表的内容。由于原始设备制造商可以包括符合ACPI,没有在ACPI规范上市固件表,您应先打电话EnumSystemFirmwareTables枚举所有ACPI表系统上目前。
对于符合ACPI,如果系统包含多个同名的表,他们都是列举的EnumSystemFirmwareTables。然而,GetSystemFirmwareTable检索只有在这个名单的第一个表。
要求:
最低支持clientWindows Vista中,Windows XP Professional x64版本
最低支持serverWindows Server 2008中时,Windows Server 2003 SP1的
HeaderWinbase.h(头文件:winuser.h)
LibraryKernel32.lib
DLLKernel32.dll
参见
EnumSystemFirmwareTables
系统信息功能
如果有任何问题和意见,请发送给微软(wsddocfb@microsoft.com)
生成日期:2009年8月27日
==英文原文==GetSystemFirmwareTable Function
Retrieves the specified firmware table from the firmware table provider.
Syntax
C++
UINT WINAPI GetSystemFirmwareTable(
__in DWORD FirmwareTableProviderSignature,
__in DWORD FirmwareTableID,
__out PVOID pFirmwareTableBuffer,
__in DWORD BufferSize
);
Parameters
FirmwareTableProviderSignature [in]
The identifier of the firmware table provider to which the query is to be directed. This parameter can be one of the following values.
ValueMeaning
'ACPI'The ACPI firmware table provider.
'FIRM'The raw firmware table provider.
'RSMB'The raw SMBIOS firmware table provider.

FirmwareTableID [in]
The identifier of the firmware table. This identifier is little endian, you must reverse the characters in the string.
For example, FACP is an ACPI provider, as described in the Signature field of the DESCRIPTION_HEADER structure in the ACPI specification (see http://www.acpi.info ). Therefore, use 'PCAF' to specify the FACP table, as shown in the following example:
retVal = GetSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE);
For more information, see the Remarks section of the EnumSystemFirmwareTables function.
pFirmwareTableBuffer [out]
A pointer to a buffer that receives the requested firmware table. If this parameter is NULL, the return value is the required buffer size.
For more information on the contents of this buffer, see the Remarks section.
BufferSize [in]
The size of the pFirmwareTableBuffer buffer, in bytes.
Return Value
If the function succeeds, the return value is the number of bytes written to the buffer. This value will always be less than or equal to BufferSize.
If the function fails because the buffer is not large enough, the return value is the required buffer size, in bytes. This value is always greater than BufferSize.
If the function fails for any other reason, the return value is zero. To get extended error information, call GetLastError .
Remarks
As of Windows Server 2003 with Service Pack 1 (SP1), applications cannot access the \\Device\\PhysicalMemory object. Access to this object is limited to kernel-mode drivers. This change affects applications read System Management BIOS (SMBIOS) or other BIOS data stored in the lowest 1MB of physical memory. Applications have the following alternatives to read data from low physical memory:
Retrieve the SMBIOS properties using WMI. Many individual properties are contained in the Win32 classes . You can also retrieve the raw SMBIOS data in a single buffer using the MSSMBios_RawSMBiosTables class.
Use the GetSystemFirmwareTable function to read the raw SMBIOS firmware table.
There is no way for applications to write to low physical memory.
The raw SMBIOS table provider ('RSMB') retrieves the contents of the raw SMBIOS firmware table. The pFirmwareTableBuffer buffer receives the following data:
struct RawSMBIOSData
{
BYTE Used20CallingMethod;
BYTE SMBIOSMajorVersion;
BYTE SMBIOSMinorVersion;
BYTE DmiRevision;
DWORD Length;
BYTE SMBIOSTableData[];
};
The raw firmware table provider ('FIRM') retrieves the contents of the specified physical address range. The function returns the size of the address range.
The ACPI table provider ('ACPI') retrieves the contents of the specified ACPI table. Because OEMs can include ACPI firmware tables that are not listed in the ACPI specification, you should first call EnumSystemFirmwareTables to enumerate all ACPI tables that are currently on the system.
For ACPI, if the system contains multiple tables with the same name, they are all enumerated with EnumSystemFirmwareTables. However, GetSystemFirmwareTable retrieves only the first table in the list with this name.
Requirements
Minimum supported clientWindows Vista, Windows XP Professional x64 Edition
Minimum supported serverWindows Server 2008, Windows Server 2003 with SP1
HeaderWinbase.h (include Windows.h)
LibraryKernel32.lib
DLLKernel32.dll
See Also
EnumSystemFirmwareTables
System Information Functions
Send comments about this topic to Microsoft
Build date: 8/27/2009
==原始网址==http://msdn.microsoft.com/en-us/library/ms724379(VS.85).aspx\n
随便看

 

windows api函数参考手册包含2258条windows api函数文档,详细介绍nodejs、java、rust调用windows api的方法技巧,是学习windows api编程的入门中文文档。

 

Copyright © 2004-2023 Winrtm.com All Rights Reserved
京ICP备2021023879号-40 更新时间:2025/1/9 3:35:27