def METHOD_NAME (self, Buffer, Flag=False) :
    if not Flag:
        GenFdsGlobalVariable.InfLogger( "\nGenerating %s Option ROM ..." %self.DriverName)
    EfiFileList = []
    BinFileList = []
    # Process Modules in FfsList
    for FfsFile in self.FfsList :
        if isinstance(FfsFile, OptRomInfStatement.OptRomInfStatement):
            FilePathNameList = FfsFile.GenFfs(IsMakefile=Flag)
            if len(FilePathNameList) == 0:
                EdkLogger.error("GenFds", GENFDS_ERROR, "Module %s not produce .efi files, so NO file could be put into option ROM." % (FfsFile.InfFileName))
            if FfsFile.OverrideAttribs is None:
                EfiFileList.extend(FilePathNameList)
            else:
                FileName = os.path.basename(FilePathNameList[0])
                TmpOutputDir = os.path.join(GenFdsGlobalVariable.FvDir, self.DriverName, FfsFile.CurrentArch)
                if not os.path.exists(TmpOutputDir) :
                    os.makedirs(TmpOutputDir)
                TmpOutputFile = os.path.join(TmpOutputDir, FileName+'.tmp')
                GenFdsGlobalVariable.GenerateOptionRom(TmpOutputFile,
                                                       FilePathNameList,
                                                       [],
                                                       FfsFile.OverrideAttribs.NeedCompress,
                                                       FfsFile.OverrideAttribs.PciClassCode,
                                                       FfsFile.OverrideAttribs.PciRevision,
                                                       FfsFile.OverrideAttribs.PciDeviceId,
                                                       FfsFile.OverrideAttribs.PciVendorId,
                                                       IsMakefile = Flag)
                BinFileList.append(TmpOutputFile)
        else:
            FilePathName = FfsFile.GenFfs(IsMakefile=Flag)
            if FfsFile.OverrideAttribs is not None:
                FileName = os.path.basename(FilePathName)
                TmpOutputDir = os.path.join(GenFdsGlobalVariable.FvDir, self.DriverName, FfsFile.CurrentArch)
                if not os.path.exists(TmpOutputDir) :
                    os.makedirs(TmpOutputDir)
                TmpOutputFile = os.path.join(TmpOutputDir, FileName+'.tmp')
                GenFdsGlobalVariable.GenerateOptionRom(TmpOutputFile,
                                                       [FilePathName],
                                                       [],
                                                       FfsFile.OverrideAttribs.NeedCompress,
                                                       FfsFile.OverrideAttribs.PciClassCode,
                                                       FfsFile.OverrideAttribs.PciRevision,
                                                       FfsFile.OverrideAttribs.PciDeviceId,
                                                       FfsFile.OverrideAttribs.PciVendorId,
                                                       IsMakefile=Flag)
                BinFileList.append(TmpOutputFile)
            else:
                if FfsFile.FileType == 'EFI':
                    EfiFileList.append(FilePathName)
                else:
                    BinFileList.append(FilePathName)
    #
    # Call EfiRom tool
    #
    OutputFile = os.path.join(GenFdsGlobalVariable.FvDir, self.DriverName)
    OutputFile = OutputFile + '.rom'
    GenFdsGlobalVariable.GenerateOptionRom(
                            OutputFile,
                            EfiFileList,
                            BinFileList,
                            IsMakefile=Flag)
    if not Flag:
        GenFdsGlobalVariable.InfLogger( "\nGenerate %s Option ROM Successfully" %self.DriverName)
    GenFdsGlobalVariable.SharpCounter = 0
    return OutputFile