17#include <Library/BaseLib.h>
18#include <Library/BaseMemoryLib.h>
19#include <Library/BaseOverflowLib.h>
20#include <Library/DebugLib.h>
21#include <Library/MemoryAllocationLib.h>
22#include <Library/UefiBootServicesTableLib.h>
25#include <Guid/FileInfo.h>
40 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
41 OUT EFI_FILE_PROTOCOL **Root
46 EFI_FILE_PROTOCOL *NewFile;
55 if (!EFI_ERROR (Status)) {
64EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
66 .Revision = EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION,
72 IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *OriginalFileSystem,
73 IN EFI_FILE_OPEN OpenCallback,
74 OUT EFI_SIMPLE_FILE_SYSTEM_PROTOCOL **NewFileSystem
95 NewVirtualFileSystems = AllocatePool (
98 if (NewVirtualFileSystems == NULL) {
99 return EFI_OUT_OF_RESOURCES;
104 &NewVirtualFileSystems[0],
115 Data = AllocatePool (
sizeof (*Data));
117 return EFI_OUT_OF_RESOURCES;
EFI_STATUS CreateRealFile(IN EFI_FILE_PROTOCOL *OriginalFile OPTIONAL, IN EFI_FILE_OPEN OpenCallback OPTIONAL, IN BOOLEAN CloseOnFailure, OUT EFI_FILE_PROTOCOL **File)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
#define VIRTUAL_VOLUME_FROM_FILESYSTEM_PROTOCOL(This)
#define VIRTUAL_VOLUME_DATA_SIGNATURE
STATIC VIRTUAL_FILESYSTEM_DATA ** mVirtualFileSystems
EFI_STATUS CreateVirtualFs(IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *OriginalFileSystem, IN EFI_FILE_OPEN OpenCallback, OUT EFI_SIMPLE_FILE_SYSTEM_PROTOCOL **NewFileSystem)
STATIC CONST EFI_SIMPLE_FILE_SYSTEM_PROTOCOL mVirtualFileSystemProtocolTemplate
STATIC UINTN mVirtualFileSystemsUsed
STATIC EFI_STATUS EFIAPI VirtualFsOpenVolume(IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **Root)
STATIC UINTN mVirtualFileSystemsAllocated
EFI_FILE_OPEN OpenCallback
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL FileSystem
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL * OriginalFileSystem