+\r
+ return (ShellStatus);\r
+}\r
+\r
+/**\r
+ Function to display or delete variables. This will set up and call into the recursive function.\r
+\r
+ @param[in] VariableName The variable name of the EFI variable (or NULL).\r
+ @param[in] Guid The GUID of the variable set (or NULL).\r
+ @param[in] Delete TRUE to delete, FALSE otherwise.\r
+\r
+ @retval SHELL_SUCCESS The operation was successful.\r
+ @retval SHELL_OUT_OF_RESOURCES A memorty allocation failed.\r
+ @retval SHELL_ABORTED The abort message was received.\r
+ @retval SHELL_DEVICE_ERROR UEFI Variable Services returned an error.\r
+ @retval SHELL_NOT_FOUND the Name/Guid pair could not be found.\r
+**/\r
+SHELL_STATUS\r
+EFIAPI\r
+ProcessVariables (\r
+ IN CONST CHAR16 *VariableName OPTIONAL,\r
+ IN CONST EFI_GUID *Guid OPTIONAL,\r
+ IN BOOLEAN Delete\r
+ )\r
+{\r
+ SHELL_STATUS ShellStatus;\r
+ BOOLEAN Found;\r
+ EFI_GUID FoundVarGuid;\r
+\r
+ Found = FALSE;\r
+ ShellStatus = SHELL_SUCCESS;\r
+ ZeroMem (&FoundVarGuid, sizeof(EFI_GUID));\r
+\r
+ ShellStatus = CascadeProcessVariables(VariableName, Guid, Delete, NULL, FoundVarGuid, &Found);\r
+\r