OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OpenCoreUefiUnloadDrivers.c File Reference
#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
#include <Library/DevicePathLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/PrintLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/OcConfigurationLib.h>
#include <PiDxe.h>
#include <Protocol/ComponentName2.h>
#include <Protocol/ComponentName.h>
#include <Protocol/DriverBinding.h>
#include <Protocol/FirmwareVolume2.h>
#include <Protocol/LoadedImage.h>

Go to the source code of this file.

Data Structures

struct  UNLOAD_INFO
 
struct  UNLOAD_IMAGE_CONTEXT
 
struct  DRIVER_REPORT_CONTEXT
 

Typedefs

typedef VOID(* PROCESS_IMAGE) (IN VOID *Context, IN CONST CHAR16 *Name, IN EFI_HANDLE Handle)
 

Functions

CHAR8 *EFIAPI GetBestLanguageForDriver (IN CONST CHAR8 *SupportedLanguages, IN CONST CHAR8 *InputLanguage, IN BOOLEAN Iso639Language)
 
CONST CHAR16 *EFIAPI GetStringNameFromHandle (IN CONST EFI_HANDLE TheHandle, IN CONST CHAR8 *Language)
 
VOID ReportImageName (IN VOID *Context, IN CONST CHAR16 *Name, IN EFI_HANDLE Handle)
 
VOID UnloadImageByName (IN VOID *Context, IN CONST CHAR16 *Name, IN EFI_HANDLE Handle)
 
VOID ProcessAllDrivers (IN VOID *Context, PROCESS_IMAGE ProcessImage, BOOLEAN Ascending)
 
VOID OcUnloadDrivers (IN OC_GLOBAL_CONFIG *Config)
 
EFI_STATUS OcDriverInfoDump (IN EFI_FILE_PROTOCOL *Root)
 

Detailed Description

Unload images by name. Includes image name code from ShellPkg UefiHandleParsingLib.c.

Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.
(C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.
(C) Copyright 2015-2021 Hewlett Packard Enterprise Development LP
Copyright (c) 2024, Mike Beaton. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file OpenCoreUefiUnloadDrivers.c.

Typedef Documentation

◆ PROCESS_IMAGE

typedef VOID(* PROCESS_IMAGE) (IN VOID *Context, IN CONST CHAR16 *Name, IN EFI_HANDLE Handle)

Definition at line 32 of file OpenCoreUefiUnloadDrivers.c.

Function Documentation

◆ GetBestLanguageForDriver()

CHAR8 *EFIAPI GetBestLanguageForDriver ( IN CONST CHAR8 * SupportedLanguages,
IN CONST CHAR8 * InputLanguage,
IN BOOLEAN Iso639Language )

Get the best supported language for this driver.

First base on the user input language to search, otherwise get the first language from the supported language list. The caller needs to free the best language buffer.

Parameters
[in]SupportedLanguagesThe supported languages for this driver.
[in]InputLanguageThe user input language.
[in]Iso639LanguageWhether get language for ISO639.
Returns
The best supported language for this driver.

Definition at line 68 of file OpenCoreUefiUnloadDrivers.c.

◆ GetStringNameFromHandle()

CONST CHAR16 *EFIAPI GetStringNameFromHandle ( IN CONST EFI_HANDLE TheHandle,
IN CONST CHAR8 * Language )

Function to retrieve the driver name (if possible) from the ComponentName or ComponentName2 protocol

Parameters
[in]TheHandleThe driver handle to get the name of.
[in]LanguageThe language to use.
Return values
NULLThe name could not be found.
Returns
A pointer to the string name. Do not de-allocate the memory.

Definition at line 99 of file OpenCoreUefiUnloadDrivers.c.

◆ OcDriverInfoDump()

EFI_STATUS OcDriverInfoDump ( IN EFI_FILE_PROTOCOL * Root)

Dump loaded image driver info to the specified directory.

Parameters
[in]RootDirectory to write CPU data.
Return values
EFI_SUCCESSon success.

Definition at line 328 of file OpenCoreUefiUnloadDrivers.c.

◆ OcUnloadDrivers()

VOID OcUnloadDrivers ( IN OC_GLOBAL_CONFIG * Config)

Unload loaded images by name.

Parameters
[in]ConfigOpenCore configuration.

Definition at line 263 of file OpenCoreUefiUnloadDrivers.c.

◆ ProcessAllDrivers()

VOID ProcessAllDrivers ( IN VOID * Context,
PROCESS_IMAGE ProcessImage,
BOOLEAN Ascending )

< UINTN: (HandleCount >= HandleCount) && ((0 - 1) >= HandleCount)

< Do not free Name.

Definition at line 214 of file OpenCoreUefiUnloadDrivers.c.

◆ ReportImageName()

VOID ReportImageName ( IN VOID * Context,
IN CONST CHAR16 * Name,
IN EFI_HANDLE Handle )

Definition at line 156 of file OpenCoreUefiUnloadDrivers.c.

◆ UnloadImageByName()

VOID UnloadImageByName ( IN VOID * Context,
IN CONST CHAR16 * Name,
IN EFI_HANDLE Handle )

< Do not report as 'not found' even if we failed to unload it.

Definition at line 175 of file OpenCoreUefiUnloadDrivers.c.