edk2/FatPkg/EnhancedFatDxe/Fat.inf
Chris Fernald 12c5ded287 FatPkg: Clean any volume caches during exit boot services
The current implementation assumes the the caller will perform the
necessary cleanup before exiting boot services. This has been observed
to drop some cached file writes that occur even before the application
calling exit boot services is launched.

This commit adds a per-volume pre-ExitBootServices event to flush any
dirty caches and perform other cleanup the volume to ensure all write
data is persisted and consistent. After the flush, caching will be
disabled for the volume in the future to ensure that all subsequent
access persists.

Signed-off-by: Chris Fernald <chfernal@microsoft.com>
2026-06-22 22:06:08 +00:00

88 lines
2.4 KiB
INI

## @file
# Component Description File for FAT module.
#
# This UEFI driver detects the FAT file system in the disk.
# It also produces the Simple File System protocol for the consumer to
# perform file and directory operations on the disk.
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = Fat
MODULE_UNI_FILE = Fat.uni
FILE_GUID = 961578FE-B6B7-44c3-AF35-6BC705CD2B1F
MODULE_TYPE = UEFI_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = FatEntryPoint
UNLOAD_IMAGE = FatUnload
#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64 EBC
#
# DRIVER_BINDING = gFatDriverBinding
# COMPONENT_NAME = gFatComponentName
# COMPONENT_NAME2 = gFatComponentName2
#
[Sources]
DirectoryCache.c
DiskCache.c
FileName.c
Hash.c
DirectoryManage.c
ComponentName.c
FatFileSystem.h
Fat.h
ReadWrite.c
OpenVolume.c
Open.c
Misc.c
Init.c
Info.c
FileSpace.c
Flush.c
Fat.c
Delete.c
Data.c
UnicodeCollation.c
[Packages]
MdePkg/MdePkg.dec
[LibraryClasses]
UefiRuntimeServicesTableLib
UefiBootServicesTableLib
MemoryAllocationLib
BaseMemoryLib
BaseLib
UefiLib
UefiDriverEntryPoint
DebugLib
PcdLib
[Guids]
gEfiFileInfoGuid ## SOMETIMES_CONSUMES ## UNDEFINED
gEfiFileSystemInfoGuid ## SOMETIMES_CONSUMES ## UNDEFINED
gEfiFileSystemVolumeLabelInfoIdGuid ## SOMETIMES_CONSUMES ## UNDEFINED
gEfiEventBeforeExitBootServicesGuid ## CONSUMES ## Event
[Protocols]
gEfiDiskIoProtocolGuid ## TO_START
gEfiDiskIo2ProtocolGuid ## TO_START
gEfiBlockIoProtocolGuid ## TO_START
gEfiSimpleFileSystemProtocolGuid ## BY_START
gEfiUnicodeCollation2ProtocolGuid ## TO_START
[Pcd]
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLang ## SOMETIMES_CONSUMES
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang ## SOMETIMES_CONSUMES
[UserExtensions.TianoCore."ExtraFiles"]
FatExtra.uni