GetSystemFirmwareTable

ファームウェアテーブルプロバイダから指定したファームウェアテーブルを取得する。

GetSystemFirmwareTable FirmwareTableProviderSignature, FirmwareTableID, pFirmwareTableBuffer, BufferSize

FirmwareTableProviderSignature : [int] 
FirmwareTableID : [int] ファームウェアテーブルの識別子。この識別子はリトルエンディアンであり、文字列内の文字を反転する必要がある。たとえば、FACP は ACPI プロバイダで、ACPI 仕様の DESCRIPTION_HEADER 構造体の Signature フィールドに記述されている([Advanced Configuration and Power Interface (ACPI) Specification](https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/) を参照)。したがって、以下の例のように FACP テーブルを指定するには 'PCAF' を使用する: retVal = GetSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE); 詳細は EnumSystemFirmwareTables 関数の備考セクションを参照。
pFirmwareTableBuffer : [var] 要求されたファームウェアテーブルを受け取るバッファへのポインタ。このパラメータが NULL の場合、戻り値は必要なバッファサイズである。このバッファの内容の詳細は備考セクションを参照。
BufferSize : [int] pFirmwareTableBuffer バッファのサイズ(バイト単位)。

(プラグイン / モジュール : kernel32.dll)

解説

ファームウェアテーブルプロバイダから指定したファームウェアテーブルを取得する。

[戻り値]
関数が成功した場合、戻り値はバッファに書き込まれたバイト数。この値は常に BufferSize
以下となる。バッファが十分な大きさでないために関数が失敗した場合、戻り値は必要なバッファサイズ(バイト単位)。この値は常に
BufferSize より大きい。それ以外の理由で関数が失敗した場合、戻り値は 0。拡張エラー情報を取得するには GetLastError
を呼ぶ。

[備考]
Windows 10 バージョン 1803 以降、ユニバーサル Windows アプリはアプリマニフェストで smbios
制限機能を宣言することにより System Management BIOS (SMBIOS) 情報にアクセスできる。詳細は Access
SMBIOS information from a Universal Windows App を参照。ユニバーサル Windows
アプリからアクセスできるのは生の SMBIOS (RSMB) ファームウェアテーブルのみである。Windows Server 2003
with Service Pack 1 (SP1) 以降、アプリケーションは \Device\PhysicalMemory
オブジェクトにアクセスできない。このオブジェクトへのアクセスはカーネルモードドライバに制限されている。この変更は、System
Management BIOS (SMBIOS) または物理メモリの最下位 1MB に格納されたその他の BIOS
データを読み取るアプリケーションに影響する。アプリケーションには低物理メモリからデータを読み取る以下の代替手段がある。
(以下省略)

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs