def METHOD_NAME(FfsInf, FileType, FileExtension, Dict = None, IsMakefile=False, SectionType=None):
    IsSect = FileType in Section.SectFileType
    if FileExtension is not None:
        Suffix = FileExtension
    elif IsSect :
        Suffix = Section.SectionType.get(FileType)
    else:
        Suffix = Section.BinFileType.get(FileType)
    if FfsInf is None:
        EdkLogger.error("GenFds", GENFDS_ERROR, 'Inf File does not exist!')
    FileList = []
    if FileType is not None:
        for File in FfsInf.BinFileList:
            if File.Arch == TAB_ARCH_COMMON or FfsInf.CurrentArch == File.Arch:
                if File.Type == FileType or (int(FfsInf.PiSpecVersion, 16) >= 0x0001000A \
                                             and FileType == 'DXE_DPEX' and File.Type == BINARY_FILE_TYPE_SMM_DEPEX) \
                                             or (FileType == BINARY_FILE_TYPE_TE and File.Type == BINARY_FILE_TYPE_PE32):
                    if TAB_STAR in FfsInf.TargetOverrideList or File.Target == TAB_STAR or File.Target in FfsInf.TargetOverrideList or FfsInf.TargetOverrideList == []:
                        FileList.append(FfsInf.PatchEfiFile(File.Path, File.Type))
                    else:
                        GenFdsGlobalVariable.InfLogger ("\nBuild Target \'%s\' of File %s is not in the Scope of %s specified by INF %s in FDF" %(File.Target, File.File, FfsInf.TargetOverrideList, FfsInf.InfFileName))
                else:
                    GenFdsGlobalVariable.VerboseLogger ("\nFile Type \'%s\' of File %s in %s is not same with file type \'%s\' from Rule in FDF" %(File.Type, File.File, FfsInf.InfFileName, FileType))
            else:
                GenFdsGlobalVariable.InfLogger ("\nCurrent ARCH \'%s\' of File %s is not in the Support Arch Scope of %s specified by INF %s in FDF" %(FfsInf.CurrentArch, File.File, File.Arch, FfsInf.InfFileName))
    elif FileType is None and SectionType == BINARY_FILE_TYPE_RAW:
        for File in FfsInf.BinFileList:
            if File.Ext == Suffix:
                FileList.append(File.Path)
    if (not IsMakefile and Suffix is not None and os.path.exists(FfsInf.EfiOutputPath)) or (IsMakefile and Suffix is not None):
        if not FileList:
            SuffixMap = FfsInf.GetFinalTargetSuffixMap()
            if Suffix in SuffixMap:
                FileList.extend(SuffixMap[Suffix])
    #Process the file lists is alphabetical for a same section type
    if len (FileList) > 1:
        FileList.sort()
    return FileList, IsSect