Windowsで、UEFI/BIOSを保存するためにコンピューターにインストールされているROMチップの容量を確認するにはどうすればよいですか?他のアプリケーションをインストールせずにWindowsツールまたはコマンドを使用する方法をお勧めします。
ウィキペディアから:
コンピューティング では、システム管理BIOS([〜# 〜] smbios [〜#〜])仕様は、 データ構造 (およびアクセスメソッド)を定義します。これを使用して、 [〜#〜] bios [〜#〜] of a computer 。 1999年頃、それは Distributed Management Task Force (DMTF)のドメインの一部になりました。 [...]ほぼ同時に Microsoft は、 OEM とBIOSベンダーがインターフェイス/データセットをサポートすることを要求し始めましたMicrosoft 認定 を取得するため。
出典: システム管理BIOS
SMBIOS情報はさまざまなデータテーブルに保存されます。最初のもの(タイプ0)には、ベンダー、バージョン、リリース日などの基本的な詳細が含まれています。 BIOSを含む物理デバイスのサイズは、上記のテーブルの offest _0x9
_にある1バイトに対応します。
実際のサイズは次のように計算できます。
_64K * (value + 1)
_
_0
_の値は、サイズが64 KiB であることを意味し、_1
_は128KiBを意味します。
私の知る限り、Windowsには、ROMサイズなどの特定のSMBIOSデータを取得できる組み込みユーティリティはありません。ただし、スクリプトを自分で作成することもできます。以下を参照してください。いくつかの実用的な例。代わりに、 dmidecode
Windowsポート などのサードパーティプログラムを使用できます。
_@echo off
setlocal enabledelayedexpansion
set key=HKLM\SYSTEM\CurrentControlSet\services\mssmbios\Data
for /f "tokens=3" %%G in (
'reg query "%key%" /v "SMBiosData" ^| findstr /i /c:"REG_"'
) do (
set "size=%%~G"
set /a size=64 * 0x!size:~34,2! + 64
)
echo ROM Size: %size% KiB
PAUSE
exit /b
_
_Set tables = GetObject("winmgmts:\\.\root\wmi").ExecQuery _
("SELECT * FROM MSSmBios_RawSMBiosTables")
For Each obj In tables
WScript.Echo "ROM Size: " & (64 * obj.SMBiosData(9) + 64) & " KiB"
Next
_
_$tables = Get-WmiObject -ComputerName . -Namespace root\wmi -Query "
SELECT * FROM MSSmBios_RawSMBiosTables"
foreach ($obj in $tables)
{
echo $("ROM Size: " + (64 * $obj.SMBiosData[9] + 64) + " KiB")
}
_
Windows Management Instrumentation(WMI)は、WindowsでSMBIOS情報を読み取るための推奨される方法です。
ソース: Device\PhysicalMemory Object
[SMBIOS]ドライバーは、この情報を_
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Mssmbios\Data
_のレジストリにも保存します。 SMBIOS情報はこの場所のレジストリに保存されますが、コンシューマーは引き続きWMIまたはGetSystemFirmwareTable()
APIを使用してSMBIOSデータを取得する必要があります。今後のWindowsのリリースごとに、この情報がこのレジストリサブキーに保存される保証はありません。
私はあなたができるとは思いません、少なくとも一般的な方法ではありません。
基本的に、これはBIOSコードのサイズがユーザーであるあなたに有用な情報を提供しないためです。 IBM PC互換コンピュータのBIOS いくつかの主な責任があり、そのほとんどは他のプラットフォームにも適用されますが、実装が異なる場合があります。
これらのタスクを実装するために使用されるコードの量を知ることは、ユーザーにとって何のメリットもありません。初期の頃(ここではWindows 3.0から3.1の前にDOSについて話しているので、1980年代初頭から1990年代初頭)、BIOSは基本的な機能を実行するためにしばしば依存されていたため、BIOSコードサイズは潜在的に =少なくとも部分的にはパフォーマンスに対応しますが、最近のコンピューターでは、BIOSは基本的にオペレーティングシステムの役割に任せられています ブートストラップ および低レベルのハードウェア構成インターフェイス。また、その時代のコンピューターでは、BIOSコードがまったく交換可能であった場合、それは物理的にROMマザーボード上のチップ; フラッシュアップグレード可能なBIOS ずっと後の発明です。
これを、ストレージデバイスまたはRAMのサイズを見つけることと比較します。違いは、それらのサイズを実際に知ることができるということは、ユーザーに知っておく価値のあることを教えてくれるということです:利用可能なストレージスペースの量デバイスごとまたは全体として、コンピューターに保存できるデータ量の決定要因であり、RAMのサイズは、量の決定要因の1つです。同時に操作できるデータと、そのデータの操作速度。
あなたcan、原則として、特定のマザーボードメーカーのWebサイトにアクセスし、ダウンロード可能なBIOSアップデートイメージを探します。これらのイメージファイルのサイズは、非常に高い確実性で、フラッシュのサイズに対応しますROM BIOSコードを保持するチップその特定のマザーボード上。今日の一般的なサイズは数メガバイトのオーダーだと思います; 元のIBM 5150 PCBIOSは8KBでした そしてXT(IBM 5160)this IBMでは32KBに引き上げられました。初期のクリーンルームIBMPC BIOSクローンは、かなり少ないコードでそれを実行できたので、何かが足りないのではないかと関係者が少なくとも一度は疑問に思っていたという逸話をどこかで読みました。
そしてもちろん、それはPC BIOS以外のシステムに他のファームウェアがある可能性を完全に無視します。グラフィックカード、ネットワークカード、ディスクコントローラカード、およびその他のあらゆる種類の周辺機器 独自のBIOSを提供 実装の観点からは、Webブラウザのようにマザーボード上のPCBIOSから完全に分離されています。オペレーティングシステムから完全に分離されている(または分離されている必要があります)。