Boot Configuration Functions Header

From NSIS Wiki
Jump to navigationJump to search

The bootcfg.zip (10 KB) header file provides functions to manipulate the boot configration data (BCD).

The below example displays the current boot entry in a message box.

More examples are listed in Category:bootcfg.nsh

Please see links below for further information.

Example

; Licensed under the zlib/libpng license (same as NSIS)
 
; Unicode builds:
; x86 unicode
; makensis "-XTarget x86-unicode" script.nsi
; amd64 unicode
; makensis "-XTarget amd64-unicode" script.nsi
 
!define NAME "Boot Info"
Name "${NAME}"
Caption "${NAME}"
 
!include bootcfg.nsh
 
; Include required functions
${BOOTCFG_ConnectWMI}
${BOOTCFG_GetObject}
${BOOTCFG_OpenDefaultBcdStore}
${BOOTCFG_GetBcdObjectDescription}
 
Function .onInit
  InitPluginsDir
  ${BOOTCFG_ConnectWMI} $2 $3 $0
  ${If} $0 != 0
    StrCpy $1 $3
    StrCpy $3 ""
    StrCpy $2 ""
  ${Else}
    ${BOOTCFG_GetObject} $3 "BcdStore" $4 $0
    ${If} $0 != 0
      StrCpy $1 $4
      StrCpy $4 ""
    ${Else}
      ${BOOTCFG_GetObject} $3 "BcdObject" $5 $0
      ${If} $0 != 0
        StrCpy $1 $5
        StrCpy $5 ""
      ${Else}
        ${BOOTCFG_OpenDefaultBcdStore} $3 $4 $6 $0
        ${If} $0 != 0
          StrCpy $1 $6
          StrCpy $6 ""
        ${Else}
          ${BOOTCFG_GetBcdObjectDescription} $3 $4 $6 \
            $5 ${BOOTCFG_CURRENT_GUID} $1
        ${EndIf}
      ${EndIf}
    ${EndIf}
  ${EndIf}
 
  ${BOOTCFG_ReleaseObject} $6
  ${BOOTCFG_ReleaseObject} $5
  ${BOOTCFG_ReleaseObject} $4
  ${BOOTCFG_ReleaseObject} $3
  ${BOOTCFG_ReleaseObject} $2
 
  ${If} $0 == 0
    MessageBox MB_OK "Current boot entry: $1"
  ${Else}
    IntFmt $0 "0x%08X" $0
    MessageBox MB_OK "$1: $0"
  ${EndIf}
  Quit
FunctionEnd
 
Section
SectionEnd

Links