次の方法で共有


AuxKlibEnumerateSystemFirmwareTables 関数 (aux_klib.h)

AuxKlibEnumerateSystemFirmwareTables ルーチンは、指定した種類のすべてのシステム ファームウェア テーブルを列挙します。

構文

NTSTATUS AuxKlibEnumerateSystemFirmwareTables(
  [in]            ULONG  FirmwareTableProviderSignature,
  [out, optional] PVOID  FirmwareTableBuffer,
  [in]            ULONG  BufferLength,
  [out, optional] PULONG ReturnLength
);

パラメーター

[in] FirmwareTableProviderSignature

クエリの転送先となるファームウェア テーブル プロバイダーの識別子。 このパラメーターには、次のいずれかの値を指定できます。

価値 意味
'ACPI' ACPI ファームウェア テーブル プロバイダー。
'FIRM' 生のファームウェア テーブル プロバイダー。
'RSMB' 生の SMBIOS ファームウェア テーブル プロバイダー。

[out, optional] FirmwareTableBuffer

ルーチンがファームウェア テーブルの一覧を書き込む呼び出し元によって割り当てられたバッファーへのポインター。 このパラメーターが NULL の場合、*ReturnLength に書き込まれる値は、必要なバッファー サイズです。 このバッファーの内容の詳細については、「解説」セクションを参照してください。

[in] BufferLength

FirmwareTableBuffer が指すバッファーのサイズ (バイト単位)指定します。

[out, optional] ReturnLength

FirmwareTableBuffer が指すバッファーに書き込まれたデータのバイト数をルーチンが書き込む位置ポインター。

戻り値

AuxKlibEnumerateSystemFirmwareTables 呼び出しが成功した場合、STATUS_SUCCESSを返します。 可能な戻り値には、次のエラー コードが含まれます。

リターン コード 形容
STATUS_INVALID_PARAMETER
ルーチンに無効なパラメーターが指定されました。
STATUS_BUFFER_TOO_SMALL
呼び出し元が割り当てたバッファーが小さすぎますが、必要なバッファー サイズが ReturnLength 出力パラメーターに書き込まれています。

備考

呼び出しが成功した場合、このルーチンは、FirmwareTableBuffer パラメーターが指すバッファーに 1 つ以上のテーブル識別子の配列を書き込みます。 この配列の各要素は、FirmwareTableProviderSignature パラメーターで指定されたプロバイダーから使用できるファームウェア テーブルを識別する DWORD 値です。

生の SMBIOS テーブル プロバイダー ('RSMB') は現在、0x00000000 1 つのテーブル識別子を返します。 これは、未加工の SMBIOS ファームウェア テーブルに対応します。

生のファームウェア テーブル プロバイダー ('FIRM') は、DWORD テーブル識別子の一覧を取得します。 各識別子は、物理アドレス範囲の先頭に対応します。 現在、このプロバイダーは、0x000C0000と0x000E0000の 2 つの識別子を返します。 これらの識別子は、それぞれ、0x000C0000から0x000DFFFF、および0x000E0000から0x000FFFFFへの物理メモリを表します。

ACPI テーブル プロバイダー ('ACPI') は、DWORD テーブル識別子の一覧を返します。 返される各識別子は、現在システムの ACPI 名前空間にある ACPI テーブルの DESCRIPTION_HEADER 構造体の Signature フィールドに対応します。 この構造の詳細については、「Advanced Configuration and Power Interface Web サイトの高度な構成と電源インターフェイスの仕様」を参照してください。

ACPI の場合、システム ファームウェアに同じ名前の複数のテーブルが含まれている場合は、AuxKlibEnumerateSystemFirmwareTables それらすべてを列挙します。 ただし、AuxKlibGetSystemFirmwareTable は、この名前を持つリスト内の最初のテーブルのみを取得します。

AuxKlibEnumerateSystemFirmwareTables は、Win32 EnumSystemFirmwareTables 関数と同等のカーネル モードです。

ドライバーは、AuxKlibEnumerateSystemFirmwareTable 呼び出す前 AuxKlibInitialize を呼び出す必要があります。

AuxKlibEnumerateSystemFirmwareTables は、Windows 8 以降のバージョンの Windows 用 WDK に含まれる Aux_klib.h ヘッダー ファイルで定義されています。 このルーチンを使用するには、ドライバーは、Windows 8 以降のバージョンの Windows WDK に含まれている Aux_klib.lib のバージョンにリンクする必要があります。 これらのバージョンの WDK AuxKlibEnumerateSystemFirmwareTables の実装は、Windows Vista 以降の Windows のバージョンで使用できます。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降でサポートされています。
ターゲット プラットフォーム 万国
ヘッダー aux_klib.h (Aux_klib.h を含む)
ライブラリ Aux_Klib.lib
IRQL PASSIVE_LEVEL

関連項目

AuxKlibGetSystemFirmwareTable

AuxKlibInitialize

EnumSystemFirmwareTables