diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c
index 9e4fff6d33..b545b6c849 100644
--- a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c
+++ b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c
@@ -464,13 +464,24 @@ CallDeviceManager (
&NumHandles,
&DriverHealthHandles
);
+
//
- // If there are no drivers installed driver health protocol
+ // If there are no drivers installed driver health protocol, do not create driver health entry in UI
//
- if (NumHandles == 0) {
- HiiSetString (HiiHandle, STRING_TOKEN (STR_DM_DRIVER_HEALTH_TITLE), GetStringById (STRING_TOKEN (STR_EMPTY_STRING)), NULL);
- HiiSetString (HiiHandle, STRING_TOKEN (STR_DRIVER_HEALTH_ALL_HEALTHY), GetStringById (STRING_TOKEN (STR_EMPTY_STRING)), NULL);
- } else {
+ if (NumHandles != 0) {
+ //
+ // If driver health protocol is installed, create Driver Health subtitle and entry
+ //
+ HiiCreateSubTitleOpCode (StartOpCodeHandle, STRING_TOKEN (STR_DM_DRIVER_HEALTH_TITLE), 0, 0, 0);
+ HiiCreateActionOpCode (
+ StartOpCodeHandle, // Container for dynamic created opcodes
+ DEVICE_MANAGER_KEY_DRIVER_HEALTH, // Question ID
+ STRING_TOKEN(STR_DRIVER_HEALTH_ALL_HEALTHY), // Prompt text
+ STRING_TOKEN(STR_DRIVER_HEALTH_STATUS_HELP), // Help text
+ EFI_IFR_FLAG_CALLBACK, // Question flag
+ 0 // Action String ID
+ );
+
//
// Check All Driver health status
//
diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManagerVfr.Vfr b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManagerVfr.Vfr
index c08ad26214..41a25e4a39 100644
--- a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManagerVfr.Vfr
+++ b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManagerVfr.Vfr
@@ -2,7 +2,7 @@
//
// Device Manager formset.
//
-// Copyright (c) 2004 - 2009, Intel Corporation.
+// Copyright (c) 2004 - 2010, Intel Corporation.
// All rights reserved. This program and the accompanying materials
// are licensed and made available under the terms and conditions of the BSD License
// which accompanies this distribution. The full text of the license may be found at
@@ -66,16 +66,6 @@ formset
label LABEL_DEVICES_LIST;
label LABEL_END;
-
- subtitle text = STRING_TOKEN(STR_LAST_STRING);
- subtitle text = STRING_TOKEN(STR_DM_DRIVER_HEALTH_TITLE);
-
- text
- help = STRING_TOKEN(STR_DRIVER_HEALTH_STATUS_HELP),
- text = STRING_TOKEN(STR_DRIVER_HEALTH_ALL_HEALTHY),
- text = STRING_TOKEN(STR_LAST_STRING),
- flags = INTERACTIVE,
- key = DEVICE_MANAGER_KEY_DRIVER_HEALTH;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);