American Megatrends, Inc.

NvramSmi

Copyright

Release Notes

© American Megatrends, Inc.


NvramSmi

AMIBIOS Document References

hidenfiles

Release Notes01.htm

Release Notes02.htm

Release Notes03.htm

Release Notes04.htm

Built on 16:21:27 03/28/14


Release Notes - NDA Required

Component Information:
Component Title:NVRAM SMI
Component Reference Name: NvramSmi
Component Type: eModule
Release Date: 2011-12-12
Source Control Label: 4.6.5.1_NvramSmi_1
Source Control Location: Alaska;$/Alaska/SOURCE/Modules/NvramSmi/

Dependencies
<
EFI_SMM_SW_DISPATCH_PROTOCOL_GUID and EFI_SMM_BASE2_PROTOCOL_GUID
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:

The main purpose of the NvramSmi module is to facilitate migration of the NVRAM Services into SMM.
The NVRAM Services might be migrated to SMM on some systems to achieve a more secure environment by locking SPI flash device so that is can only be updated in the System Management Mode (SMM) and by hiding NVRAM driver’s code and data in the protected SMM memory.
Once NVRAM Services are migrated to SMM, the NvramSmi driver provides a replacement for a standard Runtime Variable Services.
NvramSmi driver’s implementation of the Variable Services, redirect variable service requests to the SMM NVRAM driver.

Filename | Description
NvramSmi.cif | NvramSmi Module cif file, containing all NvramSmi files
NvramSmi.chm | NvramSmi chm file, containing release notes and information about eModule
NvramSmi.sdl | NvramSmi Module SDL tokens file (modified by VeB)
NvramSmi.mak | NvramSmi Module MAK file (builds Module and all it's components)
NvramSmi.c | Main NvramSmi Driver File. It has NvramSmi Driver entry point and all routines.
NvramSmi.dxs | NvramSmi RT/SMM Driver dependency file
NvramSmiDxe.dxs | NvramSmi DXE Driver dependency file
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_37, Dated: 2011-09-14
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): WinDDK 7600.16385.1; DDK 3790.1830
New features added in this label:
  1. NONE. Initial Label.
General Bug Fixes:
  1. NONE.
EIP addressed in this label:
  1. EIP 77762. Create a initial label for a created NvramSmi eModule.
Files changed for EIP fixes:
    NONE
Known Limitations and Erratas in this label:
NONE
Remaining Issues:
NONE
Unit Testing:
Testing was performed by adding trace messages in standard Nvram Variables functions and corresponded SMI handlers. When trace output was collected on boot, trace messages appears one after another, which shows that Nvram services were handled by SMI code.
Validation Testing:
NONE
Release History:
NONE

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title:NVRAM SMI
Component Reference Name: NvramSmi
Component Type: eModule
Release Date: 2012-04-04
Source Control Label: 4.6.5.1_NvramSmi_2
Source Control Location: Alaska;$/Alaska/SOURCE/Modules/NvramSmi/

Dependencies
EFI_SMM_SW_DISPATCH_PROTOCOL_GUID and EFI_SMM_BASE2_PROTOCOL_GUID
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:

The main purpose of the NvramSmi module is to facilitate migration of the NVRAM Services into SMM.
The NVRAM Services might be migrated to SMM on some systems to achieve a more secure environment by locking SPI flash device so that is can only be updated in the System Management Mode (SMM) and by hiding NVRAM driver’s code and data in the protected SMM memory.
Once NVRAM Services are migrated to SMM, the NvramSmi driver provides a replacement for a standard Runtime Variable Services.
NvramSmi driver’s implementation of the Variable Services, redirect variable service requests to the SMM NVRAM driver.

Filename | Description
NvramSmi.cif | NvramSmi Module cif file, containing all NvramSmi files
NvramSmi.chm | NvramSmi chm file, containing release notes and information about eModule
NvramSmi.sdl | NvramSmi Module SDL tokens file (modified by VeB)
NvramSmi.mak | NvramSmi Module MAK file (builds Module and all it's components)
NvramSmi.c | Main NvramSmi Driver File. It has NvramSmi Driver entry point and all routines.
NvramSmi.dxs | NvramSmi RT/SMM Driver dependency file
NvramSmiDxe.dxs | NvramSmi DXE Driver dependency file
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_38, Dated: 2011-12-20
Visual eBios: RSS.5.72.0219, Dated: 2011-12-20
Compiler Tool(s): WinDDK 7600.16385.1; DDK 3790.1830
New features added in this label:
NONE
General Bug Fixes:
  • EIP 80096. EFI Shell 'time' command hangs on Rose City CRB with label 15 BIOS. Root cause: Memory overwriten if too long VariableLength parameter is passed to GetVariable function in NvramSmi.c.
    • EIP addressed in this label:
  • EIP 85100. Added handling of using gST->RuntimeServices->(VariableServices) from SMM.
    • Files changed for EIP fixes:
    NvramSmi.c: EIP 80096; EIP85100.
    NvramSmi.sdl: EIP 80096.
    Known Limitations and Erratas in this label:
    NONE
    Remaining Issues:
    NONE
    Unit Testing:
    Testing was performed by adding trace messages in standard Nvram Variables functions and corresponded SMI handlers. When trace output was collected on boot, trace messages appears one after another, which shows that Nvram services were handled by SMI code. Bug fixes confirmed by engineers, who created an EIP.
    Validation Testing:
    NONE
    Release History:
    Release_1

    © American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title:NVRAM SMI
Component Reference Name: NvramSmi
Component Type: eModule
Release Date: 2012-08-20
Source Control Label: 4.6.5.1_NvramSmi_3
Source Control Location: Alaska;$/Alaska/SOURCE/Modules/NvramSmi/

Dependencies
EFI_SMM_SW_DISPATCH_PROTOCOL_GUID and EFI_SMM_BASE2_PROTOCOL_GUID
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:

The main purpose of the NvramSmi module is to facilitate migration of the NVRAM Services into SMM.
The NVRAM Services might be migrated to SMM on some systems to achieve a more secure environment by locking SPI flash device so that is can only be updated in the System Management Mode (SMM) and by hiding NVRAM driver’s code and data in the protected SMM memory.
Once NVRAM Services are migrated to SMM, the NvramSmi driver provides a replacement for a standard Runtime Variable Services.
NvramSmi driver’s implementation of the Variable Services, redirect variable service requests to the SMM NVRAM driver.

Filename | Description
NvramSmi.cif | NvramSmi Module cif file, containing all NvramSmi files
NvramSmi.chm | NvramSmi chm file, containing release notes and information about eModule
NvramSmi.sdl | NvramSmi Module SDL tokens file (modified by VeB)
NvramSmi.mak | NvramSmi Module MAK file (builds Module and all it's components)
NvramSmi.c | Main NvramSmi Driver File. It has NvramSmi Driver entry point and all routines.
NvramSmi.dxs | NvramSmi RT/SMM Driver dependency file
NvramSmiDxe.dxs | NvramSmi DXE Driver dependency file
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_40, Dated: 2012-07-03
Visual eBios: RSS.5.73.0239, Dated: 2012-06-21
Compiler Tool(s): WinDDK 7600.16385.1; DDK 3790.1830
New features added in this label:
NONE.
General Bug Fixes:
  • EIP 86642. Bios post will hang after add the NVRAMSMI module because pSmmBase do not exist in PI mode during runtime. Fixed by do not accesing pSmmBase after going Virtual.
  • EIP 88363. Variable Virtual was declared dependent from PI_SPECIFICATION_VERSION by mistake. Fixed by removing dependency from PI_SPECIFICATION_VERSION.
  • EIP 96125. System will hang when GetVariable in SMM because of pSmmBase->InSmm was destriyed by RT legacy test application. Fixed by adding Legacy Boot Event.
    • EIP addressed in this label:
  • EIP 89155. NVRAM SMI module does not boot in PI 1.2 on some projects.
    • Files changed for EIP fixes:
    NvramSmi.c: EIP 86642, EIP 88363, EIP 89155, EIP 96125.
    NvramSmi.sdl: EIP 89155.
    NvramSmi.dxs: EIP 89155.
    Known Limitations and Erratas in this label:
    NONE
    Remaining Issues:
    NONE
    Unit Testing:
    Testing was performed by adding trace messages in standard Nvram Variables functions and corresponded SMI handlers. When trace output was collected on boot, trace messages appears one after another, which shows that Nvram services were handled by SMI code. Bug fixes confirmed by engineers, who created an EIP.
    Validation Testing:
    NONE
    Release History:
    Release_2

    © American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title:NVRAM SMI
Component Reference Name: NvramSmi
Component Type: eModule
Release Date: 2012-11-29
Source Control Label: 4.6.5.1_NvramSmi_4
Source Control Location: Alaska;$/Alaska/SOURCE/Modules/NvramSmi/

Dependencies
EFI_SMM_SW_DISPATCH_PROTOCOL_GUID and EFI_SMM_BASE2_PROTOCOL_GUID
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:

The main purpose of the NvramSmi module is to facilitate migration of the NVRAM Services into SMM.
The NVRAM Services might be migrated to SMM on some systems to achieve a more secure environment by locking SPI flash device so that is can only be updated in the System Management Mode (SMM) and by hiding NVRAM driver’s code and data in the protected SMM memory.
Once NVRAM Services are migrated to SMM, the NvramSmi driver provides a replacement for a standard Runtime Variable Services.
NvramSmi driver’s implementation of the Variable Services, redirect variable service requests to the SMM NVRAM driver.

Filename | Description
NvramSmi.cif | NvramSmi Module cif file, containing all NvramSmi files.
NvramSmi.chm | NvramSmi chm file, containing release notes and information about eModule.
NvramSmi.sdl | NvramSmi Module SDL tokens file (modified by VeB).
NvramSmi.mak | NvramSmi Module MAK file (builds Module and all it's components).
NvramSmi.c | Main NvramSmi Driver File. It has NvramSmi Driver entry point and all routines.
NvramSmi.dxs | NvramSmi RT/SMM Driver dependency file
NvramSmiPi1.dxs | NvramSmi Driver dependency file for PI_SPECIFICATION_VERSION under 0x1000A scenario.
NvramSmiDxe.dxs | NvramSmi DXE Driver dependency file.
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_40, Dated: 2012-07-03
Visual eBios: RSS.5.73.0239, Dated: 2012-06-21
Compiler Tool(s): WinDDK 7600.16385.1; DDK 3790.1830
New features added in this label:
NONE.
General Bug Fixes:
NONE
EIP addressed in this label:
  • EIP 98678. GetVariable() response slow. Added token to process only SetVariable through SMI.
  • EIP 102428. Suse 11 SP2 can't boot successfully with uEFI mode and Xen kernel. Os can't handle optimized comands. Switch back to Memcopy.
  • EIP 106304. Separate NvramSmiPi1.dxs added for PI_SPECIFICATION_VERSION<0x1000A scenario.
    • Files changed for EIP fixes:
    NvramSmi.c: EIP 102428, EIP 106304, EIP 98678.
    NvramSmi.sdl: EIP 98678.
    NvramSmi.cif: EIP 106304.
    Added NvramSmiPi1.dxs: EIP 106304.
    Known Limitations and Erratas in this label:
    NONE
    Remaining Issues:
    NONE
    Unit Testing:
    Testing was performed by adding trace messages in standard Nvram Variables functions and corresponded SMI handlers. When trace output was collected on boot, trace messages appears one after another, which shows that Nvram services were handled by SMI code. Bug fixes confirmed by engineers, who created an EIP.
    Validation Testing:
    NONE
    Release History:
    Release_3

    © American Megatrends Inc.


Copyright

American Megatrends, Inc.
5555 Oakbrook Parkway
Suite 200
Norcross, GA 30093 (USA)

Copyright (c) 1999-2014 American Megatrends, Inc. All Rights Reserved.

This publication contains proprietary information, which is protected by copyright. No part of this publication may be reproduced, transcribed, stored in a retrieval system, translated into any language or computer language, or transmitted in any form whatsoever without the prior written consent of the publisher, American Megatrends, Inc.

American Megatrends, Inc. retains the right to update, change, modify this publication at any time, without notice.

For Additional Information

Call American Megatrends BIOS Sales Department at 1-800-828-9264 for additional information.

Limitations of Liability

In no event shall American Megatrends be held liable for any loss, expenses, or damages of any kind whatsoever, whether direct, indirect, incidental, or consequential, arising from the design or use of this product or the support materials provided with the product.

Limited Warranty

No warranties are made, either expressed or implied, with regard to the contents of this work, its merchantability, or fitness for a particular use. American Megatrends assumes no responsibility for errors and omissions or for the uses made of the material contained herein or reader decisions based on such use.

Trademark and Copyright Acknowledgments

All product names used in this publication are for identification purposes only and are trademarks of their respective Companies.


Release Notes - NDA Required

Component Information:
Component Title:NVRAM SMI
Component Reference Name: NvramSmi
Component Type: eModule
Release Date: 2014-03-28
Source Control Label: 4.6.5.1_NvramSmi_5
Source Control Location: Alaska;$/Alaska/SOURCE/Modules/NvramSmi/

Dependencies
EFI_SMM_SW_DISPATCH_PROTOCOL_GUID and EFI_SMM_BASE2_PROTOCOL_GUID
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:

The NvramSmi module helps secure a system by providing a set of variable service functions which route variable access through the SMM interface.
This is accomplished by a callback at the ReadyToBootEvent, which replaces the existing variable service function pointers with versions which will force the request through a SMM mailbox interface.

Filename | Description
NvramSmi.cif | NvramSmi Module cif file, containing all NvramSmi files.
NvramSmi.chm | NvramSmi chm file, containing release notes and information about eModule.
NvramSmi.sdl | NvramSmi Module SDL tokens file.
NvramSmi.mak | NvramSmi Module MAK file (builds Module and all it's components).
NvramSmi.c | Main NvramSmi Source File. It has NvramSmi Driver entry point and all routines.
NvramSmi.dxs | NvramSmi dependency file for a Framework mode.
NvramSmiPi1.dxs | NvramSmi Driver dependency file for PI 1.0 and above compliance.
NvramSmiDxe.dxs | NvramSmi DXE Driver dependency file for above PI 1.0 compliance.
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_41, Dated: 2013-04-21
Visual eBios: RSS.5.73.0244, Dated: 2013-03-19
Compiler Tool(s): WinDDK 7600.16385.1; DDK 3790.1830
New features added in this label:
NONE.
General Bug Fixes:
  • EIP 119970. NvramSmi handling of very big variable fixed. Check for size and returning out of resources moved prior to disabling interrupts and Smi in NvSmiBeginCriticalSection.
    • EIP addressed in this label:
  • EIP 109427. Corrected issues found by CppCheck in NvramSmi eModule.
  • EIP 154299. Integer + heap potential overflow in SetVariable patched.
    • Files changed for EIP fixes:
    NvramSmi.c: EIP 119970, EIP 109427, EIP 154299.
    Known Limitations and Erratas in this label:
    NONE
    Remaining Issues:
    NONE
    Unit Testing:
    Testing was performed by adding trace messages in standard Nvram Variables functions and corresponded SMI handlers. When trace output was collected on boot, trace messages appears one after another, which shows that Nvram services were handled by SMI code. Bug fixes confirmed by engineers, who created an EIP.
    Validation Testing:
    NONE
    Release History:
    Release_4
    Release_3
    Release_2
    Release_1

    © American Megatrends Inc.


Function by File Name

AMIBIOS Function Reference

By File Name

The following is a list of the source files.
For a list in alphabetical order, see In Alphabetical Order.

  • NvramSmi.c
  • NvramSmi.dxs
  • NvramSmi.mak
  • NvramSmiDxe.dxs
  • NvramSmiPi1.dxs


NvramSmi.c

Description:
NVRAM SMI DXE driver.

The following functions are used in the file: NvramSmi.c.

Function | Description
BeginCriticalSection | This function calls when critical section begins. It disables interupts, and Smi and fills CRITICAL_SECTION structure fields
EndCriticalSection | This function calls when critical section ends. It enable interupts, and Smi and fills CRITICAL_SECTION structure fields
GetNextVariableNameToSmi | This function searches for next Var after Var with specific name and GUID and returns it's Name in SMM synchronizing Varstors before and after operation.
GetVariableToSmi | This function searches for Var with specific GUID and Name
InSmmFunction | Registration of the SMI function.
LocateCommunicateProt | This function will be called to locate Smm Communication Protocol
NotInSmmFunction | This is the "NotInSmmFunction" parameter for the InitSmmHandler function in the entry point. It allocates memory for parameters buffer, saves its location, etc.
NvramSmiEntryPoint | DXE Entry Point for NvramSmi Driver.
NvramSmiHandler | The SMI handler for Nvram services.
NvramSmiReadyToBoot | This function will be called when Ready To Boot will signaled will update data to work in RunTime.
NvramSmiSmmSwDispatchCallback | This function registers SMI Handler for Nvram services
NvramSmiVirtualFixup | Called on Virtual address change event and converts SmmCommProtocol pointer.
QueryVariableInfoToSmi | This function returns parameters of VarStore with passed attributes
SetVariableToSmi | This function sets Var with specific GUID, Name and attributes beginning and ending critical section.


BeginCriticalSection in the NvramSmi.c

Function : BeginCriticalSection

File: NvramSmi.c
Description:
This function calls when critical section begins. It disables interupts,
and Smi and fills CRITICAL_SECTION structure fields
Input:
CRITICAL_SECTION *Cs - pointer to CRITICAL_SECTION structure
Output:
VOID


EndCriticalSection in the NvramSmi.c

Function : EndCriticalSection

File: NvramSmi.c
Description:
This function calls when critical section ends. It enable interupts,
and Smi and fills CRITICAL_SECTION structure fields
Input:
CRITICAL_SECTION *Cs - pointer to CRITICAL_SECTION structure
Output:
VOID


GetNextVariableNameToSmi in the NvramSmi.c

Function : GetNextVariableNameToSmi

File: NvramSmi.c
Description:
This function searches for next Var after Var with specific name and GUID and returns it's Name
in SMM synchronizing Varstors before and after operation.
Input:
IN OUT UINTN *VariableNameSize - size of Varname - if smaller than actual EFI_BUFFER_TOO_SMALL
will be returned and DataSize will be set to actual size needed
IN OUT CHAR16 *VariableName - pointer where Var Name in Unicode will be stored
IN OUT EFI_GUID *VendorGuid - pointer to menory where Var GUID is stored
Output:
EFI_STATUS - based on result


GetVariableToSmi in the NvramSmi.c

Function : GetVariableToSmi

File: NvramSmi.c
Description:
This function searches for Var with specific GUID and Name
Input:
IN CHAR16 *VariableName - pointer to Var Name in Unicode
IN EFI_GUID *VendorGuid - pointer to Var GUID
OPTIONAL OUT UINT32* Attributes - Pointer to memory where Attributes will be returned
IN OUT UINTN *DataSize - size of Var - if smaller than actual EFI_BUFFER_TOO_SMALL
will be returned and DataSize will be set to actual size needed
OUT VOID *Data - Pointer to memory where Var will be returned
Output:
EFI_STATUS - based on result


InSmmFunction in the NvramSmi.c

Function : InSmmFunction

File: NvramSmi.c
Description:
Registration of the SMI function.
Input:
EFI_HANDLE          - ImageHandle
EFI_SYSTEM_TABLE*   - SystemTable
Output:
EFI_STATUS


LocateCommunicateProt in the NvramSmi.c

Function : LocateCommunicateProt

File: NvramSmi.c
Description:
This function will be called to locate Smm Communication Protocol
Input:
IN EFI_EVENT Event - signalled event
IN VOID *Context - calling context
Output:
EFI_STATUS


NotInSmmFunction in the NvramSmi.c

Function : NotInSmmFunction

File: NvramSmi.c
Description:
This is the "NotInSmmFunction" parameter for the
InitSmmHandler function in the entry point. It allocates
memory for parameters buffer, saves its location, etc.
Input:
EFI_HANDLE          - ImageHandle
EFI_SYSTEM_TABLE*   - SystemTable
Output:
EFI_STATUS


NvramSmiEntryPoint in the NvramSmi.c

Function : NvramSmiEntryPoint

File: NvramSmi.c
Description:
DXE Entry Point for NvramSmi Driver.
Input:
EFI_HANDLE          - ImageHandle
EFI_SYSTEM_TABLE*   - SystemTable
Output:
EFI_STATUS


NvramSmiHandler in the NvramSmi.c

Function : NvramSmiHandler

File: NvramSmi.c
Description:
The SMI handler for Nvram services.
Input:
NONE
Output:
EFI_STATUS


NvramSmiReadyToBoot in the NvramSmi.c

Function : NvramSmiReadyToBoot

File: NvramSmi.c
Description:
This function will be called when Ready To Boot will signaled
will update data to work in RunTime.
Input:
IN EFI_EVENT Event - signalled event
IN VOID *Context - calling context
Output:
VOID


NvramSmiSmmSwDispatchCallback in the NvramSmi.c

Function : NvramSmiSmmSwDispatchCallback

File: NvramSmi.c
Description:
This function registers SMI Handler for Nvram services
Input:
IN EFI_EVENT Event - signalled event
IN VOID *Context - calling context
Output:
NONE


NvramSmiVirtualFixup in the NvramSmi.c

Function : NvramSmiVirtualFixup

File: NvramSmi.c
Description:
Called on Virtual address change event and converts
SmmCommProtocol pointer.
Input:
IN EFI_EVENT Event - signalled event
IN VOID *Context - calling context
Output:
VOID


QueryVariableInfoToSmi in the NvramSmi.c

Function : QueryVariableInfoToSmi

File: NvramSmi.c
Description:
This function returns parameters of VarStore with passed attributes
Input:
IN UINT32 Attributes - Atributes to search for
OUT UINT64 *MaximumVariableStorageSize - Maximum Variable Storage Size
OUT UINT64 *RemainingVariableStorageSize - Remaining Variable Storage Size
OUT UINT64 *MaximumVariableSize - Maximum Variable Size
Output:
EFI_STATUS based on result


SetVariableToSmi in the NvramSmi.c

Function : SetVariableToSmi

File: NvramSmi.c
Description:
This function sets Var with specific GUID, Name and attributes
beginning and ending critical section.
Input:
IN CHAR16 *VariableName - pointer to Var Name in Unicode
IN EFI_GUID *VendorGuid - pointer to Var GUID
IN UINT32 Attributes - Attributes of the Var
IN UINTN DataSize - size of Var
IN VOID *Data - Pointer to memory where Var data is stored
Output:
EFI_STATUS - based on result


NvramSmi.dxs

Description:
Dependency expression for the NvramSmi module.


NvramSmi.mak

Description:
Make file to build NvramSmi module


NvramSmiDxe.dxs

Description:
DXE Dependency expression for the NvramSmi module.


NvramSmiPi1.dxs

Description:
Dependency expression for the NvramSmi module used if
PI_SPECIFICATION_VERSION<0x1000A.


Functions in Alphabetical Order

In Alphabetical Order

The following topics provide a list in alphabetical order.
For a list by file name, see By File Name.

  • B
  • E
  • G
  • I
  • L
  • N
  • Q
  • S


Functions in Alphabetical Order

B

Function | Description
BeginCriticalSection | This function calls when critical section begins. It disables interupts, and Smi and fills CRITICAL_SECTION structure fields


Functions in Alphabetical Order

E

Function | Description
EndCriticalSection | This function calls when critical section ends. It enable interupts, and Smi and fills CRITICAL_SECTION structure fields


Functions in Alphabetical Order

G

Function | Description
GetNextVariableNameToSmi | This function searches for next Var after Var with specific name and GUID and returns it's Name in SMM synchronizing Varstors before and after operation.
GetVariableToSmi | This function searches for Var with specific GUID and Name


Functions in Alphabetical Order

I

Function | Description
InSmmFunction | Registration of the SMI function.


Functions in Alphabetical Order

L

Function | Description
LocateCommunicateProt | This function will be called to locate Smm Communication Protocol


Functions in Alphabetical Order

N

Function | Description
NotInSmmFunction | This is the "NotInSmmFunction" parameter for the InitSmmHandler function in the entry point. It allocates memory for parameters buffer, saves its location, etc.
NvramSmiEntryPoint | DXE Entry Point for NvramSmi Driver.
NvramSmiHandler | The SMI handler for Nvram services.
NvramSmiReadyToBoot | This function will be called when Ready To Boot will signaled will update data to work in RunTime.
NvramSmiSmmSwDispatchCallback | This function registers SMI Handler for Nvram services
NvramSmiVirtualFixup | Called on Virtual address change event and converts SmmCommProtocol pointer.


Functions in Alphabetical Order

Q

Function | Description
QueryVariableInfoToSmi | This function returns parameters of VarStore with passed attributes


Functions in Alphabetical Order

S

Function | Description
SetVariableToSmi | This function sets Var with specific GUID, Name and attributes beginning and ending critical section.


General Information