+typedef struct well_known_guid
+{
+ EFI_GUID *guid;
+ const char *name;
+}well_known_guid;
+
+typedef struct ventoy_system_wrapper
+{
+ EFI_LOCATE_PROTOCOL NewLocateProtocol;
+ EFI_LOCATE_PROTOCOL OriLocateProtocol;
+
+ EFI_HANDLE_PROTOCOL NewHandleProtocol;
+ EFI_HANDLE_PROTOCOL OriHandleProtocol;
+
+ EFI_OPEN_PROTOCOL NewOpenProtocol;
+ EFI_OPEN_PROTOCOL OriOpenProtocol;
+} ventoy_system_wrapper;
+
+#define ventoy_wrapper(bs, wrapper, func, newfunc) \
+{\
+ wrapper.Ori##func = bs->func;\
+ wrapper.New##func = newfunc;\
+ bs->func = wrapper.New##func;\
+}
+
+extern ventoy_efi_file_replace g_efi_file_replace;