/* This function processes the results of changes in configuration. */
EFI_STATUS EFIAPI TcgRouteConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
/* This function processes the results of changes in configuration. */
EFI_STATUS EFIAPI TcgRouteConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
{
  EFI_STATUS         Status;
  UINTN              BufferSize;
  TCG_CONFIGURATION  TcgConfiguration;
  if ((Configuration == NULL) || (Progress == NULL)) {
    return EFI_INVALID_PARAMETER;
  }
  *Progress = Configuration;
  if (!HiiIsConfigHdrMatch (Configuration, &gTcgConfigFormSetGuid, mTcgStorageName)) {
    return EFI_NOT_FOUND;
  }
  BufferSize = sizeof (TCG_CONFIGURATION);
  Status     = gHiiConfigRouting->ConfigToBlock (
                                    gHiiConfigRouting,
                                    Configuration,
                                    (UINT8 *)&TcgConfiguration,
                                    &BufferSize,
                                    Progress
                                    );
  if (EFI_ERROR (Status)) {
    return Status;
  }
  return EFI_SUCCESS;
}