SysInfo Plugin



1. INTRODUCTION

SysInfo plug-in for NSIS provides several functions that allow you to retrieve basic information about your computer. The creator of the installer (based on NSIS) can use the basic information to verify that the end user's system meets the specific hardware or software requirements.

Current version of plugin allows you to get data for several categories. Below, you can find all functions supported by plugin with description and example usage. More information about SysInfo plugin can be found in the file "SysInfoDemo.nsi", which is attached to the archive file of the SysInfo plugin.


SysInfo Plugin is based on WMI (Windows Management Instrumentation) - consists of a set of extensions to the Windows Driver Model that provides an operating system interface through which instrumented components provide information and notification. WMI is Microsoft's implementation of the Web-Based Enterprise Management (WBEM) and Common Information Model (CIM) standards from the Distributed Management Task Force (DMTF).



2. GENERAL USAGE

Function .onInit

  SysInfo::FunctionName "PARAM1" "PARAM2"
      ; Function can take parameters
      ; Parameters usage depends on given function (sometimes required)

  Pop $0 
         ; The function returns the retrieved value in the variable $0
         ; The function returns "error" if there is an error. It can also return an empty string

FunctionEnd

2.1 OPERATING SYSTEM

An operating system is a program that acts as an interface between the computer user and computer hardware, and controls the execution of programs. It manages all of the software and hardware on the computer. It performs basic tasks such as file, memory and process management, handling input and output, and controlling peripheral devices such as disk drives and printers.

  1. Operating System Name

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Short description of the object—a one-line string (includes the operating system version)
  SysInfo::GetOperatingSystem_Caption
  Pop $0
  DetailPrint "   Operating System Name: $0" ; Microsoft Windows 10 Pro
  2. Windows Manufacturer

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Name of the operating system manufacturer. For Windows-based systems, this value is "Microsoft Corporation"
  SysInfo::GetOperatingSystem_Manufacturer
  Pop $0
  DetailPrint "   Operating System Manufacturer: $0" ; Microsoft Corporation
  3. Windows Version

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Version number of the operating system
  SysInfo::GetOperatingSystem_Version
  Pop $0
  DetailPrint "   Operating System Version: $0" ; 10.0.19044
  4. Windows Build Number

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Build number of an operating system
  SysInfo::GetOperatingSystem_BuildNumber
  Pop $0
  DetailPrint "   Operating System Build Number: $0" ; 19044
  5. Windows Language

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Language version of the operating system installed
  SysInfo::GetOperatingSystem_LanguageID
  Pop $0
  DetailPrint "   Operating System Language: $0" ; 1045
  6. Windows Locale

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Language identifier used by the operating system (international numeric abbreviation for a country/region)
  SysInfo::GetOperatingSystem_Locale
  Pop $0
  DetailPrint "   Operating System Locale: $0" ; 0415
  7. Windows Code Set

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Code page value an operating system uses (contains a character table used to translate strings for different languages)
  SysInfo::GetOperatingSystem_CodeSet
  Pop $0
  DetailPrint "   Operating System Code Set: $0" ; 1250
  8. Windows Country Code

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Code for the country/region that an operating system uses. Values are based on international phone dialing prefixes
  SysInfo::GetOperatingSystem_CountryCode
  Pop $0
  DetailPrint "   Operating System Country Code: $0" ; 48
  9. Windows Edition ID

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Operating System Edition ID
  SysInfo::GetOperatingSystem_EditionID
  Pop $0
  DetailPrint "   Operating System Edition ID: $0" ; Professional
  10. Windows Display Version

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Operating System Display Version
  SysInfo::GetOperatingSystem_DisplayVersion
  Pop $0
  DetailPrint "   Operating System Display Version: $0" ; 21H2
  11. Windows Update Build Revision (UBR)

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Operating System Update Build Revision (UBR) number
  SysInfo::GetOperatingSystem_UBR
  Pop $0
  DetailPrint "   Operating System UBR: $0" ; 2130
  12. Windows ReleaseID

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Operating System ReleaseID
  SysInfo::GetOperatingSystem_ReleaseID
  Pop $0
  DetailPrint "   Operating System ReleaseID: $0" ; 2009

2.2 PROCESSOR (CPU)

Central Processing Unit (CPU) is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and input/output operations specified by the instructions in the program. Principal components of a CPU include the Arithmetic-Logic Unit (ALU), Processor Registers (an extremely fast memory location) and a Control Unit (it regulates the flow of input and output).

  1. CPU Name

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Label by which the object is known
  SysInfo::GetCPU_Name
  Pop $0
  DetailPrint "   CPU Name: $0" ; Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz
  2. CPU Description

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Description of the object
  SysInfo::GetCPU_Description
  Pop $0
  DetailPrint "   CPU Description: $0" ; Intel64 Family 6 Model 60 Stepping 3
  3. CPU Family

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Processor family type
  SysInfo::GetCPU_Family
  Pop $0
  DetailPrint "   CPU Family: $0" ; Intel(R) Core(TM) i7 processor
  4. CPU Manufacturer

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Name of the processor manufacturer
  SysInfo::GetCPU_Manufacturer
  Pop $0
  DetailPrint "   CPU Manufacturer: $0" ; GenuineIntel
  5. CPU Number of Cores

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Number of cores for the current instance of the processor. A core is a physical processor on the integrated circuit
  SysInfo::GetCPU_NumberOfCores
  Pop $0
  DetailPrint "   CPU Number of Cores: $0" ; 4
  6. CPU Number of Logical Processors

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Number of logical processors for the current instance of the processor
  SysInfo::GetCPU_NumberOfLogicalProcessors
  Pop $0
  DetailPrint "   CPU Number of Logical Processors: $0" ; 8
  7. CPU Architecture

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Processor architecture used by the platform
  SysInfo::GetCPU_Architecture
  Pop $0
  DetailPrint "   CPU Architecture: $0" ; x64
  8. CPU Max Clock Speed (MHz)

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Maximum speed of the processor, in MHz
  SysInfo::GetCPU_ClockSpeed
  Pop $0
  DetailPrint "   CPU Max Clock Speed: $0" ; 2401
  9. CPU External Clock (MHz)

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; External clock frequency, in MHz
  SysInfo::GetCPU_ExtClockSpeed
  Pop $0
  DetailPrint "   CPU External Clock: $0" ; 100
  10. CPU L2 Cache Size (KiB)

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Size of the Level 2 processor cache (external memory area that has a faster access time than RAM memory)
  SysInfo::GetCPU_L2CacheSize
  Pop $0
  DetailPrint "   CPU L2 Cache Size: $0" ; 1024
  11. CPU L3 Cache Size (KiB)

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Size of the Level 3 processor cache (external memory area that has a faster access time RAM memory)
  SysInfo::GetCPU_L3CacheSize
  Pop $0
  DetailPrint "   CPU L3 Cache Size: $0" ; 6144

2.3 MEMORY (RAM)

Memory is a device or system that operates at a high speed and is used to store information for immediate use in a computer or related computer hardware and digital electronic devices. Besides storing opened programs, computer memory serves as disk cache to improve both reading and writing performance. If needed, contents of the computer memory can be transferred to storage (virtual memory).

  1. Total Physical Memory

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = 0 -> Data in Bytes (Default) -> 17057247232
       ; PARAM = 1 -> Formatted Data -> 15,89 GiB
       ; PARAM = 2 -> Fully Formatted Data -> 15,89 GiB (17057247232 bytes)
       ; Notes:
       ; - Function without param returns result in bytes (like PARAM=0)
       ; - Function returns "error" if something goes wrong

  ; Total amount of physical memory available to the operating system
  StrCpy $R0 "2" ; PARAM (Fully Formatted Data)
  SysInfo::GetRAM_TotalPhysicalMemory "$R0"
  Pop $0
  DetailPrint "   Total Physical Memory: $0" ; 15,89 GiB (17057247232 bytes)
  2. Free Physical Memory

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = 0 -> Data in Bytes (Default) -> 10136122819
       ; PARAM = 1 -> Formatted Data -> 9,44 GiB
       ; PARAM = 2 -> Fully Formatted Data -> 9,44 GiB (59,40%)
       ; Notes:
       ; - Function without param returns result in bytes (like PARAM=0)
       ; - Function returns "error" if something goes wrong

  ; Number of physical memory currently unused and available
  StrCpy $R0 "2" ; PARAM (Fully Formatted Data)
  SysInfo::GetRAM_FreePhysicalMemory "$R0"
  Pop $0
  DetailPrint "   Free Physical Memory: $0" ; 9,44 GiB (59,40%)
  3. Used Physical Memory

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = 0 -> Data in Bytes (Default) -> 6921124413
       ; PARAM = 1 -> Formatted Data -> 6,45 GiB
       ; PARAM = 2 -> Fully Formatted Data -> 6,45 GiB (40,58%)
       ; Notes:
       ; - Function without param returns result in bytes (like PARAM=0)
       ; - Function returns "error" if something goes wrong

  ; Number of physical memory currently used
  StrCpy $R0 "2" ; PARAM (Fully Formatted Data)
  SysInfo::GetRAM_UsedPhysicalMemory "$R0"
  Pop $0
  DetailPrint "   Used Physical Memory: $0" ; 6,45 GiB (40,58%)
  4. Total Virtual Memory

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = 0 -> Data in Bytes (Default) -> 19327352832
       ; PARAM = 1 -> Formatted Data -> 18,26 GiB
       ; PARAM = 2 -> Fully Formatted Data -> 18,26 GiB (19327352832 bytes)
       ; Notes:
       ; - Function without param returns result in bytes (like PARAM=0)
       ; - Function returns "error" if something goes wrong

  ; Number of virtual memory (amount of total RAM and amount of paging space)
  StrCpy $R0 "1" ; PARAM (Formatted Data)
  SysInfo::GetRAM_TotalVirtualMemory "$R0"
  Pop $0
  DetailPrint "   Total Virtual Memory: $0" ; 18,26 GiB
  5. Free Virtual Memory

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = 0 -> Data in Bytes (Default) -> 10737418240
       ; PARAM = 1 -> Formatted Data -> 10,67 GiB
       ; PARAM = 2 -> Fully Formatted Data -> 10,67 GiB (58,43%)
       ; Notes:
       ; - Function without param returns result in bytes (like PARAM=0)
       ; - Function returns "error" if something goes wrong

  ; Number of virtual memory currently unused and available
  StrCpy $R0 "1" ; PARAM (Formatted Data)
  SysInfo::GetRAM_FreeVirtualMemory "$R0"
  Pop $0
  DetailPrint "   Free Virtual Memory: $0" ; 10,67 GiB
  6. Used Virtual Memory

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = 0 -> Data in Bytes (Default) -> 7516192768
       ; PARAM = 1 -> Formatted Data -> 7,59 GiB
       ; PARAM = 2 -> Fully Formatted Data -> 7,59 GiB (41,57%)
       ; Notes:
       ; - Function without param returns result in bytes (like PARAM=0)
       ; - Function returns "error" if something goes wrong

  ; Number of virtual memory currently used
  StrCpy $R0 "1" ; PARAM (Formatted Data)
  SysInfo::GetRAM_UsedVirtualMemory "$R0"
  Pop $0
  DetailPrint "   Used Virtual Memory: $0" ; 7,59 GiB
  7. Total PageFile Memory

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = 0 -> Data in Bytes (Default) -> 2550136832
       ; PARAM = 1 -> Formatted Data -> 2,38 GiB
       ; PARAM = 2 -> Fully Formatted Data -> 2,38 GiB (2550136832 bytes)
       ; Notes:
       ; - Function without param returns result in bytes (like PARAM=0)
       ; - Function returns "error" if something goes wrong

  ; Actual amount of disk space allocated for use with this page file
  StrCpy $R0 "0" ; PARAM (Bytes)
  SysInfo::GetRAM_TotalPageFileMemory "$R0"
  Pop $0
  DetailPrint "   Total PageFile Memory: $0" ; 2550136832
  8. Free PageFile Memory

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = 0 -> Data in Bytes (Default) -> 2483027968
       ; PARAM = 1 -> Formatted Data -> 2,3 GiB
       ; PARAM = 2 -> Fully Formatted Data -> 2,3 GiB (97,37%)
       ; Notes:
       ; - Function without param returns result in bytes (like PARAM=0)
       ; - Function returns "error" if something goes wrong

  ; Amount of disk space currently unused by the page file
  StrCpy $R0 "0" ; PARAM (Bytes)
  SysInfo::GetRAM_FreePageFileMemory "$R0"
  Pop $0
  DetailPrint "   Free PageFile Memory: $0" ; 2483027968
  9. Used PageFile Memory

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = 0 -> Data in Bytes (Default) -> 67108864
       ; PARAM = 1 -> Formatted Data -> 64 MiB
       ; PARAM = 2 -> Fully Formatted Data -> 64 MiB (2,63%)
       ; Notes:
       ; - Function without param returns result in bytes (like PARAM=0)
       ; - Function returns "error" if something goes wrong

  ; Amount of disk space currently used by the page file
  StrCpy $R0 "0" ; PARAM (Bytes)
  SysInfo::GetRAM_UsedPageFileMemory "$R0"
  Pop $0
  DetailPrint "   Used PageFile Memory: $0" ; 67108864
  10. Total Installed Memory

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = 0 -> Data in Bytes (Default) -> 17179869184
       ; PARAM = 1 -> Formatted Data -> 16,00 GiB
       ; PARAM = 2 -> Fully Formatted Data -> 16,00 GiB (17179869184 bytes)
       ; Notes:
       ; - Function without param returns result in bytes (like PARAM=0)
       ; - Function returns "error" if something goes wrong

  ; Total capacity of the physical memory
  StrCpy $R0 "0" ; PARAM (Bytes)
  SysInfo::GetRAM_TotalInstalledMemory "$R0"
  Pop $0
  DetailPrint "   Total Installed Memory: $0" ; 17179869184
  11. Total Reserved Memory
  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = 0 -> Data in Bytes (Default) -> 122621952
       ; PARAM = 1 -> Formatted Data -> 116.94 MiB
       ; PARAM = 2 -> Fully Formatted Data -> 116.94 MiB (122621952 bytes)
       ; Notes:
       ; - Function without param returns result in bytes (like PARAM=0)
       ; - Function returns "error" if something goes wrong

  ; Total capacity of reserved memory
  StrCpy $R0 "0" ; PARAM (Bytes)
  SysInfo::GetRAM_TotalReservedMemory "$R0"
  Pop $0
  DetailPrint "   Total Reserved Memory: $0" ; 122621952

2.4 STORAGE DEVICE

A storage device is any type of computing hardware that is used for storing, porting or extracting data files and objects. Storage devices can hold and store information both temporarily and permanently. They may be internal or external to a computer, server or computing device. These types of devices include the hard disk (SSD, HDD), the optical disk drive, Floppy Disk Drive (FDD) and USB storage devices.

  1. Storage Drive Type

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; The media type of the physical disk [Unspecified | HDD | SSD | SCM]
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DriveDiskMediaType "$R0"
  Pop $0
  DetailPrint "   Storage Drive Type: $0" ; SSD
  2. Storage Volume Name

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Volume name of the logical disk
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_LogicalDiskVolumeName "$R0"
  Pop $0
  DetailPrint "   Volume Name: $0" ; System
  3. Storage Volume Serial Number

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Volume serial number of the logical disk
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_LogicalDiskVolumeSerialNumber "$R0"
  Pop $0
  DetailPrint "   Volume Serial Number: $0" ; 43EFB0B2
  4. Storage Disk File System

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; File system on the logical disk
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_LogicalDiskFileSystem "$R0"
  Pop $0
  DetailPrint "   File System: $0" ; NTFS
  5. Storage Disk Drive Type

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Type of disk drive
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_LogicalDiskDriveType "$R0"
  Pop $0
  DetailPrint "   Disk Drive Type: $0" ; Local Disk
  6. Storage Disk Media Type

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Type of media currently present in the logical drive
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_LogicalDiskMediaType "$R0"
  Pop $0
  DetailPrint "   Disk Media Type: $0" ; Fixed hard disk media
  7. Storage Disk Drive Total Size

  ; Usage
  ; SysInfo::FunctionName "PARAM1" "PARAM2"
       ; PARAM1 = x: -> Disk Letter -> C:
       ; PARAM2 = 0 -> Data in Bytes (Default) -> 126701535232
       ; PARAM2 = 1 -> Formatted Data -> 118,73 GiB
       ; PARAM2 = 2 -> Fully Formatted Data -> 118,73 GiB (126701535232 bytes)
       ; Notes:
       ; - First parameter (PARAM1) is obligatory (disk letter)
       ; - Second parameter (PARAM2) is optional. If empty/not used returns data in bytes (like PARAM2=0)
       ; - Function returns "error" if something goes wrong

  ; Total Size of the logical disk drive
  StrCpy $R0 "C:" ; PARAM1 (Disk Letter)
  StrCpy $R1 "2"  ; PARAM2 (Fully Formatted Data)
  SysInfo::GetStorage_LogicalDiskSize "$R0" "$R1"
  Pop $0
  DetailPrint "   Disk Drive Total Size: $0" ; 118,73 GiB (126701535232 bytes)
  8. Storage Disk Drive Free Space

  ; Usage
  ; SysInfo::FunctionName "PARAM1" "PARAM2"
       ; PARAM1 = x: -> Disk Letter -> C:
       ; PARAM2 = 0 -> Data in Bytes (Default) -> 22548578304
       ; PARAM2 = 1 -> Formatted Data -> 21,27 GiB
       ; PARAM2 = 2 -> Fully Formatted Data -> 21,27 GiB (17,91%)
       ; Notes:
       ; - First parameter (PARAM1) is obligatory (disk letter)
       ; - Second parameter (PARAM2) is optional. If empty/not used returns data in bytes (like PARAM2=0)
       ; - Function returns "error" if something goes wrong

  ; Space available on the logical disk
  StrCpy $R0 "C:" ; PARAM1 (Disk Letter)
  StrCpy $R1 "2"  ; PARAM2 (Fully Formatted Data)
  SysInfo::GetStorage_LogicalDiskFreeSpace "$R0" "$R1"
  Pop $0
  DetailPrint "   Disk Drive Free Space: $0" ; 21,27 GiB (17,91%)
  9. Storage Disk Drive Used Space

  ; Usage
  ; SysInfo::FunctionName "PARAM1" "PARAM2"
       ; PARAM1 = x: -> Disk Letter -> C:
       ; PARAM2 = 0 -> Data in Bytes (Default) -> 104152956928
       ; PARAM2 = 1 -> Formatted Data -> 97,46 GiB
       ; PARAM2 = 2 -> Fully Formatted Data -> 97,46 GiB (82,09%)
       ; Notes:
       ; - First parameter (PARAM1) is obligatory (disk letter)
       ; - Second parameter (PARAM2) is optional. If empty/not used returns data in bytes (like PARAM2=0)
       ; - Function returns "error" if something goes wrong

  ; Space used on the logical disk
  StrCpy $R0 "C:" ; PARAM1 (Disk Letter)
  StrCpy $R1 "2"  ; PARAM2 (Fully Formatted Data)
  SysInfo::GetStorage_LogicalDiskUsedSpace "$R0" "$R1"
  Pop $0
  DetailPrint "   Disk Drive Used Space: $0" ; 97,46 GiB (82,09%)
  10. Storage Drive Model

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Disk drive model
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveModel "$R0"
  Pop $0
  DetailPrint "   Drive Model: $0" ; Samsung SSD 850 PRO 512GB
  11. Storage Drive Description

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Description of the object
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveDescription "$R0"
  Pop $0
  DetailPrint "   Drive Description: $0" ; Stacja dysków
  12. Storage Drive Manufacturer

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Name of the disk drive manufacturer
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveManufacturer "$R0"
  Pop $0
  DetailPrint "   Drive Manufacturer: $0" ; (Standardowe stacje dysków)
  13. Storage Drive Serial Number

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Number allocated by the manufacturer to identify the physical media
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveSerialNumber "$R0"
  Pop $0
  DetailPrint "   Drive Serial Number: $0" ; S2SXNSAFC07497R
  14. Storage Drive Interface Type

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Interface type of physical disk drive
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveInterfaceType "$R0"
  Pop $0
  DetailPrint "   Drive Interface Type: $0" ; IDE
  15. Storage Drive Media Type

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Type of media used or accessed by this device
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveMediaType "$R0"
  Pop $0
  DetailPrint "   Drive Media Type: $0" ; Fixed hard disk media
  16. Storage Drive Total Cylinders

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Total number of cylinders on the physical disk drive
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveTotalCylinders "$R0"
  Pop $0
  DetailPrint "   Drive Total Cylinders: $0" ; 62260
  17. Storage Drive Tracks/Cylinder

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Number of tracks in each cylinder on the physical disk drive
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveTracksPerCylinder "$R0"
  Pop $0
  DetailPrint "   Drive Tracks/Cylinder: $0" ; 255
  18. Storage Drive Total Tracks

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Total number of tracks on the physical disk drive
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveTotalTracks "$R0"
  Pop $0
  DetailPrint "   Drive Total Tracks: $0" ; 15876300
  19. Storage Drive Sectors/Track

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Number of sectors in each track for this physical disk drive
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveSectorsPerTrack "$R0"
  Pop $0
  DetailPrint "   Drive Sectors/Track: $0" ; 63
  20. Storage Drive Total Sectors

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Total number of sectors on the physical disk drive
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveTotalSectors "$R0"
  Pop $0
  DetailPrint "   Drive Total Sectors: $0" ; 1000206900
  21. Storage Drive Bytes/Sector

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Number of bytes in each sector for the physical disk drive
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveBytesPerSector "$R0"
  Pop $0
  DetailPrint "   Drive Bytes/Sector: $0" ; 512
  22. Storage Drive Total Heads

  ; Usage
  ; SysInfo::FunctionName "PARAM"
       ; PARAM = x: -> Disk Letter -> C:
       ; Notes:
       ; - Parameter (PARAM) is obligatory (disk letter)
       ; - Function returns "error" if something goes wrong

  ; Total number of heads on the disk drive
  StrCpy $R0 "C:" ; PARAM (Disk Letter)
  SysInfo::GetStorage_DiskDriveTotalHeads "$R0"
  Pop $0
  DetailPrint "   Drive Total Heads: $0" ; 255
  23. Storage Drive Size

  ; Usage
  ; SysInfo::FunctionName "PARAM1" "PARAM2"
       ; PARAM1 = x: -> Disk Letter -> C:
       ; PARAM2 = 0 -> Data in Bytes (Default) -> 512105932800
       ; PARAM2 = 1 -> Formatted Data -> 476,94 GiB
       ; PARAM2 = 2 -> Fully Formatted Data -> 476,94 GiB (512105932800 bytes)
       ; Notes:
       ; - First parameter (PARAM1) is obligatory (disk letter)
       ; - Second parameter (PARAM2) is optional. If empty/not used returns data in bytes (like PARAM2=0)
       ; - Function returns "error" if something goes wrong

  ; Total Size of the disk drive
  StrCpy $R0 "C:" ; PARAM1 (Disk Letter)
  StrCpy $R1 "2"  ; PARAM2 (Fully Formatted Data)
  SysInfo::GetStorage_DiskDriveSize "$R0" "$R1"
  Pop $0
  DetailPrint "   Drive Size: $0" ; 476,94 GiB (512105932800 bytes)

2.5 GRAPHICS CARD

Graphics Card is an integrated circuit that generates the video signal sent to a computer display. The card is usually located on the computer motherboard or is a separate circuit board inserted into expansion slot (AGP, PCI Express), but is sometimes built into the computer display unit. It contains GPU (processor dedicated to creating images), digital-to-analog converter and memory chips that store display data.

  1. Graphics Card Manufacturer

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Graphics Card Manufacturer
  SysInfo::GetVideoController_AdapterCompatibility
  Pop $0
  DetailPrint "   Graphics Card Manufacturer: $0" ; Intel Corporation
  2. Adapter DAC Type

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Name or identifier of the digital-to-analog converter (DAC) chip
  SysInfo::GetVideoController_AdapterDACType
  Pop $0
  DetailPrint "   Adapter DAC Type: $0" ; Internal
  3. Adapter RAM

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Memory size of the video adapter
  SysInfo::GetVideoController_AdapterRAM
  Pop $0
  DetailPrint "   Adapter RAM (Bytes): $0" ; 1073741824
  4. Availability

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Availability and status of the device
  SysInfo::GetVideoController_Availability
  Pop $0
  DetailPrint "   Availability: $0" ; Running or Full Power
  5. Current Bits/Pixel

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Number of bits used to display each pixel
  SysInfo::GetVideoController_CurrentBitsPerPixel
  Pop $0
  DetailPrint "   Current Bits Per Pixel: $0" ; 32
  6. Current Horizontal Resolution

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Current number of horizontal pixels
  SysInfo::GetVideoController_CurrentHorizontalResolution
  Pop $0
  DetailPrint "   Current Horizontal Resolution [px]: $0" ; 2560
  7. Current Vertical Resolution

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Current number of vertical pixels
  SysInfo::GetVideoController_CurrentVerticalResolution
  Pop $0
  DetailPrint "   Current Vertical Resolution [px]: $0" ; 1440
  8. Current Number Of Colors

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Number of colors supported at the current resolution
  SysInfo::GetVideoController_CurrentNumberOfColors
  Pop $0
  DetailPrint "   Current Number Of Colors: $0" ; 4294967296
  9. Current Refresh Rate

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Frequency at which the video controller refreshes the image for the monitor
  SysInfo::GetVideoController_CurrentRefreshRate
  Pop $0
  DetailPrint "   Current Refresh Rate [Hz]: $0" ; 60
  10. Current Scan Mode

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Current scan mode
  SysInfo::GetVideoController_CurrentScanMode
  Pop $0
  DetailPrint "   Current Scan Mode: $0" ; Noninterlaced
  11. Max Refresh Rate

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Maximum refresh rate of the video controller in hertz
  SysInfo::GetVideoController_MaxRefreshRate
  Pop $0
  DetailPrint "   Max Refresh Rate [Hz]: $0" ; 75
  12. Min Refresh Rate

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Minimum refresh rate of the video controller in hertz
  SysInfo::GetVideoController_MinRefreshRate
  Pop $0
  DetailPrint "   Min Refresh Rate [Hz]: $0" ; 23
  13. Graphics Card Name

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Label by which the object is known
  SysInfo::GetVideoController_Name
  Pop $0
  DetailPrint "   Graphics Card Name: $0" ; Intel(R) HD Graphics 4600
  14. Video Architecture

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Type of video architecture
  SysInfo::GetVideoController_VideoArchitecture
  Pop $0
  DetailPrint "   Video Architecture: $0" ; VGA

2.6 NETWORK ADAPTER

A Network Adapter (Network Interface Controller) is a computer hardware component that connects a computer to a computer network. It implements the electronic circuitry required to communicate using a specific physical layer and data link layer (Ethernet, Wi-Fi). This provides a base for a full network protocol stack allowing communication among LAN computers and large-scale network communications through routable protocols (IP).

  1. Network Adapter Name

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Label by which the object is known
  SysInfo::GetNetworkAdapterName
  Pop $0
  DetailPrint "   Network Adapter Name: $0" ; Realtek PCIe GBE Family Controller
  2. Network Adapter Manufacturer

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Name of the network adapter's manufacturer
  SysInfo::GetNetworkAdapterManufacturer
  Pop $0
  DetailPrint "   Network Adapter Manufacturer: $0" ; Realtek
  3. Network Adapter Type

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Network medium in use (Ethernet 802.3, Wide Area Network (WAN), Wireless, 1394, etc)
  SysInfo::GetNetworkAdapterAdapterType
  Pop $0
  DetailPrint "   Network Adapter Type: $0" ; Ethernet 802.3
  4. MAC Address

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Media Access Control (MAC) address for this network adapter
  SysInfo::GetNetworkAdapterMACAddress
  Pop $0
  DetailPrint "   MAC Address: $0" ; 10:C3:7B:23:FA:4C
  5. Default IP Gateway

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Array of IP addresses of default gateways that the computer system uses
  SysInfo::GetNetworkAdapterDefaultIPGateway
  Pop $0
  DetailPrint "   Default IP Gateway: $0" ; 192.168.0.1 / fe30::ae12:5ff:fec5:5a70
  6. IP Address

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Array of all of the IP addresses associated with the current network adapter (IPv6 or IPv4)
  SysInfo::GetNetworkAdapterIPAddress
  Pop $0
  DetailPrint "   IP Address: $0" ; 192.168.0.21 / fe40::d060:34d1:aade:e890
  7. IP Subnet

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Array of all of the subnet masks associated with the current network adapter
  SysInfo::GetNetworkAdapterIPSubnet
  Pop $0
  DetailPrint "   IP Subnet: $0" ; 255.255.255.0 / 64 / 128 / 64
  8. DNS Server

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Array of server IP addresses to be used in querying for DNS servers
  SysInfo::GetNetworkAdapterDNSServerSearchOrder
  Pop $0
  DetailPrint "   DNS Server: $0" ; 1.1.1.1 / 1.0.0.1
  9. DHCP Status (Enabled)

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Dynamic Host Configuration Protocol (DHCP) Server status
  SysInfo::GetNetworkAdapterDHCPEnabled
  Pop $0
  DetailPrint "   DHCP Status (Enabled): $0" ; True
  10. DHCP Server

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; IP address of the dynamic host configuration protocol (DHCP) server
  SysInfo::GetNetworkAdapterDHCPServer
  Pop $0
  DetailPrint "   DHCP Server: $0" ; 192.168.0.1
  11. Net Status (Enabled)

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Indicates whether the adapter is enabled or not
  SysInfo::GetNetworkAdapterNetEnabled
  Pop $0
  DetailPrint "   Net Status (Enabled): $0" ; True
  12. Net Connection ID

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Name of the network connection as it appears in the Network Connections Control Panel
  SysInfo::GetNetworkAdapterNetConnectionID
  Pop $0
  DetailPrint "   Net Connection ID: $0" ; Ethernet
  13. Net Connection Status

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; State of the network adapter connection to the network
  SysInfo::GetNetworkAdapterNetConnectionStatus
  Pop $0
  DetailPrint "   Net Connection Status: $0" ; Connected
  14. Service Name

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Service name of the network adapter
  SysInfo::GetNetworkAdapterServiceName
  Pop $0
  DetailPrint "   Service Name: $0" ; rt640x64
  15. Speed

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Estimate of the current bandwidth in bits per second
  SysInfo::GetNetworkAdapterSpeed
  Pop $0
  DetailPrint "   Speed [bit/s]: $0" ; 1000000000
  16. Bytes Received

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Rate at which bytes are received on the interface, including framing characters
  SysInfo::GetNetworkAdapterBytesReceivedPersec
  Pop $0
  DetailPrint "   Received Bytes [B/s]: $0" ; 1106240307
  17. Bytes Sent

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Rate at which bytes are sent on the interface, including framing characters
  SysInfo::GetNetworkAdapterBytesSentPersec
  Pop $0
  DetailPrint "   Sent Bytes [B/s]: $0" ; 35305629
  18. Total Bytes

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Rate at which bytes are sent and received on the interface, including framing characters
  SysInfo::GetNetworkAdapterBytesTotalPersec
  Pop $0
  DetailPrint "   Total Bytes [B/s]: $0" ; 1141545936

2.7 TRUSTED PLATFORM MODULE (TPM)

Trusted Platform Module (TPM) is an international standard for a secure cryptoprocessor, a dedicated microcontroller designed to secure hardware through integrated cryptographic keys. The term can also refer to a chip conforming to the standard. TPM is used for digital rights management (DRM), Windows Defender, Windows Domain logon, protection and enforcement of software licenses, and prevention of cheating in online games.

  1. TPM Status (Activated)

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Indicates whether the TPM is activated
  SysInfo::GetTrustedPlatformModule_IsActivated_InitialValue
  Pop $0
  DetailPrint "   TPM Status (Activated): $0" ; True
  2. TPM Status (Enabled)

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Indicates whether the TPM is enabled
  SysInfo::GetTrustedPlatformModule_IsEnabled_InitialValue
  Pop $0
  DetailPrint "   TPM Status (Enabled): $0" ; True
  3. TPM Status (Owned)

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Indicates whether the TPM has an owner
  SysInfo::GetTrustedPlatformModule_IsOwned_InitialValue
  Pop $0
  DetailPrint "   TPM Status (Owned): $0" ; True
  4. TPM Specification Version (TCG)

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; The version of the Trusted Computing Group (TCG) specification that the TPM supports
  SysInfo::GetTrustedPlatformModule_SpecVersion
  Pop $0
  DetailPrint "   TPM Specification Version (TCG): $0" ; 2.0, 0, 1.38
  5. TPM Manufacturer Version

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; The version of the TPM, as specified by the manufacturer
  SysInfo::GetTrustedPlatformModule_ManufacturerVersion
  Pop $0
  DetailPrint "   TPM Manufacturer Version: $0" ; 7.85.4555.0
  6. TPM Manufacturer Version Info

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Other manufacturer-specific version information for the TPM
  SysInfo::GetTrustedPlatformModule_ManufacturerVersionInfo
  Pop $0
  DetailPrint "   TPM Manufacturer Version Info: $0" ; SLB9670
  7. TPM Manufacturer ID

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; The identifying information that uniquely names the TPM manufacturer
  SysInfo::GetTrustedPlatformModule_ManufacturerId
  Pop $0
  DetailPrint "   TPM Manufacturer ID: $0" ; 1229346816
  8. TPM Physical Presence Version

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Manufacturer-specific version information for the TPM
  SysInfo::GetTrustedPlatformModule_PhysicalPresenceVersionInfo
  Pop $0
  DetailPrint "   TPM Physical Presence Version: $0" ; 1.3

2.8 SECURE BOOT

Secure boot is a security standard developed by members of the PC industry to help make sure that a device boots using only software that is trusted by the Original Equipment Manufacturer (OEM). When the PC starts, the firmware checks the signature of each piece of boot software, including UEFI firmware drivers (also known as Option ROMs), EFI applications, and the operating system. If the signatures are valid, the PC boots, and the firmware gives control to the operating system.

  1. Secure Boot Status

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; Secure Boot Status (0-Disabled | 1-Enabled | Empty string = no info)
  SysInfo::GetSecureBootStatus
  Pop $0
  DetailPrint "   Secure Boot Status: $0" ; 0

2.9 UEFI BOOT/LEGACY BIOS BOOT

The Unified Extensible Firmware Interface (UEFI) is a publicly available specification that defines a software interface between an operating system and platform firmware. UEFI replaces the legacy Basic Input/Output System (BIOS) boot firmware originally present in all IBM PC-compatible personal computers, with most UEFI firmware implementations providing support for legacy BIOS services. UEFI can support remote diagnostics and repair of computers, even with no operating system installed.

  1. UEFI Boot Mode Status

  ; Usage
  ; SysInfo::FunctionName
       ; Notes:
       ; - Function returns "error" if something goes wrong

  ; UEFI Boot Mode Status (0-Legacy BIOS | 1-UEFI | Empty string = no info)
  SysInfo::GetUEFIBootModeStatus
  Pop $0
  DetailPrint "   UEFI Boot Mode Status: $0" ; 1


3. DOWNLOAD



NSIS SYSINFO PLUGIN
Hardware and system information - NSIS SysInfo 2.0.0.0 Plugin (32/64-Bit UNICODE)


NSIS SysInfo Plugin (32/64-Bit Unicode)


Release Date: November 4, 2022 (Downloaded: 9 times)
Version: 2.0.0.0
Architecture: Windows (NSIS 32/64-Bit Unicode)
License: Freeware
Copyright: Copyright © 2016 - 2022 Paweł Porwisz
File Size: 858 KB (879571 bytes)
Hash (SHA256): f3828ac0e52884466ef406a56274d34ca0a1198e85508d614fabb32aef4694fc





4. LICENSE

NSIS SysInfo Plugin

Copyright © 2016 - 2022 Paweł Porwisz
All rights reserved


INSTALLATION OR USE OF THE NSIS PLUGIN INDICATES YOUR ASSENT TO THE FOLLOWING LICENSE AGREEMENT.


THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.