в Windows, как я могу увидеть емкость чипа ROM, установленного на моем компьютере для хранения UEFI / BIOS? Я бы предпочел способ использования инструмента или команды Windows без установки какого-либо другого приложения.
Как увидеть размер ROM?
3 ответа
чтение SMBIOS информации
Из Википедии:
In вычислений на управление системой BIOS (SMBIOS спецификация) определяет структуры данных (и методы доступа), которые могут быть использованы для чтения информации, хранящейся в BIOS на компьютер. Примерно в 1999 году он стал частью домена Распределенное Управление Целевая Группа (DMTF). [...] Примерно в одно и то же время Microsoft начал требовать, чтобы производители и поставщики BIOS поддерживают интерфейс / набор данных для того, чтобы иметь Microsoft сертификация.
источник: управление системой BIOS
информация SMBIOS хранится в разных таблицах данных; первая (тип 0) содержит основные сведения, такие как поставщик, версия и дата выпуска. Размер физическое устройство, содержащее BIOS, соответствует одному байту, который находится в offest 0x9
указанной таблице.
фактический размер может быть вычислен следующим образом:
64K * (value + 1)
значение 0
означает, что размер равен 64 KiB,1
означает 128 Кб, и так далее.
насколько я знаю, Windows не предоставляет встроенную утилиту, которая может получать конкретные данные SMBIOS, такие как размер ROM. Вы все еще можете писать сценарий, однако; см. ниже для некоторых рабочих примеров. В качестве альтернативы можно использовать стороннюю программу, например a 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
VBScript
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
PowerShell
$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 (WMI) является предпочтительным методом чтения информации SMBIOS в Windows.
источник: Устройство \ PhysicalMemory Объект
драйвер [SMBIOS] также сохраняет эту информацию в реестре в
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Mssmbios\Data
. Хотя сведения SMBIOS хранятся в реестре в этом расположении, потребители должны продолжать использовать WMI илиGetSystemFirmwareTable()
API для получения данных SMBIOS. Нет никакой гарантии, что эта информация будет храниться в этом подразделе реестра для каждого последующего выпуска Windows.источник: поддержка SMBIOS в Windows
более дальнеишее чтение
Я не думаю, что вы можете, по крайней мере, не в общем виде.
в принципе, это потому, что размер кода BIOS не предоставляет никакой полезной информации для вас, пользователей. BIOS В IBM PC-совместимом компьютере имеет несколько основных обязанностей, большинство из которых относятся и к другим платформам, но могут быть реализованы по-другому:
- он выполняет самопроверку включения питания (POST)
- это базовое обнаружение и инициализация оборудования
- настраивает базовую среду выполнения, особенности которой восходят к оригинальный IBM 5150 PC С 1981 года (процессор находится в реальном режиме, несколько регистров процессора инициализируются известными значениями, и несколько флагов процессора устанавливаются на известные значения)
- он предоставляет операционной системе (очень примитивные) аппаратные средства доступа и обнаружения; они не используются современными операционными системами, либо из-за технических ограничений процессора (не простой способ переключения из режим, например) или из-за ограничений производительности (переключение назад и вперед к реальному или режим V86 чтобы выполнить 16-битный код BIOS занимает много времени, так что быстрее оставаться в защищенном или длинном режиме и просто сделать это самостоятельно в ОС вместо)
- он загружает загрузчик первой стадии операционной системы в известное, фиксированное место в оперативной памяти и передает исполнение к нему
- это предоставляет пользовательский интерфейс для настройки основных параметров системы; строго говоря, это необязательно, и BIOSes 1980-х годов часто не обеспечить такой интерфейс, вместо того, чтобы полагаться на программное обеспечение, поставляемое отдельно или на оборудовании DIP-переключатели для настройки даже таких базовых системных настроек, как Тип видеокарты и объем установленной оперативной памяти
не в этом есть ли польза для пользователь знает, сколько кода используется для реализации этих задач. Еще в первые дни (мы говорим о DOS до Windows 3.0 до 3.1 здесь, так в начале 1980-х до начала 1990-х), BIOS часто полагались для выполнения основных функций и, таким образом, размер кода BIOS может потенциально соответствует, по крайней мере, частично производительности, но в современных компьютерах BIOS был отнесен к роли операционной системы bootstrapper и низкоуровневое оборудование интерфейс конфигурации. Кроме того, в компьютерах той эпохи, если код BIOS был заменяемым вообще, это было путем физического удаления и переустановки чипов ROM на материнской плате;flash обновляемый BIOS это гораздо более позднее изобретение.
вы сравните это с поиском по размеру запоминающие устройства или RAM. Разница в том, что будучи в состоянии сказать размер тех, кто на самом деле говорит вам, пользователь, что-то стоит знать: объем дискового пространства на ТВ-устройстве или в совокупности, является определяющим фактором того, сколько данных вы сможете хранить на компьютере, а размер оперативной памяти является одним из определяющих факторов для того, сколько данных вы можете работать с в то же время и как быстро работать с этими данными будет.
You может, в принципе, зайдите на сайт производителя конкретной материнской платы и найдите загружаемые образы обновлений BIOS. Размер этих файлов образ, с очень высокая степень уверенности, соответствуют размеру чипа флэш-памяти, проведение BIOS код на этой конкретной материнской платы. я думаю, что общий размер сегодня составляет порядка нескольких мегабайт; оригинальный IBM 5150 PC BIOS был 8 КБ и начиная с XT (IBM 5160) это было поднято до 32 КБ в IBMs. Я где-то читал анекдот, что ранние клоны IBM PC BIOS чистой комнаты, по крайней мере, когда-то были вовлечены люди, задающиеся вопросом, не хватает ли им чего-то, как они смогли сделать это в значительно меньшем количестве кода.
и, конечно, это полностью игнорирует возможность в системе есть другая прошивка помимо BIOS ПК. Видеокарты, сетевые карты, карты контроллера диска и всевозможные другие периферийные устройства предоставить свои Віоѕы которые с точки зрения реализации полностью отделены от BIOS ПК на материнской плате, так же, как веб-браузер (или должен быть) полностью отдельно от операционной системы.
в linux вы можете найти емкость flash rom с большим количеством способов. команда dmidecode предоставляет много полезной информации о BIOS, включая его емкость чипа. Я, наконец, обнаружил, что это 1 МБ. Я предлагаю всем либо взглянуть на свою материнскую плату, либо попробовать live CD с linux.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]