app中进行Variable的读写操作
/** @file
This sample application bases on HelloWorld PCD setting
to print "UEFI Hello World!" to the UEFI Console.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include
#include
#include
#include
#include
#include
// String token ID of help message text.
// Shell supports to find help message in the resource section of an application image if
// .MAN file is not found. This global variable is added to make build tool recognizes
// that the help string is consumed by user and then build tool will add the string into
// the resource section. Thus the application can use '-?' option to show help message in
// Shell.
//
GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStringHelpTokenId = STRING_TOKEN (STR_HELLO_WORLD_HELP_INFORMATION);
/**
The user Entry Point for Application. The user code starts with this function
as the real entry point for the application.
@param[in] ImageHandle The firmware allocated handle for the EFI image.
@param[in] SystemTable A pointer to the EFI System Table.
@retval EFI_SUCCESS The entry point is executed successfully.
@retval other Some error occurs when executing this entry point.
**/
EFI_STATUS
EFIAPI
UefiMain (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
{
UINT32 Index;
EFI_STATUS Status;
EFI_GUID Guid;
//UINTN NameBufferSize;
//UINTN NameSize;
CHAR16 *Name;
UINTN DataSize;
UINT32 Data;
Index = 0;
Data = 0x1234abcd;
Name = L"testParam";//AllocateZeroPool (NameBufferSize);
DataSize = sizeof (Data);
Status = gRT->SetVariable (
Name,
&Guid,
EFI_VARIABLE_NON_VOLATILE |
EFI_VARIABLE_BOOTSERVICE_ACCESS |
EFI_VARIABLE_RUNTIME_ACCESS,
DataSize,
&Data
);
Print (L" [testParam] : Setvariable Data 0x%x. GUID %g ,status:%dn",Data,&Guid,Status);
Data = 0;
Status = gRT->GetVariable (Name, &Guid, NULL, &DataSize, &Data);
Print (L" [testParam] : GetVariable Data 0x%x. status:%dn",Data,Status);
//
// Three PCD type (FeatureFlag, UINT32 and String) are used as the sample.
//
if (FeaturePcdGet (PcdHelloWorldPrintEnable)) {
for (Index = 0; Index //
// Use UefiLib Print API to print string to UEFI console
//
Print ((CHAR16 *)PcdGetPtr (PcdHelloWorldPrintString));
}
}
return EFI_SUCCESS;
}
UEFI_DRIVER中进行Variable的写操作,app中进行Variable的读操作
CHAR16 *Name;
UINTN DataSize;
UINT32 Data;
Data = 0x1234abc0;
Name = L"testParam";//AllocateZeroPool (NameBufferSize);
DataSize = sizeof (Data);
Status = gRT->SetVariable (
Name,
&Guid,
EFI_VARIABLE_NON_VOLATILE |
EFI_VARIABLE_BOOTSERVICE_ACCESS |
EFI_VARIABLE_RUNTIME_ACCESS,
DataSize,
&Data
);
// Print (L" [testParam] : Setvariable Data 0x%x. GUID %g ,status:%dn",Data,&Guid,Status);
DEBUG((EFI_D_ERROR, "[testParam] : Setvariable Data 0x%x. GUID %g ,status:%dn",Data,&Guid,Status));
DEBUG((EFI_D_ERROR, "lfmq:this is lfmq testing!!!n"));
/* DataSize = sizeof (Data);
Status = gRT->SetVariable (
Name,
&Guid,
EFI_VARIABLE_NON_VOLATILE |
EFI_VARIABLE_BOOTSERVICE_ACCESS |
EFI_VARIABLE_RUNTIME_ACCESS,
DataSize,
&Data
);
Print (L" [testParam] : Setvariable Data 0x%x. GUID %g ,status:%dn",Data,&Guid,Status);*/
Data = 0;
Status = gRT->GetVariable (Name, &Guid, NULL, &DataSize, &Data);
Print (L" [testParam] : GetVariable Data 0x%x. GUID %g , status:%dn",Data,&Guid,Status);
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net