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を返します。 可能な戻り値には、次のエラー コードが含まれます。
リターン コード | 説明 |
---|---|
|
ルーチンに無効なパラメーターが指定されました。 |
|
呼び出し元によって割り当てられたバッファーが小さすぎますが、必要なバッファー サイズが ReturnLength 出力パラメーターに書き込まれます。 |
注釈
呼び出しが成功した場合、このルーチンは、 FirmwareTableBuffer パラメーターが指すバッファーに 1 つ以上のテーブル識別子の配列を書き込みます。 この配列の各要素は、 FirmwareTableProviderSignature パラメーターで指定されたプロバイダーから使用できるファームウェア テーブルを識別する DWORD 値です。
生の SMBIOS テーブル プロバイダー ('RSMB') は現在、1 つのテーブル識別子 (0x00000000) を返します。 これは、生の SMBIOS ファームウェア テーブルに対応します。
生のファームウェア テーブル プロバイダー ('FIRM') は、DWORD テーブル識別子の一覧を取得します。 各識別子は、物理アドレス範囲の先頭に対応します。 現在、このプロバイダーは、0x000C0000と0x000E0000の 2 つの識別子を返します。 これらの識別子は、0x000C0000から0x000DFFFF、0x000E0000から0x000FFFFFまでの物理メモリをそれぞれ表します。
ACPI テーブル プロバイダー ('ACPI') は、DWORD テーブル識別子の一覧を返します。 返される各識別子は、現在システムの ACPI 名前空間にある ACPI テーブルのDESCRIPTION_HEADER構造体の Signature フィールドに対応します。 この構造の詳細については、Advanced Configuration および Power Interface Web サイトの「 Advanced Configuration and Power Interface Specification」を参照してください。
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 以降でサポートされています。 |
対象プラットフォーム | ユニバーサル |
Header | aux_klib.h (Aux_klib.h を含む) |
Library | Aux_Klib.lib |
IRQL | PASSIVE_LEVEL |