Ring3: Added FreeProtocolsList().

This commit is contained in:
Mikhail Krichanov 2024-03-12 13:56:29 +03:00
parent ca144b0173
commit 85fcc4774c
3 changed files with 25 additions and 3 deletions

View File

@ -2736,4 +2736,10 @@ InitializeRing3 (
IN LOADED_IMAGE_PRIVATE_DATA *Image
);
VOID
EFIAPI
FreeProtocolsList (
VOID
);
#endif

View File

@ -850,6 +850,8 @@ CoreExitBootServices (
RING3_INTERFACES_PAGES
);
FreeProtocolsList ();
return Status;
}

View File

@ -7,9 +7,7 @@
#include "DxeMain.h"
#include "SupportedProtocols.h"
//
// TODO: Free LIST in ExitBootServices
//
LIST_ENTRY mProtocolsHead = INITIALIZE_LIST_HEAD_VARIABLE (mProtocolsHead);
typedef struct {
@ -29,6 +27,22 @@ CallInstallMultipleProtocolInterfaces (
IN VOID *Function
);
VOID
EFIAPI
FreeProtocolsList (
VOID
)
{
LIST_ENTRY *Link;
INTERFACE *Protocol;
for (Link = mProtocolsHead.BackLink; Link != &mProtocolsHead; Link = mProtocolsHead.BackLink) {
Protocol = BASE_CR (Link, INTERFACE, Link);
RemoveEntryList (Link);
FreePool (Protocol);
}
}
STATIC
EFI_STATUS
EFIAPI