Пример #1
0
        protected override void OnRun()
        {
            this.notPublishedMissingWin32FunctionsLog = new Log()
            {
                Filename          = "NotPublishedMissingWin32Functions_Log.txt",
                AnnouncementStyle = ConsoleWriteStyle.Default,
                Headers           = new string[] { "binaryName", "functionName" }
            };
            this.RegisterLog(this.notPublishedMissingWin32FunctionsLog);

            this.publishedMissingWin32FunctionsLog = new Log()
            {
                Filename          = "PublishedMissingWin32Functions_Log.txt",
                AnnouncementStyle = ConsoleWriteStyle.Default,
                Headers           = new string[] { "binaryName", "functionName" }
            };
            this.RegisterLog(this.publishedMissingWin32FunctionsLog);

            //this.uniqueKeyMap = this.LoadUniqueKeyMap("uniqueKeyMap.txt");
            this.functionsInDesktopExperienceButNotInServerCore = this.LoadNonUniqueKeyMap("functionsInDesktopExperienceButNotInServerCore.txt");

            int totalValidMissingWin32FunctionNames   = 0;
            int notPublishedMissingWin32FunctionNames = 0;
            int publishedMissingWin32FunctionNames    = 0;

            var apiRefModelWin32 = ApiRefModelWin32.GetApiRefModelWin32(Platform.Win32DesktopAndWsuaDotTxt);

            foreach (var binaryName in this.functionsInDesktopExperienceButNotInServerCore.Keys)
            {
                totalValidMissingWin32FunctionNames += this.functionsInDesktopExperienceButNotInServerCore[binaryName].Count;

                foreach (var functionName in this.functionsInDesktopExperienceButNotInServerCore[binaryName])
                {
                    FunctionWin32InDocs foundFunctionWin32 = null;
                    apiRefModelWin32.GetFunctionWin32ByName(functionName, ref foundFunctionWin32);

                    if (foundFunctionWin32 != null)
                    {
                        ++publishedMissingWin32FunctionNames;
                        this.publishedMissingWin32FunctionsLog.AddEntry(binaryName, functionName);
                    }
                    else
                    {
                        ++notPublishedMissingWin32FunctionNames;
                        this.notPublishedMissingWin32FunctionsLog.AddEntry(binaryName, functionName);
                    }
                }
            }

            ProgramBase.ConsoleWrite(string.Format("{0} valid names in functionsInDesktopExperienceButNotInServerCore.txt", totalValidMissingWin32FunctionNames));
            ProgramBase.ConsoleWrite(string.Format("{0} of those are published", publishedMissingWin32FunctionNames));
            ProgramBase.ConsoleWrite(string.Format("{0} are not published", notPublishedMissingWin32FunctionNames));
        }