Как увидеть размер ROM?

в Windows, как я могу увидеть емкость чипа ROM, установленного на моем компьютере для хранения UEFI / BIOS? Я бы предпочел способ использования инструмента или команды Windows без установки какого-либо другого приложения.

30
задан Excellll
20.03.2023 20:44 Количество просмотров материала 3212
Распечатать страницу

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

более дальнеишее чтение

2
отвечен and31415 2023-03-22 04:32

Я не думаю, что вы можете, по крайней мере, не в общем виде.

в принципе, это потому, что размер кода 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 ПК на материнской плате, так же, как веб-браузер (или должен быть) полностью отдельно от операционной системы.

2
отвечен a CVn 2023-03-22 06:49

в linux вы можете найти емкость flash rom с большим количеством способов. команда dmidecode предоставляет много полезной информации о BIOS, включая его емкость чипа. Я, наконец, обнаружил, что это 1 МБ. Я предлагаю всем либо взглянуть на свою материнскую плату, либо попробовать live CD с linux.

-2
отвечен The Linux GK 2023-03-22 09:06

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх