// /** @file
// This driver produces UEFI PLATFORM_DRIVER_OVERRIDE_PROTOCOL if this protocol doesn't exist.
//
// It doesn't install again if this protocol exists.
// It only implements one interface GetDriver of PLATFORM_DRIVER_OVERRIDE_PROTOCOL protocol
// and doesn't support other two interfaces GetDriverPath, DriverLoaded.
//
// This driver also offers an UI interface in device manager to let user configure
// platform override protocol to override the default algorithm for matching
// drivers to controllers.
//
// The main flow:
// 1. It dynamicly locate all controller device path.
// 2. It dynamicly locate all drivers which support binding protocol.
// 3. It export and dynamicly update two menu to let user select the
// mapping between drivers to controllers.
// 4. It save all the mapping info in NV variables for the following boot,
// which will be consumed by GetDriver API of the produced the platform override protocol.
//
// Caution: This module is a sample implementation for the test purpose.
//
// Copyright (c) 2007 - 2014, 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
// http://opensource.org/licenses/bsd-license.php
//
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
// **/
#string STR_MODULE_ABSTRACT #language en-US "Produces UEFI PLATFORM_DRIVER_OVERRIDE_PROTOCOL if this protocol doesn't exist"
#string STR_MODULE_DESCRIPTION #language en-US "This driver produces UEFI PLATFORM_DRIVER_OVERRIDE_PROTOCOL if this protocol doesn't exist. It only implements the GetDriver() interface of PLATFORM_DRIVER_OVERRIDE_PROTOCOL protocol This driver also offers an UI interface in device manager to let users configure PlatformOverrideProtocol to override the default algorithm for matching drivers to controllers.
\n"
"The main flow:
\n"
"1. It dynamically locates all controller device path.
\n"
"2. It dynamically locates all drivers which support binding protocol.
\n"
"3. It exports and dynamicly updates two menu to let user select the mapping between drivers to controllers.
\n"
"4. It saves all the mapping info in NV variables for the following boot, which will be consumed by GetDriver API of the produced the platform override protocol.
"