// /** @file
// This is a sample HII resource driver.
//
// This driver show how a HII driver retrieve HII data using HII Package List protocol
// and publish the HII data.
//
// Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/


#string STR_MODULE_ABSTRACT             #language en-US "A sample HII resource driver"

#string STR_MODULE_DESCRIPTION          #language en-US "This driver show how a HII driver retrieve HII data using HII Package List protocol\n"
                                                        "and publish the HII data."

