diff --git a/Tools/ManualValidation/Auth.csv b/Tools/ManualValidation/Auth.csv index 8c59d35ee494c..4930138ea36e5 100644 --- a/Tools/ManualValidation/Auth.csv +++ b/Tools/ManualValidation/Auth.csv @@ -1,84 +1,83 @@ -PackageIdentifier,Account,strictness -2BrightSparks.SyncBackFree,2BrightSparks,should -2BrightSparks.SyncBackPro,2BrightSparks,should -2BrightSparks.SyncBackSE,2BrightSparks,should -AlexanderPro.SmartSystemMenu,AlexanderPro,should -BakkesMod.BakkesMod,BakkesMod,must -Chocolatey.Chocolatey,pauby,must -chrisant996.Clink,chrisant996,should -Coder.Coder,cdrci,should -Dapr.CLI,dapr-bot,should -DoltHub.Dolt,coffeegoddd,should -EFIBootEditor.EFIBootEditor,EFIBootEditorBot,should -Ferdium.Ferdium,Alpharag,should -Ferdium.Ferdium.Nightly,Alpharag,should -File-New-Project.EarTrumpet,riverar,must -igoogolx.lux,igoogolx,should -JanDeDobbeleer.OhMyPosh,JanDeDobbeleer,must -junegunn.fzf,junegunn,should -Keboola.KeboolaCLI,KeboolaAsCodeBot,should -Lenovo.SystemUpdate,philjorgensen,should -LizardByte.Sunshine,LizardByte-bot,should -mar10.stressor,mar10,should -Microsoft.Accessibility,DaveTryon,must -Microsoft.AccessibilityInsights,DaveTryon,must -Microsoft.Azd,azure-sdk,should -Microsoft.AzureCLI,Microsoft,should -Microsoft.DotNet,Microsoft (mthalman/dotnet-winget-bot),must -Microsoft.Git,Microsoft,should -Microsoft.PowerShell,Microsoft,must -Microsoft.PowerToys,Microsoft,must -Microsoft.Sqlcmd,Microsoft,should -Microsoft.SQLServerManagementStudio,Microsoft,must -Microsoft.VisualStudio,Microsoft (edwardskrod),must -Microsoft.VisualStudioCode,Microsoft (lszomoru),must -Microsoft.WindowsTerminal,Microsoft,must -Momento.cli,momento-github-actions-machine-user,should -Nervatura.Nervatura,Nervatura,should -OleksisFraga.PythonLauncher,oleksis,should -Phoner.PhonerLite,PhonerLite,should -Pikcube.OrangeJuiceModMaker,Pikcube,should -pizzaboxer.Bloxstrap,pizzaboxer,should -pnpm.pnpm,zkochan,should -Pylogmon.pot,Pylogmon,should -Pulumi.Pulumi,pulumi-bot,should -Ruben2776.PicView,Ruben2776,should -Rustlang.Rust,Rust-Winget-Bot,should -Rustlang.Rust.MSVC,Rust-Winget-Bot,should -Rustlang.Rust.GNU,Rust-Winget-Bot,should -SKDataAS.ORMCore,skdataas,should -swri.EverythingToolbar,stnkl,should -t1m0thyj.WinDynamicDesktop,t1m0thyj,must -Taozuhong.Kangaroo,Taozuhong,should -ThaUnknown.Miru,ThaUnknown,should -the-sz.Auburn,the-sz,should -the-sz.Banks,the-sz,should -the-sz.Bear,the-sz,should -the-sz.Carroll,the-sz,should -the-sz.Conroe,the-sz,should -the-sz.Doro,the-sz,should -the-sz.FlashBuilder,the-sz,should -the-sz.Howard,the-sz,should -the-sz.Lacey,the-sz,should -the-sz.Newfield,the-sz,should -the-sz.Rimhill,the-sz,should -the-sz.Seaside,the-sz,should -the-sz.SkypeFocusFix,the-sz,should -the-sz.Spencer,the-sz,should -the-sz.Yale,the-sz,should -the-sz.York,the-sz,should -thebookisclosed.ViVeTool,thebookisclosed,must -Toit.Jaguar,LeonGungadinMogensen,should -TopalaSoftwareSolutions.SIW,gtopala,should -vedantmgoyal.sheltasks-cli,vedantmgoyal2009,must -Visual Studio,Microsoft,must -WerWolv.ImHex,WerWolv,should -yetone.OpenAITranslator,yetone,should -DuckStudio.FufuTools,DuckDuckStudio/Luna-Grace/fjwxzde,must -DuckStudio.FufuDevTools,DuckDuckStudio/Luna-Grace/fjwxzde,must -DuckStudio.ChineseGit,DuckDuckStudio/Luna-Grace/fjwxzde,must -DuckStudio.GitHubLabelsManager,DuckDuckStudio,must -DuckStudio.GitHubView,DuckDuckStudio,must -DuckStudio.GitHubView.Nightly,DuckDuckStudio,must -DuckStudio.Sundry,DuckDuckStudio,must -Articulate.Articulate360,Articulate,must +PackageIdentifier,Account,strictness +2BrightSparks.SyncBackFree,2BrightSparks,should +2BrightSparks.SyncBackPro,2BrightSparks,should +2BrightSparks.SyncBackSE,2BrightSparks,should +AlexanderPro.SmartSystemMenu,AlexanderPro,should +BakkesMod.BakkesMod,BakkesMod,must +Chocolatey.Chocolatey,pauby,must +chrisant996.Clink,chrisant996,should +Coder.Coder,cdrci,should +Dapr.CLI,dapr-bot,should +DoltHub.Dolt,coffeegoddd,should +EFIBootEditor.EFIBootEditor,EFIBootEditorBot,should +Ferdium.Ferdium,Alpharag,should +Ferdium.Ferdium.Nightly,Alpharag,should +File-New-Project.EarTrumpet,riverar,must +igoogolx.lux,igoogolx,should +JanDeDobbeleer.OhMyPosh,JanDeDobbeleer,must +junegunn.fzf,junegunn,should +Keboola.KeboolaCLI,KeboolaAsCodeBot,should +Lenovo.SystemUpdate,philjorgensen,should +LizardByte.Sunshine,LizardByte-bot,should +mar10.stressor,mar10,should +Microsoft.Accessibility,DaveTryon,must +Microsoft.AccessibilityInsights,DaveTryon,must +Microsoft.Azd,azure-sdk,should +Microsoft.AzureCLI,Microsoft,should +Microsoft.DotNet,Microsoft (mthalman/dotnet-winget-bot),must +Microsoft.Git,Microsoft,should +Microsoft.PowerShell,Microsoft,must +Microsoft.PowerToys,Microsoft,must +Microsoft.Sqlcmd,Microsoft,should +Microsoft.SQLServerManagementStudio,Microsoft,must +Microsoft.VisualStudio,Microsoft (edwardskrod),must +Microsoft.VisualStudioCode,Microsoft (lszomoru),must +Microsoft.WindowsTerminal,Microsoft,must +Momento.cli,momento-github-actions-machine-user,should +Nervatura.Nervatura,Nervatura,should +OleksisFraga.PythonLauncher,oleksis,should +Phoner.PhonerLite,PhonerLite,should +Pikcube.OrangeJuiceModMaker,Pikcube,should +pizzaboxer.Bloxstrap,pizzaboxer,should +pnpm.pnpm,zkochan,should +Pylogmon.pot,Pylogmon,should +Pulumi.Pulumi,pulumi-bot,should +Ruben2776.PicView,Ruben2776,should +Rustlang.Rust,Rust-Winget-Bot,should +Rustlang.Rust.MSVC,Rust-Winget-Bot,should +Rustlang.Rust.GNU,Rust-Winget-Bot,should +SKDataAS.ORMCore,skdataas,should +swri.EverythingToolbar,stnkl,should +t1m0thyj.WinDynamicDesktop,t1m0thyj,must +Taozuhong.Kangaroo,Taozuhong,should +ThaUnknown.Miru,ThaUnknown,should +the-sz.Auburn,the-sz,should +the-sz.Banks,the-sz,should +the-sz.Bear,the-sz,should +the-sz.Carroll,the-sz,should +the-sz.Conroe,the-sz,should +the-sz.Doro,the-sz,should +the-sz.FlashBuilder,the-sz,should +the-sz.Howard,the-sz,should +the-sz.Lacey,the-sz,should +the-sz.Newfield,the-sz,should +the-sz.Rimhill,the-sz,should +the-sz.Seaside,the-sz,should +the-sz.SkypeFocusFix,the-sz,should +the-sz.Spencer,the-sz,should +the-sz.Yale,the-sz,should +the-sz.York,the-sz,should +thebookisclosed.ViVeTool,thebookisclosed,must +Toit.Jaguar,LeonGungadinMogensen,should +TopalaSoftwareSolutions.SIW,gtopala,should +vedantmgoyal.sheltasks-cli,vedantmgoyal2009,must +Visual Studio,Microsoft,must +WerWolv.ImHex,WerWolv,should +yetone.OpenAITranslator,yetone,should +DuckStudio.FufuTools,DuckDuckStudio/Luna-Grace/fjwxzde,must +DuckStudio.FufuDevTools,DuckDuckStudio/Luna-Grace/fjwxzde,must +DuckStudio.ChineseGit,DuckDuckStudio/Luna-Grace/fjwxzde,must +DuckStudio.GitHubLabelsManager,DuckDuckStudio,must +DuckStudio.GitHubView,DuckDuckStudio,must +DuckStudio.GitHubView.Nightly,DuckDuckStudio,must +DuckStudio.Sundry,DuckDuckStudio,must diff --git a/Tools/ManualValidation/Autowaiver.csv b/Tools/ManualValidation/Autowaiver.csv index b09750a38bf19..8d0fd575074db 100644 --- a/Tools/ManualValidation/Autowaiver.csv +++ b/Tools/ManualValidation/Autowaiver.csv @@ -1,410 +1,968 @@ -"PackageIdentifier","ManifestValue","ManifestKey","RemoveLabel" -"115.115Chrome","115.115Chrome","PackageIdentifier","Policy-Test-1.2" -"3d-io.Exr-IO","3d-io.Exr-IO","PackageIdentifier","Validation-No-Executables" -"ABC.ABCEBankAssistant","ABC.ABCEBankAssistant","PackageIdentifier","Policy-Test-1.8" -"abelhadigital.HostsMan","softpedia-secure-download.com","InstallerUrl","Validation-Domain" -"abgox.InputTip","github.com","InstallerUrl","Validation-Domain" -"AdGuard.AdGuard","agrd.io","InstallerUrl","Validation-Domain" -"AdGuard.AdGuard.Nightly","agrd.io","InstallerUrl","Validation-Domain" -"AdGuard.AdGuardVPN","agrd.io","InstallerUrl","Validation-Domain" -"AdGuard.AdGuardVPN.Nightly","agrd.io","InstallerUrl","Validation-Domain" -"Agretis.SmartInstallMaker","Agretis.SmartInstallMaker","PackageIdentifier","Policy-Test-1.2" -"Airspy.SDRSharp.DotNet9","Airspy.SDRSharp.DotNet9","PackageIdentifier","Policy-Test-2.9" -"AlexanderSeeligerSoftware.BackupServiceHome","download.bdightbits.de","InstallerUrl","Validation-Domain" -"Alibaba.UCCloudDrive","Alibaba.UCCloudDrive","PackageIdentifier","Validation-No-Executables" -"Amazon.AthenaODBCDriver.1","Amazon.AthenaODBCDriver.1","PackageIdentifier","Validation-No-Executables" -"Amazon.AthenaODBCDriver.2","Amazon.AthenaODBCDriver.2","PackageIdentifier","Validation-No-Executables" -"Amazon.KindlePreviewer","Amazon.KindlePreviewer","PackageIdentifier","Policy-Test-1.2" -"Amazon.KindlePreviewer","d2bzeorukaqrvt.cloudfront.net","InstallerUrl","Validation-Domain" -"Amazon.NoSQLWorkbench","Amazon.NoSQLWorkbench","PackageIdentifier","Validation-No-Executables" -"Amazon.NoSQLWorkbench","dy9cqqaswpltd.cloudfront.net","InstallerUrl","Validation-Domain" -"AmyXun.AxGlyph","download.s21i.co99.net","InstallerUrl","Validation-Domain" -"AmyXun.AxMath","download.s21i.co99.net","InstallerUrl","Validation-Domain" -"AndyFul.ConfigureDefender","raw.githubusercontent.com","InstallerUrl","Validation-domain" -"Anysphere.Cursor","download.todesktop.com","InstallerUrl","Validation-Domain" -"AnyTXT.AnyTXTSearcher","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"APIDocumentation.Scalar","download.todesktop.com","InstallerUrl","Validation-Domain" -"Appeon.PowerServerToolkit2022R3-MR03","Appeon.PowerServerToolkit2022R3-MR03","PackageIdentifier","Policy-Test-1.2" -"Appest.Dida","Appest.Dida","PackageIdentifier","Policy-Test-1.8" -"ArtisticStyle.ArtisticStyle","sourceforge.net","InstallerUrl","Validation-Domain" -"ASGARDEXMaintainers.ASGARDEX","github.com","InstallerUrl","Validation-Domain" -"Atos.emotachDirect","www.fzhsw.bazg.admin.ch","InstallerUrl","Validation-Domain" -"Audient.iD","d9w4fhj63j193.cloudfront.net","InstallerUrl","Validation-Domain" -"AuraMarker.Lattics","media.zine.la","InstallerUrl","Validation-Domain" -"Baidu.BaiduWenku","Baidu.BaiduWenku","PackageIdentifier","Validation-No-Executables" -"Balsamiq.Wireframes","build_archives.s3.amazonaws.com","InstallerUrl","Validation-Domain" -"Beanbag.RBTools","downloads.reviewboard.org","InstallerUrl","Validation-Domain" -"BellSoft.LibericaJDK.24.Full","download.bell-sw.com","InstallerUrl","Validation-Domain" -"BellSoft.LibericaJRE.22","download.bell-sw.com","InstallerUrl","Validation-Domain" -"BellSoft.LibericaJRE.23.Full","download.bell-sw.com","InstallerUrl","Validation-Domain" -"BellSoft.LibericaJRE.24.Full","download.bell-sw.com","InstallerUrl","Validation-Domain" -"Bilibili.Bcut","boss.hdslb.com","InstallerUrl","Validation-Domain" -"BioSilico.EssayWriter","download.fasteressays.com","InstallerUrl","Validation-Domain" -"Bitvise.SSH.Client","Bitvise.SSH.Client","PackageIdentifier","Policy-Test-2.7" -"BreakPointSoftware.HexWorkshop","www.bpsoft.com","InstallerUrl","Validation-Domain" -"BrightSign.BAconnected","downloads.bsn.cloud","InstallerUrl","Validation-Domain" -"BrinkSoftware.IbisVoorInfra","2804826.fs1.hubspotusercontent-na1.net","InstallerUrl","Validation-Domain" -"Brinno.BrinnoVideoPlayer","Brinno.BrinnoVideoPlayer","PackageIdentifier","Validation-Domain" -"Buanzo.FFmpegforAudacity","Buanzo.FFmpegforAudacity","PackageIdentifier","Validation-No-Executables" -"Bunny-Wabbit.ISOCreator","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"ByteDance.FeiLian","cdn.isealsuite.com","InstallerUrl","Validation-Domain" -"Calibrite.PROFILER","Calibrite.PROFILER","PackageIdentifier","Policy-Test-1.2" -"canghaicheng.ZhuoMianShiJie","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"CareScribe.CaptionEd","storage.googleapis.com","InstallerUrl","Validation-domain" -"CareScribe.TalkType","storage.googleapis.com","InstallerUrl","Validation-Domain" -"Carrier.BlockLoad","www.shareddocs.com","InstallerUrl","Validation-Domain" -"Carrier.BuildingSystemOptimizer","www.shareddocs.com","InstallerUrl","Validation-Domain" -"Carrier.EngineeringEconomicAnalysis","www.shareddocs.com","InstallerUrl","Validation-Domain" -"Carrier.HourlyAnalysisProgram","www.shareddocs.com","InstallerUrl","Validation-Domain" -"Carrier.PLVPro","www.shareddocs.com","InstallerUrl","Validation-Domain" -"Carrier.SystemDesignLoad","www.shareddocs.com","InstallerUrl","Validation-Domain" -"Castr.Castr","download.todesktop.com","InstallerUrl","Validation-Domain" -"CedricLouvrier.Pinga","css-ig.net","InstallerUrl","Validation-Domain" -"Chainguard.chainctl","dl.enforce.dev","InstallerUrl","Validation-Domain" -"ChrisLong.EZSignIt","www.ssesetup.com","InstallerUrl","Validation-Domain" -"ChrisLong.NTFSHiddenDataFinder","ChrisLong.NTFSHiddenDataFinder","PackageIdentifier","Policy-Test-1.2" -"ChrisPirih.SkiFree","ski.ihoc.net","InstallerUrl","Validation-Domain" -"ChristianThoeing.PasswordTech","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"Chromium.ChromeDriver","storage.googleapis.com","InstallerUrl","Validation-Domain" -"Cisco.ChezScheme","Cisco.ChezScheme","PackageIdentifier","Policy-Test-2.7" -"Cisco.JabberVDIAgent","binaries.webex.com","InstallerUrl","Validation-Domain" -"CISDI.Qingtui","qtstatic.oss-cn-hangzhou.aliyuncs.com","InstallerUrl","Validation-Domain" -"CISDI.Qingtui","CISDI.Qingtui","PackageIdentifier","Policy-Test-1.2" -"Clevertouch.Clevershare","saharaplc.s3.eu-west-2.amazonaws.com","InstallerUrl","Validation-Domain" -"Clevertouch.Clevershare.EXE","saharaplc.s3.eu-west-2.amazonaws.com","InstallerUrl","Validation-Domain" -"ClickUp.ClickUp","download.todesktop.com","InstallerUrl","Validation-Domain" -"CloudImperiumGames.RSILauncher","install.robertsspaceindustries.com","InstallerUrl","Validation-Domain" -"cmlanche.lightningvine","sdtpub.s3.bitiful.net","InstallerUrl","Validation-Domain" -"CMU.CLAN","dali.talkbank.org","InstallerUrl","Validation-Domain" -"CMU.CLAN","CMU.CLAN","PackageIdentifier","Policy-Test-1.8" -"CodeBlocks.CodeBlocks","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"CodeBlocks.CodeBlocks.MinGW","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"CologneCodeCompany.XYplorer","CologneCodeCompany.XYplorer","PackageIdentifier","Policy-Test-2.7" -"CologneCodeCompany.XYplorerPortable","CologneCodeCompany.XYplorerPortable","PackageIdentifier","Policy-Test-2.7" -"Comfy.ComfyUI-Desktop","download.todesktop.com","InstallerUrl","Validation-Domain" -"ContourDesign.ContourShuttle","cdn.shopify.com","InstallerUrl","Validation-Domain" -"Convertilla.Convertilla","Convertilla.Convertilla","PackageIdentifier","Policy-Test-1.2" -"Corel.MindManager.23","download.mindjet.com","InstallerUrl","Validation-Domain" -"CrossPlusA.Balabolka","www.cross-plus-a.com","InstallerUrl","Validation-Domain" -"Crucial.StorageExecutive","Crucial.StorageExecutive","PackageIdentifier","Policy-Test-1.2" -"CrystalDewWorld.CrystalMarkRetro","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"CTerm.CTerm","gitee.com","InstallerUrl","Validation-Domain" -"CurveSeries.CurveSeries","www.c3excel.com","InstallerUrl","Validation-Domain" -"DanielGehriger.MSI2XML","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"Dedoose.Dedoose","downloads.ctfassets.net","InstallerUrl","Validation-Domain" -"Delinea.DelineaConnectionManager","downloads.cm.thycotic.com","InstallerUrl","Validation-Domain" -"Delinea.PrivilegeManagerAgents","tmsnuget.thycotic.com","InstallerUrl","Validation-Domain" -"Delinea.ThycoticDirectoryServicesAgent","Delinea.ThycoticDirectoryServicesAgent","PackageIdentifier","Validation-No-Executables" -"Delinea.ThycoticLocalSecurityAgent","Delinea.ThycoticLocalSecurityAgent","PackageIdentifier","Validation-No-Executables" -"DelineaInc.ThycoticLocalSecurityAgent","DelineaInc.ThycoticLocalSecurityAgent","PackageIdentifier","Validation-No-Executables" -"DeltaChat.DeltaChat","download.delta.chat","InstallerUrl","Validation-Domain" -"Dialpad.DialpadMeetings","storage.googleapis.com","InstallerUrl","Validation-Domain" -"DigitalScience.Papers","update.readcube.com","InstallerUrl","Validation-Domain" -"DirkJansen.MailCheck2","www.d-jan.de","InstallerUrl","Validation-Domain" -"DisplayLink.GraphicsDriver.HotDesking","DisplayLink.GraphicsDriver.HotDesking","PackageIdentifier","Policy-Test-2.7" -"DistroaAV.DistroAV","DistroaAV.DistroAV","PackageIdentifier","Validation-No-Executables" -"DNAGenics.DNAKitStudio","dgadmixstorage.blob.core.windows.net","InstallerUrl","Validation-Domain" -"DocuSign.DocusignEdit","tools.springcm.com","InstallerUrl","Validation-Domain" -"dougcunha.VsExtensionsTool","dougcunha.VsExtensionsTool","PackageIdentifier","Policy-Test-2.7" -"Doxim.StriataReader.EXE","Doxim.StriataReader.EXE","PackageIdentifier","Validation-No-Executables" -"drsaint.WixTool.Red","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"drsaint.WixTool.Yellow","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"Dutchview.Flexwhere","s3.eu-central-1.amazonaws.com","InstallerUrl","Validation-Domain" -"DWANGO.SeirenVoice.yukari.Trial","sv-packed-release.s3.ap-northeast-1.amazonaws.com","InstallerUrl","Validation-Domain" -"Dynare.Dynare","Dynare.Dynare","PackageIdentifier","policy-Test-1.8" -"EasternGraphics.pCon-basket","downloads.pcon-solutions.com","InstallerUrl","Validation-Domain" -"EasternGraphics.pCon-planner.ME","downloads.pcon-solutions.com","InstallerUrl","Validation-Domain" -"EasternGraphics.pCon-planner.Pro","downloads.pcon-solutions.com","InstallerUrl","Validation-Domain" -"EasternGraphics.pCon-planner.STD","downloads.pcon-solutions.com","InstallerUrl","Validation-Domain" -"EastMoney.EastMoney","EastMoney.EastMoney","PackageIdentifier","Policy-Test-2.9" -"EastMoney.EastmoneySpeciality","EastMoney.EastmoneySpeciality","PackageIdentifier","Policy-Test-2.9" -"Easybits.MagicDesktop.Kiosk","Easybits.MagicDesktop.Kiosk","PackageIdentifier","Policy-Test-2.9" -"EclipseFoundation.EclipseIDEforJavaDevelopers","ftp.halifax.rwth-aachen.de","InstallerUrl","Validation-domain" -"EDPB.WebsiteAuditTool","code.europa.eu","InstallerUrl","Validation-Domain" -"ElectronCommunity.ElectronFiddle","github.com","InstallerUrl","Validation-Forbidden-URL-Error" -"Element.Element","packages.element.io","InstallerUrl","URL-Validation-Error" -"ESET.Nod32","ESET.Nod32","PackageIdentifier","Policy-Test-1.2" -"ESET.Security.SmallBusiness","ESET.Security.SmallBusiness","PackageIdentifier","Policy-Test-1.2" -"EuSoft.Dehelper","static.frdic.com","InstallerUrl","Validation-Domain" -"EuSoft.Eshelper","static.frdic.com","InstallerUrl","Validation-Domain" -"EuSoft.Frhelper","static.frdic.com","InstallerUrl","Validation-Domain" -"Fathom.Fathom","storage.googleapis.com","InstallerUrl","Validation-Domain" -"FlightGear.FlightGear","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"FlowJo.FlowJo","fjinstallers.s3.amazonaws.com","InstallerUrl","Validation-Domain" -"flyingpie.windows-terminal-quake.prerelease","flyingpie.windows-terminal-quake.prerelease","PackageIdentifier","Policy-Test-2.9" -"FreedomScientific.Fusion.2024","software.vfo.digital","InstallerUrl","Validation-Domain" -"FreedomScientific.Fusion.2025","software.vfo.digital","InstallerUrl","Validation-Domain" -"FreedomScientific.JAWS.2025","software.vfo.digital","InstallerUrl","Validation-Domain" -"FxSound.FxSound","FxSound.FxSound","PackageIdentifier","Policy-Test-1.2" -"GAI.GAI","webpath.iche2.com","InstallerUrl","Validation-Domain" -"GamaPlatform.Gama","GamaPlatform.Gama","PackageIdentifier","Policy-Test-2.7" -"GameSir.GameSirConnect","xjdl.bigeyes.com","InstallerUrl","Validation-Domain" -"GameSir.GameSirT4kApp","xjdl.bigeyes.com","InstallerUrl","Validation-Domain" -"GauzyTech.NeatConverter","neat-reader.yuezhi.ink","InstallerUrl","Validation-Domain" -"GauzyTech.NeatReader","neat-reader-release.oss-cn-hongkong.aliyuncs.com","InstallerUrl","Validation-Domain" -"Geeks3D.FurMark.2","gpumagick.com","InstallerUrl","Validation-Domain" -"GeoDa.GeoDa","GeoDa.GeoDa","PackageIdentifier","Policy-Test-2.7" -"Glodon.CADReader.CN","yuntu-f.kuaicad.com","InstallerUrl","URL-Validation-Error" -"GnuCash.GnuCash","GnuCash.GnuCash","PackageIdentifier","Policy-Test-1.8" -"GnuWin32.Flex","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"GnuWin32.Patch","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"GOG.Galaxy","cdn.gog.com","InstallerUrl","Validation-Forbidden-URL-Error" -"GovernmentOfThePRC.GuangdongProvince.YueZhengYi","dldir1.qq.com","InstallerUrl","Validation-Domain" -"GovernmentOfThePRC.HeNan.ZhengZhou.ZhengZhengDing","zwdd-zhegnzhou.oss-cn-beijing.aliyuncs.com","InstallerUrl","Validation-Domain" -"GovernmentOfThePRC.SAT.ETB.WithholdingSide","file.etax.chinatax.gov.cn","InstallerUrl","Validation-Domain" -"GPSoftware.DirectoryOpus","cdn2.gpsoft.com.au","InstallerUrl","Validation-Domain" -"gretl.gretl","gretl.gretl","PackageIdentifier","Validation-Unapproved-URL" -"h3poteto.whalebird-desktop","github.com","InstallerUrl","URL-Validation-Error" -"HaiYing.OfficeAI","downloadcdn.office-ai.cn","InstallerUrl","Validation-Domain" -"Hasleo.BackupSuiteFree","www.easyuefi.com","InstallerUrl","Validation-Domain" -"HeartbeatChat.Heartbeat","download.todesktop.com","InstallerUrl","Validation-Domain" -"HMCL.HMCL.Dev","HMCL.HMCL.Dev","PackageIdentifier","Possible-Duplicate" -"HMCL.HMCL.Dev.Maven","HMCL.HMCL.Dev.Maven","PackageIdentifier","Possible-Duplicate" -"HMCL.HMCL.Dev.Maven.TencentCloudMirror","mirrors.cloud.tencent.com","InstallerUrl","Validation-Domain" -"HMCL.HMCL.Dev.Maven.TencentCloudMirror","HMCL.HMCL.Dev.Maven.TencentCloudMirror","PackageIdentifier","Possible-Duplicate" -"HMCL.HMCL.Stable","github.com","InstallerUrl","Validation-Domain" -"HMCL.HMCL.Stable.Maven","HMCL.HMCL.Stable.Maven","PackageIdentifier","Possible-Duplicate" -"HMCL.HMCL.Stable.Maven.TencentCloudMirror","mirrors.cloud.tencent.com","InstallerUrl","Validation-Domain" -"HomeDev.PatchCleanerPortable","deac-riga.dl.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"HP.ConnectivityKit","updates.moravia-consulting.com","InstallerUrl","Validation-Domain" -"HP.PrimeVirtualCalculator","updates.moravia-consulting.com","InstallerUrl","Validation-Domain" -"HuoHuaSiWei.HuoHuaBianCheng","img.txqn.huohua.cn","InstallerUrl","Validation-Domain" -"HuoHuaSiWei.HuoHuaSiWei","pkm-01.classpodcdn.com","InstallerUrl","Validation-Domain" -"HydrologicEngineeringCenter.HEC-MetVue","www.hec.usace.army.mil","InstallerUrl","Validation-Domain" -"Ideamerit.GalaxyModeler","www.datensen.com","InstallerUrl","Validation-Domain" -"Ideamerit.LunaModeler","www.datensen.com","InstallerUrl","Validation-Domain" -"Ideamerit.MeteorModeler","www.datensen.com","InstallerUrl","Validation-Domain" -"Ideamerit.MoonModeler","www.datensen.com","InstallerUrl","Validation-Domain" -"IDMComputerSolutions,Inc.UEStudio","downloads.ultraedit.com","InstallerUrl","Validation-Domain" -"J2S3.MerciApp","p-merci-windows-adapter.s3.eu-west-3.amazonaws.com","InstallerUrl","Validation-Domain" -"jgaa.WarSetup","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"JiriPolasek.MediaControlsforCommandPalette","JiriPolasek.MediaControlsforCommandPalette","PackageIdentifier","Policy-Test-2.7" -"JustArchiNET.ArchiSteamFarm","JustArchiNET.ArchiSteamFarm","PackageIdentifier","Policy-Test-2.7" -"JustArchiNET.ArchiSteamFarm","JustArchiNET.ArchiSteamFarm","PackageIdentifier","Policy-Test-2.7" -"kangfenmao.CherryStudio","kangfenmao.CherryStudio","PackageIdentifier","Policy-Test-2.7" -"kangyu-california.PersistentWindows","kangyu-california.PersistentWindows","PackageIdentifier","Policy-Test-2.5" -"KaringX.Karing","KaringX.Karing","PackageIdentifier","Policy-Test-1.2" -"KDE.KStars","www.indilib.org","InstallerUrl","Validation-Domain" -"KDE.Parley","KDE.Parley","PackageIdentifier","Policy-Test-2.7" -"KeeperSecurity.KeeperDesktop","KeeperSecurity.KeeperDesktop","PackageIdentifier","Policy-Test-2.8" -"KeeyaiSoft.Flame","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"Kenkun.AviUtlExEdit2","spring-fragrance.mints.ne.jp","InstallerUrl","Validation-Domain" -"kevinberger-ch.SafePDFViewer","gitlab.com","InstallerUrl","Validation-Domain" -"KindaBrazy.LynxHub","KindaBrazy.LynxHub","PackageIdentifier","Policy-Test-2.9" -"KindaBrazy.LynxHub","KindaBrazy.LynxHub","PackageIdentifier","Policy-Test-1.2" -"Kingsoft.PowerWord","download.iciba.com","InstallerUrl","Validation-Domain" -"KRTirtho.Flemozi","KRTirtho.Flemozi","PackageIdentifier","Validation-Installation-Error" -"Kubus.BCFManager.Revit.2022","download.bimcollab.com","InstallerUrl","Validation-Domain" -"Kubus.BCFManager.Revit.2023","download.bimcollab.com","InstallerUrl","Validation-Domain" -"Kubus.BCFManager.Revit.2024","download.bimcollab.com","InstallerUrl","Validation-Domain" -"Kubus.BCFManager.Revit.2025","download.bimcollab.com","InstallerUrl","Validation-Domain" -"Kubus.BCFManager.Standalone","download.bimcollab.com","InstallerUrl","Validation-Domain" -"KurtZimmermann.RegCool","KurtZimmermann.RegCool","PackageIdentifier","Validation-No-Executables" -"Lazarus.Lazarus","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"Lebo.Lebo","download.mirrorcast.cn","InstallerUrl","Validation-Domain" -"LEERINA.ShanaEncoder","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"LeNgocKhoa.Laragon","github.com","InstallerUrl","URL-Validation-Error" -"LeoKlaus.HeadsetControl-GUI","LeoKlaus.HeadsetControl-GUI","PackageIdentifier","Policy-Test-1.2" -"LifeAt.LifeAt","download.todesktop.com","InstallerUrl","Validation-Domain" -"LinearOrbit.Linear","download.todesktop.com","InstallerUrl","Validation-Domain" -"Logitech.OnboardMemoryManager","download01.logi.com","InstallerUrl","Validation-Domain" -"Logitech.Sync","Logitech.Sync","PackageIdentifier","Policy-Test-2.5" -"LukasHermann.stagetimer-io","storage.googleapis.com","InstallerUrl","Validation-Domain" -"LuxTrust.LuxTrustMiddleware","gitlab.com","InstallerUrl","Validation-Domain" -"Macabacus.Macabacus","Macabacus.Macabacus","PackageIdentifier","Policy-Test-1.8" -"Macabacus.Macabacus","softwarecdn.blob.core.windows.net","InstallerUrl","Validation-Domain" -"Macabacus.Macabacus","Macabacus.Macabacus","PackageIdentifier","Validation-No-Executables" -"MacmillanLearning.iClickerCloud","artifactory.reef-education.com","InstallerUrl","Validation-Domain" -"Magnate.SpeedManager","file2.speedtest.cn","InstallerUrl","Validation-Domain" -"Magnate.SpeedManager.Pro","file2.speedtest.cn","InstallerUrl","Validation-Domain" -"MAILPLUGInc.MAILPLUGMessengerDesktop","chat.mailplug.com","InstallerUrl","URL-Validation-Error" -"Makeblock.xToolCreativeSpace","storage-us.atomm.com","InstallerUrl","Validation-Domain" -"MartiCliment.UniGetUI","github.com","InstallerUrl","Validation-Domain" -"MartiCliment.UniGetUI","MartiCliment.UniGetUI.Pre-Release","PackageIdentifier","Validation-No-Executables" -"MartiCliment.UniGetUI.Pre-Release","MartiCliment.UniGetUI.Pre-Release","PackageIdentifier","Validation-No-Executables" -"MaxCut.MaxCut","s3.amazonaws.com","InstallerUrl","Validation-Domain" -"MAXHUB.MAXHUBShare","ifpserver.com","InstallerUrl","Validation-Domain" -"MAXHUB.MAXHUBShare.CN","static.cvte.com","InstallerUrl","Validation-Domain" -"mendelson.AS2","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"Mergiraf.Mergiraf","codeberg.org","InstallerUrl","Validation-Domain" -"MeshIntelligentTechnologies.PiecesCLI","storage.googleapis.com","InstallerUrl","Validation-Domain" -"mesonbuild.meson","mesonbuild.meson","PackageIdentifier","Policy-Test-2.5" -"MicroDicom.DICOMViewer","MicroDicom.DICOMViewer","PackageIdentifier","Policy-Test-1.2" -"MicroDicom.ShellExtension","MicroDicom.ShellExtension","PackageIdentifier","Validation-No-Executables" -"Microsoft.DotNet.UninstallTool","Microsoft.DotNet.UninstallTool","PackageIdentifier","Validation-No-Executables" -"Microsoft.Office.2010.FilterPacks","Microsoft.Office.2010.FilterPacks","PackageIdentifier","Validation-No-Executables" -"Microsoft.RemoteDesktopClient","Microsoft.Skype","PackageIdentifier","Policy-Test-2.5" -"Microsoft.RemoteDesktopClient","res.cdn.office.net","InstallerUrl","Validation-Domain" -"Microsoft.RemoteDesktopMMRService","intstreamreleases.z22.web.core.windows.net","InstallerUrl","Validation-Domain" -"Microsoft.ServerSpeechPlatformRuntime","Microsoft.ServerSpeechPlatformRuntime","PackageIdentifier","Validation-No-Executables" -"Microsoft.ServiceFabricRuntime","Microsoft.ServiceFabricRuntime","PackageIdentifier","Validation-No-Executables" -"Microsoft.Skype","download.skype.com","InstallerUrl","Validation-Domain" -"Microsoft.Skype","Microsoft.Skype","PackageIdentifier","Policy-Test-2.5" -"Microsoft.WindowsAppRuntime.1.6","aka.ms","InstallerUrl","Validation-Domain" -"MinistryOfEducationOfThePRC.SmartSchools","download.ykt.cbern.com.cn","InstallerUrl","Validation-Domain" -"MintplexLabs.AnythingLLM","cdn.useanything.com","InstallerUrl","Validation-Domain" -"Mitel.MitelConnect","upgrade01.sky.shoretel.com","InstallerUrl","Validation-Domain" -"mmozeiko.wcap","raw.githubusercontent.com","InstallerUrl","Validation-Domain" -"Modyfi.Modyfi","download.todesktop.com","InstallerUrl","Validation-Domain" -"Moises.Moises","download.todesktop.com","InstallerUrl","Validation-Domain" -"monkeyWie.Gopeed","monkeyWie.Gopeed","PackageIdentifier","Policy-Test-2.7" -"monkeyWie.Gopeed.Web","monkeyWie.Gopeed.Web","PackageIdentifier","Policy-Test-2.7" -"Morgen.Morgen","download.todesktop.com","InstallerUrl","Validation-Domain" -"Morningstar.MorningstarDirectPrerequisite","Morningstar.MorningstarDirectPrerequisite","PackageIdentifier","Validation-No-Executables" -"Mossmouth.SpelunkyClassic","www.derekyu.com","InstallerUrl","Validation-Domain" -"mpv.mpv","nightly.link","InstallerUrl","Validation-Domain" -"NAVERWEBTOONLtd.SeriesComicViewer","appdown.pstatic.net","InstallerUrl","Validation-Domain" -"Navratovi.RemoteBoulderTimer","download.navrat.name","InstallerUrl","Validation-Domain" -"NDI.NDIRuntime","NDI.NDIRuntime","PackageIdentifier","Validation-No-Executables" -"NelsonNumericalSoftware.Nelson","NelsonNumericalSoftware.Nelson","PackageIdentifier","Policy-Test-2.7" -"NetEase.CloudMusicXStudio","NetEase.CloudMusicXStudio","PackageIdentifier","Validation-No-Executables" -"NewBreedSoftware.TuxPaint","sourceforge.net","InstallerUrl","Validation-unapproved-URL" -"Newforma.Konekt.Addin.Autodesk","cdn.bimtrackapp.co","InstallerUrl","Validation-Domain" -"NICESoftware.AmazonDCVClient","d1uj6qtbmh3dt5.cloudfront.net","InstallerUrl","Validation-Domain" -"NICESoftware.AmazonDCVServer","d1uj6qtbmh3dt5.cloudfront.net","InstallerUrl","Validation-Domain" -"NICESoftware.AmazonDCVSessionManagerAgent","d1uj6qtbmh3dt5.cloudfront.net","InstallerUrl","Validation-Domain" -"NICESoftware.AmazonDCVVirtualDisplay","d1uj6qtbmh3dt5.cloudfront.net","InstallerUrl","Validation-Domain" -"NirSoft.UninstallView","NirSoft.UninstallView","PackageIdentifier","Validation-No-Executables" -"nkdAgility.AzureDevOpsMigrationTools","nkdAgility.AzureDevOpsMigrationTools","PackageIdentifier","Policy-Test-2.7" -"nkdAgility.AzureDevOpsMigrationTools.Preview","nkdAgility.AzureDevOpsMigrationTools.Preview","PackageIdentifier","Policy-Test-2.7" -"NoMachine.NoMachine","NoMachine.NoMachine","PackageIdentifier","Policy-Test-2.5" -"NoMachine.NoMachine.CloudServer","NoMachine.NoMachine.CloudServer","PackageIdentifier","Policy-Test-2.5" -"NoMachine.NoMachine.EnterpriseClient","NoMachine.NoMachine.EnterpriseClient","PackageIdentifier","Policy-Test-2.5" -"NoMachine.NoMachine.EnterpriseCloudServer","NoMachine.NoMachine.EnterpriseCloudServer","PackageIdentifier","Policy-Test-2.5" -"NoMachine.NoMachine.EnterpriseCloudServerCluster","NoMachine.NoMachine.EnterpriseCloudServerCluster","PackageIdentifier","Policy-Test-2.5" -"NoMachine.NoMachine.EnterpriseDesktop","NoMachine.NoMachine.EnterpriseDesktop","PackageIdentifier","Policy-Test-2.5" -"NoMachine.NoMachine.SmallBusinessCloudServer","NoMachine.NoMachine.SmallBusinessCloudServer","PackageIdentifier","Policy-Test-2.5" -"Notion.NotionCalendar","download.todesktop.com","InstallerUrl","Validation-Domain" -"NovationDMS.LaunchkeyMK4Cubase","NovationDMS.LaunchkeyMK4Cubase","PackageIdentifier","Validation-No-Executables" -"NovationDMS.LaunchkeyMK4Cubase","fael-downloads-prod.focusrite.com","InstallerUrl","Validation-Domain" -"Nuclino.Nuclino","s3-eu-central-1.amazonaws.com","InstallerUrl","Validation-Domain" -"Nutstore.EO2","dc-pkg-cdn.jianguoyun.com","InstallerUrl","Validation-Domain" -"Objective.Trapeze","s3-ap-southeast-2.amazonaws.com","InstallerUrl","Validation-Domain" -"obot-platform.obot","obot-platform.obot","PackageIdentifier","Policy-Test-2.7" -"OctopusData.Octoparse","OctopusData.Octoparse","PackageIdentifier","Policy-Test-2.7" -"OctopusData.Octoparse.CN","download.bazhuayu.com","InstallerUrl","validation-domain" -"OctopusData.Octoparse.CN","OctopusData.Octoparse.CN","PackageIdentifier","Policy-Test-2.7" -"ODA.ODADrawingsExplorer","www.opendesign.com","InstallerUrl","Validation-Domain" -"ODA.ODADrawingsExplorer","ODA.ODADrawingsExplorer","PackageIdentifier","Policy-Test-2.7" -"ODA.ODAFileConverter","www.opendesign.com","InstallerUrl","Validation-Domain" -"ODA.ODAViewer","www.opendesign.com","InstallerUrl","Validation-Domain" -"OK1DIX.VUSC4WIN","www.ok2kkw.com","InstallerUrl","Validation-Domain" -"OliverSchwendener.ueli","github.com","InstallerUrl","URL-Validation-Error" -"OpenSourcePhysics.Tracker","physlets.org","InstallerUrl","Validation-Domain" -"Orica.SHOTPlus","downloads.blastiq.com","InstallerUrl","Validation-Domain" -"Orica.SHOTPlus.Tunnel","downloads.blastiq.com","InstallerUrl","Validation-Domain" -"Orica.SHOTPlus.Underground","downloads.blastiq.com","InstallerUrl","Validation-Domain" -"OSGeo.QGIS_LTR","qgis.org","InstallerUrl","URL-Validation-Error" -"OWASP.ThreatDragon","OWASP.ThreatDragon","PackageIdentifier","Policy-Test-2.8" -"paolosalvatori.ServiceBusExplorer","paolosalvatori.ServiceBusExplorer","PackageIdentifier","Policy-Test-2.7" -"PCTI.OrphanRehomer.Scotland","apps.docman.com","InstallerUrl","Validation-Domain" -"Pexip.Pexip.Service","static.videxio.net","InstallerUrl","Validation-Domain" -"Philips.SmartControl","gz-dlsw.tpv-tech.com","InstallerUrl","Validation-Domain" -"Philips.SpeechLive","speech-desktop-app-update.speech.com","InstallerUrl","Validation-Domain" -"Philips.SpeechLive.MSI","speech-desktop-app-update.speech.com","InstallerUrl","Validation-Domain" -"Pinnacle21.Pinnacle21.Community","dthfq9xldm1jq.cloudfront.net","InstallerUrl","Validation-Domain" -"Piriform.CCleaner.Slim","bits.avcdn.net","InstallerUrl","Validation-Domain" -"pljones.s3pe","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"PostgreSQL.PostgreSQL.13","get.enterprisedb.com","InstallerUrl","Validation-Domain" -"PostgreSQL.PostgreSQL.14","get.enterprisedb.com","InstallerUrl","Validation-Domain" -"PostgreSQL.PostgreSQL.15","get.enterprisedb.com","InstallerUrl","Validation-Domain" -"PostgreSQL.PostgreSQL.17","get.enterprisedb.com","InstallerUrl","Validation-Domain" -"ProjectLibre.ProjectLibre","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"Psi.Psi","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"PulseHD.PulseHD","storage.googleapis.com","InstallerUrl","Validation-Domain" -"Qingfeng.HeyboxChat","macc.max-c.com","InstallerUrl","Validation-Domain" -"RaisingTheFloor.Morphic","d23vryjv7k8eyb.cloudfront.net","InstallerUrl","Validation-Domain" -"Rakuten.Viber","Rakuten.Viber","PackageIdentifier","Policy-Test-2.5" -"RayHinchliffe.SIV","delivery2.filecroco.com","InstallerUrl","Validation-Domain" -"RedisInsight.RedisInsight","s3.amazonaws.com","InstallerUrl","Validation-Domain" -"RHash.RHash","downloads.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"Ringler.SnapformViewer","mirror1.steuersoftware.ch","InstallerUrl","Validation-Domain" -"RoxyBrowser.RoxyBrowser","lumibrowser-hk.oss-cn-hongkong.aliyuncs.com","InstallerUrl","Validation-Domain" -"RystadEnergy.CubeBrowser","RystadEnergy.CubeBrowser","PackageIdentifier","Validation-Domain" -"Schrodinger.PyMOL","storage.googleapis.com","InstallerUrl","Validation-Domain" -"Seafile.Seadrive","s3.eu-central-1.amazonaws.com","InstallerUrl","Validation-domain" -"Shemeshg.MidiRouterClient","downloads.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"ShiningLight.OpenSSL","slproweb.com","InstallerUrl","Validation-Domain" -"ShiningLight.OpenSSL.Dev","slproweb.com","InstallerUrl","Validation-Domain" -"SignerLabs.Klee.CPU ","dvnr1hi9fanyr.cloudfront.net","InstallerUrl","Validation-Domain" -"SignerLabs.Klee.CUDA","dvnr1hi9fanyr.cloudfront.net","InstallerUrl","Validation-Domain" -"SimpleTex.SimpleTex","gitee.com","InstallerUrl","Validation-Domain" -"sixspot.freescan","drive.google.com","InstallerUrl","Validation-Domain" -"Slite.Slite","download.todesktop.com","InstallerUrl","Validation-Domain" -"SmartBear.ReadyAPI","dl.eviware.com","InstallerUrl","Validation-Domain" -"SmartBear.ReadyAPILoadUIAgent","dl.eviware.com","InstallerUrl","Validation-Domain" -"SmartBear.ReadyAPIVirtServer","dl.eviware.com","InstallerUrl","Validation-Domain" -"Snowflake.SnowflakeCLI","Snowflake.SnowflakeCLI","PackageIdentifier","Policy-Test-2.7" -"Softpcapps.MaximizeAlways","www.4dots-software.com","InstallerUrl","Validation-Domain" -"Solidigm.StorageTool","sdmsdfwdriver.blob.core.windows.net","InstallerUrl","Validation-Domain" -"Sony.XperiaCompanion","Sony.XperiaCompanion","PackageIdentifier","Policy-Test-1.2" -"SouthRiverTechnologies.WebDrive","srtcdnstorage.blob.core.windows.net","InstallerUrl","Validation-Domain" -"Sparkol.VideoScribe","s3.amazonaws.com","InstallerUrl","Validation-Domain" -"Steady.Steady","download.todesktop.com","InstallerUrl","Validation-Domain" -"Stevenaaus.ScidvsPC","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"StevenMayall.MusicBee","StevenMayall.MusicBee","PackageIdentifier","Validation-No-Executables" -"Summa.ColigoConnectConfigurationTool","downloadcloudcti.blob.core.windows.net","InstallerUrl","Validation-Domain" -"Summay.Sunsama","download.todesktop.com","InstallerUrl","Validation-Domain" -"SURF.LetsConnectClient","codeberg.org","InstallerUrl","Validation-Domain" -"Surfshark.Surfshark","Surfshark.Surfshark","PackageIdentifier","Policy-Test-2.3" -"SUSE.openSUSE.Leap.15.6","publicwsldistros.blob.core.windows.net","InstallerUrl","Validation-Domain" -"SUSE.openSUSE.Tumbleweed","publicwsldistros.blob.core.windows.net","InstallerUrl","Validation-Domain" -"SUSE.SUSE.15SP6","publicwsldistros.blob.core.windows.net","InstallerUrl","Validation-Domain" -"SylvainRougeaux.Echosync","api.luminescence-software.org","InstallerUrl","Validation-Domain" -"SylvainRougeaux.Metatogger","api.luminescence-software.org","InstallerUrl","Validation-Domain" -"SyncTERM.SyncTERM","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"Tandem.Tandem","download.todesktop.com","InstallerUrl","Validation-Domain" -"TASKING.winIDEA","www.isystem.com","InstallerUrl","Validation-Domain" -"Technelysium.Chromas","Technelysium.Chromas","PackageIdentifier","Policy-Test-1.8" -"Technelysium.Chromas.Pro","Technelysium.Chromas.Pro","PackageIdentifier","Policy-Test-1.8" -"Tencent.FanLive","d3g.qq.com","InstallerUrl","Validation-Domain" -"Tencent.ima-copilot","ima-app.image.myqcloud.com","InstallerUrl","Validation-Domain" -"Thales.SafeNetAuthenticationClient","www.digicert.com","InstallerUrl","Validation-Domain" -"TheBlind.T-Shell","gitee.com","InstallerUrl","Validation-Domain" -"tibbo.ioninja","tibbo.ioninja","PackageIdentifier","Policy-Test-2.5" -"TigerVNC.TigerVNC","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"TORTUSAI.TORTUS","storage.googleapis.com","InstallerUrl","Validation-Domain" -"Trimble.SketchUpViewer","Trimble.SketchUpViewer","PackageIdentifier","Policy-Test-1.2" -"Typst.Typst","Typst.Typst","PackageIdentifier","Policy-Test-1.2" -"Ubiquiti.IdentityDesktop.Endpoint","fw-download.ubnt.com","InstallerUrl","Validation-Domain" -"Ubiquiti.IdentityDesktop.Enterprise","fw-download.ubnt.com","InstallerUrl","Validation-Domain" -"Ubiquiti.UniFiNetworkServer","dl.ui.com","InstallerUrl","Validation-Domain" -"Ubisoft.Chroma","raw.githubusercontent.com","InstallerUrl","Validation-Domain" -"Ubisoft.Connect","static3.cdn.ubi.com","InstallerUrl","Validation-Domain" -"undergroundwires.privacy.sexy","undergroundwires.privacy.sexy","PackageIdentifier","Policy-Test-2.7" -"UweSieber.ComPortInfo","UweSieber.ComPortInfo","PackageIdentifier","Policy-Test-2.7" -"UweSieber.ComPortInfo","UweSieber.ComPortInfo","PackageIdentifier","Policy-Test-1.2" -"UweSieber.UsbDriveInfo","UweSieber.UsbDriveInfo","PackageIdentifier","Policy-Test-2.7" -"Vector35.BinaryNinja","Vector35.BinaryNinja","PackageIdentifier","Policy-Test-2.5" -"Wagnardsoft.DisplayDriverUninstaller","Wagnardsoft.DisplayDriverUninstaller","PackageIdentifier","Validation-No-Executables" -"wanou067.MazeLauncher","mazecity.eu","InstallerUrl","Validation-Domain" -"WesternDigital.Kitfox","downloads.wdc.com","InstallerUrl","Validation-Domain" -"WetOtter44.StrawberryMusicPlayer.MinGW","codeberg.org","InstallerUrl","Validation-Domain" -"WetOtter44.StrawberryMusicPlayer.MSVC","codeberg.org","InstallerUrl","Validation-Domain" -"Wibu-Systems.CodeMeterRuntimeKit","www.wibu.com","InstallerUrl","Validation-Domain" -"WikimediaProject.AutoWikiBrowser","deac-riga.dl.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"WinEdtTeam.WinEdt","WinEdtTeam.WinEdt","PackageIdentifier","Policy-Test-1.2" -"WinUAE.WinUAE","download.abime.net","InstallerUrl","Validation-Domain" -"WiresharkFoundation.Stratoshark","1.na.dl.wireshark.org","InstallerUrl","Validation-Domain" -"Wondershare.Mockitt.CN","cdn-release.modao.cc","InstallerUrl","Validation-Domain" -"Wondershare.Mockitt.CN","Wondershare.Mockitt.CN","PackageIdentifier","Validation-No-Executables" -"wpdos.PDFtoPrinter","mendelson.org","InstallerUrl","Validation-Domain" -"wpdos.PDFtoPrinter","wpdos.PDFtoPrinter","PackageIdentifier","Policy-Test-2.9" -"Xersin.Sumsie","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"Xerxes-2.ClewdR","Xerxes-2.ClewdR","PackageIdentifier","Policy-Test-2.7" -"Xiaocai.MiniCADDraw","clientdown.appol.com","InstallerUrl","Validation-Domain" -"Xiaocai.MiniCADSee","clientdown.appol.com","InstallerUrl","Validation-Domain" -"XnSoft.XnConvert","XnSoft.XnConvert","PackageIdentifier","Policy-Test-1.2" -"XnSoft.XnConvert","download.xnview.com","InstallerUrl","Validation-Domain" -"XnSoft.XnResize","download.xnview.com","InstallerUrl","Validation-Domain" -"XTLS.Xray-core","XTLS.Xray-core","PackageIdentifier","Policy-Test-2.7" -"YABE.YetAnotherBacnetExplorer","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"Yealink.YealinkUSBConnect.CN","resource.ymcs.ylcloud.com","InstallerUrl","Validation-Domain" -"Youda008.DoomRunner","Youda008.DoomRunner","PackageIdentifier","Policy-Test-1.2" -"YouXiao.YXFile","zhcy.oss-cn-hangzhou.aliyuncs.com","InstallerUrl","Validation-Domain" -"Yuanfudao.Yuanfudao","apphub.fbcontent.cn","InstallerUrl","Validation-Domain" -"Yubico.YubiKeySmartCardMinidriver","Yubico.YubiKeySmartCardMinidriver","PackageIdentifier","Validation-No-Executables" -"Z-DBackup.Z-Cron","z-download.de","InstallerUrl","Validation-Domain" -"zadjii.ObsidianNotesExtension","zadjii.ObsidianNotesExtension","PackageIdentifier","Policy-Test-2.7" -"zelenkov.WixTrim","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" -"ZivverB.V.ZivverOfficePlugin","ZivverB.V.ZivverOfficePlugin","PackageIdentifier","Validation-No-Executables" +"PackageIdentifier","ManifestValue","ManifestKey","RemoveLabel" +"115.115Chrome","115.115Chrome","PackageIdentifier","Policy-Test-1.2" +"2dust.v2rayN","2dust.v2rayN","PackageIdentifier","Validation-No-Executables" +"360.360Ent","down.browsertest.cn","InstallerUrl","Validation-Domain" +"3d-io.Exr-IO","3d-io.Exr-IO","PackageIdentifier","Validation-No-Executables" +"7zip.7zip","sourceforge.net","InstallerUrl","Validation-Domain" +"7zip.7zip","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"a9gent.MindFS","a9gent.MindFS","PackageIdentifier","Policy-Test-1.2" +"a9gent.MindFS","a9gent.MindFS","PackageIdentifier","Validation-No-Executables" +"ABC.ABCEBankAssistant","ABC.ABCEBankAssistant","PackageIdentifier","Policy-Test-1.8" +"abelhadigital.HostsMan","softpedia-secure-download.com","InstallerUrl","Validation-Domain" +"abgox.InputTip","github.com","InstallerUrl","Validation-Domain" +"Acqusys.Taskeract","f001.backblazeb2.com","InstallerUrl","Validation-Domain" +"AdGuard.AdGuard","agrd.io","InstallerUrl","Validation-Domain" +"AdGuard.AdGuard.Nightly","agrd.io","InstallerUrl","Validation-Domain" +"AdGuard.AdGuardVPN","agrd.io","InstallerUrl","Validation-Domain" +"AdGuard.AdGuardVPN.Nightly","agrd.io","InstallerUrl","Validation-Domain" +"AETMobile.ZORG-IDDesktopApp","www.vzvz.nl","InstallerUrl","Validation-Domain" +"Agretis.SmartInstallMaker","Agretis.SmartInstallMaker","PackageIdentifier","Policy-Test-1.2" +"Airspy.SDRSharp.DotNet9","Airspy.SDRSharp.DotNet9","PackageIdentifier","Policy-Test-2.9" +"alelec.WSLUSBManager","gitlab.com","InstallerUrl","Validation-Domain" +"alex-sh.GTK2-Runtime","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"AlexanderSeeligerSoftware.BackupServiceHome","download.bdightbits.de","InstallerUrl","Validation-Domain" +"AlexandruCsete.Gpredict","altushost-bul.dl.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Alibaba.UCCloudDrive","Alibaba.UCCloudDrive","PackageIdentifier","Validation-No-Executables" +"AlroviApS.RoGoldUltimateApp","objectstorage.us-ashburn-1.oraclecloud.com","InstallerUrl","Validation-Domain" +"Amazon.AthenaODBCDriver.1","Amazon.AthenaODBCDriver.1","PackageIdentifier","Validation-No-Executables" +"Amazon.AthenaODBCDriver.2","Amazon.AthenaODBCDriver.2","PackageIdentifier","Validation-No-Executables" +"Amazon.KindlePreviewer","Amazon.KindlePreviewer","PackageIdentifier","Policy-Test-1.2" +"Amazon.KindlePreviewer","d2bzeorukaqrvt.cloudfront.net","InstallerUrl","Validation-Domain" +"Amazon.NoSQLWorkbench","Amazon.NoSQLWorkbench","PackageIdentifier","Validation-No-Executables" +"Amazon.NoSQLWorkbench","dy9cqqaswpltd.cloudfront.net","InstallerUrl","Validation-Domain" +"AmyXun.AxGlyph","download.s21i.co99.net","InstallerUrl","Validation-Domain" +"AmyXun.AxMath","download.s21i.co99.net","InstallerUrl","Validation-Domain" +"AndreaJens.Schwarzerblitz","download.gamejolt.net","InstallerUrl","Validation-Domain" +"AndrejFogelton.eyeblink","www.blinkingmatters.com","InstallerUrl","Validation-Domain" +"AndyFul.ConfigureDefender","raw.githubusercontent.com","InstallerUrl","Validation-domain" +"Anthropic.ClaudeCode","storage.googleapis.com","InstallerUrl","Validation-Domain" +"anycam-io.AnyCam","anycam-io.AnyCam","PackageIdentifier","Possible-Duplicate" +"Anysphere.Cursor","download.todesktop.com","InstallerUrl","Validation-Domain" +"AnyTXT.AnyTXTSearcher","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"ApacheLounge.httpd","ApacheLounge.httpd","PackageIdentifier","Validation-No-Executables" +"APIDocumentation.Scalar","download.todesktop.com","InstallerUrl","Validation-Domain" +"Appeon.PowerServerToolkit2022R3-MR03","Appeon.PowerServerToolkit2022R3-MR03","PackageIdentifier","Policy-Test-1.2" +"Appest.Dida","Appest.Dida","PackageIdentifier","Policy-Test-1.8" +"Appest.Dida","Appest.Dida","PackageIdentifier","Policy-Test-1.8" +"AriesOxO.piz","AriesOxO.piz","PackageIdentifier","Policy-Test-1.2" +"AriesOxO.piz","AriesOxO.piz","PackageIdentifier","Policy-Test-2.7" +"ArtisticStyle.ArtisticStyle","sourceforge.net","InstallerUrl","Validation-Domain" +"ASGARDEXMaintainers.ASGARDEX","github.com","InstallerUrl","Validation-Domain" +"Atos.emotachDirect","www.fzhsw.bazg.admin.ch","InstallerUrl","Validation-Domain" +"Audient.iD","d9w4fhj63j193.cloudfront.net","InstallerUrl","Validation-Domain" +"AuraMarker.Lattics","releases.zine.la","InstallerUrl","Validation-Domain" +"AutoEver.NavigationUpdater","oem-setup.map-care.com","InstallerUrl","Validation-Domain" +"azurejoga.brasilacessivel","eternal-legend.com.br","InstallerUrl","Validation-Domain" +"Baidu.BaiduWenku","Baidu.BaiduWenku","PackageIdentifier","Validation-No-Executables" +"BakaXL.BakaXL","contents.baka.zone","InstallerUrl","Validation-Domain" +"BalazsTihanyi.NClass","downloads.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Balsamiq.Wireframes","build_archives.s3.amazonaws.com","InstallerUrl","Validation-Domain" +"Bambulab.CyberBrick","public-cdn.bblmw.com","InstallerUrl","Validation-Domain" +"Baxi.MyBaxiPRO","pcstwinget.blob.core.windows.net","InstallerUrl","Validation-Domain" +"BayerischesLandesamtfuerSteuern.ElsterAuthenticator","download.elster.de","InstallerUrl","Validation-Domain" +"Beanbag.RBTools","downloads.reviewboard.org","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJDK.12","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJDK.12.Lite","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJDK.13","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJDK.13.Full","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJDK.13.Lite","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJDK.23.Lite","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJDK.24.Full","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJDK.24.Lite","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJDK.25","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJDK.25.Full","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJDK.26","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJRE.22","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJRE.23.Full","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJRE.24","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJRE.24.Full","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJRE.25","download.bell-sw.com","InstallerUrl","Validation-Domain" +"BellSoft.LibericaJRE.25.Full","download.bell-sw.com","InstallerUrl","Validation-Domain" +"benbaker76.SimpleHIDWrite3","www.baker76.com","InstallerUrl","Validation-Domain" +"Bilibili.Bcut","boss.hdslb.com","InstallerUrl","Validation-Domain" +"BioSilico.EssayWriter","download.fasteressays.com","InstallerUrl","Validation-Domain" +"Bitvise.SSH.Client","Bitvise.SSH.Client","PackageIdentifier","Policy-Test-2.7" +"Boy1690.Keeply","Boy1690.Keeply","PackageIdentifier","Policy-Test-2.7" +"BreakPointSoftware.HexWorkshop","www.bpsoft.com","InstallerUrl","Validation-Domain" +"BrightSign.BAconnected","downloads.bsn.cloud","InstallerUrl","Validation-Domain" +"BrinkSoftware.IbisVoorInfra","2804826.fs1.hubspotusercontent-na1.net","InstallerUrl","Validation-Domain" +"Brinno.BrinnoVideoPlayer","Brinno.BrinnoVideoPlayer","PackageIdentifier","Validation-Domain" +"BtbN.FFmpeg.GPL.Shared","BtbN.FFmpeg.GPL.Shared","PackageIdentifier","Validation-No-Executables" +"BtbN.FFmpeg.GPL.Shared.7.1","BtbN.FFmpeg.GPL.Shared.7.1","PackageIdentifier","Validation-No-Executables" +"BtbN.FFmpeg.GPL.Shared.7.1","BtbN.FFmpeg.GPL.Shared.7.1","PackageIdentifier","Validation-No-Executables" +"BtbN.FFmpeg.GPL.Shared.8.0","BtbN.FFmpeg.GPL.Shared.8.0","PackageIdentifier","Validation-No-Executables" +"BtbN.FFmpeg.LGPL.Shared","BtbN.FFmpeg.LGPL.Shared","PackageIdentifier","Validation-No-Executables" +"BtbN.FFmpeg.LGPL.Shared.7.1","BtbN.FFmpeg.LGPL.Shared.7.1","PackageIdentifier","Validation-No-Executables" +"Buanzo.FFmpegforAudacity","Buanzo.FFmpegforAudacity","PackageIdentifier","Validation-No-Executables" +"Bunny-Wabbit.ISOCreator","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"ByteDance.Doudian","lf3-cdn-tos.bytescm.com","InstallerUrl","Validation-Domain" +"ByteDance.FeiLian","cdn.isealsuite.com","InstallerUrl","Validation-Domain" +"Cal.Cal","download.todesktop.com","InstallerUrl","Validation-Domain" +"Calibrite.PROFILER","Calibrite.PROFILER","PackageIdentifier","Policy-Test-1.2" +"canghaicheng.ZhuoMianShiJie","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"CareScribe.CaptionEd","storage.googleapis.com","InstallerUrl","Validation-domain" +"CareScribe.TalkType","storage.googleapis.com","InstallerUrl","Validation-Domain" +"Carrier.BlockLoad","www.shareddocs.com","InstallerUrl","Validation-Domain" +"Carrier.BuildingSystemOptimizer","www.shareddocs.com","InstallerUrl","Validation-Domain" +"Carrier.EngineeringEconomicAnalysis","www.shareddocs.com","InstallerUrl","Validation-Domain" +"Carrier.HourlyAnalysisProgram","www.shareddocs.com","InstallerUrl","Validation-Domain" +"Carrier.PLVPro","www.shareddocs.com","InstallerUrl","Validation-Domain" +"Carrier.SystemDesignLoad","www.shareddocs.com","InstallerUrl","Validation-Domain" +"Castr.Castr","download.todesktop.com","InstallerUrl","Validation-Domain" +"cb4960.Capture2Text","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"CCF.CCFLink","exclusive-app-cdn.dingtalk.com","InstallerUrl","Validation-Domain" +"CedricLouvrier.Pinga","css-ig.net","InstallerUrl","Validation-Domain" +"CedricLouvrier.Pingo","css-ig.net","InstallerUrl","Validation-Domain" +"Chainguard.chainctl","dl.enforce.dev","InstallerUrl","Validation-Domain" +"chrdavis.smartrename","chrdavis.smartrename","PackageIdentifier","Validation-No-Executables" +"ChrisLong.EZSignIt","www.ssesetup.com","InstallerUrl","Validation-Domain" +"ChrisLong.NTFSHiddenDataFinder","ChrisLong.NTFSHiddenDataFinder","PackageIdentifier","Policy-Test-1.2" +"ChrisPirih.SkiFree","ski.ihoc.net","InstallerUrl","Validation-Domain" +"ChristianThoeing.PasswordTech","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Chromium.ChromeDriver","storage.googleapis.com","InstallerUrl","Validation-Domain" +"Cisco.ChezScheme","Cisco.ChezScheme","PackageIdentifier","Policy-Test-2.7" +"Cisco.JabberVDIAgent","binaries.webex.com","InstallerUrl","Validation-Domain" +"CISDI.Qingtui","qtstatic.oss-cn-hangzhou.aliyuncs.com","InstallerUrl","Validation-Domain" +"CISDI.Qingtui","CISDI.Qingtui","PackageIdentifier","Policy-Test-1.8" +"CISDI.Qingtui","CISDI.Qingtui","PackageIdentifier","Policy-Test-1.2" +"cita-777.Metapi","cita-777.Metapi","PackageIdentifier","Policy-Test-1.2" +"CleverCloud.CleverTools","clever-tools.clever-cloud.com","InstallerUrl","Validation-Domain" +"Clevertouch.Clevershare","saharaplc.s3.eu-west-2.amazonaws.com","InstallerUrl","Validation-Domain" +"Clevertouch.Clevershare.EXE","saharaplc.s3.eu-west-2.amazonaws.com","InstallerUrl","Validation-Domain" +"ClickUp.ClickUp","download.todesktop.com","InstallerUrl","Validation-Domain" +"CloudImperiumGames.RSILauncher","install.robertsspaceindustries.com","InstallerUrl","Validation-Domain" +"cmlanche.lightningvine","sdtpub.s3.bitiful.net","InstallerUrl","Validation-Domain" +"cmlanche.lightningvine","sdt-1314690352.cos.ap-nanjing.myqcloud.com","InstallerUrl","Validation-Domain" +"CMU.CLAN","CMU.CLAN","PackageIdentifier","Policy-Test-1.2" +"CMU.CLAN","CMU.CLAN","PackageIdentifier","Policy-Test-1.8" +"CMU.CLAN","dali.talkbank.org","InstallerUrl","Validation-Domain" +"CodeBlocks.CodeBlocks","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"CodeBlocks.CodeBlocks.MinGW","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"CodeWithBotina.ArcadeMazeChomper","CodeWithBotina.ArcadeMazeChomper","PackageIdentifier","Policy-Test-1.8" +"CoenFin.AuditfileConverterAndAnalyser","CoenFin.AuditfileConverterAndAnalyser","PackageIdentifier","Policy-Test-2.7" +"CoenFin.PDFinvoice2UBL","CoenFin.PDFinvoice2UBL","PackageIdentifier","Policy-Test-2.7" +"CologneCodeCompany.XYplorer","CologneCodeCompany.XYplorer","PackageIdentifier","Policy-Test-2.7" +"CologneCodeCompany.XYplorer","CologneCodeCompany.XYplorer","PackageIdentifier","Policy-Test-2.7" +"CologneCodeCompany.XYplorerPortable","CologneCodeCompany.XYplorerPortable","PackageIdentifier","Policy-Test-2.7" +"CologneCodeCompany.XYplorerPortable","CologneCodeCompany.XYplorerPortable","PackageIdentifier","Policy-Test-2.7" +"combostrap.doc-exec","combostrap.doc-exec","PackageIdentifier","Policy-Test-2.9" +"ComfortSoftwareGroup.ComfortOSK","ComfortSoftwareGroup.ComfortOSK","PackageIdentifier","Policy-Test-1.8" +"Comfy.ComfyUI-Desktop","download.todesktop.com","InstallerUrl","Validation-Domain" +"Comix.FastMeeting","fs.hst.com","InstallerUrl","Validation-Domain" +"ContourDesign.ContourShuttle","cdn.shopify.com","InstallerUrl","Validation-Domain" +"Convertilla.Convertilla","Convertilla.Convertilla","PackageIdentifier","Policy-Test-1.2" +"CopyTrans.CopyTransHEIC","studio-binaries.s3.us-west-2.amazonaws.com","InstallerUrl","Validation-Domain" +"CopyTrans.Studio","studio-binaries.s3.us-west-2.amazonaws.com","InstallerUrl","Validation-Domain" +"Corel.MindManager.23","download.mindjet.com","InstallerUrl","Validation-Domain" +"cornradio.pausemygame","cornradio.pausemygame","PackageIdentifier","Policy-Test-2.7" +"CosX.ServiceBusExplorerTui","CosX.ServiceBusExplorerTui","PackageIdentifier","Policy-Test-2.7" +"CrazyFigure.QuickCli","CrazyFigure.QuickCli","PackageIdentifier","Policy-Test-1.2" +"CrossPlusA.Balabolka","www.cross-plus-a.com","InstallerUrl","Validation-Domain" +"Crucial.StorageExecutive","Crucial.StorageExecutive","PackageIdentifier","Policy-Test-1.2" +"Crucial.StorageExecutive","assets.micron.com","InstallerUrl","Validation-Domain" +"CrystalDewWorld.CrystalDiskInfo","sourceforge.net","InstallerUrl","Validation-Domain" +"CrystalDewWorld.CrystalDiskInfo.AoiEdition","sourceforge.net","InstallerUrl","Validation-Domain" +"CrystalDewWorld.CrystalDiskInfo.KureiKeiEdition","sourceforge.net","InstallerUrl","Validation-Domain" +"CrystalDewWorld.CrystalDiskInfo.ShizukuEdition","sourceforge.net","InstallerUrl","Validation-Domain" +"CrystalDewWorld.CrystalDiskMark","sourceforge.net","InstallerUrl","Validation-Domain" +"CrystalDewWorld.CrystalDiskMark.AoiEdition","sourceforge.net","InstallerUrl","Validation-Domain" +"CrystalDewWorld.CrystalDiskMark.ShizukuEdition","sourceforge.net","InstallerUrl","Validation-Domain" +"CrystalDewWorld.CrystalMark3D25","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"CrystalDewWorld.CrystalMarkRetro","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"CTerm.CTerm","gitee.com","InstallerUrl","Validation-Domain" +"Cteros.ENO-M","Cteros.ENO-M","PackageIdentifier","Policy-Test-1.2" +"CurveSeries.CurveSeries","www.c3excel.com","InstallerUrl","Validation-Domain" +"D-Link.DWA-X1850Driver","D-Link.DWA-X1850Driver","PackageIdentifier","Possible-Duplicate" +"Danfoss.CCMS","www.turbocoroem.com","InstallerUrl","Validation-Domain" +"DanielGehriger.MSI2XML","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"DaouTech.DaouMessenger","storage.googleapis.com","InstallerUrl","Validation-Domain" +"DeDietrich.PRO","pcstwinget.blob.core.windows.net","InstallerUrl","Validation-Domain" +"Dedoose.Dedoose","downloads.ctfassets.net","InstallerUrl","Validation-Domain" +"Delido.SignalRGBWallpaper","Delido.SignalRGBWallpaper","PackageIdentifier","Policy-Test-1.2" +"Delinea.DelineaConnectionManager","downloads.cm.thycotic.com","InstallerUrl","Validation-Domain" +"Delinea.PrivilegeManagerAgents","tmsnuget.thycotic.com","InstallerUrl","Validation-Domain" +"Delinea.ThycoticDirectoryServicesAgent","Delinea.ThycoticDirectoryServicesAgent","PackageIdentifier","Validation-No-Executables" +"Delinea.ThycoticLocalSecurityAgent","Delinea.ThycoticLocalSecurityAgent","PackageIdentifier","Validation-No-Executables" +"DelineaInc.ThycoticLocalSecurityAgent","DelineaInc.ThycoticLocalSecurityAgent","PackageIdentifier","Validation-No-Executables" +"DeltaChat.DeltaChat","download.delta.chat","InstallerUrl","Validation-Domain" +"Dialpad.DialpadMeetings","storage.googleapis.com","InstallerUrl","Validation-Domain" +"DigitalScience.Papers","update.readcube.com","InstallerUrl","Validation-Domain" +"DirkJansen.MailCheck2","www.d-jan.de","InstallerUrl","Validation-Domain" +"DisplayLink.GraphicsDriver.HotDesking","DisplayLink.GraphicsDriver.HotDesking","PackageIdentifier","Policy-Test-2.7" +"DistroaAV.DistroAV","DistroaAV.DistroAV","PackageIdentifier","Validation-No-Executables" +"DNAGenics.DNAKitStudio","dgadmixstorage.blob.core.windows.net","InstallerUrl","Validation-Domain" +"DocuSign.DocusignEdit","tools.springcm.com","InstallerUrl","Validation-Domain" +"dougcunha.VsExtensionsTool","dougcunha.VsExtensionsTool","PackageIdentifier","Policy-Test-2.7" +"Doxim.StriataReader.EXE","Doxim.StriataReader.EXE","PackageIdentifier","Validation-No-Executables" +"drsaint.WixTool.Red","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"drsaint.WixTool.Yellow","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Dutchview.Flexwhere","s3.eu-central-1.amazonaws.com","InstallerUrl","Validation-Domain" +"DWANGO.SeirenVoice.yukari.Trial","sv-packed-release.s3.ap-northeast-1.amazonaws.com","InstallerUrl","Validation-Domain" +"Dynare.Dynare","Dynare.Dynare","PackageIdentifier","policy-Test-1.8" +"DZEDSystems.DragonframeLicenseManager","www.dragonframe.com","InstallerUrl","Validation-Domain" +"Eagle1.PrettyMark","gitlab.com","InstallerUrl","Validation-Domain" +"Earthshine.DashcamViewer","filedn.com","InstallerUrl","Validation-Domain" +"EasternGraphics.pCon-basket","downloads.pcon-solutions.com","InstallerUrl","Validation-Domain" +"EasternGraphics.pCon-planner.ME","downloads.pcon-solutions.com","InstallerUrl","Validation-Domain" +"EasternGraphics.pCon-planner.Pro","downloads.pcon-solutions.com","InstallerUrl","Validation-Domain" +"EasternGraphics.pCon-planner.STD","downloads.pcon-solutions.com","InstallerUrl","Validation-Domain" +"EastMoney.EastMoney","EastMoney.EastMoney","PackageIdentifier","Policy-Test-2.9" +"EastMoney.EastmoneySpeciality","EastMoney.EastmoneySpeciality","PackageIdentifier","Policy-Test-2.9" +"Easybits.MagicDesktop.Kiosk","Easybits.MagicDesktop.Kiosk","PackageIdentifier","Policy-Test-2.9" +"EAZYPETITIONLLC.eazyPetition","pub-7e43a56b93cd4288b6ac1300fa1cc5b0.r2.dev","InstallerUrl","Validation-Domain" +"eBralec.eBralec","prenos.amebis.si","InstallerUrl","Validation-Domain" +"EclipseAdoptium.Temurin.19.JRE.x86","EclipseAdoptium.Temurin.19.JRE.x86","PackageIdentifier","Possible-Duplicate" +"EclipseFoundation.EclipseIDEforJavaDevelopers","ftp.halifax.rwth-aachen.de","InstallerUrl","Validation-domain" +"ECSoftware.eWriterViewer","www.helpandmanual.com","InstallerUrl","Validation-Domain" +"ECSoftware.Help+ManualTranslationAssistant","www.helpandmanual.com","InstallerUrl","Validation-Domain" +"ECSoftware.Help+ManualTranslationAssistant","www.helpandmanual.com","InstallerUrl","Validation-Domain" +"ECSoftware.SnipSVG","www.helpandmanual.com","InstallerUrl","Validation-Domain" +"EDPB.WebsiteAuditTool","code.europa.eu","InstallerUrl","Validation-Domain" +"EdrawSoft.EdrawMax.CN","cc-download.wondershare.cc","InstallerUrl","Validation-Domain" +"EdrawSoft.EdrawMind","download.wondershare.com","InstallerUrl","Validation-Domain" +"EdrawSoft.EdrawMind.CN","cc-download.wondershare.cc","InstallerUrl","Validation-Domain" +"EdrawSoft.EdrawMind.CN","EdrawSoft.EdrawMind.CN","PackageIdentifier","Policy-Test-1.2" +"EdrawSoft.MindMaster","EdrawSoft.MindMaster","PackageIdentifier","Policy-Test-1.2" +"EdrawSoft.MindMaster.CN","EdrawSoft.MindMaster.CN","PackageIdentifier","Policy-Test-1.2" +"Educator.Engine","jlsms-downloads.s3.ap-northeast-1.amazonaws.com","InstallerUrl","Validation-Domain" +"eduVPN.Client","codeberg.org","InstallerUrl","Validation-Domain" +"ElectronCommunity.ElectronFiddle","github.com","InstallerUrl","Validation-Forbidden-URL-Error" +"Element.Element","packages.element.io","InstallerUrl","URL-Validation-Error" +"elieserdejesus.JamTaba","elieserdejesus.JamTaba","PackageIdentifier","Policy-Test-2.5" +"erickutcher.httpdownloader","erickutcher.httpdownloader","PackageIdentifier","Policy-Test-2.9" +"ESET.Nod32","ESET.Nod32","PackageIdentifier","Policy-Test-1.2" +"ESET.Security","ESET.Security","PackageIdentifier","Policy-Test-1.2" +"ESET.Security.SmallBusiness","ESET.Security.SmallBusiness","PackageIdentifier","Policy-Test-1.2" +"EuropeanCommission.EUROMOD","EuropeanCommission.EUROMOD","PackageIdentifier","Policy-Test-2.7" +"EuSoft.Dehelper","EuSoft.Dehelper","PackageIdentifier","Policy-Test-1.8" +"EuSoft.Dehelper","static.frdic.com","InstallerUrl","Validation-Domain" +"EuSoft.Eshelper","EuSoft.Eshelper","PackageIdentifier","Policy-Test-1.8" +"EuSoft.Eshelper","static.frdic.com","InstallerUrl","Validation-Domain" +"EuSoft.Frhelper","static.frdic.com","InstallerUrl","Validation-Domain" +"EuSoft.Frhelper","EuSoft.Frhelper","PackageIdentifier","Policy-Test-1.8" +"Everway.ExamWritePad","fastdownloads2.texthelp.com","InstallerUrl","Validation-Domain" +"FAI-Solution.move-window-between-desktops","codeberg.org","InstallerUrl","Validation-Domain" +"Fathom.Fathom","storage.googleapis.com","InstallerUrl","Validation-Domain" +"FEITIAN.SKManager","fido.ftsafe.com","InstallerUrl","Validation-Domain" +"FileOpen.Client","FileOpen.Client","PackageIdentifier","Validation-No-Executables" +"FiloSottile.age","FiloSottile.age","PackageIdentifier","Policy-Test-2.7" +"FinancialID.BankID","FinancialID.BankID","PackageIdentifier","Policy-Test-1.8" +"FlightGear.FlightGear","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"FlightGear.FlightGear","FlightGear.FlightGear","PackageIdentifier","Possible-Duplicate" +"FlowJo.FlowJo","fjinstallers.s3.amazonaws.com","InstallerUrl","Validation-Domain" +"flyingpie.windows-terminal-quake.prerelease","flyingpie.windows-terminal-quake.prerelease","PackageIdentifier","Policy-Test-2.9" +"FredrikFornwall.Rust-Script","FredrikFornwall.Rust-Script","PackageIdentifier","Policy-Test-2.7" +"FreedomScientific.Fusion.2024","software.vfo.digital","InstallerUrl","Validation-Domain" +"FreedomScientific.Fusion.2025","software.vfo.digital","InstallerUrl","Validation-Domain" +"FreedomScientific.Fusion.2026","software.vfo.digital","InstallerUrl","Validation-Domain" +"FreedomScientific.JAWS.2025","software.vfo.digital","InstallerUrl","Validation-Domain" +"FreedomScientific.JAWS.2026","software.vfo.digital","InstallerUrl","Validation-Domain" +"FreeTube.FreeTube","FreeTube.FreeTube","PackageIdentifier","Possible-Duplicate" +"FullScreensavers.NeonTime","FullScreensavers.NeonTime","PackageIdentifier","Validation-No-Executables" +"Futuremark.FuturemarkSystemInfo","d1ejs5fxm96rib.cloudfront.net","InstallerUrl","Validation-Domain" +"FxSound.FxSound","raw.githubusercontent.com","InstallerUrl","Validation-Domain" +"FxSound.FxSound","FxSound.FxSound","PackageIdentifier","Policy-Test-1.2" +"GAI.FileShows","webpath.iche2.com","InstallerUrl","Validation-Domain" +"GAI.FileTools","webpath.iche2.com","InstallerUrl","Validation-Domain" +"GAI.GAI","webpath.iche2.com","InstallerUrl","Validation-Domain" +"gajju44.ZNinja","gajju44.ZNinja","PackageIdentifier","Policy-Test-2.5" +"GamaPlatform.Gama","GamaPlatform.Gama","PackageIdentifier","Policy-Test-2.7" +"GameSir.GameSirConnect","xjdl.bigeyes.com","InstallerUrl","Validation-Domain" +"GameSir.GameSirT4kApp","xjdl.bigeyes.com","InstallerUrl","Validation-Domain" +"GaoyangZhang.RivonClaw","GaoyangZhang.RivonClaw","PackageIdentifier","Policy-Test-2.7" +"GauzyTech.NeatConverter","neat-reader.yuezhi.ink","InstallerUrl","Validation-Domain" +"GauzyTech.NeatReader","neat-reader-release.oss-cn-hongkong.aliyuncs.com","InstallerUrl","Validation-Domain" +"Geeks3D.FurMark.2","gpumagick.com","InstallerUrl","Validation-Domain" +"gehariharan.TokenWatcher","gehariharan.TokenWatcher","PackageIdentifier","Policy-Test-1.2" +"GeneralOutline.Outline","download.todesktop.com","InstallerUrl","Validation-Domain" +"GeoDa.GeoDa","GeoDa.GeoDa","PackageIdentifier","Policy-Test-2.7" +"getfloma.floma","pub-3da12ce477ba4b969191f6514d7505ff.r2.dev","InstallerUrl","Validation-Domain" +"Gitlab.Runner","s3.dualstack.us-east-1.amazonaws.com","InstallerUrl","Validation-Domain" +"GlassWire.GlassWire","s3.us-east-1.amazonaws.com","InstallerUrl","Validation-Domain" +"Glodon.CADReader.CN","yuntu-f.kuaicad.com","InstallerUrl","URL-Validation-Error" +"GnuCash.GnuCash","GnuCash.GnuCash","PackageIdentifier","Policy-Test-1.8" +"GnuWin32.Flex","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"GnuWin32.Patch","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"GodwitIO.GodwitSync","GodwitIO.GodwitSync","PackageIdentifier","Policy-Test-1.8" +"GOG.Galaxy","cdn.gog.com","InstallerUrl","Validation-Forbidden-URL-Error" +"GoldSim.TechnologyGroup.GoldSim","29f47c9f939381a973ca-12e283108c711e866765bf13c6d170c2.ssl.cf1.rackcdn.com","InstallerUrl","Validation-Domain" +"GOMLab.GOMPlayer","GOMLab.GOMPlayer","PackageIdentifier","Policy-Test-2.7" +"Google.AndroidStudio","edgedl.me.gvt1.com","InstallerUrl","Validation-Domain" +"Google.AndroidStudio.Beta","edgedl.me.gvt1.com","InstallerUrl","Validation-Domain" +"Google.AndroidStudio.Canary","edgedl.me.gvt1.com","InstallerUrl","Validation-Domain" +"Google.Antigravity","edgedl.me.gvt1.com","InstallerUrl","Validation-Domain" +"Google.AntigravityIDE","edgedl.me.gvt1.com","InstallerUrl","Validation-Domain" +"Google.DartSDK","Google.DartSDK","PackageIdentifier","Validation-No-Executables" +"GovernmentOfThePRC.GuangdongProvince.YueZhengYi","dldir1.qq.com","InstallerUrl","Validation-Domain" +"GovernmentOfThePRC.HeNan.ZhengZhou.ZhengZhengDing","zwdd-zhegnzhou.oss-cn-beijing.aliyuncs.com","InstallerUrl","Validation-Domain" +"GovernmentOfThePRC.SAT.ETB.WithholdingSide","file.etax.chinatax.gov.cn","InstallerUrl","Validation-Domain" +"GPSoftware.DirectoryOpus","cdn2.gpsoft.com.au","InstallerUrl","Validation-Domain" +"gptscript-ai.gptscript","gptscript-ai.gptscript","PackageIdentifier","Policy-Test-2.7" +"GrainIntelligence.Grain","download.todesktop.com","InstallerUrl","Validation-Domain" +"GramEditor.Gram","codeberg.org","InstallerUrl","Validation-Domain" +"Granola.Granola","dr2v7l5emb758.cloudfront.net","InstallerUrl","Validation-Domain" +"gretl.gretl","gretl.gretl","PackageIdentifier","Validation-Unapproved-URL" +"GrumpyCoders.PCSX-Redux","distrib.app","InstallerUrl","Validation-Domain" +"Guru3D.Afterburner","ftp.nluug.nl","InstallerUrl","Validation-Domain" +"Guru3D.Afterburner.Beta","ftp.nluug.nl","InstallerUrl","Validation-Domain" +"Guru3D.RTSS","ftp.nluug.nl","InstallerUrl","Validation-Domain" +"h3poteto.whalebird-desktop","github.com","InstallerUrl","URL-Validation-Error" +"hailcanto.WinTerm2","hailcanto.WinTerm2","PackageIdentifier","Policy-Test-1.2" +"HaiYing.OfficeAI","downloadcdn.office-ai.cn","InstallerUrl","Validation-Domain" +"Hasleo.BackupSuiteFree","www.easyuefi.com","InstallerUrl","Validation-Domain" +"HBK.MicrophoneViewer","www.bksv.com","InstallerUrl","Validation-Domain" +"HDZTony.FlowUI","gitee.com","InstallerUrl","Validation-Domain" +"HeartbeatChat.Heartbeat","download.todesktop.com","InstallerUrl","Validation-Domain" +"HendersonSoftware.CDRipper","readiotvm4.eastus.cloudapp.azure.com","InstallerUrl","Validation-Domain" +"HenriWahl.Nagstamon","HenriWahl.Nagstamon","PackageIdentifier","Policy-Test-2.5" +"Hetman.RAIDRecovery","Hetman.RAIDRecovery","PackageIdentifier","Policy-Test-1.2" +"HGZW.Zweep","apps.heiguozhi.wang","InstallerUrl","Validation-Domain" +"HidemyNetworkLtd.HidemyNameVPN","hide.mn","InstallerUrl","Validation-Domain" +"HMCL.HMCL.Dev","HMCL.HMCL.Dev","PackageIdentifier","Possible-Duplicate" +"HMCL.HMCL.Dev","HMCL.HMCL.Dev","PackageIdentifier","Possible-Duplicate" +"HMCL.HMCL.Dev.CNB","HMCL.HMCL.Dev.CNB","PackageIdentifier","Possible-Duplicate" +"HMCL.HMCL.Dev.Maven","HMCL.HMCL.Dev.Maven","PackageIdentifier","Possible-Duplicate" +"HMCL.HMCL.Dev.Maven.TencentCloudMirror","mirrors.cloud.tencent.com","InstallerUrl","Validation-Domain" +"HMCL.HMCL.Dev.Maven.TencentCloudMirror","HMCL.HMCL.Dev.Maven.TencentCloudMirror","PackageIdentifier","Possible-Duplicate" +"HMCL.HMCL.Stable","github.com","InstallerUrl","Validation-Domain" +"HMCL.HMCL.Stable","HMCL.HMCL.Stable","PackageIdentifier","Possible-Duplicate" +"HMCL.HMCL.Stable.CNB","HMCL.HMCL.Stable.CNB","PackageIdentifier","Possible-Duplicate" +"HMCL.HMCL.Stable.Maven","HMCL.HMCL.Stable.Maven","PackageIdentifier","Possible-Duplicate" +"HMCL.HMCL.Stable.Maven.TencentCloudMirror","mirrors.cloud.tencent.com","InstallerUrl","Validation-Domain" +"HomeDev.PatchCleanerPortable","deac-riga.dl.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"HomesideSoftware.APRSISCE32","aprsisce.wikidot.com","InstallerUrl","Validation-Domain" +"HP.ConnectivityKit","updates.moravia-consulting.com","InstallerUrl","Validation-Domain" +"HP.PrimeVirtualCalculator","updates.moravia-consulting.com","InstallerUrl","Validation-Domain" +"HuoHuaSiWei.HuoHuaBianCheng","img.txqn.huohua.cn","InstallerUrl","Validation-Domain" +"HuoHuaSiWei.HuoHuaSiWei","pkm-01.classpodcdn.com","InstallerUrl","Validation-Domain" +"HydrologicEngineeringCenter.HEC-MetVue","www.hec.usace.army.mil","InstallerUrl","Validation-Domain" +"I2PHD-and-IK2CZL.Spectran","www.sdradio.eu","InstallerUrl","Validation-Domain" +"IDEAgentHub.AgentHub","IDEAgentHub.AgentHub","PackageIdentifier","Policy-Test-1.8" +"Ideamerit.GalaxyModeler","www.datensen.com","InstallerUrl","Validation-Domain" +"Ideamerit.LunaModeler","www.datensen.com","InstallerUrl","Validation-Domain" +"Ideamerit.MeteorModeler","www.datensen.com","InstallerUrl","Validation-Domain" +"Ideamerit.MoonModeler","www.datensen.com","InstallerUrl","Validation-Domain" +"IDMComputerSolutions,Inc.UEStudio","downloads.ultraedit.com","InstallerUrl","Validation-Domain" +"ImaginationTech.PVRCarbon","cdn.imgtec.com","InstallerUrl","Validation-Domain" +"ImaginationTech.PVRTexTool","cdn.imgtec.com","InstallerUrl","Validation-Domain" +"InspectDevTools.Inspect","download.todesktop.com","InstallerUrl","Validation-Domain" +"IntegrIT.Hackolade","s3-eu-west-1.amazonaws.com","InstallerUrl","Validation-Domain" +"IPEVO.Vurbo-ai","s3.us-west-2.amazonaws.com","InstallerUrl","Validation-Domain" +"IrfanSkiljan.IrfanView","download.fileforum.com","InstallerUrl","Validation-Domain" +"Iterate.CyberduckCLI","dist.duck.sh","InstallerUrl","Validation-Domain" +"J2S3.MerciApp","p-merci-windows-adapter.s3.eu-west-3.amazonaws.com","InstallerUrl","Validation-Domain" +"JalaUCapstones.ArcadeMazeChomper","JalaUCapstones.ArcadeMazeChomper","PackageIdentifier","Policy-Test-1.8" +"jgaa.WarSetup","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"JiriPolasek.MediaControlsforCommandPalette","JiriPolasek.MediaControlsforCommandPalette","PackageIdentifier","Policy-Test-2.7" +"JiriPolasek.QRCodesforCommandPalette","JiriPolasek.QRCodesforCommandPalette","PackageIdentifier","Policy-Test-2.7" +"JohnWiseman.QtTermTCP","www.cantab.net","InstallerUrl","Validation-Domain" +"JORDAHL.JORDAHLEXPERT","pohlcon.com","InstallerUrl","Validation-Domain" +"JurgenRathlev.innounp","raw.githubusercontent.com","InstallerUrl","Validation-Domain" +"JustArchiNET.ArchiSteamFarm","JustArchiNET.ArchiSteamFarm","PackageIdentifier","Policy-Test-2.7" +"kangfenmao.CherryStudio","kangfenmao.CherryStudio","PackageIdentifier","Policy-Test-2.7" +"kangyu-california.PersistentWindows","kangyu-california.PersistentWindows","PackageIdentifier","Policy-Test-2.5" +"KarelDonk.WMFPreview","KarelDonk.WMFPreview","PackageIdentifier","Validation-No-Executables" +"KaringX.Karing","KaringX.Karing","PackageIdentifier","Policy-Test-1.2" +"KaufmannNO.ProgrammerDvorak","KaufmannNO.ProgrammerDvorak","PackageIdentifier","Validation-No-Executables" +"kawayiYokami.P-ai","kawayiYokami.P-ai","PackageIdentifier","Policy-Test-2.7" +"KDE.KStars","www.indilib.org","InstallerUrl","Validation-Domain" +"KDE.Parley","KDE.Parley","PackageIdentifier","Policy-Test-2.7" +"KeeperSecurity.KeeperDesktop","KeeperSecurity.KeeperDesktop","PackageIdentifier","Policy-Test-2.8" +"KeeyaiSoft.Flame","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Kenkun.AviUtl.Beta","spring-fragrance.mints.ne.jp","InstallerUrl","Validation-Domain" +"Kenkun.AviUtlExEdit2","spring-fragrance.mints.ne.jp","InstallerUrl","Validation-Domain" +"Kensington.KensingtonKonnect","accoblobstorageus.blob.core.windows.net","InstallerUrl","Validation-Domain" +"kevinberger-ch.SafePDFViewer","gitlab.com","InstallerUrl","Validation-Domain" +"KevinOttalini.SimpleMTUTest","qsextreme.com","InstallerUrl","Validation-Domain" +"KhronosGroup.VulkanSDK","KhronosGroup.VulkanSDK","PackageIdentifier","Policy-Test-2.7" +"KindaBrazy.LynxHub","KindaBrazy.LynxHub","PackageIdentifier","Policy-Test-2.9" +"KindaBrazy.LynxHub","KindaBrazy.LynxHub","PackageIdentifier","Policy-Test-1.2" +"Kingsoft.PowerWord","download.iciba.com","InstallerUrl","Validation-Domain" +"Kiwix.WikiMed","Kiwix.WikiMed","PackageIdentifier","Possible-Duplicate" +"Kiwix.WikiMed.Electron","Kiwix.WikiMed.Electron","PackageIdentifier","Possible-Duplicate" +"KoichiMomma.VESTA","www.jp-minerals.org","InstallerUrl","Validation-Domain" +"KPN.CertificaataanvraagAssistent","assets.ctfassets.net","InstallerUrl","Validation-Domain" +"KRTirtho.Flemozi","KRTirtho.Flemozi","PackageIdentifier","Validation-Installation-Error" +"krypdoh.MLB-TCKR","krypdoh.MLB-TCKR","PackageIdentifier","Policy-Test-2.9" +"Kubus.BCFManager.Revit.2022","download.bimcollab.com","InstallerUrl","Validation-Domain" +"Kubus.BCFManager.Revit.2023","download.bimcollab.com","InstallerUrl","Validation-Domain" +"Kubus.BCFManager.Revit.2024","download.bimcollab.com","InstallerUrl","Validation-Domain" +"Kubus.BCFManager.Revit.2025","download.bimcollab.com","InstallerUrl","Validation-Domain" +"Kubus.BCFManager.Standalone","download.bimcollab.com","InstallerUrl","Validation-Domain" +"kunobi-ninja.kunobi","kunobi-ninja.kunobi","PackageIdentifier","Policy-Test-2.5" +"kunobi-ninja.kunobi.Unstable","kunobi-ninja.kunobi.Unstable","PackageIdentifier","Policy-Test-2.5" +"KurtZimmermann.RegCool","KurtZimmermann.RegCool","PackageIdentifier","Validation-No-Executables" +"LarryESmith.FreeNFS","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Lascar.WiFiSensorSoftware","s3.amazonaws.com","InstallerUrl","Validation-Domain" +"Lazarus.Lazarus","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Lebo.Lebo","download.mirrorcast.cn","InstallerUrl","Validation-Domain" +"LEERINA.ShanaEncoder","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"legeling.PromptHub","legeling.PromptHub","PackageIdentifier","Policy-Test-2.7" +"LeiGod.LeiGodAcc","LeiGod.LeiGodAcc","PackageIdentifier","Policy-Test-2.5" +"LeNgocKhoa.Laragon","github.com","InstallerUrl","URL-Validation-Error" +"LeoKlaus.HeadsetControl-GUI","LeoKlaus.HeadsetControl-GUI","PackageIdentifier","Policy-Test-1.2" +"LetsConnect.Client","codeberg.org","InstallerUrl","Validation-Domain" +"LibreWolf.LibreWolf","LibreWolf.LibreWolf","PackageIdentifier","Possible-Duplicate" +"LifeAt.LifeAt","download.todesktop.com","InstallerUrl","Validation-Domain" +"LifeAt.LifeAt","LifeAt.LifeAt","PackageIdentifier","Possible-Duplicate" +"LinearOrbit.Linear","download.todesktop.com","InstallerUrl","Validation-Domain" +"LiveForSpeed.LiveForSpeed","nlrtm1-edge2.cdn.i3d.net","InstallerUrl","Validation-Domain" +"LMCP.LocalMCP","download.local-mcp.com","InstallerUrl","Validation-Domain" +"Log4OM2.Log4OM2","www.log4om.com","InstallerUrl","Validation-Domain" +"Logitech.F710ConnectUtility","download01.logi.com","InstallerUrl","Validation-Domain" +"Logitech.OnboardMemoryManager","download01.logi.com","InstallerUrl","Validation-Domain" +"Logitech.Sync","Logitech.Sync","PackageIdentifier","Policy-Test-2.5" +"lonr-6.CCDesktopSwitch","lonr-6.CCDesktopSwitch","PackageIdentifier","Policy-Test-2.7" +"losoft.basics","download.palenquesoft.com","InstallerUrl","Validation-Domain" +"Lugrain.PingTool","Lugrain.PingTool","PackageIdentifier","Possible-Duplicate" +"luizzak.GIFViewer","sourceforge.net","InstallerUrl","Validation-Unapproved-Url" +"LukasHermann.stagetimer-io","storage.googleapis.com","InstallerUrl","Validation-Domain" +"luolangaga.ASG.Director","gitee.com","InstallerUrl","Validation-Domain" +"LuxTrust.LuxTrustMiddleware","gitlab.com","InstallerUrl","Validation-Domain" +"LwSoft.SoftwareDefinedConnectors","www.lw-sdc.com","InstallerUrl","Validation-Domain" +"Macabacus.Macabacus","Macabacus.Macabacus","PackageIdentifier","Validation-No-Executables" +"Macabacus.Macabacus","softwarecdn.blob.core.windows.net","InstallerUrl","Validation-Domain" +"Macabacus.Macabacus","Macabacus.Macabacus","PackageIdentifier","Policy-Test-1.8" +"MacmillanLearning.iClickerCloud","artifactory.reef-education.com","InstallerUrl","Validation-Domain" +"Magnate.SpeedManager","file2.speedtest.cn","InstallerUrl","Validation-Domain" +"Magnate.SpeedManager.Pro","file2.speedtest.cn","InstallerUrl","Validation-Domain" +"MAILPLUGInc.MAILPLUGMessengerDesktop","chat.mailplug.com","InstallerUrl","URL-Validation-Error" +"Makeblock.xToolCreativeSpace","storage-us.atomm.com","InstallerUrl","Validation-Domain" +"Makeblock.xToolStudio","storage-us.atomm.com","InstallerUrl","Validation-Domain" +"Makeblock.xToolStudio","storage.atomm.com","InstallerUrl","Validation-Domain" +"ManticoreSoftware.Weatherbot","files.mac-attic.com","InstallerUrl","Validation-Domain" +"MarcielDegasperi.MDBAdmin","onboardcloud.dl.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"MarcielDegasperi.MDBAdmin","onboardcloud.dl.sourceforge.net","InstallerUrl","Validation-Domain" +"MarcoDAmato.WinContig","www.mdtzone.it","InstallerUrl","Validation-Domain" +"MartiCliment.UniGetUI","MartiCliment.UniGetUI","PackageIdentifier","Validation-No-Executables" +"MartiCliment.UniGetUI","github.com","InstallerUrl","Validation-Domain" +"MartiCliment.UniGetUI.Pre-Release","MartiCliment.UniGetUI.Pre-Release","PackageIdentifier","Validation-No-Executables" +"MaxCut.MaxCut","s3.amazonaws.com","InstallerUrl","Validation-Domain" +"MAXHUB.MAXHUBShare","ifpserver.com","InstallerUrl","Validation-Domain" +"MAXHUB.MAXHUBShare.CN","static.cvte.com","InstallerUrl","Validation-Domain" +"Maxthon.Maxthon","github.com","InstallerUrl","Policy-Test-2.9" +"medialab.xan","medialab.xan","PackageIdentifier","Policy-Test-2.7" +"medialab.xan","medialab.xan","PackageIdentifier","Policy-Test-2.7" +"megamega39.doujin-player","megamega39.doujin-player","PackageIdentifier","Policy-Test-1.2" +"melon-masou.MonMouse","melon-masou.MonMouse","PackageIdentifier","Policy-Test-1.2" +"mendelson.AS2","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Mergiraf.Mergiraf","codeberg.org","InstallerUrl","Validation-Domain" +"MeshCore.MeshCore","files.liamcottle.net","InstallerUrl","Validation-Domain" +"MeshIntelligentTechnologies.PiecesCLI","storage.googleapis.com","InstallerUrl","Validation-Domain" +"mesonbuild.meson","mesonbuild.meson","PackageIdentifier","Policy-Test-2.5" +"Meta.QuestRemoteDesktop","securecdn.oculus.com","InstallerUrl","Validation-Domain" +"miaotouy.AIOHub","miaotouy.AIOHub","PackageIdentifier","Policy-Test-1.2" +"michalhavranek.wphfxwin","bitbucket.org","InstallerUrl","Validation-Domain" +"MicroDicom.DICOMViewer","MicroDicom.DICOMViewer","PackageIdentifier","Policy-Test-1.2" +"MicroDicom.ShellExtension","MicroDicom.ShellExtension","PackageIdentifier","Validation-No-Executables" +"Microsoft.AdministrativeTemplates","Microsoft.AdministrativeTemplates","PackageIdentifier","Validation-No-Executables" +"Microsoft.DependencyAgent","da-release-ehacb6gnczcma8hc.b01.azurefd.net","InstallerUrl","Validation-Domain" +"Microsoft.DependencyWalker","Microsoft.DependencyWalker","PackageIdentifier","Policy-Test-2.7" +"Microsoft.DotNet.dotnet-ef","globalcdn.nuget.org","InstallerUrl","Validation-Domain" +"Microsoft.DotNet.Framework.Runtime","Microsoft.DotNet.Framework.Runtime","PackageIdentifier","Validation-No-Executables" +"Microsoft.DotNet.UninstallTool","Microsoft.DotNet.UninstallTool","PackageIdentifier","Validation-No-Executables" +"Microsoft.Firewire1394LegacyDriver","Microsoft.Firewire1394LegacyDriver","PackageIdentifier","Validation-No-Executables" +"Microsoft.Gaming.GamingServicesRepairTool","dlassets-ssl.xboxlive.com","InstallerUrl","Validation-Domain" +"Microsoft.Gaming.GDK","Microsoft.Gaming.GDK","PackageIdentifier","Validation-Agreement-Domain" +"Microsoft.Gaming.RemoteIterationClient","Microsoft.Gaming.RemoteIterationClient","PackageIdentifier","Validation-Agreement-Domain" +"Microsoft.Gaming.RemoteIterationEndpoint","Microsoft.Gaming.RemoteIterationEndpoint","PackageIdentifier","Validation-Agreement-Domain" +"Microsoft.Office.2010.FilterPacks","Microsoft.Office.2010.FilterPacks","PackageIdentifier","Validation-No-Executables" +"Microsoft.OpenJDK.25","aka.ms","InstallerUrl","Validation-Domain" +"Microsoft.RemoteDesktopClient","Microsoft.Skype","PackageIdentifier","Policy-Test-2.5" +"Microsoft.RemoteDesktopClient","res.cdn.office.net","InstallerUrl","Validation-Domain" +"Microsoft.RemoteDesktopMMRService","intstreamreleases.z22.web.core.windows.net","InstallerUrl","Validation-Domain" +"Microsoft.ServerSpeechPlatformRuntime","Microsoft.ServerSpeechPlatformRuntime","PackageIdentifier","Validation-No-Executables" +"Microsoft.ServiceFabricRuntime","Microsoft.ServiceFabricRuntime","PackageIdentifier","Validation-No-Executables" +"Microsoft.Skype","download.skype.com","InstallerUrl","Validation-Domain" +"Microsoft.Skype","Microsoft.Skype","PackageIdentifier","Policy-Test-2.5" +"Microsoft.Sysinternals.MoveFile","Microsoft.Sysinternals.MoveFile","PackageIdentifier","Possible-Duplicate" +"Microsoft.Sysinternals.MoveFile","Microsoft.Sysinternals.MoveFile","PackageIdentifier","Possible-Duplicate" +"Microsoft.Sysinternals.PendMoves","Microsoft.Sysinternals.PendMoves","PackageIdentifier","Possible-Duplicate" +"Microsoft.Sysinternals.PendMoves","Microsoft.Sysinternals.PendMoves","PackageIdentifier","Possible-Duplicate" +"Microsoft.UI.Xaml.2.5","Microsoft.UI.Xaml.2.5","PackageIdentifier","Validation-No-Executables" +"Microsoft.UI.Xaml.2.5","globalcdn.nuget.org","InstallerUrl","Validation-Domain" +"Microsoft.UI.Xaml.2.6","Microsoft.UI.Xaml.2.6","PackageIdentifier","Validation-No-Executables" +"Microsoft.UI.Xaml.2.6","globalcdn.nuget.org","InstallerUrl","Validation-Domain" +"Microsoft.VisualStudio.2022.Community","aka.ms","InstallerUrl","Validation-Domain" +"Microsoft.VisualStudio.Community","aka.ms","InstallerUrl","Validation-Domain" +"Microsoft.VisualStudio.Professional.Insiders","aka.ms","InstallerUrl","Validation-Domain" +"Microsoft.WindowsAppRuntime.1.6","aka.ms","InstallerUrl","Validation-Domain" +"Microsoft.WindowsAppRuntime.1.8","aka.ms","InstallerUrl","Validation-Domain" +"Microsoft.WindowsAppRuntime.2.0","aka.ms","InstallerUrl","Validation-Domain" +"mikf.gallery-dl","codeberg.org","InstallerUrl","Validation-Domain" +"Mikrotik.Netinstall","Mikrotik.Netinstall","PackageIdentifier","Policy-Test-1.2" +"MillerPuckette.Pd64","puredata.info","InstallerUrl","Validation-Domain" +"Mimecast.MimecastForOutlook","Mimecast.MimecastForOutlook","PackageIdentifier","Possible-Duplicate" +"Mimecast.MimecastSynchronizationEngine","Mimecast.MimecastSynchronizationEngine","PackageIdentifier","Possible-Duplicate" +"MinistryOfEducationOfThePRC.SmartSchools","download.ykt.cbern.com.cn","InstallerUrl","Validation-Domain" +"MintplexLabs.AnythingLLM","cdn.useanything.com","InstallerUrl","Validation-Domain" +"MiTeC.SMBIOSExplorer","MiTeC.SMBIOSExplorer","PackageIdentifier","Policy-Test-2.7" +"Mitel.MitelConnect","upgrade01.sky.shoretel.com","InstallerUrl","Validation-Domain" +"mmozeiko.TwitchNotify","raw.githubusercontent.com","InstallerUrl","Validation-Domain" +"mmozeiko.wcap","raw.githubusercontent.com","InstallerUrl","Validation-Domain" +"ModelScope.FlowBench","muse-ai.oss-cn-hangzhou.aliyuncs.com","InstallerUrl","Validation-Domain" +"Modyfi.Modyfi","download.todesktop.com","InstallerUrl","Validation-Domain" +"Moises.Moises","download.todesktop.com","InstallerUrl","Validation-Domain" +"monkeyWie.Gopeed","monkeyWie.Gopeed","PackageIdentifier","Policy-Test-2.7" +"monkeyWie.Gopeed.Web","monkeyWie.Gopeed.Web","PackageIdentifier","Policy-Test-2.7" +"MonkfishXMLSoftware.XMLBlueprint.22","filedn.eu","InstallerUrl","Validation-Domain" +"Morgen.Morgen","download.todesktop.com","InstallerUrl","Validation-Domain" +"Morningstar.MorningstarDirectPrerequisite","Morningstar.MorningstarDirectPrerequisite","PackageIdentifier","Validation-No-Executables" +"Mossmouth.SpelunkyClassic","www.derekyu.com","InstallerUrl","Validation-Domain" +"Movavi.MovaviPhotoEditor","Movavi.MovaviPhotoEditor","PackageIdentifier","Policy-Test-1.2" +"Mozilla.SeaMonkey","s3.osuosl.org","InstallerUrl","Validation-Domain" +"mpv.mpv","nightly.link","InstallerUrl","Validation-Domain" +"Naruto.GbasicSimulator","nrtdrv.sakura.ne.jp","InstallerUrl","Validation-Domain" +"Natthasath.ExamTimer","Natthasath.ExamTimer","PackageIdentifier","Policy-Test-1.2" +"NAVER.Whale","NAVER.Whale","PackageIdentifier","Validation-No-Executables" +"NAVERWEBTOONLtd.SeriesComicViewer","appdown.pstatic.net","InstallerUrl","Validation-Domain" +"Navratovi.RemoteBoulderTimer","download.navrat.name","InstallerUrl","Validation-Domain" +"NDI.NDIRuntime","NDI.NDIRuntime","PackageIdentifier","Validation-No-Executables" +"NearAI.IronClaw","NearAI.IronClaw","PackageIdentifier","Policy-Test-2.7" +"nekohy.MeowCLI","nekohy.MeowCLI","PackageIdentifier","Policy-Test-1.2" +"NelsonNumericalSoftware.Nelson","NelsonNumericalSoftware.Nelson","PackageIdentifier","Policy-Test-2.7" +"NetEase.CloudMusic","d8.music.126.net","InstallerUrl","Validation-Domain" +"NetEase.CloudMusicXStudio","NetEase.CloudMusicXStudio","PackageIdentifier","Validation-No-Executables" +"NetEase.LobsterAI","NetEase.LobsterAI","PackageIdentifier","Policy-Test-2.7" +"NewBreedSoftware.TuxPaint","sourceforge.net","InstallerUrl","Validation-unapproved-URL" +"Newforma.Konekt.Addin.Autodesk","cdn.bimtrackapp.co","InstallerUrl","Validation-Domain" +"NFC21.Writer.Portable","files.nfc-tag-shop.de","InstallerUrl","Validation-Domain" +"NICESoftware.AmazonDCVClient","d1uj6qtbmh3dt5.cloudfront.net","InstallerUrl","Validation-Domain" +"NICESoftware.AmazonDCVServer","d1uj6qtbmh3dt5.cloudfront.net","InstallerUrl","Validation-Domain" +"NICESoftware.AmazonDCVSessionManagerAgent","d1uj6qtbmh3dt5.cloudfront.net","InstallerUrl","Validation-Domain" +"NICESoftware.AmazonDCVVirtualDisplay","d1uj6qtbmh3dt5.cloudfront.net","InstallerUrl","Validation-Domain" +"NinjaCheetah.NUSGet","NinjaCheetah.NUSGet","PackageIdentifier","Policy-Test-2.5" +"NirSoft.IconsExtract","NirSoft.IconsExtract","PackageIdentifier","Policy-Test-2.7" +"NirSoft.ResourcesExtract","NirSoft.ResourcesExtract","PackageIdentifier","Policy-Test-2.7" +"NirSoft.UninstallView","NirSoft.UninstallView","PackageIdentifier","Validation-No-Executables" +"nistech.Qualli-life","download13.qualli.de","InstallerUrl","Validation-Domain" +"NIUBI.PartitionEditor.Enterprise","www.hdd-tool.com","InstallerUrl","Validation-Domain" +"NIUBI.PartitionEditor.Free","www.hdd-tool.com","InstallerUrl","Validation-Domain" +"NIUBI.PartitionEditor.Professional","www.hdd-tool.com","InstallerUrl","Validation-Domain" +"NIUBI.PartitionEditor.Server","www.hdd-tool.com","InstallerUrl","Validation-Domain" +"NIUBI.PartitionEditor.Technician","www.hdd-tool.com","InstallerUrl","Validation-Domain" +"nkdAgility.AzureDevOpsMigrationTools","nkdAgility.AzureDevOpsMigrationTools","PackageIdentifier","Policy-Test-2.7" +"nkdAgility.AzureDevOpsMigrationTools.Preview","nkdAgility.AzureDevOpsMigrationTools.Preview","PackageIdentifier","Policy-Test-2.7" +"NoMachine.NoMachine","NoMachine.NoMachine","PackageIdentifier","Policy-Test-2.5" +"NoMachine.NoMachine.CloudServer","NoMachine.NoMachine.CloudServer","PackageIdentifier","Policy-Test-2.5" +"NoMachine.NoMachine.EnterpriseClient","NoMachine.NoMachine.EnterpriseClient","PackageIdentifier","Policy-Test-2.5" +"NoMachine.NoMachine.EnterpriseCloudServer","NoMachine.NoMachine.EnterpriseCloudServer","PackageIdentifier","Policy-Test-2.5" +"NoMachine.NoMachine.EnterpriseCloudServerCluster","NoMachine.NoMachine.EnterpriseCloudServerCluster","PackageIdentifier","Policy-Test-2.5" +"NoMachine.NoMachine.EnterpriseDesktop","NoMachine.NoMachine.EnterpriseDesktop","PackageIdentifier","Policy-Test-2.5" +"NoMachine.NoMachine.SmallBusinessCloudServer","NoMachine.NoMachine.SmallBusinessCloudServer","PackageIdentifier","Policy-Test-2.5" +"NordSecurity.NordLocker","NordSecurity.NordLocker","PackageIdentifier","Policy-Test-2.5" +"nostar.DroidStar","pizzanbeer.net","InstallerUrl","Validation-Domain" +"Notion.NotionCalendar","download.todesktop.com","InstallerUrl","Validation-Domain" +"NovationDMS.LaunchkeyMK4Cubase","NovationDMS.LaunchkeyMK4Cubase","PackageIdentifier","Validation-No-Executables" +"NovationDMS.LaunchkeyMK4Cubase","fael-downloads-prod.focusrite.com","InstallerUrl","Validation-Domain" +"Nuclino.Nuclino","s3-eu-central-1.amazonaws.com","InstallerUrl","Validation-Domain" +"Nutstore.EO2","dc-pkg-cdn.jianguoyun.com","InstallerUrl","Validation-Domain" +"NVAccess.NVDA.Beta","NVAccess.NVDA.Beta","PackageIdentifier","Validation-No-Executables" +"Objective.Trapeze","s3-ap-southeast-2.amazonaws.com","InstallerUrl","Validation-Domain" +"obot-platform.obot","obot-platform.obot","PackageIdentifier","Policy-Test-2.7" +"OctopusData.Octoparse","OctopusData.Octoparse","PackageIdentifier","Policy-Test-2.7" +"OctopusData.Octoparse.CN","OctopusData.Octoparse.CN","PackageIdentifier","Policy-Test-2.7" +"OctopusData.Octoparse.CN","download.bazhuayu.com","InstallerUrl","validation-domain" +"ODA.ODADrawingsExplorer","www.opendesign.com","InstallerUrl","Validation-Domain" +"ODA.ODADrawingsExplorer","ODA.ODADrawingsExplorer","PackageIdentifier","Policy-Test-2.7" +"ODA.ODAFileConverter","www.opendesign.com","InstallerUrl","Validation-Domain" +"ODA.ODAViewer","www.opendesign.com","InstallerUrl","Validation-Domain" +"OK1DIX.VUSC4WIN","www.ok2kkw.com","InstallerUrl","Validation-Domain" +"OliverSchwendener.ueli","github.com","InstallerUrl","URL-Validation-Error" +"Onkyo.X-ME11DSPSoftware","cdn.shopify.com","InstallerUrl","Validation-Domain" +"OpenDataLab.MinerU","webpub.shlab.tech","InstallerUrl","Validation-Domain" +"OpenRGB.OpenRGB","codeberg.org","InstallerUrl","Validation-Domain" +"OpenRGB.OpenRGBEffectsPlugin","codeberg.org","InstallerUrl","Validation-Domain" +"OpenRGB.OpenRGBHardwareSyncPlugin","codeberg.org","InstallerUrl","Validation-Domain" +"OpenRGB.OpenRGBVisualMapPlugin","codeberg.org","InstallerUrl","Validation-Domain" +"OpenSourcePhysics.Tracker","physlets.org","InstallerUrl","Validation-Domain" +"Orica.SHOTPlus","downloads.blastiq.com","InstallerUrl","Validation-Domain" +"Orica.SHOTPlus.Tunnel","downloads.blastiq.com","InstallerUrl","Validation-Domain" +"Orica.SHOTPlus.Underground","downloads.blastiq.com","InstallerUrl","Validation-Domain" +"OSGeo.QGIS_LTR","qgis.org","InstallerUrl","URL-Validation-Error" +"OWASP.ThreatDragon","OWASP.ThreatDragon","PackageIdentifier","Policy-Test-2.8" +"PaloAltoNetworks.PrismaAccessBrowser","updates.talon-sec.com","InstallerUrl","Validation-Domain" +"paolosalvatori.ServiceBusExplorer","paolosalvatori.ServiceBusExplorer","PackageIdentifier","Policy-Test-2.7" +"paolosalvatori.ServiceBusExplorer.Preview","paolosalvatori.ServiceBusExplorer.Preview","PackageIdentifier","Policy-Test-2.7" +"ParanoiaWorks.PFTE","ParanoiaWorks.PFTE","PackageIdentifier","Policy-Test-2.7" +"PassMark.ImageUSB","www.osforensics.com","InstallerUrl","Validation-Domain" +"PassMark.OSFClone","www.osforensics.com","InstallerUrl","Validation-Domain" +"PassMark.OSFMount","www.osforensics.com","InstallerUrl","Validation-Domain" +"PassMark.VolatilityWorkbench","www.osforensics.com","InstallerUrl","Validation-Domain" +"PassMark.WirelessMon","PassMark.WirelessMon","PackageIdentifier","Policy-Test-2.7" +"PCTI.OrphanRehomer.Scotland","apps.docman.com","InstallerUrl","Validation-Domain" +"PerfectGym.DeviceIntegrator","PerfectGym.DeviceIntegrator","PackageIdentifier","Policy-Test-2.5" +"Perplexity.Perplexity","download.todesktop.com","InstallerUrl","Validation-Domain" +"Peters.Horizon","Peters.Horizon","PackageIdentifier","Policy-Test-1.2" +"Pexip.Pexip.Service","static.videxio.net","InstallerUrl","Validation-Domain" +"Philips.Interact","www.datocms-assets.com","InstallerUrl","Validation-Domain" +"Philips.SmartControl","gz-dlsw.tpv-tech.com","InstallerUrl","Validation-Domain" +"Philips.SpeechLive","speech-desktop-app-update.speech.com","InstallerUrl","Validation-Domain" +"Philips.SpeechLive.MSI","speech-desktop-app-update.speech.com","InstallerUrl","Validation-Domain" +"Phrase.Phrase","download.memsource.com","InstallerUrl","Validation-Domain" +"Pinnacle21.Pinnacle21.Community","dthfq9xldm1jq.cloudfront.net","InstallerUrl","Validation-Domain" +"Piriform.CCleaner","bits.avcdn.net","InstallerUrl","Validation-Domain" +"Piriform.CCleaner.Slim","bits.avcdn.net","InstallerUrl","Validation-Domain" +"PixPin.PixPin","PixPin.PixPin","PackageIdentifier","Possible-Duplicate" +"PixPin.PixPin.Beta","PixPin.PixPin.Beta","PackageIdentifier","Possible-Duplicate" +"Playdate.Mirror","download.panic.com","InstallerUrl","Validation-Domain" +"pljones.s3pe","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"PMDSoftware.HEICConverter","pub-ed7cb43c06ce49939ef45cab106471bd.r2.dev","InstallerUrl","Validation-Domain" +"PopcornTime.Popcorn-Time","PopcornTime.Popcorn-Time","PackageIdentifier","Policy-Test-2.7" +"PortableApps.PortableAppsPlatform","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"PostgreSQL.PostgreSQL.13","get.enterprisedb.com","InstallerUrl","Validation-Domain" +"PostgreSQL.PostgreSQL.14","get.enterprisedb.com","InstallerUrl","Validation-Domain" +"PostgreSQL.PostgreSQL.15","get.enterprisedb.com","InstallerUrl","Validation-Domain" +"PostgreSQL.PostgreSQL.17","get.enterprisedb.com","InstallerUrl","Validation-Domain" +"PostgreSQL.PostgreSQL.18","get.enterprisedb.com","InstallerUrl","Validation-Domain" +"Power-user.Power-user","powerusersoftware.com","InstallerUrl","Validation-Domain" +"PRelectronics.PReset","PRelectronics.PReset","PackageIdentifier","Policy-Test-1.2" +"PrettyOakTree.EXIFmod","PrettyOakTree.EXIFmod","PackageIdentifier","Policy-Test-1.2" +"Privax.HMAVPN","www.hidemyass.com","InstallerUrl","Validation-Domain" +"ProjectLibre.ProjectLibre","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Prometheus.WindowsExporter","Prometheus.WindowsExporter","PackageIdentifier","Policy-Test-2.7" +"Psi.Psi","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"PulseHD.PulseHD","storage.googleapis.com","InstallerUrl","Validation-Domain" +"PVS-Studio.PVS-Studio","PVS-Studio.PVS-Studio","PackageIdentifier","Policy-Test-2.7" +"PXStudio.OpenPnt","codeberg.org","InstallerUrl","Validation-Domain" +"Pyonkichi.CLaunch","ss1.xrea.com","InstallerUrl","Validation-Domain" +"PyPy.PyPy.2.7","downloads.python.org","InstallerUrl","Validation-Domain" +"PyPy.PyPy.3.10","downloads.python.org","InstallerUrl","Validation-Domain" +"PyPy.PyPy.3.11","downloads.python.org","InstallerUrl","Validation-Domain" +"PyPy.PyPy.3.6","downloads.python.org","InstallerUrl","Validation-Domain" +"PyPy.PyPy.3.7","downloads.python.org","InstallerUrl","Validation-Domain" +"PyPy.PyPy.3.9","downloads.python.org","InstallerUrl","Validation-Domain" +"qBittorrent.qBittorrent","sourceforge.net","InstallerUrl","Validation-Domain" +"qBittorrent.qBittorrent.lt2","sourceforge.net","InstallerUrl","Validation-Domain" +"qingchencloud.cftunnel","qingchencloud.cftunnel","PackageIdentifier","Policy-Test-2.7" +"Qingfeng.HeyboxChat","macc.max-c.com","InstallerUrl","Validation-Domain" +"QingJ01.Pebble","QingJ01.Pebble","PackageIdentifier","Policy-Test-2.7" +"QuestPDF.Companion","QuestPDF.Companion","PackageIdentifier","Policy-Test-2.7" +"RaisingTheFloor.Morphic","d23vryjv7k8eyb.cloudfront.net","InstallerUrl","Validation-Domain" +"Rakuten.Viber","Rakuten.Viber","PackageIdentifier","Policy-Test-2.5" +"RayHinchliffe.SIV","delivery2.filecroco.com","InstallerUrl","Validation-Domain" +"RbDevOps.HMPraxis","downloads.rb-devops.com","InstallerUrl","Validation-Domain" +"ReactOS.RosBE","ReactOS.RosBE","PackageIdentifier","Policy-Test-2.5" +"REALiX.HWiNFO","www.sac.sk","InstallerUrl","Validation-Domain" +"RealNetworks.RealPlayer","cache-download.real.com","InstallerUrl","Validation-Domain" +"RedisInsight.RedisInsight","s3.amazonaws.com","InstallerUrl","Validation-Domain" +"Remeha.PRO","pcstwinget.blob.core.windows.net","InstallerUrl","Validation-Domain" +"ReversingLabs.SAFEViewer","downloads.secure.software","InstallerUrl","Validation-Domain" +"Revopoint.RevoDesign","www.quicksurface.com","InstallerUrl","Validation-Domain" +"RHash.RHash","downloads.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Rheoecho.leafsheep","codeberg.org","InstallerUrl","Validation-Domain" +"Ringler.SnapformViewer","mirror1.steuersoftware.ch","InstallerUrl","Validation-Domain" +"Roblox.RobloxStudio","setup.rbxcdn.com","InstallerUrl","Validation-Domain" +"Robomatter.ROBOTC.LEGOMindstorms","www.robotvirtualworlds.com","InstallerUrl","Validation-Domain" +"Robomatter.ROBOTC.VEXRobotics","www.robotvirtualworlds.com","InstallerUrl","Validation-Domain" +"Robomatter.RobotVirtualWorlds.OperationReset","Robomatter.RobotVirtualWorlds.OperationReset","PackageIdentifier","Policy-Test-1.2" +"RossRidge.mymc","www.csclub.uwaterloo.ca:11068","InstallerUrl","Validation-Domain" +"RoxyBrowser.RoxyBrowser","sgp1.vultrobjects.com","InstallerUrl","Validation-Domain" +"rullerzhou-afk.clawd-on-desk","rullerzhou-afk.clawd-on-desk","PackageIdentifier","Policy-Test-2.7" +"rumyp.donkeytype","rumyp.donkeytype","PackageIdentifier","Policy-Test-2.9" +"RystadEnergy.CubeBrowser","RystadEnergy.CubeBrowser","PackageIdentifier","Validation-Domain" +"SaeraSoft.CaesiumCLT","SaeraSoft.CaesiumCLT","PackageIdentifier","Policy-Test-2.9" +"SakuraFrp.SakuraLauncher","nya.globalslb.net","InstallerUrl","Validation-Domain" +"SaltStack.SaltMinion","packages.broadcom.com","InstallerUrl","Validation-Domain" +"Samsung.Odin","xdaforums.com","InstallerUrl","Validation-Domain" +"SAP.btp","tools.hana.ondemand.com","InstallerUrl","Validation-Domain" +"SatSignal.Runtimes","SatSignal.Runtimes","PackageIdentifier","Validation-No-Executables" +"SchoolCraft.WorksheetCrafter","www.hidrive.strato.com","InstallerUrl","Validation-Domain" +"Schrodinger.PyMOL","storage.googleapis.com","InstallerUrl","Validation-Domain" +"SCS.Alpha","www.p4dragon.com","InstallerUrl","Validation-Domain" +"sdercolin.recstar","sdercolin.recstar","PackageIdentifier","Policy-Test-1.8" +"Seafile.Seadrive","s3.eu-central-1.amazonaws.com","InstallerUrl","Validation-domain" +"Seafile.Seadrive","sos-ch-dk-2.exo.io","InstallerUrl","Validation-Domain" +"Seafile.Seafile","sos-ch-dk-2.exo.io","InstallerUrl","Validation-Domain" +"Seiraiyu.Keon","kisenon.com","InstallerUrl","Validation-Domain" +"SejinChun.Imagine","www.nyam.pe.kr","InstallerUrl","Validation-Domain" +"selftitledstudio.Fey","download.gamejolt.net","InstallerUrl","Validation-Domain" +"SevIQ.ThemeToggle","SevIQ.ThemeToggle","PackageIdentifier","Policy-Test-2.7" +"Shemeshg.MidiRouterClient","downloads.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Shemeshg.PassSimple ","downloads.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"ShiningLight.OpenSSL","slproweb.com","InstallerUrl","Validation-Domain" +"ShiningLight.OpenSSL.Dev","slproweb.com","InstallerUrl","Validation-Domain" +"shinovon.KEmnn","shinovon.KEmnn","PackageIdentifier","Validation-No-Executables" +"SiarheiKuchuk.ScreenshotAnnotator","SiarheiKuchuk.ScreenshotAnnotator","PackageIdentifier","Policy-Test-2.9" +"SiarheiKuchuk.ScreenshotAnnotator","SiarheiKuchuk.ScreenshotAnnotator","PackageIdentifier","Policy-Test-2.7" +"SignerLabs.Klee.CPU ","dvnr1hi9fanyr.cloudfront.net","InstallerUrl","Validation-Domain" +"SignerLabs.Klee.CUDA","dvnr1hi9fanyr.cloudfront.net","InstallerUrl","Validation-Domain" +"Signiant.Kyno","cdn.lesspain.software","InstallerUrl","Validation-Domain" +"Silhouette.SilhouetteStudio","d62nvtdcnsm38.cloudfront.net","InstallerUrl","Validation-Domain" +"SillyKoalaHugs.BabySmash","sillykoala.eu.org","InstallerUrl","Validation-Domain" +"SillyKoalaHugs.FerrariCreator","sillykoala.eu.org","InstallerUrl","Validation-Domain" +"SillyKoalaHugs.IdleEucalytus","sillykoala.eu.org","InstallerUrl","Validation-Domain" +"SillyKoalaHugs.UndeadKoalasAttack","sillykoala.eu.org","InstallerUrl","Validation-Domain" +"SimonG4ELI.SDR-Radio.Beta","www.dropbox.com","InstallerUrl","Validation-Domain" +"SimonG4ELI.SDR-Television","www.dropbox.com","InstallerUrl","Validation-Domain" +"SimpleTex.SimpleTex","gitee.com","InstallerUrl","Validation-Domain" +"sixspot.freescan","drive.google.com","InstallerUrl","Validation-Domain" +"Slite.Slite","download.todesktop.com","InstallerUrl","Validation-Domain" +"slp-studio.LinuxPractice","slp-studio.LinuxPractice","PackageIdentifier","Possible-Duplicate" +"SmartBear.ReadyAPI","dl.eviware.com","InstallerUrl","Validation-Domain" +"SmartBear.ReadyAPILoadUIAgent","dl.eviware.com","InstallerUrl","Validation-Domain" +"SmartBear.ReadyAPITestEngine","dl.eviware.com","InstallerUrl","Validation-Domain" +"SmartBear.ReadyAPIVirtServer","dl.eviware.com","InstallerUrl","Validation-Domain" +"Snowflake.SnowflakeCLI","Snowflake.SnowflakeCLI","PackageIdentifier","Policy-Test-2.7" +"Softpcapps.MaximizeAlways","www.4dots-software.com","InstallerUrl","Validation-Domain" +"Softpcapps.MinimizetoTrayTool","www.4dots-software.com","InstallerUrl","Validation-Domain" +"Softpcapps.MinimizetoTrayTool","Softpcapps.MinimizetoTrayTool","PackageIdentifier","Policy-Test-2.7" +"Softplicity.PDFCombinePro","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalAudioConverter","Softplicity.TotalAudioConverter","PackageIdentifier","Policy-Test-2.3" +"Softplicity.TotalAudioConverter","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalAudioConverter","Softplicity.TotalAudioConverter","PackageIdentifier","Policy-Test-2.8" +"Softplicity.TotalCADConverter","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalCSVConverter","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalExcelConverter","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalMailConverter","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalMailConverterPro","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalMovieConverter","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalOutlookConverter","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalOutlookConverterPro","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalPDFConverter","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalThunderbirdConverter","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalThunderbirdConverterPro","www.coolutils.com","InstallerUrl","Validation-Domain" +"Softplicity.TotalXMLConverter","www.coolutils.com","InstallerUrl","Validation-Domain" +"SolidClouds.Frontiers","starbornecdn.azureedge.net","InstallerUrl","Validation-Domain" +"Solidigm.StorageTool","sdmsdfwdriver.blob.core.windows.net","InstallerUrl","Validation-Domain" +"SonicWall.CloudSecureEdge","www.banyanops.com","InstallerUrl","Validation-Domain" +"Sony.XperiaCompanion","Sony.XperiaCompanion","PackageIdentifier","Policy-Test-1.2" +"sourcegit-scm.SourceGit","sourcegit-scm.SourceGit","PackageIdentifier","Validation-No-Executables" +"SouthRiverTechnologies.WebDrive","srtcdnstorage.blob.core.windows.net","InstallerUrl","Validation-Domain" +"Sparkol.VideoScribe","s3.amazonaws.com","InstallerUrl","Validation-Domain" +"srwi.EverythingToolbar.Launcher","srwi.EverythingToolbar.Launcher","PackageIdentifier","Possible-Duplicate" +"StanleyBlack&Decker.DewaltDesignAssist","ddawebsite-prod.azurewebsites.net","InstallerUrl","Validation-Domain" +"StartIsBack.StartAllBack","StartIsBack.StartAllBack","PackageIdentifier","Policy-Test-2.7" +"StartIsBack.StartAllBack","StartIsBack.StartAllBack","PackageIdentifier","Policy-Test-2.9" +"Steady.Steady","download.todesktop.com","InstallerUrl","Validation-Domain" +"Stellantis.PeugeotUpdate","d1tik0o5ahgjm.cloudfront.net","InstallerUrl","Validation-Domain" +"StellarDataRecovery.StellarPhotoRecovery","StellarDataRecovery.StellarPhotoRecovery","PackageIdentifier","Policy-Test-2.5" +"Stellarium.Stellarium","Stellarium.Stellarium","PackageIdentifier","Policy-Test-2.7" +"Stevenaaus.ScidvsPC","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"StevenMayall.MusicBee","StevenMayall.MusicBee","PackageIdentifier","Validation-No-Executables" +"Stilog.VPDeskLauncher","www.visual-planning.com","InstallerUrl","Validation-Domain" +"streamingdv.PXPlay","streamingdv.PXPlay","PackageIdentifier","Validation-Agreement-Domain" +"Streamio.StreamioV4","www.strem.io","InstallerUrl","Validation-Domain" +"Stremio.StremioService","dl.strem.io","InstallerUrl","Validation-Domain" +"Summa.ColigoConnectConfigurationTool","downloadcloudcti.blob.core.windows.net","InstallerUrl","Validation-Domain" +"Summay.Sunsama","download.todesktop.com","InstallerUrl","Validation-Domain" +"SunspireStudios.TuxRacer","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"SURF.LetsConnectClient","codeberg.org","InstallerUrl","Validation-Domain" +"Surfshark.Surfshark","Surfshark.Surfshark","PackageIdentifier","Policy-Test-2.3" +"SUSE.openSUSE.Leap.15.6","publicwsldistros.blob.core.windows.net","InstallerUrl","Validation-Domain" +"SUSE.openSUSE.Tumbleweed","publicwsldistros.blob.core.windows.net","InstallerUrl","Validation-Domain" +"SUSE.SUSE.15SP6","publicwsldistros.blob.core.windows.net","InstallerUrl","Validation-Domain" +"SylvainRougeaux.Echosync","api.luminescence-software.org","InstallerUrl","Validation-Domain" +"SylvainRougeaux.Metatogger","api.luminescence-software.org","InstallerUrl","Validation-Domain" +"SyncTERM.SyncTERM","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"TableClothProject.TableCloth","TableClothProject.TableCloth","PackageIdentifier","Policy-Test-1.8" +"Tachosys.digiCardResort","Tachosys.digiCardResort","PackageIdentifier","Possible-Duplicate" +"Tachosys.digiCentral","Tachosys.digiCentral","PackageIdentifier","Possible-Duplicate" +"Tachosys.digiCentralArchiveSync","Tachosys.digiCentralArchiveSync","PackageIdentifier","Possible-Duplicate" +"Tachosys.digiCentralAuthenticate","Tachosys.digiCentralAuthenticate","PackageIdentifier","Possible-Duplicate" +"Tachosys.digiConnect","Tachosys.digiConnect","PackageIdentifier","Possible-Duplicate" +"Tachosys.digiConnect","Tachosys.digiConnect","PackageIdentifier","Possible-Duplicate" +"Tachosys.TachographFileViewer","Tachosys.TachographFileViewer","PackageIdentifier","Possible-Duplicate" +"Tandem.Tandem","download.todesktop.com","InstallerUrl","Validation-Domain" +"TandemHealth.Tandem","TandemHealth.Tandem","PackageIdentifier","Policy-Test-2.9" +"TandemHealth.Tandem.MSI","TandemHealth.Tandem","PackageIdentifier","Policy-Test-2.9" +"Taozuhong.KangarooMariaDB","Taozuhong.KangarooMariaDB","PackageIdentifier","Possible-Duplicate" +"Taozuhong.KangarooMySQL","Taozuhong.KangarooMySQL","PackageIdentifier","Possible-Duplicate" +"Taozuhong.KangarooMySQL","Taozuhong.KangarooMySQL","PackageIdentifier","Possible-Duplicate" +"Taozuhong.KangarooSQLServer","Taozuhong.KangarooSQLServer","PackageIdentifier","Possible-Duplicate" +"TASKING.winIDEA","www.isystem.com","InstallerUrl","Validation-Domain" +"TeamFON.TeamSIP2go","TeamFON.TeamSIP2go","PackageIdentifier","Validation-No-Executables" +"Technelysium.Chromas","Technelysium.Chromas","PackageIdentifier","Policy-Test-1.8" +"Technelysium.Chromas.Pro","Technelysium.Chromas.Pro","PackageIdentifier","Policy-Test-1.8" +"Tencent.FanLive","d3g.qq.com","InstallerUrl","Validation-Domain" +"Tencent.ima-copilot","app-dl.ima.qq.com","InstallerUrl","Validation-Domain" +"Tencent.QClaw","cdn.m.qq.com","InstallerUrl","Validation-Domain" +"Tencent.WorkBuddy","download.codebuddy.cn","InstallerUrl","Validation-Domain" +"terrymacdonald.DisplayMagician","terrymacdonald.DisplayMagician","PackageIdentifier","Policy-Test-1.2" +"TexasInstruments.FusionDigitalPowerDesigner","software-dl.ti.com","InstallerUrl","Validation-Domain" +"TexasInstruments.TI-Admin","education.ti.com","InstallerUrl","Validation-Domain" +"TexasInstruments.TI-Nspire.CXCASStudent","education.ti.com","InstallerUrl","Validation-Domain" +"TexasInstruments.TI-Nspire.CXPremiumTeacher","education.ti.com","InstallerUrl","Validation-Domain" +"TexasInstruments.TI-Nspire.CXStudent","education.ti.com","InstallerUrl","Validation-Domain" +"TexasInstruments.TI-SmartView.TI-84Plus","education.ti.com","InstallerUrl","Validation-Domain" +"Thales.SafeNetAuthenticationClient","www.digicert.com","InstallerUrl","Validation-Domain" +"TheBlind.T-Shell","gitee.com","InstallerUrl","Validation-Domain" +"TheCryptTeam.Crypt","www.dropbox.com","InstallerUrl","Validation-Domain" +"Thegrideon.AccessForensics","Thegrideon.AccessForensics","PackageIdentifier","Policy-Test-1.2" +"TheOSCARTeam.OSCAR","www.sleepfiles.com","InstallerUrl","Validation-Domain" +"Thorlabs.CCT","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.Chrolis","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.ChrolisDeviceDriver","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.ChrolisInstrumentDriver","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.EXULUS-SE1","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.FSLControl","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.FWxC","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.HPLS","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.Joystick","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.KLC","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.Kurios","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.LCC25","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.LK220","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.MC2000","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.MC2000B","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.MCLS1","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.MCLS2","www.thorlabs.com","InstallerUrl","Validation-Domain" +"Thorlabs.MCM301","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.MEMSVCSEL","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.PACU2","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.PCD1K","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.PDXC","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.QEPAS","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.S4FC","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.S5FC","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.S7FC","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.SC10","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.SLS60x","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.SLS701","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.SPDC810","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.TC200","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.TC300B","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.ThorAOControl","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.ThorlabsDeviceSDK","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.TSP01","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.upSERIES","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"Thorlabs.xPlatform","thin01mstroc282prod.dxcloud.episerver.net","InstallerUrl","Validation-Domain" +"tibbo.ioninja","tibbo.ioninja","PackageIdentifier","Policy-Test-2.5" +"TigerVNC.TigerVNC","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"tinySA.tinySA","dfu.tinydevices.org","InstallerUrl","Validation-Domain" +"TORTUSAI.TORTUS","storage.googleapis.com","InstallerUrl","Validation-Domain" +"TrackerSoftware.PDF-Tools","TrackerSoftware.PDF-Tools","PackageIdentifier","Possible-Duplicate" +"Trimble.SketchUpViewer","Trimble.SketchUpViewer","PackageIdentifier","Policy-Test-1.2" +"Trimble.TrimbleConnect","download.tekla.com","InstallerUrl","Validation-Domain" +"Trust1Team.Trust1Connector","storage.googleapis.com","InstallerUrl","Validation-Domain" +"tsuchim.ImeKeysForUS","tsuchim.ImeKeysForUS","PackageIdentifier","Policy-Test-2.7" +"TUG.TeXworks","TUG.TeXworks","PackageIdentifier","Policy-Test-1.2" +"tumic0.GPXSee","sourceforge.net","InstallerUrl","Validation-Domain" +"TuneIn.TuneIn","gemini-desktop-prod.s3.us-west-2.amazonaws.com","InstallerUrl","Validation-Domain" +"Typst.Typst","Typst.Typst","PackageIdentifier","Policy-Test-1.2" +"Ubiquiti.IdentityDesktop.Endpoint","fw-download.ubnt.com","InstallerUrl","Validation-Domain" +"Ubiquiti.IdentityDesktop.Enterprise","fw-download.ubnt.com","InstallerUrl","Validation-Domain" +"Ubiquiti.UniFiNetworkServer","dl.ui.com","InstallerUrl","Validation-Domain" +"Ubisoft.Chroma","raw.githubusercontent.com","InstallerUrl","Validation-Domain" +"Ubisoft.Connect","static3.cdn.ubi.com","InstallerUrl","Validation-Domain" +"UderzoSoftware.SpaceSniffer","www.uderzo.it","InstallerUrl","Validation-Domain" +"undergroundwires.privacy.sexy","undergroundwires.privacy.sexy","PackageIdentifier","Policy-Test-2.7" +"unhchabo.FlacSquisher","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"UnicornSoft.UnicornHTTPS","UnicornSoft.UnicornHTTPS","PackageIdentifier","Policy-Test-2.7" +"Unifaun.UnifaunOnlinePrinter","delivery-clientinstall.s3.eu-north-1.amazonaws.com","InstallerUrl","Validation-Domain" +"UNIkeEN.SJMCL","mc.sjtu.cn","InstallerUrl","Validation-Domain" +"UprightLabs.ListerConnect","s3.us-east-1.amazonaws.com","InstallerUrl","Validation-Domain" +"UweSieber.ComPortInfo","UweSieber.ComPortInfo","PackageIdentifier","Policy-Test-2.7" +"UweSieber.ComPortInfo","UweSieber.ComPortInfo","PackageIdentifier","Policy-Test-1.2" +"UweSieber.UsbDriveInfo","UweSieber.UsbDriveInfo","PackageIdentifier","Policy-Test-2.7" +"Uzero.ScanScan","cdn.desktop.baimiaoapp.com","InstallerUrl","Validation-Domain" +"VCCLive.VCCLiveDesk","VCCLive.VCCLiveDesk","PackageIdentifier","Possible-Duplicate" +"Vector35.BinaryNinja","Vector35.BinaryNinja","PackageIdentifier","Policy-Test-2.5" +"Verizon.VerizonCloud","mediamanagerpc.vzw.com","InstallerUrl","Validation-Domain" +"Vernier.LoggerLite","d1zt81d93mquk0.cloudfront.net","InstallerUrl","Validation-Domain" +"ViewSonic.AirSyncSender","store2.myviewboard.com","InstallerUrl","Validation-Domain" +"Virtuworks.MSPControlAutopilot","mspcontrolrepo.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Danish","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Dutch","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.English.American","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.English.British","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.English.Other","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.French","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.German","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Italian","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Norwegian","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Polish","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Portuguese","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Romanian","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Russian","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Spanish","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Swedish","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Turkish","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.IvonaVoicePack.Welsh","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Arabic","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Catalan","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Chinese","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Czech","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Danish","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Dutch","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.English","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Finnish","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.French","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Gaelic","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.German","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Greek","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Hindi","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Hungarian","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Italian","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Japanese","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Korean","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Norwegian","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Polish","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Portuguese","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Romanian","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Russian","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Slovak","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Spanish","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Swedish","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Thai","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VisionAid.NuanceVocalizerVoicePack.Turkish","visoftware.blob.core.windows.net","InstallerUrl","Validation-Domain" +"VitalijFedichev.NFSServer","cyfuture.dl.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"VK.VKWorkspace","hb.bizmrg.com","InstallerUrl","Validation-Domain" +"VoSoft.VicDiary","gitee.com","InstallerUrl","Validation-Domain" +"VovSoft.BatchTranslator","VovSoft.BatchTranslator","PackageIdentifier","Policy-Test-1.8" +"VovSoft.CollectURL","VovSoft.CollectURL","PackageIdentifier","Policy-Test-2.7" +"VovSoft.HealthBreakReminder","VovSoft.HealthBreakReminder","PackageIdentifier","Policy-Test-1.2" +"VovSoft.KeystrokeVisualizer","VovSoft.KeystrokeVisualizer","PackageIdentifier","Policy-Test-2.7" +"VovSoft.SpeechToTextConverter","VovSoft.SpeechToTextConverter","PackageIdentifier","Policy-Test-1.8" +"VovSoft.SubtitleTranslator","VovSoft.SubtitleTranslator","PackageIdentifier","Policy-Test-1.8" +"Wagnardsoft.DisplayDriverUninstaller","Wagnardsoft.DisplayDriverUninstaller","PackageIdentifier","Validation-No-Executables" +"wanou067.MazeLauncher","mazecity.eu","InstallerUrl","Validation-Domain" +"WebCatalogLtd.Switchbar","webcatalog.io","InstallerUrl","Validation-Domain" +"WEBNSNM.terminalManage","WEBNSNM.terminalManage","PackageIdentifier","Policy-Test-2.7" +"Webstudio.Webstudio","Webstudio.Webstudio","PackageIdentifier","Possible-Duplicate" +"WesternDigital.Kitfox","downloads.wdc.com","InstallerUrl","Validation-Domain" +"WestWind.DocumentationMonster","raw.githubusercontent.com","InstallerUrl","Validation-Domain" +"WetOtter44.StrawberryMusicPlayer.MinGW","codeberg.org","InstallerUrl","Validation-Domain" +"WetOtter44.StrawberryMusicPlayer.MSVC","codeberg.org","InstallerUrl","Validation-Domain" +"Wibu-Systems.CodeMeterRuntimeKit","www.wibu.com","InstallerUrl","Validation-Domain" +"WikimediaProject.AutoWikiBrowser","deac-riga.dl.sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"WinEdtTeam.WinEdt","WinEdtTeam.WinEdt","PackageIdentifier","Policy-Test-1.2" +"WinEst.WinEst","drive.usercontent.google.com","InstallerUrl","Validation-Domain" +"WingItGames.CloudtrailIslands","download.gamejolt.net","InstallerUrl","Validation-Domain" +"WinUAE.WinUAE","download.abime.net","InstallerUrl","Validation-Domain" +"WiresharkFoundation.Stratoshark","1.na.dl.wireshark.org","InstallerUrl","Validation-Domain" +"WiseCleaner.WiseX","WiseCleaner.WiseX","PackageIdentifier","Policy-Test-2.7" +"WolfgangBuescher.rsNTP","www.qsl.net","InstallerUrl","Validation-Domain" +"Wondershare.Mockitt.CN","Wondershare.Mockitt.CN","PackageIdentifier","Validation-No-Executables" +"Wondershare.Mockitt.CN","cdn-release.modao.cc","InstallerUrl","Validation-Domain" +"wpdos.PDFtoPrinter","wpdos.PDFtoPrinter","PackageIdentifier","Policy-Test-2.9" +"wpdos.PDFtoPrinter","mendelson.org","InstallerUrl","Validation-Domain" +"WSUSOfflineUpdate.CommunityEdition","gitlab.com","InstallerUrl","Validation-Domain" +"xAI.GrokBuild","x.ai","InstallerUrl","Validation-Domain" +"Xersin.Sumsie","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Xerxes-2.ClewdR","Xerxes-2.ClewdR","PackageIdentifier","Policy-Test-2.7" +"Xiaocai.MiniCADDraw","clientdown.appol.com","InstallerUrl","Validation-Domain" +"Xiaocai.MiniCADSee","clientdown.appol.com","InstallerUrl","Validation-Domain" +"XiaoweiCloud.CalendarTask","download.xdiarys.com","InstallerUrl","Validation-Domain" +"XnSoft.XnConvert","download.xnview.com","InstallerUrl","Validation-Domain" +"XnSoft.XnConvert","XnSoft.XnConvert","PackageIdentifier","Policy-Test-1.2" +"XnSoft.XnResize","download.xnview.com","InstallerUrl","Validation-Domain" +"XTLS.Xray-core","XTLS.Xray-core","PackageIdentifier","Policy-Test-2.7" +"XxDoomsdayxX.GitPulse","XxDoomsdayxX.GitPulse","PackageIdentifier","Policy-Test-2.7" +"YABE.YetAnotherBacnetExplorer","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"Yealink.YealinkUSBConnect.CN","resource.ymcs.ylcloud.com","InstallerUrl","Validation-Domain" +"YohanesOkta.OctaCoreUtils","YohanesOkta.OctaCoreUtils","PackageIdentifier","Policy-Test-2.9" +"Youda008.DoomRunner","Youda008.DoomRunner","PackageIdentifier","Policy-Test-1.2" +"YouXiao.YXFile","zhcy.oss-cn-hangzhou.aliyuncs.com","InstallerUrl","Validation-Domain" +"yt-dlp.FFmpeg","yt-dlp.FFmpeg","PackageIdentifier","Validation-No-Executables" +"Yuanfudao.Yuanfudao","apphub.fbcontent.cn","InstallerUrl","Validation-Domain" +"Yubico.YubiKeySmartCardMinidriver","Yubico.YubiKeySmartCardMinidriver","PackageIdentifier","Validation-No-Executables" +"Z-DBackup.Z-Cron","z-download.de","InstallerUrl","Validation-Domain" +"zadjii.ObsidianNotesExtension","zadjii.ObsidianNotesExtension","PackageIdentifier","Policy-Test-2.7" +"zelenkov.WixTrim","sourceforge.net","InstallerUrl","Validation-Unapproved-URL" +"ZeroClawLabs.ZeroClaw","ZeroClawLabs.ZeroClaw","PackageIdentifier","Policy-Test-2.7" +"ZhipuAI.AutoClaw","autoglm.aminer.cn","InstallerUrl","Validation-Domain" +"ZhipuAI.AutoClaw","ZhipuAI.AutoClaw","PackageIdentifier","Policy-Test-2.7" +"ZivverB.V.ZivverOfficePlugin","ZivverB.V.ZivverOfficePlugin","PackageIdentifier","Validation-No-Executables" +"Zortrax.ZSuite","Zortrax.ZSuite","PackageIdentifier","Policy-Test-2.5" +"zTools.zTools","zTools.zTools","PackageIdentifier","Policy-Test-2.7" diff --git a/Tools/ManualValidation/ExitCodes.csv b/Tools/ManualValidation/ExitCodes.csv index 0d9f70707cbaf..a47d2927989d9 100644 --- a/Tools/ManualValidation/ExitCodes.csv +++ b/Tools/ManualValidation/ExitCodes.csv @@ -1,3935 +1,10370 @@ -"Hex","Dec","InvDec","Symbol","Description" -"00000000","0","-4294967296","ERROR_SUCCESS","The operation completed successfully." -"00000001","1","-4294967295","ERROR_INVALID_FUNCTION","Incorrect function." -"00000002","2","-4294967294","ERROR_FILE_NOT_FOUND","The system cannot find the file specified." -"00000003","3","-4294967293","ERROR_PATH_NOT_FOUND","The system cannot find the path specified." -"00000004","4","-4294967292","ERROR_TOO_MANY_OPEN_FILES","The system cannot open the file." -"00000005","5","-4294967291","ERROR_ACCESS_DENIED","Access is denied." -"00000006","6","-4294967290","ERROR_INVALID_HANDLE","The handle is invalid." -"00000007","7","-4294967289","ERROR_ARENA_TRASHED","The storage control blocks were destroyed." -"00000008","8","-4294967288","ERROR_NOT_ENOUGH_MEMORY","Not enough memory resources are available to process this command." -"00000009","9","-4294967287","ERROR_INVALID_BLOCK","The storage control block address is invalid." -"0000000A","10","-4294967286","ERROR_BAD_ENVIRONMENT","The environment is incorrect." -"0000000B","11","-4294967285","ERROR_BAD_FORMAT","An attempt was made to load a program with an incorrect format." -"0000000C","12","-4294967284","ERROR_INVALID_ACCESS","The access code is invalid." -"0000000D","13","-4294967283","ERROR_INVALID_DATA","The data is invalid." -"0000000E","14","-4294967282","ERROR_OUTOFMEMORY","Not enough storage is available to complete this operation." -"0000000F","15","-4294967281","ERROR_INVALID_DRIVE","The system cannot find the drive specified." -"00000010","16","-4294967280","ERROR_CURRENT_DIRECTORY","The directory cannot be removed." -"00000011","17","-4294967279","ERROR_NOT_SAME_DEVICE","The system cannot move the file to a different disk drive." -"00000012","18","-4294967278","ERROR_NO_MORE_FILES","There are no more files." -"00000013","19","-4294967277","ERROR_WRITE_PROTECT","The media is write protected." -"00000014","20","-4294967276","ERROR_BAD_UNIT","The system cannot find the device specified." -"00000015","21","-4294967275","ERROR_NOT_READY","The device is not ready." -"00000016","22","-4294967274","ERROR_BAD_COMMAND","The device does not recognize the command." -"00000017","23","-4294967273","ERROR_CRC","Data error" -"00000018","24","-4294967272","ERROR_BAD_LENGTH","The program issued a command but the command length is incorrect." -"00000019","25","-4294967271","ERROR_SEEK","The drive cannot locate a specific area or track on the disk." -"0000001A","26","-4294967270","ERROR_NOT_DOS_DISK","The specified disk or diskette cannot be accessed." -"0000001B","27","-4294967269","ERROR_SECTOR_NOT_FOUND","The drive cannot find the sector requested." -"0000001C","28","-4294967268","ERROR_OUT_OF_PAPER","The printer is out of paper." -"0000001D","29","-4294967267","ERROR_WRITE_FAULT","The system cannot write to the specified device." -"0000001E","30","-4294967266","ERROR_READ_FAULT","The system cannot read from the specified device." -"0000001F","31","-4294967265","ERROR_GEN_FAILURE","A device attached to the system is not functioning." -"00000020","32","-4294967264","ERROR_SHARING_VIOLATION","The process cannot access the file because it is being used by another process." -"00000021","33","-4294967263","ERROR_LOCK_VIOLATION","The process cannot access the file because another process has locked a portion of the file." -"00000022","34","-4294967262","ERROR_WRONG_DISK","The wrong diskette is in the drive. Insert %2" -"00000024","36","-4294967260","ERROR_SHARING_BUFFER_EXCEEDED","Too many files opened for sharing." -"00000026","38","-4294967258","ERROR_HANDLE_EOF","Reached the end of the file." -"00000027","39","-4294967257","ERROR_HANDLE_DISK_FULL","The disk is full." -"00000032","50","-4294967246","ERROR_NOT_SUPPORTED","The request is not supported." -"00000033","51","-4294967245","ERROR_REM_NOT_LIST","Windows cannot find the network path. Verify that the network path is correct and the destination computer is not busy or turned off. If Windows still cannot find the network path - contact your network administrator." -"00000034","52","-4294967244","ERROR_DUP_NAME","You were not connected because a duplicate name exists on the network. If joining a domain - go to System in Control Panel to change the computer name and try again. If joining a workgroup - choose another workgroup name." -"00000035","53","-4294967243","ERROR_BAD_NETPATH","The network path was not found." -"00000036","54","-4294967242","ERROR_NETWORK_BUSY","The network is busy." -"00000037","55","-4294967241","ERROR_DEV_NOT_EXIST","The specified network resource or device is no longer available." -"00000038","56","-4294967240","ERROR_TOO_MANY_CMDS","The network BIOS command limit has been reached." -"00000039","57","-4294967239","ERROR_ADAP_HDW_ERR","A network adapter hardware error occurred." -"0000003A","58","-4294967238","ERROR_BAD_NET_RESP","The specified server cannot perform the requested operation." -"0000003B","59","-4294967237","ERROR_UNEXP_NET_ERR","An unexpected network error occurred." -"0000003C","60","-4294967236","ERROR_BAD_REM_ADAP","The remote adapter is not compatible." -"0000003D","61","-4294967235","ERROR_PRINTQ_FULL","The printer queue is full." -"0000003E","62","-4294967234","ERROR_NO_SPOOL_SPACE","Space to store the file waiting to be printed is not available on the server." -"0000003F","63","-4294967233","ERROR_PRINT_CANCELLED","Your file waiting to be printed was deleted." -"00000040","64","-4294967232","ERROR_NETNAME_DELETED","The specified network name is no longer available." -"00000041","65","-4294967231","ERROR_NETWORK_ACCESS_DENIED","Network access is denied." -"00000042","66","-4294967230","ERROR_BAD_DEV_TYPE","The network resource type is not correct." -"00000043","67","-4294967229","ERROR_BAD_NET_NAME","The network name cannot be found." -"00000044","68","-4294967228","ERROR_TOO_MANY_NAMES","The name limit for the local computer network adapter card was exceeded." -"00000045","69","-4294967227","ERROR_TOO_MANY_SESS","The network BIOS session limit was exceeded." -"00000046","70","-4294967226","ERROR_SHARING_PAUSED","The remote server has been paused or is in the process of being started." -"00000047","71","-4294967225","ERROR_REQ_NOT_ACCEP","No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept." -"00000048","72","-4294967224","ERROR_REDIR_PAUSED","The specified printer or disk device has been paused." -"00000050","80","-4294967216","ERROR_FILE_EXISTS","The file exists." -"00000052","82","-4294967214","ERROR_CANNOT_MAKE","The directory or file cannot be created." -"00000053","83","-4294967213","ERROR_FAIL_I24","Fail on INT 24." -"00000054","84","-4294967212","ERROR_OUT_OF_STRUCTURES","Storage to process this request is not available." -"00000055","85","-4294967211","ERROR_ALREADY_ASSIGNED","The local device name is already in use." -"00000056","86","-4294967210","ERROR_INVALID_PASSWORD","The specified network password is not correct." -"00000057","87","-4294967209","ERROR_INVALID_PARAMETER","The parameter is incorrect." -"00000058","88","-4294967208","ERROR_NET_WRITE_FAULT","A write fault occurred on the network." -"00000059","89","-4294967207","ERROR_NO_PROC_SLOTS","The system cannot start another process at this time." -"00000064","100","-4294967196","ERROR_TOO_MANY_SEMAPHORES","Cannot create another system semaphore." -"00000065","101","-4294967195","ERROR_EXCL_SEM_ALREADY_OWNED","The exclusive semaphore is owned by another process." -"00000066","102","-4294967194","ERROR_SEM_IS_SET","The semaphore is set and cannot be closed." -"00000067","103","-4294967193","ERROR_TOO_MANY_SEM_REQUESTS","The semaphore cannot be set again." -"00000068","104","-4294967192","ERROR_INVALID_AT_INTERRUPT_TIME","Cannot request exclusive semaphores at interrupt time." -"00000069","105","-4294967191","ERROR_SEM_OWNER_DIED","The previous ownership of this semaphore has ended." -"0000006A","106","-4294967190","ERROR_SEM_USER_LIMIT","Insert the diskette for drive %1." -"0000006B","107","-4294967189","ERROR_DISK_CHANGE","The program stopped because an alternate diskette was not inserted." -"0000006C","108","-4294967188","ERROR_DRIVE_LOCKED","The disk is in use or locked by another process." -"0000006D","109","-4294967187","ERROR_BROKEN_PIPE","The pipe has been ended." -"0000006E","110","-4294967186","ERROR_OPEN_FAILED","The system cannot open the device or file specified." -"0000006F","111","-4294967185","ERROR_BUFFER_OVERFLOW","The file name is too long." -"00000070","112","-4294967184","ERROR_DISK_FULL","There is not enough space on the disk." -"00000071","113","-4294967183","ERROR_NO_MORE_SEARCH_HANDLES","No more internal file identifiers available." -"00000072","114","-4294967182","ERROR_INVALID_TARGET_HANDLE","The target internal file identifier is incorrect." -"00000075","117","-4294967179","ERROR_INVALID_CATEGORY","The IOCTL call made by the application program is not correct." -"00000076","118","-4294967178","ERROR_INVALID_VERIFY_SWITCH","The verify-on-write switch parameter value is not correct." -"00000077","119","-4294967177","ERROR_BAD_DRIVER_LEVEL","The system does not support the command requested." -"00000078","120","-4294967176","ERROR_CALL_NOT_IMPLEMENTED","This function is not supported on this system." -"00000079","121","-4294967175","ERROR_SEM_TIMEOUT","The semaphore timeout period has expired." -"0000007A","122","-4294967174","ERROR_INSUFFICIENT_BUFFER","The data area passed to a system call is too small." -"0000007B","123","-4294967173","ERROR_INVALID_NAME","The filename - directory name - or volume label syntax is incorrect." -"0000007C","124","-4294967172","ERROR_INVALID_LEVEL","The system call level is not correct." -"0000007D","125","-4294967171","ERROR_NO_VOLUME_LABEL","The disk has no volume label." -"0000007E","126","-4294967170","ERROR_MOD_NOT_FOUND","The specified module could not be found." -"0000007F","127","-4294967169","ERROR_PROC_NOT_FOUND","The specified procedure could not be found." -"00000080","128","-4294967168","ERROR_WAIT_NO_CHILDREN","There are no child processes to wait for." -"00000081","129","-4294967167","ERROR_CHILD_NOT_COMPLETE","The %1 application cannot be run in Win32 mode." -"00000082","130","-4294967166","ERROR_DIRECT_ACCESS_HANDLE","Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O." -"00000083","131","-4294967165","ERROR_NEGATIVE_SEEK","An attempt was made to move the file pointer before the beginning of the file." -"00000084","132","-4294967164","ERROR_SEEK_ON_DEVICE","The file pointer cannot be set on the specified device or file." -"00000085","133","-4294967163","ERROR_IS_JOIN_TARGET","A JOIN or SUBST command cannot be used for a drive that contains previously joined drives." -"00000086","134","-4294967162","ERROR_IS_JOINED","An attempt was made to use a JOIN or SUBST command on a drive that has already been joined." -"00000087","135","-4294967161","ERROR_IS_SUBSTED","An attempt was made to use a JOIN or SUBST command on a drive that has already been substituted." -"00000088","136","-4294967160","ERROR_NOT_JOINED","The system tried to delete the JOIN of a drive that is not joined." -"00000089","137","-4294967159","ERROR_NOT_SUBSTED","The system tried to delete the substitution of a drive that is not substituted." -"0000008A","138","-4294967158","ERROR_JOIN_TO_JOIN","The system tried to join a drive to a directory on a joined drive." -"0000008B","139","-4294967157","ERROR_SUBST_TO_SUBST","The system tried to substitute a drive to a directory on a substituted drive." -"0000008C","140","-4294967156","ERROR_JOIN_TO_SUBST","The system tried to join a drive to a directory on a substituted drive." -"0000008D","141","-4294967155","ERROR_SUBST_TO_JOIN","The system tried to SUBST a drive to a directory on a joined drive." -"0000008E","142","-4294967154","ERROR_BUSY_DRIVE","The system cannot perform a JOIN or SUBST at this time." -"0000008F","143","-4294967153","ERROR_SAME_DRIVE","The system cannot join or substitute a drive to or for a directory on the same drive." -"00000090","144","-4294967152","ERROR_DIR_NOT_ROOT","The directory is not a subdirectory of the root directory." -"00000091","145","-4294967151","ERROR_DIR_NOT_EMPTY","The directory is not empty." -"00000092","146","-4294967150","ERROR_IS_SUBST_PATH","The path specified is being used in a substitute." -"00000093","147","-4294967149","ERROR_IS_JOIN_PATH","Not enough resources are available to process this command." -"00000094","148","-4294967148","ERROR_PATH_BUSY","The path specified cannot be used at this time." -"00000095","149","-4294967147","ERROR_IS_SUBST_TARGET","An attempt was made to join or substitute a drive for which a directory on the drive is the target of a previous substitute." -"00000096","150","-4294967146","ERROR_SYSTEM_TRACE","System trace information was not specified in your CONFIG.SYS file - or tracing is disallowed." -"00000097","151","-4294967145","ERROR_INVALID_EVENT_COUNT","The number of specified semaphore events for DosMuxSemWait is not correct." -"00000098","152","-4294967144","ERROR_TOO_MANY_MUXWAITERS","DosMuxSemWait did not execute; too many semaphores are already set." -"00000099","153","-4294967143","ERROR_INVALID_LIST_FORMAT","The DosMuxSemWait list is not correct." -"0000009A","154","-4294967142","ERROR_LABEL_TOO_LONG","The volume label you entered exceeds the label character limit of the target file system." -"0000009B","155","-4294967141","ERROR_TOO_MANY_TCBS","Cannot create another thread." -"0000009C","156","-4294967140","ERROR_SIGNAL_REFUSED","The recipient process has refused the signal." -"0000009D","157","-4294967139","ERROR_DISCARDED","The segment is already discarded and cannot be locked." -"0000009E","158","-4294967138","ERROR_NOT_LOCKED","The segment is already unlocked." -"0000009F","159","-4294967137","ERROR_BAD_THREADID_ADDR","The address for the thread ID is not correct." -"000000A0","160","-4294967136","ERROR_BAD_ARGUMENTS","One or more arguments are not correct." -"000000A1","161","-4294967135","ERROR_BAD_PATHNAME","The specified path is invalid." -"000000A2","162","-4294967134","ERROR_SIGNAL_PENDING","A signal is already pending." -"000000A4","164","-4294967132","ERROR_MAX_THRDS_REACHED","No more threads can be created in the system." -"000000A7","167","-4294967129","ERROR_LOCK_FAILED","Unable to lock a region of a file." -"000000AA","170","-4294967126","ERROR_BUSY","The requested resource is in use." -"000000AB","171","-4294967125","ERROR_DEVICE_SUPPORT_IN_PROGRESS","Device's command support detection is in progress." -"000000AD","173","-4294967123","ERROR_CANCEL_VIOLATION","A lock request was not outstanding for the supplied cancel region." -"000000AE","174","-4294967122","ERROR_ATOMIC_LOCKS_NOT_SUPPORTED","The file system does not support atomic changes to the lock type." -"000000B4","180","-4294967116","ERROR_INVALID_SEGMENT_NUMBER","The system detected a segment number that was not correct." -"000000B6","182","-4294967114","ERROR_INVALID_ORDINAL","The operating system cannot run %1." -"000000B7","183","-4294967113","ERROR_ALREADY_EXISTS","Cannot create a file when that file already exists." -"000000BA","186","-4294967110","ERROR_INVALID_FLAG_NUMBER","The flag passed is not correct." -"000000BB","187","-4294967109","ERROR_SEM_NOT_FOUND","The specified system semaphore name was not found." -"000000BC","188","-4294967108","ERROR_INVALID_STARTING_CODESEG","The operating system cannot run %1." -"000000BD","189","-4294967107","ERROR_INVALID_STACKSEG","The operating system cannot run %1." -"000000BE","190","-4294967106","ERROR_INVALID_MODULETYPE","The operating system cannot run %1." -"000000BF","191","-4294967105","ERROR_INVALID_EXE_SIGNATURE","Cannot run %1 in Win32 mode." -"000000C0","192","-4294967104","ERROR_EXE_MARKED_INVALID","The operating system cannot run %1." -"000000C1","193","-4294967103","ERROR_BAD_EXE_FORMAT","%1 is not a valid Win32 application." -"000000C2","194","-4294967102","ERROR_ITERATED_DATA_EXCEEDS_64k","The operating system cannot run %1." -"000000C3","195","-4294967101","ERROR_INVALID_MINALLOCSIZE","The operating system cannot run %1." -"000000C4","196","-4294967100","ERROR_DYNLINK_FROM_INVALID_RING","The operating system cannot run this application program." -"000000C5","197","-4294967099","ERROR_IOPL_NOT_ENABLED","The operating system is not presently configured to run this application." -"000000C6","198","-4294967098","ERROR_INVALID_SEGDPL","The operating system cannot run %1." -"000000C7","199","-4294967097","ERROR_AUTODATASEG_EXCEEDS_64k","The operating system cannot run this application program." -"000000C8","200","-4294967096","ERROR_RING2SEG_MUST_BE_MOVABLE","The code segment cannot be greater than or equal to 64K." -"000000C9","201","-4294967095","ERROR_RELOC_CHAIN_XEEDS_SEGLIM","The operating system cannot run %1." -"000000CA","202","-4294967094","ERROR_INFLOOP_IN_RELOC_CHAIN","The operating system cannot run %1." -"000000CB","203","-4294967093","ERROR_ENVVAR_NOT_FOUND","The system could not find the environment option that was entered." -"000000CD","205","-4294967091","ERROR_NO_SIGNAL_SENT","No process in the command subtree has a signal handler." -"000000CE","206","-4294967090","ERROR_FILENAME_EXCED_RANGE","The filename or extension is too long." -"000000CF","207","-4294967089","ERROR_RING2_STACK_IN_USE","The ring 2 stack is in use." -"000000D0","208","-4294967088","ERROR_META_EXPANSION_TOO_LONG","The global filename characters - * or ? - are entered incorrectly or too many global filename characters are specified." -"000000D1","209","-4294967087","ERROR_INVALID_SIGNAL_NUMBER","The signal being posted is not correct." -"000000D2","210","-4294967086","ERROR_THREAD_1_INACTIVE","The signal handler cannot be set." -"000000D4","212","-4294967084","ERROR_LOCKED","The segment is locked and cannot be reallocated." -"000000D6","214","-4294967082","ERROR_TOO_MANY_MODULES","Too many dynamic-link modules are attached to this program or dynamic-link module." -"000000D7","215","-4294967081","ERROR_NESTING_NOT_ALLOWED","Cannot nest calls to LoadModule." -"000000D8","216","-4294967080","ERROR_EXE_MACHINE_TYPE_MISMATCH","This version of %1 is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher." -"000000D9","217","-4294967079","ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY","The image file %1 is signed - unable to modify." -"000000DA","218","-4294967078","ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY","The image file %1 is strong signed - unable to modify." -"000000DC","220","-4294967076","ERROR_FILE_CHECKED_OUT","This file is checked out or locked for editing by another user." -"000000DD","221","-4294967075","ERROR_CHECKOUT_REQUIRED","The file must be checked out before saving changes." -"000000DE","222","-4294967074","ERROR_BAD_FILE_TYPE","The file type being saved or retrieved has been blocked." -"000000DF","223","-4294967073","ERROR_FILE_TOO_LARGE","The file size exceeds the limit allowed and cannot be saved." -"000000E0","224","-4294967072","ERROR_FORMS_AUTH_REQUIRED","Access Denied. Before opening files in this location - you must first add the web site to your trusted sites list - browse to the web site - and select the option to login automatically." -"000000E1","225","-4294967071","ERROR_VIRUS_INFECTED","Operation did not complete successfully because the file contains a virus or potentially unwanted software." -"000000E2","226","-4294967070","ERROR_VIRUS_DELETED","This file contains a virus or potentially unwanted software and cannot be opened. Due to the nature of this virus or potentially unwanted software - the file has been removed from this location." -"000000E5","229","-4294967067","ERROR_PIPE_LOCAL","The pipe is local." -"000000E6","230","-4294967066","ERROR_BAD_PIPE","The pipe state is invalid." -"000000E7","231","-4294967065","ERROR_PIPE_BUSY","All pipe instances are busy." -"000000E8","232","-4294967064","ERROR_NO_DATA","The pipe is being closed." -"000000E9","233","-4294967063","ERROR_PIPE_NOT_CONNECTED","No process is on the other end of the pipe." -"000000EA","234","-4294967062","ERROR_MORE_DATA","More data is available." -"000000F0","240","-4294967056","ERROR_VC_DISCONNECTED","The session was canceled." -"000000FE","254","-4294967042","ERROR_INVALID_EA_NAME","The specified extended attribute name was invalid." -"000000FF","255","-4294967041","ERROR_EA_LIST_INCONSISTENT","The extended attributes are inconsistent." -"00000102","258","-4294967038","WAIT_TIMEOUT","The wait operation timed out." -"00000103","259","-4294967037","ERROR_NO_MORE_ITEMS","No more data is available." -"0000010A","266","-4294967030","ERROR_CANNOT_COPY","The copy functions cannot be used." -"0000010B","267","-4294967029","ERROR_DIRECTORY","The directory name is invalid." -"00000113","275","-4294967021","ERROR_EAS_DIDNT_FIT","The extended attributes did not fit in the buffer." -"00000114","276","-4294967020","ERROR_EA_FILE_CORRUPT","The extended attribute file on the mounted file system is corrupt." -"00000115","277","-4294967019","ERROR_EA_TABLE_FULL","The extended attribute table file is full." -"00000116","278","-4294967018","ERROR_INVALID_EA_HANDLE","The specified extended attribute handle is invalid." -"0000011A","282","-4294967014","ERROR_EAS_NOT_SUPPORTED","The mounted file system does not support extended attributes." -"00000120","288","-4294967008","ERROR_NOT_OWNER","Attempt to release mutex not owned by caller." -"0000012A","298","-4294966998","ERROR_TOO_MANY_POSTS","Too many posts were made to a semaphore." -"0000012B","299","-4294966997","ERROR_PARTIAL_COPY","Only part of a ReadProcessMemory or WriteProcessMemory request was completed." -"0000012C","300","-4294966996","ERROR_OPLOCK_NOT_GRANTED","The oplock request is denied." -"0000012D","301","-4294966995","ERROR_INVALID_OPLOCK_PROTOCOL","An invalid oplock acknowledgment was received by the system." -"0000012E","302","-4294966994","ERROR_DISK_TOO_FRAGMENTED","The volume is too fragmented to complete this operation." -"0000012F","303","-4294966993","ERROR_DELETE_PENDING","The file cannot be opened because it is in the process of being deleted." -"00000130","304","-4294966992","ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING","Short name settings may not be changed on this volume due to the global registry setting." -"00000131","305","-4294966991","ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME","Short names are not enabled on this volume." -"00000132","306","-4294966990","ERROR_SECURITY_STREAM_IS_INCONSISTENT","The security stream for the given volume is in an inconsistent state. Please run CHKDSK on the volume." -"00000133","307","-4294966989","ERROR_INVALID_LOCK_RANGE","A requested file lock operation cannot be processed due to an invalid byte range." -"00000134","308","-4294966988","ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT","The subsystem needed to support the image type is not present." -"00000135","309","-4294966987","ERROR_NOTIFICATION_GUID_ALREADY_DEFINED","The specified file already has a notification GUID associated with it." -"00000136","310","-4294966986","ERROR_INVALID_EXCEPTION_HANDLER","An invalid exception handler routine has been detected." -"00000137","311","-4294966985","ERROR_DUPLICATE_PRIVILEGES","Duplicate privileges were specified for the token." -"00000138","312","-4294966984","ERROR_NO_RANGES_PROCESSED","No ranges for the specified operation were able to be processed." -"00000139","313","-4294966983","ERROR_NOT_ALLOWED_ON_SYSTEM_FILE","Operation is not allowed on a file system internal file." -"0000013A","314","-4294966982","ERROR_DISK_RESOURCES_EXHAUSTED","The physical resources of this disk have been exhausted." -"0000013B","315","-4294966981","ERROR_INVALID_TOKEN","The token representing the data is invalid." -"0000013C","316","-4294966980","ERROR_DEVICE_FEATURE_NOT_SUPPORTED","The device does not support the command feature." -"0000013D","317","-4294966979","ERROR_MR_MID_NOT_FOUND","The system cannot find message text for message number 00000%1 in the message file for %2." -"0000013E","318","-4294966978","ERROR_SCOPE_NOT_FOUND","The scope specified was not found." -"0000013F","319","-4294966977","ERROR_UNDEFINED_SCOPE","The Central Access Policy specified is not defined on the target machine." -"00000140","320","-4294966976","ERROR_INVALID_CAP","The Central Access Policy obtained from Active Directory is invalid." -"00000141","321","-4294966975","ERROR_DEVICE_UNREACHABLE","The device is unreachable." -"00000142","322","-4294966974","ERROR_DEVICE_NO_RESOURCES","The target device has insufficient resources to complete the operation." -"00000143","323","-4294966973","ERROR_DATA_CHECKSUM_ERROR","A data integrity checksum error occurred. Data in the file stream is corrupt." -"00000144","324","-4294966972","ERROR_INTERMIXED_KERNEL_EA_OPERATION","An attempt was made to modify both a KERNEL and normal Extended Attribute" -"00000146","326","-4294966970","ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED","Device does not support file-level TRIM." -"00000147","327","-4294966969","ERROR_OFFSET_ALIGNMENT_VIOLATION","The command specified a data offset that does not align to the device's granularity/alignment." -"00000148","328","-4294966968","ERROR_INVALID_FIELD_IN_PARAMETER_LIST","The command specified an invalid field in its parameter list." -"00000149","329","-4294966967","ERROR_OPERATION_IN_PROGRESS","An operation is currently in progress with the device." -"0000014A","330","-4294966966","ERROR_BAD_DEVICE_PATH","An attempt was made to send down the command via an invalid path to the target device." -"0000014B","331","-4294966965","ERROR_TOO_MANY_DESCRIPTORS","The command specified a number of descriptors that exceeded the maximum supported by the device." -"0000014C","332","-4294966964","ERROR_SCRUB_DATA_DISABLED","Scrub is disabled on the specified file." -"0000014D","333","-4294966963","ERROR_NOT_REDUNDANT_STORAGE","The storage device does not provide redundancy." -"0000014E","334","-4294966962","ERROR_RESIDENT_FILE_NOT_SUPPORTED","An operation is not supported on a resident file." -"0000014F","335","-4294966961","ERROR_COMPRESSED_FILE_NOT_SUPPORTED","An operation is not supported on a compressed file." -"00000150","336","-4294966960","ERROR_DIRECTORY_NOT_SUPPORTED","An operation is not supported on a directory." -"00000151","337","-4294966959","ERROR_NOT_READ_FROM_COPY","The specified copy of the requested data could not be read." -"0000015E","350","-4294966946","ERROR_FAIL_NOACTION_REBOOT","No action was taken as a system reboot is required." -"0000015F","351","-4294966945","ERROR_FAIL_SHUTDOWN","The shutdown operation failed." -"00000160","352","-4294966944","ERROR_FAIL_RESTART","The restart operation failed." -"00000161","353","-4294966943","ERROR_MAX_SESSIONS_REACHED","The maximum number of sessions has been reached." -"00000190","400","-4294966896","ERROR_THREAD_MODE_ALREADY_BACKGROUND","The thread is already in background processing mode." -"00000191","401","-4294966895","ERROR_THREAD_MODE_NOT_BACKGROUND","The thread is not in background processing mode." -"00000192","402","-4294966894","ERROR_PROCESS_MODE_ALREADY_BACKGROUND","The process is already in background processing mode." -"00000193","403","-4294966893","ERROR_PROCESS_MODE_NOT_BACKGROUND","The process is not in background processing mode." -"000001E7","487","-4294966809","ERROR_INVALID_ADDRESS","Attempt to access invalid address." -"000001F4","500","-4294966796","ERROR_USER_PROFILE_LOAD","User profile cannot be loaded." -"00000216","534","-4294966762","ERROR_ARITHMETIC_OVERFLOW","Arithmetic result exceeded 32 bits." -"00000217","535","-4294966761","ERROR_PIPE_CONNECTED","There is a process on other end of the pipe." -"00000218","536","-4294966760","ERROR_PIPE_LISTENING","Waiting for a process to open the other end of the pipe." -"00000219","537","-4294966759","ERROR_VERIFIER_STOP","Application verifier has found an error in the current process." -"0000021A","538","-4294966758","ERROR_ABIOS_ERROR","An error occurred in the ABIOS subsystem." -"0000021B","539","-4294966757","ERROR_WX86_WARNING","A warning occurred in the WX86 subsystem." -"0000021C","540","-4294966756","ERROR_WX86_ERROR","An error occurred in the WX86 subsystem." -"0000021D","541","-4294966755","ERROR_TIMER_NOT_CANCELED","An attempt was made to cancel or set a timer that has an associated APC and the subject thread is not the thread that originally set the timer with an associated APC routine." -"0000021E","542","-4294966754","ERROR_UNWIND","Unwind exception code." -"0000021F","543","-4294966753","ERROR_BAD_STACK","An invalid or unaligned stack was encountered during an unwind operation." -"00000220","544","-4294966752","ERROR_INVALID_UNWIND_TARGET","An invalid unwind target was encountered during an unwind operation." -"00000221","545","-4294966751","ERROR_INVALID_PORT_ATTRIBUTES","Invalid Object Attributes specified to NtCreatePort or invalid Port Attributes specified to NtConnectPort" -"00000223","547","-4294966749","ERROR_INVALID_QUOTA_LOWER","An attempt was made to lower a quota limit below the current usage." -"00000224","548","-4294966748","ERROR_DEVICE_ALREADY_ATTACHED","An attempt was made to attach to a device that was already attached to another device." -"00000225","549","-4294966747","ERROR_INSTRUCTION_MISALIGNMENT","An attempt was made to execute an instruction at an unaligned address and the host system does not support unaligned instruction references." -"00000226","550","-4294966746","ERROR_PROFILING_NOT_STARTED","Profiling not started." -"00000227","551","-4294966745","ERROR_PROFILING_NOT_STOPPED","Profiling not stopped." -"00000228","552","-4294966744","ERROR_COULD_NOT_INTERPRET","The passed ACL did not contain the minimum required information." -"00000229","553","-4294966743","ERROR_PROFILING_AT_LIMIT","The number of active profiling objects is at the maximum and no more may be started." -"0000022A","554","-4294966742","ERROR_CANT_WAIT","Used to indicate that an operation cannot continue without blocking for I/O." -"0000022B","555","-4294966741","ERROR_CANT_TERMINATE_SELF","Indicates that a thread attempted to terminate itself by default" -"0000022C","556","-4294966740","ERROR_UNEXPECTED_MM_CREATE_ERR","If an MM error is returned which is not defined in the standard FsRtl filter - it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost - however - the filter correctly handles the exception." -"0000022D","557","-4294966739","ERROR_UNEXPECTED_MM_MAP_ERROR","If an MM error is returned which is not defined in the standard FsRtl filter - it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost - however - the filter correctly handles the exception." -"0000022E","558","-4294966738","ERROR_UNEXPECTED_MM_EXTEND_ERR","If an MM error is returned which is not defined in the standard FsRtl filter - it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost - however - the filter correctly handles the exception." -"0000022F","559","-4294966737","ERROR_BAD_FUNCTION_TABLE","A malformed function table was encountered during an unwind operation." -"00000230","560","-4294966736","ERROR_NO_GUID_TRANSLATION","Indicates that an attempt was made to assign protection to a file system file or directory and one of the SIDs in the security descriptor could not be translated into a GUID that could be stored by the file system. This causes the protection attempt to fail - which may cause a file creation attempt to fail." -"00000231","561","-4294966735","ERROR_INVALID_LDT_SIZE","Indicates that an attempt was made to grow an LDT by setting its size - or that the size was not an even number of selectors." -"00000233","563","-4294966733","ERROR_INVALID_LDT_OFFSET","Indicates that the starting value for the LDT information was not an integral multiple of the selector size." -"00000234","564","-4294966732","ERROR_INVALID_LDT_DESCRIPTOR","Indicates that the user supplied an invalid descriptor when trying to set up Ldt descriptors." -"00000235","565","-4294966731","ERROR_TOO_MANY_THREADS","Indicates a process has too many threads to perform the requested action. For example - assignment of a primary token may only be performed when a process has zero or one threads." -"00000236","566","-4294966730","ERROR_THREAD_NOT_IN_PROCESS","An attempt was made to operate on a thread within a specific process - but the thread specified is not in the process specified." -"00000237","567","-4294966729","ERROR_PAGEFILE_QUOTA_EXCEEDED","Page file quota was exceeded." -"00000238","568","-4294966728","ERROR_LOGON_SERVER_CONFLICT","The Netlogon service cannot start because another Netlogon service running in the domain conflicts with the specified role." -"00000239","569","-4294966727","ERROR_SYNCHRONIZATION_REQUIRED","The SAM database on a Windows Server is significantly out of synchronization with the copy on the Domain Controller. A complete synchronization is required." -"0000023A","570","-4294966726","ERROR_NET_OPEN_FAILED","The NtCreateFile API failed. This error should never be returned to an application - it is a place holder for the Windows Lan Manager Redirector to use in its internal error mapping routines." -"0000023B","571","-4294966725","ERROR_IO_PRIVILEGE_FAILED","{Privilege Failed} The I/O permissions for the process could not be changed." -"0000023C","572","-4294966724","ERROR_CONTROL_C_EXIT","{Application Exit by CTRL+C} The application terminated as a result of a CTRL+C." -"0000023D","573","-4294966723","ERROR_MISSING_SYSTEMFILE","{Missing System File} The required system file %hs is bad or missing." -"0000023E","574","-4294966722","ERROR_UNHANDLED_EXCEPTION","{Application Error} The exception %s" -"0000023F","575","-4294966721","ERROR_APP_INIT_FAILURE","{Application Error} The application was unable to start correctly" -"00000240","576","-4294966720","ERROR_PAGEFILE_CREATE_FAILED","{Unable to Create Paging File} The creation of the paging file %hs failed" -"00000241","577","-4294966719","ERROR_INVALID_IMAGE_HASH","Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged - or that might be malicious software from an unknown source." -"00000242","578","-4294966718","ERROR_NO_PAGEFILE","{No Paging File Specified} No paging file was specified in the system configuration." -"00000243","579","-4294966717","ERROR_ILLEGAL_FLOAT_CONTEXT","{EXCEPTION} A real-mode application issued a floating-point instruction and floating-point hardware is not present." -"00000244","580","-4294966716","ERROR_NO_EVENT_PAIR","An event pair synchronization operation was performed using the thread specific client/server event pair object - but no event pair object was associated with the thread." -"00000245","581","-4294966715","ERROR_DOMAIN_CTRLR_CONFIG_ERROR","A Windows Server has an incorrect configuration." -"00000246","582","-4294966714","ERROR_ILLEGAL_CHARACTER","An illegal character was encountered. For a multi-byte character set this includes a lead byte without a succeeding trail byte. For the Unicode character set this includes the characters 00000FFFF and 00000FFFE." -"00000247","583","-4294966713","ERROR_UNDEFINED_CHARACTER","The Unicode character is not defined in the Unicode character set installed on the system." -"00000248","584","-4294966712","ERROR_FLOPPY_VOLUME","The paging file cannot be created on a floppy diskette." -"00000249","585","-4294966711","ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT","The system BIOS failed to connect a system interrupt to the device or bus for which the device is connected." -"0000024A","586","-4294966710","ERROR_BACKUP_CONTROLLER","This operation is only allowed for the Primary Domain Controller of the domain." -"0000024B","587","-4294966709","ERROR_MUTANT_LIMIT_EXCEEDED","An attempt was made to acquire a mutant such that its maximum count would have been exceeded." -"0000024C","588","-4294966708","ERROR_FS_DRIVER_REQUIRED","A volume has been accessed for which a file system driver is required that has not yet been loaded." -"0000024D","589","-4294966707","ERROR_CANNOT_LOAD_REGISTRY_FILE","{Registry File Failure} The registry cannot load the hive" -"0000024E","590","-4294966706","ERROR_DEBUG_ATTACH_FAILED","{Unexpected Failure in DebugActiveProcess} An unexpected failure occurred while processing a DebugActiveProcess API request. You may choose OK to terminate the process - or Cancel to ignore the error." -"0000024F","591","-4294966705","ERROR_SYSTEM_PROCESS_TERMINATED","{Fatal System Error} The %hs system process terminated unexpectedly with a status of 00000%08x" -"00000250","592","-4294966704","ERROR_DATA_NOT_ACCEPTED","{Data Not Accepted} The TDI client could not handle the data received during an indication." -"00000251","593","-4294966703","ERROR_VDM_HARD_ERROR","NTVDM encountered a hard error." -"00000252","594","-4294966702","ERROR_DRIVER_CANCEL_TIMEOUT","{Cancel Timeout} The driver %hs failed to complete a cancelled I/O request in the allotted time." -"00000253","595","-4294966701","ERROR_REPLY_MESSAGE_MISMATCH","{Reply Message Mismatch} An attempt was made to reply to an LPC message - but the thread specified by the client ID in the message was not waiting on that message." -"00000254","596","-4294966700","ERROR_LOST_WRITEBEHIND_DATA","{Delayed Write Failed} Windows was unable to save all the data for the file %hs. The data has been lost. This error may be caused by a failure of your computer hardware or network connection. Please try to save this file elsewhere." -"00000255","597","-4294966699","ERROR_CLIENT_SERVER_PARAMETERS_INVALID","The parameter(s) passed to the server in the client/server shared memory window were invalid. Too much data may have been put in the shared memory window." -"00000256","598","-4294966698","ERROR_NOT_TINY_STREAM","The stream is not a tiny stream." -"00000257","599","-4294966697","ERROR_STACK_OVERFLOW_READ","The request must be handled by the stack overflow code." -"00000258","600","-4294966696","ERROR_CONVERT_TO_LARGE","Internal OFS status codes indicating how an allocation operation is handled. Either it is retried after the containing onode is moved or the extent stream is converted to a large stream." -"00000259","601","-4294966695","ERROR_FOUND_OUT_OF_SCOPE","The attempt to find the object found an object matching by ID on the volume but it is out of the scope of the handle used for the operation." -"0000025A","602","-4294966694","ERROR_ALLOCATE_BUCKET","The bucket array must be grown. Retry transaction after doing so." -"0000025B","603","-4294966693","ERROR_MARSHALL_OVERFLOW","The user/kernel marshalling buffer has overflowed." -"0000025C","604","-4294966692","ERROR_INVALID_VARIANT","The supplied variant structure contains invalid data." -"0000025D","605","-4294966691","ERROR_BAD_COMPRESSION_BUFFER","The specified buffer contains ill-formed data." -"0000025E","606","-4294966690","ERROR_AUDIT_FAILED","{Audit Failed} An attempt to generate a security audit failed." -"0000025F","607","-4294966689","ERROR_TIMER_RESOLUTION_NOT_SET","The timer resolution was not previously set by the current process." -"00000260","608","-4294966688","ERROR_INSUFFICIENT_LOGON_INFO","There is insufficient account information to log you on." -"00000261","609","-4294966687","ERROR_BAD_DLL_ENTRYPOINT","{Invalid DLL Entrypoint} The dynamic link library %hs is not written correctly. The stack pointer has been left in an inconsistent state. The entrypoint should be declared as WINAPI or STDCALL. Select YES to fail the DLL load. Select NO to continue execution. Selecting NO may cause the application to operate incorrectly." -"00000262","610","-4294966686","ERROR_BAD_SERVICE_ENTRYPOINT","{Invalid Service Callback Entrypoint} The %hs service is not written correctly. The stack pointer has been left in an inconsistent state. The callback entrypoint should be declared as WINAPI or STDCALL. Selecting OK will cause the service to continue operation. However - the service process may operate incorrectly." -"00000263","611","-4294966685","ERROR_IP_ADDRESS_CONFLICT1","There is an IP address conflict with another system on the network." -"00000264","612","-4294966684","ERROR_IP_ADDRESS_CONFLICT2","There is an IP address conflict with another system on the network." -"00000265","613","-4294966683","ERROR_REGISTRY_QUOTA_LIMIT","{Low On Registry Space} The system has reached the maximum size allowed for the system part of the registry. Additional storage requests will be ignored." -"00000266","614","-4294966682","ERROR_NO_CALLBACK_ACTIVE","A callback return system service cannot be executed when no callback is active." -"00000267","615","-4294966681","ERROR_PWD_TOO_SHORT","The password provided is too short to meet the policy of your user account. Please choose a longer password." -"00000268","616","-4294966680","ERROR_PWD_TOO_RECENT","The policy of your user account does not allow you to change passwords too frequently. This is done to prevent users from changing back to a familiar - but potentially discovered - password. If you feel your password has been compromised then please contact your administrator immediately to have a new one assigned." -"00000269","617","-4294966679","ERROR_PWD_HISTORY_CONFLICT","You have attempted to change your password to one that you have used in the past. The policy of your user account does not allow this. Please select a password that you have not previously used." -"0000026A","618","-4294966678","ERROR_UNSUPPORTED_COMPRESSION","The specified compression format is unsupported." -"0000026B","619","-4294966677","ERROR_INVALID_HW_PROFILE","The specified hardware profile configuration is invalid." -"0000026C","620","-4294966676","ERROR_INVALID_PLUGPLAY_DEVICE_PATH","The specified Plug and Play registry device path is invalid." -"0000026D","621","-4294966675","ERROR_QUOTA_LIST_INCONSISTENT","The specified quota list is internally inconsistent with its descriptor." -"0000026E","622","-4294966674","ERROR_EVALUATION_EXPIRATION","{Windows Evaluation Notification} The evaluation period for this installation of Windows has expired. This system will shutdown in 1 hour. To restore access to this installation of Windows - please upgrade this installation using a licensed distribution of this product." -"0000026F","623","-4294966673","ERROR_ILLEGAL_DLL_RELOCATION","{Illegal System DLL Relocation} The system DLL %hs was relocated in memory. The application will not run properly. The relocation occurred because the DLL %hs occupied an address range reserved for Windows system DLLs. The vendor supplying the DLL should be contacted for a new DLL." -"00000270","624","-4294966672","ERROR_DLL_INIT_FAILED_LOGOFF","{DLL Initialization Failed} The application failed to initialize because the window station is shutting down." -"00000271","625","-4294966671","ERROR_VALIDATE_CONTINUE","The validation process needs to continue on to the next step." -"00000272","626","-4294966670","ERROR_NO_MORE_MATCHES","There are no more matches for the current index enumeration." -"00000273","627","-4294966669","ERROR_RANGE_LIST_CONFLICT","The range could not be added to the range list because of a conflict." -"00000274","628","-4294966668","ERROR_SERVER_SID_MISMATCH","The server process is running under a SID different than that required by client." -"00000275","629","-4294966667","ERROR_CANT_ENABLE_DENY_ONLY","A group marked use for deny only cannot be enabled." -"00000276","630","-4294966666","ERROR_FLOAT_MULTIPLE_FAULTS","{EXCEPTION} Multiple floating point faults." -"00000277","631","-4294966665","ERROR_FLOAT_MULTIPLE_TRAPS","{EXCEPTION} Multiple floating point traps." -"00000278","632","-4294966664","ERROR_NOINTERFACE","The requested interface is not supported." -"00000279","633","-4294966663","ERROR_DRIVER_FAILED_SLEEP","{System Standby Failed} The driver %hs does not support standby mode. Updating this driver may allow the system to go to standby mode." -"0000027A","634","-4294966662","ERROR_CORRUPT_SYSTEM_FILE","The system file %1 has become corrupt and has been replaced." -"0000027B","635","-4294966661","ERROR_COMMITMENT_MINIMUM","{Virtual Memory Minimum Too Low} Your system is low on virtual memory. Windows is increasing the size of your virtual memory paging file. During this process - memory requests for some applications may be denied. For more information - see Help." -"0000027C","636","-4294966660","ERROR_PNP_RESTART_ENUMERATION","A device was removed so enumeration must be restarted." -"0000027D","637","-4294966659","ERROR_SYSTEM_IMAGE_BAD_SIGNATURE","{Fatal System Error} The system image %s is not properly signed. The file has been replaced with the signed file. The system has been shut down." -"0000027E","638","-4294966658","ERROR_PNP_REBOOT_REQUIRED","Device will not start without a reboot." -"0000027F","639","-4294966657","ERROR_INSUFFICIENT_POWER","There is not enough power to complete the requested operation." -"00000280","640","-4294966656","ERROR_MULTIPLE_FAULT_VIOLATION","ERROR_MULTIPLE_FAULT_VIOLATION" -"00000282","642","-4294966654","ERROR_PORT_NOT_SET","An attempt to remove a processes DebugPort was made - but a port was not already associated with the process." -"00000283","643","-4294966653","ERROR_DS_VERSION_CHECK_FAILURE","This version of Windows is not compatible with the behavior version of directory forest - domain or domain controller." -"00000284","644","-4294966652","ERROR_RANGE_NOT_FOUND","The specified range could not be found in the range list." -"00000286","646","-4294966650","ERROR_NOT_SAFE_MODE_DRIVER","The driver was not loaded because the system is booting into safe mode." -"00000287","647","-4294966649","ERROR_FAILED_DRIVER_ENTRY","The driver was not loaded because it failed its initialization call." -"00000288","648","-4294966648","ERROR_DEVICE_ENUMERATION_ERROR","The ""%hs"" encountered an error while applying power or reading the device configuration. This may be caused by a failure of your hardware or by a poor connection." -"00000289","649","-4294966647","ERROR_MOUNT_POINT_NOT_RESOLVED","The create operation failed because the name contained at least one mount point which resolves to a volume to which the specified device object is not attached." -"0000028A","650","-4294966646","ERROR_INVALID_DEVICE_OBJECT_PARAMETER","The device object parameter is either not a valid device object or is not attached to the volume specified by the file name." -"0000028B","651","-4294966645","ERROR_MCA_OCCURED","A Machine Check Error has occurred. Please check the system eventlog for additional information." -"0000028C","652","-4294966644","ERROR_DRIVER_DATABASE_ERROR","There was error [%2] processing the driver database." -"0000028D","653","-4294966643","ERROR_SYSTEM_HIVE_TOO_LARGE","System hive size has exceeded its limit." -"0000028E","654","-4294966642","ERROR_DRIVER_FAILED_PRIOR_UNLOAD","The driver could not be loaded because a previous version of the driver is still in memory." -"0000028F","655","-4294966641","ERROR_VOLSNAP_PREPARE_HIBERNATE","{Volume Shadow Copy Service} Please wait while the Volume Shadow Copy Service prepares volume %hs for hibernation." -"00000290","656","-4294966640","ERROR_HIBERNATION_FAILURE","The system has failed to hibernate" -"00000291","657","-4294966639","ERROR_PWD_TOO_LONG","The password provided is too long to meet the policy of your user account. Please choose a shorter password." -"00000299","665","-4294966631","ERROR_FILE_SYSTEM_LIMITATION","The requested operation could not be completed due to a file system limitation." -"0000029C","668","-4294966628","ERROR_ASSERTION_FAILURE","An assertion failure has occurred." -"0000029D","669","-4294966627","ERROR_ACPI_ERROR","An error occurred in the ACPI subsystem." -"0000029E","670","-4294966626","ERROR_WOW_ASSERTION","WOW Assertion Error." -"0000029F","671","-4294966625","ERROR_PNP_BAD_MPS_TABLE","A device is missing in the system BIOS MPS table. This device will not be used. Please contact your system vendor for system BIOS update." -"000002A0","672","-4294966624","ERROR_PNP_TRANSLATION_FAILED","A translator failed to translate resources." -"000002A1","673","-4294966623","ERROR_PNP_IRQ_TRANSLATION_FAILED","A IRQ translator failed to translate resources." -"000002A2","674","-4294966622","ERROR_PNP_INVALID_ID","Driver %2 returned invalid ID for a child device" -"000002A3","675","-4294966621","ERROR_WAKE_SYSTEM_DEBUGGER","{Kernel Debugger Awakened} the system debugger was awakened by an interrupt." -"000002A4","676","-4294966620","ERROR_HANDLES_CLOSED","{Handles Closed} Handles to objects have been automatically closed as a result of the requested operation." -"000002A5","677","-4294966619","ERROR_EXTRANEOUS_INFORMATION","{Too Much Information} The specified access control list" -"000002A6","678","-4294966618","ERROR_RXACT_COMMIT_NECESSARY","This warning level status indicates that the transaction state already exists for the registry sub-tree - but that a transaction commit was previously aborted. The commit has NOT been completed - but has not been rolled back either" -"000002A7","679","-4294966617","ERROR_MEDIA_CHECK","{Media Changed} The media may have changed." -"000002A8","680","-4294966616","ERROR_GUID_SUBSTITUTION_MADE","{GUID Substitution} During the translation of a global identifier" -"000002A9","681","-4294966615","ERROR_STOPPED_ON_SYMLINK","The create operation stopped after reaching a symbolic link." -"000002AA","682","-4294966614","ERROR_LONGJUMP","A long jump has been executed." -"000002AB","683","-4294966613","ERROR_PLUGPLAY_QUERY_VETOED","The Plug and Play query operation was not successful." -"000002AC","684","-4294966612","ERROR_UNWIND_CONSOLIDATE","A frame consolidation has been executed." -"000002AD","685","-4294966611","ERROR_REGISTRY_HIVE_RECOVERED","{Registry Hive Recovered} Registry hive" -"000002AE","686","-4294966610","ERROR_DLL_MIGHT_BE_INSECURE","The application is attempting to run executable code from the module %hs. This may be insecure. An alternative - %hs - is available. Should the application use the secure module %hs?" -"000002B1","689","-4294966607","ERROR_DBG_REPLY_LATER","Debugger will reply later." -"000002B2","690","-4294966606","ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE","Debugger cannot provide handle." -"000002B3","691","-4294966605","ERROR_DBG_TERMINATE_THREAD","Debugger terminated thread." -"000002B4","692","-4294966604","ERROR_DBG_TERMINATE_PROCESS","Debugger terminated process." -"000002B5","693","-4294966603","ERROR_DBG_CONTROL_C","Debugger got control C." -"000002B6","694","-4294966602","ERROR_DBG_PRINTEXCEPTION_C","Debugger printed exception on control C." -"000002B7","695","-4294966601","ERROR_DBG_RIPEXCEPTION","Debugger received RIP exception." -"000002B8","696","-4294966600","ERROR_DBG_CONTROL_BREAK","Debugger received control break." -"000002B9","697","-4294966599","ERROR_DBG_COMMAND_EXCEPTION","Debugger command communication exception." -"000002BA","698","-4294966598","ERROR_OBJECT_NAME_EXISTS","{Object Exists} An attempt was made to create an object and the object name already existed." -"000002BB","699","-4294966597","ERROR_THREAD_WAS_SUSPENDED","{Thread Suspended} A thread termination occurred while the thread was suspended. The thread was resumed - and termination proceeded." -"000002BC","700","-4294966596","ERROR_IMAGE_NOT_AT_BASE","{Image Relocated} An image file could not be mapped at the address specified in the image file. Local fixups must be performed on this image." -"000002BD","701","-4294966595","ERROR_RXACT_STATE_CREATED","This informational level status indicates that a specified registry sub-tree transaction state did not yet exist and had to be created." -"000002BE","702","-4294966594","ERROR_SEGMENT_NOTIFICATION","{Segment Load} A virtual DOS machine" -"000002BF","703","-4294966593","ERROR_BAD_CURRENT_DIRECTORY","{Invalid Current Directory} The process cannot switch to the startup current directory %hs. Select OK to set current directory to %hs - or select CANCEL to exit." -"000002C0","704","-4294966592","ERROR_FT_READ_RECOVERY_FROM_BACKUP","{Redundant Read} To satisfy a read request - the NT fault-tolerant file system successfully read the requested data from a redundant copy. This was done because the file system encountered a failure on a member of the fault-tolerant volume - but was unable to reassign the failing area of the device." -"000002C1","705","-4294966591","ERROR_FT_WRITE_RECOVERY","{Redundant Write} To satisfy a write request - the NT fault-tolerant file system successfully wrote a redundant copy of the information. This was done because the file system encountered a failure on a member of the fault-tolerant volume - but was not able to reassign the failing area of the device." -"000002C2","706","-4294966590","ERROR_IMAGE_MACHINE_TYPE_MISMATCH","{Machine Type Mismatch} The image file %hs is valid - but is for a machine type other than the current machine. Select OK to continue - or CANCEL to fail the DLL load." -"000002C3","707","-4294966589","ERROR_RECEIVE_PARTIAL","{Partial Data Received} The network transport returned partial data to its client. The remaining data will be sent later." -"000002C4","708","-4294966588","ERROR_RECEIVE_EXPEDITED","{Expedited Data Received} The network transport returned data to its client that was marked as expedited by the remote system." -"000002C5","709","-4294966587","ERROR_RECEIVE_PARTIAL_EXPEDITED","{Partial Expedited Data Received} The network transport returned partial data to its client and this data was marked as expedited by the remote system. The remaining data will be sent later." -"000002C6","710","-4294966586","ERROR_EVENT_DONE","{TDI Event Done} The TDI indication has completed successfully." -"000002C7","711","-4294966585","ERROR_EVENT_PENDING","{TDI Event Pending} The TDI indication has entered the pending state." -"000002C8","712","-4294966584","ERROR_CHECKING_FILE_SYSTEM","Checking file system on %wZ." -"000002C9","713","-4294966583","ERROR_FATAL_APP_EXIT","{Fatal Application Exit} %hs." -"000002CA","714","-4294966582","ERROR_PREDEFINED_HANDLE","The specified registry key is referenced by a predefined handle." -"000002CB","715","-4294966581","ERROR_WAS_UNLOCKED","{Page Unlocked} The page protection of a locked page was changed to 'No Access' and the page was unlocked from memory and from the process." -"000002CC","716","-4294966580","ERROR_SERVICE_NOTIFICATION","%hs" -"000002CE","718","-4294966578","ERROR_LOG_HARD_ERROR","Application popup: %1 : %2" -"000002D1","721","-4294966575","ERROR_NO_YIELD_PERFORMED","A yield execution was performed and no thread was available to run." -"000002D2","722","-4294966574","ERROR_TIMER_RESUME_IGNORED","The resumable flag to a timer API was ignored." -"000002D3","723","-4294966573","ERROR_ARBITRATION_UNHANDLED","The arbiter has deferred arbitration of these resources to its parent." -"000002D4","724","-4294966572","ERROR_CARDBUS_NOT_SUPPORTED","The inserted CardBus device cannot be started because of a configuration error on ""%hs""." -"000002D5","725","-4294966571","ERROR_MP_PROCESSOR_MISMATCH","The CPUs in this multiprocessor system are not all the same revision level. To use all processors the operating system restricts itself to the features of the least capable processor in the system. Should problems occur with this system - contact the CPU manufacturer to see if this mix of processors is supported." -"000002D6","726","-4294966570","ERROR_HIBERNATED","The system was put into hibernation." -"000002D7","727","-4294966569","ERROR_RESUME_HIBERNATION","The system was resumed from hibernation." -"000002D8","728","-4294966568","ERROR_FIRMWARE_UPDATED","Windows has detected that the system firmware" -"000002D9","729","-4294966567","ERROR_DRIVERS_LEAKING_LOCKED_PAGES","A device driver is leaking locked I/O pages causing system degradation. The system has automatically enabled tracking code in order to try and catch the culprit." -"000002DA","730","-4294966566","ERROR_WAKE_SYSTEM","The system has awoken." -"000002DB","731","-4294966565","ERROR_WAIT_1","ERROR_WAIT_1" -"000002E5","741","-4294966555","ERROR_REPARSE","A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link." -"000002E6","742","-4294966554","ERROR_OPLOCK_BREAK_IN_PROGRESS","An open/create operation completed while an oplock break is underway." -"000002E7","743","-4294966553","ERROR_VOLUME_MOUNTED","A new volume has been mounted by a file system." -"000002E8","744","-4294966552","ERROR_RXACT_COMMITTED","This success level status indicates that the transaction state already exists for the registry sub-tree - but that a transaction commit was previously aborted. The commit has now been completed." -"000002E9","745","-4294966551","ERROR_NOTIFY_CLEANUP","This indicates that a notify change request has been completed due to closing the handle which made the notify change request." -"000002EA","746","-4294966550","ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED","{Connect Failure on Primary Transport} An attempt was made to connect to the remote server %hs on the primary transport - but the connection failed. The computer WAS able to connect on a secondary transport." -"000002EB","747","-4294966549","ERROR_PAGE_FAULT_TRANSITION","Page fault was a transition fault." -"000002EC","748","-4294966548","ERROR_PAGE_FAULT_DEMAND_ZERO","Page fault was a demand zero fault." -"000002ED","749","-4294966547","ERROR_PAGE_FAULT_COPY_ON_WRITE","Page fault was a demand zero fault." -"000002EE","750","-4294966546","ERROR_PAGE_FAULT_GUARD_PAGE","Page fault was a demand zero fault." -"000002EF","751","-4294966545","ERROR_PAGE_FAULT_PAGING_FILE","Page fault was satisfied by reading from a secondary storage device." -"000002F0","752","-4294966544","ERROR_CACHE_PAGE_LOCKED","Cached page was locked during operation." -"000002F1","753","-4294966543","ERROR_CRASH_DUMP","Crash dump exists in paging file." -"000002F2","754","-4294966542","ERROR_BUFFER_ALL_ZEROS","Specified buffer contains all zeros." -"000002F3","755","-4294966541","ERROR_REPARSE_OBJECT","A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link." -"000002F4","756","-4294966540","ERROR_RESOURCE_REQUIREMENTS_CHANGED","The device has succeeded a query-stop and its resource requirements have changed." -"000002F5","757","-4294966539","ERROR_TRANSLATION_COMPLETE","The translator has translated these resources into the global space and no further translations should be performed." -"000002F6","758","-4294966538","ERROR_NOTHING_TO_TERMINATE","A process being terminated has no threads to terminate." -"000002F7","759","-4294966537","ERROR_PROCESS_NOT_IN_JOB","The specified process is not part of a job." -"000002F8","760","-4294966536","ERROR_PROCESS_IN_JOB","The specified process is part of a job." -"000002F9","761","-4294966535","ERROR_VOLSNAP_HIBERNATE_READY","{Volume Shadow Copy Service} The system is now ready for hibernation." -"000002FA","762","-4294966534","ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY","A file system or file system filter driver has successfully completed an FsFilter operation." -"000002FB","763","-4294966533","ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED","The specified interrupt vector was already connected." -"000002FC","764","-4294966532","ERROR_INTERRUPT_STILL_CONNECTED","The specified interrupt vector is still connected." -"000002FD","765","-4294966531","ERROR_WAIT_FOR_OPLOCK","An operation is blocked waiting for an oplock." -"000002FE","766","-4294966530","ERROR_DBG_EXCEPTION_HANDLED","Debugger handled exception." -"000002FF","767","-4294966529","ERROR_DBG_CONTINUE","Debugger continued." -"00000300","768","-4294966528","ERROR_CALLBACK_POP_STACK","An exception occurred in a user mode callback and the kernel callback frame should be removed." -"00000301","769","-4294966527","ERROR_COMPRESSION_DISABLED","Compression is disabled for this volume." -"00000302","770","-4294966526","ERROR_CANTFETCHBACKWARDS","The data provider cannot fetch backwards through a result set." -"00000303","771","-4294966525","ERROR_CANTSCROLLBACKWARDS","The data provider cannot scroll backwards through a result set." -"00000304","772","-4294966524","ERROR_ROWSNOTRELEASED","The data provider requires that previously fetched data is released before asking for more data." -"00000305","773","-4294966523","ERROR_BAD_ACCESSOR_FLAGS","The data provider was not able to interpret the flags set for a column binding in an accessor." -"00000306","774","-4294966522","ERROR_ERRORS_ENCOUNTERED","One or more errors occurred while processing the request." -"00000307","775","-4294966521","ERROR_NOT_CAPABLE","The implementation is not capable of performing the request." -"00000308","776","-4294966520","ERROR_REQUEST_OUT_OF_SEQUENCE","The client of a component requested an operation which is not valid given the state of the component instance." -"00000309","777","-4294966519","ERROR_VERSION_PARSE_ERROR","A version number could not be parsed." -"0000030A","778","-4294966518","ERROR_BADSTARTPOSITION","The iterator's start position is invalid." -"0000030B","779","-4294966517","ERROR_MEMORY_HARDWARE","The hardware has reported an uncorrectable memory error." -"0000030C","780","-4294966516","ERROR_DISK_REPAIR_DISABLED","The attempted operation required self healing to be enabled." -"0000030D","781","-4294966515","ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE","The Desktop heap encountered an error while allocating session memory. There is more information in the system event log." -"0000030E","782","-4294966514","ERROR_SYSTEM_POWERSTATE_TRANSITION","The system power state is transitioning from %2 to %3." -"0000030F","783","-4294966513","ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION","The system power state is transitioning from %2 to %3 but could enter %4." -"00000310","784","-4294966512","ERROR_MCA_EXCEPTION","A thread is getting dispatched with MCA EXCEPTION because of MCA." -"00000311","785","-4294966511","ERROR_ACCESS_AUDIT_BY_POLICY","Access to %1 is monitored by policy rule %2." -"00000312","786","-4294966510","ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY","Access to %1 has been restricted by your Administrator by policy rule %2." -"00000313","787","-4294966509","ERROR_ABANDON_HIBERFILE","A valid hibernation file has been invalidated and should be abandoned." -"00000314","788","-4294966508","ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED","{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error may be caused by network connectivity issues. Please try to save this file elsewhere." -"00000315","789","-4294966507","ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR","{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error was returned by the server on which the file exists. Please try to save this file elsewhere." -"00000316","790","-4294966506","ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR","{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error may be caused if the device has been removed or the media is write-protected." -"00000317","791","-4294966505","ERROR_BAD_MCFG_TABLE","The resources required for this device conflict with the MCFG table." -"00000318","792","-4294966504","ERROR_DISK_REPAIR_REDIRECTED","The volume repair could not be performed while it is online. Please schedule to take the volume offline so that it can be repaired." -"00000319","793","-4294966503","ERROR_DISK_REPAIR_UNSUCCESSFUL","The volume repair was not successful." -"0000031A","794","-4294966502","ERROR_CORRUPT_LOG_OVERFULL","One of the volume corruption logs is full. Further corruptions that may be detected won't be logged." -"0000031B","795","-4294966501","ERROR_CORRUPT_LOG_CORRUPTED","One of the volume corruption logs is internally corrupted and needs to be recreated. The volume may contain undetected corruptions and must be scanned." -"0000031C","796","-4294966500","ERROR_CORRUPT_LOG_UNAVAILABLE","One of the volume corruption logs is unavailable for being operated on." -"0000031D","797","-4294966499","ERROR_CORRUPT_LOG_DELETED_FULL","One of the volume corruption logs was deleted while still having corruption records in them. The volume contains detected corruptions and must be scanned." -"0000031E","798","-4294966498","ERROR_CORRUPT_LOG_CLEARED","One of the volume corruption logs was cleared by chkdsk and no longer contains real corruptions." -"0000031F","799","-4294966497","ERROR_ORPHAN_NAME_EXHAUSTED","Orphaned files exist on the volume but could not be recovered because no more new names could be created in the recovery directory. Files must be moved from the recovery directory." -"00000320","800","-4294966496","ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE","The oplock that was associated with this handle is now associated with a different handle." -"00000321","801","-4294966495","ERROR_CANNOT_GRANT_REQUESTED_OPLOCK","An oplock of the requested level cannot be granted. An oplock of a lower level may be available." -"00000322","802","-4294966494","ERROR_CANNOT_BREAK_OPLOCK","The operation did not complete successfully because it would cause an oplock to be broken. The caller has requested that existing oplocks not be broken." -"00000323","803","-4294966493","ERROR_OPLOCK_HANDLE_CLOSED","The handle with which this oplock was associated has been closed. The oplock is now broken." -"00000324","804","-4294966492","ERROR_NO_ACE_CONDITION","The specified access control entry" -"00000325","805","-4294966491","ERROR_INVALID_ACE_CONDITION","The specified access control entry" -"00000326","806","-4294966490","ERROR_FILE_HANDLE_REVOKED","Access to the specified file handle has been revoked." -"00000327","807","-4294966489","ERROR_IMAGE_AT_DIFFERENT_BASE","An image file was mapped at a different address from the one specified in the image file but fixups will still be automatically performed on the image." -"000003E2","994","-4294966302","ERROR_EA_ACCESS_DENIED","Access to the extended attribute was denied." -"000003E3","995","-4294966301","ERROR_OPERATION_ABORTED","The I/O operation has been aborted because of either a thread exit or an application request." -"000003E4","996","-4294966300","ERROR_IO_INCOMPLETE","Overlapped I/O event is not in a signaled state." -"000003E5","997","-4294966299","ERROR_IO_PENDING","Overlapped I/O operation is in progress." -"000003E6","998","-4294966298","ERROR_NOACCESS","Invalid access to memory location." -"000003E7","999","-4294966297","ERROR_SWAPERROR","Error performing inpage operation." -"000003E9","1001","-4294966295","ERROR_STACK_OVERFLOW","Recursion too deep; the stack overflowed." -"000003EA","1002","-4294966294","ERROR_INVALID_MESSAGE","The window cannot act on the sent message." -"000003EB","1003","-4294966293","ERROR_CAN_NOT_COMPLETE","Cannot complete this function." -"000003EC","1004","-4294966292","ERROR_INVALID_FLAGS","Invalid flags." -"000003ED","1005","-4294966291","ERROR_UNRECOGNIZED_VOLUME","The volume does not contain a recognized file system. Please make sure that all required file system drivers are loaded and that the volume is not corrupted." -"000003EE","1006","-4294966290","ERROR_FILE_INVALID","The volume for a file has been externally altered so that the opened file is no longer valid." -"000003EF","1007","-4294966289","ERROR_FULLSCREEN_MODE","The requested operation cannot be performed in full-screen mode." -"000003F0","1008","-4294966288","ERROR_NO_TOKEN","An attempt was made to reference a token that does not exist." -"000003F1","1009","-4294966287","ERROR_BADDB","The configuration registry database is corrupt." -"000003F2","1010","-4294966286","ERROR_BADKEY","The configuration registry key is invalid." -"000003F3","1011","-4294966285","ERROR_CANTOPEN","The configuration registry key could not be opened." -"000003F4","1012","-4294966284","ERROR_CANTREAD","The configuration registry key could not be read." -"000003F5","1013","-4294966283","ERROR_CANTWRITE","The configuration registry key could not be written." -"000003F6","1014","-4294966282","ERROR_REGISTRY_RECOVERED","One of the files in the registry database had to be recovered by use of a log or alternate copy. The recovery was successful." -"000003F7","1015","-4294966281","ERROR_REGISTRY_CORRUPT","The registry is corrupted. The structure of one of the files containing registry data is corrupted - or the system's memory image of the file is corrupted - or the file could not be recovered because the alternate copy or log was absent or corrupted." -"000003F8","1016","-4294966280","ERROR_REGISTRY_IO_FAILED","An I/O operation initiated by the registry failed unrecoverably. The registry could not read in - or write out - or flush - one of the files that contain the system's image of the registry." -"000003F9","1017","-4294966279","ERROR_NOT_REGISTRY_FILE","The system has attempted to load or restore a file into the registry - but the specified file is not in a registry file format." -"000003FA","1018","-4294966278","ERROR_KEY_DELETED","Illegal operation attempted on a registry key that has been marked for deletion." -"000003FB","1019","-4294966277","ERROR_NO_LOG_SPACE","System could not allocate the required space in a registry log." -"000003FC","1020","-4294966276","ERROR_KEY_HAS_CHILDREN","Cannot create a symbolic link in a registry key that already has subkeys or values." -"000003FD","1021","-4294966275","ERROR_CHILD_MUST_BE_VOLATILE","Cannot create a stable subkey under a volatile parent key." -"000003FE","1022","-4294966274","ERROR_NOTIFY_ENUM_DIR","A notify change request is being completed and the information is not being returned in the caller's buffer. The caller now needs to enumerate the files to find the changes." -"0000041B","1051","-4294966245","ERROR_DEPENDENT_SERVICES_RUNNING","A stop control has been sent to a service that other running services are dependent on." -"0000041C","1052","-4294966244","ERROR_INVALID_SERVICE_CONTROL","The requested control is not valid for this service." -"0000041D","1053","-4294966243","ERROR_SERVICE_REQUEST_TIMEOUT","The service did not respond to the start or control request in a timely fashion." -"0000041E","1054","-4294966242","ERROR_SERVICE_NO_THREAD","A thread could not be created for the service." -"0000041F","1055","-4294966241","ERROR_SERVICE_DATABASE_LOCKED","The service database is locked." -"00000420","1056","-4294966240","ERROR_SERVICE_ALREADY_RUNNING","An instance of the service is already running." -"00000421","1057","-4294966239","ERROR_INVALID_SERVICE_ACCOUNT","The account name is invalid or does not exist - or the password is invalid for the account name specified." -"00000422","1058","-4294966238","ERROR_SERVICE_DISABLED","The service cannot be started - either because it is disabled or because it has no enabled devices associated with it." -"00000423","1059","-4294966237","ERROR_CIRCULAR_DEPENDENCY","Circular service dependency was specified." -"00000424","1060","-4294966236","ERROR_SERVICE_DOES_NOT_EXIST","The specified service does not exist as an installed service." -"00000425","1061","-4294966235","ERROR_SERVICE_CANNOT_ACCEPT_CTRL","The service cannot accept control messages at this time." -"00000426","1062","-4294966234","ERROR_SERVICE_NOT_ACTIVE","The service has not been started." -"00000427","1063","-4294966233","ERROR_FAILED_SERVICE_CONTROLLER_CONNECT","The service process could not connect to the service controller." -"00000428","1064","-4294966232","ERROR_EXCEPTION_IN_SERVICE","An exception occurred in the service when handling the control request." -"00000429","1065","-4294966231","ERROR_DATABASE_DOES_NOT_EXIST","The database specified does not exist." -"0000042A","1066","-4294966230","ERROR_SERVICE_SPECIFIC_ERROR","The service has returned a service-specific error code." -"0000042B","1067","-4294966229","ERROR_PROCESS_ABORTED","The process terminated unexpectedly." -"0000042C","1068","-4294966228","ERROR_SERVICE_DEPENDENCY_FAIL","The dependency service or group failed to start." -"0000042D","1069","-4294966227","ERROR_SERVICE_LOGON_FAILED","The service did not start due to a logon failure." -"0000042E","1070","-4294966226","ERROR_SERVICE_START_HANG","After starting - the service hung in a start-pending state." -"0000042F","1071","-4294966225","ERROR_INVALID_SERVICE_LOCK","The specified service database lock is invalid." -"00000430","1072","-4294966224","ERROR_SERVICE_MARKED_FOR_DELETE","The specified service has been marked for deletion." -"00000431","1073","-4294966223","ERROR_SERVICE_EXISTS","The specified service already exists." -"00000432","1074","-4294966222","ERROR_ALREADY_RUNNING_LKG","The system is currently running with the last-known-good configuration." -"00000433","1075","-4294966221","ERROR_SERVICE_DEPENDENCY_DELETED","The dependency service does not exist or has been marked for deletion." -"00000434","1076","-4294966220","ERROR_BOOT_ALREADY_ACCEPTED","The current boot has already been accepted for use as the last-known-good control set." -"00000435","1077","-4294966219","ERROR_SERVICE_NEVER_STARTED","No attempts to start the service have been made since the last boot." -"00000436","1078","-4294966218","ERROR_DUPLICATE_SERVICE_NAME","The name is already in use as either a service name or a service display name." -"00000437","1079","-4294966217","ERROR_DIFFERENT_SERVICE_ACCOUNT","The account specified for this service is different from the account specified for other services running in the same process." -"00000438","1080","-4294966216","ERROR_CANNOT_DETECT_DRIVER_FAILURE","Failure actions can only be set for Win32 services - not for drivers." -"00000439","1081","-4294966215","ERROR_CANNOT_DETECT_PROCESS_ABORT","This service runs in the same process as the service control manager. Therefore - the service control manager cannot take action if this service's process terminates unexpectedly." -"0000043A","1082","-4294966214","ERROR_NO_RECOVERY_PROGRAM","No recovery program has been configured for this service." -"0000043B","1083","-4294966213","ERROR_SERVICE_NOT_IN_EXE","The executable program that this service is configured to run in does not implement the service." -"0000043C","1084","-4294966212","ERROR_NOT_SAFEBOOT_SERVICE","This service cannot be started in Safe Mode." -"0000044C","1100","-4294966196","ERROR_END_OF_MEDIA","The physical end of the tape has been reached." -"0000044D","1101","-4294966195","ERROR_FILEMARK_DETECTED","A tape access reached a filemark." -"0000044E","1102","-4294966194","ERROR_BEGINNING_OF_MEDIA","The beginning of the tape or a partition was encountered." -"0000044F","1103","-4294966193","ERROR_SETMARK_DETECTED","A tape access reached the end of a set of files." -"00000450","1104","-4294966192","ERROR_NO_DATA_DETECTED","No more data is on the tape." -"00000451","1105","-4294966191","ERROR_PARTITION_FAILURE","Tape could not be partitioned." -"00000452","1106","-4294966190","ERROR_INVALID_BLOCK_LENGTH","When accessing a new tape of a multivolume partition - the current block size is incorrect." -"00000453","1107","-4294966189","ERROR_DEVICE_NOT_PARTITIONED","Tape partition information could not be found when loading a tape." -"00000454","1108","-4294966188","ERROR_UNABLE_TO_LOCK_MEDIA","Unable to lock the media eject mechanism." -"00000455","1109","-4294966187","ERROR_UNABLE_TO_UNLOAD_MEDIA","Unable to unload the media." -"00000456","1110","-4294966186","ERROR_MEDIA_CHANGED","The media in the drive may have changed." -"00000457","1111","-4294966185","ERROR_BUS_RESET","The I/O bus was reset." -"00000458","1112","-4294966184","ERROR_NO_MEDIA_IN_DRIVE","No media in drive." -"00000459","1113","-4294966183","ERROR_NO_UNICODE_TRANSLATION","No mapping for the Unicode character exists in the target multi-byte code page." -"0000045A","1114","-4294966182","ERROR_DLL_INIT_FAILED","A dynamic link library" -"0000045B","1115","-4294966181","ERROR_SHUTDOWN_IN_PROGRESS","A system shutdown is in progress." -"0000045C","1116","-4294966180","ERROR_NO_SHUTDOWN_IN_PROGRESS","Unable to abort the system shutdown because no shutdown was in progress." -"0000045D","1117","-4294966179","ERROR_IO_DEVICE","The request could not be performed because of an I/O device error." -"0000045E","1118","-4294966178","ERROR_SERIAL_NO_DEVICE","No serial device was successfully initialized. The serial driver will unload." -"0000045F","1119","-4294966177","ERROR_IRQ_BUSY","Unable to open a device that was sharing an interrupt request" -"00000460","1120","-4294966176","ERROR_MORE_WRITES","A serial I/O operation was completed by another write to the serial port. The IOCTL_SERIAL_XOFF_COUNTER reached zero." -"00000463","1123","-4294966173","ERROR_FLOPPY_WRONG_CYLINDER","Mismatch between the floppy disk sector ID field and the floppy disk controller track address." -"00000464","1124","-4294966172","ERROR_FLOPPY_UNKNOWN_ERROR","The floppy disk controller reported an error that is not recognized by the floppy disk driver." -"00000465","1125","-4294966171","ERROR_FLOPPY_BAD_REGISTERS","The floppy disk controller returned inconsistent results in its registers." -"00000466","1126","-4294966170","ERROR_DISK_RECALIBRATE_FAILED","While accessing the hard disk - a recalibrate operation failed - even after retries." -"00000467","1127","-4294966169","ERROR_DISK_OPERATION_FAILED","While accessing the hard disk - a disk operation failed even after retries." -"00000468","1128","-4294966168","ERROR_DISK_RESET_FAILED","While accessing the hard disk - a disk controller reset was needed - but even that failed." -"00000469","1129","-4294966167","ERROR_EOM_OVERFLOW","Physical end of tape encountered." -"0000046A","1130","-4294966166","ERROR_NOT_ENOUGH_SERVER_MEMORY","Not enough server storage is available to process this command." -"0000046B","1131","-4294966165","ERROR_POSSIBLE_DEADLOCK","A potential deadlock condition has been detected." -"0000046C","1132","-4294966164","ERROR_MAPPED_ALIGNMENT","The base address or the file offset specified does not have the proper alignment." -"00000474","1140","-4294966156","ERROR_SET_POWER_STATE_VETOED","An attempt to change the system power state was vetoed by another application or driver." -"00000475","1141","-4294966155","ERROR_SET_POWER_STATE_FAILED","The system BIOS failed an attempt to change the system power state." -"00000476","1142","-4294966154","ERROR_TOO_MANY_LINKS","An attempt was made to create more links on a file than the file system supports." -"0000047E","1150","-4294966146","ERROR_OLD_WIN_VERSION","The specified program requires a newer version of Windows." -"0000047F","1151","-4294966145","ERROR_APP_WRONG_OS","The specified program is not a Windows or MS-DOS program." -"00000480","1152","-4294966144","ERROR_SINGLE_INSTANCE_APP","Cannot start more than one instance of the specified program." -"00000481","1153","-4294966143","ERROR_RMODE_APP","The specified program was written for an earlier version of Windows." -"00000482","1154","-4294966142","ERROR_INVALID_DLL","One of the library files needed to run this application is damaged." -"00000483","1155","-4294966141","ERROR_NO_ASSOCIATION","No application is associated with the specified file for this operation." -"00000484","1156","-4294966140","ERROR_DDE_FAIL","An error occurred in sending the command to the application." -"00000485","1157","-4294966139","ERROR_DLL_NOT_FOUND","One of the library files needed to run this application cannot be found." -"00000486","1158","-4294966138","ERROR_NO_MORE_USER_HANDLES","The current process has used all of its system allowance of handles for Window Manager objects." -"00000487","1159","-4294966137","ERROR_MESSAGE_SYNC_ONLY","The message can be used only with synchronous operations." -"00000488","1160","-4294966136","ERROR_SOURCE_ELEMENT_EMPTY","The indicated source element has no media." -"00000489","1161","-4294966135","ERROR_DESTINATION_ELEMENT_FULL","The indicated destination element already contains media." -"0000048A","1162","-4294966134","ERROR_ILLEGAL_ELEMENT_ADDRESS","The indicated element does not exist." -"0000048B","1163","-4294966133","ERROR_MAGAZINE_NOT_PRESENT","The indicated element is part of a magazine that is not present." -"0000048C","1164","-4294966132","ERROR_DEVICE_REINITIALIZATION_NEEDED","The indicated device requires reinitialization due to hardware errors." -"0000048D","1165","-4294966131","ERROR_DEVICE_REQUIRES_CLEANING","The device has indicated that cleaning is required before further operations are attempted." -"0000048E","1166","-4294966130","ERROR_DEVICE_DOOR_OPEN","The device has indicated that its door is open." -"0000048F","1167","-4294966129","ERROR_DEVICE_NOT_CONNECTED","The device is not connected." -"00000490","1168","-4294966128","ERROR_NOT_FOUND","Element not found." -"00000491","1169","-4294966127","ERROR_NO_MATCH","There was no match for the specified key in the index." -"00000492","1170","-4294966126","ERROR_SET_NOT_FOUND","The property set specified does not exist on the object." -"00000493","1171","-4294966125","ERROR_POINT_NOT_FOUND","The point passed to GetMouseMovePoints is not in the buffer." -"00000494","1172","-4294966124","ERROR_NO_TRACKING_SERVICE","The tracking" -"00000495","1173","-4294966123","ERROR_NO_VOLUME_ID","The Volume ID could not be found." -"00000497","1175","-4294966121","ERROR_UNABLE_TO_REMOVE_REPLACED","Unable to remove the file to be replaced." -"00000498","1176","-4294966120","ERROR_UNABLE_TO_MOVE_REPLACEMENT","Unable to move the replacement file to the file to be replaced. The file to be replaced has retained its original name." -"00000499","1177","-4294966119","ERROR_UNABLE_TO_MOVE_REPLACEMENT_2","Unable to move the replacement file to the file to be replaced. The file to be replaced has been renamed using the backup name." -"0000049A","1178","-4294966118","ERROR_JOURNAL_DELETE_IN_PROGRESS","The volume change journal is being deleted." -"0000049B","1179","-4294966117","ERROR_JOURNAL_NOT_ACTIVE","The volume change journal is not active." -"0000049C","1180","-4294966116","ERROR_POTENTIAL_FILE_FOUND","A file was found - but it may not be the correct file." -"0000049D","1181","-4294966115","ERROR_JOURNAL_ENTRY_DELETED","The journal entry has been deleted from the journal." -"000004A6","1190","-4294966106","ERROR_SHUTDOWN_IS_SCHEDULED","A system shutdown has already been scheduled." -"000004A7","1191","-4294966105","ERROR_SHUTDOWN_USERS_LOGGED_ON","The system shutdown cannot be initiated because there are other users logged on to the computer." -"000004B0","1200","-4294966096","ERROR_BAD_DEVICE","The specified device name is invalid." -"000004B1","1201","-4294966095","ERROR_CONNECTION_UNAVAIL","The device is not currently connected but it is a remembered connection." -"000004B2","1202","-4294966094","ERROR_DEVICE_ALREADY_REMEMBERED","The local device name has a remembered connection to another network resource." -"000004B3","1203","-4294966093","ERROR_NO_NET_OR_BAD_PATH","The network path was either typed incorrectly - does not exist - or the network provider is not currently available. Please try retyping the path or contact your network administrator." -"000004B4","1204","-4294966092","ERROR_BAD_PROVIDER","The specified network provider name is invalid." -"000004B5","1205","-4294966091","ERROR_CANNOT_OPEN_PROFILE","Unable to open the network connection profile." -"000004B6","1206","-4294966090","ERROR_BAD_PROFILE","The network connection profile is corrupted." -"000004B7","1207","-4294966089","ERROR_NOT_CONTAINER","Cannot enumerate a noncontainer." -"000004B8","1208","-4294966088","ERROR_EXTENDED_ERROR","An extended error has occurred." -"000004B9","1209","-4294966087","ERROR_INVALID_GROUPNAME","The format of the specified group name is invalid." -"000004BA","1210","-4294966086","ERROR_INVALID_COMPUTERNAME","The format of the specified computer name is invalid." -"000004BB","1211","-4294966085","ERROR_INVALID_EVENTNAME","The format of the specified event name is invalid." -"000004BC","1212","-4294966084","ERROR_INVALID_DOMAINNAME","The format of the specified domain name is invalid." -"000004BD","1213","-4294966083","ERROR_INVALID_SERVICENAME","The format of the specified service name is invalid." -"000004BE","1214","-4294966082","ERROR_INVALID_NETNAME","The format of the specified network name is invalid." -"000004BF","1215","-4294966081","ERROR_INVALID_SHARENAME","The format of the specified share name is invalid." -"000004C0","1216","-4294966080","ERROR_INVALID_PASSWORDNAME","The format of the specified password is invalid." -"000004C1","1217","-4294966079","ERROR_INVALID_MESSAGENAME","The format of the specified message name is invalid." -"000004C2","1218","-4294966078","ERROR_INVALID_MESSAGEDEST","The format of the specified message destination is invalid." -"000004C3","1219","-4294966077","ERROR_SESSION_CREDENTIAL_CONFLICT","Multiple connections to a server or shared resource by the same user - using more than one user name - are not allowed. Disconnect all previous connections to the server or shared resource and try again." -"000004C4","1220","-4294966076","ERROR_REMOTE_SESSION_LIMIT_EXCEEDED","An attempt was made to establish a session to a network server - but there are already too many sessions established to that server." -"000004C5","1221","-4294966075","ERROR_DUP_DOMAINNAME","The workgroup or domain name is already in use by another computer on the network." -"000004C6","1222","-4294966074","ERROR_NO_NETWORK","The network is not present or not started." -"000004C7","1223","-4294966073","ERROR_CANCELLED","The operation was canceled by the user." -"000004C8","1224","-4294966072","ERROR_USER_MAPPED_FILE","The requested operation cannot be performed on a file with a user-mapped section open." -"000004C9","1225","-4294966071","ERROR_CONNECTION_REFUSED","The remote computer refused the network connection." -"000004CA","1226","-4294966070","ERROR_GRACEFUL_DISCONNECT","The network connection was gracefully closed." -"000004CB","1227","-4294966069","ERROR_ADDRESS_ALREADY_ASSOCIATED","The network transport endpoint already has an address associated with it." -"000004CC","1228","-4294966068","ERROR_ADDRESS_NOT_ASSOCIATED","An address has not yet been associated with the network endpoint." -"000004CD","1229","-4294966067","ERROR_CONNECTION_INVALID","An operation was attempted on a nonexistent network connection." -"000004CE","1230","-4294966066","ERROR_CONNECTION_ACTIVE","An invalid operation was attempted on an active network connection." -"000004CF","1231","-4294966065","ERROR_NETWORK_UNREACHABLE","The network location cannot be reached. For information about network troubleshooting - see Windows Help." -"000004D0","1232","-4294966064","ERROR_HOST_UNREACHABLE","The network location cannot be reached. For information about network troubleshooting - see Windows Help." -"000004D1","1233","-4294966063","ERROR_PROTOCOL_UNREACHABLE","The network location cannot be reached. For information about network troubleshooting - see Windows Help." -"000004D2","1234","-4294966062","ERROR_PORT_UNREACHABLE","No service is operating at the destination network endpoint on the remote system." -"000004D3","1235","-4294966061","ERROR_REQUEST_ABORTED","The request was aborted." -"000004D4","1236","-4294966060","ERROR_CONNECTION_ABORTED","The network connection was aborted by the local system." -"000004D5","1237","-4294966059","ERROR_RETRY","The operation could not be completed. A retry should be performed." -"000004D6","1238","-4294966058","ERROR_CONNECTION_COUNT_LIMIT","A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached." -"000004D7","1239","-4294966057","ERROR_LOGIN_TIME_RESTRICTION","Attempting to log in during an unauthorized time of day for this account." -"000004D8","1240","-4294966056","ERROR_LOGIN_WKSTA_RESTRICTION","The account is not authorized to log in from this station." -"000004D9","1241","-4294966055","ERROR_INCORRECT_ADDRESS","The network address could not be used for the operation requested." -"000004DA","1242","-4294966054","ERROR_ALREADY_REGISTERED","The service is already registered." -"000004DB","1243","-4294966053","ERROR_SERVICE_NOT_FOUND","The specified service does not exist." -"000004DC","1244","-4294966052","ERROR_NOT_AUTHENTICATED","The operation being requested was not performed because the user has not been authenticated." -"000004DD","1245","-4294966051","ERROR_NOT_LOGGED_ON","The operation being requested was not performed because the user has not logged on to the network. The specified service does not exist." -"000004DE","1246","-4294966050","ERROR_CONTINUE","Continue with work in progress." -"000004DF","1247","-4294966049","ERROR_ALREADY_INITIALIZED","An attempt was made to perform an initialization operation when initialization has already been completed." -"000004E0","1248","-4294966048","ERROR_NO_MORE_DEVICES","No more local devices." -"000004E1","1249","-4294966047","ERROR_NO_SUCH_SITE","The specified site does not exist." -"000004E2","1250","-4294966046","ERROR_DOMAIN_CONTROLLER_EXISTS","A domain controller with the specified name already exists." -"000004E3","1251","-4294966045","ERROR_ONLY_IF_CONNECTED","This operation is supported only when you are connected to the server." -"000004E4","1252","-4294966044","ERROR_OVERRIDE_NOCHANGES","The group policy framework should call the extension even if there are no changes." -"000004E5","1253","-4294966043","ERROR_BAD_USER_PROFILE","The specified user does not have a valid profile." -"000004E6","1254","-4294966042","ERROR_NOT_SUPPORTED_ON_SBS","This operation is not supported on a computer running Windows Server 2003 for Small Business Server." -"000004E7","1255","-4294966041","ERROR_SERVER_SHUTDOWN_IN_PROGRESS","The server machine is shutting down." -"000004E8","1256","-4294966040","ERROR_HOST_DOWN","The remote system is not available. For information about network troubleshooting - see Windows Help." -"000004E9","1257","-4294966039","ERROR_NON_ACCOUNT_SID","The security identifier provided is not from an account domain." -"000004EA","1258","-4294966038","ERROR_NON_DOMAIN_SID","The security identifier provided does not have a domain component." -"000004EB","1259","-4294966037","ERROR_APPHELP_BLOCK","AppHelp dialog canceled thus preventing the application from starting." -"000004EC","1260","-4294966036","ERROR_ACCESS_DISABLED_BY_POLICY","This program is blocked by group policy. For more information -" -"000004ED","1261","-4294966035","ERROR_REG_NAT_CONSUMPTION","A program attempt to use an invalid register value. Normally caused by an uninitialized register. This error is Itanium specific." -"000004EE","1262","-4294966034","ERROR_CSCSHARE_OFFLINE","The share is currently offline or does not exist." -"000004EF","1263","-4294966033","ERROR_PKINIT_FAILURE","The Kerberos protocol encountered an error while validating the KDC certificate during smartcard logon. There is more information in the system event log." -"000004F0","1264","-4294966032","ERROR_SMARTCARD_SUBSYSTEM_FAILURE","The Kerberos protocol encountered an error while attempting to utilize the smartcard subsystem." -"000004F1","1265","-4294966031","ERROR_DOWNGRADE_DETECTED","The system cannot contact a domain controller to service the authentication request. Please try again later." -"000004F7","1271","-4294966025","ERROR_MACHINE_LOCKED","The machine is locked and cannot be shut down without the force option." -"000004F9","1273","-4294966023","ERROR_CALLBACK_SUPPLIED_INVALID_DATA","An application-defined callback gave invalid data when called." -"000004FA","1274","-4294966022","ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED","The group policy framework should call the extension in the synchronous foreground policy refresh." -"000004FB","1275","-4294966021","ERROR_DRIVER_BLOCKED","This driver has been blocked from loading." -"000004FC","1276","-4294966020","ERROR_INVALID_IMPORT_OF_NON_DLL","A dynamic link library" -"000004FD","1277","-4294966019","ERROR_ACCESS_DISABLED_WEBBLADE","Windows cannot open this program since it has been disabled." -"000004FE","1278","-4294966018","ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER","Windows cannot open this program because the license enforcement system has been tampered with or become corrupted." -"000004FF","1279","-4294966017","ERROR_RECOVERY_FAILURE","A transaction recover failed." -"00000500","1280","-4294966016","ERROR_ALREADY_FIBER","The current thread has already been converted to a fiber." -"00000501","1281","-4294966015","ERROR_ALREADY_THREAD","The current thread has already been converted from a fiber." -"00000502","1282","-4294966014","ERROR_STACK_BUFFER_OVERRUN","The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application." -"00000503","1283","-4294966013","ERROR_PARAMETER_QUOTA_EXCEEDED","Data present in one of the parameters is more than the function can operate on." -"00000504","1284","-4294966012","ERROR_DEBUGGER_INACTIVE","An attempt to do an operation on a debug object failed because the object is in the process of being deleted." -"00000505","1285","-4294966011","ERROR_DELAY_LOAD_FAILED","An attempt to delay-load a .dll or get a function address in a delay-loaded .dll failed." -"00000506","1286","-4294966010","ERROR_VDM_DISALLOWED","%1 is a 16-bit application. You do not have permissions to execute 16-bit applications. Check your permissions with your system administrator." -"00000507","1287","-4294966009","ERROR_UNIDENTIFIED_ERROR","Insufficient information exists to identify the cause of failure." -"00000508","1288","-4294966008","ERROR_INVALID_CRUNTIME_PARAMETER","The parameter passed to a C runtime function is incorrect." -"00000509","1289","-4294966007","ERROR_BEYOND_VDL","The operation occurred beyond the valid data length of the file." -"0000050A","1290","-4294966006","ERROR_INCOMPATIBLE_SERVICE_SID_TYPE","The service start failed since one or more services in the same process have an incompatible service SID type setting. A service with restricted service SID type can only coexist in the same process with other services with a restricted SID type. If the service SID type for this service was just configured - the hosting process must be restarted in order to start this service. On Windows Server 2003 and Windows XP - an unrestricted service cannot coexist in the same process with other services. The service with the unrestricted service SID type must be moved to an owned process in order to start this service." -"0000050B","1291","-4294966005","ERROR_DRIVER_PROCESS_TERMINATED","The process hosting the driver for this device has been terminated." -"0000050C","1292","-4294966004","ERROR_IMPLEMENTATION_LIMIT","An operation attempted to exceed an implementation-defined limit." -"0000050D","1293","-4294966003","ERROR_PROCESS_IS_PROTECTED","Either the target process - or the target thread's containing process - is a protected process." -"0000050E","1294","-4294966002","ERROR_SERVICE_NOTIFY_CLIENT_LAGGING","The service notification client is lagging too far behind the current state of services in the machine." -"0000050F","1295","-4294966001","ERROR_DISK_QUOTA_EXCEEDED","The requested file operation failed because the storage quota was exceeded. To free up disk space - move files to a different location or delete unnecessary files. For more information -" -"00000510","1296","-4294966000","ERROR_CONTENT_BLOCKED","The requested file operation failed because the storage policy blocks that type of file. For more information -" -"00000511","1297","-4294965999","ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE","A privilege that the service requires to function properly does not exist in the service account configuration. You may use the Services Microsoft Management Console" -"00000512","1298","-4294965998","ERROR_APP_HANG","A thread involved in this operation appears to be unresponsive." -"00000513","1299","-4294965997","ERROR_INVALID_LABEL","Indicates a particular Security ID may not be assigned as the label of an object." -"00000514","1300","-4294965996","ERROR_NOT_ALL_ASSIGNED","Not all privileges or groups referenced are assigned to the caller." -"00000515","1301","-4294965995","ERROR_SOME_NOT_MAPPED","Some mapping between account names and security IDs was not done." -"00000516","1302","-4294965994","ERROR_NO_QUOTAS_FOR_ACCOUNT","No system quota limits are specifically set for this account." -"00000517","1303","-4294965993","ERROR_LOCAL_USER_SESSION_KEY","No encryption key is available. A well-known encryption key was returned." -"00000518","1304","-4294965992","ERROR_NULL_LM_PASSWORD","The password is too complex to be converted to a LAN Manager password. The LAN Manager password returned is a NULL string." -"00000519","1305","-4294965991","ERROR_UNKNOWN_REVISION","The revision level is unknown." -"0000051A","1306","-4294965990","ERROR_REVISION_MISMATCH","Indicates two revision levels are incompatible." -"0000051B","1307","-4294965989","ERROR_INVALID_OWNER","This security ID may not be assigned as the owner of this object." -"0000051C","1308","-4294965988","ERROR_INVALID_PRIMARY_GROUP","This security ID may not be assigned as the primary group of an object." -"0000051D","1309","-4294965987","ERROR_NO_IMPERSONATION_TOKEN","An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client." -"0000051E","1310","-4294965986","ERROR_CANT_DISABLE_MANDATORY","The group may not be disabled." -"0000051F","1311","-4294965985","ERROR_NO_LOGON_SERVERS","There are currently no logon servers available to service the logon request." -"00000520","1312","-4294965984","ERROR_NO_SUCH_LOGON_SESSION","A specified logon session does not exist. It may already have been terminated." -"00000521","1313","-4294965983","ERROR_NO_SUCH_PRIVILEGE","A specified privilege does not exist." -"00000522","1314","-4294965982","ERROR_PRIVILEGE_NOT_HELD","A required privilege is not held by the client." -"00000523","1315","-4294965981","ERROR_INVALID_ACCOUNT_NAME","The name provided is not a properly formed account name." -"00000524","1316","-4294965980","ERROR_USER_EXISTS","The specified account already exists." -"00000525","1317","-4294965979","ERROR_NO_SUCH_USER","The specified account does not exist." -"00000526","1318","-4294965978","ERROR_GROUP_EXISTS","The specified group already exists." -"00000527","1319","-4294965977","ERROR_NO_SUCH_GROUP","The specified group does not exist." -"00000528","1320","-4294965976","ERROR_MEMBER_IN_GROUP","Either the specified user account is already a member of the specified group - or the specified group cannot be deleted because it contains a member." -"00000529","1321","-4294965975","ERROR_MEMBER_NOT_IN_GROUP","The specified user account is not a member of the specified group account." -"0000052A","1322","-4294965974","ERROR_LAST_ADMIN","This operation is disallowed as it could result in an administration account being disabled - deleted or unable to log on." -"0000052B","1323","-4294965973","ERROR_WRONG_PASSWORD","Unable to update the password. The value provided as the current password is incorrect." -"0000052C","1324","-4294965972","ERROR_ILL_FORMED_PASSWORD","Unable to update the password. The value provided for the new password contains values that are not allowed in passwords." -"0000052D","1325","-4294965971","ERROR_PASSWORD_RESTRICTION","Unable to update the password. The value provided for the new password does not meet the length - complexity - or history requirements of the domain." -"0000052E","1326","-4294965970","ERROR_LOGON_FAILURE","The user name or password is incorrect." -"0000052F","1327","-4294965969","ERROR_ACCOUNT_RESTRICTION","Account restrictions are preventing this user from signing in. For example: blank passwords aren't allowed - sign-in times are limited - or a policy restriction has been enforced." -"00000530","1328","-4294965968","ERROR_INVALID_LOGON_HOURS","Your account has time restrictions that keep you from signing in right now." -"00000531","1329","-4294965967","ERROR_INVALID_WORKSTATION","This user isn't allowed to sign in to this computer." -"00000532","1330","-4294965966","ERROR_PASSWORD_EXPIRED","The password for this account has expired." -"00000533","1331","-4294965965","ERROR_ACCOUNT_DISABLED","This user can't sign in because this account is currently disabled." -"00000534","1332","-4294965964","ERROR_NONE_MAPPED","No mapping between account names and security IDs was done." -"00000535","1333","-4294965963","ERROR_TOO_MANY_LUIDS_REQUESTED","Too many local user identifiers" -"00000536","1334","-4294965962","ERROR_LUIDS_EXHAUSTED","No more local user identifiers" -"00000537","1335","-4294965961","ERROR_INVALID_SUB_AUTHORITY","The subauthority part of a security ID is invalid for this particular use." -"00000538","1336","-4294965960","ERROR_INVALID_ACL","The access control list" -"00000539","1337","-4294965959","ERROR_INVALID_SID","The security ID structure is invalid." -"0000053A","1338","-4294965958","ERROR_INVALID_SECURITY_DESCR","The security descriptor structure is invalid." -"0000053C","1340","-4294965956","ERROR_BAD_INHERITANCE_ACL","The inherited access control list" -"0000053D","1341","-4294965955","ERROR_SERVER_DISABLED","The server is currently disabled." -"0000053E","1342","-4294965954","ERROR_SERVER_NOT_DISABLED","The server is currently enabled." -"0000053F","1343","-4294965953","ERROR_INVALID_ID_AUTHORITY","The value provided was an invalid value for an identifier authority." -"00000540","1344","-4294965952","ERROR_ALLOTTED_SPACE_EXCEEDED","No more memory is available for security information updates." -"00000541","1345","-4294965951","ERROR_INVALID_GROUP_ATTRIBUTES","The specified attributes are invalid - or incompatible with the attributes for the group as a whole." -"00000542","1346","-4294965950","ERROR_BAD_IMPERSONATION_LEVEL","Either a required impersonation level was not provided - or the provided impersonation level is invalid." -"00000543","1347","-4294965949","ERROR_CANT_OPEN_ANONYMOUS","Cannot open an anonymous level security token." -"00000544","1348","-4294965948","ERROR_BAD_VALIDATION_CLASS","The validation information class requested was invalid." -"00000545","1349","-4294965947","ERROR_BAD_TOKEN_TYPE","The type of the token is inappropriate for its attempted use." -"00000546","1350","-4294965946","ERROR_NO_SECURITY_ON_OBJECT","Unable to perform a security operation on an object that has no associated security." -"00000547","1351","-4294965945","ERROR_CANT_ACCESS_DOMAIN_INFO","Configuration information could not be read from the domain controller - either because the machine is unavailable - or access has been denied." -"00000548","1352","-4294965944","ERROR_INVALID_SERVER_STATE","The security account manager" -"00000549","1353","-4294965943","ERROR_INVALID_DOMAIN_STATE","The domain was in the wrong state to perform the security operation." -"0000054A","1354","-4294965942","ERROR_INVALID_DOMAIN_ROLE","This operation is only allowed for the Primary Domain Controller of the domain." -"0000054B","1355","-4294965941","ERROR_NO_SUCH_DOMAIN","The specified domain either does not exist or could not be contacted." -"0000054C","1356","-4294965940","ERROR_DOMAIN_EXISTS","The specified domain already exists." -"0000054D","1357","-4294965939","ERROR_DOMAIN_LIMIT_EXCEEDED","An attempt was made to exceed the limit on the number of domains per server." -"0000054E","1358","-4294965938","ERROR_INTERNAL_DB_CORRUPTION","Unable to complete the requested operation because of either a catastrophic media failure or a data structure corruption on the disk." -"0000054F","1359","-4294965937","ERROR_INTERNAL_ERROR","An internal error occurred." -"00000550","1360","-4294965936","ERROR_GENERIC_NOT_MAPPED","Generic access types were contained in an access mask which should already be mapped to nongeneric types." -"00000551","1361","-4294965935","ERROR_BAD_DESCRIPTOR_FORMAT","A security descriptor is not in the right format" -"00000552","1362","-4294965934","ERROR_NOT_LOGON_PROCESS","The requested action is restricted for use by logon processes only. The calling process has not registered as a logon process." -"00000553","1363","-4294965933","ERROR_LOGON_SESSION_EXISTS","Cannot start a new logon session with an ID that is already in use." -"00000554","1364","-4294965932","ERROR_NO_SUCH_PACKAGE","A specified authentication package is unknown." -"00000555","1365","-4294965931","ERROR_BAD_LOGON_SESSION_STATE","The logon session is not in a state that is consistent with the requested operation." -"00000556","1366","-4294965930","ERROR_LOGON_SESSION_COLLISION","The logon session ID is already in use." -"00000557","1367","-4294965929","ERROR_INVALID_LOGON_TYPE","A logon request contained an invalid logon type value." -"00000558","1368","-4294965928","ERROR_CANNOT_IMPERSONATE","Unable to impersonate using a named pipe until data has been read from that pipe." -"00000559","1369","-4294965927","ERROR_RXACT_INVALID_STATE","The transaction state of a registry subtree is incompatible with the requested operation." -"0000055A","1370","-4294965926","ERROR_RXACT_COMMIT_FAILURE","An internal security database corruption has been encountered." -"0000055B","1371","-4294965925","ERROR_SPECIAL_ACCOUNT","Cannot perform this operation on built-in accounts." -"0000055C","1372","-4294965924","ERROR_SPECIAL_GROUP","Cannot perform this operation on this built-in special group." -"0000055D","1373","-4294965923","ERROR_SPECIAL_USER","Cannot perform this operation on this built-in special user." -"0000055E","1374","-4294965922","ERROR_MEMBERS_PRIMARY_GROUP","The user cannot be removed from a group because the group is currently the user's primary group." -"0000055F","1375","-4294965921","ERROR_TOKEN_ALREADY_IN_USE","The token is already in use as a primary token." -"00000560","1376","-4294965920","ERROR_NO_SUCH_ALIAS","The specified local group does not exist." -"00000561","1377","-4294965919","ERROR_MEMBER_NOT_IN_ALIAS","The specified account name is not a member of the group." -"00000562","1378","-4294965918","ERROR_MEMBER_IN_ALIAS","The specified account name is already a member of the group." -"00000563","1379","-4294965917","ERROR_ALIAS_EXISTS","The specified local group already exists." -"00000564","1380","-4294965916","ERROR_LOGON_NOT_GRANTED","Logon failure: the user has not been granted the requested logon type at this computer." -"00000565","1381","-4294965915","ERROR_TOO_MANY_SECRETS","The maximum number of secrets that may be stored in a single system has been exceeded." -"00000566","1382","-4294965914","ERROR_SECRET_TOO_LONG","The length of a secret exceeds the maximum length allowed." -"00000567","1383","-4294965913","ERROR_INTERNAL_DB_ERROR","The local security authority database contains an internal inconsistency." -"00000568","1384","-4294965912","ERROR_TOO_MANY_CONTEXT_IDS","During a logon attempt - the user's security context accumulated too many security IDs." -"00000569","1385","-4294965911","ERROR_LOGON_TYPE_NOT_GRANTED","Logon failure: the user has not been granted the requested logon type at this computer." -"0000056A","1386","-4294965910","ERROR_NT_CROSS_ENCRYPTION_REQUIRED","A cross-encrypted password is necessary to change a user password." -"0000056B","1387","-4294965909","ERROR_NO_SUCH_MEMBER","A member could not be added to or removed from the local group because the member does not exist." -"0000056C","1388","-4294965908","ERROR_INVALID_MEMBER","A new member could not be added to a local group because the member has the wrong account type." -"0000056D","1389","-4294965907","ERROR_TOO_MANY_SIDS","Too many security IDs have been specified." -"0000056E","1390","-4294965906","ERROR_LM_CROSS_ENCRYPTION_REQUIRED","A cross-encrypted password is necessary to change this user password." -"0000056F","1391","-4294965905","ERROR_NO_INHERITANCE","Indicates an ACL contains no inheritable components." -"00000570","1392","-4294965904","ERROR_FILE_CORRUPT","The file or directory is corrupted and unreadable." -"00000571","1393","-4294965903","ERROR_DISK_CORRUPT","The disk structure is corrupted and unreadable." -"00000572","1394","-4294965902","ERROR_NO_USER_SESSION_KEY","There is no user session key for the specified logon session." -"00000573","1395","-4294965901","ERROR_LICENSE_QUOTA_EXCEEDED","The service being accessed is licensed for a particular number of connections. No more connections can be made to the service at this time because there are already as many connections as the service can accept." -"00000574","1396","-4294965900","ERROR_WRONG_TARGET_NAME","The target account name is incorrect." -"00000575","1397","-4294965899","ERROR_MUTUAL_AUTH_FAILED","Mutual Authentication failed. The server's password is out of date at the domain controller." -"00000576","1398","-4294965898","ERROR_TIME_SKEW","There is a time and/or date difference between the client and server." -"00000577","1399","-4294965897","ERROR_CURRENT_DOMAIN_NOT_ALLOWED","This operation cannot be performed on the current domain." -"00000578","1400","-4294965896","ERROR_INVALID_WINDOW_HANDLE","Invalid window handle." -"00000579","1401","-4294965895","ERROR_INVALID_MENU_HANDLE","Invalid menu handle." -"0000057A","1402","-4294965894","ERROR_INVALID_CURSOR_HANDLE","Invalid cursor handle." -"0000057B","1403","-4294965893","ERROR_INVALID_ACCEL_HANDLE","Invalid accelerator table handle." -"0000057C","1404","-4294965892","ERROR_INVALID_HOOK_HANDLE","Invalid hook handle." -"0000057D","1405","-4294965891","ERROR_INVALID_DWP_HANDLE","Invalid handle to a multiple-window position structure." -"0000057E","1406","-4294965890","ERROR_TLW_WITH_WSCHILD","Cannot create a top-level child window." -"0000057F","1407","-4294965889","ERROR_CANNOT_FIND_WND_CLASS","Cannot find window class." -"00000580","1408","-4294965888","ERROR_WINDOW_OF_OTHER_THREAD","Invalid window; it belongs to other thread." -"00000581","1409","-4294965887","ERROR_HOTKEY_ALREADY_REGISTERED","Hot key is already registered." -"00000582","1410","-4294965886","ERROR_CLASS_ALREADY_EXISTS","Class already exists." -"00000583","1411","-4294965885","ERROR_CLASS_DOES_NOT_EXIST","Class does not exist." -"00000584","1412","-4294965884","ERROR_CLASS_HAS_WINDOWS","Class still has open windows." -"00000585","1413","-4294965883","ERROR_INVALID_INDEX","Invalid index." -"00000586","1414","-4294965882","ERROR_INVALID_ICON_HANDLE","Invalid icon handle." -"00000587","1415","-4294965881","ERROR_PRIVATE_DIALOG_INDEX","Using private DIALOG window words." -"00000588","1416","-4294965880","ERROR_LISTBOX_ID_NOT_FOUND","The list box identifier was not found." -"00000589","1417","-4294965879","ERROR_NO_WILDCARD_CHARACTERS","No wildcards were found." -"0000058A","1418","-4294965878","ERROR_CLIPBOARD_NOT_OPEN","Thread does not have a clipboard open." -"0000058B","1419","-4294965877","ERROR_HOTKEY_NOT_REGISTERED","Hot key is not registered." -"0000058C","1420","-4294965876","ERROR_WINDOW_NOT_DIALOG","The window is not a valid dialog window." -"0000058D","1421","-4294965875","ERROR_CONTROL_ID_NOT_FOUND","Control ID not found." -"0000058E","1422","-4294965874","ERROR_INVALID_COMBOBOX_MESSAGE","Invalid message for a combo box because it does not have an edit control." -"0000058F","1423","-4294965873","ERROR_WINDOW_NOT_COMBOBOX","The window is not a combo box." -"00000590","1424","-4294965872","ERROR_INVALID_EDIT_HEIGHT","Height must be less than 256." -"00000591","1425","-4294965871","ERROR_DC_NOT_FOUND","Invalid device context" -"00000592","1426","-4294965870","ERROR_INVALID_HOOK_FILTER","Invalid hook procedure type." -"00000593","1427","-4294965869","ERROR_INVALID_FILTER_PROC","Invalid hook procedure." -"00000594","1428","-4294965868","ERROR_HOOK_NEEDS_HMOD","Cannot set nonlocal hook without a module handle." -"00000595","1429","-4294965867","ERROR_GLOBAL_ONLY_HOOK","This hook procedure can only be set globally." -"00000596","1430","-4294965866","ERROR_JOURNAL_HOOK_SET","The journal hook procedure is already installed." -"00000597","1431","-4294965865","ERROR_HOOK_NOT_INSTALLED","The hook procedure is not installed." -"00000598","1432","-4294965864","ERROR_INVALID_LB_MESSAGE","Invalid message for single-selection list box." -"00000599","1433","-4294965863","ERROR_SETCOUNT_ON_BAD_LB","LB_SETCOUNT sent to non-lazy list box." -"0000059A","1434","-4294965862","ERROR_LB_WITHOUT_TABSTOPS","This list box does not support tab stops." -"0000059B","1435","-4294965861","ERROR_DESTROY_OBJECT_OF_OTHER_THREAD","Cannot destroy object created by another thread." -"0000059C","1436","-4294965860","ERROR_CHILD_WINDOW_MENU","Child windows cannot have menus." -"0000059D","1437","-4294965859","ERROR_NO_SYSTEM_MENU","The window does not have a system menu." -"0000059E","1438","-4294965858","ERROR_INVALID_MSGBOX_STYLE","Invalid message box style." -"0000059F","1439","-4294965857","ERROR_INVALID_SPI_VALUE","Invalid system-wide" -"000005A0","1440","-4294965856","ERROR_SCREEN_ALREADY_LOCKED","Screen already locked." -"000005A1","1441","-4294965855","ERROR_HWNDS_HAVE_DIFF_PARENT","All handles to windows in a multiple-window position structure must have the same parent." -"000005A2","1442","-4294965854","ERROR_NOT_CHILD_WINDOW","The window is not a child window." -"000005A3","1443","-4294965853","ERROR_INVALID_GW_COMMAND","Invalid GW_* command." -"000005A4","1444","-4294965852","ERROR_INVALID_THREAD_ID","Invalid thread identifier." -"000005A5","1445","-4294965851","ERROR_NON_MDICHILD_WINDOW","Cannot process a message from a window that is not a multiple document interface" -"000005A6","1446","-4294965850","ERROR_POPUP_ALREADY_ACTIVE","Popup menu already active." -"000005A7","1447","-4294965849","ERROR_NO_SCROLLBARS","The window does not have scroll bars." -"000005A8","1448","-4294965848","ERROR_INVALID_SCROLLBAR_RANGE","Scroll bar range cannot be greater than MAXLONG." -"000005A9","1449","-4294965847","ERROR_INVALID_SHOWWIN_COMMAND","Cannot show or remove the window in the way specified." -"000005AA","1450","-4294965846","ERROR_NO_SYSTEM_RESOURCES","Insufficient system resources exist to complete the requested service." -"000005AB","1451","-4294965845","ERROR_NONPAGED_SYSTEM_RESOURCES","Insufficient system resources exist to complete the requested service." -"000005AC","1452","-4294965844","ERROR_PAGED_SYSTEM_RESOURCES","Insufficient system resources exist to complete the requested service." -"000005AD","1453","-4294965843","ERROR_WORKING_SET_QUOTA","Insufficient quota to complete the requested service." -"000005AE","1454","-4294965842","ERROR_PAGEFILE_QUOTA","Insufficient quota to complete the requested service." -"000005AF","1455","-4294965841","ERROR_COMMITMENT_LIMIT","The paging file is too small for this operation to complete." -"000005B0","1456","-4294965840","ERROR_MENU_ITEM_NOT_FOUND","A menu item was not found." -"000005B1","1457","-4294965839","ERROR_INVALID_KEYBOARD_HANDLE","Invalid keyboard layout handle." -"000005B2","1458","-4294965838","ERROR_HOOK_TYPE_NOT_ALLOWED","Hook type not allowed." -"000005B3","1459","-4294965837","ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION","This operation requires an interactive window station." -"000005B4","1460","-4294965836","ERROR_TIMEOUT","This operation returned because the timeout period expired." -"000005B5","1461","-4294965835","ERROR_INVALID_MONITOR_HANDLE","Invalid monitor handle." -"000005B6","1462","-4294965834","ERROR_INCORRECT_SIZE","Incorrect size argument." -"000005B7","1463","-4294965833","ERROR_SYMLINK_CLASS_DISABLED","The symbolic link cannot be followed because its type is disabled." -"000005B8","1464","-4294965832","ERROR_SYMLINK_NOT_SUPPORTED","This application does not support the current operation on symbolic links." -"000005B9","1465","-4294965831","ERROR_XML_PARSE_ERROR","Windows was unable to parse the requested XML data." -"000005BA","1466","-4294965830","ERROR_XMLDSIG_ERROR","An error was encountered while processing an XML digital signature." -"000005BB","1467","-4294965829","ERROR_RESTART_APPLICATION","This application must be restarted." -"000005BC","1468","-4294965828","ERROR_WRONG_COMPARTMENT","The caller made the connection request in the wrong routing compartment." -"000005BD","1469","-4294965827","ERROR_AUTHIP_FAILURE","There was an AuthIP failure when attempting to connect to the remote host." -"000005BE","1470","-4294965826","ERROR_NO_NVRAM_RESOURCES","Insufficient NVRAM resources exist to complete the requested service. A reboot might be required." -"000005BF","1471","-4294965825","ERROR_NOT_GUI_PROCESS","Unable to finish the requested operation because the specified process is not a GUI process." -"000005D5","-4294965803","1493","NULL","" -"000005DC","1500","-4294965796","ERROR_EVENTLOG_FILE_CORRUPT","The event log file is corrupted." -"000005DD","1501","-4294965795","ERROR_EVENTLOG_CANT_START","No event log file could be opened - so the event logging service did not start." -"000005DE","1502","-4294965794","ERROR_LOG_FILE_FULL","The event log file is full." -"000005DF","1503","-4294965793","ERROR_EVENTLOG_FILE_CHANGED","The event log file has changed between read operations." -"0000060E","1550","-4294965746","ERROR_INVALID_TASK_NAME","The specified task name is invalid." -"0000060F","1551","-4294965745","ERROR_INVALID_TASK_INDEX","The specified task index is invalid." -"00000610","1552","-4294965744","ERROR_THREAD_ALREADY_IN_TASK","The specified thread is already joining a task." -"00000619","1561","-4294965735","Error_Invalid_HW_Profile","The specified hardware profile configuration is invalid" -"00000641","1601","-4294965695","ERROR_INSTALL_SERVICE_FAILURE","The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed." -"00000642","1602","-4294965694","ERROR_INSTALL_USEREXIT","User cancelled installation." -"00000643","1603","-4294965693","ERROR_INSTALL_FAILURE","Fatal error during installation. OR Previous MSI installer is missing (Or it might mean Install successful but system restart may be required.) Should this be add as an `InstallerSuccessCode` or similar?" -"00000644","1604","-4294965692","ERROR_INSTALL_SUSPEND","Installation suspended - incomplete." -"00000645","1605","-4294965691","ERROR_UNKNOWN_PRODUCT","This action is only valid for products that are currently installed." -"00000646","1606","-4294965690","ERROR_UNKNOWN_FEATURE","Feature ID not registered." -"00000647","1607","-4294965689","ERROR_UNKNOWN_COMPONENT","Component ID not registered." -"00000648","1608","-4294965688","ERROR_UNKNOWN_PROPERTY","Unknown property." -"00000649","1609","-4294965687","ERROR_INVALID_HANDLE_STATE","Handle is in an invalid state." -"0000064A","1610","-4294965686","ERROR_BAD_CONFIGURATION","The configuration data for this product is corrupt." -"0000064B","1611","-4294965685","ERROR_INDEX_ABSENT","Component qualifier not present." -"0000064C","1612","-4294965684","ERROR_INSTALL_SOURCE_ABSENT","The installation source for this product is not available. Verify that the source exists and that you can access it." -"0000064D","1613","-4294965683","ERROR_INSTALL_PACKAGE_VERSION","This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service." -"0000064E","1614","-4294965682","ERROR_PRODUCT_UNINSTALLED","Product is uninstalled." -"0000064F","1615","-4294965681","ERROR_BAD_QUERY_SYNTAX","SQL query syntax invalid or unsupported." -"00000650","1616","-4294965680","ERROR_INVALID_FIELD","Record field does not exist." -"00000651","1617","-4294965679","ERROR_DEVICE_REMOVED","The device has been removed." -"00000652","1618","-4294965678","ERROR_INSTALL_ALREADY_RUNNING","Another installation is already in progress. Complete that installation before proceeding with this install." -"00000653","1619","-4294965677","ERROR_INSTALL_PACKAGE_OPEN_FAILED","This installation package could not be opened. Verify that the package exists and that you can access it - or contact the application vendor to verify that this is a valid Windows Installer package." -"00000654","1620","-4294965676","ERROR_INSTALL_PACKAGE_INVALID","This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package." -"00000655","1621","-4294965675","ERROR_INSTALL_UI_FAILURE","There was an error starting the Windows Installer service user interface." -"00000656","1622","-4294965674","ERROR_INSTALL_LOG_FAILURE","Error opening installation log file. Verify that the specified log file location exists and that you can write to it." -"00000657","1623","-4294965673","ERROR_INSTALL_LANGUAGE_UNSUPPORTED","The language of this installation package is not supported by your system." -"00000658","1624","-4294965672","ERROR_INSTALL_TRANSFORM_FAILURE","Error applying transforms. Verify that the specified transform paths are valid." -"00000659","1625","-4294965671","ERROR_INSTALL_PACKAGE_REJECTED","This installation is forbidden by system policy." -"0000065A","1626","-4294965670","ERROR_FUNCTION_NOT_CALLED","Function could not be executed." -"0000065B","1627","-4294965669","ERROR_FUNCTION_FAILED","Function failed during execution." -"0000065C","1628","-4294965668","ERROR_INVALID_TABLE","Invalid or unknown table specified. (Double-check the installer switches?) " -"0000065D","1629","-4294965667","ERROR_DATATYPE_MISMATCH","Data supplied is of wrong type." -"0000065E","1630","-4294965666","ERROR_UNSUPPORTED_TYPE","Data of this type is not supported." -"0000065F","1631","-4294965665","ERROR_CREATE_FAILED","The Windows Installer service failed to start." -"00000660","1632","-4294965664","ERROR_INSTALL_TEMP_UNWRITABLE","The Temp folder is on a drive that is full or is inaccessible. Free up space on the drive or verify that you have write permission on the Temp folder." -"00000661","1633","-4294965663","ERROR_INSTALL_PLATFORM_UNSUPPORTED","This installation package is not supported by this processor type. (Does this manifest have `Architecture: x86`? It might need to be `x64`.)" -"00000662","1634","-4294965662","ERROR_INSTALL_NOTUSED","Component not used on this computer." -"00000663","1635","-4294965661","ERROR_PATCH_PACKAGE_OPEN_FAILED","This update package could not be opened. Verify that the update package exists and that you can access it - or contact the application vendor to verify that this is a valid Windows Installer update package." -"00000664","1636","-4294965660","ERROR_PATCH_PACKAGE_INVALID","This update package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer update package." -"00000665","1637","-4294965659","ERROR_PATCH_PACKAGE_UNSUPPORTED","This update package cannot be processed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service." -"00000666","1638","-4294965658","ERROR_PRODUCT_VERSION","Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product - use Add/Remove Programs on the Control Panel." -"00000667","1639","-4294965657","ERROR_INVALID_COMMAND_LINE","Invalid command line argument. Double-check the installer switches. " -"00000668","1640","-4294965656","ERROR_INSTALL_REMOTE_DISALLOWED","Only administrators have permission to add - remove - or configure server software during a Terminal services remote session. If you want to install or configure software on the server - contact your network administrator." -"00000669","1641","-4294965655","ERROR_SUCCESS_REBOOT_INITIATED","The requested operation completed successfully. The system will be restarted so the changes can take effect." -"0000066A","1642","-4294965654","ERROR_PATCH_TARGET_NOT_FOUND","The upgrade cannot be installed by the Windows Installer service because the program to be upgraded may be missing - or the upgrade may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade." -"0000066B","1643","-4294965653","ERROR_PATCH_PACKAGE_REJECTED","The update package is not permitted by software restriction policy." -"0000066C","1644","-4294965652","ERROR_INSTALL_TRANSFORM_REJECTED","One or more customizations are not permitted by software restriction policy." -"0000066D","1645","-4294965651","ERROR_INSTALL_REMOTE_PROHIBITED","The Windows Installer does not permit installation from a Remote Desktop Connection." -"0000066E","1646","-4294965650","ERROR_PATCH_REMOVAL_UNSUPPORTED","Uninstallation of the update package is not supported." -"0000066F","1647","-4294965649","ERROR_UNKNOWN_PATCH","The update is not applied to this product." -"00000670","1648","-4294965648","ERROR_PATCH_NO_SEQUENCE","No valid sequence could be found for the set of updates." -"00000671","1649","-4294965647","ERROR_PATCH_REMOVAL_DISALLOWED","Update removal was disallowed by policy." -"00000672","1650","-4294965646","ERROR_INVALID_PATCH_XML","The XML update data is invalid." -"00000673","1651","-4294965645","ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT","Windows Installer does not permit updating of managed advertised products. At least one feature of the product must be installed before applying the update." -"00000674","1652","-4294965644","ERROR_INSTALL_SERVICE_SAFEBOOT","The Windows Installer service is not accessible in Safe Mode. Please try again when your computer is not in Safe Mode or you can use System Restore to return your machine to a previous good state." -"00000675","1653","-4294965643","ERROR_FAIL_FAST_EXCEPTION","A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately." -"00000676","1654","-4294965642","ERROR_INSTALL_REJECTED","The app that you are trying to run is not supported on this version of Windows." -"000006A4","1700","-4294965596","RPC_S_INVALID_STRING_BINDING","The string binding is invalid." -"000006A5","1701","-4294965595","RPC_S_WRONG_KIND_OF_BINDING","The binding handle is not the correct type." -"000006A6","1702","-4294965594","RPC_S_INVALID_BINDING","The binding handle is invalid." -"000006A7","1703","-4294965593","RPC_S_PROTSEQ_NOT_SUPPORTED","The RPC protocol sequence is not supported." -"000006A8","1704","-4294965592","RPC_S_INVALID_RPC_PROTSEQ","The RPC protocol sequence is invalid." -"000006A9","1705","-4294965591","RPC_S_INVALID_STRING_UUID","The string universal unique identifier" -"000006AA","1706","-4294965590","RPC_S_INVALID_ENDPOINT_FORMAT","The endpoint format is invalid." -"000006AB","1707","-4294965589","RPC_S_INVALID_NET_ADDR","The network address is invalid." -"000006AC","1708","-4294965588","RPC_S_NO_ENDPOINT_FOUND","No endpoint was found." -"000006AD","1709","-4294965587","RPC_S_INVALID_TIMEOUT","The timeout value is invalid." -"000006AE","1710","-4294965586","RPC_S_OBJECT_NOT_FOUND","The object universal unique identifier" -"000006AF","1711","-4294965585","RPC_S_ALREADY_REGISTERED","The object universal unique identifier" -"000006B0","1712","-4294965584","RPC_S_TYPE_ALREADY_REGISTERED","The type universal unique identifier" -"000006B1","1713","-4294965583","RPC_S_ALREADY_LISTENING","The RPC server is already listening." -"000006B2","1714","-4294965582","RPC_S_NO_PROTSEQS_REGISTERED","No protocol sequences have been registered." -"000006B3","1715","-4294965581","RPC_S_NOT_LISTENING","The RPC server is not listening." -"000006B4","1716","-4294965580","RPC_S_UNKNOWN_MGR_TYPE","The manager type is unknown." -"000006B5","1717","-4294965579","RPC_S_UNKNOWN_IF","The interface is unknown." -"000006B6","1718","-4294965578","RPC_S_NO_BINDINGS","There are no bindings." -"000006B7","1719","-4294965577","RPC_S_NO_PROTSEQS","There are no protocol sequences." -"000006B8","1720","-4294965576","RPC_S_CANT_CREATE_ENDPOINT","The endpoint cannot be created." -"000006B9","1721","-4294965575","RPC_S_OUT_OF_RESOURCES","Not enough resources are available to complete this operation." -"000006BA","1722","-4294965574","RPC_S_SERVER_UNAVAILABLE","The RPC server is unavailable." -"000006BB","1723","-4294965573","RPC_S_SERVER_TOO_BUSY","The RPC server is too busy to complete this operation." -"000006BC","1724","-4294965572","RPC_S_INVALID_NETWORK_OPTIONS","The network options are invalid." -"000006BD","1725","-4294965571","RPC_S_NO_CALL_ACTIVE","There are no remote procedure calls active on this thread." -"000006BE","1726","-4294965570","RPC_S_CALL_FAILED","The remote procedure call failed." -"000006BF","1727","-4294965569","RPC_S_CALL_FAILED_DNE","The remote procedure call failed and did not execute." -"000006C0","1728","-4294965568","RPC_S_PROTOCOL_ERROR","A remote procedure call" -"000006C1","1729","-4294965567","RPC_S_PROXY_ACCESS_DENIED","Access to the HTTP proxy is denied." -"000006C2","1730","-4294965566","RPC_S_UNSUPPORTED_TRANS_SYN","The transfer syntax is not supported by the RPC server." -"000006C4","1732","-4294965564","RPC_S_UNSUPPORTED_TYPE","The universal unique identifier" -"000006C5","1733","-4294965563","RPC_S_INVALID_TAG","The tag is invalid." -"000006C6","1734","-4294965562","RPC_S_INVALID_BOUND","The array bounds are invalid." -"000006C7","1735","-4294965561","RPC_S_NO_ENTRY_NAME","The binding does not contain an entry name." -"000006C8","1736","-4294965560","RPC_S_INVALID_NAME_SYNTAX","The name syntax is invalid." -"000006C9","1737","-4294965559","RPC_S_UNSUPPORTED_NAME_SYNTAX","The name syntax is not supported." -"000006CB","1739","-4294965557","RPC_S_UUID_NO_ADDRESS","No network address is available to use to construct a universal unique identifier" -"000006CC","1740","-4294965556","RPC_S_DUPLICATE_ENDPOINT","The endpoint is a duplicate." -"000006CD","1741","-4294965555","RPC_S_UNKNOWN_AUTHN_TYPE","The authentication type is unknown." -"000006CE","1742","-4294965554","RPC_S_MAX_CALLS_TOO_SMALL","The maximum number of calls is too small." -"000006CF","1743","-4294965553","RPC_S_STRING_TOO_LONG","The string is too long." -"000006D0","1744","-4294965552","RPC_S_PROTSEQ_NOT_FOUND","The RPC protocol sequence was not found." -"000006D1","1745","-4294965551","RPC_S_PROCNUM_OUT_OF_RANGE","The procedure number is out of range." -"000006D2","1746","-4294965550","RPC_S_BINDING_HAS_NO_AUTH","The binding does not contain any authentication information." -"000006D3","1747","-4294965549","RPC_S_UNKNOWN_AUTHN_SERVICE","The authentication service is unknown." -"000006D4","1748","-4294965548","RPC_S_UNKNOWN_AUTHN_LEVEL","The authentication level is unknown." -"000006D5","1749","-4294965547","RPC_S_INVALID_AUTH_IDENTITY","The security context is invalid." -"000006D6","1750","-4294965546","RPC_S_UNKNOWN_AUTHZ_SERVICE","The authorization service is unknown." -"000006D7","1751","-4294965545","EPT_S_INVALID_ENTRY","The entry is invalid." -"000006D8","1752","-4294965544","EPT_S_CANT_PERFORM_OP","The server endpoint cannot perform the operation." -"000006D9","1753","-4294965543","EPT_S_NOT_REGISTERED","There are no more endpoints available from the endpoint mapper." -"000006DA","1754","-4294965542","RPC_S_NOTHING_TO_EXPORT","No interfaces have been exported." -"000006DB","1755","-4294965541","RPC_S_INCOMPLETE_NAME","The entry name is incomplete." -"000006DC","1756","-4294965540","RPC_S_INVALID_VERS_OPTION","The version option is invalid." -"000006DD","1757","-4294965539","RPC_S_NO_MORE_MEMBERS","There are no more members." -"000006DE","1758","-4294965538","RPC_S_NOT_ALL_OBJS_UNEXPORTED","There is nothing to unexport." -"000006DF","1759","-4294965537","RPC_S_INTERFACE_NOT_FOUND","The interface was not found." -"000006E0","1760","-4294965536","RPC_S_ENTRY_ALREADY_EXISTS","The entry already exists." -"000006E1","1761","-4294965535","RPC_S_ENTRY_NOT_FOUND","The entry is not found." -"000006E2","1762","-4294965534","RPC_S_NAME_SERVICE_UNAVAILABLE","The name service is unavailable." -"000006E3","1763","-4294965533","RPC_S_INVALID_NAF_ID","The network address family is invalid." -"000006E4","1764","-4294965532","RPC_S_CANNOT_SUPPORT","The requested operation is not supported." -"000006E5","1765","-4294965531","RPC_S_NO_CONTEXT_AVAILABLE","No security context is available to allow impersonation." -"000006E6","1766","-4294965530","RPC_S_INTERNAL_ERROR","An internal error occurred in a remote procedure call" -"000006E7","1767","-4294965529","RPC_S_ZERO_DIVIDE","The RPC server attempted an integer division by zero." -"000006E8","1768","-4294965528","RPC_S_ADDRESS_ERROR","An addressing error occurred in the RPC server." -"000006E9","1769","-4294965527","RPC_S_FP_DIV_ZERO","A floating-point operation at the RPC server caused a division by zero." -"000006EA","1770","-4294965526","RPC_S_FP_UNDERFLOW","A floating-point underflow occurred at the RPC server." -"000006EB","1771","-4294965525","RPC_S_FP_OVERFLOW","A floating-point overflow occurred at the RPC server." -"000006EC","1772","-4294965524","RPC_X_NO_MORE_ENTRIES","The list of RPC servers available for the binding of auto handles has been exhausted." -"000006ED","1773","-4294965523","RPC_X_SS_CHAR_TRANS_OPEN_FAIL","Unable to open the character translation table file." -"000006EE","1774","-4294965522","RPC_X_SS_CHAR_TRANS_SHORT_FILE","The file containing the character translation table has fewer than 512 bytes." -"000006EF","1775","-4294965521","RPC_X_SS_IN_NULL_CONTEXT","A null context handle was passed from the client to the host during a remote procedure call." -"000006F1","1777","-4294965519","RPC_X_SS_CONTEXT_DAMAGED","The context handle changed during a remote procedure call." -"000006F2","1778","-4294965518","RPC_X_SS_HANDLES_MISMATCH","The binding handles passed to a remote procedure call do not match." -"000006F3","1779","-4294965517","RPC_X_SS_CANNOT_GET_CALL_HANDLE","The stub is unable to get the remote procedure call handle." -"000006F4","1780","-4294965516","RPC_X_NULL_REF_POINTER","A null reference pointer was passed to the stub." -"000006F5","1781","-4294965515","RPC_X_ENUM_VALUE_OUT_OF_RANGE","The enumeration value is out of range." -"000006F6","1782","-4294965514","RPC_X_BYTE_COUNT_TOO_SMALL","The byte count is too small." -"000006F7","1783","-4294965513","RPC_X_BAD_STUB_DATA","The stub received bad data." -"000006F8","1784","-4294965512","ERROR_INVALID_USER_BUFFER","The supplied user buffer is not valid for the requested operation." -"000006F9","1785","-4294965511","ERROR_UNRECOGNIZED_MEDIA","The disk media is not recognized. It may not be formatted." -"000006FA","1786","-4294965510","ERROR_NO_TRUST_LSA_SECRET","The workstation does not have a trust secret." -"000006FB","1787","-4294965509","ERROR_NO_TRUST_SAM_ACCOUNT","The security database on the server does not have a computer account for this workstation trust relationship." -"000006FC","1788","-4294965508","ERROR_TRUSTED_DOMAIN_FAILURE","The trust relationship between the primary domain and the trusted domain failed." -"000006FD","1789","-4294965507","ERROR_TRUSTED_RELATIONSHIP_FAILURE","The trust relationship between this workstation and the primary domain failed." -"000006FE","1790","-4294965506","ERROR_TRUST_FAILURE","The network logon failed." -"000006FF","1791","-4294965505","RPC_S_CALL_IN_PROGRESS","A remote procedure call is already in progress for this thread." -"00000700","1792","-4294965504","ERROR_NETLOGON_NOT_STARTED","An attempt was made to logon - but the network logon service was not started." -"00000701","1793","-4294965503","ERROR_ACCOUNT_EXPIRED","The user's account has expired." -"00000702","1794","-4294965502","ERROR_REDIRECTOR_HAS_OPEN_HANDLES","The redirector is in use and cannot be unloaded." -"00000703","1795","-4294965501","ERROR_PRINTER_DRIVER_ALREADY_INSTALLED","The specified printer driver is already installed." -"00000704","1796","-4294965500","ERROR_UNKNOWN_PORT","The specified port is unknown." -"00000705","1797","-4294965499","ERROR_UNKNOWN_PRINTER_DRIVER","The printer driver is unknown." -"00000706","1798","-4294965498","ERROR_UNKNOWN_PRINTPROCESSOR","The print processor is unknown." -"00000707","1799","-4294965497","ERROR_INVALID_SEPARATOR_FILE","The specified separator file is invalid." -"00000708","1800","-4294965496","ERROR_INVALID_PRIORITY","The specified priority is invalid." -"00000709","1801","-4294965495","ERROR_INVALID_PRINTER_NAME","The printer name is invalid." -"0000070A","1802","-4294965494","ERROR_PRINTER_ALREADY_EXISTS","The printer already exists." -"0000070B","1803","-4294965493","ERROR_INVALID_PRINTER_COMMAND","The printer command is invalid." -"0000070C","1804","-4294965492","ERROR_INVALID_DATATYPE","The specified datatype is invalid." -"0000070D","1805","-4294965491","ERROR_INVALID_ENVIRONMENT","The environment specified is invalid." -"0000070E","1806","-4294965490","RPC_S_NO_MORE_BINDINGS","There are no more bindings." -"0000070F","1807","-4294965489","ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT","The account used is an interdomain trust account. Use your global user account or local user account to access this server." -"00000710","1808","-4294965488","ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT","The account used is a computer account. Use your global user account or local user account to access this server." -"00000711","1809","-4294965487","ERROR_NOLOGON_SERVER_TRUST_ACCOUNT","The account used is a server trust account. Use your global user account or local user account to access this server." -"00000712","1810","-4294965486","ERROR_DOMAIN_TRUST_INCONSISTENT","The name or security ID" -"00000713","1811","-4294965485","ERROR_SERVER_HAS_OPEN_HANDLES","The server is in use and cannot be unloaded." -"00000714","1812","-4294965484","ERROR_RESOURCE_DATA_NOT_FOUND","The specified image file did not contain a resource section." -"00000715","1813","-4294965483","ERROR_RESOURCE_TYPE_NOT_FOUND","The specified resource type cannot be found in the image file." -"00000716","1814","-4294965482","ERROR_RESOURCE_NAME_NOT_FOUND","The specified resource name cannot be found in the image file." -"00000717","1815","-4294965481","ERROR_RESOURCE_LANG_NOT_FOUND","The specified resource language ID cannot be found in the image file." -"00000718","1816","-4294965480","ERROR_NOT_ENOUGH_QUOTA","Not enough quota is available to process this command." -"00000719","1817","-4294965479","RPC_S_NO_INTERFACES","No interfaces have been registered." -"0000071A","1818","-4294965478","RPC_S_CALL_CANCELLED","The remote procedure call was cancelled." -"0000071B","1819","-4294965477","RPC_S_BINDING_INCOMPLETE","The binding handle does not contain all required information." -"0000071C","1820","-4294965476","RPC_S_COMM_FAILURE","A communications failure occurred during a remote procedure call." -"0000071D","1821","-4294965475","RPC_S_UNSUPPORTED_AUTHN_LEVEL","The requested authentication level is not supported." -"0000071E","1822","-4294965474","RPC_S_NO_PRINC_NAME","No principal name registered." -"0000071F","1823","-4294965473","RPC_S_NOT_RPC_ERROR","The error specified is not a valid Windows RPC error code." -"00000720","1824","-4294965472","RPC_S_UUID_LOCAL_ONLY","A UUID that is valid only on this computer has been allocated." -"00000721","1825","-4294965471","RPC_S_SEC_PKG_ERROR","A security package specific error occurred." -"00000722","1826","-4294965470","RPC_S_NOT_CANCELLED","Thread is not canceled." -"00000723","1827","-4294965469","RPC_X_INVALID_ES_ACTION","Invalid operation on the encoding/decoding handle." -"00000724","1828","-4294965468","RPC_X_WRONG_ES_VERSION","Incompatible version of the serializing package." -"00000725","1829","-4294965467","RPC_X_WRONG_STUB_VERSION","Incompatible version of the RPC stub." -"00000726","1830","-4294965466","RPC_X_INVALID_PIPE_OBJECT","The RPC pipe object is invalid or corrupted." -"00000727","1831","-4294965465","RPC_X_WRONG_PIPE_ORDER","An invalid operation was attempted on an RPC pipe object." -"00000728","1832","-4294965464","RPC_X_WRONG_PIPE_VERSION","Unsupported RPC pipe version." -"00000729","1833","-4294965463","RPC_S_COOKIE_AUTH_FAILED","HTTP proxy server rejected the connection because the cookie authentication failed." -"0000076A","1898","-4294965398","RPC_S_GROUP_MEMBER_NOT_FOUND","The group member was not found." -"0000076B","1899","-4294965397","EPT_S_CANT_CREATE","The endpoint mapper database entry could not be created." -"0000076C","1900","-4294965396","RPC_S_INVALID_OBJECT","The object universal unique identifier" -"0000076D","1901","-4294965395","ERROR_INVALID_TIME","The specified time is invalid." -"0000076E","1902","-4294965394","ERROR_INVALID_FORM_NAME","The specified form name is invalid." -"0000076F","1903","-4294965393","ERROR_INVALID_FORM_SIZE","The specified form size is invalid." -"00000770","1904","-4294965392","ERROR_ALREADY_WAITING","The specified printer handle is already being waited on." -"00000771","1905","-4294965391","ERROR_PRINTER_DELETED","The specified printer has been deleted." -"00000772","1906","-4294965390","ERROR_INVALID_PRINTER_STATE","The state of the printer is invalid." -"00000773","1907","-4294965389","ERROR_PASSWORD_MUST_CHANGE","The user's password must be changed before signing in." -"00000774","1908","-4294965388","ERROR_DOMAIN_CONTROLLER_NOT_FOUND","Could not find the domain controller for this domain." -"00000775","1909","-4294965387","ERROR_ACCOUNT_LOCKED_OUT","The referenced account is currently locked out and may not be logged on to." -"00000776","1910","-4294965386","OR_INVALID_OXID","The object exporter specified was not found." -"00000777","1911","-4294965385","OR_INVALID_OID","The object specified was not found." -"00000778","1912","-4294965384","OR_INVALID_SET","The object resolver set specified was not found." -"00000779","1913","-4294965383","RPC_S_SEND_INCOMPLETE","Some data remains to be sent in the request buffer." -"0000077A","1914","-4294965382","RPC_S_INVALID_ASYNC_HANDLE","Invalid asynchronous remote procedure call handle." -"0000077B","1915","-4294965381","RPC_S_INVALID_ASYNC_CALL","Invalid asynchronous RPC call handle for this operation." -"0000077C","1916","-4294965380","RPC_X_PIPE_CLOSED","The RPC pipe object has already been closed." -"0000077D","1917","-4294965379","RPC_X_PIPE_DISCIPLINE_ERROR","The RPC call completed before all pipes were processed." -"0000077E","1918","-4294965378","RPC_X_PIPE_EMPTY","No more data is available from the RPC pipe." -"0000077F","1919","-4294965377","ERROR_NO_SITENAME","No site name is available for this machine." -"00000780","1920","-4294965376","ERROR_CANT_ACCESS_FILE","The file cannot be accessed by the system." -"00000781","1921","-4294965375","ERROR_CANT_RESOLVE_FILENAME","The name of the file cannot be resolved by the system." -"00000782","1922","-4294965374","RPC_S_ENTRY_TYPE_MISMATCH","The entry is not of the expected type." -"00000783","1923","-4294965373","RPC_S_NOT_ALL_OBJS_EXPORTED","Not all object UUIDs could be exported to the specified entry." -"00000784","1924","-4294965372","RPC_S_INTERFACE_NOT_EXPORTED","Interface could not be exported to the specified entry." -"00000785","1925","-4294965371","RPC_S_PROFILE_NOT_ADDED","The specified profile entry could not be added." -"00000786","1926","-4294965370","RPC_S_PRF_ELT_NOT_ADDED","The specified profile element could not be added." -"00000787","1927","-4294965369","RPC_S_PRF_ELT_NOT_REMOVED","The specified profile element could not be removed." -"00000788","1928","-4294965368","RPC_S_GRP_ELT_NOT_ADDED","The group element could not be added." -"00000789","1929","-4294965367","RPC_S_GRP_ELT_NOT_REMOVED","The group element could not be removed." -"0000078A","1930","-4294965366","ERROR_KM_DRIVER_BLOCKED","The printer driver is not compatible with a policy enabled on your computer that blocks NT 4.0 drivers." -"0000078B","1931","-4294965365","ERROR_CONTEXT_EXPIRED","The context has expired and can no longer be used." -"0000078C","1932","-4294965364","ERROR_PER_USER_TRUST_QUOTA_EXCEEDED","The current user's delegated trust creation quota has been exceeded." -"0000078D","1933","-4294965363","ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED","The total delegated trust creation quota has been exceeded." -"0000078E","1934","-4294965362","ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED","The current user's delegated trust deletion quota has been exceeded." -"0000078F","1935","-4294965361","ERROR_AUTHENTICATION_FIREWALL_FAILED","The computer you are signing into is protected by an authentication firewall. The specified account is not allowed to authenticate to the computer." -"00000790","1936","-4294965360","ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED","Remote connections to the Print Spooler are blocked by a policy set on your machine." -"00000791","1937","-4294965359","ERROR_NTLM_BLOCKED","Authentication failed because NTLM authentication has been disabled." -"00000792","1938","-4294965358","ERROR_PASSWORD_CHANGE_REQUIRED","Logon Failure: EAS policy requires that the user change their password before this operation can be performed." -"000007D0","2000","-4294965296","ERROR_INVALID_PIXEL_FORMAT","The pixel format is invalid." -"000007D1","2001","-4294965295","ERROR_BAD_DRIVER","The specified driver is invalid." -"000007D2","2002","-4294965294","ERROR_INVALID_WINDOW_STYLE","The window style or class attribute is invalid for this operation." -"000007D3","2003","-4294965293","ERROR_METAFILE_NOT_SUPPORTED","The requested metafile operation is not supported." -"000007D4","2004","-4294965292","ERROR_TRANSFORM_NOT_SUPPORTED","The requested transformation operation is not supported." -"000007D5","2005","-4294965291","ERROR_CLIPPING_NOT_SUPPORTED","The requested clipping operation is not supported." -"000007DA","2010","-4294965286","ERROR_INVALID_CMM","The specified color management module is invalid." -"000007DB","2011","-4294965285","ERROR_INVALID_PROFILE","The specified color profile is invalid." -"000007DC","2012","-4294965284","ERROR_TAG_NOT_FOUND","The specified tag was not found." -"000007DD","2013","-4294965283","ERROR_TAG_NOT_PRESENT","A required tag is not present." -"000007DE","2014","-4294965282","ERROR_DUPLICATE_TAG","The specified tag is already present." -"000007DF","2015","-4294965281","ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE","The specified color profile is not associated with the specified device." -"000007E0","2016","-4294965280","ERROR_PROFILE_NOT_FOUND","The specified color profile was not found." -"000007E1","2017","-4294965279","ERROR_INVALID_COLORSPACE","The specified color space is invalid." -"000007E2","2018","-4294965278","ERROR_ICM_NOT_ENABLED","Image Color Management is not enabled." -"000007E3","2019","-4294965277","ERROR_DELETING_ICM_XFORM","There was an error while deleting the color transform." -"000007E4","2020","-4294965276","ERROR_INVALID_TRANSFORM","The specified color transform is invalid." -"000007E5","2021","-4294965275","ERROR_COLORSPACE_MISMATCH","The specified transform does not match the bitmap's color space." -"000007E6","2022","-4294965274","ERROR_INVALID_COLORINDEX","The specified named color index is not present in the profile." -"000007E7","2023","-4294965273","ERROR_PROFILE_DOES_NOT_MATCH_DEVICE","The specified profile is intended for a device of a different type than the specified device." -"0000083C","2108","-4294965188","ERROR_CONNECTED_OTHER_PASSWORD","The network connection was made successfully - but the user had to be prompted for a password other than the one originally specified." -"0000083D","2109","-4294965187","ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT","The network connection was made successfully using default credentials." -"0000089A","2202","-4294965094","ERROR_BAD_USERNAME","The specified username is invalid." -"000008CA","2250","-4294965046","ERROR_NOT_CONNECTED","This network connection does not exist." -"00000961","2401","-4294964895","ERROR_OPEN_FILES","This network connection has files open or requests pending." -"00000962","2402","-4294964894","ERROR_ACTIVE_CONNECTIONS","Active connections still exist." -"00000963","-4294964893","2403","NERR_BADPasswordCore","This share name or password is invalid" -"00000964","2404","-4294964892","ERROR_DEVICE_IN_USE","The device is in use by an active process and cannot be disconnected." -"00000BB8","3000","-4294964296","ERROR_UNKNOWN_PRINT_MONITOR","The specified print monitor is unknown." -"00000BB9","3001","-4294964295","ERROR_PRINTER_DRIVER_IN_USE","The specified printer driver is currently in use." -"00000BBA","3002","-4294964294","ERROR_SPOOL_FILE_NOT_FOUND","The spool file was not found." -"00000BBB","3003","-4294964293","ERROR_SPL_NO_STARTDOC","A StartDocPrinter call was not issued." -"00000BBC","3004","-4294964292","ERROR_SPL_NO_ADDJOB","An AddJob call was not issued." -"00000BBD","3005","-4294964291","ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED","The specified print processor has already been installed." -"00000BBE","3006","-4294964290","ERROR_PRINT_MONITOR_ALREADY_INSTALLED","The specified print monitor has already been installed." -"00000BBF","3007","-4294964289","ERROR_INVALID_PRINT_MONITOR","The specified print monitor does not have the required functions." -"00000BC0","3008","-4294964288","ERROR_PRINT_MONITOR_IN_USE","The specified print monitor is currently in use." -"00000BC1","3009","-4294964287","ERROR_PRINTER_HAS_JOBS_QUEUED","The requested operation is not allowed when there are jobs queued to the printer." -"00000BC2","3010","-4294964286","ERROR_SUCCESS_REBOOT_REQUIRED","The requested operation is successful. Changes will not be effective until the system is rebooted.(Should this be add as an `InstallerSuccessCode` or similar?)" -"00000BC3","3011","-4294964285","ERROR_SUCCESS_RESTART_REQUIRED","The requested operation is successful. Changes will not be effective until the service is restarted." -"00000BC4","3012","-4294964284","ERROR_PRINTER_NOT_FOUND","No printers were found." -"00000BC5","3013","-4294964283","ERROR_PRINTER_DRIVER_WARNED","The printer driver is known to be unreliable." -"00000BC6","3014","-4294964282","ERROR_PRINTER_DRIVER_BLOCKED","The printer driver is known to harm the system." -"00000BC7","3015","-4294964281","ERROR_PRINTER_DRIVER_PACKAGE_IN_USE","The specified printer driver package is currently in use." -"00000BC8","3016","-4294964280","ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND","Unable to find a core driver package that is required by the printer driver package." -"00000BC9","3017","-4294964279","ERROR_FAIL_REBOOT_REQUIRED","The requested operation failed. A system reboot is required to roll back changes made." -"00000BCA","3018","-4294964278","ERROR_FAIL_REBOOT_INITIATED","The requested operation failed. A system reboot has been initiated to roll back changes made." -"00000BCB","3019","-4294964277","ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED","The specified printer driver was not found on the system and needs to be downloaded." -"00000BCC","3020","-4294964276","ERROR_PRINT_JOB_RESTART_REQUIRED","The requested print job has failed to print. A print system update requires the job to be resubmitted." -"00000BCD","3021","-4294964275","ERROR_INVALID_PRINTER_DRIVER_MANIFEST","The printer driver does not contain a valid manifest - or contains too many manifests." -"00000BCE","3022","-4294964274","ERROR_PRINTER_NOT_SHAREABLE","The specified printer cannot be shared." -"00000BEA","3050","-4294964246","ERROR_REQUEST_PAUSED","The operation was paused." -"00000C0B","-4294964213","3083","NULL","" -"00000CC4","-4294964028","3268","NULL","" -"00000D47","-4294963897","3399","NULL","" -"00000E5C","-4294963620","3676","NULL","" -"00000E74","-4294963596","3700","NULL","" -"00000F6E","3950","-4294963346","ERROR_IO_REISSUE_AS_CACHED","Reissue the given operation as a cached IO operation." -"00000FA0","4000","-4294963296","ERROR_WINS_INTERNAL","WINS encountered an error while processing the command." -"00000FA1","4001","-4294963295","ERROR_CAN_NOT_DEL_LOCAL_WINS","The local WINS cannot be deleted." -"00000FA2","4002","-4294963294","ERROR_STATIC_INIT","The importation from the file failed." -"00000FA3","4003","-4294963293","ERROR_INC_BACKUP","The backup failed. Was a full backup done before?" -"00000FA5","4005","-4294963291","ERROR_REC_NON_EXISTENT","The name does not exist in the WINS database." -"00000FA6","4006","-4294963290","ERROR_RPL_NOT_ALLOWED","Replication with a nonconfigured partner is not allowed." -"00000FD2","4050","-4294963246","PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED","The version of the supplied content information is not supported." -"00000FD3","4051","-4294963245","PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO","The supplied content information is malformed." -"00000FD4","4052","-4294963244","PEERDIST_ERROR_MISSING_DATA","The requested data cannot be found in local or peer caches." -"00000FD5","4053","-4294963243","PEERDIST_ERROR_NO_MORE","No more data is available or required." -"00000FD6","4054","-4294963242","PEERDIST_ERROR_NOT_INITIALIZED","The supplied object has not been initialized." -"00000FD7","4055","-4294963241","PEERDIST_ERROR_ALREADY_INITIALIZED","The supplied object has already been initialized." -"00000FD8","4056","-4294963240","PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS","A shutdown operation is already in progress." -"00000FD9","4057","-4294963239","PEERDIST_ERROR_INVALIDATED","The supplied object has already been invalidated." -"00000FDA","4058","-4294963238","PEERDIST_ERROR_ALREADY_EXISTS","An element already exists and was not replaced." -"00000FDB","4059","-4294963237","PEERDIST_ERROR_OPERATION_NOTFOUND","Cannot cancel the requested operation as it has already been completed." -"00000FDC","4060","-4294963236","PEERDIST_ERROR_ALREADY_COMPLETED","Can not perform the requested operation because it has already been carried out." -"00000FDD","4061","-4294963235","PEERDIST_ERROR_OUT_OF_BOUNDS","An operation accessed data beyond the bounds of valid data." -"00000FDE","4062","-4294963234","PEERDIST_ERROR_VERSION_UNSUPPORTED","The requested version is not supported." -"00000FDF","4063","-4294963233","PEERDIST_ERROR_INVALID_CONFIGURATION","A configuration value is invalid." -"00000FE0","4064","-4294963232","PEERDIST_ERROR_NOT_LICENSED","The SKU is not licensed." -"00000FE1","4065","-4294963231","PEERDIST_ERROR_SERVICE_UNAVAILABLE","PeerDist Service is still initializing and will be available shortly." -"00000FE2","4066","-4294963230","PEERDIST_ERROR_TRUST_FAILURE","Communication with one or more computers will be temporarily blocked due to recent errors." -"00001004","4100","-4294963196","ERROR_DHCP_ADDRESS_CONFLICT","The DHCP client has obtained an IP address that is already in use on the network. The local interface will be disabled until the DHCP client can obtain a new address." -"00001068","4200","-4294963096","ERROR_WMI_GUID_NOT_FOUND","The GUID passed was not recognized as valid by a WMI data provider." -"00001069","4201","-4294963095","ERROR_WMI_INSTANCE_NOT_FOUND","The instance name passed was not recognized as valid by a WMI data provider." -"0000106A","4202","-4294963094","ERROR_WMI_ITEMID_NOT_FOUND","The data item ID passed was not recognized as valid by a WMI data provider." -"0000106B","4203","-4294963093","ERROR_WMI_TRY_AGAIN","The WMI request could not be completed and should be retried." -"0000106C","4204","-4294963092","ERROR_WMI_DP_NOT_FOUND","The WMI data provider could not be located." -"0000106D","4205","-4294963091","ERROR_WMI_UNRESOLVED_INSTANCE_REF","The WMI data provider references an instance set that has not been registered." -"0000106E","4206","-4294963090","ERROR_WMI_ALREADY_ENABLED","The WMI data block or event notification has already been enabled." -"0000106F","4207","-4294963089","ERROR_WMI_GUID_DISCONNECTED","The WMI data block is no longer available." -"00001070","4208","-4294963088","ERROR_WMI_SERVER_UNAVAILABLE","The WMI data service is not available." -"00001071","4209","-4294963087","ERROR_WMI_DP_FAILED","The WMI data provider failed to carry out the request." -"00001072","4210","-4294963086","ERROR_WMI_INVALID_MOF","The WMI MOF information is not valid." -"00001073","4211","-4294963085","ERROR_WMI_INVALID_REGINFO","The WMI registration information is not valid." -"00001074","4212","-4294963084","ERROR_WMI_ALREADY_DISABLED","The WMI data block or event notification has already been disabled." -"00001075","4213","-4294963083","ERROR_WMI_READ_ONLY","The WMI data item or data block is read only." -"00001076","4214","-4294963082","ERROR_WMI_SET_FAILURE","The WMI data item or data block could not be changed." -"0000109A","4250","-4294963046","ERROR_NOT_APPCONTAINER","This operation is only valid in the context of an app container." -"0000109B","4251","-4294963045","ERROR_APPCONTAINER_REQUIRED","This application can only run in the context of an app container." -"0000109C","4252","-4294963044","ERROR_NOT_SUPPORTED_IN_APPCONTAINER","This functionality is not supported in the context of an app container." -"0000109D","4253","-4294963043","ERROR_INVALID_PACKAGE_SID_LENGTH","The length of the SID supplied is not a valid length for app container SIDs." -"0000109F","-4294963041","4255","NULL","" -"000010CC","4300","-4294962996","ERROR_INVALID_MEDIA","The media identifier does not represent a valid medium." -"000010CD","4301","-4294962995","ERROR_INVALID_LIBRARY","The library identifier does not represent a valid library." -"000010CE","4302","-4294962994","ERROR_INVALID_MEDIA_POOL","The media pool identifier does not represent a valid media pool." -"000010CF","4303","-4294962993","ERROR_DRIVE_MEDIA_MISMATCH","The drive and medium are not compatible or exist in different libraries." -"000010D0","4304","-4294962992","ERROR_MEDIA_OFFLINE","The medium currently exists in an offline library and must be online to perform this operation." -"000010D1","4305","-4294962991","ERROR_LIBRARY_OFFLINE","The operation cannot be performed on an offline library." -"000010D2","4306","-4294962990","ERROR_EMPTY","The library - drive - or media pool is empty." -"000010D3","4307","-4294962989","ERROR_NOT_EMPTY","The library - drive - or media pool must be empty to perform this operation." -"000010D4","4308","-4294962988","ERROR_MEDIA_UNAVAILABLE","No media is currently available in this media pool or library." -"000010D5","4309","-4294962987","ERROR_RESOURCE_DISABLED","A resource required for this operation is disabled." -"000010D6","4310","-4294962986","ERROR_INVALID_CLEANER","The media identifier does not represent a valid cleaner." -"000010D7","4311","-4294962985","ERROR_UNABLE_TO_CLEAN","The drive cannot be cleaned or does not support cleaning." -"000010D8","4312","-4294962984","ERROR_OBJECT_NOT_FOUND","The object identifier does not represent a valid object." -"000010D9","4313","-4294962983","ERROR_DATABASE_FAILURE","Unable to read from or write to the database." -"000010DA","4314","-4294962982","ERROR_DATABASE_FULL","The database is full." -"000010DB","4315","-4294962981","ERROR_MEDIA_INCOMPATIBLE","The medium is not compatible with the device or media pool." -"000010DC","4316","-4294962980","ERROR_RESOURCE_NOT_PRESENT","The resource required for this operation does not exist." -"000010DD","4317","-4294962979","ERROR_INVALID_OPERATION","The operation identifier is not valid." -"000010DE","4318","-4294962978","ERROR_MEDIA_NOT_AVAILABLE","The media is not mounted or ready for use." -"000010DF","4319","-4294962977","ERROR_DEVICE_NOT_AVAILABLE","The device is not ready for use." -"000010E0","4320","-4294962976","ERROR_REQUEST_REFUSED","The operator or administrator has refused the request." -"000010E1","4321","-4294962975","ERROR_INVALID_DRIVE_OBJECT","The drive identifier does not represent a valid drive." -"000010E2","4322","-4294962974","ERROR_LIBRARY_FULL","Library is full. No slot is available for use." -"000010E3","4323","-4294962973","ERROR_MEDIUM_NOT_ACCESSIBLE","The transport cannot access the medium." -"000010E4","4324","-4294962972","ERROR_UNABLE_TO_LOAD_MEDIUM","Unable to load the medium into the drive." -"000010E5","4325","-4294962971","ERROR_UNABLE_TO_INVENTORY_DRIVE","Unable to retrieve the drive status." -"000010E6","4326","-4294962970","ERROR_UNABLE_TO_INVENTORY_SLOT","Unable to retrieve the slot status." -"000010E7","4327","-4294962969","ERROR_UNABLE_TO_INVENTORY_TRANSPORT","Unable to retrieve status about the transport." -"000010E8","4328","-4294962968","ERROR_TRANSPORT_FULL","Cannot use the transport because it is already in use." -"000010E9","4329","-4294962967","ERROR_CONTROLLING_IEPORT","Unable to open or close the inject/eject port." -"000010EA","4330","-4294962966","ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA","Unable to eject the medium because it is in a drive." -"000010EB","4331","-4294962965","ERROR_CLEANER_SLOT_SET","A cleaner slot is already reserved." -"000010EC","4332","-4294962964","ERROR_CLEANER_SLOT_NOT_SET","A cleaner slot is not reserved." -"000010ED","4333","-4294962963","ERROR_CLEANER_CARTRIDGE_SPENT","The cleaner cartridge has performed the maximum number of drive cleanings." -"000010EE","4334","-4294962962","ERROR_UNEXPECTED_OMID","Unexpected on-medium identifier." -"000010EF","4335","-4294962961","ERROR_CANT_DELETE_LAST_ITEM","The last remaining item in this group or resource cannot be deleted." -"000010F0","4336","-4294962960","ERROR_MESSAGE_EXCEEDS_MAX_SIZE","The message provided exceeds the maximum size allowed for this parameter." -"000010F1","4337","-4294962959","ERROR_VOLUME_CONTAINS_SYS_FILES","The volume contains system or paging files." -"000010F2","4338","-4294962958","ERROR_INDIGENOUS_TYPE","The media type cannot be removed from this library since at least one drive in the library reports it can support this media type." -"000010F3","4339","-4294962957","ERROR_NO_SUPPORTING_DRIVES","This offline media cannot be mounted on this system since no enabled drives are present which can be used." -"000010F4","4340","-4294962956","ERROR_CLEANER_CARTRIDGE_INSTALLED","A cleaner cartridge is present in the tape library." -"000010F5","4341","-4294962955","ERROR_IEPORT_FULL","Cannot use the inject/eject port because it is not empty." -"000010FE","4350","-4294962946","ERROR_FILE_OFFLINE","This file is currently not available for use on this computer." -"000010FF","4351","-4294962945","ERROR_REMOTE_STORAGE_NOT_ACTIVE","The remote storage service is not operational at this time." -"00001100","4352","-4294962944","ERROR_REMOTE_STORAGE_MEDIA_ERROR","The remote storage service encountered a media error." -"00001112","-4294962926","4370","Error_No_Media_In_Drive","No media in drive" -"00001126","4390","-4294962906","ERROR_NOT_A_REPARSE_POINT","The file or directory is not a reparse point." -"00001127","4391","-4294962905","ERROR_REPARSE_ATTRIBUTE_CONFLICT","The reparse point attribute cannot be set because it conflicts with an existing attribute." -"00001128","4392","-4294962904","ERROR_INVALID_REPARSE_DATA","The data present in the reparse point buffer is invalid." -"00001129","4393","-4294962903","ERROR_REPARSE_TAG_INVALID","The tag present in the reparse point buffer is invalid." -"0000112A","4394","-4294962902","ERROR_REPARSE_TAG_MISMATCH","There is a mismatch between the tag specified in the request and the tag present in the reparse point." -"00001130","4400","-4294962896","ERROR_APP_DATA_NOT_FOUND","Fast Cache data not found." -"00001131","4401","-4294962895","ERROR_APP_DATA_EXPIRED","Fast Cache data expired." -"00001132","4402","-4294962894","ERROR_APP_DATA_CORRUPT","Fast Cache data corrupt." -"00001133","4403","-4294962893","ERROR_APP_DATA_LIMIT_EXCEEDED","Fast Cache data has exceeded its max size and cannot be updated." -"00001134","4404","-4294962892","ERROR_APP_DATA_REBOOT_REQUIRED","Fast Cache has been ReArmed and requires a reboot until it can be updated." -"00001144","4420","-4294962876","ERROR_SECUREBOOT_ROLLBACK_DETECTED","Secure Boot detected that rollback of protected data has been attempted." -"00001145","4421","-4294962875","ERROR_SECUREBOOT_POLICY_VIOLATION","The value is protected by Secure Boot policy and cannot be modified or deleted." -"00001146","4422","-4294962874","ERROR_SECUREBOOT_INVALID_POLICY","The Secure Boot policy is invalid." -"00001147","4423","-4294962873","ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND","A new Secure Boot policy did not contain the current publisher on its update list." -"00001148","4424","-4294962872","ERROR_SECUREBOOT_POLICY_NOT_SIGNED","The Secure Boot policy is either not signed or is signed by a non-trusted signer." -"00001149","4425","-4294962871","ERROR_SECUREBOOT_NOT_ENABLED","Secure Boot is not enabled on this machine." -"0000114A","4426","-4294962870","ERROR_SECUREBOOT_FILE_REPLACED","Secure Boot requires that certain files and drivers are not replaced by other files or drivers." -"00001158","4440","-4294962856","ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED","The copy offload read operation is not supported by a filter." -"00001159","4441","-4294962855","ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED","The copy offload write operation is not supported by a filter." -"0000115A","4442","-4294962854","ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED","The copy offload read operation is not supported for the file." -"0000115B","4443","-4294962853","ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED","The copy offload write operation is not supported for the file." -"0000117A","-4294962822","4474","NULL","" -"00001190","-4294962800","4496","Error_Shutdown_IS_Scheduled","A system shutdown has already been scheduled" -"00001194","4500","-4294962796","ERROR_VOLUME_NOT_SIS_ENABLED","Single Instance Storage is not available on this volume." -"00001234","-4294962636","4660","Error_Port_Unreachable","No Service is operating at the destination network endpoint on the remote system" -"00001389","5001","-4294962295","ERROR_DEPENDENT_RESOURCE_EXISTS","The operation cannot be completed because other resources are dependent on this resource." -"0000138A","5002","-4294962294","ERROR_DEPENDENCY_NOT_FOUND","The cluster resource dependency cannot be found." -"0000138B","5003","-4294962293","ERROR_DEPENDENCY_ALREADY_EXISTS","The cluster resource cannot be made dependent on the specified resource because it is already dependent." -"0000138C","5004","-4294962292","ERROR_RESOURCE_NOT_ONLINE","The cluster resource is not online." -"0000138D","5005","-4294962291","ERROR_HOST_NODE_NOT_AVAILABLE","A cluster node is not available for this operation." -"0000138E","5006","-4294962290","ERROR_RESOURCE_NOT_AVAILABLE","The cluster resource is not available." -"0000138F","5007","-4294962289","ERROR_RESOURCE_NOT_FOUND","The cluster resource could not be found." -"00001390","5008","-4294962288","ERROR_SHUTDOWN_CLUSTER","The cluster is being shut down." -"00001391","5009","-4294962287","ERROR_CANT_EVICT_ACTIVE_NODE","A cluster node cannot be evicted from the cluster unless the node is down or it is the last node." -"00001392","5010","-4294962286","ERROR_OBJECT_ALREADY_EXISTS","The object already exists." -"00001393","5011","-4294962285","ERROR_OBJECT_IN_LIST","The object is already in the list." -"00001394","5012","-4294962284","ERROR_GROUP_NOT_AVAILABLE","The cluster group is not available for any new requests." -"00001395","5013","-4294962283","ERROR_GROUP_NOT_FOUND","The cluster group could not be found." -"00001396","5014","-4294962282","ERROR_GROUP_NOT_ONLINE","The operation could not be completed because the cluster group is not online." -"00001397","5015","-4294962281","ERROR_HOST_NODE_NOT_RESOURCE_OWNER","The operation failed because either the specified cluster node is not the owner of the resource - or the node is not a possible owner of the resource." -"00001398","5016","-4294962280","ERROR_HOST_NODE_NOT_GROUP_OWNER","The operation failed because either the specified cluster node is not the owner of the group - or the node is not a possible owner of the group." -"00001399","5017","-4294962279","ERROR_RESMON_CREATE_FAILED","The cluster resource could not be created in the specified resource monitor." -"0000139A","5018","-4294962278","ERROR_RESMON_ONLINE_FAILED","The cluster resource could not be brought online by the resource monitor." -"0000139B","5019","-4294962277","ERROR_RESOURCE_ONLINE","The operation could not be completed because the cluster resource is online." -"0000139C","5020","-4294962276","ERROR_QUORUM_RESOURCE","The cluster resource could not be deleted or brought offline because it is the quorum resource." -"0000139D","5021","-4294962275","ERROR_NOT_QUORUM_CAPABLE","The cluster could not make the specified resource a quorum resource because it is not capable of being a quorum resource." -"0000139E","5022","-4294962274","ERROR_CLUSTER_SHUTTING_DOWN","The cluster software is shutting down." -"0000139F","5023","-4294962273","ERROR_INVALID_STATE","The group or resource is not in the correct state to perform the requested operation." -"000013A0","5024","-4294962272","ERROR_RESOURCE_PROPERTIES_STORED","The properties were stored but not all changes will take effect until the next time the resource is brought online." -"000013A1","5025","-4294962271","ERROR_NOT_QUORUM_CLASS","The cluster could not make the specified resource a quorum resource because it does not belong to a shared storage class." -"000013A2","5026","-4294962270","ERROR_CORE_RESOURCE","The cluster resource could not be deleted since it is a core resource." -"000013A3","5027","-4294962269","ERROR_QUORUM_RESOURCE_ONLINE_FAILED","The quorum resource failed to come online." -"000013A4","5028","-4294962268","ERROR_QUORUMLOG_OPEN_FAILED","The quorum log could not be created or mounted successfully." -"000013A5","5029","-4294962267","ERROR_CLUSTERLOG_CORRUPT","The cluster log is corrupt." -"000013A6","5030","-4294962266","ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE","The record could not be written to the cluster log since it exceeds the maximum size." -"000013A7","5031","-4294962265","ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE","The cluster log exceeds its maximum size." -"000013A8","5032","-4294962264","ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND","No checkpoint record was found in the cluster log." -"000013A9","5033","-4294962263","ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE","The minimum required disk space needed for logging is not available." -"000013AA","5034","-4294962262","ERROR_QUORUM_OWNER_ALIVE","The cluster node failed to take control of the quorum resource because the resource is owned by another active node." -"000013AB","5035","-4294962261","ERROR_NETWORK_NOT_AVAILABLE","A cluster network is not available for this operation." -"000013AC","5036","-4294962260","ERROR_NODE_NOT_AVAILABLE","A cluster node is not available for this operation." -"000013AD","5037","-4294962259","ERROR_ALL_NODES_NOT_AVAILABLE","All cluster nodes must be running to perform this operation." -"000013AE","5038","-4294962258","ERROR_RESOURCE_FAILED","A cluster resource failed." -"000013AF","5039","-4294962257","ERROR_CLUSTER_INVALID_NODE","The cluster node is not valid." -"000013B0","5040","-4294962256","ERROR_CLUSTER_NODE_EXISTS","The cluster node already exists." -"000013B1","5041","-4294962255","ERROR_CLUSTER_JOIN_IN_PROGRESS","A node is in the process of joining the cluster." -"000013B2","5042","-4294962254","ERROR_CLUSTER_NODE_NOT_FOUND","The cluster node was not found." -"000013B3","5043","-4294962253","ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND","The cluster local node information was not found." -"000013B4","5044","-4294962252","ERROR_CLUSTER_NETWORK_EXISTS","The cluster network already exists." -"000013B5","5045","-4294962251","ERROR_CLUSTER_NETWORK_NOT_FOUND","The cluster network was not found." -"000013B6","5046","-4294962250","ERROR_CLUSTER_NETINTERFACE_EXISTS","The cluster network interface already exists." -"000013B7","5047","-4294962249","ERROR_CLUSTER_NETINTERFACE_NOT_FOUND","The cluster network interface was not found." -"000013B8","5048","-4294962248","ERROR_CLUSTER_INVALID_REQUEST","The cluster request is not valid for this object." -"000013B9","5049","-4294962247","ERROR_CLUSTER_INVALID_NETWORK_PROVIDER","The cluster network provider is not valid." -"000013BA","5050","-4294962246","ERROR_CLUSTER_NODE_DOWN","The cluster node is down." -"000013BB","5051","-4294962245","ERROR_CLUSTER_NODE_UNREACHABLE","The cluster node is not reachable." -"000013BC","5052","-4294962244","ERROR_CLUSTER_NODE_NOT_MEMBER","The cluster node is not a member of the cluster." -"000013BD","5053","-4294962243","ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS","A cluster join operation is not in progress." -"000013BE","5054","-4294962242","ERROR_CLUSTER_INVALID_NETWORK","The cluster network is not valid." -"000013C0","5056","-4294962240","ERROR_CLUSTER_NODE_UP","The cluster node is up." -"000013C1","5057","-4294962239","ERROR_CLUSTER_IPADDR_IN_USE","The cluster IP address is already in use." -"000013C2","5058","-4294962238","ERROR_CLUSTER_NODE_NOT_PAUSED","The cluster node is not paused." -"000013C3","5059","-4294962237","ERROR_CLUSTER_NO_SECURITY_CONTEXT","No cluster security context is available." -"000013C4","5060","-4294962236","ERROR_CLUSTER_NETWORK_NOT_INTERNAL","The cluster network is not configured for internal cluster communication." -"000013C5","5061","-4294962235","ERROR_CLUSTER_NODE_ALREADY_UP","The cluster node is already up." -"000013C6","5062","-4294962234","ERROR_CLUSTER_NODE_ALREADY_DOWN","The cluster node is already down." -"000013C7","5063","-4294962233","ERROR_CLUSTER_NETWORK_ALREADY_ONLINE","The cluster network is already online." -"000013C8","5064","-4294962232","ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE","The cluster network is already offline." -"000013C9","5065","-4294962231","ERROR_CLUSTER_NODE_ALREADY_MEMBER","The cluster node is already a member of the cluster." -"000013CA","5066","-4294962230","ERROR_CLUSTER_LAST_INTERNAL_NETWORK","The cluster network is the only one configured for internal cluster communication between two or more active cluster nodes. The internal communication capability cannot be removed from the network." -"000013CB","5067","-4294962229","ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS","One or more cluster resources depend on the network to provide service to clients. The client access capability cannot be removed from the network." -"000013CC","5068","-4294962228","ERROR_INVALID_OPERATION_ON_QUORUM","This operation cannot be performed on the cluster resource as it the quorum resource. You may not bring the quorum resource offline or modify its possible owners list." -"000013CD","5069","-4294962227","ERROR_DEPENDENCY_NOT_ALLOWED","The cluster quorum resource is not allowed to have any dependencies." -"000013CE","5070","-4294962226","ERROR_CLUSTER_NODE_PAUSED","The cluster node is paused." -"000013CF","5071","-4294962225","ERROR_NODE_CANT_HOST_RESOURCE","The cluster resource cannot be brought online. The owner node cannot run this resource." -"000013D0","5072","-4294962224","ERROR_CLUSTER_NODE_NOT_READY","The cluster node is not ready to perform the requested operation." -"000013D1","5073","-4294962223","ERROR_CLUSTER_NODE_SHUTTING_DOWN","The cluster node is shutting down." -"000013D2","5074","-4294962222","ERROR_CLUSTER_JOIN_ABORTED","The cluster join operation was aborted." -"000013D3","5075","-4294962221","ERROR_CLUSTER_INCOMPATIBLE_VERSIONS","The cluster join operation failed due to incompatible software versions between the joining node and its sponsor." -"000013D4","5076","-4294962220","ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED","This resource cannot be created because the cluster has reached the limit on the number of resources it can monitor." -"000013D5","5077","-4294962219","ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED","The system configuration changed during the cluster join or form operation. The join or form operation was aborted." -"000013D6","5078","-4294962218","ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND","The specified resource type was not found." -"000013D7","5079","-4294962217","ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED","The specified node does not support a resource of this type. This may be due to version inconsistencies or due to the absence of the resource DLL on this node." -"000013D8","5080","-4294962216","ERROR_CLUSTER_RESNAME_NOT_FOUND","The specified resource name is not supported by this resource DLL. This may be due to a bad" -"000013D9","5081","-4294962215","ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED","No authentication package could be registered with the RPC server." -"000013DA","5082","-4294962214","ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST","You cannot bring the group online because the owner of the group is not in the preferred list for the group. To change the owner node for the group - move the group." -"000013DB","5083","-4294962213","ERROR_CLUSTER_DATABASE_SEQMISMATCH","The join operation failed because the cluster database sequence number has changed or is incompatible with the locker node. This may happen during a join operation if the cluster database was changing during the join." -"000013DC","5084","-4294962212","ERROR_RESMON_INVALID_STATE","The resource monitor will not allow the fail operation to be performed while the resource is in its current state. This may happen if the resource is in a pending state." -"000013DD","5085","-4294962211","ERROR_CLUSTER_GUM_NOT_LOCKER","A non locker code got a request to reserve the lock for making global updates." -"000013DE","5086","-4294962210","ERROR_QUORUM_DISK_NOT_FOUND","The quorum disk could not be located by the cluster service." -"000013DF","5087","-4294962209","ERROR_DATABASE_BACKUP_CORRUPT","The backed up cluster database is possibly corrupt." -"000013E0","5088","-4294962208","ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT","A DFS root already exists in this cluster node." -"000013E1","5089","-4294962207","ERROR_RESOURCE_PROPERTY_UNCHANGEABLE","An attempt to modify a resource property failed because it conflicts with another existing property." -"00001449","-4294962103","5193","Error_Invalid_Showwin_Command","Cannot show or remove the window in the way specified" -"00001633","-4294961613","5683","NULL","" -"00001702","5890","-4294961406","ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE","An operation was attempted that is incompatible with the current membership state of the node." -"00001703","5891","-4294961405","ERROR_CLUSTER_QUORUMLOG_NOT_FOUND","The quorum resource does not contain the quorum log." -"00001704","5892","-4294961404","ERROR_CLUSTER_MEMBERSHIP_HALT","The membership engine requested shutdown of the cluster service on this node." -"00001705","5893","-4294961403","ERROR_CLUSTER_INSTANCE_ID_MISMATCH","The join operation failed because the cluster instance ID of the joining node does not match the cluster instance ID of the sponsor node." -"00001706","5894","-4294961402","ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP","A matching cluster network for the specified IP address could not be found." -"00001707","5895","-4294961401","ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH","The actual data type of the property did not match the expected data type of the property." -"00001708","5896","-4294961400","ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP","The cluster node was evicted from the cluster successfully - but the node was not cleaned up. To determine what cleanup steps failed and how to recover - see the Failover Clustering application event log using Event Viewer." -"00001709","5897","-4294961399","ERROR_CLUSTER_PARAMETER_MISMATCH","Two or more parameter values specified for a resource's properties are in conflict." -"0000170A","5898","-4294961398","ERROR_NODE_CANNOT_BE_CLUSTERED","This computer cannot be made a member of a cluster." -"0000170B","5899","-4294961397","ERROR_CLUSTER_WRONG_OS_VERSION","This computer cannot be made a member of a cluster because it does not have the correct version of Windows installed." -"0000170C","5900","-4294961396","ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME","A cluster cannot be created with the specified cluster name because that cluster name is already in use. Specify a different name for the cluster." -"0000170D","5901","-4294961395","ERROR_CLUSCFG_ALREADY_COMMITTED","The cluster configuration action has already been committed." -"0000170E","5902","-4294961394","ERROR_CLUSCFG_ROLLBACK_FAILED","The cluster configuration action could not be rolled back." -"0000170F","5903","-4294961393","ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT","The drive letter assigned to a system disk on one node conflicted with the drive letter assigned to a disk on another node." -"00001710","5904","-4294961392","ERROR_CLUSTER_OLD_VERSION","One or more nodes in the cluster are running a version of Windows that does not support this operation." -"00001711","5905","-4294961391","ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME","The name of the corresponding computer account doesn't match the Network Name for this resource." -"00001712","5906","-4294961390","ERROR_CLUSTER_NO_NET_ADAPTERS","No network adapters are available." -"00001713","5907","-4294961389","ERROR_CLUSTER_POISONED","The cluster node has been poisoned." -"00001714","5908","-4294961388","ERROR_CLUSTER_GROUP_MOVING","The group is unable to accept the request since it is moving to another node." -"00001715","5909","-4294961387","ERROR_CLUSTER_RESOURCE_TYPE_BUSY","The resource type cannot accept the request since is too busy performing another operation." -"00001716","5910","-4294961386","ERROR_RESOURCE_CALL_TIMED_OUT","The call to the cluster resource DLL timed out." -"00001717","5911","-4294961385","ERROR_INVALID_CLUSTER_IPV6_ADDRESS","The address is not valid for an IPv6 Address resource. A global IPv6 address is required - and it must match a cluster network. Compatibility addresses are not permitted." -"00001718","5912","-4294961384","ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION","An internal cluster error occurred. A call to an invalid function was attempted." -"00001719","5913","-4294961383","ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS","A parameter value is out of acceptable range." -"0000171A","5914","-4294961382","ERROR_CLUSTER_PARTIAL_SEND","A network error occurred while sending data to another node in the cluster. The number of bytes transmitted was less than required." -"0000171B","5915","-4294961381","ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION","An invalid cluster registry operation was attempted." -"0000171C","5916","-4294961380","ERROR_CLUSTER_INVALID_STRING_TERMINATION","An input string of characters is not properly terminated." -"0000171D","5917","-4294961379","ERROR_CLUSTER_INVALID_STRING_FORMAT","An input string of characters is not in a valid format for the data it represents." -"0000171E","5918","-4294961378","ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS","An internal cluster error occurred. A cluster database transaction was attempted while a transaction was already in progress." -"0000171F","5919","-4294961377","ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS","An internal cluster error occurred. There was an attempt to commit a cluster database transaction while no transaction was in progress." -"00001720","5920","-4294961376","ERROR_CLUSTER_NULL_DATA","An internal cluster error occurred. Data was not properly initialized." -"00001721","5921","-4294961375","ERROR_CLUSTER_PARTIAL_READ","An error occurred while reading from a stream of data. An unexpected number of bytes was returned." -"00001722","5922","-4294961374","ERROR_CLUSTER_PARTIAL_WRITE","An error occurred while writing to a stream of data. The required number of bytes could not be written." -"00001723","5923","-4294961373","ERROR_CLUSTER_CANT_DESERIALIZE_DATA","An error occurred while deserializing a stream of cluster data." -"00001724","5924","-4294961372","ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT","One or more property values for this resource are in conflict with one or more property values associated with its dependent resource(s)." -"00001725","5925","-4294961371","ERROR_CLUSTER_NO_QUORUM","A quorum of cluster nodes was not present to form a cluster." -"00001726","5926","-4294961370","ERROR_CLUSTER_INVALID_IPV6_NETWORK","The cluster network is not valid for an IPv6 Address resource - or it does not match the configured address." -"00001727","5927","-4294961369","ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK","The cluster network is not valid for an IPv6 Tunnel resource. Check the configuration of the IP Address resource on which the IPv6 Tunnel resource depends." -"00001728","5928","-4294961368","ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP","Quorum resource cannot reside in the Available Storage group." -"00001729","5929","-4294961367","ERROR_DEPENDENCY_TREE_TOO_COMPLEX","The dependencies for this resource are nested too deeply." -"0000172A","5930","-4294961366","ERROR_EXCEPTION_IN_RESOURCE_CALL","The call into the resource DLL raised an unhandled exception." -"0000172B","5931","-4294961365","ERROR_CLUSTER_RHS_FAILED_INITIALIZATION","The RHS process failed to initialize." -"0000172C","5932","-4294961364","ERROR_CLUSTER_NOT_INSTALLED","The Failover Clustering feature is not installed on this node." -"0000172D","5933","-4294961363","ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE","The resources must be online on the same node for this operation." -"0000172E","5934","-4294961362","ERROR_CLUSTER_MAX_NODES_IN_CLUSTER","A new node can not be added since this cluster is already at its maximum number of nodes." -"0000172F","5935","-4294961361","ERROR_CLUSTER_TOO_MANY_NODES","This cluster can not be created since the specified number of nodes exceeds the maximum allowed limit." -"00001730","5936","-4294961360","ERROR_CLUSTER_OBJECT_ALREADY_USED","An attempt to use the specified cluster name failed because an enabled computer object with the given name already exists in the domain." -"00001731","5937","-4294961359","ERROR_NONCORE_GROUPS_FOUND","This cluster cannot be destroyed. It has non-core application groups which must be deleted before the cluster can be destroyed." -"00001732","5938","-4294961358","ERROR_FILE_SHARE_RESOURCE_CONFLICT","File share associated with file share witness resource cannot be hosted by this cluster or any of its nodes." -"00001733","5939","-4294961357","ERROR_CLUSTER_EVICT_INVALID_REQUEST","Eviction of this node is invalid at this time. Due to quorum requirements node eviction will result in cluster shutdown. If it is the last node in the cluster - destroy cluster command should be used." -"00001734","5940","-4294961356","ERROR_CLUSTER_SINGLETON_RESOURCE","Only one instance of this resource type is allowed in the cluster." -"00001735","5941","-4294961355","ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE","Only one instance of this resource type is allowed per resource group." -"00001736","5942","-4294961354","ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED","The resource failed to come online due to the failure of one or more provider resources." -"00001737","5943","-4294961353","ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR","The resource has indicated that it cannot come online on any node." -"00001738","5944","-4294961352","ERROR_CLUSTER_GROUP_BUSY","The current operation cannot be performed on this group at this time." -"00001739","5945","-4294961351","ERROR_CLUSTER_NOT_SHARED_VOLUME","The directory or file is not located on a cluster shared volume." -"0000173A","5946","-4294961350","ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR","The Security Descriptor does not meet the requirements for a cluster." -"0000173B","5947","-4294961349","ERROR_CLUSTER_SHARED_VOLUMES_IN_USE","There is one or more shared volumes resources configured in the cluster. Those resources must be moved to available storage in order for operation to succeed." -"0000173C","5948","-4294961348","ERROR_CLUSTER_USE_SHARED_VOLUMES_API","This group or resource cannot be directly manipulated. Use shared volume APIs to perform desired operation." -"0000173D","5949","-4294961347","ERROR_CLUSTER_BACKUP_IN_PROGRESS","Back up is in progress. Please wait for backup completion before trying this operation again." -"0000173E","5950","-4294961346","ERROR_NON_CSV_PATH","The path does not belong to a cluster shared volume." -"0000173F","5951","-4294961345","ERROR_CSV_VOLUME_NOT_LOCAL","The cluster shared volume is not locally mounted on this node." -"00001740","5952","-4294961344","ERROR_CLUSTER_WATCHDOG_TERMINATING","The cluster watchdog is terminating." -"00001741","5953","-4294961343","ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES","A resource vetoed a move between two nodes because they are incompatible." -"00001742","5954","-4294961342","ERROR_CLUSTER_INVALID_NODE_WEIGHT","The request is invalid either because node weight cannot be changed while the cluster is in disk-only quorum mode - or because changing the node weight would violate the minimum cluster quorum requirements." -"00001743","5955","-4294961341","ERROR_CLUSTER_RESOURCE_VETOED_CALL","The resource vetoed the call." -"00001744","5956","-4294961340","ERROR_RESMON_SYSTEM_RESOURCES_LACKING","Resource could not start or run because it could not reserve sufficient system resources." -"00001745","5957","-4294961339","ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION","A resource vetoed a move between two nodes because the destination currently does not have enough resources to complete the operation." -"00001746","5958","-4294961338","ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE","A resource vetoed a move between two nodes because the source currently does not have enough resources to complete the operation." -"00001747","5959","-4294961337","ERROR_CLUSTER_GROUP_QUEUED","The requested operation can not be completed because the group is queued for an operation." -"00001748","5960","-4294961336","ERROR_CLUSTER_RESOURCE_LOCKED_STATUS","The requested operation can not be completed because a resource has locked status." -"00001749","5961","-4294961335","ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED","The resource cannot move to another node because a cluster shared volume vetoed the operation." -"0000174A","5962","-4294961334","ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS","A node drain is already in progress." -"0000174C","5964","-4294961332","ERROR_DISK_NOT_CSV_CAPABLE","The disk is not configured in a way to be used with CSV. CSV disks must have at least one partition that is formatted with NTFS." -"0000174D","5965","-4294961331","ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE","The resource must be part of the Available Storage group to complete this action." -"0000174E","5966","-4294961330","ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED","CSVFS failed operation as volume is in redirected mode." -"0000174F","5967","-4294961329","ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED","CSVFS failed operation as volume is not in redirected mode." -"00001750","5968","-4294961328","ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES","Cluster properties cannot be returned at this time." -"00001751","5969","-4294961327","ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES","The clustered disk resource contains software snapshot diff area that are not supported for Cluster Shared Volumes." -"00001752","5970","-4294961326","ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE","The operation cannot be completed because the resource is in maintenance mode." -"00001753","5971","-4294961325","ERROR_CLUSTER_AFFINITY_CONFLICT","The operation cannot be completed because of cluster affinity conflicts." -"00001754","5972","-4294961324","ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE","The operation cannot be completed because the resource is a replica virtual machine." -"00001770","6000","-4294961296","ERROR_ENCRYPTION_FAILED","The specified file could not be encrypted." -"00001771","6001","-4294961295","ERROR_DECRYPTION_FAILED","The specified file could not be decrypted." -"00001772","6002","-4294961294","ERROR_FILE_ENCRYPTED","The specified file is encrypted and the user does not have the ability to decrypt it." -"00001773","6003","-4294961293","ERROR_NO_RECOVERY_POLICY","There is no valid encryption recovery policy configured for this system." -"00001774","6004","-4294961292","ERROR_NO_EFS","The required encryption driver is not loaded for this system." -"00001775","6005","-4294961291","ERROR_WRONG_EFS","The file was encrypted with a different encryption driver than is currently loaded." -"00001776","6006","-4294961290","ERROR_NO_USER_KEYS","There are no EFS keys defined for the user." -"00001777","6007","-4294961289","ERROR_FILE_NOT_ENCRYPTED","The specified file is not encrypted." -"00001778","6008","-4294961288","ERROR_NOT_EXPORT_FORMAT","The specified file is not in the defined EFS export format." -"00001779","6009","-4294961287","ERROR_FILE_READ_ONLY","The specified file is read only." -"0000177A","6010","-4294961286","ERROR_DIR_EFS_DISALLOWED","The directory has been disabled for encryption." -"0000177B","6011","-4294961285","ERROR_EFS_SERVER_NOT_TRUSTED","The server is not trusted for remote encryption operation." -"0000177C","6012","-4294961284","ERROR_BAD_RECOVERY_POLICY","Recovery policy configured for this system contains invalid recovery certificate." -"0000177D","6013","-4294961283","ERROR_EFS_ALG_BLOB_TOO_BIG","The encryption algorithm used on the source file needs a bigger key buffer than the one on the destination file." -"0000177E","6014","-4294961282","ERROR_VOLUME_NOT_SUPPORT_EFS","The disk partition does not support file encryption." -"0000177F","6015","-4294961281","ERROR_EFS_DISABLED","This machine is disabled for file encryption." -"00001780","6016","-4294961280","ERROR_EFS_VERSION_NOT_SUPPORT","A newer system is required to decrypt this encrypted file." -"00001781","6017","-4294961279","ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE","The remote server sent an invalid response for a file being opened with Client Side Encryption." -"00001782","6018","-4294961278","ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER","Client Side Encryption is not supported by the remote server even though it claims to support it." -"00001783","6019","-4294961277","ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE","File is encrypted and should be opened in Client Side Encryption mode." -"00001784","6020","-4294961276","ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE","A new encrypted file is being created and a $EFS needs to be provided." -"00001785","6021","-4294961275","ERROR_CS_ENCRYPTION_FILE_NOT_CSE","The SMB client requested a CSE FSCTL on a non-CSE file." -"00001786","6022","-4294961274","ERROR_ENCRYPTION_POLICY_DENIES_OPERATION","The requested operation was blocked by policy. For more information -" -"000017C7","-4294961209","6087","NULL","" -"000017D2","-4294961198","6098","NULL","" -"000017E6","6118","-4294961178","ERROR_NO_BROWSER_SERVERS_FOUND","The list of servers for this workgroup is not currently available." -"00001838","6200","-4294961096","SCHED_E_SERVICE_NOT_LOCALSYSTEM","The Task Scheduler service must be configured to run in the System account to function properly. Individual tasks may be configured to run in other accounts." -"000018BE","-4294960962","6334","NULL","" -"000019C8","6600","-4294960696","ERROR_LOG_SECTOR_INVALID","Log service encountered an invalid log sector." -"000019C9","6601","-4294960695","ERROR_LOG_SECTOR_PARITY_INVALID","Log service encountered a log sector with invalid block parity." -"000019CA","6602","-4294960694","ERROR_LOG_SECTOR_REMAPPED","Log service encountered a remapped log sector." -"000019CB","6603","-4294960693","ERROR_LOG_BLOCK_INCOMPLETE","Log service encountered a partial or incomplete log block." -"000019CC","6604","-4294960692","ERROR_LOG_INVALID_RANGE","Log service encountered an attempt access data outside the active log range." -"000019CD","6605","-4294960691","ERROR_LOG_BLOCKS_EXHAUSTED","Log service user marshalling buffers are exhausted." -"000019CE","6606","-4294960690","ERROR_LOG_READ_CONTEXT_INVALID","Log service encountered an attempt read from a marshalling area with an invalid read context." -"000019CF","6607","-4294960689","ERROR_LOG_RESTART_INVALID","Log service encountered an invalid log restart area." -"000019D0","6608","-4294960688","ERROR_LOG_BLOCK_VERSION","Log service encountered an invalid log block version." -"000019D1","6609","-4294960687","ERROR_LOG_BLOCK_INVALID","Log service encountered an invalid log block." -"000019D2","6610","-4294960686","ERROR_LOG_READ_MODE_INVALID","Log service encountered an attempt to read the log with an invalid read mode." -"000019D3","6611","-4294960685","ERROR_LOG_NO_RESTART","Log service encountered a log stream with no restart area." -"000019D4","6612","-4294960684","ERROR_LOG_METADATA_CORRUPT","Log service encountered a corrupted metadata file." -"000019D5","6613","-4294960683","ERROR_LOG_METADATA_INVALID","Log service encountered a metadata file that could not be created by the log file system." -"000019D6","6614","-4294960682","ERROR_LOG_METADATA_INCONSISTENT","Log service encountered a metadata file with inconsistent data." -"000019D7","6615","-4294960681","ERROR_LOG_RESERVATION_INVALID","Log service encountered an attempt to erroneous allocate or dispose reservation space." -"000019D8","6616","-4294960680","ERROR_LOG_CANT_DELETE","Log service cannot delete log file or file system container." -"000019D9","6617","-4294960679","ERROR_LOG_CONTAINER_LIMIT_EXCEEDED","Log service has reached the maximum allowable containers allocated to a log file." -"000019DA","6618","-4294960678","ERROR_LOG_START_OF_LOG","Log service has attempted to read or write backward past the start of the log." -"000019DB","6619","-4294960677","ERROR_LOG_POLICY_ALREADY_INSTALLED","Log policy could not be installed because a policy of the same type is already present." -"000019DC","6620","-4294960676","ERROR_LOG_POLICY_NOT_INSTALLED","Log policy in question was not installed at the time of the request." -"000019DD","6621","-4294960675","ERROR_LOG_POLICY_INVALID","The installed set of policies on the log is invalid." -"000019DE","6622","-4294960674","ERROR_LOG_POLICY_CONFLICT","A policy on the log in question prevented the operation from completing." -"000019DF","6623","-4294960673","ERROR_LOG_PINNED_ARCHIVE_TAIL","Log space cannot be reclaimed because the log is pinned by the archive tail." -"000019E0","6624","-4294960672","ERROR_LOG_RECORD_NONEXISTENT","Log record is not a record in the log file." -"000019E1","6625","-4294960671","ERROR_LOG_RECORDS_RESERVED_INVALID","Number of reserved log records or the adjustment of the number of reserved log records is invalid." -"000019E2","6626","-4294960670","ERROR_LOG_SPACE_RESERVED_INVALID","Reserved log space or the adjustment of the log space is invalid." -"000019E3","6627","-4294960669","ERROR_LOG_TAIL_INVALID","An new or existing archive tail or base of the active log is invalid." -"000019E4","6628","-4294960668","ERROR_LOG_FULL","Log space is exhausted." -"000019E5","6629","-4294960667","ERROR_COULD_NOT_RESIZE_LOG","The log could not be set to the requested size." -"000019E6","6630","-4294960666","ERROR_LOG_MULTIPLEXED","Log is multiplexed - no direct writes to the physical log is allowed." -"000019E7","6631","-4294960665","ERROR_LOG_DEDICATED","The operation failed because the log is a dedicated log." -"000019E8","6632","-4294960664","ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS","The operation requires an archive context." -"000019E9","6633","-4294960663","ERROR_LOG_ARCHIVE_IN_PROGRESS","Log archival is in progress." -"000019EA","6634","-4294960662","ERROR_LOG_EPHEMERAL","The operation requires a non-ephemeral log - but the log is ephemeral." -"000019EB","6635","-4294960661","ERROR_LOG_NOT_ENOUGH_CONTAINERS","The log must have at least two containers before it can be read from or written to." -"000019EC","6636","-4294960660","ERROR_LOG_CLIENT_ALREADY_REGISTERED","A log client has already registered on the stream." -"000019ED","6637","-4294960659","ERROR_LOG_CLIENT_NOT_REGISTERED","A log client has not been registered on the stream." -"000019EE","6638","-4294960658","ERROR_LOG_FULL_HANDLER_IN_PROGRESS","A request has already been made to handle the log full condition." -"000019EF","6639","-4294960657","ERROR_LOG_CONTAINER_READ_FAILED","Log service encountered an error when attempting to read from a log container." -"000019F0","6640","-4294960656","ERROR_LOG_CONTAINER_WRITE_FAILED","Log service encountered an error when attempting to write to a log container." -"000019F1","6641","-4294960655","ERROR_LOG_CONTAINER_OPEN_FAILED","Log service encountered an error when attempting open a log container." -"000019F2","6642","-4294960654","ERROR_LOG_CONTAINER_STATE_INVALID","Log service encountered an invalid container state when attempting a requested action." -"000019F3","6643","-4294960653","ERROR_LOG_STATE_INVALID","Log service is not in the correct state to perform a requested action." -"000019F4","6644","-4294960652","ERROR_LOG_PINNED","Log space cannot be reclaimed because the log is pinned." -"000019F5","6645","-4294960651","ERROR_LOG_METADATA_FLUSH_FAILED","Log metadata flush failed." -"000019F6","6646","-4294960650","ERROR_LOG_INCONSISTENT_SECURITY","Security on the log and its containers is inconsistent." -"000019F7","6647","-4294960649","ERROR_LOG_APPENDED_FLUSH_FAILED","Records were appended to the log or reservation changes were made - but the log could not be flushed." -"000019F8","6648","-4294960648","ERROR_LOG_PINNED_RESERVATION","The log is pinned due to reservation consuming most of the log space. Free some reserved records to make space available." -"00001A2C","6700","-4294960596","ERROR_INVALID_TRANSACTION","The transaction handle associated with this operation is not valid." -"00001A2D","6701","-4294960595","ERROR_TRANSACTION_NOT_ACTIVE","The requested operation was made in the context of a transaction that is no longer active." -"00001A2E","6702","-4294960594","ERROR_TRANSACTION_REQUEST_NOT_VALID","The requested operation is not valid on the Transaction object in its current state." -"00001A2F","6703","-4294960593","ERROR_TRANSACTION_NOT_REQUESTED","The caller has called a response API - but the response is not expected because the TM did not issue the corresponding request to the caller." -"00001A30","6704","-4294960592","ERROR_TRANSACTION_ALREADY_ABORTED","It is too late to perform the requested operation - since the Transaction has already been aborted." -"00001A31","6705","-4294960591","ERROR_TRANSACTION_ALREADY_COMMITTED","It is too late to perform the requested operation - since the Transaction has already been committed." -"00001A32","6706","-4294960590","ERROR_TM_INITIALIZATION_FAILED","The Transaction Manager was unable to be successfully initialized. Transacted operations are not supported." -"00001A33","6707","-4294960589","ERROR_RESOURCEMANAGER_READ_ONLY","The specified ResourceManager made no changes or updates to the resource under this transaction." -"00001A34","6708","-4294960588","ERROR_TRANSACTION_NOT_JOINED","The resource manager has attempted to prepare a transaction that it has not successfully joined." -"00001A35","6709","-4294960587","ERROR_TRANSACTION_SUPERIOR_EXISTS","The Transaction object already has a superior enlistment - and the caller attempted an operation that would have created a new superior. Only a single superior enlistment is allow." -"00001A36","6710","-4294960586","ERROR_CRM_PROTOCOL_ALREADY_EXISTS","The RM tried to register a protocol that already exists." -"00001A37","6711","-4294960585","ERROR_TRANSACTION_PROPAGATION_FAILED","The attempt to propagate the Transaction failed." -"00001A38","6712","-4294960584","ERROR_CRM_PROTOCOL_NOT_FOUND","The requested propagation protocol was not registered as a CRM." -"00001A39","6713","-4294960583","ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER","The buffer passed in to PushTransaction or PullTransaction is not in a valid format." -"00001A3A","6714","-4294960582","ERROR_CURRENT_TRANSACTION_NOT_VALID","The current transaction context associated with the thread is not a valid handle to a transaction object." -"00001A3B","6715","-4294960581","ERROR_TRANSACTION_NOT_FOUND","The specified Transaction object could not be opened - because it was not found." -"00001A3C","6716","-4294960580","ERROR_RESOURCEMANAGER_NOT_FOUND","The specified ResourceManager object could not be opened - because it was not found." -"00001A3D","6717","-4294960579","ERROR_ENLISTMENT_NOT_FOUND","The specified Enlistment object could not be opened - because it was not found." -"00001A3E","6718","-4294960578","ERROR_TRANSACTIONMANAGER_NOT_FOUND","The specified TransactionManager object could not be opened - because it was not found." -"00001A3F","6719","-4294960577","ERROR_TRANSACTIONMANAGER_NOT_ONLINE","The object specified could not be created or opened - because its associated TransactionManager is not online. The TransactionManager must be brought fully Online by calling RecoverTransactionManager to recover to the end of its LogFile before objects in its Transaction or ResourceManager namespaces can be opened. In addition - errors in writing records to its LogFile can cause a TransactionManager to go offline." -"00001A40","6720","-4294960576","ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION","The specified TransactionManager was unable to create the objects contained in its logfile in the Ob namespace. Therefore - the TransactionManager was unable to recover." -"00001A41","6721","-4294960575","ERROR_TRANSACTION_NOT_ROOT","The call to create a superior Enlistment on this Transaction object could not be completed - because the Transaction object specified for the enlistment is a subordinate branch of the Transaction. Only the root of the Transaction can be enlisted on as a superior." -"00001A42","6722","-4294960574","ERROR_TRANSACTION_OBJECT_EXPIRED","Because the associated transaction manager or resource manager has been closed - the handle is no longer valid." -"00001A43","6723","-4294960573","ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED","The specified operation could not be performed on this Superior enlistment - because the enlistment was not created with the corresponding completion response in the NotificationMask." -"00001A44","6724","-4294960572","ERROR_TRANSACTION_RECORD_TOO_LONG","The specified operation could not be performed - because the record that would be logged was too long. This can occur because of two conditions: either there are too many Enlistments on this Transaction - or the combined RecoveryInformation being logged on behalf of those Enlistments is too long." -"00001A45","6725","-4294960571","ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED","Implicit transaction are not supported." -"00001A46","6726","-4294960570","ERROR_TRANSACTION_INTEGRITY_VIOLATED","The kernel transaction manager had to abort or forget the transaction because it blocked forward progress." -"00001A47","6727","-4294960569","ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH","The TransactionManager identity that was supplied did not match the one recorded in the TransactionManager's log file." -"00001A48","6728","-4294960568","ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT","This snapshot operation cannot continue because a transactional resource manager cannot be frozen in its current state. Please try again." -"00001A49","6729","-4294960567","ERROR_TRANSACTION_MUST_WRITETHROUGH","The transaction cannot be enlisted on with the specified EnlistmentMask - because the transaction has already completed the PrePrepare phase. In order to ensure correctness - the ResourceManager must switch to a write- through mode and cease caching data within this transaction. Enlisting for only subsequent transaction phases may still succeed." -"00001A4A","6730","-4294960566","ERROR_TRANSACTION_NO_SUPERIOR","The transaction does not have a superior enlistment." -"00001A4B","6731","-4294960565","ERROR_HEURISTIC_DAMAGE_POSSIBLE","The attempt to commit the Transaction completed - but it is possible that some portion of the transaction tree did not commit successfully due to heuristics. Therefore it is possible that some data modified in the transaction may not have committed - resulting in transactional inconsistency. If possible - check the consistency of the associated data." -"00001A90","6800","-4294960496","ERROR_TRANSACTIONAL_CONFLICT","The function attempted to use a name that is reserved for use by another transaction." -"00001A91","6801","-4294960495","ERROR_RM_NOT_ACTIVE","Transaction support within the specified resource manager is not started or was shut down due to an error." -"00001A92","6802","-4294960494","ERROR_RM_METADATA_CORRUPT","The metadata of the RM has been corrupted. The RM will not function." -"00001A93","6803","-4294960493","ERROR_DIRECTORY_NOT_RM","The specified directory does not contain a resource manager." -"00001A95","6805","-4294960491","ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE","The remote server or share does not support transacted file operations." -"00001A96","6806","-4294960490","ERROR_LOG_RESIZE_INVALID_SIZE","The requested log size is invalid." -"00001A97","6807","-4294960489","ERROR_OBJECT_NO_LONGER_EXISTS","The object" -"00001A98","6808","-4294960488","ERROR_STREAM_MINIVERSION_NOT_FOUND","The specified file miniversion was not found for this transacted file open." -"00001A99","6809","-4294960487","ERROR_STREAM_MINIVERSION_NOT_VALID","The specified file miniversion was found but has been invalidated. Most likely cause is a transaction savepoint rollback." -"00001A9A","6810","-4294960486","ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION","A miniversion may only be opened in the context of the transaction that created it." -"00001A9B","6811","-4294960485","ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT","It is not possible to open a miniversion with modify access." -"00001A9C","6812","-4294960484","ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS","It is not possible to create any more miniversions for this stream." -"00001A9E","6814","-4294960482","ERROR_REMOTE_FILE_VERSION_MISMATCH","The remote server sent mismatching version number or Fid for a file opened with transactions." -"00001A9F","6815","-4294960481","ERROR_HANDLE_NO_LONGER_VALID","The handle has been invalidated by a transaction. The most likely cause is the presence of memory mapping on a file or an open handle when the transaction ended or rolled back to savepoint." -"00001AA0","6816","-4294960480","ERROR_NO_TXF_METADATA","There is no transaction metadata on the file." -"00001AA1","6817","-4294960479","ERROR_LOG_CORRUPTION_DETECTED","The log data is corrupt." -"00001AA2","6818","-4294960478","ERROR_CANT_RECOVER_WITH_HANDLE_OPEN","The file can't be recovered because there is a handle still open on it." -"00001AA3","6819","-4294960477","ERROR_RM_DISCONNECTED","The transaction outcome is unavailable because the resource manager responsible for it has disconnected." -"00001AA4","6820","-4294960476","ERROR_ENLISTMENT_NOT_SUPERIOR","The request was rejected because the enlistment in question is not a superior enlistment." -"00001AA5","6821","-4294960475","ERROR_RECOVERY_NOT_NEEDED","The transactional resource manager is already consistent. Recovery is not needed." -"00001AA6","6822","-4294960474","ERROR_RM_ALREADY_STARTED","The transactional resource manager has already been started." -"00001AA7","6823","-4294960473","ERROR_FILE_IDENTITY_NOT_PERSISTENT","The file cannot be opened transactionally - because its identity depends on the outcome of an unresolved transaction." -"00001AA8","6824","-4294960472","ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY","The operation cannot be performed because another transaction is depending on the fact that this property will not change." -"00001AA9","6825","-4294960471","ERROR_CANT_CROSS_RM_BOUNDARY","The operation would involve a single file with two transactional resource managers and is therefore not allowed." -"00001AAA","6826","-4294960470","ERROR_TXF_DIR_NOT_EMPTY","The $Txf directory must be empty for this operation to succeed." -"00001AAB","6827","-4294960469","ERROR_INDOUBT_TRANSACTIONS_EXIST","The operation would leave a transactional resource manager in an inconsistent state and is therefore not allowed." -"00001AAC","6828","-4294960468","ERROR_TM_VOLATILE","The operation could not be completed because the transaction manager does not have a log." -"00001AAD","6829","-4294960467","ERROR_ROLLBACK_TIMER_EXPIRED","A rollback could not be scheduled because a previously scheduled rollback has already executed or been queued for execution." -"00001AAE","6830","-4294960466","ERROR_TXF_ATTRIBUTE_CORRUPT","The transactional metadata attribute on the file or directory is corrupt and unreadable." -"00001AAF","6831","-4294960465","ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION","The encryption operation could not be completed because a transaction is active." -"00001AB0","6832","-4294960464","ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED","This object is not allowed to be opened in a transaction." -"00001AB1","6833","-4294960463","ERROR_LOG_GROWTH_FAILED","An attempt to create space in the transactional resource manager's log failed. The failure status has been recorded in the event log." -"00001AB2","6834","-4294960462","ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE","Memory mapping" -"00001AB3","6835","-4294960461","ERROR_TXF_METADATA_ALREADY_PRESENT","Transaction metadata is already present on this file and cannot be superseded." -"00001AB4","6836","-4294960460","ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET","A transaction scope could not be entered because the scope handler has not been initialized." -"00001AB5","6837","-4294960459","ERROR_TRANSACTION_REQUIRED_PROMOTION","Promotion was required in order to allow the resource manager to enlist - but the transaction was set to disallow it." -"00001AB6","6838","-4294960458","ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION","This file is open for modification in an unresolved transaction and may be opened for execute only by a transacted reader." -"00001AB7","6839","-4294960457","ERROR_TRANSACTIONS_NOT_FROZEN","The request to thaw frozen transactions was ignored because transactions had not previously been frozen." -"00001AB8","6840","-4294960456","ERROR_TRANSACTION_FREEZE_IN_PROGRESS","Transactions cannot be frozen because a freeze is already in progress." -"00001AB9","6841","-4294960455","ERROR_NOT_SNAPSHOT_VOLUME","The target volume is not a snapshot volume. This operation is only valid on a volume mounted as a snapshot." -"00001ABA","6842","-4294960454","ERROR_NO_SAVEPOINT_WITH_OPEN_FILES","The savepoint operation failed because files are open on the transaction. This is not permitted." -"00001ABB","6843","-4294960453","ERROR_DATA_LOST_REPAIR","Windows has discovered corruption in a file - and that file has since been repaired. Data loss may have occurred." -"00001ABC","6844","-4294960452","ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION","The sparse operation could not be completed because a transaction is active on the file." -"00001ABD","6845","-4294960451","ERROR_TM_IDENTITY_MISMATCH","The call to create a TransactionManager object failed because the Tm Identity stored in the logfile does not match the Tm Identity that was passed in as an argument." -"00001ABE","6846","-4294960450","ERROR_FLOATED_SECTION","I/O was attempted on a section object that has been floated as a result of a transaction ending. There is no valid data." -"00001ABF","6847","-4294960449","ERROR_CANNOT_ACCEPT_TRANSACTED_WORK","The transactional resource manager cannot currently accept transacted work due to a transient condition such as low resources." -"00001AC0","6848","-4294960448","ERROR_CANNOT_ABORT_TRANSACTIONS","The transactional resource manager had too many transactions outstanding that could not be aborted. The transactional resource manger has been shut down." -"00001AC1","6849","-4294960447","ERROR_BAD_CLUSTERS","The operation could not be completed due to bad clusters on disk." -"00001AC2","6850","-4294960446","ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION","The compression operation could not be completed because a transaction is active on the file." -"00001AC3","6851","-4294960445","ERROR_VOLUME_DIRTY","The operation could not be completed because the volume is dirty. Please run chkdsk and try again." -"00001AC4","6852","-4294960444","ERROR_NO_LINK_TRACKING_IN_TRANSACTION","The link tracking operation could not be completed because a transaction is active." -"00001AC5","6853","-4294960443","ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION","This operation cannot be performed in a transaction." -"00001AC6","6854","-4294960442","ERROR_EXPIRED_HANDLE","The handle is no longer properly associated with its transaction. It may have been opened in a transactional resource manager that was subsequently forced to restart. Please close the handle and open a new one." -"00001AC7","6855","-4294960441","ERROR_TRANSACTION_NOT_ENLISTED","The specified operation could not be performed because the resource manager is not enlisted in the transaction." -"00001AD4","-4294960428","6868","NULL","" -"00001ADA","-4294960422","6874","NULL","" -"00001B59","7001","-4294960295","ERROR_CTX_WINSTATION_NAME_INVALID","The specified session name is invalid." -"00001B5A","7002","-4294960294","ERROR_CTX_INVALID_PD","The specified protocol driver is invalid." -"00001B5B","7003","-4294960293","ERROR_CTX_PD_NOT_FOUND","The specified protocol driver was not found in the system path." -"00001B5C","7004","-4294960292","ERROR_CTX_WD_NOT_FOUND","The specified terminal connection driver was not found in the system path." -"00001B5D","7005","-4294960291","ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY","A registry key for event logging could not be created for this session." -"00001B5E","7006","-4294960290","ERROR_CTX_SERVICE_NAME_COLLISION","A service with the same name already exists on the system." -"00001B5F","7007","-4294960289","ERROR_CTX_CLOSE_PENDING","A close operation is pending on the session." -"00001B60","7008","-4294960288","ERROR_CTX_NO_OUTBUF","There are no free output buffers available." -"00001B61","7009","-4294960287","ERROR_CTX_MODEM_INF_NOT_FOUND","The MODEM.INF file was not found." -"00001B62","7010","-4294960286","ERROR_CTX_INVALID_MODEMNAME","The modem name was not found in MODEM.INF." -"00001B63","7011","-4294960285","ERROR_CTX_MODEM_RESPONSE_ERROR","The modem did not accept the command sent to it. Verify that the configured modem name matches the attached modem." -"00001B64","7012","-4294960284","ERROR_CTX_MODEM_RESPONSE_TIMEOUT","The modem did not respond to the command sent to it. Verify that the modem is properly cabled and powered on." -"00001B65","7013","-4294960283","ERROR_CTX_MODEM_RESPONSE_NO_CARRIER","Carrier detect has failed or carrier has been dropped due to disconnect." -"00001B66","7014","-4294960282","ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE","Dial tone not detected within the required time. Verify that the phone cable is properly attached and functional." -"00001B67","7015","-4294960281","ERROR_CTX_MODEM_RESPONSE_BUSY","Busy signal detected at remote site on callback." -"00001B68","7016","-4294960280","ERROR_CTX_MODEM_RESPONSE_VOICE","Voice detected at remote site on callback." -"00001B69","7017","-4294960279","ERROR_CTX_TD_ERROR","Transport driver error." -"00001B6E","7022","-4294960274","ERROR_CTX_WINSTATION_NOT_FOUND","The specified session cannot be found." -"00001B6F","7023","-4294960273","ERROR_CTX_WINSTATION_ALREADY_EXISTS","The specified session name is already in use." -"00001B70","7024","-4294960272","ERROR_CTX_WINSTATION_BUSY","The task you are trying to do can't be completed because Remote Desktop Services is currently busy. Please try again in a few minutes. Other users should still be able to log on." -"00001B71","7025","-4294960271","ERROR_CTX_BAD_VIDEO_MODE","An attempt has been made to connect to a session whose video mode is not supported by the current client." -"00001B7B","7035","-4294960261","ERROR_CTX_GRAPHICS_INVALID","The application attempted to enable DOS graphics mode. DOS graphics mode is not supported." -"00001B7D","7037","-4294960259","ERROR_CTX_LOGON_DISABLED","Your interactive logon privilege has been disabled. Please contact your administrator." -"00001B7E","7038","-4294960258","ERROR_CTX_NOT_CONSOLE","The requested operation can be performed only on the system console. This is most often the result of a driver or system DLL requiring direct console access." -"00001B80","7040","-4294960256","ERROR_CTX_CLIENT_QUERY_TIMEOUT","The client failed to respond to the server connect message." -"00001B81","7041","-4294960255","ERROR_CTX_CONSOLE_DISCONNECT","Disconnecting the console session is not supported." -"00001B82","7042","-4294960254","ERROR_CTX_CONSOLE_CONNECT","Reconnecting a disconnected session to the console is not supported." -"00001B84","7044","-4294960252","ERROR_CTX_SHADOW_DENIED","The request to control another session remotely was denied." -"00001B85","7045","-4294960251","ERROR_CTX_WINSTATION_ACCESS_DENIED","The requested session access is denied." -"00001B89","7049","-4294960247","ERROR_CTX_INVALID_WD","The specified terminal connection driver is invalid." -"00001B8A","7050","-4294960246","ERROR_CTX_SHADOW_INVALID","The requested session cannot be controlled remotely. This may be because the session is disconnected or does not currently have a user logged on." -"00001B8B","7051","-4294960245","ERROR_CTX_SHADOW_DISABLED","The requested session is not configured to allow remote control." -"00001B8C","7052","-4294960244","ERROR_CTX_CLIENT_LICENSE_IN_USE","Your request to connect to this Terminal Server has been rejected. Your Terminal Server client license number is currently being used by another user. Please call your system administrator to obtain a unique license number." -"00001B8D","7053","-4294960243","ERROR_CTX_CLIENT_LICENSE_NOT_SET","Your request to connect to this Terminal Server has been rejected. Your Terminal Server client license number has not been entered for this copy of the Terminal Server client. Please" -"00001B8E","7054","-4294960242","ERROR_CTX_LICENSE_NOT_AVAILABLE","The number of connections to this computer is limited and all connections are in use right now. Try connecting later or" -"00001B8F","7055","-4294960241","ERROR_CTX_LICENSE_CLIENT_INVALID","The client you are using is not licensed to use this system. Your logon request is denied." -"00001B90","7056","-4294960240","ERROR_CTX_LICENSE_EXPIRED","The system license has expired. Your logon request is denied." -"00001B91","7057","-4294960239","ERROR_CTX_SHADOW_NOT_RUNNING","Remote control could not be terminated because the specified session is not currently being remotely controlled." -"00001B92","7058","-4294960238","ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE","The remote control of the console was terminated because the display mode was changed. Changing the display mode in a remote control session is not supported." -"00001B93","7059","-4294960237","ERROR_ACTIVATION_COUNT_EXCEEDED","Activation has already been reset the maximum number of times for this installation. Your activation timer will not be cleared." -"00001B94","7060","-4294960236","ERROR_CTX_WINSTATIONS_DISABLED","Remote logins are currently disabled." -"00001B95","7061","-4294960235","ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED","You do not have the proper encryption level to access this Session." -"00001B96","7062","-4294960234","ERROR_CTX_SESSION_IN_USE","The user %s\\%s is currently logged on to this computer. Only the current user or an administrator can log on to this computer." -"00001B97","7063","-4294960233","ERROR_CTX_NO_FORCE_LOGOFF","The user %s\\%s is already logged on to the console of this computer. You do not have permission to log in at this time. To resolve this issue - contact %s\\%s and have them log off." -"00001B98","7064","-4294960232","ERROR_CTX_ACCOUNT_RESTRICTION","Unable to log you on because of an account restriction." -"00001B99","7065","-4294960231","ERROR_RDP_PROTOCOL_ERROR","The RDP protocol component %2 detected an error in the protocol stream and has disconnected the client." -"00001B9A","7066","-4294960230","ERROR_CTX_CDM_CONNECT","The Client Drive Mapping Service Has Connected on Terminal Connection." -"00001B9B","7067","-4294960229","ERROR_CTX_CDM_DISCONNECT","The Client Drive Mapping Service Has Disconnected on Terminal Connection." -"00001B9C","7068","-4294960228","ERROR_CTX_SECURITY_LAYER_ERROR","The Terminal Server security layer detected an error in the protocol stream and has disconnected the client." -"00001B9D","7069","-4294960227","ERROR_TS_INCOMPATIBLE_SESSIONS","The target session is incompatible with the current session." -"00001B9E","7070","-4294960226","ERROR_TS_VIDEO_SUBSYSTEM_ERROR","Windows can't connect to your session because a problem occurred in the Windows video subsystem. Try connecting again later - or contact the server administrator for assistance." -"00001C70","-4294960016","7280","NULL","" -"00001CE8","-4294959896","7400","NULL","" -"00001D7A","-4294959750","7546","NULL","" -"00001F1D","-4294959331","7965","NULL","" -"00001F41","8001","-4294959295","FRS_ERR_INVALID_API_SEQUENCE","The file replication service API was called incorrectly." -"00001F42","8002","-4294959294","FRS_ERR_STARTING_SERVICE","The file replication service cannot be started." -"00001F43","8003","-4294959293","FRS_ERR_STOPPING_SERVICE","The file replication service cannot be stopped." -"00001F44","8004","-4294959292","FRS_ERR_INTERNAL_API","The file replication service API terminated the request. The event log may have more information." -"00001F45","8005","-4294959291","FRS_ERR_INTERNAL","The file replication service terminated the request. The event log may have more information." -"00001F46","8006","-4294959290","FRS_ERR_SERVICE_COMM","The file replication service cannot be contacted. The event log may have more information." -"00001F47","8007","-4294959289","FRS_ERR_INSUFFICIENT_PRIV","The file replication service cannot satisfy the request because the user has insufficient privileges. The event log may have more information." -"00001F48","8008","-4294959288","FRS_ERR_AUTHENTICATION","The file replication service cannot satisfy the request because authenticated RPC is not available. The event log may have more information." -"00001F49","8009","-4294959287","FRS_ERR_PARENT_INSUFFICIENT_PRIV","The file replication service cannot satisfy the request because the user has insufficient privileges on the domain controller. The event log may have more information." -"00001F4A","8010","-4294959286","FRS_ERR_PARENT_AUTHENTICATION","The file replication service cannot satisfy the request because authenticated RPC is not available on the domain controller. The event log may have more information." -"00001F4B","8011","-4294959285","FRS_ERR_CHILD_TO_PARENT_COMM","The file replication service cannot communicate with the file replication service on the domain controller. The event log may have more information." -"00001F4C","8012","-4294959284","FRS_ERR_PARENT_TO_CHILD_COMM","The file replication service on the domain controller cannot communicate with the file replication service on this computer. The event log may have more information." -"00001F4D","8013","-4294959283","FRS_ERR_SYSVOL_POPULATE","The file replication service cannot populate the system volume because of an internal error. The event log may have more information." -"00001F4E","8014","-4294959282","FRS_ERR_SYSVOL_POPULATE_TIMEOUT","The file replication service cannot populate the system volume because of an internal timeout. The event log may have more information." -"00001F4F","8015","-4294959281","FRS_ERR_SYSVOL_IS_BUSY","The file replication service cannot process the request. The system volume is busy with a previous request." -"00001F50","8016","-4294959280","FRS_ERR_SYSVOL_DEMOTE","The file replication service cannot stop replicating the system volume because of an internal error. The event log may have more information." -"00001F51","8017","-4294959279","FRS_ERR_INVALID_SERVICE_PARAMETER","The file replication service detected an invalid parameter." -"00001F59","-4294959271","8025","NULL","" -"00002008","8200","-4294959096","ERROR_DS_NOT_INSTALLED","An error occurred while installing the directory service. For more information - see the event log." -"00002009","8201","-4294959095","ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY","The directory service evaluated group memberships locally." -"0000200A","8202","-4294959094","ERROR_DS_NO_ATTRIBUTE_OR_VALUE","The specified directory service attribute or value does not exist." -"0000200B","8203","-4294959093","ERROR_DS_INVALID_ATTRIBUTE_SYNTAX","The attribute syntax specified to the directory service is invalid." -"0000200C","8204","-4294959092","ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED","The attribute type specified to the directory service is not defined." -"0000200D","8205","-4294959091","ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS","The specified directory service attribute or value already exists." -"0000200E","8206","-4294959090","ERROR_DS_BUSY","The directory service is busy." -"0000200F","8207","-4294959089","ERROR_DS_UNAVAILABLE","The directory service is unavailable." -"00002010","8208","-4294959088","ERROR_DS_NO_RIDS_ALLOCATED","The directory service was unable to allocate a relative identifier." -"00002011","8209","-4294959087","ERROR_DS_NO_MORE_RIDS","The directory service has exhausted the pool of relative identifiers." -"00002012","8210","-4294959086","ERROR_DS_INCORRECT_ROLE_OWNER","The requested operation could not be performed because the directory service is not the master for that type of operation." -"00002013","8211","-4294959085","ERROR_DS_RIDMGR_INIT_ERROR","The directory service was unable to initialize the subsystem that allocates relative identifiers." -"00002014","8212","-4294959084","ERROR_DS_OBJ_CLASS_VIOLATION","The requested operation did not satisfy one or more constraints associated with the class of the object." -"00002015","8213","-4294959083","ERROR_DS_CANT_ON_NON_LEAF","The directory service can perform the requested operation only on a leaf object." -"00002016","8214","-4294959082","ERROR_DS_CANT_ON_RDN","The directory service cannot perform the requested operation on the RDN attribute of an object." -"00002017","8215","-4294959081","ERROR_DS_CANT_MOD_OBJ_CLASS","The directory service detected an attempt to modify the object class of an object." -"00002018","8216","-4294959080","ERROR_DS_CROSS_DOM_MOVE_ERROR","The requested cross-domain move operation could not be performed." -"00002019","8217","-4294959079","ERROR_DS_GC_NOT_AVAILABLE","Unable to contact the global catalog server." -"0000201A","8218","-4294959078","ERROR_SHARED_POLICY","The policy object is shared and can only be modified at the root." -"0000201B","8219","-4294959077","ERROR_POLICY_OBJECT_NOT_FOUND","The policy object does not exist." -"0000201C","8220","-4294959076","ERROR_POLICY_ONLY_IN_DS","The requested policy information is only in the directory service." -"0000201D","8221","-4294959075","ERROR_PROMOTION_ACTIVE","A domain controller promotion is currently active." -"0000201E","8222","-4294959074","ERROR_NO_PROMOTION_ACTIVE","A domain controller promotion is not currently active." -"00002020","8224","-4294959072","ERROR_DS_OPERATIONS_ERROR","An operations error occurred." -"00002021","8225","-4294959071","ERROR_DS_PROTOCOL_ERROR","A protocol error occurred." -"00002022","8226","-4294959070","ERROR_DS_TIMELIMIT_EXCEEDED","The time limit for this request was exceeded." -"00002023","8227","-4294959069","ERROR_DS_SIZELIMIT_EXCEEDED","The size limit for this request was exceeded." -"00002024","8228","-4294959068","ERROR_DS_ADMIN_LIMIT_EXCEEDED","The administrative limit for this request was exceeded." -"00002025","8229","-4294959067","ERROR_DS_COMPARE_FALSE","The compare response was false." -"00002026","8230","-4294959066","ERROR_DS_COMPARE_TRUE","The compare response was true." -"00002027","8231","-4294959065","ERROR_DS_AUTH_METHOD_NOT_SUPPORTED","The requested authentication method is not supported by the server." -"00002028","8232","-4294959064","ERROR_DS_STRONG_AUTH_REQUIRED","A more secure authentication method is required for this server." -"00002029","8233","-4294959063","ERROR_DS_INAPPROPRIATE_AUTH","Inappropriate authentication." -"0000202A","8234","-4294959062","ERROR_DS_AUTH_UNKNOWN","The authentication mechanism is unknown." -"0000202B","8235","-4294959061","ERROR_DS_REFERRAL","A referral was returned from the server." -"0000202C","8236","-4294959060","ERROR_DS_UNAVAILABLE_CRIT_EXTENSION","The server does not support the requested critical extension." -"0000202D","8237","-4294959059","ERROR_DS_CONFIDENTIALITY_REQUIRED","This request requires a secure connection." -"0000202E","8238","-4294959058","ERROR_DS_INAPPROPRIATE_MATCHING","Inappropriate matching." -"0000202F","8239","-4294959057","ERROR_DS_CONSTRAINT_VIOLATION","A constraint violation occurred." -"00002030","8240","-4294959056","ERROR_DS_NO_SUCH_OBJECT","There is no such object on the server." -"00002031","8241","-4294959055","ERROR_DS_ALIAS_PROBLEM","There is an alias problem." -"00002032","8242","-4294959054","ERROR_DS_INVALID_DN_SYNTAX","An invalid dn syntax has been specified." -"00002033","8243","-4294959053","ERROR_DS_IS_LEAF","The object is a leaf object." -"00002034","8244","-4294959052","ERROR_DS_ALIAS_DEREF_PROBLEM","There is an alias dereferencing problem." -"00002035","8245","-4294959051","ERROR_DS_UNWILLING_TO_PERFORM","The server is unwilling to process the request." -"00002036","8246","-4294959050","ERROR_DS_LOOP_DETECT","A loop has been detected." -"00002037","8247","-4294959049","ERROR_DS_NAMING_VIOLATION","There is a naming violation." -"00002038","8248","-4294959048","ERROR_DS_OBJECT_RESULTS_TOO_LARGE","The result set is too large." -"00002039","8249","-4294959047","ERROR_DS_AFFECTS_MULTIPLE_DSAS","The operation affects multiple DSAs." -"0000203A","8250","-4294959046","ERROR_DS_SERVER_DOWN","The server is not operational." -"0000203B","8251","-4294959045","ERROR_DS_LOCAL_ERROR","A local error has occurred." -"0000203C","8252","-4294959044","ERROR_DS_ENCODING_ERROR","An encoding error has occurred." -"0000203D","8253","-4294959043","ERROR_DS_DECODING_ERROR","A decoding error has occurred." -"0000203E","8254","-4294959042","ERROR_DS_FILTER_UNKNOWN","The search filter cannot be recognized." -"0000203F","8255","-4294959041","ERROR_DS_PARAM_ERROR","One or more parameters are illegal." -"00002040","8256","-4294959040","ERROR_DS_NOT_SUPPORTED","The specified method is not supported." -"00002041","8257","-4294959039","ERROR_DS_NO_RESULTS_RETURNED","No results were returned." -"00002042","8258","-4294959038","ERROR_DS_CONTROL_NOT_FOUND","The specified control is not supported by the server." -"00002043","8259","-4294959037","ERROR_DS_CLIENT_LOOP","A referral loop was detected by the client." -"00002044","8260","-4294959036","ERROR_DS_REFERRAL_LIMIT_EXCEEDED","The preset referral limit was exceeded." -"00002045","8261","-4294959035","ERROR_DS_SORT_CONTROL_MISSING","The search requires a SORT control." -"00002046","8262","-4294959034","ERROR_DS_OFFSET_RANGE_ERROR","The search results exceed the offset range specified." -"00002047","8263","-4294959033","ERROR_DS_RIDMGR_DISABLED","The directory service detected the subsystem that allocates relative identifiers is disabled. This can occur as a protective mechanism when the system determines a significant portion of relative identifiers" -"0000206D","8301","-4294958995","ERROR_DS_ROOT_MUST_BE_NC","The root object must be the head of a naming context. The root object cannot have an instantiated parent." -"0000206E","8302","-4294958994","ERROR_DS_ADD_REPLICA_INHIBITED","The add replica operation cannot be performed. The naming context must be writeable in order to create the replica." -"0000206F","8303","-4294958993","ERROR_DS_ATT_NOT_DEF_IN_SCHEMA","A reference to an attribute that is not defined in the schema occurred." -"00002070","8304","-4294958992","ERROR_DS_MAX_OBJ_SIZE_EXCEEDED","The maximum size of an object has been exceeded." -"00002071","8305","-4294958991","ERROR_DS_OBJ_STRING_NAME_EXISTS","An attempt was made to add an object to the directory with a name that is already in use." -"00002072","8306","-4294958990","ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA","An attempt was made to add an object of a class that does not have an RDN defined in the schema." -"00002073","8307","-4294958989","ERROR_DS_RDN_DOESNT_MATCH_SCHEMA","An attempt was made to add an object using an RDN that is not the RDN defined in the schema." -"00002074","8308","-4294958988","ERROR_DS_NO_REQUESTED_ATTS_FOUND","None of the requested attributes were found on the objects." -"00002075","8309","-4294958987","ERROR_DS_USER_BUFFER_TO_SMALL","The user buffer is too small." -"00002076","8310","-4294958986","ERROR_DS_ATT_IS_NOT_ON_OBJ","The attribute specified in the operation is not present on the object." -"00002077","8311","-4294958985","ERROR_DS_ILLEGAL_MOD_OPERATION","Illegal modify operation. Some aspect of the modification is not permitted." -"00002078","8312","-4294958984","ERROR_DS_OBJ_TOO_LARGE","The specified object is too large." -"00002079","8313","-4294958983","ERROR_DS_BAD_INSTANCE_TYPE","The specified instance type is not valid." -"0000207A","8314","-4294958982","ERROR_DS_MASTERDSA_REQUIRED","The operation must be performed at a master DSA." -"0000207B","8315","-4294958981","ERROR_DS_OBJECT_CLASS_REQUIRED","The object class attribute must be specified." -"0000207C","8316","-4294958980","ERROR_DS_MISSING_REQUIRED_ATT","A required attribute is missing." -"0000207D","8317","-4294958979","ERROR_DS_ATT_NOT_DEF_FOR_CLASS","An attempt was made to modify an object to include an attribute that is not legal for its class." -"0000207E","8318","-4294958978","ERROR_DS_ATT_ALREADY_EXISTS","The specified attribute is already present on the object." -"00002080","8320","-4294958976","ERROR_DS_CANT_ADD_ATT_VALUES","The specified attribute is not present - or has no values." -"00002081","8321","-4294958975","ERROR_DS_SINGLE_VALUE_CONSTRAINT","Multiple values were specified for an attribute that can have only one value." -"00002082","8322","-4294958974","ERROR_DS_RANGE_CONSTRAINT","A value for the attribute was not in the acceptable range of values." -"00002083","8323","-4294958973","ERROR_DS_ATT_VAL_ALREADY_EXISTS","The specified value already exists." -"00002084","8324","-4294958972","ERROR_DS_CANT_REM_MISSING_ATT","The attribute cannot be removed because it is not present on the object." -"00002085","8325","-4294958971","ERROR_DS_CANT_REM_MISSING_ATT_VAL","The attribute value cannot be removed because it is not present on the object." -"00002086","8326","-4294958970","ERROR_DS_ROOT_CANT_BE_SUBREF","The specified root object cannot be a subref." -"00002087","8327","-4294958969","ERROR_DS_NO_CHAINING","Chaining is not permitted." -"00002088","8328","-4294958968","ERROR_DS_NO_CHAINED_EVAL","Chained evaluation is not permitted." -"00002089","8329","-4294958967","ERROR_DS_NO_PARENT_OBJECT","The operation could not be performed because the object's parent is either uninstantiated or deleted." -"0000208A","8330","-4294958966","ERROR_DS_PARENT_IS_AN_ALIAS","Having a parent that is an alias is not permitted. Aliases are leaf objects." -"0000208B","8331","-4294958965","ERROR_DS_CANT_MIX_MASTER_AND_REPS","The object and parent must be of the same type - either both masters or both replicas." -"0000208C","8332","-4294958964","ERROR_DS_CHILDREN_EXIST","The operation cannot be performed because child objects exist. This operation can only be performed on a leaf object." -"0000208D","8333","-4294958963","ERROR_DS_OBJ_NOT_FOUND","Directory object not found." -"0000208E","8334","-4294958962","ERROR_DS_ALIASED_OBJ_MISSING","The aliased object is missing." -"0000208F","8335","-4294958961","ERROR_DS_BAD_NAME_SYNTAX","The object name has bad syntax." -"00002090","8336","-4294958960","ERROR_DS_ALIAS_POINTS_TO_ALIAS","It is not permitted for an alias to refer to another alias." -"00002091","8337","-4294958959","ERROR_DS_CANT_DEREF_ALIAS","The alias cannot be dereferenced." -"00002092","8338","-4294958958","ERROR_DS_OUT_OF_SCOPE","The operation is out of scope." -"00002093","8339","-4294958957","ERROR_DS_OBJECT_BEING_REMOVED","The operation cannot continue because the object is in the process of being removed." -"00002094","8340","-4294958956","ERROR_DS_CANT_DELETE_DSA_OBJ","The DSA object cannot be deleted." -"00002095","8341","-4294958955","ERROR_DS_GENERIC_ERROR","A directory service error has occurred." -"00002096","8342","-4294958954","ERROR_DS_DSA_MUST_BE_INT_MASTER","The operation can only be performed on an internal master DSA object." -"00002097","8343","-4294958953","ERROR_DS_CLASS_NOT_DSA","The object must be of class DSA." -"00002098","8344","-4294958952","ERROR_DS_INSUFF_ACCESS_RIGHTS","Insufficient access rights to perform the operation." -"00002099","8345","-4294958951","ERROR_DS_ILLEGAL_SUPERIOR","The object cannot be added because the parent is not on the list of possible superiors." -"0000209A","8346","-4294958950","ERROR_DS_ATTRIBUTE_OWNED_BY_SAM","Access to the attribute is not permitted because the attribute is owned by the Security Accounts Manager" -"0000209B","8347","-4294958949","ERROR_DS_NAME_TOO_MANY_PARTS","The name has too many parts." -"0000209C","8348","-4294958948","ERROR_DS_NAME_TOO_LONG","The name is too long." -"0000209D","8349","-4294958947","ERROR_DS_NAME_VALUE_TOO_LONG","The name value is too long." -"0000209E","8350","-4294958946","ERROR_DS_NAME_UNPARSEABLE","The directory service encountered an error parsing a name." -"0000209F","8351","-4294958945","ERROR_DS_NAME_TYPE_UNKNOWN","The directory service cannot get the attribute type for a name." -"000020A0","8352","-4294958944","ERROR_DS_NOT_AN_OBJECT","The name does not identify an object; the name identifies a phantom." -"000020A1","8353","-4294958943","ERROR_DS_SEC_DESC_TOO_SHORT","The security descriptor is too short." -"000020A2","8354","-4294958942","ERROR_DS_SEC_DESC_INVALID","The security descriptor is invalid." -"000020A3","8355","-4294958941","ERROR_DS_NO_DELETED_NAME","Failed to create name for deleted object." -"000020A4","8356","-4294958940","ERROR_DS_SUBREF_MUST_HAVE_PARENT","The parent of a new subref must exist." -"000020A5","8357","-4294958939","ERROR_DS_NCNAME_MUST_BE_NC","The object must be a naming context." -"000020A6","8358","-4294958938","ERROR_DS_CANT_ADD_SYSTEM_ONLY","It is not permitted to add an attribute which is owned by the system." -"000020A7","8359","-4294958937","ERROR_DS_CLASS_MUST_BE_CONCRETE","The class of the object must be structural; you cannot instantiate an abstract class." -"000020A8","8360","-4294958936","ERROR_DS_INVALID_DMD","The schema object could not be found." -"000020A9","8361","-4294958935","ERROR_DS_OBJ_GUID_EXISTS","A local object with this GUID" -"000020AA","8362","-4294958934","ERROR_DS_NOT_ON_BACKLINK","The operation cannot be performed on a back link." -"000020AB","8363","-4294958933","ERROR_DS_NO_CROSSREF_FOR_NC","The cross reference for the specified naming context could not be found." -"000020AC","8364","-4294958932","ERROR_DS_SHUTTING_DOWN","The operation could not be performed because the directory service is shutting down." -"000020AD","8365","-4294958931","ERROR_DS_UNKNOWN_OPERATION","The directory service request is invalid." -"000020AE","8366","-4294958930","ERROR_DS_INVALID_ROLE_OWNER","The role owner attribute could not be read." -"000020AF","8367","-4294958929","ERROR_DS_COULDNT_CONTACT_FSMO","The requested FSMO operation failed. The current FSMO holder could not be contacted." -"000020B0","8368","-4294958928","ERROR_DS_CROSS_NC_DN_RENAME","Modification of a DN across a naming context is not permitted." -"000020B1","8369","-4294958927","ERROR_DS_CANT_MOD_SYSTEM_ONLY","The attribute cannot be modified because it is owned by the system." -"000020B2","8370","-4294958926","ERROR_DS_REPLICATOR_ONLY","Only the replicator can perform this function." -"000020B3","8371","-4294958925","ERROR_DS_OBJ_CLASS_NOT_DEFINED","The specified class is not defined." -"000020B4","8372","-4294958924","ERROR_DS_OBJ_CLASS_NOT_SUBCLASS","The specified class is not a subclass." -"000020B5","8373","-4294958923","ERROR_DS_NAME_REFERENCE_INVALID","The name reference is invalid." -"000020B6","8374","-4294958922","ERROR_DS_CROSS_REF_EXISTS","A cross reference already exists." -"000020B7","8375","-4294958921","ERROR_DS_CANT_DEL_MASTER_CROSSREF","It is not permitted to delete a master cross reference." -"000020B8","8376","-4294958920","ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD","Subtree notifications are only supported on NC heads." -"000020B9","8377","-4294958919","ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX","Notification filter is too complex." -"000020BA","8378","-4294958918","ERROR_DS_DUP_RDN","Schema update failed: duplicate RDN." -"000020BB","8379","-4294958917","ERROR_DS_DUP_OID","Schema update failed: duplicate OID." -"000020BC","8380","-4294958916","ERROR_DS_DUP_MAPI_ID","Schema update failed: duplicate MAPI identifier." -"000020BD","8381","-4294958915","ERROR_DS_DUP_SCHEMA_ID_GUID","Schema update failed: duplicate schema-id GUID." -"000020BE","8382","-4294958914","ERROR_DS_DUP_LDAP_DISPLAY_NAME","Schema update failed: duplicate LDAP display name." -"000020BF","8383","-4294958913","ERROR_DS_SEMANTIC_ATT_TEST","Schema update failed: range-lower less than range upper." -"000020C0","8384","-4294958912","ERROR_DS_SYNTAX_MISMATCH","Schema update failed: syntax mismatch." -"000020C1","8385","-4294958911","ERROR_DS_EXISTS_IN_MUST_HAVE","Schema deletion failed: attribute is used in must-contain." -"000020C2","8386","-4294958910","ERROR_DS_EXISTS_IN_MAY_HAVE","Schema deletion failed: attribute is used in may-contain." -"000020C3","8387","-4294958909","ERROR_DS_NONEXISTENT_MAY_HAVE","Schema update failed: attribute in may-contain does not exist." -"000020C4","8388","-4294958908","ERROR_DS_NONEXISTENT_MUST_HAVE","Schema update failed: attribute in must-contain does not exist." -"000020C5","8389","-4294958907","ERROR_DS_AUX_CLS_TEST_FAIL","Schema update failed: class in aux-class list does not exist or is not an auxiliary class." -"000020C6","8390","-4294958906","ERROR_DS_NONEXISTENT_POSS_SUP","Schema update failed: class in poss-superiors does not exist." -"000020C7","8391","-4294958905","ERROR_DS_SUB_CLS_TEST_FAIL","Schema update failed: class in subclassof list does not exist or does not satisfy hierarchy rules." -"000020C8","8392","-4294958904","ERROR_DS_BAD_RDN_ATT_ID_SYNTAX","Schema update failed: Rdn-Att-Id has wrong syntax." -"000020C9","8393","-4294958903","ERROR_DS_EXISTS_IN_AUX_CLS","Schema deletion failed: class is used as auxiliary class." -"000020CA","8394","-4294958902","ERROR_DS_EXISTS_IN_SUB_CLS","Schema deletion failed: class is used as sub class." -"000020CB","8395","-4294958901","ERROR_DS_EXISTS_IN_POSS_SUP","Schema deletion failed: class is used as poss superior." -"000020CC","8396","-4294958900","ERROR_DS_RECALCSCHEMA_FAILED","Schema update failed in recalculating validation cache." -"000020CD","8397","-4294958899","ERROR_DS_TREE_DELETE_NOT_FINISHED","The tree deletion is not finished. The request must be made again to continue deleting the tree." -"000020CE","8398","-4294958898","ERROR_DS_CANT_DELETE","The requested delete operation could not be performed." -"000020CF","8399","-4294958897","ERROR_DS_ATT_SCHEMA_REQ_ID","Cannot read the governs class identifier for the schema record." -"000020D0","8400","-4294958896","ERROR_DS_BAD_ATT_SCHEMA_SYNTAX","The attribute schema has bad syntax." -"000020D1","8401","-4294958895","ERROR_DS_CANT_CACHE_ATT","The attribute could not be cached." -"000020D2","8402","-4294958894","ERROR_DS_CANT_CACHE_CLASS","The class could not be cached." -"000020D3","8403","-4294958893","ERROR_DS_CANT_REMOVE_ATT_CACHE","The attribute could not be removed from the cache." -"000020D4","8404","-4294958892","ERROR_DS_CANT_REMOVE_CLASS_CACHE","The class could not be removed from the cache." -"000020D5","8405","-4294958891","ERROR_DS_CANT_RETRIEVE_DN","The distinguished name attribute could not be read." -"000020D6","8406","-4294958890","ERROR_DS_MISSING_SUPREF","No superior reference has been configured for the directory service. The directory service is therefore unable to issue referrals to objects outside this forest." -"000020D7","8407","-4294958889","ERROR_DS_CANT_RETRIEVE_INSTANCE","The instance type attribute could not be retrieved." -"000020D8","8408","-4294958888","ERROR_DS_CODE_INCONSISTENCY","An internal error has occurred." -"000020D9","8409","-4294958887","ERROR_DS_DATABASE_ERROR","A database error has occurred." -"000020DA","8410","-4294958886","ERROR_DS_GOVERNSID_MISSING","The attribute GOVERNSID is missing." -"000020DB","8411","-4294958885","ERROR_DS_MISSING_EXPECTED_ATT","An expected attribute is missing." -"000020DC","8412","-4294958884","ERROR_DS_NCNAME_MISSING_CR_REF","The specified naming context is missing a cross reference." -"000020DD","8413","-4294958883","ERROR_DS_SECURITY_CHECKING_ERROR","A security checking error has occurred." -"000020DE","8414","-4294958882","ERROR_DS_SCHEMA_NOT_LOADED","The schema is not loaded." -"000020DF","8415","-4294958881","ERROR_DS_SCHEMA_ALLOC_FAILED","Schema allocation failed. Please check if the machine is running low on memory." -"000020E0","8416","-4294958880","ERROR_DS_ATT_SCHEMA_REQ_SYNTAX","Failed to obtain the required syntax for the attribute schema." -"000020E1","8417","-4294958879","ERROR_DS_GCVERIFY_ERROR","The global catalog verification failed. The global catalog is not available or does not support the operation. Some part of the directory is currently not available." -"000020E2","8418","-4294958878","ERROR_DS_DRA_SCHEMA_MISMATCH","The replication operation failed because of a schema mismatch between the servers involved." -"000020E3","8419","-4294958877","ERROR_DS_CANT_FIND_DSA_OBJ","The DSA object could not be found." -"000020E4","8420","-4294958876","ERROR_DS_CANT_FIND_EXPECTED_NC","The naming context could not be found." -"000020E5","8421","-4294958875","ERROR_DS_CANT_FIND_NC_IN_CACHE","The naming context could not be found in the cache." -"000020E6","8422","-4294958874","ERROR_DS_CANT_RETRIEVE_CHILD","The child object could not be retrieved." -"000020E7","8423","-4294958873","ERROR_DS_SECURITY_ILLEGAL_MODIFY","The modification was not permitted for security reasons." -"000020E8","8424","-4294958872","ERROR_DS_CANT_REPLACE_HIDDEN_REC","The operation cannot replace the hidden record." -"000020E9","8425","-4294958871","ERROR_DS_BAD_HIERARCHY_FILE","The hierarchy file is invalid." -"000020EA","8426","-4294958870","ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED","The attempt to build the hierarchy table failed." -"000020EB","8427","-4294958869","ERROR_DS_CONFIG_PARAM_MISSING","The directory configuration parameter is missing from the registry." -"000020EC","8428","-4294958868","ERROR_DS_COUNTING_AB_INDICES_FAILED","The attempt to count the address book indices failed." -"000020ED","8429","-4294958867","ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED","The allocation of the hierarchy table failed." -"000020EE","8430","-4294958866","ERROR_DS_INTERNAL_FAILURE","The directory service encountered an internal failure." -"000020EF","8431","-4294958865","ERROR_DS_UNKNOWN_ERROR","The directory service encountered an unknown failure." -"000020F0","8432","-4294958864","ERROR_DS_ROOT_REQUIRES_CLASS_TOP","A root object requires a class of 'top'." -"000020F1","8433","-4294958863","ERROR_DS_REFUSING_FSMO_ROLES","This directory server is shutting down - and cannot take ownership of new floating single-master operation roles." -"000020F2","8434","-4294958862","ERROR_DS_MISSING_FSMO_SETTINGS","The directory service is missing mandatory configuration information - and is unable to determine the ownership of floating single-master operation roles." -"000020F3","8435","-4294958861","ERROR_DS_UNABLE_TO_SURRENDER_ROLES","The directory service was unable to transfer ownership of one or more floating single-master operation roles to other servers." -"000020F4","8436","-4294958860","ERROR_DS_DRA_GENERIC","The replication operation failed." -"000020F5","8437","-4294958859","ERROR_DS_DRA_INVALID_PARAMETER","An invalid parameter was specified for this replication operation." -"000020F6","8438","-4294958858","ERROR_DS_DRA_BUSY","The directory service is too busy to complete the replication operation at this time." -"000020F7","8439","-4294958857","ERROR_DS_DRA_BAD_DN","The distinguished name specified for this replication operation is invalid." -"000020F8","8440","-4294958856","ERROR_DS_DRA_BAD_NC","The naming context specified for this replication operation is invalid." -"000020F9","8441","-4294958855","ERROR_DS_DRA_DN_EXISTS","The distinguished name specified for this replication operation already exists." -"000020FA","8442","-4294958854","ERROR_DS_DRA_INTERNAL_ERROR","The replication system encountered an internal error." -"000020FB","8443","-4294958853","ERROR_DS_DRA_INCONSISTENT_DIT","The replication operation encountered a database inconsistency." -"000020FC","8444","-4294958852","ERROR_DS_DRA_CONNECTION_FAILED","The server specified for this replication operation could not be contacted." -"000020FD","8445","-4294958851","ERROR_DS_DRA_BAD_INSTANCE_TYPE","The replication operation encountered an object with an invalid instance type." -"000020FE","8446","-4294958850","ERROR_DS_DRA_OUT_OF_MEM","The replication operation failed to allocate memory." -"000020FF","8447","-4294958849","ERROR_DS_DRA_MAIL_PROBLEM","The replication operation encountered an error with the mail system." -"00002100","8448","-4294958848","ERROR_DS_DRA_REF_ALREADY_EXISTS","The replication reference information for the target server already exists." -"00002101","8449","-4294958847","ERROR_DS_DRA_REF_NOT_FOUND","The replication reference information for the target server does not exist." -"00002102","8450","-4294958846","ERROR_DS_DRA_OBJ_IS_REP_SOURCE","The naming context cannot be removed because it is replicated to another server." -"00002103","8451","-4294958845","ERROR_DS_DRA_DB_ERROR","The replication operation encountered a database error." -"00002104","8452","-4294958844","ERROR_DS_DRA_NO_REPLICA","The naming context is in the process of being removed or is not replicated from the specified server." -"00002105","8453","-4294958843","ERROR_DS_DRA_ACCESS_DENIED","Replication access was denied." -"00002106","8454","-4294958842","ERROR_DS_DRA_NOT_SUPPORTED","The requested operation is not supported by this version of the directory service." -"00002107","8455","-4294958841","ERROR_DS_DRA_RPC_CANCELLED","The replication remote procedure call was cancelled." -"00002108","8456","-4294958840","ERROR_DS_DRA_SOURCE_DISABLED","The source server is currently rejecting replication requests." -"00002109","8457","-4294958839","ERROR_DS_DRA_SINK_DISABLED","The destination server is currently rejecting replication requests." -"0000210A","8458","-4294958838","ERROR_DS_DRA_NAME_COLLISION","The replication operation failed due to a collision of object names." -"0000210B","8459","-4294958837","ERROR_DS_DRA_SOURCE_REINSTALLED","The replication source has been reinstalled." -"0000210C","8460","-4294958836","ERROR_DS_DRA_MISSING_PARENT","The replication operation failed because a required parent object is missing." -"0000210D","8461","-4294958835","ERROR_DS_DRA_PREEMPTED","The replication operation was preempted." -"0000210E","8462","-4294958834","ERROR_DS_DRA_ABANDON_SYNC","The replication synchronization attempt was abandoned because of a lack of updates." -"0000210F","8463","-4294958833","ERROR_DS_DRA_SHUTDOWN","The replication operation was terminated because the system is shutting down." -"00002110","8464","-4294958832","ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET","Synchronization attempt failed because the destination DC is currently waiting to synchronize new partial attributes from source. This condition is normal if a recent schema change modified the partial attribute set. The destination partial attribute set is not a subset of source partial attribute set." -"00002111","8465","-4294958831","ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA","The replication synchronization attempt failed because a master replica attempted to sync from a partial replica." -"00002112","8466","-4294958830","ERROR_DS_DRA_EXTN_CONNECTION_FAILED","The server specified for this replication operation was contacted - but that server was unable to contact an additional server needed to complete the operation." -"00002113","8467","-4294958829","ERROR_DS_INSTALL_SCHEMA_MISMATCH","The version of the directory service schema of the source forest is not compatible with the version of directory service on this computer." -"00002114","8468","-4294958828","ERROR_DS_DUP_LINK_ID","Schema update failed: An attribute with the same link identifier already exists." -"00002115","8469","-4294958827","ERROR_DS_NAME_ERROR_RESOLVING","Name translation: Generic processing error." -"00002116","8470","-4294958826","ERROR_DS_NAME_ERROR_NOT_FOUND","Name translation: Could not find the name or insufficient right to see name." -"00002117","8471","-4294958825","ERROR_DS_NAME_ERROR_NOT_UNIQUE","Name translation: Input name mapped to more than one output name." -"00002118","8472","-4294958824","ERROR_DS_NAME_ERROR_NO_MAPPING","Name translation: Input name found - but not the associated output format." -"00002119","8473","-4294958823","ERROR_DS_NAME_ERROR_DOMAIN_ONLY","Name translation: Unable to resolve completely - only the domain was found." -"0000211A","8474","-4294958822","ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING","Name translation: Unable to perform purely syntactical mapping at the client without going out to the wire." -"0000211B","8475","-4294958821","ERROR_DS_CONSTRUCTED_ATT_MOD","Modification of a constructed attribute is not allowed." -"0000211C","8476","-4294958820","ERROR_DS_WRONG_OM_OBJ_CLASS","The OM-Object-Class specified is incorrect for an attribute with the specified syntax." -"0000211D","8477","-4294958819","ERROR_DS_DRA_REPL_PENDING","The replication request has been posted; waiting for reply." -"0000211E","8478","-4294958818","ERROR_DS_DS_REQUIRED","The requested operation requires a directory service - and none was available." -"0000211F","8479","-4294958817","ERROR_DS_INVALID_LDAP_DISPLAY_NAME","The LDAP display name of the class or attribute contains non-ASCII characters." -"00002120","8480","-4294958816","ERROR_DS_NON_BASE_SEARCH","The requested search operation is only supported for base searches." -"00002121","8481","-4294958815","ERROR_DS_CANT_RETRIEVE_ATTS","The search failed to retrieve attributes from the database." -"00002122","8482","-4294958814","ERROR_DS_BACKLINK_WITHOUT_LINK","The schema update operation tried to add a backward link attribute that has no corresponding forward link." -"00002123","8483","-4294958813","ERROR_DS_EPOCH_MISMATCH","Source and destination of a cross-domain move do not agree on the object's epoch number. Either source or destination does not have the latest version of the object." -"00002124","8484","-4294958812","ERROR_DS_SRC_NAME_MISMATCH","Source and destination of a cross-domain move do not agree on the object's current name. Either source or destination does not have the latest version of the object." -"00002125","8485","-4294958811","ERROR_DS_SRC_AND_DST_NC_IDENTICAL","Source and destination for the cross-domain move operation are identical. Caller should use local move operation instead of cross-domain move operation." -"00002126","8486","-4294958810","ERROR_DS_DST_NC_MISMATCH","Source and destination for a cross-domain move are not in agreement on the naming contexts in the forest. Either source or destination does not have the latest version of the Partitions container." -"00002127","8487","-4294958809","ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC","Destination of a cross-domain move is not authoritative for the destination naming context." -"00002128","8488","-4294958808","ERROR_DS_SRC_GUID_MISMATCH","Source and destination of a cross-domain move do not agree on the identity of the source object. Either source or destination does not have the latest version of the source object." -"00002129","8489","-4294958807","ERROR_DS_CANT_MOVE_DELETED_OBJECT","Object being moved across-domains is already known to be deleted by the destination server. The source server does not have the latest version of the source object." -"0000212A","8490","-4294958806","ERROR_DS_PDC_OPERATION_IN_PROGRESS","Another operation which requires exclusive access to the PDC FSMO is already in progress." -"0000212B","8491","-4294958805","ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD","A cross-domain move operation failed such that two versions of the moved object exist - one each in the source and destination domains. The destination object needs to be removed to restore the system to a consistent state." -"0000212C","8492","-4294958804","ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION","This object may not be moved across domain boundaries either because cross-domain moves for this class are disallowed - or the object has some special characteristics - e.g.: trust account or restricted RID - which prevent its move." -"0000212D","8493","-4294958803","ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS","Can't move objects with memberships across domain boundaries as once moved - this would violate the membership conditions of the account group. Remove the object from any account group memberships and retry." -"0000212E","8494","-4294958802","ERROR_DS_NC_MUST_HAVE_NC_PARENT","A naming context head must be the immediate child of another naming context head - not of an interior node." -"0000212F","8495","-4294958801","ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE","The directory cannot validate the proposed naming context name because it does not hold a replica of the naming context above the proposed naming context. Please ensure that the domain naming master role is held by a server that is configured as a global catalog server - and that the server is up to date with its replication partners." -"00002131","8497","-4294958799","ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER","The operation cannot be performed because the server does not have an infrastructure container in the domain of interest." -"00002132","8498","-4294958798","ERROR_DS_CANT_MOVE_ACCOUNT_GROUP","Cross-domain move of non-empty account groups is not allowed." -"00002133","8499","-4294958797","ERROR_DS_CANT_MOVE_RESOURCE_GROUP","Cross-domain move of non-empty resource groups is not allowed." -"00002134","8500","-4294958796","ERROR_DS_INVALID_SEARCH_FLAG","The search flags for the attribute are invalid. The ANR bit is valid only on attributes of Unicode or Teletex strings." -"00002135","8501","-4294958795","ERROR_DS_NO_TREE_DELETE_ABOVE_NC","Tree deletions starting at an object which has an NC head as a descendant are not allowed." -"00002136","8502","-4294958794","ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE","The directory service failed to lock a tree in preparation for a tree deletion because the tree was in use." -"00002137","8503","-4294958793","ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE","The directory service failed to identify the list of objects to delete while attempting a tree deletion." -"00002138","8504","-4294958792","ERROR_DS_SAM_INIT_FAILURE","Security Accounts Manager initialization failed because of the following error: %1. Error Status: 0000%2. Please shutdown this system and reboot into Directory Services Restore Mode - check the event log for more detailed information." -"00002139","8505","-4294958791","ERROR_DS_SENSITIVE_GROUP_VIOLATION","Only an administrator can modify the membership list of an administrative group." -"0000213A","8506","-4294958790","ERROR_DS_CANT_MOD_PRIMARYGROUPID","Cannot change the primary group ID of a domain controller account." -"0000213B","8507","-4294958789","ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD","An attempt is made to modify the base schema." -"0000213C","8508","-4294958788","ERROR_DS_NONSAFE_SCHEMA_CHANGE","Adding a new mandatory attribute to an existing class - deleting a mandatory attribute from an existing class - or adding an optional attribute to the special class Top that is not a backlink attribute" -"0000213D","8509","-4294958787","ERROR_DS_SCHEMA_UPDATE_DISALLOWED","Schema update is not allowed on this DC because the DC is not the schema FSMO Role Owner." -"0000213E","8510","-4294958786","ERROR_DS_CANT_CREATE_UNDER_SCHEMA","An object of this class cannot be created under the schema container. You can only create attribute-schema and class-schema objects under the schema container." -"0000213F","8511","-4294958785","ERROR_DS_INSTALL_NO_SRC_SCH_VERSION","The replica/child install failed to get the objectVersion attribute on the schema container on the source DC. Either the attribute is missing on the schema container or the credentials supplied do not have permission to read it." -"00002140","8512","-4294958784","ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE","The replica/child install failed to read the objectVersion attribute in the SCHEMA section of the file schema.ini in the system32 directory." -"00002141","8513","-4294958783","ERROR_DS_INVALID_GROUP_TYPE","The specified group type is invalid." -"00002142","8514","-4294958782","ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN","You cannot nest global groups in a mixed domain if the group is security-enabled." -"00002143","8515","-4294958781","ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN","You cannot nest local groups in a mixed domain if the group is security-enabled." -"00002144","8516","-4294958780","ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER","A global group cannot have a local group as a member." -"00002145","8517","-4294958779","ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER","A global group cannot have a universal group as a member." -"00002146","8518","-4294958778","ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER","A universal group cannot have a local group as a member." -"00002147","8519","-4294958777","ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER","A global group cannot have a cross-domain member." -"00002148","8520","-4294958776","ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER","A local group cannot have another cross domain local group as a member." -"00002149","8521","-4294958775","ERROR_DS_HAVE_PRIMARY_MEMBERS","A group with primary members cannot change to a security-disabled group." -"0000214A","8522","-4294958774","ERROR_DS_STRING_SD_CONVERSION_FAILED","The schema cache load failed to convert the string default SD on a class-schema object." -"0000214B","8523","-4294958773","ERROR_DS_NAMING_MASTER_GC","Only DSAs configured to be Global Catalog servers should be allowed to hold the Domain Naming Master FSMO role." -"0000214D","8525","-4294958771","ERROR_DS_COULDNT_UPDATE_SPNS","While processing a change to the DNS Host Name for an object - the Service Principal Name values could not be kept in sync." -"0000214E","8526","-4294958770","ERROR_DS_CANT_RETRIEVE_SD","The Security Descriptor attribute could not be read." -"0000214F","8527","-4294958769","ERROR_DS_KEY_NOT_UNIQUE","The object requested was not found - but an object with that key was found." -"00002150","8528","-4294958768","ERROR_DS_WRONG_LINKED_ATT_SYNTAX","The syntax of the linked attribute being added is incorrect. Forward links can only have syntax 2.5.5.1 - 2.5.5.7 - and 2.5.5.14 - and backlinks can only have syntax 2.5.5.1." -"00002151","8529","-4294958767","ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD","Security Account Manager needs to get the boot password." -"00002152","8530","-4294958766","ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY","Security Account Manager needs to get the boot key from floppy disk." -"00002153","8531","-4294958765","ERROR_DS_CANT_START","Directory Service cannot start." -"00002154","8532","-4294958764","ERROR_DS_INIT_FAILURE","Directory Services could not start." -"00002155","8533","-4294958763","ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION","The connection between client and server requires packet privacy or better." -"00002156","8534","-4294958762","ERROR_DS_SOURCE_DOMAIN_IN_FOREST","The source domain may not be in the same forest as destination." -"00002157","8535","-4294958761","ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST","The destination domain must be in the forest." -"00002158","8536","-4294958760","ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED","The operation requires that destination domain auditing be enabled." -"00002159","8537","-4294958759","ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN","The operation couldn't locate a DC for the source domain." -"0000215A","8538","-4294958758","ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER","The source object must be a group or user." -"0000215B","8539","-4294958757","ERROR_DS_SRC_SID_EXISTS_IN_FOREST","The source object's SID already exists in destination forest." -"0000215C","8540","-4294958756","ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH","The source and destination object must be of the same type." -"0000215D","8541","-4294958755","ERROR_SAM_INIT_FAILURE","Security Accounts Manager initialization failed because of the following error: %1. Error Status: 0000%2. Click OK to shut down the system and reboot into Safe Mode. Check the event log for detailed information." -"0000215E","8542","-4294958754","ERROR_DS_DRA_SCHEMA_INFO_SHIP","Schema information could not be included in the replication request." -"0000215F","8543","-4294958753","ERROR_DS_DRA_SCHEMA_CONFLICT","The replication operation could not be completed due to a schema incompatibility." -"00002160","8544","-4294958752","ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT","The replication operation could not be completed due to a previous schema incompatibility." -"00002161","8545","-4294958751","ERROR_DS_DRA_OBJ_NC_MISMATCH","The replication update could not be applied because either the source or the destination has not yet received information regarding a recent cross-domain move operation." -"00002162","8546","-4294958750","ERROR_DS_NC_STILL_HAS_DSAS","The requested domain could not be deleted because there exist domain controllers that still host this domain." -"00002163","8547","-4294958749","ERROR_DS_GC_REQUIRED","The requested operation can be performed only on a global catalog server." -"00002164","8548","-4294958748","ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY","A local group can only be a member of other local groups in the same domain." -"00002165","8549","-4294958747","ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS","Foreign security principals cannot be members of universal groups." -"00002166","8550","-4294958746","ERROR_DS_CANT_ADD_TO_GC","The attribute is not allowed to be replicated to the GC because of security reasons." -"00002167","8551","-4294958745","ERROR_DS_NO_CHECKPOINT_WITH_PDC","The checkpoint with the PDC could not be taken because there too many modifications being processed currently." -"00002168","8552","-4294958744","ERROR_DS_SOURCE_AUDITING_NOT_ENABLED","The operation requires that source domain auditing be enabled." -"00002169","8553","-4294958743","ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC","Security principal objects can only be created inside domain naming contexts." -"0000216A","8554","-4294958742","ERROR_DS_INVALID_NAME_FOR_SPN","A Service Principal Name" -"0000216B","8555","-4294958741","ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS","A Filter was passed that uses constructed attributes." -"0000216C","8556","-4294958740","ERROR_DS_UNICODEPWD_NOT_IN_QUOTES","The unicodePwd attribute value must be enclosed in double quotes." -"0000216D","8557","-4294958739","ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED","Your computer could not be joined to the domain. You have exceeded the maximum number of computer accounts you are allowed to create in this domain. Contact your system administrator to have this limit reset or increased." -"0000216E","8558","-4294958738","ERROR_DS_MUST_BE_RUN_ON_DST_DC","For security reasons - the operation must be run on the destination DC." -"0000216F","8559","-4294958737","ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER","For security reasons - the source DC must be NT4SP4 or greater." -"00002170","8560","-4294958736","ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ","Critical Directory Service System objects cannot be deleted during tree delete operations. The tree delete may have been partially performed." -"00002171","8561","-4294958735","ERROR_DS_INIT_FAILURE_CONSOLE","Directory Services could not start because of the following error: %1. Error Status: 0000%2. Please click OK to shutdown the system. You can use the recovery console to diagnose the system further." -"00002172","8562","-4294958734","ERROR_DS_SAM_INIT_FAILURE_CONSOLE","Security Accounts Manager initialization failed because of the following error: %1. Error Status: 0000%2. Please click OK to shutdown the system. You can use the recovery console to diagnose the system further." -"00002173","8563","-4294958733","ERROR_DS_FOREST_VERSION_TOO_HIGH","The version of the operating system is incompatible with the current AD DS forest functional level or AD LDS Configuration Set functional level. You must upgrade to a new version of the operating system before this server can become an AD DS Domain Controller or add an AD LDS Instance in this AD DS Forest or AD LDS Configuration Set." -"00002174","8564","-4294958732","ERROR_DS_DOMAIN_VERSION_TOO_HIGH","The version of the operating system installed is incompatible with the current domain functional level. You must upgrade to a new version of the operating system before this server can become a domain controller in this domain." -"00002175","8565","-4294958731","ERROR_DS_FOREST_VERSION_TOO_LOW","The version of the operating system installed on this server no longer supports the current AD DS Forest functional level or AD LDS Configuration Set functional level. You must raise the AD DS Forest functional level or AD LDS Configuration Set functional level before this server can become an AD DS Domain Controller or an AD LDS Instance in this Forest or Configuration Set." -"00002176","8566","-4294958730","ERROR_DS_DOMAIN_VERSION_TOO_LOW","The version of the operating system installed on this server no longer supports the current domain functional level. You must raise the domain functional level before this server can become a domain controller in this domain." -"00002177","8567","-4294958729","ERROR_DS_INCOMPATIBLE_VERSION","The version of the operating system installed on this server is incompatible with the functional level of the domain or forest." -"00002178","8568","-4294958728","ERROR_DS_LOW_DSA_VERSION","The functional level of the domain" -"00002179","8569","-4294958727","ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN","The forest functional level cannot be raised to the requested value since one or more domains are still in mixed domain mode. All domains in the forest must be in native mode - for you to raise the forest functional level." -"0000217A","8570","-4294958726","ERROR_DS_NOT_SUPPORTED_SORT_ORDER","The sort order requested is not supported." -"0000217B","8571","-4294958725","ERROR_DS_NAME_NOT_UNIQUE","The requested name already exists as a unique identifier." -"0000217C","8572","-4294958724","ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4","The machine account was created pre-NT4. The account needs to be recreated." -"0000217D","8573","-4294958723","ERROR_DS_OUT_OF_VERSION_STORE","The database is out of version store." -"0000217E","8574","-4294958722","ERROR_DS_INCOMPATIBLE_CONTROLS_USED","Unable to continue operation because multiple conflicting controls were used." -"0000217F","8575","-4294958721","ERROR_DS_NO_REF_DOMAIN","Unable to find a valid security descriptor reference domain for this partition." -"00002180","8576","-4294958720","ERROR_DS_RESERVED_LINK_ID","Schema update failed: The link identifier is reserved." -"00002181","8577","-4294958719","ERROR_DS_LINK_ID_NOT_AVAILABLE","Schema update failed: There are no link identifiers available." -"00002182","8578","-4294958718","ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER","An account group cannot have a universal group as a member." -"00002183","8579","-4294958717","ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE","Rename or move operations on naming context heads or read-only objects are not allowed." -"00002184","8580","-4294958716","ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC","Move operations on objects in the schema naming context are not allowed." -"00002185","8581","-4294958715","ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG","A system flag has been set on the object and does not allow the object to be moved or renamed." -"00002186","8582","-4294958714","ERROR_DS_MODIFYDN_WRONG_GRANDPARENT","This object is not allowed to change its grandparent container. Moves are not forbidden on this object - but are restricted to sibling containers." -"00002187","8583","-4294958713","ERROR_DS_NAME_ERROR_TRUST_REFERRAL","Unable to resolve completely - a referral to another forest is generated." -"00002188","8584","-4294958712","ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER","The requested action is not supported on standard server." -"00002189","8585","-4294958711","ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD","Could not access a partition of the directory service located on a remote server. Make sure at least one server is running for the partition in question." -"0000218A","8586","-4294958710","ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2","The directory cannot validate the proposed naming context" -"0000218B","8587","-4294958709","ERROR_DS_THREAD_LIMIT_EXCEEDED","The thread limit for this request was exceeded." -"0000218C","8588","-4294958708","ERROR_DS_NOT_CLOSEST","The Global catalog server is not in the closest site." -"0000218D","8589","-4294958707","ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF","The DS cannot derive a service principal name" -"0000218E","8590","-4294958706","ERROR_DS_SINGLE_USER_MODE_FAILED","The Directory Service failed to enter single user mode." -"0000218F","8591","-4294958705","ERROR_DS_NTDSCRIPT_SYNTAX_ERROR","The Directory Service cannot parse the script because of a syntax error." -"00002190","8592","-4294958704","ERROR_DS_NTDSCRIPT_PROCESS_ERROR","The Directory Service cannot process the script because of an error." -"00002191","8593","-4294958703","ERROR_DS_DIFFERENT_REPL_EPOCHS","The directory service cannot perform the requested operation because the servers involved are of different replication epochs" -"00002192","8594","-4294958702","ERROR_DS_DRS_EXTENSIONS_CHANGED","The directory service binding must be renegotiated due to a change in the server extensions information." -"00002193","8595","-4294958701","ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR","Operation not allowed on a disabled cross ref." -"00002194","8596","-4294958700","ERROR_DS_NO_MSDS_INTID","Schema update failed: No values for msDS-IntId are available." -"00002195","8597","-4294958699","ERROR_DS_DUP_MSDS_INTID","Schema update failed: Duplicate msDS-INtId. Retry the operation." -"00002196","8598","-4294958698","ERROR_DS_EXISTS_IN_RDNATTID","Schema deletion failed: attribute is used in rDNAttID." -"00002197","8599","-4294958697","ERROR_DS_AUTHORIZATION_FAILED","The directory service failed to authorize the request." -"00002198","8600","-4294958696","ERROR_DS_INVALID_SCRIPT","The Directory Service cannot process the script because it is invalid." -"00002199","8601","-4294958695","ERROR_DS_REMOTE_CROSSREF_OP_FAILED","The remote create cross reference operation failed on the Domain Naming Master FSMO. The operation's error is in the extended data." -"0000219A","8602","-4294958694","ERROR_DS_CROSS_REF_BUSY","A cross reference is in use locally with the same name." -"0000219B","8603","-4294958693","ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN","The DS cannot derive a service principal name" -"0000219C","8604","-4294958692","ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC","Writeable NCs prevent this DC from demoting." -"0000219D","8605","-4294958691","ERROR_DS_DUPLICATE_ID_FOUND","The requested object has a non-unique identifier and cannot be retrieved." -"0000219E","8606","-4294958690","ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT","Insufficient attributes were given to create an object. This object may not exist because it may have been deleted and already garbage collected." -"0000219F","8607","-4294958689","ERROR_DS_GROUP_CONVERSION_ERROR","The group cannot be converted due to attribute restrictions on the requested group type." -"000021A0","8608","-4294958688","ERROR_DS_CANT_MOVE_APP_BASIC_GROUP","Cross-domain move of non-empty basic application groups is not allowed." -"000021A1","8609","-4294958687","ERROR_DS_CANT_MOVE_APP_QUERY_GROUP","Cross-domain move of non-empty query based application groups is not allowed." -"000021A2","8610","-4294958686","ERROR_DS_ROLE_NOT_VERIFIED","The FSMO role ownership could not be verified because its directory partition has not replicated successfully with at least one replication partner." -"000021A3","8611","-4294958685","ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL","The target container for a redirection of a well known object container cannot already be a special container." -"000021A4","8612","-4294958684","ERROR_DS_DOMAIN_RENAME_IN_PROGRESS","The Directory Service cannot perform the requested operation because a domain rename operation is in progress." -"000021A5","8613","-4294958683","ERROR_DS_EXISTING_AD_CHILD_NC","The directory service detected a child partition below the requested partition name. The partition hierarchy must be created in a top down method." -"000021A6","8614","-4294958682","ERROR_DS_REPL_LIFETIME_EXCEEDED","The directory service cannot replicate with this server because the time since the last replication with this server has exceeded the tombstone lifetime." -"000021A7","8615","-4294958681","ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER","The requested operation is not allowed on an object under the system container." -"000021A8","8616","-4294958680","ERROR_DS_LDAP_SEND_QUEUE_FULL","The LDAP servers network send queue has filled up because the client is not processing the results of its requests fast enough. No more requests will be processed until the client catches up. If the client does not catch up then it will be disconnected." -"000021A9","8617","-4294958679","ERROR_DS_DRA_OUT_SCHEDULE_WINDOW","The scheduled replication did not take place because the system was too busy to execute the request within the schedule window. The replication queue is overloaded. Consider reducing the number of partners or decreasing the scheduled replication frequency." -"000021AA","8618","-4294958678","ERROR_DS_POLICY_NOT_KNOWN","At this time - it cannot be determined if the branch replication policy is available on the hub domain controller. Please retry at a later time to account for replication latencies." -"000021AB","8619","-4294958677","ERROR_NO_SITE_SETTINGS_OBJECT","The site settings object for the specified site does not exist." -"000021AC","8620","-4294958676","ERROR_NO_SECRETS","The local account store does not contain secret material for the specified account." -"000021AD","8621","-4294958675","ERROR_NO_WRITABLE_DC_FOUND","Could not find a writable domain controller in the domain." -"000021AE","8622","-4294958674","ERROR_DS_NO_SERVER_OBJECT","The server object for the domain controller does not exist." -"000021AF","8623","-4294958673","ERROR_DS_NO_NTDSA_OBJECT","The NTDS Settings object for the domain controller does not exist." -"000021B0","8624","-4294958672","ERROR_DS_NON_ASQ_SEARCH","The requested search operation is not supported for ASQ searches." -"000021B1","8625","-4294958671","ERROR_DS_AUDIT_FAILURE","A required audit event could not be generated for the operation." -"000021B2","8626","-4294958670","ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE","The search flags for the attribute are invalid. The subtree index bit is valid only on single valued attributes." -"000021B3","8627","-4294958669","ERROR_DS_INVALID_SEARCH_FLAG_TUPLE","The search flags for the attribute are invalid. The tuple index bit is valid only on attributes of Unicode strings." -"000021B4","8628","-4294958668","ERROR_DS_HIERARCHY_TABLE_TOO_DEEP","The address books are nested too deeply. Failed to build the hierarchy table." -"000021B5","8629","-4294958667","ERROR_DS_DRA_CORRUPT_UTD_VECTOR","The specified up-to-date-ness vector is corrupt." -"000021B6","8630","-4294958666","ERROR_DS_DRA_SECRETS_DENIED","The request to replicate secrets is denied." -"000021B7","8631","-4294958665","ERROR_DS_RESERVED_MAPI_ID","Schema update failed: The MAPI identifier is reserved." -"000021B8","8632","-4294958664","ERROR_DS_MAPI_ID_NOT_AVAILABLE","Schema update failed: There are no MAPI identifiers available." -"000021B9","8633","-4294958663","ERROR_DS_DRA_MISSING_KRBTGT_SECRET","The replication operation failed because the required attributes of the local krbtgt object are missing." -"000021BA","8634","-4294958662","ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST","The domain name of the trusted domain already exists in the forest." -"000021BB","8635","-4294958661","ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST","The flat name of the trusted domain already exists in the forest." -"000021BC","8636","-4294958660","ERROR_INVALID_USER_PRINCIPAL_NAME","The User Principal Name" -"000021BD","8637","-4294958659","ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS","OID mapped groups cannot have members." -"000021BE","8638","-4294958658","ERROR_DS_OID_NOT_FOUND","The specified OID cannot be found." -"000021BF","8639","-4294958657","ERROR_DS_DRA_RECYCLED_TARGET","The replication operation failed because the target object referred by a link value is recycled." -"000021C0","8640","-4294958656","ERROR_DS_DISALLOWED_NC_REDIRECT","The redirect operation failed because the target object is in a NC different from the domain NC of the current domain controller." -"000021C1","8641","-4294958655","ERROR_DS_HIGH_ADLDS_FFL","The functional level of the AD LDS configuration set cannot be lowered to the requested value." -"000021C2","8642","-4294958654","ERROR_DS_HIGH_DSA_VERSION","The functional level of the domain" -"000021C3","8643","-4294958653","ERROR_DS_LOW_ADLDS_FFL","The functional level of the AD LDS configuration set cannot be raised to the requested value - because there exist one or more ADLDS instances that are at a lower incompatible functional level." -"000021C4","8644","-4294958652","ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION","The domain join cannot be completed because the SID of the domain you attempted to join was identical to the SID of this machine. This is a symptom of an improperly cloned operating system install. You should run sysprep on this machine in order to generate a new machine SID. Please see https://go.microsoft.com/fwlink/p/?linkid=168895 for more information." -"000021C5","8645","-4294958651","ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED","The undelete operation failed because the Sam Account Name or Additional Sam Account Name of the object being undeleted conflicts with an existing live object." -"000021C6","8646","-4294958650","ERROR_INCORRECT_ACCOUNT_TYPE","The system is not authoritative for the specified account and therefore cannot complete the operation. Please retry the operation using the provider associated with this account. If this is an online provider please use the provider's online site." -"0000229A","-4294958438","8858","NULL","" -"000022CA","-4294958390","8906","NULL","" -"0000230B","-4294958325","8971","NULL","" -"00002329","9001","-4294958295","DNS_ERROR_RCODE_FORMAT_ERROR","DNS server unable to interpret format." -"0000232A","9002","-4294958294","DNS_ERROR_RCODE_SERVER_FAILURE","DNS server failure." -"0000232B","9003","-4294958293","DNS_ERROR_RCODE_NAME_ERROR","DNS name does not exist." -"0000232C","9004","-4294958292","DNS_ERROR_RCODE_NOT_IMPLEMENTED","DNS request not supported by name server." -"0000232D","9005","-4294958291","DNS_ERROR_RCODE_REFUSED","DNS operation refused." -"0000232E","9006","-4294958290","DNS_ERROR_RCODE_YXDOMAIN","DNS name that ought not exist - does exist." -"0000232F","9007","-4294958289","DNS_ERROR_RCODE_YXRRSET","DNS RR set that ought not exist - does exist." -"00002330","9008","-4294958288","DNS_ERROR_RCODE_NXRRSET","DNS RR set that ought to exist - does not exist." -"00002331","9009","-4294958287","DNS_ERROR_RCODE_NOTAUTH","DNS server not authoritative for zone." -"00002332","9010","-4294958286","DNS_ERROR_RCODE_NOTZONE","DNS name in update or prereq is not in zone." -"00002338","9016","-4294958280","DNS_ERROR_RCODE_BADSIG","DNS signature failed to verify." -"00002339","9017","-4294958279","DNS_ERROR_RCODE_BADKEY","DNS bad key." -"0000233A","9018","-4294958278","DNS_ERROR_RCODE_BADTIME","DNS signature validity expired." -"0000238D","9101","-4294958195","DNS_ERROR_KEYMASTER_REQUIRED","Only the DNS server acting as the key master for the zone may perform this operation." -"0000238E","9102","-4294958194","DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE","This operation is not allowed on a zone that is signed or has signing keys." -"0000238F","9103","-4294958193","DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1","NSEC3 is not compatible with the RSA-SHA-1 algorithm. Choose a different algorithm or use NSEC." -"00002391","9105","-4294958191","DNS_ERROR_UNSUPPORTED_ALGORITHM","The specified algorithm is not supported." -"00002392","9106","-4294958190","DNS_ERROR_INVALID_KEY_SIZE","The specified key size is not supported." -"00002393","9107","-4294958189","DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE","One or more of the signing keys for a zone are not accessible to the DNS server. Zone signing will not be operational until this error is resolved." -"00002394","9108","-4294958188","DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION","The specified key storage provider does not support DPAPI++ data protection. Zone signing will not be operational until this error is resolved." -"00002395","9109","-4294958187","DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR","An unexpected DPAPI++ error was encountered. Zone signing will not be operational until this error is resolved." -"00002396","9110","-4294958186","DNS_ERROR_UNEXPECTED_CNG_ERROR","An unexpected crypto error was encountered. Zone signing may not be operational until this error is resolved." -"00002397","9111","-4294958185","DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION","The DNS server encountered a signing key with an unknown version. Zone signing will not be operational until this error is resolved." -"00002398","9112","-4294958184","DNS_ERROR_KSP_NOT_ACCESSIBLE","The specified key service provider cannot be opened by the DNS server." -"00002399","9113","-4294958183","DNS_ERROR_TOO_MANY_SKDS","The DNS server cannot accept any more signing keys with the specified algorithm and KSK flag value for this zone." -"0000239A","9114","-4294958182","DNS_ERROR_INVALID_ROLLOVER_PERIOD","The specified rollover period is invalid." -"0000239B","9115","-4294958181","DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET","The specified initial rollover offset is invalid." -"0000239C","9116","-4294958180","DNS_ERROR_ROLLOVER_IN_PROGRESS","The specified signing key is already in process of rolling over keys." -"0000239D","9117","-4294958179","DNS_ERROR_STANDBY_KEY_NOT_PRESENT","The specified signing key does not have a standby key to revoke." -"0000239E","9118","-4294958178","DNS_ERROR_NOT_ALLOWED_ON_ZSK","This operation is not allowed on a zone signing key" -"0000239F","9119","-4294958177","DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD","This operation is not allowed on an active signing key." -"000023A0","9120","-4294958176","DNS_ERROR_ROLLOVER_ALREADY_QUEUED","The specified signing key is already queued for rollover." -"000023A1","9121","-4294958175","DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE","This operation is not allowed on an unsigned zone." -"000023A2","9122","-4294958174","DNS_ERROR_BAD_KEYMASTER","This operation could not be completed because the DNS server listed as the current key master for this zone is down or misconfigured. Resolve the problem on the current key master for this zone or use another DNS server to seize the key master role." -"000023A3","9123","-4294958173","DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD","The specified signature validity period is invalid." -"000023A4","9124","-4294958172","DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT","The specified NSEC3 iteration count is higher than allowed by the minimum key length used in the zone." -"000023A5","9125","-4294958171","DNS_ERROR_DNSSEC_IS_DISABLED","This operation could not be completed because the DNS server has been configured with DNSSEC features disabled. Enable DNSSEC on the DNS server." -"000023A6","9126","-4294958170","DNS_ERROR_INVALID_XML","This operation could not be completed because the XML stream received is empty or syntactically invalid." -"000023A7","9127","-4294958169","DNS_ERROR_NO_VALID_TRUST_ANCHORS","This operation completed - but no trust anchors were added because all of the trust anchors received were either invalid - unsupported - expired - or would not become valid in less than 30 days." -"000023A8","9128","-4294958168","DNS_ERROR_ROLLOVER_NOT_POKEABLE","The specified signing key is not waiting for parental DS update." -"000023A9","9129","-4294958167","DNS_ERROR_NSEC3_NAME_COLLISION","Hash collision detected during NSEC3 signing. Specify a different user-provided salt - or use a randomly generated salt - and attempt to sign the zone again." -"000023AA","9130","-4294958166","DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1","NSEC is not compatible with the NSEC3-RSA-SHA-1 algorithm. Choose a different algorithm or use NSEC3." -"0000251D","9501","-4294957795","DNS_INFO_NO_RECORDS","No records found for given DNS query." -"0000251E","9502","-4294957794","DNS_ERROR_BAD_PACKET","Bad DNS packet." -"0000251F","9503","-4294957793","DNS_ERROR_NO_PACKET","No DNS packet." -"00002520","9504","-4294957792","DNS_ERROR_RCODE","DNS error - check rcode." -"00002521","9505","-4294957791","DNS_ERROR_UNSECURE_PACKET","Unsecured DNS packet." -"00002522","9506","-4294957790","DNS_REQUEST_PENDING","DNS query request is pending." -"0000254F","9551","-4294957745","DNS_ERROR_INVALID_TYPE","Invalid DNS type." -"00002550","9552","-4294957744","DNS_ERROR_INVALID_IP_ADDRESS","Invalid IP address." -"00002551","9553","-4294957743","DNS_ERROR_INVALID_PROPERTY","Invalid property." -"00002552","9554","-4294957742","DNS_ERROR_TRY_AGAIN_LATER","Try DNS operation again later." -"00002553","9555","-4294957741","DNS_ERROR_NOT_UNIQUE","Record for given name and type is not unique." -"00002554","9556","-4294957740","DNS_ERROR_NON_RFC_NAME","DNS name does not comply with RFC specifications." -"00002555","9557","-4294957739","DNS_STATUS_FQDN","DNS name is a fully-qualified DNS name." -"00002556","9558","-4294957738","DNS_STATUS_DOTTED_NAME","DNS name is dotted" -"00002557","9559","-4294957737","DNS_STATUS_SINGLE_PART_NAME","DNS name is a single-part name." -"00002558","9560","-4294957736","DNS_ERROR_INVALID_NAME_CHAR","DNS name contains an invalid character." -"00002559","9561","-4294957735","DNS_ERROR_NUMERIC_NAME","DNS name is entirely numeric." -"0000255A","9562","-4294957734","DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER","The operation requested is not permitted on a DNS root server." -"0000255B","9563","-4294957733","DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION","The record could not be created because this part of the DNS namespace has been delegated to another server." -"0000255C","9564","-4294957732","DNS_ERROR_CANNOT_FIND_ROOT_HINTS","The DNS server could not find a set of root hints." -"0000255D","9565","-4294957731","DNS_ERROR_INCONSISTENT_ROOT_HINTS","The DNS server found root hints but they were not consistent across all adapters." -"0000255E","9566","-4294957730","DNS_ERROR_DWORD_VALUE_TOO_SMALL","The specified value is too small for this parameter." -"0000255F","9567","-4294957729","DNS_ERROR_DWORD_VALUE_TOO_LARGE","The specified value is too large for this parameter." -"00002560","9568","-4294957728","DNS_ERROR_BACKGROUND_LOADING","This operation is not allowed while the DNS server is loading zones in the background. Please try again later." -"00002561","9569","-4294957727","DNS_ERROR_NOT_ALLOWED_ON_RODC","The operation requested is not permitted on against a DNS server running on a read-only DC." -"00002562","9570","-4294957726","DNS_ERROR_NOT_ALLOWED_UNDER_DNAME","No data is allowed to exist underneath a DNAME record." -"00002563","9571","-4294957725","DNS_ERROR_DELEGATION_REQUIRED","This operation requires credentials delegation." -"00002564","9572","-4294957724","DNS_ERROR_INVALID_POLICY_TABLE","Name resolution policy table has been corrupted. DNS resolution will fail until it is fixed. Contact your network administrator." -"00002581","9601","-4294957695","DNS_ERROR_ZONE_DOES_NOT_EXIST","DNS zone does not exist." -"00002582","9602","-4294957694","DNS_ERROR_NO_ZONE_INFO","DNS zone information not available." -"00002583","9603","-4294957693","DNS_ERROR_INVALID_ZONE_OPERATION","Invalid operation for DNS zone." -"00002584","9604","-4294957692","DNS_ERROR_ZONE_CONFIGURATION_ERROR","Invalid DNS zone configuration." -"00002585","9605","-4294957691","DNS_ERROR_ZONE_HAS_NO_SOA_RECORD","DNS zone has no start of authority" -"00002586","9606","-4294957690","DNS_ERROR_ZONE_HAS_NO_NS_RECORDS","DNS zone has no Name Server" -"00002587","9607","-4294957689","DNS_ERROR_ZONE_LOCKED","DNS zone is locked." -"00002588","9608","-4294957688","DNS_ERROR_ZONE_CREATION_FAILED","DNS zone creation failed." -"00002589","9609","-4294957687","DNS_ERROR_ZONE_ALREADY_EXISTS","DNS zone already exists." -"0000258A","9610","-4294957686","DNS_ERROR_AUTOZONE_ALREADY_EXISTS","DNS automatic zone already exists." -"0000258B","9611","-4294957685","DNS_ERROR_INVALID_ZONE_TYPE","Invalid DNS zone type." -"0000258C","9612","-4294957684","DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP","Secondary DNS zone requires master IP address." -"0000258D","9613","-4294957683","DNS_ERROR_ZONE_NOT_SECONDARY","DNS zone not secondary." -"0000258E","9614","-4294957682","DNS_ERROR_NEED_SECONDARY_ADDRESSES","Need secondary IP address." -"0000258F","9615","-4294957681","DNS_ERROR_WINS_INIT_FAILED","WINS initialization failed." -"00002590","9616","-4294957680","DNS_ERROR_NEED_WINS_SERVERS","Need WINS servers." -"00002591","9617","-4294957679","DNS_ERROR_NBSTAT_INIT_FAILED","NBTSTAT initialization call failed." -"00002592","9618","-4294957678","DNS_ERROR_SOA_DELETE_INVALID","Invalid delete of start of authority" -"00002593","9619","-4294957677","DNS_ERROR_FORWARDER_ALREADY_EXISTS","A conditional forwarding zone already exists for that name." -"00002594","9620","-4294957676","DNS_ERROR_ZONE_REQUIRES_MASTER_IP","This zone must be configured with one or more master DNS server IP addresses." -"00002595","9621","-4294957675","DNS_ERROR_ZONE_IS_SHUTDOWN","The operation cannot be performed because this zone is shut down." -"00002596","9622","-4294957674","DNS_ERROR_ZONE_LOCKED_FOR_SIGNING","This operation cannot be performed because the zone is currently being signed. Please try again later." -"000025B3","9651","-4294957645","DNS_ERROR_PRIMARY_REQUIRES_DATAFILE","Primary DNS zone requires datafile." -"000025B4","9652","-4294957644","DNS_ERROR_INVALID_DATAFILE_NAME","Invalid datafile name for DNS zone." -"000025B5","9653","-4294957643","DNS_ERROR_DATAFILE_OPEN_FAILURE","Failed to open datafile for DNS zone." -"000025B6","9654","-4294957642","DNS_ERROR_FILE_WRITEBACK_FAILED","Failed to write datafile for DNS zone." -"000025B7","9655","-4294957641","DNS_ERROR_DATAFILE_PARSING","Failure while reading datafile for DNS zone." -"000025E5","9701","-4294957595","DNS_ERROR_RECORD_DOES_NOT_EXIST","DNS record does not exist." -"000025E6","9702","-4294957594","DNS_ERROR_RECORD_FORMAT","DNS record format error." -"000025E7","9703","-4294957593","DNS_ERROR_NODE_CREATION_FAILED","Node creation failure in DNS." -"000025E8","9704","-4294957592","DNS_ERROR_UNKNOWN_RECORD_TYPE","Unknown DNS record type." -"000025E9","9705","-4294957591","DNS_ERROR_RECORD_TIMED_OUT","DNS record timed out." -"000025EA","9706","-4294957590","DNS_ERROR_NAME_NOT_IN_ZONE","Name not in DNS zone." -"000025EB","9707","-4294957589","DNS_ERROR_CNAME_LOOP","CNAME loop detected." -"000025EC","9708","-4294957588","DNS_ERROR_NODE_IS_CNAME","Node is a CNAME DNS record." -"000025ED","9709","-4294957587","DNS_ERROR_CNAME_COLLISION","A CNAME record already exists for given name." -"000025EE","9710","-4294957586","DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT","Record only at DNS zone root." -"000025EF","9711","-4294957585","DNS_ERROR_RECORD_ALREADY_EXISTS","DNS record already exists." -"000025F0","9712","-4294957584","DNS_ERROR_SECONDARY_DATA","Secondary DNS zone data error." -"000025F1","9713","-4294957583","DNS_ERROR_NO_CREATE_CACHE_DATA","Could not create DNS cache data." -"000025F2","9714","-4294957582","DNS_ERROR_NAME_DOES_NOT_EXIST","DNS name does not exist." -"000025F3","9715","-4294957581","DNS_WARNING_PTR_CREATE_FAILED","Could not create pointer" -"000025F4","9716","-4294957580","DNS_WARNING_DOMAIN_UNDELETED","DNS domain was undeleted." -"000025F5","9717","-4294957579","DNS_ERROR_DS_UNAVAILABLE","The directory service is unavailable." -"000025F6","9718","-4294957578","DNS_ERROR_DS_ZONE_ALREADY_EXISTS","DNS zone already exists in the directory service." -"000025F7","9719","-4294957577","DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE","DNS server not creating or reading the boot file for the directory service integrated DNS zone." -"000025F8","9720","-4294957576","DNS_ERROR_NODE_IS_DNAME","Node is a DNAME DNS record." -"000025F9","9721","-4294957575","DNS_ERROR_DNAME_COLLISION","A DNAME record already exists for given name." -"000025FA","9722","-4294957574","DNS_ERROR_ALIAS_LOOP","An alias loop has been detected with either CNAME or DNAME records." -"00002617","9751","-4294957545","DNS_INFO_AXFR_COMPLETE","DNS AXFR" -"00002618","9752","-4294957544","DNS_ERROR_AXFR","DNS zone transfer failed." -"00002619","9753","-4294957543","DNS_INFO_ADDED_LOCAL_WINS","Added local WINS server." -"00002649","9801","-4294957495","DNS_STATUS_CONTINUE_NEEDED","Secure update call needs to continue update request." -"0000267B","9851","-4294957445","DNS_ERROR_NO_TCPIP","TCP/IP network protocol not installed." -"0000267C","9852","-4294957444","DNS_ERROR_NO_DNS_SERVERS","No DNS servers configured for local system." -"00002685","-4294957435","9861","NULL","" -"000026AD","9901","-4294957395","DNS_ERROR_DP_DOES_NOT_EXIST","The specified directory partition does not exist." -"000026AE","9902","-4294957394","DNS_ERROR_DP_ALREADY_EXISTS","The specified directory partition already exists." -"000026AF","9903","-4294957393","DNS_ERROR_DP_NOT_ENLISTED","This DNS server is not enlisted in the specified directory partition." -"000026B0","9904","-4294957392","DNS_ERROR_DP_ALREADY_ENLISTED","This DNS server is already enlisted in the specified directory partition." -"000026B1","9905","-4294957391","DNS_ERROR_DP_NOT_AVAILABLE","The directory partition is not available at this time. Please wait a few minutes and try again." -"000026B2","9906","-4294957390","DNS_ERROR_DP_FSMO_ERROR","The operation failed because the domain naming master FSMO role could not be reached. The domain controller holding the domain naming master FSMO role is down or unable to service the request or is not running Windows Server 2003 or later." -"00002714","10004","-4294957292","WSAEINTR","A blocking operation was interrupted by a call to WSACancelBlockingCall." -"00002719","10009","-4294957287","WSAEBADF","The file handle supplied is not valid." -"0000271D","10013","-4294957283","WSAEACCES","An attempt was made to access a socket in a way forbidden by its access permissions." -"0000271E","10014","-4294957282","WSAEFAULT","The system detected an invalid pointer address in attempting to use a pointer argument in a call." -"00002726","10022","-4294957274","WSAEINVAL","An invalid argument was supplied." -"00002728","10024","-4294957272","WSAEMFILE","Too many open sockets." -"00002733","10035","-4294957261","WSAEWOULDBLOCK","A non-blocking socket operation could not be completed immediately." -"00002734","10036","-4294957260","WSAEINPROGRESS","A blocking operation is currently executing." -"00002735","10037","-4294957259","WSAEALREADY","An operation was attempted on a non-blocking socket that already had an operation in progress." -"00002736","10038","-4294957258","WSAENOTSOCK","An operation was attempted on something that is not a socket." -"00002737","10039","-4294957257","WSAEDESTADDRREQ","A required address was omitted from an operation on a socket." -"00002738","10040","-4294957256","WSAEMSGSIZE","A message sent on a datagram socket was larger than the internal message buffer or some other network limit - or the buffer used to receive a datagram into was smaller than the datagram itself." -"00002739","10041","-4294957255","WSAEPROTOTYPE","A protocol was specified in the socket function call that does not support the semantics of the socket type requested." -"0000273A","10042","-4294957254","WSAENOPROTOOPT","An unknown - invalid - or unsupported option or level was specified in a getsockopt or setsockopt call." -"0000273B","10043","-4294957253","WSAEPROTONOSUPPORT","The requested protocol has not been configured into the system - or no implementation for it exists." -"0000273C","10044","-4294957252","WSAESOCKTNOSUPPORT","The support for the specified socket type does not exist in this address family." -"0000273D","10045","-4294957251","WSAEOPNOTSUPP","The attempted operation is not supported for the type of object referenced." -"0000273E","10046","-4294957250","WSAEPFNOSUPPORT","The protocol family has not been configured into the system or no implementation for it exists." -"0000273F","10047","-4294957249","WSAEAFNOSUPPORT","An address incompatible with the requested protocol was used." -"00002740","10048","-4294957248","WSAEADDRINUSE","Only one usage of each socket address" -"00002741","10049","-4294957247","WSAEADDRNOTAVAIL","The requested address is not valid in its context." -"00002742","10050","-4294957246","WSAENETDOWN","A socket operation encountered a dead network." -"00002743","10051","-4294957245","WSAENETUNREACH","A socket operation was attempted to an unreachable network." -"00002744","10052","-4294957244","WSAENETRESET","The connection has been broken due to keep-alive activity detecting a failure while the operation was in progress." -"00002745","10053","-4294957243","WSAECONNABORTED","An established connection was aborted by the software in your host machine." -"00002746","10054","-4294957242","WSAECONNRESET","An existing connection was forcibly closed by the remote host." -"00002747","10055","-4294957241","WSAENOBUFS","An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full." -"00002748","10056","-4294957240","WSAEISCONN","A connect request was made on an already connected socket." -"00002749","10057","-4294957239","WSAENOTCONN","A request to send or receive data was disallowed because the socket is not connected and" -"0000274A","10058","-4294957238","WSAESHUTDOWN","A request to send or receive data was disallowed because the socket had already been shut down in that direction with a previous shutdown call." -"0000274B","10059","-4294957237","WSAETOOMANYREFS","Too many references to some kernel object." -"0000274C","10060","-4294957236","WSAETIMEDOUT","A connection attempt failed because the connected party did not properly respond after a period of time - or established connection failed because connected host has failed to respond." -"0000274D","10061","-4294957235","WSAECONNREFUSED","No connection could be made because the target machine actively refused it." -"0000274E","10062","-4294957234","WSAELOOP","Cannot translate name." -"0000274F","10063","-4294957233","WSAENAMETOOLONG","Name component or name was too long." -"00002750","10064","-4294957232","WSAEHOSTDOWN","A socket operation failed because the destination host was down." -"00002751","10065","-4294957231","WSAEHOSTUNREACH","A socket operation was attempted to an unreachable host." -"00002752","10066","-4294957230","WSAENOTEMPTY","Cannot remove a directory that is not empty." -"00002753","10067","-4294957229","WSAEPROCLIM","A Windows Sockets implementation may have a limit on the number of applications that may use it simultaneously." -"00002754","10068","-4294957228","WSAEUSERS","Ran out of quota." -"00002755","10069","-4294957227","WSAEDQUOT","Ran out of disk quota." -"00002756","10070","-4294957226","WSAESTALE","File handle reference is no longer available." -"00002757","10071","-4294957225","WSAEREMOTE","Item is not available locally." -"0000276B","10091","-4294957205","WSASYSNOTREADY","WSAStartup cannot function at this time because the underlying system it uses to provide network services is currently unavailable." -"0000276C","10092","-4294957204","WSAVERNOTSUPPORTED","The Windows Sockets version requested is not supported." -"0000276D","10093","-4294957203","WSANOTINITIALISED","Either the application has not called WSAStartup - or WSAStartup failed." -"00002775","10101","-4294957195","WSAEDISCON","Returned by WSARecv or WSARecvFrom to indicate the remote party has initiated a graceful shutdown sequence." -"00002776","10102","-4294957194","WSAENOMORE","No more results can be returned by WSALookupServiceNext." -"00002777","10103","-4294957193","WSAECANCELLED","A call to WSALookupServiceEnd was made while this call was still processing. The call has been canceled." -"00002778","10104","-4294957192","WSAEINVALIDPROCTABLE","The procedure call table is invalid." -"00002779","10105","-4294957191","WSAEINVALIDPROVIDER","The requested service provider is invalid." -"0000277A","10106","-4294957190","WSAEPROVIDERFAILEDINIT","The requested service provider could not be loaded or initialized." -"0000277B","10107","-4294957189","WSASYSCALLFAILURE","A system call has failed." -"0000277C","10108","-4294957188","WSASERVICE_NOT_FOUND","No such service is known. The service cannot be found in the specified name space." -"0000277D","10109","-4294957187","WSATYPE_NOT_FOUND","The specified class was not found." -"0000277E","10110","-4294957186","WSA_E_NO_MORE","No more results can be returned by WSALookupServiceNext." -"0000277F","10111","-4294957185","WSA_E_CANCELLED","A call to WSALookupServiceEnd was made while this call was still processing. The call has been canceled." -"00002780","10112","-4294957184","WSAEREFUSED","A database query failed because it was actively refused." -"000028A5","-4294956891","10405","NULL","" -"00002ABF","-4294956353","10943","NULL","" -"00002AF9","11001","-4294956295","WSAHOST_NOT_FOUND","No such host is known." -"00002AFA","11002","-4294956294","WSATRY_AGAIN","This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server." -"00002AFB","11003","-4294956293","WSANO_RECOVERY","A non-recoverable error occurred during a database lookup." -"00002AFC","11004","-4294956292","WSANO_DATA","The requested name is valid - but no data of the requested type was found." -"00002AFD","11005","-4294956291","WSA_QOS_RECEIVERS","At least one reserve has arrived." -"00002AFE","11006","-4294956290","WSA_QOS_SENDERS","At least one path has arrived." -"00002AFF","11007","-4294956289","WSA_QOS_NO_SENDERS","There are no senders." -"00002B00","11008","-4294956288","WSA_QOS_NO_RECEIVERS","There are no receivers." -"00002B01","11009","-4294956287","WSA_QOS_REQUEST_CONFIRMED","Reserve has been confirmed." -"00002B02","11010","-4294956286","WSA_QOS_ADMISSION_FAILURE","Error due to lack of resources." -"00002B03","11011","-4294956285","WSA_QOS_POLICY_FAILURE","Rejected for administrative reasons - bad credentials." -"00002B04","11012","-4294956284","WSA_QOS_BAD_STYLE","Unknown or conflicting style." -"00002B05","11013","-4294956283","WSA_QOS_BAD_OBJECT","Problem with some part of the filterspec or providerspecific buffer in general." -"00002B06","11014","-4294956282","WSA_QOS_TRAFFIC_CTRL_ERROR","Problem with some part of the flowspec." -"00002B07","11015","-4294956281","WSA_QOS_GENERIC_ERROR","General QOS error." -"00002B08","11016","-4294956280","WSA_QOS_ESERVICETYPE","An invalid or unrecognized service type was found in the flowspec." -"00002B09","11017","-4294956279","WSA_QOS_EFLOWSPEC","An invalid or inconsistent flowspec was found in the QOS structure." -"00002B0A","11018","-4294956278","WSA_QOS_EPROVSPECBUF","Invalid QOS provider-specific buffer." -"00002B0B","11019","-4294956277","WSA_QOS_EFILTERSTYLE","An invalid QOS filter style was used." -"00002B0C","11020","-4294956276","WSA_QOS_EFILTERTYPE","An invalid QOS filter type was used." -"00002B0D","11021","-4294956275","WSA_QOS_EFILTERCOUNT","An incorrect number of QOS FILTERSPECs were specified in the FLOWDESCRIPTOR." -"00002B0E","11022","-4294956274","WSA_QOS_EOBJLENGTH","An object with an invalid ObjectLength field was specified in the QOS provider-specific buffer." -"00002B0F","11023","-4294956273","WSA_QOS_EFLOWCOUNT","An incorrect number of flow descriptors was specified in the QOS structure." -"00002B10","11024","-4294956272","WSA_QOS_EUNKOWNPSOBJ","An unrecognized object was found in the QOS provider-specific buffer." -"00002B11","11025","-4294956271","WSA_QOS_EPOLICYOBJ","An invalid policy object was found in the QOS provider-specific buffer." -"00002B12","11026","-4294956270","WSA_QOS_EFLOWDESC","An invalid QOS flow descriptor was found in the flow descriptor list." -"00002B13","11027","-4294956269","WSA_QOS_EPSFLOWSPEC","An invalid or inconsistent flowspec was found in the QOS provider specific buffer." -"00002B14","11028","-4294956268","WSA_QOS_EPSFILTERSPEC","An invalid FILTERSPEC was found in the QOS provider-specific buffer." -"00002B15","11029","-4294956267","WSA_QOS_ESDMODEOBJ","An invalid shape discard mode object was found in the QOS provider specific buffer." -"00002B16","11030","-4294956266","WSA_QOS_ESHAPERATEOBJ","An invalid shaping rate object was found in the QOS provider-specific buffer." -"00002B17","11031","-4294956265","WSA_QOS_RESERVED_PETYPE","A reserved policy element was found in the QOS provider-specific buffer." -"00002B18","11032","-4294956264","WSA_SECURE_HOST_NOT_FOUND","No such host is known securely." -"00002B19","11033","-4294956263","WSA_IPSEC_NAME_POLICY_ERROR","Name based IPSEC policy could not be added." -"00002BBE","11198","-4294956098","NULL","" -"00002D49","11593","-4294955703","NULL","" -"00002DA4","11684","-4294955612","NULL","" -"00002DDC","11740","-4294955556","NULL","" -"00002EBD","11965","-4294955331","NULL","" -"00002ED7","11991","-4294955305","NULL","" -"00002EE1","12001","-4294955295","ERROR_INTERNET_OUT_OF_HANDLES","No more handles could be generated at this time." -"00002EE2","12002","-4294955294","ERROR_INTERNET_TIMEOUT","The request has timed out." -"00002EE3","12003","-4294955293","ERROR_INTERNET_EXTENDED_ERROR","An extended error was returned from the server. This is typically a string or buffer containing a verbose error message. Call InternetGetLastResponseInfo to retrieve the error text." -"00002EE4","12004","-4294955292","ERROR_INTERNET_INTERNAL_ERROR","An internal error has occurred." -"00002EE5","12005","-4294955291","ERROR_INTERNET_INVALID_URL","The URL is invalid." -"00002EE6","12006","-4294955290","ERROR_INTERNET_UNRECOGNIZED_SCHEME","The URL scheme could not be recognized - or is not supported." -"00002EE7","12007","-4294955289","ERROR_INTERNET_NAME_NOT_RESOLVED","The server name could not be resolved." -"00002EE8","12008","-4294955288","ERROR_INTERNET_PROTOCOL_NOT_FOUND","The requested protocol could not be located." -"00002EE9","12009","-4294955287","ERROR_INTERNET_INVALID_OPTION","A request to InternetQueryOption or InternetSetOption specified an invalid option value." -"00002EEA","12010","-4294955286","ERROR_INTERNET_BAD_OPTION_LENGTH","The length of an option supplied to InternetQueryOption or InternetSetOption is incorrect for the type of option specified." -"00002EEB","12011","-4294955285","ERROR_INTERNET_OPTION_NOT_SETTABLE","The requested option cannot be set - only queried." -"00002EEC","12012","-4294955284","ERROR_INTERNET_SHUTDOWN","WinINet support is being shut down or unloaded." -"00002EED","12013","-4294955283","ERROR_INTERNET_INCORRECT_USER_NAME","The request to connect and log on to an FTP server could not be completed because the supplied user name is incorrect." -"00002EEE","12014","-4294955282","ERROR_INTERNET_INCORRECT_PASSWORD","The request to connect and log on to an FTP server could not be completed because the supplied password is incorrect." -"00002EEF","12015","-4294955281","ERROR_INTERNET_LOGIN_FAILURE","The request to connect and log on to an FTP server failed." -"00002EF0","12016","-4294955280","ERROR_INTERNET_INVALID_OPERATION","The requested operation is invalid." -"00002EF1","12017","-4294955279","ERROR_INTERNET_OPERATION_CANCELLED","The operation was canceled - usually because the handle on which the request was operating was closed before the operation completed." -"00002EF2","12018","-4294955278","ERROR_INTERNET_INCORRECT_HANDLE_TYPE","The type of handle supplied is incorrect for this operation." -"00002EF3","12019","-4294955277","ERROR_INTERNET_INCORRECT_HANDLE_STATE","The requested operation cannot be carried out because the handle supplied is not in the correct state." -"00002EF4","12020","-4294955276","ERROR_INTERNET_NOT_PROXY_REQUEST","The request cannot be made via a proxy." -"00002EF5","12021","-4294955275","ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND","A required registry value could not be located." -"00002EF6","12022","-4294955274","ERROR_INTERNET_BAD_REGISTRY_PARAMETER","A required registry value was located but is an incorrect type or has an invalid value." -"00002EF7","12023","-4294955273","ERROR_INTERNET_NO_DIRECT_ACCESS","Direct network access cannot be made at this time." -"00002EF8","12024","-4294955272","ERROR_INTERNET_NO_CONTEXT","An asynchronous request could not be made because a zero context value was supplied." -"00002EF9","12025","-4294955271","ERROR_INTERNET_NO_CALLBACK","An asynchronous request could not be made because a callback function has not been set." -"00002EFA","12026","-4294955270","ERROR_INTERNET_REQUEST_PENDING","The required operation could not be completed because one or more requests are pending." -"00002EFB","12027","-4294955269","ERROR_INTERNET_INCORRECT_FORMAT","The format of the request is invalid." -"00002EFC","12028","-4294955268","ERROR_INTERNET_ITEM_NOT_FOUND","The requested item could not be located." -"00002EFD","12029","-4294955267","ERROR_INTERNET_CANNOT_CONNECT","The attempt to connect to the server failed." -"00002EFE","12030","-4294955266","ERROR_INTERNET_CONNECTION_ABORTED","The connection with the server has been terminated." -"00002EFF","12031","-4294955265","ERROR_INTERNET_CONNECTION_RESET","The connection with the server has been reset." -"00002F00","12032","-4294955264","ERROR_INTERNET_FORCE_RETRY","The function needs to redo the request." -"00002F01","12033","-4294955263","ERROR_INTERNET_INVALID_PROXY_REQUEST","The request to the proxy was invalid." -"00002F02","12034","-4294955262","ERROR_INTERNET_NEED_UI","A user interface or other blocking operation has been requested." -"00002F04","12036","-4294955260","ERROR_INTERNET_HANDLE_EXISTS","The request failed because the handle already exists." -"00002F05","12037","-4294955259","ERROR_INTERNET_SEC_CERT_DATE_INVALID","SSL certificate date that was received from the server is bad. The certificate is expired." -"00002F06","12038","-4294955258","ERROR_INTERNET_SEC_CERT_CN_INVALID","SSL certificate common name (host name field) is incorrect for example - if you entered www.server.com and the common name on the certificate says www.different.com." -"00002F07","12039","-4294955257","ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR","The application is moving from a non-SSL to an SSL connection because of a redirect." -"00002F08","12040","-4294955256","ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR","The application is moving from an SSL to an non-SSL connection because of a redirect." -"00002F09","12041","-4294955255","ERROR_INTERNET_MIXED_SECURITY","The content is not entirely secure. Some of the content being viewed may have come from unsecured servers." -"00002F0A","12042","-4294955254","ERROR_INTERNET_CHG_POST_IS_NON_SECURE","The application is posting and attempting to change multiple lines of text on a server that is not secure." -"00002F0B","12043","-4294955253","ERROR_INTERNET_POST_IS_NON_SECURE","The application is posting data to a server that is not secure." -"00002F0C","12044","-4294955252","ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED","The server is requesting client authentication." -"00002F0D","12045","-4294955251","ERROR_INTERNET_INVALID_CA","The function is unfamiliar with the Certificate Authority that generated the server's certificate." -"00002F0E","12046","-4294955250","ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP","Client authorization is not set up on this computer." -"00002F0F","12047","-4294955249","ERROR_INTERNET_ASYNC_THREAD_FAILED","The application could not start an asynchronous thread." -"00002F10","12048","-4294955248","ERROR_INTERNET_REDIRECT_SCHEME_CHANGE","The function could not handle the redirection - because the scheme changed (for example - HTTP to FTP)." -"00002F11","12049","-4294955247","ERROR_INTERNET_DIALOG_PENDING","Another thread has a password dialog box in progress." -"00002F12","12050","-4294955246","ERROR_INTERNET_RETRY_DIALOG","The dialog box should be retried." -"00002F14","12052","-4294955244","ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR","The data being submitted to an SSL connection is being redirected to a non-SSL connection." -"00002F15","12053","-4294955243","ERROR_INTERNET_INSERT_CDROM","The request requires a CD-ROM to be inserted in the CD-ROM drive to locate the resource requested." -"00002F16","12054","-4294955242","ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED","The requested resource requires Fortezza authentication." -"00002F17","12055","-4294955241","ERROR_INTERNET_SEC_CERT_ERRORS","The SSL certificate contains errors." -"00002F18","12056","-4294955240","ERROR_INTERNET_SEC_CERT_NO_REV","The SSL certificate was not revoked." -"00002F19","12057","-4294955239","ERROR_INTERNET_SEC_CERT_REV_FAILED","Revocation of the SSL certificate failed." -"00002F44","12100","-4294955196","ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN","Returned by the HttpRequest object if a requested operation cannot be performed before calling the Open method." -"00002F45","12101","-4294955195","ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND","Returned by the HttpRequest object if a requested operation cannot be performed before calling the Send method." -"00002F46","12102","-4294955194","ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND","Returned by the HttpRequest object if a requested operation cannot be performed after calling the Send method." -"00002F47","12103","-4294955193","ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN","Returned by the HttpRequest object if a specified option cannot be requested after the Open method has been called." -"00002F4E","12110","-4294955186","ERROR_FTP_TRANSFER_IN_PROGRESS","The requested operation cannot be made on the FTP session handle because an operation is already in progress." -"00002F4F","12111","-4294955185","ERROR_FTP_DROPPED","The FTP operation was not completed because the session was aborted." -"00002F50","12112","-4294955184","ERROR_FTP_NO_PASSIVE_MODE","Passive mode is not available on the server." -"00002F62","12130","-4294955166","ERROR_GOPHER_PROTOCOL_ERROR","An error was detected while parsing data returned from the Gopher server." -"00002F63","12131","-4294955165","ERROR_GOPHER_NOT_FILE","The request must be made for a file locator." -"00002F64","12132","-4294955164","ERROR_GOPHER_DATA_ERROR","An error was detected while receiving data from the Gopher server." -"00002F65","12133","-4294955163","ERROR_GOPHER_END_OF_DATA","The end of the data has been reached." -"00002F66","12134","-4294955162","ERROR_GOPHER_INVALID_LOCATOR","The supplied locator is not valid." -"00002F67","12135","-4294955161","ERROR_GOPHER_INCORRECT_LOCATOR_TYPE","The type of the locator is not correct for this operation." -"00002F68","12136","-4294955160","ERROR_GOPHER_NOT_GOPHER_PLUS","The requested operation can be made only against a Gopher+ server - or with a locator that specifies a Gopher+ operation." -"00002F69","12137","-4294955159","ERROR_GOPHER_ATTRIBUTE_NOT_FOUND","The requested attribute could not be located." -"00002F6A","12138","-4294955158","ERROR_GOPHER_UNKNOWN_LOCATOR","The locator type is unknown." -"00002F76","12150","-4294955146","ERROR_HTTP_HEADER_NOT_FOUND","The requested header could not be located." -"00002F77","12151","-4294955145","ERROR_HTTP_DOWNLEVEL_SERVER","The server did not return any headers." -"00002F78","12152","-4294955144","ERROR_HTTP_INVALID_SERVER_RESPONSE","The server response could not be parsed." -"00002F79","12153","-4294955143","ERROR_HTTP_INVALID_HEADER","The supplied header is invalid." -"00002F7A","12154","-4294955142","ERROR_HTTP_INVALID_QUERY_REQUEST","The request made to HttpQueryInfo is invalid." -"00002F7B","12155","-4294955141","ERROR_HTTP_HEADER_ALREADY_EXISTS","The header could not be added because it already exists." -"00002F7C","12156","-4294955140","ERROR_HTTP_REDIRECT_FAILED","The redirection failed because either the scheme changed (for example - HTTP to FTP) or all attempts made to redirect failed (default is five attempts)." -"00002F7D","12157","-4294955139","ERROR_INTERNET_SECURITY_CHANNEL_ERROR","The application experienced an internal error loading the SSL libraries." -"00002F7E","12158","-4294955138","ERROR_INTERNET_UNABLE_TO_CACHE_FILE","The function was unable to cache the file." -"00002F7F","12159","-4294955137","ERROR_INTERNET_TCPIP_NOT_INSTALLED","The required protocol stack is not loaded and the application cannot start WinSock." -"00002F80","12160","-4294955136","ERROR_HTTP_NOT_REDIRECTED","The HTTP request was not redirected." -"00002F81","12161","-4294955135","ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION","The HTTP cookie requires confirmation." -"00002F82","12162","-4294955134","ERROR_HTTP_COOKIE_DECLINED","The HTTP cookie was declined by the server." -"00002F83","12163","-4294955133","ERROR_INTERNET_DISCONNECTED","The Internet connection has been lost." -"00002F84","12164","-4294955132","ERROR_INTERNET_SERVER_UNREACHABLE","The website or server indicated is unreachable." -"00002F85","12165","-4294955131","ERROR_INTERNET_PROXY_SERVER_UNREACHABLE","The designated proxy server cannot be reached." -"00002F86","12166","-4294955130","ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT","There was an error in the automatic proxy configuration script." -"00002F87","12167","-4294955129","ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT","The automatic proxy configuration script could not be downloaded. The INTERNET_FLAG_MUST_CACHE_REQUEST flag was set." -"00002F88","12168","-4294955128","ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION","The redirection requires user confirmation." -"00002F89","12169","-4294955127","ERROR_INTERNET_SEC_INVALID_CERT","The SSL certificate is invalid." -"00002F8A","12170","-4294955126","ERROR_INTERNET_SEC_CERT_REVOKED","The SSL certificate was revoked." -"00002F8B","12171","-4294955125","ERROR_INTERNET_FAILED_DUETOSECURITYCHECK","The function failed due to a security check." -"00002F8C","12172","-4294955124","ERROR_INTERNET_NOT_INITIALIZED","Initialization of the WinINet API has not occurred. Indicates that a higher-level function - such as InternetOpen - has not been called yet." -"00002F8D","12173","-4294955123","ERROR_INTERNET_NEED_MSN_SSPI_PKG","Not currently implemented." -"00002F8E","12174","-4294955122","ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY","The MS-Logoff digest header has been returned from the website. This header specifically instructs the digest package to purge credentials for the associated realm. This error will only be returned if INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY option has been set; otherwise - ERROR_INTERNET_LOGIN_FAILURE is returned." -"00002F8F","12175","-4294955121","ERROR_INTERNET_DECODING_FAILED","WinINet failed to perform content decoding on the response. For more information - see the Content Encoding topic." -"00002F90","12176","-4294955120","ERROR_WINHTTP_UNHANDLED_SCRIPT_TYPE","The script type is not supported." -"00002F91","12177","-4294955119","ERROR_WINHTTP_SCRIPT_EXECUTION_ERROR","An error was encountered while executing a script." -"00002F92","12178","-4294955118","ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR","Returned by WinHttpGetProxyForUrl when a proxy for the specified URL cannot be located." -"00002F93","12179","-4294955117","ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE","Indicates that a certificate is not valid for the requested usage (equivalent to CERT_E_WRONG_USAGE)." -"00002F94","12180","-4294955116","ERROR_WINHTTP_AUTODETECTION_FAILED","Returned by WinHttpDetectAutoProxyConfigUrl if WinHTTP was unable to discover the URL of the Proxy Auto-Configuration (PAC) file." -"00002F95","12181","-4294955115","ERROR_WINHTTP_HEADER_COUNT_EXCEEDED","Returned by WinHttpReceiveResponse when a larger number of headers were present in a response than WinHTTP could receive." -"00002F96","12182","-4294955114","ERROR_WINHTTP_HEADER_SIZE_OVERFLOW","Returned by WinHttpReceiveResponse when the size of headers received exceeds the limit for the request handle." -"00002F97","12183","-4294955113","ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW","Returned by WinHttpReceiveResponse when an overflow condition is encountered in the course of parsing chunked encoding." -"00002F98","12184","-4294955112","ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW","Returned when an incoming response exceeds an internal WinHTTP size limit." -"000032C8","13000","-4294954296","ERROR_IPSEC_QM_POLICY_EXISTS","The specified quick mode policy already exists." -"000032C9","13001","-4294954295","ERROR_IPSEC_QM_POLICY_NOT_FOUND","The specified quick mode policy was not found." -"000032CA","13002","-4294954294","ERROR_IPSEC_QM_POLICY_IN_USE","The specified quick mode policy is being used." -"000032CB","13003","-4294954293","ERROR_IPSEC_MM_POLICY_EXISTS","The specified main mode policy already exists." -"000032CC","13004","-4294954292","ERROR_IPSEC_MM_POLICY_NOT_FOUND","The specified main mode policy was not found." -"000032CD","13005","-4294954291","ERROR_IPSEC_MM_POLICY_IN_USE","The specified main mode policy is being used." -"000032CE","13006","-4294954290","ERROR_IPSEC_MM_FILTER_EXISTS","The specified main mode filter already exists." -"000032CF","13007","-4294954289","ERROR_IPSEC_MM_FILTER_NOT_FOUND","The specified main mode filter was not found." -"000032D0","13008","-4294954288","ERROR_IPSEC_TRANSPORT_FILTER_EXISTS","The specified transport mode filter already exists." -"000032D1","13009","-4294954287","ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND","The specified transport mode filter does not exist." -"000032D2","13010","-4294954286","ERROR_IPSEC_MM_AUTH_EXISTS","The specified main mode authentication list exists." -"000032D3","13011","-4294954285","ERROR_IPSEC_MM_AUTH_NOT_FOUND","The specified main mode authentication list was not found." -"000032D4","13012","-4294954284","ERROR_IPSEC_MM_AUTH_IN_USE","The specified main mode authentication list is being used." -"000032D5","13013","-4294954283","ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND","The specified default main mode policy was not found." -"000032D6","13014","-4294954282","ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND","The specified default main mode authentication list was not found." -"000032D7","13015","-4294954281","ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND","The specified default quick mode policy was not found." -"000032D8","13016","-4294954280","ERROR_IPSEC_TUNNEL_FILTER_EXISTS","The specified tunnel mode filter exists." -"000032D9","13017","-4294954279","ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND","The specified tunnel mode filter was not found." -"000032DA","13018","-4294954278","ERROR_IPSEC_MM_FILTER_PENDING_DELETION","The Main Mode filter is pending deletion." -"000032DB","13019","-4294954277","ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION","The transport filter is pending deletion." -"000032DC","13020","-4294954276","ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION","The tunnel filter is pending deletion." -"000032DD","13021","-4294954275","ERROR_IPSEC_MM_POLICY_PENDING_DELETION","The Main Mode policy is pending deletion." -"000032DE","13022","-4294954274","ERROR_IPSEC_MM_AUTH_PENDING_DELETION","The Main Mode authentication bundle is pending deletion." -"000032DF","13023","-4294954273","ERROR_IPSEC_QM_POLICY_PENDING_DELETION","The Quick Mode policy is pending deletion." -"000032E0","13024","-4294954272","WARNING_IPSEC_MM_POLICY_PRUNED","The Main Mode policy was successfully added - but some of the requested offers are not supported." -"000032E1","13025","-4294954271","WARNING_IPSEC_QM_POLICY_PRUNED","The Quick Mode policy was successfully added - but some of the requested offers are not supported." -"000035DD","-4294953507","13789","NULL","" -"000035E8","13800","-4294953496","ERROR_IPSEC_IKE_NEG_STATUS_BEGIN","ERROR_IPSEC_IKE_NEG_STATUS_BEGIN" -"000035EA","13802","-4294953494","ERROR_IPSEC_IKE_ATTRIB_FAIL","IKE security attributes are unacceptable." -"000035EB","13803","-4294953493","ERROR_IPSEC_IKE_NEGOTIATION_PENDING","IKE Negotiation in progress." -"000035EC","13804","-4294953492","ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR","General processing error." -"000035ED","13805","-4294953491","ERROR_IPSEC_IKE_TIMED_OUT","Negotiation timed out." -"000035EE","13806","-4294953490","ERROR_IPSEC_IKE_NO_CERT","IKE failed to find valid machine certificate. Contact your Network Security Administrator about installing a valid certificate in the appropriate Certificate Store." -"000035EF","13807","-4294953489","ERROR_IPSEC_IKE_SA_DELETED","IKE SA deleted by peer before establishment completed." -"000035F0","13808","-4294953488","ERROR_IPSEC_IKE_SA_REAPED","IKE SA deleted before establishment completed." -"000035F1","13809","-4294953487","ERROR_IPSEC_IKE_MM_ACQUIRE_DROP","Negotiation request sat in Queue too long." -"000035F2","13810","-4294953486","ERROR_IPSEC_IKE_QM_ACQUIRE_DROP","Negotiation request sat in Queue too long." -"000035F3","13811","-4294953485","ERROR_IPSEC_IKE_QUEUE_DROP_MM","Negotiation request sat in Queue too long." -"000035F4","13812","-4294953484","ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM","Negotiation request sat in Queue too long." -"000035F5","13813","-4294953483","ERROR_IPSEC_IKE_DROP_NO_RESPONSE","No response from peer." -"000035F6","13814","-4294953482","ERROR_IPSEC_IKE_MM_DELAY_DROP","Negotiation took too long." -"000035F7","13815","-4294953481","ERROR_IPSEC_IKE_QM_DELAY_DROP","Negotiation took too long." -"000035F8","13816","-4294953480","ERROR_IPSEC_IKE_ERROR","Unknown error occurred." -"000035F9","13817","-4294953479","ERROR_IPSEC_IKE_CRL_FAILED","Certificate Revocation Check failed." -"000035FA","13818","-4294953478","ERROR_IPSEC_IKE_INVALID_KEY_USAGE","Invalid certificate key usage." -"000035FB","13819","-4294953477","ERROR_IPSEC_IKE_INVALID_CERT_TYPE","Invalid certificate type." -"000035FC","13820","-4294953476","ERROR_IPSEC_IKE_NO_PRIVATE_KEY","IKE negotiation failed because the machine certificate used does not have a private key. IPsec certificates require a private key. Contact your Network Security administrator about replacing with a certificate that has a private key." -"000035FD","13821","-4294953475","ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY","Simultaneous rekeys were detected." -"000035FE","13822","-4294953474","ERROR_IPSEC_IKE_DH_FAIL","Failure in Diffie-Hellman computation." -"000035FF","13823","-4294953473","ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED","Don't know how to process critical payload." -"00003600","13824","-4294953472","ERROR_IPSEC_IKE_INVALID_HEADER","Invalid header." -"00003601","13825","-4294953471","ERROR_IPSEC_IKE_NO_POLICY","No policy configured." -"00003602","13826","-4294953470","ERROR_IPSEC_IKE_INVALID_SIGNATURE","Failed to verify signature." -"00003603","13827","-4294953469","ERROR_IPSEC_IKE_KERBEROS_ERROR","Failed to authenticate using Kerberos." -"00003604","13828","-4294953468","ERROR_IPSEC_IKE_NO_PUBLIC_KEY","Peer's certificate did not have a public key." -"00003605","13829","-4294953467","ERROR_IPSEC_IKE_PROCESS_ERR","Error processing error payload." -"00003606","13830","-4294953466","ERROR_IPSEC_IKE_PROCESS_ERR_SA","Error processing SA payload." -"00003607","13831","-4294953465","ERROR_IPSEC_IKE_PROCESS_ERR_PROP","Error processing Proposal payload." -"00003608","13832","-4294953464","ERROR_IPSEC_IKE_PROCESS_ERR_TRANS","Error processing Transform payload." -"00003609","13833","-4294953463","ERROR_IPSEC_IKE_PROCESS_ERR_KE","Error processing KE payload." -"0000360A","13834","-4294953462","ERROR_IPSEC_IKE_PROCESS_ERR_ID","Error processing ID payload." -"0000360B","13835","-4294953461","ERROR_IPSEC_IKE_PROCESS_ERR_CERT","Error processing Cert payload." -"0000360C","13836","-4294953460","ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ","Error processing Certificate Request payload." -"0000360D","13837","-4294953459","ERROR_IPSEC_IKE_PROCESS_ERR_HASH","Error processing Hash payload." -"0000360E","13838","-4294953458","ERROR_IPSEC_IKE_PROCESS_ERR_SIG","Error processing Signature payload." -"0000360F","13839","-4294953457","ERROR_IPSEC_IKE_PROCESS_ERR_NONCE","Error processing Nonce payload." -"00003610","13840","-4294953456","ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY","Error processing Notify payload." -"00003611","13841","-4294953455","ERROR_IPSEC_IKE_PROCESS_ERR_DELETE","Error processing Delete Payload." -"00003612","13842","-4294953454","ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR","Error processing VendorId payload." -"00003613","13843","-4294953453","ERROR_IPSEC_IKE_INVALID_PAYLOAD","Invalid payload received." -"00003614","13844","-4294953452","ERROR_IPSEC_IKE_LOAD_SOFT_SA","Soft SA loaded." -"00003615","13845","-4294953451","ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN","Soft SA torn down." -"00003616","13846","-4294953450","ERROR_IPSEC_IKE_INVALID_COOKIE","Invalid cookie received." -"00003617","13847","-4294953449","ERROR_IPSEC_IKE_NO_PEER_CERT","Peer failed to send valid machine certificate." -"00003618","13848","-4294953448","ERROR_IPSEC_IKE_PEER_CRL_FAILED","Certification Revocation check of peer's certificate failed." -"00003619","13849","-4294953447","ERROR_IPSEC_IKE_POLICY_CHANGE","New policy invalidated SAs formed with old policy." -"0000361A","13850","-4294953446","ERROR_IPSEC_IKE_NO_MM_POLICY","There is no available Main Mode IKE policy." -"0000361B","13851","-4294953445","ERROR_IPSEC_IKE_NOTCBPRIV","Failed to enabled TCB privilege." -"0000361C","13852","-4294953444","ERROR_IPSEC_IKE_SECLOADFAIL","Failed to load SECURITY.DLL." -"0000361D","13853","-4294953443","ERROR_IPSEC_IKE_FAILSSPINIT","Failed to obtain security function table dispatch address from SSPI." -"0000361E","13854","-4294953442","ERROR_IPSEC_IKE_FAILQUERYSSP","Failed to query Kerberos package to obtain max token size." -"0000361F","13855","-4294953441","ERROR_IPSEC_IKE_SRVACQFAIL","Failed to obtain Kerberos server credentials for ISAKMP/ERROR_IPSEC_IKE service. Kerberos authentication will not function. The most likely reason for this is lack of domain membership. This is normal if your computer is a member of a workgroup." -"00003620","13856","-4294953440","ERROR_IPSEC_IKE_SRVQUERYCRED","Failed to determine SSPI principal name for ISAKMP/ERROR_IPSEC_IKE service" -"00003621","13857","-4294953439","ERROR_IPSEC_IKE_GETSPIFAIL","Failed to obtain new SPI for the inbound SA from IPsec driver. The most common cause for this is that the driver does not have the correct filter. Check your policy to verify the filters." -"00003622","13858","-4294953438","ERROR_IPSEC_IKE_INVALID_FILTER","Given filter is invalid." -"00003623","13859","-4294953437","ERROR_IPSEC_IKE_OUT_OF_MEMORY","Memory allocation failed." -"00003624","13860","-4294953436","ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED","Failed to add Security Association to IPsec Driver. The most common cause for this is if the IKE negotiation took too long to complete. If the problem persists - reduce the load on the faulting machine." -"00003625","13861","-4294953435","ERROR_IPSEC_IKE_INVALID_POLICY","Invalid policy." -"00003626","13862","-4294953434","ERROR_IPSEC_IKE_UNKNOWN_DOI","Invalid DOI." -"00003627","13863","-4294953433","ERROR_IPSEC_IKE_INVALID_SITUATION","Invalid situation." -"00003628","13864","-4294953432","ERROR_IPSEC_IKE_DH_FAILURE","Diffie-Hellman failure." -"00003629","13865","-4294953431","ERROR_IPSEC_IKE_INVALID_GROUP","Invalid Diffie-Hellman group." -"0000362A","13866","-4294953430","ERROR_IPSEC_IKE_ENCRYPT","Error encrypting payload." -"0000362B","13867","-4294953429","ERROR_IPSEC_IKE_DECRYPT","Error decrypting payload." -"0000362C","13868","-4294953428","ERROR_IPSEC_IKE_POLICY_MATCH","Policy match error." -"0000362D","13869","-4294953427","ERROR_IPSEC_IKE_UNSUPPORTED_ID","Unsupported ID." -"0000362E","13870","-4294953426","ERROR_IPSEC_IKE_INVALID_HASH","Hash verification failed." -"0000362F","13871","-4294953425","ERROR_IPSEC_IKE_INVALID_HASH_ALG","Invalid hash algorithm." -"00003630","13872","-4294953424","ERROR_IPSEC_IKE_INVALID_HASH_SIZE","Invalid hash size." -"00003631","13873","-4294953423","ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG","Invalid encryption algorithm." -"00003632","13874","-4294953422","ERROR_IPSEC_IKE_INVALID_AUTH_ALG","Invalid authentication algorithm." -"00003633","13875","-4294953421","ERROR_IPSEC_IKE_INVALID_SIG","Invalid certificate signature." -"00003634","13876","-4294953420","ERROR_IPSEC_IKE_LOAD_FAILED","Load failed." -"00003635","13877","-4294953419","ERROR_IPSEC_IKE_RPC_DELETE","Deleted via RPC call." -"00003636","13878","-4294953418","ERROR_IPSEC_IKE_BENIGN_REINIT","Temporary state created to perform reinitialization. This is not a real failure." -"00003637","13879","-4294953417","ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY","The lifetime value received in the Responder Lifetime Notify is below the Windows 2000 configured minimum value. Please fix the policy on the peer machine." -"00003638","13880","-4294953416","ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION","The recipient cannot handle version of IKE specified in the header." -"00003639","13881","-4294953415","ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN","Key length in certificate is too small for configured security requirements." -"0000363A","13882","-4294953414","ERROR_IPSEC_IKE_MM_LIMIT","Max number of established MM SAs to peer exceeded." -"0000363B","13883","-4294953413","ERROR_IPSEC_IKE_NEGOTIATION_DISABLED","IKE received a policy that disables negotiation." -"0000363C","13884","-4294953412","ERROR_IPSEC_IKE_QM_LIMIT","Reached maximum quick mode limit for the main mode. New main mode will be started." -"0000363D","13885","-4294953411","ERROR_IPSEC_IKE_MM_EXPIRED","Main mode SA lifetime expired or peer sent a main mode delete." -"0000363E","13886","-4294953410","ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID","Main mode SA assumed to be invalid because peer stopped responding." -"0000363F","13887","-4294953409","ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH","Certificate doesn't chain to a trusted root in IPsec policy." -"00003640","13888","-4294953408","ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID","Received unexpected message ID." -"00003641","13889","-4294953407","ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD","Received invalid authentication offers." -"00003642","13890","-4294953406","ERROR_IPSEC_IKE_DOS_COOKIE_SENT","Sent DoS cookie notify to initiator." -"00003643","13891","-4294953405","ERROR_IPSEC_IKE_SHUTTING_DOWN","IKE service is shutting down." -"00003644","13892","-4294953404","ERROR_IPSEC_IKE_CGA_AUTH_FAILED","Could not verify binding between CGA address and certificate." -"00003645","13893","-4294953403","ERROR_IPSEC_IKE_PROCESS_ERR_NATOA","Error processing NatOA payload." -"00003646","13894","-4294953402","ERROR_IPSEC_IKE_INVALID_MM_FOR_QM","Parameters of the main mode are invalid for this quick mode." -"00003647","13895","-4294953401","ERROR_IPSEC_IKE_QM_EXPIRED","Quick mode SA was expired by IPsec driver." -"00003648","13896","-4294953400","ERROR_IPSEC_IKE_TOO_MANY_FILTERS","Too many dynamically added IKEEXT filters were detected." -"00003649","13897","-4294953399","ERROR_IPSEC_IKE_NEG_STATUS_END","ERROR_IPSEC_IKE_NEG_STATUS_END" -"0000364B","13899","-4294953397","ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE","Error in assigning inner IP address to initiator in tunnel mode." -"0000364C","13900","-4294953396","ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING","Require configuration payload missing." -"0000364D","13901","-4294953395","ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING","A negotiation running as the security principle who issued the connection is in progress." -"0000364E","13902","-4294953394","ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS","SA was deleted due to IKEv1/AuthIP co-existence suppress check." -"0000364F","13903","-4294953393","ERROR_IPSEC_IKE_RATELIMIT_DROP","Incoming SA request was dropped due to peer IP address rate limiting." -"00003650","13904","-4294953392","ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE","Peer does not support MOBIKE." -"00003651","13905","-4294953391","ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE","SA establishment is not authorized." -"00003652","13906","-4294953390","ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE","SA establishment is not authorized because there is not a sufficiently strong PKINIT-based credential." -"00003653","13907","-4294953389","ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY","SA establishment is not authorized. You may need to enter updated or different credentials such as a smartcard." -"00003654","13908","-4294953388","ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE","SA establishment is not authorized because there is not a sufficiently strong PKINIT-based credential. This might be related to certificate-to-account mapping failure for the SA." -"00003655","13909","-4294953387","ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END","ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END" -"00003657","13911","-4294953385","ERROR_IPSEC_SA_LIFETIME_EXPIRED","Packet was received on an IPsec SA whose lifetime has expired." -"00003658","13912","-4294953384","ERROR_IPSEC_WRONG_SA","Packet was received on an IPsec SA that does not match the packet characteristics." -"00003659","13913","-4294953383","ERROR_IPSEC_REPLAY_CHECK_FAILED","Packet sequence number replay check failed." -"0000365A","13914","-4294953382","ERROR_IPSEC_INVALID_PACKET","IPsec header and/or trailer in the packet is invalid." -"0000365B","13915","-4294953381","ERROR_IPSEC_INTEGRITY_CHECK_FAILED","IPsec integrity check failed." -"0000365C","13916","-4294953380","ERROR_IPSEC_CLEAR_TEXT_DROP","IPsec dropped a clear text packet." -"0000365D","13917","-4294953379","ERROR_IPSEC_AUTH_FIREWALL_DROP","IPsec dropped an incoming ESP packet in authenticated firewall mode. This drop is benign." -"0000365E","13918","-4294953378","ERROR_IPSEC_THROTTLE_DROP","IPsec dropped a packet due to DoS throttling." -"00003665","13925","-4294953371","ERROR_IPSEC_DOSP_BLOCK","IPsec DoS Protection matched an explicit block rule." -"00003666","13926","-4294953370","ERROR_IPSEC_DOSP_RECEIVED_MULTICAST","IPsec DoS Protection received an IPsec specific multicast packet which is not allowed." -"00003667","13927","-4294953369","ERROR_IPSEC_DOSP_INVALID_PACKET","IPsec DoS Protection received an incorrectly formatted packet." -"00003668","13928","-4294953368","ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED","IPsec DoS Protection failed to look up state." -"00003669","13929","-4294953367","ERROR_IPSEC_DOSP_MAX_ENTRIES","IPsec DoS Protection failed to create state because the maximum number of entries allowed by policy has been reached." -"0000366A","13930","-4294953366","ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED","IPsec DoS Protection received an IPsec negotiation packet for a keying module which is not allowed by policy." -"0000366B","13931","-4294953365","ERROR_IPSEC_DOSP_NOT_INSTALLED","IPsec DoS Protection has not been enabled." -"0000366C","13932","-4294953364","ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES","IPsec DoS Protection failed to create a per internal IP rate limit queue because the maximum number of queues allowed by policy has been reached." -"000036B0","14000","-4294953296","ERROR_SXS_SECTION_NOT_FOUND","The requested section was not present in the activation context." -"000036B1","14001","-4294953295","ERROR_SXS_CANT_GEN_ACTCTX","The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail." -"000036B2","14002","-4294953294","ERROR_SXS_INVALID_ACTCTXDATA_FORMAT","The application binding data format is invalid." -"000036B3","14003","-4294953293","ERROR_SXS_ASSEMBLY_NOT_FOUND","The referenced assembly is not installed on your system." -"000036B4","14004","-4294953292","ERROR_SXS_MANIFEST_FORMAT_ERROR","The manifest file does not begin with the required tag and format information." -"000036B5","14005","-4294953291","ERROR_SXS_MANIFEST_PARSE_ERROR","The manifest file contains one or more syntax errors." -"000036B6","14006","-4294953290","ERROR_SXS_ACTIVATION_CONTEXT_DISABLED","The application attempted to activate a disabled activation context." -"000036B7","14007","-4294953289","ERROR_SXS_KEY_NOT_FOUND","The requested lookup key was not found in any active activation context." -"000036B8","14008","-4294953288","ERROR_SXS_VERSION_CONFLICT","A component version required by the application conflicts with another component version already active." -"000036B9","14009","-4294953287","ERROR_SXS_WRONG_SECTION_TYPE","The type requested activation context section does not match the query API used." -"000036BA","14010","-4294953286","ERROR_SXS_THREAD_QUERIES_DISABLED","Lack of system resources has required isolated activation to be disabled for the current thread of execution." -"000036BB","14011","-4294953285","ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET","An attempt to set the process default activation context failed because the process default activation context was already set." -"000036BC","14012","-4294953284","ERROR_SXS_UNKNOWN_ENCODING_GROUP","The encoding group identifier specified is not recognized." -"000036BD","14013","-4294953283","ERROR_SXS_UNKNOWN_ENCODING","The encoding requested is not recognized." -"000036BE","14014","-4294953282","ERROR_SXS_INVALID_XML_NAMESPACE_URI","The manifest contains a reference to an invalid URI." -"000036BF","14015","-4294953281","ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED","The application manifest contains a reference to a dependent assembly which is not installed." -"000036C0","14016","-4294953280","ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED","The manifest for an assembly used by the application has a reference to a dependent assembly which is not installed." -"000036C1","14017","-4294953279","ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE","The manifest contains an attribute for the assembly identity which is not valid." -"000036C2","14018","-4294953278","ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE","The manifest is missing the required default namespace specification on the assembly element." -"000036C3","14019","-4294953277","ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE","The manifest has a default namespace specified on the assembly element but its value is not ""urn:schemas-microsoft-com:asm.v1""." -"000036C4","14020","-4294953276","ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT","The private manifest probed has crossed a path with an unsupported reparse point." -"000036C5","14021","-4294953275","ERROR_SXS_DUPLICATE_DLL_NAME","Two or more components referenced directly or indirectly by the application manifest have files by the same name." -"000036C6","14022","-4294953274","ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME","Two or more components referenced directly or indirectly by the application manifest have window classes with the same name." -"000036C7","14023","-4294953273","ERROR_SXS_DUPLICATE_CLSID","Two or more components referenced directly or indirectly by the application manifest have the same COM server CLSIDs." -"000036C8","14024","-4294953272","ERROR_SXS_DUPLICATE_IID","Two or more components referenced directly or indirectly by the application manifest have proxies for the same COM interface IIDs." -"000036C9","14025","-4294953271","ERROR_SXS_DUPLICATE_TLBID","Two or more components referenced directly or indirectly by the application manifest have the same COM type library TLBIDs." -"000036CA","14026","-4294953270","ERROR_SXS_DUPLICATE_PROGID","Two or more components referenced directly or indirectly by the application manifest have the same COM ProgIDs." -"000036CB","14027","-4294953269","ERROR_SXS_DUPLICATE_ASSEMBLY_NAME","Two or more components referenced directly or indirectly by the application manifest are different versions of the same component which is not permitted." -"000036CC","14028","-4294953268","ERROR_SXS_FILE_HASH_MISMATCH","A component's file does not match the verification information present in the component manifest." -"000036CD","14029","-4294953267","ERROR_SXS_POLICY_PARSE_ERROR","The policy manifest contains one or more syntax errors." -"000036CE","14030","-4294953266","ERROR_SXS_XML_E_MISSINGQUOTE","Manifest Parse Error : A string literal was expected - but no opening quote character was found." -"000036CF","14031","-4294953265","ERROR_SXS_XML_E_COMMENTSYNTAX","Manifest Parse Error : Incorrect syntax was used in a comment." -"000036D0","14032","-4294953264","ERROR_SXS_XML_E_BADSTARTNAMECHAR","Manifest Parse Error : A name was started with an invalid character." -"000036D1","14033","-4294953263","ERROR_SXS_XML_E_BADNAMECHAR","Manifest Parse Error : A name contained an invalid character." -"000036D2","14034","-4294953262","ERROR_SXS_XML_E_BADCHARINSTRING","Manifest Parse Error : A string literal contained an invalid character." -"000036D3","14035","-4294953261","ERROR_SXS_XML_E_XMLDECLSYNTAX","Manifest Parse Error : Invalid syntax for an xml declaration." -"000036D4","14036","-4294953260","ERROR_SXS_XML_E_BADCHARDATA","Manifest Parse Error : An Invalid character was found in text content." -"000036D5","14037","-4294953259","ERROR_SXS_XML_E_MISSINGWHITESPACE","Manifest Parse Error : Required white space was missing." -"000036D6","14038","-4294953258","ERROR_SXS_XML_E_EXPECTINGTAGEND","Manifest Parse Error : The character '>' was expected." -"000036D7","14039","-4294953257","ERROR_SXS_XML_E_MISSINGSEMICOLON","Manifest Parse Error : A semi colon character was expected." -"000036D8","14040","-4294953256","ERROR_SXS_XML_E_UNBALANCEDPAREN","Manifest Parse Error : Unbalanced parentheses." -"000036D9","14041","-4294953255","ERROR_SXS_XML_E_INTERNALERROR","Manifest Parse Error : Internal error." -"000036DA","14042","-4294953254","ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE","Manifest Parse Error : Whitespace is not allowed at this location." -"000036DB","14043","-4294953253","ERROR_SXS_XML_E_INCOMPLETE_ENCODING","Manifest Parse Error : End of file reached in invalid state for current encoding." -"000036DC","14044","-4294953252","ERROR_SXS_XML_E_MISSING_PAREN","Manifest Parse Error : Missing parenthesis." -"000036DD","14045","-4294953251","ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE","Manifest Parse Error : A single or double closing quote character" -"000036DE","14046","-4294953250","ERROR_SXS_XML_E_MULTIPLE_COLONS","Manifest Parse Error : Multiple colons are not allowed in a name." -"000036DF","14047","-4294953249","ERROR_SXS_XML_E_INVALID_DECIMAL","Manifest Parse Error : Invalid character for decimal digit." -"000036E0","14048","-4294953248","ERROR_SXS_XML_E_INVALID_HEXIDECIMAL","Manifest Parse Error : Invalid character for hexadecimal digit." -"000036E1","14049","-4294953247","ERROR_SXS_XML_E_INVALID_UNICODE","Manifest Parse Error : Invalid unicode character value for this platform." -"000036E2","14050","-4294953246","ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK","Manifest Parse Error : Expecting whitespace or '?'." -"000036E3","14051","-4294953245","ERROR_SXS_XML_E_UNEXPECTEDENDTAG","Manifest Parse Error : End tag was not expected at this location." -"000036E4","14052","-4294953244","ERROR_SXS_XML_E_UNCLOSEDTAG","Manifest Parse Error : The following tags were not closed: %1." -"000036E5","14053","-4294953243","ERROR_SXS_XML_E_DUPLICATEATTRIBUTE","Manifest Parse Error : Duplicate attribute." -"000036E6","14054","-4294953242","ERROR_SXS_XML_E_MULTIPLEROOTS","Manifest Parse Error : Only one top level element is allowed in an XML document." -"000036E7","14055","-4294953241","ERROR_SXS_XML_E_INVALIDATROOTLEVEL","Manifest Parse Error : Invalid at the top level of the document." -"000036E8","14056","-4294953240","ERROR_SXS_XML_E_BADXMLDECL","Manifest Parse Error : Invalid xml declaration." -"000036E9","14057","-4294953239","ERROR_SXS_XML_E_MISSINGROOT","Manifest Parse Error : XML document must have a top level element." -"000036EA","14058","-4294953238","ERROR_SXS_XML_E_UNEXPECTEDEOF","Manifest Parse Error : Unexpected end of file." -"000036EB","14059","-4294953237","ERROR_SXS_XML_E_BADPEREFINSUBSET","Manifest Parse Error : Parameter entities cannot be used inside markup declarations in an internal subset." -"000036EC","14060","-4294953236","ERROR_SXS_XML_E_UNCLOSEDSTARTTAG","Manifest Parse Error : Element was not closed." -"000036ED","14061","-4294953235","ERROR_SXS_XML_E_UNCLOSEDENDTAG","Manifest Parse Error : End element was missing the character '>'." -"000036EE","14062","-4294953234","ERROR_SXS_XML_E_UNCLOSEDSTRING","Manifest Parse Error : A string literal was not closed." -"000036EF","14063","-4294953233","ERROR_SXS_XML_E_UNCLOSEDCOMMENT","Manifest Parse Error : A comment was not closed." -"000036F0","14064","-4294953232","ERROR_SXS_XML_E_UNCLOSEDDECL","Manifest Parse Error : A declaration was not closed." -"000036F1","14065","-4294953231","ERROR_SXS_XML_E_UNCLOSEDCDATA","Manifest Parse Error : A CDATA section was not closed." -"000036F2","14066","-4294953230","ERROR_SXS_XML_E_RESERVEDNAMESPACE","Manifest Parse Error : The namespace prefix is not allowed to start with the reserved string ""xml""." -"000036F3","14067","-4294953229","ERROR_SXS_XML_E_INVALIDENCODING","Manifest Parse Error : System does not support the specified encoding." -"000036F4","14068","-4294953228","ERROR_SXS_XML_E_INVALIDSWITCH","Manifest Parse Error : Switch from current encoding to specified encoding not supported." -"000036F5","14069","-4294953227","ERROR_SXS_XML_E_BADXMLCASE","Manifest Parse Error : The name 'xml' is reserved and must be lower case." -"000036F6","14070","-4294953226","ERROR_SXS_XML_E_INVALID_STANDALONE","Manifest Parse Error : The standalone attribute must have the value 'yes' or 'no'." -"000036F7","14071","-4294953225","ERROR_SXS_XML_E_UNEXPECTED_STANDALONE","Manifest Parse Error : The standalone attribute cannot be used in external entities." -"000036F8","14072","-4294953224","ERROR_SXS_XML_E_INVALID_VERSION","Manifest Parse Error : Invalid version number." -"000036F9","14073","-4294953223","ERROR_SXS_XML_E_MISSINGEQUALS","Manifest Parse Error : Missing equals sign between attribute and attribute value." -"000036FA","14074","-4294953222","ERROR_SXS_PROTECTION_RECOVERY_FAILED","Assembly Protection Error : Unable to recover the specified assembly." -"000036FB","14075","-4294953221","ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT","Assembly Protection Error : The public key for an assembly was too short to be allowed." -"000036FC","14076","-4294953220","ERROR_SXS_PROTECTION_CATALOG_NOT_VALID","Assembly Protection Error : The catalog for an assembly is not valid - or does not match the assembly's manifest." -"000036FD","14077","-4294953219","ERROR_SXS_UNTRANSLATABLE_HRESULT","An HRESULT could not be translated to a corresponding Win32 error code." -"000036FE","14078","-4294953218","ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING","Assembly Protection Error : The catalog for an assembly is missing." -"000036FF","14079","-4294953217","ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE","The supplied assembly identity is missing one or more attributes which must be present in this context." -"00003700","14080","-4294953216","ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME","The supplied assembly identity has one or more attribute names that contain characters not permitted in XML names." -"00003701","14081","-4294953215","ERROR_SXS_ASSEMBLY_MISSING","The referenced assembly could not be found." -"00003702","14082","-4294953214","ERROR_SXS_CORRUPT_ACTIVATION_STACK","The activation context activation stack for the running thread of execution is corrupt." -"00003703","14083","-4294953213","ERROR_SXS_CORRUPTION","The application isolation metadata for this process or thread has become corrupt." -"00003704","14084","-4294953212","ERROR_SXS_EARLY_DEACTIVATION","The activation context being deactivated is not the most recently activated one." -"00003705","14085","-4294953211","ERROR_SXS_INVALID_DEACTIVATION","The activation context being deactivated is not active for the current thread of execution." -"00003706","14086","-4294953210","ERROR_SXS_MULTIPLE_DEACTIVATION","The activation context being deactivated has already been deactivated." -"00003707","14087","-4294953209","ERROR_SXS_PROCESS_TERMINATION_REQUESTED","A component used by the isolation facility has requested to terminate the process." -"00003708","14088","-4294953208","ERROR_SXS_RELEASE_ACTIVATION_CONTEXT","A kernel mode component is releasing a reference on an activation context." -"00003709","14089","-4294953207","ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY","The activation context of system default assembly could not be generated." -"0000370A","14090","-4294953206","ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE","The value of an attribute in an identity is not within the legal range." -"0000370B","14091","-4294953205","ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME","The name of an attribute in an identity is not within the legal range." -"0000370C","14092","-4294953204","ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE","An identity contains two definitions for the same attribute." -"0000370D","14093","-4294953203","ERROR_SXS_IDENTITY_PARSE_ERROR","The identity string is malformed. This may be due to a trailing comma - more than two unnamed attributes - missing attribute name or missing attribute value." -"0000370E","14094","-4294953202","ERROR_MALFORMED_SUBSTITUTION_STRING","A string containing localized substitutable content was malformed. Either a dollar sign" -"0000370F","14095","-4294953201","ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN","The public key token does not correspond to the public key specified." -"00003710","14096","-4294953200","ERROR_UNMAPPED_SUBSTITUTION_STRING","A substitution string had no mapping." -"00003711","14097","-4294953199","ERROR_SXS_ASSEMBLY_NOT_LOCKED","The component must be locked before making the request." -"00003712","14098","-4294953198","ERROR_SXS_COMPONENT_STORE_CORRUPT","The component store has been corrupted." -"00003713","14099","-4294953197","ERROR_ADVANCED_INSTALLER_FAILED","An advanced installer failed during setup or servicing." -"00003714","14100","-4294953196","ERROR_XML_ENCODING_MISMATCH","The character encoding in the XML declaration did not match the encoding used in the document." -"00003715","14101","-4294953195","ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT","The identities of the manifests are identical but their contents are different." -"00003716","14102","-4294953194","ERROR_SXS_IDENTITIES_DIFFERENT","The component identities are different." -"00003717","14103","-4294953193","ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT","The assembly is not a deployment." -"00003718","14104","-4294953192","ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY","The file is not a part of the assembly." -"00003719","14105","-4294953191","ERROR_SXS_MANIFEST_TOO_BIG","The size of the manifest exceeds the maximum allowed." -"0000371A","14106","-4294953190","ERROR_SXS_SETTING_NOT_REGISTERED","The setting is not registered." -"0000371B","14107","-4294953189","ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE","One or more required members of the transaction are not present." -"0000371C","14108","-4294953188","ERROR_SMI_PRIMITIVE_INSTALLER_FAILED","The SMI primitive installer failed during setup or servicing." -"0000371D","14109","-4294953187","ERROR_GENERIC_COMMAND_FAILED","A generic command executable returned a result that indicates failure." -"0000371E","14110","-4294953186","ERROR_SXS_FILE_HASH_MISSING","A component is missing file verification information in its manifest." -"000037A1","14241","-4294953055","NULL","" -"000037FA","14330","-4294952966","NULL","" -"0000384E","14414","-4294952882","NULL","" -"000038F5","14581","-4294952715","NULL","" -"0000399D","14749","-4294952547","NULL","" -"00003A5C","14940","-4294952356","NULL","" -"00003A98","15000","-4294952296","ERROR_EVT_INVALID_CHANNEL_PATH","The specified channel path is invalid." -"00003A99","15001","-4294952295","ERROR_EVT_INVALID_QUERY","The specified query is invalid." -"00003A9A","15002","-4294952294","ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND","The publisher metadata cannot be found in the resource." -"00003A9B","15003","-4294952293","ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND","The template for an event definition cannot be found in the resource" -"00003A9C","15004","-4294952292","ERROR_EVT_INVALID_PUBLISHER_NAME","The specified publisher name is invalid." -"00003A9D","15005","-4294952291","ERROR_EVT_INVALID_EVENT_DATA","The event data raised by the publisher is not compatible with the event template definition in the publisher's manifest." -"00003A9F","15007","-4294952289","ERROR_EVT_CHANNEL_NOT_FOUND","The specified channel could not be found. Check channel configuration." -"00003AA0","15008","-4294952288","ERROR_EVT_MALFORMED_XML_TEXT","The specified xml text was not well-formed. See Extended Error for more details." -"00003AA1","15009","-4294952287","ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL","The caller is trying to subscribe to a direct channel which is not allowed. The events for a direct channel go directly to a logfile and cannot be subscribed to." -"00003AA2","15010","-4294952286","ERROR_EVT_CONFIGURATION_ERROR","Configuration error." -"00003AA3","15011","-4294952285","ERROR_EVT_QUERY_RESULT_STALE","The query result is stale / invalid. This may be due to the log being cleared or rolling over after the query result was created. Users should handle this code by releasing the query result object and reissuing the query." -"00003AA4","15012","-4294952284","ERROR_EVT_QUERY_RESULT_INVALID_POSITION","Query result is currently at an invalid position." -"00003AA5","15013","-4294952283","ERROR_EVT_NON_VALIDATING_MSXML","Registered MSXML doesn't support validation." -"00003AA6","15014","-4294952282","ERROR_EVT_FILTER_ALREADYSCOPED","An expression can only be followed by a change of scope operation if it itself evaluates to a node set and is not already part of some other change of scope operation." -"00003AA7","15015","-4294952281","ERROR_EVT_FILTER_NOTELTSET","Can't perform a step operation from a term that does not represent an element set." -"00003AA8","15016","-4294952280","ERROR_EVT_FILTER_INVARG","Left hand side arguments to binary operators must be either attributes - nodes or variables and right hand side arguments must be constants." -"00003AA9","15017","-4294952279","ERROR_EVT_FILTER_INVTEST","A step operation must involve either a node test or - in the case of a predicate - an algebraic expression against which to test each node in the node set identified by the preceding node set can be evaluated." -"00003AAA","15018","-4294952278","ERROR_EVT_FILTER_INVTYPE","This data type is currently unsupported." -"00003AAB","15019","-4294952277","ERROR_EVT_FILTER_PARSEERR","A syntax error occurred at position %1!d!." -"00003AAC","15020","-4294952276","ERROR_EVT_FILTER_UNSUPPORTEDOP","This operator is unsupported by this implementation of the filter." -"00003AAD","15021","-4294952275","ERROR_EVT_FILTER_UNEXPECTEDTOKEN","The token encountered was unexpected." -"00003AAE","15022","-4294952274","ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL","The requested operation cannot be performed over an enabled direct channel. The channel must first be disabled before performing the requested operation." -"00003AAF","15023","-4294952273","ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE","Channel property %1!s! contains invalid value. The value has invalid type - is outside of valid range - can't be updated or is not supported by this type of channel." -"00003AB0","15024","-4294952272","ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE","Publisher property %1!s! contains invalid value. The value has invalid type - is outside of valid range - can't be updated or is not supported by this type of publisher." -"00003AB1","15025","-4294952271","ERROR_EVT_CHANNEL_CANNOT_ACTIVATE","The channel fails to activate." -"00003AB2","15026","-4294952270","ERROR_EVT_FILTER_TOO_COMPLEX","The xpath expression exceeded supported complexity. Please simplify it or split it into two or more simple expressions." -"00003AB3","15027","-4294952269","ERROR_EVT_MESSAGE_NOT_FOUND","the message resource is present but the message is not found in the string/message table." -"00003AB4","15028","-4294952268","ERROR_EVT_MESSAGE_ID_NOT_FOUND","The message id for the desired message could not be found." -"00003AB5","15029","-4294952267","ERROR_EVT_UNRESOLVED_VALUE_INSERT","The substitution string for insert index" -"00003AB6","15030","-4294952266","ERROR_EVT_UNRESOLVED_PARAMETER_INSERT","The description string for parameter reference" -"00003AB7","15031","-4294952265","ERROR_EVT_MAX_INSERTS_REACHED","The maximum number of replacements has been reached." -"00003AB8","15032","-4294952264","ERROR_EVT_EVENT_DEFINITION_NOT_FOUND","The event definition could not be found for event id" -"00003AB9","15033","-4294952263","ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND","The locale specific resource for the desired message is not present." -"00003ABA","15034","-4294952262","ERROR_EVT_VERSION_TOO_OLD","The resource is too old to be compatible." -"00003ABB","15035","-4294952261","ERROR_EVT_VERSION_TOO_NEW","The resource is too new to be compatible." -"00003ABC","15036","-4294952260","ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY","The channel at index %1!d! of the query can't be opened." -"00003ABD","15037","-4294952259","ERROR_EVT_PUBLISHER_DISABLED","The publisher has been disabled and its resource is not available. This usually occurs when the publisher is in the process of being uninstalled or upgraded." -"00003ABE","15038","-4294952258","ERROR_EVT_FILTER_OUT_OF_RANGE","Attempted to create a numeric type that is outside of its valid range." -"00003AE8","15080","-4294952216","ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE","The subscription fails to activate." -"00003AE9","15081","-4294952215","ERROR_EC_LOG_DISABLED","The log of the subscription is in disabled state - and cannot be used to forward events to. The log must first be enabled before the subscription can be activated." -"00003AEA","15082","-4294952214","ERROR_EC_CIRCULAR_FORWARDING","When forwarding events from local machine to itself - the query of the subscription can't contain target log of the subscription." -"00003AEB","15083","-4294952213","ERROR_EC_CREDSTORE_FULL","The credential store that is used to save credentials is full." -"00003AEC","15084","-4294952212","ERROR_EC_CRED_NOT_FOUND","The credential used by this subscription can't be found in credential store." -"00003AED","15085","-4294952211","ERROR_EC_NO_ACTIVE_CHANNEL","No active channel is found for the query." -"00003AFC","15100","-4294952196","ERROR_MUI_FILE_NOT_FOUND","The resource loader failed to find MUI file." -"00003AFD","15101","-4294952195","ERROR_MUI_INVALID_FILE","The resource loader failed to load MUI file because the file fail to pass validation." -"00003AFE","15102","-4294952194","ERROR_MUI_INVALID_RC_CONFIG","The RC Manifest is corrupted with garbage data or unsupported version or missing required item." -"00003AFF","15103","-4294952193","ERROR_MUI_INVALID_LOCALE_NAME","The RC Manifest has invalid culture name." -"00003B00","15104","-4294952192","ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME","The RC Manifest has invalid ultimatefallback name." -"00003B01","15105","-4294952191","ERROR_MUI_FILE_NOT_LOADED","The resource loader cache doesn't have loaded MUI entry." -"00003B02","15106","-4294952190","ERROR_RESOURCE_ENUM_USER_STOP","User stopped resource enumeration." -"00003B03","15107","-4294952189","ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED","UI language installation failed." -"00003B04","15108","-4294952188","ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME","Locale installation failed." -"00003B06","15110","-4294952186","ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE","A resource does not have default or neutral value." -"00003B07","15111","-4294952185","ERROR_MRM_INVALID_PRICONFIG","Invalid PRI config file." -"00003B08","15112","-4294952184","ERROR_MRM_INVALID_FILE_TYPE","Invalid file type." -"00003B09","15113","-4294952183","ERROR_MRM_UNKNOWN_QUALIFIER","Unknown qualifier." -"00003B0A","15114","-4294952182","ERROR_MRM_INVALID_QUALIFIER_VALUE","Invalid qualifier value." -"00003B0B","15115","-4294952181","ERROR_MRM_NO_CANDIDATE","No Candidate found." -"00003B0C","15116","-4294952180","ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE","The ResourceMap or NamedResource has an item that does not have default or neutral resource.." -"00003B0D","15117","-4294952179","ERROR_MRM_RESOURCE_TYPE_MISMATCH","Invalid ResourceCandidate type." -"00003B0E","15118","-4294952178","ERROR_MRM_DUPLICATE_MAP_NAME","Duplicate Resource Map." -"00003B0F","15119","-4294952177","ERROR_MRM_DUPLICATE_ENTRY","Duplicate Entry." -"00003B10","15120","-4294952176","ERROR_MRM_INVALID_RESOURCE_IDENTIFIER","Invalid Resource Identifier." -"00003B11","15121","-4294952175","ERROR_MRM_FILEPATH_TOO_LONG","Filepath too long." -"00003B12","15122","-4294952174","ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE","Unsupported directory type." -"00003B16","15126","-4294952170","ERROR_MRM_INVALID_PRI_FILE","Invalid PRI File." -"00003B17","15127","-4294952169","ERROR_MRM_NAMED_RESOURCE_NOT_FOUND","NamedResource Not Found." -"00003B1F","15135","-4294952161","ERROR_MRM_MAP_NOT_FOUND","ResourceMap Not Found." -"00003B20","15136","-4294952160","ERROR_MRM_UNSUPPORTED_PROFILE_TYPE","Unsupported MRT profile type." -"00003B21","15137","-4294952159","ERROR_MRM_INVALID_QUALIFIER_OPERATOR","Invalid qualifier operator." -"00003B22","15138","-4294952158","ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE","Unable to determine qualifier value or qualifier value has not been set." -"00003B23","15139","-4294952157","ERROR_MRM_AUTOMERGE_ENABLED","Automerge is enabled in the PRI file." -"00003B24","15140","-4294952156","ERROR_MRM_TOO_MANY_RESOURCES","Too many resources defined for package." -"00003B60","15200","-4294952096","ERROR_MCA_INVALID_CAPABILITIES_STRING","The monitor returned a DDC/CI capabilities string that did not comply with the ACCESS.bus 3.0 - DDC/CI 1.1 or MCCS 2 Revision 1 specification." -"00003B61","15201","-4294952095","ERROR_MCA_INVALID_VCP_VERSION","The monitor's VCP Version" -"00003B62","15202","-4294952094","ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION","The monitor does not comply with the MCCS specification it claims to support." -"00003B63","15203","-4294952093","ERROR_MCA_MCCS_VERSION_MISMATCH","The MCCS version in a monitor's mccs_ver capability does not match the MCCS version the monitor reports when the VCP Version" -"00003B64","15204","-4294952092","ERROR_MCA_UNSUPPORTED_MCCS_VERSION","The Monitor Configuration API only works with monitors that support the MCCS 1.0 specification - MCCS 2.0 specification or the MCCS 2.0 Revision 1 specification." -"00003B65","15205","-4294952091","ERROR_MCA_INTERNAL_ERROR","An internal Monitor Configuration API error occurred." -"00003B66","15206","-4294952090","ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED","The monitor returned an invalid monitor technology type. CRT - Plasma and LCD" -"00003B67","15207","-4294952089","ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE","The caller of SetMonitorColorTemperature specified a color temperature that the current monitor did not support. This error implies that the monitor violated the MCCS 2.0 or MCCS 2.0 Revision 1 specification." -"00003B92","15250","-4294952046","ERROR_AMBIGUOUS_SYSTEM_DEVICE","The requested system device cannot be identified due to multiple indistinguishable devices potentially matching the identification criteria." -"00003BC3","15299","-4294951997","ERROR_SYSTEM_DEVICE_NOT_FOUND","The requested system device cannot be found." -"00003BC4","15300","-4294951996","ERROR_HASH_NOT_SUPPORTED","Hash generation for the specified hash version and hash type is not enabled on the server." -"00003BC5","15301","-4294951995","ERROR_HASH_NOT_PRESENT","The hash requested from the server is not available or no longer valid." -"00003BD9","15321","-4294951975","ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED","The secondary interrupt controller instance that manages the specified interrupt is not registered." -"00003BDA","15322","-4294951974","ERROR_GPIO_CLIENT_INFORMATION_INVALID","The information supplied by the GPIO client driver is invalid." -"00003BDB","15323","-4294951973","ERROR_GPIO_VERSION_NOT_SUPPORTED","The version specified by the GPIO client driver is not supported." -"00003BDC","15324","-4294951972","ERROR_GPIO_INVALID_REGISTRATION_PACKET","The registration packet supplied by the GPIO client driver is not valid." -"00003BDD","15325","-4294951971","ERROR_GPIO_OPERATION_DENIED","The requested operation is not supported for the specified handle." -"00003BDE","15326","-4294951970","ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE","The requested connect mode conflicts with an existing mode on one or more of the specified pins." -"00003BDF","15327","-4294951969","ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED","The interrupt requested to be unmasked is not masked." -"00003C28","15400","-4294951896","ERROR_CANNOT_SWITCH_RUNLEVEL","The requested run level switch cannot be completed successfully." -"00003C29","15401","-4294951895","ERROR_INVALID_RUNLEVEL_SETTING","The service has an invalid run level setting. The run level for a service must not be higher than the run level of its dependent services." -"00003C2A","15402","-4294951894","ERROR_RUNLEVEL_SWITCH_TIMEOUT","The requested run level switch cannot be completed successfully since one or more services will not stop or restart within the specified timeout." -"00003C2B","15403","-4294951893","ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT","A run level switch agent did not respond within the specified timeout." -"00003C2C","15404","-4294951892","ERROR_RUNLEVEL_SWITCH_IN_PROGRESS","A run level switch is currently in progress." -"00003C2D","15405","-4294951891","ERROR_SERVICES_FAILED_AUTOSTART","One or more services failed to start during the service startup phase of a run level switch." -"00003C8D","15501","-4294951795","ERROR_COM_TASK_STOP_PENDING","The task stop request cannot be completed immediately since task needs more time to shutdown." -"00003CF0","15600","-4294951696","ERROR_INSTALL_OPEN_PACKAGE_FAILED","Package could not be opened." -"00003CF1","15601","-4294951695","ERROR_INSTALL_PACKAGE_NOT_FOUND","Package was not found." -"00003CF2","15602","-4294951694","ERROR_INSTALL_INVALID_PACKAGE","Package data is invalid." -"00003CF3","15603","-4294951693","ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED","Package failed updates - dependency or conflict validation." -"00003CF4","15604","-4294951692","ERROR_INSTALL_OUT_OF_DISK_SPACE","There is not enough disk space on your computer. Please free up some space and try again." -"00003CF5","15605","-4294951691","ERROR_INSTALL_NETWORK_FAILURE","There was a problem downloading your product." -"00003CF6","15606","-4294951690","ERROR_INSTALL_REGISTRATION_FAILURE","Package could not be registered." -"00003CF7","15607","-4294951689","ERROR_INSTALL_DEREGISTRATION_FAILURE","Package could not be unregistered." -"00003CF8","15608","-4294951688","ERROR_INSTALL_CANCEL","User cancelled the install request." -"00003CF9","15609","-4294951687","ERROR_INSTALL_FAILED","Install failed. Please contact your software vendor." -"00003CFA","15610","-4294951686","ERROR_REMOVE_FAILED","Removal failed. Please contact your software vendor." -"00003CFB","15611","-4294951685","ERROR_PACKAGE_ALREADY_EXISTS","The provided package is already installed - and reinstallation of the package was blocked. Check the AppXDeployment-Server event log for details." -"00003CFC","15612","-4294951684","ERROR_NEEDS_REMEDIATION","The application cannot be started. Try reinstalling the application to fix the problem." -"00003CFD","15613","-4294951683","ERROR_INSTALL_PREREQUISITE_FAILED","A Prerequisite for an install could not be satisfied." -"00003CFE","15614","-4294951682","ERROR_PACKAGE_REPOSITORY_CORRUPTED","The package repository is corrupted." -"00003CFF","15615","-4294951681","ERROR_INSTALL_POLICY_FAILURE","To install this application you need either a Windows developer license or a sideloading-enabled system." -"00003D00","15616","-4294951680","ERROR_PACKAGE_UPDATING","The application cannot be started because it is currently updating." -"00003D01","15617","-4294951679","ERROR_DEPLOYMENT_BLOCKED_BY_POLICY","The package deployment operation is blocked by policy. Please" -"00003D02","15618","-4294951678","ERROR_PACKAGES_IN_USE","The package could not be installed because resources it modifies are currently in use." -"00003D03","15619","-4294951677","ERROR_RECOVERY_FILE_CORRUPT","The package could not be recovered because necessary data for recovery have been corrupted." -"00003D04","15620","-4294951676","ERROR_INVALID_STAGED_SIGNATURE","The signature is invalid. To register in developer mode - AppxSignature.p7x and AppxBlockMap.xml must be valid or should not be present." -"00003D05","15621","-4294951675","ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED","An error occurred while deleting the package's previously existing application data." -"00003D06","15622","-4294951674","ERROR_INSTALL_PACKAGE_DOWNGRADE","The package could not be installed because a higher version of this package is already installed." -"00003D07","15623","-4294951673","ERROR_SYSTEM_NEEDS_REMEDIATION","An error in a system binary was detected. Try refreshing the PC to fix the problem." -"00003D08","15624","-4294951672","ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN","A corrupted CLR NGEN binary was detected on the system." -"00003D09","15625","-4294951671","ERROR_RESILIENCY_FILE_CORRUPT","The operation could not be resumed because necessary data for recovery have been corrupted." -"00003D0A","15626","-4294951670","ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING","The package could not be installed because the Windows Firewall service is not running. Enable the Windows Firewall service and try again." -"00003D16","-4294951658","15638","NULL","" -"00003D54","15700","-4294951596","APPMODEL_ERROR_NO_PACKAGE","The process has no package identity." -"00003D55","15701","-4294951595","APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT","The package runtime information is corrupted." -"00003D56","15702","-4294951594","APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT","The package identity is corrupted." -"00003D57","15703","-4294951593","APPMODEL_ERROR_NO_APPLICATION","The process has no application identity." -"00003DB8","15800","-4294951496","ERROR_STATE_LOAD_STORE_FAILED","Loading the state store failed." -"00003DB9","15801","-4294951495","ERROR_STATE_GET_VERSION_FAILED","Retrieving the state version for the application failed." -"00003DBA","15802","-4294951494","ERROR_STATE_SET_VERSION_FAILED","Setting the state version for the application failed." -"00003DBB","15803","-4294951493","ERROR_STATE_STRUCTURED_RESET_FAILED","Resetting the structured state of the application failed." -"00003DBC","15804","-4294951492","ERROR_STATE_OPEN_CONTAINER_FAILED","State Manager failed to open the container." -"00003DBD","15805","-4294951491","ERROR_STATE_CREATE_CONTAINER_FAILED","State Manager failed to create the container." -"00003DBE","15806","-4294951490","ERROR_STATE_DELETE_CONTAINER_FAILED","State Manager failed to delete the container." -"00003DBF","15807","-4294951489","ERROR_STATE_READ_SETTING_FAILED","State Manager failed to read the setting." -"00003DC0","15808","-4294951488","ERROR_STATE_WRITE_SETTING_FAILED","State Manager failed to write the setting." -"00003DC1","15809","-4294951487","ERROR_STATE_DELETE_SETTING_FAILED","State Manager failed to delete the setting." -"00003DC2","15810","-4294951486","ERROR_STATE_QUERY_SETTING_FAILED","State Manager failed to query the setting." -"00003DC3","15811","-4294951485","ERROR_STATE_READ_COMPOSITE_SETTING_FAILED","State Manager failed to read the composite setting." -"00003DC4","15812","-4294951484","ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED","State Manager failed to write the composite setting." -"00003DC5","15813","-4294951483","ERROR_STATE_ENUMERATE_CONTAINER_FAILED","State Manager failed to enumerate the containers." -"00003DC6","15814","-4294951482","ERROR_STATE_ENUMERATE_SETTINGS_FAILED","State Manager failed to enumerate the settings." -"00003DC7","15815","-4294951481","ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED","The size of the state manager composite setting value has exceeded the limit." -"00003DC8","15816","-4294951480","ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED","The size of the state manager setting value has exceeded the limit." -"00003DC9","15817","-4294951479","ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED","The length of the state manager setting name has exceeded the limit." -"00003DCA","15818","-4294951478","ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED","The length of the state manager container name has exceeded the limit." -"00003DE1","15841","-4294951455","ERROR_API_UNAVAILABLE","This API cannot be used in the context of the caller's application type." -"00003E44","15940","-4294951356","NULL","" -"00004016","16406","-4294950890","NULL","" -"000040CF","16591","-4294950705","NULL","" -"00004146","16710","-4294950586","NULL","" -"000041F4","16884","-4294950412","NULL","" -"0000433D","17213","-4294950083","NULL","" -"000043F9","17401","-4294949895","NULL","" -"000044CC","17612","-4294949684","NULL","" -"0000471E","18206","-4294949090","NULL","" -"00004808","18440","-4294948856","NULL","" -"00004910","18704","-4294948592","NULL","" -"00004966","18790","-4294948506","NULL","" -"00004A65","19045","-4294948251","NULL","" -"00004BF9","19449","-4294947847","NULL","" -"00004CC2","19650","-4294947646","NULL","" -"00004D2D","19757","-4294947539","NULL","" -"00004DB8","19896","-4294947400","NULL","" -"00004E90","20112","-4294947184","NULL","" -"00004FA2","20386","-4294946910","NULL","" -"00005112","20754","-4294946542","NULL","" -"000051CF","20943","-4294946353","NULL","" -"00005249","21065","-4294946231","NULL","" -"00005299","21145","-4294946151","NULL","" -"0000530C","21260","-4294946036","NULL","" -"000053C4","21444","-4294945852","NULL","" -"00005492","21650","-4294945646","NULL","" -"00005542","21826","-4294945470","NULL","" -"0000556E","21870","-4294945426","NULL","" -"000055BC","21948","-4294945348","NULL","" -"00005636","22070","-4294945226","NULL","" -"00005812","22546","-4294944750","NULL","" -"00005844","22596","-4294944700","NULL","" -"000058F7","22775","-4294944521","NULL","" -"00005A6A","23146","-4294944150","NULL","" -"00005AA5","23205","-4294944091","NULL","" -"00005C0E","23566","-4294943730","NULL","" -"00005FE9","24553","-4294942743","NULL","" -"00006056","24662","-4294942634","NULL","" -"0000626E","25198","-4294942098","NULL","" -"000062B6","25270","-4294942026","NULL","" -"0000651F","25887","-4294941409","NULL","" -"000065AA","26026","-4294941270","NULL","" -"000065BA","26042","-4294941254","NULL","" -"00006F50","28496","-4294938800","NULL","" -"00007052","28754","-4294938542","NULL","" -"00007190","29072","-4294938224","NULL","" -"00007617","30231","-4294937065","NULL","" -"00007747","30535","-4294936761","NULL","" -"00007865","30821","-4294936475","NULL","" -"00007B86","31622","-4294935674","NULL","" -"00007C12","31762","-4294935534","NULL","" -"00007C78","31864","-4294935432","NULL","" -"00007CE1","31969","-4294935327","NULL","" -"00007D12","32018","-4294935278","NULL","" -"00007DFF","32255","-4294935041","NULL","" -"00007EC9","32457","-4294934839","NULL","" -"00007F83","32643","-4294934653","NULL","" -"00007FCC","32716","-4294934580","NULL","" -"0000F06A","61546","-4294905750","NULL","" -"0000F06B","61547","-4294905749","NULL","" -"0000F0DA","61658","-4294905638","NULL","" -"0000174B","5963","-4294961333","ERROR_CLUSTER_DISK_NOT_CONNECTED","This value was also named ERROR_CLUSTER_NODE_EVACUATION_IN_PROGRESS" -"00240001","2359297","-4292607999","WU_S_SERVICE_STOP","Service stopped" -"00240002","2359298","-4292607998","WU_S_SELFUPDATE","Agent selfupdates" -"00240003","2359299","-4292607997","WU_S_UPDATE_ERROR","Overall operation completed but error occurred while processing one or more specified updates." -"00240004","2359300","-4292607996","WU_S_MARKED_FOR_DISCONNECT","The caller attempted to disconnect an operation but the operation is busy calling back so the callback is marked for disconnect later" -"00240005","2359301","-4292607995","WU_S_REBOOT_REQUIRED","The system needs to be rebooted to complete installation." -"00240006","2359302","-4292607994","SUS_S_ALREADY_INSTALLED","The update to be installed is already installed" -"00240007","2359303","-4292607993","WU_S_ALREADY_UNINSTALLED","The update to be uninstalled is already not installed." -"00240008","2359304","-4292607992","WU_S_ALREADY_DOWNLOADED","The update to be downloaded is already downloaded" -"80000007","-2147483641","2147483655","E_ABORT","" -"80004001","-2147467263","2147500033","E_NOTIMPL","" -"80004002","-2147467262","2147500034","E_Nointerface","" -"80004003","-2147467261","2147500035","E_Pointer","Invalid pointer" -"80004004","-2147467260","2147500036","E_ABORT","Operation Aborted" -"80004005","-2147467259","2147500037","E_Fail","Resource missing" -"80004015","-2147467243","2147500053","CO_E_WRONG_SERVER_IDENTITY","" -"80008083","-2147450749","2147516547","","Missing dependency on `Microsoft.DotNet.DesktopRuntime.8`." -"8000FFFF","-2147418113","2147549183","E_UNEXPECTED","" -"80010100","-2147417856","2147549440","RPC_E_SYS_CALL_FAILED","" -"80010105","-2147417851","2147549445","RPC_E_Serverfault","" -"80010108","-2147417848","2147549448","RPC_E_Disconnected","" -"8004005","134234117","-4160733179","","Resource missing" -"80040154","-2147221164","2147746132","REGDB_E_CLASSNOTREG","" -"800401F3","-2147221005","2147746291","CO_E_Classstring","" -"800401FD","-2147220995","2147746301","CO_E_Objnotconnected","Object is not connected to server" -"80040206","-2147220986","2147746310","EVENT_E_INTERNALERROR","There will be event messages in Application/System log regarding the errors." -"80070001","-2147024895","2147942401","ERROR_INVALID_FUNCTION","Windows cannot install required files." -"80070002","-2147024894","2147942402","ERROR_FILE_NOT_FOUND","The System cannot find the file specified" -"80070003","-2147024893","2147942403","COR_E_DIRECTORYNOTFOUND","The specified path couldn't be found - ALLUSERSPROFILE Microsoft network dir doesn't exist" -"80070005","-2147024891","2147942405","ERROR_ACCESS_DENIED","The authentication method is not supported." -"80070006","-2147024890","2147942406","E_Handle","Handle not valid error" -"80070008","-2147024888","2147942408","ERROR_NOT_ENOUGH_MEMORY","The system is out of memory." -"8007000B","-2147024885","2147942411","COR_E_BADIMAGEFORMAT","The format of the DLL or executable being loaded is invalid" -"8007000D","-2147024883","2147942413","Error_invalid_data","" -"8007000E","-2147024882","2147942414","E_OUTOFMEMORY","" -"80070017","-2147024873","2147942423","ERROR_CRC","Data error (cyclic redundancy check)." -"8007001F","-2147024865","2147942431","ERROR_GEN_FAILURE","A device attached to the system is not functioning" -"80070020","-2147024864","2147942432","STIERR_SHARING_VIOLATION","The process cannot access the file because it is being used by another process" -"8007003","-4160720893","134246403","","The request is not supported." -"80070032","-2147024846","2147942450","ERROR_NOT_SUPPORTED","" -"80070050","-2147024816","2147942480","ERROR_FILE_EXISTS","" -"80070052","-2147024814","2147942482","ERROR_CANNOT_MAKE","The directory or file cannot be created" -"80070057","-2147024809","2147942487","ERROR_INVALID_PARAMETER - E_INVALIDARG","One or more arguments are not valid error - Invalid proxy server name was specified in the user-IE settings and hence WinhttpSetProxySettings call fails with E_INVALIDARG error. " -"80070070","-2147024784","2147942512","ERROR_DISK_FULL","There is not enough space on the disk" -"8007007A","-2147024774","2147942522","ERROR_INSUFFICIENT_BUFFER","" -"8007007B","-2147024773","2147942523","STIERR_INVALID_DEVICE_NAME","" -"8007007E","-2147024770","2147942526","ERROR_MOD_NOT_FOUND","The specified module could not be found." -"8007007F","-2147024769","2147942527","ERROR_PROC_NOT_FOUND","The specified procedure could not be found." -"80070080","-2147024768","2147942528","ERROR_WAIT_NO_CHILDREN","There are no child processes to wait for" -"800700A1","-2147024735","2147942561","ERROR_BAD_PATHNAME","" -"800700B6","-2147024714","2147942582","ERROR_INVALID_ORDINAL","" -"800700C1","-2147024703","2147942593","ERROR_BAD_EXE_FORMAT","is not a valid Win32 application" -"800700D8","-2147024680","2147942616","","This version of this application is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher. (Should this have `Architecture: x64`?)" -"800700E7","-2147024665","2147942631","Error_Pipe_Busy","All pipe instances are busy" -"80070103","-2147024637","2147942659","ERROR_NO_MORE_ITEMS:","" -"8007010B","-2147024629","2147942667","ERROR_DIRECTORY","The directory name is invalid" -"8007012E","-2147024594","2147942702","Error_Disk_Too_Fragmented","" -"800701E7","-2147024409","2147942887","Error_Invalid_Address","" -"800703E3","-2147023901","2147943395","Error_Operation_Aborted","The I/O operation has been aborted because of either a thread exit or an application request" -"800703E5","-2147023899","2147943397","ERROR_IO_PENDING","" -"800703E6","-2147023898","2147943398","Error_Noaccess to memory location","Invalid access to memory location" -"800703E7","-2147023897","2147943399","Error_Swaperror","Error performing inpage operation" -"800703EB","-2147023893","2147943403","Error_Can_Not_Complete","Cannot complete this function" -"800703ED","-2147023891","2147943405","ERROR_UNRECOGNIZED_VOLUME","The volume does not contain a recognized file system" -"800703F0","-2147023888","2147943408","ERROR_NO_TOKEN","An attempt was made to reference a token that does not exist" -"8007041D","-2147023843","2147943453","ERROR_SERVICE_REQUEST_TIMEOUT","The service did not respond to the start or control request in a timely fashion" -"8007041E","-2147023842","2147943454","Error_Service_No_Thread","A thread could not be created for this service" -"8007041F","-2147023841","2147943455","ERROR_SERVICE_DATABASE_LOCKED","The service database is locked" -"80070422","-2147023838","2147943458","ERROR_SERVICE_DISABLED","The service cannot be started." -"80070424","-2147023836","2147943460","ERROR_SERVICE_DOES_NOT_EXIST","The specified service does not exist as an installed service." -"80070426","-2147023834","2147943462","ERROR_SERVICE_NOT_ACTIVE","The service has not been started" -"8007042B","-2147023829","2147943467","ERROR_PROCESS_ABORTED","" -"8007042C","-2147023828","2147943468","Error_Service_Dependency_Fail","" -"80070433","-2147023821","2147943475","ERROR_SERVICE_DEPENDENCY_DELETED","" -"80070437","-2147023817","2147943479","Error_Different_Service_Account","" -"8007043B","-2147023813","2147943483","ERROR_SERVICE_NOT_IN_EXE","The executable program that this service is configured to run does not implement the service. netsvcs registry value in HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Svchost registry key should contain the service names that can be run in that service host. On XP and Windows 2003" -"8007045A","-2147023782","2147943514","ERROR_DLL_INIT_FAILED","" -"8007045B","-2147023781","2147943515","ERROR_SHUTDOWN_IN_PROGRESS","" -"80070490","-2147023728","2147943568","E_PROP_ID_UNSUPPORTED","Permission denied / [Problem initializing or using session variables] or Element not found" -"800704C7","-2147023673","2147943623","ERROR_CANCELLED","Cancelled by user" -"800704DD","-2147023651","2147943645","Error_Not_Logged_On to network","" -"80070502","-2147023614","2147943682","Error_Stack_Buffer_Overrun","The system detected an overrun of a stack-based buffer in this application" -"80070570","-2147023504","2147943792","ERROR_FILE_CORRUPT","" -"8007057F","-2147023489","2147943807","Error_Cannot_Find_WND_Class","Cannot find windows class" -"8007058D","-2147023475","2147943821","Error_Control_ID_Not_Found","" -"800705AA","-2147023446","2147943850","ERROR_NO_SYSTEM_RESOURCE","Insufficient system resources exist to complete the requested service" -"800705AD","-2147023443","2147943853","Error_Working_Set_Quota","Insufficient quota to complete the requested service" -"800705AF","-2147023441","2147943855","ERROR_COMMITMENT_LIMIT","The paging file is too small for this operation to complete" -"800705B4","-2147023436","2147943860","Error_Timeout","" -"80070643","-2147023293","2147944003","ERROR_INSTALL_FAILURE","" -"80070652","-2147023278","2147944018","ERROR_INSTALL_ALREADY_RUNNING ErrorClientUpdateInProgress","" -"80070661","-2147023263","2147944033","ERROR_INSTALL_PLATFORM_UNSUPPORTED","This installation package is not supported by this processor type. Does this manifest have `Architecture: x86`? It might need to be `x64`." -"8007066A","-2147023254","2147944042","Error_Patch_Target_Not_Found","The program to be upgraded may be missing or the patch may upgrade a different version of the program" -"800706A6","-2147023194","2147944102","RPC_S_Invalid_Binding","Terminal Services optional component is installed on the machine" -"800706B5","-2147023179","2147944117","RPC_S_Unknown_IF","Eventlog service is not running." -"800706BA","-2147023174","2147944122","RPC_S_SERVER_UNAVAILABLE","" -"800706BB","-2147023173","2147944123","RPC_S_SERVER_TOO_BUSY","The RPC server is too busy to complete this operation" -"800706BE","-2147023170","2147944126","RPC_S_CALL_FAILED","" -"800706BF","-2147023169","2147944127","PRC_S_Call_Failed_DNE","" -"800706C6","-2147023162","2147944134","RPC_S_Invalid_Bound","The array bounds are invalid" -"800706F7","-2147023113","2147944183","RPC_X_Bad_Stub_Data","This can occur after a control selfupdate that has not fully completed and requires a reboot. The controls may need to be reregistered." -"80070704","-2147023100","2147944196","Error_Unknown_Port","" -"80070BC2","-2147021886","2147945410","ErrorControlRebootRequired","" -"8007276B","-2147014805","2147952491","WSASYSNOTREADY","The description of WSASYSNOTREADY says WSAStartup cannot function at this time because the underlying system it uses to provide network services is currently unavailable. It seems that something is wrong with networking components on the system." -"8007277B","-2147014789","2147952507","WSASYSCALLFAILURE","A system call that should never fail has failed" -"80072AF9","-2147013895","2147953401","WSAHOST_NOT_FOUND","" -"80072AFC","-2147013892","2147953404","WSANO_DATA","" -"80072EE2","-2147012894","2147954402","ERROR_INTERNET_TIMEOUT","The request has timed out." -"80072EE4","-2147012892","2147954404","ERROR_INTERNET_INTERNAL_ERROR","An internal error has occurred." -"80072EE5","-2147012891","2147954405","Error_Internet_Invalid_URL","" -"80072EE6","-2147012890","2147954406","ERROR_INTERNET_UNRECOGNIZED_SCHEME","The URL scheme could not be recognized or is not supported." -"80072EE7","-2147012889","2147954407","ERROR_INTERNET_NAME_NOT_RESOLVED","The server name or address could not be resolved." -"80072EEF","-2147012881","2147954415","ERROR_INTERNET_LOGIN_FAILURE","" -"80072EF1","-2147012879","2147954417","ERROR_INTERNET_OPERATION_CANCELLED","" -"80072EF2","-2147012878","2147954418","Error_Internet_Incorrect_handle_type","" -"80072EF3","-2147012877","2147954419","Error_Internet_Incorrect_Handle_State","" -"80072EFD","-2147012867","2147954429","ERROR_INTERNET_CANNOT_CONNECT","The attempt to connect to the server failed. The operation timed out. Network or Firewall Error." -"80072EFE","-2147012866","2147954430","ERROR_INTERNET_CONNECTION_ABORTED","The connection with the server has been terminated." -"80072F0C","-2147012852","2147954444","Error_Internet_Client_Auth_Cert_Needed","" -"80072F0D","-2147012851","2147954445","ERROR_INTERNET_INVALID_CA","" -"80072F76","-2147012746","2147954550","ERROR_HTTP_HEADER_NOT_FOUND","Network or Firewall Error. The requested header could not be located." -"80072F78","-2147012744","2147954552","ERROR_HTTP_INVALID_SERVER_RESPONSE","The server response could not be parsed." -"80072F7C","-2147012740","2147954556","ERROR_HTTP_REDIRECT_FAILED","" -"80072F83","-2147012733","2147954563","ERROR_INTERNET_DISCONNECTED","" -"80072F8C","-2147012724","2147954572","ERROR_INTERNET_NOT_INITIALIZED","" -"80072F8F","-2147012721","2147954575","ERROR_INTERNET_SECURE_FAILURE ErrorClockWrong","One or more errors were found in the Secure Sockets Layer (SSL) certificate sent by the server." -"800736B1","-2147010895","2147956401","Error_SXS_Cant_gen_Actctx","This application has failed to start because the application configuration is incorrect." -"80073CF3","2147958003","-2147009293","","Error Installing Dependency - Windows cannot install this package because it depends on a framework (version) that could not be found." -"8007F001","-2146963455","2148003841","STATUS_FAILED_LANGUAGE_TYPE","Setup cannot update your files because the language\installed on your system is different from the update language." -"8007F002","-2146963454","2148003842","STATUS_CHECKED_FREE_MISMATCH","Setup cannot update a checked (debug) system with a free (retail) version of " -"8007F003","-2146963453","2148003843","STATUS_NOT_ENOUGH_SPACE","There is not enough disk space on to install . Setup requires a minimum of d additional megabytes of free space or if you also want to archive the files for uninstall" -"8007F004","-2146963452","2148003844","STATUS_INSUFFICIENT_PRIVS","You do not have permission to update . Please" -"8007F007","-2146963449","2148003847","STATUS_CANT_FIND_INF","Setup could not find the update.inf file needed to update your system." -"8007F008","-2146963448","2148003848","STATUS_UPDATE_SUCCESSFUL","has been updated. Remove any disks from the floppy disk drives and choose OK to restart your computer. If you change or add any components to your system" -"8007F009","-2146963447","2148003849","STATUS_UPDATE_UNSUCCESSFUL","installation did not complete." -"8007F00A","-2146963446","2148003850","STATUS_SHUTDOWN_UNSUCCESSFUL","Setup was unable to shutdown system. Please shutdown your system manually." -"8007F00B","-2146963445","2148003851","STATUS_FILE_NOT_FOUND_IN_SETUP_LOG","Could not locate entry for HAL.DLL in SETUP.LOG to determine type of HAL to update." -"8007F00C","-2146963444","2148003852","STATUS_INVALID_INF_FILE","The file is not correct." -"8007F00D","-2146963443","2148003853","STATUS_USER_CANCELLED","Setup canceled." -"8007F00E","-2146963442","2148003854","STATUS_PLATFORM_MISMATCH","This is for a different hardware platform." -"8007F00F","-2146963441","2148003855","STR_CAPTION","Setup" -"8007F010","-2146963440","2148003856","STR_WARNCAPTION","Setup Warning" -"8007F011","-2146963439","2148003857","STR_ERRCAPTION","Setup Error" -"8007F012","-2146963438","2148003858","STR_FAILED_TO_DELETE_OR_RENAME","The file is open or in use by another application. Close all other applications and then click Retry." -"8007F013","-2146963437","2148003859","STR_FAILED_TO_SAVE_REGISTRY","Setup could not backup registry key to file" -"8007F014","-2146963436","2148003860","STR_FAILED_TO_READ_REGISTRY","Setup could not backup registry value" -"8007F015","-2146963435","2148003861","STR_ASK_DIRTY_UNINSTALL","Select 'OK' to undo the changes that have been made" -"8007F016","-2146963434","2148003862","STR_LEAVING_DIRTY","has been partially updated and may not work properly." -"8007F017","-2146963433","2148003863","STR_ARE_YOU_SURE_CANCEL","Are you sure you want to cancel?" -"8007F018","-2146963432","2148003864","STR_SOURCE_MEDIA_NAME_UNINSTALL","Uninstall Directory" -"8007F019","-2146963431","2148003865","STR_SOURCE_MEDIA_NAME","Uninstall Directory" -"8007F01A","-2146963430","2148003866","STR_SOURCE_MEDIA_NAME_SYSTEM","System Files" -"8007F01B","-2146963429","2148003867","STR_INST_HOTFIX","Setup found hotfixes on your system. Would you like to install these hotfixes now?" -"8007F01C","-2146963428","2148003868","STR_UNINST_ALREADY_CREATED","You have already created an Uninstall directory. Doing this again will overwrite your current uninstall directory. Are you sure you want to do this?" -"8007F01D","-2146963427","2148003869","STR_OEM_FILE","Your computer vendor installed this file on your computer. Do you want Setup to replace this file?" -"8007F01E","-2146963426","2148003870","STR_CATALOG_INSTALL_FAILED","Failed to install catalog files." -"8007F01F","-2146963425","2148003871","STR_ADD_REGISTRY_FAILED","Failed to add registry entry." -"8007F020","-2146963424","2148003872","STATUS_BUILD_VERSION_MISMATCH","Setup has detected that the build version of the system installed does not match the update you are applying to it. You can only install this update only on Build %d ." -"8007F021","-2146963423","2148003873","STATUS_SP_VERSION_GREATER","The version of Windows you have installed does not match the update you are trying to install." -"8007F022","-2146963422","2148003874","STATUS_CANT_SPAWN_HOTFIX","Setup could not start the hotfix installation program." -"8007F023","-2146963421","2148003875","STATUS_CANT_FIND_TAG","Setup could not locate the files." -"8007F024","-2146963420","2148003876","STATUS_OVERWRITE_UNINSTALL","WARNING: You have chosen to overwrite your existing uninstall: If you continue" -"8007F026","-2146963418","2148003878","STATUS_WININET_LOAD_FAILED","This Web-based update requires Internet Explorer 3.0 or later. For instructions on how to download a version of this update that does not require a Web connection during installation" -"8007F027","-2146963417","2148003879","STATUS_CANT_INSTALL_SP_ON_DTC","This has not been qualified by your hardware vendor for installation on this copy of Datacenter Server. Please contact your hardware vendor for additional information on obtaining a that has been qualified for your system configuration." -"8007F028","-2146963416","2148003880","STATUS_NECESSARY_FILES_NOT_PRESENT","Not all files necessary to perform an integrated installation are present." -"8007F029","-2146963415","2148003881","STATUS_SPOOLER_NOT_STARTED","Cannot install . The Print Spooler service is not started." -"8007F02A","-2146963414","2148003882","STATUS_MUST_RESTART_FIRST","The system must be restarted before installing the " -"8007F02B","-2146963413","2148003883","STATUS_NOT_ENOUGH_WITH_UNINST","You do not have enough free disk space on % to archive the uninstall files. To install with backup files for uninstall" -"8007F02C","-2146963412","2148003884","STATUS_CANT_FIND_RSAENHS","Unable to locate RSAENHS.DLL in the update directory" -"8007F02D","-2146963411","2148003885","STATUS_CANT_FIND_ENCININF","Unable to locate UPDENCIN.INF in the update directory" -"8007F02E","-2146963410","2148003886","STATUS_CANT_FIND_ENCTSINF","Unable to locate UPDENCTS.INF in the update directory" -"8007F02F","-2146963409","2148003887","STATUS_ENCINST_PROCESS_FAILED","High encryption ENCINST process failed." -"8007F030","-2146963408","2148003888","STATUS_ENCINST_UPGRADE_FAILED","High encryption upgrade failed." -"8007F031","-2146963407","2148003889","STR_USAGE_UPDATE","AVAILABLE SWITCHES: [/help] [/quiet] [/passive] [/uninstall] [/norestart] [/forcerestart] [/l] [/n] [/o] [/f] [/integrate:] [/d:] /help Displays this message SETUP MODES /quiet Quiet mode (no user interaction or displ" -"8007F032","-2146963406","2148003890","STR_BUILDING_CAB","Creating file" -"8007F033","-2146963405","2148003891","STR_DOWNLOADING","Downloading files and patches" -"8007F034","-2146963404","2148003892","STR_ARCHIVING_FILES","Backing up files" -"8007F035","-2146963403","2148003893","STR_ARCHIVING_FILE","Backing up files" -"8007F036","-2146963402","2148003894","STR_INSTALLING_FILES","Installing files" -"8007F037","-2146963401","2148003895","STR_INSTALLING_FILE","Installing files" -"8007F038","-2146963400","2148003896","STR_FINISHING_INSTALL","Finishing installation" -"8007F039","-2146963399","2148003897","STR_WELCOME_LINE","Welcome to the Setup Wizard" -"8007F03A","-2146963398","2148003898","STR_RESTART","&Restart" -"8007F03B","-2146963397","2148003899","STR_COMPLETE","installation is complete. You must restart your computer for the update to take effect." -"8007F03D","-2146963395","2148003901","STR_CANT_CANCEL_NOW","Please wait while Setup updates your system files." -"8007F03E","-2146963394","2148003902","STR_MUST_ACCEPT_TIP","Must accept license agreement before installing" -"8007F03F","-2146963393","2148003903","STR_NEED_TO_CONNECT","Setup needs to connect to the internet now to download files and patches for installation." -"8007F040","-2146963392","2148003904","STR_READY_TO_REPLACE","Setup is ready to begin replacing system files." -"8007F041","-2146963391","2148003905","STR_CONNECTING","Connecting to" -"8007F042","-2146963390","2148003906","STR_CONNECTED","Connected to" -"8007F043","-2146963389","2148003907","STR_ESTIMATE","estimate" -"8007F044","-2146963388","2148003908","STR_MINUTES","minutes" -"8007F045","-2146963387","2148003909","STR_SECONDS","seconds" -"8007F046","-2146963386","2148003910","STR_DOWNLOAD_REMAINING","KB remaining" -"8007F047","-2146963385","2148003911","STR_DOWNLOAD_COMPLETE","Download complete" -"8007F048","-2146963384","2148003912","STR_DOWNLOAD_UNPACKING","Download complete" -"8007F049","-2146963383","2148003913","STR_DOWNLOAD_FAILURE","The following error occurred while Setup attempted to download the files from the Internet:" -"8007F04A","-2146963382","2148003914","STR_UNKNOWN_ERROR","The server did not respond (error code %d)." -"8007F04B","-2146963381","2148003915","STR_INTERNET_TIMEOUT","The server did not respond." -"8007F04C","-2146963380","2148003916","STR_DOWNLOAD_RETRY_TEXT","If this error persists after you have clicked Retry several times" -"8007F04D","-2146963379","2148003917","STR_HASH_FAILURE_1","Setup determined that the following downloaded file is corrupt:" -"8007F04E","-2146963378","2148003918","STR_HASH_FAILURE_2","Setup determined that the following downloaded files are corrupt:" -"8007F04F","-2146963377","2148003919","STR_DOWNLOAD_GIVE_UP","Setup was unable to download all the files necessary for installation." -"8007F050","-2146963376","2148003920","STR_COPYING_FILE_DELAYED","Copied file (delayed)" -"8007F051","-2146963375","2148003921","STR_ERROR_COPY_SLIP","An error has occurred copying files from the Service Pack share to the distribution share." -"8007F052","-2146963374","2148003922","STR_SLIPSTREAM_SUCCESSFUL","Integrated install has completed successfully." -"8007F053","-2146963373","2148003923","STR_SLIPSTREAM_FAILED","Failed to copy some or all of the files necessary for integrated install. Please check that: a) No network or copy errors occurred during the integration process b) The format of the destination directory is correct. The files to be integrated" -"8007F054","-2146963372","2148003924","STR_SVCPACK_CMD","Service Pack started with following command line" -"8007F055","-2146963371","2148003925","STR_DOWNLOAD_SIZE","bytes downloaded." -"8007F056","-2146963370","2148003926","STR_NO_SVCPACK","No Service Pack" -"8007F057","-2146963369","2148003927","STR_MISSING_FILE","The file is missing from the installation. The file must be present for Setup to continue. Press OK to cancel Setup." -"8007F058","-2146963368","2148003928","STR_READY_TO_ENCINST","Setup is ready to begin upgrade of uninstall to high encryption." -"8007F059","-2146963367","2148003929","STR_SLIPSTREAM_LANGUAGE_MISMATCH","Integrated install failed. The language type or platform for the destination directory and must be the same." -"8007F05A","-2146963366","2148003930","STATUS_CANT_OPEN_LOG","Error opening file" -"8007F05B","-2146963365","2148003931","STR_SKIPPING_FILE","Skipped copying file:" -"8007F05C","-2146963364","2148003932","STR_COPY_FILE","Copying file" -"8007F05D","-2146963363","2148003933","STR_SVC_INFO","In order to successfully complete this installation" -"8007F05E","-2146963362","2148003934","STR_SVC_STOP_ERR","Setup was unable to stop the following service" -"8007F05F","-2146963361","2148003935","STR_SVC_ASKREBOOT","A reboot will probably be required in order to successfully complete this installation. Do you wish to continue?" -"8007F060","-2146963360","2148003936","STR_SVC_START_ERR","Setup was unable to re-start the following service: ." -"8007F061","-2146963359","2148003937","ERR_STD_PREFIX","Setup encountered an error:" -"8007F062","-2146963358","2148003938","STR_COPYING_FILE","Copied file:" -"8007F063","-2146963357","2148003939","STR_SPAWNING_PROCESS","Starting process:" -"8007F064","-2146963356","2148003940","STATUS_INVALID_VER_FILE","The update.ver file is not correct." -"8007F065","-2146963355","2148003941","STR_DOMESTIC_TAG1","US/Canada Only" -"8007F066","-2146963354","2148003942","STR_DOMESTIC_TAG2","Domestic Use Only" -"8007F067","-2146963353","2148003943","STR_DOMESTIC_TAG3","US and Canada Use Only" -"8007F06A","-2146963350","2148003946","STATUS_SP_VERSION_GREATER_1","Setup has detected that the Service Pack version of the system installed is newer than the update you are applying to it. You can only install this update on Service Pack." -"8007F06B","-2146963349","2148003947","STATUS_SP_VERSION_GREATER_2","Setup has detected that the Service Pack version of this system is newer than the update you are applying. There is no need to install this update." -"8007F06C","-2146963348","2148003948","STATUS_FPNW_FIXUP_FAILED","Setup failed to access or correctly modify your SETUP.LOG file." -"8007F06D","-2146963347","2148003949","STATUS_WRONG_PLATFORM","The version of software you are running does not match the system you are running it on." -"8007F06E","-2146963346","2148003950","STATUS_FAILURE_COPYING_FILES","Failed to completely copy all of the updated files." -"8007F06F","-2146963345","2148003951","STATUS_FAILED_TO_SET_DIR","Failed to set the directory." -"8007F070","-2146963344","2148003952","STATUS_SETUP_ERROR","An error in updating your system has occurred." -"8007F075","-2146963339","2148003957","STATUS_SUCCESS_NOREBOOT","has been updated. You must reboot for these changes to take effect. If you change or add any components to your system" -"8007F076","-2146963338","2148003958","STATUS_SP_VERSION_LESSER","Setup has detected that the version of the Service Pack installed on your system is lower than what is necessary to apply this hotfix. At minimum" -"8007F078","-2146963336","2148003960","STATUS_NO_UNINSTALL_AVAILABLE","You cannot uninstall" -"8007F07A","-2146963334","2148003962","STATUS_SUCCESS_NOREBOOTNEC","has been updated. If you change or add any components to your system" -"8007F07B","-2146963333","2148003963","STATUS_UNINST_NOREBOOTNEC","Hotfix successfully uninstalled." -"8007F07C","-2146963332","2148003964","STR_SECURITY_PROVIDER_WARNING","The existing file contains High Encryption security" -"8007F07F","-2146963329","2148003967","STR_UNINST_HOTFIX","Hotfixes have been found on your system. Would you like to Uninstall these hotfixes now?" -"8007F080","-2146963328","2148003968","STR_OLD_UNINST_EXISTS","An old Uninstall directory has been found. Would you like to overwrite this directory with new Uninstall information?" -"8007F081","-2146963327","2148003969","STR_LICENSE_DECLINED","You have chosen to decline the License Agreement. Setup cannot continue." -"8007F082","-2146963326","2148003970","STR_NO_LICENSE_TXT","No LICENSE.TXT file was found in your Hotfix directory. Setup cannot continue." -"8007F083","-2146963325","2148003971","STR_INSUFF_RESOURCES","Insufficient resources are available. Setup cannot continue." -"8007F084","-2146963324","2148003972","STR_FILE_READ_ERROR","Error reading LICENSE.TXT file. Setup cannot continue." -"8007F085","-2146963323","2148003973","STR_DELETE_OLD_UNINST","This old uninstall directory cannot be used to uninstall this Hotfix" -"8007F086","-2146963322","2148003974","STR_HOTFIXES_FOUND","The following hotfixes are installed:" -"8007F087","-2146963321","2148003975","STR_HOTFIXES_NOT_FOUND","No Hotfixes are installed." -"8007F088","-2146963320","2148003976","STR_CAT_VERSIONS_EQUAL","Catalog file versions are equal" -"8007F089","-2146963319","2148003977","STR_WINDOWS_TYPE1","Windows NT 4.0" -"8007F08A","-2146963318","2148003978","STR_WINDOWS_TYPE2","Windows 2000" -"8007F08B","-2146963317","2148003979","STR_LICENSE_AGREEMENT","License Agreement" -"8007F08C","-2146963316","2148003980","STR_SELECT_OPTIONS","Select Options" -"8007F08D","-2146963315","2148003981","STR_UPDATING_YOUR_SYSTEM","Updating Your System" -"8007F08E","-2146963314","2148003982","STR_WIZ1_STATIC3","Before you install this update" -"8007F08F","-2146963313","2148003983","STR_WIZ2_STATIC1","Please read the following license agreement. To continue with setup" -"8007F090","-2146963312","2148003984","STR_WIZ2_RADIO1","I &Do Not Agree" -"8007F091","-2146963311","2148003985","STR_WIZ2_RADIO2","I &Agree" -"8007F092","-2146963310","2148003986","STR_ASK_BACKUP","If you want to remove later" -"8007F093","-2146963309","2148003987","STR_ARCHIVE1","&Archive Files" -"8007F094","-2146963308","2148003988","STR_ARCHIVE2","&Do Not Archive Files" -"8007F095","-2146963307","2148003989","STR_WIZ4_STATIC2","Please wait while setup inspects your current configuration" -"8007F096","-2146963306","2148003990","STR_WIZ4_STATIC_OPERATION","Inspecting your current configuration" -"8007F097","-2146963305","2148003991","STR_WIZ4_STATIC_DETAILS","inspecting current configuration" -"8007F098","-2146963304","2148003992","STR_WIZ4_STATIC","Inspecting current configuration" -"8007F099","-2146963303","2148003993","STR_WIZ5_STATIC1","Completing the Setup Wizard" -"8007F09A","-2146963302","2148003994","STR_WIZ5_STATIC2_REBOOT","You have successfully completed the Setup Wizard. To apply the changes" -"8007F09B","-2146963301","2148003995","STR_WIZ5_STATIC2_NOREBOOT","You have successfully completed the Setup Wizard. To close this wizard" -"8007F09C","-2146963300","2148003996","STR_WIZ5_CHECK1","&Do not restart now" -"8007F09D","-2146963299","2148003997","STR_WIZCAPTION","Setup Wizard" -"8007F09E","-2146963298","2148003998","STR_ANALYZE_DISK","Checking for necessary space" -"8007F09F","-2146963297","2148003999","STR_BUILDING_CAB_CAPTION","Creating Cabinets" -"8007F0A0","-2146963296","2148004000","STR_CLEAN_REG","Updating the registry keys" -"8007F0A1","-2146963295","2148004001","STR_CANCEL","Cancel" -"8007F0A2","-2146963294","2148004002","STR_DOWNLOAD_UNPACKING_DETAILS","Unpacking: %d remaining" -"8007F0A3","-2146963293","2148004003","STR_NO","No LICENSE.TXT file was found in your Hotfix directory. Setup cannot continue. ::No Uninstall directory: Setup is executing. Please wait for Setup to complete :No Service Pack" -"8007F0A4","-2146963292","2148004004","STR_README","Read Me:readmesp.htm" -"8007F0A5","-2146963291","2148004005","STR_README_FILE","readmesp.htm" -"8007F0A6","-2146963290","2148004006","STR_SLIPSTREAM_EVAL_DESTINATION","Integrated install failed. The destination directory contains an evaluation copy of Windows." -"8007F0A7","-2146963289","2148004007","STR_WINDOWS_TYPE3","Windows XP" -"8007F0A8","-2146963288","2148004008","STR_NOUNINSTALL","No Uninstall directory" -"8007F0A9","-2146963287","2148004009","STR_SRVPACK","Service Pack" -"8007F0AA","-2146963286","2148004010","STR_WINDOWS_TYPE0","Windows" -"8007F0AB","-2146963285","2148004011","STR_SPOOLER_ENABLE","For Setup to continue" -"8007F0AC","-2146963284","2148004012","STR_USAGE_UPDATE_NOSLPSTRM","AVAILABLE SWITCHES: [/help] [/quiet] [/passive] [/uninstall] [/norestart] [/forcerestart] [/l] [/n] [/o] [/f] [/integrate:] /help Displays this message SETUP MODES /quiet Quiet mode (no user interaction or display)" -"8007F0AD","-2146963283","2148004013","STR_FONT","Verdana Bold" -"8007F0AE","-2146963282","2148004014","STR_CHOOSE_UNINST_DIR","Select an existing folder or make a new folder in which to store uninstall information." -"8007F0AF","-2146963281","2148004015","STR_ARCHIVE_DRIVE_INVALID","You have selected a folder that is not on your local computer. The current state of the computer can be archived only on your local computer." -"8007F0B0","-2146963280","2148004016","STR_STARTING_SERVICES","Starting services" -"8007F0B1","-2146963279","2148004017","STR_STARTING_SERVICE","Starting service" -"8007F0B2","-2146963278","2148004018","STR_STOPPING_SERVICES","Stopping services" -"8007F0B3","-2146963277","2148004019","STR_STOPPING_SERVICE","Stopping services" -"8007F0B4","-2146963276","2148004020","STR_WINDOWS_TYPE4","Windows Server 2003" -"8007F0C0","-2146963264","2148004032","STR_BLOCKLIST_HF_MSG","Setup cannot install this hotfix because one or more of its files are out of date. Please download and install the latest version of fix ." -"8007F0C1","-2146963263","2148004033","STR_BLOCKLIST_SP_MSGA","This service pack contains files that are missing some of the fixes which were previously installed on this computer. To prevent possible problems" -"8007F0C2","-2146963262","2148004034","STR_BLOCKLIST_SP_MSGB","In order to have the fixes contained in both the service pack and the previously installed hotfixes" -"8007F0C3","-2146963261","2148004035","STR_BLOCKLIST_SP_MSGC","Do you want to continue installing this service pack?" -"8007F0C4","-2146963260","2148004036","STR_BLOCKLIST_SP_MSGD","The service pack install cannot continue until these hotfixes are applied to your system." -"8007F0C5","-2146963259","2148004037","STR_GENERALCAPTION","2%" -"8007F0C6","-2146963258","2148004038","STATUS_BUILD_VERSION_MISMATCH2","Setup has detected that the build version of the system installed does not match the update you are applying to it. You can only install this update only on Build %d ." -"8007F0C7","-2146963257","2148004039","STR_SLPSTRM_COPY","Integrating files" -"8007F0C8","-2146963256","2148004040","STR_SLPSTRM_WIZ4_STATIC2","Please wait while setup integrates files from Windows Service Pack into your Windows installation folder." -"8007F0C9","-2146963255","2148004041","STR_SLPSTRMUPDATING_YOUR_SYSTEM","Updating Your Windows Share" -"8007F0CA","-2146963254","2148004042","STR_RESTORE_POINT_DESC","Installed ." -"8007F0CB","-2146963253","2148004043","STATUS_VLK_BLOCKED","The Product Key used to install Windows is invalid. Please contact your system administrator or retailer immediately to obtain a valid Product Key. You may also contact Microsoft Corporation-Anti-Piracy Team by emailing [email protected]" -"8007F0CC","-2146963252","2148004044","STATUS_KERNEL_NONSTD","The core system file (kernel) used to start this computer is not a Microsoft Windows file. The Service Pack will not be installed. For more information" -"8007F0CD","-2146963251","2148004045","STR_VLK_CHECK","Checking product key" -"8007F0CE","-2146963250","2148004046","STR_SET_RESTOREPOINT","Creating restore point" -"8007F0CF","-2146963249","2148004047","STR_PERFORM_INVENTORY","Performing inventory" -"8007F0D0","-2146963248","2148004048","STR_BUILD_THIRDPARTYDRIVERS","Creating Third Party Driver List" -"8007F0D1","-2146963247","2148004049","STR_DISK_USAGEFORINSTALL","Estimating space for installation" -"8007F0D2","-2146963246","2148004050","STR_DISK_USAGEFORUNINSTALL","Estimating space for uninstallation" -"8007F0D3","-2146963245","2148004051","STR_PROCESSES_BEFOREARCHIVE","Running processes before install" -"8007F0D4","-2146963244","2148004052","STR_REGISTRY_BACKUP","Backing up registry" -"8007F0D5","-2146963243","2148004053","STR_PROCESSES_AFTERINSTALL","Running processes after install" -"8007F0D6","-2146963242","2148004054","STR_PERFORM_CLEANUP","Performing cleanup" -"8007F0D7","-2146963241","2148004055","STR_OPTIONAL_EXCLUSIONWARNING","Windows has detected that one or more protected files on your computer have been modified. The Service Pack contains updated versions of those files" -"8007F0D8","-2146963240","2148004056","STR_WIZ1_STATIC3_XP","Before you install this update" -"8007F0D9","-2146963239","2148004057","STR_ARCHIVE_FOLDER_INVALID","The folder name is longer than the limit of 226 bytes. Enter a shorter name." -"8007F0DA","-2146963238","2148004058","STR_FAILED_INF_INTEGRITY","Setup could not verify the integrity of the file Update.inf. Make sure the Cryptographic service is running on this computer." -"8007F0DB","-2146963237","2148004059","STR_BLOCKLIST_FIXNUMBER","Fix Number" -"8007F0DC","-2146963236","2148004060","STR_BLOCKLIST_FILENAME","File Name" -"8007F0DD","-2146963235","2148004061","STR_BLOCKLIST_VERSION","Version" -"8007F0DE","-2146963234","2148004062","STR_WIZ4_NOARCHIVE","Please wait while setup inspects your current configuration and updates your files." -"8007F0DF","-2146963233","2148004063","STATUS_SP_BUILD_TO_BUILD","This Service Pack cannot be installed on top of the build currently installed on your computer. Cancel this installation process" -"8007F0E0","-2146963232","2148004064","STR_UNABLE_TO_VERIFY","Setup could not verify the integrity of one or more installed files." -"8007F0E2","-2146963230","2148004066","STR_ERR_PRINT_EULA","Unable to print the END USER LICENSE AGREEMENT" -"8007F0E3","-2146963229","2148004067","STR_WINDOWS_TYPE","Windows" -"8007F0E4","-2146963228","2148004068","STATUS_WINDOWS_VERSION_NEWER","The version of Windows you have installed is newer than the update you are trying to install. There is no need to install this update." -"8007F0E5","-2146963227","2148004069","STATUS_PACKAGE_NOT_APPLICABLE","This package does not apply to the operating system you are running" -"8007F0E6","-2146963226","2148004070","STR_SAFEMODE_INSTALL","You are trying to install while the system is in safe mode. This is not recommended unless the system does not function in normal mode." -"8007F0E7","-2146963225","2148004071","STR_APPLYING_HOTPATCHES","Applying Hotpatches" -"8007F0E8","-2146963224","2148004072","STATUS_INVALID_BRANCHES_INF","The branches.inf file is invalid." -"8007F0E9","-2146963223","2148004073","STATUS_INVALID_UPDATEBR_INF","The updatebr.inf file is invalid." -"8007F0EA","-2146963222","2148004074","STR_PACKAGE_MIGRATE_FAILED","Failed to migrate dependent packages." -"8007F0EC","-2146963220","2148004076","STR_PERFORM_MIGRATION","Performing migration" -"8007F0ED","-2146963219","2148004077","STATUS_NO_BRANCH_AVAILABLE","Required installation branch was not found in INF file." -"8007F0EE","-2146963218","2148004078","STR_BLOCKLIST_PACKAGE","Package" -"8007F0EF","-2146963217","2148004079","STR_MIGRATE_BLOCKLIST_MSG","The installation cannot continue because the following packages might not be valid:" -"8007F0F0","-2146963216","2148004080","STR_BRANCH_CAPTION","Branch info" -"8007F0F1","-2146963215","2148004081","STATUS_INCOMPARABLE_BRANCHES","Files from the package are incompatible with files on your system." -"8007F0F2","-2146963214","2148004082","STR_MIGRATE_BLOCKLIST_REC","Reinstall the packages listed above" -"8007F0F3","-2146963213","2148004083","STR_UNKNOWN_PACKAGE","Unknown" -"8007F0F4","-2146963212","2148004084","STATUS_PREREQUISITE_FAILED","Setup cannot continue because one or more pre-requisites required to install failed. For More details check the Log File. Update.exe can throw this error when it starts to download if the computer is running under battery power (there may be a fix for this in the future)." -"8007F0F5","-2146963211","2148004085","STR_WINDOWS_TYPE5","Windows XP Version 2003" -"8007F0F6","-2146963210","2148004086","NULL","" -"8007F0F7","-2146963209","2148004087","STR_HFSLP_ERROR","An error occurred while attempting to integrate this software update package. Verify that the architecture" -"8007F0F8","-2146963208","2148004088","STR_HFSLP_EXPRESS","Express software update packages cannot be integrated. To download a version of the fix that can be integrated" -"8007F0F9","-2146963207","2148004089","STR_HFSLP_EXTRACTED","Extracted packages cannot be integrated. The /integrate switch must be used with the original software update package." -"8007F0FA","-2146963206","2148004090","STR_HFSLP_NOTFOUND","Setup was unable to locate the distribution folder that you wish to integrate with this software update package. The /integrate switch requires the full path to the distribution folder." -"8007F200","-2146962944","2148004352","STATUS_MORE_FILES_FOR_DOWNLOAD","More byte ranges required." -"8007F201","-2146962943","2148004353","STATUS_READY_TO_INSTALL","Required payload available" -"8007F202","-2146962942","2148004354","STATUS_PATCH_NOT_FOUND","The delta was not found in the PSF. Update cannot find information about how to upgrade this binary. SUS can terminate installation." -"8007F203","-2146962941","2148004355","STATUS_PATCH_FILE_CORRUPT","Update cannot find information about how to upgrade this binary" -"8007F204","-2146962940","2148004356","STATUS_INDEXFILE_CORRUPT","Index file does not have a valid signature. Index file has an invalid signature. The package is corrupt. SUS can terminate installation." -"8007F205","-2146962939","2148004357","STR_UPDATE_ALREADY_RUNNING","Setup has detected that another update is in progress. Please complete that installation or removal and try again." -"8007F206","-2146962938","2148004358","STATUS_RETRY_REFRESH_INVENTORY","The state of machine changed since last inventory analysis. Update.exe has to restart the process with /si." -"8007F207","-2146962937","2148004359","STATUS_RETRY_SELF_CONTAINED","Two consecutive attempts to download delta failed without any progress and there is no use in continuing as express package. Revert to self-contained package." -"8007F220","-2146962912","2148004384","STATUS_CONTINUE_INVENTORY","error codes should not be returned out of update.exe" -"8007F221","-2146962911","2148004385","ERROR_INDEXFILE_NOT_FOUND","error codes should not be returned out of update.exe" -"80080005","-2146959355","2148007941","CO_E_Server_Exec_Failure","" -"80080008","-2146959352","2148007944","CO_E_SERVER_STOPPING","" -"80090006","-2146893818","2148073478","NTE_Bad_Signature","" -"8009000B","-2146893813","2148073483","NTE_Bad_Key_State","" -"80090017","-2146893801","2148073495","NTE_PROV_TYPE_NOT_DEF","" -"8009001D","-2146893795","2148073501","Error_Write_Fault","" -"80090305","-2146893051","2148074245","SEC_E_SECPKG_NOT_FOUND","The requested security package does not exist" -"80090331","-2146893007","2148074289","Sec_E_Algorithm_Mismatch","The client and the server cannot communicate" -"8009033F","-2146892993","2148074303","SEC_E_Shutdown_IN_Progress","" -"80092003","-2146885629","2148081667","CRYPT_E_File_Error","An error occurred while reading or writing to a file" -"8009200D","-2146885619","2148081677","Crypt_E_Bad_Msg","Not a cryptographic message or the cryptographic message is not formatted correctly" -"80092026","-2146885594","2148081702","Crypt_E_Security_Settings","The cryptographic operation failed due to a local security option setting" -"8009310B","2148086027","-2146881269","","ASN1 bad tag value met." -"80096001","-2146869247","2148098049","Trust_E_System_Error","A system-level error occurred while verifying trust" -"80096005","-2146869243","2148098053","Trust_E_Time_Stamp could not be verified","" -"80096010","-2146869232","2148098064","Trust_E_Bad_Digest","The digital signature of the object did not verify" -"80096019","-2146869223","2148098073","TRUST_E_BASIC_CONSTRAINTS","" -"800A0046","-2146828218","2148139078","CTL_PermissionDenied","olectl.h" -"800A01AD","-2146827859","2148139437","ActiveX component can't create object", -"800A01AE","-2146827858","2148139438","IXP_NNTP_NO_SUCH_ARTICLE_FOUND","This can occur after a control selfupdate that has not fully completed and requires a reboot." -"800A138F","-2146823281","2148144015","ERROR_RESOURCE_NOT_FOUND","Javascript runtime error" -"800B0001","-2146762751","2148204545","Trust_E_Provider_Unknown","" -"800B0002","-2146762750","2148204546","Trust_E_ActionUnknown","The trust verification action specified is not supported by the specified trust provider." -"800B0003","-2146762749","2148204547","TRUST_E_SUBJECT_FORM_UNKNOWN","The form specified by the subject is not one supported or known by the specified trust provider" -"800B0004","-2146762748","2148204548","TRUST_E_SUBJECT_NOT_TRUSTED","The subject is not trusted for the specified action." -"800B0100","-2146762496","2148204800","TRUST_E_NOSIGNATURE","No signature was present in the subject" -"800B0101","-2146762495","2148204801","Cert_E_Expired","Verifying against the current system clock or the timestamp in the signed file" -"800B0109","-2146762487","2148204809","CERT_E_UNTRUSTEDROOT","A certificate chain processed" -"800B010D","-2146762483","2148204813","Cert_E_Untrustedtestroot","The certification path terminates with the test root which is not trusted with the current policy settings" -"800B0110","-2146762480","2148204816","CERT_E_WRONG_USAGE","" -"800C0002","-2146697214","2148270082","Inet_E_Invalid_URL","" -"800F0101","-2146500351","2148466945","SPAPI_E_Section_Not_Found","The required section was not found in the INF" -"800F020B","-2146500085","2148467211","SPAPI_E_No_Such_Devinst","device instance does not exist" -"800F0217","-2146500073","2148467223","SPAPI_E_Bad_Service_Installsect","A service installation section in this INF is invalid" -"800F022B","-2146500053","2148467243","SPAPI_E_DI_Dont_Install","The class installer has denied the request to install or upgrade this device" -"800F022F","-2146500049","2148467247","SPAPI_E_No_Catalog_for_OEM_INF","The third-party INF does not contain digital signature information" -"800F0244","-2146500028","2148467268","SPAPI_E_Signature_Osattribure_Mismatch","The software was tested for compliance on a different version of Windows and may not be compatible with this version" -"800FF8F0","-2146436880","2148530416","NULL","" -"800FFBBE","-2146436162","2148531134","NULL","" -"800FFC02","-2146436094","2148531202","NULL","" -"800FFC0D","-2146436083","2148531213","NULL","" -"80131700","-2146232576","2148734720","","Dependency on `WindowsFeatues`,specifically `netfx3`." -"80190064","-2145845148","2149122148","BG_E_HTTP_ERROR_100","The request can be continued." -"80190065","-2145845147","2149122149","BG_E_HTTP_ERROR_101","The server switched protocols in an upgrade header." -"801900C8","-2145845048","2149122248","BG_E_HTTP_ERROR_200","The server-response was not valid. The server was not following the defined protocol. Resume the job" -"801900C9","-2145845047","2149122249","BG_E_HTTP_ERROR_201","The request was fulfilled and resulted in the creation of a new resource." -"801900CA","-2145845046","2149122250","BG_E_HTTP_ERROR_202","The request was accepted for processing" -"801900CB","-2145845045","2149122251","BG_E_HTTP_ERROR_203","The returned metadata in the entity-header is not the definitive set available from the server of origin." -"801900CC","-2145845044","2149122252","BG_E_HTTP_ERROR_204","The server has fulfilled the request" -"801900CD","-2145845043","2149122253","BG_E_HTTP_ERROR_205","The server-response was not valid. The server was not following the defined protocol. Resume the job" -"801900CE","-2145845042","2149122254","BG_E_HTTP_ERROR_206","The server fulfilled the partial GET request for the resource." -"8019012C","-2145844948","2149122348","BG_E_HTTP_ERROR_300","The server could not return the requested data." -"8019012D","-2145844947","2149122349","BG_E_HTTP_ERROR_301","The requested resource was assigned to a new permanent Uniform Resource Identifier (URI)" -"8019012E","-2145844946","2149122350","BG_E_HTTP_ERROR_302","The requested resource was assigned a different Uniform Resource Identifier (URI). This change is temporary." -"8019012F","-2145844945","2149122351","BG_E_HTTP_ERROR_303","The response to the request is under a different Uniform Resource Identifier (URI) and must be retrieved using a GET method on that resource." -"80190130","-2145844944","2149122352","BG_E_HTTP_ERROR_304","The server-response was not valid. The server was not following the defined protocol. Resume the job" -"80190131","-2145844943","2149122353","BG_E_HTTP_ERROR_305","The requested resource must be accessed through the proxy given by the location field." -"80190133","-2145844941","2149122355","BG_E_HTTP_ERROR_307","The URL has been temporarily relocated. Try again later." -"80190190","-2145844848","2149122448","BG_E_HTTP_ERROR_400","The server cannot process the request because the syntax is not valid." -"80190191","-2145844847","2149122449","BG_E_HTTP_ERROR_401","The requested resource requires user authentication." -"80190192","-2145844846","2149122450","BG_E_HTTP_ERROR_402","The server-response was not valid. The server was not following the defined protocol. Resume the job" -"80190193","-2145844845","2149122451","BG_E_HTTP_ERROR_403","The client does not have sufficient access rights to the requested server object." -"80190194","-2145844844","2149122452","BG_E_HTTP_ERROR_404","The requested URL does not exist on the server." -"80190195","-2145844843","2149122453","BG_E_HTTP_ERROR_405","The method used is not allowed." -"80190196","-2145844842","2149122454","BG_E_HTTP_ERROR_406","No responses acceptable to the client were found." -"80190197","-2145844841","2149122455","BG_E_HTTP_ERROR_407","Proxy authentication is required." -"80190198","-2145844840","2149122456","BG_E_HTTP_ERROR_408","The server timed out waiting for the request." -"80190199","-2145844839","2149122457","BG_E_HTTP_ERROR_409","The request could not be completed because of a conflict with the current state of the resource. The user should resubmit the request with more information." -"8019019A","-2145844838","2149122458","BG_E_HTTP_ERROR_410","The requested resource is not currently available at the server" -"8019019B","-2145844837","2149122459","BG_E_HTTP_ERROR_411","The server cannot accept the request without a defined content length." -"8019019C","-2145844836","2149122460","BG_E_HTTP_ERROR_412","The precondition given in one or more of the request header fields evaluated to false when it was tested on the server." -"8019019D","-2145844835","2149122461","BG_E_HTTP_ERROR_413","The server cannot process the request because the request entity is too large." -"8019019E","-2145844834","2149122462","BG_E_HTTP_ERROR_414","The server cannot process the request because the request Uniform Resource Identifier (URI) is longer than the server can interpret." -"8019019F","-2145844833","2149122463","BG_E_HTTP_ERROR_415","The server-response was not valid. The server was not following the defined protocol. Resume the job" -"801901A1","-2145844831","2149122465","BG_E_HTTP_ERROR_417","The server could not meet the expectation given in an Expect request-header field." -"801901C1","-2145844799","2149122497","BG_E_HTTP_ERROR_449","The server-response was not valid. The server was not following the defined protocol. Resume the job" -"801901F4","-2145844748","2149122548","BG_E_HTTP_ERROR_500","The server encountered an unexpected condition that prevented it from fulfilling the request." -"801901F5","-2145844747","2149122549","BG_E_HTTP_ERROR_501","The server does not support the functionality required to fulfill the request." -"801901F6","-2145844746","2149122550","BG_E_HTTP_ERROR_502","The server" -"801901F7","-2145844745","2149122551","BG_E_HTTP_ERROR_503","The service is temporarily overloaded." -"801901F8","-2145844744","2149122552","BG_E_HTTP_ERROR_504","The request was timed out waiting for a gateway. Can typically be a DNS issue" -"801901F9","-2145844743","2149122553","BG_E_HTTP_ERROR_505","The server does not support the HTTP protocol version that was used in the request message." -"801901FA","-2145844742","2149122554","NULL","" -"80194000","-2145828864","2149138432","BITS_MC_JOB_CANCELLED","The administrator canceled job on behalf of %3. The job ID was %1." -"80194001","-2145828863","2149138433","BITS_MC_FILE_DELETION_FAILED","While canceling job" -"80194002","-2145828862","2149138434","BITS_MC_FILE_DELETION_FAILED_MORE","Due to space limitations" -"80194003","-2145828861","2149138435","BITS_MC_JOB_PROPERTY_CHANGE","The administrator modified the property of job. The job ID was %1." -"80194004","-2145828860","2149138436","BITS_MC_JOB_TAKE_OWNERSHIP","The administrator took ownership of job. The job ID was %1." -"80194005","-2145828859","2149138437","BITS_MC_JOB_SCAVENGED","Job was canceled after being inactive for more than xx days. The job ID was %1." -"80194006","-2145828858","2149138438","BITS_MC_JOB_NOTIFICATION_FAILURE","Job failed to notify its associated application. BITS will retry in xx minutes. The job ID was %1." -"80194007","-2145828857","2149138439","BITS_MC_STATE_FILE_CORRUPT","The BITS job list is not in a recognized format. It may have been created by a different version of BITS. The job list has been cleared." -"80194008","-2145828856","2149138440","BITS_MC_FAILED_TO_START","The BITS server failed to start. Try restarting the service at a later time." -"80200001","-2145386495","2149580801","BG_E_Not_Found","The requested job was not found." -"80200002","-2145386494","2149580802","BG_E_INVALID_STATE","The requested action is not allowed in the current job state. The job might have been canceled or completed transferring. It is in a read-only state now." -"80200003","-2145386493","2149580803","BG_E_EMPTY","There are no files attached to this job. Attach files to the job" -"80200004","-2145386492","2149580804","BG_E_FILE_NOT_AVAILABLE","No file is available because no URL generated an error." -"80200005","-2145386491","2149580805","BG_E_PROTOCOL_NOT_AVAILABLE","No protocol is available because no URL generated an error." -"80200006","-2145386490","2149580806","BG_S_ERROR_CONTEXT_NONE","No errors have occurred." -"80200007","-2145386489","2149580807","BG_E_ERROR_CONTEXT_UNKNOWN","The error occurred in an unknown location." -"80200008","-2145386488","2149580808","BG_E_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER","The error occurred in the Background Intelligent Transfer Service (BITS) queue manager." -"80200009","-2145386487","2149580809","BG_E_ERROR_CONTEXT_LOCAL_FILE","The error occurred while the local file was being processed. Verify that the file is not in use" -"8020000A","-2145386486","2149580810","BG_E_ERROR_CONTEXT_REMOTE_FILE","The error occurred while the local file was being processed. Verify that the file is not in use" -"8020000B","-2145386485","2149580811","BG_E_ERROR_CONTEXT_GENERAL_TRANSPORT","The error occurred in the transport layer. The client could not connect to the server." -"8020000C","-2145386484","2149580812","BG_E_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION","The error occurred while the notification callback was being processed. Background Intelligent Transfer Service (BITS) will try again later." -"8020000D","-2145386483","2149580813","BG_E_Destination_Locked","The destination file system volume is not available. Verify that another program" -"8020000E","-2145386482","2149580814","BG_E_VOLUME_CHANGED","The destination volume has changed. If the disk is removable" -"8020000F","-2145386481","2149580815","BG_E_ERROR_INFORMATION_UNAVAILABLE","No errors have occurred." -"80200010","-2145386480","2149580816","BG_E_NETWORK_DISCONNECTED","There are currently no active network connections. Background Intelligent Transfer Service (BITS) will try again when an adapter is connected." -"80200011","-2145386479","2149580817","BG_E_MISSING_FILE_SIZE","When BITS sends a HEAD request and server/proxy doesn't return Content-Length header in the response" -"80200012","-2145386478","2149580818","BG_E_INSUFFICIENT_HTTP_SUPPORT","The server does not support HTTP 1.1." -"80200013","-2145386477","2149580819","BG_E_INSUFFICIENT_RANGE_SUPPORT","BITS uses range header in HTTP requests to request parts of a file. If the server or proxy doesn't understand Range requests and returns full file instead of the requested range" -"80200014","-2145386476","2149580820","BG_E_REMOTE_NOT_SUPPORTED","Background Intelligent Transfer Service (BITS) cannot be used remotely." -"80200015","-2145386475","2149580821","BG_E_NEW_OWNER_DIFF_MAPPING","The drive mapping for the job is different for the current owner than for the previous owner. Use a UNC path instead." -"80200016","-2145386474","2149580822","BG_E_NEW_OWNER_NO_FILE_ACCESS","The new owner has insufficient access to the local files for the job. The new owner might not have permissions to access the job files. Verify that the new owner has sufficient permissions" -"80200017","-2145386473","2149580823","BG_S_PARTIAL_COMPLETE","Some of the transferred files were deleted because they were incomplete" -"80200018","-2145386472","2149580824","BG_E_PROXY_LIST_TOO_LARGE","The HTTP proxy list cannot be longer than 32" -"80200019","-2145386471","2149580825","BG_E_PROXY_BYPASS_LIST_TOO_LARGE","The HTTP proxy bypass list cannot be longer than 32" -"8020001A","-2145386470","2149580826","BG_S_UNABLE_TO_DELETE_FILES","Some of the temporary files could not be deleted. Check the system event log for the complete list of files that could not be deleted." -"8020001B","-2145386469","2149580827","BG_E_INVALID_SERVER_RESPONSE","The server-response was not valid. The server was not following the defined protocol. Resume the job" -"8020001C","-2145386468","2149580828","BG_E_TOO_MANY_FILES","No more files can be added to this job." -"8020001D","-2145386467","2149580829","BG_E_LOCAL_FILE_CHANGED","The local file was changed during the transfer. Recreate the job" -"8020001E","-2145386466","2149580830","BG_E_ERROR_CONTEXT_REMOTE_APPLICATION","The program on the remote server reported the error." -"8020001F","-2145386465","2149580831","BG_E_SESSION_NOT_FOUND","The specified session could not be found on the server. Background Intelligent Transfer Service (BITS) will try again." -"80200020","-2145386464","2149580832","BG_E_TOO_LARGE","The job is too large for the server to accept. This job might exceed a job size limit set by the server administrator. Reduce the size of the job" -"80200021","-2145386463","2149580833","BG_E_STRING_TOO_LONG","The specified string is too long." -"80200022","-2145386462","2149580834","BG_E_CLIENT_SERVER_PROTOCOL_MISMATCH","The client and server versions of Background Intelligent Transfer Service (BITS) are incompatible." -"80200023","-2145386461","2149580835","BG_E_SERVER_EXECUTE_ENABLE","Scripting OR execute permissions are enabled on the IIS virtual directory associated with the job. To upload files to the virtual directory" -"80200024","-2145386460","2149580836","BG_E_No_Progress BITS","The job is not making headway. The server may be misconfigured. Background Intelligent Transfer Service (BITS) will try again later." -"80200025","-2145386459","2149580837","BG_E_USERNAME_TOO_LARGE","The user name cannot be longer than 300 characters. Try again with a shorter name." -"80200026","-2145386458","2149580838","BG_E_PASSWORD_TOO_LARGE","The password cannot be longer than 300 characters. Try again with a shorter password." -"80200027","-2145386457","2149580839","BG_E_INVALID_AUTH_TARGET","The authentication target specified in the credentials is not defined." -"80200028","-2145386456","2149580840","BG_E_INVALID_AUTH_SCHEME","The authentication scheme specified in the credentials is not defined." -"80200029","-2145386455","2149580841","BG_E_FILE_NOT_FOUND","The specified file name does not match any of the files in the job." -"8020002A","-2145386454","2149580842","BG_S_PROXY_CHANGED","The proxy server was changed." -"8020002B","-2145386453","2149580843","BG_E_INVALID_RANGE","The requested byte range extends beyond the end of the web page. Use byte ranges that are wholly within the page." -"8020002C","-2145386452","2149580844","BG_E_OVERLAPPING_RANGES","The list of byte ranges contains some overlapping ranges" -"8020002D","-2145386451","2149580845","BG_E_CONNECT_FAILURE","A connection could not be established." -"8020002E","-2145386450","2149580846","BG_E_CONNECTION_CLOSED","The connection was prematurely closed." -"8020002F","-2145386449","2149580847","BG_E_KEEP_ALIVE_FAILURE","The connection for a request that specifies the Keep-alive header was closed unexpectedly." -"80200030","-2145386448","2149580848","BG_E_MESSAGE_LENGTH_LIMIT_EXCEEDED","A message was received that exceeded the specified limit when sending a request or receiving a response from the server." -"80200031","-2145386447","2149580849","BG_E_NAME_RESOLUTION_FAILURE","The host name could not be found." -"80200032","-2145386446","2149580850","BG_E_PENDING","An internal asynchronous request is pending." -"80200033","-2145386445","2149580851","BG_E_PIPELINE_FAILURE","" -"80200034","-2145386444","2149580852","BG_E_PROTOCOL_ERROR","The response received from the server was complete but indicated a protocol-level error." -"80200035","-2145386443","2149580853","BG_E_PROXY_NAME_RESOLUTION_FAILURE","The proxy name could not be found." -"80200036","-2145386442","2149580854","BG_E_RECEIVE_FAILURE","A complete response was not received from the server." -"80200037","-2145386441","2149580855","BG_E_REQUEST_CANCELED","The request was canceled." -"80200038","-2145386440","2149580856","BG_E_SECURE_CHANNEL_FAILURE","An error occurred while establishing a connection using SSL." -"80200039","-2145386439","2149580857","BG_E_SEND_FAILURE","complete request could not be sent to the remote server." -"8020003A","-2145386438","2149580858","BG_E_SERVER_PROTOCOL_VIOLATION","The server response was not valid." -"8020003B","-2145386437","2149580859","BG_E_TIMEOUT","The operation exceeded the time limit." -"8020003C","-2145386436","2149580860","BG_E_TRUST_FAILURE","A server certificate could not be validated." -"8020003D","-2145386435","2149580861","BG_E_UNKNOWN_ERROR","A unknown error occurred." -"8020003E","-2145386434","2149580862","BG_E_BLOCKED_BY_POLICY","Group Policy settings prevent background jobs from running at this time." -"8020003F","-2145386433","2149580863","BG_E_INVALID_PROXY_INFO","The supplied proxy server or bypass list is invalid." -"80200040","-2145386432","2149580864","BG_E_INVALID_CREDENTIALS","The format of the supplied security credentials is invalid." -"80240001","-2145124351","2149842945","SUS_E_NO_SERVICE","for whatever reason" -"80240002","-2145124350","2149842946","SUS_E_MAX_CAPACITY_REACHED","maximum capacity of the service is reached" -"80240003","-2145124349","2149842947","SUS_E_UNKNOWN_ID","id not found" -"80240004","-2145124348","2149842948","SUS_E_NOT_INITIALIZED","object is not correctly initialized" -"80240005","-2145124347","2149842949","SUS_E_RANGEOVERLAP","Update handler attempted to request a byte range that overlapped a previously requested byte range" -"80240006","-2145124346","2149842950","SUS_E_TOOMANYRANGES","Update handler attempted to request too many ranges" -"80240007","-2145124345","2149842951","SUS_S_ALREADY_UNINSTALLED - SUS_E_INVALIDINDEX","The update to be uninstalled is already not installed - An attempt was made to use an invalid index" -"80240008","-2145124344","2149842952","SUS_E_ITEMNOTFOUND","A query was made for an item with a particular key and that key was not found" -"80240009","-2145124343","2149842953","SUS_E_OPERATIONINPROGRESS","The caller attempted to perform an operation on an interface while another operation was in progress." -"8024000A","-2145124342","2149842954","SUS_E_COULDNOTCANCEL","The caller attempted to cancel an operation that is not cancelable" -"8024000B","-2145124341","2149842955","SUS_E_CALL_CANCELLED","call has been cancelled" -"8024000C","-2145124340","2149842956","SUS_E_NOOP","no operation is needed" -"8024000D","-2145124339","2149842957","SUS_E_XML_MISSINGDATA","the SUS agent is attempting to parse an update-XML blob and has not found expected data" -"8024000E","-2145124338","2149842958","SUS_E_XML_INVALID","the SUS agent is attempting to parse an update-XML blob and has encountered data that is invalid" -"8024000F","-2145124337","2149842959","SUS_E_CYCLE_DETECTED","cycle detected in meta data" -"80240010","-2145124336","2149842960","SUS_E_TOO_DEEP_RELATION","too deep relation ship found" -"80240011","-2145124335","2149842961","SUS_E_REG_VALUE_INVALI","registry value was read but is invalid" -"80240012","-2145124334","2149842962","SUS_E_REG_VALUE_INVALID","registry value was read but is invalid" -"80240013","-2145124333","2149842963","SUS_E_EE_UNKNOWN_EXPRESSION","an expression handler was passed an expression that it doesn't know about" -"80240014","-2145124332","2149842964","SUS_E_EE_INVALID_EXPRESSION","an expression handler was passed an expression that is bad." -"80240015","-2145124331","2149842965","SUS_E_EE_MISSING_METADATA","an expression handler was passed an expression that requires an applicability metadata blob" -"80240016","-2145124330","2149842966","SUS_E_INSTALL_NOT_ALLOWE","try to install while another install is going on or reboot is pending" -"80240017","-2145124329","2149842967","SUS_E_NOT_APPLICABLE","install is not needed because no updates are applicable" -"80240018","-2145124328","2149842968","WU_E_NO_USERTOKEN","operation failed due to missing user token" -"80240019","-2145124327","2149842969","WU_E_EXCLUSIVE_INSTALL_CONFliCT","try to install an exclusive update with other updates at the same time" -"8024001A","-2145124326","2149842970","WU_E_POLICY_NOT_SET","policy value is not set" -"8024001B","-2145124325","2149842971","WU_E_SELFUPDATE_IN_PROGRESS","self-update in progress" -"8024001C","-2145124324","2149842972","SUS_E_WRONGMSIVERSION","" -"8024001D","-2145124323","2149842973","WU_E_INVALID_UPDATE","an update had bogus metadata" -"8024001E","-2145124322","2149842974","WU_E_SERVICE_STOP","call was aborted due to service stop or system shut down" -"8024001F","-2145124321","2149842975","SUS_E_NO_CONNECTION","no network connection is available to finish the operation" -"80240020","-2145124320","2149842976","SUS_E_NO_INTERACTIVE_USER","interactive user is missing to finish the operation" -"80240021","-2145124319","2149842977","WU_E_TIME_OUT","operation timed out" -"80240022","-2145124318","2149842978","WU_E_ALL_UPDATES_FAILED","operation failed on all specified updates" -"80240023","-2145124317","2149842979","WU_E_EULAS_DECLINED","EULA-for all the updates are declined" -"80240024","-2145124316","2149842980","WU_E_NO_UPDATE","there are no update" -"80240025","-2145124315","2149842981","WU_E_USER_ACCESS_DISABLED","User access to Windows Update is prevented by Group Policy setting" -"80240026","-2145124314","2149842982","WU_E_INVALID_UPDATE_TYPE","invalid type of update" -"80240027","-2145124313","2149842983","WU_E_URL_TOO_LONG","URL is too long" -"80240028","-2145124312","2149842984","WU_E_UNINSTALL_NOT_ALLOWED","uninstall is not allowed due to non managed environment" -"80240029","-2145124311","2149842985","WU_E_INVALID_PRODUCT_LICENSE","A product with an invalid license was found on the system." -"8024002A","-2145124310","2149842986","WU_E_MISSING_HANDLER","A component required for detecting applicable updates was missing." -"8024002B","-2145124309","2149842987","WU_E_LEGACYSERVER","The Sus server we are talking to is a Legacy Sus Server (Sus Server 1.0)" -"8024002C","-2145124308","2149842988","WU_E_BIN_SOURCE_ABSENT","A binary-delta patch failed because the source was required" -"8024002D","-2145124307","2149842989","WU_E_FF_SOURCE_ABSENT","a full-file patch failed because the source was required" -"8024002E","-2145124306","2149842990","SUS_E_WU_DISABLED","non managed server access is disallowed" -"8024002F","-2145124305","2149842991","WU_E_CALL_CANCELLED_BY_POLICY","call cancelled because of DisableWindowsUpdateAccess policy takes effect" -"80240030","-2145124304","2149842992","WU_E_INVALID_PROXY_SERVER","invalid format for proxy list" -"80240031","-2145124303","2149842993","WU_E_INVALID_FILE","file is not of the right format" -"80240032","-2145124302","2149842994","WU_E_INVALID_CRITERIA","invalid criteria string" -"80240033","-2145124301","2149842995","WU_E_EULA_UNAVAILABLE","EULA download failure" -"80240034","-2145124300","2149842996","WU_E_DOWNLOAD_FAILED","Failed to download" -"80240035","-2145124299","2149842997","WU_E_UPDATE_NOT_PROCESSED","INTERNAL ONLY: The update was not processed." -"80240036","-2145124298","2149842998","WU_E_INVALID_OPERATION","The operation is invalid for the object-current state." -"80240037","-2145124297","2149842999","WU_E_NOT_SUPPORTED","The invoked functionality is not supported (80240037" -"80240FFF","-2145120257","2149847039","WU_E_UNEXPECTED","generic unexpected failure" -"80241001","-2145120255","2149847041","WU_E_MSI_WRONG_VERSION","The MSI version on the machine is less than what we expect (SUS 2.0 requires MSI 3.0)" -"80241002","-2145120254","2149847042","WU_E_MSI_NOT_CONFIGURED","MSI is not configured" -"80241003","-2145120253","2149847043","WU_E_MSP_DISABLED","MSI patching is disabled by policy" -"80241FFF","-2145116161","2149851135","U_E_MSP_UNEXPECTED","generic unexpected MSP failure" -"80242000","-2145116160","2149851136","SUS_E_UH_REMOTEUNAVAILABLE","The caller requested a remote object" -"80242001","-2145116159","2149851137","WU_E_UH_LOCALONLY","The caller requested a remote object" -"80242002","-2145116158","2149851138","WU_E_UH_UNKNOWNHANDLER","The caller requested an unknown handler object" -"80242003","-2145116157","2149851139","WU_E_UH_REMOTEALREADYACTIVE","The caller requested an unknown handler object" -"80242004","-2145116156","2149851140","SUS_E_UH_DOESNOTSUPPORTACTION","The update does not support the current action (install or uninstall)" -"80242005","-2145116155","2149851141","SUS_E_UH_WRONGHANDLER","The caller tried to use the wrong handler for an action" -"80242006","-2145116154","2149851142","SUS_E_UH_INVALIDMETADATA","The caller passed an update with invalid metadata to the handler" -"80242007","-2145116153","2149851143","SUS_E_UH_INSTALLERHUNG","The installer took too long and was terminated" -"80242008","-2145116152","2149851144","SUS_E_UH_OPERATIONCANCELLED","The install was canceled via a handler method (as opposed to" -"80242009","-2145116151","2149851145","SUS_E_UH_BADHANDLERXML","The XML contained in the handler specific data for the update is invalid." -"8024200A","-2145116150","2149851146","WU_E_UH_CANREQUIREINPUT","The update may require user input so can not be installed in this context." -"8024200B","-2145116149","2149851147","SUS_E_UH_INSTALLERFAILURE","At least one update passed to the handler failed to install." -"8024200C","-2145116148","2149851148","WU_E_UH_FALLBACKTOSELFCONTAINED","Handler should fall back to self-contained from delta." -"8024200D","-2145116147","2149851149","SUS_E_UH_NEEDANOTHERDOWNLOAD","The installer requires more data to be downloaded" -"8024200E","-2145116146","2149851150","WU_E_UH_NOTIFYFAILURE","The attempted operation was not allowed" -"80242FFF","-2145112065","2149855231","WU_E_UH_UNEXPECTED","generic unexpected update handler failure" -"80243FFF","-2145107969","2149859327","WU_E_AUCLIENT_UNEXPECTED","generic unexpected UI [AU Client] failures" -"80244000","-2145107968","2149859328","WU_E_PT_SOAPCLIENT_BASE","Used as a base to map SOAPCLIENT_ERROR errors." -"80244001","-2145107967","2149859329","SUS_E_PT_SOAPCLIENT_INITIALIZE","SOAPCLIENT_INITIALIZE_ERROR initialization failed - most likely an MSXML installation problem" -"80244002","-2145107966","2149859330","WU_E_PT_SOAPCLIENT_OUTOFMEMORY","SOAPCLIENT_OUTOFMEMORY out of memory" -"80244003","-2145107965","2149859331","WU_E_PT_SOAPCLIENT_GENERATE","SOAPCLIENT_GENERATE_ERROR failed in generating the response" -"80244004","-2145107964","2149859332","SUS_E_PT_SOAPCLIENT_CONNECT","failed connecting to server" -"80244005","-2145107963","2149859333","WU_E_PT_SOAPCLIENT_SEND","SOAPCLIENT_SEND_ERROR failed in sending message. This generic error has been deprecated in favor of the more specific underlying WinHTTP errors" -"80244006","-2145107962","2149859334","WU_E_PT_SOAPCLIENT_SERVER","SOAPCLIENT_SERVER_ERROR server error" -"80244007","-2145107961","2149859335","WU_E_PT_SOAPCLIENT_SOAPFAULT","SOAPCLIENT_SOAPFAULT a SOAP Fault was returned by the server. See the more specific WU_E_PT_SOAP_xxxx mappings when a SOAP fault was returned by the server." -"80244008","-2145107960","2149859336","SUS_E_PT_SOAPCLIENT_PARSEFAULT","SOAPCLIENT_PARSEFAULT_ERROR failed in parsing SOAP fault" -"80244009","-2145107959","2149859337","WU_E_PT_SOAPCLIENT_READ","SOAPCLIENT_READ_ERROR failed in reading response" -"8024400A","-2145107958","2149859338","SUS_E_PT_SOAPCLIENT_PARSE","failed in parsing response" -"8024400B","-2145107957","2149859339","WU_E_PT_SOAP_VERSION","SOAP_E_VERSION_MISMATCH Invalid namespace for the SOAP envelope" -"8024400C","-2145107956","2149859340","WU_E_PT_SOAP_MUST_UNDERSTAND","SOAP_E_MUST_UNDERSTAND Child of header with mustUnderstand attribute = 1 wasn't understood or obeyed" -"8024400D","-2145107955","2149859341","SUS_E_PT_SOAP_CLIENT","SOAP_E_CLIENT The message was malformed or incomplete. No reason to retry unless problem fixed." -"8024400E","-2145107954","2149859342","SUS_E_PT_SOAP_SERVER","The message was OK but server couldn't process at the moment. Same message *may* succeed at a later time." -"8024400F","-2145107953","2149859343","WU_E_PT_WMI_ERROR","An unspecified error occurred using WMI" -"80244010","-2145107952","2149859344","SUS_E_PT_EXCEEDED_MAX_SERVER_TRIPS","The maximum allowed number of round trips to the server was exceeded" -"80244011","-2145107951","2149859345","SUS_E_PT_SUS_SERVER_NOT_SET","WUServer policy value is missing in the registry" -"80244012","-2145107950","2149859346","WU_E_PT_DOUBLE_INITIALIZATION","object is initialized second time" -"80244013","-2145107949","2149859347","WU_E_PT_INVALID_COMPUTER_NAME","Cannot determine computer name" -"80244014","-2145107948","2149859348","WU_E_PT_INVALID_COMPUTER_LSID","Cannot determine computer LSID" -"80244015","-2145107947","2149859349","SUS_E_PT_REFRESH_CACHE_REQUIRED","Server replied with InvalidCookie or ServerChanged Caller should refresh its internal state then repeat the call to Protocol Talker" -"80244016","-2145107946","2149859350","SUS_E_PT_HTTP_STATUS_BAD_REQUEST","Http status 400 - invalid syntax" -"80244017","-2145107945","2149859351","SUS_E_PT_HTTP_STATUS_DENIED","Http status 401 - access denied" -"80244018","-2145107944","2149859352","SUS_E_PT_HTTP_STATUS_FORBIDDEN","Http status 403 - request forbidden" -"80244019","-2145107943","2149859353","SUS_E_PT_HTTP_STATUS_NOT_FOUND","Http status 404 - object not found" -"8024401A","-2145107942","2149859354","SUS_E_PT_HTTP_STATUS_BAD_METHOD","Http status 405 - method is not allowed" -"8024401B","-2145107941","2149859355","SUS_E_PT_HTTP_STATUS_PROXY_AUTH_REQ","Http status 407 - proxy authentication required" -"8024401C","-2145107940","2149859356","WU_E_PT_HTTP_STATUS_REQUEST_TIMEOUT","Http status 408 - server timed out waiting for request" -"8024401D","-2145107939","2149859357","WU_E_PT_HTTP_STATUS_CONFLICT","Http status 409 - user should resubmit with more info" -"8024401E","-2145107938","2149859358","WU_E_PT_HTTP_STATUS_GONE","Http status 410 - the resource is no longer available" -"8024401F","-2145107937","2149859359","WU_E_PT_HTTP_STATUS_SERVER_ERROR","Http status 500 - internal server error" -"80244020","-2145107936","2149859360","WU_E_PT_HTTP_STATUS_NOT_SUPPORTED","Http status 501 - required not supported" -"80244021","-2145107935","2149859361","SUS_E_PT_HTTP_STATUS_BAD_GATEWAY","Http status 502 - error response received from gateway" -"80244022","-2145107934","2149859362","SUS_E_PT_HTTP_STATUS_SERVICE_UNAVAIL","Http status 503 - temporarily overloaded)" -"80244023","-2145107933","2149859363","SUS_E_PT_HTTP_STATUS_GATEWAY_TIMEOUT","Http status 504 - timed out waiting for gateway" -"80244024","-2145107932","2149859364","WU_E_PT_HTTP_STATUS_VERSION_NOT_SUP","Http status 505 - HTTP version not supported" -"80244025","-2145107931","2149859365","SUS_E_PT_FILE_LOCATIONS_CHANGED","Server replied with FileLocationsChange Caller should refresh its internal state then repeat the call to Protocol Talker" -"80244026","-2145107930","2149859366","SUS_E_PT_REGISTRATION_NOT_SUPPORTED","Client doesn't support registration with non-SUS server" -"80244027","-2145107929","2149859367","WU_E_PT_NO_AUTH_PLUGINS_REQUESTED","Server returned an empty AuthInfo list" -"80244028","-2145107928","2149859368","SUS_E_PT_NO_AUTH_COOKIES_CREATED","The client was unable to create any valid auth cookies" -"80244029","-2145107927","2149859369","WU_E_PT_INVALID_CONFIG_PROP","One of the Config ConfigurationProperty values was wrong" -"8024402A","-2145107926","2149859370","WU_E_PT_CONFIG_PROP_MISSING","One of the Config ConfigurationProperty values was wrong" -"8024402B","-2145107925","2149859371","WU_E_PT_HTTP_STATUS_NOT_MAPPED","Http status other than 200" -"8024402C","-2145107924","2149859372","WU_E_PT_WINHTTP_NAME_NOT_RESOLVED","Winhttp SendRequest/ReceiveResponse failed with 2ee7 error. Either the proxy server or target server name can not be resolved. Corresponding to ERROR_WINHTTP_NAME_NOT_RESOLVED. Stop/Restart service or reboot the machine if you see this error frequently." -"80244FFF","-2145103873","2149863423","WU_E_PT_UNEXPECTED","generic unexpected protocol talker failure" -"80245001","-2145103871","2149863425","WU_E_REDIRECTOR_LOAD_XML","The XML extracted from the wuredir.cab failed to load into the DOM" -"80245002","-2145103870","2149863426","WU_E_REDIRECTOR_S_FALSE","An expected XML element node" -"80245003","-2145103869","2149863427","WU_E_REDIRECTOR_ID_SMALLER","The redirectorId in the downloaded wuredir.cab is smaller than the cached cab." -"8024502D","-2145103827","2149863469","WU_E_PT_SAME_REDIR_ID","During recovery Protocol Talker failed to download a wuredir.cab with a newer redirectorId from the server" -"8024502E","-2145103826","2149863470","WU_E_PT_NO_MANAGED_RECOVER","A redirector recovery action was specified" -"80245FFF","-2145099777","2149867519","WU_E_REDIRECTOR_UNEXPECTED","generic unexpected redirector failure" -"80246001","-2145099775","2149867521","SUS_E_DM_URLNOTAVAILABLE","The requested file does not have an URL" -"80246002","-2145099774","2149867522","SUS_E_DM_INCORRECTFILEHASH","The file digest did not match the expected value" -"80246003","-2145099773","2149867523","WU_E_DM_UNKNOWNALGORITHM","The file metadata requested an unknown hash algorithm" -"80246004","-2145099772","2149867524","WU_E_DM_NEEDDOWNLOADREQUEST","A download request from a download handler is required." -"80246005","-2145099771","2149867525","SUS_E_DM_NONETWORK","Network connection was not available" -"80246006","-2145099770","2149867526","SUS_E_DM_WRONGBITSVERSION","The version of BITS installed on the machine is not compatible." -"80246007","-2145099769","2149867527","SUS_E_DM_NOTDOWNLOADED","The update has not been downloaded." -"80246008","-2145099768","2149867528","SUS_E_DM_FAILTOCONNECTTOBITS","Failed to create the IBackgroundCopyManager interface to BITS. The BITS service may have been disabled" -"80246009","-2145099767","2149867529","WU_E_DM_BITSTRANSFERERROR","A BITS transfer error occurred" -"80246FFF","-2145095681","2149871615","WU_E_DM_UNEXPECTED","generic unexpected download manager failure" -"80248000","-2145091584","2149875712","WU_E_DS_SHUTDOWN","The call failed because the SUS agent is shutting down" -"80248001","-2145091583","2149875713","WU_E_DS_INUSE","The call failed because the data store is in use and the operation can only be executed on an idle data store." -"80248002","-2145091582","2149875714","WU_E_DS_INVALID","The data store is in an invalid state. This can occur if we attempt to validate the database schema and find a mismatch between the current state and the state we expect." -"80248003","-2145091581","2149875715","WU_E_DS_TABLEMISSING","The data store has a missing table" -"80248004","-2145091580","2149875716","WU_E_DS_TABLEINCORRECT","The data store has a table whose columns are not what SUS expects" -"80248005","-2145091579","2149875717","WU_E_DS_INVALIDTABLENAME","The caller tried to open a table that is not in the datastore" -"80248006","-2145091578","2149875718","WU_E_DS_BADVERSION","The data store-version does not match what the client expects" -"80248007","-2145091577","2149875719","SUS_E_DS_NODATA","The caller asked for data that is not in the data store" -"80248008","-2145091576","2149875720","WU_E_DS_MISSINGDATA","The data store is in an invalid state because data that should be present is missing. This error can occur if we encounter a column in a table that is NULL when it is not allowed to be NULL." -"80248009","-2145091575","2149875721","WU_E_DS_MISSINGREF","The data store is in an invalid state because data that should be present is missing. This will occur if we try to fetch a linked row from another table and the linked row does not exist. This can happen with EULAs" -"8024800A","-2145091574","2149875722","WU_E_DS_UNKNOWNHANDLER","The caller attempted to add an update that used an unknown update handler" -"8024800B","-2145091573","2149875723","WU_E_DS_CANTDELETE","The caller attempted to delete an update that is referenced by one or more services" -"8024800C","-2145091572","2149875724","SUS_E_DS_LOCKTIMEOUTEXPIRED","The caller attempted to delete an update that is referenced by one or more services" -"8024800D","-2145091571","2149875725","WU_E_DS_NOCATEGORIES","The caller attempted to add a non-toplevel category update that contained no parent categories" -"8024800E","-2145091570","2149875726","WU_E_DS_ROWEXISTS","The caller attempted to add a row whose primary key matched an existing row" -"8024800F","-2145091569","2149875727","WU_E_DS_STOREFILELOCKED","We attempted to initialize the datastore" -"80248010","-2145091568","2149875728","WU_E_DS_CANNOTREGISTER","The caller is attempting to register the datastore with COM" -"80248011","-2145091567","2149875729","SUS_E_DS_UNABLETOSTART","Could not create an out of proc datastore object" -"80248012","-2145091566","2149875730","SUS_E_DS_MISSINGFILEFORURL","a file URL was passed in for a file that does not exist in the datastore" -"80248013","-2145091565","2149875731","SUS_E_DS_DUPLICATEUPDATEID","the server has passed the same update to the client with two different revision ids" -"80248014","-2145091564","2149875732","WU_E_DS_UNKNOWNSERVICE","the caller has requested some action on a service that is not known to the datastore" -"80248015","-2145091563","2149875733","SUS_E_DS_SERVICEEXPIRED","the caller has requested a service whose registration has expired" -"80248016","-2145091562","2149875734","WU_E_DS_DECLINENOTALLOWED","an update cannot be declined while it is deployed with a deadline by 1 or more services or if it is a mandatory update" -"80248017","-2145091561","2149875735","WU_E_DS_TABLESESSIONMISMATCH","the caller attempted to close a table with a session it was not associated with" -"80248018","-2145091560","2149875736","WU_E_DS_SESSIONLOCKMISMATCH","the caller attempted to close a table with a session it was not associated with" -"80248019","-2145091559","2149875737","WU_E_DS_NEEDWINDOWSSERVICE","the caller attempted to remove the windows update service without having another service configured that delivers updates to windows" -"8024801A","-2145091558","2149875738","WU_E_DS_INVALIDOPERATION","The attempted operation was not allowed" -"8024801B","-2145091557","2149875739","WU_E_DS_SCHEMAMISMATCH","The schema of a table in a backup XML file cannot be reconciled with the current store schema" -"8024801C","-2145091556","2149875740","WU_E_DS_RESETREQUIRED","The datastore required a reset and either the state of the current session was too complex to retry (it is in a caller initiated transaction or a caller acquired a section lock) or the reset failed. In either case" -"8024801D","-2145091555","2149875741","WU_E_DS_IMPERSONATED","The datastore cannot be called while impersonating" -"80248FFF","-2145087489","2149879807","WU_E_DS_UNEXPECTED","generic unexpected data store failure" -"8024A000","-2145083392","2149883904","WU_E_AU_NOSERVICE","AU was unable to service incoming AU calls" -"8024A001","-2145083391","2149883905","SUS_E_AU_LEGACYSERVER","" -"8024A002","-2145083390","2149883906","WU_E_AU_NONLEGACYSERVER","The legacy AU client stopped because the sus server has been upgraded" -"8024A003","-2145083389","2149883907","WU_E_AU_LEGACYCLIENTDISABLED","The legacy AU client stopped because it was disabled" -"8024A004","-2145083388","2149883908","WU_E_AU_PAUSED","AU was unable to service incoming AU calls because it was paused" -"8024AFFF","-2145079297","2149887999","WU_E_AU_UNEXPECTED","generic unexpected Automatic Updates" -"8024C001","-2145075199","2149892097","WU_E_DRV_PRUNED","Driver was pruned." -"8024C002","-2145075198","2149892098","WU_E_DRV_NOPROP_OR_LEGACY","A property wasn't found. Depending on the context this may not be an error. For example" -"8024C003","-2145075197","2149892099","WU_E_DRV_REG_MISMATCH","The registry type we read didn't match what was expected" -"8024C004","-2145075196","2149892100","WU_E_DRV_NO_METADATA","The driver Update didn't have a metadata blob" -"8024C005","-2145075195","2149892101","WU_E_DRV_MISSING_ATTRIBUTE","The driver Update metadata was missing a required attribute" -"8024C006","-2145075194","2149892102","WU_E_DRV_SYNC_FAILED","A driver sync operation failed" -"8024C007","-2145075193","2149892103","WU_E_DRV_NO_PRINTER_CONTENT","No printer driver content following SyncApplicablePrinters" -"8024CFFF","-2145071105","2149896191","WU_E_DRV_UNEXPECTED","generic unexpected driver utility failure" -"8024D001","-2145071103","2149896193","WU_E_SETUP_INVALID_INFDATA","Setup failed due to invalid data in the INF file." -"8024D002","-2145071102","2149896194","WU_E_SETUP_INVALID_IDENTDATA","Setup failed due to invalid data in the wuident file." -"8024D003","-2145071101","2149896195","WU_E_SETUP_ALREADY_INITIALIZED","Setup failed due to multiple initialization." -"8024D004","-2145071100","2149896196","WU_E_SETUP_NOT_INITIALIZED","Setup has not been initialized correctly." -"8024D005","-2145071099","2149896197","WU_E_SETUP_SOURCE_VERSION_MISMATCH","Setup failed as the version specified in the INF file doesn't match the source binary version." -"8024D006","-2145071098","2149896198","WU_E_SETUP_TARGET_VERSION_GREATER","Setup failed as the target version on the system is higher than source binary version." -"8024DFFF","-2145067009","2149900287","WU_E_SETUP_UNEXPECTED","Generic unexpected Setup failure." -"8024E001","-2145067007","2149900289","WU_E_EE_UNKNOWN_EXPRESSION","an expression handler was passed an expression that it doesn't know about" -"8024E002","-2145067006","2149900290","WU_E_EE_INVALID_EXPRESSION","an expression handler was passed an expression that is bad." -"8024E003","-2145067005","2149900291","WU_E_EE_MISSING_METADATA","an expression handler was passed an expression that requires an applicability metadata blob" -"8024E004","-2145067004","2149900292","WU_E_EE_INVALID_VERSION","Invalid version of the serialized expression data." -"8024E005","-2145067003","2149900293","WU_E_EE_NOT_INITIALIZED","The Expression Evaluator has not been initialized correctly." -"8024E006","-2145067002","2149900294","WU_E_EE_INVALID_ATTRIBUTEDATA","An invalid attribute data was passed to an expression evaluator." -"8024EFFF","-2145062913","2149904383","WU_E_EE_UNEXPECTED","generic unexpected expression evaluator failures" -"8024F001","-2145062911","2149904385","WU_E_REPORTER_EVENTCACHECORRUPT","event cache file was corrupt/malformed" -"8024F002","-2145062910","2149904386","WU_E_REPORTER_EVENTNAMESPACEPARSEFAILED","event namespace descriptor XML could not be parsed" -"8024F003","-2145062909","2149904387","WU_E_INVALID_EVENT","event was reported with invalid/malformed data" -"8024F004","-2145062908","2149904388","WU_E_SERVER_BUSY","event was rejected by server because server was too busy" -"8024FFFF","-2145058817","2149908479","WU_E_REPORTER_UNEXPECTED","generic unexpected reporter failures" -"80D02002","-2133843966","2161123330","","The operation timed out." -"81F40001","-2114715647","2180251649","","Bundle condition evaluated to false. (Possibly `Microsoft.VCRedist.2015+.` with the wrong architecture.)" -"87FF0001","-2013331455","2281635841","Error_Label_Unreadable","" -"87FF0004","-2013331452","2281635844","Error_Too_Many_Open_Files","The system can not open the file" -"8A150001","-1978335231","2316632065","APPINSTALLER_CLI_ERROR_INTERNAL_ERROR","Internal Error" -"8A150002","-1978335230","2316632066","APPINSTALLER_CLI_ERROR_INVALID_CL_ARGUMENTS","Invalid command line arguments" -"8A150003","-1978335229","2316632067","APPINSTALLER_CLI_ERROR_COMMAND_FAILED","Executing command failed." -"8A150004","-1978335228","2316632068","APPINSTALLER_CLI_ERROR_MANIFEST_FAILED","Opening manifest failed" -"8A150005","-1978335227","2316632069","APPINSTALLER_CLI_ERROR_CTRL_SIGNAL_RECEIVED","Cancellation signal received" -"8A150006","-1978335226","2316632070","APPINSTALLER_CLI_ERROR_SHELLEXEC_INSTALL_FAILED","Running ShellExecute failed" -"8A150007","-1978335225","2316632071","APPINSTALLER_CLI_ERROR_UNSUPPORTED_MANIFESTVERSION","Cannot process manifest. The manifest version is higher than supported. Please update the client." -"8A150008","-1978335224","2316632072","APPINSTALLER_CLI_ERROR_DOWNLOAD_FAILED","Downloading installer failed" -"8A150009","-1978335223","2316632073","APPINSTALLER_CLI_ERROR_CANNOT_WRITE_TO_UPLEVEL_INDEX","Cannot write to index; it is a higher schema version" -"8A15000A","-1978335222","2316632074","APPINSTALLER_CLI_ERROR_INDEX_INTEGRITY_COMPROMISED","The index is corrupt" -"8A15000B","-1978335221","2316632075","APPINSTALLER_CLI_ERROR_SOURCES_INVALID","The configured source information is corrupt" -"8A15000C","-1978335220","2316632076","APPINSTALLER_CLI_ERROR_SOURCE_NAME_ALREADY_EXISTS","The source name is already configured" -"8A15000D","-1978335219","2316632077","APPINSTALLER_CLI_ERROR_INVALID_SOURCE_TYPE","The source type is invalid" -"8A15000E","-1978335218","2316632078","APPINSTALLER_CLI_ERROR_PACKAGE_IS_BUNDLE","The MSIX file is a bundle" -"8A15000F","-1978335217","2316632079","APPINSTALLER_CLI_ERROR_SOURCE_DATA_MISSING","Data required by the source is missing" -"8A150010","-1978335216","2316632080","APPINSTALLER_CLI_ERROR_NO_APPLICABLE_INSTALLER","None of the installers are applicable for the current system" -"8A150011","-1978335215","2316632081","APPINSTALLER_CLI_ERROR_INSTALLER_HASH_MISMATCH","The installer file's hash does not match the manifest" -"8A150012","-1978335214","2316632082","APPINSTALLER_CLI_ERROR_SOURCE_NAME_DOES_NOT_EXIST","The source name does not exist" -"8A150013","-1978335213","2316632083","APPINSTALLER_CLI_ERROR_SOURCE_ARG_ALREADY_EXISTS","The source location is already configured under another name" -"8A150014","-1978335212","2316632084","APPINSTALLER_CLI_ERROR_NO_APPLICATIONS_FOUND","No packages found" -"8A150015","-1978335211","2316632085","APPINSTALLER_CLI_ERROR_NO_SOURCES_DEFINED","No sources are configured" -"8A150016","-1978335210","2316632086","APPINSTALLER_CLI_ERROR_MULTIPLE_APPLICATIONS_FOUND","Multiple packages found matching the criteria" -"8A150017","-1978335209","2316632087","APPINSTALLER_CLI_ERROR_NO_MANIFEST_FOUND","No manifest found matching the criteria" -"8A150018","-1978335208","2316632088","APPINSTALLER_CLI_ERROR_EXTENSION_PUBLIC_FAILED","Failed to get Public folder from source package" -"8A150019","-1978335207","2316632089","APPINSTALLER_CLI_ERROR_COMMAND_REQUIRES_ADMIN","Command requires administrator privileges to run" -"8A15001A","-1978335206","2316632090","APPINSTALLER_CLI_ERROR_SOURCE_NOT_SECURE","The source location is not secure" -"8A15001B","-1978335205","2316632091","APPINSTALLER_CLI_ERROR_MSSTORE_BLOCKED_BY_POLICY","The Microsoft Store client is blocked by policy" -"8A15001C","-1978335204","2316632092","APPINSTALLER_CLI_ERROR_MSSTORE_APP_BLOCKED_BY_POLICY","The Microsoft Store app is blocked by policy" -"8A15001D","-1978335203","2316632093","APPINSTALLER_CLI_ERROR_EXPERIMENTAL_FEATURE_DISABLED","The feature is currently under development. It can be enabled using winget settings." -"8A15001E","-1978335202","2316632094","APPINSTALLER_CLI_ERROR_MSSTORE_INSTALL_FAILED","Failed to install the Microsoft Store app" -"8A15001F","-1978335201","2316632095","APPINSTALLER_CLI_ERROR_COMPLETE_INPUT_BAD","Failed to perform auto complete" -"8A150020","-1978335200","2316632096","APPINSTALLER_CLI_ERROR_YAML_INIT_FAILED","Failed to initialize YAML parser" -"8A150021","-1978335199","2316632097","APPINSTALLER_CLI_ERROR_YAML_INVALID_MAPPING_KEY","Encountered an invalid YAML key" -"8A150022","-1978335198","2316632098","APPINSTALLER_CLI_ERROR_YAML_DUPLICATE_MAPPING_KEY","Encountered a duplicate YAML key" -"8A150023","-1978335197","2316632099","APPINSTALLER_CLI_ERROR_YAML_INVALID_OPERATION","Invalid YAML operation" -"8A150024","-1978335196","2316632100","APPINSTALLER_CLI_ERROR_YAML_DOC_BUILD_FAILED","Failed to build YAML doc" -"8A150025","-1978335195","2316632101","APPINSTALLER_CLI_ERROR_YAML_INVALID_EMITTER_STATE","Invalid YAML emitter state" -"8A150026","-1978335194","2316632102","APPINSTALLER_CLI_ERROR_YAML_INVALID_DATA","Invalid YAML data" -"8A150027","-1978335193","2316632103","APPINSTALLER_CLI_ERROR_LIBYAML_ERROR","LibYAML error" -"8A150028","-1978335192","2316632104","APPINSTALLER_CLI_ERROR_MANIFEST_VALIDATION_WARNING","Manifest validation succeeded with warning" -"8A150029","-1978335191","2316632105","APPINSTALLER_CLI_ERROR_MANIFEST_VALIDATION_FAILURE","Manifest validation failed" -"8A15002A","-1978335190","2316632106","APPINSTALLER_CLI_ERROR_INVALID_MANIFEST","Manifest is invalid" -"8A15002B","-1978335189","2316632107","APPINSTALLER_CLI_ERROR_UPDATE_NOT_APPLICABLE","No applicable update found" -"8A15002C","-1978335188","2316632108","APPINSTALLER_CLI_ERROR_UPDATE_ALL_HAS_FAILURE","winget upgrade --all completed with failures" -"8A15002D","-1978335187","2316632109","APPINSTALLER_CLI_ERROR_INSTALLER_SECURITY_CHECK_FAILED","Installer failed security check. Another script should retry this about every 18 hours. " -"8A15002E","-1978335186","2316632110","APPINSTALLER_CLI_ERROR_DOWNLOAD_SIZE_MISMATCH","Download size does not match expected content length" -"8A15002F","-1978335185","2316632111","APPINSTALLER_CLI_ERROR_NO_UNINSTALL_INFO_FOUND","Uninstall command not found" -"8A150030","-1978335184","2316632112","APPINSTALLER_CLI_ERROR_EXEC_UNINSTALL_COMMAND_FAILED","Running uninstall command failed" -"8A150031","-1978335183","2316632113","APPINSTALLER_CLI_ERROR_ICU_BREAK_ITERATOR_ERROR","ICU break iterator error" -"8A150032","-1978335182","2316632114","APPINSTALLER_CLI_ERROR_ICU_CASEMAP_ERROR","ICU casemap error" -"8A150033","-1978335181","2316632115","APPINSTALLER_CLI_ERROR_ICU_REGEX_ERROR","ICU regex error" -"8A150034","-1978335180","2316632116","APPINSTALLER_CLI_ERROR_IMPORT_INSTALL_FAILED","Failed to install one or more imported packages" -"8A150035","-1978335179","2316632117","APPINSTALLER_CLI_ERROR_NOT_ALL_PACKAGES_FOUND","Could not find one or more requested packages" -"8A150036","-1978335178","2316632118","APPINSTALLER_CLI_ERROR_JSON_INVALID_FILE","Json file is invalid" -"8A150037","-1978335177","2316632119","APPINSTALLER_CLI_ERROR_SOURCE_NOT_REMOTE","The source location is not remote" -"8A150038","-1978335176","2316632120","APPINSTALLER_CLI_ERROR_UNSUPPORTED_RESTSOURCE","The configured REST API source is not supported" -"8A150039","-1978335175","2316632121","APPINSTALLER_CLI_ERROR_RESTSOURCE_INVALID_DATA","Invalid data returned by REST API source" -"8A15003A","-1978335174","2316632122","APPINSTALLER_CLI_ERROR_BLOCKED_BY_POLICY","Operation is blocked by Group Policy" -"8A15003B","-1978335173","2316632123","APPINSTALLER_CLI_ERROR_RESTAPI_INTERNAL_ERROR","REST API sourceinternal error" -"8A15003C","-1978335172","2316632124","APPINSTALLER_CLI_ERROR_RESTSOURCE_INVALID_URL","Invalid REST API sourceurl" -"8A15003D","-1978335171","2316632125","APPINSTALLER_CLI_ERROR_RESTAPI_UNSUPPORTED_MIME_TYPE","Unsupported MIME type returned by REST API source" -"8A15003E","-1978335170","2316632126","APPINSTALLER_CLI_ERROR_RESTSOURCE_INVALID_VERSION","Invalid REST API source contract version" -"8A15003F","-1978335169","2316632127","APPINSTALLER_CLI_ERROR_SOURCE_DATA_INTEGRITY_FAILURE","The source data is corrupted or tampered" -"8A150040","-1978335168","2316632128","APPINSTALLER_CLI_ERROR_STREAM_READ_FAILURE","Error reading from the stream" -"8A150041","-1978335167","2316632129","APPINSTALLER_CLI_ERROR_PACKAGE_AGREEMENTS_NOT_ACCEPTED","Package agreements were not agreed to" -"8A150042","-1978335166","2316632130","APPINSTALLER_CLI_ERROR_PROMPT_INPUT_ERROR","Error reading input in prompt" -"8A150043","-1978335165","2316632131","APPINSTALLER_CLI_ERROR_UNSUPPORTED_SOURCE_REQUEST","The search request is not supported by one or more sources" -"8A150044","-1978335164","2316632132","APPINSTALLER_CLI_ERROR_RESTAPI_ENDPOINT_NOT_FOUND","The REST API source endpoint is not found." -"8A150045","-1978335163","2316632133","APPINSTALLER_CLI_ERROR_SOURCE_OPEN_FAILED","Failed to open the source." -"8A150046","-1978335162","2316632134","APPINSTALLER_CLI_ERROR_SOURCE_AGREEMENTS_NOT_ACCEPTED","Source agreements were not agreed to" -"8A150047","-1978335161","2316632135","APPINSTALLER_CLI_ERROR_CUSTOMHEADER_EXCEEDS_MAXLENGTH","Header size exceeds the allowable limit of 1024 characters. Please reduce the size and try again." -"8A150048","-1978335160","2316632136","APPINSTALLER_CLI_ERROR_MISSING_RESOURCE_FILE","Missing resource file" -"8A150049","-1978335159","2316632137","APPINSTALLER_CLI_ERROR_MSI_INSTALL_FAILED","Running MSI install failed" -"8A15004A","-1978335158","2316632138","APPINSTALLER_CLI_ERROR_INVALID_MSIEXEC_ARGUMENT","Arguments for msiexec are invalid" -"8A15004B","-1978335157","2316632139","APPINSTALLER_CLI_ERROR_FAILED_TO_OPEN_ALL_SOURCES","Failed to open one or more sources" -"8A15004C","-1978335156","2316632140","APPINSTALLER_CLI_ERROR_DEPENDENCIES_VALIDATION_FAILED","Failed to validate dependencies" -"8A15004D","-1978335155","2316632141","APPINSTALLER_CLI_ERROR_MISSING_PACKAGE","One or more package is missing" -"8A15004E","-1978335154","2316632142","APPINSTALLER_CLI_ERROR_INVALID_TABLE_COLUMN","Invalid table column" -"8A15004F","-1978335153","2316632143","APPINSTALLER_CLI_ERROR_UPGRADE_VERSION_NOT_NEWER","The upgrade version is not newer than the installed version" -"8A150050","-1978335152","2316632144","APPINSTALLER_CLI_ERROR_UPGRADE_VERSION_UNKNOWN","Upgrade version is unknown and override is not specified" -"8A150051","-1978335151","2316632145","APPINSTALLER_CLI_ERROR_ICU_CONVERSION_ERROR","ICU conversion error" -"8A150052","-1978335150","2316632146","APPINSTALLER_CLI_ERROR_PORTABLE_INSTALL_FAILED","Failed to install portable package" -"8A150053","-1978335149","2316632147","APPINSTALLER_CLI_ERROR_PORTABLE_REPARSE_POINT_NOT_SUPPORTED","Volume does not support reparse points." -"8A150054","-1978335148","2316632148","APPINSTALLER_CLI_ERROR_PORTABLE_PACKAGE_ALREADY_EXISTS","Portable package from a different source already exists." -"8A150055","-1978335147","2316632149","APPINSTALLER_CLI_ERROR_PORTABLE_SYMLINK_PATH_IS_DIRECTORY","Unable to create symlink" -"8A150056","-1978335146","2316632150","APPINSTALLER_CLI_ERROR_INSTALLER_PROHIBITS_ELEVATION","The installer cannot be run from an administrator context. Does this package require `ElevationRequirement: elevationProhibited`?" -"8A150057","-1978335145","2316632151","APPINSTALLER_CLI_ERROR_PORTABLE_UNINSTALL_FAILED","Failed to uninstall portable package" -"8A150058","-1978335144","2316632152","APPINSTALLER_CLI_ERROR_ARP_VERSION_VALIDATION_FAILED","Failed to validate DisplayVersion values against index." -"8A150059","-1978335143","2316632153","APPINSTALLER_CLI_ERROR_UNSUPPORTED_ARGUMENT","One or more arguments are not supported." -"8A15005A","-1978335142","2316632154","APPINSTALLER_CLI_ERROR_BIND_WITH_EMBEDDED_NULL","Embedded null characters are disallowed for SQLite" -"8A15005B","-1978335141","2316632155","APPINSTALLER_CLI_ERROR_NESTEDINSTALLER_NOT_FOUND","Failed to find the nested installer in the archive. Does the `RelativeFilePath` have the previous version number in it?" -"8A15005C","-1978335140","2316632156","APPINSTALLER_CLI_ERROR_EXTRACT_ARCHIVE_FAILED","Failed to extract archive. Does the `InstallerUrl` actually end in `.zip`,or does it have a different extension? " -"8A15005D","-1978335139","2316632157","APPINSTALLER_CLI_ERROR_NESTEDINSTALLER_INVALID_PATH","Invalid relative file path to nested installer provided." -"8A15005E","-1978335138","2316632158","APPINSTALLER_CLI_ERROR_PINNED_CERTIFICATE_MISMATCH","The server certificate did not match any of the expected values." -"8A15005F","-1978335137","2316632159","APPINSTALLER_CLI_ERROR_INSTALL_LOCATION_REQUIRED","Install location must be provided." -"8A150060","-1978335136","2316632160","APPINSTALLER_CLI_ERROR_ARCHIVE_SCAN_FAILED","Archive malware scan failed." -"8A150061","-1978335135","2316632161","APPINSTALLER_CLI_ERROR_PACKAGE_ALREADY_INSTALLED","Found at least one version of the package installed." -"8A150062","-1978335134","2316632162","APPINSTALLER_CLI_ERROR_PIN_ALREADY_EXISTS","A pin already exists for the package." -"8A150063","-1978335133","2316632163","APPINSTALLER_CLI_ERROR_PIN_DOES_NOT_EXIST","There is no pin for the package." -"8A150064","-1978335132","2316632164","APPINSTALLER_CLI_ERROR_CANNOT_OPEN_PINNING_INDEX","Unable to open the pin database." -"8A150065","-1978335131","2316632165","APPINSTALLER_CLI_ERROR_MULTIPLE_INSTALL_FAILED","One or more applications failed to install" -"8A150066","-1978335130","2316632166","APPINSTALLER_CLI_ERROR_MULTIPLE_UNINSTALL_FAILED","One or more applications failed to uninstall" -"8A150067","-1978335129","2316632167","APPINSTALLER_CLI_ERROR_NOT_ALL_QUERIES_FOUND_SINGLE","One or more queries did not return exactly one match" -"8A150068","-1978335128","2316632168","APPINSTALLER_CLI_ERROR_PACKAGE_IS_PINNED","The package has a pin that prevents upgrade." -"8A150069","-1978335127","2316632169","APPINSTALLER_CLI_ERROR_PACKAGE_IS_STUB","The package currently installed is the stub package" -"8A15006A","-1978335126","2316632170","APPINSTALLER_CLI_ERROR_APPTERMINATION_RECEIVED","Application shutdown signal received" -"8A15006B","-1978335125","2316632171","APPINSTALLER_CLI_ERROR_DOWNLOAD_DEPENDENCIES","Failed to download package dependencies." -"8A15006C","-1978335124","2316632172","APPINSTALLER_CLI_ERROR_DOWNLOAD_COMMAND_PROHIBITED","Failed to download package. Download for offline installation is prohibited." -"8A15006D","-1978335123","2316632173","APPINSTALLER_CLI_ERROR_SERVICE_UNAVAILABLE","A required service is busy or unavailable. Try again later." -"8A15006E","-1978335122","2316632174","APPINSTALLER_CLI_ERROR_RESUME_ID_NOT_FOUND","The guid provided does not correspond to a valid resume state." -"8A15006F","-1978335121","2316632175","APPINSTALLER_CLI_ERROR_CLIENT_VERSION_MISMATCH","The current client version did not match the client version of the saved state." -"8A150070","-1978335120","2316632176","APPINSTALLER_CLI_ERROR_INVALID_RESUME_STATE","The resume state data is invalid." -"8A150071","-1978335119","2316632177","APPINSTALLER_CLI_ERROR_CANNOT_OPEN_CHECKPOINT_INDEX","Unable to open the checkpoint database." -"8A150072","-1978335118","2316632178","APPINSTALLER_CLI_ERROR_RESUME_LIMIT_EXCEEDED","Exceeded max resume limit." -"8A150073","-1978335117","2316632179","APPINSTALLER_CLI_ERROR_INVALID_AUTHENTICATION_INFO","Invalid authentication info." -"8A150074","-1978335116","2316632180","APPINSTALLER_CLI_ERROR_AUTHENTICATION_TYPE_NOT_SUPPORTED","Authentication method not supported." -"8A150075","-1978335115","2316632181","APPINSTALLER_CLI_ERROR_AUTHENTICATION_FAILED","Authentication failed." -"8A150076","-1978335114","2316632182","APPINSTALLER_CLI_ERROR_AUTHENTICATION_INTERACTIVE_REQUIRED","Authentication failed. Interactive authentication required." -"8A150077","-1978335113","2316632183","APPINSTALLER_CLI_ERROR_AUTHENTICATION_CANCELLED_BY_USER","Authentication failed. User cancelled." -"8A150078","-1978335112","2316632184","APPINSTALLER_CLI_ERROR_AUTHENTICATION_INCORRECT_ACCOUNT","Authentication failed. Authenticated account is not the desired account." -"8A150079","-1978335111","2316632185","APPINSTALLER_CLI_ERROR_NO_REPAIR_INFO_FOUND","Repair command not found." -"8A15007A","-1978335110","2316632186","APPINSTALLER_CLI_ERROR_REPAIR_NOT_APPLICABLE","Repair operation is not applicable." -"8A15007B","-1978335109","2316632187","APPINSTALLER_CLI_ERROR_EXEC_REPAIR_FAILED","Repair operation failed." -"8A15007C","-1978335108","2316632188","APPINSTALLER_CLI_ERROR_REPAIR_NOT_SUPPORTED","The installer technology in use doesn't support repair." -"8A15007D","-1978335107","2316632189","APPINSTALLER_CLI_ERROR_ADMIN_CONTEXT_REPAIR_PROHIBITED","Repair operations involving administrator privileges are not permitted on packages installed within the user scope." -"8A15007E","-1978335106","2316632190","APPINSTALLER_CLI_ERROR_SQLITE_CONNECTION_TERMINATED","The SQLite connection was terminated to prevent corruption." -"8A15007F","-1978335105","2316632191","APPINSTALLER_CLI_ERROR_DISPLAYCATALOG_API_FAILED","Failed to get Microsoft Store package catalog." -"8A150080","-1978335104","2316632192","APPINSTALLER_CLI_ERROR_NO_APPLICABLE_DISPLAYCATALOG_PACKAGE","No applicable Microsoft Store package found from Microsoft Store package catalog." -"8A150081","-1978335103","2316632193","APPINSTALLER_CLI_ERROR_SFSCLIENT_API_FAILED","Failed to get Microsoft Store package download information." -"8A150082","-1978335102","2316632194","APPINSTALLER_CLI_ERROR_NO_APPLICABLE_SFSCLIENT_PACKAGE","No applicable Microsoft Store package download information found." -"8A150083","-1978335101","2316632195","APPINSTALLER_CLI_ERROR_LICENSING_API_FAILED","Failed to retrieve Microsoft Store package license." -"8A150084","-1978335100","2316632196","APPINSTALLER_CLI_ERROR_SFSCLIENT_PACKAGE_NOT_SUPPORTED","The Microsoft Store package does not support download command." -"8A150085","-1978335099","2316632197","APPINSTALLER_CLI_ERROR_LICENSING_API_FAILED_FORBIDDEN","Failed to retrieve Microsoft Store package license. The Microsoft Entra Id account does not have required privilege." -"8A150086","-1978335098","2316632198","APPINSTALLER_CLI_ERROR_INSTALLER_ZERO_BYTE_FILE","Downloaded zero byte installer; ensure that your network connection is working properly." -"8A150101","-1978334975","2316632321","APPINSTALLER_CLI_ERROR_INSTALL_PACKAGE_IN_USE","Application is currently running. Exit the application then try again." -"8A150102","-1978334974","2316632322","APPINSTALLER_CLI_ERROR_INSTALL_INSTALL_IN_PROGRESS","Another installation is already in progress. Try again later." -"8A150103","-1978334973","2316632323","APPINSTALLER_CLI_ERROR_INSTALL_FILE_IN_USE","One or more file is being used. Exit the application then try again." -"8A150104","-1978334972","2316632324","APPINSTALLER_CLI_ERROR_INSTALL_MISSING_DEPENDENCY","This package has a dependency missing from your system. (The most common dependency is `Microsoft.VCRedist.2015+.x64` / `.x86`)" -"8A150105","-1978334971","2316632325","APPINSTALLER_CLI_ERROR_INSTALL_DISK_FULL","There's no more space on your PC. Make space" -"8A150106","-1978334970","2316632326","APPINSTALLER_CLI_ERROR_INSTALL_INSUFFICIENT_MEMORY","There's not enough memory available to install. Close other applications then try again." -"8A150107","-1978334969","2316632327","APPINSTALLER_CLI_ERROR_INSTALL_NO_NETWORK","This application requires internet connectivity. Connect to a network then try again." -"8A150108","-1978334968","2316632328","APPINSTALLER_CLI_ERROR_INSTALL_CONTACT_SUPPORT","This application encountered an error during installation. Contact support." -"8A150109","-1978334967","2316632329","APPINSTALLER_CLI_ERROR_INSTALL_REBOOT_REQUIRED_TO_FINISH","Restart your PC to finish installation." -"8A15010A","-1978334966","2316632330","APPINSTALLER_CLI_ERROR_INSTALL_REBOOT_REQUIRED_TO_INSTALL","Installation failed. Restart your PC then try again." -"8A15010B","-1978334965","2316632331","APPINSTALLER_CLI_ERROR_INSTALL_REBOOT_INITIATED","Your PC will restart to finish installation." -"8A15010C","-1978334964","2316632332","APPINSTALLER_CLI_ERROR_INSTALL_CANCELLED_BY_USER","You cancelled the installation." -"8A15010D","-1978334963","2316632333","APPINSTALLER_CLI_ERROR_INSTALL_ALREADY_INSTALLED","Another version of this application is already installed." -"8A15010E","-1978334962","2316632334","APPINSTALLER_CLI_ERROR_INSTALL_DOWNGRADE","A higher version of this application is already installed." -"8A15010F","-1978334961","2316632335","APPINSTALLER_CLI_ERROR_INSTALL_BLOCKED_BY_POLICY","Organization policies are preventing installation. Contact your admin." -"8A150110","-1978334960","2316632336","APPINSTALLER_CLI_ERROR_INSTALL_DEPENDENCIES","Failed to install package dependencies." -"8A150111","-1978334959","2316632337","APPINSTALLER_CLI_ERROR_INSTALL_PACKAGE_IN_USE_BY_APPLICATION","Application is currently in use by another application." -"8A150112","-1978334958","2316632338","APPINSTALLER_CLI_ERROR_INSTALL_INVALID_PARAMETER","Invalid parameter." -"8A150113","-1978334957","2316632339","APPINSTALLER_CLI_ERROR_INSTALL_SYSTEM_NOT_SUPPORTED","Package not supported by the system." -"8A150114","-1978334956","2316632340","APPINSTALLER_CLI_ERROR_INSTALL_UPGRADE_NOT_SUPPORTED","The installer does not support upgrading an existing package." -"8A150115","-1978334955","2316632341","APPINSTALLER_CLI_ERROR_INSTALL_CUSTOM_ERROR","Installation failed with installer custom error." -"8A150201","-1978334719","2316632577","WINGET_INSTALLED_STATUS_ARP_ENTRY_NOT_FOUND","The Apps and Features Entry for the package could not be found." -"8A150202","-1978334718","2316632578","WINGET_INSTALLED_STATUS_INSTALL_LOCATION_NOT_APPLICABLE","The install location is not applicable." -"8A150203","-1978334717","2316632579","WINGET_INSTALLED_STATUS_INSTALL_LOCATION_NOT_FOUND","The install location could not be found." -"8A150204","-1978334716","2316632580","WINGET_INSTALLED_STATUS_FILE_HASH_MISMATCH","The hash of the existing file did not match." -"8A150205","-1978334715","2316632581","WINGET_INSTALLED_STATUS_FILE_NOT_FOUND","File not found." -"8A150206","-1978334714","2316632582","WINGET_INSTALLED_STATUS_FILE_FOUND_WITHOUT_HASH_CHECK","The file was found but the hash was not checked." -"8A150207","-1978334713","2316632583","WINGET_INSTALLED_STATUS_FILE_ACCESS_ERROR","The file could not be accessed." -"8A15C001","-1978286079","2316681217","WINGET_CONFIG_ERROR_INVALID_CONFIGURATION_FILE","The configuration file is invalid." -"8A15C002","-1978286078","2316681218","WINGET_CONFIG_ERROR_INVALID_YAML","The YAML syntax is invalid." -"8A15C003","-1978286077","2316681219","WINGET_CONFIG_ERROR_INVALID_FIELD_TYPE","A configuration field has an invalid type." -"8A15C004","-1978286076","2316681220","WINGET_CONFIG_ERROR_UNKNOWN_CONFIGURATION_FILE_VERSION","The configuration has an unknown version." -"8A15C005","-1978286075","2316681221","WINGET_CONFIG_ERROR_SET_APPLY_FAILED","An error occurred while applying the configuration." -"8A15C006","-1978286074","2316681222","WINGET_CONFIG_ERROR_DUPLICATE_IDENTIFIER","The configuration contains a duplicate identifier." -"8A15C007","-1978286073","2316681223","WINGET_CONFIG_ERROR_MISSING_DEPENDENCY","The configuration is missing a dependency." -"8A15C008","-1978286072","2316681224","WINGET_CONFIG_ERROR_DEPENDENCY_UNSATISFIED","The configuration has an unsatisfied dependency." -"8A15C009","-1978286071","2316681225","WINGET_CONFIG_ERROR_ASSERTION_FAILED","An assertion for the configuration unit failed." -"8A15C00A","-1978286070","2316681226","WINGET_CONFIG_ERROR_MANUALLY_SKIPPED","The configuration was manually skipped." -"8A15C00B","-1978286069","2316681227","WINGET_CONFIG_ERROR_WARNING_NOT_ACCEPTED","A warning was thrown and the user declined to continue execution." -"8A15C00C","-1978286068","2316681228","WINGET_CONFIG_ERROR_SET_DEPENDENCY_CYCLE","The dependency graph contains a cycle which cannot be resolved." -"8A15C00D","-1978286067","2316681229","WINGET_CONFIG_ERROR_INVALID_FIELD_VALUE","The configuration has an invalid field value." -"8A15C00E","-1978286066","2316681230","WINGET_CONFIG_ERROR_MISSING_FIELD","The configuration is missing a field." -"8A15C00F","-1978286065","2316681231","WINGET_CONFIG_ERROR_TEST_FAILED","Some of the configuration units failed while testing their state." -"8A15C010","-1978286064","2316681232","WINGET_CONFIG_ERROR_TEST_NOT_RUN","Configuration state was not tested." -"8A15C011","-1978286063","2316681233","WINGET_CONFIG_ERROR_GET_FAILED","The configuration unit failed getting its properties." -"8A15C012","-1978286062","2316681234","WINGET_CONFIG_ERROR_HISTORY_ITEM_NOT_FOUND","The specified configuration could not be found." -"8A15C013","-1978286061","2316681235","WINGET_CONFIG_ERROR_PARAMETER_INTEGRITY_BOUNDARY","Parameter cannot be passed across integrity boundary." -"8A15C101","-1978285823","2316681473","WINGET_CONFIG_ERROR_UNIT_NOT_INSTALLED","The configuration unit was not installed." -"8A15C102","-1978285822","2316681474","WINGET_CONFIG_ERROR_UNIT_NOT_FOUND_REPOSITORY","The configuration unit could not be found." -"8A15C103","-1978285821","2316681475","WINGET_CONFIG_ERROR_UNIT_MULTIPLE_MATCHES","Multiple matches were found for the configuration unit specify the module to select the correct one." -"8A15C104","-1978285820","2316681476","WINGET_CONFIG_ERROR_UNIT_INVOKE_GET","The configuration unit failed while attempting to get the current system state." -"8A15C105","-1978285819","2316681477","WINGET_CONFIG_ERROR_UNIT_INVOKE_TEST","The configuration unit failed while attempting to test the current system state." -"8A15C106","-1978285818","2316681478","WINGET_CONFIG_ERROR_UNIT_INVOKE_SET","The configuration unit failed while attempting to apply the desired state." -"8A15C107","-1978285817","2316681479","WINGET_CONFIG_ERROR_UNIT_MODULE_CONFLICT","The module for the configuration unit is available in multiple locations with the same version." -"8A15C108","-1978285816","2316681480","WINGET_CONFIG_ERROR_UNIT_IMPORT_MODULE","Loading the module for the configuration unit failed." -"8A15C109","-1978285815","2316681481","WINGET_CONFIG_ERROR_UNIT_INVOKE_INVALID_RESULT","The configuration unit returned an unexpected result during execution." -"8A15C110","-1978285814","2316681482","WINGET_CONFIG_ERROR_UNIT_SETTING_CONFIG_ROOT","A unit contains a setting that requires the config root." -"8A15C111","-1978285813","2316681483","WINGET_CONFIG_ERROR_UNIT_IMPORT_MODULE_ADMIN","Loading the module for the configuration unit failed because it requires administrator privileges to run." -"8A15C112","-1978285812","2316681484","WINGET_CONFIG_ERROR_NOT_SUPPORTED_BY_PROCESSOR","Operation is not supported by the configuration processor." -"8DDD0001","-1914896383","2380070913","ErrorNoScripting","" -"8DDD0002","-1914896382","2380070914","ErrorNotAdmin","" -"8DDD0003","-1914896381","2380070915","ErrorDisabled","Site timeout waiting for the control." -"8DDD0004","-1914896380","2380070916","ErrorControlFailed","" -"8DDD0006","-1914896378","2380070918","ErrorWin2KLessThanSP3","" -"8DDD0007","-1914896377","2380070919","ErrorRebootRequired","" -"8DDD000F","-1914896369","2380070927","ErrorIis404","" -"8DDD0010","-1914896368","2380070928","ErrorIis500","" -"8DDD0012","-1914896366","2380070930","ErrorNoFrames","" -"8DDD0018","-1914896360","2380070936","ErrorAUDisabled","AU could be disabled" -"00002390","9104","-4294958192","DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS","This value was also named DNS_ERROR_INVALID_NSEC3_PARAMETERS" -"C0000005","-1073741819","3221225477","STATUS_ACCESS_VIOLATION","Possibly [Access Violation](https://learn.microsoft.com/en-us/shows/inside/access-violation-c0000005-execute). (This is occasionally seen in PRs despite the install otherwise being successful. Should it be added as an `InstallerSuccessCode` or similar here?)" -"C0000006","-1073741818","3221225478","STATUS_IN_PAGE_ERROR","" -"C0000017","-1073741801","3221225495","","Not enough virtual memory is available. (VM ran out of RAM)" -"C000001D","-1073741795","3221225501","STATUS_ILLEGAL_INSTRUCTION","" -"C000001E","-1073741794","3221225502","STATUS_INVALID_LOCK_SEQUENCE","" -"C0000090","-1073741680","3221225616","STATUS_FLOAT_INVALID OPERATION","" -"C0000096","-1073741674","3221225622","STATUS_PRIVILEGED_INSTRUCTION","" -"C00000FD","-1073741571","3221225725","STATUS_STACK_OVERFLOW","Stack overflow / exhaustion." -"C0000135","-1073741515","3221225781","STATUS_DLL_NOT_FOUND","Possibly due to a missing dependency. (The most common dependency is `Microsoft.VCRedist.2015+.x64` / `.x86`)" -"C000013A","-1073741510","3221225786","STATUS_CONTROL_C_EXIT","The application terminated as a result of a CTRL+C." -"C0000142","-1073741502","3221225794","STATUS_DLL_INIT_FAILED","The application failed to initialize properly - does this package require `ElevationRequirement: elevationRequired`? " -"C0000194","-1073741420","3221225876","Status_Not_Found","object not found" -"C0000354","-1073740972","3221226324","Status_Debugger_Inactive","An attempt to do an operation on a debug port failed because the port is in the process of being deleted." -"C0000409","-1073740791","3221226505","","Stack overflow / exhaustion." -"c0000602","-1073740286","3221227010","","A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately." -"C8000147","-939523769","3355443527","NULL","" -"C8000152","-939523758","3355443538","MCIERR_Seq_Port_Nonexistent","" -"C8000158","-939523752","3355443544","NULL","" -"C80001FE","-939523586","3355443710","hrLogWriteFail","unable to write to the log file" -"C8000211","-939523567","3355443729","hrLogDiskFull","" -"C8000240","-939523520","3355443776","SE_Auditid_Assign_Special_Priv","" -"C80003F3","-939523085","3355444211","hrOutOfMemory","The computer is out of memory" -"C80003F6","-939523082","3355444214","hrOutOfBuffers","out of database page buffers" -"C80003FA","-939523078","3355444218","hrReadVerifyFailure","" -"C80003FB","-939523077","3355444219","Error_No_Log_Space","System could not allocate the required space in a registry log" -"C80003FE","-939523074","3355444222","hrDiskIO","" -"C8000442","-939523006","3355444290","CS_Event_reg_Operations_Failed","" -"C800044E","-939522994","3355444302","hrWriteConflict","The write lock failed due to an outstanding write lock" -"C8000710","-939522288","3355445008","hrDiskFull","" -"D0000005","-805306363","3489660933","ERROR_ACCESS_DENIED","" -"D0000006","-805306362","3489660934","Error_Invalid_Handle","" -"D0000008","-805306360","3489660936","ERROR_NOT_ENOUGH_MEMORY","not enough storage is available to process this command" -"D0000017","-805306345","3489660951","Error_CRC","" -"D0000018","-805306344","3489660952","Error_Bad_Length","the program issued a command but the command length is incorrect" -"D000001D","-805306339","3489660957","Error_Write_Fault","the system cannot write the specified device" -"D0000022","-805306334","3489660962","Error_Wrong_Disk","" -"D000012D","-805306067","3489661229","HTTP_Status_Moved","Object Permanently moved" -"D0000135","-805306059","3489661237","MCIErr_Set_Drive","" -"D000013A","-805306054","3489661242","NULL","" -"D0000142","-805306046","3489661250","MCIERR_Wave_Inputsinuse","" -"D0000194","-805305964","3489661332","HTTP_Status_Not_Found","" -"D0000354","-805305516","3489661780","NULL","" -"E0000101","-536870655","3758096641","ERROR_SECTION_NOT_FOUND","" -"E0000201","-536870399","3758096897","ERROR_CLASS_MISMATCH","" -"E0000203","-536870397","3758096899","ERROR_NO_DRIVER_SELECTED","" -"E000020B","-536870389","3758096907","ERROR_NO_SUCH_DEVINST","" -"E000020D","-536870387","3758096909","ERROR_INVALID_CLASS_INSTALLER","" -"E0000217","-536870377","3758096919","ERROR_BAD_SERVICE_INSTALLSECT","" -"E0000219","-536870375","3758096921","ERROR_NO_ASSOCIATED_SERVICE","" -"E000022B","-536870357","3758096939","ERROR_DI_DONT_INSTALL","" -"E000022D","-536870355","3758096941","ERROR_NON_WINDOWS_NT_DRIVER","" -"E000022F","-536870353","3758096943","ERROR_NO_CATALOG_FOR_OEM_INF","" -"E0000230","-536870352","3758096944","ERROR_DEVINSTALL_QUEUE_NONNATIVE","" -"E0000234","-536870348","3758096948","ERROR_DRIVER_NONNATIVE","" -"E000023A","-536870342","3758096954","ERROR_PNP REGISTRY_ERROR","" -"E0434352","-532462766","3762504530","EXCEPTION_COMPLUS","Unhandled Exception" -"E0434F4D","-532459699","3762507597","","Unhandled exception in .NET application." -"E6000000","3858759680","-436207616","","Required hardware is not present. " -"FFFFF8F0","-1808","4294965488","JET_errDiskFull","" -"FFFFFB40","-1216","4294966080","JET_errAttachedDatabaseMismatch","" -"FFFFFB4A","-1206","4294966090","JET_errDatabaseCorrupted","" -"FFFFFBBE","-1090","4294966206","JET_errInstanceUnavailable","" -"FFFFFBF8","-1032","4294966264","JET_errFileAccessDenied","" -"FFFFFC01","-1023","4294966273","NULL","" -"FFFFFC02","-1022","4294966274","JET_errDiskIO","" -"FFFFFC06","-1018","4294966278","JET_errReadVerifyFailure","" -"FFFFFC0D","-1011","4294966285","JET_errOutOfMemory","" -"FFFFFDC9","-567","4294966729","JET_errDbTimeTooNew","" -"FFFFFDDA","-550","4294966746","JET_errDatabaseInconsistent","" -"FFFFFDEC","-532","4294966764","NULL","" -"FFFFFDFD","-515","4294966781","JET_errInvalidLogSequence","" -"FFFFFE02","-510","4294966786","JET_errLogWriteFail","" -"FFFFFE0B","-501","4294966795","JET_errLogFileCorrupt","" -"FFFFFF99","-103","4294967193","JET_errOutOfThreads","" -"FFFFFFFF","-1","4294967295","Cancel","" +"Hex","Dec","InvDec","Symbol","Description" +"00000000","0","-4294967296","ERROR_SUCCESS","The operation completed successfully." +"00000001","1","-4294967295","ERROR_INVALID_FUNCTION","Incorrect function." +"00000002","2","-4294967294","ERROR_FILE_NOT_FOUND","The system cannot find the file specified." +"00000003","3","-4294967293","ERROR_PATH_NOT_FOUND","The system cannot find the path specified." +"00000004","4","-4294967292","ERROR_TOO_MANY_OPEN_FILES","The system cannot open the file." +"00000005","5","-4294967291","ERROR_ACCESS_DENIED","Access is denied." +"00000006","6","-4294967290","ERROR_INVALID_HANDLE","The handle is invalid." +"00000007","7","-4294967289","ERROR_ARENA_TRASHED","The storage control blocks were destroyed." +"00000008","8","-4294967288","ERROR_NOT_ENOUGH_MEMORY","Not enough memory resources are available to process this command." +"00000009","9","-4294967287","ERROR_INVALID_BLOCK","The storage control block address is invalid." +"0000000A","10","-4294967286","ERROR_BAD_ENVIRONMENT","The environment is incorrect." +"0000000B","11","-4294967285","ERROR_BAD_FORMAT","An attempt was made to load a program with an incorrect format." +"0000000C","12","-4294967284","ERROR_INVALID_ACCESS","The access code is invalid." +"0000000D","13","-4294967283","ERROR_INVALID_DATA","The data is invalid." +"0000000E","14","-4294967282","ERROR_OUTOFMEMORY","Not enough storage is available to complete this operation." +"0000000F","15","-4294967281","ERROR_INVALID_DRIVE","The system cannot find the drive specified." +"00000010","16","-4294967280","ERROR_CURRENT_DIRECTORY","The directory cannot be removed." +"00000011","17","-4294967279","ERROR_NOT_SAME_DEVICE","The system cannot move the file to a different disk drive." +"00000012","18","-4294967278","ERROR_NO_MORE_FILES","There are no more files." +"00000013","19","-4294967277","ERROR_WRITE_PROTECT","The media is write protected." +"00000014","20","-4294967276","ERROR_BAD_UNIT","The system cannot find the device specified." +"00000015","21","-4294967275","ERROR_NOT_READY","The device is not ready." +"00000016","22","-4294967274","ERROR_BAD_COMMAND","The device does not recognize the command." +"00000017","23","-4294967273","ERROR_CRC","Data error (cyclic redundancy check)." +"00000018","24","-4294967272","ERROR_BAD_LENGTH","The program issued a command but the command length is incorrect." +"00000019","25","-4294967271","ERROR_SEEK","The drive cannot locate a specific area or track on the disk." +"0000001A","26","-4294967270","ERROR_NOT_DOS_DISK","The specified disk or diskette cannot be accessed." +"0000001B","27","-4294967269","ERROR_SECTOR_NOT_FOUND","The drive cannot find the sector requested." +"0000001C","28","-4294967268","ERROR_OUT_OF_PAPER","The printer is out of paper." +"0000001D","29","-4294967267","ERROR_WRITE_FAULT","The system cannot write to the specified device." +"0000001E","30","-4294967266","ERROR_READ_FAULT","The system cannot read from the specified device." +"0000001F","31","-4294967265","ERROR_GEN_FAILURE","A device attached to the system is not functioning." +"00000020","32","-4294967264","ERROR_SHARING_VIOLATION","The process cannot access the file because it is being used by another process." +"00000021","33","-4294967263","ERROR_LOCK_VIOLATION","The process cannot access the file because another process has locked a portion of the file." +"00000022","34","-4294967262","ERROR_WRONG_DISK","The wrong diskette is in the drive. Insert %2 (Volume Serial Number: %3) into drive %1." +"00000024","36","-4294967260","ERROR_SHARING_BUFFER_EXCEEDED","Too many files opened for sharing." +"00000026","38","-4294967258","ERROR_HANDLE_EOF","Reached the end of the file." +"00000027","39","-4294967257","ERROR_HANDLE_DISK_FULL","The disk is full." +"00000032","50","-4294967246","ERROR_NOT_SUPPORTED","The request is not supported." +"00000033","51","-4294967245","ERROR_REM_NOT_LIST","Windows cannot find the network path." +"00000034","52","-4294967244","ERROR_DUP_NAME","A duplicate name exists on the network." +"00000035","53","-4294967243","ERROR_BAD_NETPATH","The network path was not found." +"00000036","54","-4294967242","ERROR_NETWORK_BUSY","The network is busy." +"00000037","55","-4294967241","ERROR_DEV_NOT_EXIST","The specified network resource or device is no longer available." +"00000038","56","-4294967240","ERROR_TOO_MANY_CMDS","The network BIOS command limit has been reached." +"00000039","57","-4294967239","ERROR_ADAP_HDW_ERR","A network adapter hardware error occurred." +"0000003A","58","-4294967238","ERROR_BAD_NET_RESP","The specified server cannot perform the requested operation." +"0000003B","59","-4294967237","ERROR_UNEXP_NET_ERR","An unexpected network error occurred." +"0000003C","60","-4294967236","ERROR_BAD_REM_ADAP","The remote adapter is not compatible." +"0000003D","61","-4294967235","ERROR_PRINTQ_FULL","The printer queue is full." +"0000003E","62","-4294967234","ERROR_NO_SPOOL_SPACE","Space to store the file waiting to be printed is not available on the server." +"0000003F","63","-4294967233","ERROR_PRINT_CANCELLED","Your file waiting to be printed was deleted." +"00000040","64","-4294967232","ERROR_NETNAME_DELETED","The specified network name is no longer available." +"00000041","65","-4294967231","ERROR_NETWORK_ACCESS_DENIED","Network access is denied." +"00000042","66","-4294967230","ERROR_BAD_DEV_TYPE","The network resource type is not correct." +"00000043","67","-4294967229","ERROR_BAD_NET_NAME","The network name cannot be found." +"00000044","68","-4294967228","ERROR_TOO_MANY_NAMES","The name limit for the local computer network adapter card was exceeded." +"00000045","69","-4294967227","ERROR_TOO_MANY_SESS","The network BIOS session limit was exceeded." +"00000046","70","-4294967226","ERROR_SHARING_PAUSED","The remote server has been paused or is in the process of being started." +"00000047","71","-4294967225","ERROR_REQ_NOT_ACCEP","No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept." +"00000048","72","-4294967224","ERROR_REDIR_PAUSED","The specified printer or disk device has been paused." +"00000050","80","-4294967216","ERROR_FILE_EXISTS","The file exists." +"00000052","82","-4294967214","ERROR_CANNOT_MAKE","The directory or file cannot be created." +"00000053","83","-4294967213","ERROR_FAIL_I24","Fail on INT 24." +"00000054","84","-4294967212","ERROR_OUT_OF_STRUCTURES","Storage to process this request is not available." +"00000055","85","-4294967211","ERROR_ALREADY_ASSIGNED","The local device name is already in use." +"00000056","86","-4294967210","ERROR_INVALID_PASSWORD","The specified network password is not correct." +"00000057","87","-4294967209","ERROR_INVALID_PARAMETER","The parameter is incorrect." +"00000058","88","-4294967208","ERROR_NET_WRITE_FAULT","A write fault occurred on the network." +"00000059","89","-4294967207","ERROR_NO_PROC_SLOTS","The system cannot start another process at this time." +"00000064","100","-4294967196","ERROR_TOO_MANY_SEMAPHORES","Cannot create another system semaphore." +"00000065","101","-4294967195","ERROR_EXCL_SEM_ALREADY_OWNED","The exclusive semaphore is owned by another process." +"00000066","102","-4294967194","ERROR_SEM_IS_SET","The semaphore is set and cannot be closed." +"00000067","103","-4294967193","ERROR_TOO_MANY_SEM_REQUESTS","The semaphore cannot be set again." +"00000068","104","-4294967192","ERROR_INVALID_AT_INTERRUPT_TIME","Cannot request exclusive semaphores at interrupt time." +"00000069","105","-4294967191","ERROR_SEM_OWNER_DIED","The previous ownership of this semaphore has ended." +"0000006A","106","-4294967190","ERROR_SEM_USER_LIMIT","Insert the diskette for drive %1." +"0000006B","107","-4294967189","ERROR_DISK_CHANGE","The program stopped because an alternate diskette was not inserted." +"0000006C","108","-4294967188","ERROR_DRIVE_LOCKED","The disk is in use or locked by another process." +"0000006D","109","-4294967187","ERROR_BROKEN_PIPE","The pipe has been ended." +"0000006E","110","-4294967186","ERROR_OPEN_FAILED","The system cannot open the device or file specified." +"0000006F","111","-4294967185","ERROR_BUFFER_OVERFLOW","The file name is too long." +"00000070","112","-4294967184","ERROR_DISK_FULL","There is not enough space on the disk." +"00000071","113","-4294967183","ERROR_NO_MORE_SEARCH_HANDLES","No more internal file identifiers available." +"00000072","114","-4294967182","ERROR_INVALID_TARGET_HANDLE","The target internal file identifier is incorrect." +"00000075","117","-4294967179","ERROR_INVALID_CATEGORY","The IOCTL call made by the application program is not correct." +"00000076","118","-4294967178","ERROR_INVALID_VERIFY_SWITCH","The verify-on-write switch parameter value is not correct." +"00000077","119","-4294967177","ERROR_BAD_DRIVER_LEVEL","The system does not support the command requested." +"00000078","120","-4294967176","ERROR_CALL_NOT_IMPLEMENTED","This function is not supported on this system." +"00000079","121","-4294967175","ERROR_SEM_TIMEOUT","The semaphore timeout period has expired." +"0000007A","122","-4294967174","ERROR_INSUFFICIENT_BUFFER","The data area passed to a system call is too small." +"0000007B","123","-4294967173","ERROR_INVALID_NAME","The filename - directory name - or volume label syntax is incorrect." +"0000007C","124","-4294967172","ERROR_INVALID_LEVEL","The system call level is not correct." +"0000007D","125","-4294967171","ERROR_NO_VOLUME_LABEL","The disk has no volume label." +"0000007E","126","-4294967170","ERROR_MOD_NOT_FOUND","The specified module could not be found." +"0000007F","127","-4294967169","ERROR_PROC_NOT_FOUND","The specified procedure could not be found." +"00000080","128","-4294967168","ERROR_WAIT_NO_CHILDREN","There are no child processes to wait for." +"00000081","129","-4294967167","ERROR_CHILD_NOT_COMPLETE","The %1 application cannot be run in Win32 (Windows NT) mode." +"00000082","130","-4294967166","ERROR_DIRECT_ACCESS_HANDLE","Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O." +"00000083","131","-4294967165","ERROR_NEGATIVE_SEEK","An attempt was made to move the file pointer before the beginning of the file." +"00000084","132","-4294967164","ERROR_SEEK_ON_DEVICE","The file pointer cannot be set on the specified device or file." +"00000085","133","-4294967163","","A JOIN or SUBST command cannot be used for a drive that contains previously joined drives." +"00000086","134","-4294967162","ERROR_IS_JOINED","An attempt was made to use a JOIN or SUBST command on a drive that has already been joined." +"00000087","135","-4294967161","ERROR_IS_SUBSTED","An attempt was made to use a JOIN or SUBST command on a drive that has already been substituted." +"00000088","136","-4294967160","ERROR_NOT_JOINED","The system tried to delete the JOIN of a drive that is not joined." +"00000089","137","-4294967159","ERROR_NOT_SUBSTED","The system tried to delete the substitution of a drive that is not substituted." +"0000008A","138","-4294967158","ERROR_JOIN_TO_JOIN","The system tried to join a drive to a directory on a joined drive." +"0000008B","139","-4294967157","ERROR_SUBST_TO_SUBST","The system tried to substitute a drive to a directory on a substituted drive." +"0000008C","140","-4294967156","ERROR_JOIN_TO_SUBST","The system tried to join a drive to a directory on a substituted drive." +"0000008D","141","-4294967155","ERROR_SUBST_TO_JOIN","The system tried to SUBST a drive to a directory on a joined drive." +"0000008E","142","-4294967154","","The system cannot perform a JOIN or SUBST at this time." +"0000008F","143","-4294967153","ERROR_SAME_DRIVE","The system cannot join or substitute a drive to or for a directory on the same drive." +"00000090","144","-4294967152","ERROR_DIR_NOT_ROOT","The directory is not a subdirectory of the root directory." +"00000091","145","-4294967151","ERROR_DIR_NOT_EMPTY","The directory is not empty." +"00000092","146","-4294967150","ERROR_IS_SUBST_PATH","The path specified is being used in a substitute." +"00000093","147","-4294967149","ERROR_IS_JOIN_PATH","Not enough resources are available to process this command." +"00000094","148","-4294967148","ERROR_PATH_BUSY","The path specified cannot be used at this time." +"00000095","149","-4294967147","ERROR_IS_SUBST_TARGET","An attempt was made to join or substitute a drive for which a directory on the drive is the target of a previous substitute." +"00000096","150","-4294967146","ERROR_SYSTEM_TRACE","System trace information was not specified in your CONFIG.SYS file - or tracing is disallowed." +"00000097","151","-4294967145","ERROR_INVALID_EVENT_COUNT","The number of specified semaphore events for DosMuxSemWait is not correct." +"00000098","152","-4294967144","ERROR_TOO_MANY_MUXWAITERS","DosMuxSemWait did not execute; too many semaphores are already set." +"00000099","153","-4294967143","ERROR_INVALID_LIST_FORMAT","The DosMuxSemWait list is not correct." +"0000009A","154","-4294967142","ERROR_LABEL_TOO_LONG","The volume label you entered exceeds the label character limit of the target file system." +"0000009B","155","-4294967141","ERROR_TOO_MANY_TCBS","Cannot create another thread." +"0000009C","156","-4294967140","ERROR_SIGNAL_REFUSED","The recipient process has refused the signal." +"0000009D","157","-4294967139","ERROR_DISCARDED","The segment is already discarded and cannot be locked." +"0000009E","158","-4294967138","ERROR_NOT_LOCKED","The segment is already unlocked." +"0000009F","159","-4294967137","ERROR_BAD_THREADID_ADDR","The address for the thread ID is not correct." +"000000A0","160","-4294967136","ERROR_BAD_ARGUMENTS","One or more arguments are not correct." +"000000A1","161","-4294967135","ERROR_BAD_PATHNAME","The specified path is invalid." +"000000A2","162","-4294967134","ERROR_SIGNAL_PENDING","A signal is already pending." +"000000A4","164","-4294967132","ERROR_MAX_THRDS_REACHED","No more threads can be created in the system." +"000000A7","167","-4294967129","ERROR_LOCK_FAILED","Unable to lock a region of a file." +"000000AA","170","-4294967126","ERROR_BUSY","The requested resource is in use." +"000000AB","171","-4294967125","ERROR_DEVICE_SUPPORT_IN_PROGRESS","Device's command support detection is in progress." +"000000AD","173","-4294967123","ERROR_CANCEL_VIOLATION","A lock request was not outstanding for the supplied cancel region." +"000000AE","174","-4294967122","ERROR_ATOMIC_LOCKS_NOT_SUPPORTED","The file system does not support atomic changes to the lock type." +"000000B4","180","-4294967116","ERROR_INVALID_SEGMENT_NUMBER","The system detected a segment number that was not correct." +"000000B6","182","-4294967114","ERROR_INVALID_ORDINAL","The operating system cannot run %1." +"000000B7","183","-4294967113","ERROR_ALREADY_EXISTS","Cannot create a file when that file already exists." +"000000BA","186","-4294967110","ERROR_INVALID_FLAG_NUMBER","The flag passed is not correct." +"000000BB","187","-4294967109","ERROR_SEM_NOT_FOUND","The specified system semaphore name was not found." +"000000BC","188","-4294967108","ERROR_INVALID_STARTING_CODESEG","The operating system cannot run %1." +"000000BD","189","-4294967107","ERROR_INVALID_STACKSEG","The operating system cannot run %1." +"000000BE","190","-4294967106","ERROR_INVALID_MODULETYPE","The operating system cannot run %1." +"000000BF","191","-4294967105","ERROR_INVALID_EXE_SIGNATURE","Cannot run %1 in Win32 mode." +"000000C0","192","-4294967104","ERROR_EXE_MARKED_INVALID","The operating system cannot run %1." +"000000C1","193","-4294967103","ERROR_BAD_EXE_FORMAT","%1 is not a valid Win32 application." +"000000C2","194","-4294967102","ERROR_ITERATED_DATA_EXCEEDS_64k","The operating system cannot run %1." +"000000C3","195","-4294967101","ERROR_INVALID_MINALLOCSIZE","The operating system cannot run %1." +"000000C4","196","-4294967100","ERROR_DYNLINK_FROM_INVALID_RING","The operating system cannot run this application program." +"000000C5","197","-4294967099","ERROR_IOPL_NOT_ENABLED","The operating system is not presently configured to run this application." +"000000C6","198","-4294967098","ERROR_INVALID_SEGDPL","The operating system cannot run %1." +"000000C7","199","-4294967097","ERROR_AUTODATASEG_EXCEEDS_64k","The operating system cannot run this application program." +"000000C8","200","-4294967096","ERROR_RING2SEG_MUST_BE_MOVABLE","The code segment cannot be greater than or equal to 64K." +"000000C9","201","-4294967095","ERROR_RELOC_CHAIN_XEEDS_SEGLIM","The operating system cannot run %1." +"000000CA","202","-4294967094","ERROR_INFLOOP_IN_RELOC_CHAIN","The operating system cannot run %1." +"000000CB","203","-4294967093","ERROR_ENVVAR_NOT_FOUND","The system could not find the environment option that was entered." +"000000CD","205","-4294967091","ERROR_NO_SIGNAL_SENT","No process in the command subtree has a signal handler." +"000000CE","206","-4294967090","ERROR_FILENAME_EXCED_RANGE","The filename or extension is too long." +"000000CF","207","-4294967089","ERROR_RING2_STACK_IN_USE","The ring 2 stack is in use." +"000000D0","208","-4294967088","ERROR_META_EXPANSION_TOO_LONG","The global filename characters - * or ? - are entered incorrectly or too many global filename characters are specified." +"000000D1","209","-4294967087","ERROR_INVALID_SIGNAL_NUMBER","The signal being posted is not correct." +"000000D2","210","-4294967086","ERROR_THREAD_1_INACTIVE","The signal handler cannot be set." +"000000D4","212","-4294967084","ERROR_LOCKED","The segment is locked and cannot be reallocated." +"000000D6","214","-4294967082","ERROR_TOO_MANY_MODULES","Too many dynamic-link modules are attached to this program or dynamic-link module." +"000000D7","215","-4294967081","ERROR_NESTING_NOT_ALLOWED","Can't nest calls to LoadModule." +"000000D8","216","-4294967080","ERROR_EXE_MACHINE_TYPE_MISMATCH","This version of %1 is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher." +"000000D9","217","-4294967079","ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY","The image file %1 is signed - unable to modify." +"000000DA","218","-4294967078","ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY","The image file %1 is strong signed - unable to modify." +"000000DC","220","-4294967076","ERROR_FILE_CHECKED_OUT","This file is checked out or locked for editing by another user." +"000000DD","221","-4294967075","ERROR_CHECKOUT_REQUIRED","The file must be checked out before saving changes." +"000000DE","222","-4294967074","ERROR_BAD_FILE_TYPE","The file type being saved or retrieved has been blocked." +"000000DF","223","-4294967073","ERROR_FILE_TOO_LARGE","The file size exceeds the limit allowed and cannot be saved." +"000000E0","224","-4294967072","ERROR_FORMS_AUTH_REQUIRED","Access Denied. Before opening files in this location - you must first add the web site to your trusted sites list - browse to the web site - and select the option to login automatically." +"000000E1","225","-4294967071","ERROR_VIRUS_INFECTED","Operation did not complete successfully because the file contains a virus or potentially unwanted software." +"000000E2","226","-4294967070","ERROR_VIRUS_DELETED","This file contains a virus or potentially unwanted software and cannot be opened. Due to the nature of this virus or potentially unwanted software - the file has been removed from this location." +"000000E5","229","-4294967067","ERROR_PIPE_LOCAL","The pipe is local." +"000000E6","230","-4294967066","ERROR_BAD_PIPE","The pipe state is invalid." +"000000E7","231","-4294967065","ERROR_PIPE_BUSY","All pipe instances are busy." +"000000E8","232","-4294967064","ERROR_NO_DATA","The pipe is being closed." +"000000E9","233","-4294967063","ERROR_PIPE_NOT_CONNECTED","No process is on the other end of the pipe." +"000000EA","234","-4294967062","ERROR_MORE_DATA","More data is available." +"000000F0","240","-4294967056","ERROR_VC_DISCONNECTED","The session was canceled." +"000000FE","254","-4294967042","ERROR_INVALID_EA_NAME","The specified extended attribute name was invalid." +"000000FF","255","-4294967041","ERROR_EA_LIST_INCONSISTENT","The extended attributes are inconsistent." +"00000102","258","-4294967038","WAIT_TIMEOUT","The wait operation timed out." +"00000103","259","-4294967037","ERROR_NO_MORE_ITEMS","No more data is available." +"0000010A","266","-4294967030","ERROR_CANNOT_COPY","The copy functions cannot be used." +"0000010B","267","-4294967029","ERROR_DIRECTORY","The directory name is invalid." +"00000113","275","-4294967021","ERROR_EAS_DIDNT_FIT","The extended attributes did not fit in the buffer." +"00000114","276","-4294967020","ERROR_EA_FILE_CORRUPT","The extended attribute file on the mounted file system is corrupt." +"00000115","277","-4294967019","ERROR_EA_TABLE_FULL","The extended attribute table file is full." +"00000116","278","-4294967018","ERROR_INVALID_EA_HANDLE","The specified extended attribute handle is invalid." +"0000011A","282","-4294967014","ERROR_EAS_NOT_SUPPORTED","The mounted file system does not support extended attributes." +"00000120","288","-4294967008","ERROR_NOT_OWNER","Attempt to release mutex not owned by caller." +"0000012A","298","-4294966998","ERROR_TOO_MANY_POSTS","Too many posts were made to a semaphore." +"0000012B","299","-4294966997","ERROR_PARTIAL_COPY","Only part of a ReadProcessMemory or WriteProcessMemory request was completed." +"0000012C","300","-4294966996","ERROR_OPLOCK_NOT_GRANTED","The oplock request is denied." +"0000012D","301","-4294966995","ERROR_INVALID_OPLOCK_PROTOCOL","An invalid oplock acknowledgment was received by the system." +"0000012E","302","-4294966994","ERROR_DISK_TOO_FRAGMENTED","The volume is too fragmented to complete this operation." +"0000012F","303","-4294966993","ERROR_DELETE_PENDING","The file cannot be opened because it is in the process of being deleted." +"00000130","304","-4294966992","ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING","Short name settings may not be changed on this volume due to the global registry setting." +"00000131","305","-4294966991","ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME","Short names are not enabled on this volume." +"00000132","306","-4294966990","ERROR_SECURITY_STREAM_IS_INCONSISTENT","The security stream for the given volume is in an inconsistent state. Please run CHKDSK on the volume." +"00000133","307","-4294966989","ERROR_INVALID_LOCK_RANGE","A requested file lock operation cannot be processed due to an invalid byte range." +"00000134","308","-4294966988","ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT","The subsystem needed to support the image type is not present." +"00000135","309","-4294966987","ERROR_NOTIFICATION_GUID_ALREADY_DEFINED","The specified file already has a notification GUID associated with it." +"00000136","310","-4294966986","ERROR_INVALID_EXCEPTION_HANDLER","An invalid exception handler routine has been detected." +"00000137","311","-4294966985","ERROR_DUPLICATE_PRIVILEGES","Duplicate privileges were specified for the token." +"00000138","312","-4294966984","ERROR_NO_RANGES_PROCESSED","No ranges for the specified operation were able to be processed." +"00000139","313","-4294966983","ERROR_NOT_ALLOWED_ON_SYSTEM_FILE","Operation is not allowed on a file system internal file." +"0000013A","314","-4294966982","ERROR_DISK_RESOURCES_EXHAUSTED","The physical resources of this disk have been exhausted." +"0000013B","315","-4294966981","ERROR_INVALID_TOKEN","The token representing the data is invalid." +"0000013C","316","-4294966980","ERROR_DEVICE_FEATURE_NOT_SUPPORTED","The device does not support the command feature." +"0000013D","317","-4294966979","ERROR_MR_MID_NOT_FOUND","The system cannot find message text for message number 00000%1 in the message file for %2." +"0000013E","318","-4294966978","ERROR_SCOPE_NOT_FOUND","The scope specified was not found." +"0000013F","319","-4294966977","ERROR_UNDEFINED_SCOPE","The Central Access Policy specified is not defined on the target machine." +"00000140","320","-4294966976","ERROR_INVALID_CAP","The Central Access Policy obtained from Active Directory is invalid." +"00000141","321","-4294966975","ERROR_DEVICE_UNREACHABLE","The device is unreachable." +"00000142","322","-4294966974","ERROR_DEVICE_NO_RESOURCES","The target device has insufficient resources to complete the operation." +"00000143","323","-4294966973","ERROR_DATA_CHECKSUM_ERROR","A data integrity checksum error occurred. Data in the file stream is corrupt." +"00000144","324","-4294966972","ERROR_INTERMIXED_KERNEL_EA_OPERATION","An attempt was made to modify both a KERNEL and normal Extended Attribute." +"00000146","326","-4294966970","ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED","Device does not support file-level TRIM." +"00000147","327","-4294966969","ERROR_OFFSET_ALIGNMENT_VIOLATION","The command specified a data offset that does not align to the device's granularity/alignment." +"00000148","328","-4294966968","ERROR_INVALID_FIELD_IN_PARAMETER_LIST","The command specified an invalid field in its parameter list." +"00000149","329","-4294966967","ERROR_OPERATION_IN_PROGRESS","An operation is currently in progress with the device." +"0000014A","330","-4294966966","ERROR_BAD_DEVICE_PATH","An attempt was made to send down the command via an invalid path to the target device." +"0000014B","331","-4294966965","ERROR_TOO_MANY_DESCRIPTORS","The command specified a number of descriptors that exceeded the maximum supported by the device." +"0000014C","332","-4294966964","ERROR_SCRUB_DATA_DISABLED","Scrub is disabled on the specified file." +"0000014D","333","-4294966963","ERROR_NOT_REDUNDANT_STORAGE","The storage device does not provide redundancy." +"0000014E","334","-4294966962","ERROR_RESIDENT_FILE_NOT_SUPPORTED","An operation is not supported on a resident file." +"0000014F","335","-4294966961","ERROR_COMPRESSED_FILE_NOT_SUPPORTED","An operation is not supported on a compressed file." +"00000150","336","-4294966960","ERROR_DIRECTORY_NOT_SUPPORTED","An operation is not supported on a directory." +"00000151","337","-4294966959","ERROR_NOT_READ_FROM_COPY","The specified copy of the requested data could not be read." +"0000015E","350","-4294966946","ERROR_FAIL_NOACTION_REBOOT","No action was taken as a system reboot is required." +"0000015F","351","-4294966945","ERROR_FAIL_SHUTDOWN","The shutdown operation failed." +"00000160","352","-4294966944","ERROR_FAIL_RESTART","The restart operation failed." +"00000161","353","-4294966943","ERROR_MAX_SESSIONS_REACHED","The maximum number of sessions has been reached." +"00000190","400","-4294966896","ERROR_THREAD_MODE_ALREADY_BACKGROUND","The thread is already in background processing mode." +"00000191","401","-4294966895","ERROR_THREAD_MODE_NOT_BACKGROUND","The thread is not in background processing mode." +"00000192","402","-4294966894","ERROR_PROCESS_MODE_ALREADY_BACKGROUND","The process is already in background processing mode." +"00000193","403","-4294966893","ERROR_PROCESS_MODE_NOT_BACKGROUND","The process is not in background processing mode." +"000001E7","487","-4294966809","ERROR_INVALID_ADDRESS","Attempt to access invalid address." +"000001F4","500","-4294966796","ERROR_USER_PROFILE_LOAD","User profile cannot be loaded." +"00000216","534","-4294966762","ERROR_ARITHMETIC_OVERFLOW","Arithmetic result exceeded 32 bits." +"00000217","535","-4294966761","ERROR_PIPE_CONNECTED","There is a process on other end of the pipe." +"00000218","536","-4294966760","ERROR_PIPE_LISTENING","Waiting for a process to open the other end of the pipe." +"00000219","537","-4294966759","ERROR_VERIFIER_STOP","Application verifier has found an error in the current process." +"0000021A","538","-4294966758","ERROR_ABIOS_ERROR","An error occurred in the ABIOS subsystem." +"0000021B","539","-4294966757","ERROR_WX86_WARNING","A warning occurred in the WX86 subsystem." +"0000021C","540","-4294966756","ERROR_WX86_ERROR","An error occurred in the WX86 subsystem." +"0000021D","541","-4294966755","ERROR_TIMER_NOT_CANCELED","An attempt was made to cancel or set a timer that has an associated APC and the subject thread is not the thread that originally set the timer with an associated APC routine." +"0000021E","542","-4294966754","ERROR_UNWIND","Unwind exception code." +"0000021F","543","-4294966753","ERROR_BAD_STACK","An invalid or unaligned stack was encountered during an unwind operation." +"00000220","544","-4294966752","ERROR_INVALID_UNWIND_TARGET","An invalid unwind target was encountered during an unwind operation." +"00000221","545","-4294966751","ERROR_INVALID_PORT_ATTRIBUTES","Invalid Object Attributes specified to NtCreatePort or invalid Port Attributes specified to NtConnectPort." +"00000223","547","-4294966749","ERROR_INVALID_QUOTA_LOWER","An attempt was made to lower a quota limit below the current usage." +"00000224","548","-4294966748","ERROR_DEVICE_ALREADY_ATTACHED","An attempt was made to attach to a device that was already attached to another device." +"00000225","549","-4294966747","ERROR_INSTRUCTION_MISALIGNMENT","An attempt was made to execute an instruction at an unaligned address and the host system does not support unaligned instruction references." +"00000226","550","-4294966746","ERROR_PROFILING_NOT_STARTED","Profiling not started." +"00000227","551","-4294966745","ERROR_PROFILING_NOT_STOPPED","Profiling not stopped." +"00000228","552","-4294966744","ERROR_COULD_NOT_INTERPRET","The passed ACL did not contain the minimum required information." +"00000229","553","-4294966743","ERROR_PROFILING_AT_LIMIT","The number of active profiling objects is at the maximum and no more may be started." +"0000022A","554","-4294966742","ERROR_CANT_WAIT","Used to indicate that an operation cannot continue without blocking for I/O." +"0000022B","555","-4294966741","ERROR_CANT_TERMINATE_SELF","Indicates that a thread attempted to terminate itself by default." +"0000022C","556","-4294966740","ERROR_UNEXPECTED_MM_CREATE_ERR","If an MM error is returned which is not defined in the standard FsRtl filter - it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost - however - the filter correctly handles the exception." +"0000022D","557","-4294966739","ERROR_UNEXPECTED_MM_MAP_ERROR","If an MM error is returned which is not defined in the standard FsRtl filter - it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost - however - the filter correctly handles the exception." +"0000022E","558","-4294966738","ERROR_UNEXPECTED_MM_EXTEND_ERR","If an MM error is returned which is not defined in the standard FsRtl filter - it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost - however - the filter correctly handles the exception." +"0000022F","559","-4294966737","ERROR_BAD_FUNCTION_TABLE","A malformed function table was encountered during an unwind operation." +"00000230","560","-4294966736","ERROR_NO_GUID_TRANSLATION","Indicates that an attempt was made to assign protection to a file system file or directory and one of the SIDs in the security descriptor could not be translated into a GUID that could be stored by the file system. This causes the protection attempt to fail - which may cause a file creation attempt to fail." +"00000231","561","-4294966735","ERROR_INVALID_LDT_SIZE","Indicates that an attempt was made to grow an LDT by setting its size - or that the size was not an even number of selectors." +"00000233","563","-4294966733","ERROR_INVALID_LDT_OFFSET","Indicates that the starting value for the LDT information was not an integral multiple of the selector size." +"00000234","564","-4294966732","ERROR_INVALID_LDT_DESCRIPTOR","Indicates that the user supplied an invalid descriptor when trying to set up Ldt descriptors." +"00000235","565","-4294966731","ERROR_TOO_MANY_THREADS","Indicates a process has too many threads to perform the requested action. For example - assignment of a primary token may only be performed when a process has zero or one threads." +"00000236","566","-4294966730","ERROR_THREAD_NOT_IN_PROCESS","An attempt was made to operate on a thread within a specific process - but the thread specified is not in the process specified." +"00000237","567","-4294966729","ERROR_PAGEFILE_QUOTA_EXCEEDED","Page file quota was exceeded." +"00000238","568","-4294966728","ERROR_LOGON_SERVER_CONFLICT","The Netlogon service cannot start because another Netlogon service running in the domain conflicts with the specified role." +"00000239","569","-4294966727","ERROR_SYNCHRONIZATION_REQUIRED","The SAM database on a Windows Server is signifiCan'tly out of synchronization with the copy on the Domain Controller. A complete synchronization is required." +"0000023A","570","-4294966726","ERROR_NET_OPEN_FAILED","The NtCreateFile API failed. This error should never be returned to an application - it is a place holder for the Windows Lan Manager Redirector to use in its internal error mapping routines." +"0000023B","571","-4294966725","ERROR_IO_PRIVILEGE_FAILED","{Privilege Failed} The I/O permissions for the process could not be changed." +"0000023C","572","-4294966724","ERROR_CONTROL_C_EXIT","{Application Exit by CTRL+C} The application terminated as a result of a CTRL+C." +"0000023D","573","-4294966723","ERROR_MISSING_SYSTEMFILE","{Missing System File} The required system file %hs is bad or missing." +"0000023E","574","-4294966722","ERROR_UNHANDLED_EXCEPTION","{Application Error} The exception %s." +"0000023F","575","-4294966721","ERROR_APP_INIT_FAILURE","{Application Error} The application was unable to start correctly." +"00000240","576","-4294966720","ERROR_PAGEFILE_CREATE_FAILED","{Unable to Create Paging File} The creation of the paging file %hs failed." +"00000241","577","-4294966719","ERROR_INVALID_IMAGE_HASH","Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged - or that might be malicious software from an unknown source." +"00000242","578","-4294966718","ERROR_NO_PAGEFILE","{No Paging File Specified} No paging file was specified in the system configuration." +"00000243","579","-4294966717","ERROR_ILLEGAL_FLOAT_CONTEXT","{EXCEPTION} A real-mode application issued a floating-point instruction and floating-point hardware is not present." +"00000244","580","-4294966716","ERROR_NO_EVENT_PAIR","An event pair synchronization operation was performed using the thread specific client/server event pair object - but no event pair object was associated with the thread." +"00000245","581","-4294966715","ERROR_DOMAIN_CTRLR_CONFIG_ERROR","A Windows Server has an incorrect configuration." +"00000246","582","-4294966714","ERROR_ILLEGAL_CHARACTER","An illegal character was encountered. For a multi-byte character set this includes a lead byte without a succeeding trail byte. For the Unicode character set this includes the characters 00000FFFF and 00000FFFE." +"00000247","583","-4294966713","ERROR_UNDEFINED_CHARACTER","The Unicode character is not defined in the Unicode character set installed on the system." +"00000248","584","-4294966712","ERROR_FLOPPY_VOLUME","The paging file cannot be created on a floppy diskette." +"00000249","585","-4294966711","ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT","The system BIOS failed to connect a system interrupt to the device or bus for which the device is connected." +"0000024A","586","-4294966710","ERROR_BACKUP_CONTROLLER","This operation is only allowed for the Primary Domain Controller of the domain." +"0000024B","587","-4294966709","ERROR_MUTANT_LIMIT_EXCEEDED","An attempt was made to acquire a mutant such that its maximum count would have been exceeded." +"0000024C","588","-4294966708","ERROR_FS_DRIVER_REQUIRED","A volume has been accessed for which a file system driver is required that has not yet been loaded." +"0000024D","589","-4294966707","ERROR_CANNOT_LOAD_REGISTRY_FILE","{Registry File Failure} The registry cannot load the hive." +"0000024E","590","-4294966706","ERROR_DEBUG_ATTACH_FAILED","{Unexpected Failure in DebugActiveProcess} An unexpected failure occurred while processing a DebugActiveProcess API request. You may choose OK to terminate the process - or Cancel to ignore the error." +"0000024F","591","-4294966705","ERROR_SYSTEM_PROCESS_TERMINATED","{Fatal System Error} The %hs system process terminated unexpectedly with a status of 00000%08x." +"00000250","592","-4294966704","ERROR_DATA_NOT_ACCEPTED","{Data Not Accepted} The TDI client could not handle the data received during an indication." +"00000251","593","-4294966703","ERROR_VDM_HARD_ERROR","NTVDM encountered a hard error." +"00000252","594","-4294966702","ERROR_DRIVER_CANCEL_TIMEOUT","{Cancel Timeout} The driver %hs failed to complete a cancelled I/O request in the allotted time." +"00000253","595","-4294966701","ERROR_REPLY_MESSAGE_MISMATCH","{Reply Message Mismatch} An attempt was made to reply to an LPC message - but the thread specified by the client ID in the message was not waiting on that message." +"00000254","596","-4294966700","ERROR_LOST_WRITEBEHIND_DATA","{Delayed Write Failed} Windows was unable to save all the data for the file %hs. The data has been lost. This error may be caused by a failure of your computer hardware or network connection. Please try to save this file elsewhere." +"00000255","597","-4294966699","ERROR_CLIENT_SERVER_PARAMETERS_INVALID","The parameter(s) passed to the server in the client/server shared memory window were invalid. Too much data may have been put in the shared memory window." +"00000256","598","-4294966698","ERROR_NOT_TINY_STREAM","The stream is not a tiny stream." +"00000257","599","-4294966697","ERROR_STACK_OVERFLOW_READ","The request must be handled by the stack overflow code." +"00000258","600","-4294966696","ERROR_CONVERT_TO_LARGE","Internal OFS status codes indicating how an allocation operation is handled. Either it is retried after the containing onode is moved or the extent stream is converted to a large stream." +"00000259","601","-4294966695","ERROR_FOUND_OUT_OF_SCOPE","The attempt to find the object found an object matching by ID on the volume but it is out of the scope of the handle used for the operation." +"0000025A","602","-4294966694","ERROR_ALLOCATE_BUCKET","The bucket array must be grown. Retry transaction after doing so." +"0000025B","603","-4294966693","ERROR_MARSHALL_OVERFLOW","The user/kernel marshalling buffer has overflowed." +"0000025C","604","-4294966692","ERROR_INVALID_VARIANT","The supplied variant structure contains invalid data." +"0000025D","605","-4294966691","ERROR_BAD_COMPRESSION_BUFFER","The specified buffer contains ill-formed data." +"0000025E","606","-4294966690","ERROR_AUDIT_FAILED","{Audit Failed} An attempt to generate a security audit failed." +"0000025F","607","-4294966689","ERROR_TIMER_RESOLUTION_NOT_SET","The timer resolution was not previously set by the current process." +"00000260","608","-4294966688","ERROR_INSUFFICIENT_LOGON_INFO","There is insufficient account information to log you on." +"00000261","609","-4294966687","ERROR_BAD_DLL_ENTRYPOINT","{Invalid DLL Entrypoint} The dynamic link library %hs is not written correctly. The stack pointer has been left in an inconsistent state. The entrypoint should be declared as WINAPI or STDCALL. Select YES to fail the DLL load. Select NO to continue execution. Selecting NO may cause the application to operate incorrectly." +"00000262","610","-4294966686","ERROR_BAD_SERVICE_ENTRYPOINT","{Invalid Service Callback Entrypoint} The %hs service is not written correctly. The stack pointer has been left in an inconsistent state. The callback entrypoint should be declared as WINAPI or STDCALL. Selecting OK will cause the service to continue operation. However - the service process may operate incorrectly." +"00000263","611","-4294966685","ERROR_IP_ADDRESS_CONFLICT1","There is an IP address conflict with another system on the network." +"00000264","612","-4294966684","ERROR_IP_ADDRESS_CONFLICT2","There is an IP address conflict with another system on the network." +"00000265","613","-4294966683","ERROR_REGISTRY_QUOTA_LIMIT","{Low On Registry Space} The system has reached the maximum size allowed for the system part of the registry. Additional storage requests will be ignored." +"00000266","614","-4294966682","ERROR_NO_CALLBACK_ACTIVE","A callback return system service cannot be executed when no callback is active." +"00000267","615","-4294966681","ERROR_PWD_TOO_SHORT","The password provided is too short to meet the policy of your user account. Please choose a longer password." +"00000268","616","-4294966680","ERROR_PWD_TOO_RECENT","The policy of your user account does not allow you to change passwords too frequently. This is done to prevent users from changing back to a familiar - but potentially discovered - password. If you feel your password has been compromised then please contact your administrator immediately to have a new one assigned." +"00000269","617","-4294966679","ERROR_PWD_HISTORY_CONFLICT","You have attempted to change your password to one that you have used in the past. The policy of your user account does not allow this. Please select a password that you have not previously used." +"0000026A","618","-4294966678","ERROR_UNSUPPORTED_COMPRESSION","The specified compression format is unsupported." +"0000026B","619","-4294966677","ERROR_INVALID_HW_PROFILE","The specified hardware profile configuration is invalid." +"0000026C","620","-4294966676","ERROR_INVALID_PLUGPLAY_DEVICE_PATH","The specified Plug and Play registry device path is invalid." +"0000026D","621","-4294966675","ERROR_QUOTA_LIST_INCONSISTENT","The specified quota list is internally inconsistent with its descriptor." +"0000026E","622","-4294966674","ERROR_EVALUATION_EXPIRATION","{Windows Evaluation Notification} The evaluation period for this installation of Windows has expired. This system will shutdown in 1 hour. To restore access to this installation of Windows - please upgrade this installation using a licensed distribution of this product." +"0000026F","623","-4294966673","ERROR_ILLEGAL_DLL_RELOCATION","{Illegal System DLL Relocation} The system DLL %hs was relocated in memory. The application will not run properly. The relocation occurred because the DLL %hs occupied an address range reserved for Windows system DLLs. The vendor supplying the DLL should be contacted for a new DLL." +"00000270","624","-4294966672","ERROR_DLL_INIT_FAILED_LOGOFF","{DLL Initialization Failed} The application failed to initialize because the window station is shutting down." +"00000271","625","-4294966671","ERROR_VALIDATE_CONTINUE","The validation process needs to continue on to the next step." +"00000272","626","-4294966670","ERROR_NO_MORE_MATCHES","There are no more matches for the current index enumeration." +"00000273","627","-4294966669","ERROR_RANGE_LIST_CONFLICT","The range could not be added to the range list because of a conflict." +"00000274","628","-4294966668","ERROR_SERVER_SID_MISMATCH","The server process is running under a SID different than that required by client." +"00000275","629","-4294966667","ERROR_CANT_ENABLE_DENY_ONLY","A group marked use for deny only cannot be enabled." +"00000276","630","-4294966666","ERROR_FLOAT_MULTIPLE_FAULTS","{EXCEPTION} Multiple floating point faults." +"00000277","631","-4294966665","ERROR_FLOAT_MULTIPLE_TRAPS","{EXCEPTION} Multiple floating point traps." +"00000278","632","-4294966664","ERROR_NOINTERFACE","The requested interface is not supported." +"00000279","633","-4294966663","ERROR_DRIVER_FAILED_SLEEP","{System Standby Failed} The driver %hs does not support standby mode. Updating this driver may allow the system to go to standby mode." +"0000027A","634","-4294966662","ERROR_CORRUPT_SYSTEM_FILE","The system file %1 has become corrupt and has been replaced." +"0000027B","635","-4294966661","ERROR_COMMITMENT_MINIMUM","{Virtual Memory Minimum Too Low} Your system is low on virtual memory. Windows is increasing the size of your virtual memory paging file. During this process - memory requests for some applications may be denied. For more information - see Help." +"0000027C","636","-4294966660","ERROR_PNP_RESTART_ENUMERATION","A device was removed so enumeration must be restarted." +"0000027D","637","-4294966659","ERROR_SYSTEM_IMAGE_BAD_SIGNATURE","{Fatal System Error} The system image %s is not properly signed. The file has been replaced with the signed file. The system has been shut down." +"0000027E","638","-4294966658","ERROR_PNP_REBOOT_REQUIRED","Device will not start without a reboot." +"0000027F","639","-4294966657","ERROR_INSUFFICIENT_POWER","There is not enough power to complete the requested operation." +"00000280","640","-4294966656","ERROR_MULTIPLE_FAULT_VIOLATION","ERROR_MULTIPLE_FAULT_VIOLATION." +"00000282","642","-4294966654","ERROR_PORT_NOT_SET","An attempt to remove a processes DebugPort was made - but a port was not already associated with the process." +"00000283","643","-4294966653","ERROR_DS_VERSION_CHECK_FAILURE","This version of Windows is not compatible with the behavior version of directory forest - domain or domain controller." +"00000284","644","-4294966652","ERROR_RANGE_NOT_FOUND","The specified range could not be found in the range list." +"00000286","646","-4294966650","ERROR_NOT_SAFE_MODE_DRIVER","The driver was not loaded because the system is booting into safe mode." +"00000287","647","-4294966649","ERROR_FAILED_DRIVER_ENTRY","The driver was not loaded because it failed its initialization call." +"00000288","648","-4294966648","ERROR_DEVICE_ENUMERATION_ERROR","The ""%hs"" encountered an error while applying power or reading the device configuration. This may be caused by a failure of your hardware or by a poor connection." +"00000289","649","-4294966647","ERROR_MOUNT_POINT_NOT_RESOLVED","The create operation failed because the name contained at least one mount point which resolves to a volume to which the specified device object is not attached." +"0000028A","650","-4294966646","ERROR_INVALID_DEVICE_OBJECT_PARAMETER","The device object parameter is either not a valid device object or is not attached to the volume specified by the file name." +"0000028B","651","-4294966645","ERROR_MCA_OCCURED","A Machine Check Error has occurred. Please check the system eventlog for additional information." +"0000028C","652","-4294966644","ERROR_DRIVER_DATABASE_ERROR","There was error [%2] processing the driver database." +"0000028D","653","-4294966643","ERROR_SYSTEM_HIVE_TOO_LARGE","System hive size has exceeded its limit." +"0000028E","654","-4294966642","ERROR_DRIVER_FAILED_PRIOR_UNLOAD","The driver could not be loaded because a previous version of the driver is still in memory." +"0000028F","655","-4294966641","ERROR_VOLSNAP_PREPARE_HIBERNATE","{Volume Shadow Copy Service} Please wait while the Volume Shadow Copy Service prepares volume %hs for hibernation." +"00000290","656","-4294966640","ERROR_HIBERNATION_FAILURE","The system has failed to hibernate." +"00000291","657","-4294966639","ERROR_PWD_TOO_LONG","The password provided is too long to meet the policy of your user account. Please choose a shorter password." +"00000299","665","-4294966631","ERROR_FILE_SYSTEM_LIMITATION","The requested operation could not be completed due to a file system limitation." +"0000029C","668","-4294966628","ERROR_ASSERTION_FAILURE","An assertion failure has occurred." +"0000029D","669","-4294966627","ERROR_ACPI_ERROR","An error occurred in the ACPI subsystem." +"0000029E","670","-4294966626","ERROR_WOW_ASSERTION","WOW Assertion Error." +"0000029F","671","-4294966625","ERROR_PNP_BAD_MPS_TABLE","A device is missing in the system BIOS MPS table. This device will not be used. Please contact your system vendor for system BIOS update." +"000002A0","672","-4294966624","ERROR_PNP_TRANSLATION_FAILED","A translator failed to translate resources." +"000002A1","673","-4294966623","ERROR_PNP_IRQ_TRANSLATION_FAILED","A IRQ translator failed to translate resources." +"000002A2","674","-4294966622","ERROR_PNP_INVALID_ID","Driver %2 returned invalid ID for a child device." +"000002A3","675","-4294966621","ERROR_WAKE_SYSTEM_DEBUGGER","{Kernel Debugger Awakened} the system debugger was awakened by an interrupt." +"000002A4","676","-4294966620","ERROR_HANDLES_CLOSED","{Handles Closed} Handles to objects have been automatically closed as a result of the requested operation." +"000002A5","677","-4294966619","ERROR_EXTRANEOUS_INFORMATION","{Too Much Information} The specified access control list." +"000002A6","678","-4294966618","ERROR_RXACT_COMMIT_NECESSARY","This warning level status indicates that the transaction state already exists for the registry sub-tree - but that a transaction commit was previously aborted. The commit has NOT been completed - but has not been rolled back either." +"000002A7","679","-4294966617","ERROR_MEDIA_CHECK","{Media Changed} The media may have changed." +"000002A8","680","-4294966616","ERROR_GUID_SUBSTITUTION_MADE","{GUID Substitution} During the translation of a global identifier." +"000002A9","681","-4294966615","ERROR_STOPPED_ON_SYMLINK","The create operation stopped after reaching a symbolic link." +"000002AA","682","-4294966614","ERROR_LONGJUMP","A long jump has been executed." +"000002AB","683","-4294966613","ERROR_PLUGPLAY_QUERY_VETOED","The Plug and Play query operation was not successful." +"000002AC","684","-4294966612","ERROR_UNWIND_CONSOLIDATE","A frame consolidation has been executed." +"000002AD","685","-4294966611","ERROR_REGISTRY_HIVE_RECOVERED","{Registry Hive Recovered} Registry hive." +"000002AE","686","-4294966610","ERROR_DLL_MIGHT_BE_INSECURE","The application is attempting to run executable code from the module %hs. This may be insecure. An alternative - %hs - is available. Should the application use the secure module %hs?." +"000002B1","689","-4294966607","ERROR_DBG_REPLY_LATER","Debugger will reply later." +"000002B2","690","-4294966606","ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE","Debugger cannot provide handle." +"000002B3","691","-4294966605","ERROR_DBG_TERMINATE_THREAD","Debugger terminated thread." +"000002B4","692","-4294966604","ERROR_DBG_TERMINATE_PROCESS","Debugger terminated process." +"000002B5","693","-4294966603","ERROR_DBG_CONTROL_C","Debugger got control C." +"000002B6","694","-4294966602","ERROR_DBG_PRINTEXCEPTION_C","Debugger printed exception on control C." +"000002B7","695","-4294966601","ERROR_DBG_RIPEXCEPTION","Debugger received RIP exception." +"000002B8","696","-4294966600","ERROR_DBG_CONTROL_BREAK","Debugger received control break." +"000002B9","697","-4294966599","ERROR_DBG_COMMAND_EXCEPTION","Debugger command communication exception." +"000002BA","698","-4294966598","ERROR_OBJECT_NAME_EXISTS","{Object Exists} An attempt was made to create an object and the object name already existed." +"000002BB","699","-4294966597","ERROR_THREAD_WAS_SUSPENDED","{Thread Suspended} A thread termination occurred while the thread was suspended. The thread was resumed - and termination proceeded." +"000002BC","700","-4294966596","ERROR_IMAGE_NOT_AT_BASE","{Image Relocated} An image file could not be mapped at the address specified in the image file. Local fixups must be performed on this image." +"000002BD","701","-4294966595","ERROR_RXACT_STATE_CREATED","This informational level status indicates that a specified registry sub-tree transaction state did not yet exist and had to be created." +"000002BE","702","-4294966594","ERROR_SEGMENT_NOTIFICATION","{Segment Load} A virtual DOS machine." +"000002BF","703","-4294966593","ERROR_BAD_CURRENT_DIRECTORY","{Invalid Current Directory} The process cannot switch to the startup current directory %hs. Select OK to set current directory to %hs - or select CANCEL to exit." +"000002C0","704","-4294966592","ERROR_FT_READ_RECOVERY_FROM_BACKUP","{Redundant Read} To satisfy a read request - the NT fault-tolerant file system successfully read the requested data from a redundant copy. This was done because the file system encountered a failure on a member of the fault-tolerant volume - but was unable to reassign the failing area of the device." +"000002C1","705","-4294966591","ERROR_FT_WRITE_RECOVERY","{Redundant Write} To satisfy a write request - the NT fault-tolerant file system successfully wrote a redundant copy of the information. This was done because the file system encountered a failure on a member of the fault-tolerant volume - but was not able to reassign the failing area of the device." +"000002C2","706","-4294966590","ERROR_IMAGE_MACHINE_TYPE_MISMATCH","{Machine Type Mismatch} The image file %hs is valid - but is for a machine type other than the current machine. Select OK to continue - or CANCEL to fail the DLL load." +"000002C3","707","-4294966589","ERROR_RECEIVE_PARTIAL","{Partial Data Received} The network transport returned partial data to its client. The remaining data will be sent later." +"000002C4","708","-4294966588","ERROR_RECEIVE_EXPEDITED","{Expedited Data Received} The network transport returned data to its client that was marked as expedited by the remote system." +"000002C5","709","-4294966587","ERROR_RECEIVE_PARTIAL_EXPEDITED","{Partial Expedited Data Received} The network transport returned partial data to its client and this data was marked as expedited by the remote system. The remaining data will be sent later." +"000002C6","710","-4294966586","ERROR_EVENT_DONE","{TDI Event Done} The TDI indication has completed successfully." +"000002C7","711","-4294966585","ERROR_EVENT_PENDING","{TDI Event Pending} The TDI indication has entered the pending state." +"000002C8","712","-4294966584","ERROR_CHECKING_FILE_SYSTEM","Checking file system on %wZ." +"000002C9","713","-4294966583","ERROR_FATAL_APP_EXIT","{Fatal Application Exit} %hs." +"000002CA","714","-4294966582","ERROR_PREDEFINED_HANDLE","The specified registry key is referenced by a predefined handle." +"000002CB","715","-4294966581","ERROR_WAS_UNLOCKED","{Page Unlocked} The page protection of a locked page was changed to 'No Access' and the page was unlocked from memory and from the process." +"000002CC","716","-4294966580","ERROR_SERVICE_NOTIFICATION","%hs." +"000002CE","718","-4294966578","ERROR_LOG_HARD_ERROR","Application popup: %1 : %2." +"000002D1","721","-4294966575","ERROR_NO_YIELD_PERFORMED","A yield execution was performed and no thread was available to run." +"000002D2","722","-4294966574","ERROR_TIMER_RESUME_IGNORED","The resumable flag to a timer API was ignored." +"000002D3","723","-4294966573","ERROR_ARBITRATION_UNHANDLED","The arbiter has deferred arbitration of these resources to its parent." +"000002D4","724","-4294966572","ERROR_CARDBUS_NOT_SUPPORTED","The inserted CardBus device cannot be started because of a configuration error on ""%hs""." +"000002D5","725","-4294966571","ERROR_MP_PROCESSOR_MISMATCH","The CPUs in this multiprocessor system are not all the same revision level. To use all processors the operating system restricts itself to the features of the least capable processor in the system. Should problems occur with this system - contact the CPU manufacturer to see if this mix of processors is supported." +"000002D6","726","-4294966570","ERROR_HIBERNATED","The system was put into hibernation." +"000002D7","727","-4294966569","ERROR_RESUME_HIBERNATION","The system was resumed from hibernation." +"000002D8","728","-4294966568","ERROR_FIRMWARE_UPDATED","Windows has detected that the system firmware." +"000002D9","729","-4294966567","ERROR_DRIVERS_LEAKING_LOCKED_PAGES","A device driver is leaking locked I/O pages causing system degradation. The system has automatically enabled tracking code in order to try and catch the culprit." +"000002DA","730","-4294966566","ERROR_WAKE_SYSTEM","The system has awoken." +"000002DB","731","-4294966565","ERROR_WAIT_1","ERROR_WAIT_1." +"000002E5","741","-4294966555","ERROR_REPARSE","A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link." +"000002E6","742","-4294966554","ERROR_OPLOCK_BREAK_IN_PROGRESS","An open/create operation completed while an oplock break is underway." +"000002E7","743","-4294966553","ERROR_VOLUME_MOUNTED","A new volume has been mounted by a file system." +"000002E8","744","-4294966552","ERROR_RXACT_COMMITTED","This success level status indicates that the transaction state already exists for the registry sub-tree - but that a transaction commit was previously aborted. The commit has now been completed." +"000002E9","745","-4294966551","ERROR_NOTIFY_CLEANUP","This indicates that a notify change request has been completed due to closing the handle which made the notify change request." +"000002EA","746","-4294966550","ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED","{Connect Failure on Primary Transport} An attempt was made to connect to the remote server %hs on the primary transport - but the connection failed. The computer WAS able to connect on a secondary transport." +"000002EB","747","-4294966549","ERROR_PAGE_FAULT_TRANSITION","Page fault was a transition fault." +"000002EC","748","-4294966548","ERROR_PAGE_FAULT_DEMAND_ZERO","Page fault was a demand zero fault." +"000002ED","749","-4294966547","ERROR_PAGE_FAULT_COPY_ON_WRITE","Page fault was a demand zero fault." +"000002EE","750","-4294966546","ERROR_PAGE_FAULT_GUARD_PAGE","Page fault was a demand zero fault." +"000002EF","751","-4294966545","ERROR_PAGE_FAULT_PAGING_FILE","Page fault was satisfied by reading from a secondary storage device." +"000002F0","752","-4294966544","ERROR_CACHE_PAGE_LOCKED","Cached page was locked during operation." +"000002F1","753","-4294966543","ERROR_CRASH_DUMP","Crash dump exists in paging file." +"000002F2","754","-4294966542","ERROR_BUFFER_ALL_ZEROS","Specified buffer contains all zeros." +"000002F3","755","-4294966541","ERROR_REPARSE_OBJECT","A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link." +"000002F4","756","-4294966540","ERROR_RESOURCE_REQUIREMENTS_CHANGED","The device has succeeded a query-stop and its resource requirements have changed." +"000002F5","757","-4294966539","ERROR_TRANSLATION_COMPLETE","The translator has translated these resources into the global space and no further translations should be performed." +"000002F6","758","-4294966538","ERROR_NOTHING_TO_TERMINATE","A process being terminated has no threads to terminate." +"000002F7","759","-4294966537","ERROR_PROCESS_NOT_IN_JOB","The specified process is not part of a job." +"000002F8","760","-4294966536","ERROR_PROCESS_IN_JOB","The specified process is part of a job." +"000002F9","761","-4294966535","ERROR_VOLSNAP_HIBERNATE_READY","{Volume Shadow Copy Service} The system is now ready for hibernation." +"000002FA","762","-4294966534","ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY","A file system or file system filter driver has successfully completed an FsFilter operation." +"000002FB","763","-4294966533","ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED","The specified interrupt vector was already connected." +"000002FC","764","-4294966532","ERROR_INTERRUPT_STILL_CONNECTED","The specified interrupt vector is still connected." +"000002FD","765","-4294966531","ERROR_WAIT_FOR_OPLOCK","An operation is blocked waiting for an oplock." +"000002FE","766","-4294966530","ERROR_DBG_EXCEPTION_HANDLED","Debugger handled exception." +"000002FF","767","-4294966529","ERROR_DBG_CONTINUE","Debugger continued." +"00000300","768","-4294966528","ERROR_CALLBACK_POP_STACK","An exception occurred in a user mode callback and the kernel callback frame should be removed." +"00000301","769","-4294966527","ERROR_COMPRESSION_DISABLED","Compression is disabled for this volume." +"00000302","770","-4294966526","ERROR_CANTFETCHBACKWARDS","The data provider cannot fetch backwards through a result set." +"00000303","771","-4294966525","ERROR_CANTSCROLLBACKWARDS","The data provider cannot scroll backwards through a result set." +"00000304","772","-4294966524","ERROR_ROWSNOTRELEASED","The data provider requires that previously fetched data is released before asking for more data." +"00000305","773","-4294966523","ERROR_BAD_ACCESSOR_FLAGS","The data provider was not able to interpret the flags set for a column binding in an accessor." +"00000306","774","-4294966522","ERROR_ERRORS_ENCOUNTERED","One or more errors occurred while processing the request." +"00000307","775","-4294966521","ERROR_NOT_CAPABLE","The implementation is not capable of performing the request." +"00000308","776","-4294966520","ERROR_REQUEST_OUT_OF_SEQUENCE","The client of a component requested an operation which is not valid given the state of the component instance." +"00000309","777","-4294966519","ERROR_VERSION_PARSE_ERROR","A version number could not be parsed." +"0000030A","778","-4294966518","ERROR_BADSTARTPOSITION","The iterator's start position is invalid." +"0000030B","779","-4294966517","ERROR_MEMORY_HARDWARE","The hardware has reported an uncorrectable memory error." +"0000030C","780","-4294966516","ERROR_DISK_REPAIR_DISABLED","The attempted operation required self healing to be enabled." +"0000030D","781","-4294966515","ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE","The Desktop heap encountered an error while allocating session memory. There is more information in the system event log." +"0000030E","782","-4294966514","ERROR_SYSTEM_POWERSTATE_TRANSITION","The system power state is transitioning from %2 to %3." +"0000030F","783","-4294966513","ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION","The system power state is transitioning from %2 to %3 but could enter %4." +"00000310","784","-4294966512","ERROR_MCA_EXCEPTION","A thread is getting dispatched with MCA EXCEPTION because of MCA." +"00000311","785","-4294966511","ERROR_ACCESS_AUDIT_BY_POLICY","Access to %1 is monitored by policy rule %2." +"00000312","786","-4294966510","ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY","Access to %1 has been restricted by your Administrator by policy rule %2." +"00000313","787","-4294966509","ERROR_ABANDON_HIBERFILE","A valid hibernation file has been invalidated and should be abandoned." +"00000314","788","-4294966508","ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED","{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error may be caused by network connectivity issues. Please try to save this file elsewhere." +"00000315","789","-4294966507","ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR","{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error was returned by the server on which the file exists. Please try to save this file elsewhere." +"00000316","790","-4294966506","ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR","{Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error may be caused if the device has been removed or the media is write-protected." +"00000317","791","-4294966505","ERROR_BAD_MCFG_TABLE","The resources required for this device conflict with the MCFG table." +"00000318","792","-4294966504","ERROR_DISK_REPAIR_REDIRECTED","The volume repair could not be performed while it is online. Please schedule to take the volume offline so that it can be repaired." +"00000319","793","-4294966503","ERROR_DISK_REPAIR_UNSUCCESSFUL","The volume repair was not successful." +"0000031A","794","-4294966502","ERROR_CORRUPT_LOG_OVERFULL","One of the volume corruption logs is full. Further corruptions that may be detected won't be logged." +"0000031B","795","-4294966501","ERROR_CORRUPT_LOG_CORRUPTED","One of the volume corruption logs is internally corrupted and needs to be recreated. The volume may contain undetected corruptions and must be scanned." +"0000031C","796","-4294966500","ERROR_CORRUPT_LOG_UNAVAILABLE","One of the volume corruption logs is unavailable for being operated on." +"0000031D","797","-4294966499","ERROR_CORRUPT_LOG_DELETED_FULL","One of the volume corruption logs was deleted while still having corruption records in them. The volume contains detected corruptions and must be scanned." +"0000031E","798","-4294966498","ERROR_CORRUPT_LOG_CLEARED","One of the volume corruption logs was cleared by chkdsk and no longer contains real corruptions." +"0000031F","799","-4294966497","ERROR_ORPHAN_NAME_EXHAUSTED","Orphaned files exist on the volume but could not be recovered because no more new names could be created in the recovery directory. Files must be moved from the recovery directory." +"00000320","800","-4294966496","ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE","The oplock that was associated with this handle is now associated with a different handle." +"00000321","801","-4294966495","ERROR_CANNOT_GRANT_REQUESTED_OPLOCK","An oplock of the requested level cannot be granted. An oplock of a lower level may be available." +"00000322","802","-4294966494","ERROR_CANNOT_BREAK_OPLOCK","The operation did not complete successfully because it would cause an oplock to be broken. The caller has requested that existing oplocks not be broken." +"00000323","803","-4294966493","ERROR_OPLOCK_HANDLE_CLOSED","The handle with which this oplock was associated has been closed. The oplock is now broken." +"00000324","804","-4294966492","ERROR_NO_ACE_CONDITION","The specified access control entry." +"00000325","805","-4294966491","ERROR_INVALID_ACE_CONDITION","The specified access control entry." +"00000326","806","-4294966490","ERROR_FILE_HANDLE_REVOKED","Access to the specified file handle has been revoked." +"00000327","807","-4294966489","ERROR_IMAGE_AT_DIFFERENT_BASE","An image file was mapped at a different address from the one specified in the image file but fixups will still be automatically performed on the image." +"00000330","816","-4294966480","","The field value could not be retrieved because the specified field does not exist." +"00000331","817","-4294966479","","The field value could not be retrieved because the specified field does not exist in that template." +"00000334","820","-4294966476","","This field does not allow multiple values." +"00000335","821","-4294966475","","At least two fields must be specified." +"00000340","832","-4294966464","","Page does not contain text data." +"00000341","833","-4294966463","","Page does not contain image data." +"00000342","834","-4294966462","","Document does not contain an electronic document." +"00000343","835","-4294966461","","Annotation does not contain attachment data." +"00000351","849","-4294966447","","The Volume must have its Fixed or RemovablePath properties set before it can be created." +"00000352","850","-4294966446","","Volume attach is not in progress." +"00000353","851","-4294966445","","Volume export is not in progress." +"00000354","852","-4294966444","","Volume export already running." +"00000355","853","-4294966443","","Volume paths don't match." +"00000356","854","-4294966442","","Incompatible template field types." +"00000357","855","-4294966441","","Volume export path must be an empty directory." +"00000358","856","-4294966440","","Invalid volume definition object." +"00000359","857","-4294966439","","Invalid volume export version." +"00000360","864","-4294966432","","The volume files must be copied in order to encrypt or compress the volume files." +"00000365","869","-4294966427","","There are no more words in the stream." +"00000367","871","-4294966425","","The stream has not been opened." +"00000368","872","-4294966424","","This stream is already open." +"00000369","873","-4294966423","","Image too small to be valid." +"00000373","883","-4294966413","","The indicated page is not part of this document." +"00000374","884","-4294966412","","Pages cannot be copied within the same document." +"00000375","885","-4294966411","","The text for this page is too large." +"00000376","886","-4294966410","","The location data for this page is too large." +"00000380","896","-4294966400","","The search object needs to have its command set in order to find results." +"00000382","898","-4294966398","","The search object cannot process more than one search at a time." +"00000383","899","-4294966397","","The search has not been completed." +"00000384","900","-4294966396","","The column name is invalid." +"00000385","901","-4294966395","","Invalid column type conversion." +"00000393","915","-4294966381","","The word you have attempted to add contains no text data." +"00000394","916","-4294966380","","The text of the word you have attempted to append contains more than one group of delimiters." +"00000395","917","-4294966379","","There are no delimiters between the last word of the text and the word you are attempting to add." +"000003E2","994","-4294966302","ERROR_EA_ACCESS_DENIED","Access to the extended attribute was denied." +"000003E3","995","-4294966301","ERROR_OPERATION_ABORTED","The I/O operation has been aborted because of either a thread exit or an application request." +"000003E4","996","-4294966300","ERROR_IO_INCOMPLETE","Overlapped I/O event is not in a signaled state." +"000003E5","997","-4294966299","ERROR_IO_PENDING","Overlapped I/O operation is in progress." +"000003E6","998","-4294966298","ERROR_NOACCESS","Invalid access to memory location." +"000003E7","999","-4294966297","ERROR_SWAPERROR","Error performing in-page operation." +"000003E9","1001","-4294966295","ERROR_STACK_OVERFLOW","Recursion too deep; the stack overflowed." +"000003EA","1002","-4294966294","ERROR_INVALID_MESSAGE","The window cannot act on the sent message." +"000003EB","1003","-4294966293","ERROR_CAN_NOT_COMPLETE","Cannot complete this function." +"000003EC","1004","-4294966292","ERROR_INVALID_FLAGS","Invalid flags." +"000003ED","1005","-4294966291","ERROR_UNRECOGNIZED_VOLUME","The volume does not contain a recognized file system. Please make sure that all required file system drivers are loaded and that the volume is not corrupted." +"000003EE","1006","-4294966290","ERROR_FILE_INVALID","The volume for a file has been externally altered so that the opened file is no longer valid." +"000003EF","1007","-4294966289","ERROR_FULLSCREEN_MODE","The requested operation cannot be performed in full-screen mode." +"000003F0","1008","-4294966288","ERROR_NO_TOKEN","An attempt was made to reference a token that does not exist." +"000003F1","1009","-4294966287","ERROR_BADDB","The configuration registry database is corrupt." +"000003F2","1010","-4294966286","ERROR_BADKEY","The configuration registry key is invalid." +"000003F3","1011","-4294966285","ERROR_CANTOPEN","The configuration registry key could not be opened." +"000003F4","1012","-4294966284","ERROR_CANTREAD","The configuration registry key could not be read." +"000003F5","1013","-4294966283","ERROR_CANTWRITE","The configuration registry key could not be written." +"000003F6","1014","-4294966282","ERROR_REGISTRY_RECOVERED","One of the files in the registry database had to be recovered by use of a log or alternate copy. The recovery was successful." +"000003F7","1015","-4294966281","ERROR_REGISTRY_CORRUPT","The registry is corrupted. The structure of one of the files containing registry data is corrupted - or the system's memory image of the file is corrupted - or the file could not be recovered because the alternate copy or log was absent or corrupted." +"000003F8","1016","-4294966280","ERROR_REGISTRY_IO_FAILED","An I/O operation initiated by the registry failed unrecoverably. The registry could not read in - or write out - or flush - one of the files that contain the system's image of the registry." +"000003F9","1017","-4294966279","ERROR_NOT_REGISTRY_FILE","The system has attempted to load or restore a file into the registry - but the specified file is not in a registry file format." +"000003FA","1018","-4294966278","ERROR_KEY_DELETED","Illegal operation attempted on a registry key that has been marked for deletion." +"000003FB","1019","-4294966277","ERROR_NO_LOG_SPACE","System could not allocate the required space in a Registry log." +"000003FC","1020","-4294966276","ERROR_KEY_HAS_CHILDREN","Cannot create a symbolic link in a registry key that already has subkeys or values." +"000003FD","1021","-4294966275","ERROR_CHILD_MUST_BE_VOLATILE","Cannot create a stable subkey under a volatile parent key." +"000003FE","1022","-4294966274","ERROR_NOTIFY_ENUM_DIR","A notify change request is being completed and the information is not being returned in the caller's buffer. The caller now needs to enumerate the files to find the changes." +"00000400","1024","-4294966272","","Memory could not be allocated." +"00000410","1040","-4294966256","","The specified index is out of range for this collection." +"00000411","1041","-4294966255","","The collection does not contain the specified object." +"00000412","1042","-4294966254","","The specified object is already a member of this collection." +"00000413","1043","-4294966253","","There is no object with the given sequence number." +"00000414","1044","-4294966252","","Reached end of activity stream." +"0000041B","1051","-4294966245","ERROR_DEPENDENT_SERVICES_RUNNING","A stop control has been sent to a service which other running services are dependent on." +"0000041C","1052","-4294966244","ERROR_INVALID_SERVICE_CONTROL","The requested control is not valid for this service." +"0000041D","1053","-4294966243","ERROR_SERVICE_REQUEST_TIMEOUT","The service did not respond to the start or control request in a timely fashion." +"0000041E","1054","-4294966242","ERROR_SERVICE_NO_THREAD","A thread could not be created for the service." +"0000041F","1055","-4294966241","ERROR_SERVICE_DATABASE_LOCKED","The service database is locked." +"00000420","1056","-4294966240","ERROR_SERVICE_ALREADY_RUNNING","An instance of the service is already running." +"00000421","1057","-4294966239","ERROR_INVALID_SERVICE_ACCOUNT","The account name is invalid or does not exist - or the password is invalid for the account name specified." +"00000422","1058","-4294966238","ERROR_SERVICE_DISABLED","The specified service is disabled and cannot be started." +"00000423","1059","-4294966237","ERROR_CIRCULAR_DEPENDENCY","Circular service dependency was specified." +"00000424","1060","-4294966236","ERROR_SERVICE_DOES_NOT_EXIST","The specified service does not exist as an installed service." +"00000425","1061","-4294966235","ERROR_SERVICE_CANNOT_ACCEPT_CTRL","The service cannot accept control messages at this time." +"00000426","1062","-4294966234","ERROR_SERVICE_NOT_ACTIVE","The service has not been started." +"00000427","1063","-4294966233","ERROR_FAILED_SERVICE_CONTROLLER_CONNECT","The service process could not connect to the service controller." +"00000428","1064","-4294966232","ERROR_EXCEPTION_IN_SERVICE","An exception occurred in the service when handling the control request." +"00000429","1065","-4294966231","ERROR_DATABASE_DOES_NOT_EXIST","The database specified does not exist." +"0000042A","1066","-4294966230","ERROR_SERVICE_SPECIFIC_ERROR","The service has returned a service-specific error code." +"0000042B","1067","-4294966229","ERROR_PROCESS_ABORTED","The process terminated unexpectedly." +"0000042C","1068","-4294966228","ERROR_SERVICE_DEPENDENCY_FAIL","The dependency service or group failed to start." +"0000042D","1069","-4294966227","ERROR_SERVICE_LOGON_FAILED","The service did not start due to a logon failure." +"0000042E","1070","-4294966226","ERROR_SERVICE_START_HANG","After starting - the service hung in a start-pending state." +"0000042F","1071","-4294966225","ERROR_INVALID_SERVICE_LOCK","The specified service database lock is invalid." +"00000430","1072","-4294966224","ERROR_SERVICE_MARKED_FOR_DELETE","The specified service has been marked for deletion." +"00000431","1073","-4294966223","ERROR_SERVICE_EXISTS","The specified service already exists." +"00000432","1074","-4294966222","ERROR_ALREADY_RUNNING_LKG","The system is currently running with the last-known-good configuration." +"00000433","1075","-4294966221","ERROR_SERVICE_DEPENDENCY_DELETED","The dependency service does not exist or has been marked for deletion." +"00000434","1076","-4294966220","ERROR_BOOT_ALREADY_ACCEPTED","The current boot has already been accepted for use as the last-known-good control set." +"00000435","1077","-4294966219","ERROR_SERVICE_NEVER_STARTED","No attempts to start the service have been made since the last boot." +"00000436","1078","-4294966218","ERROR_DUPLICATE_SERVICE_NAME","The name is already in use as either a service name or a service display name." +"00000437","1079","-4294966217","ERROR_DIFFERENT_SERVICE_ACCOUNT","The account specified for this service is different from the account specified for other services running in the same process." +"00000438","1080","-4294966216","ERROR_CANNOT_DETECT_DRIVER_FAILURE","Failure actions can only be set for Win32 services - not for drivers." +"00000439","1081","-4294966215","ERROR_CANNOT_DETECT_PROCESS_ABORT","This service runs in the same process as the service control manager. Therefore - the service control manager cannot take action if this service's process terminates unexpectedly." +"0000043A","1082","-4294966214","ERROR_NO_RECOVERY_PROGRAM","No recovery program has been configured for this service." +"0000043B","1083","-4294966213","ERROR_SERVICE_NOT_IN_EXE","The executable program that this service is configured to run in does not implement the service." +"0000043C","1084","-4294966212","ERROR_NOT_SAFEBOOT_SERVICE","This service cannot be started in Safe Mode." +"00000448","1096","-4294966200","","The stamp data must be a bitmap with a depth of 1." +"00000449","1097","-4294966199","","An annotation cannot be linked after it is added to the database." +"0000044A","1098","-4294966198","","The given annotation is not part of this page object." +"0000044B","1099","-4294966197","","Annotation not found." +"0000044C","1100","-4294966196","ERROR_END_OF_MEDIA","The physical end of the tape has been reached." +"0000044D","1101","-4294966195","ERROR_FILEMARK_DETECTED","A tape access reached a filemark." +"0000044E","1102","-4294966194","ERROR_BEGINNING_OF_MEDIA","The beginning of the tape or a partition was encountered." +"0000044F","1103","-4294966193","ERROR_SETMARK_DETECTED","A tape access reached the end of a set of files." +"00000450","1104","-4294966192","ERROR_NO_DATA_DETECTED","No more data is on the tape." +"00000451","1105","-4294966191","ERROR_PARTITION_FAILURE","Tape could not be partitioned." +"00000452","1106","-4294966190","ERROR_INVALID_BLOCK_LENGTH","When accessing a new tape of a multivolume partition - the current block size is incorrect." +"00000453","1107","-4294966189","ERROR_DEVICE_NOT_PARTITIONED","Tape partition information could not be found when loading a tape." +"00000454","1108","-4294966188","ERROR_UNABLE_TO_LOCK_MEDIA","Unable to lock the media eject mechanism." +"00000455","1109","-4294966187","ERROR_UNABLE_TO_UNLOAD_MEDIA","Unable to unload the media." +"00000456","1110","-4294966186","ERROR_MEDIA_CHANGED","The media in the drive may have changed." +"00000457","1111","-4294966185","ERROR_BUS_RESET","The I/O bus was reset." +"00000458","1112","-4294966184","ERROR_NO_MEDIA_IN_DRIVE","No media in drive." +"00000459","1113","-4294966183","ERROR_NO_UNICODE_TRANSLATION","No mapping for the Unicode character exists in the target multi-byte code page." +"0000045A","1114","-4294966182","ERROR_DLL_INIT_FAILED","A dynamic link library." +"0000045B","1115","-4294966181","ERROR_SHUTDOWN_IN_PROGRESS","A system shutdown is in progress." +"0000045C","1116","-4294966180","ERROR_NO_SHUTDOWN_IN_PROGRESS","Unable to abort the system shutdown because no shutdown was in progress." +"0000045D","1117","-4294966179","ERROR_IO_DEVICE","The request could not be performed because of an I/O device error." +"0000045E","1118","-4294966178","ERROR_SERIAL_NO_DEVICE","No serial device was successfully initialized. The serial driver will unload." +"0000045F","1119","-4294966177","ERROR_IRQ_BUSY","Unable to open a device that was sharing an interrupt request." +"00000460","1120","-4294966176","ERROR_MORE_WRITES","A serial I/O operation was completed by another write to the serial port. The IOCTL_SERIAL_XOFF_COUNTER reached zero." +"00000461","1121","-4294966175","","A serial I/O operation completed because the time-out period expired. (The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.)." +"00000462","1122","-4294966174","","No ID address mark was found on the floppy disk." +"00000463","1123","-4294966173","ERROR_FLOPPY_WRONG_CYLINDER","Mismatch between the floppy disk sector ID field and the floppy disk controller track address." +"00000464","1124","-4294966172","ERROR_FLOPPY_UNKNOWN_ERROR","The floppy disk controller reported an error that is not recognized by the floppy disk driver." +"00000465","1125","-4294966171","ERROR_FLOPPY_BAD_REGISTERS","The floppy disk controller returned inconsistent results in its registers." +"00000466","1126","-4294966170","ERROR_DISK_RECALIBRATE_FAILED","While accessing the hard disk - a recalibrate operation failed - even after retries." +"00000467","1127","-4294966169","ERROR_DISK_OPERATION_FAILED","While accessing the hard disk - a disk operation failed even after retries." +"00000468","1128","-4294966168","ERROR_DISK_RESET_FAILED","While accessing the hard disk - a disk controller reset was needed - but even that failed." +"00000469","1129","-4294966167","ERROR_EOM_OVERFLOW","Physical end of tape encountered." +"0000046A","1130","-4294966166","ERROR_NOT_ENOUGH_SERVER_MEMORY","Not enough server storage is available to process this command." +"0000046B","1131","-4294966165","ERROR_POSSIBLE_DEADLOCK","A potential deadlock condition has been detected." +"0000046C","1132","-4294966164","ERROR_MAPPED_ALIGNMENT","The base address or the file offset specified does not have the proper alignment." +"00000474","1140","-4294966156","ERROR_SET_POWER_STATE_VETOED","An attempt to change the system power state was vetoed by another application or driver." +"00000475","1141","-4294966155","ERROR_SET_POWER_STATE_FAILED","The system BIOS failed an attempt to change the system power state." +"00000476","1142","-4294966154","ERROR_TOO_MANY_LINKS","An attempt was made to create more links on a file than the file system supports." +"00000477","1143","-4294966153","","You cannot specify a maximum security level unless a minimum level is also specified and the object is a folder or volume." +"00000478","1144","-4294966152","","You cannot set an unauthorized compartment to be in/active by default." +"00000479","1145","-4294966151","","Scope must be set to SCOPE_NONE only for non-entry ACEs." +"0000047A","1146","-4294966150","","There is no ACE in this ACL for the specified user and scope." +"0000047B","1147","-4294966149","","The right specified does not apply to this object." +"0000047E","1150","-4294966146","ERROR_OLD_WIN_VERSION","The specified program requires a newer version of Windows." +"0000047F","1151","-4294966145","ERROR_APP_WRONG_OS","The specified program is not a Windows or MS-DOS program." +"00000480","1152","-4294966144","ERROR_SINGLE_INSTANCE_APP","Cannot start more than one instance of the specified program." +"00000481","1153","-4294966143","ERROR_RMODE_APP","The specified program was written for an earlier version of Windows." +"00000482","1154","-4294966142","ERROR_INVALID_DLL","One of the library files needed to run this application is damaged." +"00000483","1155","-4294966141","ERROR_NO_ASSOCIATION","No application is associated with the specified file for this operation." +"00000484","1156","-4294966140","ERROR_DDE_FAIL","An error occurred in sending the command to the application." +"00000485","1157","-4294966139","ERROR_DLL_NOT_FOUND","One of the library files needed to run this application cannot be found." +"00000486","1158","-4294966138","ERROR_NO_MORE_USER_HANDLES","The current process has used all of its system allowance of handles for Window Manager objects." +"00000487","1159","-4294966137","ERROR_MESSAGE_SYNC_ONLY","The message can be used only with synchronous operations." +"00000488","1160","-4294966136","ERROR_SOURCE_ELEMENT_EMPTY","The indicated source element has no media." +"00000489","1161","-4294966135","ERROR_DESTINATION_ELEMENT_FULL","The indicated destination element already contains media." +"0000048A","1162","-4294966134","ERROR_ILLEGAL_ELEMENT_ADDRESS","The indicated element does not exist." +"0000048B","1163","-4294966133","ERROR_MAGAZINE_NOT_PRESENT","The indicated element is part of a magazine that is not present." +"0000048C","1164","-4294966132","ERROR_DEVICE_REINITIALIZATION_NEEDED","The indicated device requires reinitialization due to hardware errors." +"0000048D","1165","-4294966131","ERROR_DEVICE_REQUIRES_CLEANING","The device has indicated that cleaning is required before further operations are attempted." +"0000048E","1166","-4294966130","ERROR_DEVICE_DOOR_OPEN","The device has indicated that its door is open." +"0000048F","1167","-4294966129","ERROR_DEVICE_NOT_CONNECTED","The device is not connected." +"00000490","1168","-4294966128","ERROR_NOT_FOUND","Element not found." +"00000491","1169","-4294966127","ERROR_NO_MATCH","There was no match for the specified key in the index." +"00000492","1170","-4294966126","ERROR_SET_NOT_FOUND","The property set specified does not exist on the object." +"00000493","1171","-4294966125","ERROR_POINT_NOT_FOUND","The point passed to GetMouseMovePoints is not in the buffer." +"00000494","1172","-4294966124","ERROR_NO_TRACKING_SERVICE","The tracking." +"00000495","1173","-4294966123","ERROR_NO_VOLUME_ID","The Volume ID could not be found." +"00000496","1174","-4294966122","","A briefcase operation is not in progress." +"00000497","1175","-4294966121","ERROR_UNABLE_TO_REMOVE_REPLACED","Unable to remove the file to be replaced." +"00000498","1176","-4294966120","ERROR_UNABLE_TO_MOVE_REPLACEMENT","Unable to move the replacement file to the file to be replaced. The file to be replaced has retained its original name." +"00000499","1177","-4294966119","ERROR_UNABLE_TO_MOVE_REPLACEMENT_2","Unable to move the replacement file to the file to be replaced. The file to be replaced has been renamed using the backup name." +"0000049A","1178","-4294966118","ERROR_JOURNAL_DELETE_IN_PROGRESS","The volume change journal is being deleted." +"0000049B","1179","-4294966117","ERROR_JOURNAL_NOT_ACTIVE","The volume change journal is not active." +"0000049C","1180","-4294966116","ERROR_POTENTIAL_FILE_FOUND","A file was found - but it may not be the correct file." +"0000049D","1181","-4294966115","ERROR_JOURNAL_ENTRY_DELETED","The journal entry has been deleted from the journal." +"000004A3","1187","-4294966109","","Month definitions can only be added to annual cycles; day definitions to weekly cycles." +"000004A6","1190","-4294966106","ERROR_SHUTDOWN_IS_SCHEDULED","A system shutdown has already been scheduled." +"000004A7","1191","-4294966105","ERROR_SHUTDOWN_USERS_LOGGED_ON","The system shutdown cannot be initiated because there are other users logged on to the computer." +"000004B0","1200","-4294966096","ERROR_BAD_DEVICE","The specified device name is invalid." +"000004B1","1201","-4294966095","ERROR_CONNECTION_UNAVAIL","The device is not currently connected but it is a remembered connection." +"000004B2","1202","-4294966094","ERROR_DEVICE_ALREADY_REMEMBERED","The local device name has a remembered connection to another network resource." +"000004B3","1203","-4294966093","ERROR_NO_NET_OR_BAD_PATH","No network provider accepted the given network path." +"000004B4","1204","-4294966092","ERROR_BAD_PROVIDER","The specified network provider name is invalid." +"000004B5","1205","-4294966091","ERROR_CANNOT_OPEN_PROFILE","Unable to open the network connection profile." +"000004B6","1206","-4294966090","ERROR_BAD_PROFILE","The network connection profile is corrupted." +"000004B7","1207","-4294966089","ERROR_NOT_CONTAINER","Cannot enumerate a non-container." +"000004B8","1208","-4294966088","ERROR_EXTENDED_ERROR","An extended error has occurred." +"000004B9","1209","-4294966087","ERROR_INVALID_GROUPNAME","The format of the specified group name is invalid." +"000004BA","1210","-4294966086","ERROR_INVALID_COMPUTERNAME","The format of the specified computer name is invalid." +"000004BB","1211","-4294966085","ERROR_INVALID_EVENTNAME","The format of the specified event name is invalid." +"000004BC","1212","-4294966084","ERROR_INVALID_DOMAINNAME","The format of the specified domain name is invalid." +"000004BD","1213","-4294966083","ERROR_INVALID_SERVICENAME","The format of the specified service name is invalid." +"000004BE","1214","-4294966082","ERROR_INVALID_NETNAME","The format of the specified network name is invalid." +"000004BF","1215","-4294966081","ERROR_INVALID_SHARENAME","The format of the specified share name is invalid." +"000004C0","1216","-4294966080","ERROR_INVALID_PASSWORDNAME","The format of the specified password is invalid." +"000004C1","1217","-4294966079","ERROR_INVALID_MESSAGENAME","The format of the specified message name is invalid." +"000004C2","1218","-4294966078","ERROR_INVALID_MESSAGEDEST","The format of the specified message destination is invalid." +"000004C3","1219","-4294966077","ERROR_SESSION_CREDENTIAL_CONFLICT","Multiple connections to a server or shared resource by the same user - using more than one user name - are not allowed. Disconnect all previous connections to the server or shared resource and try again." +"000004C4","1220","-4294966076","ERROR_REMOTE_SESSION_LIMIT_EXCEEDED","An attempt was made to establish a session to a network server - but there are already too many sessions established to that server." +"000004C5","1221","-4294966075","ERROR_DUP_DOMAINNAME","The workgroup or domain name is already in use by another computer on the network." +"000004C6","1222","-4294966074","ERROR_NO_NETWORK","The network is not present or not started." +"000004C7","1223","-4294966073","ERROR_CANCELLED","The operation was canceled by the user." +"000004C8","1224","-4294966072","ERROR_USER_MAPPED_FILE","The requested operation cannot be performed on a file with a user-mapped section open." +"000004C9","1225","-4294966071","ERROR_CONNECTION_REFUSED","The remote computer refused the network connection." +"000004CA","1226","-4294966070","ERROR_GRACEFUL_DISCONNECT","The network connection was gracefully closed." +"000004CB","1227","-4294966069","ERROR_ADDRESS_ALREADY_ASSOCIATED","The network transport endpoint already has an address associated with it." +"000004CC","1228","-4294966068","ERROR_ADDRESS_NOT_ASSOCIATED","An address has not yet been associated with the network endpoint." +"000004CD","1229","-4294966067","ERROR_CONNECTION_INVALID","An operation was attempted on a non-existent network connection." +"000004CE","1230","-4294966066","ERROR_CONNECTION_ACTIVE","An invalid operation was attempted on an active network connection." +"000004CF","1231","-4294966065","ERROR_NETWORK_UNREACHABLE","The network location cannot be reached. For information about network troubleshooting - see Windows Help." +"000004D0","1232","-4294966064","ERROR_HOST_UNREACHABLE","The network location cannot be reached. For information about network troubleshooting - see Windows Help." +"000004D1","1233","-4294966063","ERROR_PROTOCOL_UNREACHABLE","The remote system does not support the transport protocol." +"000004D2","1234","-4294966062","ERROR_PORT_UNREACHABLE","No service is operating at the destination network endpoint on the remote system." +"000004D3","1235","-4294966061","ERROR_REQUEST_ABORTED","The request was aborted." +"000004D4","1236","-4294966060","ERROR_CONNECTION_ABORTED","The network connection was aborted by the local system." +"000004D5","1237","-4294966059","ERROR_RETRY","The operation could not be completed. A retry should be performed." +"000004D6","1238","-4294966058","ERROR_CONNECTION_COUNT_LIMIT","A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached." +"000004D7","1239","-4294966057","ERROR_LOGIN_TIME_RESTRICTION","Attempting to login during an unauthorized time of day for this account." +"000004D8","1240","-4294966056","ERROR_LOGIN_WKSTA_RESTRICTION","The account is not authorized to login from this station." +"000004D9","1241","-4294966055","ERROR_INCORRECT_ADDRESS","The network address could not be used for the operation requested." +"000004DA","1242","-4294966054","ERROR_ALREADY_REGISTERED","The service is already registered." +"000004DB","1243","-4294966053","ERROR_SERVICE_NOT_FOUND","The specified service does not exist." +"000004DC","1244","-4294966052","ERROR_NOT_AUTHENTICATED","The operation being requested was not performed because the user has not been authenticated." +"000004DD","1245","-4294966051","ERROR_NOT_LOGGED_ON","The operation being requested was not performed because the user has not logged on to the network. The specified service does not exist." +"000004DE","1246","-4294966050","ERROR_CONTINUE","Return that wants caller to continue with work in progress." +"000004DF","1247","-4294966049","ERROR_ALREADY_INITIALIZED","An attempt was made to perform an initialization operation when initialization has already been completed." +"000004E0","1248","-4294966048","ERROR_NO_MORE_DEVICES","No more local devices." +"000004E1","1249","-4294966047","ERROR_NO_SUCH_SITE","The specified site does not exist." +"000004E2","1250","-4294966046","ERROR_DOMAIN_CONTROLLER_EXISTS","A domain controller with the specified name already exists." +"000004E3","1251","-4294966045","ERROR_ONLY_IF_CONNECTED","This operation is supported only when you are connected to the server." +"000004E4","1252","-4294966044","ERROR_OVERRIDE_NOCHANGES","The group policy framework should call the extension even if there are no changes." +"000004E5","1253","-4294966043","ERROR_BAD_USER_PROFILE","The specified user does not have a valid profile." +"000004E6","1254","-4294966042","ERROR_NOT_SUPPORTED_ON_SBS","This operation is not supported on a computer running Windows Server 2003 for Small Business Server." +"000004E7","1255","-4294966041","ERROR_SERVER_SHUTDOWN_IN_PROGRESS","The server machine is shutting down." +"000004E8","1256","-4294966040","ERROR_HOST_DOWN","The remote system is not available. For information about network troubleshooting - see Windows Help." +"000004E9","1257","-4294966039","ERROR_NON_ACCOUNT_SID","The security identifier provided is not from an account domain." +"000004EA","1258","-4294966038","ERROR_NON_DOMAIN_SID","The security identifier provided does not have a domain component." +"000004EB","1259","-4294966037","ERROR_APPHELP_BLOCK","AppHelp dialog canceled thus preventing the application from starting." +"000004EC","1260","-4294966036","ERROR_ACCESS_DISABLED_BY_POLICY","This program is blocked by group policy. For more information -." +"000004ED","1261","-4294966035","ERROR_REG_NAT_CONSUMPTION","A program attempt to use an invalid register value. Normally caused by an uninitialized register. This error is Itanium specific." +"000004EE","1262","-4294966034","ERROR_CSCSHARE_OFFLINE","The share is currently offline or does not exist." +"000004EF","1263","-4294966033","ERROR_PKINIT_FAILURE","The Kerberos protocol encountered an error while validating the KDC certificate during smartcard logon. There is more information in the system event log." +"000004F0","1264","-4294966032","ERROR_SMARTCARD_SUBSYSTEM_FAILURE","The Kerberos protocol encountered an error while attempting to utilize the smartcard subsystem." +"000004F1","1265","-4294966031","ERROR_DOWNGRADE_DETECTED","The system cannot contact a domain controller to service the authentication request. Please try again later." +"000004F7","1271","-4294966025","ERROR_MACHINE_LOCKED","The machine is locked and cannot be shut down without the force option." +"000004F9","1273","-4294966023","ERROR_CALLBACK_SUPPLIED_INVALID_DATA","An application-defined callback gave invalid data when called." +"000004FA","1274","-4294966022","ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED","The group policy framework should call the extension in the synchronous foreground policy refresh." +"000004FB","1275","-4294966021","ERROR_DRIVER_BLOCKED","This driver has been blocked from loading." +"000004FC","1276","-4294966020","ERROR_INVALID_IMPORT_OF_NON_DLL","A dynamic link library." +"000004FD","1277","-4294966019","ERROR_ACCESS_DISABLED_WEBBLADE","Windows cannot open this program since it has been disabled." +"000004FE","1278","-4294966018","ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER","Windows cannot open this program because the license enforcement system has been tampered with or become corrupted." +"000004FF","1279","-4294966017","ERROR_RECOVERY_FAILURE","A transaction recover failed." +"00000500","1280","-4294966016","ERROR_ALREADY_FIBER","The current thread has already been converted to a fiber." +"00000501","1281","-4294966015","ERROR_ALREADY_THREAD","The current thread has already been converted from a fiber." +"00000502","1282","-4294966014","ERROR_STACK_BUFFER_OVERRUN","The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application." +"00000503","1283","-4294966013","ERROR_PARAMETER_QUOTA_EXCEEDED","Data present in one of the parameters is more than the function can operate on." +"00000504","1284","-4294966012","ERROR_DEBUGGER_INACTIVE","An attempt to do an operation on a debug object failed because the object is in the process of being deleted." +"00000505","1285","-4294966011","ERROR_DELAY_LOAD_FAILED","An attempt to delay-load a .dll or get a function address in a delay-loaded .dll failed." +"00000506","1286","-4294966010","ERROR_VDM_DISALLOWED","%1 is a 16-bit application. You do not have permissions to execute 16-bit applications. Check your permissions with your system administrator." +"00000507","1287","-4294966009","ERROR_UNIDENTIFIED_ERROR","Insufficient information exists to identify the cause of failure." +"00000508","1288","-4294966008","ERROR_INVALID_CRUNTIME_PARAMETER","The parameter passed to a C runtime function is incorrect." +"00000509","1289","-4294966007","ERROR_BEYOND_VDL","The operation occurred beyond the valid data length of the file." +"0000050A","1290","-4294966006","ERROR_INCOMPATIBLE_SERVICE_SID_TYPE","The service start failed since one or more services in the same process have an incompatible service SID type setting. A service with restricted service SID type can only coexist in the same process with other services with a restricted SID type. If the service SID type for this service was just configured - the hosting process must be restarted in order to start this service. On Windows Server 2003 and Windows XP - an unrestricted service cannot coexist in the same process with other services. The service with the unrestricted service SID type must be moved to an owned process in order to start this service." +"0000050B","1291","-4294966005","ERROR_DRIVER_PROCESS_TERMINATED","The process hosting the driver for this device has been terminated." +"0000050C","1292","-4294966004","ERROR_IMPLEMENTATION_LIMIT","An operation attempted to exceed an implementation-defined limit." +"0000050D","1293","-4294966003","ERROR_PROCESS_IS_PROTECTED","Either the target process - or the target thread's containing process - is a protected process." +"0000050E","1294","-4294966002","ERROR_SERVICE_NOTIFY_CLIENT_LAGGING","The service notification client is lagging too far behind the current state of services in the machine." +"0000050F","1295","-4294966001","ERROR_DISK_QUOTA_EXCEEDED","The requested file operation failed because the storage quota was exceeded. To free up disk space - move files to a different location or delete unnecessary files. For more information -." +"00000510","1296","-4294966000","ERROR_CONTENT_BLOCKED","The requested file operation failed because the storage policy blocks that type of file. For more information -." +"00000511","1297","-4294965999","ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE","A privilege that the service requires to function properly does not exist in the service account configuration. You may use the Services Microsoft Management Console." +"00000512","1298","-4294965998","ERROR_APP_HANG","A thread involved in this operation appears to be unresponsive." +"00000513","1299","-4294965997","ERROR_INVALID_LABEL","Indicates a particular Security ID may not be assigned as the label of an object." +"00000514","1300","-4294965996","ERROR_NOT_ALL_ASSIGNED","Not all privileges referenced are assigned to the caller." +"00000515","1301","-4294965995","ERROR_SOME_NOT_MAPPED","Some mapping between account names and security IDs was not done." +"00000516","1302","-4294965994","ERROR_NO_QUOTAS_FOR_ACCOUNT","No system quota limits are specifically set for this account." +"00000517","1303","-4294965993","ERROR_LOCAL_USER_SESSION_KEY","No encryption key is available. A well-known encryption key was returned." +"00000518","1304","-4294965992","ERROR_NULL_LM_PASSWORD","The NT password is too complex to be converted to a LAN Manager password. The LAN Manager password returned is a NULL string." +"00000519","1305","-4294965991","ERROR_UNKNOWN_REVISION","The revision level is unknown." +"0000051A","1306","-4294965990","ERROR_REVISION_MISMATCH","Indicates two revision levels are incompatible." +"0000051B","1307","-4294965989","ERROR_INVALID_OWNER","This security ID may not be assigned as the owner of this object." +"0000051C","1308","-4294965988","ERROR_INVALID_PRIMARY_GROUP","This security ID may not be assigned as the primary group of an object." +"0000051D","1309","-4294965987","ERROR_NO_IMPERSONATION_TOKEN","An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client." +"0000051E","1310","-4294965986","ERROR_CANT_DISABLE_MANDATORY","The group may not be disabled." +"0000051F","1311","-4294965985","ERROR_NO_LOGON_SERVERS","There are currently no logon servers available to service the logon request." +"00000520","1312","-4294965984","ERROR_NO_SUCH_LOGON_SESSION","A specified logon session does not exist. It may already have been terminated." +"00000521","1313","-4294965983","ERROR_NO_SUCH_PRIVILEGE","A specified privilege does not exist." +"00000522","1314","-4294965982","ERROR_PRIVILEGE_NOT_HELD","A required privilege is not held by the client." +"00000523","1315","-4294965981","ERROR_INVALID_ACCOUNT_NAME","The name provided is not a properly formed account name." +"00000524","1316","-4294965980","ERROR_USER_EXISTS","The specified account already exists." +"00000525","1317","-4294965979","ERROR_NO_SUCH_USER","The specified account does not exist." +"00000526","1318","-4294965978","ERROR_GROUP_EXISTS","The specified group already exists." +"00000527","1319","-4294965977","ERROR_NO_SUCH_GROUP","The specified group does not exist." +"00000528","1320","-4294965976","ERROR_MEMBER_IN_GROUP","Either the specified user account is already a member of the specified group - or the specified group cannot be deleted because it contains a member." +"00000529","1321","-4294965975","ERROR_MEMBER_NOT_IN_GROUP","The specified user account is not a member of the specified group account." +"0000052A","1322","-4294965974","ERROR_LAST_ADMIN","This operation is disallowed as it could result in an administration account being disabled - deleted or unable to log on." +"0000052B","1323","-4294965973","ERROR_WRONG_PASSWORD","Unable to update the password. The value provided as the current password is incorrect." +"0000052C","1324","-4294965972","ERROR_ILL_FORMED_PASSWORD","Unable to update the password. The value provided for the new password contains values that are not allowed in passwords." +"0000052D","1325","-4294965971","ERROR_PASSWORD_RESTRICTION","Unable to update the password. The value provided for the new password does not meet the length - complexity - or history requirements of the domain." +"0000052E","1326","-4294965970","ERROR_LOGON_FAILURE","The user name or password is incorrect." +"0000052F","1327","-4294965969","ERROR_ACCOUNT_RESTRICTION","Account restrictions are preventing this user from signing in. For example: blank passwords aren't allowed - sign-in times are limited - or a policy restriction has been enforced." +"00000530","1328","-4294965968","ERROR_INVALID_LOGON_HOURS","Your account has time restrictions that keep you from signing in right now." +"00000531","1329","-4294965967","ERROR_INVALID_WORKSTATION","This user isn't allowed to sign in to this computer." +"00000532","1330","-4294965966","ERROR_PASSWORD_EXPIRED","Logon failure: the specified account password has expired." +"00000533","1331","-4294965965","ERROR_ACCOUNT_DISABLED","This user can't sign in because this account is currently disabled." +"00000534","1332","-4294965964","ERROR_NONE_MAPPED","No mapping between account names and security IDs was done." +"00000535","1333","-4294965963","ERROR_TOO_MANY_LUIDS_REQUESTED","Too many local user identifiers." +"00000536","1334","-4294965962","ERROR_LUIDS_EXHAUSTED","No more local user identifiers." +"00000537","1335","-4294965961","ERROR_INVALID_SUB_AUTHORITY","The sub-authority part of a security ID is invalid for this particular use." +"00000538","1336","-4294965960","ERROR_INVALID_ACL","The access control list (ACL) structure is invalid." +"00000539","1337","-4294965959","ERROR_INVALID_SID","The security ID structure is invalid." +"0000053A","1338","-4294965958","ERROR_INVALID_SECURITY_DESCR","The security descriptor structure is invalid." +"0000053C","1340","-4294965956","ERROR_BAD_INHERITANCE_ACL","The inherited access control list (ACL) or access control entry (ACE) could not be built." +"0000053D","1341","-4294965955","ERROR_SERVER_DISABLED","The server is currently disabled." +"0000053E","1342","-4294965954","ERROR_SERVER_NOT_DISABLED","The server is currently enabled." +"0000053F","1343","-4294965953","ERROR_INVALID_ID_AUTHORITY","The value provided was an invalid value for an identifier authority." +"00000540","1344","-4294965952","ERROR_ALLOTTED_SPACE_EXCEEDED","No more memory is available for security information updates." +"00000541","1345","-4294965951","ERROR_INVALID_GROUP_ATTRIBUTES","The specified attributes are invalid - or incompatible with the attributes for the group as a whole." +"00000542","1346","-4294965950","ERROR_BAD_IMPERSONATION_LEVEL","Either a required impersonation level was not provided - or the provided impersonation level is invalid." +"00000543","1347","-4294965949","ERROR_CANT_OPEN_ANONYMOUS","Cannot open an anonymous level security token." +"00000544","1348","-4294965948","ERROR_BAD_VALIDATION_CLASS","The validation information class requested was invalid." +"00000545","1349","-4294965947","ERROR_BAD_TOKEN_TYPE","The type of the token is inappropriate for its attempted use." +"00000546","1350","-4294965946","ERROR_NO_SECURITY_ON_OBJECT","Unable to perform a security operation on an object which has no associated security." +"00000547","1351","-4294965945","ERROR_CANT_ACCESS_DOMAIN_INFO","Configuration information could not be read from the domain controller - either because the machine is unavailable - or access has been denied." +"00000548","1352","-4294965944","ERROR_INVALID_SERVER_STATE","The security account manager (SAM) or local security authority (LSA) server was in the wrong state to perform the security operation." +"00000549","1353","-4294965943","ERROR_INVALID_DOMAIN_STATE","The domain was in the wrong state to perform the security operation." +"0000054A","1354","-4294965942","ERROR_INVALID_DOMAIN_ROLE","This operation is only allowed for the Primary Domain Controller of the domain." +"0000054B","1355","-4294965941","ERROR_NO_SUCH_DOMAIN","The specified domain either does not exist or could not be contacted." +"0000054C","1356","-4294965940","ERROR_DOMAIN_EXISTS","The specified domain already exists." +"0000054D","1357","-4294965939","ERROR_DOMAIN_LIMIT_EXCEEDED","An attempt was made to exceed the limit on the number of domains per server." +"0000054E","1358","-4294965938","ERROR_INTERNAL_DB_CORRUPTION","Unable to complete the requested operation because of either a catastrophic media failure or a data structure corruption on the disk." +"0000054F","1359","-4294965937","ERROR_INTERNAL_ERROR","An internal error occurred." +"00000550","1360","-4294965936","ERROR_GENERIC_NOT_MAPPED","Generic access types were contained in an access mask which should already be mapped to non-generic types." +"00000551","1361","-4294965935","ERROR_BAD_DESCRIPTOR_FORMAT","A security descriptor is not in the right format (absolute or self-relative)." +"00000552","1362","-4294965934","ERROR_NOT_LOGON_PROCESS","The requested action is restricted for use by logon processes only. The calling process has not registered as a logon process." +"00000553","1363","-4294965933","ERROR_LOGON_SESSION_EXISTS","Cannot start a new logon session with an ID that is already in use." +"00000554","1364","-4294965932","ERROR_NO_SUCH_PACKAGE","A specified authentication package is unknown." +"00000555","1365","-4294965931","ERROR_BAD_LOGON_SESSION_STATE","The logon session is not in a state that is consistent with the requested operation." +"00000556","1366","-4294965930","ERROR_LOGON_SESSION_COLLISION","The logon session ID is already in use." +"00000557","1367","-4294965929","ERROR_INVALID_LOGON_TYPE","A logon request contained an invalid logon type value." +"00000558","1368","-4294965928","ERROR_CANNOT_IMPERSONATE","Unable to impersonate via a named pipe until data has been read from that pipe." +"00000559","1369","-4294965927","ERROR_RXACT_INVALID_STATE","The transaction state of a registry subtree is incompatible with the requested operation." +"0000055A","1370","-4294965926","ERROR_RXACT_COMMIT_FAILURE","An internal security database corruption has been encountered." +"0000055B","1371","-4294965925","ERROR_SPECIAL_ACCOUNT","Cannot perform this operation on built-in accounts." +"0000055C","1372","-4294965924","ERROR_SPECIAL_GROUP","Cannot perform this operation on this built-in special group." +"0000055D","1373","-4294965923","ERROR_SPECIAL_USER","Cannot perform this operation on this built-in special user." +"0000055E","1374","-4294965922","ERROR_MEMBERS_PRIMARY_GROUP","The user cannot be removed from a group because the group is currently the user's primary group." +"0000055F","1375","-4294965921","ERROR_TOKEN_ALREADY_IN_USE","The token is already in use as a primary token." +"00000560","1376","-4294965920","ERROR_NO_SUCH_ALIAS","The specified local group does not exist." +"00000561","1377","-4294965919","ERROR_MEMBER_NOT_IN_ALIAS","The specified account name is not a member of the group." +"00000562","1378","-4294965918","ERROR_MEMBER_IN_ALIAS","The specified account name is already a member of the local group." +"00000563","1379","-4294965917","ERROR_ALIAS_EXISTS","The specified local group already exists." +"00000564","1380","-4294965916","ERROR_LOGON_NOT_GRANTED","Logon failure: the user has not been granted the requested logon type at this computer." +"00000565","1381","-4294965915","ERROR_TOO_MANY_SECRETS","The maximum number of secrets that may be stored in a single system has been exceeded." +"00000566","1382","-4294965914","ERROR_SECRET_TOO_LONG","The length of a secret exceeds the maximum length allowed." +"00000567","1383","-4294965913","ERROR_INTERNAL_DB_ERROR","The local security authority database contains an internal inconsistency." +"00000568","1384","-4294965912","ERROR_TOO_MANY_CONTEXT_IDS","During a logon attempt - the user's security context accumulated too many security IDs." +"00000569","1385","-4294965911","ERROR_LOGON_TYPE_NOT_GRANTED","Logon failure: the user has not been granted the requested logon type at this computer." +"0000056A","1386","-4294965910","ERROR_NT_CROSS_ENCRYPTION_REQUIRED","A cross-encrypted password is necessary to change a user password." +"0000056B","1387","-4294965909","ERROR_NO_SUCH_MEMBER","A member could not be added to or removed from the local group because the member does not exist." +"0000056C","1388","-4294965908","ERROR_INVALID_MEMBER","A new member could not be added to a local group because the member has the wrong account type." +"0000056D","1389","-4294965907","ERROR_TOO_MANY_SIDS","Too many security IDs have been specified." +"0000056E","1390","-4294965906","ERROR_LM_CROSS_ENCRYPTION_REQUIRED","A cross-encrypted password is necessary to change this user password." +"0000056F","1391","-4294965905","ERROR_NO_INHERITANCE","Indicates an ACL contains no inheritable components." +"00000570","1392","-4294965904","ERROR_FILE_CORRUPT","The file or directory is corrupted and unreadable." +"00000571","1393","-4294965903","ERROR_DISK_CORRUPT","The disk structure is corrupted and unreadable." +"00000572","1394","-4294965902","ERROR_NO_USER_SESSION_KEY","There is no user session key for the specified logon session." +"00000573","1395","-4294965901","ERROR_LICENSE_QUOTA_EXCEEDED","The service being accessed is licensed for a particular number of connections. No more connections can be made to the service at this time because there are already as many connections as the service can accept." +"00000574","1396","-4294965900","ERROR_WRONG_TARGET_NAME","The target account name is incorrect." +"00000575","1397","-4294965899","ERROR_MUTUAL_AUTH_FAILED","Mutual Authentication failed. The server's password is out of date at the domain controller." +"00000576","1398","-4294965898","ERROR_TIME_SKEW","There is a time and/or date difference between the client and server." +"00000577","1399","-4294965897","ERROR_CURRENT_DOMAIN_NOT_ALLOWED","This operation cannot be performed on the current domain." +"00000578","1400","-4294965896","ERROR_INVALID_WINDOW_HANDLE","Invalid window handle." +"00000579","1401","-4294965895","ERROR_INVALID_MENU_HANDLE","Invalid menu handle." +"0000057A","1402","-4294965894","ERROR_INVALID_CURSOR_HANDLE","Invalid cursor handle." +"0000057B","1403","-4294965893","ERROR_INVALID_ACCEL_HANDLE","Invalid accelerator table handle." +"0000057C","1404","-4294965892","ERROR_INVALID_HOOK_HANDLE","Invalid hook handle." +"0000057D","1405","-4294965891","ERROR_INVALID_DWP_HANDLE","Invalid handle to a multiple-window position structure." +"0000057E","1406","-4294965890","ERROR_TLW_WITH_WSCHILD","Cannot create a top-level child window." +"0000057F","1407","-4294965889","ERROR_CANNOT_FIND_WND_CLASS","Cannot find window class." +"00000580","1408","-4294965888","ERROR_WINDOW_OF_OTHER_THREAD","Invalid window; it belongs to other thread." +"00000581","1409","-4294965887","ERROR_HOTKEY_ALREADY_REGISTERED","Hot key is already registered." +"00000582","1410","-4294965886","ERROR_CLASS_ALREADY_EXISTS","Class already exists." +"00000583","1411","-4294965885","ERROR_CLASS_DOES_NOT_EXIST","Class does not exist." +"00000584","1412","-4294965884","ERROR_CLASS_HAS_WINDOWS","Class still has open windows." +"00000585","1413","-4294965883","ERROR_INVALID_INDEX","Invalid index." +"00000586","1414","-4294965882","ERROR_INVALID_ICON_HANDLE","Invalid icon handle." +"00000587","1415","-4294965881","ERROR_PRIVATE_DIALOG_INDEX","Using private DIALOG window words." +"00000588","1416","-4294965880","ERROR_LISTBOX_ID_NOT_FOUND","The list box identifier was not found." +"00000589","1417","-4294965879","ERROR_NO_WILDCARD_CHARACTERS","No wildcards were found." +"0000058A","1418","-4294965878","ERROR_CLIPBOARD_NOT_OPEN","Thread does not have a clipboard open." +"0000058B","1419","-4294965877","ERROR_HOTKEY_NOT_REGISTERED","Hot key is not registered." +"0000058C","1420","-4294965876","ERROR_WINDOW_NOT_DIALOG","The window is not a valid dialog window." +"0000058D","1421","-4294965875","ERROR_CONTROL_ID_NOT_FOUND","Control ID not found." +"0000058E","1422","-4294965874","ERROR_INVALID_COMBOBOX_MESSAGE","Invalid message for a combo box because it does not have an edit control." +"0000058F","1423","-4294965873","ERROR_WINDOW_NOT_COMBOBOX","The window is not a combo box." +"00000590","1424","-4294965872","ERROR_INVALID_EDIT_HEIGHT","Height must be less than 256." +"00000591","1425","-4294965871","ERROR_DC_NOT_FOUND","Invalid device context." +"00000592","1426","-4294965870","ERROR_INVALID_HOOK_FILTER","Invalid hook procedure type." +"00000593","1427","-4294965869","ERROR_INVALID_FILTER_PROC","Invalid hook procedure." +"00000594","1428","-4294965868","ERROR_HOOK_NEEDS_HMOD","Cannot set nonlocal hook without a module handle." +"00000595","1429","-4294965867","ERROR_GLOBAL_ONLY_HOOK","This hook procedure can only be set globally." +"00000596","1430","-4294965866","ERROR_JOURNAL_HOOK_SET","The journal hook procedure is already installed." +"00000597","1431","-4294965865","ERROR_HOOK_NOT_INSTALLED","The hook procedure is not installed." +"00000598","1432","-4294965864","ERROR_INVALID_LB_MESSAGE","Invalid message for single-selection listbox." +"00000599","1433","-4294965863","ERROR_SETCOUNT_ON_BAD_LB","LB_SETCOUNT sent to non-lazy listbox." +"0000059A","1434","-4294965862","ERROR_LB_WITHOUT_TABSTOPS","This list box does not support tab stops." +"0000059B","1435","-4294965861","ERROR_DESTROY_OBJECT_OF_OTHER_THREAD","Cannot destroy object created by another thread." +"0000059C","1436","-4294965860","ERROR_CHILD_WINDOW_MENU","Child windows cannot have menus." +"0000059D","1437","-4294965859","ERROR_NO_SYSTEM_MENU","The window does not have a system menu." +"0000059E","1438","-4294965858","ERROR_INVALID_MSGBOX_STYLE","Invalid message box style." +"0000059F","1439","-4294965857","ERROR_INVALID_SPI_VALUE","Invalid system-wide (SPI_*) parameter." +"000005A0","1440","-4294965856","ERROR_SCREEN_ALREADY_LOCKED","Screen already locked." +"000005A1","1441","-4294965855","ERROR_HWNDS_HAVE_DIFF_PARENT","All handles to windows in a multiple-window position structure must have the same parent." +"000005A2","1442","-4294965854","ERROR_NOT_CHILD_WINDOW","The window is not a child window." +"000005A3","1443","-4294965853","ERROR_INVALID_GW_COMMAND","Invalid GW_* command." +"000005A4","1444","-4294965852","ERROR_INVALID_THREAD_ID","Invalid thread identifier." +"000005A5","1445","-4294965851","ERROR_NON_MDICHILD_WINDOW","Cannot process a message from a window that is not a multiple document interface." +"000005A6","1446","-4294965850","ERROR_POPUP_ALREADY_ACTIVE","Popup menu already active." +"000005A7","1447","-4294965849","ERROR_NO_SCROLLBARS","The window does not have scroll bars." +"000005A8","1448","-4294965848","ERROR_INVALID_SCROLLBAR_RANGE","Scroll bar range cannot be greater than 0x7FFF (MAXLONG)." +"000005A9","1449","-4294965847","ERROR_INVALID_SHOWWIN_COMMAND","Cannot show or remove the window in the way specified." +"000005AA","1450","-4294965846","ERROR_NO_SYSTEM_RESOURCES","Insufficient system resources exist to complete the requested service." +"000005AB","1451","-4294965845","ERROR_NONPAGED_SYSTEM_RESOURCES","Insufficient system resources exist to complete the requested service." +"000005AC","1452","-4294965844","ERROR_PAGED_SYSTEM_RESOURCES","Insufficient system resources exist to complete the requested service." +"000005AD","1453","-4294965843","ERROR_WORKING_SET_QUOTA","Insufficient quota to complete the requested service." +"000005AE","1454","-4294965842","ERROR_PAGEFILE_QUOTA","Insufficient quota to complete the requested service." +"000005AF","1455","-4294965841","ERROR_COMMITMENT_LIMIT","The paging file is too small for this operation to complete." +"000005B0","1456","-4294965840","ERROR_MENU_ITEM_NOT_FOUND","A menu item was not found." +"000005B1","1457","-4294965839","ERROR_INVALID_KEYBOARD_HANDLE","Invalid keyboard layout handle." +"000005B2","1458","-4294965838","ERROR_HOOK_TYPE_NOT_ALLOWED","Hook type not allowed." +"000005B3","1459","-4294965837","ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION","This operation requires an interactive window station." +"000005B4","1460","-4294965836","ERROR_TIMEOUT","This operation returned because the timeout period expired." +"000005B5","1461","-4294965835","ERROR_INVALID_MONITOR_HANDLE","Invalid monitor handle." +"000005B6","1462","-4294965834","ERROR_INCORRECT_SIZE","Incorrect size argument." +"000005B7","1463","-4294965833","ERROR_SYMLINK_CLASS_DISABLED","The symbolic link cannot be followed because its type is disabled." +"000005B8","1464","-4294965832","ERROR_SYMLINK_NOT_SUPPORTED","This application does not support the current operation on symbolic links." +"000005B9","1465","-4294965831","ERROR_XML_PARSE_ERROR","Windows was unable to parse the requested XML data." +"000005BA","1466","-4294965830","ERROR_XMLDSIG_ERROR","An error was encountered while processing an XML digital signature." +"000005BB","1467","-4294965829","ERROR_RESTART_APPLICATION","This application must be restarted." +"000005BC","1468","-4294965828","ERROR_WRONG_COMPARTMENT","The caller made the connection request in the wrong routing compartment." +"000005BD","1469","-4294965827","ERROR_AUTHIP_FAILURE","There was an AuthIP failure when attempting to connect to the remote host." +"000005BE","1470","-4294965826","ERROR_NO_NVRAM_RESOURCES","Insufficient NVRAM resources exist to complete the requested service. A reboot might be required." +"000005BF","1471","-4294965825","ERROR_NOT_GUI_PROCESS","Unable to finish the requested operation because the specified process is not a GUI process." +"000005D5","1493","-4294965803","NULL","" +"000005DC","1500","-4294965796","ERROR_EVENTLOG_FILE_CORRUPT","The event log file is corrupted." +"000005DD","1501","-4294965795","ERROR_EVENTLOG_CANT_START","No event log file could be opened - so the event logging service did not start." +"000005DE","1502","-4294965794","ERROR_LOG_FILE_FULL","The event log file is full." +"000005DF","1503","-4294965793","ERROR_EVENTLOG_FILE_CHANGED","The event log file has changed between read operations." +"0000060E","1550","-4294965746","ERROR_INVALID_TASK_NAME","The specified task name is invalid." +"0000060F","1551","-4294965745","ERROR_INVALID_TASK_INDEX","The specified task index is invalid." +"00000610","1552","-4294965744","ERROR_THREAD_ALREADY_IN_TASK","The specified thread is already joining a task." +"00000619","1561","-4294965735","Error_Invalid_HW_Profile","The specified hardware profile configuration is invalid." +"00000641","1601","-4294965695","ERROR_INSTALL_SERVICE_FAILURE","The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed." +"00000642","1602","-4294965694","ERROR_INSTALL_USEREXIT","User cancelled installation." +"00000643","1603","-4294965693","ERROR_INSTALL_FAILURE","Fatal error during installation. OR Previous MSI installer is missing (Or it might mean Install successful but system restart may be required.) Should this be add as an `InstallerSuccessCode` or similar?." +"00000644","1604","-4294965692","ERROR_INSTALL_SUSPEND","Installation suspended - incomplete." +"00000645","1605","-4294965691","ERROR_UNKNOWN_PRODUCT","This action is only valid for products that are currently installed." +"00000646","1606","-4294965690","ERROR_UNKNOWN_FEATURE","Feature ID not registered." +"00000647","1607","-4294965689","ERROR_UNKNOWN_COMPONENT","Component ID not registered." +"00000648","1608","-4294965688","ERROR_UNKNOWN_PROPERTY","Unknown property." +"00000649","1609","-4294965687","ERROR_INVALID_HANDLE_STATE","Handle is in an invalid state." +"0000064A","1610","-4294965686","ERROR_BAD_CONFIGURATION","The configuration data for this product is corrupt." +"0000064B","1611","-4294965685","ERROR_INDEX_ABSENT","Component qualifier not present." +"0000064C","1612","-4294965684","ERROR_INSTALL_SOURCE_ABSENT","The installation source for this product is not available. Verify that the source exists and that you can access it." +"0000064D","1613","-4294965683","ERROR_INSTALL_PACKAGE_VERSION","This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service." +"0000064E","1614","-4294965682","ERROR_PRODUCT_UNINSTALLED","Product is uninstalled." +"0000064F","1615","-4294965681","ERROR_BAD_QUERY_SYNTAX","SQL query syntax invalid or unsupported." +"00000650","1616","-4294965680","ERROR_INVALID_FIELD","Record field does not exist." +"00000651","1617","-4294965679","ERROR_DEVICE_REMOVED","The device has been removed." +"00000652","1618","-4294965678","ERROR_INSTALL_ALREADY_RUNNING","Another installation is already in progress. Complete that installation before proceeding with this install." +"00000653","1619","-4294965677","ERROR_INSTALL_PACKAGE_OPEN_FAILED","This installation package could not be opened. Verify that the package exists and that you can access it - or contact the application vendor to verify that this is a valid Windows Installer package." +"00000654","1620","-4294965676","ERROR_INSTALL_PACKAGE_INVALID","This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package." +"00000655","1621","-4294965675","ERROR_INSTALL_UI_FAILURE","There was an error starting the Windows Installer service user interface." +"00000656","1622","-4294965674","ERROR_INSTALL_LOG_FAILURE","Error opening installation log file. Verify that the specified log file location exists and that you can write to it." +"00000657","1623","-4294965673","ERROR_INSTALL_LANGUAGE_UNSUPPORTED","The language of this installation package is not supported by your system." +"00000658","1624","-4294965672","ERROR_INSTALL_TRANSFORM_FAILURE","Error applying transforms. Verify that the specified transform paths are valid." +"00000659","1625","-4294965671","ERROR_INSTALL_PACKAGE_REJECTED","This installation is forbidden by system policy." +"0000065A","1626","-4294965670","ERROR_FUNCTION_NOT_CALLED","Function could not be executed." +"0000065B","1627","-4294965669","ERROR_FUNCTION_FAILED","Function failed during execution." +"0000065C","1628","-4294965668","ERROR_INVALID_TABLE","Invalid or unknown table specified. (Double-check the installer switches?) ." +"0000065D","1629","-4294965667","ERROR_DATATYPE_MISMATCH","Data supplied is of wrong type." +"0000065E","1630","-4294965666","ERROR_UNSUPPORTED_TYPE","Data of this type is not supported." +"0000065F","1631","-4294965665","ERROR_CREATE_FAILED","The Windows Installer service failed to start." +"00000660","1632","-4294965664","ERROR_INSTALL_TEMP_UNWRITABLE","The Temp folder is on a drive that is full or is inaccessible. Free up space on the drive or verify that you have write permission on the Temp folder." +"00000661","1633","-4294965663","ERROR_INSTALL_PLATFORM_UNSUPPORTED","This installation package is not supported by this processor type. (Does this manifest have `Architecture: x86`? It might need to be `x64`.)." +"00000662","1634","-4294965662","ERROR_INSTALL_NOTUSED","Component not used on this computer." +"00000663","1635","-4294965661","ERROR_PATCH_PACKAGE_OPEN_FAILED","This update package could not be opened. Verify that the update package exists and that you can access it - or contact the application vendor to verify that this is a valid Windows Installer update package." +"00000664","1636","-4294965660","ERROR_PATCH_PACKAGE_INVALID","This update package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer update package." +"00000665","1637","-4294965659","ERROR_PATCH_PACKAGE_UNSUPPORTED","This update package cannot be processed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service." +"00000666","1638","-4294965658","ERROR_PRODUCT_VERSION","Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product - use Add/Remove Programs on the Control Panel." +"00000667","1639","-4294965657","ERROR_INVALID_COMMAND_LINE","Invalid command line argument. Double-check the installer switches. ." +"00000668","1640","-4294965656","ERROR_INSTALL_REMOTE_DISALLOWED","Only administrators have permission to add - remove - or configure server software during a Terminal services remote session. If you want to install or configure software on the server - contact your network administrator." +"00000669","1641","-4294965655","ERROR_SUCCESS_REBOOT_INITIATED","The requested operation completed successfully. The system will be restarted so the changes can take effect." +"0000066A","1642","-4294965654","ERROR_PATCH_TARGET_NOT_FOUND","The upgrade cannot be installed by the Windows Installer service because the program to be upgraded may be missing - or the upgrade may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade." +"0000066B","1643","-4294965653","ERROR_PATCH_PACKAGE_REJECTED","The update package is not permitted by software restriction policy." +"0000066C","1644","-4294965652","ERROR_INSTALL_TRANSFORM_REJECTED","One or more customizations are not permitted by software restriction policy." +"0000066D","1645","-4294965651","ERROR_INSTALL_REMOTE_PROHIBITED","The Windows Installer does not permit installation from a Remote Desktop Connection." +"0000066E","1646","-4294965650","ERROR_PATCH_REMOVAL_UNSUPPORTED","Uninstallation of the update package is not supported." +"0000066F","1647","-4294965649","ERROR_UNKNOWN_PATCH","The update is not applied to this product." +"00000670","1648","-4294965648","ERROR_PATCH_NO_SEQUENCE","No valid sequence could be found for the set of updates." +"00000671","1649","-4294965647","ERROR_PATCH_REMOVAL_DISALLOWED","Update removal was disallowed by policy." +"00000672","1650","-4294965646","ERROR_INVALID_PATCH_XML","The XML update data is invalid." +"00000673","1651","-4294965645","ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT","Windows Installer does not permit updating of managed advertised products. At least one feature of the product must be installed before applying the update." +"00000674","1652","-4294965644","ERROR_INSTALL_SERVICE_SAFEBOOT","The Windows Installer service is not accessible in Safe Mode. Please try again when your computer is not in Safe Mode or you can use System Restore to return your machine to a previous good state." +"00000675","1653","-4294965643","ERROR_FAIL_FAST_EXCEPTION","A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately." +"00000676","1654","-4294965642","ERROR_INSTALL_REJECTED","The app that you are trying to run is not supported on this version of Windows." +"000006A4","1700","-4294965596","RPC_S_INVALID_STRING_BINDING","The string binding is invalid." +"000006A5","1701","-4294965595","RPC_S_WRONG_KIND_OF_BINDING","The binding handle is not the correct type." +"000006A6","1702","-4294965594","RPC_S_INVALID_BINDING","The binding handle is invalid." +"000006A7","1703","-4294965593","RPC_S_PROTSEQ_NOT_SUPPORTED","The RPC protocol sequence is not supported." +"000006A8","1704","-4294965592","RPC_S_INVALID_RPC_PROTSEQ","The RPC protocol sequence is invalid." +"000006A9","1705","-4294965591","RPC_S_INVALID_STRING_UUID","The string universal unique identifier." +"000006AA","1706","-4294965590","RPC_S_INVALID_ENDPOINT_FORMAT","The endpoint format is invalid." +"000006AB","1707","-4294965589","RPC_S_INVALID_NET_ADDR","The network address is invalid." +"000006AC","1708","-4294965588","RPC_S_NO_ENDPOINT_FOUND","No endpoint was found." +"000006AD","1709","-4294965587","RPC_S_INVALID_TIMEOUT","The timeout value is invalid." +"000006AE","1710","-4294965586","RPC_S_OBJECT_NOT_FOUND","The object universal unique identifier." +"000006AF","1711","-4294965585","RPC_S_ALREADY_REGISTERED","The object universal unique identifier (UUID) has already been registered." +"000006B0","1712","-4294965584","RPC_S_TYPE_ALREADY_REGISTERED","The type universal unique identifier." +"000006B1","1713","-4294965583","RPC_S_ALREADY_LISTENING","The RPC server is already listening." +"000006B2","1714","-4294965582","RPC_S_NO_PROTSEQS_REGISTERED","No protocol sequences have been registered." +"000006B3","1715","-4294965581","RPC_S_NOT_LISTENING","The RPC server is not listening." +"000006B4","1716","-4294965580","RPC_S_UNKNOWN_MGR_TYPE","The manager type is unknown." +"000006B5","1717","-4294965579","RPC_S_UNKNOWN_IF","The interface is unknown." +"000006B6","1718","-4294965578","RPC_S_NO_BINDINGS","There are no bindings." +"000006B7","1719","-4294965577","RPC_S_NO_PROTSEQS","There are no protocol sequences." +"000006B8","1720","-4294965576","RPC_S_CANT_CREATE_ENDPOINT","The endpoint cannot be created." +"000006B9","1721","-4294965575","RPC_S_OUT_OF_RESOURCES","Not enough resources are available to complete this operation." +"000006BA","1722","-4294965574","RPC_S_SERVER_UNAVAILABLE","The RPC server is unavailable." +"000006BB","1723","-4294965573","RPC_S_SERVER_TOO_BUSY","The RPC server is too busy to complete this operation." +"000006BC","1724","-4294965572","RPC_S_INVALID_NETWORK_OPTIONS","The network options are invalid." +"000006BD","1725","-4294965571","RPC_S_NO_CALL_ACTIVE","There is not a remote procedure call active in this thread." +"000006BE","1726","-4294965570","RPC_S_CALL_FAILED","The remote procedure call failed." +"000006BF","1727","-4294965569","RPC_S_CALL_FAILED_DNE","The remote procedure call failed and did not execute." +"000006C0","1728","-4294965568","RPC_S_PROTOCOL_ERROR","A remote procedure call." +"000006C1","1729","-4294965567","RPC_S_PROXY_ACCESS_DENIED","Access to the HTTP proxy is denied." +"000006C2","1730","-4294965566","RPC_S_UNSUPPORTED_TRANS_SYN","The transfer syntax is not supported by the RPC server." +"000006C4","1732","-4294965564","RPC_S_UNSUPPORTED_TYPE","The universal unique identifier." +"000006C5","1733","-4294965563","RPC_S_INVALID_TAG","The tag is invalid." +"000006C6","1734","-4294965562","RPC_S_INVALID_BOUND","The array bounds are invalid." +"000006C7","1735","-4294965561","RPC_S_NO_ENTRY_NAME","The binding does not contain an entry name." +"000006C8","1736","-4294965560","RPC_S_INVALID_NAME_SYNTAX","The name syntax is invalid." +"000006C9","1737","-4294965559","RPC_S_UNSUPPORTED_NAME_SYNTAX","The name syntax is not supported." +"000006CB","1739","-4294965557","RPC_S_UUID_NO_ADDRESS","No network address is available to use to construct a universal unique identifier." +"000006CC","1740","-4294965556","RPC_S_DUPLICATE_ENDPOINT","The endpoint is a duplicate." +"000006CD","1741","-4294965555","RPC_S_UNKNOWN_AUTHN_TYPE","The authentication type is unknown." +"000006CE","1742","-4294965554","RPC_S_MAX_CALLS_TOO_SMALL","The maximum number of calls is too small." +"000006CF","1743","-4294965553","RPC_S_STRING_TOO_LONG","The string is too long." +"000006D0","1744","-4294965552","RPC_S_PROTSEQ_NOT_FOUND","The RPC protocol sequence was not found." +"000006D1","1745","-4294965551","RPC_S_PROCNUM_OUT_OF_RANGE","The procedure number is out of range." +"000006D2","1746","-4294965550","RPC_S_BINDING_HAS_NO_AUTH","The binding does not contain any authentication information." +"000006D3","1747","-4294965549","RPC_S_UNKNOWN_AUTHN_SERVICE","The authentication service is unknown." +"000006D4","1748","-4294965548","RPC_S_UNKNOWN_AUTHN_LEVEL","The authentication level is unknown." +"000006D5","1749","-4294965547","RPC_S_INVALID_AUTH_IDENTITY","The security context is invalid." +"000006D6","1750","-4294965546","RPC_S_UNKNOWN_AUTHZ_SERVICE","The authorization service is unknown." +"000006D7","1751","-4294965545","EPT_S_INVALID_ENTRY","The entry is invalid." +"000006D8","1752","-4294965544","EPT_S_CANT_PERFORM_OP","The server endpoint cannot perform the operation." +"000006D9","1753","-4294965543","EPT_S_NOT_REGISTERED","There are no more endpoints available from the endpoint mapper." +"000006DA","1754","-4294965542","RPC_S_NOTHING_TO_EXPORT","No interfaces have been exported." +"000006DB","1755","-4294965541","RPC_S_INCOMPLETE_NAME","The entry name is incomplete." +"000006DC","1756","-4294965540","RPC_S_INVALID_VERS_OPTION","The version option is invalid." +"000006DD","1757","-4294965539","RPC_S_NO_MORE_MEMBERS","There are no more members." +"000006DE","1758","-4294965538","RPC_S_NOT_ALL_OBJS_UNEXPORTED","There is nothing to unexport." +"000006DF","1759","-4294965537","RPC_S_INTERFACE_NOT_FOUND","The interface was not found." +"000006E0","1760","-4294965536","RPC_S_ENTRY_ALREADY_EXISTS","The entry already exists." +"000006E1","1761","-4294965535","RPC_S_ENTRY_NOT_FOUND","The entry is not found." +"000006E2","1762","-4294965534","RPC_S_NAME_SERVICE_UNAVAILABLE","The name service is unavailable." +"000006E3","1763","-4294965533","RPC_S_INVALID_NAF_ID","The network address family is invalid." +"000006E4","1764","-4294965532","RPC_S_CANNOT_SUPPORT","The requested operation is not supported." +"000006E5","1765","-4294965531","RPC_S_NO_CONTEXT_AVAILABLE","No security context is available to allow impersonation." +"000006E6","1766","-4294965530","RPC_S_INTERNAL_ERROR","An internal error occurred in a remote procedure call (RPC)." +"000006E7","1767","-4294965529","RPC_S_ZERO_DIVIDE","The RPC server attempted an integer division by zero." +"000006E8","1768","-4294965528","RPC_S_ADDRESS_ERROR","An addressing error occurred in the RPC server." +"000006E9","1769","-4294965527","RPC_S_FP_DIV_ZERO","A floating-point operation at the RPC server caused a division by zero." +"000006EA","1770","-4294965526","RPC_S_FP_UNDERFLOW","A floating-point underflow occurred at the RPC server." +"000006EB","1771","-4294965525","RPC_S_FP_OVERFLOW","A floating-point overflow occurred at the RPC server." +"000006EC","1772","-4294965524","RPC_X_NO_MORE_ENTRIES","The list of RPC servers available for the binding of auto handles has been exhausted." +"000006ED","1773","-4294965523","RPC_X_SS_CHAR_TRANS_OPEN_FAIL","Unable to open the character translation table file." +"000006EE","1774","-4294965522","RPC_X_SS_CHAR_TRANS_SHORT_FILE","The file containing the character translation table has fewer than 512 bytes." +"000006EF","1775","-4294965521","RPC_X_SS_IN_NULL_CONTEXT","A null context handle was passed from the client to the host during a remote procedure call." +"000006F1","1777","-4294965519","RPC_X_SS_CONTEXT_DAMAGED","The context handle changed during a remote procedure call." +"000006F2","1778","-4294965518","RPC_X_SS_HANDLES_MISMATCH","The binding handles passed to a remote procedure call do not match." +"000006F3","1779","-4294965517","RPC_X_SS_CANNOT_GET_CALL_HANDLE","The stub is unable to get the remote procedure call handle." +"000006F4","1780","-4294965516","RPC_X_NULL_REF_POINTER","A null reference pointer was passed to the stub." +"000006F5","1781","-4294965515","RPC_X_ENUM_VALUE_OUT_OF_RANGE","The enumeration value is out of range." +"000006F6","1782","-4294965514","RPC_X_BYTE_COUNT_TOO_SMALL","The byte count is too small." +"000006F7","1783","-4294965513","RPC_X_BAD_STUB_DATA","The stub received bad data." +"000006F8","1784","-4294965512","ERROR_INVALID_USER_BUFFER","The supplied user buffer is not valid for the requested operation." +"000006F9","1785","-4294965511","ERROR_UNRECOGNIZED_MEDIA","The disk media is not recognized. It may not be formatted." +"000006FA","1786","-4294965510","ERROR_NO_TRUST_LSA_SECRET","The workstation does not have a trust secret." +"000006FB","1787","-4294965509","ERROR_NO_TRUST_SAM_ACCOUNT","The SAM database on the Windows NT Server does not have a computer account for this workstation trust relationship." +"000006FC","1788","-4294965508","ERROR_TRUSTED_DOMAIN_FAILURE","The trust relationship between the primary domain and the trusted domain failed." +"000006FD","1789","-4294965507","ERROR_TRUSTED_RELATIONSHIP_FAILURE","The trust relationship between this workstation and the primary domain failed." +"000006FE","1790","-4294965506","ERROR_TRUST_FAILURE","The network logon failed." +"000006FF","1791","-4294965505","RPC_S_CALL_IN_PROGRESS","A remote procedure call is already in progress for this thread." +"00000700","1792","-4294965504","ERROR_NETLOGON_NOT_STARTED","An attempt was made to logon - but the network logon service was not started." +"00000701","1793","-4294965503","ERROR_ACCOUNT_EXPIRED","The user's account has expired." +"00000702","1794","-4294965502","ERROR_REDIRECTOR_HAS_OPEN_HANDLES","The redirector is in use and cannot be unloaded." +"00000703","1795","-4294965501","ERROR_PRINTER_DRIVER_ALREADY_INSTALLED","The specified printer driver is already installed." +"00000704","1796","-4294965500","ERROR_UNKNOWN_PORT","The specified port is unknown." +"00000705","1797","-4294965499","ERROR_UNKNOWN_PRINTER_DRIVER","The printer driver is unknown." +"00000706","1798","-4294965498","ERROR_UNKNOWN_PRINTPROCESSOR","The print processor is unknown." +"00000707","1799","-4294965497","ERROR_INVALID_SEPARATOR_FILE","The specified separator file is invalid." +"00000708","1800","-4294965496","ERROR_INVALID_PRIORITY","The specified priority is invalid." +"00000709","1801","-4294965495","ERROR_INVALID_PRINTER_NAME","The printer name is invalid." +"0000070A","1802","-4294965494","ERROR_PRINTER_ALREADY_EXISTS","The printer already exists." +"0000070B","1803","-4294965493","ERROR_INVALID_PRINTER_COMMAND","The printer command is invalid." +"0000070C","1804","-4294965492","ERROR_INVALID_DATATYPE","The specified datatype is invalid." +"0000070D","1805","-4294965491","ERROR_INVALID_ENVIRONMENT","The environment specified is invalid." +"0000070E","1806","-4294965490","RPC_S_NO_MORE_BINDINGS","There are no more bindings." +"0000070F","1807","-4294965489","ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT","The account used is an interdomain trust account. Use your global user account or local user account to access this server." +"00000710","1808","-4294965488","ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT","The account used is a computer account. Use your global user account or local user account to access this server." +"00000711","1809","-4294965487","ERROR_NOLOGON_SERVER_TRUST_ACCOUNT","The account used is a server trust account. Use your global user account or local user account to access this server." +"00000712","1810","-4294965486","","The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain." +"00000713","1811","-4294965485","ERROR_SERVER_HAS_OPEN_HANDLES","The server is in use and cannot be unloaded." +"00000714","1812","-4294965484","ERROR_RESOURCE_DATA_NOT_FOUND","The specified image file did not contain a resource section." +"00000715","1813","-4294965483","ERROR_RESOURCE_TYPE_NOT_FOUND","The specified resource type cannot be found in the image file." +"00000716","1814","-4294965482","ERROR_RESOURCE_NAME_NOT_FOUND","The specified resource name cannot be found in the image file." +"00000717","1815","-4294965481","ERROR_RESOURCE_LANG_NOT_FOUND","The specified resource language ID cannot be found in the image file." +"00000718","1816","-4294965480","ERROR_NOT_ENOUGH_QUOTA","Not enough quota is available to process this command." +"00000719","1817","-4294965479","RPC_S_NO_INTERFACES","No interfaces have been registered." +"0000071A","1818","-4294965478","RPC_S_CALL_CANCELLED","The remote procedure call was cancelled." +"0000071B","1819","-4294965477","RPC_S_BINDING_INCOMPLETE","The binding handle does not contain all required information." +"0000071C","1820","-4294965476","RPC_S_COMM_FAILURE","A communications failure occurred during a remote procedure call." +"0000071D","1821","-4294965475","RPC_S_UNSUPPORTED_AUTHN_LEVEL","The requested authentication level is not supported." +"0000071E","1822","-4294965474","RPC_S_NO_PRINC_NAME","No principal name registered." +"0000071F","1823","-4294965473","RPC_S_NOT_RPC_ERROR","The error specified is not a valid Windows NT RPC error code." +"00000720","1824","-4294965472","RPC_S_UUID_LOCAL_ONLY","A UUID that is valid only on this computer has been allocated." +"00000721","1825","-4294965471","RPC_S_SEC_PKG_ERROR","A security package specific error occurred." +"00000722","1826","-4294965470","RPC_S_NOT_CANCELLED","Thread is not cancelled." +"00000723","1827","-4294965469","RPC_X_INVALID_ES_ACTION","Invalid operation on the encoding/decoding handle." +"00000724","1828","-4294965468","RPC_X_WRONG_ES_VERSION","Incompatible version of the serializing package." +"00000725","1829","-4294965467","RPC_X_WRONG_STUB_VERSION","Incompatible version of the RPC stub." +"00000726","1830","-4294965466","RPC_X_INVALID_PIPE_OBJECT","The RPC pipe object is invalid or corrupted." +"00000727","1831","-4294965465","RPC_X_WRONG_PIPE_ORDER","An invalid operation was attempted on an RPC pipe object." +"00000728","1832","-4294965464","RPC_X_WRONG_PIPE_VERSION","Unsupported RPC pipe version." +"00000729","1833","-4294965463","RPC_S_COOKIE_AUTH_FAILED","HTTP proxy server rejected the connection because the cookie authentication failed." +"0000076A","1898","-4294965398","RPC_S_GROUP_MEMBER_NOT_FOUND","The group member was not found." +"0000076B","1899","-4294965397","EPT_S_CANT_CREATE","The endpoint mapper database entry could not be created." +"0000076C","1900","-4294965396","RPC_S_INVALID_OBJECT","The object universal unique identifier (UUID) is the nil UUID." +"0000076D","1901","-4294965395","ERROR_INVALID_TIME","The specified time is invalid." +"0000076E","1902","-4294965394","ERROR_INVALID_FORM_NAME","The specified Form name is invalid." +"0000076F","1903","-4294965393","ERROR_INVALID_FORM_SIZE","The specified Form size is invalid." +"00000770","1904","-4294965392","ERROR_ALREADY_WAITING","The specified printer handle is already being waited on." +"00000771","1905","-4294965391","ERROR_PRINTER_DELETED","The specified printer has been deleted." +"00000772","1906","-4294965390","ERROR_INVALID_PRINTER_STATE","The state of the Printer is invalid." +"00000773","1907","-4294965389","ERROR_PASSWORD_MUST_CHANGE","The user's password must be changed before signing in." +"00000774","1908","-4294965388","ERROR_DOMAIN_CONTROLLER_NOT_FOUND","Could not find the domain controller for this domain." +"00000775","1909","-4294965387","ERROR_ACCOUNT_LOCKED_OUT","The referenced account is currently locked out and may not be logged on to." +"00000776","1910","-4294965386","OR_INVALID_OXID","The object exporter specified was not found." +"00000777","1911","-4294965385","OR_INVALID_OID","The object specified was not found." +"00000778","1912","-4294965384","OR_INVALID_SET","The object resolver set specified was not found." +"00000779","1913","-4294965383","RPC_S_SEND_INCOMPLETE","Some data remains to be sent in the request buffer." +"0000077A","1914","-4294965382","RPC_S_INVALID_ASYNC_HANDLE","Invalid asynchronous remote procedure call handle." +"0000077B","1915","-4294965381","RPC_S_INVALID_ASYNC_CALL","Invalid asynchronous RPC call handle for this operation." +"0000077C","1916","-4294965380","RPC_X_PIPE_CLOSED","The RPC pipe object has already been closed." +"0000077D","1917","-4294965379","RPC_X_PIPE_DISCIPLINE_ERROR","The RPC call completed before all pipes were processed." +"0000077E","1918","-4294965378","RPC_X_PIPE_EMPTY","No more data is available from the RPC pipe." +"0000077F","1919","-4294965377","ERROR_NO_SITENAME","No site name is available for this machine." +"00000780","1920","-4294965376","ERROR_CANT_ACCESS_FILE","The file cannot be accessed by the system." +"00000781","1921","-4294965375","ERROR_CANT_RESOLVE_FILENAME","The name of the file cannot be resolved by the system." +"00000782","1922","-4294965374","RPC_S_ENTRY_TYPE_MISMATCH","The entry is not of the expected type." +"00000783","1923","-4294965373","RPC_S_NOT_ALL_OBJS_EXPORTED","Not all object UUIDs could be exported to the specified entry." +"00000784","1924","-4294965372","RPC_S_INTERFACE_NOT_EXPORTED","Interface could not be exported to the specified entry." +"00000785","1925","-4294965371","RPC_S_PROFILE_NOT_ADDED","The specified profile entry could not be added." +"00000786","1926","-4294965370","RPC_S_PRF_ELT_NOT_ADDED","The specified profile element could not be added." +"00000787","1927","-4294965369","RPC_S_PRF_ELT_NOT_REMOVED","The specified profile element could not be removed." +"00000788","1928","-4294965368","RPC_S_GRP_ELT_NOT_ADDED","The group element could not be added." +"00000789","1929","-4294965367","RPC_S_GRP_ELT_NOT_REMOVED","The group element could not be removed." +"0000078A","1930","-4294965366","ERROR_KM_DRIVER_BLOCKED","The printer driver is not compatible with a policy enabled on your computer that blocks NT 4.0 drivers." +"0000078B","1931","-4294965365","ERROR_CONTEXT_EXPIRED","The context has expired and can no longer be used." +"0000078C","1932","-4294965364","ERROR_PER_USER_TRUST_QUOTA_EXCEEDED","The current user's delegated trust creation quota has been exceeded." +"0000078D","1933","-4294965363","ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED","The total delegated trust creation quota has been exceeded." +"0000078E","1934","-4294965362","ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED","The current user's delegated trust deletion quota has been exceeded." +"0000078F","1935","-4294965361","ERROR_AUTHENTICATION_FIREWALL_FAILED","The computer you are signing into is protected by an authentication firewall. The specified account is not allowed to authenticate to the computer." +"00000790","1936","-4294965360","ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED","Remote connections to the Print Spooler are blocked by a policy set on your machine." +"00000791","1937","-4294965359","ERROR_NTLM_BLOCKED","Authentication failed because NTLM authentication has been disabled." +"00000792","1938","-4294965358","ERROR_PASSWORD_CHANGE_REQUIRED","Logon Failure: EAS policy requires that the user change their password before this operation can be performed." +"000007D0","2000","-4294965296","ERROR_INVALID_PIXEL_FORMAT","The pixel format is invalid." +"000007D1","2001","-4294965295","ERROR_BAD_DRIVER","The specified driver is invalid." +"000007D2","2002","-4294965294","ERROR_INVALID_WINDOW_STYLE","The window style or class attribute is invalid for this operation." +"000007D3","2003","-4294965293","ERROR_METAFILE_NOT_SUPPORTED","The requested metafile operation is not supported." +"000007D4","2004","-4294965292","ERROR_TRANSFORM_NOT_SUPPORTED","The requested transformation operation is not supported." +"000007D5","2005","-4294965291","ERROR_CLIPPING_NOT_SUPPORTED","The requested clipping operation is not supported." +"000007DA","2010","-4294965286","ERROR_INVALID_CMM","The specified color management module is invalid." +"000007DB","2011","-4294965285","ERROR_INVALID_PROFILE","The specified color profile is invalid." +"000007DC","2012","-4294965284","ERROR_TAG_NOT_FOUND","The specified tag was not found." +"000007DD","2013","-4294965283","ERROR_TAG_NOT_PRESENT","A required tag is not present." +"000007DE","2014","-4294965282","ERROR_DUPLICATE_TAG","The specified tag is already present." +"000007DF","2015","-4294965281","ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE","The specified color profile is not associated with the specified device." +"000007E0","2016","-4294965280","ERROR_PROFILE_NOT_FOUND","The specified color profile was not found." +"000007E1","2017","-4294965279","ERROR_INVALID_COLORSPACE","The specified color space is invalid." +"000007E2","2018","-4294965278","ERROR_ICM_NOT_ENABLED","Image Color Management is not enabled." +"000007E3","2019","-4294965277","ERROR_DELETING_ICM_XFORM","There was an error while deleting the color transform." +"000007E4","2020","-4294965276","ERROR_INVALID_TRANSFORM","The specified color transform is invalid." +"000007E5","2021","-4294965275","ERROR_COLORSPACE_MISMATCH","The specified transform does not match the bitmap's color space." +"000007E6","2022","-4294965274","ERROR_INVALID_COLORINDEX","The specified named color index is not present in the profile." +"000007E7","2023","-4294965273","ERROR_PROFILE_DOES_NOT_MATCH_DEVICE","The specified profile is intended for a device of a different type than the specified device." +"0000083C","2108","-4294965188","ERROR_CONNECTED_OTHER_PASSWORD","The network connection was made successfully - but the user had to be prompted for a password other than the one originally specified." +"0000083D","2109","-4294965187","ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT","The network connection was made successfully using default credentials." +"0000089A","2202","-4294965094","ERROR_BAD_USERNAME","T2250e specified username is invalid." +"000008CA","2250","-4294965046","ERROR_NOT_CONNECTED","This network connection does not exist." +"00000961","2401","-4294964895","ERROR_OPEN_FILES","This network connection has files open or requests pending." +"00000962","2402","-4294964894","ERROR_ACTIVE_CONNECTIONS","Active connections still exist." +"00000963","2403","-4294964893","NERR_BADPasswordCore","This share name or password is invalid." +"00000964","2404","-4294964892","ERROR_DEVICE_IN_USE","The device is in use by an active process and cannot be disconnected." +"000009C4","2500","-4294964796","","Could not create a copy of the specified file. Please make sure your temporary directory is properly configured." +"000009C8","2504","-4294964792","","You do not have sufficient permissions to import a file into this repository." +"000009C9","2505","-4294964791","","You do not have permission to create a folder at the specified location. Please choose another location." +"000009CA","2506","-4294964790","","You do not have permission to create a document at the specified location. Please choose another location." +"000009CB","2507","-4294964789","","You do not have permission to create the specified parent folder structure. Please choose a folder that exists or move the new folder to another location." +"000009CC","2508","-4294964788","","The path must begin with the repository name." +"000009CD","2509","-4294964787","","Folder names must have at least one character and cannot be made entirely of spaces." +"000009CE","2510","-4294964786","","The folder path cannot be left empty." +"000009CF","2511","-4294964785","","The name of this entry cannot be left blank." +"00000BB8","3000","-4294964296","ERROR_UNKNOWN_PRINT_MONITOR","The specified print monitor is unknown." +"00000BB9","3001","-4294964295","ERROR_PRINTER_DRIVER_IN_USE","The specified printer driver is currently in use." +"00000BBA","3002","-4294964294","ERROR_SPOOL_FILE_NOT_FOUND","The spool file was not found." +"00000BBB","3003","-4294964293","ERROR_SPL_NO_STARTDOC","A StartDocPrinter call was not issued." +"00000BBC","3004","-4294964292","ERROR_SPL_NO_ADDJOB","An AddJob call was not issued." +"00000BBD","3005","-4294964291","ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED","The specified print processor has already been installed." +"00000BBE","3006","-4294964290","ERROR_PRINT_MONITOR_ALREADY_INSTALLED","The specified print monitor has already been installed." +"00000BBF","3007","-4294964289","ERROR_INVALID_PRINT_MONITOR","The specified print monitor does not have the required functions." +"00000BC0","3008","-4294964288","ERROR_PRINT_MONITOR_IN_USE","The specified print monitor is currently in use." +"00000BC1","3009","-4294964287","ERROR_PRINTER_HAS_JOBS_QUEUED","The requested operation is not allowed when there are jobs queued to the printer." +"00000BC2","3010","-4294964286","ERROR_SUCCESS_REBOOT_REQUIRED","The requested operation is successful. Changes will not be effective until the system is rebooted. (Should this be add as an `InstallerSuccessCode` or similar?)." +"00000BC4","3012","-4294964284","ERROR_PRINTER_NOT_FOUND","No printers were found." +"00000BC5","3013","-4294964283","ERROR_PRINTER_DRIVER_WARNED","The printer driver is known to be unreliable." +"00000BC6","3014","-4294964282","ERROR_PRINTER_DRIVER_BLOCKED","The printer driver is known to harm the system." +"00000BC7","3015","-4294964281","ERROR_PRINTER_DRIVER_PACKAGE_IN_USE","The specified printer driver package is currently in use." +"00000BC8","3016","-4294964280","ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND","Unable to find a core driver package that is required by the printer driver package." +"00000BC9","3017","-4294964279","ERROR_FAIL_REBOOT_REQUIRED","The requested operation failed. A system reboot is required to roll back changes made." +"00000BCA","3018","-4294964278","ERROR_FAIL_REBOOT_INITIATED","The requested operation failed. A system reboot has been initiated to roll back changes made." +"00000BCB","3019","-4294964277","ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED","The specified printer driver was not found on the system and needs to be downloaded." +"00000BCC","3020","-4294964276","ERROR_PRINT_JOB_RESTART_REQUIRED","The requested print job has failed to print. A print system update requires the job to be resubmitted." +"00000BCD","3021","-4294964275","ERROR_INVALID_PRINTER_DRIVER_MANIFEST","The printer driver does not contain a valid manifest - or contains too many manifests." +"00000BCE","3022","-4294964274","ERROR_PRINTER_NOT_SHAREABLE","The specified printer cannot be shared." +"00000BEA","3050","-4294964246","ERROR_REQUEST_PAUSED","The operation was paused." +"00000C0B","3083","-4294964213","NULL","" +"00000CC4","3268","-4294964028","NULL","" +"00000D47","3399","-4294963897","NULL","" +"00000E5C","3676","-4294963620","NULL","" +"00000E74","3700","-4294963596","NULL","" +"00000F6E","3950","-4294963346","ERROR_IO_REISSUE_AS_CACHED","Reissue the given operation as a cached IO operation." +"00000FA0","4000","-4294963296","ERROR_WINS_INTERNAL","WINS encountered an error while processing the command." +"00000FA1","4001","-4294963295","ERROR_CAN_NOT_DEL_LOCAL_WINS","The local WINS cannot be deleted." +"00000FA2","4002","-4294963294","ERROR_STATIC_INIT","The importation from the file failed." +"00000FA3","4003","-4294963293","ERROR_INC_BACKUP","The backup Failed." +"00000FA4","4004","-4294963292","","The backup Failed." +"00000FA5","4005","-4294963291","ERROR_REC_NON_EXISTENT","The name does not exist in the WINS database." +"00000FA6","4006","-4294963290","ERROR_RPL_NOT_ALLOWED","Replication with a non-configured partner is not allowed." +"00000FD2","4050","-4294963246","PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED","The version of the supplied content information is not supported." +"00000FD3","4051","-4294963245","PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO","The supplied content information is malformed." +"00000FD4","4052","-4294963244","PEERDIST_ERROR_MISSING_DATA","The requested data cannot be found in local or peer caches." +"00000FD5","4053","-4294963243","PEERDIST_ERROR_NO_MORE","No more data is available or required." +"00000FD6","4054","-4294963242","PEERDIST_ERROR_NOT_INITIALIZED","The supplied object has not been initialized." +"00000FD7","4055","-4294963241","PEERDIST_ERROR_ALREADY_INITIALIZED","The supplied object has already been initialized." +"00000FD8","4056","-4294963240","PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS","A shutdown operation is already in progress." +"00000FD9","4057","-4294963239","PEERDIST_ERROR_INVALIDATED","The supplied object has already been invalidated." +"00000FDA","4058","-4294963238","PEERDIST_ERROR_ALREADY_EXISTS","An element already exists and was not replaced." +"00000FDB","4059","-4294963237","PEERDIST_ERROR_OPERATION_NOTFOUND","Cannot cancel the requested operation as it has already been completed." +"00000FDC","4060","-4294963236","PEERDIST_ERROR_ALREADY_COMPLETED","cannot perform the requested operation because it has already been carried out." +"00000FDD","4061","-4294963235","PEERDIST_ERROR_OUT_OF_BOUNDS","An operation accessed data beyond the bounds of valid data." +"00000FDE","4062","-4294963234","PEERDIST_ERROR_VERSION_UNSUPPORTED","The requested version is not supported." +"00000FDF","4063","-4294963233","PEERDIST_ERROR_INVALID_CONFIGURATION","A configuration value is invalid." +"00000FE0","4064","-4294963232","PEERDIST_ERROR_NOT_LICENSED","The SKU is not licensed." +"00000FE1","4065","-4294963231","PEERDIST_ERROR_SERVICE_UNAVAILABLE","PeerDist Service is still initializing and will be available shortly." +"00000FE2","4066","-4294963230","PEERDIST_ERROR_TRUST_FAILURE","Communication with one or more computers will be temporarily blocked due to recent errors." +"00001004","4100","-4294963196","ERROR_DHCP_ADDRESS_CONFLICT","The DHCP client has obtained an IP address that is already in use on the network." +"00001068","4200","-4294963096","ERROR_WMI_GUID_NOT_FOUND","The GUID passed was not recognized as valid by a WMI data provider." +"00001069","4201","-4294963095","ERROR_WMI_INSTANCE_NOT_FOUND","The instance name passed was not recognized as valid by a WMI data provider." +"0000106A","4202","-4294963094","ERROR_WMI_ITEMID_NOT_FOUND","The data item ID passed was not recognized as valid by a WMI data provider." +"0000106B","4203","-4294963093","ERROR_WMI_TRY_AGAIN","The WMI request could not be completed and should be retried." +"0000106C","4204","-4294963092","ERROR_WMI_DP_NOT_FOUND","The WMI data provider could not be located." +"0000106D","4205","-4294963091","ERROR_WMI_UNRESOLVED_INSTANCE_REF","The WMI data provider references an instance set that has not been registered." +"0000106E","4206","-4294963090","ERROR_WMI_ALREADY_ENABLED","The WMI data block or event notification has already been enabled." +"0000106F","4207","-4294963089","ERROR_WMI_GUID_DISCONNECTED","The WMI data block is no longer available." +"00001070","4208","-4294963088","ERROR_WMI_SERVER_UNAVAILABLE","The WMI data service is not available." +"00001071","4209","-4294963087","ERROR_WMI_DP_FAILED","The WMI data provider failed to carry out the request." +"00001072","4210","-4294963086","ERROR_WMI_INVALID_MOF","The WMI MOF information is not valid." +"00001073","4211","-4294963085","ERROR_WMI_INVALID_REGINFO","The WMI registration information is not valid." +"00001074","4212","-4294963084","ERROR_WMI_ALREADY_DISABLED","The WMI data block or event notification has already been disabled." +"00001075","4213","-4294963083","ERROR_WMI_READ_ONLY","The WMI data item or data block is read only." +"00001076","4214","-4294963082","ERROR_WMI_SET_FAILURE","The WMI data item or data block could not be changed." +"0000109A","4250","-4294963046","ERROR_NOT_APPCONTAINER","This operation is only valid in the context of an app container." +"0000109B","4251","-4294963045","ERROR_APPCONTAINER_REQUIRED","This application can only run in the context of an app container." +"0000109C","4252","-4294963044","ERROR_NOT_SUPPORTED_IN_APPCONTAINER","This functionality is not supported in the context of an app container." +"0000109D","4253","-4294963043","ERROR_INVALID_PACKAGE_SID_LENGTH","The length of the SID supplied is not a valid length for app container SIDs." +"0000109F","4255","-4294963041","NULL","" +"000010CC","4300","-4294962996","ERROR_INVALID_MEDIA","The media identifier does not represent a valid medium." +"000010CD","4301","-4294962995","ERROR_INVALID_LIBRARY","The library identifier does not represent a valid library." +"000010CE","4302","-4294962994","ERROR_INVALID_MEDIA_POOL","The media pool identifier does not represent a valid media pool." +"000010CF","4303","-4294962993","ERROR_DRIVE_MEDIA_MISMATCH","The drive and medium are not compatible or exist in different libraries." +"000010D0","4304","-4294962992","ERROR_MEDIA_OFFLINE","The medium currently exists in an offline library and must be online to perform this operation." +"000010D1","4305","-4294962991","ERROR_LIBRARY_OFFLINE","The operation cannot be performed on an offline library." +"000010D2","4306","-4294962990","ERROR_EMPTY","The library - drive - or media pool is empty." +"000010D3","4307","-4294962989","ERROR_NOT_EMPTY","The library - drive - or media pool must be empty to perform this operation." +"000010D4","4308","-4294962988","ERROR_MEDIA_UNAVAILABLE","No media is currently available in this media pool or library." +"000010D5","4309","-4294962987","ERROR_RESOURCE_DISABLED","A resource required for this operation is disabled." +"000010D6","4310","-4294962986","ERROR_INVALID_CLEANER","The media identifier does not represent a valid cleaner." +"000010D7","4311","-4294962985","ERROR_UNABLE_TO_CLEAN","The drive cannot be cleaned or does not support cleaning." +"000010D8","4312","-4294962984","ERROR_OBJECT_NOT_FOUND","The object identifier does not represent a valid object." +"000010D9","4313","-4294962983","ERROR_DATABASE_FAILURE","Unable to read from or write to the database." +"000010DA","4314","-4294962982","ERROR_DATABASE_FULL","The database is full." +"000010DB","4315","-4294962981","ERROR_MEDIA_INCOMPATIBLE","The medium is not compatible with the device or media pool." +"000010DC","4316","-4294962980","ERROR_RESOURCE_NOT_PRESENT","The resource required for this operation does not exist." +"000010DD","4317","-4294962979","ERROR_INVALID_OPERATION","The operation identifier is not valid." +"000010DE","4318","-4294962978","ERROR_MEDIA_NOT_AVAILABLE","The media is not mounted or ready for use." +"000010DF","4319","-4294962977","ERROR_DEVICE_NOT_AVAILABLE","The device is not ready for use." +"000010E0","4320","-4294962976","ERROR_REQUEST_REFUSED","The operator or administrator has refused the request." +"000010E1","4321","-4294962975","ERROR_INVALID_DRIVE_OBJECT","The drive identifier does not represent a valid drive." +"000010E2","4322","-4294962974","ERROR_LIBRARY_FULL","Library is full. No slot is available for use." +"000010E3","4323","-4294962973","ERROR_MEDIUM_NOT_ACCESSIBLE","The transport cannot access the medium." +"000010E4","4324","-4294962972","ERROR_UNABLE_TO_LOAD_MEDIUM","Unable to load the medium into the drive." +"000010E5","4325","-4294962971","ERROR_UNABLE_TO_INVENTORY_DRIVE","Unable to retrieve the drive status." +"000010E6","4326","-4294962970","ERROR_UNABLE_TO_INVENTORY_SLOT","Unable to retrieve the slot status." +"000010E7","4327","-4294962969","ERROR_UNABLE_TO_INVENTORY_TRANSPORT","Unable to retrieve status about the transport." +"000010E8","4328","-4294962968","ERROR_TRANSPORT_FULL","Cannot use the transport because it is already in use." +"000010E9","4329","-4294962967","ERROR_CONTROLLING_IEPORT","Unable to open or close the inject/eject port." +"000010EA","4330","-4294962966","ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA","Unable to eject the medium because it is in a drive." +"000010EB","4331","-4294962965","ERROR_CLEANER_SLOT_SET","A cleaner slot is already reserved." +"000010EC","4332","-4294962964","ERROR_CLEANER_SLOT_NOT_SET","A cleaner slot is not reserved." +"000010ED","4333","-4294962963","ERROR_CLEANER_CARTRIDGE_SPENT","The cleaner cartridge has performed the maximum number of drive cleanings." +"000010EE","4334","-4294962962","ERROR_UNEXPECTED_OMID","Unexpected on-medium identifier." +"000010EF","4335","-4294962961","ERROR_CANT_DELETE_LAST_ITEM","The last remaining item in this group or resource cannot be deleted." +"000010F0","4336","-4294962960","ERROR_MESSAGE_EXCEEDS_MAX_SIZE","The message provided exceeds the maximum size allowed for this parameter." +"000010F1","4337","-4294962959","ERROR_VOLUME_CONTAINS_SYS_FILES","The volume contains system or paging files." +"000010F2","4338","-4294962958","ERROR_INDIGENOUS_TYPE","The media type cannot be removed from this library since at least one drive in the library reports it can support this media type." +"000010F3","4339","-4294962957","ERROR_NO_SUPPORTING_DRIVES","This offline media cannot be mounted on this system since no enabled drives are present which can be used." +"000010F4","4340","-4294962956","ERROR_CLEANER_CARTRIDGE_INSTALLED","A cleaner cartridge is present in the tape library." +"000010F5","4341","-4294962955","ERROR_IEPORT_FULL","Cannot use the inject/eject port because it is not empty." +"000010FE","4350","-4294962946","ERROR_FILE_OFFLINE","This file is currently not available for use on this computer." +"000010FF","4351","-4294962945","ERROR_REMOTE_STORAGE_NOT_ACTIVE","The remote storage service is not operational at this time." +"00001100","4352","-4294962944","ERROR_REMOTE_STORAGE_MEDIA_ERROR","The remote storage service encountered a media error." +"00001112","4370","-4294962926","Error_No_Media_In_Drive","No media in drive." +"00001126","4390","-4294962906","ERROR_NOT_A_REPARSE_POINT","The file or directory is not a reparse point." +"00001127","4391","-4294962905","ERROR_REPARSE_ATTRIBUTE_CONFLICT","The reparse point attribute cannot be set because it conflicts with an existing attribute." +"00001128","4392","-4294962904","ERROR_INVALID_REPARSE_DATA","The data present in the reparse point buffer is invalid." +"00001129","4393","-4294962903","ERROR_REPARSE_TAG_INVALID","The tag present in the reparse point buffer is invalid." +"0000112A","4394","-4294962902","ERROR_REPARSE_TAG_MISMATCH","There is a mismatch between the tag specified in the request and the tag present in the reparse point." +"00001130","4400","-4294962896","ERROR_APP_DATA_NOT_FOUND","Fast Cache data not found." +"00001131","4401","-4294962895","ERROR_APP_DATA_EXPIRED","Fast Cache data expired." +"00001132","4402","-4294962894","ERROR_APP_DATA_CORRUPT","Fast Cache data corrupt." +"00001133","4403","-4294962893","ERROR_APP_DATA_LIMIT_EXCEEDED","Fast Cache data has exceeded its max size and cannot be updated." +"00001134","4404","-4294962892","ERROR_APP_DATA_REBOOT_REQUIRED","Fast Cache has been ReArmed and requires a reboot until it can be updated." +"00001144","4420","-4294962876","ERROR_SECUREBOOT_ROLLBACK_DETECTED","Secure Boot detected that rollback of protected data has been attempted." +"00001145","4421","-4294962875","ERROR_SECUREBOOT_POLICY_VIOLATION","The value is protected by Secure Boot policy and cannot be modified or deleted." +"00001146","4422","-4294962874","ERROR_SECUREBOOT_INVALID_POLICY","The Secure Boot policy is invalid." +"00001147","4423","-4294962873","ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND","A new Secure Boot policy did not contain the current publisher on its update list." +"00001148","4424","-4294962872","ERROR_SECUREBOOT_POLICY_NOT_SIGNED","The Secure Boot policy is either not signed or is signed by a non-trusted signer." +"00001149","4425","-4294962871","ERROR_SECUREBOOT_NOT_ENABLED","Secure Boot is not enabled on this machine." +"0000114A","4426","-4294962870","ERROR_SECUREBOOT_FILE_REPLACED","Secure Boot requires that certain files and drivers are not replaced by other files or drivers." +"00001158","4440","-4294962856","ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED","The copy offload read operation is not supported by a filter." +"00001159","4441","-4294962855","ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED","The copy offload write operation is not supported by a filter." +"0000115A","4442","-4294962854","ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED","The copy offload read operation is not supported for the file." +"0000115B","4443","-4294962853","ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED","The copy offload write operation is not supported for the file." +"0000117A","4474","-4294962822","NULL","" +"00001190","4496","-4294962800","Error_Shutdown_IS_Scheduled","A system shutdown has already been scheduled." +"00001194","4500","-4294962796","ERROR_VOLUME_NOT_SIS_ENABLED","Single Instance Storage is not available on this volume." +"00001234","4660","-4294962636","Error_Port_Unreachable","No Service is operating at the destination network endpoint on the remote system." +"00001389","5001","-4294962295","ERROR_DEPENDENT_RESOURCE_EXISTS","The operation cannot be completed because other resources are dependent on this resource." +"0000138A","5002","-4294962294","ERROR_DEPENDENCY_NOT_FOUND","The cluster resource dependency cannot be found." +"0000138B","5003","-4294962293","ERROR_DEPENDENCY_ALREADY_EXISTS","The cluster resource cannot be made dependent on the specified resource because it is already dependent." +"0000138C","5004","-4294962292","ERROR_RESOURCE_NOT_ONLINE","The cluster resource is not online." +"0000138D","5005","-4294962291","ERROR_HOST_NODE_NOT_AVAILABLE","A cluster node is not available for this operation." +"0000138E","5006","-4294962290","ERROR_RESOURCE_NOT_AVAILABLE","The cluster resource is not available." +"0000138F","5007","-4294962289","ERROR_RESOURCE_NOT_FOUND","The cluster resource could not be found." +"00001390","5008","-4294962288","ERROR_SHUTDOWN_CLUSTER","The cluster is being shut down." +"00001391","5009","-4294962287","ERROR_CANT_EVICT_ACTIVE_NODE","A cluster node cannot be evicted from the cluster while it is online." +"00001392","5010","-4294962286","ERROR_OBJECT_ALREADY_EXISTS","The object already exists." +"00001393","5011","-4294962285","ERROR_OBJECT_IN_LIST","The object is already in the list." +"00001394","5012","-4294962284","ERROR_GROUP_NOT_AVAILABLE","The cluster group is not available for any new requests." +"00001395","5013","-4294962283","ERROR_GROUP_NOT_FOUND","The cluster group could not be found." +"00001396","5014","-4294962282","ERROR_GROUP_NOT_ONLINE","The operation could not be completed because the cluster group is not online." +"00001397","5015","-4294962281","ERROR_HOST_NODE_NOT_RESOURCE_OWNER","The operation failed because either the specified cluster node is not the owner of the resource - or the node is not a possible owner of the resource." +"00001398","5016","-4294962280","ERROR_HOST_NODE_NOT_GROUP_OWNER","The operation failed because either the specified cluster node is not the owner of the group - or the node is not a possible owner of the group." +"00001399","5017","-4294962279","ERROR_RESMON_CREATE_FAILED","The cluster resource could not be created in the specified resource monitor." +"0000139A","5018","-4294962278","ERROR_RESMON_ONLINE_FAILED","The cluster resource could not be brought online by the resource monitor." +"0000139B","5019","-4294962277","ERROR_RESOURCE_ONLINE","The operation could not be completed because the cluster resource is online." +"0000139C","5020","-4294962276","ERROR_QUORUM_RESOURCE","The cluster resource could not be deleted or brought offline because it is the quorum resource." +"0000139D","5021","-4294962275","ERROR_NOT_QUORUM_CAPABLE","The cluster could not make the specified resource a quorum resource because it is not capable of being a quorum resource." +"0000139E","5022","-4294962274","ERROR_CLUSTER_SHUTTING_DOWN","The cluster software is shutting down." +"0000139F","5023","-4294962273","ERROR_INVALID_STATE","The group or resource is not in the correct state to perform the requested operation." +"000013A0","5024","-4294962272","ERROR_RESOURCE_PROPERTIES_STORED","The properties were stored but not all changes will take effect until the next time the resource is brought online." +"000013A1","5025","-4294962271","ERROR_NOT_QUORUM_CLASS","The cluster could not make the specified resource a quorum resource because it does not belong to a shared storage class." +"000013A2","5026","-4294962270","ERROR_CORE_RESOURCE","The cluster resource could not be deleted since it is a core resource." +"000013A3","5027","-4294962269","ERROR_QUORUM_RESOURCE_ONLINE_FAILED","The quorum resource failed to come online." +"000013A4","5028","-4294962268","ERROR_QUORUMLOG_OPEN_FAILED","The quorum log could not be created or mounted successfully." +"000013A5","5029","-4294962267","ERROR_CLUSTERLOG_CORRUPT","The cluster log is corrupt." +"000013A6","5030","-4294962266","ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE","The record could not be written to the cluster log since it exceeds the maximum size." +"000013A7","5031","-4294962265","ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE","The cluster log exceeds its maximum size." +"000013A8","5032","-4294962264","ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND","No checkpoint record was found in the cluster log." +"000013A9","5033","-4294962263","ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE","The minimum required disk space needed for logging is not available." +"000013AA","5034","-4294962262","ERROR_QUORUM_OWNER_ALIVE","The cluster node failed to take control of the quorum resource because the resource is owned by another active node." +"000013AB","5035","-4294962261","ERROR_NETWORK_NOT_AVAILABLE","A cluster network is not available for this operation." +"000013AC","5036","-4294962260","ERROR_NODE_NOT_AVAILABLE","A cluster node is not available for this operation." +"000013AD","5037","-4294962259","ERROR_ALL_NODES_NOT_AVAILABLE","All cluster nodes must be running to perform this operation." +"000013AE","5038","-4294962258","ERROR_RESOURCE_FAILED","A cluster resource failed." +"000013AF","5039","-4294962257","ERROR_CLUSTER_INVALID_NODE","The cluster node is not valid." +"000013B0","5040","-4294962256","ERROR_CLUSTER_NODE_EXISTS","The cluster node already exists." +"000013B1","5041","-4294962255","ERROR_CLUSTER_JOIN_IN_PROGRESS","A node is in the process of joining the cluster." +"000013B2","5042","-4294962254","ERROR_CLUSTER_NODE_NOT_FOUND","The cluster node was not found." +"000013B3","5043","-4294962253","ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND","The cluster local node information was not found." +"000013B4","5044","-4294962252","ERROR_CLUSTER_NETWORK_EXISTS","The cluster network already exists." +"000013B5","5045","-4294962251","ERROR_CLUSTER_NETWORK_NOT_FOUND","The cluster network was not found." +"000013B6","5046","-4294962250","ERROR_CLUSTER_NETINTERFACE_EXISTS","The cluster network interface already exists." +"000013B7","5047","-4294962249","ERROR_CLUSTER_NETINTERFACE_NOT_FOUND","The cluster network interface was not found." +"000013B8","5048","-4294962248","ERROR_CLUSTER_INVALID_REQUEST","The cluster request is not valid for this object." +"000013B9","5049","-4294962247","ERROR_CLUSTER_INVALID_NETWORK_PROVIDER","The cluster network provider is not valid." +"000013BA","5050","-4294962246","ERROR_CLUSTER_NODE_DOWN","The cluster node is down." +"000013BB","5051","-4294962245","ERROR_CLUSTER_NODE_UNREACHABLE","The cluster node is not reachable." +"000013BC","5052","-4294962244","ERROR_CLUSTER_NODE_NOT_MEMBER","The cluster node is not a member of the cluster." +"000013BD","5053","-4294962243","ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS","A cluster join operation is not in progress." +"000013BE","5054","-4294962242","ERROR_CLUSTER_INVALID_NETWORK","The cluster network is not valid." +"000013C0","5056","-4294962240","ERROR_CLUSTER_NODE_UP","The cluster node is up." +"000013C1","5057","-4294962239","ERROR_CLUSTER_IPADDR_IN_USE","The cluster IP address is already in use." +"000013C2","5058","-4294962238","ERROR_CLUSTER_NODE_NOT_PAUSED","The cluster node is not paused." +"000013C3","5059","-4294962237","ERROR_CLUSTER_NO_SECURITY_CONTEXT","No cluster security context is available." +"000013C4","5060","-4294962236","ERROR_CLUSTER_NETWORK_NOT_INTERNAL","The cluster network is not configured for internal cluster communication." +"000013C5","5061","-4294962235","ERROR_CLUSTER_NODE_ALREADY_UP","The cluster node is already up." +"000013C6","5062","-4294962234","ERROR_CLUSTER_NODE_ALREADY_DOWN","The cluster node is already down." +"000013C7","5063","-4294962233","ERROR_CLUSTER_NETWORK_ALREADY_ONLINE","The cluster network is already online." +"000013C8","5064","-4294962232","ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE","The cluster network is already offline." +"000013C9","5065","-4294962231","ERROR_CLUSTER_NODE_ALREADY_MEMBER","The cluster node is already a member of the cluster." +"000013CA","5066","-4294962230","ERROR_CLUSTER_LAST_INTERNAL_NETWORK","The cluster network is the only one configured for internal cluster communication between two or more active cluster nodes. The internal communication capability cannot be removed from the network." +"000013CB","5067","-4294962229","ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS","One or more cluster resources depend on the network to provide service to clients. The client access capability cannot be removed from the network." +"000013CC","5068","-4294962228","ERROR_INVALID_OPERATION_ON_QUORUM","This operation cannot be performed on the cluster resource as it the quorum resource. You may not bring the quorum resource offline or modify its possible owners list." +"000013CD","5069","-4294962227","ERROR_DEPENDENCY_NOT_ALLOWED","The cluster quorum resource is not allowed to have any dependencies." +"000013CE","5070","-4294962226","ERROR_CLUSTER_NODE_PAUSED","The cluster node is paused." +"000013CF","5071","-4294962225","ERROR_NODE_CANT_HOST_RESOURCE","The cluster resource cannot be brought online. The owner node cannot run this resource." +"000013D0","5072","-4294962224","ERROR_CLUSTER_NODE_NOT_READY","The cluster node is not ready to perform the requested operation." +"000013D1","5073","-4294962223","ERROR_CLUSTER_NODE_SHUTTING_DOWN","The cluster node is shutting down." +"000013D2","5074","-4294962222","ERROR_CLUSTER_JOIN_ABORTED","The cluster join operation was aborted." +"000013D3","5075","-4294962221","ERROR_CLUSTER_INCOMPATIBLE_VERSIONS","The cluster join operation failed due to incompatible software versions between the joining node and its sponsor." +"000013D4","5076","-4294962220","ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED","This resource cannot be created because the cluster has reached the limit on the number of resources it can monitor." +"000013D5","5077","-4294962219","ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED","The system configuration changed during the cluster join or form operation. The join or form operation was aborted." +"000013D6","5078","-4294962218","ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND","The specified resource type was not found." +"000013D7","5079","-4294962217","ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED","The specified node does not support a resource of this type. This may be due to version inconsistencies or due to the absence of the resource DLL on this node." +"000013D8","5080","-4294962216","ERROR_CLUSTER_RESNAME_NOT_FOUND","The specified resource name is not supported by this resource DLL. This may be due to a bad." +"000013D9","5081","-4294962215","ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED","No authentication package could be registered with the RPC server." +"000013DA","5082","-4294962214","ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST","You cannot bring the group online because the owner of the group is not in the preferred list for the group. To change the owner node for the group - move the group." +"000013DB","5083","-4294962213","ERROR_CLUSTER_DATABASE_SEQMISMATCH","The join operation failed because the cluster database sequence number has changed or is incompatible with the locker node. This may happen during a join operation if the cluster database was changing during the join." +"000013DC","5084","-4294962212","ERROR_RESMON_INVALID_STATE","The resource monitor will not allow the fail operation to be performed while the resource is in its current state. This may happen if the resource is in a pending state." +"000013DD","5085","-4294962211","ERROR_CLUSTER_GUM_NOT_LOCKER","A non locker code got a request to reserve the lock for making global updates." +"000013DE","5086","-4294962210","ERROR_QUORUM_DISK_NOT_FOUND","The quorum disk could not be located by the cluster service." +"000013DF","5087","-4294962209","ERROR_DATABASE_BACKUP_CORRUPT","The backed up cluster database is possibly corrupt." +"000013E0","5088","-4294962208","ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT","A DFS root already exists in this cluster node." +"000013E1","5089","-4294962207","ERROR_RESOURCE_PROPERTY_UNCHANGEABLE","An attempt to modify a resource property failed because it conflicts with another existing property." +"000013EC","5100","-4294962196","","The file chosen for export already exists, and the user does not wish to overwrite it." +"00001449","5193","-4294962103","Error_Invalid_Showwin_Command","Cannot show or remove the window in the way specified." +"00001633","5683","-4294961613","NULL","" +"000016A9","5801","-4294961495","","Cannot orient images in folder x." +"000016AA","5802","-4294961494","","Please mount volume x." +"000016DA","5850","-4294961446","","Orient images failed, n page(s)." +"000016DB","5851","-4294961445","","Internal security error #n. Call Technical Support." +"000016DC","5852","-4294961444","","One or more errors occurred during migration." +"00001702","5890","-4294961406","ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE","An operation was attempted that is incompatible with the current membership state of the node." +"00001703","5891","-4294961405","ERROR_CLUSTER_QUORUMLOG_NOT_FOUND","The quorum resource does not contain the quorum log." +"00001704","5892","-4294961404","ERROR_CLUSTER_MEMBERSHIP_HALT","The membership engine requested shutdown of the cluster service on this node." +"00001705","5893","-4294961403","ERROR_CLUSTER_INSTANCE_ID_MISMATCH","The join operation failed because the cluster instance ID of the joining node does not match the cluster instance ID of the sponsor node." +"00001706","5894","-4294961402","ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP","A matching cluster network for the specified IP address could not be found." +"00001707","5895","-4294961401","ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH","The actual data type of the property did not match the expected data type of the property." +"00001708","5896","-4294961400","ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP","The cluster node was evicted from the cluster successfully - but the node was not cleaned up. To determine what cleanup steps failed and how to recover - see the Failover Clustering application event log using Event Viewer." +"00001709","5897","-4294961399","ERROR_CLUSTER_PARAMETER_MISMATCH","Two or more parameter values specified for a resource's properties are in conflict." +"0000170A","5898","-4294961398","ERROR_NODE_CANNOT_BE_CLUSTERED","This computer cannot be made a member of a cluster." +"0000170B","5899","-4294961397","ERROR_CLUSTER_WRONG_OS_VERSION","This computer cannot be made a member of a cluster because it does not have the correct version of Windows installed." +"0000170C","5900","-4294961396","ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME","A cluster cannot be created with the specified cluster name because that cluster name is already in use. Specify a different name for the cluster." +"0000170D","5901","-4294961395","ERROR_CLUSCFG_ALREADY_COMMITTED","The cluster configuration action has already been committed." +"0000170E","5902","-4294961394","ERROR_CLUSCFG_ROLLBACK_FAILED","The cluster configuration action could not be rolled back." +"0000170F","5903","-4294961393","ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT","The drive letter assigned to a system disk on one node conflicted with the drive letter assigned to a disk on another node." +"00001710","5904","-4294961392","ERROR_CLUSTER_OLD_VERSION","One or more nodes in the cluster are running a version of Windows that does not support this operation." +"00001711","5905","-4294961391","ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME","The name of the corresponding computer account doesn't match the Network Name for this resource." +"00001712","5906","-4294961390","ERROR_CLUSTER_NO_NET_ADAPTERS","No network adapters are available." +"00001713","5907","-4294961389","ERROR_CLUSTER_POISONED","The cluster node has been poisoned." +"00001714","5908","-4294961388","ERROR_CLUSTER_GROUP_MOVING","The group is unable to accept the request since it is moving to another node." +"00001715","5909","-4294961387","ERROR_CLUSTER_RESOURCE_TYPE_BUSY","The resource type cannot accept the request since is too busy performing another operation." +"00001716","5910","-4294961386","ERROR_RESOURCE_CALL_TIMED_OUT","The call to the cluster resource DLL timed out." +"00001717","5911","-4294961385","ERROR_INVALID_CLUSTER_IPV6_ADDRESS","The address is not valid for an IPv6 Address resource. A global IPv6 address is required - and it must match a cluster network. Compatibility addresses are not permitted." +"00001718","5912","-4294961384","ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION","An internal cluster error occurred. A call to an invalid function was attempted." +"00001719","5913","-4294961383","ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS","A parameter value is out of acceptable range." +"0000171A","5914","-4294961382","ERROR_CLUSTER_PARTIAL_SEND","A network error occurred while sending data to another node in the cluster. The number of bytes transmitted was less than required." +"0000171B","5915","-4294961381","ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION","An invalid cluster registry operation was attempted." +"0000171C","5916","-4294961380","ERROR_CLUSTER_INVALID_STRING_TERMINATION","An input string of characters is not properly terminated." +"0000171D","5917","-4294961379","ERROR_CLUSTER_INVALID_STRING_FORMAT","An input string of characters is not in a valid format for the data it represents." +"0000171E","5918","-4294961378","ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS","An internal cluster error occurred. A cluster database transaction was attempted while a transaction was already in progress." +"0000171F","5919","-4294961377","ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS","An internal cluster error occurred. There was an attempt to commit a cluster database transaction while no transaction was in progress." +"00001720","5920","-4294961376","ERROR_CLUSTER_NULL_DATA","An internal cluster error occurred. Data was not properly initialized." +"00001721","5921","-4294961375","ERROR_CLUSTER_PARTIAL_READ","An error occurred while reading from a stream of data. An unexpected number of bytes was returned." +"00001722","5922","-4294961374","ERROR_CLUSTER_PARTIAL_WRITE","An error occurred while writing to a stream of data. The required number of bytes could not be written." +"00001723","5923","-4294961373","ERROR_CLUSTER_CANT_DESERIALIZE_DATA","An error occurred while deserializing a stream of cluster data." +"00001724","5924","-4294961372","ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT","One or more property values for this resource are in conflict with one or more property values associated with its dependent resource(s)." +"00001725","5925","-4294961371","ERROR_CLUSTER_NO_QUORUM","A quorum of cluster nodes was not present to form a cluster." +"00001726","5926","-4294961370","ERROR_CLUSTER_INVALID_IPV6_NETWORK","The cluster network is not valid for an IPv6 Address resource - or it does not match the configured address." +"00001727","5927","-4294961369","ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK","The cluster network is not valid for an IPv6 Tunnel resource. Check the configuration of the IP Address resource on which the IPv6 Tunnel resource depends." +"00001728","5928","-4294961368","ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP","Quorum resource cannot reside in the Available Storage group." +"00001729","5929","-4294961367","ERROR_DEPENDENCY_TREE_TOO_COMPLEX","The dependencies for this resource are nested too deeply." +"0000172A","5930","-4294961366","ERROR_EXCEPTION_IN_RESOURCE_CALL","The call into the resource DLL raised an unhandled exception." +"0000172B","5931","-4294961365","ERROR_CLUSTER_RHS_FAILED_INITIALIZATION","The RHS process failed to initialize." +"0000172C","5932","-4294961364","ERROR_CLUSTER_NOT_INSTALLED","The Failover Clustering feature is not installed on this node." +"0000172D","5933","-4294961363","ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE","The resources must be online on the same node for this operation." +"0000172E","5934","-4294961362","ERROR_CLUSTER_MAX_NODES_IN_CLUSTER","A new node cannot be added since this cluster is already at its maximum number of nodes." +"0000172F","5935","-4294961361","ERROR_CLUSTER_TOO_MANY_NODES","This cluster cannot be created since the specified number of nodes exceeds the maximum allowed limit." +"00001730","5936","-4294961360","ERROR_CLUSTER_OBJECT_ALREADY_USED","An attempt to use the specified cluster name failed because an enabled computer object with the given name already exists in the domain." +"00001731","5937","-4294961359","ERROR_NONCORE_GROUPS_FOUND","This cluster cannot be destroyed. It has non-core application groups which must be deleted before the cluster can be destroyed." +"00001732","5938","-4294961358","ERROR_FILE_SHARE_RESOURCE_CONFLICT","File share associated with file share witness resource cannot be hosted by this cluster or any of its nodes." +"00001733","5939","-4294961357","ERROR_CLUSTER_EVICT_INVALID_REQUEST","Eviction of this node is invalid at this time. Due to quorum requirements node eviction will result in cluster shutdown. If it is the last node in the cluster - destroy cluster command should be used." +"00001734","5940","-4294961356","ERROR_CLUSTER_SINGLETON_RESOURCE","Only one instance of this resource type is allowed in the cluster." +"00001735","5941","-4294961355","ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE","Only one instance of this resource type is allowed per resource group." +"00001736","5942","-4294961354","ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED","The resource failed to come online due to the failure of one or more provider resources." +"00001737","5943","-4294961353","ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR","The resource has indicated that it cannot come online on any node." +"00001738","5944","-4294961352","ERROR_CLUSTER_GROUP_BUSY","The current operation cannot be performed on this group at this time." +"00001739","5945","-4294961351","ERROR_CLUSTER_NOT_SHARED_VOLUME","The directory or file is not located on a cluster shared volume." +"0000173A","5946","-4294961350","ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR","The Security Descriptor does not meet the requirements for a cluster." +"0000173B","5947","-4294961349","ERROR_CLUSTER_SHARED_VOLUMES_IN_USE","There is one or more shared volumes resources configured in the cluster. Those resources must be moved to available storage in order for operation to succeed." +"0000173C","5948","-4294961348","ERROR_CLUSTER_USE_SHARED_VOLUMES_API","This group or resource cannot be directly manipulated. Use shared volume APIs to perform desired operation." +"0000173D","5949","-4294961347","ERROR_CLUSTER_BACKUP_IN_PROGRESS","Back up is in progress. Please wait for backup completion before trying this operation again." +"0000173E","5950","-4294961346","ERROR_NON_CSV_PATH","The path does not belong to a cluster shared volume." +"0000173F","5951","-4294961345","ERROR_CSV_VOLUME_NOT_LOCAL","The cluster shared volume is not locally mounted on this node." +"00001740","5952","-4294961344","ERROR_CLUSTER_WATCHDOG_TERMINATING","The cluster watchdog is terminating." +"00001741","5953","-4294961343","ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES","A resource vetoed a move between two nodes because they are incompatible." +"00001742","5954","-4294961342","ERROR_CLUSTER_INVALID_NODE_WEIGHT","The request is invalid either because node weight cannot be changed while the cluster is in disk-only quorum mode - or because changing the node weight would violate the minimum cluster quorum requirements." +"00001743","5955","-4294961341","ERROR_CLUSTER_RESOURCE_VETOED_CALL","The resource vetoed the call." +"00001744","5956","-4294961340","ERROR_RESMON_SYSTEM_RESOURCES_LACKING","Resource could not start or run because it could not reserve sufficient system resources." +"00001745","5957","-4294961339","ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION","A resource vetoed a move between two nodes because the destination currently does not have enough resources to complete the operation." +"00001746","5958","-4294961338","ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE","A resource vetoed a move between two nodes because the source currently does not have enough resources to complete the operation." +"00001747","5959","-4294961337","ERROR_CLUSTER_GROUP_QUEUED","The requested operation cannot be completed because the group is queued for an operation." +"00001748","5960","-4294961336","ERROR_CLUSTER_RESOURCE_LOCKED_STATUS","The requested operation cannot be completed because a resource has locked status." +"00001749","5961","-4294961335","ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED","The resource cannot move to another node because a cluster shared volume vetoed the operation." +"0000174A","5962","-4294961334","ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS","A node drain is already in progress." +"0000174B","5963","-4294961333","ERROR_CLUSTER_DISK_NOT_CONNECTED","This value was also named ERROR_CLUSTER_NODE_EVACUATION_IN_PROGRESS." +"0000174C","5964","-4294961332","ERROR_DISK_NOT_CSV_CAPABLE","The disk is not configured in a way to be used with CSV. CSV disks must have at least one partition that is formatted with NTFS." +"0000174D","5965","-4294961331","ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE","The resource must be part of the Available Storage group to complete this action." +"0000174E","5966","-4294961330","ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED","CSVFS failed operation as volume is in redirected mode." +"0000174F","5967","-4294961329","ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED","CSVFS failed operation as volume is not in redirected mode." +"00001750","5968","-4294961328","ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES","Cluster properties cannot be returned at this time." +"00001751","5969","-4294961327","ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES","The clustered disk resource contains software snapshot diff area that are not supported for Cluster Shared Volumes." +"00001752","5970","-4294961326","ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE","The operation cannot be completed because the resource is in maintenance mode." +"00001753","5971","-4294961325","ERROR_CLUSTER_AFFINITY_CONFLICT","The operation cannot be completed because of cluster affinity conflicts." +"00001754","5972","-4294961324","ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE","The operation cannot be completed because the resource is a replica virtual machine." +"00001770","6000","-4294961296","ERROR_ENCRYPTION_FAILED","The specified file could not be encrypted." +"00001771","6001","-4294961295","ERROR_DECRYPTION_FAILED","The specified file could not be decrypted." +"00001772","6002","-4294961294","ERROR_FILE_ENCRYPTED","The specified file is encrypted and the user does not have the ability to decrypt it." +"00001773","6003","-4294961293","ERROR_NO_RECOVERY_POLICY","There is no valid encryption recovery policy configured for this system." +"00001774","6004","-4294961292","ERROR_NO_EFS","The required encryption driver is not loaded for this system." +"00001775","6005","-4294961291","ERROR_WRONG_EFS","The file was encrypted with a different encryption driver than is currently loaded." +"00001776","6006","-4294961290","ERROR_NO_USER_KEYS","There are no EFS keys defined for the user." +"00001777","6007","-4294961289","ERROR_FILE_NOT_ENCRYPTED","The specified file is not encrypted." +"00001778","6008","-4294961288","ERROR_NOT_EXPORT_FORMAT","The specified file is not in the defined EFS export format." +"00001779","6009","-4294961287","ERROR_FILE_READ_ONLY","The specified file is read only." +"0000177A","6010","-4294961286","ERROR_DIR_EFS_DISALLOWED","The directory has been disabled for encryption." +"0000177B","6011","-4294961285","ERROR_EFS_SERVER_NOT_TRUSTED","The server is not trusted for remote encryption operation." +"0000177C","6012","-4294961284","ERROR_BAD_RECOVERY_POLICY","Recovery policy configured for this system contains invalid recovery certificate." +"0000177D","6013","-4294961283","ERROR_EFS_ALG_BLOB_TOO_BIG","The encryption algorithm used on the source file needs a bigger key buffer than the one on the destination file." +"0000177E","6014","-4294961282","ERROR_VOLUME_NOT_SUPPORT_EFS","The disk partition does not support file encryption." +"0000177F","6015","-4294961281","ERROR_EFS_DISABLED","This machine is disabled for file encryption." +"00001780","6016","-4294961280","ERROR_EFS_VERSION_NOT_SUPPORT","A newer system is required to decrypt this encrypted file." +"00001781","6017","-4294961279","ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE","The remote server sent an invalid response for a file being opened with Client Side Encryption." +"00001782","6018","-4294961278","ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER","Client Side Encryption is not supported by the remote server even though it claims to support it." +"00001783","6019","-4294961277","ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE","File is encrypted and should be opened in Client Side Encryption mode." +"00001784","6020","-4294961276","ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE","A new encrypted file is being created and a $EFS needs to be provided." +"00001785","6021","-4294961275","ERROR_CS_ENCRYPTION_FILE_NOT_CSE","The SMB client requested a CSE FSCTL on a non-CSE file." +"00001786","6022","-4294961274","ERROR_ENCRYPTION_POLICY_DENIES_OPERATION","The requested operation was blocked by policy. For more information -." +"000017C7","6087","-4294961209","NULL","" +"000017D2","6098","-4294961198","NULL","" +"000017E6","6118","-4294961178","ERROR_NO_BROWSER_SERVERS_FOUND","The list of servers for this workgroup is not currently available." +"00001838","6200","-4294961096","SCHED_E_SERVICE_NOT_LOCALSYSTEM","The Task Scheduler service must be configured to run in the System account to function properly. Individual tasks may be configured to run in other accounts." +"000018A6","6310","-4294960986","","Engine Error #8310--import image failed." +"000018A9","6313","-4294960983","","Error reading directory--TOC failed." +"000018AB","6315","-4294960981","","Repository is empty." +"000018AC","6316","-4294960980","","You must specify the full path to an existing directory when you specify a volume." +"000018AD","6317","-4294960979","","Permission denied." +"000018B1","6321","-4294960975","","You are not allowed to delete the root folder." +"000018B2","6322","-4294960974","","You are not allowed to rename the root folder." +"000018B3","6323","-4294960973","","Operation failed. Name is not valid." +"000018B4","6324","-4294960972","","More than one file has been selected. This operation only works on a single file." +"000018B5","6325","-4294960971","","There must be a file selected for this operation." +"000018B7","6327","-4294960969","","Only image documents can be processed." +"000018B8","6328","-4294960968","","Folders cannot be printed." +"000018BE","6334","-4294960962","","You cannot move a page to an electronic document." +"000018BF","6335","-4294960961","","Invalid page range." +"000018C0","6336","-4294960960","","Unable to compress thumbnail data." +"000018C1","6337","-4294960959","","Error decompressing thumbnail data." +"000018C3","6339","-4294960957","","Attempted to perform a folder operation on a document." +"000018C4","6340","-4294960956","","This document contains no pages." +"000018C5","6341","-4294960955","","Printing the Electronic Document pages failed." +"000018C6","6342","-4294960954","","The specified name contains one or more invalid characters." +"000018CE","6350","-4294960946","","Print job aborted." +"000018D8","6360","-4294960936","","The template must have a name." +"000018D9","6361","-4294960935","","The template name is already in use." +"000018DA","6362","-4294960934","","A template cannot be created without fields." +"000018DB","6363","-4294960933","","Template field names must be unique." +"000018DC","6364","-4294960932","","String fields must be between 1 and 4000 characters." +"000018DD","6365","-4294960931","","The template could not be deleted. There are documents still attached to it." +"000018DE","6366","-4294960930","","Template field names must contain only letters, numbers, and spaces." +"000018DF","6367","-4294960929","","Changing the template field TYPE or WIDTH (to a smaller size) can cause irreparable data loss." +"000018E0","6368","-4294960928","","The maximum number of template fields has been reached." +"000018EC","6380","-4294960916","","The document contains a missing image." +"000018ED","6381","-4294960915","","The image orientation could not be retrieved." +"000018EE","6382","-4294960914","","A temporary image file could not be stored." +"000018F0","6384","-4294960912","","The image could not be converted to TIFF format." +"000018F1","6385","-4294960911","","The server path provided was not in the proper format." +"000018F2","6386","-4294960910","","The OCR engine was not found." +"000018F3","6387","-4294960909","","The language selected for the OCR engine is not valid." +"000018F4","6388","-4294960908","","Can't delete user (from DeleteGroup in LFAPICom)." +"000018F5","6389","-4294960907","","Can't delete group (from DeleteUser in LFAPICom)." +"000018F6","6390","-4294960906","","Unable to generate a thumbnail." +"000018FB","6395","-4294960901","","Unable to read this version of briefcase." +"000018FC","6396","-4294960900","","Invalid briefcase file." +"000018FD","6397","-4294960899","","Unexpected end of file in briefcase." +"000018FE","6398","-4294960898","","The tokens in the document name are not valid. The tokens have not been replaced." +"000018FF","6399","-4294960897","","This account does not have rights to folders." +"00001900","6400","-4294960896","","Importing not completed." +"00001901","6401","-4294960895","","The date value entered is not valid." +"00001902","6402","-4294960894","","The numeric value entered is not valid." +"00001903","6403","-4294960893","","The password entered is not correct." +"00001904","6404","-4294960892","","There is not enough memory, please select fewer items." +"00001905","6405","-4294960891","","This name already exists; select a different one." +"00001906","6406","-4294960890","","Source images have not been deleted." +"00001907","6407","-4294960889","","You cannot remove supervisor privileges from your own account." +"00001908","6408","-4294960888","","Error reading file." +"00001909","6409","-4294960887","","Error writing to file." +"0000190A","6410","-4294960886","","Error opening file." +"0000190B","6411","-4294960885","","Error creating file." +"0000190C","6412","-4294960884","","Error deleting file." +"0000190D","6413","-4294960883","","Error seeking in file." +"0000190E","6414","-4294960882","","Access denied to file or path." +"0000190F","6415","-4294960881","","A thumbnail could not be generated from an image." +"00001910","6416","-4294960880","","Cannot add to folder list selection." +"00001913","6419","-4294960877","","The volume has not been bundled." +"00001914","6420","-4294960876","","Unable to create the specified path." +"00001915","6421","-4294960875","","The file chosen for export already exists, and the user does not wish to overwrite it." +"0000191E","6430","-4294960866","","A folder in the list import file could not be found or created." +"0000191F","6431","-4294960865","","The name provided with the RENAME directive is invalid." +"00001920","6432","-4294960864","","A document's pages could not be imported." +"00001921","6433","-4294960863","","The name provided with a document was absent." +"00001922","6434","-4294960862","","The syntax of the list import file was incorrect." +"00001924","6436","-4294960860","","The end of the file was reached before the ENDFIELDS directive was found." +"00001927","6439","-4294960857","","The option for indexing is invalid." +"00001928","6440","-4294960856","","The specified file is not a valid Laserfiche import list." +"00001929","6441","-4294960855","","The import process was interrupted unexpectedly." +"00001946","6470","-4294960826","","No audit reason was provided, or the audit reason is invalid." +"00001964","6500","-4294960796","","Invalid serial number." +"00001965","6501","-4294960795","","Invalid registration information." +"00001966","6502","-4294960794","","Unable to find the specified Laserfiche repository." +"00001967","6503","-4294960793","","Laserfiche has detected an earlier fatal exit. Please restart Windows before reloading Laserfiche." +"00001969","6505","-4294960791","","Unable to find the specified Laserfiche server." +"0000196A","6506","-4294960790","","Laserfiche could not update your old repository. There is an error in the repository files." +"0000196B","6507","-4294960789","","Maximum users exceeded." +"0000196C","6508","-4294960788","","The user name or password is incorrect." +"0000196D","6509","-4294960787","","Evaluation copy has expired." +"0000196E","6510","-4294960786","","Corrupt DLL." +"0000196F","6511","-4294960785","","The specified drive is out of space." +"00001970","6512","-4294960784","","Error opening repository. Check log file for more information." +"00001971","6513","-4294960783","","Laserfiche requires version 5.10 or higher of WBTRV32.DLL." +"00001973","6515","-4294960781","","Error locating library." +"00001974","6516","-4294960780","","Error loading library." +"00001975","6517","-4294960779","","The Laserfiche Server is from a previous version and cannot be accessed from this version of the client." +"00001976","6518","-4294960778","","Write failed. Disk space may be running low." +"00001977","6519","-4294960777","","Not enough memory to complete operation. Please close some applications and try again." +"00001978","6520","-4294960776","","Time-out for operation call." +"0000197A","6522","-4294960774","","The server did not respond correctly to the last function." +"0000197C","6524","-4294960772","","Invalid IP address." +"0000197D","6525","-4294960771","","IP connection failed." +"0000197E","6526","-4294960770","","This client is a viewer for a specific repository and will not work with other repositories." +"0000197F","6527","-4294960769","","Maximum connections exceeded." +"00001980","6528","-4294960768","","Invalid connection." +"00001981","6529","-4294960767","","Please run this version of Laserfiche from the Laserfiche Loader (LFVIEW.EXE)." +"00001982","6530","-4294960766","","This copy of Laserfiche is unlicensed, so it will run as Laserfiche Viewer. For information on full-featured versions of Laserfiche, please contact the nearest Laserfiche reseller." +"00001983","6531","-4294960765","","The license file for this copy of Laserfiche has been corrupted!." +"00001984","6532","-4294960764","","Your connection has been terminated." +"00001986","6534","-4294960762","","Laserfiche is unable to store a temporary copy of the electronic file you are attempting to open." +"00001987","6535","-4294960761","","The MAPI Subsystem (mapi32.dll) could not be loaded. Make sure your e-mail client is properly installed and configured to work with MAPI." +"00001989","6537","-4294960759","","Failed to initialize MAPI." +"00001996","6550","-4294960746","","The search was not successfully initialized." +"00001997","6551","-4294960745","","Search error." +"00001998","6552","-4294960744","","Search error." +"00001999","6553","-4294960743","","Search error." +"0000199A","6554","-4294960742","","Search error." +"000019A1","6561","-4294960735","","Error creating new volume/ Volume already exists." +"000019A2","6562","-4294960734","","Error creating directory." +"000019A3","6563","-4294960733","","Engine error #8663." +"000019A4","6564","-4294960732","","Volume label not created." +"000019A5","6565","-4294960731","","The volume name is already in use." +"000019A7","6567","-4294960729","","The volume is marked read-only." +"000019A8","6568","-4294960728","","The volume could not be found." +"000019AB","6571","-4294960725","","Could not find the specified template." +"000019AC","6572","-4294960724","","One or more template field values supplied are invalid." +"000019B4","6580","-4294960716","","The bitmap file cannot be made into a stamp." +"000019B5","6581","-4294960715","","The selected file exceeds the size limit." +"000019B6","6582","-4294960714","","The Hardlock is connected but not programmed. The application will now close." +"000019B7","6583","-4294960713","","The Hardlock is not compatible with this product. The application will now close." +"000019BE","6590","-4294960706","","Could not find scanning components." +"000019C8","6600","-4294960696","ERROR_LOG_SECTOR_INVALID","Log service encountered an invalid log sector." +"000019C9","6601","-4294960695","ERROR_LOG_SECTOR_PARITY_INVALID","Log service encountered a log sector with invalid block parity." +"000019CA","6602","-4294960694","ERROR_LOG_SECTOR_REMAPPED","Log service encountered a remapped log sector." +"000019CB","6603","-4294960693","ERROR_LOG_BLOCK_INCOMPLETE","Log service encountered a partial or incomplete log block." +"000019CC","6604","-4294960692","ERROR_LOG_INVALID_RANGE","Log service encountered an attempt access data outside the active log range." +"000019CD","6605","-4294960691","ERROR_LOG_BLOCKS_EXHAUSTED","Log service user marshalling buffers are exhausted." +"000019CE","6606","-4294960690","ERROR_LOG_READ_CONTEXT_INVALID","Log service encountered an attempt read from a marshalling area with an invalid read context." +"000019CF","6607","-4294960689","ERROR_LOG_RESTART_INVALID","Log service encountered an invalid log restart area." +"000019D0","6608","-4294960688","ERROR_LOG_BLOCK_VERSION","Log service encountered an invalid log block version." +"000019D1","6609","-4294960687","ERROR_LOG_BLOCK_INVALID","Log service encountered an invalid log block." +"000019D2","6610","-4294960686","ERROR_LOG_READ_MODE_INVALID","Log service encountered an attempt to read the log with an invalid read mode." +"000019D3","6611","-4294960685","ERROR_LOG_NO_RESTART","Log service encountered a log stream with no restart area." +"000019D4","6612","-4294960684","ERROR_LOG_METADATA_CORRUPT","Log service encountered a corrupted metadata file." +"000019D5","6613","-4294960683","ERROR_LOG_METADATA_INVALID","Log service encountered a metadata file that could not be created by the log file system." +"000019D6","6614","-4294960682","ERROR_LOG_METADATA_INCONSISTENT","Log service encountered a metadata file with inconsistent data." +"000019D7","6615","-4294960681","ERROR_LOG_RESERVATION_INVALID","Log service encountered an attempt to erroneous allocate or dispose reservation space." +"000019D8","6616","-4294960680","ERROR_LOG_CANT_DELETE","Log service cannot delete log file or file system container." +"000019D9","6617","-4294960679","ERROR_LOG_CONTAINER_LIMIT_EXCEEDED","Log service has reached the maximum allowable containers allocated to a log file." +"000019DA","6618","-4294960678","ERROR_LOG_START_OF_LOG","Log service has attempted to read or write backward past the start of the log." +"000019DB","6619","-4294960677","ERROR_LOG_POLICY_ALREADY_INSTALLED","Log policy could not be installed because a policy of the same type is already present." +"000019DC","6620","-4294960676","ERROR_LOG_POLICY_NOT_INSTALLED","Log policy in question was not installed at the time of the request." +"000019DD","6621","-4294960675","ERROR_LOG_POLICY_INVALID","The installed set of policies on the log is invalid." +"000019DE","6622","-4294960674","ERROR_LOG_POLICY_CONFLICT","A policy on the log in question prevented the operation from completing." +"000019DF","6623","-4294960673","ERROR_LOG_PINNED_ARCHIVE_TAIL","Log space cannot be reclaimed because the log is pinned by the archive tail." +"000019E0","6624","-4294960672","ERROR_LOG_RECORD_NONEXISTENT","Log record is not a record in the log file." +"000019E1","6625","-4294960671","ERROR_LOG_RECORDS_RESERVED_INVALID","Number of reserved log records or the adjustment of the number of reserved log records is invalid." +"000019E2","6626","-4294960670","ERROR_LOG_SPACE_RESERVED_INVALID","Reserved log space or the adjustment of the log space is invalid." +"000019E3","6627","-4294960669","ERROR_LOG_TAIL_INVALID","An new or existing archive tail or base of the active log is invalid." +"000019E4","6628","-4294960668","ERROR_LOG_FULL","Log space is exhausted." +"000019E5","6629","-4294960667","ERROR_COULD_NOT_RESIZE_LOG","The log could not be set to the requested size." +"000019E6","6630","-4294960666","ERROR_LOG_MULTIPLEXED","Log is multiplexed - no direct writes to the physical log is allowed." +"000019E7","6631","-4294960665","ERROR_LOG_DEDICATED","The operation failed because the log is a dedicated log." +"000019E8","6632","-4294960664","ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS","The operation requires an archive context." +"000019E9","6633","-4294960663","ERROR_LOG_ARCHIVE_IN_PROGRESS","Log archival is in progress." +"000019EA","6634","-4294960662","ERROR_LOG_EPHEMERAL","The operation requires a non-ephemeral log - but the log is ephemeral." +"000019EB","6635","-4294960661","ERROR_LOG_NOT_ENOUGH_CONTAINERS","The log must have at least two containers before it can be read from or written to." +"000019EC","6636","-4294960660","ERROR_LOG_CLIENT_ALREADY_REGISTERED","A log client has already registered on the stream." +"000019ED","6637","-4294960659","ERROR_LOG_CLIENT_NOT_REGISTERED","A log client has not been registered on the stream." +"000019EE","6638","-4294960658","ERROR_LOG_FULL_HANDLER_IN_PROGRESS","A request has already been made to handle the log full condition." +"000019EF","6639","-4294960657","ERROR_LOG_CONTAINER_READ_FAILED","Log service encountered an error when attempting to read from a log container." +"000019F0","6640","-4294960656","ERROR_LOG_CONTAINER_WRITE_FAILED","Log service encountered an error when attempting to write to a log container." +"000019F1","6641","-4294960655","ERROR_LOG_CONTAINER_OPEN_FAILED","Log service encountered an error when attempting open a log container." +"000019F2","6642","-4294960654","ERROR_LOG_CONTAINER_STATE_INVALID","Log service encountered an invalid container state when attempting a requested action." +"000019F3","6643","-4294960653","ERROR_LOG_STATE_INVALID","Log service is not in the correct state to perform a requested action." +"000019F4","6644","-4294960652","ERROR_LOG_PINNED","Log space cannot be reclaimed because the log is pinned." +"000019F5","6645","-4294960651","ERROR_LOG_METADATA_FLUSH_FAILED","Log metadata flush failed." +"000019F6","6646","-4294960650","ERROR_LOG_INCONSISTENT_SECURITY","Security on the log and its containers is inconsistent." +"000019F7","6647","-4294960649","ERROR_LOG_APPENDED_FLUSH_FAILED","Records were appended to the log or reservation changes were made - but the log could not be flushed." +"000019F8","6648","-4294960648","ERROR_LOG_PINNED_RESERVATION","The log is pinned due to reservation consuming most of the log space. Free some reserved records to make space available." +"00001A2C","6700","-4294960596","ERROR_INVALID_TRANSACTION","The transaction handle associated with this operation is not valid." +"00001A2D","6701","-4294960595","ERROR_TRANSACTION_NOT_ACTIVE","The requested operation was made in the context of a transaction that is no longer active." +"00001A2E","6702","-4294960594","ERROR_TRANSACTION_REQUEST_NOT_VALID","The requested operation is not valid on the Transaction object in its current state." +"00001A2F","6703","-4294960593","ERROR_TRANSACTION_NOT_REQUESTED","The caller has called a response API - but the response is not expected because the TM did not issue the corresponding request to the caller." +"00001A30","6704","-4294960592","ERROR_TRANSACTION_ALREADY_ABORTED","It is too late to perform the requested operation - since the Transaction has already been aborted." +"00001A31","6705","-4294960591","ERROR_TRANSACTION_ALREADY_COMMITTED","It is too late to perform the requested operation - since the Transaction has already been committed." +"00001A32","6706","-4294960590","ERROR_TM_INITIALIZATION_FAILED","The Transaction Manager was unable to be successfully initialized. Transacted operations are not supported." +"00001A33","6707","-4294960589","ERROR_RESOURCEMANAGER_READ_ONLY","The specified ResourceManager made no changes or updates to the resource under this transaction." +"00001A34","6708","-4294960588","ERROR_TRANSACTION_NOT_JOINED","The resource manager has attempted to prepare a transaction that it has not successfully joined." +"00001A35","6709","-4294960587","ERROR_TRANSACTION_SUPERIOR_EXISTS","The Transaction object already has a superior enlistment - and the caller attempted an operation that would have created a new superior. Only a single superior enlistment is allow." +"00001A36","6710","-4294960586","ERROR_CRM_PROTOCOL_ALREADY_EXISTS","The RM tried to register a protocol that already exists." +"00001A37","6711","-4294960585","ERROR_TRANSACTION_PROPAGATION_FAILED","The attempt to propagate the Transaction failed." +"00001A38","6712","-4294960584","ERROR_CRM_PROTOCOL_NOT_FOUND","The requested propagation protocol was not registered as a CRM." +"00001A39","6713","-4294960583","ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER","The buffer passed in to PushTransaction or PullTransaction is not in a valid format." +"00001A3A","6714","-4294960582","ERROR_CURRENT_TRANSACTION_NOT_VALID","The current transaction context associated with the thread is not a valid handle to a transaction object." +"00001A3B","6715","-4294960581","ERROR_TRANSACTION_NOT_FOUND","The specified Transaction object could not be opened - because it was not found." +"00001A3C","6716","-4294960580","ERROR_RESOURCEMANAGER_NOT_FOUND","The specified ResourceManager object could not be opened - because it was not found." +"00001A3D","6717","-4294960579","ERROR_ENLISTMENT_NOT_FOUND","The specified Enlistment object could not be opened - because it was not found." +"00001A3E","6718","-4294960578","ERROR_TRANSACTIONMANAGER_NOT_FOUND","The specified TransactionManager object could not be opened - because it was not found." +"00001A3F","6719","-4294960577","ERROR_TRANSACTIONMANAGER_NOT_ONLINE","The object specified could not be created or opened - because its associated TransactionManager is not online. The TransactionManager must be brought fully Online by calling RecoverTransactionManager to recover to the end of its LogFile before objects in its Transaction or ResourceManager namespaces can be opened. In addition - errors in writing records to its LogFile can cause a TransactionManager to go offline." +"00001A40","6720","-4294960576","ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION","The specified TransactionManager was unable to create the objects contained in its logfile in the Ob namespace. Therefore - the TransactionManager was unable to recover." +"00001A41","6721","-4294960575","ERROR_TRANSACTION_NOT_ROOT","The call to create a superior Enlistment on this Transaction object could not be completed - because the Transaction object specified for the enlistment is a subordinate branch of the Transaction. Only the root of the Transaction can be enlisted on as a superior." +"00001A42","6722","-4294960574","ERROR_TRANSACTION_OBJECT_EXPIRED","Because the associated transaction manager or resource manager has been closed - the handle is no longer valid." +"00001A43","6723","-4294960573","ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED","The specified operation could not be performed on this Superior enlistment - because the enlistment was not created with the corresponding completion response in the NotificationMask." +"00001A44","6724","-4294960572","ERROR_TRANSACTION_RECORD_TOO_LONG","The specified operation could not be performed - because the record that would be logged was too long. This can occur because of two conditions: either there are too many Enlistments on this Transaction - or the combined RecoveryInformation being logged on behalf of those Enlistments is too long." +"00001A45","6725","-4294960571","ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED","Implicit transaction are not supported." +"00001A46","6726","-4294960570","ERROR_TRANSACTION_INTEGRITY_VIOLATED","The kernel transaction manager had to abort or forget the transaction because it blocked forward progress." +"00001A47","6727","-4294960569","ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH","The TransactionManager identity that was supplied did not match the one recorded in the TransactionManager's log file." +"00001A48","6728","-4294960568","ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT","This snapshot operation cannot continue because a transactional resource manager cannot be frozen in its current state. Please try again." +"00001A49","6729","-4294960567","ERROR_TRANSACTION_MUST_WRITETHROUGH","The transaction cannot be enlisted on with the specified EnlistmentMask - because the transaction has already completed the PrePrepare phase. In order to ensure correctness - the ResourceManager must switch to a write- through mode and cease caching data within this transaction. Enlisting for only subsequent transaction phases may still succeed." +"00001A4A","6730","-4294960566","ERROR_TRANSACTION_NO_SUPERIOR","The transaction does not have a superior enlistment." +"00001A4B","6731","-4294960565","ERROR_HEURISTIC_DAMAGE_POSSIBLE","The attempt to commit the Transaction completed - but it is possible that some portion of the transaction tree did not commit successfully due to heuristics. Therefore it is possible that some data modified in the transaction may not have committed - resulting in transactional inconsistency. If possible - check the consistency of the associated data." +"00001A5F","6751","-4294960545","","The parameter is incorrect." +"00001A60","6752","-4294960544","","Unable to find the specified entry." +"00001A61","6753","-4294960543","","The memory buffer is too small." +"00001A62","6754","-4294960542","","No data is available." +"00001A63","6755","-4294960541","","Folders cannot be copied." +"00001A90","6800","-4294960496","ERROR_TRANSACTIONAL_CONFLICT","The function attempted to use a name that is reserved for use by another transaction." +"00001A91","6801","-4294960495","ERROR_RM_NOT_ACTIVE","Transaction support within the specified resource manager is not started or was shut down due to an error." +"00001A92","6802","-4294960494","ERROR_RM_METADATA_CORRUPT","The metadata of the RM has been corrupted. The RM will not function." +"00001A93","6803","-4294960493","ERROR_DIRECTORY_NOT_RM","The specified directory does not contain a resource manager." +"00001A95","6805","-4294960491","ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE","The remote server or share does not support transacted file operations." +"00001A96","6806","-4294960490","ERROR_LOG_RESIZE_INVALID_SIZE","The requested log size is invalid." +"00001A97","6807","-4294960489","ERROR_OBJECT_NO_LONGER_EXISTS","The object." +"00001A98","6808","-4294960488","ERROR_STREAM_MINIVERSION_NOT_FOUND","The specified file miniversion was not found for this transacted file open." +"00001A99","6809","-4294960487","ERROR_STREAM_MINIVERSION_NOT_VALID","The specified file miniversion was found but has been invalidated. Most likely cause is a transaction savepoint rollback." +"00001A9A","6810","-4294960486","ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION","A miniversion may only be opened in the context of the transaction that created it." +"00001A9B","6811","-4294960485","ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT","It is not possible to open a miniversion with modify access." +"00001A9C","6812","-4294960484","ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS","It is not possible to create any more miniversions for this stream." +"00001A9E","6814","-4294960482","ERROR_REMOTE_FILE_VERSION_MISMATCH","The remote server sent mismatching version number or Fid for a file opened with transactions." +"00001A9F","6815","-4294960481","ERROR_HANDLE_NO_LONGER_VALID","The handle has been invalidated by a transaction. The most likely cause is the presence of memory mapping on a file or an open handle when the transaction ended or rolled back to savepoint." +"00001AA0","6816","-4294960480","ERROR_NO_TXF_METADATA","There is no transaction metadata on the file." +"00001AA1","6817","-4294960479","ERROR_LOG_CORRUPTION_DETECTED","The log data is corrupt." +"00001AA2","6818","-4294960478","ERROR_CANT_RECOVER_WITH_HANDLE_OPEN","The file can't be recovered because there is a handle still open on it." +"00001AA3","6819","-4294960477","ERROR_RM_DISCONNECTED","The transaction outcome is unavailable because the resource manager responsible for it has disconnected." +"00001AA4","6820","-4294960476","ERROR_ENLISTMENT_NOT_SUPERIOR","The request was rejected because the enlistment in question is not a superior enlistment." +"00001AA5","6821","-4294960475","ERROR_RECOVERY_NOT_NEEDED","The transactional resource manager is already consistent. Recovery is not needed." +"00001AA6","6822","-4294960474","ERROR_RM_ALREADY_STARTED","The transactional resource manager has already been started." +"00001AA7","6823","-4294960473","ERROR_FILE_IDENTITY_NOT_PERSISTENT","The file cannot be opened transactionally - because its identity depends on the outcome of an unresolved transaction." +"00001AA8","6824","-4294960472","ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY","The operation cannot be performed because another transaction is depending on the fact that this property will not change." +"00001AA9","6825","-4294960471","ERROR_CANT_CROSS_RM_BOUNDARY","The operation would involve a single file with two transactional resource managers and is therefore not allowed." +"00001AAA","6826","-4294960470","ERROR_TXF_DIR_NOT_EMPTY","The $Txf directory must be empty for this operation to succeed." +"00001AAB","6827","-4294960469","ERROR_INDOUBT_TRANSACTIONS_EXIST","The operation would leave a transactional resource manager in an inconsistent state and is therefore not allowed." +"00001AAC","6828","-4294960468","ERROR_TM_VOLATILE","The operation could not be completed because the transaction manager does not have a log." +"00001AAD","6829","-4294960467","ERROR_ROLLBACK_TIMER_EXPIRED","A rollback could not be scheduled because a previously scheduled rollback has already executed or been queued for execution." +"00001AAE","6830","-4294960466","ERROR_TXF_ATTRIBUTE_CORRUPT","The transactional metadata attribute on the file or directory is corrupt and unreadable." +"00001AAF","6831","-4294960465","ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION","The encryption operation could not be completed because a transaction is active." +"00001AB0","6832","-4294960464","ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED","This object is not allowed to be opened in a transaction." +"00001AB1","6833","-4294960463","ERROR_LOG_GROWTH_FAILED","An attempt to create space in the transactional resource manager's log failed. The failure status has been recorded in the event log." +"00001AB2","6834","-4294960462","ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE","Memory mapping." +"00001AB3","6835","-4294960461","ERROR_TXF_METADATA_ALREADY_PRESENT","Transaction metadata is already present on this file and cannot be superseded." +"00001AB4","6836","-4294960460","ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET","A transaction scope could not be entered because the scope handler has not been initialized." +"00001AB5","6837","-4294960459","ERROR_TRANSACTION_REQUIRED_PROMOTION","Promotion was required in order to allow the resource manager to enlist - but the transaction was set to disallow it." +"00001AB6","6838","-4294960458","ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION","This file is open for modification in an unresolved transaction and may be opened for execute only by a transacted reader." +"00001AB7","6839","-4294960457","ERROR_TRANSACTIONS_NOT_FROZEN","The request to thaw frozen transactions was ignored because transactions had not previously been frozen." +"00001AB8","6840","-4294960456","ERROR_TRANSACTION_FREEZE_IN_PROGRESS","Transactions cannot be frozen because a freeze is already in progress." +"00001AB9","6841","-4294960455","ERROR_NOT_SNAPSHOT_VOLUME","The target volume is not a snapshot volume. This operation is only valid on a volume mounted as a snapshot." +"00001ABA","6842","-4294960454","ERROR_NO_SAVEPOINT_WITH_OPEN_FILES","The savepoint operation failed because files are open on the transaction. This is not permitted." +"00001ABB","6843","-4294960453","ERROR_DATA_LOST_REPAIR","Windows has discovered corruption in a file - and that file has since been repaired. Data loss may have occurred." +"00001ABC","6844","-4294960452","ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION","The sparse operation could not be completed because a transaction is active on the file." +"00001ABD","6845","-4294960451","ERROR_TM_IDENTITY_MISMATCH","The call to create a TransactionManager object failed because the Tm Identity stored in the logfile does not match the Tm Identity that was passed in as an argument." +"00001ABE","6846","-4294960450","ERROR_FLOATED_SECTION","I/O was attempted on a section object that has been floated as a result of a transaction ending. There is no valid data." +"00001ABF","6847","-4294960449","ERROR_CANNOT_ACCEPT_TRANSACTED_WORK","The transactional resource manager cannot currently accept transacted work due to a transient condition such as low resources." +"00001AC0","6848","-4294960448","ERROR_CANNOT_ABORT_TRANSACTIONS","The transactional resource manager had too many tranactions outstanding that could not be aborted. The transactional resource manger has been shut down." +"00001AC1","6849","-4294960447","ERROR_BAD_CLUSTERS","The operation could not be completed due to bad clusters on disk." +"00001AC2","6850","-4294960446","ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION","The compression operation could not be completed because a transaction is active on the file." +"00001AC3","6851","-4294960445","ERROR_VOLUME_DIRTY","The operation could not be completed because the volume is dirty. Please run chkdsk and try again." +"00001AC4","6852","-4294960444","ERROR_NO_LINK_TRACKING_IN_TRANSACTION","The link tracking operation could not be completed because a transaction is active." +"00001AC5","6853","-4294960443","ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION","This operation cannot be performed in a transaction." +"00001AC6","6854","-4294960442","ERROR_EXPIRED_HANDLE","The handle is no longer properly associated with its transaction. It may have been opened in a transactional resource manager that was subsequently forced to restart. Please close the handle and open a new one." +"00001AC7","6855","-4294960441","ERROR_TRANSACTION_NOT_ENLISTED","The specified operation could not be performed because the resource manager is not enlisted in the transaction." +"00001AD4","6868","-4294960428","NULL","" +"00001ADA","6874","-4294960422","NULL","" +"00001AF4","6900","-4294960396","","The certificate is not yet valid." +"00001AF5","6901","-4294960395","","The certificate is expired." +"00001AF6","6902","-4294960394","","The certificate does not contain a private key." +"00001AF7","6903","-4294960393","","The certificate cannot be used to sign." +"00001B08","6920","-4294960376","","There was an error launching Microsoft Word." +"00001B58","7000","-4294960296","","There is not enough memory available for the engine to complete this operation." +"00001B59","7001","-4294960295","ERROR_CTX_WINSTATION_NAME_INVALID","The specified session name is invalid." +"00001B5A","7002","-4294960294","ERROR_CTX_INVALID_PD","The specified protocol driver is invalid." +"00001B5B","7003","-4294960293","ERROR_CTX_PD_NOT_FOUND","The specified protocol driver was not found in the system path." +"00001B5C","7004","-4294960292","ERROR_CTX_WD_NOT_FOUND","The specified terminal connection driver was not found in the system path." +"00001B5D","7005","-4294960291","ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY","A registry key for event logging could not be created for this session." +"00001B5E","7006","-4294960290","ERROR_CTX_SERVICE_NAME_COLLISION","A service with the same name already exists on the system." +"00001B5F","7007","-4294960289","ERROR_CTX_CLOSE_PENDING","A close operation is pending on the session." +"00001B60","7008","-4294960288","ERROR_CTX_NO_OUTBUF","There are no free output buffers available." +"00001B61","7009","-4294960287","ERROR_CTX_MODEM_INF_NOT_FOUND","The MODEM.INF file was not found." +"00001B62","7010","-4294960286","ERROR_CTX_INVALID_MODEMNAME","The modem name was not found in MODEM.INF." +"00001B63","7011","-4294960285","ERROR_CTX_MODEM_RESPONSE_ERROR","The modem did not accept the command sent to it. Verify that the configured modem name matches the attached modem." +"00001B64","7012","-4294960284","ERROR_CTX_MODEM_RESPONSE_TIMEOUT","The modem did not respond to the command sent to it. Verify that the modem is properly cabled and powered on." +"00001B65","7013","-4294960283","ERROR_CTX_MODEM_RESPONSE_NO_CARRIER","Carrier detect has failed or carrier has been dropped due to disconnect." +"00001B66","7014","-4294960282","ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE","Dial tone not detected within the required time. Verify that the phone cable is properly attached and functional." +"00001B67","7015","-4294960281","ERROR_CTX_MODEM_RESPONSE_BUSY","Busy signal detected at remote site on callback." +"00001B68","7016","-4294960280","ERROR_CTX_MODEM_RESPONSE_VOICE","Voice detected at remote site on callback." +"00001B69","7017","-4294960279","ERROR_CTX_TD_ERROR","Transport driver error." +"00001B6A","7018","-4294960278","","Cannot uncutoff this record folder." +"00001B6B","7019","-4294960277","","This operation is not allowed for entries that are not under record management." +"00001B6C","7020","-4294960276","","This version of the Laserfiche Server is incompatible with the specified repository." +"00001B6D","7021","-4294960275","","The operation cannot be performed with this DBMS." +"00001B6E","7022","-4294960274","ERROR_CTX_WINSTATION_NOT_FOUND","The specified session cannot be found." +"00001B6F","7023","-4294960273","ERROR_CTX_WINSTATION_ALREADY_EXISTS","The specified session name is already in use." +"00001B70","7024","-4294960272","ERROR_CTX_WINSTATION_BUSY","The task you are trying to do can't be completed because Remote Desktop Services is currently busy. Please try again in a few minutes. Other users should still be able to log on." +"00001B71","7025","-4294960271","ERROR_CTX_BAD_VIDEO_MODE","An attempt has been made to connect to a session whose video mode is not supported by the current client." +"00001B73","7027","-4294960269","","A repository with the same name already exists." +"00001B74","7028","-4294960268","","Could not acquire SSPI credentials to authenticate." +"00001B75","7029","-4294960267","","Could not acquire cryptographic context." +"00001B76","7030","-4294960266","","The SQL Database Engine (BTRIEVE) has encountered a unexpected error and is unable to continue. Check error log for more information." +"00001B77","7031","-4294960265","","Cannot execute repository creation script." +"00001B7B","7035","-4294960261","ERROR_CTX_GRAPHICS_INVALID","The application attempted to enable DOS graphics mode. DOS graphics mode is not supported." +"00001B7D","7037","-4294960259","ERROR_CTX_LOGON_DISABLED","Your interactive logon privilege has been disabled. Please contact your administrator." +"00001B7E","7038","-4294960258","ERROR_CTX_NOT_CONSOLE","The requested operation can be performed only on the system console. This is most often the result of a driver or system DLL requiring direct console access." +"00001B7F","7039","-4294960257","","The Pervasive.SQL engine cannot be found." +"00001B80","7040","-4294960256","ERROR_CTX_CLIENT_QUERY_TIMEOUT","The client failed to respond to the server connect message." +"00001B81","7041","-4294960255","ERROR_CTX_CONSOLE_DISCONNECT","Disconnecting the console session is not supported." +"00001B82","7042","-4294960254","ERROR_CTX_CONSOLE_CONNECT","Reconnecting a disconnected session to the console is not supported." +"00001B84","7044","-4294960252","ERROR_CTX_SHADOW_DENIED","The request to control another session remotely was denied." +"00001B85","7045","-4294960251","ERROR_CTX_WINSTATION_ACCESS_DENIED","The requested session access is denied." +"00001B89","7049","-4294960247","ERROR_CTX_INVALID_WD","The specified terminal connection driver is invalid." +"00001B8A","7050","-4294960246","ERROR_CTX_SHADOW_INVALID","The requested session cannot be controlled remotely. This may be because the session is disconnected or does not currently have a user logged on." +"00001B8B","7051","-4294960245","ERROR_CTX_SHADOW_DISABLED","The requested session is not configured to allow remote control." +"00001B8C","7052","-4294960244","ERROR_CTX_CLIENT_LICENSE_IN_USE","Your request to connect to this Terminal Server has been rejected. Your Terminal Server client license number is currently being used by another user. Please call your system administrator to obtain a unique license number." +"00001B8D","7053","-4294960243","ERROR_CTX_CLIENT_LICENSE_NOT_SET","Your request to connect to this Terminal Server has been rejected. Your Terminal Server client license number has not been entered for this copy of the Terminal Server client. Please." +"00001B8E","7054","-4294960242","ERROR_CTX_LICENSE_NOT_AVAILABLE","The number of connections to this computer is limited and all connections are in use right now. Try connecting later or." +"00001B8F","7055","-4294960241","ERROR_CTX_LICENSE_CLIENT_INVALID","The client you are using is not licensed to use this system. Your logon request is denied." +"00001B90","7056","-4294960240","ERROR_CTX_LICENSE_EXPIRED","The system license has expired. Your logon request is denied." +"00001B91","7057","-4294960239","ERROR_CTX_SHADOW_NOT_RUNNING","Remote control could not be terminated because the specified session is not currently being remotely controlled." +"00001B92","7058","-4294960238","ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE","The remote control of the console was terminated because the display mode was changed. Changing the display mode in a remote control session is not supported." +"00001B93","7059","-4294960237","ERROR_ACTIVATION_COUNT_EXCEEDED","Activation has already been reset the maximum number of times for this installation. Your activation timer will not be cleared." +"00001B94","7060","-4294960236","ERROR_CTX_WINSTATIONS_DISABLED","Remote logins are currently disabled." +"00001B95","7061","-4294960235","ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED","You do not have the proper encryption level to access this Session." +"00001B96","7062","-4294960234","ERROR_CTX_SESSION_IN_USE","The user %s\\%s is currently logged on to this computer. Only the current user or an administrator can log on to this computer." +"00001B97","7063","-4294960233","ERROR_CTX_NO_FORCE_LOGOFF","The user %s\\%s is already logged on to the console of this computer. You do not have permission to log in at this time. To resolve this issue - contact %s\\%s and have them log off." +"00001B98","7064","-4294960232","ERROR_CTX_ACCOUNT_RESTRICTION","Unable to log you on because of an account restriction." +"00001B99","7065","-4294960231","ERROR_RDP_PROTOCOL_ERROR","The RDP protocol component %2 detected an error in the protocol stream and has disconnected the client." +"00001B9A","7066","-4294960230","ERROR_CTX_CDM_CONNECT","The Client Drive Mapping Service Has Connected on Terminal Connection." +"00001B9B","7067","-4294960229","ERROR_CTX_CDM_DISCONNECT","The Client Drive Mapping Service Has Disconnected on Terminal Connection." +"00001B9C","7068","-4294960228","ERROR_CTX_SECURITY_LAYER_ERROR","The Terminal Server security layer detected an error in the protocol stream and has disconnected the client." +"00001B9D","7069","-4294960227","ERROR_TS_INCOMPATIBLE_SESSIONS","The target session is incompatible with the current session." +"00001B9E","7070","-4294960226","ERROR_TS_VIDEO_SUBSYSTEM_ERROR","Windows can't connect to your session because a problem occurred in the Windows video subsystem. Try connecting again later - or contact the server administrator for assistance." +"00001BBC","7100","-4294960196","","Could not find document." +"00001BBD","7101","-4294960195","","A document or folder with the same name already exists in the folder." +"00001BBF","7103","-4294960193","","Could not create entry (duplicate exists)." +"00001BC6","7110","-4294960186","","Could not find the specified volume." +"00001BC7","7111","-4294960185","","A volume with the same name already exists." +"00001BC8","7112","-4294960184","","Could not create volume." +"00001BC9","7113","-4294960183","","Could not delete the specified volume." +"00001BCB","7115","-4294960181","","Deleting a linked physical volume failed during logical volume deletion." +"00001BD0","7120","-4294960176","","Could not find the template definition." +"00001BD1","7121","-4294960175","","The template name is not unique and cannot be created." +"00001BD2","7122","-4294960174","","Could not create template schema." +"00001BD4","7124","-4294960172","","Could not update template definition." +"00001BE4","7140","-4294960156","","The trustee could not be found." +"00001BE5","7141","-4294960155","","A trustee with the specified name already exists." +"00001BE6","7142","-4294960154","","Could not create trustee." +"00001BE8","7144","-4294960152","","Could not update trustee." +"00001BEF","7151","-4294960145","","The user is already a member of the specified group." +"00001BF0","7152","-4294960144","","Could not add user to the specified group." +"00001C02","7170","-4294960126","","Could not find the specified page." +"00001C03","7171","-4294960125","","Could not create page (duplicate exists)." +"00001C06","7174","-4294960122","","Could not update page meta-data." +"00001C07","7175","-4294960121","","The page could not be moved." +"00001C0C","7180","-4294960116","","Could not find template data." +"00001C10","7184","-4294960112","","Could not update template data." +"00001C12","7186","-4294960110","","Could not read template data." +"00001C16","7190","-4294960106","","Could not find word offset entry." +"00001C25","7205","-4294960091","","Could not insert document into indexing queue." +"00001C3E","7230","-4294960066","","The specified watermark group does not exist." +"00001C66","7270","-4294960026","","The user does not have any rights to this field." +"00001C68","7272","-4294960024","","The specified field cannot be found." +"00001C69","7273","-4294960023","","Failed to retrieve template field properties." +"00001C6A","7274","-4294960022","","Unrecognized or unsupported field data type." +"00001C6B","7275","-4294960021","","Cannot read the field ACL information." +"00001C70","7280","-4294960016","","Cannot find record versions." +"00001C84","7300","-4294959996","","Move/copy would result in cyclic folder structure." +"00001C86","7302","-4294959994","","Folder structure too deep to delete." +"00001C87","7303","-4294959993","","Parent of copied object must be a folder." +"00001C88","7304","-4294959992","","Timed out while creating an object." +"00001C89","7305","-4294959991","","Display limit exceeded." +"00001C8A","7306","-4294959990","","Folder deletion incomplete. Some contents could not be deleted." +"00001C8B","7307","-4294959989","","Could not find a suitable folder for the document. Would you like to use the root folder?." +"00001C8C","7308","-4294959988","","Can't copy a folder." +"00001C8E","7310","-4294959986","","The volume is read-only." +"00001C91","7313","-4294959983","","A volume already exists at the specified location." +"00001C92","7314","-4294959982","","Volume path updated. Please move all corresponding files to new location." +"00001C93","7315","-4294959981","","Unable to access remote file server. Please check network connection." +"00001C94","7316","-4294959980","","Volume has not been exported." +"00001C95","7317","-4294959979","","Volume is not mounted." +"00001C96","7318","-4294959978","","Volume is full." +"00001C97","7319","-4294959977","","Volume is at the size warning limit." +"00001C98","7320","-4294959976","","Object already has a template." +"00001C99","7321","-4294959975","","Entry does not have a template." +"00001C9B","7323","-4294959973","","Template could not be modified." +"00001C9C","7324","-4294959972","","One or more template field values supplied are invalid." +"00001C9D","7325","-4294959971","","A required field cannot be empty." +"00001C9F","7327","-4294959969","","Failed to add values to the drop list." +"00001CA0","7328","-4294959968","","Template field has an invalid regular expression constraint." +"00001CA2","7330","-4294959966","","Security not enabled on repository." +"00001CA3","7331","-4294959965","","The user name or password is incorrect." +"00001CA4","7332","-4294959964","","Permission denied." +"00001CA5","7333","-4294959963","","A user cannot be deleted when logged in to the repository." +"00001CA8","7336","-4294959960","","Cannot disconnect self from repository." +"00001CAB","7339","-4294959957","","The user account has been disabled." +"00001CAC","7340","-4294959956","","The maximum licensed page number has been reached for this repository." +"00001CAD","7341","-4294959955","","Domain authentication is not available." +"00001CAE","7342","-4294959954","","The maximum length of a password is 31 characters." +"00001CAF","7343","-4294959953","","Cannot disable one's own user account." +"00001CB0","7344","-4294959952","","The password does not meet the minimum length requirement." +"00001CB1","7345","-4294959951","","The password does not meet the complexity requirement." +"00001CB2","7346","-4294959950","","This password is invalid because it has been used before." +"00001CB3","7347","-4294959949","","You do not have sufficient permissions to change your password. Please contact your Laserfiche administrator for assistance." +"00001CB4","7348","-4294959948","","Passwords cannot contain the user's name." +"00001CB5","7349","-4294959947","","This password has expired and must be changed." +"00001CB6","7350","-4294959946","","Invalid document handle." +"00001CBF","7359","-4294959937","","Your temporary password has expired. Please contact your Laserfiche administrator for assistance." +"00001CC0","7360","-4294959936","","Cannot find file." +"00001CC1","7361","-4294959935","","Cannot open file." +"00001CC2","7362","-4294959934","","Cannot open file (access denied.)." +"00001CC3","7363","-4294959933","","Invalid file handle." +"00001CC4","7364","-4294959932","","Cannot read file." +"00001CC5","7365","-4294959931","","Cannot write to file." +"00001CC6","7366","-4294959930","","Cannot create file." +"00001CC7","7367","-4294959929","","Cannot delete file." +"00001CC8","7368","-4294959928","","Cannot seek to position in file." +"00001CC9","7369","-4294959927","","Cannot copy/ move file." +"00001CCA","7370","-4294959926","","The requested data does not exist." +"00001CCF","7375","-4294959921","","Cannot create data file." +"00001CD0","7376","-4294959920","","Cannot delete data file." +"00001CD1","7377","-4294959919","","Bad data version." +"00001CD2","7378","-4294959918","","Bad continuation." +"00001CD3","7379","-4294959917","","The size of the buffer is too small." +"00001CD4","7380","-4294959916","","Cannot find exclusion data." +"00001CDE","7390","-4294959906","","Object locked by another user." +"00001CDF","7391","-4294959905","","Entry modified. Cannot change lock mode." +"00001CE0","7392","-4294959904","","Document locked with a persistent lock." +"00001CE3","7395","-4294959901","","Comment too long." +"00001CE4","7396","-4294959900","","Only one version of a document may be checked out at a time." +"00001CE8","7400","-4294959896","","Cannot find locations file." +"00001CE9","7401","-4294959895","","Locations file does not contain locations for all words." +"00001CEB","7403","-4294959893","","Locations data corrupted." +"00001CF2","7410","-4294959886","","A request was made for a character past the last character of the page." +"00001CF3","7411","-4294959885","","The page requested had no information." +"00001CF4","7412","-4294959884","","Page stat is corrupted." +"00001CFC","7420","-4294959876","","WOF index incorrect." +"00001D06","7430","-4294959866","","Invalid volume grab handle." +"00001D07","7431","-4294959865","","Volume grab handle table full." +"00001D09","7433","-4294959863","","There are no more files in the directory." +"00001D0A","7434","-4294959862","","Decompression of briefcase failed." +"00001D0B","7435","-4294959861","","Compression of briefcase failed." +"00001D10","7440","-4294959856","","Could not initialize a new audit log file." +"00001D11","7441","-4294959855","","Could not find or read the compression dictionary." +"00001D12","7442","-4294959854","","The compression of audit event data failed." +"00001D13","7443","-4294959853","","Error writing to audit XML file." +"00001D14","7444","-4294959852","","An audit reason was not specified, or an invalid reason was specified." +"00001D2E","7470","-4294959826","","The SQL data file location (.mdf) is not valid. Please make sure that the file exists." +"00001D2F","7471","-4294959825","","A Laserfiche repository is not located at the path specified." +"00001D30","7472","-4294959824","","Supplementary databases could not be removed." +"00001D31","7473","-4294959823","","Repository could not be detached or deleted." +"00001D38","7480","-4294959816","","Volume has unrecognized XML attribute tag." +"00001D42","7490","-4294959806","","This record series has folders and/or documents associated with it and can't be deleted." +"00001D43","7491","-4294959805","","The specified entry is not a record folder." +"00001D44","7492","-4294959804","","Records marked as permanent cannot be destroyed." +"00001D45","7493","-4294959803","","A record series with the code you specified already exists. Specify a different code." +"00001D46","7494","-4294959802","","The record already has been cut off." +"00001D47","7495","-4294959801","","The record is not eligible for disposition." +"00001D48","7496","-4294959800","","Only record folders are allowed directly under record series." +"00001D49","7497","-4294959799","","Cannot reverse the cutoff designation of record transferred away from the Current File Area." +"00001D4A","7498","-4294959798","","The specified transfer sequence number does not exist." +"00001D4B","7499","-4294959797","","The specified location already exists." +"00001D4C","7500","-4294959796","","Version group does not exist." +"00001D4D","7501","-4294959795","","Duplicate version numbers in a group are not allowed." +"00001D4E","7502","-4294959794","","No such version in the version group." +"00001D4F","7503","-4294959793","","No such document in the version group." +"00001D50","7504","-4294959792","","The version number is out of range." +"00001D51","7505","-4294959791","","Cannot modify version status when a version of the document is checked out by another user." +"00001D60","7520","-4294959776","","Could not set read-only attribute on file when making volume read-only." +"00001D61","7521","-4294959775","","Could not modify volume properties." +"00001D62","7522","-4294959774","","Could not attach volume." +"00001D63","7523","-4294959773","","Could not export volume." +"00001D64","7524","-4294959772","","Invalid characters used in the volume name." +"00001D65","7525","-4294959771","","Failed to set event date." +"00001D66","7526","-4294959770","","Series description or code is too long." +"00001D67","7527","-4294959769","","Record series must be under the root." +"00001D68","7528","-4294959768","","Cannot move a record folder outside of a series." +"00001D69","7529","-4294959767","","Cannot remove the last review date." +"00001D6A","7530","-4294959766","","The specified relationship type does not exist." +"00001D6B","7531","-4294959765","","Could not create/modify relationship type (duplicate exists)." +"00001D6C","7532","-4294959764","","Failed to check property." +"00001D6D","7533","-4294959763","","Failed to close record folder; it may already be closed." +"00001D6E","7534","-4294959762","","Cannot move a cutoff record folder." +"00001D6F","7535","-4294959761","","User lacks Create Folders right; some files not imported." +"00001D70","7536","-4294959760","","User lacks Create Files right; no documents were created." +"00001D74","7540","-4294959756","","Entry tag does not exist." +"00001D75","7541","-4294959755","","Cannot create entry tag." +"00001D76","7542","-4294959754","","The entry tag cannot be deleted, as it is currently assigned to one or more entries." +"00001D77","7543","-4294959753","","Cannot create/update entry tag." +"00001D7A","7546","-4294959750","NULL","" +"00001D7E","7550","-4294959746","","The requested electronic document of that mime-type does not exist." +"00001D88","7560","-4294959736","","Could not queue electronic document for deletion." +"00001D92","7570","-4294959726","","The specified connection was not found." +"00001D93","7571","-4294959725","","The specified Windows account does not exist." +"00001D94","7572","-4294959724","","The specified Windows account is of the wrong type." +"00001D95","7573","-4294959723","","A Windows user can be linked with a maximum of one Laserfiche user." +"00001D97","7575","-4294959721","","Invalid configuration. A user must be able to change a temporary password." +"00001D9C","7580","-4294959716","","Unrecognized annotation type." +"00001D9D","7581","-4294959715","","The stamp bitmap header is incomplete." +"00001D9E","7582","-4294959714","","Cannot generate thumbnail." +"00001D9F","7583","-4294959713","","The stamp is a duplicate." +"00001DA6","7590","-4294959706","","Unrecognized parameter name." +"00001DA7","7591","-4294959705","","Parameter value is of the wrong type or out of range." +"00001DA8","7592","-4294959704","","Incorrect scope for this parameter." +"00001DA9","7593","-4294959703","","Error encountered attempting to save parameter." +"00001DB0","7600","-4294959696","","Cannot export logical volume." +"00001DB1","7601","-4294959695","","Could not export volume; target device is out of space." +"00001DB2","7602","-4294959694","","Cannot export volume to a non-empty directory." +"00001DB4","7604","-4294959692","","Maximum volume size specified is out of acceptable range." +"00001E79","7801","-4294959495","","General failure in the search engine." +"00001E7A","7802","-4294959494","","Search index files are corrupt. Rebuild search index." +"00001E7B","7803","-4294959493","","The noise file is corrupt." +"00001E7D","7805","-4294959491","","The server is out of disk space." +"00001E7E","7806","-4294959490","","The file won't open, etc." +"00001E7F","7807","-4294959489","","The link has been deleted (bad version)." +"00001E80","7808","-4294959488","","There have been too many revisions made to the document." +"00001E81","7809","-4294959487","","Too many btrees in use." +"00001E82","7810","-4294959486","","Document not open." +"00001E83","7811","-4294959485","","User canceled indexing." +"00001E84","7812","-4294959484","","Index not opened." +"00001E85","7813","-4294959483","","No text files to index." +"00001E86","7814","-4294959482","","Document cannot be opened for full-text indexing." +"00001E88","7816","-4294959480","","Open/create link failed." +"00001E89","7817","-4294959479","","The search handle is invalid." +"00001E8A","7818","-4294959478","","Could not open hit file." +"00001E8B","7819","-4294959477","","Could not open word offset file." +"00001E8C","7820","-4294959476","","The document is too large to be completely indexed." +"00001E8D","7821","-4294959475","","Search indices locked due to processing." +"00001E8E","7822","-4294959474","","Unknown swap file error." +"00001E8F","7823","-4294959473","","The search/swap file is invalid." +"00001E90","7824","-4294959472","","Cannot create search indices." +"00001E91","7825","-4294959471","","Cannot open search indices." +"00001E92","7826","-4294959470","","Access denied to search file." +"00001E93","7827","-4294959469","","Search file does not exist." +"00001E94","7828","-4294959468","","Document not found in hit list." +"00001E96","7830","-4294959466","","The indexing thread has terminated. The Laserfiche Server must be restarted before documents can be indexed." +"00001E97","7831","-4294959465","","Bad searchwrapper handle." +"00001E98","7832","-4294959464","","Search initialization timed out during wait." +"00001E99","7833","-4294959463","","Indexing could not rebuild search blackouts." +"00001E9A","7834","-4294959462","","Search or sort is already in progress." +"00001EAB","7851","-4294959445","","Unknown syntax error." +"00001EAC","7852","-4294959444","","Unknown parser error." +"00001EAE","7854","-4294959442","","Search stack overflow." +"00001EAF","7855","-4294959441","","Literal missing final quote." +"00001EB0","7856","-4294959440","","Within or near missing distance number." +"00001EB1","7857","-4294959439","","Invalid character in search string." +"00001EB2","7858","-4294959438","","Too many carets (^) in [ ]." +"00001EB3","7859","-4294959437","","Needs high end of range --> [ab-]." +"00001EB4","7860","-4294959436","","Mismatched parentheses." +"00001EB5","7861","-4294959435","","Unexpected end of search phrase." +"00001EB6","7862","-4294959434","","Unexpected AND." +"00001EB7","7863","-4294959433","","Unexpected OR." +"00001EB8","7864","-4294959432","","Unexpected NOT." +"00001EB9","7865","-4294959431","","Unexpected right parenthesis." +"00001EBA","7866","-4294959430","","Unexpected field operator." +"00001EBB","7867","-4294959429","","Unexpected within operator." +"00001EBC","7868","-4294959428","","Missing right parenthesis." +"00001EBD","7869","-4294959427","","Missing left parenthesis." +"00001EBE","7870","-4294959426","","Missing right brace." +"00001EBF","7871","-4294959425","","Missing left brace." +"00001EC0","7872","-4294959424","","Template name not recognized." +"00001EC1","7873","-4294959423","","Field name not recognized." +"00001EC2","7874","-4294959422","","The specified path is invalid." +"00001EC3","7875","-4294959421","","The specified object ID is invalid." +"00001EC4","7876","-4294959420","","Invalid field value was inputted for the field type." +"00001EC8","7880","-4294959416","","The specified location is in use." +"00001EC9","7881","-4294959415","","The specified location doesnt exist." +"00001ECA","7882","-4294959414","","The specified cycle definition does not exist." +"00001ECB","7883","-4294959413","","The specified cycle definition already exists." +"00001ECC","7884","-4294959412","","The specified cycle does not exist." +"00001ECD","7885","-4294959411","","The specified cycle already exists." +"00001ECE","7886","-4294959410","","The specified cycle definition cannot be deleted because it is currently in use." +"00001ECF","7887","-4294959409","","Failed to open record folder." +"00001ED0","7888","-4294959408","","Failed to place or remove a hold on the record folder." +"00001ED1","7889","-4294959407","","Failed to cutoff or uncutoff a record folder." +"00001EF6","7926","-4294959370","","Entry is under hold." +"00001EF7","7927","-4294959369","","Duplicate retention schedule name." +"00001EF8","7928","-4294959368","","The retention schedule is in use, and may not be deleted or modified." +"00001EF9","7929","-4294959367","","The record folder has been cut off, and filing date may not be deleted." +"00001EFA","7930","-4294959366","","The filing date cannot be after the creation date." +"00001EFB","7931","-4294959365","","The specified period does not contain any cycles." +"00001EFC","7932","-4294959364","","The specified transfer is in use and cannot be deleted." +"00001EFD","7933","-4294959363","","Record must be superseded before final disposition action can occur." +"00001EFE","7934","-4294959362","","Retention schedule with requires superseded requirement must have no hold, transfer, or post-cutoff trigger." +"00001EFF","7935","-4294959361","","Retention schedule cannot use itself as an alternate schedule for a post-cutoff trigger." +"00001F00","7936","-4294959360","","Retention schedule cannot have an alternate schedule if it is already used as an alternate schedule itself." +"00001F01","7937","-4294959359","","The specified event does not exist." +"00001F02","7938","-4294959358","","This link type cannot be removed or renamed due to DOD 5015.2 compliance requirements." +"00001F03","7939","-4294959357","","This event cannot be deleted because it is in use." +"00001F04","7940","-4294959356","","The field data specified does not match all field data constraint requirements." +"00001F1D","7965","-4294959331","NULL","" +"00001F36","7990","-4294959306","","Failed to delete event date." +"00001F37","7991","-4294959305","","Failed to get current disposition." +"00001F38","7992","-4294959304","","Failed to confirm transfer." +"00001F39","7993","-4294959303","","Invalid hold duration defined." +"00001F3A","7994","-4294959302","","Invalid hold disposition type defined." +"00001F3B","7995","-4294959301","","Failed to get eligibility date." +"00001F3C","7996","-4294959300","","Failed to carry out final disposition action." +"00001F3D","7997","-4294959299","","The specified series does not exist." +"00001F3E","7998","-4294959298","","There are no records at the specified location." +"00001F3F","7999","-4294959297","","There are no records that satisfy this criteria." +"00001F41","8001","-4294959295","FRS_ERR_INVALID_API_SEQUENCE","The file replication service API was called incorrectly." +"00001F42","8002","-4294959294","FRS_ERR_STARTING_SERVICE","The file replication service cannot be started." +"00001F43","8003","-4294959293","FRS_ERR_STOPPING_SERVICE","The file replication service cannot be stopped." +"00001F44","8004","-4294959292","FRS_ERR_INTERNAL_API","The file replication service API terminated the request. The event log may have more information." +"00001F45","8005","-4294959291","FRS_ERR_INTERNAL","The file replication service terminated the request. The event log may have more information." +"00001F46","8006","-4294959290","FRS_ERR_SERVICE_COMM","The file replication service cannot be contacted. The event log may have more information." +"00001F47","8007","-4294959289","FRS_ERR_INSUFFICIENT_PRIV","The file replication service cannot satisfy the request because the user has insufficient privileges. The event log may have more information." +"00001F48","8008","-4294959288","FRS_ERR_AUTHENTICATION","The file replication service cannot satisfy the request because authenticated RPC is not available. The event log may have more information." +"00001F49","8009","-4294959287","FRS_ERR_PARENT_INSUFFICIENT_PRIV","The file replication service cannot satisfy the request because the user has insufficient privileges on the domain controller. The event log may have more information." +"00001F4A","8010","-4294959286","FRS_ERR_PARENT_AUTHENTICATION","The file replication service cannot satisfy the request because authenticated RPC is not available on the domain controller. The event log may have more information." +"00001F4B","8011","-4294959285","FRS_ERR_CHILD_TO_PARENT_COMM","The file replication service cannot communicate with the file replication service on the domain controller. The event log may have more information." +"00001F4C","8012","-4294959284","FRS_ERR_PARENT_TO_CHILD_COMM","The file replication service on the domain controller cannot communicate with the file replication service on this computer. The event log may have more information." +"00001F4D","8013","-4294959283","FRS_ERR_SYSVOL_POPULATE","The file replication service cannot populate the system volume because of an internal error. The event log may have more information." +"00001F4E","8014","-4294959282","FRS_ERR_SYSVOL_POPULATE_TIMEOUT","The file replication service cannot populate the system volume because of an internal timeout. The event log may have more information." +"00001F4F","8015","-4294959281","FRS_ERR_SYSVOL_IS_BUSY","The file replication service cannot process the request. The system volume is busy with a previous request." +"00001F50","8016","-4294959280","FRS_ERR_SYSVOL_DEMOTE","The file replication service cannot stop replicating the system volume because of an internal error. The event log may have more information." +"00001F51","8017","-4294959279","FRS_ERR_INVALID_SERVICE_PARAMETER","The file replication service detected an invalid parameter." +"00001F59","8025","-4294959271","NULL","" +"00002008","8200","-4294959096","ERROR_DS_NOT_INSTALLED","An error occurred while installing the directory service. For more information - see the event log." +"00002009","8201","-4294959095","ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY","The directory service evaluated group memberships locally." +"0000200A","8202","-4294959094","ERROR_DS_NO_ATTRIBUTE_OR_VALUE","The specified directory service attribute or value does not exist." +"0000200B","8203","-4294959093","ERROR_DS_INVALID_ATTRIBUTE_SYNTAX","The attribute syntax specified to the directory service is invalid." +"0000200C","8204","-4294959092","ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED","The attribute type specified to the directory service is not defined." +"0000200D","8205","-4294959091","ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS","The specified directory service attribute or value already exists." +"0000200E","8206","-4294959090","ERROR_DS_BUSY","The directory service is busy." +"0000200F","8207","-4294959089","ERROR_DS_UNAVAILABLE","The directory service is unavailable." +"00002010","8208","-4294959088","ERROR_DS_NO_RIDS_ALLOCATED","The directory service was unable to allocate a relative identifier." +"00002011","8209","-4294959087","ERROR_DS_NO_MORE_RIDS","The directory service has exhausted the pool of relative identifiers." +"00002012","8210","-4294959086","ERROR_DS_INCORRECT_ROLE_OWNER","The requested operation could not be performed because the directory service is not the master for that type of operation." +"00002013","8211","-4294959085","ERROR_DS_RIDMGR_INIT_ERROR","The directory service was unable to initialize the subsystem that allocates relative identifiers." +"00002014","8212","-4294959084","ERROR_DS_OBJ_CLASS_VIOLATION","The requested operation did not satisfy one or more constraints associated with the class of the object." +"00002015","8213","-4294959083","ERROR_DS_CANT_ON_NON_LEAF","The directory service can perform the requested operation only on a leaf object." +"00002016","8214","-4294959082","ERROR_DS_CANT_ON_RDN","The directory service cannot perform the requested operation on the RDN attribute of an object." +"00002017","8215","-4294959081","ERROR_DS_CANT_MOD_OBJ_CLASS","The directory service detected an attempt to modify the object class of an object." +"00002018","8216","-4294959080","ERROR_DS_CROSS_DOM_MOVE_ERROR","The requested cross-domain move operation could not be performed." +"00002019","8217","-4294959079","ERROR_DS_GC_NOT_AVAILABLE","Unable to contact the global catalog server." +"0000201A","8218","-4294959078","ERROR_SHARED_POLICY","The policy object is shared and can only be modified at the root." +"0000201B","8219","-4294959077","ERROR_POLICY_OBJECT_NOT_FOUND","The policy object does not exist." +"0000201C","8220","-4294959076","ERROR_POLICY_ONLY_IN_DS","The requested policy information is only in the directory service." +"0000201D","8221","-4294959075","ERROR_PROMOTION_ACTIVE","A domain controller promotion is currently active." +"0000201E","8222","-4294959074","ERROR_NO_PROMOTION_ACTIVE","A domain controller promotion is not currently active." +"00002020","8224","-4294959072","ERROR_DS_OPERATIONS_ERROR","An operations error occurred." +"00002021","8225","-4294959071","ERROR_DS_PROTOCOL_ERROR","A protocol error occurred." +"00002022","8226","-4294959070","ERROR_DS_TIMELIMIT_EXCEEDED","The time limit for this request was exceeded." +"00002023","8227","-4294959069","ERROR_DS_SIZELIMIT_EXCEEDED","The size limit for this request was exceeded." +"00002024","8228","-4294959068","ERROR_DS_ADMIN_LIMIT_EXCEEDED","The administrative limit for this request was exceeded." +"00002025","8229","-4294959067","ERROR_DS_COMPARE_FALSE","The compare response was false." +"00002026","8230","-4294959066","ERROR_DS_COMPARE_TRUE","The compare response was true." +"00002027","8231","-4294959065","ERROR_DS_AUTH_METHOD_NOT_SUPPORTED","The requested authentication method is not supported by the server." +"00002028","8232","-4294959064","ERROR_DS_STRONG_AUTH_REQUIRED","A more secure authentication method is required for this server." +"00002029","8233","-4294959063","ERROR_DS_INAPPROPRIATE_AUTH","Inappropriate authentication." +"0000202A","8234","-4294959062","ERROR_DS_AUTH_UNKNOWN","The authentication mechanism is unknown." +"0000202B","8235","-4294959061","ERROR_DS_REFERRAL","A referral was returned from the server." +"0000202C","8236","-4294959060","ERROR_DS_UNAVAILABLE_CRIT_EXTENSION","The server does not support the requested critical extension." +"0000202D","8237","-4294959059","ERROR_DS_CONFIDENTIALITY_REQUIRED","This request requires a secure connection." +"0000202E","8238","-4294959058","ERROR_DS_INAPPROPRIATE_MATCHING","Inappropriate matching." +"0000202F","8239","-4294959057","ERROR_DS_CONSTRAINT_VIOLATION","A constraint violation occurred." +"00002030","8240","-4294959056","ERROR_DS_NO_SUCH_OBJECT","There is no such object on the server." +"00002031","8241","-4294959055","ERROR_DS_ALIAS_PROBLEM","There is an alias problem." +"00002032","8242","-4294959054","ERROR_DS_INVALID_DN_SYNTAX","An invalid dn syntax has been specified." +"00002033","8243","-4294959053","ERROR_DS_IS_LEAF","The object is a leaf object." +"00002034","8244","-4294959052","ERROR_DS_ALIAS_DEREF_PROBLEM","There is an alias dereferencing problem." +"00002035","8245","-4294959051","ERROR_DS_UNWILLING_TO_PERFORM","The server is unwilling to process the request." +"00002036","8246","-4294959050","ERROR_DS_LOOP_DETECT","A loop has been detected." +"00002037","8247","-4294959049","ERROR_DS_NAMING_VIOLATION","There is a naming violation." +"00002038","8248","-4294959048","ERROR_DS_OBJECT_RESULTS_TOO_LARGE","The result set is too large." +"00002039","8249","-4294959047","ERROR_DS_AFFECTS_MULTIPLE_DSAS","The operation affects multiple DSAs." +"0000203A","8250","-4294959046","ERROR_DS_SERVER_DOWN","The server is not operational." +"0000203B","8251","-4294959045","ERROR_DS_LOCAL_ERROR","A local error has occurred." +"0000203C","8252","-4294959044","ERROR_DS_ENCODING_ERROR","An encoding error has occurred." +"0000203D","8253","-4294959043","ERROR_DS_DECODING_ERROR","A decoding error has occurred." +"0000203E","8254","-4294959042","ERROR_DS_FILTER_UNKNOWN","The search filter cannot be recognized." +"0000203F","8255","-4294959041","ERROR_DS_PARAM_ERROR","One or more parameters are illegal." +"00002040","8256","-4294959040","ERROR_DS_NOT_SUPPORTED","The specified method is not supported." +"00002041","8257","-4294959039","ERROR_DS_NO_RESULTS_RETURNED","No results were returned." +"00002042","8258","-4294959038","ERROR_DS_CONTROL_NOT_FOUND","The specified control is not supported by the server." +"00002043","8259","-4294959037","ERROR_DS_CLIENT_LOOP","A referral loop was detected by the client." +"00002044","8260","-4294959036","ERROR_DS_REFERRAL_LIMIT_EXCEEDED","The preset referral limit was exceeded." +"00002045","8261","-4294959035","ERROR_DS_SORT_CONTROL_MISSING","The search requires a SORT control." +"00002046","8262","-4294959034","ERROR_DS_OFFSET_RANGE_ERROR","The search results exceed the offset range specified." +"00002047","8263","-4294959033","ERROR_DS_RIDMGR_DISABLED","The directory service detected the subsystem that allocates relative identifiers is disabled. This can occur as a protective mechanism when the system determines a signifiCan't portion of relative identifiers." +"0000206D","8301","-4294958995","ERROR_DS_ROOT_MUST_BE_NC","The root object must be the head of a naming context. The root object cannot have an instantiated parent." +"0000206E","8302","-4294958994","ERROR_DS_ADD_REPLICA_INHIBITED","The add replica operation cannot be performed. The naming context must be writeable in order to create the replica." +"0000206F","8303","-4294958993","ERROR_DS_ATT_NOT_DEF_IN_SCHEMA","A reference to an attribute that is not defined in the schema occurred." +"00002070","8304","-4294958992","ERROR_DS_MAX_OBJ_SIZE_EXCEEDED","The maximum size of an object has been exceeded." +"00002071","8305","-4294958991","ERROR_DS_OBJ_STRING_NAME_EXISTS","An attempt was made to add an object to the directory with a name that is already in use." +"00002072","8306","-4294958990","ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA","An attempt was made to add an object of a class that does not have an RDN defined in the schema." +"00002073","8307","-4294958989","ERROR_DS_RDN_DOESNT_MATCH_SCHEMA","An attempt was made to add an object using an RDN that is not the RDN defined in the schema." +"00002074","8308","-4294958988","ERROR_DS_NO_REQUESTED_ATTS_FOUND","None of the requested attributes were found on the objects." +"00002075","8309","-4294958987","ERROR_DS_USER_BUFFER_TO_SMALL","The user buffer is too small." +"00002076","8310","-4294958986","ERROR_DS_ATT_IS_NOT_ON_OBJ","The attribute specified in the operation is not present on the object." +"00002077","8311","-4294958985","ERROR_DS_ILLEGAL_MOD_OPERATION","Illegal modify operation. Some aspect of the modification is not permitted." +"00002078","8312","-4294958984","ERROR_DS_OBJ_TOO_LARGE","The specified object is too large." +"00002079","8313","-4294958983","ERROR_DS_BAD_INSTANCE_TYPE","The specified instance type is not valid." +"0000207A","8314","-4294958982","ERROR_DS_MASTERDSA_REQUIRED","The operation must be performed at a master DSA." +"0000207B","8315","-4294958981","ERROR_DS_OBJECT_CLASS_REQUIRED","The object class attribute must be specified." +"0000207C","8316","-4294958980","ERROR_DS_MISSING_REQUIRED_ATT","A required attribute is missing." +"0000207D","8317","-4294958979","ERROR_DS_ATT_NOT_DEF_FOR_CLASS","An attempt was made to modify an object to include an attribute that is not legal for its class." +"0000207E","8318","-4294958978","ERROR_DS_ATT_ALREADY_EXISTS","The specified attribute is already present on the object." +"00002080","8320","-4294958976","ERROR_DS_CANT_ADD_ATT_VALUES","The specified attribute is not present - or has no values." +"00002081","8321","-4294958975","ERROR_DS_SINGLE_VALUE_CONSTRAINT","Multiple values were specified for an attribute that can have only one value." +"00002082","8322","-4294958974","ERROR_DS_RANGE_CONSTRAINT","A value for the attribute was not in the acceptable range of values." +"00002083","8323","-4294958973","ERROR_DS_ATT_VAL_ALREADY_EXISTS","The specified value already exists." +"00002084","8324","-4294958972","ERROR_DS_CANT_REM_MISSING_ATT","The attribute cannot be removed because it is not present on the object." +"00002085","8325","-4294958971","ERROR_DS_CANT_REM_MISSING_ATT_VAL","The attribute value cannot be removed because it is not present on the object." +"00002086","8326","-4294958970","ERROR_DS_ROOT_CANT_BE_SUBREF","The specified root object cannot be a subref." +"00002087","8327","-4294958969","ERROR_DS_NO_CHAINING","Chaining is not permitted." +"00002088","8328","-4294958968","ERROR_DS_NO_CHAINED_EVAL","Chained evaluation is not permitted." +"00002089","8329","-4294958967","ERROR_DS_NO_PARENT_OBJECT","The operation could not be performed because the object's parent is either uninstantiated or deleted." +"0000208A","8330","-4294958966","ERROR_DS_PARENT_IS_AN_ALIAS","Having a parent that is an alias is not permitted. Aliases are leaf objects." +"0000208B","8331","-4294958965","ERROR_DS_CANT_MIX_MASTER_AND_REPS","The object and parent must be of the same type - either both masters or both replicas." +"0000208C","8332","-4294958964","ERROR_DS_CHILDREN_EXIST","The operation cannot be performed because child objects exist. This operation can only be performed on a leaf object." +"0000208D","8333","-4294958963","ERROR_DS_OBJ_NOT_FOUND","Directory object not found." +"0000208E","8334","-4294958962","ERROR_DS_ALIASED_OBJ_MISSING","The aliased object is missing." +"0000208F","8335","-4294958961","ERROR_DS_BAD_NAME_SYNTAX","The object name has bad syntax." +"00002090","8336","-4294958960","ERROR_DS_ALIAS_POINTS_TO_ALIAS","It is not permitted for an alias to refer to another alias." +"00002091","8337","-4294958959","ERROR_DS_CANT_DEREF_ALIAS","The alias cannot be dereferenced." +"00002092","8338","-4294958958","ERROR_DS_OUT_OF_SCOPE","The operation is out of scope." +"00002093","8339","-4294958957","ERROR_DS_OBJECT_BEING_REMOVED","The operation cannot continue because the object is in the process of being removed." +"00002094","8340","-4294958956","ERROR_DS_CANT_DELETE_DSA_OBJ","The DSA object cannot be deleted." +"00002095","8341","-4294958955","ERROR_DS_GENERIC_ERROR","A directory service error has occurred." +"00002096","8342","-4294958954","ERROR_DS_DSA_MUST_BE_INT_MASTER","The operation can only be performed on an internal master DSA object." +"00002097","8343","-4294958953","ERROR_DS_CLASS_NOT_DSA","The object must be of class DSA." +"00002098","8344","-4294958952","ERROR_DS_INSUFF_ACCESS_RIGHTS","Insufficient access rights to perform the operation." +"00002099","8345","-4294958951","ERROR_DS_ILLEGAL_SUPERIOR","The object cannot be added because the parent is not on the list of possible superiors." +"0000209A","8346","-4294958950","ERROR_DS_ATTRIBUTE_OWNED_BY_SAM","Access to the attribute is not permitted because the attribute is owned by the Security Accounts Manager." +"0000209B","8347","-4294958949","ERROR_DS_NAME_TOO_MANY_PARTS","The name has too many parts." +"0000209C","8348","-4294958948","ERROR_DS_NAME_TOO_LONG","The name is too long." +"0000209D","8349","-4294958947","ERROR_DS_NAME_VALUE_TOO_LONG","The name value is too long." +"0000209E","8350","-4294958946","ERROR_DS_NAME_UNPARSEABLE","The directory service encountered an error parsing a name." +"0000209F","8351","-4294958945","ERROR_DS_NAME_TYPE_UNKNOWN","The directory service cannot get the attribute type for a name." +"000020A0","8352","-4294958944","ERROR_DS_NOT_AN_OBJECT","The name does not identify an object; the name identifies a phantom." +"000020A1","8353","-4294958943","ERROR_DS_SEC_DESC_TOO_SHORT","The security descriptor is too short." +"000020A2","8354","-4294958942","ERROR_DS_SEC_DESC_INVALID","The security descriptor is invalid." +"000020A3","8355","-4294958941","ERROR_DS_NO_DELETED_NAME","Failed to create name for deleted object." +"000020A4","8356","-4294958940","ERROR_DS_SUBREF_MUST_HAVE_PARENT","The parent of a new subref must exist." +"000020A5","8357","-4294958939","ERROR_DS_NCNAME_MUST_BE_NC","The object must be a naming context." +"000020A6","8358","-4294958938","ERROR_DS_CANT_ADD_SYSTEM_ONLY","It is not permitted to add an attribute which is owned by the system." +"000020A7","8359","-4294958937","ERROR_DS_CLASS_MUST_BE_CONCRETE","The class of the object must be structural; you cannot instantiate an abstract class." +"000020A8","8360","-4294958936","ERROR_DS_INVALID_DMD","The schema object could not be found." +"000020A9","8361","-4294958935","ERROR_DS_OBJ_GUID_EXISTS","A local object with this GUID." +"000020AA","8362","-4294958934","ERROR_DS_NOT_ON_BACKLINK","The operation cannot be performed on a back link." +"000020AB","8363","-4294958933","ERROR_DS_NO_CROSSREF_FOR_NC","The cross reference for the specified naming context could not be found." +"000020AC","8364","-4294958932","ERROR_DS_SHUTTING_DOWN","The operation could not be performed because the directory service is shutting down." +"000020AD","8365","-4294958931","ERROR_DS_UNKNOWN_OPERATION","The directory service request is invalid." +"000020AE","8366","-4294958930","ERROR_DS_INVALID_ROLE_OWNER","The role owner attribute could not be read." +"000020AF","8367","-4294958929","ERROR_DS_COULDNT_CONTACT_FSMO","The requested FSMO operation failed. The current FSMO holder could not be contacted." +"000020B0","8368","-4294958928","ERROR_DS_CROSS_NC_DN_RENAME","Modification of a DN across a naming context is not permitted." +"000020B1","8369","-4294958927","ERROR_DS_CANT_MOD_SYSTEM_ONLY","The attribute cannot be modified because it is owned by the system." +"000020B2","8370","-4294958926","ERROR_DS_REPLICATOR_ONLY","Only the replicator can perform this function." +"000020B3","8371","-4294958925","ERROR_DS_OBJ_CLASS_NOT_DEFINED","The specified class is not defined." +"000020B4","8372","-4294958924","ERROR_DS_OBJ_CLASS_NOT_SUBCLASS","The specified class is not a subclass." +"000020B5","8373","-4294958923","ERROR_DS_NAME_REFERENCE_INVALID","The name reference is invalid." +"000020B6","8374","-4294958922","ERROR_DS_CROSS_REF_EXISTS","A cross reference already exists." +"000020B7","8375","-4294958921","ERROR_DS_CANT_DEL_MASTER_CROSSREF","It is not permitted to delete a master cross reference." +"000020B8","8376","-4294958920","ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD","Subtree notifications are only supported on NC heads." +"000020B9","8377","-4294958919","ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX","Notification filter is too complex." +"000020BA","8378","-4294958918","ERROR_DS_DUP_RDN","Schema update failed: duplicate RDN." +"000020BB","8379","-4294958917","ERROR_DS_DUP_OID","Schema update failed: duplicate OID." +"000020BC","8380","-4294958916","ERROR_DS_DUP_MAPI_ID","Schema update failed: duplicate MAPI identifier." +"000020BD","8381","-4294958915","ERROR_DS_DUP_SCHEMA_ID_GUID","Schema update failed: duplicate schema-id GUID." +"000020BE","8382","-4294958914","ERROR_DS_DUP_LDAP_DISPLAY_NAME","Schema update failed: duplicate LDAP display name." +"000020BF","8383","-4294958913","ERROR_DS_SEMANTIC_ATT_TEST","Schema update failed: range-lower less than range upper." +"000020C0","8384","-4294958912","ERROR_DS_SYNTAX_MISMATCH","Schema update failed: syntax mismatch." +"000020C1","8385","-4294958911","ERROR_DS_EXISTS_IN_MUST_HAVE","Schema deletion failed: attribute is used in must-contain." +"000020C2","8386","-4294958910","ERROR_DS_EXISTS_IN_MAY_HAVE","Schema deletion failed: attribute is used in may-contain." +"000020C3","8387","-4294958909","ERROR_DS_NONEXISTENT_MAY_HAVE","Schema update failed: attribute in may-contain does not exist." +"000020C4","8388","-4294958908","ERROR_DS_NONEXISTENT_MUST_HAVE","Schema update failed: attribute in must-contain does not exist." +"000020C5","8389","-4294958907","ERROR_DS_AUX_CLS_TEST_FAIL","Schema update failed: class in aux-class list does not exist or is not an auxiliary class." +"000020C6","8390","-4294958906","ERROR_DS_NONEXISTENT_POSS_SUP","Schema update failed: class in poss-superiors does not exist." +"000020C7","8391","-4294958905","ERROR_DS_SUB_CLS_TEST_FAIL","Schema update failed: class in subclassof list does not exist or does not satisfy hierarchy rules." +"000020C8","8392","-4294958904","ERROR_DS_BAD_RDN_ATT_ID_SYNTAX","Schema update failed: Rdn-Att-Id has wrong syntax." +"000020C9","8393","-4294958903","ERROR_DS_EXISTS_IN_AUX_CLS","Schema deletion failed: class is used as auxiliary class." +"000020CA","8394","-4294958902","ERROR_DS_EXISTS_IN_SUB_CLS","Schema deletion failed: class is used as sub class." +"000020CB","8395","-4294958901","ERROR_DS_EXISTS_IN_POSS_SUP","Schema deletion failed: class is used as poss superior." +"000020CC","8396","-4294958900","ERROR_DS_RECALCSCHEMA_FAILED","Schema update failed in recalculating validation cache." +"000020CD","8397","-4294958899","ERROR_DS_TREE_DELETE_NOT_FINISHED","The tree deletion is not finished. The request must be made again to continue deleting the tree." +"000020CE","8398","-4294958898","ERROR_DS_CANT_DELETE","The requested delete operation could not be performed." +"000020CF","8399","-4294958897","ERROR_DS_ATT_SCHEMA_REQ_ID","Cannot read the governs class identifier for the schema record." +"000020D0","8400","-4294958896","ERROR_DS_BAD_ATT_SCHEMA_SYNTAX","The attribute schema has bad syntax." +"000020D1","8401","-4294958895","ERROR_DS_CANT_CACHE_ATT","The attribute could not be cached." +"000020D2","8402","-4294958894","ERROR_DS_CANT_CACHE_CLASS","The class could not be cached." +"000020D3","8403","-4294958893","ERROR_DS_CANT_REMOVE_ATT_CACHE","The attribute could not be removed from the cache." +"000020D4","8404","-4294958892","ERROR_DS_CANT_REMOVE_CLASS_CACHE","The class could not be removed from the cache." +"000020D5","8405","-4294958891","ERROR_DS_CANT_RETRIEVE_DN","The distinguished name attribute could not be read." +"000020D6","8406","-4294958890","ERROR_DS_MISSING_SUPREF","No superior reference has been configured for the directory service. The directory service is therefore unable to issue referrals to objects outside this forest." +"000020D7","8407","-4294958889","ERROR_DS_CANT_RETRIEVE_INSTANCE","The instance type attribute could not be retrieved." +"000020D8","8408","-4294958888","ERROR_DS_CODE_INCONSISTENCY","An internal error has occurred." +"000020D9","8409","-4294958887","ERROR_DS_DATABASE_ERROR","A database error has occurred." +"000020DA","8410","-4294958886","ERROR_DS_GOVERNSID_MISSING","The attribute GOVERNSID is missing." +"000020DB","8411","-4294958885","ERROR_DS_MISSING_EXPECTED_ATT","An expected attribute is missing." +"000020DC","8412","-4294958884","ERROR_DS_NCNAME_MISSING_CR_REF","The specified naming context is missing a cross reference." +"000020DD","8413","-4294958883","ERROR_DS_SECURITY_CHECKING_ERROR","A security checking error has occurred." +"000020DE","8414","-4294958882","ERROR_DS_SCHEMA_NOT_LOADED","The schema is not loaded." +"000020DF","8415","-4294958881","ERROR_DS_SCHEMA_ALLOC_FAILED","Schema allocation failed. Please check if the machine is running low on memory." +"000020E0","8416","-4294958880","ERROR_DS_ATT_SCHEMA_REQ_SYNTAX","Failed to obtain the required syntax for the attribute schema." +"000020E1","8417","-4294958879","ERROR_DS_GCVERIFY_ERROR","The global catalog verification failed. The global catalog is not available or does not support the operation. Some part of the directory is currently not available." +"000020E2","8418","-4294958878","ERROR_DS_DRA_SCHEMA_MISMATCH","The replication operation failed because of a schema mismatch between the servers involved." +"000020E3","8419","-4294958877","ERROR_DS_CANT_FIND_DSA_OBJ","The DSA object could not be found." +"000020E4","8420","-4294958876","ERROR_DS_CANT_FIND_EXPECTED_NC","The naming context could not be found." +"000020E5","8421","-4294958875","ERROR_DS_CANT_FIND_NC_IN_CACHE","The naming context could not be found in the cache." +"000020E6","8422","-4294958874","ERROR_DS_CANT_RETRIEVE_CHILD","The child object could not be retrieved." +"000020E7","8423","-4294958873","ERROR_DS_SECURITY_ILLEGAL_MODIFY","The modification was not permitted for security reasons." +"000020E8","8424","-4294958872","ERROR_DS_CANT_REPLACE_HIDDEN_REC","The operation cannot replace the hidden record." +"000020E9","8425","-4294958871","ERROR_DS_BAD_HIERARCHY_FILE","The hierarchy file is invalid." +"000020EA","8426","-4294958870","ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED","The attempt to build the hierarchy table failed." +"000020EB","8427","-4294958869","ERROR_DS_CONFIG_PARAM_MISSING","The directory configuration parameter is missing from the registry." +"000020EC","8428","-4294958868","ERROR_DS_COUNTING_AB_INDICES_FAILED","The attempt to count the address book indices failed." +"000020ED","8429","-4294958867","ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED","The allocation of the hierarchy table failed." +"000020EE","8430","-4294958866","ERROR_DS_INTERNAL_FAILURE","The directory service encountered an internal failure." +"000020EF","8431","-4294958865","ERROR_DS_UNKNOWN_ERROR","The directory service encountered an unknown failure." +"000020F0","8432","-4294958864","ERROR_DS_ROOT_REQUIRES_CLASS_TOP","A root object requires a class of 'top'." +"000020F1","8433","-4294958863","ERROR_DS_REFUSING_FSMO_ROLES","This directory server is shutting down - and cannot take ownership of new floating single-master operation roles." +"000020F2","8434","-4294958862","ERROR_DS_MISSING_FSMO_SETTINGS","The directory service is missing mandatory configuration information - and is unable to determine the ownership of floating single-master operation roles." +"000020F3","8435","-4294958861","ERROR_DS_UNABLE_TO_SURRENDER_ROLES","The directory service was unable to transfer ownership of one or more floating single-master operation roles to other servers." +"000020F4","8436","-4294958860","ERROR_DS_DRA_GENERIC","The replication operation failed." +"000020F5","8437","-4294958859","ERROR_DS_DRA_INVALID_PARAMETER","An invalid parameter was specified for this replication operation." +"000020F6","8438","-4294958858","ERROR_DS_DRA_BUSY","The directory service is too busy to complete the replication operation at this time." +"000020F7","8439","-4294958857","ERROR_DS_DRA_BAD_DN","The distinguished name specified for this replication operation is invalid." +"000020F8","8440","-4294958856","ERROR_DS_DRA_BAD_NC","The naming context specified for this replication operation is invalid." +"000020F9","8441","-4294958855","ERROR_DS_DRA_DN_EXISTS","The distinguished name specified for this replication operation already exists." +"000020FA","8442","-4294958854","ERROR_DS_DRA_INTERNAL_ERROR","The replication system encountered an internal error." +"000020FB","8443","-4294958853","ERROR_DS_DRA_INCONSISTENT_DIT","The replication operation encountered a database inconsistency." +"000020FC","8444","-4294958852","ERROR_DS_DRA_CONNECTION_FAILED","The server specified for this replication operation could not be contacted." +"000020FD","8445","-4294958851","ERROR_DS_DRA_BAD_INSTANCE_TYPE","The replication operation encountered an object with an invalid instance type." +"000020FE","8446","-4294958850","ERROR_DS_DRA_OUT_OF_MEM","The replication operation failed to allocate memory." +"000020FF","8447","-4294958849","ERROR_DS_DRA_MAIL_PROBLEM","The replication operation encountered an error with the mail system." +"00002100","8448","-4294958848","ERROR_DS_DRA_REF_ALREADY_EXISTS","The replication reference information for the target server already exists." +"00002101","8449","-4294958847","ERROR_DS_DRA_REF_NOT_FOUND","The replication reference information for the target server does not exist." +"00002102","8450","-4294958846","ERROR_DS_DRA_OBJ_IS_REP_SOURCE","The naming context cannot be removed because it is replicated to another server." +"00002103","8451","-4294958845","ERROR_DS_DRA_DB_ERROR","The replication operation encountered a database error." +"00002104","8452","-4294958844","ERROR_DS_DRA_NO_REPLICA","The naming context is in the process of being removed or is not replicated from the specified server." +"00002105","8453","-4294958843","ERROR_DS_DRA_ACCESS_DENIED","Replication access was denied." +"00002106","8454","-4294958842","ERROR_DS_DRA_NOT_SUPPORTED","The requested operation is not supported by this version of the directory service." +"00002107","8455","-4294958841","ERROR_DS_DRA_RPC_CANCELLED","The replication remote procedure call was cancelled." +"00002108","8456","-4294958840","ERROR_DS_DRA_SOURCE_DISABLED","The source server is currently rejecting replication requests." +"00002109","8457","-4294958839","ERROR_DS_DRA_SINK_DISABLED","The destination server is currently rejecting replication requests." +"0000210A","8458","-4294958838","ERROR_DS_DRA_NAME_COLLISION","The replication operation failed due to a collision of object names." +"0000210B","8459","-4294958837","ERROR_DS_DRA_SOURCE_REINSTALLED","The replication source has been reinstalled." +"0000210C","8460","-4294958836","ERROR_DS_DRA_MISSING_PARENT","The replication operation failed because a required parent object is missing." +"0000210D","8461","-4294958835","ERROR_DS_DRA_PREEMPTED","The replication operation was preempted." +"0000210E","8462","-4294958834","ERROR_DS_DRA_ABANDON_SYNC","The replication synchronization attempt was abandoned because of a lack of updates." +"0000210F","8463","-4294958833","ERROR_DS_DRA_SHUTDOWN","The replication operation was terminated because the system is shutting down." +"00002110","8464","-4294958832","ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET","Synchronization attempt failed because the destination DC is currently waiting to synchronize new partial attributes from source. This condition is normal if a recent schema change modified the partial attribute set. The destination partial attribute set is not a subset of source partial attribute set." +"00002111","8465","-4294958831","ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA","The replication synchronization attempt failed because a master replica attempted to sync from a partial replica." +"00002112","8466","-4294958830","ERROR_DS_DRA_EXTN_CONNECTION_FAILED","The server specified for this replication operation was contacted - but that server was unable to contact an additional server needed to complete the operation." +"00002113","8467","-4294958829","ERROR_DS_INSTALL_SCHEMA_MISMATCH","The version of the directory service schema of the source forest is not compatible with the version of directory service on this computer." +"00002114","8468","-4294958828","ERROR_DS_DUP_LINK_ID","Schema update failed: An attribute with the same link identifier already exists." +"00002115","8469","-4294958827","ERROR_DS_NAME_ERROR_RESOLVING","Name translation: Generic processing error." +"00002116","8470","-4294958826","ERROR_DS_NAME_ERROR_NOT_FOUND","Name translation: Could not find the name or insufficient right to see name." +"00002117","8471","-4294958825","ERROR_DS_NAME_ERROR_NOT_UNIQUE","Name translation: Input name mapped to more than one output name." +"00002118","8472","-4294958824","ERROR_DS_NAME_ERROR_NO_MAPPING","Name translation: Input name found - but not the associated output format." +"00002119","8473","-4294958823","ERROR_DS_NAME_ERROR_DOMAIN_ONLY","Name translation: Unable to resolve completely - only the domain was found." +"0000211A","8474","-4294958822","ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING","Name translation: Unable to perform purely syntactical mapping at the client without going out to the wire." +"0000211B","8475","-4294958821","ERROR_DS_CONSTRUCTED_ATT_MOD","Modification of a constructed attribute is not allowed." +"0000211C","8476","-4294958820","ERROR_DS_WRONG_OM_OBJ_CLASS","The OM-Object-Class specified is incorrect for an attribute with the specified syntax." +"0000211D","8477","-4294958819","ERROR_DS_DRA_REPL_PENDING","The replication request has been posted; waiting for reply." +"0000211E","8478","-4294958818","ERROR_DS_DS_REQUIRED","The requested operation requires a directory service - and none was available." +"0000211F","8479","-4294958817","ERROR_DS_INVALID_LDAP_DISPLAY_NAME","The LDAP display name of the class or attribute contains non-ASCII characters." +"00002120","8480","-4294958816","ERROR_DS_NON_BASE_SEARCH","The requested search operation is only supported for base searches." +"00002121","8481","-4294958815","ERROR_DS_CANT_RETRIEVE_ATTS","The search failed to retrieve attributes from the database." +"00002122","8482","-4294958814","ERROR_DS_BACKLINK_WITHOUT_LINK","The schema update operation tried to add a backward link attribute that has no corresponding forward link." +"00002123","8483","-4294958813","ERROR_DS_EPOCH_MISMATCH","Source and destination of a cross-domain move do not agree on the object's epoch number. Either source or destination does not have the latest version of the object." +"00002124","8484","-4294958812","ERROR_DS_SRC_NAME_MISMATCH","Source and destination of a cross-domain move do not agree on the object's current name. Either source or destination does not have the latest version of the object." +"00002125","8485","-4294958811","ERROR_DS_SRC_AND_DST_NC_IDENTICAL","Source and destination for the cross-domain move operation are identical. Caller should use local move operation instead of cross-domain move operation." +"00002126","8486","-4294958810","ERROR_DS_DST_NC_MISMATCH","Source and destination for a cross-domain move are not in agreement on the naming contexts in the forest. Either source or destination does not have the latest version of the Partitions container." +"00002127","8487","-4294958809","ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC","Destination of a cross-domain move is not authoritative for the destination naming context." +"00002128","8488","-4294958808","ERROR_DS_SRC_GUID_MISMATCH","Source and destination of a cross-domain move do not agree on the identity of the source object. Either source or destination does not have the latest version of the source object." +"00002129","8489","-4294958807","ERROR_DS_CANT_MOVE_DELETED_OBJECT","Object being moved across-domains is already known to be deleted by the destination server. The source server does not have the latest version of the source object." +"0000212A","8490","-4294958806","ERROR_DS_PDC_OPERATION_IN_PROGRESS","Another operation which requires exclusive access to the PDC FSMO is already in progress." +"0000212B","8491","-4294958805","ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD","A cross-domain move operation failed such that two versions of the moved object exist - one each in the source and destination domains. The destination object needs to be removed to restore the system to a consistent state." +"0000212C","8492","-4294958804","ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION","This object may not be moved across domain boundaries either because cross-domain moves for this class are disallowed - or the object has some special characteristics - e.g.: trust account or restricted RID - which prevent its move." +"0000212D","8493","-4294958803","ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS","Can't move objects with memberships across domain boundaries as once moved - this would violate the membership conditions of the account group. Remove the object from any account group memberships and retry." +"0000212E","8494","-4294958802","ERROR_DS_NC_MUST_HAVE_NC_PARENT","A naming context head must be the immediate child of another naming context head - not of an interior node." +"0000212F","8495","-4294958801","ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE","The directory cannot validate the proposed naming context name because it does not hold a replica of the naming context above the proposed naming context. Please ensure that the domain naming master role is held by a server that is configured as a global catalog server - and that the server is up to date with its replication partners." +"00002131","8497","-4294958799","ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER","The operation cannot be performed because the server does not have an infrastructure container in the domain of interest." +"00002132","8498","-4294958798","ERROR_DS_CANT_MOVE_ACCOUNT_GROUP","Cross-domain move of non-empty account groups is not allowed." +"00002133","8499","-4294958797","ERROR_DS_CANT_MOVE_RESOURCE_GROUP","Cross-domain move of non-empty resource groups is not allowed." +"00002134","8500","-4294958796","ERROR_DS_INVALID_SEARCH_FLAG","The search flags for the attribute are invalid. The ANR bit is valid only on attributes of Unicode or Teletex strings." +"00002135","8501","-4294958795","ERROR_DS_NO_TREE_DELETE_ABOVE_NC","Tree deletions starting at an object which has an NC head as a descendant are not allowed." +"00002136","8502","-4294958794","ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE","The directory service failed to lock a tree in preparation for a tree deletion because the tree was in use." +"00002137","8503","-4294958793","ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE","The directory service failed to identify the list of objects to delete while attempting a tree deletion." +"00002138","8504","-4294958792","ERROR_DS_SAM_INIT_FAILURE","Security Accounts Manager initialization failed because of the following error: %1. Error Status: 0000%2. Please shutdown this system and reboot into Directory Services Restore Mode - check the event log for more detailed information." +"00002139","8505","-4294958791","ERROR_DS_SENSITIVE_GROUP_VIOLATION","Only an administrator can modify the membership list of an administrative group." +"0000213A","8506","-4294958790","ERROR_DS_CANT_MOD_PRIMARYGROUPID","Cannot change the primary group ID of a domain controller account." +"0000213B","8507","-4294958789","ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD","An attempt is made to modify the base schema." +"0000213C","8508","-4294958788","ERROR_DS_NONSAFE_SCHEMA_CHANGE","Adding a new mandatory attribute to an existing class - deleting a mandatory attribute from an existing class - or adding an optional attribute to the special class Top that is not a backlink attribute." +"0000213D","8509","-4294958787","ERROR_DS_SCHEMA_UPDATE_DISALLOWED","Schema update is not allowed on this DC because the DC is not the schema FSMO Role Owner." +"0000213E","8510","-4294958786","ERROR_DS_CANT_CREATE_UNDER_SCHEMA","An object of this class cannot be created under the schema container. You can only create attribute-schema and class-schema objects under the schema container." +"0000213F","8511","-4294958785","ERROR_DS_INSTALL_NO_SRC_SCH_VERSION","The replica/child install failed to get the objectVersion attribute on the schema container on the source DC. Either the attribute is missing on the schema container or the credentials supplied do not have permission to read it." +"00002140","8512","-4294958784","ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE","The replica/child install failed to read the objectVersion attribute in the SCHEMA section of the file schema.ini in the system32 directory." +"00002141","8513","-4294958783","ERROR_DS_INVALID_GROUP_TYPE","The specified group type is invalid." +"00002142","8514","-4294958782","ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN","You cannot nest global groups in a mixed domain if the group is security-enabled." +"00002143","8515","-4294958781","ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN","You cannot nest local groups in a mixed domain if the group is security-enabled." +"00002144","8516","-4294958780","ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER","A global group cannot have a local group as a member." +"00002145","8517","-4294958779","ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER","A global group cannot have a universal group as a member." +"00002146","8518","-4294958778","ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER","A universal group cannot have a local group as a member." +"00002147","8519","-4294958777","ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER","A global group cannot have a cross-domain member." +"00002148","8520","-4294958776","ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER","A local group cannot have another cross domain local group as a member." +"00002149","8521","-4294958775","ERROR_DS_HAVE_PRIMARY_MEMBERS","A group with primary members cannot change to a security-disabled group." +"0000214A","8522","-4294958774","ERROR_DS_STRING_SD_CONVERSION_FAILED","The schema cache load failed to convert the string default SD on a class-schema object." +"0000214B","8523","-4294958773","ERROR_DS_NAMING_MASTER_GC","Only DSAs configured to be Global Catalog servers should be allowed to hold the Domain Naming Master FSMO role." +"0000214D","8525","-4294958771","ERROR_DS_COULDNT_UPDATE_SPNS","While processing a change to the DNS Host Name for an object - the Service Principal Name values could not be kept in sync." +"0000214E","8526","-4294958770","ERROR_DS_CANT_RETRIEVE_SD","The Security Descriptor attribute could not be read." +"0000214F","8527","-4294958769","ERROR_DS_KEY_NOT_UNIQUE","The object requested was not found - but an object with that key was found." +"00002150","8528","-4294958768","ERROR_DS_WRONG_LINKED_ATT_SYNTAX","The syntax of the linked attribute being added is incorrect. Forward links can only have syntax 2.5.5.1 - 2.5.5.7 - and 2.5.5.14 - and backlinks can only have syntax 2.5.5.1." +"00002151","8529","-4294958767","ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD","Security Account Manager needs to get the boot password." +"00002152","8530","-4294958766","ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY","Security Account Manager needs to get the boot key from floppy disk." +"00002153","8531","-4294958765","ERROR_DS_CANT_START","Directory Service cannot start." +"00002154","8532","-4294958764","ERROR_DS_INIT_FAILURE","Directory Services could not start." +"00002155","8533","-4294958763","ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION","The connection between client and server requires packet privacy or better." +"00002156","8534","-4294958762","ERROR_DS_SOURCE_DOMAIN_IN_FOREST","The source domain may not be in the same forest as destination." +"00002157","8535","-4294958761","ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST","The destination domain must be in the forest." +"00002158","8536","-4294958760","ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED","The operation requires that destination domain auditing be enabled." +"00002159","8537","-4294958759","ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN","The operation couldn't locate a DC for the source domain." +"0000215A","8538","-4294958758","ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER","The source object must be a group or user." +"0000215B","8539","-4294958757","ERROR_DS_SRC_SID_EXISTS_IN_FOREST","The source object's SID already exists in destination forest." +"0000215C","8540","-4294958756","ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH","The source and destination object must be of the same type." +"0000215D","8541","-4294958755","ERROR_SAM_INIT_FAILURE","Security Accounts Manager initialization failed because of the following error: %1. Error Status: 0000%2. Click OK to shut down the system and reboot into Safe Mode. Check the event log for detailed information." +"0000215E","8542","-4294958754","ERROR_DS_DRA_SCHEMA_INFO_SHIP","Schema information could not be included in the replication request." +"0000215F","8543","-4294958753","ERROR_DS_DRA_SCHEMA_CONFLICT","The replication operation could not be completed due to a schema incompatibility." +"00002160","8544","-4294958752","ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT","The replication operation could not be completed due to a previous schema incompatibility." +"00002161","8545","-4294958751","ERROR_DS_DRA_OBJ_NC_MISMATCH","The replication update could not be applied because either the source or the destination has not yet received information regarding a recent cross-domain move operation." +"00002162","8546","-4294958750","ERROR_DS_NC_STILL_HAS_DSAS","The requested domain could not be deleted because there exist domain controllers that still host this domain." +"00002163","8547","-4294958749","ERROR_DS_GC_REQUIRED","The requested operation can be performed only on a global catalog server." +"00002164","8548","-4294958748","ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY","A local group can only be a member of other local groups in the same domain." +"00002165","8549","-4294958747","ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS","Foreign security principals cannot be members of universal groups." +"00002166","8550","-4294958746","ERROR_DS_CANT_ADD_TO_GC","The attribute is not allowed to be replicated to the GC because of security reasons." +"00002167","8551","-4294958745","ERROR_DS_NO_CHECKPOINT_WITH_PDC","The checkpoint with the PDC could not be taken because there too many modifications being processed currently." +"00002168","8552","-4294958744","ERROR_DS_SOURCE_AUDITING_NOT_ENABLED","The operation requires that source domain auditing be enabled." +"00002169","8553","-4294958743","ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC","Security principal objects can only be created inside domain naming contexts." +"0000216A","8554","-4294958742","ERROR_DS_INVALID_NAME_FOR_SPN","A Service Principal Name." +"0000216B","8555","-4294958741","ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS","A Filter was passed that uses constructed attributes." +"0000216C","8556","-4294958740","ERROR_DS_UNICODEPWD_NOT_IN_QUOTES","The unicodePwd attribute value must be enclosed in double quotes." +"0000216D","8557","-4294958739","ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED","Your computer could not be joined to the domain. You have exceeded the maximum number of computer accounts you are allowed to create in this domain. Contact your system administrator to have this limit reset or increased." +"0000216E","8558","-4294958738","ERROR_DS_MUST_BE_RUN_ON_DST_DC","For security reasons - the operation must be run on the destination DC." +"0000216F","8559","-4294958737","ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER","For security reasons - the source DC must be NT4SP4 or greater." +"00002170","8560","-4294958736","ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ","Critical Directory Service System objects cannot be deleted during tree delete operations. The tree delete may have been partially performed." +"00002171","8561","-4294958735","ERROR_DS_INIT_FAILURE_CONSOLE","Directory Services could not start because of the following error: %1. Error Status: 0000%2. Please click OK to shutdown the system. You can use the recovery console to diagnose the system further." +"00002172","8562","-4294958734","ERROR_DS_SAM_INIT_FAILURE_CONSOLE","Security Accounts Manager initialization failed because of the following error: %1. Error Status: 0000%2. Please click OK to shutdown the system. You can use the recovery console to diagnose the system further." +"00002173","8563","-4294958733","ERROR_DS_FOREST_VERSION_TOO_HIGH","The version of the operating system is incompatible with the current AD DS forest functional level or AD LDS Configuration Set functional level. You must upgrade to a new version of the operating system before this server can become an AD DS Domain Controller or add an AD LDS Instance in this AD DS Forest or AD LDS Configuration Set." +"00002174","8564","-4294958732","ERROR_DS_DOMAIN_VERSION_TOO_HIGH","The version of the operating system installed is incompatible with the current domain functional level. You must upgrade to a new version of the operating system before this server can become a domain controller in this domain." +"00002175","8565","-4294958731","ERROR_DS_FOREST_VERSION_TOO_LOW","The version of the operating system installed on this server no longer supports the current AD DS Forest functional level or AD LDS Configuration Set functional level. You must raise the AD DS Forest functional level or AD LDS Configuration Set functional level before this server can become an AD DS Domain Controller or an AD LDS Instance in this Forest or Configuration Set." +"00002176","8566","-4294958730","ERROR_DS_DOMAIN_VERSION_TOO_LOW","The version of the operating system installed on this server no longer supports the current domain functional level. You must raise the domain functional level before this server can become a domain controller in this domain." +"00002177","8567","-4294958729","ERROR_DS_INCOMPATIBLE_VERSION","The version of the operating system installed on this server is incompatible with the functional level of the domain or forest." +"00002178","8568","-4294958728","ERROR_DS_LOW_DSA_VERSION","The functional level of the domain." +"00002179","8569","-4294958727","ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN","The forest functional level cannot be raised to the requested value since one or more domains are still in mixed domain mode. All domains in the forest must be in native mode - for you to raise the forest functional level." +"0000217A","8570","-4294958726","ERROR_DS_NOT_SUPPORTED_SORT_ORDER","The sort order requested is not supported." +"0000217B","8571","-4294958725","ERROR_DS_NAME_NOT_UNIQUE","The requested name already exists as a unique identifier." +"0000217C","8572","-4294958724","ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4","The machine account was created pre-NT4. The account needs to be recreated." +"0000217D","8573","-4294958723","ERROR_DS_OUT_OF_VERSION_STORE","The database is out of version store." +"0000217E","8574","-4294958722","ERROR_DS_INCOMPATIBLE_CONTROLS_USED","Unable to continue operation because multiple conflicting controls were used." +"0000217F","8575","-4294958721","ERROR_DS_NO_REF_DOMAIN","Unable to find a valid security descriptor reference domain for this partition." +"00002180","8576","-4294958720","ERROR_DS_RESERVED_LINK_ID","Schema update failed: The link identifier is reserved." +"00002181","8577","-4294958719","ERROR_DS_LINK_ID_NOT_AVAILABLE","Schema update failed: There are no link identifiers available." +"00002182","8578","-4294958718","ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER","An account group cannot have a universal group as a member." +"00002183","8579","-4294958717","ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE","Rename or move operations on naming context heads or read-only objects are not allowed." +"00002184","8580","-4294958716","ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC","Move operations on objects in the schema naming context are not allowed." +"00002185","8581","-4294958715","ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG","A system flag has been set on the object and does not allow the object to be moved or renamed." +"00002186","8582","-4294958714","ERROR_DS_MODIFYDN_WRONG_GRANDPARENT","This object is not allowed to change its grandparent container. Moves are not forbidden on this object - but are restricted to sibling containers." +"00002187","8583","-4294958713","ERROR_DS_NAME_ERROR_TRUST_REFERRAL","Unable to resolve completely - a referral to another forest is generated." +"00002188","8584","-4294958712","ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER","The requested action is not supported on standard server." +"00002189","8585","-4294958711","ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD","Could not access a partition of the directory service located on a remote server. Make sure at least one server is running for the partition in question." +"0000218A","8586","-4294958710","ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2","The directory cannot validate the proposed naming context." +"0000218B","8587","-4294958709","ERROR_DS_THREAD_LIMIT_EXCEEDED","The thread limit for this request was exceeded." +"0000218C","8588","-4294958708","ERROR_DS_NOT_CLOSEST","The Global catalog server is not in the closest site." +"0000218D","8589","-4294958707","ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF","The DS cannot derive a service principal name." +"0000218E","8590","-4294958706","ERROR_DS_SINGLE_USER_MODE_FAILED","The Directory Service failed to enter single user mode." +"0000218F","8591","-4294958705","ERROR_DS_NTDSCRIPT_SYNTAX_ERROR","The Directory Service cannot parse the script because of a syntax error." +"00002190","8592","-4294958704","ERROR_DS_NTDSCRIPT_PROCESS_ERROR","The Directory Service cannot process the script because of an error." +"00002191","8593","-4294958703","ERROR_DS_DIFFERENT_REPL_EPOCHS","The directory service cannot perform the requested operation because the servers involved are of different replication epochs." +"00002192","8594","-4294958702","ERROR_DS_DRS_EXTENSIONS_CHANGED","The directory service binding must be renegotiated due to a change in the server extensions information." +"00002193","8595","-4294958701","ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR","Operation not allowed on a disabled cross ref." +"00002194","8596","-4294958700","ERROR_DS_NO_MSDS_INTID","Schema update failed: No values for msDS-IntId are available." +"00002195","8597","-4294958699","ERROR_DS_DUP_MSDS_INTID","Schema update failed: Duplicate msDS-INtId. Retry the operation." +"00002196","8598","-4294958698","ERROR_DS_EXISTS_IN_RDNATTID","Schema deletion failed: attribute is used in rDNAttID." +"00002197","8599","-4294958697","ERROR_DS_AUTHORIZATION_FAILED","The directory service failed to authorize the request." +"00002198","8600","-4294958696","ERROR_DS_INVALID_SCRIPT","The Directory Service cannot process the script because it is invalid." +"00002199","8601","-4294958695","ERROR_DS_REMOTE_CROSSREF_OP_FAILED","The remote create cross reference operation failed on the Domain Naming Master FSMO. The operation's error is in the extended data." +"0000219A","8602","-4294958694","ERROR_DS_CROSS_REF_BUSY","A cross reference is in use locally with the same name." +"0000219B","8603","-4294958693","ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN","The DS cannot derive a service principal name." +"0000219C","8604","-4294958692","ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC","Writeable NCs prevent this DC from demoting." +"0000219D","8605","-4294958691","ERROR_DS_DUPLICATE_ID_FOUND","The requested object has a non-unique identifier and cannot be retrieved." +"0000219E","8606","-4294958690","ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT","Insufficient attributes were given to create an object. This object may not exist because it may have been deleted and already garbage collected." +"0000219F","8607","-4294958689","ERROR_DS_GROUP_CONVERSION_ERROR","The group cannot be converted due to attribute restrictions on the requested group type." +"000021A0","8608","-4294958688","ERROR_DS_CANT_MOVE_APP_BASIC_GROUP","Cross-domain move of non-empty basic application groups is not allowed." +"000021A1","8609","-4294958687","ERROR_DS_CANT_MOVE_APP_QUERY_GROUP","Cross-domain move of non-empty query based application groups is not allowed." +"000021A2","8610","-4294958686","ERROR_DS_ROLE_NOT_VERIFIED","The FSMO role ownership could not be verified because its directory partition has not replicated successfully with at least one replication partner." +"000021A3","8611","-4294958685","ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL","The target container for a redirection of a well known object container cannot already be a special container." +"000021A4","8612","-4294958684","ERROR_DS_DOMAIN_RENAME_IN_PROGRESS","The Directory Service cannot perform the requested operation because a domain rename operation is in progress." +"000021A5","8613","-4294958683","ERROR_DS_EXISTING_AD_CHILD_NC","The directory service detected a child partition below the requested partition name. The partition hierarchy must be created in a top down method." +"000021A6","8614","-4294958682","ERROR_DS_REPL_LIFETIME_EXCEEDED","The directory service cannot replicate with this server because the time since the last replication with this server has exceeded the tombstone lifetime." +"000021A7","8615","-4294958681","ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER","The requested operation is not allowed on an object under the system container." +"000021A8","8616","-4294958680","ERROR_DS_LDAP_SEND_QUEUE_FULL","The LDAP servers network send queue has filled up because the client is not processing the results of its requests fast enough. No more requests will be processed until the client catches up. If the client does not catch up then it will be disconnected." +"000021A9","8617","-4294958679","ERROR_DS_DRA_OUT_SCHEDULE_WINDOW","The scheduled replication did not take place because the system was too busy to execute the request within the schedule window. The replication queue is overloaded. Consider reducing the number of partners or decreasing the scheduled replication frequency." +"000021AA","8618","-4294958678","ERROR_DS_POLICY_NOT_KNOWN","At this time - it cannot be determined if the branch replication policy is available on the hub domain controller. Please retry at a later time to account for replication latencies." +"000021AB","8619","-4294958677","ERROR_NO_SITE_SETTINGS_OBJECT","The site settings object for the specified site does not exist." +"000021AC","8620","-4294958676","ERROR_NO_SECRETS","The local account store does not contain secret material for the specified account." +"000021AD","8621","-4294958675","ERROR_NO_WRITABLE_DC_FOUND","Could not find a writable domain controller in the domain." +"000021AE","8622","-4294958674","ERROR_DS_NO_SERVER_OBJECT","The server object for the domain controller does not exist." +"000021AF","8623","-4294958673","ERROR_DS_NO_NTDSA_OBJECT","The NTDS Settings object for the domain controller does not exist." +"000021B0","8624","-4294958672","ERROR_DS_NON_ASQ_SEARCH","The requested search operation is not supported for ASQ searches." +"000021B1","8625","-4294958671","ERROR_DS_AUDIT_FAILURE","A required audit event could not be generated for the operation." +"000021B2","8626","-4294958670","ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE","The search flags for the attribute are invalid. The subtree index bit is valid only on single valued attributes." +"000021B3","8627","-4294958669","ERROR_DS_INVALID_SEARCH_FLAG_TUPLE","The search flags for the attribute are invalid. The tuple index bit is valid only on attributes of Unicode strings." +"000021B4","8628","-4294958668","ERROR_DS_HIERARCHY_TABLE_TOO_DEEP","The address books are nested too deeply. Failed to build the hierarchy table." +"000021B5","8629","-4294958667","ERROR_DS_DRA_CORRUPT_UTD_VECTOR","The specified up-to-date-ness vector is corrupt." +"000021B6","8630","-4294958666","ERROR_DS_DRA_SECRETS_DENIED","The request to replicate secrets is denied." +"000021B7","8631","-4294958665","ERROR_DS_RESERVED_MAPI_ID","Schema update failed: The MAPI identifier is reserved." +"000021B8","8632","-4294958664","ERROR_DS_MAPI_ID_NOT_AVAILABLE","Schema update failed: There are no MAPI identifiers available." +"000021B9","8633","-4294958663","ERROR_DS_DRA_MISSING_KRBTGT_SECRET","The replication operation failed because the required attributes of the local krbtgt object are missing." +"000021BA","8634","-4294958662","ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST","The domain name of the trusted domain already exists in the forest." +"000021BB","8635","-4294958661","ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST","The flat name of the trusted domain already exists in the forest." +"000021BC","8636","-4294958660","ERROR_INVALID_USER_PRINCIPAL_NAME","The User Principal Name." +"000021BD","8637","-4294958659","ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS","OID mapped groups cannot have members." +"000021BE","8638","-4294958658","ERROR_DS_OID_NOT_FOUND","The specified OID cannot be found." +"000021BF","8639","-4294958657","ERROR_DS_DRA_RECYCLED_TARGET","The replication operation failed because the target object referred by a link value is recycled." +"000021C0","8640","-4294958656","ERROR_DS_DISALLOWED_NC_REDIRECT","The redirect operation failed because the target object is in a NC different from the domain NC of the current domain controller." +"000021C1","8641","-4294958655","ERROR_DS_HIGH_ADLDS_FFL","The functional level of the AD LDS configuration set cannot be lowered to the requested value." +"000021C2","8642","-4294958654","ERROR_DS_HIGH_DSA_VERSION","The functional level of the domain." +"000021C3","8643","-4294958653","ERROR_DS_LOW_ADLDS_FFL","The functional level of the AD LDS configuration set cannot be raised to the requested value - because there exist one or more ADLDS instances that are at a lower incompatible functional level." +"000021C4","8644","-4294958652","ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION","The domain join cannot be completed because the SID of the domain you attempted to join was identical to the SID of this machine. This is a symptom of an improperly cloned operating system install. You should run sysprep on this machine in order to generate a new machine SID. Please see https://go.microsoft.com/fwlink/p/?linkid=168895 for more information." +"000021C5","8645","-4294958651","ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED","The undelete operation failed because the Sam Account Name or Additional Sam Account Name of the object being undeleted conflicts with an existing live object." +"000021C6","8646","-4294958650","ERROR_INCORRECT_ACCOUNT_TYPE","The system is not authoritative for the specified account and therefore cannot complete the operation. Please retry the operation using the provider associated with this account. If this is an online provider please use the provider's online site." +"0000229A","8858","-4294958438","NULL","" +"000022CA","8906","-4294958390","NULL","" +"0000230B","8971","-4294958325","NULL","" +"00002328","9000","-4294958296","","Invalid Operation." +"00002329","9001","-4294958295","DNS_ERROR_RCODE_FORMAT_ERROR","DNS server unable to interpret format." +"0000232A","9002","-4294958294","DNS_ERROR_RCODE_SERVER_FAILURE","DNS server failure." +"0000232B","9003","-4294958293","DNS_ERROR_RCODE_NAME_ERROR","DNS name does not exist." +"0000232C","9004","-4294958292","DNS_ERROR_RCODE_NOT_IMPLEMENTED","DNS request not supported by name server." +"0000232D","9005","-4294958291","DNS_ERROR_RCODE_REFUSED","DNS operation refused." +"0000232E","9006","-4294958290","DNS_ERROR_RCODE_YXDOMAIN","DNS name that ought not exist - does exist." +"0000232F","9007","-4294958289","DNS_ERROR_RCODE_YXRRSET","DNS RR set that ought not exist - does exist." +"00002330","9008","-4294958288","DNS_ERROR_RCODE_NXRRSET","DNS RR set that ought to exist - does not exist." +"00002331","9009","-4294958287","","Out of Space on Device." +"00002332","9010","-4294958286","DNS_ERROR_RCODE_NOTZONE","DNS name in update or prereq is not in zone." +"00002333","9011","-4294958285","","Account locked." +"00002334","9012","-4294958284","","Trustee not found." +"00002335","9013","-4294958283","","Access Denied." +"00002336","9014","-4294958282","","Entry Locked." +"00002337","9015","-4294958281","","Template not Found." +"00002338","9016","-4294958280","DNS_ERROR_RCODE_BADSIG","DNS signature failed to verify." +"00002339","9017","-4294958279","DNS_ERROR_RCODE_BADKEY","DNS bad key." +"0000233A","9018","-4294958278","DNS_ERROR_RCODE_BADTIME","DNS signature validity expired." +"0000233B","9019","-4294958277","","Invalid Object Name." +"0000233C","9020","-4294958276","","The Parameter is out of Range or Too Long." +"0000233D","9021","-4294958275","","Page Not Found." +"0000233E","9022","-4294958274","","Volume Currently Locked or in Use." +"0000233F","9023","-4294958273","","Template Currently Locked or in Use." +"00002340","9024","-4294958272","","Field Currently Locked or in Use." +"00002341","9025","-4294958271","","Error Reading Repository Information_ or Repository Misconfigured." +"00002342","9026","-4294958270","","VOLUME.ID File Bad_ or Volume Otherwise Corrupt." +"00002343","9027","-4294958269","","Password Violates Password Policy." +"00002344","9028","-4294958268","","Missing Required Data from Request." +"00002345","9029","-4294958267","","The Maximum Number of Repositories That This Server Instance Is Licensed For Has Been Reached." +"00002346","9030","-4294958266","","The Maximum Number of Sessions That This Server Instance Is Licensed For Has Been Reached." +"00002347","9031","-4294958265","","The Maximum Number of Volumes Has Been Reached." +"00002348","9032","-4294958264","","The Maximum Number of Fields Has Been Reached." +"00002349","9033","-4294958263","","Maximum Path Depth Exceeded." +"0000234A","9034","-4294958262","","The Maximum Number of Entries Has Been Reached." +"0000234B","9035","-4294958261","","The Current Request Could Not Be Executed Because There Are Too Many Existing Operations Executing." +"0000234C","9036","-4294958260","","Unknown Internal Error." +"0000234D","9037","-4294958259","","Invalid Session." +"0000234E","9038","-4294958258","","Invalid Handle." +"0000234F","9039","-4294958257","","Multistatus Reponse." +"00002350","9040","-4294958256","","Buffer Size Was Insufficient to Complete the Request." +"00002351","9041","-4294958255","","The Maximum Number of Templates Has Been Reached." +"00002352","9042","-4294958254","","The Request Has Timed Out." +"00002353","9043","-4294958253","","Could Not Obtain a Connection to the Database." +"00002354","9044","-4294958252","","Invalid Volume Path." +"00002355","9045","-4294958251","","The Operation Cannot Complete Because an Object is Locked." +"00002356","9046","-4294958250","","The Repository Is Not Recognized as a Valid Repository In This Laserfiche Instance." +"00002357","9047","-4294958249","","The Object Has Been Modified Since It Was Last Read." +"00002358","9048","-4294958248","","The Security Identifier Is Not a Valid Laserfiche SID." +"00002359","9049","-4294958247","","A Session Cannot Terminate Itself." +"0000235A","9050","-4294958246","","Invalid Column Identifier." +"0000235B","9051","-4294958245","","The Specified Operation Is Not Recognized." +"0000235C","9052","-4294958244","","The Specified Operation Was Aborted By The User." +"0000235D","9053","-4294958243","","Insufficient Space On Target Device." +"0000235E","9054","-4294958242","","Another Operation On Which This Operation Depends Failed." +"0000235F","9055","-4294958241","","I/O Operations Are Not Possible On Logical Volumes." +"00002360","9056","-4294958240","","Please Mount The Correct Volume." +"00002361","9057","-4294958239","","The Specified XML Document Is Invalid." +"00002362","9058","-4294958238","","The Object Has Been Deleted." +"00002363","9059","-4294958237","","Operation Failed Due To Entry Sharing Violation." +"00002364","9060","-4294958236","","Annotation Not Found." +"00002365","9061","-4294958235","","Folder Not Empty." +"00002367","9063","-4294958233","","The entry is locked and cannot be modified_ or the object needs to be refreshed before it can be updated." +"00002368","9064","-4294958232","","The Maximum Number of Annotations Per Page Has Been Exceeded." +"00002369","9065","-4294958231","","The Annotations Cannot Be Linked Because Their Types Do Not Match." +"0000236A","9066","-4294958230","","One Or More Required Fields Were Omitted." +"0000236B","9067","-4294958229","","The Current Session Has Been Terminated." +"0000236C","9068","-4294958228","","Operation Not Permitted On Shortcuts." +"0000236D","9069","-4294958227","","Could Not Load SQL Files." +"0000236E","9070","-4294958226","","Encountered a WMI Error." +"0000236F","9071","-4294958225","","Could Not Access The Laserfiche WMI Namespace." +"00002370","9072","-4294958224","","The Value Provided Failed to Satisfy the Constraint on the Field." +"00002371","9073","-4294958223","","This User Is Not Allowed to Log In Using a Password." +"00002372","9074","-4294958222","","This User Is Not Allowed to Change Their Password." +"00002373","9075","-4294958221","","This Password Has Expired And Must Be Changed." +"00002374","9076","-4294958220","","Your Temporary Password Has Expired." +"00002375","9077","-4294958219","","Tag Not Found." +"00002376","9078","-4294958218","","This Operation Only Supports The Use Of Security Tags." +"00002377","9079","-4294958217","","Repository Property Not Found." +"00002378","9080","-4294958216","","Trustee attribute not found." +"00002379","9081","-4294958215","","The maximum number of notification subscriptions has been reached." +"0000237A","9082","-4294958214","","An invalid identifier was used to configure the server notification callback." +"0000237B","9083","-4294958213","","This file should be converted internally." +"0000237C","9084","-4294958212","","The search term you have entered is not valid." +"0000237D","9085","-4294958211","","An unrecognized character was encountered." +"0000237E","9086","-4294958210","","An unrecognized name was encountered." +"0000237F","9087","-4294958209","","Only a single CONTAINS expression is permitted in a query." +"00002380","9088","-4294958208","","One or more terms in the query contains a mismatched or unsupported data type." +"00002381","9089","-4294958207","","The name of the column is ambiguous." +"00002382","9090","-4294958206","","The number of arguments supplied to the function is incorrect." +"00002383","9091","-4294958205","","An end-of-file or end-of-input was encountered unexpectedly. Check for unterminated strings and open parentheses or brackets." +"00002384","9092","-4294958204","","Error copying VOLUME.ID." +"00002385","9093","-4294958203","","Invalid object identifier." +"00002386","9094","-4294958202","","The requested link type was not found." +"00002387","9095","-4294958201","","The requested entry link was not found." +"00002388","9096","-4294958200","","Stamp not found." +"00002389","9097","-4294958199","","Existing public or personal stamps cannot be modified." +"0000238A","9098","-4294958198","","The operation requires that the document be put under version control." +"0000238B","9099","-4294958197","","The document is already checked out." +"0000238C","9100","-4294958196","","The operation requires that the document be checked out first." +"0000238D","9101","-4294958195","DNS_ERROR_KEYMASTER_REQUIRED","Only the DNS server acting as the key master for the zone may perform this operation." +"0000238E","9102","-4294958194","DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE","This operation is not allowed on a zone that is signed or has signing keys." +"0000238F","9103","-4294958193","DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1","NSEC3 is not compatible with the RSA-SHA-1 algorithm. Choose a different algorithm or use NSEC." +"00002390","9104","-4294958192","DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS","This value was also named DNS_ERROR_INVALID_NSEC3_PARAMETERS." +"00002391","9105","-4294958191","DNS_ERROR_UNSUPPORTED_ALGORITHM","The specified algorithm is not supported." +"00002392","9106","-4294958190","DNS_ERROR_INVALID_KEY_SIZE","The specified key size is not supported." +"00002393","9107","-4294958189","DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE","One or more of the signing keys for a zone are not accessible to the DNS server. Zone signing will not be operational until this error is resolved." +"00002394","9108","-4294958188","DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION","The specified key storage provider does not support DPAPI++ data protection. Zone signing will not be operational until this error is resolved." +"00002395","9109","-4294958187","DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR","An unexpected DPAPI++ error was encountered. Zone signing will not be operational until this error is resolved." +"00002396","9110","-4294958186","DNS_ERROR_UNEXPECTED_CNG_ERROR","An unexpected crypto error was encountered. Zone signing may not be operational until this error is resolved." +"00002397","9111","-4294958185","DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION","The DNS server encountered a signing key with an unknown version. Zone signing will not be operational until this error is resolved." +"00002398","9112","-4294958184","DNS_ERROR_KSP_NOT_ACCESSIBLE","The specified key service provider cannot be opened by the DNS server." +"00002399","9113","-4294958183","DNS_ERROR_TOO_MANY_SKDS","The DNS server cannot accept any more signing keys with the specified algorithm and KSK flag value for this zone." +"0000239A","9114","-4294958182","DNS_ERROR_INVALID_ROLLOVER_PERIOD","The specified rollover period is invalid." +"0000239B","9115","-4294958181","DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET","The specified initial rollover offset is invalid." +"0000239C","9116","-4294958180","DNS_ERROR_ROLLOVER_IN_PROGRESS","The specified signing key is already in process of rolling over keys." +"0000239D","9117","-4294958179","DNS_ERROR_STANDBY_KEY_NOT_PRESENT","The specified signing key does not have a standby key to revoke." +"0000239E","9118","-4294958178","DNS_ERROR_NOT_ALLOWED_ON_ZSK","This operation is not allowed on a zone signing key." +"0000239F","9119","-4294958177","DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD","This operation is not allowed on an active signing key." +"000023A0","9120","-4294958176","DNS_ERROR_ROLLOVER_ALREADY_QUEUED","The specified signing key is already queued for rollover." +"000023A1","9121","-4294958175","DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE","This operation is not allowed on an unsigned zone." +"000023A2","9122","-4294958174","DNS_ERROR_BAD_KEYMASTER","This operation could not be completed because the DNS server listed as the current key master for this zone is down or misconfigured. Resolve the problem on the current key master for this zone or use another DNS server to seize the key master role." +"000023A3","9123","-4294958173","DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD","The specified signature validity period is invalid." +"000023A4","9124","-4294958172","DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT","The specified NSEC3 iteration count is higher than allowed by the minimum key length used in the zone." +"000023A5","9125","-4294958171","DNS_ERROR_DNSSEC_IS_DISABLED","This operation could not be completed because the DNS server has been configured with DNSSEC features disabled. Enable DNSSEC on the DNS server." +"000023A6","9126","-4294958170","DNS_ERROR_INVALID_XML","This operation could not be completed because the XML stream received is empty or syntactically invalid." +"000023A7","9127","-4294958169","DNS_ERROR_NO_VALID_TRUST_ANCHORS","This operation completed - but no trust anchors were added because all of the trust anchors received were either invalid - unsupported - expired - or would not become valid in less than 30 days." +"000023A8","9128","-4294958168","DNS_ERROR_ROLLOVER_NOT_POKEABLE","The specified signing key is not waiting for parental DS update." +"000023A9","9129","-4294958167","DNS_ERROR_NSEC3_NAME_COLLISION","Hash collision detected during NSEC3 signing. Specify a different user-provided salt - or use a randomly generated salt - and attempt to sign the zone again." +"000023AA","9130","-4294958166","DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1","NSEC is not compatible with the NSEC3-RSA-SHA-1 algorithm. Choose a different algorithm or use NSEC3." +"000023AB","9131","-4294958165","","The search engine is offline." +"000023AC","9132","-4294958164","","The search engine encountered an internal error. Please check the search engine error log for more details." +"000023AD","9133","-4294958163","","Page text out of range." +"000023AE","9134","-4294958162","","Location data out of range." +"000023AF","9135","-4294958161","","Thumbnail data out of range." +"000023B0","9136","-4294958160","","Unrecognized query language dialect." +"000023B1","9137","-4294958159","","Version group does not exist." +"000023B2","9138","-4294958158","","Duplicate version numbers in a group are not allowed." +"000023B3","9139","-4294958157","","No such version in the version group." +"000023B4","9140","-4294958156","","No such document in the version group." +"000023B5","9141","-4294958155","","The version number is out of range." +"000023B6","9142","-4294958154","","Unable to parse the response returned by the search engine." +"000023B7","9143","-4294958153","","Unable to obtain the context hit." +"000023B8","9144","-4294958152","","Individual search term locations missing in the search result." +"000023BA","9146","-4294958150","","A correlation name '[1]' is specified multiple times in the FROM clause." +"000023BB","9147","-4294958149","","A volume already exists at the specified path." +"000023BC","9148","-4294958148","","A column prefix '[1]' does not match with a table name or alias name used in the query." +"000023BD","9149","-4294958147","","A correlation name '[1]' has the same exposed name of a table." +"000023BE","9150","-4294958146","","Two tables have the same exposed name '[1]' in the FROM clause." +"000023BF","9151","-4294958145","","Ambiguous column '[1]' exists in the query." +"000023C0","9152","-4294958144","","Account locked." +"000023C1","9153","-4294958143","","Account locked." +"000023C2","9154","-4294958142","","The properties cannot be merged because they have incompatible types, lengths, or constraints." +"000023C3","9155","-4294958141","","A literal is missing a final quote in the search query." +"000023C4","9156","-4294958140","","An image thumbnail could not be generated." +"000023C5","9157","-4294958139","","The password policy does not allow passwords to contain the user's name." +"000023C6","9158","-4294958138","","The password does not meet the minimum length requirement of the password policy." +"000023C7","9159","-4294958137","","The type of field selected cannot be displayed in a folder listing." +"000023C8","9160","-4294958136","","Invalid system search type." +"000023C9","9161","-4294958135","","Invalid date format." +"000023CA","9162","-4294958134","","Invalid date/time format." +"000023CB","9163","-4294958133","","The Temporary Password option may not be enabled by users on their own account." +"000023CC","9164","-4294958132","","Invalid template XML definition." +"000023CD","9165","-4294958131","","Could not connect to DBMS server. Please check the Event Viewer on the Laserfiche Server machine for more information." +"000023CE","9166","-4294958130","","Could not initialize Web-Based Enterprise Management (WBEM)." +"000023CF","9167","-4294958129","","Document locked with a persistent lock." +"000023D0","9168","-4294958128","","Maximum number of fields in a template reached." +"000023D1","9169","-4294958127","","Timed out waiting for the sychronized search operation to complete." +"000023D2","9170","-4294958126","","Date/Time out of range." +"000023D3","9171","-4294958125","","Another document in the version group has already been locked." +"000023D4","9172","-4294958124","","Insufficient privileges to change account privileges for your own account." +"000023D5","9173","-4294958123","","A reason is required when placing holds on records." +"000023D6","9174","-4294958122","","The action is forbidden because the entry is under hold." +"000023D7","9175","-4294958121","","Attempt to call an unrecognized function." +"000023D8","9176","-4294958120","","Invalid function arguments." +"000023D9","9177","-4294958119","","Encountered an error with the SQL driver. Please check the event viewer on the Laserfiche Server machine for more information." +"000023DA","9178","-4294958118","","Invalid time format." +"000023DB","9179","-4294958117","","License lacks feature activation required for the requested operation." +"000023DC","9180","-4294958116","","The specified template field is not assigned to this entry." +"000023DD","9181","-4294958115","","The specified operator is not supported for the requested search type." +"000023DE","9182","-4294958114","","Search terms that begin with %% or # must be enclosed in quotes. For example, to search for the string #29A, use #29A"".""" +"000023DF","9183","-4294958113","","The operation is not permitted because the volume is permanent." +"000023E0","9184","-4294958112","","The entry is not under hold or the hold was not found." +"000023E1","9185","-4294958111","","An entry that is not under records management cannot be placed under hold." +"000023E2","9186","-4294958110","","Only record folders can be created under a record series." +"000023E3","9187","-4294958109","","The current file area cannot be used as an accession location." +"000023E4","9188","-4294958108","","Invalid record retention duration." +"000023E5","9189","-4294958107","","The record folder has already been cutoff." +"000023E6","9190","-4294958106","","The record folder has already been closed." +"000023E7","9191","-4294958105","","The record folder cannot be re-opened at this point." +"000023E8","9192","-4294958104","","The record folder is not eligible for cutoff." +"000023E9","9193","-4294958103","","The record folder cannot be uncutoff at this point." +"000023EA","9194","-4294958102","","Calendar cycle not found." +"000023EB","9195","-4294958101","","Calendar cycle code is already in use." +"000023EC","9196","-4294958100","","Cannot delete or modify the calendar cycle because it is currently referenced by a records management object." +"000023ED","9197","-4294958099","","Records location does not exist." +"000023EE","9198","-4294958098","","Records location name is already in use." +"000023EF","9199","-4294958097","","Cannot delete the records location because it is currently in use." +"000023F0","9200","-4294958096","","Cutoff criterion not found." +"000023F1","9201","-4294958095","","Cutoff criterion name is already in use." +"000023F2","9202","-4294958094","","Cannot delete or modify the cutoff criterion because it is currently in use." +"000023F3","9203","-4294958093","","Event definition not found." +"000023F4","9204","-4294958092","","Event definition name already in use." +"000023F5","9205","-4294958091","","Cannot delete the event definition because it is currently in use." +"000023F6","9206","-4294958090","","Retention/disposition schedule not found." +"000023F7","9207","-4294958089","","Retention/disposition schedule name already in use." +"000023F8","9208","-4294958088","","Cannot delete or modify the retention/disposition schedule because it is currently in use." +"000023F9","9209","-4294958087","","The records transfer definition cannot be found." +"000023FA","9210","-4294958086","","Alternate retention/disposition schedules cannot themselves specify an alternate retention schedule." +"000023FB","9211","-4294958085","","A retention/disposition schedule cannot specify itself as its own alternate schedule." +"000023FC","9212","-4294958084","","Cannot delete object that is still in use." +"000023FD","9213","-4294958083","","The requested link type is built-in and cannot be modified or deleted." +"000023FE","9214","-4294958082","","The requested Laserfiche external table name is taken." +"000023FF","9215","-4294958081","","A retention schedule that requires records to be superseded does not support a retention period or transfers." +"00002400","9216","-4294958080","","Only the latest version of a document can be revised." +"00002401","9217","-4294958079","","A trustee cannot delete itself." +"00002402","9218","-4294958078","","The requested user area cannot be found." +"00002403","9219","-4294958077","","Invalid external database table name." +"00002404","9220","-4294958076","","Invalid Laserfiche external table name." +"00002405","9221","-4294958075","","Invalid external database name." +"00002406","9222","-4294958074","","Invalid external database schema name." +"00002407","9223","-4294958073","","Retention schedule is invalid." +"00002408","9224","-4294958072","","A final disposition location is not permitted on this retention schedule." +"00002409","9225","-4294958071","","Invalid external database server name." +"0000240A","9226","-4294958070","","External database identifier is invalid; must be a valid ASCII string." +"0000240B","9227","-4294958069","","Unable to locate the specified external database table." +"0000240C","9228","-4294958068","","Cutoff criterion is invalid." +"0000240D","9229","-4294958067","","Unknown Laserfiche external table name." +"0000240E","9230","-4294958066","","A trustee cannot disable itself." +"0000240F","9231","-4294958065","","The password specified is invalid." +"00002410","9232","-4294958064","","Cannot move or rename a checked out document." +"00002411","9233","-4294958063","","An event could not be unset because it could not be found or the folder is not in a state where events may be unset." +"00002412","9234","-4294958062","","Filing date cannot be changed after cutoff." +"00002413","9235","-4294958061","","Cannot link an entry to itself." +"00002414","9236","-4294958060","","Creating a search catalog failed." +"00002415","9237","-4294958059","","Could not enable audit log." +"00002416","9238","-4294958058","","The specified account is of the wrong type." +"00002417","9239","-4294958057","","Invalid search. Full-text searches must contain some non-wildcard characters." +"00002418","9240","-4294958056","","Entry lock not found." +"00002419","9241","-4294958055","","Shortcuts cannot be locked." +"0000241A","9242","-4294958054","","Record series with the same code already exists." +"0000241B","9243","-4294958053","","Invalid access right." +"0000241C","9244","-4294958052","","Cannot set the current user account to have read-only access." +"0000241D","9245","-4294958051","","The search parameter is invalid." +"0000241E","9246","-4294958050","","Operation not allowed, because performing it would cause the entry to become hidden from you." +"0000241F","9247","-4294958049","","The fields cannot be merged because one or more entries have values for both fields." +"00002420","9248","-4294958048","","This field cannot be converted to hold single values because one or more entries exist with multiple values." +"00002421","9249","-4294958047","","The search parameter is out of range." +"00002422","9250","-4294958046","","One or more entries in the recycle bin have field values that do not satisfy the constraint on the field." +"00002423","9251","-4294958045","","A field is included in the template more than once." +"00002424","9252","-4294958044","","The bitmap data exceeds the maximum size." +"00002425","9253","-4294958043","","Export event reported with an invalid event type." +"00002426","9254","-4294958042","","Blob Field is not supported in LFQL." +"00002427","9255","-4294958041","","Invalid filter expression." +"00002428","9256","-4294958040","","Invalid filter expression." +"00002429","9257","-4294958039","","Invalid filter expression." +"0000242A","9258","-4294958038","","Invalid filter expression." +"0000242B","9259","-4294958037","","The number of pages in the repository has exceeded the licensed page limit." +"0000242C","9260","-4294958036","","Error while constructing audit log." +"0000242D","9261","-4294958035","","Failed to initialize the tokenizer. Context hits are not generated." +"0000242E","9262","-4294958034","","The volume cannot be detached to a legacy format." +"0000242F","9263","-4294958033","","Cannot copy and paste a record series." +"00002430","9264","-4294958032","","Fixed path for a volume must either be empty or contain a valid VOLUME.ID file." +"00002431","9265","-4294958031","","There was an error decompressing the briefcase. The briefcase file may be corrupt or the disk may be full." +"00002432","9266","-4294958030","","Audit log file locked or currently in use." +"00002433","9267","-4294958029","","Only the first 20000 context hits of a document are available." +"00002434","9268","-4294958028","","The length of the search term is out of range." +"00002435","9269","-4294958027","","The search term you have entered is too complex to process." +"00002436","9270","-4294958026","","Encryption failed." +"00002437","9271","-4294958025","","Failed to obtain a cryptographic service provider." +"00002438","9272","-4294958024","","Failed to prepare the hashing algorithm." +"00002439","9273","-4294958023","","Failed to hash the password." +"0000243A","9274","-4294958022","","Failed to generate the encryption key." +"0000243B","9275","-4294958021","","Cannot encrypt or compress a logical volume." +"0000243C","9276","-4294958020","","Cannot encrypt or compress a physical volume that is currently linked to a logical volume." +"0000243D","9277","-4294958019","","The file is unavailable because the volume is currently secured." +"0000243E","9278","-4294958018","","The volume is not encrypted." +"0000243F","9279","-4294958017","","Failed to write repository encryption key to disk." +"00002440","9280","-4294958016","","Failed to write volume encryption key to disk." +"00002441","9281","-4294958015","","Calendar cycle period not found." +"00002442","9282","-4294958014","","Encryption key not found." +"00002443","9283","-4294958013","","Error reading encryption key configuration." +"00002444","9284","-4294958012","","A private annotation has been skipped on import because it does not belong to a trustee present in this repository." +"00002445","9285","-4294958011","","Decryption failed." +"00002446","9286","-4294958010","","Compressed file data is invalid or corrupt and cannot be decompressed." +"00002447","9287","-4294958009","","Error compressing file." +"00002448","9288","-4294958008","","This repository does not have an associated catalog." +"00002449","9289","-4294958007","","You have registered your repository, but the search catalog could not be attached." +"0000244A","9290","-4294958006","","The repository cannot be unregistered because the search catalog could not be detached." +"0000244B","9291","-4294958005","","The search engine is currently offline and cannot process full text search requests." +"0000244C","9292","-4294958004","","The search engine is currently offline and cannot process any indexing requests." +"0000244D","9293","-4294958003","","You cannot configure search catalog settings while the search engine is offline." +"0000244E","9294","-4294958002","","You cannot perform full text searches in a repository with no search catalog." +"0000244F","9295","-4294958001","","You cannot index a repository with no search catalog." +"00002450","9296","-4294958000","","You cannot configure stop words in a repository with no search catalog." +"00002451","9297","-4294957999","","The repository has been successfully attached but no search index catalog was detected." +"00002452","9298","-4294957998","","The locale name is not valid or the locale data could not be loaded." +"00002453","9299","-4294957997","","The time zone name is not valid or the time zone data could not be loaded." +"00002454","9300","-4294957996","","Time zone conversion operation failed with an error." +"00002455","9301","-4294957995","","Loading the date or time pattern for the current locale failed." +"00002456","9302","-4294957994","","Setting the date or time pattern to the supplied string failed." +"00002457","9303","-4294957993","","Loading a number or currency pattern for the current locale failed." +"00002458","9304","-4294957992","","Setting a number or currency pattern for the current locale failed; check the pattern for syntax errors." +"00002459","9305","-4294957991","","Formatting a date or time using locale-sensitive settings failed." +"0000245A","9306","-4294957990","","Formatting a number, percentage or currency value using locale-sensitive settings failed." +"0000245B","9307","-4294957989","","Only one expression can be specified in the SELECT list when the subquery is not introduced with the EXISTS operator." +"0000245C","9308","-4294957988","","Each GROUP BY expression must contain at least one column that is not an outer reference." +"0000245D","9309","-4294957987","","A column is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause." +"0000245E","9310","-4294957986","","A column is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause." +"0000245F","9311","-4294957985","","Compressing an archived audit log file failed." +"00002460","9312","-4294957984","","A column reference is invalid in the HAVING clause because it is not contained in either an aggregate function or the GROUP BY clause." +"00002461","9313","-4294957983","","An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a SELECT list." +"00002462","9314","-4294957982","","Database error." +"00002463","9315","-4294957981","","Conversion failed." +"00002464","9316","-4294957980","","Invalid encryption header." +"00002465","9317","-4294957979","","The encrypted file uses an unsupported version format." +"00002466","9318","-4294957978","","The encrypted file is corrupt." +"00002467","9319","-4294957977","","Invalid compression header." +"00002468","9320","-4294957976","","The compressed file uses an unsupported version format." +"00002469","9321","-4294957975","","The compressed file is corrupt and cannot be decompressed." +"0000246A","9322","-4294957974","","Invalid conversion format specified in the TO_CHAR() function." +"0000246B","9323","-4294957973","","The conversion format specified in the TO_CHAR() function can only be used in the SELECT clause." +"0000246C","9324","-4294957972","","The conversion format specified in the TO_CHAR() function can only be used with the DATE, TIME, DATETIME and NUMBER types." +"0000246D","9325","-4294957971","","The CONTAINS expression may only appear in the WHERE clause." +"0000246E","9326","-4294957970","","Only one CONTAINS expression may appear in the WHERE clause." +"0000246F","9327","-4294957969","","The TO_LOCAL_TIME() and the TO_UTC_TIME() LFQL functions can only be used with DATETIME literals if the DBMS type is MSSQL." +"00002470","9328","-4294957968","","The named user database could not be found or was not opened correctly." +"00002471","9329","-4294957967","","The named user was not found." +"00002472","9330","-4294957966","","The named device was not found." +"00002473","9331","-4294957965","","This operation is available only on Avante licensed systems." +"00002474","9332","-4294957964","","Invalid device ID provided." +"00002475","9333","-4294957963","","The number of registered read-only named users has reached its licensed limit." +"00002476","9334","-4294957962","","The number of registered named users has reached its licensed limit." +"00002477","9335","-4294957961","","Initializing the named user database failed." +"00002478","9336","-4294957960","","Users cannot log in at this time because an administrative lockout is in effect." +"00002479","9337","-4294957959","","The field constraint has a syntax error or is invalid." +"0000247A","9338","-4294957958","","The version label is already in use within this version history." +"0000247B","9339","-4294957957","","Too many redactions; no more redactions can be drawn on this page because of memory or built-in limits." +"0000247C","9340","-4294957956","","Failed to create a LFS helper process." +"0000247D","9341","-4294957955","","A record series' parent must not contain a record folder." +"0000247E","9342","-4294957954","","Record series may contain either other record series or record folders, but not both." +"0000247F","9343","-4294957953","","Error moving volume contents because of an I/O error." +"00002480","9344","-4294957952","","Specified object type not recognized." +"00002481","9345","-4294957951","","Unique codes are required for record series with the same parent series or folder." +"00002482","9346","-4294957950","","The requested custom audit reason could not be found." +"00002483","9347","-4294957949","","The audit record data exceeds the size limit." +"00002484","9348","-4294957948","","The selected field type and format settings are incompatible." +"00002487","9351","-4294957945","","The number of registered read-only Laserfiche named users has reached its licensed limit." +"00002488","9352","-4294957944","","The number of registered Laserfiche named users has reached its licensed limit." +"00002489","9353","-4294957943","","Invalid thumbnail format. The dimension of the image must be within 112x112 pixels." +"0000248A","9354","-4294957942","","The maximum number of errors has been reached for this operation." +"0000248B","9355","-4294957941","","The LDAP credentials provided could not be authenticated." +"0000248C","9356","-4294957940","","LDAP server profile not found." +"0000248D","9357","-4294957939","","LDAP query could not be completed." +"0000248E","9358","-4294957938","","Unable to move annotations of that type." +"0000248F","9359","-4294957937","","Alternative edoc not found." +"00002490","9360","-4294957936","","Failed to create an alternative edoc." +"00002491","9361","-4294957935","","Invalid name for an alternative edoc." +"00002492","9362","-4294957934","","Cannot encrypt or compress a volume when it is exprted in place." +"00002493","9363","-4294957933","","The volume is unavailable because it is currently secured." +"00002494","9364","-4294957932","","The full text search request has timed out." +"00002495","9365","-4294957931","","Entry in Recycle Bin." +"00002496","9366","-4294957930","","The record can only be uncutoff by removing the link that triggers the cutoff." +"00002497","9367","-4294957929","","The dynamic field definition you specified could not be found." +"00002498","9368","-4294957928","","The dynamic field definition is not correctly formed." +"00002499","9369","-4294957927","","The dynamic field definition makes reference to a field that is not in the template." +"0000249A","9370","-4294957926","","A dynamic field definition that uses simple binding can only reference a parent field that also uses simple binding. The parent field must be bound against the same external table but use a different column from that table." +"0000249B","9371","-4294957925","","The dynamic field definitions in the template have field references that form a dependency loop." +"0000249C","9372","-4294957924","","Laserfiche Query Stream." +"0000249D","9373","-4294957923","","Laserfiche Query Stream." +"0000249E","9374","-4294957922","","Laserfiche Query Stream." +"0000249F","9375","-4294957921","","Review cycle not found." +"000024A0","9376","-4294957920","","The repository cannot be unmounted because there are one or more open sessions." +"000024A1","9377","-4294957919","","The specified volume path is not empty. It may be in use by another volume." +"000024A2","9378","-4294957918","","Insufficient information to calculate the disposition eligibility date." +"000024A3","9379","-4294957917","","Invalid cutoff criteria to calculate the disposition eligibility date." +"000024A4","9380","-4294957916","","Insufficient information to calculate the cutoff eligibility date." +"000024A5","9381","-4294957915","","Invalid cutoff criteria to calculate the cutoff eligibility date." +"000024A6","9382","-4294957914","","Cutoff criteria cannot be changed after cutoff." +"000024A7","9383","-4294957913","","This operation can only be performed on a single record folder." +"000024A8","9384","-4294957912","","This operation requires subfolder recursion." +"000024A9","9385","-4294957911","","Email server profile not found." +"000024AA","9386","-4294957910","","A final disposition type of destruction cannot be assigned to a records management object that is marked for transfer or accession to NARA." +"000024AB","9387","-4294957909","","Could not start e-mail sender." +"000024AC","9388","-4294957908","","Error communicating with e-mail sender." +"000024AD","9389","-4294957907","","Error reading from e-mail sender." +"000024AE","9390","-4294957906","","Could not send e-mail." +"000024AF","9391","-4294957905","","The specified password contains invalid characters." +"000024B0","9392","-4294957904","","Audit log not found." +"000024B1","9393","-4294957903","","Detected a corrupt audit log." +"000024B2","9394","-4294957902","","The dynamic field definition is currently in use and must be unassigned before it can be deleted." +"000024B3","9395","-4294957901","","A simple dynamic field definition must have a bound table specified." +"000024B4","9396","-4294957900","","A simple dynamic field definition must have a bound column specified." +"000024B5","9397","-4294957899","","Validation cannot be completed for dynamic field definitions with more than one query." +"000024B6","9398","-4294957898","","All dynamic field definition queries must have a condition defined, except for the default query." +"000024B7","9399","-4294957897","","The dynamic field query condition is not correctly formed." +"000024B8","9400","-4294957896","","All dynamic field definition queries must have the query text defined." +"000024B9","9401","-4294957895","","The dynamic field query is not correctly formed." +"000024BA","9402","-4294957894","","The default dynamic field query may not have a query condition or require a value." +"000024BB","9403","-4294957893","","This function is only available for full-text search within a document." +"000024BC","9404","-4294957892","","A bind variable type cannot be resolved." +"000024BD","9405","-4294957891","","Invalid search collation rule." +"000024BE","9406","-4294957890","","Search collation rule is supported with Oracle 10g or higher." +"000024BF","9407","-4294957889","","The briefcase is encrypted. A password is required to import it." +"000024C0","9408","-4294957888","","The full text search statement is empty." +"000024C1","9409","-4294957887","","Fail to initialize the external table." +"000024C2","9410","-4294957886","","Invalid LFQL collation rule." +"000024C3","9411","-4294957885","","LFQL collation rule is supported with Oracle 10g or higher." +"000024C4","9412","-4294957884","","A cryptographic function either failed or was not available." +"000024C5","9413","-4294957883","","The DBMS of this repository does not support the use of the LIMIT and the OFFSET keywords." +"000024C6","9414","-4294957882","","Unknown LFLIST table." +"000024C7","9415","-4294957881","","LFLIST table." +"000024C8","9416","-4294957880","","Signature not found." +"000024C9","9417","-4294957879","","Unable to register an external table that contains an invalid column type." +"000024CA","9418","-4294957878","","Certificate not found." +"000024CB","9419","-4294957877","","Invalid certificate thumbprint." +"000024CC","9420","-4294957876","","The Laserfiche query you have entered is too complex to process. Please rewrite the query." +"000024CD","9421","-4294957875","","Invalid search catalog status." +"000024CE","9422","-4294957874","","The SQL column type is not supported in LFQL." +"000024CF","9423","-4294957873","","The specified security classification level was not found." +"000024D0","9424","-4294957872","","Cannot file an entry with a higher security classification level in a folder of a lower classification level." +"000024D1","9425","-4294957871","","The specified discussion alert template was not found." +"000024D2","9426","-4294957870","","The specified comment template was not found." +"000024D3","9427","-4294957869","","The specified discussion was not found." +"000024D4","9428","-4294957868","","The specified topic was not found." +"000024D5","9429","-4294957867","","The specified comment was not found." +"000024D6","9430","-4294957866","","The specified discussion watch was not found." +"000024D7","9431","-4294957865","","The specified topic watch was not found." +"000024D8","9432","-4294957864","","The signature could not be deleted because there are countersignatures that depend on it." +"000024D9","9433","-4294957863","","Unknown XML property encountered." +"000024DA","9434","-4294957862","","An error was encountered in the XML signature library." +"000024DB","9435","-4294957861","","An invalid certificate was specified." +"000024DC","9436","-4294957860","","An invalid signing key was specified." +"000024DD","9437","-4294957859","","ORDER BY items must appear in the select list if SELECT DISTINCT is specified." +"000024DE","9438","-4294957858","","The specified certificate could not be trusted." +"000024DF","9439","-4294957857","","The text, ntext, and image data types cannot be sorted." +"000024E0","9440","-4294957856","","The ASN1 encoder encountered an error." +"000024E1","9441","-4294957855","","The ASN1 decoder encountered an error." +"000024E2","9442","-4294957854","","Failed to issue a timestamp request to the TSA." +"000024E3","9443","-4294957853","","Received an invalid response from the TSA." +"000024E4","9444","-4294957852","","The timestamp request was rejected by the TSA." +"000024E5","9445","-4294957851","","Search plan not found." +"000024E6","9446","-4294957850","","Search plan build failed." +"000024E7","9447","-4294957849","","Search plan build failed." +"000024E8","9448","-4294957848","","The SQL data type of a column is not supported by the ODBC driver. Please check the event viewer on the Laserfiche Server machine for more information." +"000024E9","9449","-4294957847","","The SQL data type of a column in the external table is not supported." +"000024EA","9450","-4294957846","","Only full-text searches can be used with the WITHIN operator." +"000024EB","9451","-4294957845","","The search catalog could not be created or it failed to start." +"000024EC","9452","-4294957844","","The repository has been successfully attached but the search index catalog needs to be upgraded. Please run the Full-Text Search Catalog Upgrade Wizard to update it. Until a catalog is attached or created, you will not be able to run full text searches on the repository or index your documents. You may attach the associated catalog or create a new one through the Index node in the Laserfiche Administration Console. If you create a new catalog, you will need to reindex your repository." +"000024ED","9453","-4294957843","","An audited event cannot be completed while the auditor is locked down." +"000024EE","9454","-4294957842","","The connection string is incompatible with the DBMS type of the repository." +"000024EF","9455","-4294957841","","Failed to set up the dynamic fields due to a type conflict. The type of the field and the type of the SQL column must be compatible." +"000024F0","9456","-4294957840","","Failed to set up the dynamic fields as specified." +"000024F1","9457","-4294957839","","Unknown Laserfiche external table column name." +"000024F2","9458","-4294957838","","Failed to connect to the LFS helper process." +"000024F3","9459","-4294957837","","LFS helper process returns invalid result." +"000024F4","9460","-4294957836","","The LFS helper executable file is not found." +"000024F5","9461","-4294957835","","Failed to start the LFS helper process." +"000024F6","9462","-4294957834","","The access control list (ACL) could not be modified because the size would exceed the 64 KB limit." +"000024F7","9463","-4294957833","","Failed to create a record series with an empty series code. The repository option Require unique series code"" is set to true.""" +"000024F8","9464","-4294957832","","This catalog is from an earlier version of Laserfiche." +"000024F9","9465","-4294957831","","The time-stamp request could not be processed." +"000024FA","9466","-4294957830","","The time-stamp authority is disabled." +"000024FB","9467","-4294957829","","The time-stamping library could not be loaded." +"000024FC","9468","-4294957828","","The time-stamp authority profile was not found." +"000024FD","9469","-4294957827","","Error removing the time-stamp authority profile." +"000024FE","9470","-4294957826","","Error storing the time-stamp authority profile." +"000024FF","9471","-4294957825","","Error reading the time-stamp authority profiles from the registry." +"00002500","9472","-4294957824","","The search engine encountered an error when parsing the full text search query." +"00002501","9473","-4294957823","","The digital time-stamp cannot guarantee that this data existed prior to the specified cutoff time." +"00002502","9474","-4294957822","","The time-stamp has an invalid signature." +"00002503","9475","-4294957821","","Error reading search catalog name or UUID." +"00002504","9476","-4294957820","","Error reading search engine's URL." +"00002505","9477","-4294957819","","Error reading search engine's port." +"00002506","9478","-4294957818","","Error reading search catalog's path." +"00002507","9479","-4294957817","","Error connecting to the search engine. Either the search engine is offline or the search engine connection settings are misconfigured. Please contact your Laserfiche administrator." +"00002508","9480","-4294957816","","The review setting for vital records was not found." +"00002509","9481","-4294957815","","The review interval unit was not found." +"0000250A","9482","-4294957814","","Invalid review interval. The interval length must be greater than 0 and the interval unit must be defined." +"0000250B","9483","-4294957813","","The review interval unit is missing." +"0000250C","9484","-4294957812","","Vital records can only be reviewd by a calendar cycle or by a time interval." +"0000250D","9485","-4294957811","","Invalid stop word found in the stop word list." +"0000250E","9486","-4294957810","","Failed to attach a search catalog." +"0000250F","9487","-4294957809","","Counter-signing is only allowed for signatures on the same document." +"00002510","9488","-4294957808","","The latest version of a version-controlled document cannot be deleted." +"00002511","9489","-4294957807","","Failed to create a search catalog. A duplicate search catalog was found for the search engine." +"00002512","9490","-4294957806","","The search catalog failed to start. One or more required index files are missing." +"00002513","9491","-4294957805","","The search catalog is in read-only mode. Full-text search is available, but indexing and stop word updating are disabled." +"00002514","9492","-4294957804","","The search catalog failed to start. The search catalog failed to log in to the repository due to an invalid username or password." +"00002515","9493","-4294957803","","The search catalog failed to start. The catalog settings are mis-configured." +"00002516","9494","-4294957802","","Failed to attach a search catalog. CatalogConfig.xml is missing." +"00002517","9495","-4294957801","","Failed to attach a search catalog. CatalogConfig.xml is invalid." +"00002518","9496","-4294957800","","This field definition cannot be changed because one or more entries exist with values in the version history." +"00002519","9497","-4294957799","","A duplicated catalog is found in the search engine." +"0000251A","9498","-4294957798","","Failed to find the full-text search session. The connection to the search engine might have been reset." +"0000251B","9499","-4294957797","","Failed to cutoff the record or the record folder. One or more required records are checked out." +"0000251C","9500","-4294957796","","Failed to close the record folder. One or more required records are checked out." +"0000251D","9501","-4294957795","DNS_INFO_NO_RECORDS","No records found for given DNS query." +"0000251E","9502","-4294957794","DNS_ERROR_BAD_PACKET","Bad DNS packet." +"0000251F","9503","-4294957793","DNS_ERROR_NO_PACKET","No DNS packet." +"00002520","9504","-4294957792","DNS_ERROR_RCODE","DNS error - check rcode." +"00002521","9505","-4294957791","DNS_ERROR_UNSECURE_PACKET","Unsecured DNS packet." +"00002522","9506","-4294957790","DNS_REQUEST_PENDING","DNS query request is pending." +"00002523","9507","-4294957789","","The specified business process was not found." +"00002524","9508","-4294957788","","The specified business process instance was not found." +"00002525","9509","-4294957787","","The specified document or document version has signatures that depend on it." +"00002526","9510","-4294957786","","The operation was canceled by another session." +"00002527","9511","-4294957785","","The requested field type change would result in data loss." +"00002528","9512","-4294957784","","Some field values could not be reverted due to incompatibilities with the current field definitions." +"00002529","9513","-4294957783","","Decrypted data failed to authenticate. Either the key is incorrect or the ciphertext has been altered." +"0000252A","9514","-4294957782","","Volume file filter has been utilized prior to initialization." +"0000252B","9515","-4294957781","","Invalid crypto algorithm has been specified." +"0000252C","9516","-4294957780","","The search that you have submitted is defined too broadly. Please refine your search by adding more terms in the search pane and selecting specific values for each of those terms." +"0000252D","9517","-4294957779","","Volume encryption requires Windows Vista/2008 SP1 or higher." +"0000252E","9518","-4294957778","","The number of entry locks for the repository has exceeded the maximum value." +"0000252F","9519","-4294957777","","The requested operation is only supported for indexed template fields. The chosen field is not indexed or not indexable." +"00002530","9520","-4294957776","","No license has been allocated for this user." +"00002531","9521","-4294957775","","The license allocated for this user does not allow for the requested session type." +"00002532","9522","-4294957774","","The requested operation could not proceed because the target volume's configured size limit has been reached." +"00002533","9523","-4294957773","","The repository cannot be mounted at the current time because it is being upgraded. Please wait until the upgrade completes." +"00002534","9524","-4294957772","","Search catalog .IDX files already exist at the chosen location. Please delete them before creating the catalog, or attach the catalog instead if you want to keep the .IDX files." +"00002535","9525","-4294957771","","The tenant cannot be deleted because it is not empty. Please remove all assigned named users, repositories, and tenant admins before deleting the tenant." +"00002536","9526","-4294957770","","The repository cannot be mounted at the current time because it is being mounted or unmounted. Please wait until the current operation completes." +"00002537","9527","-4294957769","","The result of the operation cannot be retrieved because the operation has not finished." +"00002538","9528","-4294957768","","Cannot connect to the Laserfiche Directory Server." +"00002539","9529","-4294957767","","Cannot verify the license file. The server will shut down in one hour. Logging in with a Laserfiche Directory Server token will not be allowed." +"0000253A","9530","-4294957766","","Received an invalid or untrusted SAML token." +"0000253B","9531","-4294957765","","Full text searches in the recycle bin are not supported." +"0000253C","9532","-4294957764","","The search type is not supported when searching in the recycle bin." +"0000253D","9533","-4294957763","","The search type is only supported when searching in the recycle bin." +"0000253E","9534","-4294957762","","Received SAML token is either expired or cannot be used at current time." +"0000253F","9535","-4294957761","","Cannot encrypt an encrypted volume." +"00002540","9536","-4294957760","","LFS received an unrecognized or unexpected error from LFDS." +"00002541","9537","-4294957759","","Target object not found." +"00002542","9538","-4294957758","","The request could not be completed because the current Laserfiche client lacks support for a feature that is enabled on the server which is incompatible with lower-level client applications." +"0000254F","9551","-4294957745","DNS_ERROR_INVALID_TYPE","Invalid DNS type." +"00002550","9552","-4294957744","DNS_ERROR_INVALID_IP_ADDRESS","Invalid IP address." +"00002551","9553","-4294957743","DNS_ERROR_INVALID_PROPERTY","Invalid property." +"00002552","9554","-4294957742","DNS_ERROR_TRY_AGAIN_LATER","Try DNS operation again later." +"00002553","9555","-4294957741","DNS_ERROR_NOT_UNIQUE","Record for given name and type is not unique." +"00002554","9556","-4294957740","DNS_ERROR_NON_RFC_NAME","DNS name does not comply with RFC specifications." +"00002555","9557","-4294957739","DNS_STATUS_FQDN","DNS name is a fully-qualified DNS name." +"00002556","9558","-4294957738","DNS_STATUS_DOTTED_NAME","DNS name is dotted." +"00002557","9559","-4294957737","DNS_STATUS_SINGLE_PART_NAME","DNS name is a single-part name." +"00002558","9560","-4294957736","DNS_ERROR_INVALID_NAME_CHAR","DNS name contains an invalid character." +"00002559","9561","-4294957735","DNS_ERROR_NUMERIC_NAME","DNS name is entirely numeric." +"0000255A","9562","-4294957734","DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER","The operation requested is not permitted on a DNS root server." +"0000255B","9563","-4294957733","DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION","The record could not be created because this part of the DNS namespace has been delegated to another server." +"0000255C","9564","-4294957732","DNS_ERROR_CANNOT_FIND_ROOT_HINTS","The DNS server could not find a set of root hints." +"0000255D","9565","-4294957731","DNS_ERROR_INCONSISTENT_ROOT_HINTS","The DNS server found root hints but they were not consistent across all adapters." +"0000255E","9566","-4294957730","DNS_ERROR_DWORD_VALUE_TOO_SMALL","The specified value is too small for this parameter." +"0000255F","9567","-4294957729","DNS_ERROR_DWORD_VALUE_TOO_LARGE","The specified value is too large for this parameter." +"00002560","9568","-4294957728","DNS_ERROR_BACKGROUND_LOADING","This operation is not allowed while the DNS server is loading zones in the background. Please try again later." +"00002561","9569","-4294957727","DNS_ERROR_NOT_ALLOWED_ON_RODC","The operation requested is not permitted on against a DNS server running on a read-only DC." +"00002562","9570","-4294957726","DNS_ERROR_NOT_ALLOWED_UNDER_DNAME","No data is allowed to exist underneath a DNAME record." +"00002563","9571","-4294957725","DNS_ERROR_DELEGATION_REQUIRED","This operation requires credentials delegation." +"00002564","9572","-4294957724","DNS_ERROR_INVALID_POLICY_TABLE","Name resolution policy table has been corrupted. DNS resolution will fail until it is fixed. Contact your network administrator." +"00002581","9601","-4294957695","DNS_ERROR_ZONE_DOES_NOT_EXIST","DNS zone does not exist." +"00002582","9602","-4294957694","DNS_ERROR_NO_ZONE_INFO","DNS zone information not available." +"00002583","9603","-4294957693","DNS_ERROR_INVALID_ZONE_OPERATION","Invalid operation for DNS zone." +"00002584","9604","-4294957692","DNS_ERROR_ZONE_CONFIGURATION_ERROR","Invalid DNS zone configuration." +"00002585","9605","-4294957691","DNS_ERROR_ZONE_HAS_NO_SOA_RECORD","DNS zone has no start of authority." +"00002586","9606","-4294957690","DNS_ERROR_ZONE_HAS_NO_NS_RECORDS","DNS zone has no Name Server." +"00002587","9607","-4294957689","DNS_ERROR_ZONE_LOCKED","DNS zone is locked." +"00002588","9608","-4294957688","DNS_ERROR_ZONE_CREATION_FAILED","DNS zone creation failed." +"00002589","9609","-4294957687","DNS_ERROR_ZONE_ALREADY_EXISTS","DNS zone already exists." +"0000258A","9610","-4294957686","DNS_ERROR_AUTOZONE_ALREADY_EXISTS","DNS automatic zone already exists." +"0000258B","9611","-4294957685","DNS_ERROR_INVALID_ZONE_TYPE","Invalid DNS zone type." +"0000258C","9612","-4294957684","DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP","Secondary DNS zone requires master IP address." +"0000258D","9613","-4294957683","DNS_ERROR_ZONE_NOT_SECONDARY","DNS zone not secondary." +"0000258E","9614","-4294957682","DNS_ERROR_NEED_SECONDARY_ADDRESSES","Need secondary IP address." +"0000258F","9615","-4294957681","DNS_ERROR_WINS_INIT_FAILED","WINS initialization failed." +"00002590","9616","-4294957680","DNS_ERROR_NEED_WINS_SERVERS","Need WINS servers." +"00002591","9617","-4294957679","DNS_ERROR_NBSTAT_INIT_FAILED","NBTSTAT initialization call failed." +"00002592","9618","-4294957678","DNS_ERROR_SOA_DELETE_INVALID","Invalid delete of start of authority." +"00002593","9619","-4294957677","DNS_ERROR_FORWARDER_ALREADY_EXISTS","A conditional forwarding zone already exists for that name." +"00002594","9620","-4294957676","DNS_ERROR_ZONE_REQUIRES_MASTER_IP","This zone must be configured with one or more master DNS server IP addresses." +"00002595","9621","-4294957675","DNS_ERROR_ZONE_IS_SHUTDOWN","The operation cannot be performed because this zone is shut down." +"00002596","9622","-4294957674","DNS_ERROR_ZONE_LOCKED_FOR_SIGNING","This operation cannot be performed because the zone is currently being signed. Please try again later." +"000025B3","9651","-4294957645","DNS_ERROR_PRIMARY_REQUIRES_DATAFILE","Primary DNS zone requires datafile." +"000025B4","9652","-4294957644","DNS_ERROR_INVALID_DATAFILE_NAME","Invalid datafile name for DNS zone." +"000025B5","9653","-4294957643","DNS_ERROR_DATAFILE_OPEN_FAILURE","Failed to open datafile for DNS zone." +"000025B6","9654","-4294957642","DNS_ERROR_FILE_WRITEBACK_FAILED","Failed to write datafile for DNS zone." +"000025B7","9655","-4294957641","DNS_ERROR_DATAFILE_PARSING","Failure while reading datafile for DNS zone." +"000025E5","9701","-4294957595","DNS_ERROR_RECORD_DOES_NOT_EXIST","DNS record does not exist." +"000025E6","9702","-4294957594","DNS_ERROR_RECORD_FORMAT","DNS record format error." +"000025E7","9703","-4294957593","DNS_ERROR_NODE_CREATION_FAILED","Node creation failure in DNS." +"000025E8","9704","-4294957592","DNS_ERROR_UNKNOWN_RECORD_TYPE","Unknown DNS record type." +"000025E9","9705","-4294957591","DNS_ERROR_RECORD_TIMED_OUT","DNS record timed out." +"000025EA","9706","-4294957590","DNS_ERROR_NAME_NOT_IN_ZONE","Name not in DNS zone." +"000025EB","9707","-4294957589","DNS_ERROR_CNAME_LOOP","CNAME loop detected." +"000025EC","9708","-4294957588","DNS_ERROR_NODE_IS_CNAME","Node is a CNAME DNS record." +"000025ED","9709","-4294957587","DNS_ERROR_CNAME_COLLISION","A CNAME record already exists for given name." +"000025EE","9710","-4294957586","DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT","Record only at DNS zone root." +"000025EF","9711","-4294957585","DNS_ERROR_RECORD_ALREADY_EXISTS","DNS record already exists." +"000025F0","9712","-4294957584","DNS_ERROR_SECONDARY_DATA","Secondary DNS zone data error." +"000025F1","9713","-4294957583","DNS_ERROR_NO_CREATE_CACHE_DATA","Could not create DNS cache data." +"000025F2","9714","-4294957582","DNS_ERROR_NAME_DOES_NOT_EXIST","DNS name does not exist." +"000025F3","9715","-4294957581","DNS_WARNING_PTR_CREATE_FAILED","Could not create pointer." +"000025F4","9716","-4294957580","DNS_WARNING_DOMAIN_UNDELETED","DNS domain was undeleted." +"000025F5","9717","-4294957579","DNS_ERROR_DS_UNAVAILABLE","The directory service is unavailable." +"000025F6","9718","-4294957578","DNS_ERROR_DS_ZONE_ALREADY_EXISTS","DNS zone already exists in the directory service." +"000025F7","9719","-4294957577","DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE","DNS server not creating or reading the boot file for the directory service integrated DNS zone." +"000025F8","9720","-4294957576","DNS_ERROR_NODE_IS_DNAME","Node is a DNAME DNS record." +"000025F9","9721","-4294957575","DNS_ERROR_DNAME_COLLISION","A DNAME record already exists for given name." +"000025FA","9722","-4294957574","DNS_ERROR_ALIAS_LOOP","An alias loop has been detected with either CNAME or DNAME records." +"00002617","9751","-4294957545","DNS_INFO_AXFR_COMPLETE","DNS AXFR." +"00002618","9752","-4294957544","DNS_ERROR_AXFR","DNS zone transfer failed." +"00002619","9753","-4294957543","DNS_INFO_ADDED_LOCAL_WINS","Added local WINS server." +"00002649","9801","-4294957495","DNS_STATUS_CONTINUE_NEEDED","Secure update call needs to continue update request." +"0000267B","9851","-4294957445","DNS_ERROR_NO_TCPIP","TCP/IP network protocol not installed." +"0000267C","9852","-4294957444","DNS_ERROR_NO_DNS_SERVERS","No DNS servers configured for local system." +"00002685","9861","-4294957435","NULL","" +"000026AC","9900","-4294957396","","Entries have field values that do not satisfy the condition on the field." +"000026AD","9901","-4294957395","DNS_ERROR_DP_DOES_NOT_EXIST","The specified directory partition does not exist." +"000026AE","9902","-4294957394","DNS_ERROR_DP_ALREADY_EXISTS","The specified directory partition already exists." +"000026AF","9903","-4294957393","DNS_ERROR_DP_NOT_ENLISTED","This DNS server is not enlisted in the specified directory partition." +"000026B0","9904","-4294957392","DNS_ERROR_DP_ALREADY_ENLISTED","This DNS server is already enlisted in the specified directory partition." +"000026B1","9905","-4294957391","DNS_ERROR_DP_NOT_AVAILABLE","The directory partition is not available at this time. Please wait a few minutes and try again." +"000026B2","9906","-4294957390","DNS_ERROR_DP_FSMO_ERROR","The operation failed because the domain naming master FSMO role could not be reached. The domain controller holding the domain naming master FSMO role is down or unable to service the request or is not running Windows Server 2003 or later." +"000026B3","9907","-4294957389","","Insufficient privileges to perform aggregation on the columns [ColumnName]"".""" +"000026B4","9908","-4294957388","","Volume [VolumeName]"" is read-only.""" +"000026B5","9909","-4294957387","","Could not send e-mail." +"000026B6","9910","-4294957386","","The certificate used by the mail server is not a trusted certificate." +"000026B7","9911","-4294957385","","Dynamic field validation failure on the field [FieldName]"".""" +"000026B8","9912","-4294957384","","No column was specified for column [Value1]"" of ""[Value2]"".""" +"000026B9","9913","-4294957383","","Could not connect to e-mail server." +"000026BA","9914","-4294957382","","The name ([NameValue]) needs to be in double quotes because it contains special characters." +"000026BB","9915","-4294957381","","The identifier ([1]) is invalid." +"000026BC","9916","-4294957380","","The width of dynamic field '[1]' needs to be '[2]' to be assigned the specified column." +"000026BD","9917","-4294957379","","'[1]' is an invalid stop word." +"000026BE","9918","-4294957378","","Cutoff operation aborted. Error encountered at '[1]'. Error." +"000026BF","9919","-4294957377","","IDX files for the search catalog '[1]' are in use by another application. Stop that application before altering this search catalog." +"00002710","10000","-4294957296","","The maximum number of repositories has been exceeded, or there has been another error attempting to mount a repository." +"00002711","10001","-4294957295","","Repository name too long." +"00002712","10002","-4294957294","","Repository auto-mount disabled." +"00002713","10003","-4294957293","","Invalid DBMS type." +"00002714","10004","-4294957292","WSAEINTR","A blocking operation was interrupted by a call to WSACancelBlockingCall." +"00002715","10005","-4294957291","","Invalid connection string." +"00002716","10006","-4294957290","","Error reading connection string." +"00002717","10007","-4294957289","","Error reading repository path." +"00002718","10008","-4294957288","","Error reading repository GUID." +"00002719","10009","-4294957287","WSAEBADF","The file handle supplied is not valid." +"0000271A","10010","-4294957286","","Repository registration already exists." +"0000271B","10011","-4294957285","","Error writing to the registry." +"0000271C","10012","-4294957284","","Unrecognized DBMS value." +"0000271D","10013","-4294957283","WSAEACCES","An attempt was made to access a socket in a way forbidden by its access permissions." +"0000271E","10014","-4294957282","WSAEFAULT","The system detected an invalid pointer address in attempting to use a pointer argument in a call." +"0000271F","10015","-4294957281","","The specified DBMS for the repository is not licensed for use with this copy of Laserfiche." +"00002720","10016","-4294957280","","Error reading from the registry." +"00002721","10017","-4294957279","","hit(s) in the electronic document. Hits not shown." +"00002722","10018","-4294957278","","hit(s) in the field." +"00002723","10019","-4294957277","","Hits not shown." +"00002724","10020","-4294957276","","Unable to load this context hit." +"00002726","10022","-4294957274","WSAEINVAL","An invalid argument was supplied." +"00002728","10024","-4294957272","WSAEMFILE","Too many open sockets." +"00002733","10035","-4294957261","WSAEWOULDBLOCK","A non-blocking socket operation could not be completed immediately." +"00002734","10036","-4294957260","WSAEINPROGRESS","A blocking operation is currently executing." +"00002735","10037","-4294957259","WSAEALREADY","An operation was attempted on a non-blocking socket that already had an operation in progress." +"00002736","10038","-4294957258","WSAENOTSOCK","An operation was attempted on something that is not a socket." +"00002737","10039","-4294957257","WSAEDESTADDRREQ","A required address was omitted from an operation on a socket." +"00002738","10040","-4294957256","WSAEMSGSIZE","A message sent on a datagram socket was larger than the internal message buffer or some other network limit - or the buffer used to receive a datagram into was smaller than the datagram itself." +"00002739","10041","-4294957255","WSAEPROTOTYPE","A protocol was specified in the socket function call that does not support the semantics of the socket type requested." +"0000273A","10042","-4294957254","WSAENOPROTOOPT","An unknown - invalid - or unsupported option or level was specified in a getsockopt or setsockopt call." +"0000273B","10043","-4294957253","WSAEPROTONOSUPPORT","The requested protocol has not been configured into the system - or no implementation for it exists." +"0000273C","10044","-4294957252","WSAESOCKTNOSUPPORT","The support for the specified socket type does not exist in this address family." +"0000273D","10045","-4294957251","WSAEOPNOTSUPP","The attempted operation is not supported for the type of object referenced." +"0000273E","10046","-4294957250","WSAEPFNOSUPPORT","The protocol family has not been configured into the system or no implementation for it exists." +"0000273F","10047","-4294957249","WSAEAFNOSUPPORT","An address incompatible with the requested protocol was used." +"00002740","10048","-4294957248","WSAEADDRINUSE","Only one usage of each socket address." +"00002741","10049","-4294957247","WSAEADDRNOTAVAIL","The requested address is not valid in its context." +"00002742","10050","-4294957246","WSAENETDOWN","A socket operation encountered a dead network." +"00002743","10051","-4294957245","WSAENETUNREACH","A socket operation was attempted to an unreachable network." +"00002744","10052","-4294957244","WSAENETRESET","The connection has been broken due to keep-alive activity detecting a failure while the operation was in progress." +"00002745","10053","-4294957243","WSAECONNABORTED","An established connection was aborted by the software in your host machine." +"00002746","10054","-4294957242","WSAECONNRESET","An existing connection was forcibly closed by the remote host." +"00002747","10055","-4294957241","WSAENOBUFS","An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full." +"00002748","10056","-4294957240","WSAEISCONN","A connect request was made on an already connected socket." +"00002749","10057","-4294957239","WSAENOTCONN","A request to send or receive data was disallowed because the socket is not connected and." +"0000274A","10058","-4294957238","WSAESHUTDOWN","A request to send or receive data was disallowed because the socket had already been shut down in that direction with a previous shutdown call." +"0000274B","10059","-4294957237","WSAETOOMANYREFS","Too many references to some kernel object." +"0000274C","10060","-4294957236","WSAETIMEDOUT","A connection attempt failed because the connected party did not properly respond after a period of time - or established connection failed because connected host has failed to respond." +"0000274D","10061","-4294957235","WSAECONNREFUSED","No connection could be made because the target machine actively refused it." +"0000274E","10062","-4294957234","WSAELOOP","Cannot translate name." +"0000274F","10063","-4294957233","WSAENAMETOOLONG","Name component or name was too long." +"00002750","10064","-4294957232","WSAEHOSTDOWN","A socket operation failed because the destination host was down." +"00002751","10065","-4294957231","WSAEHOSTUNREACH","A socket operation was attempted to an unreachable host." +"00002752","10066","-4294957230","WSAENOTEMPTY","Cannot remove a directory that is not empty." +"00002753","10067","-4294957229","WSAEPROCLIM","A Windows Sockets implementation may have a limit on the number of applications that may use it simultaneously." +"00002754","10068","-4294957228","WSAEUSERS","Ran out of quota." +"00002755","10069","-4294957227","WSAEDQUOT","Ran out of disk quota." +"00002756","10070","-4294957226","WSAESTALE","File handle reference is no longer available." +"00002757","10071","-4294957225","WSAEREMOTE","Item is not available locally." +"0000276B","10091","-4294957205","WSASYSNOTREADY","WSAStartup cannot function at this time because the underlying system it uses to provide network services is currently unavailable." +"0000276C","10092","-4294957204","WSAVERNOTSUPPORTED","The Windows Sockets version requested is not supported." +"0000276D","10093","-4294957203","WSANOTINITIALISED","Either the application has not called WSAStartup - or WSAStartup failed." +"00002775","10101","-4294957195","WSAEDISCON","Returned by WSARecv or WSARecvFrom to indicate the remote party has initiated a graceful shutdown sequence." +"00002776","10102","-4294957194","WSAENOMORE","No more results can be returned by WSALookupServiceNext." +"00002777","10103","-4294957193","WSAECANCELLED","A call to WSALookupServiceEnd was made while this call was still processing. The call has been canceled." +"00002778","10104","-4294957192","WSAEINVALIDPROCTABLE","The procedure call table is invalid." +"00002779","10105","-4294957191","WSAEINVALIDPROVIDER","The requested service provider is invalid." +"0000277A","10106","-4294957190","WSAEPROVIDERFAILEDINIT","The requested service provider could not be loaded or initialized." +"0000277B","10107","-4294957189","WSASYSCALLFAILURE","A system call has failed." +"0000277C","10108","-4294957188","WSASERVICE_NOT_FOUND","No such service is known. The service cannot be found in the specified name space." +"0000277D","10109","-4294957187","WSATYPE_NOT_FOUND","The specified class was not found." +"0000277E","10110","-4294957186","WSA_E_NO_MORE","No more results can be returned by WSALookupServiceNext." +"0000277F","10111","-4294957185","WSA_E_CANCELLED","A call to WSALookupServiceEnd was made while this call was still processing. The call has been canceled." +"00002780","10112","-4294957184","WSAEREFUSED","A database query failed because it was actively refused." +"000028A5","10405","-4294956891","NULL","" +"00002ABF","10943","-4294956353","NULL","" +"00002AF9","11001","-4294956295","WSAHOST_NOT_FOUND","No such host is known." +"00002AFA","11002","-4294956294","WSATRY_AGAIN","This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server." +"00002AFB","11003","-4294956293","WSANO_RECOVERY","A non-recoverable error occurred during a database lookup." +"00002AFC","11004","-4294956292","WSANO_DATA","The requested name is valid - but no data of the requested type was found." +"00002AFD","11005","-4294956291","WSA_QOS_RECEIVERS","At least one reserve has arrived." +"00002AFE","11006","-4294956290","WSA_QOS_SENDERS","At least one path has arrived." +"00002AFF","11007","-4294956289","WSA_QOS_NO_SENDERS","There are no senders." +"00002B00","11008","-4294956288","WSA_QOS_NO_RECEIVERS","There are no receivers." +"00002B01","11009","-4294956287","WSA_QOS_REQUEST_CONFIRMED","Reserve has been confirmed." +"00002B02","11010","-4294956286","WSA_QOS_ADMISSION_FAILURE","Error due to lack of resources." +"00002B03","11011","-4294956285","WSA_QOS_POLICY_FAILURE","Rejected for administrative reasons - bad credentials." +"00002B04","11012","-4294956284","WSA_QOS_BAD_STYLE","Unknown or conflicting style." +"00002B05","11013","-4294956283","WSA_QOS_BAD_OBJECT","Problem with some part of the filterspec or providerspecific buffer in general." +"00002B06","11014","-4294956282","WSA_QOS_TRAFFIC_CTRL_ERROR","Problem with some part of the flowspec." +"00002B07","11015","-4294956281","WSA_QOS_GENERIC_ERROR","General QOS error." +"00002B08","11016","-4294956280","WSA_QOS_ESERVICETYPE","An invalid or unrecognized service type was found in the flowspec." +"00002B09","11017","-4294956279","WSA_QOS_EFLOWSPEC","An invalid or inconsistent flowspec was found in the QOS structure." +"00002B0A","11018","-4294956278","WSA_QOS_EPROVSPECBUF","Invalid QOS provider-specific buffer." +"00002B0B","11019","-4294956277","WSA_QOS_EFILTERSTYLE","An invalid QOS filter style was used." +"00002B0C","11020","-4294956276","WSA_QOS_EFILTERTYPE","An invalid QOS filter type was used." +"00002B0D","11021","-4294956275","WSA_QOS_EFILTERCOUNT","An incorrect number of QOS FILTERSPECs were specified in the FLOWDESCRIPTOR." +"00002B0E","11022","-4294956274","WSA_QOS_EOBJLENGTH","An object with an invalid ObjectLength field was specified in the QOS provider-specific buffer." +"00002B0F","11023","-4294956273","WSA_QOS_EFLOWCOUNT","An incorrect number of flow descriptors was specified in the QOS structure." +"00002B10","11024","-4294956272","WSA_QOS_EUNKOWNPSOBJ","An unrecognized object was found in the QOS provider-specific buffer." +"00002B11","11025","-4294956271","WSA_QOS_EPOLICYOBJ","An invalid policy object was found in the QOS provider-specific buffer." +"00002B12","11026","-4294956270","WSA_QOS_EFLOWDESC","An invalid QOS flow descriptor was found in the flow descriptor list." +"00002B13","11027","-4294956269","WSA_QOS_EPSFLOWSPEC","An invalid or inconsistent flowspec was found in the QOS provider specific buffer." +"00002B14","11028","-4294956268","WSA_QOS_EPSFILTERSPEC","An invalid FILTERSPEC was found in the QOS provider-specific buffer." +"00002B15","11029","-4294956267","WSA_QOS_ESDMODEOBJ","An invalid shape discard mode object was found in the QOS provider specific buffer." +"00002B16","11030","-4294956266","WSA_QOS_ESHAPERATEOBJ","An invalid shaping rate object was found in the QOS provider-specific buffer." +"00002B17","11031","-4294956265","WSA_QOS_RESERVED_PETYPE","A reserved policy element was found in the QOS provider-specific buffer." +"00002B18","11032","-4294956264","WSA_SECURE_HOST_NOT_FOUND","No such host is known securely." +"00002B19","11033","-4294956263","WSA_IPSEC_NAME_POLICY_ERROR","Name based IPSEC policy could not be added." +"00002BBE","11198","-4294956098","NULL","" +"00002D49","11593","-4294955703","NULL","" +"00002DA4","11684","-4294955612","NULL","" +"00002DDC","11740","-4294955556","NULL","" +"00002EBD","11965","-4294955331","NULL","" +"00002ED7","11991","-4294955305","NULL","" +"00002EE1","12001","-4294955295","ERROR_INTERNET_OUT_OF_HANDLES","No more handles could be generated at this time." +"00002EE2","12002","-4294955294","ERROR_INTERNET_TIMEOUT","The request has timed out." +"00002EE3","12003","-4294955293","ERROR_INTERNET_EXTENDED_ERROR","An extended error was returned from the server. This is typically a string or buffer containing a verbose error message. Call InternetGetLastResponseInfo to retrieve the error text." +"00002EE4","12004","-4294955292","ERROR_INTERNET_INTERNAL_ERROR","An internal error has occurred." +"00002EE5","12005","-4294955291","ERROR_INTERNET_INVALID_URL","The URL is invalid." +"00002EE6","12006","-4294955290","ERROR_INTERNET_UNRECOGNIZED_SCHEME","The URL scheme could not be recognized - or is not supported." +"00002EE7","12007","-4294955289","ERROR_INTERNET_NAME_NOT_RESOLVED","The server name could not be resolved." +"00002EE8","12008","-4294955288","ERROR_INTERNET_PROTOCOL_NOT_FOUND","The requested protocol could not be located." +"00002EE9","12009","-4294955287","ERROR_INTERNET_INVALID_OPTION","A request to InternetQueryOption or InternetSetOption specified an invalid option value." +"00002EEA","12010","-4294955286","ERROR_INTERNET_BAD_OPTION_LENGTH","The length of an option supplied to InternetQueryOption or InternetSetOption is incorrect for the type of option specified." +"00002EEB","12011","-4294955285","ERROR_INTERNET_OPTION_NOT_SETTABLE","The requested option cannot be set - only queried." +"00002EEC","12012","-4294955284","ERROR_INTERNET_SHUTDOWN","WinINet support is being shut down or unloaded." +"00002EED","12013","-4294955283","ERROR_INTERNET_INCORRECT_USER_NAME","The request to connect and log on to an FTP server could not be completed because the supplied user name is incorrect." +"00002EEE","12014","-4294955282","ERROR_INTERNET_INCORRECT_PASSWORD","The request to connect and log on to an FTP server could not be completed because the supplied password is incorrect." +"00002EEF","12015","-4294955281","ERROR_INTERNET_LOGIN_FAILURE","The request to connect and log on to an FTP server failed." +"00002EF0","12016","-4294955280","ERROR_INTERNET_INVALID_OPERATION","The requested operation is invalid." +"00002EF1","12017","-4294955279","ERROR_INTERNET_OPERATION_CANCELLED","The operation was canceled - usually because the handle on which the request was operating was closed before the operation completed." +"00002EF2","12018","-4294955278","ERROR_INTERNET_INCORRECT_HANDLE_TYPE","The type of handle supplied is incorrect for this operation." +"00002EF3","12019","-4294955277","ERROR_INTERNET_INCORRECT_HANDLE_STATE","The requested operation cannot be carried out because the handle supplied is not in the correct state." +"00002EF4","12020","-4294955276","ERROR_INTERNET_NOT_PROXY_REQUEST","The request cannot be made via a proxy." +"00002EF5","12021","-4294955275","ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND","A required registry value could not be located." +"00002EF6","12022","-4294955274","ERROR_INTERNET_BAD_REGISTRY_PARAMETER","A required registry value was located but is an incorrect type or has an invalid value." +"00002EF7","12023","-4294955273","ERROR_INTERNET_NO_DIRECT_ACCESS","Direct network access cannot be made at this time." +"00002EF8","12024","-4294955272","ERROR_INTERNET_NO_CONTEXT","An asynchronous request could not be made because a zero context value was supplied." +"00002EF9","12025","-4294955271","ERROR_INTERNET_NO_CALLBACK","An asynchronous request could not be made because a callback function has not been set." +"00002EFA","12026","-4294955270","ERROR_INTERNET_REQUEST_PENDING","The required operation could not be completed because one or more requests are pending." +"00002EFB","12027","-4294955269","ERROR_INTERNET_INCORRECT_FORMAT","The format of the request is invalid." +"00002EFC","12028","-4294955268","ERROR_INTERNET_ITEM_NOT_FOUND","The requested item could not be located." +"00002EFD","12029","-4294955267","ERROR_INTERNET_CANNOT_CONNECT","The attempt to connect to the server failed." +"00002EFE","12030","-4294955266","ERROR_INTERNET_CONNECTION_ABORTED","The connection with the server has been terminated." +"00002EFF","12031","-4294955265","ERROR_INTERNET_CONNECTION_RESET","The connection with the server has been reset." +"00002F00","12032","-4294955264","ERROR_INTERNET_FORCE_RETRY","The function needs to redo the request." +"00002F01","12033","-4294955263","ERROR_INTERNET_INVALID_PROXY_REQUEST","The request to the proxy was invalid." +"00002F02","12034","-4294955262","ERROR_INTERNET_NEED_UI","A user interface or other blocking operation has been requested." +"00002F04","12036","-4294955260","ERROR_INTERNET_HANDLE_EXISTS","The request failed because the handle already exists." +"00002F05","12037","-4294955259","ERROR_INTERNET_SEC_CERT_DATE_INVALID","SSL certificate date that was received from the server is bad. The certificate is expired." +"00002F06","12038","-4294955258","ERROR_INTERNET_SEC_CERT_CN_INVALID","SSL certificate common name (host name field) is incorrect for example - if you entered www.server.com and the common name on the certificate says www.different.com." +"00002F07","12039","-4294955257","ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR","The application is moving from a non-SSL to an SSL connection because of a redirect." +"00002F08","12040","-4294955256","ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR","The application is moving from an SSL to an non-SSL connection because of a redirect." +"00002F09","12041","-4294955255","ERROR_INTERNET_MIXED_SECURITY","The content is not entirely secure. Some of the content being viewed may have come from unsecured servers." +"00002F0A","12042","-4294955254","ERROR_INTERNET_CHG_POST_IS_NON_SECURE","The application is posting and attempting to change multiple lines of text on a server that is not secure." +"00002F0B","12043","-4294955253","ERROR_INTERNET_POST_IS_NON_SECURE","The application is posting data to a server that is not secure." +"00002F0C","12044","-4294955252","ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED","The server is requesting client authentication." +"00002F0D","12045","-4294955251","ERROR_INTERNET_INVALID_CA","The function is unfamiliar with the Certificate Authority that generated the server's certificate." +"00002F0E","12046","-4294955250","ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP","Client authorization is not set up on this computer." +"00002F0F","12047","-4294955249","ERROR_INTERNET_ASYNC_THREAD_FAILED","The application could not start an asynchronous thread." +"00002F10","12048","-4294955248","ERROR_INTERNET_REDIRECT_SCHEME_CHANGE","The function could not handle the redirection - because the scheme changed (for example - HTTP to FTP)." +"00002F11","12049","-4294955247","ERROR_INTERNET_DIALOG_PENDING","Another thread has a password dialog box in progress." +"00002F12","12050","-4294955246","ERROR_INTERNET_RETRY_DIALOG","The dialog box should be retried." +"00002F14","12052","-4294955244","ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR","The data being submitted to an SSL connection is being redirected to a non-SSL connection." +"00002F15","12053","-4294955243","ERROR_INTERNET_INSERT_CDROM","The request requires a CD-ROM to be inserted in the CD-ROM drive to locate the resource requested." +"00002F16","12054","-4294955242","ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED","The requested resource requires Fortezza authentication." +"00002F17","12055","-4294955241","ERROR_INTERNET_SEC_CERT_ERRORS","The SSL certificate contains errors." +"00002F18","12056","-4294955240","ERROR_INTERNET_SEC_CERT_NO_REV","The SSL certificate was not revoked." +"00002F19","12057","-4294955239","ERROR_INTERNET_SEC_CERT_REV_FAILED","Revocation of the SSL certificate failed." +"00002F44","12100","-4294955196","ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN","Returned by the HttpRequest object if a requested operation cannot be performed before calling the Open method." +"00002F45","12101","-4294955195","ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND","Returned by the HttpRequest object if a requested operation cannot be performed before calling the Send method." +"00002F46","12102","-4294955194","ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND","Returned by the HttpRequest object if a requested operation cannot be performed after calling the Send method." +"00002F47","12103","-4294955193","ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN","Returned by the HttpRequest object if a specified option cannot be requested after the Open method has been called." +"00002F4E","12110","-4294955186","ERROR_FTP_TRANSFER_IN_PROGRESS","The requested operation cannot be made on the FTP session handle because an operation is already in progress." +"00002F4F","12111","-4294955185","ERROR_FTP_DROPPED","The FTP operation was not completed because the session was aborted." +"00002F50","12112","-4294955184","ERROR_FTP_NO_PASSIVE_MODE","Passive mode is not available on the server." +"00002F62","12130","-4294955166","ERROR_GOPHER_PROTOCOL_ERROR","An error was detected while parsing data returned from the Gopher server." +"00002F63","12131","-4294955165","ERROR_GOPHER_NOT_FILE","The request must be made for a file locator." +"00002F64","12132","-4294955164","ERROR_GOPHER_DATA_ERROR","An error was detected while receiving data from the Gopher server." +"00002F65","12133","-4294955163","ERROR_GOPHER_END_OF_DATA","The end of the data has been reached." +"00002F66","12134","-4294955162","ERROR_GOPHER_INVALID_LOCATOR","The supplied locator is not valid." +"00002F67","12135","-4294955161","ERROR_GOPHER_INCORRECT_LOCATOR_TYPE","The type of the locator is not correct for this operation." +"00002F68","12136","-4294955160","ERROR_GOPHER_NOT_GOPHER_PLUS","The requested operation can be made only against a Gopher+ server - or with a locator that specifies a Gopher+ operation." +"00002F69","12137","-4294955159","ERROR_GOPHER_ATTRIBUTE_NOT_FOUND","The requested attribute could not be located." +"00002F6A","12138","-4294955158","ERROR_GOPHER_UNKNOWN_LOCATOR","The locator type is unknown." +"00002F76","12150","-4294955146","ERROR_HTTP_HEADER_NOT_FOUND","The requested header could not be located." +"00002F77","12151","-4294955145","ERROR_HTTP_DOWNLEVEL_SERVER","The server did not return any headers." +"00002F78","12152","-4294955144","ERROR_HTTP_INVALID_SERVER_RESPONSE","The server response could not be parsed." +"00002F79","12153","-4294955143","ERROR_HTTP_INVALID_HEADER","The supplied header is invalid." +"00002F7A","12154","-4294955142","ERROR_HTTP_INVALID_QUERY_REQUEST","The request made to HttpQueryInfo is invalid." +"00002F7B","12155","-4294955141","ERROR_HTTP_HEADER_ALREADY_EXISTS","The header could not be added because it already exists." +"00002F7C","12156","-4294955140","ERROR_HTTP_REDIRECT_FAILED","The redirection failed because either the scheme changed (for example - HTTP to FTP) or all attempts made to redirect failed (default is five attempts)." +"00002F7D","12157","-4294955139","ERROR_INTERNET_SECURITY_CHANNEL_ERROR","The application experienced an internal error loading the SSL libraries." +"00002F7E","12158","-4294955138","ERROR_INTERNET_UNABLE_TO_CACHE_FILE","The function was unable to cache the file." +"00002F7F","12159","-4294955137","ERROR_INTERNET_TCPIP_NOT_INSTALLED","The required protocol stack is not loaded and the application cannot start WinSock." +"00002F80","12160","-4294955136","ERROR_HTTP_NOT_REDIRECTED","The HTTP request was not redirected." +"00002F81","12161","-4294955135","ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION","The HTTP cookie requires confirmation." +"00002F82","12162","-4294955134","ERROR_HTTP_COOKIE_DECLINED","The HTTP cookie was declined by the server." +"00002F83","12163","-4294955133","ERROR_INTERNET_DISCONNECTED","The Internet connection has been lost." +"00002F84","12164","-4294955132","ERROR_INTERNET_SERVER_UNREACHABLE","The website or server indicated is unreachable." +"00002F85","12165","-4294955131","ERROR_INTERNET_PROXY_SERVER_UNREACHABLE","The designated proxy server cannot be reached." +"00002F86","12166","-4294955130","ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT","There was an error in the automatic proxy configuration script." +"00002F87","12167","-4294955129","ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT","The automatic proxy configuration script could not be downloaded. The INTERNET_FLAG_MUST_CACHE_REQUEST flag was set." +"00002F88","12168","-4294955128","ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION","The redirection requires user confirmation." +"00002F89","12169","-4294955127","ERROR_INTERNET_SEC_INVALID_CERT","The SSL certificate is invalid." +"00002F8A","12170","-4294955126","ERROR_INTERNET_SEC_CERT_REVOKED","The SSL certificate was revoked." +"00002F8B","12171","-4294955125","ERROR_INTERNET_FAILED_DUETOSECURITYCHECK","The function failed due to a security check." +"00002F8C","12172","-4294955124","ERROR_INTERNET_NOT_INITIALIZED","Initialization of the WinINet API has not occurred. Indicates that a higher-level function - such as InternetOpen - has not been called yet." +"00002F8D","12173","-4294955123","ERROR_INTERNET_NEED_MSN_SSPI_PKG","Not currently implemented." +"00002F8E","12174","-4294955122","ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY","The MS-Logoff digest header has been returned from the website. This header specifically instructs the digest package to purge credentials for the associated realm. This error will only be returned if INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY option has been set; otherwise - ERROR_INTERNET_LOGIN_FAILURE is returned." +"00002F8F","12175","-4294955121","ERROR_INTERNET_DECODING_FAILED","WinINet failed to perform content decoding on the response. For more information - see the Content Encoding topic." +"00002F90","12176","-4294955120","ERROR_WINHTTP_UNHANDLED_SCRIPT_TYPE","The script type is not supported." +"00002F91","12177","-4294955119","ERROR_WINHTTP_SCRIPT_EXECUTION_ERROR","An error was encountered while executing a script." +"00002F92","12178","-4294955118","ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR","Returned by WinHttpGetProxyForUrl when a proxy for the specified URL cannot be located." +"00002F93","12179","-4294955117","ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE","Indicates that a certificate is not valid for the requested usage (equivalent to CERT_E_WRONG_USAGE)." +"00002F94","12180","-4294955116","ERROR_WINHTTP_AUTODETECTION_FAILED","Returned by WinHttpDetectAutoProxyConfigUrl if WinHTTP was unable to discover the URL of the Proxy Auto-Configuration (PAC) file." +"00002F95","12181","-4294955115","ERROR_WINHTTP_HEADER_COUNT_EXCEEDED","Returned by WinHttpReceiveResponse when a larger number of headers were present in a response than WinHTTP could receive." +"00002F96","12182","-4294955114","ERROR_WINHTTP_HEADER_SIZE_OVERFLOW","Returned by WinHttpReceiveResponse when the size of headers received exceeds the limit for the request handle." +"00002F97","12183","-4294955113","ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW","Returned by WinHttpReceiveResponse when an overflow condition is encountered in the course of parsing chunked encoding." +"00002F98","12184","-4294955112","ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW","Returned when an incoming response exceeds an internal WinHTTP size limit." +"000032C8","13000","-4294954296","ERROR_IPSEC_QM_POLICY_EXISTS","The specified quick mode policy already exists." +"000032C9","13001","-4294954295","ERROR_IPSEC_QM_POLICY_NOT_FOUND","The specified quick mode policy was not found." +"000032CA","13002","-4294954294","ERROR_IPSEC_QM_POLICY_IN_USE","The specified quick mode policy is being used." +"000032CB","13003","-4294954293","ERROR_IPSEC_MM_POLICY_EXISTS","The specified main mode policy already exists." +"000032CC","13004","-4294954292","ERROR_IPSEC_MM_POLICY_NOT_FOUND","The specified main mode policy was not found." +"000032CD","13005","-4294954291","ERROR_IPSEC_MM_POLICY_IN_USE","The specified main mode policy is being used." +"000032CE","13006","-4294954290","ERROR_IPSEC_MM_FILTER_EXISTS","The specified main mode filter already exists." +"000032CF","13007","-4294954289","ERROR_IPSEC_MM_FILTER_NOT_FOUND","The specified main mode filter was not found." +"000032D0","13008","-4294954288","ERROR_IPSEC_TRANSPORT_FILTER_EXISTS","The specified transport mode filter already exists." +"000032D1","13009","-4294954287","ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND","The specified transport mode filter does not exist." +"000032D2","13010","-4294954286","ERROR_IPSEC_MM_AUTH_EXISTS","The specified main mode authentication list exists." +"000032D3","13011","-4294954285","ERROR_IPSEC_MM_AUTH_NOT_FOUND","The specified main mode authentication list was not found." +"000032D4","13012","-4294954284","ERROR_IPSEC_MM_AUTH_IN_USE","The specified main mode authentication list is being used." +"000032D5","13013","-4294954283","ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND","The specified default main mode policy was not found." +"000032D6","13014","-4294954282","ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND","The specified default main mode authentication list was not found." +"000032D7","13015","-4294954281","ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND","The specified default quick mode policy was not found." +"000032D8","13016","-4294954280","ERROR_IPSEC_TUNNEL_FILTER_EXISTS","The specified tunnel mode filter exists." +"000032D9","13017","-4294954279","ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND","The specified tunnel mode filter was not found." +"000032DA","13018","-4294954278","ERROR_IPSEC_MM_FILTER_PENDING_DELETION","The Main Mode filter is pending deletion." +"000032DB","13019","-4294954277","ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION","The transport filter is pending deletion." +"000032DC","13020","-4294954276","ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION","The tunnel filter is pending deletion." +"000032DD","13021","-4294954275","ERROR_IPSEC_MM_POLICY_PENDING_DELETION","The Main Mode policy is pending deletion." +"000032DE","13022","-4294954274","ERROR_IPSEC_MM_AUTH_PENDING_DELETION","The Main Mode authentication bundle is pending deletion." +"000032DF","13023","-4294954273","ERROR_IPSEC_QM_POLICY_PENDING_DELETION","The Quick Mode policy is pending deletion." +"000032E0","13024","-4294954272","WARNING_IPSEC_MM_POLICY_PRUNED","The Main Mode policy was successfully added - but some of the requested offers are not supported." +"000032E1","13025","-4294954271","WARNING_IPSEC_QM_POLICY_PRUNED","The Quick Mode policy was successfully added - but some of the requested offers are not supported." +"000035DD","13789","-4294953507","NULL","" +"000035E8","13800","-4294953496","ERROR_IPSEC_IKE_NEG_STATUS_BEGIN","ERROR_IPSEC_IKE_NEG_STATUS_BEGIN." +"000035EA","13802","-4294953494","ERROR_IPSEC_IKE_ATTRIB_FAIL","IKE security attributes are unacceptable." +"000035EB","13803","-4294953493","ERROR_IPSEC_IKE_NEGOTIATION_PENDING","IKE Negotiation in progress." +"000035EC","13804","-4294953492","ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR","General processing error." +"000035ED","13805","-4294953491","ERROR_IPSEC_IKE_TIMED_OUT","Negotiation timed out." +"000035EE","13806","-4294953490","ERROR_IPSEC_IKE_NO_CERT","IKE failed to find valid machine certificate. Contact your Network Security Administrator about installing a valid certificate in the appropriate Certificate Store." +"000035EF","13807","-4294953489","ERROR_IPSEC_IKE_SA_DELETED","IKE SA deleted by peer before establishment completed." +"000035F0","13808","-4294953488","ERROR_IPSEC_IKE_SA_REAPED","IKE SA deleted before establishment completed." +"000035F1","13809","-4294953487","ERROR_IPSEC_IKE_MM_ACQUIRE_DROP","Negotiation request sat in Queue too long." +"000035F2","13810","-4294953486","ERROR_IPSEC_IKE_QM_ACQUIRE_DROP","Negotiation request sat in Queue too long." +"000035F3","13811","-4294953485","ERROR_IPSEC_IKE_QUEUE_DROP_MM","Negotiation request sat in Queue too long." +"000035F4","13812","-4294953484","ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM","Negotiation request sat in Queue too long." +"000035F5","13813","-4294953483","ERROR_IPSEC_IKE_DROP_NO_RESPONSE","No response from peer." +"000035F6","13814","-4294953482","ERROR_IPSEC_IKE_MM_DELAY_DROP","Negotiation took too long." +"000035F7","13815","-4294953481","ERROR_IPSEC_IKE_QM_DELAY_DROP","Negotiation took too long." +"000035F8","13816","-4294953480","ERROR_IPSEC_IKE_ERROR","Unknown error occurred." +"000035F9","13817","-4294953479","ERROR_IPSEC_IKE_CRL_FAILED","Certificate Revocation Check failed." +"000035FA","13818","-4294953478","ERROR_IPSEC_IKE_INVALID_KEY_USAGE","Invalid certificate key usage." +"000035FB","13819","-4294953477","ERROR_IPSEC_IKE_INVALID_CERT_TYPE","Invalid certificate type." +"000035FC","13820","-4294953476","ERROR_IPSEC_IKE_NO_PRIVATE_KEY","IKE negotiation failed because the machine certificate used does not have a private key. IPsec certificates require a private key. Contact your Network Security administrator about replacing with a certificate that has a private key." +"000035FD","13821","-4294953475","ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY","Simultaneous rekeys were detected." +"000035FE","13822","-4294953474","ERROR_IPSEC_IKE_DH_FAIL","Failure in Diffie-Hellman computation." +"000035FF","13823","-4294953473","ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED","Don't know how to process critical payload." +"00003600","13824","-4294953472","ERROR_IPSEC_IKE_INVALID_HEADER","Invalid header." +"00003601","13825","-4294953471","ERROR_IPSEC_IKE_NO_POLICY","No policy configured." +"00003602","13826","-4294953470","ERROR_IPSEC_IKE_INVALID_SIGNATURE","Failed to verify signature." +"00003603","13827","-4294953469","ERROR_IPSEC_IKE_KERBEROS_ERROR","Failed to authenticate using Kerberos." +"00003604","13828","-4294953468","ERROR_IPSEC_IKE_NO_PUBLIC_KEY","Peer's certificate did not have a public key." +"00003605","13829","-4294953467","ERROR_IPSEC_IKE_PROCESS_ERR","Error processing error payload." +"00003606","13830","-4294953466","ERROR_IPSEC_IKE_PROCESS_ERR_SA","Error processing SA payload." +"00003607","13831","-4294953465","ERROR_IPSEC_IKE_PROCESS_ERR_PROP","Error processing Proposal payload." +"00003608","13832","-4294953464","ERROR_IPSEC_IKE_PROCESS_ERR_TRANS","Error processing Transform payload." +"00003609","13833","-4294953463","ERROR_IPSEC_IKE_PROCESS_ERR_KE","Error processing KE payload." +"0000360A","13834","-4294953462","ERROR_IPSEC_IKE_PROCESS_ERR_ID","Error processing ID payload." +"0000360B","13835","-4294953461","ERROR_IPSEC_IKE_PROCESS_ERR_CERT","Error processing Cert payload." +"0000360C","13836","-4294953460","ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ","Error processing Certificate Request payload." +"0000360D","13837","-4294953459","ERROR_IPSEC_IKE_PROCESS_ERR_HASH","Error processing Hash payload." +"0000360E","13838","-4294953458","ERROR_IPSEC_IKE_PROCESS_ERR_SIG","Error processing Signature payload." +"0000360F","13839","-4294953457","ERROR_IPSEC_IKE_PROCESS_ERR_NONCE","Error processing Nonce payload." +"00003610","13840","-4294953456","ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY","Error processing Notify payload." +"00003611","13841","-4294953455","ERROR_IPSEC_IKE_PROCESS_ERR_DELETE","Error processing Delete Payload." +"00003612","13842","-4294953454","ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR","Error processing VendorId payload." +"00003613","13843","-4294953453","ERROR_IPSEC_IKE_INVALID_PAYLOAD","Invalid payload received." +"00003614","13844","-4294953452","ERROR_IPSEC_IKE_LOAD_SOFT_SA","Soft SA loaded." +"00003615","13845","-4294953451","ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN","Soft SA torn down." +"00003616","13846","-4294953450","ERROR_IPSEC_IKE_INVALID_COOKIE","Invalid cookie received." +"00003617","13847","-4294953449","ERROR_IPSEC_IKE_NO_PEER_CERT","Peer failed to send valid machine certificate." +"00003618","13848","-4294953448","ERROR_IPSEC_IKE_PEER_CRL_FAILED","Certification Revocation check of peer's certificate failed." +"00003619","13849","-4294953447","ERROR_IPSEC_IKE_POLICY_CHANGE","New policy invalidated SAs formed with old policy." +"0000361A","13850","-4294953446","ERROR_IPSEC_IKE_NO_MM_POLICY","There is no available Main Mode IKE policy." +"0000361B","13851","-4294953445","ERROR_IPSEC_IKE_NOTCBPRIV","Failed to enabled TCB privilege." +"0000361C","13852","-4294953444","ERROR_IPSEC_IKE_SECLOADFAIL","Failed to load SECURITY.DLL." +"0000361D","13853","-4294953443","ERROR_IPSEC_IKE_FAILSSPINIT","Failed to obtain security function table dispatch address from SSPI." +"0000361E","13854","-4294953442","ERROR_IPSEC_IKE_FAILQUERYSSP","Failed to query Kerberos package to obtain max token size." +"0000361F","13855","-4294953441","ERROR_IPSEC_IKE_SRVACQFAIL","Failed to obtain Kerberos server credentials for ISAKMP/ERROR_IPSEC_IKE service. Kerberos authentication will not function. The most likely reason for this is lack of domain membership. This is normal if your computer is a member of a workgroup." +"00003620","13856","-4294953440","ERROR_IPSEC_IKE_SRVQUERYCRED","Failed to determine SSPI principal name for ISAKMP/ERROR_IPSEC_IKE service." +"00003621","13857","-4294953439","ERROR_IPSEC_IKE_GETSPIFAIL","Failed to obtain new SPI for the inbound SA from IPsec driver. The most common cause for this is that the driver does not have the correct filter. Check your policy to verify the filters." +"00003622","13858","-4294953438","ERROR_IPSEC_IKE_INVALID_FILTER","Given filter is invalid." +"00003623","13859","-4294953437","ERROR_IPSEC_IKE_OUT_OF_MEMORY","Memory allocation failed." +"00003624","13860","-4294953436","ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED","Failed to add Security Association to IPsec Driver. The most common cause for this is if the IKE negotiation took too long to complete. If the problem persists - reduce the load on the faulting machine." +"00003625","13861","-4294953435","ERROR_IPSEC_IKE_INVALID_POLICY","Invalid policy." +"00003626","13862","-4294953434","ERROR_IPSEC_IKE_UNKNOWN_DOI","Invalid DOI." +"00003627","13863","-4294953433","ERROR_IPSEC_IKE_INVALID_SITUATION","Invalid situation." +"00003628","13864","-4294953432","ERROR_IPSEC_IKE_DH_FAILURE","Diffie-Hellman failure." +"00003629","13865","-4294953431","ERROR_IPSEC_IKE_INVALID_GROUP","Invalid Diffie-Hellman group." +"0000362A","13866","-4294953430","ERROR_IPSEC_IKE_ENCRYPT","Error encrypting payload." +"0000362B","13867","-4294953429","ERROR_IPSEC_IKE_DECRYPT","Error decrypting payload." +"0000362C","13868","-4294953428","ERROR_IPSEC_IKE_POLICY_MATCH","Policy match error." +"0000362D","13869","-4294953427","ERROR_IPSEC_IKE_UNSUPPORTED_ID","Unsupported ID." +"0000362E","13870","-4294953426","ERROR_IPSEC_IKE_INVALID_HASH","Hash verification failed." +"0000362F","13871","-4294953425","ERROR_IPSEC_IKE_INVALID_HASH_ALG","Invalid hash algorithm." +"00003630","13872","-4294953424","ERROR_IPSEC_IKE_INVALID_HASH_SIZE","Invalid hash size." +"00003631","13873","-4294953423","ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG","Invalid encryption algorithm." +"00003632","13874","-4294953422","ERROR_IPSEC_IKE_INVALID_AUTH_ALG","Invalid authentication algorithm." +"00003633","13875","-4294953421","ERROR_IPSEC_IKE_INVALID_SIG","Invalid certificate signature." +"00003634","13876","-4294953420","ERROR_IPSEC_IKE_LOAD_FAILED","Load failed." +"00003635","13877","-4294953419","ERROR_IPSEC_IKE_RPC_DELETE","Deleted via RPC call." +"00003636","13878","-4294953418","ERROR_IPSEC_IKE_BENIGN_REINIT","Temporary state created to perform reinitialization. This is not a real failure." +"00003637","13879","-4294953417","ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY","The lifetime value received in the Responder Lifetime Notify is below the Windows 2000 configured minimum value. Please fix the policy on the peer machine." +"00003638","13880","-4294953416","ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION","The recipient cannot handle version of IKE specified in the header." +"00003639","13881","-4294953415","ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN","Key length in certificate is too small for configured security requirements." +"0000363A","13882","-4294953414","ERROR_IPSEC_IKE_MM_LIMIT","Max number of established MM SAs to peer exceeded." +"0000363B","13883","-4294953413","ERROR_IPSEC_IKE_NEGOTIATION_DISABLED","IKE received a policy that disables negotiation." +"0000363C","13884","-4294953412","ERROR_IPSEC_IKE_QM_LIMIT","Reached maximum quick mode limit for the main mode. New main mode will be started." +"0000363D","13885","-4294953411","ERROR_IPSEC_IKE_MM_EXPIRED","Main mode SA lifetime expired or peer sent a main mode delete." +"0000363E","13886","-4294953410","ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID","Main mode SA assumed to be invalid because peer stopped responding." +"0000363F","13887","-4294953409","ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH","Certificate doesn't chain to a trusted root in IPsec policy." +"00003640","13888","-4294953408","ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID","Received unexpected message ID." +"00003641","13889","-4294953407","ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD","Received invalid authentication offers." +"00003642","13890","-4294953406","ERROR_IPSEC_IKE_DOS_COOKIE_SENT","Sent DoS cookie notify to initiator." +"00003643","13891","-4294953405","ERROR_IPSEC_IKE_SHUTTING_DOWN","IKE service is shutting down." +"00003644","13892","-4294953404","ERROR_IPSEC_IKE_CGA_AUTH_FAILED","Could not verify binding between CGA address and certificate." +"00003645","13893","-4294953403","ERROR_IPSEC_IKE_PROCESS_ERR_NATOA","Error processing NatOA payload." +"00003646","13894","-4294953402","ERROR_IPSEC_IKE_INVALID_MM_FOR_QM","Parameters of the main mode are invalid for this quick mode." +"00003647","13895","-4294953401","ERROR_IPSEC_IKE_QM_EXPIRED","Quick mode SA was expired by IPsec driver." +"00003648","13896","-4294953400","ERROR_IPSEC_IKE_TOO_MANY_FILTERS","Too many dynamically added IKEEXT filters were detected." +"00003649","13897","-4294953399","ERROR_IPSEC_IKE_NEG_STATUS_END","ERROR_IPSEC_IKE_NEG_STATUS_END." +"0000364B","13899","-4294953397","ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE","Error in assigning inner IP address to initiator in tunnel mode." +"0000364C","13900","-4294953396","ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING","Require configuration payload missing." +"0000364D","13901","-4294953395","ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING","A negotiation running as the security principle who issued the connection is in progress." +"0000364E","13902","-4294953394","ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS","SA was deleted due to IKEv1/AuthIP co-existence suppress check." +"0000364F","13903","-4294953393","ERROR_IPSEC_IKE_RATELIMIT_DROP","Incoming SA request was dropped due to peer IP address rate limiting." +"00003650","13904","-4294953392","ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE","Peer does not support MOBIKE." +"00003651","13905","-4294953391","ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE","SA establishment is not authorized." +"00003652","13906","-4294953390","ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE","SA establishment is not authorized because there is not a sufficiently strong PKINIT-based credential." +"00003653","13907","-4294953389","ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY","SA establishment is not authorized. You may need to enter updated or different credentials such as a smartcard." +"00003654","13908","-4294953388","ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE","SA establishment is not authorized because there is not a sufficiently strong PKINIT-based credential. This might be related to certificate-to-account mapping failure for the SA." +"00003655","13909","-4294953387","ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END","ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END." +"00003657","13911","-4294953385","ERROR_IPSEC_SA_LIFETIME_EXPIRED","Packet was received on an IPsec SA whose lifetime has expired." +"00003658","13912","-4294953384","ERROR_IPSEC_WRONG_SA","Packet was received on an IPsec SA that does not match the packet characteristics." +"00003659","13913","-4294953383","ERROR_IPSEC_REPLAY_CHECK_FAILED","Packet sequence number replay check failed." +"0000365A","13914","-4294953382","ERROR_IPSEC_INVALID_PACKET","IPsec header and/or trailer in the packet is invalid." +"0000365B","13915","-4294953381","ERROR_IPSEC_INTEGRITY_CHECK_FAILED","IPsec integrity check failed." +"0000365C","13916","-4294953380","ERROR_IPSEC_CLEAR_TEXT_DROP","IPsec dropped a clear text packet." +"0000365D","13917","-4294953379","ERROR_IPSEC_AUTH_FIREWALL_DROP","IPsec dropped an incoming ESP packet in authenticated firewall mode. This drop is benign." +"0000365E","13918","-4294953378","ERROR_IPSEC_THROTTLE_DROP","IPsec dropped a packet due to DoS throttling." +"00003665","13925","-4294953371","ERROR_IPSEC_DOSP_BLOCK","IPsec DoS Protection matched an explicit block rule." +"00003666","13926","-4294953370","ERROR_IPSEC_DOSP_RECEIVED_MULTICAST","IPsec DoS Protection received an IPsec specific multicast packet which is not allowed." +"00003667","13927","-4294953369","ERROR_IPSEC_DOSP_INVALID_PACKET","IPsec DoS Protection received an incorrectly formatted packet." +"00003668","13928","-4294953368","ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED","IPsec DoS Protection failed to look up state." +"00003669","13929","-4294953367","ERROR_IPSEC_DOSP_MAX_ENTRIES","IPsec DoS Protection failed to create state because the maximum number of entries allowed by policy has been reached." +"0000366A","13930","-4294953366","ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED","IPsec DoS Protection received an IPsec negotiation packet for a keying module which is not allowed by policy." +"0000366B","13931","-4294953365","ERROR_IPSEC_DOSP_NOT_INSTALLED","IPsec DoS Protection has not been enabled." +"0000366C","13932","-4294953364","ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES","IPsec DoS Protection failed to create a per internal IP rate limit queue because the maximum number of queues allowed by policy has been reached." +"000036B0","14000","-4294953296","ERROR_SXS_SECTION_NOT_FOUND","The requested section was not present in the activation context." +"000036B1","14001","-4294953295","ERROR_SXS_CANT_GEN_ACTCTX","The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail." +"000036B2","14002","-4294953294","ERROR_SXS_INVALID_ACTCTXDATA_FORMAT","The application binding data format is invalid." +"000036B3","14003","-4294953293","ERROR_SXS_ASSEMBLY_NOT_FOUND","The referenced assembly is not installed on your system." +"000036B4","14004","-4294953292","ERROR_SXS_MANIFEST_FORMAT_ERROR","The manifest file does not begin with the required tag and format information." +"000036B5","14005","-4294953291","ERROR_SXS_MANIFEST_PARSE_ERROR","The manifest file contains one or more syntax errors." +"000036B6","14006","-4294953290","ERROR_SXS_ACTIVATION_CONTEXT_DISABLED","The application attempted to activate a disabled activation context." +"000036B7","14007","-4294953289","ERROR_SXS_KEY_NOT_FOUND","The requested lookup key was not found in any active activation context." +"000036B8","14008","-4294953288","ERROR_SXS_VERSION_CONFLICT","A component version required by the application conflicts with another component version already active." +"000036B9","14009","-4294953287","ERROR_SXS_WRONG_SECTION_TYPE","The type requested activation context section does not match the query API used." +"000036BA","14010","-4294953286","ERROR_SXS_THREAD_QUERIES_DISABLED","Lack of system resources has required isolated activation to be disabled for the current thread of execution." +"000036BB","14011","-4294953285","ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET","An attempt to set the process default activation context failed because the process default activation context was already set." +"000036BC","14012","-4294953284","ERROR_SXS_UNKNOWN_ENCODING_GROUP","The encoding group identifier specified is not recognized." +"000036BD","14013","-4294953283","ERROR_SXS_UNKNOWN_ENCODING","The encoding requested is not recognized." +"000036BE","14014","-4294953282","ERROR_SXS_INVALID_XML_NAMESPACE_URI","The manifest contains a reference to an invalid URI." +"000036BF","14015","-4294953281","ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED","The application manifest contains a reference to a dependent assembly which is not installed." +"000036C0","14016","-4294953280","ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED","The manifest for an assembly used by the application has a reference to a dependent assembly which is not installed." +"000036C1","14017","-4294953279","ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE","The manifest contains an attribute for the assembly identity which is not valid." +"000036C2","14018","-4294953278","ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE","The manifest is missing the required default namespace specification on the assembly element." +"000036C3","14019","-4294953277","ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE","The manifest has a default namespace specified on the assembly element but its value is not ""urn:schemas-microsoft-com:asm.v1""." +"000036C4","14020","-4294953276","ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT","The private manifest probed has crossed a path with an unsupported reparse point." +"000036C5","14021","-4294953275","ERROR_SXS_DUPLICATE_DLL_NAME","Two or more components referenced directly or indirectly by the application manifest have files by the same name." +"000036C6","14022","-4294953274","ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME","Two or more components referenced directly or indirectly by the application manifest have window classes with the same name." +"000036C7","14023","-4294953273","ERROR_SXS_DUPLICATE_CLSID","Two or more components referenced directly or indirectly by the application manifest have the same COM server CLSIDs." +"000036C8","14024","-4294953272","ERROR_SXS_DUPLICATE_IID","Two or more components referenced directly or indirectly by the application manifest have proxies for the same COM interface IIDs." +"000036C9","14025","-4294953271","ERROR_SXS_DUPLICATE_TLBID","Two or more components referenced directly or indirectly by the application manifest have the same COM type library TLBIDs." +"000036CA","14026","-4294953270","ERROR_SXS_DUPLICATE_PROGID","Two or more components referenced directly or indirectly by the application manifest have the same COM ProgIDs." +"000036CB","14027","-4294953269","ERROR_SXS_DUPLICATE_ASSEMBLY_NAME","Two or more components referenced directly or indirectly by the application manifest are different versions of the same component which is not permitted." +"000036CC","14028","-4294953268","ERROR_SXS_FILE_HASH_MISMATCH","A component's file does not match the verification information present in the component manifest." +"000036CD","14029","-4294953267","ERROR_SXS_POLICY_PARSE_ERROR","The policy manifest contains one or more syntax errors." +"000036CE","14030","-4294953266","ERROR_SXS_XML_E_MISSINGQUOTE","Manifest Parse Error : A string literal was expected - but no opening quote character was found." +"000036CF","14031","-4294953265","ERROR_SXS_XML_E_COMMENTSYNTAX","Manifest Parse Error : Incorrect syntax was used in a comment." +"000036D0","14032","-4294953264","ERROR_SXS_XML_E_BADSTARTNAMECHAR","Manifest Parse Error : A name was started with an invalid character." +"000036D1","14033","-4294953263","ERROR_SXS_XML_E_BADNAMECHAR","Manifest Parse Error : A name contained an invalid character." +"000036D2","14034","-4294953262","ERROR_SXS_XML_E_BADCHARINSTRING","Manifest Parse Error : A string literal contained an invalid character." +"000036D3","14035","-4294953261","ERROR_SXS_XML_E_XMLDECLSYNTAX","Manifest Parse Error : Invalid syntax for an xml declaration." +"000036D4","14036","-4294953260","ERROR_SXS_XML_E_BADCHARDATA","Manifest Parse Error : An Invalid character was found in text content." +"000036D5","14037","-4294953259","ERROR_SXS_XML_E_MISSINGWHITESPACE","Manifest Parse Error : Required white space was missing." +"000036D6","14038","-4294953258","ERROR_SXS_XML_E_EXPECTINGTAGEND","Manifest Parse Error : The character '>' was expected." +"000036D7","14039","-4294953257","ERROR_SXS_XML_E_MISSINGSEMICOLON","Manifest Parse Error : A semi colon character was expected." +"000036D8","14040","-4294953256","ERROR_SXS_XML_E_UNBALANCEDPAREN","Manifest Parse Error : Unbalanced parentheses." +"000036D9","14041","-4294953255","ERROR_SXS_XML_E_INTERNALERROR","Manifest Parse Error : Internal error." +"000036DA","14042","-4294953254","ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE","Manifest Parse Error : Whitespace is not allowed at this location." +"000036DB","14043","-4294953253","ERROR_SXS_XML_E_INCOMPLETE_ENCODING","Manifest Parse Error : End of file reached in invalid state for current encoding." +"000036DC","14044","-4294953252","ERROR_SXS_XML_E_MISSING_PAREN","Manifest Parse Error : Missing parenthesis." +"000036DD","14045","-4294953251","ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE","Manifest Parse Error : A single or double closing quote character." +"000036DE","14046","-4294953250","ERROR_SXS_XML_E_MULTIPLE_COLONS","Manifest Parse Error : Multiple colons are not allowed in a name." +"000036DF","14047","-4294953249","ERROR_SXS_XML_E_INVALID_DECIMAL","Manifest Parse Error : Invalid character for decimal digit." +"000036E0","14048","-4294953248","ERROR_SXS_XML_E_INVALID_HEXIDECIMAL","Manifest Parse Error : Invalid character for hexadecimal digit." +"000036E1","14049","-4294953247","ERROR_SXS_XML_E_INVALID_UNICODE","Manifest Parse Error : Invalid unicode character value for this platform." +"000036E2","14050","-4294953246","ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK","Manifest Parse Error : Expecting whitespace or '?'." +"000036E3","14051","-4294953245","ERROR_SXS_XML_E_UNEXPECTEDENDTAG","Manifest Parse Error : End tag was not expected at this location." +"000036E4","14052","-4294953244","ERROR_SXS_XML_E_UNCLOSEDTAG","Manifest Parse Error : The following tags were not closed: %1." +"000036E5","14053","-4294953243","ERROR_SXS_XML_E_DUPLICATEATTRIBUTE","Manifest Parse Error : Duplicate attribute." +"000036E6","14054","-4294953242","ERROR_SXS_XML_E_MULTIPLEROOTS","Manifest Parse Error : Only one top level element is allowed in an XML document." +"000036E7","14055","-4294953241","ERROR_SXS_XML_E_INVALIDATROOTLEVEL","Manifest Parse Error : Invalid at the top level of the document." +"000036E8","14056","-4294953240","ERROR_SXS_XML_E_BADXMLDECL","Manifest Parse Error : Invalid xml declaration." +"000036E9","14057","-4294953239","ERROR_SXS_XML_E_MISSINGROOT","Manifest Parse Error : XML document must have a top level element." +"000036EA","14058","-4294953238","ERROR_SXS_XML_E_UNEXPECTEDEOF","Manifest Parse Error : Unexpected end of file." +"000036EB","14059","-4294953237","ERROR_SXS_XML_E_BADPEREFINSUBSET","Manifest Parse Error : Parameter entities cannot be used inside markup declarations in an internal subset." +"000036EC","14060","-4294953236","ERROR_SXS_XML_E_UNCLOSEDSTARTTAG","Manifest Parse Error : Element was not closed." +"000036ED","14061","-4294953235","ERROR_SXS_XML_E_UNCLOSEDENDTAG","Manifest Parse Error : End element was missing the character '>'." +"000036EE","14062","-4294953234","ERROR_SXS_XML_E_UNCLOSEDSTRING","Manifest Parse Error : A string literal was not closed." +"000036EF","14063","-4294953233","ERROR_SXS_XML_E_UNCLOSEDCOMMENT","Manifest Parse Error : A comment was not closed." +"000036F0","14064","-4294953232","ERROR_SXS_XML_E_UNCLOSEDDECL","Manifest Parse Error : A declaration was not closed." +"000036F1","14065","-4294953231","ERROR_SXS_XML_E_UNCLOSEDCDATA","Manifest Parse Error : A CDATA section was not closed." +"000036F2","14066","-4294953230","ERROR_SXS_XML_E_RESERVEDNAMESPACE","Manifest Parse Error : The namespace prefix is not allowed to start with the reserved string ""xml""." +"000036F3","14067","-4294953229","ERROR_SXS_XML_E_INVALIDENCODING","Manifest Parse Error : System does not support the specified encoding." +"000036F4","14068","-4294953228","ERROR_SXS_XML_E_INVALIDSWITCH","Manifest Parse Error : Switch from current encoding to specified encoding not supported." +"000036F5","14069","-4294953227","ERROR_SXS_XML_E_BADXMLCASE","Manifest Parse Error : The name 'xml' is reserved and must be lower case." +"000036F6","14070","-4294953226","ERROR_SXS_XML_E_INVALID_STANDALONE","Manifest Parse Error : The standalone attribute must have the value 'yes' or 'no'." +"000036F7","14071","-4294953225","ERROR_SXS_XML_E_UNEXPECTED_STANDALONE","Manifest Parse Error : The standalone attribute cannot be used in external entities." +"000036F8","14072","-4294953224","ERROR_SXS_XML_E_INVALID_VERSION","Manifest Parse Error : Invalid version number." +"000036F9","14073","-4294953223","ERROR_SXS_XML_E_MISSINGEQUALS","Manifest Parse Error : Missing equals sign between attribute and attribute value." +"000036FA","14074","-4294953222","ERROR_SXS_PROTECTION_RECOVERY_FAILED","Assembly Protection Error : Unable to recover the specified assembly." +"000036FB","14075","-4294953221","ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT","Assembly Protection Error : The public key for an assembly was too short to be allowed." +"000036FC","14076","-4294953220","ERROR_SXS_PROTECTION_CATALOG_NOT_VALID","Assembly Protection Error : The catalog for an assembly is not valid - or does not match the assembly's manifest." +"000036FD","14077","-4294953219","ERROR_SXS_UNTRANSLATABLE_HRESULT","An HRESULT could not be translated to a corresponding Win32 error code." +"000036FE","14078","-4294953218","ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING","Assembly Protection Error : The catalog for an assembly is missing." +"000036FF","14079","-4294953217","ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE","The supplied assembly identity is missing one or more attributes which must be present in this context." +"00003700","14080","-4294953216","ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME","The supplied assembly identity has one or more attribute names that contain characters not permitted in XML names." +"00003701","14081","-4294953215","ERROR_SXS_ASSEMBLY_MISSING","The referenced assembly could not be found." +"00003702","14082","-4294953214","ERROR_SXS_CORRUPT_ACTIVATION_STACK","The activation context activation stack for the running thread of execution is corrupt." +"00003703","14083","-4294953213","ERROR_SXS_CORRUPTION","The application isolation metadata for this process or thread has become corrupt." +"00003704","14084","-4294953212","ERROR_SXS_EARLY_DEACTIVATION","The activation context being deactivated is not the most recently activated one." +"00003705","14085","-4294953211","ERROR_SXS_INVALID_DEACTIVATION","The activation context being deactivated is not active for the current thread of execution." +"00003706","14086","-4294953210","ERROR_SXS_MULTIPLE_DEACTIVATION","The activation context being deactivated has already been deactivated." +"00003707","14087","-4294953209","ERROR_SXS_PROCESS_TERMINATION_REQUESTED","A component used by the isolation facility has requested to terminate the process." +"00003708","14088","-4294953208","ERROR_SXS_RELEASE_ACTIVATION_CONTEXT","A kernel mode component is releasing a reference on an activation context." +"00003709","14089","-4294953207","ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY","The activation context of system default assembly could not be generated." +"0000370A","14090","-4294953206","ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE","The value of an attribute in an identity is not within the legal range." +"0000370B","14091","-4294953205","ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME","The name of an attribute in an identity is not within the legal range." +"0000370C","14092","-4294953204","ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE","An identity contains two definitions for the same attribute." +"0000370D","14093","-4294953203","ERROR_SXS_IDENTITY_PARSE_ERROR","The identity string is malformed. This may be due to a trailing comma - more than two unnamed attributes - missing attribute name or missing attribute value." +"0000370E","14094","-4294953202","ERROR_MALFORMED_SUBSTITUTION_STRING","A string containing localized substitutable content was malformed. Either a dollar sign." +"0000370F","14095","-4294953201","ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN","The public key token does not correspond to the public key specified." +"00003710","14096","-4294953200","ERROR_UNMAPPED_SUBSTITUTION_STRING","A substitution string had no mapping." +"00003711","14097","-4294953199","ERROR_SXS_ASSEMBLY_NOT_LOCKED","The component must be locked before making the request." +"00003712","14098","-4294953198","ERROR_SXS_COMPONENT_STORE_CORRUPT","The component store has been corrupted." +"00003713","14099","-4294953197","ERROR_ADVANCED_INSTALLER_FAILED","An advanced installer failed during setup or servicing." +"00003714","14100","-4294953196","ERROR_XML_ENCODING_MISMATCH","The character encoding in the XML declaration did not match the encoding used in the document." +"00003715","14101","-4294953195","ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT","The identities of the manifests are identical but their contents are different." +"00003716","14102","-4294953194","ERROR_SXS_IDENTITIES_DIFFERENT","The component identities are different." +"00003717","14103","-4294953193","ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT","The assembly is not a deployment." +"00003718","14104","-4294953192","ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY","The file is not a part of the assembly." +"00003719","14105","-4294953191","ERROR_SXS_MANIFEST_TOO_BIG","The size of the manifest exceeds the maximum allowed." +"0000371A","14106","-4294953190","ERROR_SXS_SETTING_NOT_REGISTERED","The setting is not registered." +"0000371B","14107","-4294953189","ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE","One or more required members of the transaction are not present." +"0000371C","14108","-4294953188","ERROR_SMI_PRIMITIVE_INSTALLER_FAILED","The SMI primitive installer failed during setup or servicing." +"0000371D","14109","-4294953187","ERROR_GENERIC_COMMAND_FAILED","A generic command executable returned a result that indicates failure." +"0000371E","14110","-4294953186","ERROR_SXS_FILE_HASH_MISSING","A component is missing file verification information in its manifest." +"000037A1","14241","-4294953055","NULL","" +"000037FA","14330","-4294952966","NULL","" +"0000384E","14414","-4294952882","NULL","" +"000038F5","14581","-4294952715","NULL","" +"0000399D","14749","-4294952547","NULL","" +"00003A5C","14940","-4294952356","NULL","" +"00003A98","15000","-4294952296","ERROR_EVT_INVALID_CHANNEL_PATH","The specified channel path is invalid." +"00003A99","15001","-4294952295","ERROR_EVT_INVALID_QUERY","The specified query is invalid." +"00003A9A","15002","-4294952294","ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND","The publisher metadata cannot be found in the resource." +"00003A9B","15003","-4294952293","ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND","The template for an event definition cannot be found in the resource." +"00003A9C","15004","-4294952292","ERROR_EVT_INVALID_PUBLISHER_NAME","The specified publisher name is invalid." +"00003A9D","15005","-4294952291","ERROR_EVT_INVALID_EVENT_DATA","The event data raised by the publisher is not compatible with the event template definition in the publisher's manifest." +"00003A9F","15007","-4294952289","ERROR_EVT_CHANNEL_NOT_FOUND","The specified channel could not be found. Check channel configuration." +"00003AA0","15008","-4294952288","ERROR_EVT_MALFORMED_XML_TEXT","The specified xml text was not well-formed. See Extended Error for more details." +"00003AA1","15009","-4294952287","ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL","The caller is trying to subscribe to a direct channel which is not allowed. The events for a direct channel go directly to a logfile and cannot be subscribed to." +"00003AA2","15010","-4294952286","ERROR_EVT_CONFIGURATION_ERROR","Configuration error." +"00003AA3","15011","-4294952285","ERROR_EVT_QUERY_RESULT_STALE","The query result is stale / invalid. This may be due to the log being cleared or rolling over after the query result was created. Users should handle this code by releasing the query result object and reissuing the query." +"00003AA4","15012","-4294952284","ERROR_EVT_QUERY_RESULT_INVALID_POSITION","Query result is currently at an invalid position." +"00003AA5","15013","-4294952283","ERROR_EVT_NON_VALIDATING_MSXML","Registered MSXML doesn't support validation." +"00003AA6","15014","-4294952282","ERROR_EVT_FILTER_ALREADYSCOPED","An expression can only be followed by a change of scope operation if it itself evaluates to a node set and is not already part of some other change of scope operation." +"00003AA7","15015","-4294952281","ERROR_EVT_FILTER_NOTELTSET","Can't perform a step operation from a term that does not represent an element set." +"00003AA8","15016","-4294952280","ERROR_EVT_FILTER_INVARG","Left hand side arguments to binary operators must be either attributes - nodes or variables and right hand side arguments must be constants." +"00003AA9","15017","-4294952279","ERROR_EVT_FILTER_INVTEST","A step operation must involve either a node test or - in the case of a predicate - an algebraic expression against which to test each node in the node set identified by the preceding node set can be evaluated." +"00003AAA","15018","-4294952278","ERROR_EVT_FILTER_INVTYPE","This data type is currently unsupported." +"00003AAB","15019","-4294952277","ERROR_EVT_FILTER_PARSEERR","A syntax error occurred at position %1!d!." +"00003AAC","15020","-4294952276","ERROR_EVT_FILTER_UNSUPPORTEDOP","This operator is unsupported by this implementation of the filter." +"00003AAD","15021","-4294952275","ERROR_EVT_FILTER_UNEXPECTEDTOKEN","The token encountered was unexpected." +"00003AAE","15022","-4294952274","ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL","The requested operation cannot be performed over an enabled direct channel. The channel must first be disabled before performing the requested operation." +"00003AAF","15023","-4294952273","ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE","Channel property %1!s! contains invalid value. The value has invalid type - is outside of valid range - can't be updated or is not supported by this type of channel." +"00003AB0","15024","-4294952272","ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE","Publisher property %1!s! contains invalid value. The value has invalid type - is outside of valid range - can't be updated or is not supported by this type of publisher." +"00003AB1","15025","-4294952271","ERROR_EVT_CHANNEL_CANNOT_ACTIVATE","The channel fails to activate." +"00003AB2","15026","-4294952270","ERROR_EVT_FILTER_TOO_COMPLEX","The xpath expression exceeded supported complexity. Please simplify it or split it into two or more simple expressions." +"00003AB3","15027","-4294952269","ERROR_EVT_MESSAGE_NOT_FOUND","the message resource is present but the message is not found in the string/message table." +"00003AB4","15028","-4294952268","ERROR_EVT_MESSAGE_ID_NOT_FOUND","The message id for the desired message could not be found." +"00003AB5","15029","-4294952267","ERROR_EVT_UNRESOLVED_VALUE_INSERT","The substitution string for insert index." +"00003AB6","15030","-4294952266","ERROR_EVT_UNRESOLVED_PARAMETER_INSERT","The description string for parameter reference." +"00003AB7","15031","-4294952265","ERROR_EVT_MAX_INSERTS_REACHED","The maximum number of replacements has been reached." +"00003AB8","15032","-4294952264","ERROR_EVT_EVENT_DEFINITION_NOT_FOUND","The event definition could not be found for event id." +"00003AB9","15033","-4294952263","ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND","The locale specific resource for the desired message is not present." +"00003ABA","15034","-4294952262","ERROR_EVT_VERSION_TOO_OLD","The resource is too old to be compatible." +"00003ABB","15035","-4294952261","ERROR_EVT_VERSION_TOO_NEW","The resource is too new to be compatible." +"00003ABC","15036","-4294952260","ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY","The channel at index %1!d! of the query can't be opened." +"00003ABD","15037","-4294952259","ERROR_EVT_PUBLISHER_DISABLED","The publisher has been disabled and its resource is not available. This usually occurs when the publisher is in the process of being uninstalled or upgraded." +"00003ABE","15038","-4294952258","ERROR_EVT_FILTER_OUT_OF_RANGE","Attempted to create a numeric type that is outside of its valid range." +"00003AE8","15080","-4294952216","ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE","The subscription fails to activate." +"00003AE9","15081","-4294952215","ERROR_EC_LOG_DISABLED","The log of the subscription is in disabled state - and cannot be used to forward events to. The log must first be enabled before the subscription can be activated." +"00003AEA","15082","-4294952214","ERROR_EC_CIRCULAR_FORWARDING","When forwarding events from local machine to itself - the query of the subscription can't contain target log of the subscription." +"00003AEB","15083","-4294952213","ERROR_EC_CREDSTORE_FULL","The credential store that is used to save credentials is full." +"00003AEC","15084","-4294952212","ERROR_EC_CRED_NOT_FOUND","The credential used by this subscription can't be found in credential store." +"00003AED","15085","-4294952211","ERROR_EC_NO_ACTIVE_CHANNEL","No active channel is found for the query." +"00003AFC","15100","-4294952196","ERROR_MUI_FILE_NOT_FOUND","The resource loader failed to find MUI file." +"00003AFD","15101","-4294952195","ERROR_MUI_INVALID_FILE","The resource loader failed to load MUI file because the file fail to pass validation." +"00003AFE","15102","-4294952194","ERROR_MUI_INVALID_RC_CONFIG","The RC Manifest is corrupted with garbage data or unsupported version or missing required item." +"00003AFF","15103","-4294952193","ERROR_MUI_INVALID_LOCALE_NAME","The RC Manifest has invalid culture name." +"00003B00","15104","-4294952192","ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME","The RC Manifest has invalid ultimatefallback name." +"00003B01","15105","-4294952191","ERROR_MUI_FILE_NOT_LOADED","The resource loader cache doesn't have loaded MUI entry." +"00003B02","15106","-4294952190","ERROR_RESOURCE_ENUM_USER_STOP","User stopped resource enumeration." +"00003B03","15107","-4294952189","ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED","UI language installation failed." +"00003B04","15108","-4294952188","ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME","Locale installation failed." +"00003B06","15110","-4294952186","ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE","A resource does not have default or neutral value." +"00003B07","15111","-4294952185","ERROR_MRM_INVALID_PRICONFIG","Invalid PRI config file." +"00003B08","15112","-4294952184","ERROR_MRM_INVALID_FILE_TYPE","Invalid file type." +"00003B09","15113","-4294952183","ERROR_MRM_UNKNOWN_QUALIFIER","Unknown qualifier." +"00003B0A","15114","-4294952182","ERROR_MRM_INVALID_QUALIFIER_VALUE","Invalid qualifier value." +"00003B0B","15115","-4294952181","ERROR_MRM_NO_CANDIDATE","No Candidate found." +"00003B0C","15116","-4294952180","ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE","The ResourceMap or NamedResource has an item that does not have default or neutral resource.." +"00003B0D","15117","-4294952179","ERROR_MRM_RESOURCE_TYPE_MISMATCH","Invalid ResourceCandidate type." +"00003B0E","15118","-4294952178","ERROR_MRM_DUPLICATE_MAP_NAME","Duplicate Resource Map." +"00003B0F","15119","-4294952177","ERROR_MRM_DUPLICATE_ENTRY","Duplicate Entry." +"00003B10","15120","-4294952176","ERROR_MRM_INVALID_RESOURCE_IDENTIFIER","Invalid Resource Identifier." +"00003B11","15121","-4294952175","ERROR_MRM_FILEPATH_TOO_LONG","Filepath too long." +"00003B12","15122","-4294952174","ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE","Unsupported directory type." +"00003B16","15126","-4294952170","ERROR_MRM_INVALID_PRI_FILE","Invalid PRI File." +"00003B17","15127","-4294952169","ERROR_MRM_NAMED_RESOURCE_NOT_FOUND","NamedResource Not Found." +"00003B1F","15135","-4294952161","ERROR_MRM_MAP_NOT_FOUND","ResourceMap Not Found." +"00003B20","15136","-4294952160","ERROR_MRM_UNSUPPORTED_PROFILE_TYPE","Unsupported MRT profile type." +"00003B21","15137","-4294952159","ERROR_MRM_INVALID_QUALIFIER_OPERATOR","Invalid qualifier operator." +"00003B22","15138","-4294952158","ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE","Unable to determine qualifier value or qualifier value has not been set." +"00003B23","15139","-4294952157","ERROR_MRM_AUTOMERGE_ENABLED","Automerge is enabled in the PRI file." +"00003B24","15140","-4294952156","ERROR_MRM_TOO_MANY_RESOURCES","Too many resources defined for package." +"00003B60","15200","-4294952096","ERROR_MCA_INVALID_CAPABILITIES_STRING","The monitor returned a DDC/CI capabilities string that did not comply with the ACCESS.bus 3.0 - DDC/CI 1.1 or MCCS 2 Revision 1 specification." +"00003B61","15201","-4294952095","ERROR_MCA_INVALID_VCP_VERSION","The monitor's VCP Version." +"00003B62","15202","-4294952094","ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION","The monitor does not comply with the MCCS specification it claims to support." +"00003B63","15203","-4294952093","ERROR_MCA_MCCS_VERSION_MISMATCH","The MCCS version in a monitor's mccs_ver capability does not match the MCCS version the monitor reports when the VCP Version." +"00003B64","15204","-4294952092","ERROR_MCA_UNSUPPORTED_MCCS_VERSION","The Monitor Configuration API only works with monitors that support the MCCS 1.0 specification - MCCS 2.0 specification or the MCCS 2.0 Revision 1 specification." +"00003B65","15205","-4294952091","ERROR_MCA_INTERNAL_ERROR","An internal Monitor Configuration API error occurred." +"00003B66","15206","-4294952090","ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED","The monitor returned an invalid monitor technology type. CRT - Plasma and LCD." +"00003B67","15207","-4294952089","ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE","The caller of SetMonitorColorTemperature specified a color temperature that the current monitor did not support. This error implies that the monitor violated the MCCS 2.0 or MCCS 2.0 Revision 1 specification." +"00003B92","15250","-4294952046","ERROR_AMBIGUOUS_SYSTEM_DEVICE","The requested system device cannot be identified due to multiple indistinguishable devices potentially matching the identification criteria." +"00003BC3","15299","-4294951997","ERROR_SYSTEM_DEVICE_NOT_FOUND","The requested system device cannot be found." +"00003BC4","15300","-4294951996","ERROR_HASH_NOT_SUPPORTED","Hash generation for the specified hash version and hash type is not enabled on the server." +"00003BC5","15301","-4294951995","ERROR_HASH_NOT_PRESENT","The hash requested from the server is not available or no longer valid." +"00003BD9","15321","-4294951975","ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED","The secondary interrupt controller instance that manages the specified interrupt is not registered." +"00003BDA","15322","-4294951974","ERROR_GPIO_CLIENT_INFORMATION_INVALID","The information supplied by the GPIO client driver is invalid." +"00003BDB","15323","-4294951973","ERROR_GPIO_VERSION_NOT_SUPPORTED","The version specified by the GPIO client driver is not supported." +"00003BDC","15324","-4294951972","ERROR_GPIO_INVALID_REGISTRATION_PACKET","The registration packet supplied by the GPIO client driver is not valid." +"00003BDD","15325","-4294951971","ERROR_GPIO_OPERATION_DENIED","The requested operation is not supported for the specified handle." +"00003BDE","15326","-4294951970","ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE","The requested connect mode conflicts with an existing mode on one or more of the specified pins." +"00003BDF","15327","-4294951969","ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED","The interrupt requested to be unmasked is not masked." +"00003C28","15400","-4294951896","ERROR_CANNOT_SWITCH_RUNLEVEL","The requested run level switch cannot be completed successfully." +"00003C29","15401","-4294951895","ERROR_INVALID_RUNLEVEL_SETTING","The service has an invalid run level setting. The run level for a service must not be higher than the run level of its dependent services." +"00003C2A","15402","-4294951894","ERROR_RUNLEVEL_SWITCH_TIMEOUT","The requested run level switch cannot be completed successfully since one or more services will not stop or restart within the specified timeout." +"00003C2B","15403","-4294951893","ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT","A run level switch agent did not respond within the specified timeout." +"00003C2C","15404","-4294951892","ERROR_RUNLEVEL_SWITCH_IN_PROGRESS","A run level switch is currently in progress." +"00003C2D","15405","-4294951891","ERROR_SERVICES_FAILED_AUTOSTART","One or more services failed to start during the service startup phase of a run level switch." +"00003C8D","15501","-4294951795","ERROR_COM_TASK_STOP_PENDING","The task stop request cannot be completed immediately since task needs more time to shutdown." +"00003CF0","15600","-4294951696","ERROR_INSTALL_OPEN_PACKAGE_FAILED","Package could not be opened." +"00003CF1","15601","-4294951695","ERROR_INSTALL_PACKAGE_NOT_FOUND","Package was not found." +"00003CF2","15602","-4294951694","ERROR_INSTALL_INVALID_PACKAGE","Package data is invalid." +"00003CF3","15603","-4294951693","ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED","Package failed updates - dependency or conflict validation." +"00003CF4","15604","-4294951692","ERROR_INSTALL_OUT_OF_DISK_SPACE","There is not enough disk space on your computer. Please free up some space and try again." +"00003CF5","15605","-4294951691","ERROR_INSTALL_NETWORK_FAILURE","There was a problem downloading your product." +"00003CF6","15606","-4294951690","ERROR_INSTALL_REGISTRATION_FAILURE","Package could not be registered." +"00003CF7","15607","-4294951689","ERROR_INSTALL_DEREGISTRATION_FAILURE","Package could not be unregistered." +"00003CF8","15608","-4294951688","ERROR_INSTALL_CANCEL","User cancelled the install request." +"00003CF9","15609","-4294951687","ERROR_INSTALL_FAILED","Install failed. Please contact your software vendor." +"00003CFA","15610","-4294951686","ERROR_REMOVE_FAILED","Removal failed. Please contact your software vendor." +"00003CFB","15611","-4294951685","ERROR_PACKAGE_ALREADY_EXISTS","The provided package is already installed - and reinstallation of the package was blocked. Check the AppXDeployment-Server event log for details." +"00003CFC","15612","-4294951684","ERROR_NEEDS_REMEDIATION","The application cannot be started. Try reinstalling the application to fix the problem." +"00003CFD","15613","-4294951683","ERROR_INSTALL_PREREQUISITE_FAILED","A Prerequisite for an install could not be satisfied." +"00003CFE","15614","-4294951682","ERROR_PACKAGE_REPOSITORY_CORRUPTED","The package repository is corrupted." +"00003CFF","15615","-4294951681","ERROR_INSTALL_POLICY_FAILURE","To install this application you need either a Windows developer license or a sideloading-enabled system." +"00003D00","15616","-4294951680","ERROR_PACKAGE_UPDATING","The application cannot be started because it is currently updating." +"00003D01","15617","-4294951679","ERROR_DEPLOYMENT_BLOCKED_BY_POLICY","The package deployment operation is blocked by policy. Please." +"00003D02","15618","-4294951678","ERROR_PACKAGES_IN_USE","The package could not be installed because resources it modifies are currently in use." +"00003D03","15619","-4294951677","ERROR_RECOVERY_FILE_CORRUPT","The package could not be recovered because necessary data for recovery have been corrupted." +"00003D04","15620","-4294951676","ERROR_INVALID_STAGED_SIGNATURE","The signature is invalid. To register in developer mode - AppxSignature.p7x and AppxBlockMap.xml must be valid or should not be present." +"00003D05","15621","-4294951675","ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED","An error occurred while deleting the package's previously existing application data." +"00003D06","15622","-4294951674","ERROR_INSTALL_PACKAGE_DOWNGRADE","The package could not be installed because a higher version of this package is already installed." +"00003D07","15623","-4294951673","ERROR_SYSTEM_NEEDS_REMEDIATION","An error in a system binary was detected. Try refreshing the PC to fix the problem." +"00003D08","15624","-4294951672","ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN","A corrupted CLR NGEN binary was detected on the system." +"00003D09","15625","-4294951671","ERROR_RESILIENCY_FILE_CORRUPT","The operation could not be resumed because necessary data for recovery have been corrupted." +"00003D0A","15626","-4294951670","ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING","The package could not be installed because the Windows Firewall service is not running. Enable the Windows Firewall service and try again." +"00003D16","15638","-4294951658","NULL","" +"00003D54","15700","-4294951596","APPMODEL_ERROR_NO_PACKAGE","The process has no package identity." +"00003D55","15701","-4294951595","APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT","The package runtime information is corrupted." +"00003D56","15702","-4294951594","APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT","The package identity is corrupted." +"00003D57","15703","-4294951593","APPMODEL_ERROR_NO_APPLICATION","The process has no application identity." +"00003DB8","15800","-4294951496","ERROR_STATE_LOAD_STORE_FAILED","Loading the state store failed." +"00003DB9","15801","-4294951495","ERROR_STATE_GET_VERSION_FAILED","Retrieving the state version for the application failed." +"00003DBA","15802","-4294951494","ERROR_STATE_SET_VERSION_FAILED","Setting the state version for the application failed." +"00003DBB","15803","-4294951493","ERROR_STATE_STRUCTURED_RESET_FAILED","Resetting the structured state of the application failed." +"00003DBC","15804","-4294951492","ERROR_STATE_OPEN_CONTAINER_FAILED","State Manager failed to open the container." +"00003DBD","15805","-4294951491","ERROR_STATE_CREATE_CONTAINER_FAILED","State Manager failed to create the container." +"00003DBE","15806","-4294951490","ERROR_STATE_DELETE_CONTAINER_FAILED","State Manager failed to delete the container." +"00003DBF","15807","-4294951489","ERROR_STATE_READ_SETTING_FAILED","State Manager failed to read the setting." +"00003DC0","15808","-4294951488","ERROR_STATE_WRITE_SETTING_FAILED","State Manager failed to write the setting." +"00003DC1","15809","-4294951487","ERROR_STATE_DELETE_SETTING_FAILED","State Manager failed to delete the setting." +"00003DC2","15810","-4294951486","ERROR_STATE_QUERY_SETTING_FAILED","State Manager failed to query the setting." +"00003DC3","15811","-4294951485","ERROR_STATE_READ_COMPOSITE_SETTING_FAILED","State Manager failed to read the composite setting." +"00003DC4","15812","-4294951484","ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED","State Manager failed to write the composite setting." +"00003DC5","15813","-4294951483","ERROR_STATE_ENUMERATE_CONTAINER_FAILED","State Manager failed to enumerate the containers." +"00003DC6","15814","-4294951482","ERROR_STATE_ENUMERATE_SETTINGS_FAILED","State Manager failed to enumerate the settings." +"00003DC7","15815","-4294951481","ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED","The size of the state manager composite setting value has exceeded the limit." +"00003DC8","15816","-4294951480","ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED","The size of the state manager setting value has exceeded the limit." +"00003DC9","15817","-4294951479","ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED","The length of the state manager setting name has exceeded the limit." +"00003DCA","15818","-4294951478","ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED","The length of the state manager container name has exceeded the limit." +"00003DE1","15841","-4294951455","ERROR_API_UNAVAILABLE","This API cannot be used in the context of the caller's application type." +"00003E44","15940","-4294951356","NULL","" +"00004016","16406","-4294950890","NULL","" +"000040CF","16591","-4294950705","NULL","" +"00004146","16710","-4294950586","NULL","" +"000041F4","16884","-4294950412","NULL","" +"0000433D","17213","-4294950083","NULL","" +"000043F9","17401","-4294949895","NULL","" +"000044CC","17612","-4294949684","NULL","" +"0000471E","18206","-4294949090","NULL","" +"00004808","18440","-4294948856","NULL","" +"00004910","18704","-4294948592","NULL","" +"00004966","18790","-4294948506","NULL","" +"00004A65","19045","-4294948251","NULL","" +"00004BF9","19449","-4294947847","NULL","" +"00004CC2","19650","-4294947646","NULL","" +"00004D2D","19757","-4294947539","NULL","" +"00004DB8","19896","-4294947400","NULL","" +"00004E90","20112","-4294947184","NULL","" +"00004FA2","20386","-4294946910","NULL","" +"00005112","20754","-4294946542","NULL","" +"000051CF","20943","-4294946353","NULL","" +"00005249","21065","-4294946231","NULL","" +"00005299","21145","-4294946151","NULL","" +"0000530C","21260","-4294946036","NULL","" +"000053C4","21444","-4294945852","NULL","" +"00005492","21650","-4294945646","NULL","" +"00005542","21826","-4294945470","NULL","" +"0000556E","21870","-4294945426","NULL","" +"000055BC","21948","-4294945348","NULL","" +"00005636","22070","-4294945226","NULL","" +"00005812","22546","-4294944750","NULL","" +"00005844","22596","-4294944700","NULL","" +"000058F7","22775","-4294944521","NULL","" +"00005A6A","23146","-4294944150","NULL","" +"00005AA5","23205","-4294944091","NULL","" +"00005C0E","23566","-4294943730","NULL","" +"00005FE9","24553","-4294942743","NULL","" +"00006056","24662","-4294942634","NULL","" +"0000626E","25198","-4294942098","NULL","" +"000062B6","25270","-4294942026","NULL","" +"0000651F","25887","-4294941409","NULL","" +"000065AA","26026","-4294941270","NULL","" +"000065BA","26042","-4294941254","NULL","" +"00006F50","28496","-4294938800","NULL","" +"00007052","28754","-4294938542","NULL","" +"00007190","29072","-4294938224","NULL","" +"00007617","30231","-4294937065","NULL","" +"00007747","30535","-4294936761","NULL","" +"00007865","30821","-4294936475","NULL","" +"00007B86","31622","-4294935674","NULL","" +"00007C12","31762","-4294935534","NULL","" +"00007C78","31864","-4294935432","NULL","" +"00007CE1","31969","-4294935327","NULL","" +"00007D12","32018","-4294935278","NULL","" +"00007DFF","32255","-4294935041","NULL","" +"00007EC9","32457","-4294934839","NULL","" +"00007F83","32643","-4294934653","NULL","" +"00007FCC","32716","-4294934580","NULL","" +"0000DEAD","57005","-4294910291","_thread_terminated ","Thread was terminated." +"0000F06A","61546","-4294905750","NULL","" +"0000F06B","61547","-4294905749","NULL","" +"0000F0DA","61658","-4294905638","NULL","" +"00030000","196608","-4294770688","","Require mutual authentication with the server (RLPOLICY_AUTHENTICATE_MUTUAL_ONLY)." +"00030200","197120","-4294770176","","The underlying file was converted to compound file format." +"00030201","197121","-4294770175","","The storage operation should block until more data is available." +"00030202","197122","-4294770174","","The storage operation should retry immediately." +"00030203","197123","-4294770173","","The notified event sink will not influence the storage operation." +"00040000","262144","-4294705152","","Use the registry database to provide the requested information." +"00040001","262145","-4294705151","","Success." +"00040002","262146","-4294705150","","Macintosh clipboard format." +"00040100","262400","-4294704896","","Successful drop took place." +"00040101","262401","-4294704895","","Drag-drop operation canceled." +"00040102","262402","-4294704894","","Use the default cursor." +"00040130","262448","-4294704848","","Data has same FORMATETC." +"00040140","262464","-4294704832","","View is already frozen." +"00040170","262512","-4294704784","","FORMATETC not supported." +"00040171","262513","-4294704783","","Same cache." +"00040172","262514","-4294704782","","Some cache(s) not updated." +"00040180","262528","-4294704768","","Invalid verb for OLE object." +"00040181","262529","-4294704767","","Verb number is valid but verb cannot be done now." +"00040182","262530","-4294704766","","Invalid window handle passed." +"000401A0","262560","-4294704736","","Message is too long; some of it had to be truncated before displaying." +"000401C0","262592","-4294704704","","Unable to convert OLESTREAM to IStorage." +"000401E2","262626","-4294704670","","Moniker reduced to itself." +"000401E4","262628","-4294704668","","Common prefix is this moniker." +"000401E5","262629","-4294704667","","Common prefix is input moniker." +"000401E6","262630","-4294704666","","Common prefix is both monikers." +"000401E7","262631","-4294704665","","Moniker is already registered in running object table." +"00042000","270336","-4294696960","","" +"00240001","2359297","-4292607999","WU_S_SERVICE_STOP","Service stopped." +"00240002","2359298","-4292607998","WU_S_SELFUPDATE","Agent selfupdates." +"00240003","2359299","-4292607997","WU_S_UPDATE_ERROR","Overall operation completed but error occurred while processing one or more specified updates." +"00240004","2359300","-4292607996","WU_S_MARKED_FOR_DISCONNECT","The caller attempted to disconnect an operation but the operation is busy calling back so the callback is marked for disconnect later." +"00240005","2359301","-4292607995","WU_S_REBOOT_REQUIRED","The system needs to be rebooted to complete installation." +"00240006","2359302","-4292607994","SUS_S_ALREADY_INSTALLED","The update to be installed is already installed." +"00240007","2359303","-4292607993","WU_S_ALREADY_UNINSTALLED","The update to be uninstalled is already not installed." +"00240008","2359304","-4292607992","WU_S_ALREADY_DOWNLOADED","The update to be downloaded is already downloaded." +"40000000","1073741824","-3221225472","STATUS_OBJECT_NAME_EXISTS","(Object Exists) An attempt was made to create an object but the object name already exists." +"40000001","1073741825","-3221225471","STATUS_THREAD_WAS_SUSPENDED","(Thread Suspended) A thread termination occurred while the thread was suspended. The thread resumed, and termination proceeded." +"40000002","1073741826","-3221225470","STATUS_WORKING_SET_LIMIT_RANGE","(Working Set Range Error) An attempt was made to set the working set minimum or maximum to values that are outside the allowable range." +"40000003","1073741827","-3221225469","STATUS_IMAGE_NOT_AT_BASE","(Image Relocated) An image file could not be mapped at the address that is specified in the image file. Local fixes must be performed on this image." +"40000004","1073741828","-3221225468","STATUS_RXACT_STATE_CREATED","This informational level status indicates that a specified registry subtree transaction state did not yet exist and had to be created." +"40000005","1073741829","-3221225467","STATUS_SEGMENT_NOTIFICATION","(Segment Load) A virtual DOS machine (VDM) is loading, unloading, or moving an MS-DOS or Win16 program segment image. An exception is raised so that a debugger can load, unload, or track symbols and breakpoints within these 16-bit segments." +"40000006","1073741830","-3221225466","STATUS_LOCAL_USER_SESSION_KEY","(Local Session Key) A user session key was requested for a local remote procedure call (RPC) connection. The session key that is returned is a constant value and not unique to this connection." +"40000007","1073741831","-3221225465","STATUS_BAD_CURRENT_DIRECTORY","(Invalid Current Directory) The process cannot switch to the startup current directory %hs. Select OK to set the current directory to %hs, or select CANCEL to exit." +"40000008","1073741832","-3221225464","STATUS_SERIAL_MORE_WRITES","(Serial IOCTL Complete) A serial I/O operation was completed by another write to a serial port. (The IOCTL_SERIAL_XOFF_COUNTER reached zero.)." +"40000009","1073741833","-3221225463","STATUS_REGISTRY_RECOVERED","(Registry Recovery) One of the files that contains the system registry data had to be recovered by using a log or alternate copy. The recovery was successful." +"4000000A","1073741834","-3221225462","STATUS_FT_READ_RECOVERY_FROM_BACKUP","(Redundant Read) To satisfy a read request, the Windows NT operating system fault-tolerant file system successfully read the requested data from a redundant copy. This was done because the file system encountered a failure on a member of the fault-tolerant volume but was unable to reassign the failing area of the device." +"4000000B","1073741835","-3221225461","STATUS_FT_WRITE_RECOVERY","(Redundant Write) To satisfy a write request, the Windows NT fault-tolerant file system successfully wrote a redundant copy of the information. This was done because the file system encountered a failure on a member of the fault-tolerant volume but was unable to reassign the failing area of the device." +"4000000C","1073741836","-3221225460","STATUS_SERIAL_COUNTER_TIMEOUT","(Serial IOCTL Timeout) A serial I/O operation completed because the time-out period expired. (The IOCTL_SERIAL_XOFF_COUNTER had not reached zero.)." +"4000000D","1073741837","-3221225459","STATUS_NULL_LM_PASSWORD","(Password Too Complex) The Windows password is too complex to be converted to a LAN Manager password. The LAN Manager password that returned is a NULL string." +"4000000E","1073741838","-3221225458","STATUS_IMAGE_MACHINE_TYPE_MISMATCH","(Machine Type Mismatch) The image file %hs is valid but is for a machine type other than the current machine. Select OK to continue, or CANCEL to fail the DLL load." +"4000000F","1073741839","-3221225457","STATUS_RECEIVE_PARTIAL","(Partial Data Received) The network transport returned partial data to its client. The remaining data will be sent later." +"40000010","1073741840","-3221225456","STATUS_RECEIVE_EXPEDITED","(Expedited Data Received) The network transport returned data to its client that was marked as expedited by the remote system." +"40000011","1073741841","-3221225455","STATUS_RECEIVE_PARTIAL_EXPEDITED","(Partial Expedited Data Received) The network transport returned partial data to its client and this data was marked as expedited by the remote system. The remaining data will be sent later." +"40000012","1073741842","-3221225454","STATUS_EVENT_DONE","(TDI Event Done) The TDI indication has completed successfully." +"40000013","1073741843","-3221225453","STATUS_EVENT_PENDING","(TDI Event Pending) The TDI indication has entered the pending state." +"40000014","1073741844","-3221225452","STATUS_CHECKING_FILE_SYSTEM","Checking file system on %wZ." +"40000015","1073741845","-3221225451","STATUS_FATAL_APP_EXIT","(Fatal Application Exit) %hs." +"40000016","1073741846","-3221225450","STATUS_PREDEFINED_HANDLE","The specified registry key is referenced by a predefined handle." +"40000017","1073741847","-3221225449","STATUS_WAS_UNLOCKED","(Page Unlocked) The page protection of a locked page was changed to 'No Access' and the page was unlocked from memory and from the process." +"40000018","1073741848","-3221225448","STATUS_SERVICE_NOTIFICATION","%hs." +"40000019","1073741849","-3221225447","STATUS_WAS_LOCKED","(Page Locked) One of the pages to lock was already locked." +"4000001A","1073741850","-3221225446","STATUS_LOG_HARD_ERROR","Application popup: %1 : %2." +"4000001B","1073741851","-3221225445","STATUS_ALREADY_WIN32","A Win32 process already exists." +"4000001C","1073741852","-3221225444","STATUS_WX86_UNSIMULATE","An exception status code that is used by the Win32 x86 emulation subsystem." +"4000001D","1073741853","-3221225443","STATUS_WX86_CONTINUE","An exception status code that is used by the Win32 x86 emulation subsystem." +"4000001E","1073741854","-3221225442","STATUS_WX86_SINGLE_STEP","An exception status code that is used by the Win32 x86 emulation subsystem." +"4000001F","1073741855","-3221225441","STATUS_WX86_BREAKPOINT","An exception status code that is used by the Win32 x86 emulation subsystem." +"40000020","1073741856","-3221225440","STATUS_WX86_EXCEPTION_CONTINUE","An exception status code that is used by the Win32 x86 emulation subsystem." +"40000021","1073741857","-3221225439","STATUS_WX86_EXCEPTION_LASTCHANCE","An exception status code that is used by the Win32 x86 emulation subsystem." +"40000022","1073741858","-3221225438","STATUS_WX86_EXCEPTION_CHAIN","An exception status code that is used by the Win32 x86 emulation subsystem." +"40000023","1073741859","-3221225437","STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE","(Machine Type Mismatch) The image file %hs is valid but is for a machine type other than the current machine." +"40000024","1073741860","-3221225436","STATUS_NO_YIELD_PERFORMED","A yield execution was performed and no thread was available to run." +"40000025","1073741861","-3221225435","STATUS_TIMER_RESUME_IGNORED","The resume flag to a timer API was ignored." +"40000026","1073741862","-3221225434","STATUS_ARBITRATION_UNHANDLED","The arbiter has deferred arbitration of these resources to its parent." +"40000027","1073741863","-3221225433","STATUS_CARDBUS_NOT_SUPPORTED","The device has detected a CardBus card in its slot." +"40000028","1073741864","-3221225432","STATUS_WX86_CREATEWX86TIB","An exception status code that is used by the Win32 x86 emulation subsystem." +"40000029","1073741865","-3221225431","STATUS_MP_PROCESSOR_MISMATCH","The CPUs in this multiprocessor system are not all the same revision level. To use all processors, the operating system restricts itself to the features of the least capable processor in the system. If problems occur with this system, contact the CPU manufacturer to see if this mix of processors is supported." +"4000002A","1073741866","-3221225430","STATUS_HIBERNATED","The system was put into hibernation." +"4000002B","1073741867","-3221225429","STATUS_RESUME_HIBERNATION","The system was resumed from hibernation." +"4000002C","1073741868","-3221225428","STATUS_FIRMWARE_UPDATED","Windows has detected that the system firmware (BIOS) was updated [previous firmware date = %2, current firmware date %3]." +"4000002D","1073741869","-3221225427","STATUS_DRIVERS_LEAKING_LOCKED_PAGES","A device driver is leaking locked I/O pages and is causing system degradation. The system has automatically enabled the tracking code to try and catch the culprit." +"4000002E","1073741870","-3221225426","STATUS_MESSAGE_RETRIEVED","The ALPC message being canceled has already been retrieved from the queue on the other side." +"4000002F","1073741871","-3221225425","STATUS_SYSTEM_POWERSTATE_TRANSITION","The system power state is transitioning from %2 to %3." +"40000030","1073741872","-3221225424","STATUS_ALPC_CHECK_COMPLETION_LIST","The receive operation was successful. Check the ALPC completion list for the received message." +"40000031","1073741873","-3221225423","STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION","The system power state is transitioning from %2 to %3 but could enter %4." +"40000032","1073741874","-3221225422","STATUS_ACCESS_AUDIT_BY_POLICY","Access to %1 is monitored by policy rule %2." +"40000033","1073741875","-3221225421","STATUS_ABANDON_HIBERFILE","A valid hibernation file has been invalidated and should be abandoned." +"40000034","1073741876","-3221225420","STATUS_BIZRULES_NOT_ENABLED","Business rule scripts are disabled for the calling application." +"40000294","1073742484","-3221224812","STATUS_WAKE_SYSTEM","The system has awoken." +"40000370","1073742704","-3221224592","STATUS_DS_SHUTTING_DOWN","The directory service is shutting down." +"40010001","1073807361","-3221159935","DBG_REPLY_LATER","Debugger will reply later." +"40010002","1073807362","-3221159934","DBG_UNABLE_TO_PROVIDE_HANDLE","Debugger cannot provide a handle." +"40010003","1073807363","-3221159933","DBG_TERMINATE_THREAD","Debugger terminated the thread." +"40010004","1073807364","-3221159932","DBG_TERMINATE_PROCESS","Debugger terminated the process." +"40010005","1073807365","-3221159931","DBG_CONTROL_C","Debugger obtained control of C." +"40010006","1073807366","-3221159930","DBG_PRINTEXCEPTION_C","Debugger printed an exception on control C." +"40010007","1073807367","-3221159929","DBG_RIPEXCEPTION","Debugger received a RIP exception." +"40010008","1073807368","-3221159928","DBG_CONTROL_BREAK","Debugger received a control break." +"40010009","1073807369","-3221159927","DBG_COMMAND_EXCEPTION","Debugger command communication exception." +"40020056","1073872982","-3221094314","RPC_NT_UUID_LOCAL_ONLY","A UUID that is valid only on this computer has been allocated." +"400200AF","1073873071","-3221094225","RPC_NT_SEND_INCOMPLETE","Some data remains to be sent in the request buffer." +"400A0004","1074397188","-3220570108","STATUS_CTX_CDM_CONNECT","The Client Drive Mapping Service has connected on Terminal Connection." +"400A0005","1074397189","-3220570107","STATUS_CTX_CDM_DISCONNECT","The Client Drive Mapping Service has disconnected on Terminal Connection." +"4015000D","1075118093","-3219849203","STATUS_SXS_RELEASE_ACTIVATION_CONTEXT","A kernel mode component is releasing a reference on an activation context." +"40190034","1075380276","-3219587020","STATUS_RECOVERY_NOT_NEEDED","The transactional resource manager is already consistent. Recovery is not needed." +"40190035","1075380277","-3219587019","STATUS_RM_ALREADY_STARTED","The transactional resource manager has already been started." +"401A000C","1075445772","-3219521524","STATUS_LOG_NO_RESTART","The log service encountered a log stream with no restart area." +"401B00EC","1075511532","-3219455764","STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST","(Display Driver Recovered From Failure) The %hs display driver has detected a failure and recovered from it. Some graphical operations might have failed. The next time you restart the machine, a dialog box appears, giving you an opportunity to upload data about this failure to Microsoft." +"401E000A","1075707914","-3219259382","STATUS_GRAPHICS_PARTIAL_DATA_POPULATED","The specified buffer is not big enough to contain the entire requested dataset. Partial data is populated up to the size of the buffer. The caller needs to provide a buffer of the size as specified in the partially populated buffer's content (interface specific)." +"401E0117","1075708183","-3219259113","STATUS_GRAPHICS_DRIVER_MISMATCH","The kernel driver detected a version mismatch between it and the user mode driver." +"401E0307","1075708679","-3219258617","STATUS_GRAPHICS_MODE_NOT_PINNED","No mode is pinned on the specified VidPN source/target." +"401E031E","1075708702","-3219258594","STATUS_GRAPHICS_NO_PREFERRED_MODE","The specified mode set does not specify a preference for one of its modes." +"401E034B","1075708747","-3219258549","STATUS_GRAPHICS_DATASET_IS_EMPTY","The specified dataset (for example, mode set, frequency range set, descriptor set, or topology) is empty." +"401E034C","1075708748","-3219258548","STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET","The specified dataset (for example, mode set, frequency range set, descriptor set, or topology) does not contain any more elements." +"401E0351","1075708753","-3219258543","STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED","The specified content transformation is not pinned on the specified VidPN present path." +"401E042F","1075708975","-3219258321","STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS","The child device presence was not reliably detected." +"401E0437","1075708983","-3219258313","STATUS_GRAPHICS_LEADLINK_START_DEFERRED","Starting the lead adapter in a linked configuration has been temporarily deferred." +"401E0439","1075708985","-3219258311","STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY","The display adapter is being polled for children too frequently at the same polling level." +"401E043A","1075708986","-3219258310","STATUS_GRAPHICS_START_DEFERRED","Starting the adapter has been temporarily deferred." +"40230001","1076035585","-3218931711","STATUS_NDIS_INDICATION_REQUIRED","" +"80000001","-2147483647","2147483649","STATUS_GUARD_PAGE_VIOLATION","Not implemented (A page of memory that marks the end of a data structure, such as a stack or an array, has been accessed)." +"80000002","-2147483646","2147483650","STATUS_DATATYPE_MISALIGNMENT","(EXCEPTION) Alignment Fault A data type misalignment was detected in a load or store instruction OR Ran out of memory." +"80000003","-2147483645","2147483651","STATUS_BREAKPOINT","(EXCEPTION) Breakpoint A breakpoint has been reached OR One or more arguments are invalid." +"80000004","-2147483644","2147483652","STATUS_SINGLE_STEP","(EXCEPTION) Single Step A single step or trace operation has just been completed OR No such interface supported." +"80000005","-2147483643","2147483653","STATUS_BUFFER_OVERFLOW","(Buffer Overflow) The data was too large to fit into the specified buffer (Invalid pointer)." +"80000006","-2147483642","2147483654","STATUS_NO_MORE_FILES","(No More Files) No more files were found which match the file specification OR Invalid handle." +"80000007","-2147483641","2147483655","E_ABORT","Operation aborted." +"80000008","-2147483640","2147483656","","Unspecified error." +"80000009","-2147483639","2147483657","","General access denied error." +"8000000A","-2147483638","2147483658","STATUS_HANDLES_CLOSED","The data necessary to complete this operation is not yet available." +"8000000B","-2147483637","2147483659","STATUS_NO_INHERITANCE","(Non-Inheritable ACL) An access control list (ACL) contains no components that can be inherited." +"8000000C","-2147483636","2147483660","STATUS_GUID_SUBSTITUTION_MADE","(GUID Substitution) During the translation of a globally unique identifier (GUID) to a Windows security ID (SID), no administratively defined GUID prefix was found. A substitute prefix was used, which will not compromise system security. However, this might provide a more restrictive access than intended." +"8000000D","-2147483635","2147483661","STATUS_PARTIAL_COPY","Because of protection conflicts, not all the requested bytes could be copied." +"8000000E","-2147483634","2147483662","STATUS_DEVICE_PAPER_EMPTY","(Out of Paper) The printer is out of paper." +"8000000F","-2147483633","2147483663","STATUS_DEVICE_POWERED_OFF","(Device Power Is Off) The printer power has been turned off." +"80000010","-2147483632","2147483664","STATUS_DEVICE_OFF_LINE","(Device Offline) The printer has been taken offline." +"80000011","-2147483631","2147483665","STATUS_DEVICE_BUSY","(Device Busy) The device is currently busy." +"80000012","-2147483630","2147483666","STATUS_NO_MORE_EAS","(No More EAs) No more extended attributes (EAs) were found for the file." +"80000013","-2147483629","2147483667","STATUS_INVALID_EA_NAME","(Illegal EA) The specified extended attribute (EA) name contains at least one illegal character." +"80000014","-2147483628","2147483668","STATUS_EA_LIST_INCONSISTENT","(Inconsistent EA List) The extended attribute (EA) list is inconsistent." +"80000015","-2147483627","2147483669","STATUS_INVALID_EA_FLAG","(Invalid EA Flag) An invalid extended attribute (EA) flag was set." +"80000016","-2147483626","2147483670","STATUS_VERIFY_REQUIRED","(Verifying Disk) The media has changed and a verify operation is in progress; therefore, no reads or writes can be performed to the device, except those that are used in the verify operation." +"80000017","-2147483625","2147483671","STATUS_EXTRANEOUS_INFORMATION","(Too Much Information) The specified access control list (ACL) contained more information than was expected." +"80000018","-2147483624","2147483672","STATUS_RXACT_COMMIT_NECESSARY","This warning level status indicates that the transaction state already exists for the registry subtree, but that a transaction commit was previously aborted. The commit has NOT been completed but has not been rolled back either; therefore, it can still be committed, if needed." +"8000001A","-2147483622","2147483674","STATUS_NO_MORE_ENTRIES","(No More Entries) No more entries are available from an enumeration operation." +"8000001B","-2147483621","2147483675","STATUS_FILEMARK_DETECTED","(Filemark Found) A filemark was detected." +"8000001C","-2147483620","2147483676","STATUS_MEDIA_CHANGED","(Media Changed) The media has changed." +"8000001D","-2147483619","2147483677","STATUS_BUS_RESET","(I/O Bus Reset) An I/O bus reset was detected." +"8000001E","-2147483618","2147483678","STATUS_END_OF_MEDIA","(End of Media) The end of the media was encountered." +"8000001F","-2147483617","2147483679","STATUS_BEGINNING_OF_MEDIA","The beginning of a tape or partition has been detected." +"80000020","-2147483616","2147483680","STATUS_MEDIA_CHECK","(Media Changed) The media might have changed." +"80000021","-2147483615","2147483681","STATUS_SETMARK_DETECTED","A tape access reached a set mark." +"80000022","-2147483614","2147483682","STATUS_NO_DATA_DETECTED","During a tape access, the end of the data written is reached." +"80000023","-2147483613","2147483683","STATUS_REDIRECTOR_HAS_OPEN_HANDLES","The redirector is in use and cannot be unloaded." +"80000024","-2147483612","2147483684","STATUS_SERVER_HAS_OPEN_HANDLES","The server is in use and cannot be unloaded." +"80000025","-2147483611","2147483685","STATUS_ALREADY_DISCONNECTED","The specified connection has already been disconnected." +"80000026","-2147483610","2147483686","STATUS_LONGJUMP","A long jump has been executed." +"80000027","-2147483609","2147483687","STATUS_CLEANER_CARTRIDGE_INSTALLED","A cleaner cartridge is present in the tape library." +"80000028","-2147483608","2147483688","STATUS_PLUGPLAY_QUERY_VETOED","The Plug and Play query operation was not successful." +"80000029","-2147483607","2147483689","STATUS_UNWIND_CONSOLIDATE","A frame consolidation has been executed." +"8000002A","-2147483606","2147483690","STATUS_REGISTRY_HIVE_RECOVERED","(Registry Hive Recovered) The registry hive (file): %hs was corrupted and it has been recovered. Some data might have been lost." +"8000002B","-2147483605","2147483691","STATUS_DLL_MIGHT_BE_INSECURE","The application is attempting to run executable code from the module %hs. This might be insecure. An alternative, %hs, is available. Should the application use the secure module %hs?." +"8000002C","-2147483604","2147483692","STATUS_DLL_MIGHT_BE_INCOMPATIBLE","The application is loading executable code from the module %hs. This is secure but might be incompatible with previous releases of the operating system. An alternative, %hs, is available. Should the application use the secure module %hs?." +"8000002D","-2147483603","2147483693","STATUS_STOPPED_ON_SYMLINK","The create operation stopped after reaching a symbolic link." +"80000288","-2147483000","2147484296","STATUS_DEVICE_REQUIRES_CLEANING","The device has indicated that cleaning is necessary." +"80000289","-2147482999","2147484297","STATUS_DEVICE_DOOR_OPEN","The device has indicated that its door is open. Further operations require it closed and secured." +"80000803","-2147481597","2147485699","STATUS_DATA_LOST_REPAIR","Windows discovered a corruption in the file %hs. This file has now been repaired. Check if any data in the file was lost because of the corruption." +"80004001","-2147467263","2147500033","E_NOTIMPL","Not implemented." +"80004002","-2147467262","2147500034","E_Nointerface","No such interface supported." +"80004003","-2147467261","2147500035","E_Pointer","Invalid pointer." +"80004004","-2147467260","2147500036","E_ABORT","Operation Aborted." +"80004005","-2147467259","2147500037","E_Fail","Resource missing." +"80004006","-2147467258","2147500038","","Thread local storage failure." +"80004007","-2147467257","2147500039","","Get shared memory allocator failure." +"80004008","-2147467256","2147500040","","Get memory allocator failure." +"80004009","-2147467255","2147500041","","Unable to initialize class cache." +"8000400A","-2147467254","2147500042","","Unable to initialize RPC services." +"8000400B","-2147467253","2147500043","","Cannot set thread local storage channel control." +"8000400C","-2147467252","2147500044","","Could not allocate thread local storage channel control." +"8000400D","-2147467251","2147500045","","The user supplied memory allocator is unacceptable." +"8000400E","-2147467250","2147500046","","The OLE service mutex already exists." +"8000400F","-2147467249","2147500047","","The OLE service file mapping already exists." +"80004010","-2147467248","2147500048","","Unable to map view of file for OLE service." +"80004011","-2147467247","2147500049","","Failure attempting to launch OLE service." +"80004012","-2147467246","2147500050","","There was an attempt to call CoInitialize a second time while single threaded." +"80004013","-2147467245","2147500051","","A Remote activation was necessary but was not allowed." +"80004014","-2147467244","2147500052","","A Remote activation was necessary but the server name provided was invalid." +"80004015","-2147467243","2147500053","CO_E_WRONG_SERVER_IDENTITY","The class is configured to run as a security id different from the caller." +"80004016","-2147467242","2147500054","","Use of Ole1 services requiring DDE windows is disabled." +"80004017","-2147467241","2147500055","","A RunAs specification must be \ or simply ." +"80004018","-2147467240","2147500056","","The server process could not be started." +"80004019","-2147467239","2147500057","","The server process could not be started as the configured identity." +"8000401A","-2147467238","2147500058","","The server process could not be started because the configured identity is incorrect." +"8000401B","-2147467237","2147500059","","The client is not allowed to launch this server." +"8000401C","-2147467236","2147500060","","The service providing this server could not be started." +"8000401D","-2147467235","2147500061","","This computer was unable to communicate with the computer providing the server." +"8000401E","-2147467234","2147500062","","The server did not respond after being launched." +"8000401F","-2147467233","2147500063","","The registration information for this server is inconsistent or incomplete." +"80004020","-2147467232","2147500064","","The registration information for this interface is inconsistent or incomplete." +"80004021","-2147467231","2147500065","","The operation attempted is not supported." +"80008083","-2147450749","2147516547","","Missing dependency on `Microsoft.DotNet.DesktopRuntime.8`." +"8000FFFF","-2147418113","2147549183","E_UNEXPECTED","Catastrophic failure." +"80010001","-2147418111","2147549185","DBG_EXCEPTION_NOT_HANDLED","Debugger did not handle the exception (Call was rejected by callee.)." +"80010002","-2147418110","2147549186","","Call was canceled by the message filter." +"80010003","-2147418109","2147549187","","The caller is dispatching an intertask SendMessage call and cannot call out via PostMessage." +"80010004","-2147418108","2147549188","","The caller is dispatching an asynchronous call and cannot make an outgoing call on behalf of this call." +"80010005","-2147418107","2147549189","","It is illegal to call out while inside message filter." +"80010006","-2147418106","2147549190","","The connection terminated or is in a bogus state and cannot be used any more. Other connections are still valid." +"80010007","-2147418105","2147549191","","The callee (server [not server application]) is not available and disappeared; all connections are invalid." +"80010008","-2147418104","2147549192","","The caller (client) disappeared while the callee (server) was processing a call." +"80010009","-2147418103","2147549193","","The data packet with the marshaled parameter data is incorrect." +"8001000A","-2147418102","2147549194","","The call was not transmitted properly; the message queue was full and was not emptied after yielding." +"8001000B","-2147418101","2147549195","","The client (caller) cannot marshal the parameter data - low memory." +"8001000C","-2147418100","2147549196","","The client (caller) cannot un-marshal the return data - low memory." +"8001000D","-2147418099","2147549197","","The server (callee) cannot marshal the return data - low memory." +"8001000E","-2147418098","2147549198","","The server (callee) cannot un-marshal the parameter data - low memory." +"8001000F","-2147418097","2147549199","","Received data is invalid; could be server or client data." +"80010010","-2147418096","2147549200","","A particular parameter is invalid and cannot be (un)marshaled." +"80010011","-2147418095","2147549201","","There is no second outgoing call on same channel in DDE conversation." +"80010012","-2147418094","2147549202","","The callee (server [not server application]) is not available and disappeared; all connections are invalid." +"80010100","-2147417856","2147549440","RPC_E_SYS_CALL_FAILED","System call failed." +"80010101","-2147417855","2147549441","","Could not allocate some required resource (memory." +"80010102","-2147417854","2147549442","","Attempted to make calls on more than one thread in single threaded mode." +"80010103","-2147417853","2147549443","","The requested interface is not registered on the server object." +"80010104","-2147417852","2147549444","","RPC could not call the server or could not return the results of calling the server." +"80010105","-2147417851","2147549445","RPC_E_Serverfault","The server threw an exception." +"80010106","-2147417850","2147549446","","Cannot change thread mode after it is set." +"80010107","-2147417849","2147549447","","The method called does not exist on the server." +"80010108","-2147417848","2147549448","RPC_E_Disconnected","The object invoked has disconnected from its clients." +"80010109","-2147417847","2147549449","","The object invoked chose not to process the call now." +"8001010A","-2147417846","2147549450","","The message filter indicated that the application is busy." +"8001010B","-2147417845","2147549451","","The message filter rejected the call." +"8001010C","-2147417844","2147549452","","A call control interfaces was called with invalid data." +"8001010D","-2147417843","2147549453","","An outgoing call cannot be made since the application is dispatching an input-synchronous call." +"8001010E","-2147417842","2147549454","","The application called an interface that was marshaled for a different thread." +"8001010F","-2147417841","2147549455","","CoInitialize has not been called on the current thread." +"80010110","-2147417840","2147549456","","The version of OLE on the client and server machines does not match." +"80010111","-2147417839","2147549457","","OLE received a packet with an invalid header." +"80010112","-2147417838","2147549458","","OLE received a packet with an invalid extension." +"80010113","-2147417837","2147549459","","The requested object or interface does not exist." +"80010114","-2147417836","2147549460","","The requested object does not exist." +"80010115","-2147417835","2147549461","","OLE has sent a request and is waiting for a reply." +"80010116","-2147417834","2147549462","","OLE is waiting before retrying a request." +"80010117","-2147417833","2147549463","","Call context cannot be accessed after call completed." +"80010118","-2147417832","2147549464","","Impersonate on un-secure calls is not supported." +"80010119","-2147417831","2147549465","","Security must be initialized before any interfaces are marshaled or un-marshaled." +"8001011A","-2147417830","2147549466","","No security packages are installed on this machine or the user is not logged on or there are no compatible security packages between the client and server." +"8001011B","-2147417829","2147549467","","Access is denied." +"8001011C","-2147417828","2147549468","","Remote calls are not allowed for this process." +"8001011D","-2147417827","2147549469","","The marshaled interface data packet (OBJREF) has an invalid or unknown format." +"8001FFFF","-2147352577","2147614719","","An internal error occurred." +"80020001","-2147352575","2147614721","","Unknown interface." +"80020003","-2147352573","2147614723","","Member not found." +"80020004","-2147352572","2147614724","","Parameter not found." +"80020005","-2147352571","2147614725","","Type mismatch." +"80020006","-2147352570","2147614726","","Unknown name." +"80020007","-2147352569","2147614727","","No named arguments." +"80020008","-2147352568","2147614728","","Bad variable type." +"80020009","-2147352567","2147614729","","Exception occurred." +"8002000A","-2147352566","2147614730","","Out of present range." +"8002000B","-2147352565","2147614731","","Invalid index." +"8002000C","-2147352564","2147614732","","Unknown language." +"8002000D","-2147352563","2147614733","","Memory is locked." +"8002000E","-2147352562","2147614734","","Invalid number of parameters." +"8002000F","-2147352561","2147614735","","Parameter not optional." +"80020010","-2147352560","2147614736","","Invalid callee." +"80020011","-2147352559","2147614737","","Does not support a collection." +"80028016","-2147319786","2147647510","","Buffer too small." +"80028018","-2147319784","2147647512","","Old format or invalid type library." +"80028019","-2147319783","2147647513","","Old format or invalid type library." +"8002801C","-2147319780","2147647516","","Error accessing the OLE registry." +"8002801D","-2147319779","2147647517","","Library not registered." +"80028027","-2147319769","2147647527","","Bound to unknown type." +"80028028","-2147319768","2147647528","","Qualified name disallowed." +"80028029","-2147319767","2147647529","","Invalid forward reference." +"8002802A","-2147319766","2147647530","","Type mismatch." +"8002802B","-2147319765","2147647531","","Element not found." +"8002802C","-2147319764","2147647532","","Ambiguous name." +"8002802D","-2147319763","2147647533","","Name already exists in the library." +"8002802E","-2147319762","2147647534","","Unknown LCID." +"8002802F","-2147319761","2147647535","","Function not defined in specified DLL." +"800288BD","-2147317571","2147649725","","Wrong module kind for the operation." +"800288C5","-2147317563","2147649733","","Size may not exceed 64K." +"800288C6","-2147317562","2147649734","","Duplicate ID in inheritance hierarchy." +"800288CF","-2147317553","2147649743","","Incorrect inheritance depth in standard OLE hmember." +"80028CA0","-2147316576","2147650720","","Type mismatch." +"80028CA1","-2147316575","2147650721","","Invalid number of arguments." +"80028CA2","-2147316574","2147650722","","I/O Error." +"80028CA3","-2147316573","2147650723","","Error creating unique tmp file." +"80029C4A","-2147312566","2147654730","","Error loading type library/DLL." +"80029C83","-2147312509","2147654787","","Inconsistent property functions." +"80029C84","-2147312508","2147654788","","Circular dependency between types/modules." +"80030001","-2147287039","2147680257","","Unable to perform requested operation." +"80030002","-2147287038","2147680258","","%1 could not be found." +"80030003","-2147287037","2147680259","","The path %1 could not be found." +"80030004","-2147287036","2147680260","","There are insufficient resources to open another file." +"80030005","-2147287035","2147680261","","Access Denied." +"80030006","-2147287034","2147680262","","Attempted an operation on an invalid object." +"80030008","-2147287032","2147680264","","There is insufficient memory available to complete operation." +"80030009","-2147287031","2147680265","","Invalid pointer error." +"80030012","-2147287022","2147680274","","There are no more entries to return." +"80030013","-2147287021","2147680275","","Disk is write-protected." +"80030019","-2147287015","2147680281","","An error occurred during a seek operation." +"8003001D","-2147287011","2147680285","","A disk error occurred during a write operation." +"8003001E","-2147287010","2147680286","","A disk error occurred during a read operation." +"80030020","-2147287008","2147680288","","A share violation has occurred." +"80030021","-2147287007","2147680289","","A lock violation has occurred." +"80030050","-2147286960","2147680336","","%1 already exists." +"80030057","-2147286953","2147680343","","Invalid parameter error." +"80030070","-2147286928","2147680368","","There is insufficient disk space to complete operation." +"800300F0","-2147286800","2147680496","","Illegal write of non-simple property to simple property set." +"800300FA","-2147286790","2147680506","","An API call exited abnormally." +"800300FB","-2147286789","2147680507","","The file %1 is not a valid compound file." +"800300FC","-2147286788","2147680508","","The name %1 is not valid." +"800300FD","-2147286787","2147680509","","An unexpected error occurred." +"800300FE","-2147286786","2147680510","","That function is not implemented." +"800300FF","-2147286785","2147680511","","Invalid flag error." +"80030100","-2147286784","2147680512","","Attempted to use an object that is busy." +"80030101","-2147286783","2147680513","","The storage has been changed since the last commit." +"80030102","-2147286782","2147680514","","Attempted to use an object that has ceased to exist." +"80030103","-2147286781","2147680515","","Can't save." +"80030104","-2147286780","2147680516","","The compound file %1 was produced with an incompatible version of storage." +"80030105","-2147286779","2147680517","","The compound file %1 was produced with a newer version of storage." +"80030106","-2147286778","2147680518","","Share.exe or equivalent is required for operation." +"80030107","-2147286777","2147680519","","Illegal operation called on non-file based storage." +"80030108","-2147286776","2147680520","","Illegal operation called on object with extant marshallings." +"80030109","-2147286775","2147680521","","The docfile has been corrupted." +"80030110","-2147286768","2147680528","","OLE32.DLL has been loaded at the wrong address." +"80030201","-2147286527","2147680769","","The file download was aborted abnormally." +"80030202","-2147286526","2147680770","","The file download has been terminated." +"80040000","-2147221504","2147745792","","Invalid OLEVERB structure." +"80040001","-2147221503","2147745793","","Invalid advice flags." +"80040002","-2147221502","2147745794","","Can't enumerate any more." +"80040003","-2147221501","2147745795","","This implementation doesn't take advises." +"80040004","-2147221500","2147745796","","There is no connection for this connection ID." +"80040005","-2147221499","2147745797","","Need to run the object to perform this operation." +"80040006","-2147221498","2147745798","","There is no cache to operate on." +"80040007","-2147221497","2147745799","","Un-initialized object." +"80040008","-2147221496","2147745800","","Linked object's source class has changed." +"80040009","-2147221495","2147745801","","Not able to get the moniker of the object." +"8004000A","-2147221494","2147745802","","Not able to bind to the source." +"8004000B","-2147221493","2147745803","","Object is static; operation not allowed." +"8004000C","-2147221492","2147745804","","User cancelled out of save dialog." +"8004000D","-2147221491","2147745805","","Invalid rectangle." +"8004000E","-2147221490","2147745806","","compobj.dll is too old for the ole2.dll initialized." +"8004000F","-2147221489","2147745807","","Invalid window handle." +"80040010","-2147221488","2147745808","","Object is not in any of the inplace active states." +"80040011","-2147221487","2147745809","","Not able to convert object." +"80040012","-2147221486","2147745810","","Not able to perform the operation because object is not given storage yet." +"8004005","134234117","-4160733179","","Resource missing." +"80040064","-2147221404","2147745892","","Invalid FORMATETC structure." +"80040065","-2147221403","2147745893","","Invalid DVTARGETDEVICE structure." +"80040066","-2147221402","2147745894","","Invalid STDGMEDIUM structure." +"80040067","-2147221401","2147745895","","Invalid STATDATA structure." +"80040068","-2147221400","2147745896","","Invalid lindex." +"80040069","-2147221399","2147745897","","Invalid tymed." +"8004006A","-2147221398","2147745898","","Invalid clipboard format." +"8004006B","-2147221397","2147745899","","Invalid aspect(s)." +"8004006C","-2147221396","2147745900","","tdSize parameter of the DVTARGETDEVICE structure is invalid." +"8004006D","-2147221395","2147745901","","Object doesn't support IViewObject interface." +"80040100","-2147221248","2147746048","","Trying to revoke a drop target that has not been registered." +"80040101","-2147221247","2147746049","","This window has already been registered as a drop target." +"80040102","-2147221246","2147746050","","Invalid window handle." +"80040110","-2147221232","2147746064","","Class does not support aggregation (or class object is remote)." +"80040111","-2147221231","2147746065","","ClassFactory cannot supply requested class." +"80040140","-2147221184","2147746112","","Error drawing view." +"80040150","-2147221168","2147746128","","Could not read key from registry." +"80040151","-2147221167","2147746129","","Could not write key to registry." +"80040152","-2147221166","2147746130","","Could not find the key in the registry." +"80040153","-2147221165","2147746131","","Invalid value for registry." +"80040154","-2147221164","2147746132","REGDB_E_CLASSNOTREG","Class not registered." +"80040155","-2147221163","2147746133","","Interface not registered." +"80040170","-2147221136","2147746160","","Cache not updated." +"80040180","-2147221120","2147746176","","No verbs for OLE object." +"80040181","-2147221119","2147746177","","Invalid verb for OLE object." +"800401A0","-2147221088","2147746208","","Undo is not available." +"800401A1","-2147221087","2147746209","","Space for tools is not available." +"800401C0","-2147221056","2147746240","","OLESTREAM Get method failed." +"800401C1","-2147221055","2147746241","","OLESTREAM Put method failed." +"800401C2","-2147221054","2147746242","","Contents of the OLESTREAM not in correct format." +"800401C3","-2147221053","2147746243","","There was an error in a Windows GDI call while converting the bitmap to a DIB." +"800401C4","-2147221052","2147746244","","Contents of the IStorage not in correct format." +"800401C5","-2147221051","2147746245","","Contents of IStorage is missing one of the standard streams." +"800401C6","-2147221050","2147746246","","There was an error in a Windows GDI call while converting the DIB to a bitmap." +"800401D0","-2147221040","2147746256","","OpenClipboard Failed." +"800401D1","-2147221039","2147746257","","EmptyClipboard Failed." +"800401D2","-2147221038","2147746258","","SetClipboard Failed." +"800401D3","-2147221037","2147746259","","Data on clipboard is invalid." +"800401D4","-2147221036","2147746260","","CloseClipboard Failed." +"800401E0","-2147221024","2147746272","","Moniker needs to be connected manually." +"800401E1","-2147221023","2147746273","","Operation exceeded deadline." +"800401E2","-2147221022","2147746274","","Moniker needs to be generic." +"800401E3","-2147221021","2147746275","","Operation unavailable." +"800401E4","-2147221020","2147746276","","Invalid syntax." +"800401E5","-2147221019","2147746277","","No object for moniker." +"800401E6","-2147221018","2147746278","","Bad extension for file." +"800401E7","-2147221017","2147746279","","Intermediate operation failed." +"800401E8","-2147221016","2147746280","","Moniker is not bindable." +"800401E9","-2147221015","2147746281","","Moniker is not bound." +"800401EA","-2147221014","2147746282","","Moniker cannot open file." +"800401EB","-2147221013","2147746283","","User input required for operation to succeed." +"800401EC","-2147221012","2147746284","","Moniker class has no inverse." +"800401ED","-2147221011","2147746285","","Moniker does not refer to storage." +"800401EE","-2147221010","2147746286","","No common prefix." +"800401EF","-2147221009","2147746287","","Moniker could not be enumerated." +"800401F0","-2147221008","2147746288","","CoInitialize has not been called." +"800401F1","-2147221007","2147746289","","CoInitialize has already been called." +"800401F2","-2147221006","2147746290","","Class of object cannot be determined." +"800401F3","-2147221005","2147746291","CO_E_Classstring","Invalid class string." +"800401F4","-2147221004","2147746292","","Invalid interface string." +"800401F5","-2147221003","2147746293","","Application not found." +"800401F6","-2147221002","2147746294","","Application cannot be run more than once." +"800401F7","-2147221001","2147746295","","Some error in application program." +"800401F8","-2147221000","2147746296","","DLL for class not found." +"800401F9","-2147220999","2147746297","","Error in the DLL." +"800401FA","-2147220998","2147746298","","Wrong OS or OS version for application." +"800401FB","-2147220997","2147746299","","Object is not registered." +"800401FC","-2147220996","2147746300","","Object is already registered." +"800401FD","-2147220995","2147746301","CO_E_Objnotconnected","Object is not connected to server." +"800401FE","-2147220994","2147746302","","Application was launched but it didn't register a class factory." +"800401FF","-2147220993","2147746303","","Object has been released." +"80040200","-2147220992","2147746304","","Unable to impersonate DCOM client." +"80040201","-2147220991","2147746305","","Unable to obtain server's security context." +"80040202","-2147220990","2147746306","","Unable to open the access token of the current thread." +"80040203","-2147220989","2147746307","","Unable to obtain user info from an access token." +"80040204","-2147220988","2147746308","","The client who called IAccessControl::IsAccessPermitted was the trustee provided tot he method." +"80040205","-2147220987","2147746309","","Unable to obtain the client's security blanket." +"80040206","-2147220986","2147746310","EVENT_E_INTERNALERROR","There will be event messages in Application/System log regarding the errors." +"80040207","-2147220985","2147746311","","The system function." +"80040208","-2147220984","2147746312","","Either NetAccessDel or NetAccessAdd returned an error code." +"80040209","-2147220983","2147746313","","One of the trustee strings provided by the user did not conform to the \ syntax and it was not the ""*"" string." +"8004020A","-2147220982","2147746314","","One of the security identifiers provided by the user was invalid." +"8004020B","-2147220981","2147746315","","Unable to convert a wide character trustee string to a multibyte trustee string." +"8004020C","-2147220980","2147746316","","Unable to find a security identifier that corresponds to a trustee string provided by the user." +"8004020D","-2147220979","2147746317","","The system function." +"8004020E","-2147220978","2147746318","","Unable to find a trustee name that corresponds to a security identifier provided by the user." +"8004020F","-2147220977","2147746319","","The system function." +"80040210","-2147220976","2147746320","","Unable to set or reset a serialization handle." +"80040211","-2147220975","2147746321","","Unable to obtain the Windows directory." +"80040212","-2147220974","2147746322","","Path too long." +"80040213","-2147220973","2147746323","","Unable to generate a uuid." +"80040214","-2147220972","2147746324","","Unable to create file." +"80040215","-2147220971","2147746325","","Unable to close a serialization handle or a file handle." +"80040216","-2147220970","2147746326","","The number of ACEs in an ACL exceeds the system limit." +"80040217","-2147220969","2147746327","","Not all the DENY_ACCESS ACEs are arranged in front of the GRANT_ACCESS ACEs in the stream." +"80040218","-2147220968","2147746328","","The version of ACL format in the stream is not supported by this implementation of IAccessControl." +"80040219","-2147220967","2147746329","","Unable to open the access token of the server process." +"8004021A","-2147220966","2147746330","","Unable to decode the ACL in the stream provided by the user." +"8004021B","-2147220965","2147746331","","The COM IAccessControl object is not initialized." +"80041001","-2147217407","2147749889","","The call failed." +"80041002","-2147217406","2147749890","","The object could not be found." +"80041003","-2147217405","2147749891","","The current user does not have permission to perform the action." +"80041004","-2147217404","2147749892","","The provider has failed at some time other than during initialization." +"80041005","-2147217403","2147749893","","A type mismatch occurred." +"80041006","-2147217402","2147749894","","There was not enough memory for the operation." +"80041007","-2147217401","2147749895","","The IWbemContext object is not valid." +"80041008","-2147217400","2147749896","","One of the parameters to the call is not correct." +"80041009","-2147217399","2147749897","","The resource." +"8004100A","-2147217398","2147749898","","An internal." +"8004100B","-2147217397","2147749899","","One or more network packets were corrupted during a remote session." +"8004100C","-2147217396","2147749900","","The feature or operation is not supported." +"8004100D","-2147217395","2147749901","","The superclass specified is not valid." +"8004100E","-2147217394","2147749902","","The namespace specified could not be found." +"8004100F","-2147217393","2147749903","","The specified instance is not valid." +"80041010","-2147217392","2147749904","","The specified class is not valid." +"80041011","-2147217391","2147749905","","A provider referenced in the schema does not have a corresponding registration." +"80041014","-2147217388","2147749908","","A component." +"80041015","-2147217387","2147749909","","A networking error that prevents normal operation has occurred." +"80041016","-2147217386","2147749910","","The requested operation is not valid. This error usually applies to invalid attempts to delete classes or properties." +"80041017","-2147217385","2147749911","","The query was not syntactically valid." +"80041018","-2147217384","2147749912","","The requested query language is not supported." +"80070000","-2147024896","2147942400","","The operation completed successfully." +"80070001","-2147024895","2147942401","ERROR_INVALID_FUNCTION","Windows cannot install required files." +"80070002","-2147024894","2147942402","ERROR_FILE_NOT_FOUND","The System cannot find the file specified." +"80070003","-2147024893","2147942403","ERROR_PATH_NOT_FOUND","The system cannot find the path specified." +"80070004","-2147024892","2147942404","ERROR_TOO_MANY_OPEN_FILES","The system cannot open the file." +"80070005","-2147024891","2147942405","ERROR_ACCESS_DENIED","Access is denied.- The authentication method is not supported." +"80070006","-2147024890","2147942406","ERROR_INVALID_HANDLE","The handle is invalid." +"80070007","-2147024889","2147942407","ERROR_ARENA_TRASHED","The storage control blocks were destroyed." +"80070008","-2147024888","2147942408","ERROR_NOT_ENOUGH_MEMORY","The system is out of memory." +"80070009","-2147024887","2147942409","ERROR_INVALID_BLOCK","The storage control block address is invalid." +"8007000A","-2147024886","2147942410","ERROR_BAD_ENVIRONMENT","The environment is incorrect." +"8007000B","-2147024885","2147942411","ERROR_BAD_FORMAT","An attempt was made to load a program with an incorrect format." +"8007000C","-2147024884","2147942412","ERROR_INVALID_ACCESS","The access code is invalid." +"8007000D","-2147024883","2147942413","Error_invalid_data","The data is invalid." +"8007000E","-2147024882","2147942414","ERROR_OUTOFMEMORY","Not enough storage is available to complete this operation." +"8007000F","-2147024881","2147942415","ERROR_INVALID_DRIVE","The system cannot find the drive specified." +"80070010","-2147024880","2147942416","ERROR_CURRENT_DIRECTORY","The directory cannot be removed." +"80070011","-2147024879","2147942417","ERROR_NOT_SAME_DEVICE","The system cannot move the file to a different disk drive." +"80070012","-2147024878","2147942418","ERROR_NO_MORE_FILES","There are no more files." +"80070013","-2147024877","2147942419","ERROR_WRITE_PROTECT","The media is write protected." +"80070014","-2147024876","2147942420","ERROR_BAD_UNIT","The system cannot find the device specified." +"80070015","-2147024875","2147942421","ERROR_NOT_READY","The device is not ready." +"80070016","-2147024874","2147942422","ERROR_BAD_COMMAND","The device does not recognize the command." +"80070017","-2147024873","2147942423","ERROR_CRC","Data error (cyclic redundancy check)." +"80070018","-2147024872","2147942424","ERROR_BAD_LENGTH","The program issued a command but the command length is incorrect." +"80070019","-2147024871","2147942425","ERROR_SEEK","The drive cannot locate a specific area or track on the disk." +"8007001A","-2147024870","2147942426","ERROR_NOT_DOS_DISK","The specified disk or diskette cannot be accessed." +"8007001B","-2147024869","2147942427","ERROR_SECTOR_NOT_FOUND","The drive cannot find the sector requested." +"8007001C","-2147024868","2147942428","ERROR_OUT_OF_PAPER","The printer is out of paper." +"8007001D","-2147024867","2147942429","ERROR_WRITE_FAULT","The system cannot write to the specified device." +"8007001E","-2147024866","2147942430","ERROR_READ_FAULT","The system cannot read from the specified device." +"8007001F","-2147024865","2147942431","ERROR_GEN_FAILURE","A device attached to the system is not functioning." +"80070020","-2147024864","2147942432","ERROR_SHARING_VIOLATION","The process cannot access the file because it is being used by another process." +"80070021","-2147024863","2147942433","ERROR_LOCK_VIOLATION","The process cannot access the file because another process has locked a portion of the file." +"80070022","-2147024862","2147942434","ERROR_WRONG_DISK","The wrong diskette is in the drive. Insert %2 (Volume Serial Number: %3) into drive %1." +"80070024","-2147024860","2147942436","ERROR_SHARING_BUFFER_EXCEEDED","Too many files opened for sharing." +"80070026","-2147024858","2147942438","ERROR_HANDLE_EOF","Reached end of file." +"80070027","-2147024857","2147942439","ERROR_HANDLE_DISK_FULL","The disk is full." +"8007003","134246403","-4160720893","","The request is not supported." +"80070032","-2147024846","2147942450","ERROR_NOT_SUPPORTED","The network request is not supported." +"80070033","-2147024845","2147942451","ERROR_REM_NOT_LIST","The remote computer is not available." +"80070034","-2147024844","2147942452","ERROR_DUP_NAME","A duplicate name exists on the network." +"80070035","-2147024843","2147942453","ERROR_BAD_NETPATH","The network path was not found." +"80070036","-2147024842","2147942454","ERROR_NETWORK_BUSY","The network is busy." +"80070037","-2147024841","2147942455","ERROR_DEV_NOT_EXIST","The specified network resource or device is no longer available." +"80070038","-2147024840","2147942456","ERROR_TOO_MANY_CMDS","The network BIOS command limit has been reached." +"80070039","-2147024839","2147942457","ERROR_ADAP_HDW_ERR","A network adapter hardware error occurred." +"8007003A","-2147024838","2147942458","ERROR_BAD_NET_RESP","The specified server cannot perform the requested operation." +"8007003B","-2147024837","2147942459","ERROR_UNEXP_NET_ERR","An unexpected network error occurred." +"8007003C","-2147024836","2147942460","ERROR_BAD_REM_ADAP","The remote adapter is not compatible." +"8007003D","-2147024835","2147942461","ERROR_PRINTQ_FULL","The printer queue is full." +"8007003E","-2147024834","2147942462","ERROR_NO_SPOOL_SPACE","Space to store the file waiting to be printed is not available on the server." +"8007003F","-2147024833","2147942463","ERROR_PRINT_CANCELLED","Your file waiting to be printed was deleted." +"80070040","-2147024832","2147942464","ERROR_NETNAME_DELETED","The specified network name is no longer available." +"80070041","-2147024831","2147942465","ERROR_NETWORK_ACCESS_DENIED","Network access is denied." +"80070042","-2147024830","2147942466","ERROR_BAD_DEV_TYPE","The network resource type is not correct." +"80070043","-2147024829","2147942467","ERROR_BAD_NET_NAME","The network name cannot be found." +"80070044","-2147024828","2147942468","ERROR_TOO_MANY_NAMES","The name limit for the local computer network adapter card was exceeded." +"80070045","-2147024827","2147942469","ERROR_TOO_MANY_SESS","The network BIOS session limit was exceeded." +"80070046","-2147024826","2147942470","ERROR_SHARING_PAUSED","The remote server has been paused or is in the process of being started." +"80070047","-2147024825","2147942471","ERROR_REQ_NOT_ACCEP","No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept." +"80070048","-2147024824","2147942472","ERROR_REDIR_PAUSED","The specified printer or disk device has been paused." +"80070050","-2147024816","2147942480","ERROR_FILE_EXISTS","The file exists." +"80070052","-2147024814","2147942482","ERROR_CANNOT_MAKE","The directory or file cannot be created." +"80070053","-2147024813","2147942483","ERROR_FAIL_I24","Fail on INT 24." +"80070054","-2147024812","2147942484","ERROR_OUT_OF_STRUCTURES","Storage to process this request is not available." +"80070055","-2147024811","2147942485","ERROR_ALREADY_ASSIGNED","The local device name is already in use." +"80070056","-2147024810","2147942486","ERROR_INVALID_PASSWORD","The specified network password is not correct." +"80070057","-2147024809","2147942487","ERROR_INVALID_PARAMETER","The parameter is incorrect." +"80070058","-2147024808","2147942488","ERROR_NET_WRITE_FAULT","A write fault occurred on the network." +"80070059","-2147024807","2147942489","ERROR_NO_PROC_SLOTS","The system cannot start another process at this time." +"80070064","-2147024796","2147942500","ERROR_TOO_MANY_SEMAPHORES","Cannot create another system semaphore." +"80070065","-2147024795","2147942501","ERROR_EXCL_SEM_ALREADY_OWNED","The exclusive semaphore is owned by another process." +"80070066","-2147024794","2147942502","ERROR_SEM_IS_SET","The semaphore is set and cannot be closed." +"80070067","-2147024793","2147942503","ERROR_TOO_MANY_SEM_REQUESTS","The semaphore cannot be set again." +"80070068","-2147024792","2147942504","ERROR_INVALID_AT_INTERRUPT_TIME","Cannot request exclusive semaphores at interrupt time." +"80070069","-2147024791","2147942505","ERROR_SEM_OWNER_DIED","The previous ownership of this semaphore has ended." +"8007006A","-2147024790","2147942506","ERROR_SEM_USER_LIMIT","Insert the diskette for drive %1." +"8007006B","-2147024789","2147942507","ERROR_DISK_CHANGE","Program stopped because alternate diskette was not inserted." +"8007006C","-2147024788","2147942508","ERROR_DRIVE_LOCKED","The disk is in use or locked by another process." +"8007006D","-2147024787","2147942509","ERROR_BROKEN_PIPE","The pipe has been ended." +"8007006E","-2147024786","2147942510","ERROR_OPEN_FAILED","The system cannot open the device or file specified." +"8007006F","-2147024785","2147942511","ERROR_BUFFER_OVERFLOW","The file name is too long." +"80070070","-2147024784","2147942512","ERROR_DISK_FULL","There is not enough space on the disk." +"80070071","-2147024783","2147942513","ERROR_NO_MORE_SEARCH_HANDLES","No more internal file identifiers available." +"80070072","-2147024782","2147942514","ERROR_INVALID_TARGET_HANDLE","The target internal file identifier is incorrect." +"80070075","-2147024779","2147942517","ERROR_INVALID_CATEGORY","The IOCTL call made by the application program is not correct." +"80070076","-2147024778","2147942518","ERROR_INVALID_VERIFY_SWITCH","The verify-on-write switch parameter value is not correct." +"80070077","-2147024777","2147942519","ERROR_BAD_DRIVER_LEVEL","The system does not support the command requested." +"80070078","-2147024776","2147942520","ERROR_CALL_NOT_IMPLEMENTED","This function is only valid in Windows NT mode." +"80070079","-2147024775","2147942521","ERROR_SEM_TIMEOUT","The semaphore timeout period has expired." +"8007007A","-2147024774","2147942522","ERROR_INSUFFICIENT_BUFFER","The data area passed to a system call is too small." +"8007007B","-2147024773","2147942523","ERROR_INVALID_NAME","The filename." +"8007007C","-2147024772","2147942524","ERROR_INVALID_LEVEL","The system call level is not correct." +"8007007D","-2147024771","2147942525","ERROR_NO_VOLUME_LABEL","The disk has no volume label." +"8007007E","-2147024770","2147942526","ERROR_MOD_NOT_FOUND","The specified module could not be found." +"8007007F","-2147024769","2147942527","ERROR_PROC_NOT_FOUND","The specified procedure could not be found." +"80070080","-2147024768","2147942528","ERROR_WAIT_NO_CHILDREN","There are no child processes to wait for." +"80070081","-2147024767","2147942529","ERROR_CHILD_NOT_COMPLETE","The %1 application cannot be run in Windows NT mode." +"80070082","-2147024766","2147942530","ERROR_DIRECT_ACCESS_HANDLE","Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O." +"80070083","-2147024765","2147942531","ERROR_NEGATIVE_SEEK","An attempt was made to move the file pointer before the beginning of the file." +"80070084","-2147024764","2147942532","ERROR_SEEK_ON_DEVICE","The file pointer cannot be set on the specified device or file." +"80070085","-2147024763","2147942533","ERROR_IS_JOIN_TARGET","A JOIN or SUBST command cannot be used for a drive that contains previously joined drives." +"80070086","-2147024762","2147942534","ERROR_IS_JOINED","An attempt was made to use a JOIN or SUBST command on a drive that has already been joined." +"80070087","-2147024761","2147942535","ERROR_IS_SUBSTED","An attempt was made to use a JOIN or SUBST command on a drive that has already been substituted." +"80070088","-2147024760","2147942536","ERROR_NOT_JOINED","The system tried to delete the JOIN of a drive that is not joined." +"80070089","-2147024759","2147942537","ERROR_NOT_SUBSTED","The system tried to delete the substitution of a drive that is not substituted." +"8007008A","-2147024758","2147942538","ERROR_JOIN_TO_JOIN","The system tried to join a drive to a directory on a joined drive." +"8007008B","-2147024757","2147942539","ERROR_SUBST_TO_SUBST","The system tried to substitute a drive to a directory on a substituted drive." +"8007008C","-2147024756","2147942540","ERROR_JOIN_TO_SUBST","The system tried to join a drive to a directory on a substituted drive." +"8007008D","-2147024755","2147942541","ERROR_SUBST_TO_JOIN","The system tried to SUBST a drive to a directory on a joined drive." +"8007008E","-2147024754","2147942542","ERROR_BUSY_DRIVE","The system cannot perform a JOIN or SUBST at this time." +"8007008F","-2147024753","2147942543","ERROR_SAME_DRIVE","The system cannot join or substitute a drive to or for a directory on the same drive." +"80070090","-2147024752","2147942544","ERROR_DIR_NOT_ROOT","The directory is not a subdirectory of the root directory." +"80070091","-2147024751","2147942545","ERROR_DIR_NOT_EMPTY","The directory is not empty." +"80070092","-2147024750","2147942546","ERROR_IS_SUBST_PATH","The path specified is being used in a substitute." +"80070093","-2147024749","2147942547","ERROR_IS_JOIN_PATH","Not enough resources are available to process this command." +"80070094","-2147024748","2147942548","ERROR_PATH_BUSY","The path specified cannot be used at this time." +"80070095","-2147024747","2147942549","ERROR_IS_SUBST_TARGET","An attempt was made to join or substitute a drive for which a directory on the drive is the target of a previous substitute." +"80070096","-2147024746","2147942550","ERROR_SYSTEM_TRACE","System trace information was not specified in your CONFIG.SYS file." +"80070097","-2147024745","2147942551","ERROR_INVALID_EVENT_COUNT","The number of specified semaphore events for DosMuxSemWait is not correct." +"80070098","-2147024744","2147942552","ERROR_TOO_MANY_MUXWAITERS","DosMuxSemWait did not execute; too many semaphores are already set." +"80070099","-2147024743","2147942553","ERROR_INVALID_LIST_FORMAT","The DosMuxSemWait list is not correct." +"8007009A","-2147024742","2147942554","ERROR_LABEL_TOO_LONG","The volume label you entered exceeds the label character limit of the target file system." +"8007009B","-2147024741","2147942555","ERROR_TOO_MANY_TCBS","Cannot create another thread." +"8007009C","-2147024740","2147942556","ERROR_SIGNAL_REFUSED","The recipient process has refused the signal." +"8007009D","-2147024739","2147942557","ERROR_DISCARDED","The segment is already discarded and cannot be locked." +"8007009E","-2147024738","2147942558","ERROR_NOT_LOCKED","The segment is already unlocked." +"8007009F","-2147024737","2147942559","ERROR_BAD_THREADID_ADDR","The address for the thread ID is not correct." +"800700A0","-2147024736","2147942560","ERROR_BAD_ARGUMENTS","The argument string passed to DosExecPgm is not correct." +"800700A1","-2147024735","2147942561","ERROR_BAD_PATHNAME","The specified path is invalid." +"800700A2","-2147024734","2147942562","ERROR_SIGNAL_PENDING","A signal is already pending." +"800700A4","-2147024732","2147942564","ERROR_MAX_THRDS_REACHED","No more threads can be created in the system." +"800700A7","-2147024729","2147942567","ERROR_LOCK_FAILED","Unable to lock a region of a file." +"800700AA","-2147024726","2147942570","ERROR_BUSY","The requested resource is in use." +"800700AB","-2147024725","2147942571","ERROR_DEVICE_SUPPORT_IN_PROGRESS","" +"800700AD","-2147024723","2147942573","ERROR_CANCEL_VIOLATION","A lock request was not outstanding for the supplied cancel region." +"800700AE","-2147024722","2147942574","ERROR_ATOMIC_LOCKS_NOT_SUPPORTED","The file system does not support atomic changes to the lock type." +"800700B4","-2147024716","2147942580","ERROR_INVALID_SEGMENT_NUMBER","The system detected a segment number that was not correct." +"800700B6","-2147024714","2147942582","ERROR_INVALID_ORDINAL","The operating system cannot run %1." +"800700B7","-2147024713","2147942583","ERROR_ALREADY_EXISTS","Cannot create a file when that file already exists." +"800700BA","-2147024710","2147942586","ERROR_INVALID_FLAG_NUMBER","The flag passed is not correct." +"800700BB","-2147024709","2147942587","ERROR_SEM_NOT_FOUND","The specified system semaphore name was not found." +"800700BC","-2147024708","2147942588","ERROR_INVALID_STARTING_CODESEG","The operating system cannot run %1." +"800700BD","-2147024707","2147942589","ERROR_INVALID_STACKSEG","The operating system cannot run %1." +"800700BE","-2147024706","2147942590","ERROR_INVALID_MODULETYPE","The operating system cannot run %1." +"800700BF","-2147024705","2147942591","ERROR_INVALID_EXE_SIGNATURE","Cannot run %1 in Windows NT mode." +"800700C0","-2147024704","2147942592","ERROR_EXE_MARKED_INVALID","The operating system cannot run %1." +"800700C1","-2147024703","2147942593","ERROR_BAD_EXE_FORMAT","is not a valid Win32 application." +"800700C2","-2147024702","2147942594","ERROR_ITERATED_DATA_EXCEEDS_64k","The operating system cannot run %1." +"800700C3","-2147024701","2147942595","ERROR_INVALID_MINALLOCSIZE","The operating system cannot run %1." +"800700C4","-2147024700","2147942596","ERROR_DYNLINK_FROM_INVALID_RING","The operating system cannot run this application program." +"800700C5","-2147024699","2147942597","ERROR_IOPL_NOT_ENABLED","The operating system is not presently configured to run this application." +"800700C6","-2147024698","2147942598","ERROR_INVALID_SEGDPL","The operating system cannot run %1." +"800700C7","-2147024697","2147942599","ERROR_AUTODATASEG_EXCEEDS_64k","The operating system cannot run this application program." +"800700C8","-2147024696","2147942600","ERROR_RING2SEG_MUST_BE_MOVABLE","The code segment cannot be greater than or equal to 64KB." +"800700C9","-2147024695","2147942601","ERROR_RELOC_CHAIN_XEEDS_SEGLIM","The operating system cannot run %1." +"800700CA","-2147024694","2147942602","ERROR_INFLOOP_IN_RELOC_CHAIN","The operating system cannot run %1." +"800700CB","-2147024693","2147942603","ERROR_ENVVAR_NOT_FOUND","The system could not find the environment option that was entered." +"800700CD","-2147024691","2147942605","ERROR_NO_SIGNAL_SENT","No process in the command subtree has a signal handler." +"800700CE","-2147024690","2147942606","ERROR_FILENAME_EXCED_RANGE","The filename or extension is too long." +"800700CF","-2147024689","2147942607","ERROR_RING2_STACK_IN_USE","The ring 2 stack is in use." +"800700D0","-2147024688","2147942608","ERROR_META_EXPANSION_TOO_LONG","The global filename characters." +"800700D1","-2147024687","2147942609","ERROR_INVALID_SIGNAL_NUMBER","The signal being posted is not correct." +"800700D2","-2147024686","2147942610","ERROR_THREAD_1_INACTIVE","The signal handler cannot be set." +"800700D4","-2147024684","2147942612","ERROR_LOCKED","The segment is locked and cannot be reallocated." +"800700D6","-2147024682","2147942614","ERROR_TOO_MANY_MODULES","Too many dynamic link modules are attached to this program or dynamic link module." +"800700D7","-2147024681","2147942615","ERROR_NESTING_NOT_ALLOWED","Can't nest calls to LoadModule." +"800700D8","-2147024680","2147942616","ERROR_EXE_MACHINE_TYPE_MISMATCH","This version of this application is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher. (Should this have `Architecture: x64`?)." +"800700D9","-2147024679","2147942617","ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY","" +"800700DA","-2147024678","2147942618","ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY","" +"800700DC","-2147024676","2147942620","ERROR_FILE_CHECKED_OUT","" +"800700DD","-2147024675","2147942621","ERROR_CHECKOUT_REQUIRED","" +"800700DE","-2147024674","2147942622","ERROR_BAD_FILE_TYPE","" +"800700DF","-2147024673","2147942623","ERROR_FILE_TOO_LARGE","" +"800700E0","-2147024672","2147942624","ERROR_FORMS_AUTH_REQUIRED","" +"800700E1","-2147024671","2147942625","ERROR_VIRUS_INFECTED","" +"800700E2","-2147024670","2147942626","ERROR_VIRUS_DELETED","" +"800700E5","-2147024667","2147942629","ERROR_PIPE_LOCAL","" +"800700E6","-2147024666","2147942630","ERROR_BAD_PIPE","The pipe state is invalid." +"800700E7","-2147024665","2147942631","Error_Pipe_Busy","All pipe instances are busy." +"800700E8","-2147024664","2147942632","ERROR_NO_DATA","The pipe is being closed." +"800700E9","-2147024663","2147942633","ERROR_PIPE_NOT_CONNECTED","No process is on the other end of the pipe." +"800700EA","-2147024662","2147942634","ERROR_MORE_DATA","More data is available." +"800700EB","-2147024661","2147942635","ERROR_NO_WORK_DONE","" +"800700F0","-2147024656","2147942640","ERROR_VC_DISCONNECTED","The session was cancelled." +"800700FE","-2147024642","2147942654","ERROR_INVALID_EA_NAME","The specified extended attribute name was invalid." +"800700FF","-2147024641","2147942655","ERROR_EA_LIST_INCONSISTENT","The extended attributes are inconsistent." +"80070102","-2147024638","2147942658","WAIT_TIMEOUT","" +"80070103","-2147024637","2147942659","ERROR_NO_MORE_ITEMS","No more data is available." +"8007010A","-2147024630","2147942666","ERROR_CANNOT_COPY","The Copy API cannot be used." +"8007010B","-2147024629","2147942667","ERROR_DIRECTORY","The directory name is invalid." +"80070113","-2147024621","2147942675","ERROR_EAS_DIDNT_FIT","The extended attributes did not fit in the buffer." +"80070114","-2147024620","2147942676","ERROR_EA_FILE_CORRUPT","The extended attribute file on the mounted file system is corrupt." +"80070115","-2147024619","2147942677","ERROR_EA_TABLE_FULL","The extended attribute table file is full." +"80070116","-2147024618","2147942678","ERROR_INVALID_EA_HANDLE","The specified extended attribute handle is invalid." +"8007011A","-2147024614","2147942682","ERROR_EAS_NOT_SUPPORTED","The mounted file system does not support extended attributes." +"80070120","-2147024608","2147942688","ERROR_NOT_OWNER","Attempt to release mutex not owned by caller." +"8007012A","-2147024598","2147942698","ERROR_TOO_MANY_POSTS","Too many posts were made to a semaphore." +"8007012B","-2147024597","2147942699","ERROR_PARTIAL_COPY","Only part of a Read/WriteProcessMemory request was completed." +"8007012C","-2147024596","2147942700","ERROR_OPLOCK_NOT_GRANTED","" +"8007012D","-2147024595","2147942701","ERROR_INVALID_OPLOCK_PROTOCOL","" +"8007012E","-2147024594","2147942702","ERROR_DISK_TOO_FRAGMENTED","" +"8007012F","-2147024593","2147942703","ERROR_DELETE_PENDING","" +"80070130","-2147024592","2147942704","ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING","" +"80070131","-2147024591","2147942705","ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME","" +"80070132","-2147024590","2147942706","ERROR_SECURITY_STREAM_IS_INCONSISTENT","" +"80070133","-2147024589","2147942707","ERROR_INVALID_LOCK_RANGE","" +"80070134","-2147024588","2147942708","ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT","" +"80070135","-2147024587","2147942709","ERROR_NOTIFICATION_GUID_ALREADY_DEFINED","" +"80070136","-2147024586","2147942710","ERROR_INVALID_EXCEPTION_HANDLER","" +"80070137","-2147024585","2147942711","ERROR_DUPLICATE_PRIVILEGES","" +"80070138","-2147024584","2147942712","ERROR_NO_RANGES_PROCESSED","" +"80070139","-2147024583","2147942713","ERROR_NOT_ALLOWED_ON_SYSTEM_FILE","" +"8007013A","-2147024582","2147942714","ERROR_DISK_RESOURCES_EXHAUSTED","" +"8007013B","-2147024581","2147942715","ERROR_INVALID_TOKEN","" +"8007013C","-2147024580","2147942716","ERROR_DEVICE_FEATURE_NOT_SUPPORTED","" +"8007013D","-2147024579","2147942717","ERROR_MR_MID_NOT_FOUND","The system cannot find message for message number 0x%1 in message file for %2." +"8007013E","-2147024578","2147942718","ERROR_SCOPE_NOT_FOUND","" +"8007013F","-2147024577","2147942719","ERROR_UNDEFINED_SCOPE","" +"80070140","-2147024576","2147942720","ERROR_INVALID_CAP","" +"80070141","-2147024575","2147942721","ERROR_DEVICE_UNREACHABLE","" +"80070142","-2147024574","2147942722","ERROR_DEVICE_NO_RESOURCES","" +"80070143","-2147024573","2147942723","ERROR_DATA_CHECKSUM_ERROR","" +"80070144","-2147024572","2147942724","ERROR_INTERMIXED_KERNEL_EA_OPERATION","" +"80070146","-2147024570","2147942726","ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED","" +"80070147","-2147024569","2147942727","ERROR_OFFSET_ALIGNMENT_VIOLATION","" +"80070148","-2147024568","2147942728","ERROR_INVALID_FIELD_IN_PARAMETER_LIST","" +"80070149","-2147024567","2147942729","ERROR_OPERATION_IN_PROGRESS","" +"8007014A","-2147024566","2147942730","ERROR_BAD_DEVICE_PATH","" +"8007014B","-2147024565","2147942731","ERROR_TOO_MANY_DESCRIPTORS","" +"8007014C","-2147024564","2147942732","ERROR_SCRUB_DATA_DISABLED","" +"8007014D","-2147024563","2147942733","ERROR_NOT_REDUNDANT_STORAGE","" +"8007014E","-2147024562","2147942734","ERROR_RESIDENT_FILE_NOT_SUPPORTED","" +"8007014F","-2147024561","2147942735","ERROR_COMPRESSED_FILE_NOT_SUPPORTED","" +"80070150","-2147024560","2147942736","ERROR_DIRECTORY_NOT_SUPPORTED","" +"80070151","-2147024559","2147942737","ERROR_NOT_READ_FROM_COPY","" +"80070152","-2147024558","2147942738","ERROR_FT_WRITE_FAILURE","" +"80070153","-2147024557","2147942739","ERROR_FT_DI_SCAN_REQUIRED","" +"80070154","-2147024556","2147942740","ERROR_INVALID_KERNEL_INFO_VERSION","" +"80070155","-2147024555","2147942741","ERROR_INVALID_PEP_INFO_VERSION","" +"80070156","-2147024554","2147942742","ERROR_OBJECT_NOT_EXTERNALLY_BACKED","" +"80070157","-2147024553","2147942743","ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN","" +"80070158","-2147024552","2147942744","ERROR_COMPRESSION_NOT_BENEFICIAL","" +"80070159","-2147024551","2147942745","ERROR_STORAGE_TOPOLOGY_ID_MISMATCH","" +"8007015A","-2147024550","2147942746","ERROR_BLOCKED_BY_PARENTAL_CONTROLS","" +"8007015B","-2147024549","2147942747","ERROR_BLOCK_TOO_MANY_REFERENCES","" +"8007015C","-2147024548","2147942748","ERROR_MARKED_TO_DISALLOW_WRITES","" +"8007015D","-2147024547","2147942749","ERROR_ENCLAVE_FAILURE","" +"8007015E","-2147024546","2147942750","ERROR_FAIL_NOACTION_REBOOT","" +"8007015F","-2147024545","2147942751","ERROR_FAIL_SHUTDOWN","" +"80070160","-2147024544","2147942752","ERROR_FAIL_RESTART","" +"80070161","-2147024543","2147942753","ERROR_MAX_SESSIONS_REACHED","" +"80070162","-2147024542","2147942754","ERROR_NETWORK_ACCESS_DENIED_EDP","" +"80070163","-2147024541","2147942755","ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL","" +"80070164","-2147024540","2147942756","ERROR_EDP_POLICY_DENIES_OPERATION","" +"80070165","-2147024539","2147942757","ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED","" +"80070166","-2147024538","2147942758","ERROR_CLOUD_FILE_PROVIDER_UNKNOWN","" +"80070167","-2147024537","2147942759","ERROR_DEVICE_IN_MAINTENANCE","" +"80070168","-2147024536","2147942760","ERROR_NOT_SUPPORTED_ON_DAX","" +"80070169","-2147024535","2147942761","ERROR_DAX_MAPPING_EXISTS","" +"8007016A","-2147024534","2147942762","ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING","" +"8007016B","-2147024533","2147942763","ERROR_CLOUD_FILE_METADATA_CORRUPT","" +"8007016C","-2147024532","2147942764","ERROR_CLOUD_FILE_METADATA_TOO_LARGE","" +"8007016D","-2147024531","2147942765","ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE","" +"8007016E","-2147024530","2147942766","ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH","" +"8007016F","-2147024529","2147942767","ERROR_CHILD_PROCESS_BLOCKED","" +"80070170","-2147024528","2147942768","ERROR_STORAGE_LOST_DATA_PERSISTENCE","" +"80070171","-2147024527","2147942769","ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE","" +"80070172","-2147024526","2147942770","ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT","" +"80070173","-2147024525","2147942771","ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY","" +"80070174","-2147024524","2147942772","ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN","" +"80070175","-2147024523","2147942773","ERROR_GDI_HANDLE_LEAK","" +"80070176","-2147024522","2147942774","ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS","" +"80070177","-2147024521","2147942775","ERROR_CLOUD_FILE_METADATA_VERSION_NOT_SUPPORTED","" +"80070178","-2147024520","2147942776","ERROR_NOT_A_CLOUD_FILE","" +"80070179","-2147024519","2147942777","ERROR_CLOUD_FILE_NOT_IN_SYNC","" +"80070190","-2147024496","2147942800","ERROR_THREAD_MODE_ALREADY_BACKGROUND","" +"80070191","-2147024495","2147942801","ERROR_THREAD_MODE_NOT_BACKGROUND","" +"80070192","-2147024494","2147942802","ERROR_PROCESS_MODE_ALREADY_BACKGROUND","" +"80070193","-2147024493","2147942803","ERROR_PROCESS_MODE_NOT_BACKGROUND","" +"800701C2","-2147024446","2147942850","ERROR_CAPAUTHZ_NOT_DEVUNLOCKED","" +"800701C3","-2147024445","2147942851","ERROR_CAPAUTHZ_CHANGE_TYPE","" +"800701C4","-2147024444","2147942852","ERROR_CAPAUTHZ_NOT_PROVISIONED","" +"800701C5","-2147024443","2147942853","ERROR_CAPAUTHZ_NOT_AUTHORIZED","" +"800701C6","-2147024442","2147942854","ERROR_CAPAUTHZ_NO_POLICY","" +"800701C7","-2147024441","2147942855","ERROR_CAPAUTHZ_DB_CORRUPTED","" +"800701E0","-2147024416","2147942880","ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT","" +"800701E1","-2147024415","2147942881","ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT","" +"800701E2","-2147024414","2147942882","ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT","" +"800701E3","-2147024413","2147942883","ERROR_DEVICE_HARDWARE_ERROR","" +"800701E7","-2147024409","2147942887","ERROR_INVALID_ADDRESS","Attempt to access invalid address." +"800701F4","-2147024396","2147942900","ERROR_USER_PROFILE_LOAD","" +"80070216","-2147024362","2147942934","ERROR_ARITHMETIC_OVERFLOW","Arithmetic result exceeded 32 bits." +"80070217","-2147024361","2147942935","ERROR_PIPE_CONNECTED","There is a process on other end of the pipe." +"80070218","-2147024360","2147942936","ERROR_PIPE_LISTENING","Waiting for a process to open the other end of the pipe." +"80070219","-2147024359","2147942937","ERROR_VERIFIER_STOP","" +"8007021A","-2147024358","2147942938","ERROR_ABIOS_ERROR","" +"8007021B","-2147024357","2147942939","ERROR_WX86_WARNING","" +"8007021C","-2147024356","2147942940","ERROR_WX86_ERROR","" +"8007021D","-2147024355","2147942941","ERROR_TIMER_NOT_CANCELED","" +"8007021E","-2147024354","2147942942","ERROR_UNWIND","" +"8007021F","-2147024353","2147942943","ERROR_BAD_STACK","" +"80070220","-2147024352","2147942944","ERROR_INVALID_UNWIND_TARGET","" +"80070221","-2147024351","2147942945","ERROR_INVALID_PORT_ATTRIBUTES","" +"80070222","-2147024350","2147942946","ERROR_PORT_MESSAGE_TOO_LONG","" +"80070223","-2147024349","2147942947","ERROR_INVALID_QUOTA_LOWER","" +"80070224","-2147024348","2147942948","ERROR_DEVICE_ALREADY_ATTACHED","" +"80070225","-2147024347","2147942949","ERROR_INSTRUCTION_MISALIGNMENT","" +"80070226","-2147024346","2147942950","ERROR_PROFILING_NOT_STARTED","" +"80070227","-2147024345","2147942951","ERROR_PROFILING_NOT_STOPPED","" +"80070228","-2147024344","2147942952","ERROR_COULD_NOT_INTERPRET","" +"80070229","-2147024343","2147942953","ERROR_PROFILING_AT_LIMIT","" +"8007022A","-2147024342","2147942954","ERROR_CANT_WAIT","" +"8007022B","-2147024341","2147942955","ERROR_CANT_TERMINATE_SELF","" +"8007022C","-2147024340","2147942956","ERROR_UNEXPECTED_MM_CREATE_ERR","" +"8007022D","-2147024339","2147942957","ERROR_UNEXPECTED_MM_MAP_ERROR","" +"8007022E","-2147024338","2147942958","ERROR_UNEXPECTED_MM_EXTEND_ERR","" +"8007022F","-2147024337","2147942959","ERROR_BAD_FUNCTION_TABLE","" +"80070230","-2147024336","2147942960","ERROR_NO_GUID_TRANSLATION","" +"80070231","-2147024335","2147942961","ERROR_INVALID_LDT_SIZE","" +"80070233","-2147024333","2147942963","ERROR_INVALID_LDT_OFFSET","" +"80070234","-2147024332","2147942964","ERROR_INVALID_LDT_DESCRIPTOR","" +"80070235","-2147024331","2147942965","ERROR_TOO_MANY_THREADS","" +"80070236","-2147024330","2147942966","ERROR_THREAD_NOT_IN_PROCESS","" +"80070237","-2147024329","2147942967","ERROR_PAGEFILE_QUOTA_EXCEEDED","" +"80070238","-2147024328","2147942968","ERROR_LOGON_SERVER_CONFLICT","" +"80070239","-2147024327","2147942969","ERROR_SYNCHRONIZATION_REQUIRED","" +"8007023A","-2147024326","2147942970","ERROR_NET_OPEN_FAILED","" +"8007023B","-2147024325","2147942971","ERROR_IO_PRIVILEGE_FAILED","" +"8007023C","-2147024324","2147942972","ERROR_CONTROL_C_EXIT","" +"8007023D","-2147024323","2147942973","ERROR_MISSING_SYSTEMFILE","" +"8007023E","-2147024322","2147942974","ERROR_UNHANDLED_EXCEPTION","" +"8007023F","-2147024321","2147942975","ERROR_APP_INIT_FAILURE","" +"80070240","-2147024320","2147942976","ERROR_PAGEFILE_CREATE_FAILED","" +"80070241","-2147024319","2147942977","ERROR_INVALID_IMAGE_HASH","" +"80070242","-2147024318","2147942978","ERROR_NO_PAGEFILE","" +"80070243","-2147024317","2147942979","ERROR_ILLEGAL_FLOAT_CONTEXT","" +"80070244","-2147024316","2147942980","ERROR_NO_EVENT_PAIR","" +"80070245","-2147024315","2147942981","ERROR_DOMAIN_CTRLR_CONFIG_ERROR","" +"80070246","-2147024314","2147942982","ERROR_ILLEGAL_CHARACTER","" +"80070247","-2147024313","2147942983","ERROR_UNDEFINED_CHARACTER","" +"80070248","-2147024312","2147942984","ERROR_FLOPPY_VOLUME","" +"80070249","-2147024311","2147942985","ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT","" +"8007024A","-2147024310","2147942986","ERROR_BACKUP_CONTROLLER","" +"8007024B","-2147024309","2147942987","ERROR_MUTANT_LIMIT_EXCEEDED","" +"8007024C","-2147024308","2147942988","ERROR_FS_DRIVER_REQUIRED","" +"8007024D","-2147024307","2147942989","ERROR_CANNOT_LOAD_REGISTRY_FILE","" +"8007024E","-2147024306","2147942990","ERROR_DEBUG_ATTACH_FAILED","" +"8007024F","-2147024305","2147942991","ERROR_SYSTEM_PROCESS_TERMINATED","" +"80070250","-2147024304","2147942992","ERROR_DATA_NOT_ACCEPTED","" +"80070251","-2147024303","2147942993","ERROR_VDM_HARD_ERROR","" +"80070252","-2147024302","2147942994","ERROR_DRIVER_CANCEL_TIMEOUT","" +"80070253","-2147024301","2147942995","ERROR_REPLY_MESSAGE_MISMATCH","" +"80070254","-2147024300","2147942996","ERROR_LOST_WRITEBEHIND_DATA","" +"80070255","-2147024299","2147942997","ERROR_CLIENT_SERVER_PARAMETERS_INVALID","" +"80070256","-2147024298","2147942998","ERROR_NOT_TINY_STREAM","" +"80070257","-2147024297","2147942999","ERROR_STACK_OVERFLOW_READ","" +"80070258","-2147024296","2147943000","ERROR_CONVERT_TO_LARGE","" +"80070259","-2147024295","2147943001","ERROR_FOUND_OUT_OF_SCOPE","" +"8007025A","-2147024294","2147943002","ERROR_ALLOCATE_BUCKET","" +"8007025B","-2147024293","2147943003","ERROR_MARSHALL_OVERFLOW","" +"8007025C","-2147024292","2147943004","ERROR_INVALID_VARIANT","" +"8007025D","-2147024291","2147943005","ERROR_BAD_COMPRESSION_BUFFER","" +"8007025E","-2147024290","2147943006","ERROR_AUDIT_FAILED","" +"8007025F","-2147024289","2147943007","ERROR_TIMER_RESOLUTION_NOT_SET","" +"80070260","-2147024288","2147943008","ERROR_INSUFFICIENT_LOGON_INFO","" +"80070261","-2147024287","2147943009","ERROR_BAD_DLL_ENTRYPOINT","" +"80070262","-2147024286","2147943010","ERROR_BAD_SERVICE_ENTRYPOINT","" +"80070263","-2147024285","2147943011","ERROR_IP_ADDRESS_CONFLICT1","" +"80070264","-2147024284","2147943012","ERROR_IP_ADDRESS_CONFLICT2","" +"80070265","-2147024283","2147943013","ERROR_REGISTRY_QUOTA_LIMIT","" +"80070266","-2147024282","2147943014","ERROR_NO_CALLBACK_ACTIVE","" +"80070267","-2147024281","2147943015","ERROR_PWD_TOO_SHORT","" +"80070268","-2147024280","2147943016","ERROR_PWD_TOO_RECENT","" +"80070269","-2147024279","2147943017","ERROR_PWD_HISTORY_CONFLICT","" +"8007026A","-2147024278","2147943018","ERROR_UNSUPPORTED_COMPRESSION","" +"8007026B","-2147024277","2147943019","ERROR_INVALID_HW_PROFILE","" +"8007026C","-2147024276","2147943020","ERROR_INVALID_PLUGPLAY_DEVICE_PATH","" +"8007026D","-2147024275","2147943021","ERROR_QUOTA_LIST_INCONSISTENT","" +"8007026E","-2147024274","2147943022","ERROR_EVALUATION_EXPIRATION","" +"8007026F","-2147024273","2147943023","ERROR_ILLEGAL_DLL_RELOCATION","" +"80070270","-2147024272","2147943024","ERROR_DLL_INIT_FAILED_LOGOFF","" +"80070271","-2147024271","2147943025","ERROR_VALIDATE_CONTINUE","" +"80070272","-2147024270","2147943026","ERROR_NO_MORE_MATCHES","" +"80070273","-2147024269","2147943027","ERROR_RANGE_LIST_CONFLICT","" +"80070274","-2147024268","2147943028","ERROR_SERVER_SID_MISMATCH","" +"80070275","-2147024267","2147943029","ERROR_CANT_ENABLE_DENY_ONLY","" +"80070276","-2147024266","2147943030","ERROR_FLOAT_MULTIPLE_FAULTS","" +"80070277","-2147024265","2147943031","ERROR_FLOAT_MULTIPLE_TRAPS","" +"80070278","-2147024264","2147943032","ERROR_NOINTERFACE","" +"80070279","-2147024263","2147943033","ERROR_DRIVER_FAILED_SLEEP","" +"8007027A","-2147024262","2147943034","ERROR_CORRUPT_SYSTEM_FILE","" +"8007027B","-2147024261","2147943035","ERROR_COMMITMENT_MINIMUM","" +"8007027C","-2147024260","2147943036","ERROR_PNP_RESTART_ENUMERATION","" +"8007027D","-2147024259","2147943037","ERROR_SYSTEM_IMAGE_BAD_SIGNATURE","" +"8007027E","-2147024258","2147943038","ERROR_PNP_REBOOT_REQUIRED","" +"8007027F","-2147024257","2147943039","ERROR_INSUFFICIENT_POWER","" +"80070280","-2147024256","2147943040","ERROR_MULTIPLE_FAULT_VIOLATION","" +"80070281","-2147024255","2147943041","ERROR_SYSTEM_SHUTDOWN","" +"80070282","-2147024254","2147943042","ERROR_PORT_NOT_SET","" +"80070283","-2147024253","2147943043","ERROR_DS_VERSION_CHECK_FAILURE","" +"80070284","-2147024252","2147943044","ERROR_RANGE_NOT_FOUND","" +"80070286","-2147024250","2147943046","ERROR_NOT_SAFE_MODE_DRIVER","" +"80070287","-2147024249","2147943047","ERROR_FAILED_DRIVER_ENTRY","" +"80070288","-2147024248","2147943048","ERROR_DEVICE_ENUMERATION_ERROR","" +"80070289","-2147024247","2147943049","ERROR_MOUNT_POINT_NOT_RESOLVED","" +"8007028A","-2147024246","2147943050","ERROR_INVALID_DEVICE_OBJECT_PARAMETER","" +"8007028B","-2147024245","2147943051","ERROR_MCA_OCCURED","" +"8007028C","-2147024244","2147943052","ERROR_DRIVER_DATABASE_ERROR","" +"8007028D","-2147024243","2147943053","ERROR_SYSTEM_HIVE_TOO_LARGE","" +"8007028E","-2147024242","2147943054","ERROR_DRIVER_FAILED_PRIOR_UNLOAD","" +"8007028F","-2147024241","2147943055","ERROR_VOLSNAP_PREPARE_HIBERNATE","" +"80070290","-2147024240","2147943056","ERROR_HIBERNATION_FAILURE","" +"80070291","-2147024239","2147943057","ERROR_PWD_TOO_LONG","" +"80070299","-2147024231","2147943065","ERROR_FILE_SYSTEM_LIMITATION","" +"8007029C","-2147024228","2147943068","ERROR_ASSERTION_FAILURE","" +"8007029D","-2147024227","2147943069","ERROR_ACPI_ERROR","" +"8007029E","-2147024226","2147943070","ERROR_WOW_ASSERTION","" +"8007029F","-2147024225","2147943071","ERROR_PNP_BAD_MPS_TABLE","" +"800702A0","-2147024224","2147943072","ERROR_PNP_TRANSLATION_FAILED","" +"800702A1","-2147024223","2147943073","ERROR_PNP_IRQ_TRANSLATION_FAILED","" +"800702A2","-2147024222","2147943074","ERROR_PNP_INVALID_ID","" +"800702A3","-2147024221","2147943075","ERROR_WAKE_SYSTEM_DEBUGGER","" +"800702A4","-2147024220","2147943076","ERROR_HANDLES_CLOSED","" +"800702A5","-2147024219","2147943077","ERROR_EXTRANEOUS_INFORMATION","" +"800702A6","-2147024218","2147943078","ERROR_RXACT_COMMIT_NECESSARY","" +"800702A7","-2147024217","2147943079","ERROR_MEDIA_CHECK","" +"800702A8","-2147024216","2147943080","ERROR_GUID_SUBSTITUTION_MADE","" +"800702A9","-2147024215","2147943081","ERROR_STOPPED_ON_SYMLINK","" +"800702AA","-2147024214","2147943082","ERROR_LONGJUMP","" +"800702AB","-2147024213","2147943083","ERROR_PLUGPLAY_QUERY_VETOED","" +"800702AC","-2147024212","2147943084","ERROR_UNWIND_CONSOLIDATE","" +"800702AD","-2147024211","2147943085","ERROR_REGISTRY_HIVE_RECOVERED","" +"800702AE","-2147024210","2147943086","ERROR_DLL_MIGHT_BE_INSECURE","" +"800702AF","-2147024209","2147943087","ERROR_DLL_MIGHT_BE_INCOMPATIBLE","" +"800702B0","-2147024208","2147943088","ERROR_DBG_EXCEPTION_NOT_HANDLED","" +"800702B1","-2147024207","2147943089","ERROR_DBG_REPLY_LATER","" +"800702B2","-2147024206","2147943090","ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE","" +"800702B3","-2147024205","2147943091","ERROR_DBG_TERMINATE_THREAD","" +"800702B4","-2147024204","2147943092","ERROR_DBG_TERMINATE_PROCESS","" +"800702B5","-2147024203","2147943093","ERROR_DBG_CONTROL_C","" +"800702B6","-2147024202","2147943094","ERROR_DBG_PRINTEXCEPTION_C","" +"800702B7","-2147024201","2147943095","ERROR_DBG_RIPEXCEPTION","" +"800702B8","-2147024200","2147943096","ERROR_DBG_CONTROL_BREAK","" +"800702B9","-2147024199","2147943097","ERROR_DBG_COMMAND_EXCEPTION","" +"800702BA","-2147024198","2147943098","ERROR_OBJECT_NAME_EXISTS","" +"800702BB","-2147024197","2147943099","ERROR_THREAD_WAS_SUSPENDED","" +"800702BC","-2147024196","2147943100","ERROR_IMAGE_NOT_AT_BASE","" +"800702BD","-2147024195","2147943101","ERROR_RXACT_STATE_CREATED","" +"800702BE","-2147024194","2147943102","ERROR_SEGMENT_NOTIFICATION","" +"800702BF","-2147024193","2147943103","ERROR_BAD_CURRENT_DIRECTORY","" +"800702C0","-2147024192","2147943104","ERROR_FT_READ_RECOVERY_FROM_BACKUP","" +"800702C1","-2147024191","2147943105","ERROR_FT_WRITE_RECOVERY","" +"800702C2","-2147024190","2147943106","ERROR_IMAGE_MACHINE_TYPE_MISMATCH","" +"800702C3","-2147024189","2147943107","ERROR_RECEIVE_PARTIAL","" +"800702C4","-2147024188","2147943108","ERROR_RECEIVE_EXPEDITED","" +"800702C5","-2147024187","2147943109","ERROR_RECEIVE_PARTIAL_EXPEDITED","" +"800702C6","-2147024186","2147943110","ERROR_EVENT_DONE","" +"800702C7","-2147024185","2147943111","ERROR_EVENT_PENDING","" +"800702C8","-2147024184","2147943112","ERROR_CHECKING_FILE_SYSTEM","" +"800702C9","-2147024183","2147943113","ERROR_FATAL_APP_EXIT","" +"800702CA","-2147024182","2147943114","ERROR_PREDEFINED_HANDLE","" +"800702CB","-2147024181","2147943115","ERROR_WAS_UNLOCKED","" +"800702CC","-2147024180","2147943116","ERROR_SERVICE_NOTIFICATION","" +"800702CD","-2147024179","2147943117","ERROR_WAS_LOCKED","" +"800702CE","-2147024178","2147943118","ERROR_LOG_HARD_ERROR","" +"800702CF","-2147024177","2147943119","ERROR_ALREADY_WIN32","" +"800702D0","-2147024176","2147943120","ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE","" +"800702D1","-2147024175","2147943121","ERROR_NO_YIELD_PERFORMED","" +"800702D2","-2147024174","2147943122","ERROR_TIMER_RESUME_IGNORED","" +"800702D3","-2147024173","2147943123","ERROR_ARBITRATION_UNHANDLED","" +"800702D4","-2147024172","2147943124","ERROR_CARDBUS_NOT_SUPPORTED","" +"800702D5","-2147024171","2147943125","ERROR_MP_PROCESSOR_MISMATCH","" +"800702D6","-2147024170","2147943126","ERROR_HIBERNATED","" +"800702D7","-2147024169","2147943127","ERROR_RESUME_HIBERNATION","" +"800702D8","-2147024168","2147943128","ERROR_FIRMWARE_UPDATED","" +"800702D9","-2147024167","2147943129","ERROR_DRIVERS_LEAKING_LOCKED_PAGES","" +"800702DA","-2147024166","2147943130","ERROR_WAKE_SYSTEM","" +"800702DB","-2147024165","2147943131","ERROR_WAIT_1","" +"800702DC","-2147024164","2147943132","ERROR_WAIT_2","" +"800702DD","-2147024163","2147943133","ERROR_WAIT_3","" +"800702DE","-2147024162","2147943134","ERROR_WAIT_63","" +"800702DF","-2147024161","2147943135","ERROR_ABANDONED_WAIT_0","" +"800702E0","-2147024160","2147943136","ERROR_ABANDONED_WAIT_63","" +"800702E1","-2147024159","2147943137","ERROR_USER_APC","" +"800702E2","-2147024158","2147943138","ERROR_KERNEL_APC","" +"800702E3","-2147024157","2147943139","ERROR_ALERTED","" +"800702E4","-2147024156","2147943140","ERROR_ELEVATION_REQUIRED","" +"800702E5","-2147024155","2147943141","ERROR_REPARSE","" +"800702E6","-2147024154","2147943142","ERROR_OPLOCK_BREAK_IN_PROGRESS","" +"800702E7","-2147024153","2147943143","ERROR_VOLUME_MOUNTED","" +"800702E8","-2147024152","2147943144","ERROR_RXACT_COMMITTED","" +"800702E9","-2147024151","2147943145","ERROR_NOTIFY_CLEANUP","" +"800702EA","-2147024150","2147943146","ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED","" +"800702EB","-2147024149","2147943147","ERROR_PAGE_FAULT_TRANSITION","" +"800702EC","-2147024148","2147943148","ERROR_PAGE_FAULT_DEMAND_ZERO","" +"800702ED","-2147024147","2147943149","ERROR_PAGE_FAULT_COPY_ON_WRITE","" +"800702EE","-2147024146","2147943150","ERROR_PAGE_FAULT_GUARD_PAGE","" +"800702EF","-2147024145","2147943151","ERROR_PAGE_FAULT_PAGING_FILE","" +"800702F0","-2147024144","2147943152","ERROR_CACHE_PAGE_LOCKED","" +"800702F1","-2147024143","2147943153","ERROR_CRASH_DUMP","" +"800702F2","-2147024142","2147943154","ERROR_BUFFER_ALL_ZEROS","" +"800702F3","-2147024141","2147943155","ERROR_REPARSE_OBJECT","" +"800702F4","-2147024140","2147943156","ERROR_RESOURCE_REQUIREMENTS_CHANGED","" +"800702F5","-2147024139","2147943157","ERROR_TRANSLATION_COMPLETE","" +"800702F6","-2147024138","2147943158","ERROR_NOTHING_TO_TERMINATE","" +"800702F7","-2147024137","2147943159","ERROR_PROCESS_NOT_IN_JOB","" +"800702F8","-2147024136","2147943160","ERROR_PROCESS_IN_JOB","" +"800702F9","-2147024135","2147943161","ERROR_VOLSNAP_HIBERNATE_READY","" +"800702FA","-2147024134","2147943162","ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY","" +"800702FB","-2147024133","2147943163","ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED","" +"800702FC","-2147024132","2147943164","ERROR_INTERRUPT_STILL_CONNECTED","" +"800702FD","-2147024131","2147943165","ERROR_WAIT_FOR_OPLOCK","" +"800702FE","-2147024130","2147943166","ERROR_DBG_EXCEPTION_HANDLED","" +"800702FF","-2147024129","2147943167","ERROR_DBG_CONTINUE","" +"80070300","-2147024128","2147943168","ERROR_CALLBACK_POP_STACK","" +"80070301","-2147024127","2147943169","ERROR_COMPRESSION_DISABLED","" +"80070302","-2147024126","2147943170","ERROR_CANTFETCHBACKWARDS","" +"80070303","-2147024125","2147943171","ERROR_CANTSCROLLBACKWARDS","" +"80070304","-2147024124","2147943172","ERROR_ROWSNOTRELEASED","" +"80070305","-2147024123","2147943173","ERROR_BAD_ACCESSOR_FLAGS","" +"80070306","-2147024122","2147943174","ERROR_ERRORS_ENCOUNTERED","" +"80070307","-2147024121","2147943175","ERROR_NOT_CAPABLE","" +"80070308","-2147024120","2147943176","ERROR_REQUEST_OUT_OF_SEQUENCE","" +"80070309","-2147024119","2147943177","ERROR_VERSION_PARSE_ERROR","" +"8007030A","-2147024118","2147943178","ERROR_BADSTARTPOSITION","" +"8007030B","-2147024117","2147943179","ERROR_MEMORY_HARDWARE","" +"8007030C","-2147024116","2147943180","ERROR_DISK_REPAIR_DISABLED","" +"8007030D","-2147024115","2147943181","ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE","" +"8007030E","-2147024114","2147943182","ERROR_SYSTEM_POWERSTATE_TRANSITION","" +"8007030F","-2147024113","2147943183","ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION","" +"80070310","-2147024112","2147943184","ERROR_MCA_EXCEPTION","" +"80070311","-2147024111","2147943185","ERROR_ACCESS_AUDIT_BY_POLICY","" +"80070312","-2147024110","2147943186","ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY","" +"80070313","-2147024109","2147943187","ERROR_ABANDON_HIBERFILE","" +"80070314","-2147024108","2147943188","ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED","" +"80070315","-2147024107","2147943189","ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR","" +"80070316","-2147024106","2147943190","ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR","" +"80070317","-2147024105","2147943191","ERROR_BAD_MCFG_TABLE","" +"80070318","-2147024104","2147943192","ERROR_DISK_REPAIR_REDIRECTED","" +"80070319","-2147024103","2147943193","ERROR_DISK_REPAIR_UNSUCCESSFUL","" +"8007031A","-2147024102","2147943194","ERROR_CORRUPT_LOG_OVERFULL","" +"8007031B","-2147024101","2147943195","ERROR_CORRUPT_LOG_CORRUPTED","" +"8007031C","-2147024100","2147943196","ERROR_CORRUPT_LOG_UNAVAILABLE","" +"8007031D","-2147024099","2147943197","ERROR_CORRUPT_LOG_DELETED_FULL","" +"8007031E","-2147024098","2147943198","ERROR_CORRUPT_LOG_CLEARED","" +"8007031F","-2147024097","2147943199","ERROR_ORPHAN_NAME_EXHAUSTED","" +"80070320","-2147024096","2147943200","ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE","" +"80070321","-2147024095","2147943201","ERROR_CANNOT_GRANT_REQUESTED_OPLOCK","" +"80070322","-2147024094","2147943202","ERROR_CANNOT_BREAK_OPLOCK","" +"80070323","-2147024093","2147943203","ERROR_OPLOCK_HANDLE_CLOSED","" +"80070324","-2147024092","2147943204","ERROR_NO_ACE_CONDITION","" +"80070325","-2147024091","2147943205","ERROR_INVALID_ACE_CONDITION","" +"80070326","-2147024090","2147943206","ERROR_FILE_HANDLE_REVOKED","" +"80070327","-2147024089","2147943207","ERROR_IMAGE_AT_DIFFERENT_BASE","" +"80070328","-2147024088","2147943208","ERROR_ENCRYPTED_IO_NOT_POSSIBLE","" +"80070329","-2147024087","2147943209","ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS","" +"8007032A","-2147024086","2147943210","ERROR_QUOTA_ACTIVITY","" +"8007032B","-2147024085","2147943211","ERROR_HANDLE_REVOKED","" +"8007032C","-2147024084","2147943212","ERROR_CALLBACK_INVOKE_INLINE","" +"8007032D","-2147024083","2147943213","ERROR_CPU_SET_INVALID","" +"800703E2","-2147023902","2147943394","ERROR_EA_ACCESS_DENIED","Access to the extended attribute was denied." +"800703E3","-2147023901","2147943395","ERROR_OPERATION_ABORTED","The I/O operation has been aborted because of either a thread exit or an application request." +"800703E4","-2147023900","2147943396","ERROR_IO_INCOMPLETE","Overlapped I/O event is not in a signaled state." +"800703E5","-2147023899","2147943397","ERROR_IO_PENDING","Overlapped I/O operation is in progress." +"800703E6","-2147023898","2147943398","ERROR_NOACCESS","Invalid access to memory location." +"800703E7","-2147023897","2147943399","Error_Swaperror","Error performing inpage operation." +"800703E9","-2147023895","2147943401","ERROR_STACK_OVERFLOW","Recursion too deep." +"800703EA","-2147023894","2147943402","ERROR_INVALID_MESSAGE","The window cannot act on the sent message." +"800703EB","-2147023893","2147943403","ERROR_CAN_NOT_COMPLETE","Cannot complete this function." +"800703EC","-2147023892","2147943404","ERROR_INVALID_FLAGS","Invalid flags." +"800703ED","-2147023891","2147943405","ERROR_UNRECOGNIZED_VOLUME","The volume does not contain a recognized file system. Please make sure that all required file system drivers are loaded and that the volume is not corrupt." +"800703EE","-2147023890","2147943406","ERROR_FILE_INVALID","The volume for a file has been externally altered such that the opened file is no longer valid." +"800703EF","-2147023889","2147943407","ERROR_FULLSCREEN_MODE","The requested operation cannot be performed in full-screen mode." +"800703F0","-2147023888","2147943408","ERROR_NO_TOKEN","An attempt was made to reference a token that does not exist." +"800703F1","-2147023887","2147943409","ERROR_BADDB","The configuration registry database is corrupt." +"800703F2","-2147023886","2147943410","ERROR_BADKEY","The configuration registry key is invalid." +"800703F3","-2147023885","2147943411","ERROR_CANTOPEN","The configuration registry key could not be opened." +"800703F4","-2147023884","2147943412","ERROR_CANTREAD","The configuration registry key could not be read." +"800703F5","-2147023883","2147943413","ERROR_CANTWRITE","The configuration registry key could not be written." +"800703F6","-2147023882","2147943414","ERROR_REGISTRY_RECOVERED","One of the files in the Registry database had to be recovered by use of a log or alternate copy." +"800703F7","-2147023881","2147943415","ERROR_REGISTRY_CORRUPT","The Registry is corrupt. The structure of one of the files that contains Registry data is corrupt." +"800703F8","-2147023880","2147943416","ERROR_REGISTRY_IO_FAILED","An I/O operation initiated by the Registry failed unrecoverably. The Registry could not read in." +"800703F9","-2147023879","2147943417","ERROR_NOT_REGISTRY_FILE","The system has attempted to load or restore a file into the Registry." +"800703FA","-2147023878","2147943418","ERROR_KEY_DELETED","Illegal operation attempted on a Registry key which has been marked for deletion." +"800703FB","-2147023877","2147943419","ERROR_NO_LOG_SPACE","System could not allocate the required space in a Registry log." +"800703FC","-2147023876","2147943420","ERROR_KEY_HAS_CHILDREN","Cannot create a symbolic link in a Registry key that already has subkeys or values." +"800703FD","-2147023875","2147943421","ERROR_CHILD_MUST_BE_VOLATILE","Cannot create a stable subkey under a volatile parent key." +"800703FE","-2147023874","2147943422","ERROR_NOTIFY_ENUM_DIR","A notify change request is being completed and the information is not being returned in the caller's buffer. The caller now needs to enumerate the files to find the changes." +"8007041B","-2147023845","2147943451","ERROR_DEPENDENT_SERVICES_RUNNING","A stop control has been sent to a service which other running services are dependent on." +"8007041C","-2147023844","2147943452","ERROR_INVALID_SERVICE_CONTROL","The requested control is not valid for this service." +"8007041D","-2147023843","2147943453","ERROR_SERVICE_REQUEST_TIMEOUT","The service did not respond to the start or control request in a timely fashion." +"8007041E","-2147023842","2147943454","ERROR_SERVICE_NO_THREAD","A thread could not be created for this service." +"8007041F","-2147023841","2147943455","ERROR_SERVICE_DATABASE_LOCKED","The service database is locked." +"80070420","-2147023840","2147943456","ERROR_SERVICE_ALREADY_RUNNING","An instance of the service is already running." +"80070421","-2147023839","2147943457","ERROR_INVALID_SERVICE_ACCOUNT","The account name is invalid or does not exist." +"80070422","-2147023838","2147943458","ERROR_SERVICE_DISABLED","The specified service is disabled and cannot be started." +"80070423","-2147023837","2147943459","ERROR_CIRCULAR_DEPENDENCY","Circular service dependency was specified." +"80070424","-2147023836","2147943460","ERROR_SERVICE_DOES_NOT_EXIST","The specified service does not exist as an installed service." +"80070425","-2147023835","2147943461","ERROR_SERVICE_CANNOT_ACCEPT_CTRL","The service cannot accept control messages at this time." +"80070426","-2147023834","2147943462","ERROR_SERVICE_NOT_ACTIVE","The service has not been started." +"80070427","-2147023833","2147943463","ERROR_FAILED_SERVICE_CONTROLLER_CONNECT","The service process could not connect to the service controller." +"80070428","-2147023832","2147943464","ERROR_EXCEPTION_IN_SERVICE","An exception occurred in the service when handling the control request." +"80070429","-2147023831","2147943465","ERROR_DATABASE_DOES_NOT_EXIST","The database specified does not exist." +"8007042A","-2147023830","2147943466","ERROR_SERVICE_SPECIFIC_ERROR","The service has returned a service-specific error code." +"8007042B","-2147023829","2147943467","ERROR_PROCESS_ABORTED","The process terminated unexpectedly." +"8007042C","-2147023828","2147943468","ERROR_SERVICE_DEPENDENCY_FAIL","The dependency service or group failed to start." +"8007042D","-2147023827","2147943469","ERROR_SERVICE_LOGON_FAILED","The service did not start due to a logon failure." +"8007042E","-2147023826","2147943470","ERROR_SERVICE_START_HANG","After starting." +"8007042F","-2147023825","2147943471","ERROR_INVALID_SERVICE_LOCK","The specified service database lock is invalid." +"80070430","-2147023824","2147943472","ERROR_SERVICE_MARKED_FOR_DELETE","The specified service has been marked for deletion." +"80070431","-2147023823","2147943473","ERROR_SERVICE_EXISTS","The specified service already exists." +"80070432","-2147023822","2147943474","ERROR_ALREADY_RUNNING_LKG","The system is currently running with the last-known-good configuration." +"80070433","-2147023821","2147943475","ERROR_SERVICE_DEPENDENCY_DELETED","The dependency service does not exist or has been marked for deletion." +"80070434","-2147023820","2147943476","ERROR_BOOT_ALREADY_ACCEPTED","The current boot has already been accepted for use as the last-known-good control set." +"80070435","-2147023819","2147943477","ERROR_SERVICE_NEVER_STARTED","No attempts to start the service have been made since the last boot." +"80070436","-2147023818","2147943478","ERROR_DUPLICATE_SERVICE_NAME","The name is already in use as either a service name or a service display name." +"80070437","-2147023817","2147943479","Error_Different_Service_Account","The account specified for this service is different from the account specified for other services running in the same process." +"80070438","-2147023816","2147943480","ERROR_CANNOT_DETECT_DRIVER_FAILURE","" +"80070439","-2147023815","2147943481","ERROR_CANNOT_DETECT_PROCESS_ABORT","" +"8007043A","-2147023814","2147943482","ERROR_NO_RECOVERY_PROGRAM","" +"8007043B","-2147023813","2147943483","ERROR_SERVICE_NOT_IN_EXE","The executable program that this service is configured to run does not implement the service. netsvcs registry value in HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Svchost registry key should contain the service names that can be run in that service host. On XP and Windows 2003." +"8007043C","-2147023812","2147943484","ERROR_NOT_SAFEBOOT_SERVICE","" +"8007044C","-2147023796","2147943500","ERROR_END_OF_MEDIA","The physical end of the tape has been reached." +"8007044D","-2147023795","2147943501","ERROR_FILEMARK_DETECTED","A tape access reached a filemark." +"8007044E","-2147023794","2147943502","ERROR_BEGINNING_OF_MEDIA","Beginning of tape or partition was encountered." +"8007044F","-2147023793","2147943503","ERROR_SETMARK_DETECTED","A tape access reached the end of a set of files." +"80070450","-2147023792","2147943504","ERROR_NO_DATA_DETECTED","No more data is on the tape." +"80070451","-2147023791","2147943505","ERROR_PARTITION_FAILURE","Tape could not be partitioned." +"80070452","-2147023790","2147943506","ERROR_INVALID_BLOCK_LENGTH","When accessing a new tape of a multivolume partition." +"80070453","-2147023789","2147943507","ERROR_DEVICE_NOT_PARTITIONED","Tape partition information could not be found when loading a tape." +"80070454","-2147023788","2147943508","ERROR_UNABLE_TO_LOCK_MEDIA","Unable to lock the media eject mechanism." +"80070455","-2147023787","2147943509","ERROR_UNABLE_TO_UNLOAD_MEDIA","Unable to unload the media." +"80070456","-2147023786","2147943510","ERROR_MEDIA_CHANGED","Media in drive may have changed." +"80070457","-2147023785","2147943511","ERROR_BUS_RESET","The I/O bus was reset." +"80070458","-2147023784","2147943512","ERROR_NO_MEDIA_IN_DRIVE","No media in drive." +"80070459","-2147023783","2147943513","ERROR_NO_UNICODE_TRANSLATION","No mapping for the Unicode character exists in the target multi-byte code page." +"8007045A","-2147023782","2147943514","ERROR_DLL_INIT_FAILED","A dynamic link library (DLL) initialization routine failed." +"8007045B","-2147023781","2147943515","ERROR_SHUTDOWN_IN_PROGRESS","A system shutdown is in progress." +"8007045C","-2147023780","2147943516","ERROR_NO_SHUTDOWN_IN_PROGRESS","Unable to abort the system shutdown because no shutdown was in progress." +"8007045D","-2147023779","2147943517","ERROR_IO_DEVICE","The request could not be performed because of an I/O device error." +"8007045E","-2147023778","2147943518","ERROR_SERIAL_NO_DEVICE","No serial device was successfully initialized." +"8007045F","-2147023777","2147943519","ERROR_IRQ_BUSY","Unable to open a device that was sharing an interrupt request (IRQ) with other devices. At least one other device that uses that IRQ was already opened." +"80070460","-2147023776","2147943520","ERROR_MORE_WRITES","A serial I/O operation was completed by another write to the serial port. (The IOCTL_SERIAL_XOFF_COUNTER reached zero.)." +"80070461","-2147023775","2147943521","ERROR_COUNTER_TIMEOUT","A serial I/O operation completed because the time-out period expired. (The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.)." +"80070462","-2147023774","2147943522","ERROR_FLOPPY_ID_MARK_NOT_FOUND","No ID address mark was found on the floppy disk." +"80070463","-2147023773","2147943523","ERROR_FLOPPY_WRONG_CYLINDER","Mismatch between the floppy disk sector ID field and the floppy disk controller track address." +"80070464","-2147023772","2147943524","ERROR_FLOPPY_UNKNOWN_ERROR","The floppy disk controller reported an error that is not recognized by the floppy disk driver." +"80070465","-2147023771","2147943525","ERROR_FLOPPY_BAD_REGISTERS","The floppy disk controller returned inconsistent results in its registers." +"80070466","-2147023770","2147943526","ERROR_DISK_RECALIBRATE_FAILED","While accessing the hard disk." +"80070467","-2147023769","2147943527","ERROR_DISK_OPERATION_FAILED","While accessing the hard disk." +"80070468","-2147023768","2147943528","ERROR_DISK_RESET_FAILED","While accessing the hard disk." +"80070469","-2147023767","2147943529","ERROR_EOM_OVERFLOW","Physical end of tape encountered." +"8007046A","-2147023766","2147943530","ERROR_NOT_ENOUGH_SERVER_MEMORY","Not enough server storage is available to process this command." +"8007046B","-2147023765","2147943531","ERROR_POSSIBLE_DEADLOCK","A potential deadlock condition has been detected." +"8007046C","-2147023764","2147943532","ERROR_MAPPED_ALIGNMENT","The base address or the file offset specified does not have the proper alignment." +"80070474","-2147023756","2147943540","ERROR_SET_POWER_STATE_VETOED","An attempt to change the system power state was vetoed by another application or driver." +"80070475","-2147023755","2147943541","ERROR_SET_POWER_STATE_FAILED","The system BIOS failed an attempt to change the system power state." +"80070476","-2147023754","2147943542","ERROR_TOO_MANY_LINKS","An attempt was made to create more links on a file than the file system supports." +"8007047E","-2147023746","2147943550","ERROR_OLD_WIN_VERSION","The specified program requires a newer version of Windows." +"8007047F","-2147023745","2147943551","ERROR_APP_WRONG_OS","The specified program is not a Windows or MS-DOS program." +"80070480","-2147023744","2147943552","ERROR_SINGLE_INSTANCE_APP","Cannot start more than one instance of the specified program." +"80070481","-2147023743","2147943553","ERROR_RMODE_APP","The specified program was written for an older version of Windows." +"80070482","-2147023742","2147943554","ERROR_INVALID_DLL","One of the library files needed to run this application is damaged." +"80070483","-2147023741","2147943555","ERROR_NO_ASSOCIATION","No application is associated with the specified file for this operation." +"80070484","-2147023740","2147943556","ERROR_DDE_FAIL","An error occurred in sending the command to the application." +"80070485","-2147023739","2147943557","ERROR_DLL_NOT_FOUND","One of the library files needed to run this application cannot be found." +"80070486","-2147023738","2147943558","ERROR_NO_MORE_USER_HANDLES","" +"80070487","-2147023737","2147943559","ERROR_MESSAGE_SYNC_ONLY","" +"80070488","-2147023736","2147943560","ERROR_SOURCE_ELEMENT_EMPTY","" +"80070489","-2147023735","2147943561","ERROR_DESTINATION_ELEMENT_FULL","" +"8007048A","-2147023734","2147943562","ERROR_ILLEGAL_ELEMENT_ADDRESS","" +"8007048B","-2147023733","2147943563","ERROR_MAGAZINE_NOT_PRESENT","" +"8007048C","-2147023732","2147943564","ERROR_DEVICE_REINITIALIZATION_NEEDED","" +"8007048D","-2147023731","2147943565","ERROR_DEVICE_REQUIRES_CLEANING","" +"8007048E","-2147023730","2147943566","ERROR_DEVICE_DOOR_OPEN","" +"8007048F","-2147023729","2147943567","ERROR_DEVICE_NOT_CONNECTED","" +"80070490","-2147023728","2147943568","E_PROP_ID_UNSUPPORTED","Permission denied / [Problem initializing or using session variables] or Element not found." +"80070491","-2147023727","2147943569","ERROR_NO_MATCH","" +"80070492","-2147023726","2147943570","E_PROP_SET_UNSUPPORTED","" +"80070493","-2147023725","2147943571","ERROR_POINT_NOT_FOUND","" +"80070494","-2147023724","2147943572","ERROR_NO_TRACKING_SERVICE","" +"80070495","-2147023723","2147943573","ERROR_NO_VOLUME_ID","" +"80070497","-2147023721","2147943575","ERROR_UNABLE_TO_REMOVE_REPLACED","" +"80070498","-2147023720","2147943576","ERROR_UNABLE_TO_MOVE_REPLACEMENT","" +"80070499","-2147023719","2147943577","ERROR_UNABLE_TO_MOVE_REPLACEMENT_2","" +"8007049A","-2147023718","2147943578","ERROR_JOURNAL_DELETE_IN_PROGRESS","" +"8007049B","-2147023717","2147943579","ERROR_JOURNAL_NOT_ACTIVE","" +"8007049C","-2147023716","2147943580","ERROR_POTENTIAL_FILE_FOUND","" +"8007049D","-2147023715","2147943581","ERROR_JOURNAL_ENTRY_DELETED","" +"8007049F","-2147023713","2147943583","ERROR_VRF_CFG_ENABLED","" +"800704A6","-2147023706","2147943590","ERROR_SHUTDOWN_IS_SCHEDULED","" +"800704A7","-2147023705","2147943591","ERROR_SHUTDOWN_USERS_LOGGED_ON","" +"800704B0","-2147023696","2147943600","ERROR_BAD_DEVICE","The specified device name is invalid." +"800704B1","-2147023695","2147943601","ERROR_CONNECTION_UNAVAIL","The device is not currently connected but it is a remembered connection." +"800704B2","-2147023694","2147943602","ERROR_DEVICE_ALREADY_REMEMBERED","An attempt was made to remember a device that had previously been remembered." +"800704B3","-2147023693","2147943603","ERROR_NO_NET_OR_BAD_PATH","No network provider accepted the given network path." +"800704B4","-2147023692","2147943604","ERROR_BAD_PROVIDER","The specified network provider name is invalid." +"800704B5","-2147023691","2147943605","ERROR_CANNOT_OPEN_PROFILE","Unable to open the network connection profile." +"800704B6","-2147023690","2147943606","ERROR_BAD_PROFILE","The network connection profile is corrupt." +"800704B7","-2147023689","2147943607","ERROR_NOT_CONTAINER","Cannot enumerate a non-container." +"800704B8","-2147023688","2147943608","ERROR_EXTENDED_ERROR","An extended error has occurred." +"800704B9","-2147023687","2147943609","ERROR_INVALID_GROUPNAME","The format of the specified group name is invalid." +"800704BA","-2147023686","2147943610","ERROR_INVALID_COMPUTERNAME","The format of the specified computer name is invalid." +"800704BB","-2147023685","2147943611","ERROR_INVALID_EVENTNAME","The format of the specified event name is invalid." +"800704BC","-2147023684","2147943612","ERROR_INVALID_DOMAINNAME","The format of the specified domain name is invalid." +"800704BD","-2147023683","2147943613","ERROR_INVALID_SERVICENAME","The format of the specified service name is invalid." +"800704BE","-2147023682","2147943614","ERROR_INVALID_NETNAME","The format of the specified network name is invalid." +"800704BF","-2147023681","2147943615","ERROR_INVALID_SHARENAME","The format of the specified share name is invalid." +"800704C0","-2147023680","2147943616","ERROR_INVALID_PASSWORDNAME","The format of the specified password is invalid." +"800704C1","-2147023679","2147943617","ERROR_INVALID_MESSAGENAME","The format of the specified message name is invalid." +"800704C2","-2147023678","2147943618","ERROR_INVALID_MESSAGEDEST","The format of the specified message destination is invalid." +"800704C3","-2147023677","2147943619","ERROR_SESSION_CREDENTIAL_CONFLICT","The credentials supplied conflict with an existing set of credentials." +"800704C4","-2147023676","2147943620","ERROR_REMOTE_SESSION_LIMIT_EXCEEDED","An attempt was made to establish a session to a network server." +"800704C5","-2147023675","2147943621","ERROR_DUP_DOMAINNAME","The workgroup or domain name is already in use by another computer on the network." +"800704C6","-2147023674","2147943622","ERROR_NO_NETWORK","The network is not present or not started." +"800704C7","-2147023673","2147943623","ERROR_CANCELLED","The operation was cancelled by the user." +"800704C8","-2147023672","2147943624","ERROR_USER_MAPPED_FILE","The requested operation cannot be performed on a file with a user mapped section open." +"800704C9","-2147023671","2147943625","ERROR_CONNECTION_REFUSED","The remote system refused the network connection." +"800704CA","-2147023670","2147943626","ERROR_GRACEFUL_DISCONNECT","The network connection was gracefully closed." +"800704CB","-2147023669","2147943627","ERROR_ADDRESS_ALREADY_ASSOCIATED","The network transport endpoint already has an address associated with it." +"800704CC","-2147023668","2147943628","ERROR_ADDRESS_NOT_ASSOCIATED","An address has not yet been associated with the network endpoint." +"800704CD","-2147023667","2147943629","ERROR_CONNECTION_INVALID","An operation was attempted on a non-existent network connection." +"800704CE","-2147023666","2147943630","ERROR_CONNECTION_ACTIVE","An invalid operation was attempted on an active network connection." +"800704CF","-2147023665","2147943631","ERROR_NETWORK_UNREACHABLE","The remote network is not reachable by the transport." +"800704D0","-2147023664","2147943632","ERROR_HOST_UNREACHABLE","The remote system is not reachable by the transport." +"800704D1","-2147023663","2147943633","ERROR_PROTOCOL_UNREACHABLE","The remote system does not support the transport protocol." +"800704D2","-2147023662","2147943634","ERROR_PORT_UNREACHABLE","No service is operating at the destination network endpoint on the remote system." +"800704D3","-2147023661","2147943635","ERROR_REQUEST_ABORTED","The request was aborted." +"800704D4","-2147023660","2147943636","ERROR_CONNECTION_ABORTED","The network connection was aborted by the local system." +"800704D5","-2147023659","2147943637","ERROR_RETRY","The operation could not be completed." +"800704D6","-2147023658","2147943638","ERROR_CONNECTION_COUNT_LIMIT","A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached." +"800704D7","-2147023657","2147943639","ERROR_LOGIN_TIME_RESTRICTION","Attempting to login during an unauthorized time of day for this account." +"800704D8","-2147023656","2147943640","ERROR_LOGIN_WKSTA_RESTRICTION","The account is not authorized to login from this station." +"800704D9","-2147023655","2147943641","ERROR_INCORRECT_ADDRESS","The network address could not be used for the operation requested." +"800704DA","-2147023654","2147943642","ERROR_ALREADY_REGISTERED","The service is already registered." +"800704DB","-2147023653","2147943643","ERROR_SERVICE_NOT_FOUND","The specified service does not exist." +"800704DC","-2147023652","2147943644","ERROR_NOT_AUTHENTICATED","The operation being requested was not performed because the user has not been authenticated." +"800704DD","-2147023651","2147943645","ERROR_NOT_LOGGED_ON","The operation being requested was not performed because the user has not logged on to the network. The specified service does not exist." +"800704DE","-2147023650","2147943646","ERROR_CONTINUE","Return that wants caller to continue with work in progress." +"800704DF","-2147023649","2147943647","ERROR_ALREADY_INITIALIZED","An attempt was made to perform an initialization operation when initialization has already been completed." +"800704E0","-2147023648","2147943648","ERROR_NO_MORE_DEVICES","No more local devices." +"800704E1","-2147023647","2147943649","ERROR_NO_SUCH_SITE","" +"800704E2","-2147023646","2147943650","ERROR_DOMAIN_CONTROLLER_EXISTS","" +"800704E3","-2147023645","2147943651","ERROR_ONLY_IF_CONNECTED","" +"800704E4","-2147023644","2147943652","ERROR_OVERRIDE_NOCHANGES","" +"800704E5","-2147023643","2147943653","ERROR_BAD_USER_PROFILE","" +"800704E6","-2147023642","2147943654","ERROR_NOT_SUPPORTED_ON_SBS","" +"800704E7","-2147023641","2147943655","ERROR_SERVER_SHUTDOWN_IN_PROGRESS","" +"800704E8","-2147023640","2147943656","ERROR_HOST_DOWN","" +"800704E9","-2147023639","2147943657","ERROR_NON_ACCOUNT_SID","" +"800704EA","-2147023638","2147943658","ERROR_NON_DOMAIN_SID","" +"800704EB","-2147023637","2147943659","ERROR_APPHELP_BLOCK","" +"800704EC","-2147023636","2147943660","ERROR_ACCESS_DISABLED_BY_POLICY","" +"800704ED","-2147023635","2147943661","ERROR_REG_NAT_CONSUMPTION","" +"800704EE","-2147023634","2147943662","ERROR_CSCSHARE_OFFLINE","" +"800704EF","-2147023633","2147943663","ERROR_PKINIT_FAILURE","" +"800704F0","-2147023632","2147943664","ERROR_SMARTCARD_SUBSYSTEM_FAILURE","" +"800704F1","-2147023631","2147943665","ERROR_DOWNGRADE_DETECTED","" +"800704F7","-2147023625","2147943671","ERROR_MACHINE_LOCKED","" +"800704F8","-2147023624","2147943672","ERROR_SMB_GUEST_LOGON_BLOCKED","" +"800704F9","-2147023623","2147943673","ERROR_CALLBACK_SUPPLIED_INVALID_DATA","" +"800704FA","-2147023622","2147943674","ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED","" +"800704FB","-2147023621","2147943675","ERROR_DRIVER_BLOCKED","" +"800704FC","-2147023620","2147943676","ERROR_INVALID_IMPORT_OF_NON_DLL","" +"800704FD","-2147023619","2147943677","ERROR_ACCESS_DISABLED_WEBBLADE","" +"800704FE","-2147023618","2147943678","ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER","" +"800704FF","-2147023617","2147943679","ERROR_RECOVERY_FAILURE","" +"80070500","-2147023616","2147943680","ERROR_ALREADY_FIBER","" +"80070501","-2147023615","2147943681","ERROR_ALREADY_THREAD","" +"80070502","-2147023614","2147943682","ERROR_STACK_BUFFER_OVERRUN","The system detected an overrun of a stack-based buffer in this application." +"80070503","-2147023613","2147943683","ERROR_PARAMETER_QUOTA_EXCEEDED","" +"80070504","-2147023612","2147943684","ERROR_DEBUGGER_INACTIVE","" +"80070505","-2147023611","2147943685","ERROR_DELAY_LOAD_FAILED","" +"80070506","-2147023610","2147943686","ERROR_VDM_DISALLOWED","" +"80070507","-2147023609","2147943687","ERROR_UNIDENTIFIED_ERROR","" +"80070508","-2147023608","2147943688","ERROR_INVALID_CRUNTIME_PARAMETER","" +"80070509","-2147023607","2147943689","ERROR_BEYOND_VDL","" +"8007050A","-2147023606","2147943690","ERROR_INCOMPATIBLE_SERVICE_SID_TYPE","" +"8007050B","-2147023605","2147943691","ERROR_DRIVER_PROCESS_TERMINATED","" +"8007050C","-2147023604","2147943692","ERROR_IMPLEMENTATION_LIMIT","" +"8007050D","-2147023603","2147943693","ERROR_PROCESS_IS_PROTECTED","" +"8007050E","-2147023602","2147943694","ERROR_SERVICE_NOTIFY_CLIENT_LAGGING","" +"8007050F","-2147023601","2147943695","ERROR_DISK_QUOTA_EXCEEDED","" +"80070510","-2147023600","2147943696","ERROR_CONTENT_BLOCKED","" +"80070511","-2147023599","2147943697","ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE","" +"80070512","-2147023598","2147943698","ERROR_APP_HANG","" +"80070513","-2147023597","2147943699","ERROR_INVALID_LABEL","" +"80070514","-2147023596","2147943700","ERROR_NOT_ALL_ASSIGNED","Not all privileges referenced are assigned to the caller." +"80070515","-2147023595","2147943701","ERROR_SOME_NOT_MAPPED","Some mapping between account names and security IDs was not done." +"80070516","-2147023594","2147943702","ERROR_NO_QUOTAS_FOR_ACCOUNT","No system quota limits are specifically set for this account." +"80070517","-2147023593","2147943703","ERROR_LOCAL_USER_SESSION_KEY","No encryption key is available." +"80070518","-2147023592","2147943704","ERROR_NULL_LM_PASSWORD","The NT password is too complex to be converted to a LAN Manager password." +"80070519","-2147023591","2147943705","ERROR_UNKNOWN_REVISION","The revision level is unknown." +"8007051A","-2147023590","2147943706","ERROR_REVISION_MISMATCH","Indicates two revision levels are incompatible." +"8007051B","-2147023589","2147943707","ERROR_INVALID_OWNER","This security ID may not be assigned as the owner of this object." +"8007051C","-2147023588","2147943708","ERROR_INVALID_PRIMARY_GROUP","This security ID may not be assigned as the primary group of an object." +"8007051D","-2147023587","2147943709","ERROR_NO_IMPERSONATION_TOKEN","An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client." +"8007051E","-2147023586","2147943710","ERROR_CANT_DISABLE_MANDATORY","The group may not be disabled." +"8007051F","-2147023585","2147943711","ERROR_NO_LOGON_SERVERS","There are currently no logon servers available to service the logon request." +"80070520","-2147023584","2147943712","ERROR_NO_SUCH_LOGON_SESSION","A specified logon session does not exist." +"80070521","-2147023583","2147943713","ERROR_NO_SUCH_PRIVILEGE","A specified privilege does not exist." +"80070522","-2147023582","2147943714","ERROR_PRIVILEGE_NOT_HELD","A required privilege is not held by the client." +"80070523","-2147023581","2147943715","ERROR_INVALID_ACCOUNT_NAME","The name provided is not a properly formed account name." +"80070524","-2147023580","2147943716","ERROR_USER_EXISTS","The specified user already exists." +"80070525","-2147023579","2147943717","ERROR_NO_SUCH_USER","The specified user does not exist." +"80070526","-2147023578","2147943718","ERROR_GROUP_EXISTS","The specified group already exists." +"80070527","-2147023577","2147943719","ERROR_NO_SUCH_GROUP","The specified group does not exist." +"80070528","-2147023576","2147943720","ERROR_MEMBER_IN_GROUP","Either the specified user account is already a member of the specified group." +"80070529","-2147023575","2147943721","ERROR_MEMBER_NOT_IN_GROUP","The specified user account is not a member of the specified group account." +"8007052A","-2147023574","2147943722","ERROR_LAST_ADMIN","The last remaining administration account cannot be disabled or deleted." +"8007052B","-2147023573","2147943723","ERROR_WRONG_PASSWORD","Unable to update the password." +"8007052C","-2147023572","2147943724","ERROR_ILL_FORMED_PASSWORD","Unable to update the password." +"8007052D","-2147023571","2147943725","ERROR_PASSWORD_RESTRICTION","Unable to update the password because a password update rule has been violated." +"8007052E","-2147023570","2147943726","ERROR_LOGON_FAILURE","Logon failure: unknown user name or bad password." +"8007052F","-2147023569","2147943727","ERROR_ACCOUNT_RESTRICTION","Logon failure: user account restriction." +"80070530","-2147023568","2147943728","ERROR_INVALID_LOGON_HOURS","Logon failure: account logon time restriction violation." +"80070531","-2147023567","2147943729","ERROR_INVALID_WORKSTATION","Logon failure: user not allowed to log on to this computer." +"80070532","-2147023566","2147943730","ERROR_PASSWORD_EXPIRED","Logon failure: the specified account password has expired." +"80070533","-2147023565","2147943731","ERROR_ACCOUNT_DISABLED","Logon failure: account currently disabled." +"80070534","-2147023564","2147943732","ERROR_NONE_MAPPED","No mapping between account names and security IDs was done." +"80070535","-2147023563","2147943733","ERROR_TOO_MANY_LUIDS_REQUESTED","Too many local user identifiers (LUIDs) were requested at one time." +"80070536","-2147023562","2147943734","ERROR_LUIDS_EXHAUSTED","No more local user identifiers (LUIDs) are available." +"80070537","-2147023561","2147943735","ERROR_INVALID_SUB_AUTHORITY","The subauthority part of a security ID is invalid for this particular use." +"80070538","-2147023560","2147943736","ERROR_INVALID_ACL","The access control list (ACL) structure is invalid." +"80070539","-2147023559","2147943737","ERROR_INVALID_SID","The security ID structure is invalid." +"8007053A","-2147023558","2147943738","ERROR_INVALID_SECURITY_DESCR","The security descriptor structure is invalid." +"8007053C","-2147023556","2147943740","ERROR_BAD_INHERITANCE_ACL","The inherited access control list (ACL) or access control entry (ACE) could not be built." +"8007053D","-2147023555","2147943741","ERROR_SERVER_DISABLED","The server is currently disabled." +"8007053E","-2147023554","2147943742","ERROR_SERVER_NOT_DISABLED","The server is currently enabled." +"8007053F","-2147023553","2147943743","ERROR_INVALID_ID_AUTHORITY","The value provided was an invalid value for an identifier authority." +"80070540","-2147023552","2147943744","ERROR_ALLOTTED_SPACE_EXCEEDED","No more memory is available for security information updates." +"80070541","-2147023551","2147943745","ERROR_INVALID_GROUP_ATTRIBUTES","The specified attributes are invalid." +"80070542","-2147023550","2147943746","ERROR_BAD_IMPERSONATION_LEVEL","Either a required impersonation level was not provided." +"80070543","-2147023549","2147943747","ERROR_CANT_OPEN_ANONYMOUS","Cannot open an anonymous level security token." +"80070544","-2147023548","2147943748","ERROR_BAD_VALIDATION_CLASS","The validation information class requested was invalid." +"80070545","-2147023547","2147943749","ERROR_BAD_TOKEN_TYPE","The type of the token is inappropriate for its attempted use." +"80070546","-2147023546","2147943750","ERROR_NO_SECURITY_ON_OBJECT","Unable to perform a security operation on an object which has no associated security." +"80070547","-2147023545","2147943751","ERROR_CANT_ACCESS_DOMAIN_INFO","Indicates a Windows NT Server could not be contacted or that objects within the domain are protected such that necessary information could not be retrieved." +"80070548","-2147023544","2147943752","ERROR_INVALID_SERVER_STATE","The security account manager (SAM) or local security authority (LSA) server was in the wrong state to perform the security operation." +"80070549","-2147023543","2147943753","ERROR_INVALID_DOMAIN_STATE","The domain was in the wrong state to perform the security operation." +"8007054A","-2147023542","2147943754","ERROR_INVALID_DOMAIN_ROLE","This operation is only allowed for the Primary Domain Controller of the domain." +"8007054B","-2147023541","2147943755","ERROR_NO_SUCH_DOMAIN","The specified domain did not exist." +"8007054C","-2147023540","2147943756","ERROR_DOMAIN_EXISTS","The specified domain already exists." +"8007054D","-2147023539","2147943757","ERROR_DOMAIN_LIMIT_EXCEEDED","An attempt was made to exceed the limit on the number of domains per server." +"8007054E","-2147023538","2147943758","ERROR_INTERNAL_DB_CORRUPTION","Unable to complete the requested operation because of either a catastrophic media failure or a data structure corruption on the disk." +"8007054F","-2147023537","2147943759","ERROR_INTERNAL_ERROR","The security account database contains an internal inconsistency." +"80070550","-2147023536","2147943760","ERROR_GENERIC_NOT_MAPPED","Generic access types were contained in an access mask which should already be mapped to non-generic types." +"80070551","-2147023535","2147943761","ERROR_BAD_DESCRIPTOR_FORMAT","A security descriptor is not in the right format (absolute or self-relative)." +"80070552","-2147023534","2147943762","ERROR_NOT_LOGON_PROCESS","The requested action is restricted for use by logon processes only." +"80070553","-2147023533","2147943763","ERROR_LOGON_SESSION_EXISTS","Cannot start a new logon session with an ID that is already in use." +"80070554","-2147023532","2147943764","ERROR_NO_SUCH_PACKAGE","A specified authentication package is unknown." +"80070555","-2147023531","2147943765","ERROR_BAD_LOGON_SESSION_STATE","The logon session is not in a state that is consistent with the requested operation." +"80070556","-2147023530","2147943766","ERROR_LOGON_SESSION_COLLISION","The logon session ID is already in use." +"80070557","-2147023529","2147943767","ERROR_INVALID_LOGON_TYPE","A logon request contained an invalid logon type value." +"80070558","-2147023528","2147943768","ERROR_CANNOT_IMPERSONATE","Unable to impersonate via a named pipe until data has been read from that pipe." +"80070559","-2147023527","2147943769","ERROR_RXACT_INVALID_STATE","The transaction state of a Registry subtree is incompatible with the requested operation." +"8007055A","-2147023526","2147943770","ERROR_RXACT_COMMIT_FAILURE","An internal security database corruption has been encountered." +"8007055B","-2147023525","2147943771","ERROR_SPECIAL_ACCOUNT","Cannot perform this operation on built-in accounts." +"8007055C","-2147023524","2147943772","ERROR_SPECIAL_GROUP","Cannot perform this operation on this built-in special group." +"8007055D","-2147023523","2147943773","ERROR_SPECIAL_USER","Cannot perform this operation on this built-in special user." +"8007055E","-2147023522","2147943774","ERROR_MEMBERS_PRIMARY_GROUP","The user cannot be removed from a group because the group is currently the user's primary group." +"8007055F","-2147023521","2147943775","ERROR_TOKEN_ALREADY_IN_USE","The token is already in use as a primary token." +"80070560","-2147023520","2147943776","ERROR_NO_SUCH_ALIAS","The specified local group does not exist." +"80070561","-2147023519","2147943777","ERROR_MEMBER_NOT_IN_ALIAS","The specified account name is not a member of the local group." +"80070562","-2147023518","2147943778","ERROR_MEMBER_IN_ALIAS","The specified account name is already a member of the local group." +"80070563","-2147023517","2147943779","ERROR_ALIAS_EXISTS","The specified local group already exists." +"80070564","-2147023516","2147943780","ERROR_LOGON_NOT_GRANTED","Logon failure: the user has not been granted the requested logon type at this computer." +"80070565","-2147023515","2147943781","ERROR_TOO_MANY_SECRETS","The maximum number of secrets that may be stored in a single system has been exceeded." +"80070566","-2147023514","2147943782","ERROR_SECRET_TOO_LONG","The length of a secret exceeds the maximum length allowed." +"80070567","-2147023513","2147943783","ERROR_INTERNAL_DB_ERROR","The local security authority database contains an internal inconsistency." +"80070568","-2147023512","2147943784","ERROR_TOO_MANY_CONTEXT_IDS","During a logon attempt." +"80070569","-2147023511","2147943785","ERROR_LOGON_TYPE_NOT_GRANTED","Logon failure: the user has not been granted the requested logon type at this computer." +"8007056A","-2147023510","2147943786","ERROR_NT_CROSS_ENCRYPTION_REQUIRED","A cross-encrypted password is necessary to change a user password." +"8007056B","-2147023509","2147943787","ERROR_NO_SUCH_MEMBER","A new member could not be added to a local group because the member does not exist." +"8007056C","-2147023508","2147943788","ERROR_INVALID_MEMBER","A new member could not be added to a local group because the member has the wrong account type." +"8007056D","-2147023507","2147943789","ERROR_TOO_MANY_SIDS","Too many security IDs have been specified." +"8007056E","-2147023506","2147943790","ERROR_LM_CROSS_ENCRYPTION_REQUIRED","A cross-encrypted password is necessary to change this user password." +"8007056F","-2147023505","2147943791","ERROR_NO_INHERITANCE","Indicates an ACL contains no inheritable components." +"80070570","-2147023504","2147943792","ERROR_FILE_CORRUPT","The file or directory is corrupt and non-readable." +"80070571","-2147023503","2147943793","ERROR_DISK_CORRUPT","The disk structure is corrupt and non-readable." +"80070572","-2147023502","2147943794","ERROR_NO_USER_SESSION_KEY","There is no user session key for the specified logon session." +"80070573","-2147023501","2147943795","ERROR_LICENSE_QUOTA_EXCEEDED","The service being accessed is licensed for a particular number of connections. No more connections can be made to the service at this time because there are already as many connections as the service can accept." +"80070574","-2147023500","2147943796","ERROR_WRONG_TARGET_NAME","" +"80070575","-2147023499","2147943797","ERROR_MUTUAL_AUTH_FAILED","" +"80070576","-2147023498","2147943798","ERROR_TIME_SKEW","" +"80070577","-2147023497","2147943799","ERROR_CURRENT_DOMAIN_NOT_ALLOWED","" +"80070578","-2147023496","2147943800","ERROR_INVALID_WINDOW_HANDLE","Invalid window handle." +"80070579","-2147023495","2147943801","ERROR_INVALID_MENU_HANDLE","Invalid menu handle." +"8007057A","-2147023494","2147943802","ERROR_INVALID_CURSOR_HANDLE","Invalid cursor handle." +"8007057B","-2147023493","2147943803","ERROR_INVALID_ACCEL_HANDLE","Invalid accelerator table handle." +"8007057C","-2147023492","2147943804","ERROR_INVALID_HOOK_HANDLE","Invalid hook handle." +"8007057D","-2147023491","2147943805","ERROR_INVALID_DWP_HANDLE","Invalid handle to a multiple-window position structure." +"8007057E","-2147023490","2147943806","ERROR_TLW_WITH_WSCHILD","Cannot create a top-level child window." +"8007057F","-2147023489","2147943807","ERROR_CANNOT_FIND_WND_CLASS","Cannot find window class." +"80070580","-2147023488","2147943808","ERROR_WINDOW_OF_OTHER_THREAD","Invalid window." +"80070581","-2147023487","2147943809","ERROR_HOTKEY_ALREADY_REGISTERED","Hot key is already registered." +"80070582","-2147023486","2147943810","ERROR_CLASS_ALREADY_EXISTS","Class already exists." +"80070583","-2147023485","2147943811","ERROR_CLASS_DOES_NOT_EXIST","Class does not exist." +"80070584","-2147023484","2147943812","ERROR_CLASS_HAS_WINDOWS","Class still has open windows." +"80070585","-2147023483","2147943813","ERROR_INVALID_INDEX","Invalid index." +"80070586","-2147023482","2147943814","ERROR_INVALID_ICON_HANDLE","Invalid icon handle." +"80070587","-2147023481","2147943815","ERROR_PRIVATE_DIALOG_INDEX","Using private DIALOG window words." +"80070588","-2147023480","2147943816","ERROR_LISTBOX_ID_NOT_FOUND","The listbox identifier was not found." +"80070589","-2147023479","2147943817","ERROR_NO_WILDCARD_CHARACTERS","No wildcards were found." +"8007058A","-2147023478","2147943818","ERROR_CLIPBOARD_NOT_OPEN","Thread does not have a clipboard open." +"8007058B","-2147023477","2147943819","ERROR_HOTKEY_NOT_REGISTERED","Hot key is not registered." +"8007058C","-2147023476","2147943820","ERROR_WINDOW_NOT_DIALOG","The window is not a valid dialog window." +"8007058D","-2147023475","2147943821","ERROR_CONTROL_ID_NOT_FOUND","Control ID not found." +"8007058E","-2147023474","2147943822","ERROR_INVALID_COMBOBOX_MESSAGE","Invalid message for a combo box because it does not have an edit control." +"8007058F","-2147023473","2147943823","ERROR_WINDOW_NOT_COMBOBOX","The window is not a combo box." +"80070590","-2147023472","2147943824","ERROR_INVALID_EDIT_HEIGHT","Height must be less than 256." +"80070591","-2147023471","2147943825","ERROR_DC_NOT_FOUND","Invalid device context (DC) handle." +"80070592","-2147023470","2147943826","ERROR_INVALID_HOOK_FILTER","Invalid hook procedure type." +"80070593","-2147023469","2147943827","ERROR_INVALID_FILTER_PROC","Invalid hook procedure." +"80070594","-2147023468","2147943828","ERROR_HOOK_NEEDS_HMOD","Cannot set non-local hook without a module handle." +"80070595","-2147023467","2147943829","ERROR_GLOBAL_ONLY_HOOK","This hook procedure can only be set globally." +"80070596","-2147023466","2147943830","ERROR_JOURNAL_HOOK_SET","The journal hook procedure is already installed." +"80070597","-2147023465","2147943831","ERROR_HOOK_NOT_INSTALLED","The hook procedure is not installed." +"80070598","-2147023464","2147943832","ERROR_INVALID_LB_MESSAGE","Invalid message for single-selection listbox." +"80070599","-2147023463","2147943833","ERROR_SETCOUNT_ON_BAD_LB","LB_SETCOUNT sent to non-lazy listbox." +"8007059A","-2147023462","2147943834","ERROR_LB_WITHOUT_TABSTOPS","This list box does not support tab stops." +"8007059B","-2147023461","2147943835","ERROR_DESTROY_OBJECT_OF_OTHER_THREAD","Cannot destroy object created by another thread." +"8007059C","-2147023460","2147943836","ERROR_CHILD_WINDOW_MENU","Child windows cannot have menus." +"8007059D","-2147023459","2147943837","ERROR_NO_SYSTEM_MENU","The window does not have a system menu." +"8007059E","-2147023458","2147943838","ERROR_INVALID_MSGBOX_STYLE","Invalid message box style." +"8007059F","-2147023457","2147943839","ERROR_INVALID_SPI_VALUE","Invalid system-wide (SPI_*) parameter." +"800705A0","-2147023456","2147943840","ERROR_SCREEN_ALREADY_LOCKED","Screen already locked." +"800705A1","-2147023455","2147943841","ERROR_HWNDS_HAVE_DIFF_PARENT","All handles to windows in a multiple-window position structure must have the same parent." +"800705A2","-2147023454","2147943842","ERROR_NOT_CHILD_WINDOW","The window is not a child window." +"800705A3","-2147023453","2147943843","ERROR_INVALID_GW_COMMAND","Invalid GW_* command." +"800705A4","-2147023452","2147943844","ERROR_INVALID_THREAD_ID","Invalid thread identifier." +"800705A5","-2147023451","2147943845","ERROR_NON_MDICHILD_WINDOW","Cannot process a message from a window that is not a multiple document interface (MDI) window." +"800705A6","-2147023450","2147943846","ERROR_POPUP_ALREADY_ACTIVE","Popup menu already active." +"800705A7","-2147023449","2147943847","ERROR_NO_SCROLLBARS","The window does not have scroll bars." +"800705A8","-2147023448","2147943848","ERROR_INVALID_SCROLLBAR_RANGE","Scroll bar range cannot be greater than 0x7FFF." +"800705A9","-2147023447","2147943849","ERROR_INVALID_SHOWWIN_COMMAND","Cannot show or remove the window in the way specified." +"800705AA","-2147023446","2147943850","ERROR_NO_SYSTEM_RESOURCES","Insufficient system resources exist to complete the requested service." +"800705AB","-2147023445","2147943851","ERROR_NONPAGED_SYSTEM_RESOURCES","Insufficient system resources exist to complete the requested service." +"800705AC","-2147023444","2147943852","ERROR_PAGED_SYSTEM_RESOURCES","Insufficient system resources exist to complete the requested service." +"800705AD","-2147023443","2147943853","ERROR_WORKING_SET_QUOTA","Insufficient quota to complete the requested service." +"800705AE","-2147023442","2147943854","ERROR_PAGEFILE_QUOTA","Insufficient quota to complete the requested service." +"800705AF","-2147023441","2147943855","ERROR_COMMITMENT_LIMIT","The paging file is too small for this operation to complete." +"800705B0","-2147023440","2147943856","ERROR_MENU_ITEM_NOT_FOUND","A menu item was not found." +"800705B1","-2147023439","2147943857","ERROR_INVALID_KEYBOARD_HANDLE","Invalid keyboard layout handle." +"800705B2","-2147023438","2147943858","ERROR_HOOK_TYPE_NOT_ALLOWED","Hook type not allowed." +"800705B3","-2147023437","2147943859","ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION","This operation requires an interactive window station." +"800705B4","-2147023436","2147943860","ERROR_TIMEOUT","This operation returned because the timeout period expired." +"800705B5","-2147023435","2147943861","ERROR_INVALID_MONITOR_HANDLE","Invalid monitor handle." +"800705B7","-2147023433","2147943863","ERROR_SYMLINK_CLASS_DISABLED","" +"800705B8","-2147023432","2147943864","ERROR_SYMLINK_NOT_SUPPORTED","" +"800705B9","-2147023431","2147943865","ERROR_XML_PARSE_ERROR","" +"800705BA","-2147023430","2147943866","ERROR_XMLDSIG_ERROR","" +"800705BB","-2147023429","2147943867","ERROR_RESTART_APPLICATION","" +"800705BC","-2147023428","2147943868","ERROR_WRONG_COMPARTMENT","" +"800705BD","-2147023427","2147943869","ERROR_AUTHIP_FAILURE","" +"800705BE","-2147023426","2147943870","ERROR_NO_NVRAM_RESOURCES","" +"800705BF","-2147023425","2147943871","ERROR_NOT_GUI_PROCESS","" +"800705DC","-2147023396","2147943900","ERROR_EVENTLOG_FILE_CORRUPT","The event log file is corrupt." +"800705DD","-2147023395","2147943901","ERROR_EVENTLOG_CANT_START","No event log file could be opened." +"800705DE","-2147023394","2147943902","ERROR_LOG_FILE_FULL","The event log file is full." +"800705DF","-2147023393","2147943903","ERROR_EVENTLOG_FILE_CHANGED","The event log file has changed between reads." +"800705E0","-2147023392","2147943904","ERROR_CONTAINER_ASSIGNED","" +"800705E1","-2147023391","2147943905","ERROR_JOB_NO_CONTAINER","" +"8007060E","-2147023346","2147943950","ERROR_INVALID_TASK_NAME","" +"8007060F","-2147023345","2147943951","ERROR_INVALID_TASK_INDEX","" +"80070610","-2147023344","2147943952","ERROR_THREAD_ALREADY_IN_TASK","" +"80070641","-2147023295","2147944001","ERROR_INSTALL_SERVICE_FAILURE","" +"80070642","-2147023294","2147944002","ERROR_INSTALL_USEREXIT","" +"80070643","-2147023293","2147944003","ERROR_INSTALL_FAILURE","" +"80070644","-2147023292","2147944004","ERROR_INSTALL_SUSPEND","" +"80070645","-2147023291","2147944005","ERROR_UNKNOWN_PRODUCT","" +"80070646","-2147023290","2147944006","ERROR_UNKNOWN_FEATURE","" +"80070647","-2147023289","2147944007","ERROR_UNKNOWN_COMPONENT","" +"80070648","-2147023288","2147944008","ERROR_UNKNOWN_PROPERTY","" +"80070649","-2147023287","2147944009","ERROR_INVALID_HANDLE_STATE","" +"8007064A","-2147023286","2147944010","ERROR_BAD_CONFIGURATION","" +"8007064B","-2147023285","2147944011","ERROR_INDEX_ABSENT","" +"8007064C","-2147023284","2147944012","ERROR_INSTALL_SOURCE_ABSENT","" +"8007064D","-2147023283","2147944013","ERROR_INSTALL_PACKAGE_VERSION","" +"8007064E","-2147023282","2147944014","ERROR_PRODUCT_UNINSTALLED","" +"8007064F","-2147023281","2147944015","ERROR_BAD_QUERY_SYNTAX","" +"80070650","-2147023280","2147944016","ERROR_INVALID_FIELD","" +"80070651","-2147023279","2147944017","ERROR_DEVICE_REMOVED","" +"80070652","-2147023278","2147944018","ERROR_INSTALL_ALREADY_RUNNING","" +"80070653","-2147023277","2147944019","ERROR_INSTALL_PACKAGE_OPEN_FAILED","" +"80070654","-2147023276","2147944020","ERROR_INSTALL_PACKAGE_INVALID","" +"80070655","-2147023275","2147944021","ERROR_INSTALL_UI_FAILURE","" +"80070656","-2147023274","2147944022","ERROR_INSTALL_LOG_FAILURE","" +"80070657","-2147023273","2147944023","ERROR_INSTALL_LANGUAGE_UNSUPPORTED","" +"80070658","-2147023272","2147944024","ERROR_INSTALL_TRANSFORM_FAILURE","" +"80070659","-2147023271","2147944025","ERROR_INSTALL_PACKAGE_REJECTED","" +"8007065A","-2147023270","2147944026","ERROR_FUNCTION_NOT_CALLED","" +"8007065B","-2147023269","2147944027","ERROR_FUNCTION_FAILED","" +"8007065C","-2147023268","2147944028","ERROR_INVALID_TABLE","" +"8007065D","-2147023267","2147944029","ERROR_DATATYPE_MISMATCH","" +"8007065E","-2147023266","2147944030","ERROR_UNSUPPORTED_TYPE","" +"8007065F","-2147023265","2147944031","ERROR_CREATE_FAILED","" +"80070660","-2147023264","2147944032","ERROR_INSTALL_TEMP_UNWRITABLE","" +"80070661","-2147023263","2147944033","ERROR_INSTALL_PLATFORM_UNSUPPORTED","This installation package is not supported by this processor type. Does this manifest have `Architecture: x86`? It might need to be `x64`." +"80070662","-2147023262","2147944034","ERROR_INSTALL_NOTUSED","" +"80070663","-2147023261","2147944035","ERROR_PATCH_PACKAGE_OPEN_FAILED","" +"80070664","-2147023260","2147944036","ERROR_PATCH_PACKAGE_INVALID","" +"80070665","-2147023259","2147944037","ERROR_PATCH_PACKAGE_UNSUPPORTED","" +"80070666","-2147023258","2147944038","ERROR_PRODUCT_VERSION","" +"80070667","-2147023257","2147944039","ERROR_INVALID_COMMAND_LINE","" +"80070668","-2147023256","2147944040","ERROR_INSTALL_REMOTE_DISALLOWED","" +"80070669","-2147023255","2147944041","ERROR_SUCCESS_REBOOT_INITIATED","" +"8007066A","-2147023254","2147944042","ERROR_PATCH_TARGET_NOT_FOUND","The program to be upgraded may be missing or the patch may upgrade a different version of the program." +"8007066B","-2147023253","2147944043","ERROR_PATCH_PACKAGE_REJECTED","" +"8007066C","-2147023252","2147944044","ERROR_INSTALL_TRANSFORM_REJECTED","" +"8007066D","-2147023251","2147944045","ERROR_INSTALL_REMOTE_PROHIBITED","" +"8007066E","-2147023250","2147944046","ERROR_PATCH_REMOVAL_UNSUPPORTED","" +"8007066F","-2147023249","2147944047","ERROR_UNKNOWN_PATCH","" +"80070670","-2147023248","2147944048","ERROR_PATCH_NO_SEQUENCE","" +"80070671","-2147023247","2147944049","ERROR_PATCH_REMOVAL_DISALLOWED","" +"80070672","-2147023246","2147944050","ERROR_INVALID_PATCH_XML","" +"80070673","-2147023245","2147944051","ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT","" +"80070674","-2147023244","2147944052","ERROR_INSTALL_SERVICE_SAFEBOOT","" +"80070675","-2147023243","2147944053","ERROR_FAIL_FAST_EXCEPTION","" +"80070676","-2147023242","2147944054","ERROR_INSTALL_REJECTED","" +"80070677","-2147023241","2147944055","ERROR_DYNAMIC_CODE_BLOCKED","" +"80070678","-2147023240","2147944056","ERROR_NOT_SAME_OBJECT","" +"80070679","-2147023239","2147944057","ERROR_STRICT_CFG_VIOLATION","" +"8007067A","-2147023238","2147944058","ERROR_STRICT_RFG_VIOLATION","" +"8007067B","-2147023237","2147944059","ERROR_RFG_ACCESS_VIOLATION","" +"8007067C","-2147023236","2147944060","ERROR_SET_CONTEXT_DENIED","" +"8007067D","-2147023235","2147944061","ERROR_CROSS_PARTITION_VIOLATION","" +"800706A4","-2147023196","2147944100","RPC_S_INVALID_STRING_BINDING","The string binding is invalid." +"800706A5","-2147023195","2147944101","RPC_S_WRONG_KIND_OF_BINDING","The binding handle is not the correct type." +"800706A6","-2147023194","2147944102","RPC_S_INVALID_BINDING","The binding handle is invalid." +"800706A7","-2147023193","2147944103","RPC_S_PROTSEQ_NOT_SUPPORTED","The RPC protocol sequence is not supported." +"800706A8","-2147023192","2147944104","RPC_S_INVALID_RPC_PROTSEQ","The RPC protocol sequence is invalid." +"800706A9","-2147023191","2147944105","RPC_S_INVALID_STRING_UUID","The string universal unique identifier (UUID) is invalid." +"800706AA","-2147023190","2147944106","RPC_S_INVALID_ENDPOINT_FORMAT","The endpoint format is invalid." +"800706AB","-2147023189","2147944107","RPC_S_INVALID_NET_ADDR","The network address is invalid." +"800706AC","-2147023188","2147944108","RPC_S_NO_ENDPOINT_FOUND","No endpoint was found." +"800706AD","-2147023187","2147944109","RPC_S_INVALID_TIMEOUT","The timeout value is invalid." +"800706AE","-2147023186","2147944110","RPC_S_OBJECT_NOT_FOUND","The object universal unique identifier (UUID) was not found." +"800706AF","-2147023185","2147944111","RPC_S_ALREADY_REGISTERED","The object universal unique identifier (UUID) has already been registered." +"800706B0","-2147023184","2147944112","RPC_S_TYPE_ALREADY_REGISTERED","The type universal unique identifier (UUID) has already been registered." +"800706B1","-2147023183","2147944113","RPC_S_ALREADY_LISTENING","The RPC server is already listening." +"800706B2","-2147023182","2147944114","RPC_S_NO_PROTSEQS_REGISTERED","No protocol sequences have been registered." +"800706B3","-2147023181","2147944115","RPC_S_NOT_LISTENING","The RPC server is not listening." +"800706B4","-2147023180","2147944116","RPC_S_UNKNOWN_MGR_TYPE","The manager type is unknown." +"800706B5","-2147023179","2147944117","RPC_S_UNKNOWN_IF","The interface is unknown." +"800706B6","-2147023178","2147944118","RPC_S_NO_BINDINGS","There are no bindings." +"800706B7","-2147023177","2147944119","RPC_S_NO_PROTSEQS","There are no protocol sequences." +"800706B8","-2147023176","2147944120","RPC_S_CANT_CREATE_ENDPOINT","The endpoint cannot be created." +"800706B9","-2147023175","2147944121","RPC_S_OUT_OF_RESOURCES","Not enough resources are available to complete this operation." +"800706BA","-2147023174","2147944122","RPC_S_SERVER_UNAVAILABLE","The RPC server is unavailable." +"800706BB","-2147023173","2147944123","RPC_S_SERVER_TOO_BUSY","The RPC server is too busy to complete this operation." +"800706BC","-2147023172","2147944124","RPC_S_INVALID_NETWORK_OPTIONS","The network options are invalid." +"800706BD","-2147023171","2147944125","RPC_S_NO_CALL_ACTIVE","There is not a remote procedure call active in this thread." +"800706BE","-2147023170","2147944126","RPC_S_CALL_FAILED","The remote procedure call failed." +"800706BF","-2147023169","2147944127","RPC_S_CALL_FAILED_DNE","The remote procedure call failed and did not execute." +"800706C0","-2147023168","2147944128","RPC_S_PROTOCOL_ERROR","A remote procedure call (RPC) protocol error occurred." +"800706C1","-2147023167","2147944129","RPC_S_PROXY_ACCESS_DENIED","" +"800706C2","-2147023166","2147944130","RPC_S_UNSUPPORTED_TRANS_SYN","The transfer syntax is not supported by the RPC server." +"800706C4","-2147023164","2147944132","RPC_S_UNSUPPORTED_TYPE","The universal unique identifier (UUID) type is not supported." +"800706C5","-2147023163","2147944133","RPC_S_INVALID_TAG","The tag is invalid." +"800706C6","-2147023162","2147944134","RPC_S_INVALID_BOUND","The array bounds are invalid." +"800706C7","-2147023161","2147944135","RPC_S_NO_ENTRY_NAME","The binding does not contain an entry name." +"800706C8","-2147023160","2147944136","RPC_S_INVALID_NAME_SYNTAX","The name syntax is invalid." +"800706C9","-2147023159","2147944137","RPC_S_UNSUPPORTED_NAME_SYNTAX","The name syntax is not supported." +"800706CB","-2147023157","2147944139","RPC_S_UUID_NO_ADDRESS","No network address is available to use to construct a universal unique identifier (UUID)." +"800706CC","-2147023156","2147944140","RPC_S_DUPLICATE_ENDPOINT","The endpoint is a duplicate." +"800706CD","-2147023155","2147944141","RPC_S_UNKNOWN_AUTHN_TYPE","The authentication type is unknown." +"800706CE","-2147023154","2147944142","RPC_S_MAX_CALLS_TOO_SMALL","The maximum number of calls is too small." +"800706CF","-2147023153","2147944143","RPC_S_STRING_TOO_LONG","The string is too long." +"800706D0","-2147023152","2147944144","RPC_S_PROTSEQ_NOT_FOUND","The RPC protocol sequence was not found." +"800706D1","-2147023151","2147944145","RPC_S_PROCNUM_OUT_OF_RANGE","The procedure number is out of range." +"800706D2","-2147023150","2147944146","RPC_S_BINDING_HAS_NO_AUTH","The binding does not contain any authentication information." +"800706D3","-2147023149","2147944147","RPC_S_UNKNOWN_AUTHN_SERVICE","The authentication service is unknown." +"800706D4","-2147023148","2147944148","RPC_S_UNKNOWN_AUTHN_LEVEL","The authentication level is unknown." +"800706D5","-2147023147","2147944149","RPC_S_INVALID_AUTH_IDENTITY","The security context is invalid." +"800706D6","-2147023146","2147944150","RPC_S_UNKNOWN_AUTHZ_SERVICE","The authorization service is unknown." +"800706D7","-2147023145","2147944151","EPT_S_INVALID_ENTRY","The entry is invalid." +"800706D8","-2147023144","2147944152","EPT_S_CANT_PERFORM_OP","The server endpoint cannot perform the operation." +"800706D9","-2147023143","2147944153","EPT_S_NOT_REGISTERED","There are no more endpoints available from the endpoint mapper." +"800706DA","-2147023142","2147944154","RPC_S_NOTHING_TO_EXPORT","No interfaces have been exported." +"800706DB","-2147023141","2147944155","RPC_S_INCOMPLETE_NAME","The entry name is incomplete." +"800706DC","-2147023140","2147944156","RPC_S_INVALID_VERS_OPTION","The version option is invalid." +"800706DD","-2147023139","2147944157","RPC_S_NO_MORE_MEMBERS","There are no more members." +"800706DE","-2147023138","2147944158","RPC_S_NOT_ALL_OBJS_UNEXPORTED","There is nothing to unexport." +"800706DF","-2147023137","2147944159","RPC_S_INTERFACE_NOT_FOUND","The interface was not found." +"800706E0","-2147023136","2147944160","RPC_S_ENTRY_ALREADY_EXISTS","The entry already exists." +"800706E1","-2147023135","2147944161","RPC_S_ENTRY_NOT_FOUND","The entry is not found." +"800706E2","-2147023134","2147944162","RPC_S_NAME_SERVICE_UNAVAILABLE","The name service is unavailable." +"800706E3","-2147023133","2147944163","RPC_S_INVALID_NAF_ID","The network address family is invalid." +"800706E4","-2147023132","2147944164","RPC_S_CANNOT_SUPPORT","The requested operation is not supported." +"800706E5","-2147023131","2147944165","RPC_S_NO_CONTEXT_AVAILABLE","No security context is available to allow impersonation." +"800706E6","-2147023130","2147944166","RPC_S_INTERNAL_ERROR","An internal error occurred in a remote procedure call (RPC)." +"800706E7","-2147023129","2147944167","RPC_S_ZERO_DIVIDE","The RPC server attempted an integer division by zero." +"800706E8","-2147023128","2147944168","RPC_S_ADDRESS_ERROR","An addressing error occurred in the RPC server." +"800706E9","-2147023127","2147944169","RPC_S_FP_DIV_ZERO","A floating-point operation at the RPC server caused a division by zero." +"800706EA","-2147023126","2147944170","RPC_S_FP_UNDERFLOW","A floating-point underflow occurred at the RPC server." +"800706EB","-2147023125","2147944171","RPC_S_FP_OVERFLOW","A floating-point overflow occurred at the RPC server." +"800706EC","-2147023124","2147944172","RPC_X_NO_MORE_ENTRIES","The list of RPC servers available for the binding of auto handles has been exhausted." +"800706ED","-2147023123","2147944173","RPC_X_SS_CHAR_TRANS_OPEN_FAIL","Unable to open the character translation table file." +"800706EE","-2147023122","2147944174","RPC_X_SS_CHAR_TRANS_SHORT_FILE","The file containing the character translation table has fewer than 512 bytes." +"800706EF","-2147023121","2147944175","RPC_X_SS_IN_NULL_CONTEXT","A null context handle was passed from the client to the host during a remote procedure call." +"800706F1","-2147023119","2147944177","RPC_X_SS_CONTEXT_DAMAGED","The context handle changed during a remote procedure call." +"800706F2","-2147023118","2147944178","RPC_X_SS_HANDLES_MISMATCH","The binding handles passed to a remote procedure call do not match." +"800706F3","-2147023117","2147944179","RPC_X_SS_CANNOT_GET_CALL_HANDLE","The stub is unable to get the remote procedure call handle." +"800706F4","-2147023116","2147944180","RPC_X_NULL_REF_POINTER","A null reference pointer was passed to the stub." +"800706F5","-2147023115","2147944181","RPC_X_ENUM_VALUE_OUT_OF_RANGE","The enumeration value is out of range." +"800706F6","-2147023114","2147944182","RPC_X_BYTE_COUNT_TOO_SMALL","The byte count is too small." +"800706F7","-2147023113","2147944183","RPC_X_BAD_STUB_DATA","The stub received bad data. This can occur after a control selfupdate that has not fully completed and requires a reboot. The controls may need to be reregistered." +"800706F8","-2147023112","2147944184","ERROR_INVALID_USER_BUFFER","The supplied user buffer is not valid for the requested operation." +"800706F9","-2147023111","2147944185","ERROR_UNRECOGNIZED_MEDIA","The disk media is not recognized." +"800706FA","-2147023110","2147944186","ERROR_NO_TRUST_LSA_SECRET","The workstation does not have a trust secret." +"800706FB","-2147023109","2147944187","ERROR_NO_TRUST_SAM_ACCOUNT","The SAM database on the Windows NT Server does not have a computer account for this workstation trust relationship." +"800706FC","-2147023108","2147944188","ERROR_TRUSTED_DOMAIN_FAILURE","The trust relationship between the primary domain and the trusted domain failed." +"800706FD","-2147023107","2147944189","ERROR_TRUSTED_RELATIONSHIP_FAILURE","The trust relationship between this workstation and the primary domain failed." +"800706FE","-2147023106","2147944190","ERROR_TRUST_FAILURE","The network logon failed." +"800706FF","-2147023105","2147944191","RPC_S_CALL_IN_PROGRESS","A remote procedure call is already in progress for this thread." +"80070700","-2147023104","2147944192","ERROR_NETLOGON_NOT_STARTED","An attempt was made to logon." +"80070701","-2147023103","2147944193","ERROR_ACCOUNT_EXPIRED","The user's account has expired." +"80070702","-2147023102","2147944194","ERROR_REDIRECTOR_HAS_OPEN_HANDLES","The redirector is in use and cannot be unloaded." +"80070703","-2147023101","2147944195","ERROR_PRINTER_DRIVER_ALREADY_INSTALLED","The specified printer driver is already installed." +"80070704","-2147023100","2147944196","Error_Unknown_Port","The specified port is unknown." +"80070705","-2147023099","2147944197","ERROR_UNKNOWN_PRINTER_DRIVER","The printer driver is unknown." +"80070706","-2147023098","2147944198","ERROR_UNKNOWN_PRINTPROCESSOR","The print processor is unknown." +"80070707","-2147023097","2147944199","ERROR_INVALID_SEPARATOR_FILE","The specified separator file is invalid." +"80070708","-2147023096","2147944200","ERROR_INVALID_PRIORITY","The specified priority is invalid." +"80070709","-2147023095","2147944201","ERROR_INVALID_PRINTER_NAME","The printer name is invalid." +"8007070A","-2147023094","2147944202","ERROR_PRINTER_ALREADY_EXISTS","The printer already exists." +"8007070B","-2147023093","2147944203","ERROR_INVALID_PRINTER_COMMAND","The printer command is invalid." +"8007070C","-2147023092","2147944204","ERROR_INVALID_DATATYPE","The specified data type is invalid." +"8007070D","-2147023091","2147944205","ERROR_INVALID_ENVIRONMENT","The Environment specified is invalid." +"8007070E","-2147023090","2147944206","RPC_S_NO_MORE_BINDINGS","There are no more bindings." +"8007070F","-2147023089","2147944207","ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT","The account used is an interdomain trust account." +"80070710","-2147023088","2147944208","ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT","The account used is a Computer Account." +"80070711","-2147023087","2147944209","ERROR_NOLOGON_SERVER_TRUST_ACCOUNT","The account used is an server trust account." +"80070712","-2147023086","2147944210","ERROR_DOMAIN_TRUST_INCONSISTENT","The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain." +"80070713","-2147023085","2147944211","ERROR_SERVER_HAS_OPEN_HANDLES","The server is in use and cannot be unloaded." +"80070714","-2147023084","2147944212","ERROR_RESOURCE_DATA_NOT_FOUND","The specified image file did not contain a resource section." +"80070715","-2147023083","2147944213","ERROR_RESOURCE_TYPE_NOT_FOUND","The specified resource type cannot be found in the image file." +"80070716","-2147023082","2147944214","ERROR_RESOURCE_NAME_NOT_FOUND","The specified resource name cannot be found in the image file." +"80070717","-2147023081","2147944215","ERROR_RESOURCE_LANG_NOT_FOUND","The specified resource language ID cannot be found in the image file." +"80070718","-2147023080","2147944216","ERROR_NOT_ENOUGH_QUOTA","Not enough quota is available to process this command." +"80070719","-2147023079","2147944217","RPC_S_NO_INTERFACES","No interfaces have been registered." +"8007071A","-2147023078","2147944218","RPC_S_CALL_CANCELLED","The server was altered while processing this call." +"8007071B","-2147023077","2147944219","RPC_S_BINDING_INCOMPLETE","The binding handle does not contain all required information." +"8007071C","-2147023076","2147944220","RPC_S_COMM_FAILURE","Communications failure." +"8007071D","-2147023075","2147944221","RPC_S_UNSUPPORTED_AUTHN_LEVEL","The requested authentication level is not supported." +"8007071E","-2147023074","2147944222","RPC_S_NO_PRINC_NAME","No principal name registered." +"8007071F","-2147023073","2147944223","RPC_S_NOT_RPC_ERROR","The error specified is not a valid Windows NT RPC error code." +"80070720","-2147023072","2147944224","RPC_S_UUID_LOCAL_ONLY","A UUID that is valid only on this computer has been allocated." +"80070721","-2147023071","2147944225","RPC_S_SEC_PKG_ERROR","A security package specific error occurred." +"80070722","-2147023070","2147944226","RPC_S_NOT_CANCELLED","Thread is not cancelled." +"80070723","-2147023069","2147944227","RPC_X_INVALID_ES_ACTION","Invalid operation on the encoding/decoding handle." +"80070724","-2147023068","2147944228","RPC_X_WRONG_ES_VERSION","Incompatible version of the serializing package." +"80070725","-2147023067","2147944229","RPC_X_WRONG_STUB_VERSION","Incompatible version of the RPC stub." +"80070726","-2147023066","2147944230","RPC_X_INVALID_PIPE_OBJECT","The idl pipe object is invalid or corrupted." +"80070727","-2147023065","2147944231","RPC_X_WRONG_PIPE_ORDER","The operation is invalid for a given idl pipe object." +"80070728","-2147023064","2147944232","RPC_X_WRONG_PIPE_VERSION","The idl pipe version is not supported." +"80070729","-2147023063","2147944233","RPC_S_COOKIE_AUTH_FAILED","" +"8007072A","-2147023062","2147944234","RPC_S_DO_NOT_DISTURB","" +"8007072B","-2147023061","2147944235","RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED","" +"8007072C","-2147023060","2147944236","RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH","" +"8007076A","-2147022998","2147944298","RPC_S_GROUP_MEMBER_NOT_FOUND","The group member was not found." +"8007076B","-2147022997","2147944299","EPT_S_CANT_CREATE","The endpoint mapper database could not be created." +"8007076C","-2147022996","2147944300","RPC_S_INVALID_OBJECT","The object universal unique identifier (UUID) is the nil UUID." +"8007076D","-2147022995","2147944301","ERROR_INVALID_TIME","The specified time is invalid." +"8007076E","-2147022994","2147944302","ERROR_INVALID_FORM_NAME","The specified Form name is invalid." +"8007076F","-2147022993","2147944303","ERROR_INVALID_FORM_SIZE","The specified Form size is invalid." +"80070770","-2147022992","2147944304","ERROR_ALREADY_WAITING","The specified Printer handle is already being waited on." +"80070771","-2147022991","2147944305","ERROR_PRINTER_DELETED","The specified Printer has been deleted." +"80070772","-2147022990","2147944306","ERROR_INVALID_PRINTER_STATE","The state of the Printer is invalid." +"80070773","-2147022989","2147944307","ERROR_PASSWORD_MUST_CHANGE","The user must change his password before he logs on the first time." +"80070774","-2147022988","2147944308","ERROR_DOMAIN_CONTROLLER_NOT_FOUND","Could not find the domain controller for this domain." +"80070775","-2147022987","2147944309","ERROR_ACCOUNT_LOCKED_OUT","The referenced account is currently locked out and may not be logged on to." +"80070776","-2147022986","2147944310","OR_INVALID_OXID","The object exporter specified was not found." +"80070777","-2147022985","2147944311","OR_INVALID_OID","The object specified was not found." +"80070778","-2147022984","2147944312","OR_INVALID_SET","The object resolver set specified was not found." +"80070779","-2147022983","2147944313","RPC_S_SEND_INCOMPLETE","Some data remains to be sent in the request buffer." +"8007077A","-2147022982","2147944314","RPC_S_INVALID_ASYNC_HANDLE","" +"8007077B","-2147022981","2147944315","RPC_S_INVALID_ASYNC_CALL","" +"8007077C","-2147022980","2147944316","RPC_X_PIPE_CLOSED","" +"8007077D","-2147022979","2147944317","RPC_X_PIPE_DISCIPLINE_ERROR","" +"8007077E","-2147022978","2147944318","RPC_X_PIPE_EMPTY","" +"8007077F","-2147022977","2147944319","ERROR_NO_SITENAME","" +"80070780","-2147022976","2147944320","ERROR_CANT_ACCESS_FILE","" +"80070781","-2147022975","2147944321","ERROR_CANT_RESOLVE_FILENAME","" +"80070782","-2147022974","2147944322","RPC_S_ENTRY_TYPE_MISMATCH","" +"80070783","-2147022973","2147944323","RPC_S_NOT_ALL_OBJS_EXPORTED","" +"80070784","-2147022972","2147944324","RPC_S_INTERFACE_NOT_EXPORTED","" +"80070785","-2147022971","2147944325","RPC_S_PROFILE_NOT_ADDED","" +"80070786","-2147022970","2147944326","RPC_S_PRF_ELT_NOT_ADDED","" +"80070787","-2147022969","2147944327","RPC_S_PRF_ELT_NOT_REMOVED","" +"80070788","-2147022968","2147944328","RPC_S_GRP_ELT_NOT_ADDED","" +"80070789","-2147022967","2147944329","RPC_S_GRP_ELT_NOT_REMOVED","" +"8007078A","-2147022966","2147944330","ERROR_KM_DRIVER_BLOCKED","" +"8007078B","-2147022965","2147944331","ERROR_CONTEXT_EXPIRED","" +"8007078C","-2147022964","2147944332","ERROR_PER_USER_TRUST_QUOTA_EXCEEDED","" +"8007078D","-2147022963","2147944333","ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED","" +"8007078E","-2147022962","2147944334","ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED","" +"8007078F","-2147022961","2147944335","ERROR_AUTHENTICATION_FIREWALL_FAILED","" +"80070790","-2147022960","2147944336","ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED","" +"80070791","-2147022959","2147944337","ERROR_NTLM_BLOCKED","" +"80070792","-2147022958","2147944338","ERROR_PASSWORD_CHANGE_REQUIRED","" +"80070793","-2147022957","2147944339","ERROR_LOST_MODE_LOGON_RESTRICTION","" +"800707D0","-2147022896","2147944400","ERROR_INVALID_PIXEL_FORMAT","The pixel format is invalid." +"800707D1","-2147022895","2147944401","ERROR_BAD_DRIVER","The specified driver is invalid." +"800707D2","-2147022894","2147944402","ERROR_INVALID_WINDOW_STYLE","The window style or class attribute is invalid for this operation." +"800707D3","-2147022893","2147944403","ERROR_METAFILE_NOT_SUPPORTED","The requested metafile operation is not supported." +"800707D4","-2147022892","2147944404","ERROR_TRANSFORM_NOT_SUPPORTED","The requested transformation operation is not supported." +"800707D5","-2147022891","2147944405","ERROR_CLIPPING_NOT_SUPPORTED","The requested clipping operation is not supported." +"800707DA","-2147022886","2147944410","ERROR_INVALID_CMM","" +"800707DB","-2147022885","2147944411","ERROR_INVALID_PROFILE","" +"800707DC","-2147022884","2147944412","ERROR_TAG_NOT_FOUND","" +"800707DD","-2147022883","2147944413","ERROR_TAG_NOT_PRESENT","" +"800707DE","-2147022882","2147944414","ERROR_DUPLICATE_TAG","" +"800707DF","-2147022881","2147944415","ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE","" +"800707E0","-2147022880","2147944416","ERROR_PROFILE_NOT_FOUND","" +"800707E1","-2147022879","2147944417","ERROR_INVALID_COLORSPACE","" +"800707E2","-2147022878","2147944418","ERROR_ICM_NOT_ENABLED","" +"800707E3","-2147022877","2147944419","ERROR_DELETING_ICM_XFORM","" +"800707E4","-2147022876","2147944420","ERROR_INVALID_TRANSFORM","" +"800707E5","-2147022875","2147944421","ERROR_COLORSPACE_MISMATCH","" +"800707E6","-2147022874","2147944422","ERROR_INVALID_COLORINDEX","" +"800707E7","-2147022873","2147944423","ERROR_PROFILE_DOES_NOT_MATCH_DEVICE","" +"80070836","-2147022794","2147944502","NERR_NetNotStarted","" +"80070837","-2147022793","2147944503","NERR_UnknownServer","" +"80070838","-2147022792","2147944504","NERR_ShareMem","" +"80070839","-2147022791","2147944505","NERR_NoNetworkResource","" +"8007083A","-2147022790","2147944506","NERR_RemoteOnly","" +"8007083B","-2147022789","2147944507","NERR_DevNotRedirected","" +"8007083C","-2147022788","2147944508","ERROR_CONNECTED_OTHER_PASSWORD","The network connection was made successfully but the user had to be prompted for a password other than the one originally specified." +"8007083D","-2147022787","2147944509","ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT","" +"80070842","-2147022782","2147944514","NERR_ServerNotStarted","" +"80070843","-2147022781","2147944515","NERR_ItemNotFound","" +"80070844","-2147022780","2147944516","NERR_UnknownDevDir","" +"80070845","-2147022779","2147944517","NERR_RedirectedPath","" +"80070846","-2147022778","2147944518","NERR_DuplicateShare","" +"80070847","-2147022777","2147944519","NERR_NoRoom","" +"80070849","-2147022775","2147944521","NERR_TooManyItems","" +"8007084A","-2147022774","2147944522","NERR_InvalidMaxUsers","" +"8007084B","-2147022773","2147944523","NERR_BufTooSmall","" +"8007084F","-2147022769","2147944527","NERR_RemoteErr","" +"80070853","-2147022765","2147944531","NERR_LanmanIniError","" +"80070858","-2147022760","2147944536","NERR_NetworkError","" +"80070859","-2147022759","2147944537","NERR_WkstaInconsistentState","" +"8007085A","-2147022758","2147944538","NERR_WkstaNotStarted","" +"8007085B","-2147022757","2147944539","NERR_BrowserNotStarted","" +"8007085C","-2147022756","2147944540","NERR_InternalError","" +"8007085D","-2147022755","2147944541","NERR_BadTransactConfig","" +"8007085E","-2147022754","2147944542","NERR_InvalidAPI","" +"8007085F","-2147022753","2147944543","NERR_BadEventName","" +"80070860","-2147022752","2147944544","NERR_DupNameReboot","" +"80070862","-2147022750","2147944546","NERR_CfgCompNotFound","" +"80070863","-2147022749","2147944547","NERR_CfgParamNotFound","" +"80070865","-2147022747","2147944549","NERR_LineTooLong","" +"80070866","-2147022746","2147944550","NERR_QNotFound","" +"80070867","-2147022745","2147944551","NERR_JobNotFound","" +"80070868","-2147022744","2147944552","NERR_DestNotFound","" +"80070869","-2147022743","2147944553","NERR_DestExists","" +"8007086A","-2147022742","2147944554","NERR_QExists","" +"8007086B","-2147022741","2147944555","NERR_QNoRoom","" +"8007086C","-2147022740","2147944556","NERR_JobNoRoom","" +"8007086D","-2147022739","2147944557","NERR_DestNoRoom","" +"8007086E","-2147022738","2147944558","NERR_DestIdle","" +"8007086F","-2147022737","2147944559","NERR_DestInvalidOp","" +"80070870","-2147022736","2147944560","NERR_ProcNoRespond","" +"80070871","-2147022735","2147944561","NERR_SpoolerNotLoaded","" +"80070872","-2147022734","2147944562","NERR_DestInvalidState","" +"80070873","-2147022733","2147944563","NERR_QinvalidState","" +"80070874","-2147022732","2147944564","NERR_JobInvalidState","" +"80070875","-2147022731","2147944565","NERR_SpoolNoMemory","" +"80070876","-2147022730","2147944566","NERR_DriverNotFound","" +"80070877","-2147022729","2147944567","NERR_DataTypeInvalid","" +"80070878","-2147022728","2147944568","NERR_ProcNotFound","" +"80070884","-2147022716","2147944580","NERR_ServiceTableLocked","" +"80070885","-2147022715","2147944581","NERR_ServiceTableFull","" +"80070886","-2147022714","2147944582","NERR_ServiceInstalled","" +"80070887","-2147022713","2147944583","NERR_ServiceEntryLocked","" +"80070888","-2147022712","2147944584","NERR_ServiceNotInstalled","" +"80070889","-2147022711","2147944585","NERR_BadServiceName","" +"8007088A","-2147022710","2147944586","NERR_ServiceCtlTimeout","" +"8007088B","-2147022709","2147944587","NERR_ServiceCtlBusy","" +"8007088C","-2147022708","2147944588","NERR_BadServiceProgName","" +"8007088D","-2147022707","2147944589","NERR_ServiceNotCtrl","" +"8007088E","-2147022706","2147944590","NERR_ServiceKillProc","" +"8007088F","-2147022705","2147944591","NERR_ServiceCtlNotValid","" +"80070890","-2147022704","2147944592","NERR_NotInDispatchTbl","" +"80070891","-2147022703","2147944593","NERR_BadControlRecv","" +"80070892","-2147022702","2147944594","NERR_ServiceNotStarting","" +"80070898","-2147022696","2147944600","NERR_AlreadyLoggedOn","" +"80070899","-2147022695","2147944601","NERR_NotLoggedOn","" +"8007089A","-2147022694","2147944602","ERROR_BAD_USERNAME","The specified username is invalid." +"8007089B","-2147022693","2147944603","NERR_BadPassword","" +"8007089C","-2147022692","2147944604","NERR_UnableToAddName_W","" +"8007089D","-2147022691","2147944605","NERR_UnableToAddName_F","" +"8007089E","-2147022690","2147944606","NERR_UnableToDelName_W","" +"8007089F","-2147022689","2147944607","NERR_UnableToDelName_F","" +"800708A1","-2147022687","2147944609","NERR_LogonsPaused","" +"800708A2","-2147022686","2147944610","NERR_LogonServerConflict","" +"800708A3","-2147022685","2147944611","NERR_LogonNoUserPath","" +"800708A4","-2147022684","2147944612","NERR_LogonScriptError","" +"800708A6","-2147022682","2147944614","NERR_StandaloneLogon","" +"800708A7","-2147022681","2147944615","NERR_LogonServerNotFound","" +"800708A8","-2147022680","2147944616","NERR_LogonDomainExists","" +"800708A9","-2147022679","2147944617","NERR_NonValidatedLogon","" +"800708AB","-2147022677","2147944619","NERR_ACFNotFound","" +"800708AC","-2147022676","2147944620","NERR_GroupNotFound","" +"800708AD","-2147022675","2147944621","NERR_UserNotFound","" +"800708AE","-2147022674","2147944622","NERR_ResourceNotFound","" +"800708AF","-2147022673","2147944623","NERR_GroupExists","" +"800708B0","-2147022672","2147944624","NERR_UserExists","" +"800708B1","-2147022671","2147944625","NERR_ResourceExists","" +"800708B2","-2147022670","2147944626","NERR_NotPrimary","" +"800708B3","-2147022669","2147944627","NERR_ACFNotLoaded","" +"800708B4","-2147022668","2147944628","NERR_ACFNoRoom","" +"800708B5","-2147022667","2147944629","NERR_ACFFileIOFail","" +"800708B6","-2147022666","2147944630","NERR_ACFTooManyLists","" +"800708B7","-2147022665","2147944631","NERR_UserLogon","" +"800708B8","-2147022664","2147944632","NERR_ACFNoParent","" +"800708B9","-2147022663","2147944633","NERR_CanNotGrowSegment","" +"800708BA","-2147022662","2147944634","NERR_SpeGroupOp","" +"800708BB","-2147022661","2147944635","NERR_NotInCache","" +"800708BC","-2147022660","2147944636","NERR_UserInGroup","" +"800708BD","-2147022659","2147944637","NERR_UserNotInGroup","" +"800708BE","-2147022658","2147944638","NERR_AccountUndefined","" +"800708BF","-2147022657","2147944639","NERR_AccountExpired","" +"800708C0","-2147022656","2147944640","NERR_InvalidWorkstation","" +"800708C1","-2147022655","2147944641","NERR_InvalidLogonHours","" +"800708C2","-2147022654","2147944642","NERR_PasswordExpired","" +"800708C3","-2147022653","2147944643","NERR_PasswordCan'tChange","" +"800708C4","-2147022652","2147944644","NERR_PasswordHistConflict","" +"800708C5","-2147022651","2147944645","NERR_PasswordTooShort","" +"800708C6","-2147022650","2147944646","NERR_PasswordTooRecent","" +"800708C7","-2147022649","2147944647","NERR_InvalidDatabase","" +"800708C8","-2147022648","2147944648","NERR_DatabaseUpToDate","" +"800708C9","-2147022647","2147944649","NERR_SyncRequired","" +"800708CA","-2147022646","2147944650","ERROR_NOT_CONNECTED","This network connection does not exist." +"800708CB","-2147022645","2147944651","NERR_BadAsgType","" +"800708CC","-2147022644","2147944652","NERR_DeviceIsShared","" +"800708DE","-2147022626","2147944670","NERR_NoComputerName","" +"800708DF","-2147022625","2147944671","NERR_MsgAlreadyStarted","" +"800708E0","-2147022624","2147944672","NERR_MsgInitFailed","" +"800708E1","-2147022623","2147944673","NERR_NameNotFound","" +"800708E2","-2147022622","2147944674","NERR_AlreadyForwarded","" +"800708E3","-2147022621","2147944675","NERR_AddForwarded","" +"800708E4","-2147022620","2147944676","NERR_AlreadyExists","" +"800708E5","-2147022619","2147944677","NERR_TooManyNames","" +"800708E6","-2147022618","2147944678","NERR_DelComputerName","" +"800708E7","-2147022617","2147944679","NERR_LocalForward","" +"800708E8","-2147022616","2147944680","NERR_GrpMsgProcessor","" +"800708E9","-2147022615","2147944681","NERR_PausedRemote","" +"800708EA","-2147022614","2147944682","NERR_BadReceive","" +"800708EB","-2147022613","2147944683","NERR_NameInUse","" +"800708EC","-2147022612","2147944684","NERR_MsgNotStarted","" +"800708ED","-2147022611","2147944685","NERR_NotLocalName","" +"800708EE","-2147022610","2147944686","NERR_NoForwardName","" +"800708EF","-2147022609","2147944687","NERR_RemoteFull","" +"800708F0","-2147022608","2147944688","NERR_NameNotForwarded","" +"800708F1","-2147022607","2147944689","NERR_TruncatedBroadcast","" +"800708F6","-2147022602","2147944694","NERR_InvalidDevice","" +"800708F7","-2147022601","2147944695","NERR_WriteFault","" +"800708F9","-2147022599","2147944697","NERR_DuplicateName","" +"800708FA","-2147022598","2147944698","NERR_DeleteLater","" +"800708FB","-2147022597","2147944699","NERR_IncompleteDel","" +"800708FC","-2147022596","2147944700","NERR_MultipleNets","" +"80070906","-2147022586","2147944710","NERR_NetNameNotFound","" +"80070907","-2147022585","2147944711","NERR_DeviceNotShared","" +"80070908","-2147022584","2147944712","NERR_ClientNameNotFound","" +"8007090A","-2147022582","2147944714","NERR_FileIdNotFound","" +"8007090B","-2147022581","2147944715","NERR_ExecFailure","" +"8007090C","-2147022580","2147944716","NERR_TmpFile","" +"8007090D","-2147022579","2147944717","NERR_TooMuchData","" +"8007090E","-2147022578","2147944718","NERR_DeviceShareConflict","" +"8007090F","-2147022577","2147944719","NERR_BrowserTableIncomplete","" +"80070910","-2147022576","2147944720","NERR_NotLocalDomain","" +"80070911","-2147022575","2147944721","NERR_IsDfsShare","" +"8007091B","-2147022565","2147944731","NERR_DevInvalidOpCode","" +"8007091C","-2147022564","2147944732","NERR_DevNotFound","" +"8007091D","-2147022563","2147944733","NERR_DevNotOpen","" +"8007091E","-2147022562","2147944734","NERR_BadQueueDevString","" +"8007091F","-2147022561","2147944735","NERR_BadQueuePriority","" +"80070921","-2147022559","2147944737","NERR_NoCommDevs","" +"80070922","-2147022558","2147944738","NERR_QueueNotFound","" +"80070924","-2147022556","2147944740","NERR_BadDevString","" +"80070925","-2147022555","2147944741","NERR_BadDev","" +"80070926","-2147022554","2147944742","NERR_InUseBySpooler","" +"80070927","-2147022553","2147944743","NERR_CommDevInUse","" +"8007092F","-2147022545","2147944751","NERR_InvalidComputer","" +"80070932","-2147022542","2147944754","NERR_MaxLenExceeded","" +"80070934","-2147022540","2147944756","NERR_BadComponent","" +"80070935","-2147022539","2147944757","NERR_CANTType","" +"8007093A","-2147022534","2147944762","NERR_TooManyEntries","" +"80070942","-2147022526","2147944770","NERR_ProfileFileTooBig","" +"80070943","-2147022525","2147944771","NERR_ProfileOffset","" +"80070944","-2147022524","2147944772","NERR_ProfileCleanup","" +"80070945","-2147022523","2147944773","NERR_ProfileUnknownCmd","" +"80070946","-2147022522","2147944774","NERR_ProfileLoadErr","" +"80070947","-2147022521","2147944775","NERR_ProfileSaveErr","" +"80070949","-2147022519","2147944777","NERR_LogOverflow","" +"8007094A","-2147022518","2147944778","NERR_LogFileChanged","" +"8007094B","-2147022517","2147944779","NERR_LogFileCorrupt","" +"8007094C","-2147022516","2147944780","NERR_SourceIsDir","" +"8007094D","-2147022515","2147944781","NERR_BadSource","" +"8007094E","-2147022514","2147944782","NERR_BadDest","" +"8007094F","-2147022513","2147944783","NERR_DifferentServers","" +"80070951","-2147022511","2147944785","NERR_RunSrvPaused","" +"80070955","-2147022507","2147944789","NERR_ErrCommRunSrv","" +"80070957","-2147022505","2147944791","NERR_ErrorExecingGhost","" +"80070958","-2147022504","2147944792","NERR_ShareNotFound","" +"80070960","-2147022496","2147944800","NERR_InvalidLana","" +"80070961","-2147022495","2147944801","ERROR_OPEN_FILES","This network connection has files open or requests pending." +"80070962","-2147022494","2147944802","ERROR_ACTIVE_CONNECTIONS","Active connections still exist." +"80070963","-2147022493","2147944803","NERR_BadPasswordCore","" +"80070964","-2147022492","2147944804","ERROR_DEVICE_IN_USE","The device is in use by an active process and cannot be disconnected." +"80070965","-2147022491","2147944805","NERR_LocalDrive","" +"8007097E","-2147022466","2147944830","NERR_AlertExists","" +"8007097F","-2147022465","2147944831","NERR_TooManyAlerts","" +"80070980","-2147022464","2147944832","NERR_NoSuchAlert","" +"80070981","-2147022463","2147944833","NERR_BadRecipient","" +"80070982","-2147022462","2147944834","NERR_AcctLimitExceeded","" +"80070988","-2147022456","2147944840","NERR_InvalidLogSeek","" +"80070992","-2147022446","2147944850","NERR_BadUasConfig","" +"80070993","-2147022445","2147944851","NERR_InvalidUASOp","" +"80070994","-2147022444","2147944852","NERR_LastAdmin","" +"80070995","-2147022443","2147944853","NERR_DCNotFound","" +"80070996","-2147022442","2147944854","NERR_LogonTrackingError","" +"80070997","-2147022441","2147944855","NERR_NetlogonNotStarted","" +"80070998","-2147022440","2147944856","NERR_CanNotGrowUASFile","" +"80070999","-2147022439","2147944857","NERR_TimeDiffAtDC","" +"8007099A","-2147022438","2147944858","NERR_PasswordMismatch","" +"8007099C","-2147022436","2147944860","NERR_NoSuchServer","" +"8007099D","-2147022435","2147944861","NERR_NoSuchSession","" +"8007099E","-2147022434","2147944862","NERR_NoSuchConnection","" +"8007099F","-2147022433","2147944863","NERR_TooManyServers","" +"800709A0","-2147022432","2147944864","NERR_TooManySessions","" +"800709A1","-2147022431","2147944865","NERR_TooManyConnections","" +"800709A2","-2147022430","2147944866","NERR_TooManyFiles","" +"800709A3","-2147022429","2147944867","NERR_NoAlternateServers","" +"800709A6","-2147022426","2147944870","NERR_TryDownLevel","" +"800709B0","-2147022416","2147944880","NERR_UPSDriverNotStarted","" +"800709B1","-2147022415","2147944881","NERR_UPSInvalidConfig","" +"800709B2","-2147022414","2147944882","NERR_UPSInvalidCommPort","" +"800709B3","-2147022413","2147944883","NERR_UPSSignalAsserted","" +"800709B4","-2147022412","2147944884","NERR_UPSShutdownFailed","" +"800709C4","-2147022396","2147944900","NERR_BadDosRetCode","" +"800709C5","-2147022395","2147944901","NERR_ProgNeedsExtraMem","" +"800709C6","-2147022394","2147944902","NERR_BadDosFunction","" +"800709C7","-2147022393","2147944903","NERR_RemoteBootFailed","" +"800709C8","-2147022392","2147944904","NERR_BadFileCheckSum","" +"800709C9","-2147022391","2147944905","NERR_NoRplBootSystem","" +"800709CA","-2147022390","2147944906","NERR_RplLoadrNetBiosErr","" +"800709CB","-2147022389","2147944907","NERR_RplLoadrDiskErr","" +"800709CC","-2147022388","2147944908","NERR_ImageParamErr","" +"800709CD","-2147022387","2147944909","NERR_TooManyImageParams","" +"800709CE","-2147022386","2147944910","NERR_NonDosFloppyUsed","" +"800709CF","-2147022385","2147944911","NERR_RplBootRestart","" +"800709D0","-2147022384","2147944912","NERR_RplSrvrCallFailed","" +"800709D1","-2147022383","2147944913","NERR_CANTConnectRplSrvr","" +"800709D2","-2147022382","2147944914","NERR_CANTOpenImageFile","" +"800709D3","-2147022381","2147944915","NERR_CallingRplSrvr","" +"800709D4","-2147022380","2147944916","NERR_StartingRplBoot","" +"800709D5","-2147022379","2147944917","NERR_RplBootServiceTerm","" +"800709D6","-2147022378","2147944918","NERR_RplBootStartFailed","" +"800709D7","-2147022377","2147944919","NERR_RPL_CONNECTED","" +"800709F6","-2147022346","2147944950","NERR_BrowserConfiguredToNotRun","" +"80070A32","-2147022286","2147945010","NERR_RplNoAdaptersStarted","" +"80070A33","-2147022285","2147945011","NERR_RplBadRegistry","" +"80070A34","-2147022284","2147945012","NERR_RplBadDatabase","" +"80070A35","-2147022283","2147945013","NERR_RplRplfilesShare","" +"80070A36","-2147022282","2147945014","NERR_RplNotRplServer","" +"80070A37","-2147022281","2147945015","NERR_RplCannotEnum","" +"80070A38","-2147022280","2147945016","NERR_RplWkstaInfoCorrupted","" +"80070A39","-2147022279","2147945017","NERR_RplWkstaNotFound","" +"80070A3A","-2147022278","2147945018","NERR_RplWkstaNameUnavailable","" +"80070A3B","-2147022277","2147945019","NERR_RplProfileInfoCorrupted","" +"80070A3C","-2147022276","2147945020","NERR_RplProfileNotFound","" +"80070A3D","-2147022275","2147945021","NERR_RplProfileNameUnavailable","" +"80070A3E","-2147022274","2147945022","NERR_RplProfileNotEmpty","" +"80070A3F","-2147022273","2147945023","NERR_RplConfigInfoCorrupted","" +"80070A40","-2147022272","2147945024","NERR_RplConfigNotFound","" +"80070A41","-2147022271","2147945025","NERR_RplAdapterInfoCorrupted","" +"80070A42","-2147022270","2147945026","NERR_RplInternal","" +"80070A43","-2147022269","2147945027","NERR_RplVendorInfoCorrupted","" +"80070A44","-2147022268","2147945028","NERR_RplBootInfoCorrupted","" +"80070A45","-2147022267","2147945029","NERR_RplWkstaNeedsUserAcct","" +"80070A46","-2147022266","2147945030","NERR_RplNeedsRPLUSERAcct","" +"80070A47","-2147022265","2147945031","NERR_RplBootNotFound","" +"80070A48","-2147022264","2147945032","NERR_RplIncompatibleProfile","" +"80070A49","-2147022263","2147945033","NERR_RplAdapterNameUnavailable","" +"80070A4A","-2147022262","2147945034","NERR_RplConfigNotEmpty","" +"80070A4B","-2147022261","2147945035","NERR_RplBootInUse","" +"80070A4C","-2147022260","2147945036","NERR_RplBackupDatabase","" +"80070A4D","-2147022259","2147945037","NERR_RplAdapterNotFound","" +"80070A4E","-2147022258","2147945038","NERR_RplVendorNotFound","" +"80070A4F","-2147022257","2147945039","NERR_RplVendorNameUnavailable","" +"80070A50","-2147022256","2147945040","NERR_RplBootNameUnavailable","" +"80070A51","-2147022255","2147945041","NERR_RplConfigNameUnavailable","" +"80070A64","-2147022236","2147945060","NERR_DfsInternalCorruption","" +"80070A65","-2147022235","2147945061","NERR_DfsVolumeDataCorrupt","" +"80070A66","-2147022234","2147945062","NERR_DfsNoSuchVolume","" +"80070A67","-2147022233","2147945063","NERR_DfsVolumeAlreadyExists","" +"80070A68","-2147022232","2147945064","NERR_DfsAlreadyShared","" +"80070A69","-2147022231","2147945065","NERR_DfsNoSuchShare","" +"80070A6A","-2147022230","2147945066","NERR_DfsNotALeafVolume","" +"80070A6B","-2147022229","2147945067","NERR_DfsLeafVolume","" +"80070A6C","-2147022228","2147945068","NERR_DfsVolumeHasMultipleServers","" +"80070A6D","-2147022227","2147945069","NERR_DfsCan'tCreateJunctionPoint","" +"80070A6E","-2147022226","2147945070","NERR_DfsServerNotDfsAware","" +"80070A6F","-2147022225","2147945071","NERR_DfsBadRenamePath","" +"80070A70","-2147022224","2147945072","NERR_DfsVolumeIsOffline","" +"80070A71","-2147022223","2147945073","NERR_DfsNoSuchServer","" +"80070A72","-2147022222","2147945074","NERR_DfsCyclicalName","" +"80070A73","-2147022221","2147945075","NERR_DfsNotSupportedInServerDfs","" +"80070A74","-2147022220","2147945076","NERR_DfsDuplicateService","" +"80070A75","-2147022219","2147945077","NERR_DfsCan'tRemoveLastServerShare","" +"80070A76","-2147022218","2147945078","NERR_DfsVolumeIsInterDfs","" +"80070A77","-2147022217","2147945079","NERR_DfsInconsistent","" +"80070A78","-2147022216","2147945080","NERR_DfsServerUpgraded","" +"80070A79","-2147022215","2147945081","NERR_DfsDataIsIdentical","" +"80070A7A","-2147022214","2147945082","NERR_DfsCan'tRemoveDfsRoot","" +"80070A7B","-2147022213","2147945083","NERR_DfsChildOrParentInDfs","" +"80070A82","-2147022206","2147945090","NERR_DfsInternalError","" +"80070A83","-2147022205","2147945091","NERR_SetupAlreadyJoined","" +"80070A84","-2147022204","2147945092","NERR_SetupNotJoined","" +"80070A85","-2147022203","2147945093","NERR_SetupDomainController","" +"80070A86","-2147022202","2147945094","NERR_DefaultJoinRequired","" +"80070A87","-2147022201","2147945095","NERR_InvalidWorkgroupName","" +"80070A88","-2147022200","2147945096","NERR_NameUsesIncompatibleCodePage","" +"80070A89","-2147022199","2147945097","NERR_ComputerAccountNotFound","" +"80070A8A","-2147022198","2147945098","NERR_PersonalSku","" +"80070A8D","-2147022195","2147945101","NERR_PasswordMustChange","" +"80070A8E","-2147022194","2147945102","NERR_AccountLockedOut","" +"80070A8F","-2147022193","2147945103","NERR_PasswordTooLong","" +"80070A90","-2147022192","2147945104","NERR_PasswordNotComplexEnough","" +"80070A91","-2147022191","2147945105","NERR_PasswordFilterError","" +"80070BB8","-2147021896","2147945400","ERROR_UNKNOWN_PRINT_MONITOR","The specified print monitor is unknown." +"80070BB9","-2147021895","2147945401","ERROR_PRINTER_DRIVER_IN_USE","The specified printer driver is currently in use." +"80070BBA","-2147021894","2147945402","ERROR_SPOOL_FILE_NOT_FOUND","The spool file was not found." +"80070BBB","-2147021893","2147945403","ERROR_SPL_NO_STARTDOC","A StartDocPrinter call was not issued." +"80070BBC","-2147021892","2147945404","ERROR_SPL_NO_ADDJOB","An AddJob call was not issued." +"80070BBD","-2147021891","2147945405","ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED","The specified print processor has already been installed." +"80070BBE","-2147021890","2147945406","ERROR_PRINT_MONITOR_ALREADY_INSTALLED","The specified print monitor has already been installed." +"80070BBF","-2147021889","2147945407","ERROR_INVALID_PRINT_MONITOR","The specified print monitor does not have the required functions." +"80070BC0","-2147021888","2147945408","ERROR_PRINT_MONITOR_IN_USE","The specified print monitor is currently in use." +"80070BC1","-2147021887","2147945409","ERROR_PRINTER_HAS_JOBS_QUEUED","The requested operation is not allowed when there are jobs queued to the printer." +"80070BC2","-2147021886","2147945410","ERROR_SUCCESS_REBOOT_REQUIRED","The requested operation is successful." +"80070BC3","-2147021885","2147945411","ERROR_SUCCESS_RESTART_REQUIRED","The requested operation is successful." +"80070BC4","-2147021884","2147945412","ERROR_PRINTER_NOT_FOUND","" +"80070BC5","-2147021883","2147945413","ERROR_PRINTER_DRIVER_WARNED","" +"80070BC6","-2147021882","2147945414","ERROR_PRINTER_DRIVER_BLOCKED","" +"80070BC7","-2147021881","2147945415","ERROR_PRINTER_DRIVER_PACKAGE_IN_USE","" +"80070BC8","-2147021880","2147945416","ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND","" +"80070BC9","-2147021879","2147945417","ERROR_FAIL_REBOOT_REQUIRED","" +"80070BCA","-2147021878","2147945418","ERROR_FAIL_REBOOT_INITIATED","" +"80070BCB","-2147021877","2147945419","ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED","" +"80070BCC","-2147021876","2147945420","ERROR_PRINT_JOB_RESTART_REQUIRED","" +"80070BCD","-2147021875","2147945421","ERROR_INVALID_PRINTER_DRIVER_MANIFEST","" +"80070BCE","-2147021874","2147945422","ERROR_PRINTER_NOT_SHAREABLE","" +"80070BEA","-2147021846","2147945450","ERROR_REQUEST_PAUSED","" +"80070F6E","-2147020946","2147946350","ERROR_IO_REISSUE_AS_CACHED","" +"80070FA0","-2147020896","2147946400","ERROR_WINS_INTERNAL","WINS encountered an error while processing the command." +"80070FA1","-2147020895","2147946401","ERROR_CAN_NOT_DEL_LOCAL_WINS","The local WINS cannot be deleted." +"80070FA2","-2147020894","2147946402","ERROR_STATIC_INIT","The importation from the file failed." +"80070FA3","-2147020893","2147946403","ERROR_INC_BACKUP","The backup Failed." +"80070FA4","-2147020892","2147946404","ERROR_FULL_BACKUP","The backup Failed." +"80070FA5","-2147020891","2147946405","ERROR_REC_NON_EXISTENT","The name does not exist in the WINS database." +"80070FA6","-2147020890","2147946406","ERROR_RPL_NOT_ALLOWED","Replication with a non-configured partner is not allowed." +"80070FD2","-2147020846","2147946450","PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED","" +"80070FD3","-2147020845","2147946451","PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO","" +"80070FD4","-2147020844","2147946452","PEERDIST_ERROR_MISSING_DATA","" +"80070FD5","-2147020843","2147946453","PEERDIST_ERROR_NO_MORE","" +"80070FD6","-2147020842","2147946454","PEERDIST_ERROR_NOT_INITIALIZED","" +"80070FD7","-2147020841","2147946455","PEERDIST_ERROR_ALREADY_INITIALIZED","" +"80070FD8","-2147020840","2147946456","PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS","" +"80070FD9","-2147020839","2147946457","PEERDIST_ERROR_INVALIDATED","" +"80070FDA","-2147020838","2147946458","PEERDIST_ERROR_ALREADY_EXISTS","" +"80070FDB","-2147020837","2147946459","PEERDIST_ERROR_OPERATION_NOTFOUND","" +"80070FDC","-2147020836","2147946460","PEERDIST_ERROR_ALREADY_COMPLETED","" +"80070FDD","-2147020835","2147946461","PEERDIST_ERROR_OUT_OF_BOUNDS","" +"80070FDE","-2147020834","2147946462","PEERDIST_ERROR_VERSION_UNSUPPORTED","" +"80070FDF","-2147020833","2147946463","PEERDIST_ERROR_INVALID_CONFIGURATION","" +"80070FE0","-2147020832","2147946464","PEERDIST_ERROR_NOT_LICENSED","" +"80070FE1","-2147020831","2147946465","PEERDIST_ERROR_SERVICE_UNAVAILABLE","" +"80070FE2","-2147020830","2147946466","PEERDIST_ERROR_TRUST_FAILURE","" +"80071004","-2147020796","2147946500","ERROR_DHCP_ADDRESS_CONFLICT","The DHCP client has obtained an IP address that is already in use on the network." +"80071068","-2147020696","2147946600","ERROR_WMI_GUID_NOT_FOUND","" +"80071069","-2147020695","2147946601","ERROR_WMI_INSTANCE_NOT_FOUND","" +"8007106A","-2147020694","2147946602","ERROR_WMI_ITEMID_NOT_FOUND","" +"8007106B","-2147020693","2147946603","ERROR_WMI_TRY_AGAIN","" +"8007106C","-2147020692","2147946604","ERROR_WMI_DP_NOT_FOUND","" +"8007106D","-2147020691","2147946605","ERROR_WMI_UNRESOLVED_INSTANCE_REF","" +"8007106E","-2147020690","2147946606","ERROR_WMI_ALREADY_ENABLED","" +"8007106F","-2147020689","2147946607","ERROR_WMI_GUID_DISCONNECTED","" +"80071070","-2147020688","2147946608","ERROR_WMI_SERVER_UNAVAILABLE","" +"80071071","-2147020687","2147946609","ERROR_WMI_DP_FAILED","" +"80071072","-2147020686","2147946610","ERROR_WMI_INVALID_MOF","" +"80071073","-2147020685","2147946611","ERROR_WMI_INVALID_REGINFO","" +"80071074","-2147020684","2147946612","ERROR_WMI_ALREADY_DISABLED","" +"80071075","-2147020683","2147946613","ERROR_WMI_READ_ONLY","" +"80071076","-2147020682","2147946614","ERROR_WMI_SET_FAILURE","" +"8007109A","-2147020646","2147946650","ERROR_NOT_APPCONTAINER","" +"8007109B","-2147020645","2147946651","ERROR_APPCONTAINER_REQUIRED","" +"8007109C","-2147020644","2147946652","ERROR_NOT_SUPPORTED_IN_APPCONTAINER","" +"8007109D","-2147020643","2147946653","ERROR_INVALID_PACKAGE_SID_LENGTH","" +"800710CC","-2147020596","2147946700","ERROR_INVALID_MEDIA","" +"800710CD","-2147020595","2147946701","ERROR_INVALID_LIBRARY","" +"800710CE","-2147020594","2147946702","ERROR_INVALID_MEDIA_POOL","" +"800710CF","-2147020593","2147946703","ERROR_DRIVE_MEDIA_MISMATCH","" +"800710D0","-2147020592","2147946704","ERROR_MEDIA_OFFLINE","" +"800710D1","-2147020591","2147946705","ERROR_LIBRARY_OFFLINE","" +"800710D2","-2147020590","2147946706","ERROR_EMPTY","" +"800710D3","-2147020589","2147946707","ERROR_NOT_EMPTY","" +"800710D4","-2147020588","2147946708","ERROR_MEDIA_UNAVAILABLE","" +"800710D5","-2147020587","2147946709","ERROR_RESOURCE_DISABLED","" +"800710D6","-2147020586","2147946710","ERROR_INVALID_CLEANER","" +"800710D7","-2147020585","2147946711","ERROR_UNABLE_TO_CLEAN","" +"800710D8","-2147020584","2147946712","ERROR_OBJECT_NOT_FOUND","" +"800710D9","-2147020583","2147946713","ERROR_DATABASE_FAILURE","" +"800710DA","-2147020582","2147946714","ERROR_DATABASE_FULL","" +"800710DB","-2147020581","2147946715","ERROR_MEDIA_INCOMPATIBLE","" +"800710DC","-2147020580","2147946716","ERROR_RESOURCE_NOT_PRESENT","" +"800710DD","-2147020579","2147946717","ERROR_INVALID_OPERATION","" +"800710DE","-2147020578","2147946718","ERROR_MEDIA_NOT_AVAILABLE","" +"800710DF","-2147020577","2147946719","ERROR_DEVICE_NOT_AVAILABLE","" +"800710E0","-2147020576","2147946720","ERROR_REQUEST_REFUSED","" +"800710E1","-2147020575","2147946721","ERROR_INVALID_DRIVE_OBJECT","" +"800710E2","-2147020574","2147946722","ERROR_LIBRARY_FULL","" +"800710E3","-2147020573","2147946723","ERROR_MEDIUM_NOT_ACCESSIBLE","" +"800710E4","-2147020572","2147946724","ERROR_UNABLE_TO_LOAD_MEDIUM","" +"800710E5","-2147020571","2147946725","ERROR_UNABLE_TO_INVENTORY_DRIVE","" +"800710E6","-2147020570","2147946726","ERROR_UNABLE_TO_INVENTORY_SLOT","" +"800710E7","-2147020569","2147946727","ERROR_UNABLE_TO_INVENTORY_TRANSPORT","" +"800710E8","-2147020568","2147946728","ERROR_TRANSPORT_FULL","" +"800710E9","-2147020567","2147946729","ERROR_CONTROLLING_IEPORT","" +"800710EA","-2147020566","2147946730","ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA","" +"800710EB","-2147020565","2147946731","ERROR_CLEANER_SLOT_SET","" +"800710EC","-2147020564","2147946732","ERROR_CLEANER_SLOT_NOT_SET","" +"800710ED","-2147020563","2147946733","ERROR_CLEANER_CARTRIDGE_SPENT","" +"800710EE","-2147020562","2147946734","ERROR_UNEXPECTED_OMID","" +"800710EF","-2147020561","2147946735","ERROR_CANT_DELETE_LAST_ITEM","" +"800710F0","-2147020560","2147946736","ERROR_MESSAGE_EXCEEDS_MAX_SIZE","" +"800710F1","-2147020559","2147946737","ERROR_VOLUME_CONTAINS_SYS_FILES","" +"800710F2","-2147020558","2147946738","ERROR_INDIGENOUS_TYPE","" +"800710F3","-2147020557","2147946739","ERROR_NO_SUPPORTING_DRIVES","" +"800710F4","-2147020556","2147946740","ERROR_CLEANER_CARTRIDGE_INSTALLED","" +"800710F5","-2147020555","2147946741","ERROR_IEPORT_FULL","" +"800710FE","-2147020546","2147946750","ERROR_FILE_OFFLINE","" +"800710FF","-2147020545","2147946751","ERROR_REMOTE_STORAGE_NOT_ACTIVE","" +"80071100","-2147020544","2147946752","ERROR_REMOTE_STORAGE_MEDIA_ERROR","" +"80071126","-2147020506","2147946790","ERROR_NOT_A_REPARSE_POINT","" +"80071127","-2147020505","2147946791","ERROR_REPARSE_ATTRIBUTE_CONFLICT","" +"80071128","-2147020504","2147946792","ERROR_INVALID_REPARSE_DATA","" +"80071129","-2147020503","2147946793","ERROR_REPARSE_TAG_INVALID","" +"8007112A","-2147020502","2147946794","ERROR_REPARSE_TAG_MISMATCH","" +"8007112B","-2147020501","2147946795","ERROR_REPARSE_POINT_ENCOUNTERED","" +"80071130","-2147020496","2147946800","ERROR_APP_DATA_NOT_FOUND","" +"80071131","-2147020495","2147946801","ERROR_APP_DATA_EXPIRED","" +"80071132","-2147020494","2147946802","ERROR_APP_DATA_CORRUPT","" +"80071133","-2147020493","2147946803","ERROR_APP_DATA_LIMIT_EXCEEDED","" +"80071134","-2147020492","2147946804","ERROR_APP_DATA_REBOOT_REQUIRED","" +"80071144","-2147020476","2147946820","ERROR_SECUREBOOT_ROLLBACK_DETECTED","" +"80071145","-2147020475","2147946821","ERROR_SECUREBOOT_POLICY_VIOLATION","" +"80071146","-2147020474","2147946822","ERROR_SECUREBOOT_INVALID_POLICY","" +"80071147","-2147020473","2147946823","ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND","" +"80071148","-2147020472","2147946824","ERROR_SECUREBOOT_POLICY_NOT_SIGNED","" +"80071149","-2147020471","2147946825","ERROR_SECUREBOOT_NOT_ENABLED","" +"8007114A","-2147020470","2147946826","ERROR_SECUREBOOT_FILE_REPLACED","" +"8007114B","-2147020469","2147946827","ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED","" +"8007114C","-2147020468","2147946828","ERROR_SECUREBOOT_POLICY_UNKNOWN","" +"8007114D","-2147020467","2147946829","ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION","" +"8007114E","-2147020466","2147946830","ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH","" +"8007114F","-2147020465","2147946831","ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED","" +"80071150","-2147020464","2147946832","ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH","" +"80071151","-2147020463","2147946833","ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING","" +"80071152","-2147020462","2147946834","ERROR_SECUREBOOT_NOT_BASE_POLICY","" +"80071153","-2147020461","2147946835","ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY","" +"80071158","-2147020456","2147946840","ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED","" +"80071159","-2147020455","2147946841","ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED","" +"8007115A","-2147020454","2147946842","ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED","" +"8007115B","-2147020453","2147946843","ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED","" +"8007115C","-2147020452","2147946844","ERROR_ALREADY_HAS_STREAM_ID","" +"80071194","-2147020396","2147946900","ERROR_VOLUME_NOT_SIS_ENABLED","" +"800711C6","-2147020346","2147946950","ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED","" +"800711C7","-2147020345","2147946951","ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION","" +"800711C8","-2147020344","2147946952","ERROR_SYSTEM_INTEGRITY_INVALID_POLICY","" +"800711C9","-2147020343","2147946953","ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED","" +"800711D0","-2147020336","2147946960","ERROR_VSM_NOT_INITIALIZED","" +"800711D1","-2147020335","2147946961","ERROR_VSM_DMA_PROTECTION_NOT_IN_USE","" +"800711DA","-2147020326","2147946970","ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED","" +"800711DB","-2147020325","2147946971","ERROR_PLATFORM_MANIFEST_INVALID","" +"800711DC","-2147020324","2147946972","ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED","" +"800711DD","-2147020323","2147946973","ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED","" +"800711DE","-2147020322","2147946974","ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND","" +"800711DF","-2147020321","2147946975","ERROR_PLATFORM_MANIFEST_NOT_ACTIVE","" +"800711E0","-2147020320","2147946976","ERROR_PLATFORM_MANIFEST_NOT_SIGNED","" +"80071389","-2147019895","2147947401","ERROR_DEPENDENT_RESOURCE_EXISTS","The cluster resource cannot be moved to another group because other resources are dependent on it." +"8007138A","-2147019894","2147947402","ERROR_DEPENDENCY_NOT_FOUND","The cluster resource dependency cannot be found." +"8007138B","-2147019893","2147947403","ERROR_DEPENDENCY_ALREADY_EXISTS","The cluster resource cannot be made dependent on the specified resource because it is already dependent." +"8007138C","-2147019892","2147947404","ERROR_RESOURCE_NOT_ONLINE","The cluster resource is not online." +"8007138D","-2147019891","2147947405","ERROR_HOST_NODE_NOT_AVAILABLE","A cluster node is not available for this operation." +"8007138E","-2147019890","2147947406","ERROR_RESOURCE_NOT_AVAILABLE","The cluster resource is not available." +"8007138F","-2147019889","2147947407","ERROR_RESOURCE_NOT_FOUND","The cluster resource could not be found." +"80071390","-2147019888","2147947408","ERROR_SHUTDOWN_CLUSTER","The cluster is being shut down." +"80071391","-2147019887","2147947409","ERROR_CANT_EVICT_ACTIVE_NODE","A cluster node cannot be evicted from the cluster while it is online." +"80071392","-2147019886","2147947410","ERROR_OBJECT_ALREADY_EXISTS","The object already exists." +"80071393","-2147019885","2147947411","ERROR_OBJECT_IN_LIST","The object is already in the list." +"80071394","-2147019884","2147947412","ERROR_GROUP_NOT_AVAILABLE","The cluster group is not available for any new requests." +"80071395","-2147019883","2147947413","ERROR_GROUP_NOT_FOUND","The cluster group could not be found." +"80071396","-2147019882","2147947414","ERROR_GROUP_NOT_ONLINE","The operation could not be completed because the cluster group is not online." +"80071397","-2147019881","2147947415","ERROR_HOST_NODE_NOT_RESOURCE_OWNER","The cluster node is not the owner of the resource." +"80071398","-2147019880","2147947416","ERROR_HOST_NODE_NOT_GROUP_OWNER","The cluster node is not the owner of the group." +"80071399","-2147019879","2147947417","ERROR_RESMON_CREATE_FAILED","The cluster resource could not be created in the specified resource monitor." +"8007139A","-2147019878","2147947418","ERROR_RESMON_ONLINE_FAILED","The cluster resource could not be brought online by the resource monitor." +"8007139B","-2147019877","2147947419","ERROR_RESOURCE_ONLINE","The operation could not be completed because the cluster resource is online." +"8007139C","-2147019876","2147947420","ERROR_QUORUM_RESOURCE","The cluster resource could not be deleted or brought offline because it is the quorum resource." +"8007139D","-2147019875","2147947421","ERROR_NOT_QUORUM_CAPABLE","The cluster could not make the specified resource a quorum resource because it is not capable of being a quorum resource." +"8007139E","-2147019874","2147947422","ERROR_CLUSTER_SHUTTING_DOWN","The cluster software is shutting down." +"8007139F","-2147019873","2147947423","ERROR_INVALID_STATE","The group or resource is not in the correct state to perform the requested operation." +"800713A0","-2147019872","2147947424","ERROR_RESOURCE_PROPERTIES_STORED","The properties were stored but not all changes will take effect until the next time the resource is brought online." +"800713A1","-2147019871","2147947425","ERROR_NOT_QUORUM_CLASS","The cluster could not make the specified resource a quorum resource because it does not belong to a shared storage class." +"800713A2","-2147019870","2147947426","ERROR_CORE_RESOURCE","The cluster resource could not be deleted since it is a core resource." +"800713A3","-2147019869","2147947427","ERROR_QUORUM_RESOURCE_ONLINE_FAILED","The quorum resource failed to come online." +"800713A4","-2147019868","2147947428","ERROR_QUORUMLOG_OPEN_FAILED","The quorum log could not be created or mounted successfully." +"800713A5","-2147019867","2147947429","ERROR_CLUSTERLOG_CORRUPT","The cluster log is corrupt." +"800713A6","-2147019866","2147947430","ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE","The record could not be written to the cluster log since it exceeds the maximum size." +"800713A7","-2147019865","2147947431","ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE","The cluster log exceeds its maximum size." +"800713A8","-2147019864","2147947432","ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND","No checkpoint record was found in the cluster log." +"800713A9","-2147019863","2147947433","ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE","The minimum required disk space needed for logging is not available." +"800713AA","-2147019862","2147947434","ERROR_QUORUM_OWNER_ALIVE","" +"800713AB","-2147019861","2147947435","ERROR_NETWORK_NOT_AVAILABLE","" +"800713AC","-2147019860","2147947436","ERROR_NODE_NOT_AVAILABLE","" +"800713AD","-2147019859","2147947437","ERROR_ALL_NODES_NOT_AVAILABLE","" +"800713AE","-2147019858","2147947438","ERROR_RESOURCE_FAILED","" +"800713AF","-2147019857","2147947439","ERROR_CLUSTER_INVALID_NODE","" +"800713B0","-2147019856","2147947440","ERROR_CLUSTER_NODE_EXISTS","" +"800713B1","-2147019855","2147947441","ERROR_CLUSTER_JOIN_IN_PROGRESS","" +"800713B2","-2147019854","2147947442","ERROR_CLUSTER_NODE_NOT_FOUND","" +"800713B3","-2147019853","2147947443","ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND","" +"800713B4","-2147019852","2147947444","ERROR_CLUSTER_NETWORK_EXISTS","" +"800713B5","-2147019851","2147947445","ERROR_CLUSTER_NETWORK_NOT_FOUND","" +"800713B6","-2147019850","2147947446","ERROR_CLUSTER_NETINTERFACE_EXISTS","" +"800713B7","-2147019849","2147947447","ERROR_CLUSTER_NETINTERFACE_NOT_FOUND","" +"800713B8","-2147019848","2147947448","ERROR_CLUSTER_INVALID_REQUEST","" +"800713B9","-2147019847","2147947449","ERROR_CLUSTER_INVALID_NETWORK_PROVIDER","" +"800713BA","-2147019846","2147947450","ERROR_CLUSTER_NODE_DOWN","" +"800713BB","-2147019845","2147947451","ERROR_CLUSTER_NODE_UNREACHABLE","" +"800713BC","-2147019844","2147947452","ERROR_CLUSTER_NODE_NOT_MEMBER","" +"800713BD","-2147019843","2147947453","ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS","" +"800713BE","-2147019842","2147947454","ERROR_CLUSTER_INVALID_NETWORK","" +"800713C0","-2147019840","2147947456","ERROR_CLUSTER_NODE_UP","" +"800713C1","-2147019839","2147947457","ERROR_CLUSTER_IPADDR_IN_USE","" +"800713C2","-2147019838","2147947458","ERROR_CLUSTER_NODE_NOT_PAUSED","" +"800713C3","-2147019837","2147947459","ERROR_CLUSTER_NO_SECURITY_CONTEXT","" +"800713C4","-2147019836","2147947460","ERROR_CLUSTER_NETWORK_NOT_INTERNAL","" +"800713C5","-2147019835","2147947461","ERROR_CLUSTER_NODE_ALREADY_UP","" +"800713C6","-2147019834","2147947462","ERROR_CLUSTER_NODE_ALREADY_DOWN","" +"800713C7","-2147019833","2147947463","ERROR_CLUSTER_NETWORK_ALREADY_ONLINE","" +"800713C8","-2147019832","2147947464","ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE","" +"800713C9","-2147019831","2147947465","ERROR_CLUSTER_NODE_ALREADY_MEMBER","" +"800713CA","-2147019830","2147947466","ERROR_CLUSTER_LAST_INTERNAL_NETWORK","" +"800713CB","-2147019829","2147947467","ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS","" +"800713CC","-2147019828","2147947468","ERROR_INVALID_OPERATION_ON_QUORUM","" +"800713CD","-2147019827","2147947469","ERROR_DEPENDENCY_NOT_ALLOWED","" +"800713CE","-2147019826","2147947470","ERROR_CLUSTER_NODE_PAUSED","" +"800713CF","-2147019825","2147947471","ERROR_NODE_CANT_HOST_RESOURCE","" +"800713D0","-2147019824","2147947472","ERROR_CLUSTER_NODE_NOT_READY","" +"800713D1","-2147019823","2147947473","ERROR_CLUSTER_NODE_SHUTTING_DOWN","" +"800713D2","-2147019822","2147947474","ERROR_CLUSTER_JOIN_ABORTED","" +"800713D3","-2147019821","2147947475","ERROR_CLUSTER_INCOMPATIBLE_VERSIONS","" +"800713D4","-2147019820","2147947476","ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED","" +"800713D5","-2147019819","2147947477","ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED","" +"800713D6","-2147019818","2147947478","ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND","" +"800713D7","-2147019817","2147947479","ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED","" +"800713D8","-2147019816","2147947480","ERROR_CLUSTER_RESNAME_NOT_FOUND","" +"800713D9","-2147019815","2147947481","ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED","" +"800713DA","-2147019814","2147947482","ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST","" +"800713DB","-2147019813","2147947483","ERROR_CLUSTER_DATABASE_SEQMISMATCH","" +"800713DC","-2147019812","2147947484","ERROR_RESMON_INVALID_STATE","" +"800713DD","-2147019811","2147947485","ERROR_CLUSTER_GUM_NOT_LOCKER","" +"800713DE","-2147019810","2147947486","ERROR_QUORUM_DISK_NOT_FOUND","" +"800713DF","-2147019809","2147947487","ERROR_DATABASE_BACKUP_CORRUPT","" +"800713E0","-2147019808","2147947488","ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT","" +"800713E1","-2147019807","2147947489","ERROR_RESOURCE_PROPERTY_UNCHANGEABLE","" +"800713E2","-2147019806","2147947490","ERROR_NO_ADMIN_ACCESS_POINT","" +"80071702","-2147019006","2147948290","ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE","" +"80071703","-2147019005","2147948291","ERROR_CLUSTER_QUORUMLOG_NOT_FOUND","" +"80071704","-2147019004","2147948292","ERROR_CLUSTER_MEMBERSHIP_HALT","" +"80071705","-2147019003","2147948293","ERROR_CLUSTER_INSTANCE_ID_MISMATCH","" +"80071706","-2147019002","2147948294","ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP","" +"80071707","-2147019001","2147948295","ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH","" +"80071708","-2147019000","2147948296","ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP","" +"80071709","-2147018999","2147948297","ERROR_CLUSTER_PARAMETER_MISMATCH","" +"8007170A","-2147018998","2147948298","ERROR_NODE_CANNOT_BE_CLUSTERED","" +"8007170B","-2147018997","2147948299","ERROR_CLUSTER_WRONG_OS_VERSION","" +"8007170C","-2147018996","2147948300","ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME","" +"8007170D","-2147018995","2147948301","ERROR_CLUSCFG_ALREADY_COMMITTED","" +"8007170E","-2147018994","2147948302","ERROR_CLUSCFG_ROLLBACK_FAILED","" +"8007170F","-2147018993","2147948303","ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT","" +"80071710","-2147018992","2147948304","ERROR_CLUSTER_OLD_VERSION","" +"80071711","-2147018991","2147948305","ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME","" +"80071712","-2147018990","2147948306","ERROR_CLUSTER_NO_NET_ADAPTERS","" +"80071713","-2147018989","2147948307","ERROR_CLUSTER_POISONED","" +"80071714","-2147018988","2147948308","ERROR_CLUSTER_GROUP_MOVING","" +"80071715","-2147018987","2147948309","ERROR_CLUSTER_RESOURCE_TYPE_BUSY","" +"80071716","-2147018986","2147948310","ERROR_RESOURCE_CALL_TIMED_OUT","" +"80071717","-2147018985","2147948311","ERROR_INVALID_CLUSTER_IPV6_ADDRESS","" +"80071718","-2147018984","2147948312","ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION","" +"80071719","-2147018983","2147948313","ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS","" +"8007171A","-2147018982","2147948314","ERROR_CLUSTER_PARTIAL_SEND","" +"8007171B","-2147018981","2147948315","ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION","" +"8007171C","-2147018980","2147948316","ERROR_CLUSTER_INVALID_STRING_TERMINATION","" +"8007171D","-2147018979","2147948317","ERROR_CLUSTER_INVALID_STRING_FORMAT","" +"8007171E","-2147018978","2147948318","ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS","" +"8007171F","-2147018977","2147948319","ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS","" +"80071720","-2147018976","2147948320","ERROR_CLUSTER_NULL_DATA","" +"80071721","-2147018975","2147948321","ERROR_CLUSTER_PARTIAL_READ","" +"80071722","-2147018974","2147948322","ERROR_CLUSTER_PARTIAL_WRITE","" +"80071723","-2147018973","2147948323","ERROR_CLUSTER_CANT_DESERIALIZE_DATA","" +"80071724","-2147018972","2147948324","ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT","" +"80071725","-2147018971","2147948325","ERROR_CLUSTER_NO_QUORUM","" +"80071726","-2147018970","2147948326","ERROR_CLUSTER_INVALID_IPV6_NETWORK","" +"80071727","-2147018969","2147948327","ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK","" +"80071728","-2147018968","2147948328","ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP","" +"80071729","-2147018967","2147948329","ERROR_DEPENDENCY_TREE_TOO_COMPLEX","" +"8007172A","-2147018966","2147948330","ERROR_EXCEPTION_IN_RESOURCE_CALL","" +"8007172B","-2147018965","2147948331","ERROR_CLUSTER_RHS_FAILED_INITIALIZATION","" +"8007172C","-2147018964","2147948332","ERROR_CLUSTER_NOT_INSTALLED","" +"8007172D","-2147018963","2147948333","ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE","" +"8007172E","-2147018962","2147948334","ERROR_CLUSTER_MAX_NODES_IN_CLUSTER","" +"8007172F","-2147018961","2147948335","ERROR_CLUSTER_TOO_MANY_NODES","" +"80071730","-2147018960","2147948336","ERROR_CLUSTER_OBJECT_ALREADY_USED","" +"80071731","-2147018959","2147948337","ERROR_NONCORE_GROUPS_FOUND","" +"80071732","-2147018958","2147948338","ERROR_FILE_SHARE_RESOURCE_CONFLICT","" +"80071733","-2147018957","2147948339","ERROR_CLUSTER_EVICT_INVALID_REQUEST","" +"80071734","-2147018956","2147948340","ERROR_CLUSTER_SINGLETON_RESOURCE","" +"80071735","-2147018955","2147948341","ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE","" +"80071736","-2147018954","2147948342","ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED","" +"80071737","-2147018953","2147948343","ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR","" +"80071738","-2147018952","2147948344","ERROR_CLUSTER_GROUP_BUSY","" +"80071739","-2147018951","2147948345","ERROR_CLUSTER_NOT_SHARED_VOLUME","" +"8007173A","-2147018950","2147948346","ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR","" +"8007173B","-2147018949","2147948347","ERROR_CLUSTER_SHARED_VOLUMES_IN_USE","" +"8007173C","-2147018948","2147948348","ERROR_CLUSTER_USE_SHARED_VOLUMES_API","" +"8007173D","-2147018947","2147948349","ERROR_CLUSTER_BACKUP_IN_PROGRESS","" +"8007173E","-2147018946","2147948350","ERROR_NON_CSV_PATH","" +"8007173F","-2147018945","2147948351","ERROR_CSV_VOLUME_NOT_LOCAL","" +"80071740","-2147018944","2147948352","ERROR_CLUSTER_WATCHDOG_TERMINATING","" +"80071741","-2147018943","2147948353","ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES","" +"80071742","-2147018942","2147948354","ERROR_CLUSTER_INVALID_NODE_WEIGHT","" +"80071743","-2147018941","2147948355","ERROR_CLUSTER_RESOURCE_VETOED_CALL","" +"80071744","-2147018940","2147948356","ERROR_RESMON_SYSTEM_RESOURCES_LACKING","" +"80071745","-2147018939","2147948357","ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION","" +"80071746","-2147018938","2147948358","ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE","" +"80071747","-2147018937","2147948359","ERROR_CLUSTER_GROUP_QUEUED","" +"80071748","-2147018936","2147948360","ERROR_CLUSTER_RESOURCE_LOCKED_STATUS","" +"80071749","-2147018935","2147948361","ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED","" +"8007174A","-2147018934","2147948362","ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS","" +"8007174B","-2147018933","2147948363","ERROR_CLUSTER_DISK_NOT_CONNECTED","" +"8007174C","-2147018932","2147948364","ERROR_DISK_NOT_CSV_CAPABLE","" +"8007174D","-2147018931","2147948365","ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE","" +"8007174E","-2147018930","2147948366","ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED","" +"8007174F","-2147018929","2147948367","ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED","" +"80071750","-2147018928","2147948368","ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES","" +"80071751","-2147018927","2147948369","ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES","" +"80071752","-2147018926","2147948370","ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE","" +"80071753","-2147018925","2147948371","ERROR_CLUSTER_AFFINITY_CONFLICT","" +"80071754","-2147018924","2147948372","ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE","" +"80071755","-2147018923","2147948373","ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS","" +"80071756","-2147018922","2147948374","ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED","" +"80071757","-2147018921","2147948375","ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED","" +"80071758","-2147018920","2147948376","ERROR_CLUSTER_UPGRADE_IN_PROGRESS","" +"80071759","-2147018919","2147948377","ERROR_CLUSTER_UPGRADE_INCOMPLETE","" +"8007175A","-2147018918","2147948378","ERROR_CLUSTER_NODE_IN_GRACE_PERIOD","" +"8007175B","-2147018917","2147948379","ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT","" +"8007175C","-2147018916","2147948380","ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER","" +"8007175D","-2147018915","2147948381","ERROR_CLUSTER_RESOURCE_NOT_MONITORED","" +"8007175E","-2147018914","2147948382","ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED","" +"8007175F","-2147018913","2147948383","ERROR_CLUSTER_RESOURCE_IS_REPLICATED","" +"80071760","-2147018912","2147948384","ERROR_CLUSTER_NODE_ISOLATED","" +"80071761","-2147018911","2147948385","ERROR_CLUSTER_NODE_QUARANTINED","" +"80071762","-2147018910","2147948386","ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED","" +"80071763","-2147018909","2147948387","ERROR_CLUSTER_SPACE_DEGRADED","" +"80071764","-2147018908","2147948388","ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED","" +"80071765","-2147018907","2147948389","ERROR_CLUSTER_CSV_INVALID_HANDLE","" +"80071766","-2147018906","2147948390","ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR","" +"80071767","-2147018905","2147948391","ERROR_GROUPSET_NOT_AVAILABLE","" +"80071768","-2147018904","2147948392","ERROR_GROUPSET_NOT_FOUND","" +"80071769","-2147018903","2147948393","ERROR_GROUPSET_CANT_PROVIDE","" +"8007176A","-2147018902","2147948394","ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND","" +"8007176B","-2147018901","2147948395","ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY","" +"8007176C","-2147018900","2147948396","ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION","" +"8007176D","-2147018899","2147948397","ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS","" +"80071770","-2147018896","2147948400","ERROR_ENCRYPTION_FAILED","" +"80071771","-2147018895","2147948401","ERROR_DECRYPTION_FAILED","" +"80071772","-2147018894","2147948402","ERROR_FILE_ENCRYPTED","" +"80071773","-2147018893","2147948403","ERROR_NO_RECOVERY_POLICY","" +"80071774","-2147018892","2147948404","ERROR_NO_EFS","" +"80071775","-2147018891","2147948405","ERROR_WRONG_EFS","" +"80071776","-2147018890","2147948406","ERROR_NO_USER_KEYS","" +"80071777","-2147018889","2147948407","ERROR_FILE_NOT_ENCRYPTED","" +"80071778","-2147018888","2147948408","ERROR_NOT_EXPORT_FORMAT","" +"80071779","-2147018887","2147948409","ERROR_FILE_READ_ONLY","" +"8007177A","-2147018886","2147948410","ERROR_DIR_EFS_DISALLOWED","" +"8007177B","-2147018885","2147948411","ERROR_EFS_SERVER_NOT_TRUSTED","" +"8007177C","-2147018884","2147948412","ERROR_BAD_RECOVERY_POLICY","" +"8007177D","-2147018883","2147948413","ERROR_EFS_ALG_BLOB_TOO_BIG","" +"8007177E","-2147018882","2147948414","ERROR_VOLUME_NOT_SUPPORT_EFS","" +"8007177F","-2147018881","2147948415","ERROR_EFS_DISABLED","" +"80071780","-2147018880","2147948416","ERROR_EFS_VERSION_NOT_SUPPORT","" +"80071781","-2147018879","2147948417","ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE","" +"80071782","-2147018878","2147948418","ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER","" +"80071783","-2147018877","2147948419","ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE","" +"80071784","-2147018876","2147948420","ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE","" +"80071785","-2147018875","2147948421","ERROR_CS_ENCRYPTION_FILE_NOT_CSE","" +"80071786","-2147018874","2147948422","ERROR_ENCRYPTION_POLICY_DENIES_OPERATION","" +"800717E6","-2147018778","2147948518","ERROR_NO_BROWSER_SERVERS_FOUND","The list of servers for this workgroup is not currently available." +"80071838","-2147018696","2147948600","SCHED_E_SERVICE_NOT_LOCALSYSTEM","" +"800719C8","-2147018296","2147949000","ERROR_LOG_SECTOR_INVALID","" +"800719C9","-2147018295","2147949001","ERROR_LOG_SECTOR_PARITY_INVALID","" +"800719CA","-2147018294","2147949002","ERROR_LOG_SECTOR_REMAPPED","" +"800719CB","-2147018293","2147949003","ERROR_LOG_BLOCK_INCOMPLETE","" +"800719CC","-2147018292","2147949004","ERROR_LOG_INVALID_RANGE","" +"800719CD","-2147018291","2147949005","ERROR_LOG_BLOCKS_EXHAUSTED","" +"800719CE","-2147018290","2147949006","ERROR_LOG_READ_CONTEXT_INVALID","" +"800719CF","-2147018289","2147949007","ERROR_LOG_RESTART_INVALID","" +"800719D0","-2147018288","2147949008","ERROR_LOG_BLOCK_VERSION","" +"800719D1","-2147018287","2147949009","ERROR_LOG_BLOCK_INVALID","" +"800719D2","-2147018286","2147949010","ERROR_LOG_READ_MODE_INVALID","" +"800719D3","-2147018285","2147949011","ERROR_LOG_NO_RESTART","" +"800719D4","-2147018284","2147949012","ERROR_LOG_METADATA_CORRUPT","" +"800719D5","-2147018283","2147949013","ERROR_LOG_METADATA_INVALID","" +"800719D6","-2147018282","2147949014","ERROR_LOG_METADATA_INCONSISTENT","" +"800719D7","-2147018281","2147949015","ERROR_LOG_RESERVATION_INVALID","" +"800719D8","-2147018280","2147949016","ERROR_LOG_CANT_DELETE","" +"800719D9","-2147018279","2147949017","ERROR_LOG_CONTAINER_LIMIT_EXCEEDED","" +"800719DA","-2147018278","2147949018","ERROR_LOG_START_OF_LOG","" +"800719DB","-2147018277","2147949019","ERROR_LOG_POLICY_ALREADY_INSTALLED","" +"800719DC","-2147018276","2147949020","ERROR_LOG_POLICY_NOT_INSTALLED","" +"800719DD","-2147018275","2147949021","ERROR_LOG_POLICY_INVALID","" +"800719DE","-2147018274","2147949022","ERROR_LOG_POLICY_CONFLICT","" +"800719DF","-2147018273","2147949023","ERROR_LOG_PINNED_ARCHIVE_TAIL","" +"800719E0","-2147018272","2147949024","ERROR_LOG_RECORD_NONEXISTENT","" +"800719E1","-2147018271","2147949025","ERROR_LOG_RECORDS_RESERVED_INVALID","" +"800719E2","-2147018270","2147949026","ERROR_LOG_SPACE_RESERVED_INVALID","" +"800719E3","-2147018269","2147949027","ERROR_LOG_TAIL_INVALID","" +"800719E4","-2147018268","2147949028","ERROR_LOG_FULL","" +"800719E5","-2147018267","2147949029","ERROR_COULD_NOT_RESIZE_LOG","" +"800719E6","-2147018266","2147949030","ERROR_LOG_MULTIPLEXED","" +"800719E7","-2147018265","2147949031","ERROR_LOG_DEDICATED","" +"800719E8","-2147018264","2147949032","ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS","" +"800719E9","-2147018263","2147949033","ERROR_LOG_ARCHIVE_IN_PROGRESS","" +"800719EA","-2147018262","2147949034","ERROR_LOG_EPHEMERAL","" +"800719EB","-2147018261","2147949035","ERROR_LOG_NOT_ENOUGH_CONTAINERS","" +"800719EC","-2147018260","2147949036","ERROR_LOG_CLIENT_ALREADY_REGISTERED","" +"800719ED","-2147018259","2147949037","ERROR_LOG_CLIENT_NOT_REGISTERED","" +"800719EE","-2147018258","2147949038","ERROR_LOG_FULL_HANDLER_IN_PROGRESS","" +"800719EF","-2147018257","2147949039","ERROR_LOG_CONTAINER_READ_FAILED","" +"800719F0","-2147018256","2147949040","ERROR_LOG_CONTAINER_WRITE_FAILED","" +"800719F1","-2147018255","2147949041","ERROR_LOG_CONTAINER_OPEN_FAILED","" +"800719F2","-2147018254","2147949042","ERROR_LOG_CONTAINER_STATE_INVALID","" +"800719F3","-2147018253","2147949043","ERROR_LOG_STATE_INVALID","" +"800719F4","-2147018252","2147949044","ERROR_LOG_PINNED","" +"800719F5","-2147018251","2147949045","ERROR_LOG_METADATA_FLUSH_FAILED","" +"800719F6","-2147018250","2147949046","ERROR_LOG_INCONSISTENT_SECURITY","" +"800719F7","-2147018249","2147949047","ERROR_LOG_APPENDED_FLUSH_FAILED","" +"800719F8","-2147018248","2147949048","ERROR_LOG_PINNED_RESERVATION","" +"80071A2C","-2147018196","2147949100","ERROR_INVALID_TRANSACTION","" +"80071A2D","-2147018195","2147949101","ERROR_TRANSACTION_NOT_ACTIVE","" +"80071A2E","-2147018194","2147949102","ERROR_TRANSACTION_REQUEST_NOT_VALID","" +"80071A2F","-2147018193","2147949103","ERROR_TRANSACTION_NOT_REQUESTED","" +"80071A30","-2147018192","2147949104","ERROR_TRANSACTION_ALREADY_ABORTED","" +"80071A31","-2147018191","2147949105","ERROR_TRANSACTION_ALREADY_COMMITTED","" +"80071A32","-2147018190","2147949106","ERROR_TM_INITIALIZATION_FAILED","" +"80071A33","-2147018189","2147949107","ERROR_RESOURCEMANAGER_READ_ONLY","" +"80071A34","-2147018188","2147949108","ERROR_TRANSACTION_NOT_JOINED","" +"80071A35","-2147018187","2147949109","ERROR_TRANSACTION_SUPERIOR_EXISTS","" +"80071A36","-2147018186","2147949110","ERROR_CRM_PROTOCOL_ALREADY_EXISTS","" +"80071A37","-2147018185","2147949111","ERROR_TRANSACTION_PROPAGATION_FAILED","" +"80071A38","-2147018184","2147949112","ERROR_CRM_PROTOCOL_NOT_FOUND","" +"80071A39","-2147018183","2147949113","ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER","" +"80071A3A","-2147018182","2147949114","ERROR_CURRENT_TRANSACTION_NOT_VALID","" +"80071A3B","-2147018181","2147949115","ERROR_TRANSACTION_NOT_FOUND","" +"80071A3C","-2147018180","2147949116","ERROR_RESOURCEMANAGER_NOT_FOUND","" +"80071A3D","-2147018179","2147949117","ERROR_ENLISTMENT_NOT_FOUND","" +"80071A3E","-2147018178","2147949118","ERROR_TRANSACTIONMANAGER_NOT_FOUND","" +"80071A3F","-2147018177","2147949119","ERROR_TRANSACTIONMANAGER_NOT_ONLINE","" +"80071A40","-2147018176","2147949120","ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION","" +"80071A41","-2147018175","2147949121","ERROR_TRANSACTION_NOT_ROOT","" +"80071A42","-2147018174","2147949122","ERROR_TRANSACTION_OBJECT_EXPIRED","" +"80071A43","-2147018173","2147949123","ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED","" +"80071A44","-2147018172","2147949124","ERROR_TRANSACTION_RECORD_TOO_LONG","" +"80071A45","-2147018171","2147949125","ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED","" +"80071A46","-2147018170","2147949126","ERROR_TRANSACTION_INTEGRITY_VIOLATED","" +"80071A47","-2147018169","2147949127","ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH","" +"80071A48","-2147018168","2147949128","ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT","" +"80071A49","-2147018167","2147949129","ERROR_TRANSACTION_MUST_WRITETHROUGH","" +"80071A4A","-2147018166","2147949130","ERROR_TRANSACTION_NO_SUPERIOR","" +"80071A4B","-2147018165","2147949131","ERROR_HEURISTIC_DAMAGE_POSSIBLE","" +"80071A90","-2147018096","2147949200","ERROR_TRANSACTIONAL_CONFLICT","" +"80071A91","-2147018095","2147949201","ERROR_RM_NOT_ACTIVE","" +"80071A92","-2147018094","2147949202","ERROR_RM_METADATA_CORRUPT","" +"80071A93","-2147018093","2147949203","ERROR_DIRECTORY_NOT_RM","" +"80071A95","-2147018091","2147949205","ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE","" +"80071A96","-2147018090","2147949206","ERROR_LOG_RESIZE_INVALID_SIZE","" +"80071A97","-2147018089","2147949207","ERROR_OBJECT_NO_LONGER_EXISTS","" +"80071A98","-2147018088","2147949208","ERROR_STREAM_MINIVERSION_NOT_FOUND","" +"80071A99","-2147018087","2147949209","ERROR_STREAM_MINIVERSION_NOT_VALID","" +"80071A9A","-2147018086","2147949210","ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION","" +"80071A9B","-2147018085","2147949211","ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT","" +"80071A9C","-2147018084","2147949212","ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS","" +"80071A9E","-2147018082","2147949214","ERROR_REMOTE_FILE_VERSION_MISMATCH","" +"80071A9F","-2147018081","2147949215","ERROR_HANDLE_NO_LONGER_VALID","" +"80071AA0","-2147018080","2147949216","ERROR_NO_TXF_METADATA","" +"80071AA1","-2147018079","2147949217","ERROR_LOG_CORRUPTION_DETECTED","" +"80071AA2","-2147018078","2147949218","ERROR_CANT_RECOVER_WITH_HANDLE_OPEN","" +"80071AA3","-2147018077","2147949219","ERROR_RM_DISCONNECTED","" +"80071AA4","-2147018076","2147949220","ERROR_ENLISTMENT_NOT_SUPERIOR","" +"80071AA5","-2147018075","2147949221","ERROR_RECOVERY_NOT_NEEDED","" +"80071AA6","-2147018074","2147949222","ERROR_RM_ALREADY_STARTED","" +"80071AA7","-2147018073","2147949223","ERROR_FILE_IDENTITY_NOT_PERSISTENT","" +"80071AA8","-2147018072","2147949224","ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY","" +"80071AA9","-2147018071","2147949225","ERROR_CANT_CROSS_RM_BOUNDARY","" +"80071AAA","-2147018070","2147949226","ERROR_TXF_DIR_NOT_EMPTY","" +"80071AAB","-2147018069","2147949227","ERROR_INDOUBT_TRANSACTIONS_EXIST","" +"80071AAC","-2147018068","2147949228","ERROR_TM_VOLATILE","" +"80071AAD","-2147018067","2147949229","ERROR_ROLLBACK_TIMER_EXPIRED","" +"80071AAE","-2147018066","2147949230","ERROR_TXF_ATTRIBUTE_CORRUPT","" +"80071AAF","-2147018065","2147949231","ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION","" +"80071AB0","-2147018064","2147949232","ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED","" +"80071AB1","-2147018063","2147949233","ERROR_LOG_GROWTH_FAILED","" +"80071AB2","-2147018062","2147949234","ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE","" +"80071AB3","-2147018061","2147949235","ERROR_TXF_METADATA_ALREADY_PRESENT","" +"80071AB4","-2147018060","2147949236","ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET","" +"80071AB5","-2147018059","2147949237","ERROR_TRANSACTION_REQUIRED_PROMOTION","" +"80071AB6","-2147018058","2147949238","ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION","" +"80071AB7","-2147018057","2147949239","ERROR_TRANSACTIONS_NOT_FROZEN","" +"80071AB8","-2147018056","2147949240","ERROR_TRANSACTION_FREEZE_IN_PROGRESS","" +"80071AB9","-2147018055","2147949241","ERROR_NOT_SNAPSHOT_VOLUME","" +"80071ABA","-2147018054","2147949242","ERROR_NO_SAVEPOINT_WITH_OPEN_FILES","" +"80071ABB","-2147018053","2147949243","ERROR_DATA_LOST_REPAIR","" +"80071ABC","-2147018052","2147949244","ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION","" +"80071ABD","-2147018051","2147949245","ERROR_TM_IDENTITY_MISMATCH","" +"80071ABE","-2147018050","2147949246","ERROR_FLOATED_SECTION","" +"80071ABF","-2147018049","2147949247","ERROR_CANNOT_ACCEPT_TRANSACTED_WORK","" +"80071AC0","-2147018048","2147949248","ERROR_CANNOT_ABORT_TRANSACTIONS","" +"80071AC1","-2147018047","2147949249","ERROR_BAD_CLUSTERS","" +"80071AC2","-2147018046","2147949250","ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION","" +"80071AC3","-2147018045","2147949251","ERROR_VOLUME_DIRTY","" +"80071AC4","-2147018044","2147949252","ERROR_NO_LINK_TRACKING_IN_TRANSACTION","" +"80071AC5","-2147018043","2147949253","ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION","" +"80071AC6","-2147018042","2147949254","ERROR_EXPIRED_HANDLE","" +"80071AC7","-2147018041","2147949255","ERROR_TRANSACTION_NOT_ENLISTED","" +"80071B59","-2147017895","2147949401","ERROR_CTX_WINSTATION_NAME_INVALID","" +"80071B5A","-2147017894","2147949402","ERROR_CTX_INVALID_PD","" +"80071B5B","-2147017893","2147949403","ERROR_CTX_PD_NOT_FOUND","" +"80071B5C","-2147017892","2147949404","ERROR_CTX_WD_NOT_FOUND","" +"80071B5D","-2147017891","2147949405","ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY","" +"80071B5E","-2147017890","2147949406","ERROR_CTX_SERVICE_NAME_COLLISION","" +"80071B5F","-2147017889","2147949407","ERROR_CTX_CLOSE_PENDING","" +"80071B60","-2147017888","2147949408","ERROR_CTX_NO_OUTBUF","" +"80071B61","-2147017887","2147949409","ERROR_CTX_MODEM_INF_NOT_FOUND","" +"80071B62","-2147017886","2147949410","ERROR_CTX_INVALID_MODEMNAME","" +"80071B63","-2147017885","2147949411","ERROR_CTX_MODEM_RESPONSE_ERROR","" +"80071B64","-2147017884","2147949412","ERROR_CTX_MODEM_RESPONSE_TIMEOUT","" +"80071B65","-2147017883","2147949413","ERROR_CTX_MODEM_RESPONSE_NO_CARRIER","" +"80071B66","-2147017882","2147949414","ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE","" +"80071B67","-2147017881","2147949415","ERROR_CTX_MODEM_RESPONSE_BUSY","" +"80071B68","-2147017880","2147949416","ERROR_CTX_MODEM_RESPONSE_VOICE","" +"80071B69","-2147017879","2147949417","ERROR_CTX_TD_ERROR","" +"80071B6E","-2147017874","2147949422","ERROR_CTX_WINSTATION_NOT_FOUND","" +"80071B6F","-2147017873","2147949423","ERROR_CTX_WINSTATION_ALREADY_EXISTS","" +"80071B70","-2147017872","2147949424","ERROR_CTX_WINSTATION_BUSY","" +"80071B71","-2147017871","2147949425","ERROR_CTX_BAD_VIDEO_MODE","" +"80071B7B","-2147017861","2147949435","ERROR_CTX_GRAPHICS_INVALID","" +"80071B7D","-2147017859","2147949437","ERROR_CTX_LOGON_DISABLED","" +"80071B7E","-2147017858","2147949438","ERROR_CTX_NOT_CONSOLE","" +"80071B80","-2147017856","2147949440","ERROR_CTX_CLIENT_QUERY_TIMEOUT","" +"80071B81","-2147017855","2147949441","ERROR_CTX_CONSOLE_DISCONNECT","" +"80071B82","-2147017854","2147949442","ERROR_CTX_CONSOLE_CONNECT","" +"80071B84","-2147017852","2147949444","ERROR_CTX_SHADOW_DENIED","" +"80071B85","-2147017851","2147949445","ERROR_CTX_WINSTATION_ACCESS_DENIED","" +"80071B89","-2147017847","2147949449","ERROR_CTX_INVALID_WD","" +"80071B8A","-2147017846","2147949450","ERROR_CTX_SHADOW_INVALID","" +"80071B8B","-2147017845","2147949451","ERROR_CTX_SHADOW_DISABLED","" +"80071B8C","-2147017844","2147949452","ERROR_CTX_CLIENT_LICENSE_IN_USE","" +"80071B8D","-2147017843","2147949453","ERROR_CTX_CLIENT_LICENSE_NOT_SET","" +"80071B8E","-2147017842","2147949454","ERROR_CTX_LICENSE_NOT_AVAILABLE","" +"80071B8F","-2147017841","2147949455","ERROR_CTX_LICENSE_CLIENT_INVALID","" +"80071B90","-2147017840","2147949456","ERROR_CTX_LICENSE_EXPIRED","" +"80071B91","-2147017839","2147949457","ERROR_CTX_SHADOW_NOT_RUNNING","" +"80071B92","-2147017838","2147949458","ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE","" +"80071B93","-2147017837","2147949459","ERROR_ACTIVATION_COUNT_EXCEEDED","" +"80071B94","-2147017836","2147949460","ERROR_CTX_WINSTATIONS_DISABLED","" +"80071B95","-2147017835","2147949461","ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED","" +"80071B96","-2147017834","2147949462","ERROR_CTX_SESSION_IN_USE","" +"80071B97","-2147017833","2147949463","ERROR_CTX_NO_FORCE_LOGOFF","" +"80071B98","-2147017832","2147949464","ERROR_CTX_ACCOUNT_RESTRICTION","" +"80071B99","-2147017831","2147949465","ERROR_RDP_PROTOCOL_ERROR","" +"80071B9A","-2147017830","2147949466","ERROR_CTX_CDM_CONNECT","" +"80071B9B","-2147017829","2147949467","ERROR_CTX_CDM_DISCONNECT","" +"80071B9C","-2147017828","2147949468","ERROR_CTX_SECURITY_LAYER_ERROR","" +"80071B9D","-2147017827","2147949469","ERROR_TS_INCOMPATIBLE_SESSIONS","" +"80071B9E","-2147017826","2147949470","ERROR_TS_VIDEO_SUBSYSTEM_ERROR","" +"80071F41","-2147016895","2147950401","FRS_ERR_INVALID_API_SEQUENCE","" +"80071F42","-2147016894","2147950402","FRS_ERR_STARTING_SERVICE","" +"80071F43","-2147016893","2147950403","FRS_ERR_STOPPING_SERVICE","" +"80071F44","-2147016892","2147950404","FRS_ERR_INTERNAL_API","" +"80071F45","-2147016891","2147950405","FRS_ERR_INTERNAL","" +"80071F46","-2147016890","2147950406","FRS_ERR_SERVICE_COMM","" +"80071F47","-2147016889","2147950407","FRS_ERR_INSUFFICIENT_PRIV","" +"80071F48","-2147016888","2147950408","FRS_ERR_AUTHENTICATION","" +"80071F49","-2147016887","2147950409","FRS_ERR_PARENT_INSUFFICIENT_PRIV","" +"80071F4A","-2147016886","2147950410","FRS_ERR_PARENT_AUTHENTICATION","" +"80071F4B","-2147016885","2147950411","FRS_ERR_CHILD_TO_PARENT_COMM","" +"80071F4C","-2147016884","2147950412","FRS_ERR_PARENT_TO_CHILD_COMM","" +"80071F4D","-2147016883","2147950413","FRS_ERR_SYSVOL_POPULATE","" +"80071F4E","-2147016882","2147950414","FRS_ERR_SYSVOL_POPULATE_TIMEOUT","" +"80071F4F","-2147016881","2147950415","FRS_ERR_SYSVOL_IS_BUSY","" +"80071F50","-2147016880","2147950416","FRS_ERR_SYSVOL_DEMOTE","" +"80071F51","-2147016879","2147950417","FRS_ERR_INVALID_SERVICE_PARAMETER","" +"80072008","-2147016696","2147950600","ERROR_DS_NOT_INSTALLED","" +"80072009","-2147016695","2147950601","ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY","" +"8007200A","-2147016694","2147950602","ERROR_DS_NO_ATTRIBUTE_OR_VALUE","" +"8007200B","-2147016693","2147950603","ERROR_DS_INVALID_ATTRIBUTE_SYNTAX","" +"8007200C","-2147016692","2147950604","ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED","" +"8007200D","-2147016691","2147950605","ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS","" +"8007200E","-2147016690","2147950606","ERROR_DS_BUSY","" +"8007200F","-2147016689","2147950607","ERROR_DS_UNAVAILABLE","" +"80072010","-2147016688","2147950608","ERROR_DS_NO_RIDS_ALLOCATED","" +"80072011","-2147016687","2147950609","ERROR_DS_NO_MORE_RIDS","" +"80072012","-2147016686","2147950610","ERROR_DS_INCORRECT_ROLE_OWNER","" +"80072013","-2147016685","2147950611","ERROR_DS_RIDMGR_INIT_ERROR","" +"80072014","-2147016684","2147950612","ERROR_DS_OBJ_CLASS_VIOLATION","" +"80072015","-2147016683","2147950613","ERROR_DS_CANT_ON_NON_LEAF","" +"80072016","-2147016682","2147950614","ERROR_DS_CANT_ON_RDN","" +"80072017","-2147016681","2147950615","ERROR_DS_CANT_MOD_OBJ_CLASS","" +"80072018","-2147016680","2147950616","ERROR_DS_CROSS_DOM_MOVE_ERROR","" +"80072019","-2147016679","2147950617","ERROR_DS_GC_NOT_AVAILABLE","" +"8007201A","-2147016678","2147950618","ERROR_SHARED_POLICY","" +"8007201B","-2147016677","2147950619","ERROR_POLICY_OBJECT_NOT_FOUND","" +"8007201C","-2147016676","2147950620","ERROR_POLICY_ONLY_IN_DS","" +"8007201D","-2147016675","2147950621","ERROR_PROMOTION_ACTIVE","" +"8007201E","-2147016674","2147950622","ERROR_NO_PROMOTION_ACTIVE","" +"80072020","-2147016672","2147950624","ERROR_DS_OPERATIONS_ERROR","" +"80072021","-2147016671","2147950625","ERROR_DS_PROTOCOL_ERROR","" +"80072022","-2147016670","2147950626","ERROR_DS_TIMELIMIT_EXCEEDED","" +"80072023","-2147016669","2147950627","ERROR_DS_SIZELIMIT_EXCEEDED","" +"80072024","-2147016668","2147950628","ERROR_DS_ADMIN_LIMIT_EXCEEDED","" +"80072025","-2147016667","2147950629","ERROR_DS_COMPARE_FALSE","" +"80072026","-2147016666","2147950630","ERROR_DS_COMPARE_TRUE","" +"80072027","-2147016665","2147950631","ERROR_DS_AUTH_METHOD_NOT_SUPPORTED","" +"80072028","-2147016664","2147950632","ERROR_DS_STRONG_AUTH_REQUIRED","" +"80072029","-2147016663","2147950633","ERROR_DS_INAPPROPRIATE_AUTH","" +"8007202A","-2147016662","2147950634","ERROR_DS_AUTH_UNKNOWN","" +"8007202B","-2147016661","2147950635","ERROR_DS_REFERRAL","" +"8007202C","-2147016660","2147950636","ERROR_DS_UNAVAILABLE_CRIT_EXTENSION","" +"8007202D","-2147016659","2147950637","ERROR_DS_CONFIDENTIALITY_REQUIRED","" +"8007202E","-2147016658","2147950638","ERROR_DS_INAPPROPRIATE_MATCHING","" +"8007202F","-2147016657","2147950639","ERROR_DS_CONSTRAINT_VIOLATION","" +"80072030","-2147016656","2147950640","ERROR_DS_NO_SUCH_OBJECT","" +"80072031","-2147016655","2147950641","ERROR_DS_ALIAS_PROBLEM","" +"80072032","-2147016654","2147950642","ERROR_DS_INVALID_DN_SYNTAX","" +"80072033","-2147016653","2147950643","ERROR_DS_IS_LEAF","" +"80072034","-2147016652","2147950644","ERROR_DS_ALIAS_DEREF_PROBLEM","" +"80072035","-2147016651","2147950645","ERROR_DS_UNWILLING_TO_PERFORM","" +"80072036","-2147016650","2147950646","ERROR_DS_LOOP_DETECT","" +"80072037","-2147016649","2147950647","ERROR_DS_NAMING_VIOLATION","" +"80072038","-2147016648","2147950648","ERROR_DS_OBJECT_RESULTS_TOO_LARGE","" +"80072039","-2147016647","2147950649","ERROR_DS_AFFECTS_MULTIPLE_DSAS","" +"8007203A","-2147016646","2147950650","ERROR_DS_SERVER_DOWN","" +"8007203B","-2147016645","2147950651","ERROR_DS_LOCAL_ERROR","" +"8007203C","-2147016644","2147950652","ERROR_DS_ENCODING_ERROR","" +"8007203D","-2147016643","2147950653","ERROR_DS_DECODING_ERROR","" +"8007203E","-2147016642","2147950654","ERROR_DS_FILTER_UNKNOWN","" +"8007203F","-2147016641","2147950655","ERROR_DS_PARAM_ERROR","" +"80072040","-2147016640","2147950656","ERROR_DS_NOT_SUPPORTED","" +"80072041","-2147016639","2147950657","ERROR_DS_NO_RESULTS_RETURNED","" +"80072042","-2147016638","2147950658","ERROR_DS_CONTROL_NOT_FOUND","" +"80072043","-2147016637","2147950659","ERROR_DS_CLIENT_LOOP","" +"80072044","-2147016636","2147950660","ERROR_DS_REFERRAL_LIMIT_EXCEEDED","" +"80072045","-2147016635","2147950661","ERROR_DS_SORT_CONTROL_MISSING","" +"80072046","-2147016634","2147950662","ERROR_DS_OFFSET_RANGE_ERROR","" +"80072047","-2147016633","2147950663","ERROR_DS_RIDMGR_DISABLED","" +"8007206D","-2147016595","2147950701","ERROR_DS_ROOT_MUST_BE_NC","" +"8007206E","-2147016594","2147950702","ERROR_DS_ADD_REPLICA_INHIBITED","" +"8007206F","-2147016593","2147950703","ERROR_DS_ATT_NOT_DEF_IN_SCHEMA","" +"80072070","-2147016592","2147950704","ERROR_DS_MAX_OBJ_SIZE_EXCEEDED","" +"80072071","-2147016591","2147950705","ERROR_DS_OBJ_STRING_NAME_EXISTS","" +"80072072","-2147016590","2147950706","ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA","" +"80072073","-2147016589","2147950707","ERROR_DS_RDN_DOESNT_MATCH_SCHEMA","" +"80072074","-2147016588","2147950708","ERROR_DS_NO_REQUESTED_ATTS_FOUND","" +"80072075","-2147016587","2147950709","ERROR_DS_USER_BUFFER_TO_SMALL","" +"80072076","-2147016586","2147950710","ERROR_DS_ATT_IS_NOT_ON_OBJ","" +"80072077","-2147016585","2147950711","ERROR_DS_ILLEGAL_MOD_OPERATION","" +"80072078","-2147016584","2147950712","ERROR_DS_OBJ_TOO_LARGE","" +"80072079","-2147016583","2147950713","ERROR_DS_BAD_INSTANCE_TYPE","" +"8007207A","-2147016582","2147950714","ERROR_DS_MASTERDSA_REQUIRED","" +"8007207B","-2147016581","2147950715","ERROR_DS_OBJECT_CLASS_REQUIRED","" +"8007207C","-2147016580","2147950716","ERROR_DS_MISSING_REQUIRED_ATT","" +"8007207D","-2147016579","2147950717","ERROR_DS_ATT_NOT_DEF_FOR_CLASS","" +"8007207E","-2147016578","2147950718","ERROR_DS_ATT_ALREADY_EXISTS","" +"80072080","-2147016576","2147950720","ERROR_DS_CANT_ADD_ATT_VALUES","" +"80072081","-2147016575","2147950721","ERROR_DS_SINGLE_VALUE_CONSTRAINT","" +"80072082","-2147016574","2147950722","ERROR_DS_RANGE_CONSTRAINT","" +"80072083","-2147016573","2147950723","ERROR_DS_ATT_VAL_ALREADY_EXISTS","" +"80072084","-2147016572","2147950724","ERROR_DS_CANT_REM_MISSING_ATT","" +"80072085","-2147016571","2147950725","ERROR_DS_CANT_REM_MISSING_ATT_VAL","" +"80072086","-2147016570","2147950726","ERROR_DS_ROOT_CANT_BE_SUBREF","" +"80072087","-2147016569","2147950727","ERROR_DS_NO_CHAINING","" +"80072088","-2147016568","2147950728","ERROR_DS_NO_CHAINED_EVAL","" +"80072089","-2147016567","2147950729","ERROR_DS_NO_PARENT_OBJECT","" +"8007208A","-2147016566","2147950730","ERROR_DS_PARENT_IS_AN_ALIAS","" +"8007208B","-2147016565","2147950731","ERROR_DS_CANT_MIX_MASTER_AND_REPS","" +"8007208C","-2147016564","2147950732","ERROR_DS_CHILDREN_EXIST","" +"8007208D","-2147016563","2147950733","ERROR_DS_OBJ_NOT_FOUND","" +"8007208E","-2147016562","2147950734","ERROR_DS_ALIASED_OBJ_MISSING","" +"8007208F","-2147016561","2147950735","ERROR_DS_BAD_NAME_SYNTAX","" +"80072090","-2147016560","2147950736","ERROR_DS_ALIAS_POINTS_TO_ALIAS","" +"80072091","-2147016559","2147950737","ERROR_DS_CANT_DEREF_ALIAS","" +"80072092","-2147016558","2147950738","ERROR_DS_OUT_OF_SCOPE","" +"80072093","-2147016557","2147950739","ERROR_DS_OBJECT_BEING_REMOVED","" +"80072094","-2147016556","2147950740","ERROR_DS_CANT_DELETE_DSA_OBJ","" +"80072095","-2147016555","2147950741","ERROR_DS_GENERIC_ERROR","" +"80072096","-2147016554","2147950742","ERROR_DS_DSA_MUST_BE_INT_MASTER","" +"80072097","-2147016553","2147950743","ERROR_DS_CLASS_NOT_DSA","" +"80072098","-2147016552","2147950744","ERROR_DS_INSUFF_ACCESS_RIGHTS","" +"80072099","-2147016551","2147950745","ERROR_DS_ILLEGAL_SUPERIOR","" +"8007209A","-2147016550","2147950746","ERROR_DS_ATTRIBUTE_OWNED_BY_SAM","" +"8007209B","-2147016549","2147950747","ERROR_DS_NAME_TOO_MANY_PARTS","" +"8007209C","-2147016548","2147950748","ERROR_DS_NAME_TOO_LONG","" +"8007209D","-2147016547","2147950749","ERROR_DS_NAME_VALUE_TOO_LONG","" +"8007209E","-2147016546","2147950750","ERROR_DS_NAME_UNPARSEABLE","" +"8007209F","-2147016545","2147950751","ERROR_DS_NAME_TYPE_UNKNOWN","" +"800720A0","-2147016544","2147950752","ERROR_DS_NOT_AN_OBJECT","" +"800720A1","-2147016543","2147950753","ERROR_DS_SEC_DESC_TOO_SHORT","" +"800720A2","-2147016542","2147950754","ERROR_DS_SEC_DESC_INVALID","" +"800720A3","-2147016541","2147950755","ERROR_DS_NO_DELETED_NAME","" +"800720A4","-2147016540","2147950756","ERROR_DS_SUBREF_MUST_HAVE_PARENT","" +"800720A5","-2147016539","2147950757","ERROR_DS_NCNAME_MUST_BE_NC","" +"800720A6","-2147016538","2147950758","ERROR_DS_CANT_ADD_SYSTEM_ONLY","" +"800720A7","-2147016537","2147950759","ERROR_DS_CLASS_MUST_BE_CONCRETE","" +"800720A8","-2147016536","2147950760","ERROR_DS_INVALID_DMD","" +"800720A9","-2147016535","2147950761","ERROR_DS_OBJ_GUID_EXISTS","" +"800720AA","-2147016534","2147950762","ERROR_DS_NOT_ON_BACKLINK","" +"800720AB","-2147016533","2147950763","ERROR_DS_NO_CROSSREF_FOR_NC","" +"800720AC","-2147016532","2147950764","ERROR_DS_SHUTTING_DOWN","" +"800720AD","-2147016531","2147950765","ERROR_DS_UNKNOWN_OPERATION","" +"800720AE","-2147016530","2147950766","ERROR_DS_INVALID_ROLE_OWNER","" +"800720AF","-2147016529","2147950767","ERROR_DS_COULDNT_CONTACT_FSMO","" +"800720B0","-2147016528","2147950768","ERROR_DS_CROSS_NC_DN_RENAME","" +"800720B1","-2147016527","2147950769","ERROR_DS_CANT_MOD_SYSTEM_ONLY","" +"800720B2","-2147016526","2147950770","ERROR_DS_REPLICATOR_ONLY","" +"800720B3","-2147016525","2147950771","ERROR_DS_OBJ_CLASS_NOT_DEFINED","" +"800720B4","-2147016524","2147950772","ERROR_DS_OBJ_CLASS_NOT_SUBCLASS","" +"800720B5","-2147016523","2147950773","ERROR_DS_NAME_REFERENCE_INVALID","" +"800720B6","-2147016522","2147950774","ERROR_DS_CROSS_REF_EXISTS","" +"800720B7","-2147016521","2147950775","ERROR_DS_CANT_DEL_MASTER_CROSSREF","" +"800720B8","-2147016520","2147950776","ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD","" +"800720B9","-2147016519","2147950777","ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX","" +"800720BA","-2147016518","2147950778","ERROR_DS_DUP_RDN","" +"800720BB","-2147016517","2147950779","ERROR_DS_DUP_OID","" +"800720BC","-2147016516","2147950780","ERROR_DS_DUP_MAPI_ID","" +"800720BD","-2147016515","2147950781","ERROR_DS_DUP_SCHEMA_ID_GUID","" +"800720BE","-2147016514","2147950782","ERROR_DS_DUP_LDAP_DISPLAY_NAME","" +"800720BF","-2147016513","2147950783","ERROR_DS_SEMANTIC_ATT_TEST","" +"800720C0","-2147016512","2147950784","ERROR_DS_SYNTAX_MISMATCH","" +"800720C1","-2147016511","2147950785","ERROR_DS_EXISTS_IN_MUST_HAVE","" +"800720C2","-2147016510","2147950786","ERROR_DS_EXISTS_IN_MAY_HAVE","" +"800720C3","-2147016509","2147950787","ERROR_DS_NONEXISTENT_MAY_HAVE","" +"800720C4","-2147016508","2147950788","ERROR_DS_NONEXISTENT_MUST_HAVE","" +"800720C5","-2147016507","2147950789","ERROR_DS_AUX_CLS_TEST_FAIL","" +"800720C6","-2147016506","2147950790","ERROR_DS_NONEXISTENT_POSS_SUP","" +"800720C7","-2147016505","2147950791","ERROR_DS_SUB_CLS_TEST_FAIL","" +"800720C8","-2147016504","2147950792","ERROR_DS_BAD_RDN_ATT_ID_SYNTAX","" +"800720C9","-2147016503","2147950793","ERROR_DS_EXISTS_IN_AUX_CLS","" +"800720CA","-2147016502","2147950794","ERROR_DS_EXISTS_IN_SUB_CLS","" +"800720CB","-2147016501","2147950795","ERROR_DS_EXISTS_IN_POSS_SUP","" +"800720CC","-2147016500","2147950796","ERROR_DS_RECALCSCHEMA_FAILED","" +"800720CD","-2147016499","2147950797","ERROR_DS_TREE_DELETE_NOT_FINISHED","" +"800720CE","-2147016498","2147950798","ERROR_DS_CANT_DELETE","" +"800720CF","-2147016497","2147950799","ERROR_DS_ATT_SCHEMA_REQ_ID","" +"800720D0","-2147016496","2147950800","ERROR_DS_BAD_ATT_SCHEMA_SYNTAX","" +"800720D1","-2147016495","2147950801","ERROR_DS_CANT_CACHE_ATT","" +"800720D2","-2147016494","2147950802","ERROR_DS_CANT_CACHE_CLASS","" +"800720D3","-2147016493","2147950803","ERROR_DS_CANT_REMOVE_ATT_CACHE","" +"800720D4","-2147016492","2147950804","ERROR_DS_CANT_REMOVE_CLASS_CACHE","" +"800720D5","-2147016491","2147950805","ERROR_DS_CANT_RETRIEVE_DN","" +"800720D6","-2147016490","2147950806","ERROR_DS_MISSING_SUPREF","" +"800720D7","-2147016489","2147950807","ERROR_DS_CANT_RETRIEVE_INSTANCE","" +"800720D8","-2147016488","2147950808","ERROR_DS_CODE_INCONSISTENCY","" +"800720D9","-2147016487","2147950809","ERROR_DS_DATABASE_ERROR","" +"800720DA","-2147016486","2147950810","ERROR_DS_GOVERNSID_MISSING","" +"800720DB","-2147016485","2147950811","ERROR_DS_MISSING_EXPECTED_ATT","" +"800720DC","-2147016484","2147950812","ERROR_DS_NCNAME_MISSING_CR_REF","" +"800720DD","-2147016483","2147950813","ERROR_DS_SECURITY_CHECKING_ERROR","" +"800720DE","-2147016482","2147950814","ERROR_DS_SCHEMA_NOT_LOADED","" +"800720DF","-2147016481","2147950815","ERROR_DS_SCHEMA_ALLOC_FAILED","" +"800720E0","-2147016480","2147950816","ERROR_DS_ATT_SCHEMA_REQ_SYNTAX","" +"800720E1","-2147016479","2147950817","ERROR_DS_GCVERIFY_ERROR","" +"800720E2","-2147016478","2147950818","ERROR_DS_DRA_SCHEMA_MISMATCH","" +"800720E3","-2147016477","2147950819","ERROR_DS_CANT_FIND_DSA_OBJ","" +"800720E4","-2147016476","2147950820","ERROR_DS_CANT_FIND_EXPECTED_NC","" +"800720E5","-2147016475","2147950821","ERROR_DS_CANT_FIND_NC_IN_CACHE","" +"800720E6","-2147016474","2147950822","ERROR_DS_CANT_RETRIEVE_CHILD","" +"800720E7","-2147016473","2147950823","ERROR_DS_SECURITY_ILLEGAL_MODIFY","" +"800720E8","-2147016472","2147950824","ERROR_DS_CANT_REPLACE_HIDDEN_REC","" +"800720E9","-2147016471","2147950825","ERROR_DS_BAD_HIERARCHY_FILE","" +"800720EA","-2147016470","2147950826","ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED","" +"800720EB","-2147016469","2147950827","ERROR_DS_CONFIG_PARAM_MISSING","" +"800720EC","-2147016468","2147950828","ERROR_DS_COUNTING_AB_INDICES_FAILED","" +"800720ED","-2147016467","2147950829","ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED","" +"800720EE","-2147016466","2147950830","ERROR_DS_INTERNAL_FAILURE","" +"800720EF","-2147016465","2147950831","ERROR_DS_UNKNOWN_ERROR","" +"800720F0","-2147016464","2147950832","ERROR_DS_ROOT_REQUIRES_CLASS_TOP","" +"800720F1","-2147016463","2147950833","ERROR_DS_REFUSING_FSMO_ROLES","" +"800720F2","-2147016462","2147950834","ERROR_DS_MISSING_FSMO_SETTINGS","" +"800720F3","-2147016461","2147950835","ERROR_DS_UNABLE_TO_SURRENDER_ROLES","" +"800720F4","-2147016460","2147950836","ERROR_DS_DRA_GENERIC","" +"800720F5","-2147016459","2147950837","ERROR_DS_DRA_INVALID_PARAMETER","" +"800720F6","-2147016458","2147950838","ERROR_DS_DRA_BUSY","" +"800720F7","-2147016457","2147950839","ERROR_DS_DRA_BAD_DN","" +"800720F8","-2147016456","2147950840","ERROR_DS_DRA_BAD_NC","" +"800720F9","-2147016455","2147950841","ERROR_DS_DRA_DN_EXISTS","" +"800720FA","-2147016454","2147950842","ERROR_DS_DRA_INTERNAL_ERROR","" +"800720FB","-2147016453","2147950843","ERROR_DS_DRA_INCONSISTENT_DIT","" +"800720FC","-2147016452","2147950844","ERROR_DS_DRA_CONNECTION_FAILED","" +"800720FD","-2147016451","2147950845","ERROR_DS_DRA_BAD_INSTANCE_TYPE","" +"800720FE","-2147016450","2147950846","ERROR_DS_DRA_OUT_OF_MEM","" +"800720FF","-2147016449","2147950847","ERROR_DS_DRA_MAIL_PROBLEM","" +"80072100","-2147016448","2147950848","ERROR_DS_DRA_REF_ALREADY_EXISTS","" +"80072101","-2147016447","2147950849","ERROR_DS_DRA_REF_NOT_FOUND","" +"80072102","-2147016446","2147950850","ERROR_DS_DRA_OBJ_IS_REP_SOURCE","" +"80072103","-2147016445","2147950851","ERROR_DS_DRA_DB_ERROR","" +"80072104","-2147016444","2147950852","ERROR_DS_DRA_NO_REPLICA","" +"80072105","-2147016443","2147950853","ERROR_DS_DRA_ACCESS_DENIED","" +"80072106","-2147016442","2147950854","ERROR_DS_DRA_NOT_SUPPORTED","" +"80072107","-2147016441","2147950855","ERROR_DS_DRA_RPC_CANCELLED","" +"80072108","-2147016440","2147950856","ERROR_DS_DRA_SOURCE_DISABLED","" +"80072109","-2147016439","2147950857","ERROR_DS_DRA_SINK_DISABLED","" +"8007210A","-2147016438","2147950858","ERROR_DS_DRA_NAME_COLLISION","" +"8007210B","-2147016437","2147950859","ERROR_DS_DRA_SOURCE_REINSTALLED","" +"8007210C","-2147016436","2147950860","ERROR_DS_DRA_MISSING_PARENT","" +"8007210D","-2147016435","2147950861","ERROR_DS_DRA_PREEMPTED","" +"8007210E","-2147016434","2147950862","ERROR_DS_DRA_ABANDON_SYNC","" +"8007210F","-2147016433","2147950863","ERROR_DS_DRA_SHUTDOWN","" +"80072110","-2147016432","2147950864","ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET","" +"80072111","-2147016431","2147950865","ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA","" +"80072112","-2147016430","2147950866","ERROR_DS_DRA_EXTN_CONNECTION_FAILED","" +"80072113","-2147016429","2147950867","ERROR_DS_INSTALL_SCHEMA_MISMATCH","" +"80072114","-2147016428","2147950868","ERROR_DS_DUP_LINK_ID","" +"80072115","-2147016427","2147950869","ERROR_DS_NAME_ERROR_RESOLVING","" +"80072116","-2147016426","2147950870","ERROR_DS_NAME_ERROR_NOT_FOUND","" +"80072117","-2147016425","2147950871","ERROR_DS_NAME_ERROR_NOT_UNIQUE","" +"80072118","-2147016424","2147950872","ERROR_DS_NAME_ERROR_NO_MAPPING","" +"80072119","-2147016423","2147950873","ERROR_DS_NAME_ERROR_DOMAIN_ONLY","" +"8007211A","-2147016422","2147950874","ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING","" +"8007211B","-2147016421","2147950875","ERROR_DS_CONSTRUCTED_ATT_MOD","" +"8007211C","-2147016420","2147950876","ERROR_DS_WRONG_OM_OBJ_CLASS","" +"8007211D","-2147016419","2147950877","ERROR_DS_DRA_REPL_PENDING","" +"8007211E","-2147016418","2147950878","ERROR_DS_DS_REQUIRED","" +"8007211F","-2147016417","2147950879","ERROR_DS_INVALID_LDAP_DISPLAY_NAME","" +"80072120","-2147016416","2147950880","ERROR_DS_NON_BASE_SEARCH","" +"80072121","-2147016415","2147950881","ERROR_DS_CANT_RETRIEVE_ATTS","" +"80072122","-2147016414","2147950882","ERROR_DS_BACKLINK_WITHOUT_LINK","" +"80072123","-2147016413","2147950883","ERROR_DS_EPOCH_MISMATCH","" +"80072124","-2147016412","2147950884","ERROR_DS_SRC_NAME_MISMATCH","" +"80072125","-2147016411","2147950885","ERROR_DS_SRC_AND_DST_NC_IDENTICAL","" +"80072126","-2147016410","2147950886","ERROR_DS_DST_NC_MISMATCH","" +"80072127","-2147016409","2147950887","ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC","" +"80072128","-2147016408","2147950888","ERROR_DS_SRC_GUID_MISMATCH","" +"80072129","-2147016407","2147950889","ERROR_DS_CANT_MOVE_DELETED_OBJECT","" +"8007212A","-2147016406","2147950890","ERROR_DS_PDC_OPERATION_IN_PROGRESS","" +"8007212B","-2147016405","2147950891","ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD","" +"8007212C","-2147016404","2147950892","ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION","" +"8007212D","-2147016403","2147950893","ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS","" +"8007212E","-2147016402","2147950894","ERROR_DS_NC_MUST_HAVE_NC_PARENT","" +"8007212F","-2147016401","2147950895","ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE","" +"80072130","-2147016400","2147950896","ERROR_DS_DST_DOMAIN_NOT_NATIVE","" +"80072131","-2147016399","2147950897","ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER","" +"80072132","-2147016398","2147950898","ERROR_DS_CANT_MOVE_ACCOUNT_GROUP","" +"80072133","-2147016397","2147950899","ERROR_DS_CANT_MOVE_RESOURCE_GROUP","" +"80072134","-2147016396","2147950900","ERROR_DS_INVALID_SEARCH_FLAG","" +"80072135","-2147016395","2147950901","ERROR_DS_NO_TREE_DELETE_ABOVE_NC","" +"80072136","-2147016394","2147950902","ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE","" +"80072137","-2147016393","2147950903","ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE","" +"80072138","-2147016392","2147950904","ERROR_DS_SAM_INIT_FAILURE","" +"80072139","-2147016391","2147950905","ERROR_DS_SENSITIVE_GROUP_VIOLATION","" +"8007213A","-2147016390","2147950906","ERROR_DS_CANT_MOD_PRIMARYGROUPID","" +"8007213B","-2147016389","2147950907","ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD","" +"8007213C","-2147016388","2147950908","ERROR_DS_NONSAFE_SCHEMA_CHANGE","" +"8007213D","-2147016387","2147950909","ERROR_DS_SCHEMA_UPDATE_DISALLOWED","" +"8007213E","-2147016386","2147950910","ERROR_DS_CANT_CREATE_UNDER_SCHEMA","" +"8007213F","-2147016385","2147950911","ERROR_DS_INSTALL_NO_SRC_SCH_VERSION","" +"80072140","-2147016384","2147950912","ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE","" +"80072141","-2147016383","2147950913","ERROR_DS_INVALID_GROUP_TYPE","" +"80072142","-2147016382","2147950914","ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN","" +"80072143","-2147016381","2147950915","ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN","" +"80072144","-2147016380","2147950916","ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER","" +"80072145","-2147016379","2147950917","ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER","" +"80072146","-2147016378","2147950918","ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER","" +"80072147","-2147016377","2147950919","ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER","" +"80072148","-2147016376","2147950920","ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER","" +"80072149","-2147016375","2147950921","ERROR_DS_HAVE_PRIMARY_MEMBERS","" +"8007214A","-2147016374","2147950922","ERROR_DS_STRING_SD_CONVERSION_FAILED","" +"8007214B","-2147016373","2147950923","ERROR_DS_NAMING_MASTER_GC","" +"8007214C","-2147016372","2147950924","ERROR_DS_DNS_LOOKUP_FAILURE","" +"8007214D","-2147016371","2147950925","ERROR_DS_COULDNT_UPDATE_SPNS","" +"8007214E","-2147016370","2147950926","ERROR_DS_CANT_RETRIEVE_SD","" +"8007214F","-2147016369","2147950927","ERROR_DS_KEY_NOT_UNIQUE","" +"80072150","-2147016368","2147950928","ERROR_DS_WRONG_LINKED_ATT_SYNTAX","" +"80072151","-2147016367","2147950929","ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD","" +"80072152","-2147016366","2147950930","ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY","" +"80072153","-2147016365","2147950931","ERROR_DS_CANT_START","" +"80072154","-2147016364","2147950932","ERROR_DS_INIT_FAILURE","" +"80072155","-2147016363","2147950933","ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION","" +"80072156","-2147016362","2147950934","ERROR_DS_SOURCE_DOMAIN_IN_FOREST","" +"80072157","-2147016361","2147950935","ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST","" +"80072158","-2147016360","2147950936","ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED","" +"80072159","-2147016359","2147950937","ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN","" +"8007215A","-2147016358","2147950938","ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER","" +"8007215B","-2147016357","2147950939","ERROR_DS_SRC_SID_EXISTS_IN_FOREST","" +"8007215C","-2147016356","2147950940","ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH","" +"8007215D","-2147016355","2147950941","ERROR_SAM_INIT_FAILURE","" +"8007215E","-2147016354","2147950942","ERROR_DS_DRA_SCHEMA_INFO_SHIP","" +"8007215F","-2147016353","2147950943","ERROR_DS_DRA_SCHEMA_CONFLICT","" +"80072160","-2147016352","2147950944","ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT","" +"80072161","-2147016351","2147950945","ERROR_DS_DRA_OBJ_NC_MISMATCH","" +"80072162","-2147016350","2147950946","ERROR_DS_NC_STILL_HAS_DSAS","" +"80072163","-2147016349","2147950947","ERROR_DS_GC_REQUIRED","" +"80072164","-2147016348","2147950948","ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY","" +"80072165","-2147016347","2147950949","ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS","" +"80072166","-2147016346","2147950950","ERROR_DS_CANT_ADD_TO_GC","" +"80072167","-2147016345","2147950951","ERROR_DS_NO_CHECKPOINT_WITH_PDC","" +"80072168","-2147016344","2147950952","ERROR_DS_SOURCE_AUDITING_NOT_ENABLED","" +"80072169","-2147016343","2147950953","ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC","" +"8007216A","-2147016342","2147950954","ERROR_DS_INVALID_NAME_FOR_SPN","" +"8007216B","-2147016341","2147950955","ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS","" +"8007216C","-2147016340","2147950956","ERROR_DS_UNICODEPWD_NOT_IN_QUOTES","" +"8007216D","-2147016339","2147950957","ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED","" +"8007216E","-2147016338","2147950958","ERROR_DS_MUST_BE_RUN_ON_DST_DC","" +"8007216F","-2147016337","2147950959","ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER","" +"80072170","-2147016336","2147950960","ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ","" +"80072171","-2147016335","2147950961","ERROR_DS_INIT_FAILURE_CONSOLE","" +"80072172","-2147016334","2147950962","ERROR_DS_SAM_INIT_FAILURE_CONSOLE","" +"80072173","-2147016333","2147950963","ERROR_DS_FOREST_VERSION_TOO_HIGH","" +"80072174","-2147016332","2147950964","ERROR_DS_DOMAIN_VERSION_TOO_HIGH","" +"80072175","-2147016331","2147950965","ERROR_DS_FOREST_VERSION_TOO_LOW","" +"80072176","-2147016330","2147950966","ERROR_DS_DOMAIN_VERSION_TOO_LOW","" +"80072177","-2147016329","2147950967","ERROR_DS_INCOMPATIBLE_VERSION","" +"80072178","-2147016328","2147950968","ERROR_DS_LOW_DSA_VERSION","" +"80072179","-2147016327","2147950969","ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN","" +"8007217A","-2147016326","2147950970","ERROR_DS_NOT_SUPPORTED_SORT_ORDER","" +"8007217B","-2147016325","2147950971","ERROR_DS_NAME_NOT_UNIQUE","" +"8007217C","-2147016324","2147950972","ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4","" +"8007217D","-2147016323","2147950973","ERROR_DS_OUT_OF_VERSION_STORE","" +"8007217E","-2147016322","2147950974","ERROR_DS_INCOMPATIBLE_CONTROLS_USED","" +"8007217F","-2147016321","2147950975","ERROR_DS_NO_REF_DOMAIN","" +"80072180","-2147016320","2147950976","ERROR_DS_RESERVED_LINK_ID","" +"80072181","-2147016319","2147950977","ERROR_DS_LINK_ID_NOT_AVAILABLE","" +"80072182","-2147016318","2147950978","ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER","" +"80072183","-2147016317","2147950979","ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE","" +"80072184","-2147016316","2147950980","ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC","" +"80072185","-2147016315","2147950981","ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG","" +"80072186","-2147016314","2147950982","ERROR_DS_MODIFYDN_WRONG_GRANDPARENT","" +"80072187","-2147016313","2147950983","ERROR_DS_NAME_ERROR_TRUST_REFERRAL","" +"80072188","-2147016312","2147950984","ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER","" +"80072189","-2147016311","2147950985","ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD","" +"8007218A","-2147016310","2147950986","ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2","" +"8007218B","-2147016309","2147950987","ERROR_DS_THREAD_LIMIT_EXCEEDED","" +"8007218C","-2147016308","2147950988","ERROR_DS_NOT_CLOSEST","" +"8007218D","-2147016307","2147950989","ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF","" +"8007218E","-2147016306","2147950990","ERROR_DS_SINGLE_USER_MODE_FAILED","" +"8007218F","-2147016305","2147950991","ERROR_DS_NTDSCRIPT_SYNTAX_ERROR","" +"80072190","-2147016304","2147950992","ERROR_DS_NTDSCRIPT_PROCESS_ERROR","" +"80072191","-2147016303","2147950993","ERROR_DS_DIFFERENT_REPL_EPOCHS","" +"80072192","-2147016302","2147950994","ERROR_DS_DRS_EXTENSIONS_CHANGED","" +"80072193","-2147016301","2147950995","ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR","" +"80072194","-2147016300","2147950996","ERROR_DS_NO_MSDS_INTID","" +"80072195","-2147016299","2147950997","ERROR_DS_DUP_MSDS_INTID","" +"80072196","-2147016298","2147950998","ERROR_DS_EXISTS_IN_RDNATTID","" +"80072197","-2147016297","2147950999","ERROR_DS_AUTHORIZATION_FAILED","" +"80072198","-2147016296","2147951000","ERROR_DS_INVALID_SCRIPT","" +"80072199","-2147016295","2147951001","ERROR_DS_REMOTE_CROSSREF_OP_FAILED","" +"8007219A","-2147016294","2147951002","ERROR_DS_CROSS_REF_BUSY","" +"8007219B","-2147016293","2147951003","ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN","" +"8007219C","-2147016292","2147951004","ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC","" +"8007219D","-2147016291","2147951005","ERROR_DS_DUPLICATE_ID_FOUND","" +"8007219E","-2147016290","2147951006","ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT","" +"8007219F","-2147016289","2147951007","ERROR_DS_GROUP_CONVERSION_ERROR","" +"800721A0","-2147016288","2147951008","ERROR_DS_CANT_MOVE_APP_BASIC_GROUP","" +"800721A1","-2147016287","2147951009","ERROR_DS_CANT_MOVE_APP_QUERY_GROUP","" +"800721A2","-2147016286","2147951010","ERROR_DS_ROLE_NOT_VERIFIED","" +"800721A3","-2147016285","2147951011","ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL","" +"800721A4","-2147016284","2147951012","ERROR_DS_DOMAIN_RENAME_IN_PROGRESS","" +"800721A5","-2147016283","2147951013","ERROR_DS_EXISTING_AD_CHILD_NC","" +"800721A6","-2147016282","2147951014","ERROR_DS_REPL_LIFETIME_EXCEEDED","" +"800721A7","-2147016281","2147951015","ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER","" +"800721A8","-2147016280","2147951016","ERROR_DS_LDAP_SEND_QUEUE_FULL","" +"800721A9","-2147016279","2147951017","ERROR_DS_DRA_OUT_SCHEDULE_WINDOW","" +"800721AA","-2147016278","2147951018","ERROR_DS_POLICY_NOT_KNOWN","" +"800721AB","-2147016277","2147951019","ERROR_NO_SITE_SETTINGS_OBJECT","" +"800721AC","-2147016276","2147951020","ERROR_NO_SECRETS","" +"800721AD","-2147016275","2147951021","ERROR_NO_WRITABLE_DC_FOUND","" +"800721AE","-2147016274","2147951022","ERROR_DS_NO_SERVER_OBJECT","" +"800721AF","-2147016273","2147951023","ERROR_DS_NO_NTDSA_OBJECT","" +"800721B0","-2147016272","2147951024","ERROR_DS_NON_ASQ_SEARCH","" +"800721B1","-2147016271","2147951025","ERROR_DS_AUDIT_FAILURE","" +"800721B2","-2147016270","2147951026","ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE","" +"800721B3","-2147016269","2147951027","ERROR_DS_INVALID_SEARCH_FLAG_TUPLE","" +"800721B4","-2147016268","2147951028","ERROR_DS_HIERARCHY_TABLE_TOO_DEEP","" +"800721B5","-2147016267","2147951029","ERROR_DS_DRA_CORRUPT_UTD_VECTOR","" +"800721B6","-2147016266","2147951030","ERROR_DS_DRA_SECRETS_DENIED","" +"800721B7","-2147016265","2147951031","ERROR_DS_RESERVED_MAPI_ID","" +"800721B8","-2147016264","2147951032","ERROR_DS_MAPI_ID_NOT_AVAILABLE","" +"800721B9","-2147016263","2147951033","ERROR_DS_DRA_MISSING_KRBTGT_SECRET","" +"800721BA","-2147016262","2147951034","ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST","" +"800721BB","-2147016261","2147951035","ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST","" +"800721BC","-2147016260","2147951036","ERROR_INVALID_USER_PRINCIPAL_NAME","" +"800721BD","-2147016259","2147951037","ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS","" +"800721BE","-2147016258","2147951038","ERROR_DS_OID_NOT_FOUND","" +"800721BF","-2147016257","2147951039","ERROR_DS_DRA_RECYCLED_TARGET","" +"800721C0","-2147016256","2147951040","ERROR_DS_DISALLOWED_NC_REDIRECT","" +"800721C1","-2147016255","2147951041","ERROR_DS_HIGH_ADLDS_FFL","" +"800721C2","-2147016254","2147951042","ERROR_DS_HIGH_DSA_VERSION","" +"800721C3","-2147016253","2147951043","ERROR_DS_LOW_ADLDS_FFL","" +"800721C4","-2147016252","2147951044","ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION","" +"800721C5","-2147016251","2147951045","ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED","" +"800721C6","-2147016250","2147951046","ERROR_INCORRECT_ACCOUNT_TYPE","" +"800721C7","-2147016249","2147951047","ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST","" +"800721C8","-2147016248","2147951048","ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST","" +"800721C9","-2147016247","2147951049","ERROR_DS_MISSING_FOREST_TRUST","" +"800721CA","-2147016246","2147951050","ERROR_DS_VALUE_KEY_NOT_UNIQUE","" +"80072329","-2147015895","2147951401","DNS_ERROR_RCODE_FORMAT_ERROR","" +"8007232A","-2147015894","2147951402","DNS_ERROR_RCODE_SERVER_FAILURE","" +"8007232B","-2147015893","2147951403","DNS_ERROR_RCODE_NAME_ERROR","" +"8007232C","-2147015892","2147951404","DNS_ERROR_RCODE_NOT_IMPLEMENTED","" +"8007232D","-2147015891","2147951405","DNS_ERROR_RCODE_REFUSED","" +"8007232E","-2147015890","2147951406","DNS_ERROR_RCODE_YXDOMAIN","" +"8007232F","-2147015889","2147951407","DNS_ERROR_RCODE_YXRRSET","" +"80072330","-2147015888","2147951408","DNS_ERROR_RCODE_NXRRSET","" +"80072331","-2147015887","2147951409","DNS_ERROR_RCODE_NOTAUTH","" +"80072332","-2147015886","2147951410","DNS_ERROR_RCODE_NOTZONE","" +"80072338","-2147015880","2147951416","DNS_ERROR_RCODE_BADSIG","" +"80072339","-2147015879","2147951417","DNS_ERROR_RCODE_BADKEY","" +"8007233A","-2147015878","2147951418","DNS_ERROR_RCODE_BADTIME","" +"8007238D","-2147015795","2147951501","DNS_ERROR_KEYMASTER_REQUIRED","" +"8007238E","-2147015794","2147951502","DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE","" +"8007238F","-2147015793","2147951503","DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1","" +"80072390","-2147015792","2147951504","DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS","" +"80072391","-2147015791","2147951505","DNS_ERROR_UNSUPPORTED_ALGORITHM","" +"80072392","-2147015790","2147951506","DNS_ERROR_INVALID_KEY_SIZE","" +"80072393","-2147015789","2147951507","DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE","" +"80072394","-2147015788","2147951508","DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION","" +"80072395","-2147015787","2147951509","DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR","" +"80072396","-2147015786","2147951510","DNS_ERROR_UNEXPECTED_CNG_ERROR","" +"80072397","-2147015785","2147951511","DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION","" +"80072398","-2147015784","2147951512","DNS_ERROR_KSP_NOT_ACCESSIBLE","" +"80072399","-2147015783","2147951513","DNS_ERROR_TOO_MANY_SKDS","" +"8007239A","-2147015782","2147951514","DNS_ERROR_INVALID_ROLLOVER_PERIOD","" +"8007239B","-2147015781","2147951515","DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET","" +"8007239C","-2147015780","2147951516","DNS_ERROR_ROLLOVER_IN_PROGRESS","" +"8007239D","-2147015779","2147951517","DNS_ERROR_STANDBY_KEY_NOT_PRESENT","" +"8007239E","-2147015778","2147951518","DNS_ERROR_NOT_ALLOWED_ON_ZSK","" +"8007239F","-2147015777","2147951519","DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD","" +"800723A0","-2147015776","2147951520","DNS_ERROR_ROLLOVER_ALREADY_QUEUED","" +"800723A1","-2147015775","2147951521","DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE","" +"800723A2","-2147015774","2147951522","DNS_ERROR_BAD_KEYMASTER","" +"800723A3","-2147015773","2147951523","DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD","" +"800723A4","-2147015772","2147951524","DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT","" +"800723A5","-2147015771","2147951525","DNS_ERROR_DNSSEC_IS_DISABLED","" +"800723A6","-2147015770","2147951526","DNS_ERROR_INVALID_XML","" +"800723A7","-2147015769","2147951527","DNS_ERROR_NO_VALID_TRUST_ANCHORS","" +"800723A8","-2147015768","2147951528","DNS_ERROR_ROLLOVER_NOT_POKEABLE","" +"800723A9","-2147015767","2147951529","DNS_ERROR_NSEC3_NAME_COLLISION","" +"800723AA","-2147015766","2147951530","DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1","" +"8007251D","-2147015395","2147951901","DNS_INFO_NO_RECORDS","" +"8007251E","-2147015394","2147951902","DNS_ERROR_BAD_PACKET","" +"8007251F","-2147015393","2147951903","DNS_ERROR_NO_PACKET","" +"80072520","-2147015392","2147951904","DNS_ERROR_RCODE","" +"80072521","-2147015391","2147951905","DNS_ERROR_UNSECURE_PACKET","" +"80072522","-2147015390","2147951906","DNS_REQUEST_PENDING","" +"8007254F","-2147015345","2147951951","DNS_ERROR_INVALID_TYPE","" +"80072550","-2147015344","2147951952","DNS_ERROR_INVALID_IP_ADDRESS","" +"80072551","-2147015343","2147951953","DNS_ERROR_INVALID_PROPERTY","" +"80072552","-2147015342","2147951954","DNS_ERROR_TRY_AGAIN_LATER","" +"80072553","-2147015341","2147951955","DNS_ERROR_NOT_UNIQUE","" +"80072554","-2147015340","2147951956","DNS_ERROR_NON_RFC_NAME","" +"80072555","-2147015339","2147951957","DNS_STATUS_FQDN","" +"80072556","-2147015338","2147951958","DNS_STATUS_DOTTED_NAME","" +"80072557","-2147015337","2147951959","DNS_STATUS_SINGLE_PART_NAME","" +"80072558","-2147015336","2147951960","DNS_ERROR_INVALID_NAME_CHAR","" +"80072559","-2147015335","2147951961","DNS_ERROR_NUMERIC_NAME","" +"8007255A","-2147015334","2147951962","DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER","" +"8007255B","-2147015333","2147951963","DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION","" +"8007255C","-2147015332","2147951964","DNS_ERROR_CANNOT_FIND_ROOT_HINTS","" +"8007255D","-2147015331","2147951965","DNS_ERROR_INCONSISTENT_ROOT_HINTS","" +"8007255E","-2147015330","2147951966","DNS_ERROR_DWORD_VALUE_TOO_SMALL","" +"8007255F","-2147015329","2147951967","DNS_ERROR_DWORD_VALUE_TOO_LARGE","" +"80072560","-2147015328","2147951968","DNS_ERROR_BACKGROUND_LOADING","" +"80072561","-2147015327","2147951969","DNS_ERROR_NOT_ALLOWED_ON_RODC","" +"80072562","-2147015326","2147951970","DNS_ERROR_NOT_ALLOWED_UNDER_DNAME","" +"80072563","-2147015325","2147951971","DNS_ERROR_DELEGATION_REQUIRED","" +"80072564","-2147015324","2147951972","DNS_ERROR_INVALID_POLICY_TABLE","" +"80072565","-2147015323","2147951973","DNS_ERROR_ADDRESS_REQUIRED","" +"80072581","-2147015295","2147952001","DNS_ERROR_ZONE_DOES_NOT_EXIST","" +"80072582","-2147015294","2147952002","DNS_ERROR_NO_ZONE_INFO","" +"80072583","-2147015293","2147952003","DNS_ERROR_INVALID_ZONE_OPERATION","" +"80072584","-2147015292","2147952004","DNS_ERROR_ZONE_CONFIGURATION_ERROR","" +"80072585","-2147015291","2147952005","DNS_ERROR_ZONE_HAS_NO_SOA_RECORD","" +"80072586","-2147015290","2147952006","DNS_ERROR_ZONE_HAS_NO_NS_RECORDS","" +"80072587","-2147015289","2147952007","DNS_ERROR_ZONE_LOCKED","" +"80072588","-2147015288","2147952008","DNS_ERROR_ZONE_CREATION_FAILED","" +"80072589","-2147015287","2147952009","DNS_ERROR_ZONE_ALREADY_EXISTS","" +"8007258A","-2147015286","2147952010","DNS_ERROR_AUTOZONE_ALREADY_EXISTS","" +"8007258B","-2147015285","2147952011","DNS_ERROR_INVALID_ZONE_TYPE","" +"8007258C","-2147015284","2147952012","DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP","" +"8007258D","-2147015283","2147952013","DNS_ERROR_ZONE_NOT_SECONDARY","" +"8007258E","-2147015282","2147952014","DNS_ERROR_NEED_SECONDARY_ADDRESSES","" +"8007258F","-2147015281","2147952015","DNS_ERROR_WINS_INIT_FAILED","" +"80072590","-2147015280","2147952016","DNS_ERROR_NEED_WINS_SERVERS","" +"80072591","-2147015279","2147952017","DNS_ERROR_NBSTAT_INIT_FAILED","" +"80072592","-2147015278","2147952018","DNS_ERROR_SOA_DELETE_INVALID","" +"80072593","-2147015277","2147952019","DNS_ERROR_FORWARDER_ALREADY_EXISTS","" +"80072594","-2147015276","2147952020","DNS_ERROR_ZONE_REQUIRES_MASTER_IP","" +"80072595","-2147015275","2147952021","DNS_ERROR_ZONE_IS_SHUTDOWN","" +"80072596","-2147015274","2147952022","DNS_ERROR_ZONE_LOCKED_FOR_SIGNING","" +"800725B3","-2147015245","2147952051","DNS_ERROR_PRIMARY_REQUIRES_DATAFILE","" +"800725B4","-2147015244","2147952052","DNS_ERROR_INVALID_DATAFILE_NAME","" +"800725B5","-2147015243","2147952053","DNS_ERROR_DATAFILE_OPEN_FAILURE","" +"800725B6","-2147015242","2147952054","DNS_ERROR_FILE_WRITEBACK_FAILED","" +"800725B7","-2147015241","2147952055","DNS_ERROR_DATAFILE_PARSING","" +"800725E5","-2147015195","2147952101","DNS_ERROR_RECORD_DOES_NOT_EXIST","" +"800725E6","-2147015194","2147952102","DNS_ERROR_RECORD_FORMAT","" +"800725E7","-2147015193","2147952103","DNS_ERROR_NODE_CREATION_FAILED","" +"800725E8","-2147015192","2147952104","DNS_ERROR_UNKNOWN_RECORD_TYPE","" +"800725E9","-2147015191","2147952105","DNS_ERROR_RECORD_TIMED_OUT","" +"800725EA","-2147015190","2147952106","DNS_ERROR_NAME_NOT_IN_ZONE","" +"800725EB","-2147015189","2147952107","DNS_ERROR_CNAME_LOOP","" +"800725EC","-2147015188","2147952108","DNS_ERROR_NODE_IS_CNAME","" +"800725ED","-2147015187","2147952109","DNS_ERROR_CNAME_COLLISION","" +"800725EE","-2147015186","2147952110","DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT","" +"800725EF","-2147015185","2147952111","DNS_ERROR_RECORD_ALREADY_EXISTS","" +"800725F0","-2147015184","2147952112","DNS_ERROR_SECONDARY_DATA","" +"800725F1","-2147015183","2147952113","DNS_ERROR_NO_CREATE_CACHE_DATA","" +"800725F2","-2147015182","2147952114","DNS_ERROR_NAME_DOES_NOT_EXIST","" +"800725F3","-2147015181","2147952115","DNS_WARNING_PTR_CREATE_FAILED","" +"800725F4","-2147015180","2147952116","DNS_WARNING_DOMAIN_UNDELETED","" +"800725F5","-2147015179","2147952117","DNS_ERROR_DS_UNAVAILABLE","" +"800725F6","-2147015178","2147952118","DNS_ERROR_DS_ZONE_ALREADY_EXISTS","" +"800725F7","-2147015177","2147952119","DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE","" +"800725F8","-2147015176","2147952120","DNS_ERROR_NODE_IS_DNAME","" +"800725F9","-2147015175","2147952121","DNS_ERROR_DNAME_COLLISION","" +"800725FA","-2147015174","2147952122","DNS_ERROR_ALIAS_LOOP","" +"80072617","-2147015145","2147952151","DNS_INFO_AXFR_COMPLETE","" +"80072618","-2147015144","2147952152","DNS_ERROR_AXFR","" +"80072619","-2147015143","2147952153","DNS_INFO_ADDED_LOCAL_WINS","" +"80072649","-2147015095","2147952201","DNS_STATUS_CONTINUE_NEEDED","" +"8007267B","-2147015045","2147952251","DNS_ERROR_NO_TCPIP","" +"8007267C","-2147015044","2147952252","DNS_ERROR_NO_DNS_SERVERS","" +"800726AD","-2147014995","2147952301","DNS_ERROR_DP_DOES_NOT_EXIST","" +"800726AE","-2147014994","2147952302","DNS_ERROR_DP_ALREADY_EXISTS","" +"800726AF","-2147014993","2147952303","DNS_ERROR_DP_NOT_ENLISTED","" +"800726B0","-2147014992","2147952304","DNS_ERROR_DP_ALREADY_ENLISTED","" +"800726B1","-2147014991","2147952305","DNS_ERROR_DP_NOT_AVAILABLE","" +"800726B2","-2147014990","2147952306","DNS_ERROR_DP_FSMO_ERROR","" +"800726B7","-2147014985","2147952311","DNS_ERROR_RRL_NOT_ENABLED","" +"800726B8","-2147014984","2147952312","DNS_ERROR_RRL_INVALID_WINDOW_SIZE","" +"800726B9","-2147014983","2147952313","DNS_ERROR_RRL_INVALID_IPV4_PREFIX","" +"800726BA","-2147014982","2147952314","DNS_ERROR_RRL_INVALID_IPV6_PREFIX","" +"800726BB","-2147014981","2147952315","DNS_ERROR_RRL_INVALID_TC_RATE","" +"800726BC","-2147014980","2147952316","DNS_ERROR_RRL_INVALID_LEAK_RATE","" +"800726BD","-2147014979","2147952317","DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE","" +"800726C1","-2147014975","2147952321","DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS","" +"800726C2","-2147014974","2147952322","DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST","" +"800726C3","-2147014973","2147952323","DNS_ERROR_VIRTUALIZATION_TREE_LOCKED","" +"800726C4","-2147014972","2147952324","DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME","" +"800726C5","-2147014971","2147952325","DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE","" +"800726DF","-2147014945","2147952351","DNS_ERROR_ZONESCOPE_ALREADY_EXISTS","" +"800726E0","-2147014944","2147952352","DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST","" +"800726E1","-2147014943","2147952353","DNS_ERROR_DEFAULT_ZONESCOPE","" +"800726E2","-2147014942","2147952354","DNS_ERROR_INVALID_ZONESCOPE_NAME","" +"800726E3","-2147014941","2147952355","DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES","" +"800726E4","-2147014940","2147952356","DNS_ERROR_LOAD_ZONESCOPE_FAILED","" +"800726E5","-2147014939","2147952357","DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED","" +"800726E6","-2147014938","2147952358","DNS_ERROR_INVALID_SCOPE_NAME","" +"800726E7","-2147014937","2147952359","DNS_ERROR_SCOPE_DOES_NOT_EXIST","" +"800726E8","-2147014936","2147952360","DNS_ERROR_DEFAULT_SCOPE","" +"800726E9","-2147014935","2147952361","DNS_ERROR_INVALID_SCOPE_OPERATION","" +"800726EA","-2147014934","2147952362","DNS_ERROR_SCOPE_LOCKED","" +"800726EB","-2147014933","2147952363","DNS_ERROR_SCOPE_ALREADY_EXISTS","" +"800726F3","-2147014925","2147952371","DNS_ERROR_POLICY_ALREADY_EXISTS","" +"800726F4","-2147014924","2147952372","DNS_ERROR_POLICY_DOES_NOT_EXIST","" +"800726F5","-2147014923","2147952373","DNS_ERROR_POLICY_INVALID_CRITERIA","" +"800726F6","-2147014922","2147952374","DNS_ERROR_POLICY_INVALID_SETTINGS","" +"800726F7","-2147014921","2147952375","DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED","" +"800726F8","-2147014920","2147952376","DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST","" +"800726F9","-2147014919","2147952377","DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS","" +"800726FA","-2147014918","2147952378","DNS_ERROR_SUBNET_DOES_NOT_EXIST","" +"800726FB","-2147014917","2147952379","DNS_ERROR_SUBNET_ALREADY_EXISTS","" +"800726FC","-2147014916","2147952380","DNS_ERROR_POLICY_LOCKED","" +"800726FD","-2147014915","2147952381","DNS_ERROR_POLICY_INVALID_WEIGHT","" +"800726FE","-2147014914","2147952382","DNS_ERROR_POLICY_INVALID_NAME","" +"800726FF","-2147014913","2147952383","DNS_ERROR_POLICY_MISSING_CRITERIA","" +"80072700","-2147014912","2147952384","DNS_ERROR_INVALID_CLIENT_SUBNET_NAME","" +"80072701","-2147014911","2147952385","DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID","" +"80072702","-2147014910","2147952386","DNS_ERROR_POLICY_SCOPE_MISSING","" +"80072703","-2147014909","2147952387","DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED","" +"80072704","-2147014908","2147952388","DNS_ERROR_SERVERSCOPE_IS_REFERENCED","" +"80072705","-2147014907","2147952389","DNS_ERROR_ZONESCOPE_IS_REFERENCED","" +"80072706","-2147014906","2147952390","DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET","" +"80072707","-2147014905","2147952391","DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL","" +"80072708","-2147014904","2147952392","DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL","" +"80072709","-2147014903","2147952393","DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE","" +"8007270A","-2147014902","2147952394","DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN","" +"8007270B","-2147014901","2147952395","DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE","" +"8007270C","-2147014900","2147952396","DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY","" +"80072714","-2147014892","2147952404","WSAEINTR","" +"80072719","-2147014887","2147952409","WSAEBADF","" +"8007271D","-2147014883","2147952413","WSAEACCES","" +"8007271E","-2147014882","2147952414","WSAEFAULT","" +"80072726","-2147014874","2147952422","WSAEINVAL","" +"80072728","-2147014872","2147952424","WSAEMFILE","" +"80072733","-2147014861","2147952435","WSAEWOULDBLOCK","" +"80072734","-2147014860","2147952436","WSAEINPROGRESS","" +"80072735","-2147014859","2147952437","WSAEALREADY","" +"80072736","-2147014858","2147952438","WSAENOTSOCK","" +"80072737","-2147014857","2147952439","WSAEDESTADDRREQ","" +"80072738","-2147014856","2147952440","WSAEMSGSIZE","" +"80072739","-2147014855","2147952441","WSAEPROTOTYPE","" +"8007273A","-2147014854","2147952442","WSAENOPROTOOPT","" +"8007273B","-2147014853","2147952443","WSAEPROTONOSUPPORT","" +"8007273C","-2147014852","2147952444","WSAESOCKTNOSUPPORT","" +"8007273D","-2147014851","2147952445","WSAEOPNOTSUPP","" +"8007273E","-2147014850","2147952446","WSAEPFNOSUPPORT","" +"8007273F","-2147014849","2147952447","WSAEAFNOSUPPORT","" +"80072740","-2147014848","2147952448","WSAEADDRINUSE","" +"80072741","-2147014847","2147952449","WSAEADDRNOTAVAIL","" +"80072742","-2147014846","2147952450","WSAENETDOWN","" +"80072743","-2147014845","2147952451","WSAENETUNREACH","" +"80072744","-2147014844","2147952452","WSAENETRESET","" +"80072745","-2147014843","2147952453","WSAECONNABORTED","" +"80072746","-2147014842","2147952454","WSAECONNRESET","" +"80072747","-2147014841","2147952455","WSAENOBUFS","" +"80072748","-2147014840","2147952456","WSAEISCONN","" +"80072749","-2147014839","2147952457","WSAENOTCONN","" +"8007274A","-2147014838","2147952458","WSAESHUTDOWN","" +"8007274B","-2147014837","2147952459","WSAETOOMANYREFS","" +"8007274C","-2147014836","2147952460","WSAETIMEDOUT","" +"8007274D","-2147014835","2147952461","WSAECONNREFUSED","" +"8007274E","-2147014834","2147952462","WSAELOOP","" +"8007274F","-2147014833","2147952463","WSAENAMETOOLONG","" +"80072750","-2147014832","2147952464","WSAEHOSTDOWN","" +"80072751","-2147014831","2147952465","WSAEHOSTUNREACH","" +"80072752","-2147014830","2147952466","WSAENOTEMPTY","" +"80072753","-2147014829","2147952467","WSAEPROCLIM","" +"80072754","-2147014828","2147952468","WSAEUSERS","" +"80072755","-2147014827","2147952469","WSAEDQUOT","" +"80072756","-2147014826","2147952470","WSAESTALE","" +"80072757","-2147014825","2147952471","WSAEREMOTE","" +"8007276B","-2147014805","2147952491","WSASYSNOTREADY","The description of WSASYSNOTREADY says WSAStartup cannot function at this time because the underlying system it uses to provide network services is currently unavailable. It seems that something is wrong with networking components on the system." +"8007276C","-2147014804","2147952492","WSAVERNOTSUPPORTED","" +"8007276D","-2147014803","2147952493","WSANOTINITIALISED","" +"80072775","-2147014795","2147952501","WSAEDISCON","" +"80072776","-2147014794","2147952502","WSAENOMORE","" +"80072777","-2147014793","2147952503","WSAECANCELLED","" +"80072778","-2147014792","2147952504","WSAEINVALIDPROCTABLE","" +"80072779","-2147014791","2147952505","WSAEINVALIDPROVIDER","" +"8007277A","-2147014790","2147952506","WSAEPROVIDERFAILEDINIT","" +"8007277B","-2147014789","2147952507","WSASYSCALLFAILURE","A system call that should never fail has failed." +"8007277C","-2147014788","2147952508","WSASERVICE_NOT_FOUND","" +"8007277D","-2147014787","2147952509","WSATYPE_NOT_FOUND","" +"8007277E","-2147014786","2147952510","WSA_E_NO_MORE","" +"8007277F","-2147014785","2147952511","WSA_E_CANCELLED","" +"80072780","-2147014784","2147952512","WSAEREFUSED","" +"80072AF9","-2147013895","2147953401","WSAHOST_NOT_FOUND","" +"80072AFA","-2147013894","2147953402","WSATRY_AGAIN","" +"80072AFB","-2147013893","2147953403","WSANO_RECOVERY","" +"80072AFC","-2147013892","2147953404","WSANO_DATA","" +"80072AFD","-2147013891","2147953405","WSA_QOS_RECEIVERS","" +"80072AFE","-2147013890","2147953406","WSA_QOS_SENDERS","" +"80072AFF","-2147013889","2147953407","WSA_QOS_NO_SENDERS","" +"80072B00","-2147013888","2147953408","WSA_QOS_NO_RECEIVERS","" +"80072B01","-2147013887","2147953409","WSA_QOS_REQUEST_CONFIRMED","" +"80072B02","-2147013886","2147953410","WSA_QOS_ADMISSION_FAILURE","" +"80072B03","-2147013885","2147953411","WSA_QOS_POLICY_FAILURE","" +"80072B04","-2147013884","2147953412","WSA_QOS_BAD_STYLE","" +"80072B05","-2147013883","2147953413","WSA_QOS_BAD_OBJECT","" +"80072B06","-2147013882","2147953414","WSA_QOS_TRAFFIC_CTRL_ERROR","" +"80072B07","-2147013881","2147953415","WSA_QOS_GENERIC_ERROR","" +"80072B08","-2147013880","2147953416","WSA_QOS_ESERVICETYPE","" +"80072B09","-2147013879","2147953417","WSA_QOS_EFLOWSPEC","" +"80072B0A","-2147013878","2147953418","WSA_QOS_EPROVSPECBUF","" +"80072B0B","-2147013877","2147953419","WSA_QOS_EFILTERSTYLE","" +"80072B0C","-2147013876","2147953420","WSA_QOS_EFILTERTYPE","" +"80072B0D","-2147013875","2147953421","WSA_QOS_EFILTERCOUNT","" +"80072B0E","-2147013874","2147953422","WSA_QOS_EOBJLENGTH","" +"80072B0F","-2147013873","2147953423","WSA_QOS_EFLOWCOUNT","" +"80072B10","-2147013872","2147953424","WSA_QOS_EUNKOWNPSOBJ","" +"80072B11","-2147013871","2147953425","WSA_QOS_EPOLICYOBJ","" +"80072B12","-2147013870","2147953426","WSA_QOS_EFLOWDESC","" +"80072B13","-2147013869","2147953427","WSA_QOS_EPSFLOWSPEC","" +"80072B14","-2147013868","2147953428","WSA_QOS_EPSFILTERSPEC","" +"80072B15","-2147013867","2147953429","WSA_QOS_ESDMODEOBJ","" +"80072B16","-2147013866","2147953430","WSA_QOS_ESHAPERATEOBJ","" +"80072B17","-2147013865","2147953431","WSA_QOS_RESERVED_PETYPE","" +"80072B18","-2147013864","2147953432","WSA_SECURE_HOST_NOT_FOUND","" +"80072B19","-2147013863","2147953433","WSA_IPSEC_NAME_POLICY_ERROR","" +"80072CF1","-2147013391","2147953905","PEER_E_CLOUD_NOT_FOUND","" +"80072CF2","-2147013390","2147953906","PEER_E_CLOUD_DISABLED","" +"80072CF3","-2147013389","2147953907","PEER_E_INVALID_IDENTITY","" +"80072CF4","-2147013388","2147953908","PEER_E_TOO_MUCH_LOAD","" +"80072CF5","-2147013387","2147953909","PEER_E_CLOUD_IS_SEARCH_ONLY","" +"80072CF6","-2147013386","2147953910","PEER_E_CLIENT_INVALID_COMPARTMENT_ID","" +"80072CF8","-2147013384","2147953912","PEER_E_DUPLICATE_PEER_NAME","" +"80072CF9","-2147013383","2147953913","PEER_E_CLOUD_IS_DEAD","" +"80072EE0","-2147012896","2147954400","ERROR_INTERNET_","" +"80072EE2","-2147012894","2147954402","ERROR_WINHTTP_TIMEOUT","The request has timed out." +"80072EE3","-2147012893","2147954403","WININET_E_EXTENDED_ERROR","" +"80072EE4","-2147012892","2147954404","ERROR_WINHTTP_INTERNAL_ERROR","An internal error has occurred." +"80072EE5","-2147012891","2147954405","ERROR_INTERNET_INVALID_URL","" +"80072EE6","-2147012890","2147954406","ERROR_WINHTTP_UNRECOGNIZED_SCHEME","The URL scheme could not be recognized or is not supported." +"80072EE8","-2147012888","2147954408","WININET_E_PROTOCOL_NOT_FOUND","" +"80072EE9","-2147012887","2147954409","WININET_E_INVALID_OPTION","" +"80072EEA","-2147012886","2147954410","ERROR_INTERNET_BAD_OPTION_LENGTH","" +"80072EEB","-2147012885","2147954411","ERROR_INTERNET_OPTION_NOT_SETTABLE","" +"80072EEC","-2147012884","2147954412","WININET_E_SHUTDOWN","" +"80072EED","-2147012883","2147954413","ERROR_INTERNET_INCORRECT_USER_NAME","" +"80072EEE","-2147012882","2147954414","WININET_E_INCORRECT_PASSWORD","" +"80072EEF","-2147012881","2147954415","WININET_E_LOGIN_FAILURE","" +"80072EF0","-2147012880","2147954416","WININET_E_INVALID_OPERATION","" +"80072EF1","-2147012879","2147954417","ERROR_WINHTTP_OPERATION_CANCELLED","" +"80072EF2","-2147012878","2147954418","WININET_E_INCORRECT_HANDLE_TYPE","" +"80072EF3","-2147012877","2147954419","ERROR_INTERNET_INCORRECT_HANDLE_STATE","" +"80072EF4","-2147012876","2147954420","WININET_E_NOT_PROXY_REQUEST","" +"80072EF5","-2147012875","2147954421","WININET_E_REGISTRY_VALUE_NOT_FOUND","" +"80072EF6","-2147012874","2147954422","ERROR_INTERNET_BAD_REGISTRY_PARAMETER","" +"80072EF7","-2147012873","2147954423","WININET_E_NO_DIRECT_ACCESS","" +"80072EF8","-2147012872","2147954424","ERROR_INTERNET_NO_CONTEXT","" +"80072EF9","-2147012871","2147954425","ERROR_INTERNET_NO_CALLBACK","" +"80072EFA","-2147012870","2147954426","WININET_E_REQUEST_PENDING","" +"80072EFB","-2147012869","2147954427","WININET_E_INCORRECT_FORMAT","" +"80072EFC","-2147012868","2147954428","ERROR_INTERNET_ITEM_NOT_FOUND","" +"80072EFD","-2147012867","2147954429","ERROR_INTERNET_CANNOT_CONNECT","The attempt to connect to the server failed. The operation timed out. Network or Firewall Error." +"80072EFE","-2147012866","2147954430","ERROR_INTERNET_CONNECTION_ABORTED","The connection with the server has been terminated." +"80072EFF","-2147012865","2147954431","WININET_E_CONNECTION_RESET","" +"80072F00","-2147012864","2147954432","WININET_E_FORCE_RETRY","" +"80072F01","-2147012863","2147954433","WININET_E_INVALID_PROXY_REQUEST","" +"80072F02","-2147012862","2147954434","ERROR_INTERNET_NEED_UI","" +"80072F04","-2147012860","2147954436","WININET_E_HANDLE_EXISTS","" +"80072F05","-2147012859","2147954437","ERROR_INTERNET_SEC_CERT_DATE_INVALID","" +"80072F06","-2147012858","2147954438","ERROR_INTERNET_SEC_CERT_CN_INVALID","" +"80072F07","-2147012857","2147954439","WININET_E_HTTP_TO_HTTPS_ON_REDIR","" +"80072F08","-2147012856","2147954440","WININET_E_HTTPS_TO_HTTP_ON_REDIR","" +"80072F09","-2147012855","2147954441","WININET_E_MIXED_SECURITY","" +"80072F0A","-2147012854","2147954442","WININET_E_CHG_POST_IS_NON_SECURE","" +"80072F0B","-2147012853","2147954443","WININET_E_POST_IS_NON_SECURE","" +"80072F0C","-2147012852","2147954444","ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED","" +"80072F0D","-2147012851","2147954445","ERROR_WINHTTP_INVALID_CA","" +"80072F0E","-2147012850","2147954446","WININET_E_CLIENT_AUTH_NOT_SETUP","" +"80072F0F","-2147012849","2147954447","WININET_E_ASYNC_THREAD_FAILED","" +"80072F10","-2147012848","2147954448","ERROR_INTERNET_REDIRECT_SCHEME_CHANGE","" +"80072F11","-2147012847","2147954449","ERROR_INTERNET_DIALOG_PENDING","" +"80072F12","-2147012846","2147954450","WININET_E_RETRY_DIALOG","" +"80072F13","-2147012845","2147954451","WININET_E_NO_NEW_CONTAINERS","" +"80072F14","-2147012844","2147954452","WININET_E_HTTPS_HTTP_SUBMIT_REDIR","" +"80072F15","-2147012843","2147954453","ERROR_INTERNET_INSERT_CDROM","" +"80072F16","-2147012842","2147954454","ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED","" +"80072F17","-2147012841","2147954455","WININET_E_SEC_CERT_ERRORS","" +"80072F18","-2147012840","2147954456","ERROR_INTERNET_SEC_CERT_NO_REV","" +"80072F19","-2147012839","2147954457","WININET_E_SEC_CERT_REV_FAILED","" +"80072F30","-2147012816","2147954480","ERROR_WINHTTP_NO_CM_CONNECTION","" +"80072F4E","-2147012786","2147954510","ERROR_FTP_TRANSFER_IN_PROGRESS","" +"80072F4F","-2147012785","2147954511","ERROR_FTP_DROPPED","" +"80072F50","-2147012784","2147954512","ERROR_FTP_NO_PASSIVE_MODE","" +"80072F62","-2147012766","2147954530","ERROR_GOPHER_PROTOCOL_ERROR","" +"80072F63","-2147012765","2147954531","ERROR_GOPHER_NOT_FILE","" +"80072F64","-2147012764","2147954532","ERROR_GOPHER_DATA_ERROR","" +"80072F65","-2147012763","2147954533","ERROR_GOPHER_END_OF_DATA","" +"80072F66","-2147012762","2147954534","ERROR_GOPHER_INVALID_LOCATOR","" +"80072F67","-2147012761","2147954535","ERROR_GOPHER_INCORRECT_LOCATOR_TYPE","" +"80072F68","-2147012760","2147954536","ERROR_GOPHER_NOT_GOPHER_PLUS","" +"80072F69","-2147012759","2147954537","ERROR_GOPHER_ATTRIBUTE_NOT_FOUND","" +"80072F6A","-2147012758","2147954538","ERROR_GOPHER_UNKNOWN_LOCATOR","" +"80072F76","-2147012746","2147954550","ERROR_HTTP_HEADER_NOT_FOUND","Network or Firewall Error. The requested header could not be located." +"80072F77","-2147012745","2147954551","ERROR_HTTP_DOWNLEVEL_SERVER","" +"80072F78","-2147012744","2147954552","ERROR_HTTP_INVALID_SERVER_RESPONSE","The server response could not be parsed." +"80072F79","-2147012743","2147954553","ERROR_HTTP_INVALID_HEADER","" +"80072F7A","-2147012742","2147954554","ERROR_HTTP_INVALID_QUERY_REQUEST","" +"80072F7B","-2147012741","2147954555","ERROR_HTTP_HEADER_ALREADY_EXISTS","" +"80072F7C","-2147012740","2147954556","ERROR_WINHTTP_REDIRECT_FAILED","" +"80072F7D","-2147012739","2147954557","ERROR_WINHTTP_SECURE_CHANNEL_ERROR","" +"80072F7E","-2147012738","2147954558","ERROR_INTERNET_UNABLE_TO_CACHE_FILE","" +"80072F7F","-2147012737","2147954559","ERROR_INTERNET_TCPIP_NOT_INSTALLED","" +"80072F80","-2147012736","2147954560","WININET_E_NOT_REDIRECTED","" +"80072F81","-2147012735","2147954561","WININET_E_COOKIE_NEEDS_CONFIRMATION","" +"80072F82","-2147012734","2147954562","WININET_E_COOKIE_DECLINED","" +"80072F83","-2147012733","2147954563","ERROR_INTERNET_DISCONNECTED","" +"80072F84","-2147012732","2147954564","ERROR_INTERNET_SERVER_UNREACHABLE","" +"80072F85","-2147012731","2147954565","ERROR_INTERNET_PROXY_SERVER_UNREACHABLE","" +"80072F86","-2147012730","2147954566","ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT","" +"80072F87","-2147012729","2147954567","ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT","" +"80072F88","-2147012728","2147954568","WININET_E_REDIRECT_NEEDS_CONFIRMATION","" +"80072F89","-2147012727","2147954569","ERROR_WINHTTP_SECURE_INVALID_CERT","" +"80072F8A","-2147012726","2147954570","WININET_E_SEC_CERT_REVOKED","" +"80072F8B","-2147012725","2147954571","ERROR_INTERNET_FAILED_DUETOSECURITYCHECK","" +"80072F8C","-2147012724","2147954572","ERROR_INTERNET_NOT_INITIALIZED","" +"80072F8D","-2147012723","2147954573","ERROR_INTERNET_NEED_MSN_SSPI_PKG","" +"80072F8E","-2147012722","2147954574","ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY","" +"80072F8F","-2147012721","2147954575","WININET_E_DECODING_FAILED","Content decoding has failed." +"80072F98","-2147012712","2147954584","ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW","" +"800732C8","-2147011896","2147955400","ERROR_IPSEC_QM_POLICY_EXISTS","" +"800732C9","-2147011895","2147955401","ERROR_IPSEC_QM_POLICY_NOT_FOUND","" +"800732CA","-2147011894","2147955402","ERROR_IPSEC_QM_POLICY_IN_USE","" +"800732CB","-2147011893","2147955403","ERROR_IPSEC_MM_POLICY_EXISTS","" +"800732CC","-2147011892","2147955404","ERROR_IPSEC_MM_POLICY_NOT_FOUND","" +"800732CD","-2147011891","2147955405","ERROR_IPSEC_MM_POLICY_IN_USE","" +"800732CE","-2147011890","2147955406","ERROR_IPSEC_MM_FILTER_EXISTS","" +"800732CF","-2147011889","2147955407","ERROR_IPSEC_MM_FILTER_NOT_FOUND","" +"800732D0","-2147011888","2147955408","ERROR_IPSEC_TRANSPORT_FILTER_EXISTS","" +"800732D1","-2147011887","2147955409","ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND","" +"800732D2","-2147011886","2147955410","ERROR_IPSEC_MM_AUTH_EXISTS","" +"800732D3","-2147011885","2147955411","ERROR_IPSEC_MM_AUTH_NOT_FOUND","" +"800732D4","-2147011884","2147955412","ERROR_IPSEC_MM_AUTH_IN_USE","" +"800732D5","-2147011883","2147955413","ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND","" +"800732D6","-2147011882","2147955414","ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND","" +"800732D7","-2147011881","2147955415","ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND","" +"800732D8","-2147011880","2147955416","ERROR_IPSEC_TUNNEL_FILTER_EXISTS","" +"800732D9","-2147011879","2147955417","ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND","" +"800732DA","-2147011878","2147955418","ERROR_IPSEC_MM_FILTER_PENDING_DELETION","" +"800732DB","-2147011877","2147955419","ERROR_IPSEC_TRANSPORT_FILTER_ENDING_DELETION","" +"800732DC","-2147011876","2147955420","ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION","" +"800732DD","-2147011875","2147955421","ERROR_IPSEC_MM_POLICY_PENDING_ELETION","" +"800732DE","-2147011874","2147955422","ERROR_IPSEC_MM_AUTH_PENDING_DELETION","" +"800732DF","-2147011873","2147955423","ERROR_IPSEC_QM_POLICY_PENDING_DELETION","" +"800732E0","-2147011872","2147955424","WARNING_IPSEC_MM_POLICY_PRUNED","" +"800732E1","-2147011871","2147955425","WARNING_IPSEC_QM_POLICY_PRUNED","" +"800735E8","-2147011096","2147956200","ERROR_IPSEC_IKE_NEG_STATUS_BEGIN","" +"800735E9","-2147011095","2147956201","ERROR_IPSEC_IKE_AUTH_FAIL","" +"800735EA","-2147011094","2147956202","ERROR_IPSEC_IKE_ATTRIB_FAIL","" +"800735EB","-2147011093","2147956203","ERROR_IPSEC_IKE_NEGOTIATION_PENDING","" +"800735EC","-2147011092","2147956204","ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR","" +"800735ED","-2147011091","2147956205","ERROR_IPSEC_IKE_TIMED_OUT","" +"800735EE","-2147011090","2147956206","ERROR_IPSEC_IKE_NO_CERT","" +"800735EF","-2147011089","2147956207","ERROR_IPSEC_IKE_SA_DELETED","" +"800735F0","-2147011088","2147956208","ERROR_IPSEC_IKE_SA_REAPED","" +"800735F1","-2147011087","2147956209","ERROR_IPSEC_IKE_MM_ACQUIRE_DROP","" +"800735F2","-2147011086","2147956210","ERROR_IPSEC_IKE_QM_ACQUIRE_DROP","" +"800735F3","-2147011085","2147956211","ERROR_IPSEC_IKE_QUEUE_DROP_MM","" +"800735F4","-2147011084","2147956212","ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM","" +"800735F5","-2147011083","2147956213","ERROR_IPSEC_IKE_DROP_NO_RESPONSE","" +"800735F6","-2147011082","2147956214","ERROR_IPSEC_IKE_MM_DELAY_DROP","" +"800735F7","-2147011081","2147956215","ERROR_IPSEC_IKE_QM_DELAY_DROP","" +"800735F8","-2147011080","2147956216","ERROR_IPSEC_IKE_ERROR","" +"800735F9","-2147011079","2147956217","ERROR_IPSEC_IKE_CRL_FAILED","" +"800735FA","-2147011078","2147956218","ERROR_IPSEC_IKE_INVALID_KEY_USAGE","" +"800735FB","-2147011077","2147956219","ERROR_IPSEC_IKE_INVALID_CERT_TYPE","" +"800735FC","-2147011076","2147956220","ERROR_IPSEC_IKE_NO_PRIVATE_KEY","" +"800735FD","-2147011075","2147956221","ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY","" +"800735FE","-2147011074","2147956222","ERROR_IPSEC_IKE_DH_FAIL","" +"800735FF","-2147011073","2147956223","ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED","" +"80073600","-2147011072","2147956224","ERROR_IPSEC_IKE_INVALID_HEADER","" +"80073601","-2147011071","2147956225","ERROR_IPSEC_IKE_NO_POLICY","" +"80073602","-2147011070","2147956226","ERROR_IPSEC_IKE_INVALID_SIGNATURE","" +"80073603","-2147011069","2147956227","ERROR_IPSEC_IKE_KERBEROS_ERROR","" +"80073604","-2147011068","2147956228","ERROR_IPSEC_IKE_NO_PUBLIC_KEY","" +"80073605","-2147011067","2147956229","ERROR_IPSEC_IKE_PROCESS_ERR","" +"80073606","-2147011066","2147956230","ERROR_IPSEC_IKE_PROCESS_ERR_SA","" +"80073607","-2147011065","2147956231","ERROR_IPSEC_IKE_PROCESS_ERR_PROP","" +"80073608","-2147011064","2147956232","ERROR_IPSEC_IKE_PROCESS_ERR_TRANS","" +"80073609","-2147011063","2147956233","ERROR_IPSEC_IKE_PROCESS_ERR_KE","" +"8007360A","-2147011062","2147956234","ERROR_IPSEC_IKE_PROCESS_ERR_ID","" +"8007360B","-2147011061","2147956235","ERROR_IPSEC_IKE_PROCESS_ERR_CERT","" +"8007360C","-2147011060","2147956236","ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ","" +"8007360D","-2147011059","2147956237","ERROR_IPSEC_IKE_PROCESS_ERR_HASH","" +"8007360E","-2147011058","2147956238","ERROR_IPSEC_IKE_PROCESS_ERR_SIG","" +"8007360F","-2147011057","2147956239","ERROR_IPSEC_IKE_PROCESS_ERR_NONCE","" +"80073610","-2147011056","2147956240","ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY","" +"80073611","-2147011055","2147956241","ERROR_IPSEC_IKE_PROCESS_ERR_DELETE","" +"80073612","-2147011054","2147956242","ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR","" +"80073613","-2147011053","2147956243","ERROR_IPSEC_IKE_INVALID_PAYLOAD","" +"80073614","-2147011052","2147956244","ERROR_IPSEC_IKE_LOAD_SOFT_SA","" +"80073615","-2147011051","2147956245","ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN","" +"80073616","-2147011050","2147956246","ERROR_IPSEC_IKE_INVALID_COOKIE","" +"80073617","-2147011049","2147956247","ERROR_IPSEC_IKE_NO_PEER_CERT","" +"80073618","-2147011048","2147956248","ERROR_IPSEC_IKE_PEER_CRL_FAILED","" +"80073619","-2147011047","2147956249","ERROR_IPSEC_IKE_POLICY_CHANGE","" +"8007361A","-2147011046","2147956250","ERROR_IPSEC_IKE_NO_MM_POLICY","" +"8007361B","-2147011045","2147956251","ERROR_IPSEC_IKE_NOTCBPRIV","" +"8007361C","-2147011044","2147956252","ERROR_IPSEC_IKE_SECLOADFAIL","" +"8007361D","-2147011043","2147956253","ERROR_IPSEC_IKE_FAILSSPINIT","" +"8007361E","-2147011042","2147956254","ERROR_IPSEC_IKE_FAILQUERYSSP","" +"8007361F","-2147011041","2147956255","ERROR_IPSEC_IKE_SRVACQFAIL","" +"80073620","-2147011040","2147956256","ERROR_IPSEC_IKE_SRVQUERYCRED","" +"80073621","-2147011039","2147956257","ERROR_IPSEC_IKE_GETSPIFAIL","" +"80073622","-2147011038","2147956258","ERROR_IPSEC_IKE_INVALID_FILTER","" +"80073623","-2147011037","2147956259","ERROR_IPSEC_IKE_OUT_OF_MEMORY","" +"80073624","-2147011036","2147956260","ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED","" +"80073625","-2147011035","2147956261","ERROR_IPSEC_IKE_INVALID_POLICY","" +"80073626","-2147011034","2147956262","ERROR_IPSEC_IKE_UNKNOWN_DOI","" +"80073627","-2147011033","2147956263","ERROR_IPSEC_IKE_INVALID_SITUATION","" +"80073628","-2147011032","2147956264","ERROR_IPSEC_IKE_DH_FAILURE","" +"80073629","-2147011031","2147956265","ERROR_IPSEC_IKE_INVALID_GROUP","" +"8007362A","-2147011030","2147956266","ERROR_IPSEC_IKE_ENCRYPT","" +"8007362B","-2147011029","2147956267","ERROR_IPSEC_IKE_DECRYPT","" +"8007362C","-2147011028","2147956268","ERROR_IPSEC_IKE_POLICY_MATCH","" +"8007362D","-2147011027","2147956269","ERROR_IPSEC_IKE_UNSUPPORTED_ID","" +"8007362E","-2147011026","2147956270","ERROR_IPSEC_IKE_INVALID_HASH","" +"8007362F","-2147011025","2147956271","ERROR_IPSEC_IKE_INVALID_HASH_ALG","" +"80073630","-2147011024","2147956272","ERROR_IPSEC_IKE_INVALID_HASH_SIZE","" +"80073631","-2147011023","2147956273","ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG","" +"80073632","-2147011022","2147956274","ERROR_IPSEC_IKE_INVALID_AUTH_ALG","" +"80073633","-2147011021","2147956275","ERROR_IPSEC_IKE_INVALID_SIG","" +"80073634","-2147011020","2147956276","ERROR_IPSEC_IKE_LOAD_FAILED","" +"80073635","-2147011019","2147956277","ERROR_IPSEC_IKE_RPC_DELETE","" +"80073636","-2147011018","2147956278","ERROR_IPSEC_IKE_BENIGN_REINIT","" +"80073637","-2147011017","2147956279","ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY","" +"80073638","-2147011016","2147956280","ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION","" +"80073639","-2147011015","2147956281","ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN","" +"8007363A","-2147011014","2147956282","ERROR_IPSEC_IKE_MM_LIMIT","" +"8007363B","-2147011013","2147956283","ERROR_IPSEC_IKE_NEGOTIATION_DISABLED","" +"8007363C","-2147011012","2147956284","ERROR_IPSEC_IKE_QM_LIMIT","" +"8007363D","-2147011011","2147956285","ERROR_IPSEC_IKE_MM_EXPIRED","" +"8007363E","-2147011010","2147956286","ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID","" +"8007363F","-2147011009","2147956287","ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH","" +"80073640","-2147011008","2147956288","ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID","" +"80073641","-2147011007","2147956289","ERROR_IPSEC_IKE_INVALID_UMATTS","" +"80073642","-2147011006","2147956290","ERROR_IPSEC_IKE_DOS_COOKIE_SENT","" +"80073643","-2147011005","2147956291","ERROR_IPSEC_IKE_SHUTTING_DOWN","" +"80073644","-2147011004","2147956292","ERROR_IPSEC_IKE_CGA_AUTH_FAILED","" +"80073645","-2147011003","2147956293","ERROR_IPSEC_IKE_PROCESS_ERR_NATOA","" +"80073646","-2147011002","2147956294","ERROR_IPSEC_IKE_INVALID_MM_FOR_QM","" +"80073647","-2147011001","2147956295","ERROR_IPSEC_IKE_QM_EXPIRED","" +"80073648","-2147011000","2147956296","ERROR_IPSEC_IKE_TOO_MANY_FILTERS","" +"80073649","-2147010999","2147956297","ERROR_IPSEC_IKE_NEG_STATUS_END","" +"8007364A","-2147010998","2147956298","ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL","" +"8007364B","-2147010997","2147956299","ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE","" +"8007364C","-2147010996","2147956300","ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING","" +"8007364D","-2147010995","2147956301","ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING","" +"8007364E","-2147010994","2147956302","ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS","" +"8007364F","-2147010993","2147956303","ERROR_IPSEC_IKE_RATELIMIT_DROP","" +"80073650","-2147010992","2147956304","ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE","" +"80073651","-2147010991","2147956305","ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE","" +"80073652","-2147010990","2147956306","ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE","" +"80073653","-2147010989","2147956307","ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY","" +"80073654","-2147010988","2147956308","ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE","" +"80073655","-2147010987","2147956309","ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END","" +"80073656","-2147010986","2147956310","ERROR_IPSEC_BAD_SPI","" +"80073657","-2147010985","2147956311","ERROR_IPSEC_SA_LIFETIME_EXPIRED","" +"80073658","-2147010984","2147956312","ERROR_IPSEC_WRONG_SA","" +"80073659","-2147010983","2147956313","ERROR_IPSEC_REPLAY_CHECK_FAILED","" +"8007365A","-2147010982","2147956314","ERROR_IPSEC_INVALID_PACKET","" +"8007365B","-2147010981","2147956315","ERROR_IPSEC_INTEGRITY_CHECK_FAILED","" +"8007365C","-2147010980","2147956316","ERROR_IPSEC_CLEAR_TEXT_DROP","" +"8007365D","-2147010979","2147956317","ERROR_IPSEC_AUTH_FIREWALL_DROP","" +"8007365E","-2147010978","2147956318","ERROR_IPSEC_THROTTLE_DROP","" +"80073665","-2147010971","2147956325","ERROR_IPSEC_DOSP_BLOCK","" +"80073666","-2147010970","2147956326","ERROR_IPSEC_DOSP_RECEIVED_MULTICAST","" +"80073667","-2147010969","2147956327","ERROR_IPSEC_DOSP_INVALID_PACKET","" +"80073668","-2147010968","2147956328","ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED","" +"80073669","-2147010967","2147956329","ERROR_IPSEC_DOSP_MAX_ENTRIES","" +"8007366A","-2147010966","2147956330","ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED","" +"8007366B","-2147010965","2147956331","ERROR_IPSEC_DOSP_NOT_INSTALLED","" +"8007366C","-2147010964","2147956332","ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES","" +"800736B0","-2147010896","2147956400","ERROR_SXS_SECTION_NOT_FOUND","" +"800736B1","-2147010895","2147956401","ERROR_SXS_CANT_GEN_ACTCTX","This application has failed to start because the application configuration is incorrect." +"800736B2","-2147010894","2147956402","ERROR_SXS_INVALID_ACTCTXDATA_FORMAT","" +"800736B3","-2147010893","2147956403","ERROR_SXS_ASSEMBLY_NOT_FOUND","" +"800736B4","-2147010892","2147956404","ERROR_SXS_MANIFEST_FORMAT_ERROR","" +"800736B5","-2147010891","2147956405","ERROR_SXS_MANIFEST_PARSE_ERROR","" +"800736B6","-2147010890","2147956406","ERROR_SXS_ACTIVATION_CONTEXT_DISABLED","" +"800736B7","-2147010889","2147956407","ERROR_SXS_KEY_NOT_FOUND","" +"800736B8","-2147010888","2147956408","ERROR_SXS_VERSION_CONFLICT","" +"800736B9","-2147010887","2147956409","ERROR_SXS_WRONG_SECTION_TYPE","" +"800736BA","-2147010886","2147956410","ERROR_SXS_THREAD_QUERIES_DISABLED","" +"800736BB","-2147010885","2147956411","ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET","" +"800736BC","-2147010884","2147956412","ERROR_SXS_UNKNOWN_ENCODING_GROUP","" +"800736BD","-2147010883","2147956413","ERROR_SXS_UNKNOWN_ENCODING","" +"800736BE","-2147010882","2147956414","ERROR_SXS_INVALID_XML_NAMESPACE_URI","" +"800736BF","-2147010881","2147956415","ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED","" +"800736C0","-2147010880","2147956416","ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED","" +"800736C1","-2147010879","2147956417","ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE","" +"800736C2","-2147010878","2147956418","ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE","" +"800736C3","-2147010877","2147956419","ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE","" +"800736C4","-2147010876","2147956420","ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT","" +"800736C5","-2147010875","2147956421","ERROR_SXS_DUPLICATE_DLL_NAME","" +"800736C6","-2147010874","2147956422","ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME","" +"800736C7","-2147010873","2147956423","ERROR_SXS_DUPLICATE_CLSID","" +"800736C8","-2147010872","2147956424","ERROR_SXS_DUPLICATE_IID","" +"800736C9","-2147010871","2147956425","ERROR_SXS_DUPLICATE_TLBID","" +"800736CA","-2147010870","2147956426","ERROR_SXS_DUPLICATE_PROGID","" +"800736CB","-2147010869","2147956427","ERROR_SXS_DUPLICATE_ASSEMBLY_NAME","" +"800736CC","-2147010868","2147956428","ERROR_SXS_FILE_HASH_MISMATCH","" +"800736CD","-2147010867","2147956429","ERROR_SXS_POLICY_PARSE_ERROR","" +"800736CE","-2147010866","2147956430","ERROR_SXS_XML_E_MISSINGQUOTE","" +"800736CF","-2147010865","2147956431","ERROR_SXS_XML_E_COMMENTSYNTAX","" +"800736D0","-2147010864","2147956432","ERROR_SXS_XML_E_BADSTARTNAMECHAR","" +"800736D1","-2147010863","2147956433","ERROR_SXS_XML_E_BADNAMECHAR","" +"800736D2","-2147010862","2147956434","ERROR_SXS_XML_E_BADCHARINSTRING","" +"800736D3","-2147010861","2147956435","ERROR_SXS_XML_E_XMLDECLSYNTAX","" +"800736D4","-2147010860","2147956436","ERROR_SXS_XML_E_BADCHARDATA","" +"800736D5","-2147010859","2147956437","ERROR_SXS_XML_E_MISSINGWHITESPACE","" +"800736D6","-2147010858","2147956438","ERROR_SXS_XML_E_EXPECTINGTAGEND","" +"800736D7","-2147010857","2147956439","ERROR_SXS_XML_E_MISSINGSEMICOLON","" +"800736D8","-2147010856","2147956440","ERROR_SXS_XML_E_UNBALANCEDPAREN","" +"800736D9","-2147010855","2147956441","ERROR_SXS_XML_E_INTERNALERROR","" +"800736DA","-2147010854","2147956442","ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE","" +"800736DB","-2147010853","2147956443","ERROR_SXS_XML_E_INCOMPLETE_ENCODING","" +"800736DC","-2147010852","2147956444","ERROR_SXS_XML_E_MISSING_PAREN","" +"800736DD","-2147010851","2147956445","ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE","" +"800736DE","-2147010850","2147956446","ERROR_SXS_XML_E_MULTIPLE_COLONS","" +"800736DF","-2147010849","2147956447","ERROR_SXS_XML_E_INVALID_DECIMAL","" +"800736E0","-2147010848","2147956448","ERROR_SXS_XML_E_INVALID_HEXIDECIMAL","" +"800736E1","-2147010847","2147956449","ERROR_SXS_XML_E_INVALID_UNICODE","" +"800736E2","-2147010846","2147956450","ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK","" +"800736E3","-2147010845","2147956451","ERROR_SXS_XML_E_UNEXPECTEDENDTAG","" +"800736E4","-2147010844","2147956452","ERROR_SXS_XML_E_UNCLOSEDTAG","" +"800736E5","-2147010843","2147956453","ERROR_SXS_XML_E_DUPLICATEATTRIBUTE","" +"800736E6","-2147010842","2147956454","ERROR_SXS_XML_E_MULTIPLEROOTS","" +"800736E7","-2147010841","2147956455","ERROR_SXS_XML_E_INVALIDATROOTLEVEL","" +"800736E8","-2147010840","2147956456","ERROR_SXS_XML_E_BADXMLDECL","" +"800736E9","-2147010839","2147956457","ERROR_SXS_XML_E_MISSINGROOT","" +"800736EA","-2147010838","2147956458","ERROR_SXS_XML_E_UNEXPECTEDEOF","" +"800736EB","-2147010837","2147956459","ERROR_SXS_XML_E_BADPEREFINSUBSET","" +"800736EC","-2147010836","2147956460","ERROR_SXS_XML_E_UNCLOSEDSTARTTAG","" +"800736ED","-2147010835","2147956461","ERROR_SXS_XML_E_UNCLOSEDENDTAG","" +"800736EE","-2147010834","2147956462","ERROR_SXS_XML_E_UNCLOSEDSTRING","" +"800736EF","-2147010833","2147956463","ERROR_SXS_XML_E_UNCLOSEDCOMMENT","" +"800736F0","-2147010832","2147956464","ERROR_SXS_XML_E_UNCLOSEDDECL","" +"800736F1","-2147010831","2147956465","ERROR_SXS_XML_E_UNCLOSEDCDATA","" +"800736F2","-2147010830","2147956466","ERROR_SXS_XML_E_RESERVEDNAMESPACE","" +"800736F3","-2147010829","2147956467","ERROR_SXS_XML_E_INVALIDENCODING","" +"800736F4","-2147010828","2147956468","ERROR_SXS_XML_E_INVALIDSWITCH","" +"800736F5","-2147010827","2147956469","ERROR_SXS_XML_E_BADXMLCASE","" +"800736F6","-2147010826","2147956470","ERROR_SXS_XML_E_INVALID_STANDALONE","" +"800736F7","-2147010825","2147956471","ERROR_SXS_XML_E_UNEXPECTED_STANDALONE","" +"800736F8","-2147010824","2147956472","ERROR_SXS_XML_E_INVALID_VERSION","" +"800736F9","-2147010823","2147956473","ERROR_SXS_XML_E_MISSINGEQUALS","" +"800736FA","-2147010822","2147956474","ERROR_SXS_PROTECTION_RECOVERY_FAILED","" +"800736FB","-2147010821","2147956475","ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT","" +"800736FC","-2147010820","2147956476","ERROR_SXS_PROTECTION_CATALOG_NOT_VALID","" +"800736FD","-2147010819","2147956477","ERROR_SXS_UNTRANSLATABLE_HRESULT","" +"800736FE","-2147010818","2147956478","ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING","" +"800736FF","-2147010817","2147956479","ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE","" +"80073700","-2147010816","2147956480","ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME","" +"80073701","-2147010815","2147956481","ERROR_SXS_ASSEMBLY_MISSING","" +"80073702","-2147010814","2147956482","ERROR_SXS_CORRUPT_ACTIVATION_STACK","" +"80073703","-2147010813","2147956483","ERROR_SXS_CORRUPTION","" +"80073704","-2147010812","2147956484","ERROR_SXS_EARLY_DEACTIVATION","" +"80073705","-2147010811","2147956485","ERROR_SXS_INVALID_DEACTIVATION","" +"80073706","-2147010810","2147956486","ERROR_SXS_MULTIPLE_DEACTIVATION","" +"80073707","-2147010809","2147956487","ERROR_SXS_PROCESS_TERMINATION_REQUESTED","" +"80073708","-2147010808","2147956488","ERROR_SXS_RELEASE_ACTIVATION_CONTEXT","" +"80073709","-2147010807","2147956489","ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY","" +"8007370A","-2147010806","2147956490","ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE","" +"8007370B","-2147010805","2147956491","ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME","" +"8007370C","-2147010804","2147956492","ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE","" +"8007370D","-2147010803","2147956493","ERROR_SXS_IDENTITY_PARSE_ERROR","" +"8007370E","-2147010802","2147956494","ERROR_MALFORMED_SUBSTITUTION_STRING","" +"8007370F","-2147010801","2147956495","ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN","" +"80073710","-2147010800","2147956496","ERROR_UNMAPPED_SUBSTITUTION_STRING","" +"80073711","-2147010799","2147956497","ERROR_SXS_ASSEMBLY_NOT_LOCKED","" +"80073712","-2147010798","2147956498","ERROR_SXS_COMPONENT_STORE_CORRUPT","" +"80073713","-2147010797","2147956499","ERROR_ADVANCED_INSTALLER_FAILED","" +"80073714","-2147010796","2147956500","ERROR_XML_ENCODING_MISMATCH","" +"80073715","-2147010795","2147956501","ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT","" +"80073716","-2147010794","2147956502","ERROR_SXS_IDENTITIES_DIFFERENT","" +"80073717","-2147010793","2147956503","ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT","" +"80073718","-2147010792","2147956504","ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY","" +"80073719","-2147010791","2147956505","ERROR_SXS_MANIFEST_TOO_BIG","" +"8007371A","-2147010790","2147956506","ERROR_SXS_SETTING_NOT_REGISTERED","" +"8007371B","-2147010789","2147956507","ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE","" +"8007371C","-2147010788","2147956508","ERROR_SMI_PRIMITIVE_INSTALLER_FAILED","" +"8007371D","-2147010787","2147956509","ERROR_GENERIC_COMMAND_FAILED","" +"8007371E","-2147010786","2147956510","ERROR_SXS_FILE_HASH_MISSING","" +"80073A98","-2147009896","2147957400","ERROR_EVT_INVALID_CHANNEL_PATH","" +"80073A99","-2147009895","2147957401","ERROR_EVT_INVALID_QUERY","" +"80073A9A","-2147009894","2147957402","ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND","" +"80073A9B","-2147009893","2147957403","ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND","" +"80073A9C","-2147009892","2147957404","ERROR_EVT_INVALID_PUBLISHER_NAME","" +"80073A9D","-2147009891","2147957405","ERROR_EVT_INVALID_EVENT_DATA","" +"80073A9F","-2147009889","2147957407","ERROR_EVT_CHANNEL_NOT_FOUND","" +"80073AA0","-2147009888","2147957408","ERROR_EVT_MALFORMED_XML_TEXT","" +"80073AA1","-2147009887","2147957409","ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL","" +"80073AA2","-2147009886","2147957410","ERROR_EVT_CONFIGURATION_ERROR","" +"80073AA3","-2147009885","2147957411","ERROR_EVT_QUERY_RESULT_STALE","" +"80073AA4","-2147009884","2147957412","ERROR_EVT_QUERY_RESULT_INVALID_POSITION","" +"80073AA5","-2147009883","2147957413","ERROR_EVT_NON_VALIDATING_MSXML","" +"80073AA6","-2147009882","2147957414","ERROR_EVT_FILTER_ALREADYSCOPED","" +"80073AA7","-2147009881","2147957415","ERROR_EVT_FILTER_NOTELTSET","" +"80073AA8","-2147009880","2147957416","ERROR_EVT_FILTER_INVARG","" +"80073AA9","-2147009879","2147957417","ERROR_EVT_FILTER_INVTEST","" +"80073AAA","-2147009878","2147957418","ERROR_EVT_FILTER_INVTYPE","" +"80073AAB","-2147009877","2147957419","ERROR_EVT_FILTER_PARSEERR","" +"80073AAC","-2147009876","2147957420","ERROR_EVT_FILTER_UNSUPPORTEDOP","" +"80073AAD","-2147009875","2147957421","ERROR_EVT_FILTER_UNEXPECTEDTOKEN","" +"80073AAE","-2147009874","2147957422","ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL","" +"80073AAF","-2147009873","2147957423","ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE","" +"80073AB0","-2147009872","2147957424","ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE","" +"80073AB1","-2147009871","2147957425","ERROR_EVT_CHANNEL_CANNOT_ACTIVATE","" +"80073AB2","-2147009870","2147957426","ERROR_EVT_FILTER_TOO_COMPLEX","" +"80073AB3","-2147009869","2147957427","ERROR_EVT_MESSAGE_NOT_FOUND","" +"80073AB4","-2147009868","2147957428","ERROR_EVT_MESSAGE_ID_NOT_FOUND","" +"80073AB5","-2147009867","2147957429","ERROR_EVT_UNRESOLVED_VALUE_INSERT","" +"80073AB6","-2147009866","2147957430","ERROR_EVT_UNRESOLVED_PARAMETER_INSERT","" +"80073AB7","-2147009865","2147957431","ERROR_EVT_MAX_INSERTS_REACHED","" +"80073AB8","-2147009864","2147957432","ERROR_EVT_EVENT_DEFINITION_NOT_FOUND","" +"80073AB9","-2147009863","2147957433","ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND","" +"80073ABA","-2147009862","2147957434","ERROR_EVT_VERSION_TOO_OLD","" +"80073ABB","-2147009861","2147957435","ERROR_EVT_VERSION_TOO_NEW","" +"80073ABC","-2147009860","2147957436","ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY","" +"80073ABD","-2147009859","2147957437","ERROR_EVT_PUBLISHER_DISABLED","" +"80073ABE","-2147009858","2147957438","ERROR_EVT_FILTER_OUT_OF_RANGE","" +"80073AE8","-2147009816","2147957480","ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE","" +"80073AE9","-2147009815","2147957481","ERROR_EC_LOG_DISABLED","" +"80073AEA","-2147009814","2147957482","ERROR_EC_CIRCULAR_FORWARDING","" +"80073AEB","-2147009813","2147957483","ERROR_EC_CREDSTORE_FULL","" +"80073AEC","-2147009812","2147957484","ERROR_EC_CRED_NOT_FOUND","" +"80073AED","-2147009811","2147957485","ERROR_EC_NO_ACTIVE_CHANNEL","" +"80073AFC","-2147009796","2147957500","ERROR_MUI_FILE_NOT_FOUND","" +"80073AFD","-2147009795","2147957501","ERROR_MUI_INVALID_FILE","" +"80073AFE","-2147009794","2147957502","ERROR_MUI_INVALID_RC_CONFIG","" +"80073AFF","-2147009793","2147957503","ERROR_MUI_INVALID_LOCALE_NAME","" +"80073B00","-2147009792","2147957504","ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME","" +"80073B01","-2147009791","2147957505","ERROR_MUI_FILE_NOT_LOADED","" +"80073B02","-2147009790","2147957506","ERROR_RESOURCE_ENUM_USER_STOP","" +"80073B03","-2147009789","2147957507","ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED","" +"80073B04","-2147009788","2147957508","ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME","" +"80073B06","-2147009786","2147957510","ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE","" +"80073B07","-2147009785","2147957511","ERROR_MRM_INVALID_PRICONFIG","" +"80073B08","-2147009784","2147957512","ERROR_MRM_INVALID_FILE_TYPE","" +"80073B09","-2147009783","2147957513","ERROR_MRM_UNKNOWN_QUALIFIER","" +"80073B0A","-2147009782","2147957514","ERROR_MRM_INVALID_QUALIFIER_VALUE","" +"80073B0B","-2147009781","2147957515","ERROR_MRM_NO_CANDIDATE","" +"80073B0C","-2147009780","2147957516","ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE","" +"80073B0D","-2147009779","2147957517","ERROR_MRM_RESOURCE_TYPE_MISMATCH","" +"80073B0E","-2147009778","2147957518","ERROR_MRM_DUPLICATE_MAP_NAME","" +"80073B0F","-2147009777","2147957519","ERROR_MRM_DUPLICATE_ENTRY","" +"80073B10","-2147009776","2147957520","ERROR_MRM_INVALID_RESOURCE_IDENTIFIER","" +"80073B11","-2147009775","2147957521","ERROR_MRM_FILEPATH_TOO_LONG","" +"80073B12","-2147009774","2147957522","ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE","" +"80073B16","-2147009770","2147957526","ERROR_MRM_INVALID_PRI_FILE","" +"80073B17","-2147009769","2147957527","ERROR_MRM_NAMED_RESOURCE_NOT_FOUND","" +"80073B1F","-2147009761","2147957535","ERROR_MRM_MAP_NOT_FOUND","" +"80073B20","-2147009760","2147957536","ERROR_MRM_UNSUPPORTED_PROFILE_TYPE","" +"80073B21","-2147009759","2147957537","ERROR_MRM_INVALID_QUALIFIER_OPERATOR","" +"80073B22","-2147009758","2147957538","ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE","" +"80073B23","-2147009757","2147957539","ERROR_MRM_AUTOMERGE_ENABLED","" +"80073B24","-2147009756","2147957540","ERROR_MRM_TOO_MANY_RESOURCES","" +"80073B25","-2147009755","2147957541","ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE","" +"80073B26","-2147009754","2147957542","ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE","" +"80073B27","-2147009753","2147957543","ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD","" +"80073B28","-2147009752","2147957544","ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST","" +"80073B29","-2147009751","2147957545","ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT","" +"80073B2A","-2147009750","2147957546","ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE","" +"80073B2B","-2147009749","2147957547","ERROR_MRM_GENERATION_COUNT_MISMATCH","" +"80073B2C","-2147009748","2147957548","ERROR_PRI_MERGE_VERSION_MISMATCH","" +"80073B2D","-2147009747","2147957549","ERROR_PRI_MERGE_MISSING_SCHEMA","" +"80073B2E","-2147009746","2147957550","ERROR_PRI_MERGE_LOAD_FILE_FAILED","" +"80073B2F","-2147009745","2147957551","ERROR_PRI_MERGE_ADD_FILE_FAILED","" +"80073B30","-2147009744","2147957552","ERROR_PRI_MERGE_WRITE_FILE_FAILED","" +"80073B31","-2147009743","2147957553","ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED","" +"80073B32","-2147009742","2147957554","ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED","" +"80073B33","-2147009741","2147957555","ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED","" +"80073B34","-2147009740","2147957556","ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED","" +"80073B35","-2147009739","2147957557","ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED","" +"80073B36","-2147009738","2147957558","ERROR_PRI_MERGE_INVALID_FILE_NAME","" +"80073B60","-2147009696","2147957600","ERROR_MCA_INVALID_CAPABILITIES_STRING","" +"80073B61","-2147009695","2147957601","ERROR_MCA_INVALID_VCP_VERSION","" +"80073B62","-2147009694","2147957602","ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION","" +"80073B63","-2147009693","2147957603","ERROR_MCA_MCCS_VERSION_MISMATCH","" +"80073B64","-2147009692","2147957604","ERROR_MCA_UNSUPPORTED_MCCS_VERSION","" +"80073B65","-2147009691","2147957605","ERROR_MCA_INTERNAL_ERROR","" +"80073B66","-2147009690","2147957606","ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED","" +"80073B67","-2147009689","2147957607","ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE","" +"80073B92","-2147009646","2147957650","ERROR_AMBIGUOUS_SYSTEM_DEVICE","" +"80073BC3","-2147009597","2147957699","ERROR_SYSTEM_DEVICE_NOT_FOUND","" +"80073BC4","-2147009596","2147957700","ERROR_HASH_NOT_SUPPORTED","" +"80073BC5","-2147009595","2147957701","ERROR_HASH_NOT_PRESENT","" +"80073BD9","-2147009575","2147957721","ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED","" +"80073BDA","-2147009574","2147957722","ERROR_GPIO_CLIENT_INFORMATION_INVALID","" +"80073BDB","-2147009573","2147957723","ERROR_GPIO_VERSION_NOT_SUPPORTED","" +"80073BDC","-2147009572","2147957724","ERROR_GPIO_INVALID_REGISTRATION_PACKET","" +"80073BDD","-2147009571","2147957725","ERROR_GPIO_OPERATION_DENIED","" +"80073BDE","-2147009570","2147957726","ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE","" +"80073BDF","-2147009569","2147957727","ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED","" +"80073C28","-2147009496","2147957800","ERROR_CANNOT_SWITCH_RUNLEVEL","" +"80073C29","-2147009495","2147957801","ERROR_INVALID_RUNLEVEL_SETTING","" +"80073C2A","-2147009494","2147957802","ERROR_RUNLEVEL_SWITCH_TIMEOUT","" +"80073C2B","-2147009493","2147957803","ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT","" +"80073C2C","-2147009492","2147957804","ERROR_RUNLEVEL_SWITCH_IN_PROGRESS","" +"80073C2D","-2147009491","2147957805","ERROR_SERVICES_FAILED_AUTOSTART","" +"80073C8D","-2147009395","2147957901","ERROR_COM_TASK_STOP_PENDING","" +"80073CF0","-2147009296","2147958000","ERROR_INSTALL_OPEN_PACKAGE_FAILED","" +"80073CF1","-2147009295","2147958001","ERROR_INSTALL_PACKAGE_NOT_FOUND","" +"80073CF2","-2147009294","2147958002","ERROR_INSTALL_INVALID_PACKAGE","" +"80073CF3","-2147009293","2147958003","ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED","Error Installing Dependency - Windows cannot install this package because it depends on a framework (version) that could not be found." +"80073CF4","-2147009292","2147958004","ERROR_INSTALL_OUT_OF_DISK_SPACE","" +"80073CF5","-2147009291","2147958005","ERROR_INSTALL_NETWORK_FAILURE","" +"80073CF6","-2147009290","2147958006","ERROR_INSTALL_REGISTRATION_FAILURE","" +"80073CF7","-2147009289","2147958007","ERROR_INSTALL_DEREGISTRATION_FAILURE","" +"80073CF8","-2147009288","2147958008","ERROR_INSTALL_CANCEL","" +"80073CF9","-2147009287","2147958009","ERROR_INSTALL_FAILED","" +"80073CFA","-2147009286","2147958010","ERROR_REMOVE_FAILED","" +"80073CFB","-2147009285","2147958011","ERROR_PACKAGE_ALREADY_EXISTS","" +"80073CFC","-2147009284","2147958012","ERROR_NEEDS_REMEDIATION","" +"80073CFD","-2147009283","2147958013","ERROR_INSTALL_PREREQUISITE_FAILED","" +"80073CFE","-2147009282","2147958014","ERROR_PACKAGE_REPOSITORY_CORRUPTED","" +"80073CFF","-2147009281","2147958015","ERROR_INSTALL_POLICY_FAILURE","" +"80073D00","-2147009280","2147958016","ERROR_PACKAGE_UPDATING","" +"80073D01","-2147009279","2147958017","ERROR_DEPLOYMENT_BLOCKED_BY_POLICY","" +"80073D02","-2147009278","2147958018","ERROR_PACKAGES_IN_USE","" +"80073D03","-2147009277","2147958019","ERROR_RECOVERY_FILE_CORRUPT","" +"80073D04","-2147009276","2147958020","ERROR_INVALID_STAGED_SIGNATURE","" +"80073D05","-2147009275","2147958021","ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED","" +"80073D06","-2147009274","2147958022","ERROR_INSTALL_PACKAGE_DOWNGRADE","" +"80073D07","-2147009273","2147958023","ERROR_SYSTEM_NEEDS_REMEDIATION","" +"80073D08","-2147009272","2147958024","ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN","" +"80073D09","-2147009271","2147958025","ERROR_RESILIENCY_FILE_CORRUPT","" +"80073D0A","-2147009270","2147958026","ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING","" +"80073D0B","-2147009269","2147958027","ERROR_PACKAGE_MOVE_FAILED","" +"80073D0C","-2147009268","2147958028","ERROR_INSTALL_VOLUME_NOT_EMPTY","" +"80073D0D","-2147009267","2147958029","ERROR_INSTALL_VOLUME_OFFLINE","" +"80073D0E","-2147009266","2147958030","ERROR_INSTALL_VOLUME_CORRUPT","" +"80073D0F","-2147009265","2147958031","ERROR_NEEDS_REGISTRATION","" +"80073D10","-2147009264","2147958032","ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE","" +"80073D11","-2147009263","2147958033","ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED","" +"80073D12","-2147009262","2147958034","ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE","" +"80073D13","-2147009261","2147958035","ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM","" +"80073D14","-2147009260","2147958036","ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING","" +"80073D15","-2147009259","2147958037","ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE","" +"80073D16","-2147009258","2147958038","ERROR_PACKAGE_STAGING_ONHOLD","" +"80073D17","-2147009257","2147958039","ERROR_INSTALL_INVALID_RELATED_SET_UPDATE","" +"80073D18","-2147009256","2147958040","ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY","" +"80073D54","-2147009196","2147958100","APPMODEL_ERROR_NO_PACKAGE","" +"80073D55","-2147009195","2147958101","APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT","" +"80073D56","-2147009194","2147958102","APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT","" +"80073D57","-2147009193","2147958103","APPMODEL_ERROR_NO_APPLICATION","" +"80073D58","-2147009192","2147958104","APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED","" +"80073D59","-2147009191","2147958105","APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID","" +"80073D5A","-2147009190","2147958106","APPMODEL_ERROR_PACKAGE_NOT_AVAILABLE","" +"80073DB8","-2147009096","2147958200","ERROR_STATE_LOAD_STORE_FAILED","" +"80073DB9","-2147009095","2147958201","ERROR_STATE_GET_VERSION_FAILED","" +"80073DBA","-2147009094","2147958202","ERROR_STATE_SET_VERSION_FAILED","" +"80073DBB","-2147009093","2147958203","ERROR_STATE_STRUCTURED_RESET_FAILED","" +"80073DBC","-2147009092","2147958204","ERROR_STATE_OPEN_CONTAINER_FAILED","" +"80073DBD","-2147009091","2147958205","ERROR_STATE_CREATE_CONTAINER_FAILED","" +"80073DBE","-2147009090","2147958206","ERROR_STATE_DELETE_CONTAINER_FAILED","" +"80073DBF","-2147009089","2147958207","ERROR_STATE_READ_SETTING_FAILED","" +"80073DC0","-2147009088","2147958208","ERROR_STATE_WRITE_SETTING_FAILED","" +"80073DC1","-2147009087","2147958209","ERROR_STATE_DELETE_SETTING_FAILED","" +"80073DC2","-2147009086","2147958210","ERROR_STATE_QUERY_SETTING_FAILED","" +"80073DC3","-2147009085","2147958211","ERROR_STATE_READ_COMPOSITE_SETTING_FAILED","" +"80073DC4","-2147009084","2147958212","ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED","" +"80073DC5","-2147009083","2147958213","ERROR_STATE_ENUMERATE_CONTAINER_FAILED","" +"80073DC6","-2147009082","2147958214","ERROR_STATE_ENUMERATE_SETTINGS_FAILED","" +"80073DC7","-2147009081","2147958215","ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED","" +"80073DC8","-2147009080","2147958216","ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED","" +"80073DC9","-2147009079","2147958217","ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED","" +"80073DCA","-2147009078","2147958218","ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED","" +"80073DE1","-2147009055","2147958241","ERROR_API_UNAVAILABLE","" +"80073DF5","-2147009035","2147958261","STORE_ERROR_UNLICENSED","" +"80073DF6","-2147009034","2147958262","STORE_ERROR_UNLICENSED_USER","" +"80073DF7","-2147009033","2147958263","STORE_ERROR_PENDING_COM_TRANSACTION","" +"80073DF8","-2147009032","2147958264","STORE_ERROR_LICENSE_REVOKED","" +"8007F001","-2146963455","2148003841","STATUS_FAILED_LANGUAGE_TYPE","Setup cannot update your files because the language\installed on your system is different from the update language." +"8007F002","-2146963454","2148003842","STATUS_CHECKED_FREE_MISMATCH","Setup cannot update a checked (debug) system with a free (retail) version of ." +"8007F003","-2146963453","2148003843","STATUS_NOT_ENOUGH_SPACE","There is not enough disk space on to install . Setup requires a minimum of d additional megabytes of free space or if you also want to archive the files for uninstall." +"8007F004","-2146963452","2148003844","STATUS_INSUFFICIENT_PRIVS","You do not have permission to update . Please." +"8007F007","-2146963449","2148003847","STATUS_CANT_FIND_INF","Setup could not find the update.inf file needed to update your system." +"8007F008","-2146963448","2148003848","STATUS_UPDATE_SUCCESSFUL","has been updated. Remove any disks from the floppy disk drives and choose OK to restart your computer. If you change or add any components to your system." +"8007F009","-2146963447","2148003849","STATUS_UPDATE_UNSUCCESSFUL","installation did not complete." +"8007F00A","-2146963446","2148003850","STATUS_SHUTDOWN_UNSUCCESSFUL","Setup was unable to shutdown system. Please shutdown your system manually." +"8007F00B","-2146963445","2148003851","STATUS_FILE_NOT_FOUND_IN_SETUP_LOG","Could not locate entry for HAL.DLL in SETUP.LOG to determine type of HAL to update." +"8007F00C","-2146963444","2148003852","STATUS_INVALID_INF_FILE","The file is not correct." +"8007F00D","-2146963443","2148003853","STATUS_USER_CANCELLED","Setup canceled." +"8007F00E","-2146963442","2148003854","STATUS_PLATFORM_MISMATCH","This is for a different hardware platform." +"8007F00F","-2146963441","2148003855","STR_CAPTION","Setup." +"8007F010","-2146963440","2148003856","STR_WARNCAPTION","Setup Warning." +"8007F011","-2146963439","2148003857","STR_ERRCAPTION","Setup Error." +"8007F012","-2146963438","2148003858","STR_FAILED_TO_DELETE_OR_RENAME","The file is open or in use by another application. Close all other applications and then click Retry." +"8007F013","-2146963437","2148003859","STR_FAILED_TO_SAVE_REGISTRY","Setup could not backup registry key to file." +"8007F014","-2146963436","2148003860","STR_FAILED_TO_READ_REGISTRY","Setup could not backup registry value." +"8007F015","-2146963435","2148003861","STR_ASK_DIRTY_UNINSTALL","Select 'OK' to undo the changes that have been made." +"8007F016","-2146963434","2148003862","STR_LEAVING_DIRTY","has been partially updated and may not work properly." +"8007F017","-2146963433","2148003863","STR_ARE_YOU_SURE_CANCEL","Are you sure you want to cancel?." +"8007F018","-2146963432","2148003864","STR_SOURCE_MEDIA_NAME_UNINSTALL","Uninstall Directory." +"8007F019","-2146963431","2148003865","STR_SOURCE_MEDIA_NAME","Uninstall Directory." +"8007F01A","-2146963430","2148003866","STR_SOURCE_MEDIA_NAME_SYSTEM","System Files." +"8007F01B","-2146963429","2148003867","STR_INST_HOTFIX","Setup found hotfixes on your system. Would you like to install these hotfixes now?." +"8007F01C","-2146963428","2148003868","STR_UNINST_ALREADY_CREATED","You have already created an Uninstall directory. Doing this again will overwrite your current uninstall directory. Are you sure you want to do this?." +"8007F01D","-2146963427","2148003869","STR_OEM_FILE","Your computer vendor installed this file on your computer. Do you want Setup to replace this file?." +"8007F01E","-2146963426","2148003870","STR_CATALOG_INSTALL_FAILED","Failed to install catalog files." +"8007F01F","-2146963425","2148003871","STR_ADD_REGISTRY_FAILED","Failed to add registry entry." +"8007F020","-2146963424","2148003872","STATUS_BUILD_VERSION_MISMATCH","Setup has detected that the build version of the system installed does not match the update you are applying to it. You can only install this update only on Build %d ." +"8007F021","-2146963423","2148003873","STATUS_SP_VERSION_GREATER","The version of Windows you have installed does not match the update you are trying to install." +"8007F022","-2146963422","2148003874","STATUS_CANT_SPAWN_HOTFIX","Setup could not start the hotfix installation program." +"8007F023","-2146963421","2148003875","STATUS_CANT_FIND_TAG","Setup could not locate the files." +"8007F024","-2146963420","2148003876","STATUS_OVERWRITE_UNINSTALL","WARNING: You have chosen to overwrite your existing uninstall: If you continue." +"8007F026","-2146963418","2148003878","STATUS_WININET_LOAD_FAILED","This Web-based update requires Internet Explorer 3.0 or later. For instructions on how to download a version of this update that does not require a Web connection during installation." +"8007F027","-2146963417","2148003879","STATUS_CANT_INSTALL_SP_ON_DTC","This has not been qualified by your hardware vendor for installation on this copy of Datacenter Server. Please contact your hardware vendor for additional information on obtaining a that has been qualified for your system configuration." +"8007F028","-2146963416","2148003880","STATUS_NECESSARY_FILES_NOT_PRESENT","Not all files necessary to perform an integrated installation are present." +"8007F029","-2146963415","2148003881","STATUS_SPOOLER_NOT_STARTED","Cannot install . The Print Spooler service is not started." +"8007F02A","-2146963414","2148003882","STATUS_MUST_RESTART_FIRST","The system must be restarted before installing the ." +"8007F02B","-2146963413","2148003883","STATUS_NOT_ENOUGH_WITH_UNINST","You do not have enough free disk space on % to archive the uninstall files. To install with backup files for uninstall." +"8007F02C","-2146963412","2148003884","STATUS_CANT_FIND_RSAENHS","Unable to locate RSAENHS.DLL in the update directory." +"8007F02D","-2146963411","2148003885","STATUS_CANT_FIND_ENCININF","Unable to locate UPDENCIN.INF in the update directory." +"8007F02E","-2146963410","2148003886","STATUS_CANT_FIND_ENCTSINF","Unable to locate UPDENCTS.INF in the update directory." +"8007F02F","-2146963409","2148003887","STATUS_ENCINST_PROCESS_FAILED","High encryption ENCINST process failed." +"8007F030","-2146963408","2148003888","STATUS_ENCINST_UPGRADE_FAILED","High encryption upgrade failed." +"8007F031","-2146963407","2148003889","STR_USAGE_UPDATE","AVAILABLE SWITCHES: [/help] [/quiet] [/passive] [/uninstall] [/norestart] [/forcerestart] [/l] [/n] [/o] [/f] [/integrate:] [/d:] /help Displays this message SETUP MODES /quiet Quiet mode (no user interaction or displ." +"8007F032","-2146963406","2148003890","STR_BUILDING_CAB","Creating file." +"8007F033","-2146963405","2148003891","STR_DOWNLOADING","Downloading files and patches." +"8007F034","-2146963404","2148003892","STR_ARCHIVING_FILES","Backing up files." +"8007F035","-2146963403","2148003893","STR_ARCHIVING_FILE","Backing up files." +"8007F036","-2146963402","2148003894","STR_INSTALLING_FILES","Installing files." +"8007F037","-2146963401","2148003895","STR_INSTALLING_FILE","Installing files." +"8007F038","-2146963400","2148003896","STR_FINISHING_INSTALL","Finishing installation." +"8007F039","-2146963399","2148003897","STR_WELCOME_LINE","Welcome to the Setup Wizard." +"8007F03A","-2146963398","2148003898","STR_RESTART","&Restart." +"8007F03B","-2146963397","2148003899","STR_COMPLETE","installation is complete. You must restart your computer for the update to take effect." +"8007F03D","-2146963395","2148003901","STR_CANT_CANCEL_NOW","Please wait while Setup updates your system files." +"8007F03E","-2146963394","2148003902","STR_MUST_ACCEPT_TIP","Must accept license agreement before installing." +"8007F03F","-2146963393","2148003903","STR_NEED_TO_CONNECT","Setup needs to connect to the internet now to download files and patches for installation." +"8007F040","-2146963392","2148003904","STR_READY_TO_REPLACE","Setup is ready to begin replacing system files." +"8007F041","-2146963391","2148003905","STR_CONNECTING","Connecting to." +"8007F042","-2146963390","2148003906","STR_CONNECTED","Connected to." +"8007F043","-2146963389","2148003907","STR_ESTIMATE","estimate." +"8007F044","-2146963388","2148003908","STR_MINUTES","minutes." +"8007F045","-2146963387","2148003909","STR_SECONDS","seconds." +"8007F046","-2146963386","2148003910","STR_DOWNLOAD_REMAINING","KB remaining." +"8007F047","-2146963385","2148003911","STR_DOWNLOAD_COMPLETE","Download complete." +"8007F048","-2146963384","2148003912","STR_DOWNLOAD_UNPACKING","Download complete." +"8007F049","-2146963383","2148003913","STR_DOWNLOAD_FAILURE","The following error occurred while Setup attempted to download the files from the Internet:." +"8007F04A","-2146963382","2148003914","STR_UNKNOWN_ERROR","The server did not respond (error code %d)." +"8007F04B","-2146963381","2148003915","STR_INTERNET_TIMEOUT","The server did not respond." +"8007F04C","-2146963380","2148003916","STR_DOWNLOAD_RETRY_TEXT","If this error persists after you have clicked Retry several times." +"8007F04D","-2146963379","2148003917","STR_HASH_FAILURE_1","Setup determined that the following downloaded file is corrupt:." +"8007F04E","-2146963378","2148003918","STR_HASH_FAILURE_2","Setup determined that the following downloaded files are corrupt:." +"8007F04F","-2146963377","2148003919","STR_DOWNLOAD_GIVE_UP","Setup was unable to download all the files necessary for installation." +"8007F050","-2146963376","2148003920","STR_COPYING_FILE_DELAYED","Copied file (delayed)." +"8007F051","-2146963375","2148003921","STR_ERROR_COPY_SLIP","An error has occurred copying files from the Service Pack share to the distribution share." +"8007F052","-2146963374","2148003922","STR_SLIPSTREAM_SUCCESSFUL","Integrated install has completed successfully." +"8007F053","-2146963373","2148003923","STR_SLIPSTREAM_FAILED","Failed to copy some or all of the files necessary for integrated install. Please check that: a) No network or copy errors occurred during the integration process b) The format of the destination directory is correct. The files to be integrated." +"8007F054","-2146963372","2148003924","STR_SVCPACK_CMD","Service Pack started with following command line." +"8007F055","-2146963371","2148003925","STR_DOWNLOAD_SIZE","bytes downloaded." +"8007F056","-2146963370","2148003926","STR_NO_SVCPACK","No Service Pack." +"8007F057","-2146963369","2148003927","STR_MISSING_FILE","The file is missing from the installation. The file must be present for Setup to continue. Press OK to cancel Setup." +"8007F058","-2146963368","2148003928","STR_READY_TO_ENCINST","Setup is ready to begin upgrade of uninstall to high encryption." +"8007F059","-2146963367","2148003929","STR_SLIPSTREAM_LANGUAGE_MISMATCH","Integrated install failed. The language type or platform for the destination directory and must be the same." +"8007F05A","-2146963366","2148003930","STATUS_CANT_OPEN_LOG","Error opening file." +"8007F05B","-2146963365","2148003931","STR_SKIPPING_FILE","Skipped copying file:." +"8007F05C","-2146963364","2148003932","STR_COPY_FILE","Copying file." +"8007F05D","-2146963363","2148003933","STR_SVC_INFO","In order to successfully complete this installation." +"8007F05E","-2146963362","2148003934","STR_SVC_STOP_ERR","Setup was unable to stop the following service." +"8007F05F","-2146963361","2148003935","STR_SVC_ASKREBOOT","A reboot will probably be required in order to successfully complete this installation. Do you wish to continue?." +"8007F060","-2146963360","2148003936","STR_SVC_START_ERR","Setup was unable to re-start the following service: ." +"8007F061","-2146963359","2148003937","ERR_STD_PREFIX","Setup encountered an error:." +"8007F062","-2146963358","2148003938","STR_COPYING_FILE","Copied file:." +"8007F063","-2146963357","2148003939","STR_SPAWNING_PROCESS","Starting process:." +"8007F064","-2146963356","2148003940","STATUS_INVALID_VER_FILE","The update.ver file is not correct." +"8007F065","-2146963355","2148003941","STR_DOMESTIC_TAG1","US/Canada Only." +"8007F066","-2146963354","2148003942","STR_DOMESTIC_TAG2","Domestic Use Only." +"8007F067","-2146963353","2148003943","STR_DOMESTIC_TAG3","US and Canada Use Only." +"8007F06A","-2146963350","2148003946","STATUS_SP_VERSION_GREATER_1","Setup has detected that the Service Pack version of the system installed is newer than the update you are applying to it. You can only install this update on Service Pack." +"8007F06B","-2146963349","2148003947","STATUS_SP_VERSION_GREATER_2","Setup has detected that the Service Pack version of this system is newer than the update you are applying. There is no need to install this update." +"8007F06C","-2146963348","2148003948","STATUS_FPNW_FIXUP_FAILED","Setup failed to access or correctly modify your SETUP.LOG file." +"8007F06D","-2146963347","2148003949","STATUS_WRONG_PLATFORM","The version of software you are running does not match the system you are running it on." +"8007F06E","-2146963346","2148003950","STATUS_FAILURE_COPYING_FILES","Failed to completely copy all of the updated files." +"8007F06F","-2146963345","2148003951","STATUS_FAILED_TO_SET_DIR","Failed to set the directory." +"8007F070","-2146963344","2148003952","STATUS_SETUP_ERROR","An error in updating your system has occurred." +"8007F075","-2146963339","2148003957","STATUS_SUCCESS_NOREBOOT","has been updated. You must reboot for these changes to take effect. If you change or add any components to your system." +"8007F076","-2146963338","2148003958","STATUS_SP_VERSION_LESSER","Setup has detected that the version of the Service Pack installed on your system is lower than what is necessary to apply this hotfix. At minimum." +"8007F078","-2146963336","2148003960","STATUS_NO_UNINSTALL_AVAILABLE","You cannot uninstall." +"8007F07A","-2146963334","2148003962","STATUS_SUCCESS_NOREBOOTNEC","has been updated. If you change or add any components to your system." +"8007F07B","-2146963333","2148003963","STATUS_UNINST_NOREBOOTNEC","Hotfix successfully uninstalled." +"8007F07C","-2146963332","2148003964","STR_SECURITY_PROVIDER_WARNING","The existing file contains High Encryption security." +"8007F07F","-2146963329","2148003967","STR_UNINST_HOTFIX","Hotfixes have been found on your system. Would you like to Uninstall these hotfixes now?." +"8007F080","-2146963328","2148003968","STR_OLD_UNINST_EXISTS","An old Uninstall directory has been found. Would you like to overwrite this directory with new Uninstall information?." +"8007F081","-2146963327","2148003969","STR_LICENSE_DECLINED","You have chosen to decline the License Agreement. Setup cannot continue." +"8007F082","-2146963326","2148003970","STR_NO_LICENSE_TXT","No LICENSE.TXT file was found in your Hotfix directory. Setup cannot continue." +"8007F083","-2146963325","2148003971","STR_INSUFF_RESOURCES","Insufficient resources are available. Setup cannot continue." +"8007F084","-2146963324","2148003972","STR_FILE_READ_ERROR","Error reading LICENSE.TXT file. Setup cannot continue." +"8007F085","-2146963323","2148003973","STR_DELETE_OLD_UNINST","This old uninstall directory cannot be used to uninstall this Hotfix." +"8007F086","-2146963322","2148003974","STR_HOTFIXES_FOUND","The following hotfixes are installed:." +"8007F087","-2146963321","2148003975","STR_HOTFIXES_NOT_FOUND","No Hotfixes are installed." +"8007F088","-2146963320","2148003976","STR_CAT_VERSIONS_EQUAL","Catalog file versions are equal." +"8007F089","-2146963319","2148003977","STR_WINDOWS_TYPE1","Windows NT 4.0." +"8007F08A","-2146963318","2148003978","STR_WINDOWS_TYPE2","Windows 2000." +"8007F08B","-2146963317","2148003979","STR_LICENSE_AGREEMENT","License Agreement." +"8007F08C","-2146963316","2148003980","STR_SELECT_OPTIONS","Select Options." +"8007F08D","-2146963315","2148003981","STR_UPDATING_YOUR_SYSTEM","Updating Your System." +"8007F08E","-2146963314","2148003982","STR_WIZ1_STATIC3","Before you install this update." +"8007F08F","-2146963313","2148003983","STR_WIZ2_STATIC1","Please read the following license agreement. To continue with setup." +"8007F090","-2146963312","2148003984","STR_WIZ2_RADIO1","I &Do Not Agree." +"8007F091","-2146963311","2148003985","STR_WIZ2_RADIO2","I &Agree." +"8007F092","-2146963310","2148003986","STR_ASK_BACKUP","If you want to remove later." +"8007F093","-2146963309","2148003987","STR_ARCHIVE1","&Archive Files." +"8007F094","-2146963308","2148003988","STR_ARCHIVE2","&Do Not Archive Files." +"8007F095","-2146963307","2148003989","STR_WIZ4_STATIC2","Please wait while setup inspects your current configuration." +"8007F096","-2146963306","2148003990","STR_WIZ4_STATIC_OPERATION","Inspecting your current configuration." +"8007F097","-2146963305","2148003991","STR_WIZ4_STATIC_DETAILS","inspecting current configuration." +"8007F098","-2146963304","2148003992","STR_WIZ4_STATIC","Inspecting current configuration." +"8007F099","-2146963303","2148003993","STR_WIZ5_STATIC1","Completing the Setup Wizard." +"8007F09A","-2146963302","2148003994","STR_WIZ5_STATIC2_REBOOT","You have successfully completed the Setup Wizard. To apply the changes." +"8007F09B","-2146963301","2148003995","STR_WIZ5_STATIC2_NOREBOOT","You have successfully completed the Setup Wizard. To close this wizard." +"8007F09C","-2146963300","2148003996","STR_WIZ5_CHECK1","&Do not restart now." +"8007F09D","-2146963299","2148003997","STR_WIZCAPTION","Setup Wizard." +"8007F09E","-2146963298","2148003998","STR_ANALYZE_DISK","Checking for necessary space." +"8007F09F","-2146963297","2148003999","STR_BUILDING_CAB_CAPTION","Creating Cabinets." +"8007F0A0","-2146963296","2148004000","STR_CLEAN_REG","Updating the registry keys." +"8007F0A1","-2146963295","2148004001","STR_CANCEL","Cancel." +"8007F0A2","-2146963294","2148004002","STR_DOWNLOAD_UNPACKING_DETAILS","Unpacking: %d remaining." +"8007F0A3","-2146963293","2148004003","STR_NO","No LICENSE.TXT file was found in your Hotfix directory. Setup cannot continue. ::No Uninstall directory: Setup is executing. Please wait for Setup to complete :No Service Pack." +"8007F0A4","-2146963292","2148004004","STR_README","Read Me:readmesp.htm." +"8007F0A5","-2146963291","2148004005","STR_README_FILE","readmesp.htm." +"8007F0A6","-2146963290","2148004006","STR_SLIPSTREAM_EVAL_DESTINATION","Integrated install failed. The destination directory contains an evaluation copy of Windows." +"8007F0A7","-2146963289","2148004007","STR_WINDOWS_TYPE3","Windows XP." +"8007F0A8","-2146963288","2148004008","STR_NOUNINSTALL","No Uninstall directory." +"8007F0A9","-2146963287","2148004009","STR_SRVPACK","Service Pack." +"8007F0AA","-2146963286","2148004010","STR_WINDOWS_TYPE0","Windows." +"8007F0AB","-2146963285","2148004011","STR_SPOOLER_ENABLE","For Setup to continue." +"8007F0AC","-2146963284","2148004012","STR_USAGE_UPDATE_NOSLPSTRM","AVAILABLE SWITCHES: [/help] [/quiet] [/passive] [/uninstall] [/norestart] [/forcerestart] [/l] [/n] [/o] [/f] [/integrate:] /help Displays this message SETUP MODES /quiet Quiet mode (no user interaction or display)." +"8007F0AD","-2146963283","2148004013","STR_FONT","Verdana Bold." +"8007F0AE","-2146963282","2148004014","STR_CHOOSE_UNINST_DIR","Select an existing folder or make a new folder in which to store uninstall information." +"8007F0AF","-2146963281","2148004015","STR_ARCHIVE_DRIVE_INVALID","You have selected a folder that is not on your local computer. The current state of the computer can be archived only on your local computer." +"8007F0B0","-2146963280","2148004016","STR_STARTING_SERVICES","Starting services." +"8007F0B1","-2146963279","2148004017","STR_STARTING_SERVICE","Starting service." +"8007F0B2","-2146963278","2148004018","STR_STOPPING_SERVICES","Stopping services." +"8007F0B3","-2146963277","2148004019","STR_STOPPING_SERVICE","Stopping services." +"8007F0B4","-2146963276","2148004020","STR_WINDOWS_TYPE4","Windows Server 2003." +"8007F0C0","-2146963264","2148004032","STR_BLOCKLIST_HF_MSG","Setup cannot install this hotfix because one or more of its files are out of date. Please download and install the latest version of fix ." +"8007F0C1","-2146963263","2148004033","STR_BLOCKLIST_SP_MSGA","This service pack contains files that are missing some of the fixes which were previously installed on this computer. To prevent possible problems." +"8007F0C2","-2146963262","2148004034","STR_BLOCKLIST_SP_MSGB","In order to have the fixes contained in both the service pack and the previously installed hotfixes." +"8007F0C3","-2146963261","2148004035","STR_BLOCKLIST_SP_MSGC","Do you want to continue installing this service pack?." +"8007F0C4","-2146963260","2148004036","STR_BLOCKLIST_SP_MSGD","The service pack install cannot continue until these hotfixes are applied to your system." +"8007F0C5","-2146963259","2148004037","STR_GENERALCAPTION","2%." +"8007F0C6","-2146963258","2148004038","STATUS_BUILD_VERSION_MISMATCH2","Setup has detected that the build version of the system installed does not match the update you are applying to it. You can only install this update only on Build %d ." +"8007F0C7","-2146963257","2148004039","STR_SLPSTRM_COPY","Integrating files." +"8007F0C8","-2146963256","2148004040","STR_SLPSTRM_WIZ4_STATIC2","Please wait while setup integrates files from Windows Service Pack into your Windows installation folder." +"8007F0C9","-2146963255","2148004041","STR_SLPSTRMUPDATING_YOUR_SYSTEM","Updating Your Windows Share." +"8007F0CA","-2146963254","2148004042","STR_RESTORE_POINT_DESC","Installed ." +"8007F0CB","-2146963253","2148004043","STATUS_VLK_BLOCKED","The Product Key used to install Windows is invalid. Please contact your system administrator or retailer immediately to obtain a valid Product Key. You may also contact Microsoft Corporation-Anti-Piracy Team by emailing [email protected]." +"8007F0CC","-2146963252","2148004044","STATUS_KERNEL_NONSTD","The core system file (kernel) used to start this computer is not a Microsoft Windows file. The Service Pack will not be installed. For more information." +"8007F0CD","-2146963251","2148004045","STR_VLK_CHECK","Checking product key." +"8007F0CE","-2146963250","2148004046","STR_SET_RESTOREPOINT","Creating restore point." +"8007F0CF","-2146963249","2148004047","STR_PERFORM_INVENTORY","Performing inventory." +"8007F0D0","-2146963248","2148004048","STR_BUILD_THIRDPARTYDRIVERS","Creating Third Party Driver List." +"8007F0D1","-2146963247","2148004049","STR_DISK_USAGEFORINSTALL","Estimating space for installation." +"8007F0D2","-2146963246","2148004050","STR_DISK_USAGEFORUNINSTALL","Estimating space for uninstallation." +"8007F0D3","-2146963245","2148004051","STR_PROCESSES_BEFOREARCHIVE","Running processes before install." +"8007F0D4","-2146963244","2148004052","STR_REGISTRY_BACKUP","Backing up registry." +"8007F0D5","-2146963243","2148004053","STR_PROCESSES_AFTERINSTALL","Running processes after install." +"8007F0D6","-2146963242","2148004054","STR_PERFORM_CLEANUP","Performing cleanup." +"8007F0D7","-2146963241","2148004055","STR_OPTIONAL_EXCLUSIONWARNING","Windows has detected that one or more protected files on your computer have been modified. The Service Pack contains updated versions of those files." +"8007F0D8","-2146963240","2148004056","STR_WIZ1_STATIC3_XP","Before you install this update." +"8007F0D9","-2146963239","2148004057","STR_ARCHIVE_FOLDER_INVALID","The folder name is longer than the limit of 226 bytes. Enter a shorter name." +"8007F0DA","-2146963238","2148004058","STR_FAILED_INF_INTEGRITY","Setup could not verify the integrity of the file Update.inf. Make sure the Cryptographic service is running on this computer." +"8007F0DB","-2146963237","2148004059","STR_BLOCKLIST_FIXNUMBER","Fix Number." +"8007F0DC","-2146963236","2148004060","STR_BLOCKLIST_FILENAME","File Name." +"8007F0DD","-2146963235","2148004061","STR_BLOCKLIST_VERSION","Version." +"8007F0DE","-2146963234","2148004062","STR_WIZ4_NOARCHIVE","Please wait while setup inspects your current configuration and updates your files." +"8007F0DF","-2146963233","2148004063","STATUS_SP_BUILD_TO_BUILD","This Service Pack cannot be installed on top of the build currently installed on your computer. Cancel this installation process." +"8007F0E0","-2146963232","2148004064","STR_UNABLE_TO_VERIFY","Setup could not verify the integrity of one or more installed files." +"8007F0E2","-2146963230","2148004066","STR_ERR_PRINT_EULA","Unable to print the END USER LICENSE AGREEMENT." +"8007F0E3","-2146963229","2148004067","STR_WINDOWS_TYPE","Windows." +"8007F0E4","-2146963228","2148004068","STATUS_WINDOWS_VERSION_NEWER","The version of Windows you have installed is newer than the update you are trying to install. There is no need to install this update." +"8007F0E5","-2146963227","2148004069","STATUS_PACKAGE_NOT_APPLICABLE","This package does not apply to the operating system you are running." +"8007F0E6","-2146963226","2148004070","STR_SAFEMODE_INSTALL","You are trying to install while the system is in safe mode. This is not recommended unless the system does not function in normal mode." +"8007F0E7","-2146963225","2148004071","STR_APPLYING_HOTPATCHES","Applying Hotpatches." +"8007F0E8","-2146963224","2148004072","STATUS_INVALID_BRANCHES_INF","The branches.inf file is invalid." +"8007F0E9","-2146963223","2148004073","STATUS_INVALID_UPDATEBR_INF","The updatebr.inf file is invalid." +"8007F0EA","-2146963222","2148004074","STR_PACKAGE_MIGRATE_FAILED","Failed to migrate dependent packages." +"8007F0EC","-2146963220","2148004076","STR_PERFORM_MIGRATION","Performing migration." +"8007F0ED","-2146963219","2148004077","STATUS_NO_BRANCH_AVAILABLE","Required installation branch was not found in INF file." +"8007F0EE","-2146963218","2148004078","STR_BLOCKLIST_PACKAGE","Package." +"8007F0EF","-2146963217","2148004079","STR_MIGRATE_BLOCKLIST_MSG","The installation cannot continue because the following packages might not be valid:." +"8007F0F0","-2146963216","2148004080","STR_BRANCH_CAPTION","Branch info." +"8007F0F1","-2146963215","2148004081","STATUS_INCOMPARABLE_BRANCHES","Files from the package are incompatible with files on your system." +"8007F0F2","-2146963214","2148004082","STR_MIGRATE_BLOCKLIST_REC","Reinstall the packages listed above." +"8007F0F3","-2146963213","2148004083","STR_UNKNOWN_PACKAGE","Unknown." +"8007F0F4","-2146963212","2148004084","STATUS_PREREQUISITE_FAILED","Setup cannot continue because one or more pre-requisites required to install failed. For More details check the Log File. Update.exe can throw this error when it starts to download if the computer is running under battery power (there may be a fix for this in the future)." +"8007F0F5","-2146963211","2148004085","STR_WINDOWS_TYPE5","Windows XP Version 2003." +"8007F0F6","-2146963210","2148004086","NULL","" +"8007F0F7","-2146963209","2148004087","STR_HFSLP_ERROR","An error occurred while attempting to integrate this software update package. Verify that the architecture." +"8007F0F8","-2146963208","2148004088","STR_HFSLP_EXPRESS","Express software update packages cannot be integrated. To download a version of the fix that can be integrated." +"8007F0F9","-2146963207","2148004089","STR_HFSLP_EXTRACTED","Extracted packages cannot be integrated. The /integrate switch must be used with the original software update package." +"8007F0FA","-2146963206","2148004090","STR_HFSLP_NOTFOUND","Setup was unable to locate the distribution folder that you wish to integrate with this software update package. The /integrate switch requires the full path to the distribution folder." +"8007F200","-2146962944","2148004352","STATUS_MORE_FILES_FOR_DOWNLOAD","More byte ranges required." +"8007F201","-2146962943","2148004353","STATUS_READY_TO_INSTALL","Required payload available." +"8007F202","-2146962942","2148004354","STATUS_PATCH_NOT_FOUND","The delta was not found in the PSF. Update cannot find information about how to upgrade this binary. SUS can terminate installation." +"8007F203","-2146962941","2148004355","STATUS_PATCH_FILE_CORRUPT","Update cannot find information about how to upgrade this binary." +"8007F204","-2146962940","2148004356","STATUS_INDEXFILE_CORRUPT","Index file does not have a valid signature. Index file has an invalid signature. The package is corrupt. SUS can terminate installation." +"8007F205","-2146962939","2148004357","STR_UPDATE_ALREADY_RUNNING","Setup has detected that another update is in progress. Please complete that installation or removal and try again." +"8007F206","-2146962938","2148004358","STATUS_RETRY_REFRESH_INVENTORY","The state of machine changed since last inventory analysis. Update.exe has to restart the process with /si." +"8007F207","-2146962937","2148004359","STATUS_RETRY_SELF_CONTAINED","Two consecutive attempts to download delta failed without any progress and there is no use in continuing as express package. Revert to self-contained package." +"8007F220","-2146962912","2148004384","STATUS_CONTINUE_INVENTORY","error codes should not be returned out of update.exe." +"8007F221","-2146962911","2148004385","ERROR_INDEXFILE_NOT_FOUND","error codes should not be returned out of update.exe." +"80080001","-2146959359","2148007937","","Attempt to create a class object failed." +"80080002","-2146959358","2148007938","","OLE service could not bind object." +"80080003","-2146959357","2148007939","","RPC communication failed with OLE service." +"80080004","-2146959356","2148007940","","Bad path to object." +"80080005","-2146959355","2148007941","CO_E_Server_Exec_Failure","Server execution failed." +"80080006","-2146959354","2148007942","","OLE service could not communicate with the object server." +"80080007","-2146959353","2148007943","","Moniker path could not be normalized." +"80080008","-2146959352","2148007944","CO_E_SERVER_STOPPING","Object server is stopping when OLE service contacts it." +"80080009","-2146959351","2148007945","","An invalid root block pointer was specified." +"80080010","-2146959344","2148007952","","An allocation chain contained an invalid link pointer." +"80080011","-2146959343","2148007953","","The requested allocation size was too large." +"80090001","-2146893823","2148073473","","Bad UID." +"80090002","-2146893822","2148073474","","Bad Hash." +"80090003","-2146893821","2148073475","","Bad Key." +"80090004","-2146893820","2148073476","","Bad Length." +"80090005","-2146893819","2148073477","","Bad Data." +"80090006","-2146893818","2148073478","NTE_Bad_Signature","Invalid Signature." +"80090007","-2146893817","2148073479","","Bad Version of provider." +"80090008","-2146893816","2148073480","","Invalid algorithm specified." +"80090009","-2146893815","2148073481","","Invalid flags specified." +"8009000A","-2146893814","2148073482","","Invalid type specified." +"8009000B","-2146893813","2148073483","NTE_Bad_Key_State","Key not valid for use in specified state." +"8009000C","-2146893812","2148073484","","Hash not valid for use in specified state." +"8009000D","-2146893811","2148073485","","Key does not exist." +"8009000E","-2146893810","2148073486","","Insufficient memory available for the operation." +"8009000F","-2146893809","2148073487","","Object already exists." +"80090010","-2146893808","2148073488","","Access denied." +"80090011","-2146893807","2148073489","","Object was not found." +"80090012","-2146893806","2148073490","","Data already encrypted." +"80090013","-2146893805","2148073491","","Invalid provider specified." +"80090014","-2146893804","2148073492","","Invalid provider type specified." +"80090015","-2146893803","2148073493","","Provider's public key is invalid." +"80090016","-2146893802","2148073494","","Keyset does not exist." +"80090017","-2146893801","2148073495","NTE_PROV_TYPE_NOT_DEF","Provider type not defined." +"80090018","-2146893800","2148073496","","Provider type as registered is invalid." +"80090019","-2146893799","2148073497","","The keyset is not defined." +"8009001A","-2146893798","2148073498","","Keyset as registered is invalid." +"8009001B","-2146893797","2148073499","","Provider type does not match registered value." +"8009001C","-2146893796","2148073500","","The digital signature file is corrupt." +"8009001D","-2146893795","2148073501","Error_Write_Fault","Provider DLL failed to initialize correctly." +"8009001E","-2146893794","2148073502","","Provider DLL could not be found." +"8009001F","-2146893793","2148073503","","The Keyset parameter is invalid." +"80090020","-2146893792","2148073504","","An internal error occurred." +"80090021","-2146893791","2148073505","","A base error occurred." +"80090305","-2146893051","2148074245","SEC_E_SECPKG_NOT_FOUND","The requested security package does not exist." +"80090331","-2146893007","2148074289","Sec_E_Algorithm_Mismatch","The client and the server cannot communicate." +"8009033F","-2146892993","2148074303","SEC_E_Shutdown_IN_Progress","" +"80091001","-2146889727","2148077569","","An error was encountered doing a cryptographic message operation." +"80091002","-2146889726","2148077570","","The cryptographic algorithm is unknown." +"80091003","-2146889725","2148077571","","The object identifier is badly formatted." +"80091004","-2146889724","2148077572","","The message type is invalid." +"80091005","-2146889723","2148077573","","The message is not encoded as expected." +"80091006","-2146889722","2148077574","","The message does not contain an expected authenticated attribute." +"80091007","-2146889721","2148077575","","The hash value is not correct." +"80091008","-2146889720","2148077576","","The index value is not valid." +"80091009","-2146889719","2148077577","","The message content has already been decrypted." +"8009100A","-2146889718","2148077578","","The message content has not been decrypted yet." +"8009100B","-2146889717","2148077579","","The enveloped-data message does not contain the specified recipient." +"8009100C","-2146889716","2148077580","","The control type is not valid." +"8009100D","-2146889715","2148077581","","The issuer and/or serial number are/is not valid." +"8009100E","-2146889714","2148077582","","The original signer is not found." +"8009100F","-2146889713","2148077583","","The message does not contain the requested attributes." +"80092001","-2146885631","2148081665","","The length specified for the output data was insufficient." +"80092002","-2146885630","2148081666","","An error was encountered while encoding or decoding." +"80092003","-2146885629","2148081667","CRYPT_E_File_Error","An error occurred while reading or writing to a file." +"80092004","-2146885628","2148081668","","The object or property wasn't found." +"80092005","-2146885627","2148081669","","The object or property already exists." +"80092006","-2146885626","2148081670","","No provider was specified for the store or object." +"80092007","-2146885625","2148081671","","The specified certificate is self signed." +"80092008","-2146885624","2148081672","","The previous certificate or CRL context was deleted." +"80092009","-2146885623","2148081673","","No match when trying to find the object." +"8009200A","-2146885622","2148081674","","The type of the cryptographic message being decoded is different than what was expected." +"8009200B","-2146885621","2148081675","","The certificate doesn't have a private key property." +"8009200C","-2146885620","2148081676","","No certificate was found having a private key property to use for decrypting." +"8009200D","-2146885619","2148081677","Crypt_E_Bad_Msg","Not a cryptographic message or the cryptographic message is not formatted correctly." +"8009200E","-2146885618","2148081678","","The signed message doesn't have a signer for the specified signer index." +"8009200F","-2146885617","2148081679","","Final closure is pending until additional frees or closes." +"80092010","-2146885616","2148081680","","The certificate or signature has been revoked." +"80092011","-2146885615","2148081681","","No .dll or exported function was found to verify revocation." +"80092012","-2146885614","2148081682","","The called function wasn't able to do a revocation check on the certificate or signature." +"80092013","-2146885613","2148081683","","Since the revocation server was offline." +"80092020","-2146885600","2148081696","","The string contains a non-numeric character." +"80092021","-2146885599","2148081697","","The string contains a non-printable character." +"80092022","-2146885598","2148081698","","The string contains a character not in the 7 bit ASCII character set." +"80092026","-2146885594","2148081702","Crypt_E_Security_Settings","The cryptographic operation failed due to a local security option setting." +"80093000","-2146881536","2148085760","","OSS Certificate encode/decode error code base." +"8009310B","-2146881269","2148086027","","ASN1 bad tag value met." +"80096001","-2146869247","2148098049","Trust_E_System_Error","A system-level error occurred while verifying trust." +"80096005","-2146869243","2148098053","Trust_E_Time_Stamp could not be verified","" +"80096010","-2146869232","2148098064","Trust_E_Bad_Digest","The digital signature of the object did not verify." +"80096019","-2146869223","2148098073","TRUST_E_BASIC_CONSTRAINTS","" +"800A0046","-2146828218","2148139078","CTL_PermissionDenied","olectl.h." +"800A01AD","-2146827859","2148139437","ActiveX component can't create object","" +"800A01AE","-2146827858","2148139438","IXP_NNTP_NO_SUCH_ARTICLE_FOUND","This can occur after a control selfupdate that has not fully completed and requires a reboot." +"800A0BB8","-2146825288","2148142008","","Provider failed to perform the requested operation." +"800A0BB9","-2146825287","2148142009","","Arguments are of the wrong type." +"800A0BBA","-2146825286","2148142010","","File could not be opened." +"800A0BBB","-2146825285","2148142011","","File could not be read." +"800A0BBC","-2146825284","2148142012","","Write to file failed." +"800A0BCD","-2146825267","2148142029","","Either BOF or EOF is True." +"800A0C93","-2146825069","2148142227","","Operation is not allowed in this context." +"800A0C94","-2146825068","2148142228","","Supplied provider is different from the one already in use." +"800A0CAE","-2146825042","2148142254","","Connection object cannot be explicitly closed while in a transaction." +"800A0CB3","-2146825037","2148142259","","Object or provider is not capable of performing requested operation." +"800A0CC1","-2146825023","2148142273","","Item cannot be found in the collection corresponding to the requested name or ordinal." +"800A0D27","-2146824921","2148142375","","Object is already in collection. Cannot append." +"800A0D5C","-2146824868","2148142428","","Object is no longer valid." +"800A0D5D","-2146824867","2148142429","","Application uses a value of the wrong type for the current operation." +"800A0E78","-2146824584","2148142712","","Operation is not allowed when the object is closed." +"800A0E79","-2146824583","2148142713","","Operation is not allowed when the object is open." +"800A0E7A","-2146824582","2148142714","","Provider cannot be found. It may not be properly installed." +"800A0E7B","-2146824581","2148142715","","Cannot change the ActiveConnection property of a Recordset object which has a Command object as its source." +"800A0E7C","-2146824580","2148142716","","Parameter object is improperly defined. Inconsistent or incomplete information was provided." +"800A0E7D","-2146824579","2148142717","","The connection cannot be used to perform this operation. It is either closed or invalid in this context." +"800A0E7E","-2146824578","2148142718","","Operation cannot be performed while processing event." +"800A0E7F","-2146824577","2148142719","","Operation cannot be performed while executing asynchronously." +"800A0E80","-2146824576","2148142720","","Operation has been cancelled by the user." +"800A0E81","-2146824575","2148142721","","Operation cannot be performed while connecting asynchronously." +"800A0E82","-2146824574","2148142722","","Coordinating transaction is invalid or has not started." +"800A0E83","-2146824573","2148142723","","Operation cannot be performed while not executing." +"800A0E84","-2146824572","2148142724","","Safety settings on this computer prohibit accessing a data source on another domain." +"800A0E85","-2146824571","2148142725","","For internal use only. Don't use." +"800A0E86","-2146824570","2148142726","","For internal use only. Don't use." +"800A0E87","-2146824569","2148142727","","Data value conflicts with the integrity constraints of the field." +"800A0E88","-2146824568","2148142728","","Insufficient permission prevents writing to the field." +"800A0E89","-2146824567","2148142729","","Data value is too large to be represented by the field data type." +"800A0E8A","-2146824566","2148142730","","Data value conflicts with the data type or constraints of the field." +"800A0E8B","-2146824565","2148142731","","Conversion failed because the data value was signed and the field data type used by the provider was unsigned." +"800A0E8C","-2146824564","2148142732","","Data value cannot be converted for reasons other than sign mismatch or data overflow. For example." +"800A0E8D","-2146824563","2148142733","","Data value cannot be set or retrieved because the field data type was unknown." +"800A0E8E","-2146824562","2148142734","","Record does not contain this field." +"800A0E8F","-2146824561","2148142735","","Either the source URL or the parent of the destination URL does not exist." +"800A0E90","-2146824560","2148142736","","Permissions are insufficient to access tree or subtree." +"800A0E91","-2146824559","2148142737","","URL contains invalid characters. Make sure the URL is typed correctly." +"800A0E92","-2146824558","2148142738","","Object represented by the specified URL is locked by one or more other processes. Wait until the process has finished and attempt the operation again." +"800A0E93","-2146824557","2148142739","","Copy operation cannot be performed. Object named by destination URL already exists. Specify adCopyOverwrite to replace the object." +"800A0E94","-2146824556","2148142740","","Server cannot complete the operation." +"800A0E95","-2146824555","2148142741","","Provider cannot locate the storage device indicated by the URL. Make sure the URL is typed correctly." +"800A0E96","-2146824554","2148142742","","Operation cannot be performed. Provider cannot obtain enough storage space." +"800A0E97","-2146824553","2148142743","","Source or destination URL is outside the scope of the current record." +"800A0E98","-2146824552","2148142744","","Operation failed to complete and the status is unavailable. The field may be unavailable or the operation was not attempted." +"800A0E99","-2146824551","2148142745","","Record named by this URL does not exist." +"800A0E9A","-2146824550","2148142746","","URL of the object to be deleted is outside the scope of the current record." +"800A0EA3","-2146824541","2148142755","","Operation requires a valid ParentCatalog." +"800A0EA4","-2146824540","2148142756","","Connection was denied. New connection you requested has different characteristics than the one already in use." +"800A0EA5","-2146824539","2148142757","","Fields update failed. For further information." +"800A0EA6","-2146824538","2148142758","","Provider does not support sharing restrictions." +"800A0EA7","-2146824537","2148142759","","Provider does not support the requested kind of sharing restriction." +"800A138F","-2146823281","2148144015","ERROR_RESOURCE_NOT_FOUND","Javascript runtime error." +"800B0001","-2146762751","2148204545","Trust_E_Provider_Unknown","" +"800B0002","-2146762750","2148204546","Trust_E_ActionUnknown","The trust verification action specified is not supported by the specified trust provider." +"800B0003","-2146762749","2148204547","TRUST_E_SUBJECT_FORM_UNKNOWN","The form specified by the subject is not one supported or known by the specified trust provider." +"800B0004","-2146762748","2148204548","TRUST_E_SUBJECT_NOT_TRUSTED","The subject is not trusted for the specified action." +"800B0100","-2146762496","2148204800","TRUST_E_NOSIGNATURE","No signature was present in the subject." +"800B0101","-2146762495","2148204801","Cert_E_Expired","Verifying against the current system clock or the timestamp in the signed file." +"800B0109","-2146762487","2148204809","CERT_E_UNTRUSTEDROOT","A certificate chain processed." +"800B010D","-2146762483","2148204813","Cert_E_Untrustedtestroot","The certification path terminates with the test root which is not trusted with the current policy settings." +"800B0110","-2146762480","2148204816","CERT_E_WRONG_USAGE","" +"800C0002","-2146697214","2148270082","Inet_E_Invalid_URL","" +"800F0101","-2146500351","2148466945","SPAPI_E_Section_Not_Found","The required section was not found in the INF." +"800F020B","-2146500085","2148467211","SPAPI_E_No_Such_Devinst","device instance does not exist." +"800F0217","-2146500073","2148467223","SPAPI_E_Bad_Service_Installsect","A service installation section in this INF is invalid." +"800F022B","-2146500053","2148467243","SPAPI_E_DI_Dont_Install","The class installer has denied the request to install or upgrade this device." +"800F022F","-2146500049","2148467247","SPAPI_E_No_Catalog_for_OEM_INF","The third-party INF does not contain digital signature information." +"800F0244","-2146500028","2148467268","SPAPI_E_Signature_Osattribure_Mismatch","The software was tested for compliance on a different version of Windows and may not be compatible with this version." +"800FF8F0","-2146436880","2148530416","NULL","" +"800FFBBE","-2146436162","2148531134","NULL","" +"800FFC02","-2146436094","2148531202","NULL","" +"800FFC0D","-2146436083","2148531213","NULL","" +"80130001","-2146238463","2148728833","STATUS_CLUSTER_NODE_ALREADY_UP","The cluster node is already up." +"80130002","-2146238462","2148728834","STATUS_CLUSTER_NODE_ALREADY_DOWN","The cluster node is already down." +"80130003","-2146238461","2148728835","STATUS_CLUSTER_NETWORK_ALREADY_ONLINE","The cluster network is already online." +"80130004","-2146238460","2148728836","STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE","The cluster network is already offline." +"80130005","-2146238459","2148728837","STATUS_CLUSTER_NODE_ALREADY_MEMBER","The cluster node is already a member of the cluster." +"80131700","-2146232576","2148734720","","Dependency on `WindowsFeatues`,specifically `netfx3`." +"80190001","-2145845247","2149122049","","Delivery Optimization: Unable to make a network connection." +"80190009","-2145845239","2149122057","STATUS_COULD_NOT_RESIZE_LOG","The log could not be set to the requested size." +"80190029","-2145845207","2149122089","STATUS_NO_TXF_METADATA","There is no transaction metadata on the file." +"80190031","-2145845199","2149122097","STATUS_CANT_RECOVER_WITH_HANDLE_OPEN","The file cannot be recovered because there is a handle still open on it." +"80190041","-2145845183","2149122113","STATUS_TXF_METADATA_ALREADY_PRESENT","Transaction metadata is already present on this file and cannot be superseded." +"80190042","-2145845182","2149122114","STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET","A transaction scope could not be entered because the scope handler has not been initialized." +"80190064","-2145845148","2149122148","BG_E_HTTP_ERROR_100","The request can be continued." +"80190065","-2145845147","2149122149","BG_E_HTTP_ERROR_101","The server switched protocols in an upgrade header." +"801900C8","-2145845048","2149122248","BG_E_HTTP_ERROR_200","The server-response was not valid. The server was not following the defined protocol. Resume the job." +"801900C9","-2145845047","2149122249","BG_E_HTTP_ERROR_201","The request was fulfilled and resulted in the creation of a new resource." +"801900CA","-2145845046","2149122250","BG_E_HTTP_ERROR_202","The request was accepted for processing." +"801900CB","-2145845045","2149122251","BG_E_HTTP_ERROR_203","The returned metadata in the entity-header is not the definitive set available from the server of origin." +"801900CC","-2145845044","2149122252","BG_E_HTTP_ERROR_204","The server has fulfilled the request." +"801900CD","-2145845043","2149122253","BG_E_HTTP_ERROR_205","The server-response was not valid. The server was not following the defined protocol. Resume the job." +"801900CE","-2145845042","2149122254","BG_E_HTTP_ERROR_206","The server fulfilled the partial GET request for the resource." +"8019012C","-2145844948","2149122348","BG_E_HTTP_ERROR_300","The server could not return the requested data." +"8019012D","-2145844947","2149122349","BG_E_HTTP_ERROR_301","The requested resource was assigned to a new permanent Uniform Resource Identifier (URI)." +"8019012E","-2145844946","2149122350","BG_E_HTTP_ERROR_302","The requested resource was assigned a different Uniform Resource Identifier (URI). This change is temporary." +"8019012F","-2145844945","2149122351","BG_E_HTTP_ERROR_303","The response to the request is under a different Uniform Resource Identifier (URI) and must be retrieved using a GET method on that resource." +"80190130","-2145844944","2149122352","BG_E_HTTP_ERROR_304","The server-response was not valid. The server was not following the defined protocol. Resume the job." +"80190131","-2145844943","2149122353","BG_E_HTTP_ERROR_305","The requested resource must be accessed through the proxy given by the location field." +"80190133","-2145844941","2149122355","BG_E_HTTP_ERROR_307","The URL has been temporarily relocated. Try again later." +"80190190","-2145844848","2149122448","BG_E_HTTP_ERROR_400","The server cannot process the request because the syntax is not valid." +"80190191","-2145844847","2149122449","BG_E_HTTP_ERROR_401","The requested resource requires user authentication." +"80190192","-2145844846","2149122450","BG_E_HTTP_ERROR_402","The server-response was not valid. The server was not following the defined protocol. Resume the job." +"80190193","-2145844845","2149122451","BG_E_HTTP_ERROR_403","The client does not have sufficient access rights to the requested server object." +"80190194","-2145844844","2149122452","BG_E_HTTP_ERROR_404","The requested URL does not exist on the server." +"80190195","-2145844843","2149122453","BG_E_HTTP_ERROR_405","The method used is not allowed." +"80190196","-2145844842","2149122454","BG_E_HTTP_ERROR_406","No responses acceptable to the client were found." +"80190197","-2145844841","2149122455","BG_E_HTTP_ERROR_407","Proxy authentication is required." +"80190198","-2145844840","2149122456","BG_E_HTTP_ERROR_408","The server timed out waiting for the request." +"80190199","-2145844839","2149122457","BG_E_HTTP_ERROR_409","The request could not be completed because of a conflict with the current state of the resource. The user should resubmit the request with more information." +"8019019A","-2145844838","2149122458","BG_E_HTTP_ERROR_410","The requested resource is not currently available at the server." +"8019019B","-2145844837","2149122459","BG_E_HTTP_ERROR_411","The server cannot accept the request without a defined content length." +"8019019C","-2145844836","2149122460","BG_E_HTTP_ERROR_412","The precondition given in one or more of the request header fields evaluated to false when it was tested on the server." +"8019019D","-2145844835","2149122461","BG_E_HTTP_ERROR_413","The server cannot process the request because the request entity is too large." +"8019019E","-2145844834","2149122462","BG_E_HTTP_ERROR_414","The server cannot process the request because the request Uniform Resource Identifier (URI) is longer than the server can interpret." +"8019019F","-2145844833","2149122463","BG_E_HTTP_ERROR_415","The server-response was not valid. The server was not following the defined protocol. Resume the job." +"801901A1","-2145844831","2149122465","BG_E_HTTP_ERROR_417","The server could not meet the expectation given in an Expect request-header field." +"801901C1","-2145844799","2149122497","BG_E_HTTP_ERROR_449","The server-response was not valid. The server was not following the defined protocol. Resume the job." +"801901E3","-2145844765","2149122531","","Delivery Optimization: Generic network issue." +"801901F4","-2145844748","2149122548","BG_E_HTTP_ERROR_500","The server encountered an unexpected condition that prevented it from fulfilling the request." +"801901F5","-2145844747","2149122549","BG_E_HTTP_ERROR_501","The server does not support the functionality required to fulfill the request." +"801901F6","-2145844746","2149122550","BG_E_HTTP_ERROR_502","The server." +"801901F7","-2145844745","2149122551","BG_E_HTTP_ERROR_503","The service is temporarily overloaded." +"801901F8","-2145844744","2149122552","BG_E_HTTP_ERROR_504","The request was timed out waiting for a gateway. Can typically be a DNS issue." +"801901F9","-2145844743","2149122553","BG_E_HTTP_ERROR_505","The server does not support the HTTP protocol version that was used in the request message." +"801901FA","-2145844742","2149122554","NULL","" +"80194000","-2145828864","2149138432","BITS_MC_JOB_CANCELLED","The administrator canceled job on behalf of %3. The job ID was %1." +"80194001","-2145828863","2149138433","BITS_MC_FILE_DELETION_FAILED","While canceling job." +"80194002","-2145828862","2149138434","BITS_MC_FILE_DELETION_FAILED_MORE","Due to space limitations." +"80194003","-2145828861","2149138435","BITS_MC_JOB_PROPERTY_CHANGE","The administrator modified the property of job. The job ID was %1." +"80194004","-2145828860","2149138436","BITS_MC_JOB_TAKE_OWNERSHIP","The administrator took ownership of job. The job ID was %1." +"80194005","-2145828859","2149138437","BITS_MC_JOB_SCAVENGED","Job was canceled after being inactive for more than xx days. The job ID was %1." +"80194006","-2145828858","2149138438","BITS_MC_JOB_NOTIFICATION_FAILURE","Job failed to notify its associated application. BITS will retry in xx minutes. The job ID was %1." +"80194007","-2145828857","2149138439","BITS_MC_STATE_FILE_CORRUPT","The BITS job list is not in a recognized format. It may have been created by a different version of BITS. The job list has been cleared." +"80194008","-2145828856","2149138440","BITS_MC_FAILED_TO_START","The BITS server failed to start. Try restarting the service at a later time." +"801B00EB","-2145713941","2149253355","STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED","(Display Driver Stopped Responding and recovered) The %hs display driver has stopped working normally. The recovery had been performed." +"801C0001","-2145648639","2149318657","STATUS_FLT_BUFFER_TOO_SMALL","(Buffer too small) The buffer is too small to contain the entry. No information has been written to the buffer." +"80200001","-2145386495","2149580801","BG_E_Not_Found","The requested job was not found." +"80200002","-2145386494","2149580802","BG_E_INVALID_STATE","The requested action is not allowed in the current job state. The job might have been canceled or completed transferring. It is in a read-only state now." +"80200003","-2145386493","2149580803","BG_E_EMPTY","There are no files attached to this job. Attach files to the job." +"80200004","-2145386492","2149580804","BG_E_FILE_NOT_AVAILABLE","No file is available because no URL generated an error." +"80200005","-2145386491","2149580805","BG_E_PROTOCOL_NOT_AVAILABLE","No protocol is available because no URL generated an error." +"80200006","-2145386490","2149580806","BG_S_ERROR_CONTEXT_NONE","No errors have occurred." +"80200007","-2145386489","2149580807","BG_E_ERROR_CONTEXT_UNKNOWN","The error occurred in an unknown location." +"80200008","-2145386488","2149580808","BG_E_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER","The error occurred in the Background Intelligent Transfer Service (BITS) queue manager." +"80200009","-2145386487","2149580809","BG_E_ERROR_CONTEXT_LOCAL_FILE","The error occurred while the local file was being processed. Verify that the file is not in use." +"8020000A","-2145386486","2149580810","BG_E_ERROR_CONTEXT_REMOTE_FILE","The error occurred while the local file was being processed. Verify that the file is not in use." +"8020000B","-2145386485","2149580811","BG_E_ERROR_CONTEXT_GENERAL_TRANSPORT","The error occurred in the transport layer. The client could not connect to the server." +"8020000C","-2145386484","2149580812","BG_E_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION","The error occurred while the notification callback was being processed. Background Intelligent Transfer Service (BITS) will try again later." +"8020000D","-2145386483","2149580813","BG_E_Destination_Locked","The destination file system volume is not available. Verify that another program." +"8020000E","-2145386482","2149580814","BG_E_VOLUME_CHANGED","The destination volume has changed. If the disk is removable." +"8020000F","-2145386481","2149580815","BG_E_ERROR_INFORMATION_UNAVAILABLE","No errors have occurred." +"80200010","-2145386480","2149580816","BG_E_NETWORK_DISCONNECTED","There are currently no active network connections. Background Intelligent Transfer Service (BITS) will try again when an adapter is connected." +"80200011","-2145386479","2149580817","BG_E_MISSING_FILE_SIZE","When BITS sends a HEAD request and server/proxy doesn't return Content-Length header in the response." +"80200012","-2145386478","2149580818","BG_E_INSUFFICIENT_HTTP_SUPPORT","The server does not support HTTP 1.1." +"80200013","-2145386477","2149580819","BG_E_INSUFFICIENT_RANGE_SUPPORT","BITS uses range header in HTTP requests to request parts of a file. If the server or proxy doesn't understand Range requests and returns full file instead of the requested range." +"80200014","-2145386476","2149580820","BG_E_REMOTE_NOT_SUPPORTED","Background Intelligent Transfer Service (BITS) cannot be used remotely." +"80200015","-2145386475","2149580821","BG_E_NEW_OWNER_DIFF_MAPPING","The drive mapping for the job is different for the current owner than for the previous owner. Use a UNC path instead." +"80200016","-2145386474","2149580822","BG_E_NEW_OWNER_NO_FILE_ACCESS","The new owner has insufficient access to the local files for the job. The new owner might not have permissions to access the job files. Verify that the new owner has sufficient permissions." +"80200017","-2145386473","2149580823","BG_S_PARTIAL_COMPLETE","Some of the transferred files were deleted because they were incomplete." +"80200018","-2145386472","2149580824","BG_E_PROXY_LIST_TOO_LARGE","The HTTP proxy list cannot be longer than 32." +"80200019","-2145386471","2149580825","BG_E_PROXY_BYPASS_LIST_TOO_LARGE","The HTTP proxy bypass list cannot be longer than 32." +"8020001A","-2145386470","2149580826","BG_S_UNABLE_TO_DELETE_FILES","Some of the temporary files could not be deleted. Check the system event log for the complete list of files that could not be deleted." +"8020001B","-2145386469","2149580827","BG_E_INVALID_SERVER_RESPONSE","The server-response was not valid. The server was not following the defined protocol. Resume the job." +"8020001C","-2145386468","2149580828","BG_E_TOO_MANY_FILES","No more files can be added to this job." +"8020001D","-2145386467","2149580829","BG_E_LOCAL_FILE_CHANGED","The local file was changed during the transfer. Recreate the job." +"8020001E","-2145386466","2149580830","BG_E_ERROR_CONTEXT_REMOTE_APPLICATION","The program on the remote server reported the error." +"8020001F","-2145386465","2149580831","BG_E_SESSION_NOT_FOUND","The specified session could not be found on the server. Background Intelligent Transfer Service (BITS) will try again." +"80200020","-2145386464","2149580832","BG_E_TOO_LARGE","The job is too large for the server to accept. This job might exceed a job size limit set by the server administrator. Reduce the size of the job." +"80200021","-2145386463","2149580833","BG_E_STRING_TOO_LONG","The specified string is too long." +"80200022","-2145386462","2149580834","BG_E_CLIENT_SERVER_PROTOCOL_MISMATCH","The client and server versions of Background Intelligent Transfer Service (BITS) are incompatible." +"80200023","-2145386461","2149580835","BG_E_SERVER_EXECUTE_ENABLE","Scripting OR execute permissions are enabled on the IIS virtual directory associated with the job. To upload files to the virtual directory." +"80200024","-2145386460","2149580836","BG_E_No_Progress BITS","The job is not making headway. The server may be misconfigured. Background Intelligent Transfer Service (BITS) will try again later." +"80200025","-2145386459","2149580837","BG_E_USERNAME_TOO_LARGE","The user name cannot be longer than 300 characters. Try again with a shorter name." +"80200026","-2145386458","2149580838","BG_E_PASSWORD_TOO_LARGE","The password cannot be longer than 300 characters. Try again with a shorter password." +"80200027","-2145386457","2149580839","BG_E_INVALID_AUTH_TARGET","The authentication target specified in the credentials is not defined." +"80200028","-2145386456","2149580840","BG_E_INVALID_AUTH_SCHEME","The authentication scheme specified in the credentials is not defined." +"80200029","-2145386455","2149580841","BG_E_FILE_NOT_FOUND","The specified file name does not match any of the files in the job." +"8020002A","-2145386454","2149580842","BG_S_PROXY_CHANGED","The proxy server was changed." +"8020002B","-2145386453","2149580843","BG_E_INVALID_RANGE","The requested byte range extends beyond the end of the web page. Use byte ranges that are wholly within the page." +"8020002C","-2145386452","2149580844","BG_E_OVERLAPPING_RANGES","The list of byte ranges contains some overlapping ranges." +"8020002D","-2145386451","2149580845","BG_E_CONNECT_FAILURE","A connection could not be established." +"8020002E","-2145386450","2149580846","BG_E_CONNECTION_CLOSED","The connection was prematurely closed." +"8020002F","-2145386449","2149580847","BG_E_KEEP_ALIVE_FAILURE","The connection for a request that specifies the Keep-alive header was closed unexpectedly." +"80200030","-2145386448","2149580848","BG_E_MESSAGE_LENGTH_LIMIT_EXCEEDED","A message was received that exceeded the specified limit when sending a request or receiving a response from the server." +"80200031","-2145386447","2149580849","BG_E_NAME_RESOLUTION_FAILURE","The host name could not be found." +"80200032","-2145386446","2149580850","BG_E_PENDING","An internal asynchronous request is pending." +"80200033","-2145386445","2149580851","BG_E_PIPELINE_FAILURE","" +"80200034","-2145386444","2149580852","BG_E_PROTOCOL_ERROR","The response received from the server was complete but indicated a protocol-level error." +"80200035","-2145386443","2149580853","BG_E_PROXY_NAME_RESOLUTION_FAILURE","The proxy name could not be found." +"80200036","-2145386442","2149580854","BG_E_RECEIVE_FAILURE","A complete response was not received from the server." +"80200037","-2145386441","2149580855","BG_E_REQUEST_CANCELED","The request was canceled." +"80200038","-2145386440","2149580856","BG_E_SECURE_CHANNEL_FAILURE","An error occurred while establishing a connection using SSL." +"80200039","-2145386439","2149580857","BG_E_SEND_FAILURE","complete request could not be sent to the remote server." +"8020003A","-2145386438","2149580858","BG_E_SERVER_PROTOCOL_VIOLATION","The server response was not valid." +"8020003B","-2145386437","2149580859","BG_E_TIMEOUT","The operation exceeded the time limit." +"8020003C","-2145386436","2149580860","BG_E_TRUST_FAILURE","A server certificate could not be validated." +"8020003D","-2145386435","2149580861","BG_E_UNKNOWN_ERROR","A unknown error occured." +"8020003E","-2145386434","2149580862","BG_E_BLOCKED_BY_POLICY","Group Policy settings prevent background jobs from running at this time." +"8020003F","-2145386433","2149580863","BG_E_INVALID_PROXY_INFO","The supplied proxy server or bypass list is invalid." +"80200040","-2145386432","2149580864","BG_E_INVALID_CREDENTIALS","The format of the supplied security credentials is invalid." +"80210001","-2145320959","2149646337","STATUS_FVE_PARTIAL_METADATA","Volume metadata read or write is incomplete." +"80210002","-2145320958","2149646338","STATUS_FVE_TRANSIENT_STATE","BitLocker encryption keys were ignored because the volume was in a transient state." +"80240001","-2145124351","2149842945","SUS_E_NO_SERVICE","for whatever reason." +"80240002","-2145124350","2149842946","SUS_E_MAX_CAPACITY_REACHED","maximum capacity of the service is reached." +"80240003","-2145124349","2149842947","SUS_E_UNKNOWN_ID","id not found." +"80240004","-2145124348","2149842948","SUS_E_NOT_INITIALIZED","object is not correctly initialized." +"80240005","-2145124347","2149842949","SUS_E_RANGEOVERLAP","Update handler attempted to request a byte range that overlapped a previously requested byte range." +"80240006","-2145124346","2149842950","SUS_E_TOOMANYRANGES","Update handler attempted to request too many ranges." +"80240007","-2145124345","2149842951","SUS_S_ALREADY_UNINSTALLED - SUS_E_INVALIDINDEX","The update to be uninstalled is already not installed - An attempt was made to use an invalid index." +"80240008","-2145124344","2149842952","SUS_E_ITEMNOTFOUND","A query was made for an item with a particular key and that key was not found." +"80240009","-2145124343","2149842953","SUS_E_OPERATIONINPROGRESS","The caller attempted to perform an operation on an interface while another operation was in progress." +"8024000A","-2145124342","2149842954","SUS_E_COULDNOTCANCEL","The caller attempted to cancel an operation that is not cancelable." +"8024000B","-2145124341","2149842955","SUS_E_CALL_CANCELLED","call has been cancelled." +"8024000C","-2145124340","2149842956","SUS_E_NOOP","no operation is needed." +"8024000D","-2145124339","2149842957","SUS_E_XML_MISSINGDATA","the SUS agent is attempting to parse an update-XML blob and has not found expected data." +"8024000E","-2145124338","2149842958","SUS_E_XML_INVALID","the SUS agent is attempting to parse an update-XML blob and has encountered data that is invalid." +"8024000F","-2145124337","2149842959","SUS_E_CYCLE_DETECTED","cycle detected in meta data." +"80240010","-2145124336","2149842960","SUS_E_TOO_DEEP_RELATION","too deep relation ship found." +"80240011","-2145124335","2149842961","SUS_E_REG_VALUE_INVALI","registry value was read but is invalid." +"80240012","-2145124334","2149842962","SUS_E_REG_VALUE_INVALID","registry value was read but is invalid." +"80240013","-2145124333","2149842963","SUS_E_EE_UNKNOWN_EXPRESSION","an expression handler was passed an expression that it doesn't know about." +"80240014","-2145124332","2149842964","SUS_E_EE_INVALID_EXPRESSION","an expression handler was passed an expression that is bad." +"80240015","-2145124331","2149842965","SUS_E_EE_MISSING_METADATA","an expression handler was passed an expression that requires an applicability metadata blob." +"80240016","-2145124330","2149842966","SUS_E_INSTALL_NOT_ALLOWE","try to install while another install is going on or reboot is pending." +"80240017","-2145124329","2149842967","SUS_E_NOT_APPLICABLE","install is not needed because no updates are applicable." +"80240018","-2145124328","2149842968","WU_E_NO_USERTOKEN","operation failed due to missing user token." +"80240019","-2145124327","2149842969","WU_E_EXCLUSIVE_INSTALL_CONFliCT","try to install an exclusive update with other updates at the same time." +"8024001A","-2145124326","2149842970","WU_E_POLICY_NOT_SET","policy value is not set." +"8024001B","-2145124325","2149842971","WU_E_SELFUPDATE_IN_PROGRESS","self-update in progress." +"8024001C","-2145124324","2149842972","SUS_E_WRONGMSIVERSION","" +"8024001D","-2145124323","2149842973","WU_E_INVALID_UPDATE","an update had bogus metadata." +"8024001E","-2145124322","2149842974","WU_E_SERVICE_STOP","call was aborted due to service stop or system shut down." +"8024001F","-2145124321","2149842975","SUS_E_NO_CONNECTION","no network connection is available to finish the operation." +"80240020","-2145124320","2149842976","SUS_E_NO_INTERACTIVE_USER","interactive user is missing to finish the operation." +"80240021","-2145124319","2149842977","WU_E_TIME_OUT","operation timed out." +"80240022","-2145124318","2149842978","WU_E_ALL_UPDATES_FAILED","operation failed on all specified updates." +"80240023","-2145124317","2149842979","WU_E_EULAS_DECLINED","EULA-for all the updates are declined." +"80240024","-2145124316","2149842980","WU_E_NO_UPDATE","there are no update." +"80240025","-2145124315","2149842981","WU_E_USER_ACCESS_DISABLED","User access to Windows Update is prevented by Group Policy setting." +"80240026","-2145124314","2149842982","WU_E_INVALID_UPDATE_TYPE","invalid type of update." +"80240027","-2145124313","2149842983","WU_E_URL_TOO_LONG","URL is too long." +"80240028","-2145124312","2149842984","WU_E_UNINSTALL_NOT_ALLOWED","uninstall is not allowed due to non managed environment." +"80240029","-2145124311","2149842985","WU_E_INVALID_PRODUCT_LICENSE","A product with an invalid license was found on the system." +"8024002A","-2145124310","2149842986","WU_E_MISSING_HANDLER","A component required for detecting applicable updates was missing." +"8024002B","-2145124309","2149842987","WU_E_LEGACYSERVER","The Sus server we are talking to is a Legacy Sus Server (Sus Server 1.0)." +"8024002C","-2145124308","2149842988","WU_E_BIN_SOURCE_ABSENT","A binary-delta patch failed because the source was required." +"8024002D","-2145124307","2149842989","WU_E_FF_SOURCE_ABSENT","a full-file patch failed because the source was required." +"8024002E","-2145124306","2149842990","SUS_E_WU_DISABLED","non managed server access is disallowed." +"8024002F","-2145124305","2149842991","WU_E_CALL_CANCELLED_BY_POLICY","call cancelled because of DisableWindowsUpdateAccess policy takes effect." +"80240030","-2145124304","2149842992","WU_E_INVALID_PROXY_SERVER","invalid format for proxy list." +"80240031","-2145124303","2149842993","WU_E_INVALID_FILE","file is not of the right format." +"80240032","-2145124302","2149842994","WU_E_INVALID_CRITERIA","invalid criteria string." +"80240033","-2145124301","2149842995","WU_E_EULA_UNAVAILABLE","EULA download failure." +"80240034","-2145124300","2149842996","WU_E_DOWNLOAD_FAILED","Failed to download." +"80240035","-2145124299","2149842997","WU_E_UPDATE_NOT_PROCESSED","INTERNAL ONLY: The update was not processed." +"80240036","-2145124298","2149842998","WU_E_INVALID_OPERATION","The operation is invalid for the object-current state." +"80240037","-2145124297","2149842999","WU_E_NOT_SUPPORTED","The invoked functionality is not supported (80240037." +"80240FFF","-2145120257","2149847039","WU_E_UNEXPECTED","generic unexpected failure." +"80241001","-2145120255","2149847041","WU_E_MSI_WRONG_VERSION","The MSI version on the machine is less than what we expect (SUS 2.0 requires MSI 3.0)." +"80241002","-2145120254","2149847042","WU_E_MSI_NOT_CONFIGURED","MSI is not configured." +"80241003","-2145120253","2149847043","WU_E_MSP_DISABLED","MSI patching is disabled by policy." +"80241FFF","-2145116161","2149851135","U_E_MSP_UNEXPECTED","generic unexpected MSP failure." +"80242000","-2145116160","2149851136","SUS_E_UH_REMOTEUNAVAILABLE","The caller requested a remote object." +"80242001","-2145116159","2149851137","WU_E_UH_LOCALONLY","The caller requested a remote object." +"80242002","-2145116158","2149851138","WU_E_UH_UNKNOWNHANDLER","The caller requested an unknown handler object." +"80242003","-2145116157","2149851139","WU_E_UH_REMOTEALREADYACTIVE","The caller requested an unknown handler object." +"80242004","-2145116156","2149851140","SUS_E_UH_DOESNOTSUPPORTACTION","The update does not support the current action (install or uninstall)." +"80242005","-2145116155","2149851141","SUS_E_UH_WRONGHANDLER","The caller tried to use the wrong handler for an action." +"80242006","-2145116154","2149851142","SUS_E_UH_INVALIDMETADATA","The caller passed an update with invalid metadata to the handler." +"80242007","-2145116153","2149851143","SUS_E_UH_INSTALLERHUNG","The installer took too long and was terminated." +"80242008","-2145116152","2149851144","SUS_E_UH_OPERATIONCANCELLED","The install was canceled via a handler method (as opposed to." +"80242009","-2145116151","2149851145","SUS_E_UH_BADHANDLERXML","The XML contained in the handler specific data for the update is invalid." +"8024200A","-2145116150","2149851146","WU_E_UH_CANREQUIREINPUT","The update may require user input so cannot be installed in this context." +"8024200B","-2145116149","2149851147","SUS_E_UH_INSTALLERFAILURE","At least one update passed to the handler failed to install." +"8024200C","-2145116148","2149851148","WU_E_UH_FALLBACKTOSELFCONTAINED","Handler should fall back to self-contained from delta." +"8024200D","-2145116147","2149851149","SUS_E_UH_NEEDANOTHERDOWNLOAD","The installer requires more data to be downloaded." +"8024200E","-2145116146","2149851150","WU_E_UH_NOTIFYFAILURE","The attempted operation was not allowed." +"80242FFF","-2145112065","2149855231","WU_E_UH_UNEXPECTED","generic unexpected update handler failure." +"80243FFF","-2145107969","2149859327","WU_E_AUCLIENT_UNEXPECTED","generic unexpected UI [AU Client] failures." +"80244000","-2145107968","2149859328","WU_E_PT_SOAPCLIENT_BASE","Used as a base to map SOAPCLIENT_ERROR errors." +"80244001","-2145107967","2149859329","SUS_E_PT_SOAPCLIENT_INITIALIZE","SOAPCLIENT_INITIALIZE_ERROR initialization failed - most likely an MSXML installation problem." +"80244002","-2145107966","2149859330","WU_E_PT_SOAPCLIENT_OUTOFMEMORY","SOAPCLIENT_OUTOFMEMORY out of memory." +"80244003","-2145107965","2149859331","WU_E_PT_SOAPCLIENT_GENERATE","SOAPCLIENT_GENERATE_ERROR failed in generating the response." +"80244004","-2145107964","2149859332","SUS_E_PT_SOAPCLIENT_CONNECT","failed connecting to server." +"80244005","-2145107963","2149859333","WU_E_PT_SOAPCLIENT_SEND","SOAPCLIENT_SEND_ERROR failed in sending message. This generic error has been deprecated in favor of the more specific underlying WinHTTP errors." +"80244006","-2145107962","2149859334","WU_E_PT_SOAPCLIENT_SERVER","SOAPCLIENT_SERVER_ERROR server error." +"80244007","-2145107961","2149859335","WU_E_PT_SOAPCLIENT_SOAPFAULT","SOAPCLIENT_SOAPFAULT a SOAP Fault was returned by the server. See the more specific WU_E_PT_SOAP_xxxx mappings when a SOAP fault was returned by the server." +"80244008","-2145107960","2149859336","SUS_E_PT_SOAPCLIENT_PARSEFAULT","SOAPCLIENT_PARSEFAULT_ERROR failed in parsing SOAP fault." +"80244009","-2145107959","2149859337","WU_E_PT_SOAPCLIENT_READ","SOAPCLIENT_READ_ERROR failed in reading response." +"8024400A","-2145107958","2149859338","SUS_E_PT_SOAPCLIENT_PARSE","failed in parsing response." +"8024400B","-2145107957","2149859339","WU_E_PT_SOAP_VERSION","SOAP_E_VERSION_MISMATCH Invalid namespace for the SOAP envelope." +"8024400C","-2145107956","2149859340","WU_E_PT_SOAP_MUST_UNDERSTAND","SOAP_E_MUST_UNDERSTAND Child of header with mustUnderstand attribute = 1 wasn't understood or obeyed." +"8024400D","-2145107955","2149859341","SUS_E_PT_SOAP_CLIENT","SOAP_E_CLIENT The message was malformed or incomplete. No reason to retry unless problem fixed." +"8024400E","-2145107954","2149859342","SUS_E_PT_SOAP_SERVER","The message was OK but server couldn't process at the moment. Same message *may* succeed at a later time." +"8024400F","-2145107953","2149859343","WU_E_PT_WMI_ERROR","An unspecified error occurred using WMI." +"80244010","-2145107952","2149859344","SUS_E_PT_EXCEEDED_MAX_SERVER_TRIPS","The maximum allowed number of round trips to the server was exceeded." +"80244011","-2145107951","2149859345","SUS_E_PT_SUS_SERVER_NOT_SET","WUServer policy value is missing in the registry." +"80244012","-2145107950","2149859346","WU_E_PT_DOUBLE_INITIALIZATION","object is initialized second time." +"80244013","-2145107949","2149859347","WU_E_PT_INVALID_COMPUTER_NAME","Cannot determine computer name." +"80244014","-2145107948","2149859348","WU_E_PT_INVALID_COMPUTER_LSID","Cannot determine computer LSID." +"80244015","-2145107947","2149859349","SUS_E_PT_REFRESH_CACHE_REQUIRED","Server replied with InvalidCookie or ServerChanged Caller should refresh its internal state then repeat the call to Protocol Talker." +"80244016","-2145107946","2149859350","SUS_E_PT_HTTP_STATUS_BAD_REQUEST","Http status 400 - invalid syntax." +"80244017","-2145107945","2149859351","SUS_E_PT_HTTP_STATUS_DENIED","Http status 401 - access denied." +"80244018","-2145107944","2149859352","SUS_E_PT_HTTP_STATUS_FORBIDDEN","Http status 403 - request forbidden." +"80244019","-2145107943","2149859353","SUS_E_PT_HTTP_STATUS_NOT_FOUND","Http status 404 - object not found." +"8024401A","-2145107942","2149859354","SUS_E_PT_HTTP_STATUS_BAD_METHOD","Http status 405 - method is not allowed." +"8024401B","-2145107941","2149859355","SUS_E_PT_HTTP_STATUS_PROXY_AUTH_REQ","Http status 407 - proxy authentication required." +"8024401C","-2145107940","2149859356","WU_E_PT_HTTP_STATUS_REQUEST_TIMEOUT","Http status 408 - server timed out waiting for request." +"8024401D","-2145107939","2149859357","WU_E_PT_HTTP_STATUS_CONFLICT","Http status 409 - user should resubmit with more info." +"8024401E","-2145107938","2149859358","WU_E_PT_HTTP_STATUS_GONE","Http status 410 - the resource is no longer available." +"8024401F","-2145107937","2149859359","WU_E_PT_HTTP_STATUS_SERVER_ERROR","Http status 500 - internal server error." +"80244020","-2145107936","2149859360","WU_E_PT_HTTP_STATUS_NOT_SUPPORTED","Http status 501 - required not supported." +"80244021","-2145107935","2149859361","SUS_E_PT_HTTP_STATUS_BAD_GATEWAY","Http status 502 - error response received from gateway." +"80244022","-2145107934","2149859362","SUS_E_PT_HTTP_STATUS_SERVICE_UNAVAIL","Http status 503 - temporarily overloaded)." +"80244023","-2145107933","2149859363","SUS_E_PT_HTTP_STATUS_GATEWAY_TIMEOUT","Http status 504 - timed out waiting for gateway." +"80244024","-2145107932","2149859364","WU_E_PT_HTTP_STATUS_VERSION_NOT_SUP","Http status 505 - HTTP version not supported." +"80244025","-2145107931","2149859365","SUS_E_PT_FILE_LOCATIONS_CHANGED","Server replied with FileLocationsChange Caller should refresh its internal state then repeat the call to Protocol Talker." +"80244026","-2145107930","2149859366","SUS_E_PT_REGISTRATION_NOT_SUPPORTED","Client doesn't support registration with non-SUS server." +"80244027","-2145107929","2149859367","WU_E_PT_NO_AUTH_PLUGINS_REQUESTED","Server returned an empty AuthInfo list." +"80244028","-2145107928","2149859368","SUS_E_PT_NO_AUTH_COOKIES_CREATED","The client was unable to create any valid auth cookies." +"80244029","-2145107927","2149859369","WU_E_PT_INVALID_CONFIG_PROP","One of the Config ConfigurationProperty values was wrong." +"8024402A","-2145107926","2149859370","WU_E_PT_CONFIG_PROP_MISSING","One of the Config ConfigurationProperty values was wrong." +"8024402B","-2145107925","2149859371","WU_E_PT_HTTP_STATUS_NOT_MAPPED","Http status other than 200." +"8024402C","-2145107924","2149859372","WU_E_PT_WINHTTP_NAME_NOT_RESOLVED","Winhttp SendRequest/ReceiveResponse failed with 2ee7 error. Either the proxy server or target server name cannot be resolved. Corresponding to ERROR_WINHTTP_NAME_NOT_RESOLVED. Stop/Restart service or reboot the machine if you see this error frequently." +"80244FFF","-2145103873","2149863423","WU_E_PT_UNEXPECTED","generic unexpected protocol talker failure." +"80245001","-2145103871","2149863425","WU_E_REDIRECTOR_LOAD_XML","The XML extracted from the wuredir.cab failed to load into the DOM." +"80245002","-2145103870","2149863426","WU_E_REDIRECTOR_S_FALSE","An expected XML element node." +"80245003","-2145103869","2149863427","WU_E_REDIRECTOR_ID_SMALLER","The redirectorId in the downloaded wuredir.cab is smaller than the cached cab." +"8024502D","-2145103827","2149863469","WU_E_PT_SAME_REDIR_ID","During recovery Protocol Talker failed to download a wuredir.cab with a newer redirectorId from the server." +"8024502E","-2145103826","2149863470","WU_E_PT_NO_MANAGED_RECOVER","A redirector recovery action was specified." +"80245FFF","-2145099777","2149867519","WU_E_REDIRECTOR_UNEXPECTED","generic unexpected redirector failure." +"80246001","-2145099775","2149867521","SUS_E_DM_URLNOTAVAILABLE","The requested file does not have an URL." +"80246002","-2145099774","2149867522","SUS_E_DM_INCORRECTFILEHASH","The file digest did not match the expected value." +"80246003","-2145099773","2149867523","WU_E_DM_UNKNOWNALGORITHM","The file metadata requested an unknown hash algorithm." +"80246004","-2145099772","2149867524","WU_E_DM_NEEDDOWNLOADREQUEST","A download request from a download handler is required." +"80246005","-2145099771","2149867525","SUS_E_DM_NONETWORK","Network connection was not available." +"80246006","-2145099770","2149867526","SUS_E_DM_WRONGBITSVERSION","The version of BITS installed on the machine is not compatible." +"80246007","-2145099769","2149867527","SUS_E_DM_NOTDOWNLOADED","The update has not been downloaded." +"80246008","-2145099768","2149867528","SUS_E_DM_FAILTOCONNECTTOBITS","Failed to create the IBackgroundCopyManager interface to BITS. The BITS service may have been disabled." +"80246009","-2145099767","2149867529","WU_E_DM_BITSTRANSFERERROR","A BITS transfer error occurred." +"80246FFF","-2145095681","2149871615","WU_E_DM_UNEXPECTED","generic unexpected download manager failure." +"80248000","-2145091584","2149875712","WU_E_DS_SHUTDOWN","The call failed because the SUS agent is shutting down." +"80248001","-2145091583","2149875713","WU_E_DS_INUSE","The call failed because the data store is in use and the operation can only be executed on an idle data store." +"80248002","-2145091582","2149875714","WU_E_DS_INVALID","The data store is in an invalid state. This can occur if we attempt to validate the database schema and find a mismatch between the current state and the state we expect." +"80248003","-2145091581","2149875715","WU_E_DS_TABLEMISSING","The data store has a missing table." +"80248004","-2145091580","2149875716","WU_E_DS_TABLEINCORRECT","The data store has a table whose columns are not what SUS expects." +"80248005","-2145091579","2149875717","WU_E_DS_INVALIDTABLENAME","The caller tried to open a table that is not in the datastore." +"80248006","-2145091578","2149875718","WU_E_DS_BADVERSION","The data store-version does not match what the client expects." +"80248007","-2145091577","2149875719","SUS_E_DS_NODATA","The caller asked for data that is not in the data store." +"80248008","-2145091576","2149875720","WU_E_DS_MISSINGDATA","The data store is in an invalid state because data that should be present is missing. This error can occur if we encounter a column in a table that is NULL when it is not allowed to be NULL." +"80248009","-2145091575","2149875721","WU_E_DS_MISSINGREF","The data store is in an invalid state because data that should be present is missing. This will occur if we try to fetch a linked row from another table and the linked row does not exist. This can happen with EULAs." +"8024800A","-2145091574","2149875722","WU_E_DS_UNKNOWNHANDLER","The caller attempted to add an update that used an unknown update handler." +"8024800B","-2145091573","2149875723","WU_E_DS_CANTDELETE","The caller attempted to delete an update that is referenced by one or more services." +"8024800C","-2145091572","2149875724","SUS_E_DS_LOCKTIMEOUTEXPIRED","The caller attempted to delete an update that is referenced by one or more services." +"8024800D","-2145091571","2149875725","WU_E_DS_NOCATEGORIES","The caller attempted to add a non-toplevel category update that contained no parent categories." +"8024800E","-2145091570","2149875726","WU_E_DS_ROWEXISTS","The caller attempted to add a row whose primary key matched an existing row." +"8024800F","-2145091569","2149875727","WU_E_DS_STOREFILELOCKED","We attempted to initialize the datastore." +"80248010","-2145091568","2149875728","WU_E_DS_CANNOTREGISTER","The caller is attepting to register the datastore with COM." +"80248011","-2145091567","2149875729","SUS_E_DS_UNABLETOSTART","Could not create an out of proc datastore object." +"80248012","-2145091566","2149875730","SUS_E_DS_MISSINGFILEFORURL","a file URL was passed in for a file that does not exist in the datastore." +"80248013","-2145091565","2149875731","SUS_E_DS_DUPLICATEUPDATEID","the server has passed the same update to the client with two different revision ids." +"80248014","-2145091564","2149875732","WU_E_DS_UNKNOWNSERVICE","the caller has requested some action on a service that is not known to the datastore." +"80248015","-2145091563","2149875733","SUS_E_DS_SERVICEEXPIRED","the caller has requested a service whose registration has expired." +"80248016","-2145091562","2149875734","WU_E_DS_DECLINENOTALLOWED","an update cannot be declined while it is deployed with a deadline by 1 or more services or if it is a mandatory update." +"80248017","-2145091561","2149875735","WU_E_DS_TABLESESSIONMISMATCH","the caller attempted to close a table with a session it was not associated with." +"80248018","-2145091560","2149875736","WU_E_DS_SESSIONLOCKMISMATCH","the caller attempted to close a table with a session it was not associated with." +"80248019","-2145091559","2149875737","WU_E_DS_NEEDWINDOWSSERVICE","the caller attempted to remove the windows update service without having another service configured that delivers updates to windows." +"8024801A","-2145091558","2149875738","WU_E_DS_INVALIDOPERATION","The attempted operation was not allowed." +"8024801B","-2145091557","2149875739","WU_E_DS_SCHEMAMISMATCH","The schema of a table in a backup XML file cannot be reconciled with the current store schema." +"8024801C","-2145091556","2149875740","WU_E_DS_RESETREQUIRED","The datastore required a reset and either the state of the current session was too complex to retry (it is in a caller initiated transaction or a caller acquired a section lock) or the reset failed. In either case." +"8024801D","-2145091555","2149875741","WU_E_DS_IMPERSONATED","The datastore cannot be called while impersonating." +"80248FFF","-2145087489","2149879807","WU_E_DS_UNEXPECTED","generic unexpected data store failure." +"8024A000","-2145083392","2149883904","WU_E_AU_NOSERVICE","AU was unable to service incoming AU calls." +"8024A001","-2145083391","2149883905","SUS_E_AU_LEGACYSERVER","" +"8024A002","-2145083390","2149883906","WU_E_AU_NONLEGACYSERVER","The legacy AU client stopped because the sus server has been upgraded." +"8024A003","-2145083389","2149883907","WU_E_AU_LEGACYCLIENTDISABLED","The legacy AU client stopped because it was disabled." +"8024A004","-2145083388","2149883908","WU_E_AU_PAUSED","AU was unable to service incoming AU calls because it was paused." +"8024AFFF","-2145079297","2149887999","WU_E_AU_UNEXPECTED","generic unexpected Automatic Updates." +"8024C001","-2145075199","2149892097","WU_E_DRV_PRUNED","Driver was pruned." +"8024C002","-2145075198","2149892098","WU_E_DRV_NOPROP_OR_LEGACY","A property wasn't found. Depending on the context this may not be an error. For example." +"8024C003","-2145075197","2149892099","WU_E_DRV_REG_MISMATCH","The registry type we read didn't match what was expected." +"8024C004","-2145075196","2149892100","WU_E_DRV_NO_METADATA","The driver Update didn't have a metadata blob." +"8024C005","-2145075195","2149892101","WU_E_DRV_MISSING_ATTRIBUTE","The driver Update metadata was missing a required attribute." +"8024C006","-2145075194","2149892102","WU_E_DRV_SYNC_FAILED","A driver sync operation failed." +"8024C007","-2145075193","2149892103","WU_E_DRV_NO_PRINTER_CONTENT","No printer driver content following SyncApplicablePrinters." +"8024CFFF","-2145071105","2149896191","WU_E_DRV_UNEXPECTED","generic unexpected driver utility failure." +"8024D001","-2145071103","2149896193","WU_E_SETUP_INVALID_INFDATA","Setup failed due to invalid data in the INF file." +"8024D002","-2145071102","2149896194","WU_E_SETUP_INVALID_IDENTDATA","Setup failed due to invalid data in the wuident file." +"8024D003","-2145071101","2149896195","WU_E_SETUP_ALREADY_INITIALIZED","Setup failed due to multiple initialization." +"8024D004","-2145071100","2149896196","WU_E_SETUP_NOT_INITIALIZED","Setup has not been initialized correctly." +"8024D005","-2145071099","2149896197","WU_E_SETUP_SOURCE_VERSION_MISMATCH","Setup failed as the version specified in the INF file doesn't match the source binary version." +"8024D006","-2145071098","2149896198","WU_E_SETUP_TARGET_VERSION_GREATER","Setup failed as the target version on the system is higher than source binary version." +"8024DFFF","-2145067009","2149900287","WU_E_SETUP_UNEXPECTED","Generic unexpected Setup failure." +"8024E001","-2145067007","2149900289","WU_E_EE_UNKNOWN_EXPRESSION","an expression handler was passed an expression that it doesn't know about." +"8024E002","-2145067006","2149900290","WU_E_EE_INVALID_EXPRESSION","an expression handler was passed an expression that is bad." +"8024E003","-2145067005","2149900291","WU_E_EE_MISSING_METADATA","an expression handler was passed an expression that requires an applicability metadata blob." +"8024E004","-2145067004","2149900292","WU_E_EE_INVALID_VERSION","Invalid version of the serialized expression data." +"8024E005","-2145067003","2149900293","WU_E_EE_NOT_INITIALIZED","The Expression Evaluator has not been initialized correctly." +"8024E006","-2145067002","2149900294","WU_E_EE_INVALID_ATTRIBUTEDATA","An invalid attribute data was passed to an expression evaluator." +"8024EFFF","-2145062913","2149904383","WU_E_EE_UNEXPECTED","generic unexpected expression evaluator failures." +"8024F001","-2145062911","2149904385","WU_E_REPORTER_EVENTCACHECORRUPT","event cache file was corrupt/malformed." +"8024F002","-2145062910","2149904386","WU_E_REPORTER_EVENTNAMESPACEPARSEFAILED","event namespace descriptor XML could not be parsed." +"8024F003","-2145062909","2149904387","WU_E_INVALID_EVENT","event was reported with invalid/malformed data." +"8024F004","-2145062908","2149904388","WU_E_SERVER_BUSY","event was rejected by server because server was too busy." +"8024FFFF","-2145058817","2149908479","WU_E_REPORTER_UNEXPECTED","generic unexpected reporter failures." +"80d02002","-2133843966","2161123330","","Delivery Optimization: Download of a file saw no progress within the defined period. (The operation timed out.)." +"80d05001","-2133831679","2161135617","DO_E_HTTP_BLOCKSIZE_MISMATCH","Delivery Optimization: devices must have internet access to use Delivery Optimization." +"81F40001","-2114715647","2180251649","","Bundle condition evaluated to false. (Possibly `Microsoft.VCRedist.2015+.` with the wrong architecture.)." +"87FF0001","-2013331455","2281635841","Error_Label_Unreadable","" +"87FF0004","-2013331452","2281635844","Error_Too_Many_Open_Files","The system cannot open the file." +"8A150001","-1978335231","2316632065","APPINSTALLER_CLI_ERROR_INTERNAL_ERROR","Internal Error." +"8A150002","-1978335230","2316632066","APPINSTALLER_CLI_ERROR_INVALID_CL_ARGUMENTS","Invalid command line arguments." +"8A150003","-1978335229","2316632067","APPINSTALLER_CLI_ERROR_COMMAND_FAILED","Executing command failed." +"8A150004","-1978335228","2316632068","APPINSTALLER_CLI_ERROR_MANIFEST_FAILED","Opening manifest failed." +"8A150005","-1978335227","2316632069","APPINSTALLER_CLI_ERROR_CTRL_SIGNAL_RECEIVED","Cancellation signal received." +"8A150006","-1978335226","2316632070","APPINSTALLER_CLI_ERROR_SHELLEXEC_INSTALL_FAILED","Running ShellExecute failed." +"8A150007","-1978335225","2316632071","APPINSTALLER_CLI_ERROR_UNSUPPORTED_MANIFESTVERSION","Cannot process manifest. The manifest version is higher than supported. Please update the client." +"8A150008","-1978335224","2316632072","APPINSTALLER_CLI_ERROR_DOWNLOAD_FAILED","Downloading installer failed." +"8A150009","-1978335223","2316632073","APPINSTALLER_CLI_ERROR_CANNOT_WRITE_TO_UPLEVEL_INDEX","Cannot write to index; it is a higher schema version." +"8A15000A","-1978335222","2316632074","APPINSTALLER_CLI_ERROR_INDEX_INTEGRITY_COMPROMISED","The index is corrupt." +"8A15000B","-1978335221","2316632075","APPINSTALLER_CLI_ERROR_SOURCES_INVALID","The configured source information is corrupt." +"8A15000C","-1978335220","2316632076","APPINSTALLER_CLI_ERROR_SOURCE_NAME_ALREADY_EXISTS","The source name is already configured." +"8A15000D","-1978335219","2316632077","APPINSTALLER_CLI_ERROR_INVALID_SOURCE_TYPE","The source type is invalid." +"8A15000E","-1978335218","2316632078","APPINSTALLER_CLI_ERROR_PACKAGE_IS_BUNDLE","The MSIX file is a bundle." +"8A15000F","-1978335217","2316632079","APPINSTALLER_CLI_ERROR_SOURCE_DATA_MISSING","Data required by the source is missing." +"8A150010","-1978335216","2316632080","APPINSTALLER_CLI_ERROR_NO_APPLICABLE_INSTALLER","None of the installers are applicable for the current system." +"8A150011","-1978335215","2316632081","APPINSTALLER_CLI_ERROR_INSTALLER_HASH_MISMATCH","The installer file's hash does not match the manifest." +"8A150012","-1978335214","2316632082","APPINSTALLER_CLI_ERROR_SOURCE_NAME_DOES_NOT_EXIST","The source name does not exist." +"8A150013","-1978335213","2316632083","APPINSTALLER_CLI_ERROR_SOURCE_ARG_ALREADY_EXISTS","The source location is already configured under another name." +"8A150014","-1978335212","2316632084","APPINSTALLER_CLI_ERROR_NO_APPLICATIONS_FOUND","No packages found." +"8A150015","-1978335211","2316632085","APPINSTALLER_CLI_ERROR_NO_SOURCES_DEFINED","No sources are configured." +"8A150016","-1978335210","2316632086","APPINSTALLER_CLI_ERROR_MULTIPLE_APPLICATIONS_FOUND","Multiple packages found matching the criteria." +"8A150017","-1978335209","2316632087","APPINSTALLER_CLI_ERROR_NO_MANIFEST_FOUND","No manifest found matching the criteria." +"8A150018","-1978335208","2316632088","APPINSTALLER_CLI_ERROR_EXTENSION_PUBLIC_FAILED","Failed to get Public folder from source package." +"8A150019","-1978335207","2316632089","APPINSTALLER_CLI_ERROR_COMMAND_REQUIRES_ADMIN","Command requires administrator privileges to run." +"8A15001A","-1978335206","2316632090","APPINSTALLER_CLI_ERROR_SOURCE_NOT_SECURE","The source location is not secure." +"8A15001B","-1978335205","2316632091","APPINSTALLER_CLI_ERROR_MSSTORE_BLOCKED_BY_POLICY","The Microsoft Store client is blocked by policy." +"8A15001C","-1978335204","2316632092","APPINSTALLER_CLI_ERROR_MSSTORE_APP_BLOCKED_BY_POLICY","The Microsoft Store app is blocked by policy." +"8A15001D","-1978335203","2316632093","APPINSTALLER_CLI_ERROR_EXPERIMENTAL_FEATURE_DISABLED","The feature is currently under development. It can be enabled using winget settings." +"8A15001E","-1978335202","2316632094","APPINSTALLER_CLI_ERROR_MSSTORE_INSTALL_FAILED","Failed to install the Microsoft Store app." +"8A15001F","-1978335201","2316632095","APPINSTALLER_CLI_ERROR_COMPLETE_INPUT_BAD","Failed to perform auto complete." +"8A150020","-1978335200","2316632096","APPINSTALLER_CLI_ERROR_YAML_INIT_FAILED","Failed to initialize YAML parser." +"8A150021","-1978335199","2316632097","APPINSTALLER_CLI_ERROR_YAML_INVALID_MAPPING_KEY","Encountered an invalid YAML key." +"8A150022","-1978335198","2316632098","APPINSTALLER_CLI_ERROR_YAML_DUPLICATE_MAPPING_KEY","Encountered a duplicate YAML key." +"8A150023","-1978335197","2316632099","APPINSTALLER_CLI_ERROR_YAML_INVALID_OPERATION","Invalid YAML operation." +"8A150024","-1978335196","2316632100","APPINSTALLER_CLI_ERROR_YAML_DOC_BUILD_FAILED","Failed to build YAML doc." +"8A150025","-1978335195","2316632101","APPINSTALLER_CLI_ERROR_YAML_INVALID_EMITTER_STATE","Invalid YAML emitter state." +"8A150026","-1978335194","2316632102","APPINSTALLER_CLI_ERROR_YAML_INVALID_DATA","Invalid YAML data." +"8A150027","-1978335193","2316632103","APPINSTALLER_CLI_ERROR_LIBYAML_ERROR","LibYAML error." +"8A150028","-1978335192","2316632104","APPINSTALLER_CLI_ERROR_MANIFEST_VALIDATION_WARNING","Manifest validation succeeded with warning." +"8A150029","-1978335191","2316632105","APPINSTALLER_CLI_ERROR_MANIFEST_VALIDATION_FAILURE","Manifest validation failed." +"8A15002A","-1978335190","2316632106","APPINSTALLER_CLI_ERROR_INVALID_MANIFEST","Manifest is invalid." +"8A15002B","-1978335189","2316632107","APPINSTALLER_CLI_ERROR_UPDATE_NOT_APPLICABLE","No applicable update found." +"8A15002C","-1978335188","2316632108","APPINSTALLER_CLI_ERROR_UPDATE_ALL_HAS_FAILURE","winget upgrade --all completed with failures." +"8A15002D","-1978335187","2316632109","APPINSTALLER_CLI_ERROR_INSTALLER_SECURITY_CHECK_FAILED","Installer failed security check. Another script should retry this about every 18 hours. ." +"8A15002E","-1978335186","2316632110","APPINSTALLER_CLI_ERROR_DOWNLOAD_SIZE_MISMATCH","Download size does not match expected content length." +"8A15002F","-1978335185","2316632111","APPINSTALLER_CLI_ERROR_NO_UNINSTALL_INFO_FOUND","Uninstall command not found." +"8A150030","-1978335184","2316632112","APPINSTALLER_CLI_ERROR_EXEC_UNINSTALL_COMMAND_FAILED","Running uninstall command failed." +"8A150031","-1978335183","2316632113","APPINSTALLER_CLI_ERROR_ICU_BREAK_ITERATOR_ERROR","ICU break iterator error." +"8A150032","-1978335182","2316632114","APPINSTALLER_CLI_ERROR_ICU_CASEMAP_ERROR","ICU casemap error." +"8A150033","-1978335181","2316632115","APPINSTALLER_CLI_ERROR_ICU_REGEX_ERROR","ICU regex error." +"8A150034","-1978335180","2316632116","APPINSTALLER_CLI_ERROR_IMPORT_INSTALL_FAILED","Failed to install one or more imported packages." +"8A150035","-1978335179","2316632117","APPINSTALLER_CLI_ERROR_NOT_ALL_PACKAGES_FOUND","Could not find one or more requested packages." +"8A150036","-1978335178","2316632118","APPINSTALLER_CLI_ERROR_JSON_INVALID_FILE","Json file is invalid." +"8A150037","-1978335177","2316632119","APPINSTALLER_CLI_ERROR_SOURCE_NOT_REMOTE","The source location is not remote." +"8A150038","-1978335176","2316632120","APPINSTALLER_CLI_ERROR_UNSUPPORTED_RESTSOURCE","The configured REST API source is not supported." +"8A150039","-1978335175","2316632121","APPINSTALLER_CLI_ERROR_RESTSOURCE_INVALID_DATA","Invalid data returned by REST API source." +"8A15003A","-1978335174","2316632122","APPINSTALLER_CLI_ERROR_BLOCKED_BY_POLICY","Operation is blocked by Group Policy." +"8A15003B","-1978335173","2316632123","APPINSTALLER_CLI_ERROR_RESTAPI_INTERNAL_ERROR","REST API sourceinternal error." +"8A15003C","-1978335172","2316632124","APPINSTALLER_CLI_ERROR_RESTSOURCE_INVALID_URL","Invalid REST API sourceurl." +"8A15003D","-1978335171","2316632125","APPINSTALLER_CLI_ERROR_RESTAPI_UNSUPPORTED_MIME_TYPE","Unsupported MIME type returned by REST API source." +"8A15003E","-1978335170","2316632126","APPINSTALLER_CLI_ERROR_RESTSOURCE_INVALID_VERSION","Invalid REST API source contract version." +"8A15003F","-1978335169","2316632127","APPINSTALLER_CLI_ERROR_SOURCE_DATA_INTEGRITY_FAILURE","The source data is corrupted or tampered." +"8A150040","-1978335168","2316632128","APPINSTALLER_CLI_ERROR_STREAM_READ_FAILURE","Error reading from the stream." +"8A150041","-1978335167","2316632129","APPINSTALLER_CLI_ERROR_PACKAGE_AGREEMENTS_NOT_ACCEPTED","Package agreements were not agreed to." +"8A150042","-1978335166","2316632130","APPINSTALLER_CLI_ERROR_PROMPT_INPUT_ERROR","Error reading input in prompt." +"8A150043","-1978335165","2316632131","APPINSTALLER_CLI_ERROR_UNSUPPORTED_SOURCE_REQUEST","The search request is not supported by one or more sources." +"8A150044","-1978335164","2316632132","APPINSTALLER_CLI_ERROR_RESTAPI_ENDPOINT_NOT_FOUND","The REST API source endpoint is not found." +"8A150045","-1978335163","2316632133","APPINSTALLER_CLI_ERROR_SOURCE_OPEN_FAILED","Failed to open the source." +"8A150046","-1978335162","2316632134","APPINSTALLER_CLI_ERROR_SOURCE_AGREEMENTS_NOT_ACCEPTED","Source agreements were not agreed to." +"8A150047","-1978335161","2316632135","APPINSTALLER_CLI_ERROR_CUSTOMHEADER_EXCEEDS_MAXLENGTH","Header size exceeds the allowable limit of 1024 characters. Please reduce the size and try again." +"8A150048","-1978335160","2316632136","APPINSTALLER_CLI_ERROR_MISSING_RESOURCE_FILE","Missing resource file." +"8A150049","-1978335159","2316632137","APPINSTALLER_CLI_ERROR_MSI_INSTALL_FAILED","Running MSI install failed." +"8A15004A","-1978335158","2316632138","APPINSTALLER_CLI_ERROR_INVALID_MSIEXEC_ARGUMENT","Arguments for msiexec are invalid." +"8A15004B","-1978335157","2316632139","APPINSTALLER_CLI_ERROR_FAILED_TO_OPEN_ALL_SOURCES","Failed to open one or more sources." +"8A15004C","-1978335156","2316632140","APPINSTALLER_CLI_ERROR_DEPENDENCIES_VALIDATION_FAILED","Failed to validate dependencies." +"8A15004D","-1978335155","2316632141","APPINSTALLER_CLI_ERROR_MISSING_PACKAGE","One or more package is missing." +"8A15004E","-1978335154","2316632142","APPINSTALLER_CLI_ERROR_INVALID_TABLE_COLUMN","Invalid table column." +"8A15004F","-1978335153","2316632143","APPINSTALLER_CLI_ERROR_UPGRADE_VERSION_NOT_NEWER","The upgrade version is not newer than the installed version." +"8A150050","-1978335152","2316632144","APPINSTALLER_CLI_ERROR_UPGRADE_VERSION_UNKNOWN","Upgrade version is unknown and override is not specified." +"8A150051","-1978335151","2316632145","APPINSTALLER_CLI_ERROR_ICU_CONVERSION_ERROR","ICU conversion error." +"8A150052","-1978335150","2316632146","APPINSTALLER_CLI_ERROR_PORTABLE_INSTALL_FAILED","Failed to install portable package." +"8A150053","-1978335149","2316632147","APPINSTALLER_CLI_ERROR_PORTABLE_REPARSE_POINT_NOT_SUPPORTED","Volume does not support reparse points." +"8A150054","-1978335148","2316632148","APPINSTALLER_CLI_ERROR_PORTABLE_PACKAGE_ALREADY_EXISTS","Portable package from a different source already exists." +"8A150055","-1978335147","2316632149","APPINSTALLER_CLI_ERROR_PORTABLE_SYMLINK_PATH_IS_DIRECTORY","Unable to create symlink." +"8A150056","-1978335146","2316632150","APPINSTALLER_CLI_ERROR_INSTALLER_PROHIBITS_ELEVATION","The installer cannot be run from an administrator context. Does this package require `ElevationRequirement: elevationProhibited`?." +"8A150057","-1978335145","2316632151","APPINSTALLER_CLI_ERROR_PORTABLE_UNINSTALL_FAILED","Failed to uninstall portable package." +"8A150058","-1978335144","2316632152","APPINSTALLER_CLI_ERROR_ARP_VERSION_VALIDATION_FAILED","Failed to validate DisplayVersion values against index." +"8A150059","-1978335143","2316632153","APPINSTALLER_CLI_ERROR_UNSUPPORTED_ARGUMENT","One or more arguments are not supported." +"8A15005A","-1978335142","2316632154","APPINSTALLER_CLI_ERROR_BIND_WITH_EMBEDDED_NULL","Embedded null characters are disallowed for SQLite." +"8A15005B","-1978335141","2316632155","APPINSTALLER_CLI_ERROR_NESTEDINSTALLER_NOT_FOUND","Failed to find the nested installer in the archive. Does the `RelativeFilePath` have the previous version number in it?." +"8A15005C","-1978335140","2316632156","APPINSTALLER_CLI_ERROR_EXTRACT_ARCHIVE_FAILED","Failed to extract archive. Does the `InstallerUrl` actually end in `.zip`,or does it have a different extension? ." +"8A15005D","-1978335139","2316632157","APPINSTALLER_CLI_ERROR_NESTEDINSTALLER_INVALID_PATH","Invalid relative file path to nested installer provided." +"8A15005E","-1978335138","2316632158","APPINSTALLER_CLI_ERROR_PINNED_CERTIFICATE_MISMATCH","The server certificate did not match any of the expected values." +"8A15005F","-1978335137","2316632159","APPINSTALLER_CLI_ERROR_INSTALL_LOCATION_REQUIRED","Install location must be provided." +"8A150060","-1978335136","2316632160","APPINSTALLER_CLI_ERROR_ARCHIVE_SCAN_FAILED","Archive malware scan failed." +"8A150061","-1978335135","2316632161","APPINSTALLER_CLI_ERROR_PACKAGE_ALREADY_INSTALLED","Found at least one version of the package installed." +"8A150062","-1978335134","2316632162","APPINSTALLER_CLI_ERROR_PIN_ALREADY_EXISTS","A pin already exists for the package." +"8A150063","-1978335133","2316632163","APPINSTALLER_CLI_ERROR_PIN_DOES_NOT_EXIST","There is no pin for the package." +"8A150064","-1978335132","2316632164","APPINSTALLER_CLI_ERROR_CANNOT_OPEN_PINNING_INDEX","Unable to open the pin database." +"8A150065","-1978335131","2316632165","APPINSTALLER_CLI_ERROR_MULTIPLE_INSTALL_FAILED","One or more applications failed to install." +"8A150066","-1978335130","2316632166","APPINSTALLER_CLI_ERROR_MULTIPLE_UNINSTALL_FAILED","One or more applications failed to uninstall." +"8A150067","-1978335129","2316632167","APPINSTALLER_CLI_ERROR_NOT_ALL_QUERIES_FOUND_SINGLE","One or more queries did not return exactly one match." +"8A150068","-1978335128","2316632168","APPINSTALLER_CLI_ERROR_PACKAGE_IS_PINNED","The package has a pin that prevents upgrade." +"8A150069","-1978335127","2316632169","APPINSTALLER_CLI_ERROR_PACKAGE_IS_STUB","The package currently installed is the stub package." +"8A15006A","-1978335126","2316632170","APPINSTALLER_CLI_ERROR_APPTERMINATION_RECEIVED","Application shutdown signal received." +"8A15006B","-1978335125","2316632171","APPINSTALLER_CLI_ERROR_DOWNLOAD_DEPENDENCIES","Failed to download package dependencies." +"8A15006C","-1978335124","2316632172","APPINSTALLER_CLI_ERROR_DOWNLOAD_COMMAND_PROHIBITED","Failed to download package. Download for offline installation is prohibited." +"8A15006D","-1978335123","2316632173","APPINSTALLER_CLI_ERROR_SERVICE_UNAVAILABLE","A required service is busy or unavailable. Try again later." +"8A15006E","-1978335122","2316632174","APPINSTALLER_CLI_ERROR_RESUME_ID_NOT_FOUND","The guid provided does not correspond to a valid resume state." +"8A15006F","-1978335121","2316632175","APPINSTALLER_CLI_ERROR_CLIENT_VERSION_MISMATCH","The current client version did not match the client version of the saved state." +"8A150070","-1978335120","2316632176","APPINSTALLER_CLI_ERROR_INVALID_RESUME_STATE","The resume state data is invalid." +"8A150071","-1978335119","2316632177","APPINSTALLER_CLI_ERROR_CANNOT_OPEN_CHECKPOINT_INDEX","Unable to open the checkpoint database." +"8A150072","-1978335118","2316632178","APPINSTALLER_CLI_ERROR_RESUME_LIMIT_EXCEEDED","Exceeded max resume limit." +"8A150073","-1978335117","2316632179","APPINSTALLER_CLI_ERROR_INVALID_AUTHENTICATION_INFO","Invalid authentication info." +"8A150074","-1978335116","2316632180","APPINSTALLER_CLI_ERROR_AUTHENTICATION_TYPE_NOT_SUPPORTED","Authentication method not supported." +"8A150075","-1978335115","2316632181","APPINSTALLER_CLI_ERROR_AUTHENTICATION_FAILED","Authentication failed." +"8A150076","-1978335114","2316632182","APPINSTALLER_CLI_ERROR_AUTHENTICATION_INTERACTIVE_REQUIRED","Authentication failed. Interactive authentication required." +"8A150077","-1978335113","2316632183","APPINSTALLER_CLI_ERROR_AUTHENTICATION_CANCELLED_BY_USER","Authentication failed. User cancelled." +"8A150078","-1978335112","2316632184","APPINSTALLER_CLI_ERROR_AUTHENTICATION_INCORRECT_ACCOUNT","Authentication failed. Authenticated account is not the desired account." +"8A150079","-1978335111","2316632185","APPINSTALLER_CLI_ERROR_NO_REPAIR_INFO_FOUND","Repair command not found." +"8A15007A","-1978335110","2316632186","APPINSTALLER_CLI_ERROR_REPAIR_NOT_APPLICABLE","Repair operation is not applicable." +"8A15007B","-1978335109","2316632187","APPINSTALLER_CLI_ERROR_EXEC_REPAIR_FAILED","Repair operation failed." +"8A15007C","-1978335108","2316632188","APPINSTALLER_CLI_ERROR_REPAIR_NOT_SUPPORTED","The installer technology in use doesn't support repair." +"8A15007D","-1978335107","2316632189","APPINSTALLER_CLI_ERROR_ADMIN_CONTEXT_REPAIR_PROHIBITED","Repair operations involving administrator privileges are not permitted on packages installed within the user scope." +"8A15007E","-1978335106","2316632190","APPINSTALLER_CLI_ERROR_SQLITE_CONNECTION_TERMINATED","The SQLite connection was terminated to prevent corruption." +"8A15007F","-1978335105","2316632191","APPINSTALLER_CLI_ERROR_DISPLAYCATALOG_API_FAILED","Failed to get Microsoft Store package catalog." +"8A150080","-1978335104","2316632192","APPINSTALLER_CLI_ERROR_NO_APPLICABLE_DISPLAYCATALOG_PACKAGE","No applicable Microsoft Store package found from Microsoft Store package catalog." +"8A150081","-1978335103","2316632193","APPINSTALLER_CLI_ERROR_SFSCLIENT_API_FAILED","Failed to get Microsoft Store package download information." +"8A150082","-1978335102","2316632194","APPINSTALLER_CLI_ERROR_NO_APPLICABLE_SFSCLIENT_PACKAGE","No applicable Microsoft Store package download information found." +"8A150083","-1978335101","2316632195","APPINSTALLER_CLI_ERROR_LICENSING_API_FAILED","Failed to retrieve Microsoft Store package license." +"8A150084","-1978335100","2316632196","APPINSTALLER_CLI_ERROR_SFSCLIENT_PACKAGE_NOT_SUPPORTED","The Microsoft Store package does not support download command." +"8A150085","-1978335099","2316632197","APPINSTALLER_CLI_ERROR_LICENSING_API_FAILED_FORBIDDEN","Failed to retrieve Microsoft Store package license. The Microsoft Entra Id account does not have required privilege." +"8A150086","-1978335098","2316632198","APPINSTALLER_CLI_ERROR_INSTALLER_ZERO_BYTE_FILE","Downloaded zero byte installer; ensure that your network connection is working properly." +"8A150101","-1978334975","2316632321","APPINSTALLER_CLI_ERROR_INSTALL_PACKAGE_IN_USE","Application is currently running. Exit the application then try again." +"8A150102","-1978334974","2316632322","APPINSTALLER_CLI_ERROR_INSTALL_INSTALL_IN_PROGRESS","Another installation is already in progress. Try again later." +"8A150103","-1978334973","2316632323","APPINSTALLER_CLI_ERROR_INSTALL_FILE_IN_USE","One or more file is being used. Exit the application then try again." +"8A150104","-1978334972","2316632324","APPINSTALLER_CLI_ERROR_INSTALL_MISSING_DEPENDENCY","This package has a dependency missing from your system. (The most common dependency is `Microsoft.VCRedist.2015+.x64` / `.x86`)." +"8A150105","-1978334971","2316632325","APPINSTALLER_CLI_ERROR_INSTALL_DISK_FULL","There's no more space on your PC. Make space." +"8A150106","-1978334970","2316632326","APPINSTALLER_CLI_ERROR_INSTALL_INSUFFICIENT_MEMORY","There's not enough memory available to install. Close other applications then try again." +"8A150107","-1978334969","2316632327","APPINSTALLER_CLI_ERROR_INSTALL_NO_NETWORK","This application requires internet connectivity. Connect to a network then try again." +"8A150108","-1978334968","2316632328","APPINSTALLER_CLI_ERROR_INSTALL_CONTACT_SUPPORT","This application encountered an error during installation. Contact support." +"8A150109","-1978334967","2316632329","APPINSTALLER_CLI_ERROR_INSTALL_REBOOT_REQUIRED_TO_FINISH","Restart your PC to finish installation." +"8A15010A","-1978334966","2316632330","APPINSTALLER_CLI_ERROR_INSTALL_REBOOT_REQUIRED_TO_INSTALL","Installation failed. Restart your PC then try again." +"8A15010B","-1978334965","2316632331","APPINSTALLER_CLI_ERROR_INSTALL_REBOOT_INITIATED","Your PC will restart to finish installation." +"8A15010C","-1978334964","2316632332","APPINSTALLER_CLI_ERROR_INSTALL_CANCELLED_BY_USER","You cancelled the installation." +"8A15010D","-1978334963","2316632333","APPINSTALLER_CLI_ERROR_INSTALL_ALREADY_INSTALLED","Another version of this application is already installed." +"8A15010E","-1978334962","2316632334","APPINSTALLER_CLI_ERROR_INSTALL_DOWNGRADE","A higher version of this application is already installed." +"8A15010F","-1978334961","2316632335","APPINSTALLER_CLI_ERROR_INSTALL_BLOCKED_BY_POLICY","Organization policies are preventing installation. Contact your admin." +"8A150110","-1978334960","2316632336","APPINSTALLER_CLI_ERROR_INSTALL_DEPENDENCIES","Failed to install package dependencies." +"8A150111","-1978334959","2316632337","APPINSTALLER_CLI_ERROR_INSTALL_PACKAGE_IN_USE_BY_APPLICATION","Application is currently in use by another application." +"8A150112","-1978334958","2316632338","APPINSTALLER_CLI_ERROR_INSTALL_INVALID_PARAMETER","Invalid parameter." +"8A150113","-1978334957","2316632339","APPINSTALLER_CLI_ERROR_INSTALL_SYSTEM_NOT_SUPPORTED","Package not supported by the system." +"8A150114","-1978334956","2316632340","APPINSTALLER_CLI_ERROR_INSTALL_UPGRADE_NOT_SUPPORTED","The installer does not support upgrading an existing package." +"8A150115","-1978334955","2316632341","APPINSTALLER_CLI_ERROR_INSTALL_CUSTOM_ERROR","Installation failed with installer custom error." +"8A150201","-1978334719","2316632577","WINGET_INSTALLED_STATUS_ARP_ENTRY_NOT_FOUND","The Apps and Features Entry for the package could not be found." +"8A150202","-1978334718","2316632578","WINGET_INSTALLED_STATUS_INSTALL_LOCATION_NOT_APPLICABLE","The install location is not applicable." +"8A150203","-1978334717","2316632579","WINGET_INSTALLED_STATUS_INSTALL_LOCATION_NOT_FOUND","The install location could not be found." +"8A150204","-1978334716","2316632580","WINGET_INSTALLED_STATUS_FILE_HASH_MISMATCH","The hash of the existing file did not match." +"8A150205","-1978334715","2316632581","WINGET_INSTALLED_STATUS_FILE_NOT_FOUND","File not found." +"8A150206","-1978334714","2316632582","WINGET_INSTALLED_STATUS_FILE_FOUND_WITHOUT_HASH_CHECK","The file was found but the hash was not checked." +"8A150207","-1978334713","2316632583","WINGET_INSTALLED_STATUS_FILE_ACCESS_ERROR","The file could not be accessed." +"8A15C001","-1978286079","2316681217","WINGET_CONFIG_ERROR_INVALID_CONFIGURATION_FILE","The configuration file is invalid." +"8A15C002","-1978286078","2316681218","WINGET_CONFIG_ERROR_INVALID_YAML","The YAML syntax is invalid." +"8A15C003","-1978286077","2316681219","WINGET_CONFIG_ERROR_INVALID_FIELD_TYPE","A configuration field has an invalid type." +"8A15C004","-1978286076","2316681220","WINGET_CONFIG_ERROR_UNKNOWN_CONFIGURATION_FILE_VERSION","The configuration has an unknown version." +"8A15C005","-1978286075","2316681221","WINGET_CONFIG_ERROR_SET_APPLY_FAILED","An error occurred while applying the configuration." +"8A15C006","-1978286074","2316681222","WINGET_CONFIG_ERROR_DUPLICATE_IDENTIFIER","The configuration contains a duplicate identifier." +"8A15C007","-1978286073","2316681223","WINGET_CONFIG_ERROR_MISSING_DEPENDENCY","The configuration is missing a dependency." +"8A15C008","-1978286072","2316681224","WINGET_CONFIG_ERROR_DEPENDENCY_UNSATISFIED","The configuration has an unsatisfied dependency." +"8A15C009","-1978286071","2316681225","WINGET_CONFIG_ERROR_ASSERTION_FAILED","An assertion for the configuration unit failed." +"8A15C00A","-1978286070","2316681226","WINGET_CONFIG_ERROR_MANUALLY_SKIPPED","The configuration was manually skipped." +"8A15C00B","-1978286069","2316681227","WINGET_CONFIG_ERROR_WARNING_NOT_ACCEPTED","A warning was thrown and the user declined to continue execution." +"8A15C00C","-1978286068","2316681228","WINGET_CONFIG_ERROR_SET_DEPENDENCY_CYCLE","The dependency graph contains a cycle which cannot be resolved." +"8A15C00D","-1978286067","2316681229","WINGET_CONFIG_ERROR_INVALID_FIELD_VALUE","The configuration has an invalid field value." +"8A15C00E","-1978286066","2316681230","WINGET_CONFIG_ERROR_MISSING_FIELD","The configuration is missing a field." +"8A15C00F","-1978286065","2316681231","WINGET_CONFIG_ERROR_TEST_FAILED","Some of the configuration units failed while testing their state." +"8A15C010","-1978286064","2316681232","WINGET_CONFIG_ERROR_TEST_NOT_RUN","Configuration state was not tested." +"8A15C011","-1978286063","2316681233","WINGET_CONFIG_ERROR_GET_FAILED","The configuration unit failed getting its properties." +"8A15C012","-1978286062","2316681234","WINGET_CONFIG_ERROR_HISTORY_ITEM_NOT_FOUND","The specified configuration could not be found." +"8A15C013","-1978286061","2316681235","WINGET_CONFIG_ERROR_PARAMETER_INTEGRITY_BOUNDARY","Parameter cannot be passed across integrity boundary." +"8A15C101","-1978285823","2316681473","WINGET_CONFIG_ERROR_UNIT_NOT_INSTALLED","The configuration unit was not installed." +"8A15C102","-1978285822","2316681474","WINGET_CONFIG_ERROR_UNIT_NOT_FOUND_REPOSITORY","The configuration unit could not be found." +"8A15C103","-1978285821","2316681475","WINGET_CONFIG_ERROR_UNIT_MULTIPLE_MATCHES","Multiple matches were found for the configuration unit specify the module to select the correct one." +"8A15C104","-1978285820","2316681476","WINGET_CONFIG_ERROR_UNIT_INVOKE_GET","The configuration unit failed while attempting to get the current system state." +"8A15C105","-1978285819","2316681477","WINGET_CONFIG_ERROR_UNIT_INVOKE_TEST","The configuration unit failed while attempting to test the current system state." +"8A15C106","-1978285818","2316681478","WINGET_CONFIG_ERROR_UNIT_INVOKE_SET","The configuration unit failed while attempting to apply the desired state." +"8A15C107","-1978285817","2316681479","WINGET_CONFIG_ERROR_UNIT_MODULE_CONFLICT","The module for the configuration unit is available in multiple locations with the same version." +"8A15C108","-1978285816","2316681480","WINGET_CONFIG_ERROR_UNIT_IMPORT_MODULE","Loading the module for the configuration unit failed." +"8A15C109","-1978285815","2316681481","WINGET_CONFIG_ERROR_UNIT_INVOKE_INVALID_RESULT","The configuration unit returned an unexpected result during execution." +"8A15C110","-1978285808","2316681488","WINGET_CONFIG_ERROR_UNIT_SETTING_CONFIG_ROOT","A unit contains a setting that requires the config root." +"8A15C111","-1978285807","2316681489","WINGET_CONFIG_ERROR_UNIT_IMPORT_MODULE_ADMIN","Loading the module for the configuration unit failed because it requires administrator privileges to run." +"8A15C112","-1978285806","2316681490","WINGET_CONFIG_ERROR_NOT_SUPPORTED_BY_PROCESSOR","Operation is not supported by the configuration processor." +"8DDD0001","-1914896383","2380070913","ErrorNoScripting","" +"8DDD0002","-1914896382","2380070914","ErrorNotAdmin","" +"8DDD0003","-1914896381","2380070915","ErrorDisabled","Site timeout waiting for the control." +"8DDD0004","-1914896380","2380070916","ErrorControlFailed","" +"8DDD0006","-1914896378","2380070918","ErrorWin2KLessThanSP3","" +"8DDD0007","-1914896377","2380070919","ErrorRebootRequired","" +"8DDD000F","-1914896369","2380070927","ErrorIis404","" +"8DDD0010","-1914896368","2380070928","ErrorIis500","" +"8DDD0012","-1914896366","2380070930","ErrorNoFrames","" +"8DDD0018","-1914896360","2380070936","ErrorAUDisabled","AU could be disabled." +"C0000001","-1073741823","3221225473","STATUS_UNSUCCESSFUL","(Operation Failed) The requested operation was unsuccessful." +"C0000002","-1073741822","3221225474","STATUS_NOT_IMPLEMENTED","(Not Implemented) The requested operation is not implemented." +"C0000003","-1073741821","3221225475","STATUS_INVALID_INFO_CLASS","(Invalid Parameter) The specified information class is not a valid information class for the specified object." +"C0000004","-1073741820","3221225476","STATUS_INFO_LENGTH_MISMATCH","The specified information record length does not match the length that is required for the specified information class." +"C0000005","-1073741819","3221225477","STATUS_ACCESS_VIOLATION","Possibly [Access Violation](https://learn.microsoft.com/en-us/shows/inside/access-violation-c0000005-execute). (This is occasionally seen in PRs despite the install otherwise being successful. Should it be added as an `InstallerSuccessCode` or similar here?)." +"C0000006","-1073741818","3221225478","STATUS_IN_PAGE_ERROR","The instruction at 0x%08lx referenced memory at 0x%08lx. The required data was not placed into memory because of an I/O error status of 0x%08lx." +"C0000007","-1073741817","3221225479","STATUS_PAGEFILE_QUOTA","The page file quota for the process has been exhausted." +"C0000008","-1073741816","3221225480","STATUS_INVALID_HANDLE","An invalid HANDLE was specified." +"C0000009","-1073741815","3221225481","STATUS_BAD_INITIAL_STACK","An invalid initial stack was specified in a call to NtCreateThread." +"C000000A","-1073741814","3221225482","STATUS_BAD_INITIAL_PC","An invalid initial start address was specified in a call to NtCreateThread." +"C000000B","-1073741813","3221225483","STATUS_INVALID_CID","An invalid client ID was specified." +"C000000C","-1073741812","3221225484","STATUS_TIMER_NOT_CANCELED","An attempt was made to cancel or set a timer that has an associated APC and the specified thread is not the thread that originally set the timer with an associated APC routine." +"C000000D","-1073741811","3221225485","STATUS_INVALID_PARAMETER","An invalid parameter was passed to a service or function." +"C000000E","-1073741810","3221225486","STATUS_NO_SUCH_DEVICE","A device that does not exist was specified." +"C000000F","-1073741809","3221225487","STATUS_NO_SUCH_FILE","(File Not Found) The file %hs does not exist." +"C0000010","-1073741808","3221225488","STATUS_INVALID_DEVICE_REQUEST","The specified request is not a valid operation for the target device." +"C0000011","-1073741807","3221225489","STATUS_END_OF_FILE","The end-of-file marker has been reached. There is no valid data in the file beyond this marker." +"C0000012","-1073741806","3221225490","STATUS_WRONG_VOLUME","(Wrong Volume) The wrong volume is in the drive. Insert volume %hs into drive %hs." +"C0000013","-1073741805","3221225491","STATUS_NO_MEDIA_IN_DEVICE","(No Disk) There is no disk in the drive. Insert a disk into drive %hs." +"C0000014","-1073741804","3221225492","STATUS_UNRECOGNIZED_MEDIA","(Unknown Disk Format) The disk in drive %hs is not formatted properly. Check the disk, and reformat it, if needed." +"C0000015","-1073741803","3221225493","STATUS_NONEXISTENT_SECTOR","(Sector Not Found) The specified sector does not exist." +"C0000016","-1073741802","3221225494","STATUS_MORE_PROCESSING_REQUIRED","(Still Busy) The specified I/O request packet (IRP) cannot be disposed of because the I/O operation is not complete." +"C0000017","-1073741801","3221225495","STATUS_NO_MEMORY","(Not Enough Quota) Not enough virtual memory or paging file quota is available to complete the specified operation. (VM ran out of RAM)." +"C0000018","-1073741800","3221225496","STATUS_CONFLICTING_ADDRESSES","(Conflicting Address Range) The specified address range conflicts with the address space." +"C0000019","-1073741799","3221225497","STATUS_NOT_MAPPED_VIEW","The address range to unmap is not a mapped view." +"C000001A","-1073741798","3221225498","STATUS_UNABLE_TO_FREE_VM","The virtual memory cannot be freed." +"C000001B","-1073741797","3221225499","STATUS_UNABLE_TO_DELETE_SECTION","The specified section cannot be deleted." +"C000001C","-1073741796","3221225500","STATUS_INVALID_SYSTEM_SERVICE","An invalid system service was specified in a system service call." +"C000001D","-1073741795","3221225501","STATUS_ILLEGAL_INSTRUCTION","(EXCEPTION) Illegal Instruction An attempt was made to execute an illegal instruction." +"C000001E","-1073741794","3221225502","STATUS_INVALID_LOCK_SEQUENCE","(Invalid Lock Sequence) An attempt was made to execute an invalid lock sequence." +"C000001F","-1073741793","3221225503","STATUS_INVALID_VIEW_SIZE","(Invalid Mapping) An attempt was made to create a view for a section that is bigger than the section." +"C0000020","-1073741792","3221225504","STATUS_INVALID_FILE_FOR_SECTION","(Bad File) The attributes of the specified mapping file for a section of memory cannot be read." +"C0000021","-1073741791","3221225505","STATUS_ALREADY_COMMITTED","(Already Committed) The specified address range is already committed." +"C0000022","-1073741790","3221225506","STATUS_ACCESS_DENIED","(Access Denied) A process has requested access to an object but has not been granted those access rights." +"C0000023","-1073741789","3221225507","STATUS_BUFFER_TOO_SMALL","(Buffer Too Small) The buffer is too small to contain the entry. No information has been written to the buffer." +"C0000024","-1073741788","3221225508","STATUS_OBJECT_TYPE_MISMATCH","(Wrong Type) There is a mismatch between the type of object that is required by the requested operation and the type of object that is specified in the request." +"C0000025","-1073741787","3221225509","STATUS_NONCONTINUABLE_EXCEPTION","(EXCEPTION) Cannot Continue Windows cannot continue from this exception." +"C0000026","-1073741786","3221225510","STATUS_INVALID_DISPOSITION","An invalid exception disposition was returned by an exception handler." +"C0000027","-1073741785","3221225511","STATUS_UNWIND","Unwind exception code." +"C0000028","-1073741784","3221225512","STATUS_BAD_STACK","An invalid or unaligned stack was encountered during an unwind operation." +"C0000029","-1073741783","3221225513","STATUS_INVALID_UNWIND_TARGET","An invalid unwind target was encountered during an unwind operation." +"C000002A","-1073741782","3221225514","STATUS_NOT_LOCKED","An attempt was made to unlock a page of memory that was not locked." +"C000002B","-1073741781","3221225515","STATUS_PARITY_ERROR","A device parity error on an I/O operation." +"C000002C","-1073741780","3221225516","STATUS_UNABLE_TO_DECOMMIT_VM","An attempt was made to decommit uncommitted virtual memory." +"C000002D","-1073741779","3221225517","STATUS_NOT_COMMITTED","An attempt was made to change the attributes on memory that has not been committed." +"C000002E","-1073741778","3221225518","STATUS_INVALID_PORT_ATTRIBUTES","Invalid object attributes specified to NtCreatePort or invalid port attributes specified to NtConnectPort." +"C000002F","-1073741777","3221225519","STATUS_PORT_MESSAGE_TOO_LONG","The length of the message that was passed to NtRequestPort or NtRequestWaitReplyPort is longer than the maximum message that is allowed by the port." +"C0000030","-1073741776","3221225520","STATUS_INVALID_PARAMETER_MIX","An invalid combination of parameters was specified." +"C0000031","-1073741775","3221225521","STATUS_INVALID_QUOTA_LOWER","An attempt was made to lower a quota limit below the current usage." +"C0000032","-1073741774","3221225522","STATUS_DISK_CORRUPT_ERROR","(Corrupt Disk) The file system structure on the disk is corrupt and unusable. Run the Chkdsk utility on the volume %hs." +"C0000033","-1073741773","3221225523","STATUS_OBJECT_NAME_INVALID","The object name is invalid." +"C0000034","-1073741772","3221225524","STATUS_OBJECT_NAME_NOT_FOUND","The object name is not found." +"C0000035","-1073741771","3221225525","STATUS_OBJECT_NAME_COLLISION","The object name already exists." +"C0000037","-1073741769","3221225527","STATUS_PORT_DISCONNECTED","An attempt was made to send a message to a disconnected communication port." +"C0000038","-1073741768","3221225528","STATUS_DEVICE_ALREADY_ATTACHED","An attempt was made to attach to a device that was already attached to another device." +"C0000039","-1073741767","3221225529","STATUS_OBJECT_PATH_INVALID","The object path component was not a directory object." +"C000003A","-1073741766","3221225530","STATUS_OBJECT_PATH_NOT_FOUND","(Path Not Found) The path %hs does not exist." +"C000003B","-1073741765","3221225531","STATUS_OBJECT_PATH_SYNTAX_BAD","The object path component was not a directory object." +"C000003C","-1073741764","3221225532","STATUS_DATA_OVERRUN","(Data Overrun) A data overrun error occurred." +"C000003D","-1073741763","3221225533","STATUS_DATA_LATE_ERROR","(Data Late) A data late error occurred." +"C000003E","-1073741762","3221225534","STATUS_DATA_ERROR","(Data Error) An error occurred in reading or writing data." +"C000003F","-1073741761","3221225535","STATUS_CRC_ERROR","(Bad CRC) A cyclic redundancy check (CRC) checksum error occurred." +"C0000040","-1073741760","3221225536","STATUS_SECTION_TOO_BIG","(Section Too Large) The specified section is too big to map the file." +"C0000041","-1073741759","3221225537","STATUS_PORT_CONNECTION_REFUSED","The NtConnectPort request is refused." +"C0000042","-1073741758","3221225538","STATUS_INVALID_PORT_HANDLE","The type of port handle is invalid for the operation that is requested." +"C0000043","-1073741757","3221225539","STATUS_SHARING_VIOLATION","A file cannot be opened because the share access flags are incompatible." +"C0000044","-1073741756","3221225540","STATUS_QUOTA_EXCEEDED","Insufficient quota exists to complete the operation." +"C0000045","-1073741755","3221225541","STATUS_INVALID_PAGE_PROTECTION","The specified page protection was not valid." +"C0000046","-1073741754","3221225542","STATUS_MUTANT_NOT_OWNED","An attempt to release a mutant object was made by a thread that was not the owner of the mutant object." +"C0000047","-1073741753","3221225543","STATUS_SEMAPHORE_LIMIT_EXCEEDED","An attempt was made to release a semaphore such that its maximum count would have been exceeded." +"C0000048","-1073741752","3221225544","STATUS_PORT_ALREADY_SET","An attempt was made to set the DebugPort or ExceptionPort of a process, but a port already exists in the process, or an attempt was made to set the CompletionPort of a file but a port was already set in the file, or an attempt was made to set the associated completion port of an ALPC port but it is already set." +"C0000049","-1073741751","3221225545","STATUS_SECTION_NOT_IMAGE","An attempt was made to query image information on a section that does not map an image." +"C000004A","-1073741750","3221225546","STATUS_SUSPEND_COUNT_EXCEEDED","An attempt was made to suspend a thread whose suspend count was at its maximum." +"C000004B","-1073741749","3221225547","STATUS_THREAD_IS_TERMINATING","An attempt was made to suspend a thread that has begun termination." +"C000004C","-1073741748","3221225548","STATUS_BAD_WORKING_SET_LIMIT","An attempt was made to set the working set limit to an invalid value (for example, the minimum greater than maximum)." +"C000004D","-1073741747","3221225549","STATUS_INCOMPATIBLE_FILE_MAP","A section was created to map a file that is not compatible with an already existing section that maps the same file." +"C000004E","-1073741746","3221225550","STATUS_SECTION_PROTECTION","A view to a section specifies a protection that is incompatible with the protection of the initial view." +"C000004F","-1073741745","3221225551","STATUS_EAS_NOT_SUPPORTED","An operation involving EAs failed because the file system does not support EAs." +"C0000050","-1073741744","3221225552","STATUS_EA_TOO_LARGE","An EA operation failed because the EA set is too large." +"C0000051","-1073741743","3221225553","STATUS_NONEXISTENT_EA_ENTRY","An EA operation failed because the name or EA index is invalid." +"C0000052","-1073741742","3221225554","STATUS_NO_EAS_ON_FILE","The file for which EAs were requested has no EAs." +"C0000053","-1073741741","3221225555","STATUS_EA_CORRUPT_ERROR","The EA is corrupt and cannot be read." +"C0000054","-1073741740","3221225556","STATUS_FILE_LOCK_CONFLICT","A requested read/write cannot be granted due to a conflicting file lock." +"C0000055","-1073741739","3221225557","STATUS_LOCK_NOT_GRANTED","A requested file lock cannot be granted due to other existing locks." +"C0000056","-1073741738","3221225558","STATUS_DELETE_PENDING","A non-close operation has been requested of a file object that has a delete pending." +"C0000057","-1073741737","3221225559","STATUS_CTL_FILE_NOT_SUPPORTED","An attempt was made to set the control attribute on a file. This attribute is not supported in the destination file system." +"C0000058","-1073741736","3221225560","STATUS_UNKNOWN_REVISION","Indicates a revision number that was encountered or specified is not one that is known by the service. It might be a more recent revision than the service is aware of." +"C0000059","-1073741735","3221225561","STATUS_REVISION_MISMATCH","Indicates that two revision levels are incompatible." +"C000005A","-1073741734","3221225562","STATUS_INVALID_OWNER","Indicates a particular security ID cannot be assigned as the owner of an object." +"C000005B","-1073741733","3221225563","STATUS_INVALID_PRIMARY_GROUP","Indicates a particular security ID cannot be assigned as the primary group of an object." +"C000005C","-1073741732","3221225564","STATUS_NO_IMPERSONATION_TOKEN","An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client." +"C000005D","-1073741731","3221225565","STATUS_CANT_DISABLE_MANDATORY","A mandatory group cannot be disabled." +"C000005E","-1073741730","3221225566","STATUS_NO_LOGON_SERVERS","No logon servers are currently available to service the logon request." +"C000005F","-1073741729","3221225567","STATUS_NO_SUCH_LOGON_SESSION","A specified logon session does not exist. It might already have been terminated." +"C0000060","-1073741728","3221225568","STATUS_NO_SUCH_PRIVILEGE","A specified privilege does not exist." +"C0000061","-1073741727","3221225569","STATUS_PRIVILEGE_NOT_HELD","A required privilege is not held by the client." +"C0000062","-1073741726","3221225570","STATUS_INVALID_ACCOUNT_NAME","The name provided is not a properly formed account name." +"C0000063","-1073741725","3221225571","STATUS_USER_EXISTS","The specified account already exists." +"C0000064","-1073741724","3221225572","STATUS_NO_SUCH_USER","The specified account does not exist." +"C0000065","-1073741723","3221225573","STATUS_GROUP_EXISTS","The specified group already exists." +"C0000066","-1073741722","3221225574","STATUS_NO_SUCH_GROUP","The specified group does not exist." +"C0000067","-1073741721","3221225575","STATUS_MEMBER_IN_GROUP","The specified user account is already in the specified group account. Also used to indicate a group cannot be deleted because it contains a member." +"C0000068","-1073741720","3221225576","STATUS_MEMBER_NOT_IN_GROUP","The specified user account is not a member of the specified group account." +"C0000069","-1073741719","3221225577","STATUS_LAST_ADMIN","Indicates the requested operation would disable or delete the last remaining administration account. This is not allowed to prevent creating a situation in which the system cannot be administrated." +"C000006A","-1073741718","3221225578","STATUS_WRONG_PASSWORD","When trying to update a password, this return status indicates that the value provided as the current password is not correct." +"C000006B","-1073741717","3221225579","STATUS_ILL_FORMED_PASSWORD","When trying to update a password, this return status indicates that the value provided for the new password contains values that are not allowed in passwords." +"C000006C","-1073741716","3221225580","STATUS_PASSWORD_RESTRICTION","When trying to update a password, this status indicates that some password update rule has been violated. For example, the password might not meet length criteria." +"C000006D","-1073741715","3221225581","STATUS_LOGON_FAILURE","The attempted logon is invalid. This is either due to a bad username or authentication information." +"C000006E","-1073741714","3221225582","STATUS_ACCOUNT_RESTRICTION","Indicates a referenced user name and authentication information are valid, but some user account restriction has prevented successful authentication (such as time-of-day restrictions)." +"C000006F","-1073741713","3221225583","STATUS_INVALID_LOGON_HOURS","The user account has time restrictions and cannot be logged onto at this time." +"C0000070","-1073741712","3221225584","STATUS_INVALID_WORKSTATION","The user account is restricted so that it cannot be used to log on from the source workstation." +"C0000071","-1073741711","3221225585","STATUS_PASSWORD_EXPIRED","The user account password has expired." +"C0000072","-1073741710","3221225586","STATUS_ACCOUNT_DISABLED","The referenced account is currently disabled and cannot be logged on to." +"C0000073","-1073741709","3221225587","STATUS_NONE_MAPPED","None of the information to be translated has been translated." +"C0000074","-1073741708","3221225588","STATUS_TOO_MANY_LUIDS_REQUESTED","The number of LUIDs requested cannot be allocated with a single allocation." +"C0000075","-1073741707","3221225589","STATUS_LUIDS_EXHAUSTED","Indicates there are no more LUIDs to allocate." +"C0000076","-1073741706","3221225590","STATUS_INVALID_SUB_AUTHORITY","Indicates the sub-authority value is invalid for the particular use." +"C0000077","-1073741705","3221225591","STATUS_INVALID_ACL","Indicates the ACL structure is not valid." +"C0000078","-1073741704","3221225592","STATUS_INVALID_SID","Indicates the SID structure is not valid." +"C0000079","-1073741703","3221225593","STATUS_INVALID_SECURITY_DESCR","Indicates the SECURITY_DESCRIPTOR structure is not valid." +"C000007A","-1073741702","3221225594","STATUS_PROCEDURE_NOT_FOUND","Indicates the specified procedure address cannot be found in the DLL." +"C000007B","-1073741701","3221225595","STATUS_INVALID_IMAGE_FORMAT","(Bad Image) %hs is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vendor for support." +"C000007C","-1073741700","3221225596","STATUS_NO_TOKEN","An attempt was made to reference a token that does not exist. This is typically done by referencing the token that is associated with a thread when the thread is not impersonating a client." +"C000007D","-1073741699","3221225597","STATUS_BAD_INHERITANCE_ACL","Indicates that an attempt to build either an inherited ACL or ACE was not successful. This can be caused by a number of things. One of the more probable causes is the replacement of a CreatorId with a SID that did not fit into the ACE or ACL." +"C000007E","-1073741698","3221225598","STATUS_RANGE_NOT_LOCKED","The range specified in NtUnlockFile was not locked." +"C000007F","-1073741697","3221225599","STATUS_DISK_FULL","An operation failed because the disk was full." +"C0000080","-1073741696","3221225600","STATUS_SERVER_DISABLED","The GUID allocation server is disabled at the moment." +"C0000081","-1073741695","3221225601","STATUS_SERVER_NOT_DISABLED","The GUID allocation server is enabled at the moment." +"C0000082","-1073741694","3221225602","STATUS_TOO_MANY_GUIDS_REQUESTED","Too many GUIDs were requested from the allocation server at once." +"C0000083","-1073741693","3221225603","STATUS_GUIDS_EXHAUSTED","The GUIDs could not be allocated because the Authority Agent was exhausted." +"C0000084","-1073741692","3221225604","STATUS_INVALID_ID_AUTHORITY","The value provided was an invalid value for an identifier authority." +"C0000085","-1073741691","3221225605","STATUS_AGENTS_EXHAUSTED","No more authority agent values are available for the particular identifier authority value." +"C0000086","-1073741690","3221225606","STATUS_INVALID_VOLUME_LABEL","An invalid volume label has been specified." +"C0000087","-1073741689","3221225607","STATUS_SECTION_NOT_EXTENDED","A mapped section could not be extended." +"C0000088","-1073741688","3221225608","STATUS_NOT_MAPPED_DATA","Specified section to flush does not map a data file." +"C0000089","-1073741687","3221225609","STATUS_RESOURCE_DATA_NOT_FOUND","Indicates the specified image file did not contain a resource section." +"C000008A","-1073741686","3221225610","STATUS_RESOURCE_TYPE_NOT_FOUND","Indicates the specified resource type cannot be found in the image file." +"C000008B","-1073741685","3221225611","STATUS_RESOURCE_NAME_NOT_FOUND","Indicates the specified resource name cannot be found in the image file." +"C000008C","-1073741684","3221225612","STATUS_ARRAY_BOUNDS_EXCEEDED","(EXCEPTION) Array bounds exceeded." +"C000008D","-1073741683","3221225613","STATUS_FLOAT_DENORMAL_OPERAND","(EXCEPTION) Floating-point denormal operand." +"C000008E","-1073741682","3221225614","STATUS_FLOAT_DIVIDE_BY_ZERO","(EXCEPTION) Floating-point division by zero." +"C000008F","-1073741681","3221225615","STATUS_FLOAT_INEXACT_RESULT","(EXCEPTION) Floating-point inexact result." +"C0000090","-1073741680","3221225616","STATUS_FLOAT_INVALID_OPERATION","(EXCEPTION) Floating-point invalid operation." +"C0000091","-1073741679","3221225617","STATUS_FLOAT_OVERFLOW","(EXCEPTION) Floating-point overflow." +"C0000092","-1073741678","3221225618","STATUS_FLOAT_STACK_CHECK","(EXCEPTION) Floating-point stack check." +"C0000093","-1073741677","3221225619","STATUS_FLOAT_UNDERFLOW","(EXCEPTION) Floating-point underflow." +"C0000094","-1073741676","3221225620","STATUS_INTEGER_DIVIDE_BY_ZERO","(EXCEPTION) Integer division by zero." +"C0000095","-1073741675","3221225621","STATUS_INTEGER_OVERFLOW","(EXCEPTION) Integer overflow." +"C0000096","-1073741674","3221225622","STATUS_PRIVILEGED_INSTRUCTION","(EXCEPTION) Privileged instruction." +"C0000097","-1073741673","3221225623","STATUS_TOO_MANY_PAGING_FILES","An attempt was made to install more paging files than the system supports." +"C0000098","-1073741672","3221225624","STATUS_FILE_INVALID","The volume for a file has been externally altered such that the opened file is no longer valid." +"C0000099","-1073741671","3221225625","STATUS_ALLOTTED_SPACE_EXCEEDED","When a block of memory is allotted for future updates, such as the memory allocated to hold discretionary access control and primary group information, successive updates might exceed the amount of memory originally allotted. Because a quota might already have been charged to several processes that have handles to the object, it is not reasonable to alter the size of the allocated memory. Instead, a request that requires more memory than has been allotted must fail and the STATUS_ALLOTTED_SPACE_EXCEEDED error returned." +"C000009A","-1073741670","3221225626","STATUS_INSUFFICIENT_RESOURCES","Insufficient system resources exist to complete the API." +"C000009B","-1073741669","3221225627","STATUS_DFS_EXIT_PATH_FOUND","An attempt has been made to open a DFS exit path control file." +"C000009C","-1073741668","3221225628","STATUS_DEVICE_DATA_ERROR","There are bad blocks (sectors) on the hard disk." +"C000009D","-1073741667","3221225629","STATUS_DEVICE_NOT_CONNECTED","There is bad cabling, non-termination, or the controller is not able to obtain access to the hard disk." +"C000009F","-1073741665","3221225631","STATUS_FREE_VM_NOT_AT_BASE","Virtual memory cannot be freed because the base address is not the base of the region and a region size of zero was specified." +"C00000A0","-1073741664","3221225632","STATUS_MEMORY_NOT_ALLOCATED","An attempt was made to free virtual memory that is not allocated." +"C00000A1","-1073741663","3221225633","STATUS_WORKING_SET_QUOTA","The working set is not big enough to allow the requested pages to be locked." +"C00000A2","-1073741662","3221225634","STATUS_MEDIA_WRITE_PROTECTED","(Write Protect Error) The disk cannot be written to because it is write-protected. Remove the write protection from the volume %hs in drive %hs." +"C00000A3","-1073741661","3221225635","STATUS_DEVICE_NOT_READY","(Drive Not Ready) The drive is not ready for use; its door might be open. Check drive %hs and make sure that a disk is inserted and that the drive door is closed." +"C00000A4","-1073741660","3221225636","STATUS_INVALID_GROUP_ATTRIBUTES","The specified attributes are invalid or are incompatible with the attributes for the group as a whole." +"C00000A5","-1073741659","3221225637","STATUS_BAD_IMPERSONATION_LEVEL","A specified impersonation level is invalid. Also used to indicate that a required impersonation level was not provided." +"C00000A6","-1073741658","3221225638","STATUS_CANT_OPEN_ANONYMOUS","An attempt was made to open an anonymous-level token. Anonymous tokens cannot be opened." +"C00000A7","-1073741657","3221225639","STATUS_BAD_VALIDATION_CLASS","The validation information class requested was invalid." +"C00000A8","-1073741656","3221225640","STATUS_BAD_TOKEN_TYPE","The type of a token object is inappropriate for its attempted use." +"C00000A9","-1073741655","3221225641","STATUS_BAD_MASTER_BOOT_RECORD","The type of a token object is inappropriate for its attempted use." +"C00000AA","-1073741654","3221225642","STATUS_INSTRUCTION_MISALIGNMENT","An attempt was made to execute an instruction at an unaligned address and the host system does not support unaligned instruction references." +"C00000AB","-1073741653","3221225643","STATUS_INSTANCE_NOT_AVAILABLE","The maximum named pipe instance count has been reached." +"C00000AC","-1073741652","3221225644","STATUS_PIPE_NOT_AVAILABLE","An instance of a named pipe cannot be found in the listening state." +"C00000AD","-1073741651","3221225645","STATUS_INVALID_PIPE_STATE","The named pipe is not in the connected or closing state." +"C00000AE","-1073741650","3221225646","STATUS_PIPE_BUSY","The specified pipe is set to complete operations and there are current I/O operations queued so that it cannot be changed to queue operations." +"C00000AF","-1073741649","3221225647","STATUS_ILLEGAL_FUNCTION","The specified handle is not open to the server end of the named pipe." +"C00000B0","-1073741648","3221225648","STATUS_PIPE_DISCONNECTED","The specified named pipe is in the disconnected state." +"C00000B1","-1073741647","3221225649","STATUS_PIPE_CLOSING","The specified named pipe is in the closing state." +"C00000B2","-1073741646","3221225650","STATUS_PIPE_CONNECTED","The specified named pipe is in the connected state." +"C00000B3","-1073741645","3221225651","STATUS_PIPE_LISTENING","The specified named pipe is in the listening state." +"C00000B4","-1073741644","3221225652","STATUS_INVALID_READ_MODE","The specified named pipe is not in message mode." +"C00000B5","-1073741643","3221225653","STATUS_IO_TIMEOUT","(Device Timeout) The specified I/O operation on %hs was not completed before the time-out period expired." +"C00000B6","-1073741642","3221225654","STATUS_FILE_FORCED_CLOSED","The specified file has been closed by another process." +"C00000B7","-1073741641","3221225655","STATUS_PROFILING_NOT_STARTED","Profiling is not started." +"C00000B8","-1073741640","3221225656","STATUS_PROFILING_NOT_STOPPED","Profiling is not stopped." +"C00000B9","-1073741639","3221225657","STATUS_COULD_NOT_INTERPRET","The passed ACL did not contain the minimum required information." +"C00000BA","-1073741638","3221225658","STATUS_FILE_IS_A_DIRECTORY","The file that was specified as a target is a directory, and the caller specified that it could be anything but a directory." +"C00000BB","-1073741637","3221225659","STATUS_NOT_SUPPORTED","The request is not supported." +"C00000BC","-1073741636","3221225660","STATUS_REMOTE_NOT_LISTENING","This remote computer is not listening." +"C00000BD","-1073741635","3221225661","STATUS_DUPLICATE_NAME","A duplicate name exists on the network." +"C00000BE","-1073741634","3221225662","STATUS_BAD_NETWORK_PATH","The network path cannot be located." +"C00000BF","-1073741633","3221225663","STATUS_NETWORK_BUSY","The network is busy." +"C00000C0","-1073741632","3221225664","STATUS_DEVICE_DOES_NOT_EXIST","This device does not exist." +"C00000C1","-1073741631","3221225665","STATUS_TOO_MANY_COMMANDS","The network BIOS command limit has been reached." +"C00000C2","-1073741630","3221225666","STATUS_ADAPTER_HARDWARE_ERROR","An I/O adapter hardware error has occurred." +"C00000C3","-1073741629","3221225667","STATUS_INVALID_NETWORK_RESPONSE","The network responded incorrectly." +"C00000C4","-1073741628","3221225668","STATUS_UNEXPECTED_NETWORK_ERROR","An unexpected network error occurred." +"C00000C5","-1073741627","3221225669","STATUS_BAD_REMOTE_ADAPTER","The remote adapter is not compatible." +"C00000C6","-1073741626","3221225670","STATUS_PRINT_QUEUE_FULL","The print queue is full." +"C00000C7","-1073741625","3221225671","STATUS_NO_SPOOL_SPACE","Space to store the file that is waiting to be printed is not available on the server." +"C00000C8","-1073741624","3221225672","STATUS_PRINT_CANCELLED","The requested print file has been canceled." +"C00000C9","-1073741623","3221225673","STATUS_NETWORK_NAME_DELETED","The network name was deleted." +"C00000CA","-1073741622","3221225674","STATUS_NETWORK_ACCESS_DENIED","Network access is denied." +"C00000CB","-1073741621","3221225675","STATUS_BAD_DEVICE_TYPE","(Incorrect Network Resource Type) The specified device type (LPT, for example) conflicts with the actual device type on the remote resource." +"C00000CC","-1073741620","3221225676","STATUS_BAD_NETWORK_NAME","(Network Name Not Found) The specified share name cannot be found on the remote server." +"C00000CD","-1073741619","3221225677","STATUS_TOO_MANY_NAMES","The name limit for the network adapter card of the local computer was exceeded." +"C00000CE","-1073741618","3221225678","STATUS_TOO_MANY_SESSIONS","The network BIOS session limit was exceeded." +"C00000CF","-1073741617","3221225679","STATUS_SHARING_PAUSED","File sharing has been temporarily paused." +"C00000D0","-1073741616","3221225680","STATUS_REQUEST_NOT_ACCEPTED","No more connections can be made to this remote computer at this time because the computer has already accepted the maximum number of connections." +"C00000D1","-1073741615","3221225681","STATUS_REDIRECTOR_PAUSED","Print or disk redirection is temporarily paused." +"C00000D2","-1073741614","3221225682","STATUS_NET_WRITE_FAULT","A network data fault occurred." +"C00000D3","-1073741613","3221225683","STATUS_PROFILING_AT_LIMIT","The number of active profiling objects is at the maximum and no more can be started." +"C00000D4","-1073741612","3221225684","STATUS_NOT_SAME_DEVICE","(Incorrect Volume) The destination file of a rename request is located on a different device than the source of the rename request." +"C00000D5","-1073741611","3221225685","STATUS_FILE_RENAMED","The specified file has been renamed and thus cannot be modified." +"C00000D6","-1073741610","3221225686","STATUS_VIRTUAL_CIRCUIT_CLOSED","(Network Request Timeout) The session with a remote server has been disconnected because the time-out interval for a request has expired." +"C00000D7","-1073741609","3221225687","STATUS_NO_SECURITY_ON_OBJECT","Indicates an attempt was made to operate on the security of an object that does not have security associated with it." +"C00000D8","-1073741608","3221225688","STATUS_CANT_WAIT","Used to indicate that an operation cannot continue without blocking for I/O." +"C00000D9","-1073741607","3221225689","STATUS_PIPE_EMPTY","Used to indicate that a read operation was done on an empty pipe." +"C00000DA","-1073741606","3221225690","STATUS_CANT_ACCESS_DOMAIN_INFO","Configuration information could not be read from the domain controller, either because the machine is unavailable or access has been denied." +"C00000DB","-1073741605","3221225691","STATUS_CANT_TERMINATE_SELF","Indicates that a thread attempted to terminate itself by default (called NtTerminateThread with NULL) and it was the last thread in the current process." +"C00000DC","-1073741604","3221225692","STATUS_INVALID_SERVER_STATE","Indicates the Sam Server was in the wrong state to perform the desired operation." +"C00000DD","-1073741603","3221225693","STATUS_INVALID_DOMAIN_STATE","Indicates the domain was in the wrong state to perform the desired operation." +"C00000DE","-1073741602","3221225694","STATUS_INVALID_DOMAIN_ROLE","This operation is only allowed for the primary domain controller of the domain." +"C00000DF","-1073741601","3221225695","STATUS_NO_SUCH_DOMAIN","The specified domain did not exist." +"C00000E0","-1073741600","3221225696","STATUS_DOMAIN_EXISTS","The specified domain already exists." +"C00000E1","-1073741599","3221225697","STATUS_DOMAIN_LIMIT_EXCEEDED","An attempt was made to exceed the limit on the number of domains per server for this release." +"C00000E2","-1073741598","3221225698","STATUS_OPLOCK_NOT_GRANTED","An error status returned when the opportunistic lock (oplock) request is denied." +"C00000E3","-1073741597","3221225699","STATUS_INVALID_OPLOCK_PROTOCOL","An error status returned when an invalid opportunistic lock (oplock) acknowledgment is received by a file system." +"C00000E4","-1073741596","3221225700","STATUS_INTERNAL_DB_CORRUPTION","This error indicates that the requested operation cannot be completed due to a catastrophic media failure or an on-disk data structure corruption." +"C00000E5","-1073741595","3221225701","STATUS_INTERNAL_ERROR","An internal error occurred." +"C00000E6","-1073741594","3221225702","STATUS_GENERIC_NOT_MAPPED","Indicates generic access types were contained in an access mask which should already be mapped to non-generic access types." +"C00000E7","-1073741593","3221225703","STATUS_BAD_DESCRIPTOR_FORMAT","Indicates a security descriptor is not in the necessary format (absolute or self-relative)." +"C00000E8","-1073741592","3221225704","STATUS_INVALID_USER_BUFFER","An access to a user buffer failed at an expected point in time. This code is defined because the caller does not want to accept STATUS_ACCESS_VIOLATION in its filter." +"C00000E9","-1073741591","3221225705","STATUS_UNEXPECTED_IO_ERROR","If an I/O error that is not defined in the standard FsRtl filter is returned, it is converted to the following error, which is guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception." +"C00000EA","-1073741590","3221225706","STATUS_UNEXPECTED_MM_CREATE_ERR","If an MM error that is not defined in the standard FsRtl filter is returned, it is converted to one of the following errors, which are guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception." +"C00000EB","-1073741589","3221225707","STATUS_UNEXPECTED_MM_MAP_ERROR","If an MM error that is not defined in the standard FsRtl filter is returned, it is converted to one of the following errors, which are guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception." +"C00000EC","-1073741588","3221225708","STATUS_UNEXPECTED_MM_EXTEND_ERR","If an MM error that is not defined in the standard FsRtl filter is returned, it is converted to one of the following errors, which are guaranteed to be in the filter. In this case, information is lost; however, the filter correctly handles the exception." +"C00000ED","-1073741587","3221225709","STATUS_NOT_LOGON_PROCESS","The requested action is restricted for use by logon processes only. The calling process has not registered as a logon process." +"C00000EE","-1073741586","3221225710","STATUS_LOGON_SESSION_EXISTS","An attempt has been made to start a new session manager or LSA logon session by using an ID that is already in use." +"C00000EF","-1073741585","3221225711","STATUS_INVALID_PARAMETER_1","An invalid parameter was passed to a service or function as the first argument." +"C00000F0","-1073741584","3221225712","STATUS_INVALID_PARAMETER_2","An invalid parameter was passed to a service or function as the second argument." +"C00000F1","-1073741583","3221225713","STATUS_INVALID_PARAMETER_3","An invalid parameter was passed to a service or function as the third argument." +"C00000F2","-1073741582","3221225714","STATUS_INVALID_PARAMETER_4","An invalid parameter was passed to a service or function as the fourth argument." +"C00000F3","-1073741581","3221225715","STATUS_INVALID_PARAMETER_5","An invalid parameter was passed to a service or function as the fifth argument." +"C00000F4","-1073741580","3221225716","STATUS_INVALID_PARAMETER_6","An invalid parameter was passed to a service or function as the sixth argument." +"C00000F5","-1073741579","3221225717","STATUS_INVALID_PARAMETER_7","An invalid parameter was passed to a service or function as the seventh argument." +"C00000F6","-1073741578","3221225718","STATUS_INVALID_PARAMETER_8","An invalid parameter was passed to a service or function as the eighth argument." +"C00000F7","-1073741577","3221225719","STATUS_INVALID_PARAMETER_9","An invalid parameter was passed to a service or function as the ninth argument." +"C00000F8","-1073741576","3221225720","STATUS_INVALID_PARAMETER_10","An invalid parameter was passed to a service or function as the tenth argument." +"C00000F9","-1073741575","3221225721","STATUS_INVALID_PARAMETER_11","An invalid parameter was passed to a service or function as the eleventh argument." +"C00000FA","-1073741574","3221225722","STATUS_INVALID_PARAMETER_12","An invalid parameter was passed to a service or function as the twelfth argument." +"C00000FB","-1073741573","3221225723","STATUS_REDIRECTOR_NOT_STARTED","An attempt was made to access a network file, but the network software was not yet started." +"C00000FC","-1073741572","3221225724","STATUS_REDIRECTOR_STARTED","An attempt was made to start the redirector, but the redirector has already been started." +"C00000FD","-1073741571","3221225725","STATUS_STACK_OVERFLOW","Stack overflow / exhaustion. A new guard page for the stack cannot be created." +"C00000FE","-1073741570","3221225726","STATUS_NO_SUCH_PACKAGE","A specified authentication package is unknown." +"C00000FF","-1073741569","3221225727","STATUS_BAD_FUNCTION_TABLE","A malformed function table was encountered during an unwind operation." +"C0000100","-1073741568","3221225728","STATUS_VARIABLE_NOT_FOUND","Indicates the specified environment variable name was not found in the specified environment block." +"C0000101","-1073741567","3221225729","STATUS_DIRECTORY_NOT_EMPTY","Indicates that the directory trying to be deleted is not empty." +"C0000102","-1073741566","3221225730","STATUS_FILE_CORRUPT_ERROR","(Corrupt File) The file or directory %hs is corrupt and unreadable. Run the Chkdsk utility." +"C0000103","-1073741565","3221225731","STATUS_NOT_A_DIRECTORY","A requested opened file is not a directory." +"C0000104","-1073741564","3221225732","STATUS_BAD_LOGON_SESSION_STATE","The logon session is not in a state that is consistent with the requested operation." +"C0000105","-1073741563","3221225733","STATUS_LOGON_SESSION_COLLISION","An internal LSA error has occurred. An authentication package has requested the creation of a logon session but the ID of an already existing logon session has been specified." +"C0000106","-1073741562","3221225734","STATUS_NAME_TOO_LONG","A specified name string is too long for its intended use." +"C0000107","-1073741561","3221225735","STATUS_FILES_OPEN","The user attempted to force close the files on a redirected drive, but there were opened files on the drive, and the user did not specify a sufficient level of force." +"C0000108","-1073741560","3221225736","STATUS_CONNECTION_IN_USE","The user attempted to force close the files on a redirected drive, but there were opened directories on the drive, and the user did not specify a sufficient level of force." +"C0000109","-1073741559","3221225737","STATUS_MESSAGE_NOT_FOUND","RtlFindMessage could not locate the requested message ID in the message table resource." +"C000010A","-1073741558","3221225738","STATUS_PROCESS_IS_TERMINATING","An attempt was made to duplicate an object handle into or out of an exiting process." +"C000010B","-1073741557","3221225739","STATUS_INVALID_LOGON_TYPE","Indicates an invalid value has been provided for the LogonType requested." +"C000010C","-1073741556","3221225740","STATUS_NO_GUID_TRANSLATION","Indicates that an attempt was made to assign protection to a file system file or directory and one of the SIDs in the security descriptor could not be translated into a GUID that could be stored by the file system. This causes the protection attempt to fail, which might cause a file creation attempt to fail." +"C000010D","-1073741555","3221225741","STATUS_CANNOT_IMPERSONATE","Indicates that an attempt has been made to impersonate via a named pipe that has not yet been read from." +"C000010E","-1073741554","3221225742","STATUS_IMAGE_ALREADY_LOADED","Indicates that the specified image is already loaded." +"C0000117","-1073741545","3221225751","STATUS_NO_LDT","Indicates that an attempt was made to change the size of the LDT for a process that has no LDT." +"C0000118","-1073741544","3221225752","STATUS_INVALID_LDT_SIZE","Indicates that an attempt was made to grow an LDT by setting its size, or that the size was not an even number of selectors." +"C0000119","-1073741543","3221225753","STATUS_INVALID_LDT_OFFSET","Indicates that the starting value for the LDT information was not an integral multiple of the selector size." +"C000011A","-1073741542","3221225754","STATUS_INVALID_LDT_DESCRIPTOR","Indicates that the user supplied an invalid descriptor when trying to set up LDT descriptors." +"C000011B","-1073741541","3221225755","STATUS_INVALID_IMAGE_NE_FORMAT","The specified image file did not have the correct format. It appears to be NE format." +"C000011C","-1073741540","3221225756","STATUS_RXACT_INVALID_STATE","Indicates that the transaction state of a registry subtree is incompatible with the requested operation. For example, a request has been made to start a new transaction with one already in progress, or a request has been made to apply a transaction when one is not currently in progress." +"C000011D","-1073741539","3221225757","STATUS_RXACT_COMMIT_FAILURE","Indicates an error has occurred during a registry transaction commit. The database has been left in an unknown, but probably inconsistent, state. The state of the registry transaction is left as COMMITTING." +"C000011E","-1073741538","3221225758","STATUS_MAPPED_FILE_SIZE_ZERO","An attempt was made to map a file of size zero with the maximum size specified as zero." +"C000011F","-1073741537","3221225759","STATUS_TOO_MANY_OPENED_FILES","Too many files are opened on a remote server. This error should only be returned by the Windows redirector on a remote drive." +"C0000120","-1073741536","3221225760","STATUS_CANCELLED","The I/O request was canceled." +"C0000121","-1073741535","3221225761","STATUS_CANNOT_DELETE","An attempt has been made to remove a file or directory that cannot be deleted." +"C0000122","-1073741534","3221225762","STATUS_INVALID_COMPUTER_NAME","Indicates a name that was specified as a remote computer name is syntactically invalid." +"C0000123","-1073741533","3221225763","STATUS_FILE_DELETED","An I/O request other than close was performed on a file after it was deleted, which can only happen to a request that did not complete before the last handle was closed via NtClose." +"C0000124","-1073741532","3221225764","STATUS_SPECIAL_ACCOUNT","Indicates an operation that is incompatible with built-in accounts has been attempted on a built-in (special) SAM account. For example, built-in accounts cannot be deleted." +"C0000125","-1073741531","3221225765","STATUS_SPECIAL_GROUP","The operation requested cannot be performed on the specified group because it is a built-in special group." +"C0000126","-1073741530","3221225766","STATUS_SPECIAL_USER","The operation requested cannot be performed on the specified user because it is a built-in special user." +"C0000127","-1073741529","3221225767","STATUS_MEMBERS_PRIMARY_GROUP","Indicates a member cannot be removed from a group because the group is currently the member's primary group." +"C0000128","-1073741528","3221225768","STATUS_FILE_CLOSED","An I/O request other than close and several other special case operations was attempted using a file object that had already been closed." +"C0000129","-1073741527","3221225769","STATUS_TOO_MANY_THREADS","Indicates a process has too many threads to perform the requested action. For example, assignment of a primary token can be performed only when a process has zero or one threads." +"C000012A","-1073741526","3221225770","STATUS_THREAD_NOT_IN_PROCESS","An attempt was made to operate on a thread within a specific process, but the specified thread is not in the specified process." +"C000012B","-1073741525","3221225771","STATUS_TOKEN_ALREADY_IN_USE","An attempt was made to establish a token for use as a primary token but the token is already in use. A token can only be the primary token of one process at a time." +"C000012C","-1073741524","3221225772","STATUS_PAGEFILE_QUOTA_EXCEEDED","The page file quota was exceeded." +"C000012D","-1073741523","3221225773","STATUS_COMMITMENT_LIMIT","(Out of Virtual Memory) Your system is low on virtual memory. To ensure that Windows runs correctly, increase the size of your virtual memory paging file. For more information, see Help." +"C000012E","-1073741522","3221225774","STATUS_INVALID_IMAGE_LE_FORMAT","The specified image file did not have the correct format: it appears to be LE format." +"C000012F","-1073741521","3221225775","STATUS_INVALID_IMAGE_NOT_MZ","The specified image file did not have the correct format: it did not have an initial MZ." +"C0000130","-1073741520","3221225776","STATUS_INVALID_IMAGE_PROTECT","The specified image file did not have the correct format: it did not have a proper e_lfarlc in the MZ header." +"C0000131","-1073741519","3221225777","STATUS_INVALID_IMAGE_WIN_16","The specified image file did not have the correct format: it appears to be a 16-bit Windows image." +"C0000132","-1073741518","3221225778","STATUS_LOGON_SERVER_CONFLICT","The Netlogon service cannot start because another Netlogon service running in the domain conflicts with the specified role." +"C0000133","-1073741517","3221225779","STATUS_TIME_DIFFERENCE_AT_DC","The time at the primary domain controller is different from the time at the backup domain controller or member server by too large an amount." +"C0000134","-1073741516","3221225780","STATUS_SYNCHRONIZATION_REQUIRED","On applicable Windows Server releases, the SAM database is signifiCan'tly out of synchronization with the copy on the domain controller. A complete synchronization is required." +"C0000135","-1073741515","3221225781","STATUS_DLL_NOT_FOUND","Possibly due to a missing dependency. (The most common dependency is `Microsoft.VCRedist.2015+.x64` / `.x86`)." +"C0000136","-1073741514","3221225782","STATUS_OPEN_FAILED","The NtCreateFile API failed. This error should never be returned to an application; it is a place holder for the Windows LAN Manager Redirector to use in its internal error-mapping routines." +"C0000137","-1073741513","3221225783","STATUS_IO_PRIVILEGE_FAILED","(Privilege Failed) The I/O permissions for the process could not be changed." +"C0000138","-1073741512","3221225784","STATUS_ORDINAL_NOT_FOUND","(Ordinal Not Found) The ordinal %ld could not be located in the dynamic link library %hs." +"C0000139","-1073741511","3221225785","STATUS_ENTRYPOINT_NOT_FOUND","(Entry Point Not Found) The procedure entry point %hs could not be located in the dynamic link library %hs." +"C000013A","-1073741510","3221225786","STATUS_CONTROL_C_EXIT","The application terminated as a result of a CTRL+C." +"C000013B","-1073741509","3221225787","STATUS_LOCAL_DISCONNECT","(Virtual Circuit Closed) The network transport on your computer has closed a network connection. There might or might not be I/O requests outstanding." +"C000013C","-1073741508","3221225788","STATUS_REMOTE_DISCONNECT","(Virtual Circuit Closed) The network transport on a remote computer has closed a network connection. There might or might not be I/O requests outstanding." +"C000013D","-1073741507","3221225789","STATUS_REMOTE_RESOURCES","(Insufficient Resources on Remote Computer) The remote computer has insufficient resources to complete the network request. For example, the remote computer might not have enough available memory to carry out the request at this time." +"C000013E","-1073741506","3221225790","STATUS_LINK_FAILED","(Virtual Circuit Closed) An existing connection (virtual circuit) has been broken at the remote computer. There is probably something wrong with the network software protocol or the network hardware on the remote computer." +"C000013F","-1073741505","3221225791","STATUS_LINK_TIMEOUT","(Virtual Circuit Closed) The network transport on your computer has closed a network connection because it had to wait too long for a response from the remote computer." +"C0000140","-1073741504","3221225792","STATUS_INVALID_CONNECTION","The connection handle that was given to the transport was invalid." +"C0000141","-1073741503","3221225793","STATUS_INVALID_ADDRESS","The address handle that was given to the transport was invalid." +"C0000142","-1073741502","3221225794","STATUS_DLL_INIT_FAILED","The application failed to initialize properly - does this package require `ElevationRequirement: elevationRequired`? ." +"C0000143","-1073741501","3221225795","STATUS_MISSING_SYSTEMFILE","(Missing System File) The required system file %hs is bad or missing." +"C0000144","-1073741500","3221225796","STATUS_UNHANDLED_EXCEPTION","(Application Error) The exception %s (0x%08lx) occurred in the application at location 0x%08lx." +"C0000145","-1073741499","3221225797","STATUS_APP_INIT_FAILURE","(Application Error) The application failed to initialize properly (0x%lx). Click OK to terminate the application." +"C0000146","-1073741498","3221225798","STATUS_PAGEFILE_CREATE_FAILED","(Unable to Create Paging File) The creation of the paging file %hs failed (%lx). The requested size was %ld." +"C0000147","-1073741497","3221225799","STATUS_NO_PAGEFILE","(No Paging File Specified) No paging file was specified in the system configuration." +"C0000148","-1073741496","3221225800","STATUS_INVALID_LEVEL","(Incorrect System Call Level) An invalid level was passed into the specified system call." +"C0000149","-1073741495","3221225801","STATUS_WRONG_PASSWORD_CORE","(Incorrect Password to LAN Manager Server) You specified an incorrect password to a LAN Manager 2.x or MS-NET server." +"C000014A","-1073741494","3221225802","STATUS_ILLEGAL_FLOAT_CONTEXT","(EXCEPTION) A real-mode application issued a floating-point instruction and floating-point hardware is not present." +"C000014B","-1073741493","3221225803","STATUS_PIPE_BROKEN","The pipe operation has failed because the other end of the pipe has been closed." +"C000014C","-1073741492","3221225804","STATUS_REGISTRY_CORRUPT","(The Registry Is Corrupt) The structure of one of the files that contains registry data is corrupt; the image of the file in memory is corrupt; or the file could not be recovered because the alternate copy or log was absent or corrupt." +"C000014D","-1073741491","3221225805","STATUS_REGISTRY_IO_FAILED","An I/O operation initiated by the Registry failed and cannot be recovered. The registry could not read in, write out, or flush one of the files that contain the system's image of the registry." +"C000014E","-1073741490","3221225806","STATUS_NO_EVENT_PAIR","An event pair synchronization operation was performed using the thread-specific client/server event pair object, but no event pair object was associated with the thread." +"C000014F","-1073741489","3221225807","STATUS_UNRECOGNIZED_VOLUME","The volume does not contain a recognized file system. Be sure that all required file system drivers are loaded and that the volume is not corrupt." +"C0000150","-1073741488","3221225808","STATUS_SERIAL_NO_DEVICE_INITED","No serial device was successfully initialized. The serial driver will unload." +"C0000151","-1073741487","3221225809","STATUS_NO_SUCH_ALIAS","The specified local group does not exist." +"C0000152","-1073741486","3221225810","STATUS_MEMBER_NOT_IN_ALIAS","The specified account name is not a member of the group." +"C0000153","-1073741485","3221225811","STATUS_MEMBER_IN_ALIAS","The specified account name is already a member of the group." +"C0000154","-1073741484","3221225812","STATUS_ALIAS_EXISTS","The specified local group already exists." +"C0000155","-1073741483","3221225813","STATUS_LOGON_NOT_GRANTED","A requested type of logon (for example, interactive, network, and service) is not granted by the local security policy of the target system. Ask the system administrator to grant the necessary form of logon." +"C0000156","-1073741482","3221225814","STATUS_TOO_MANY_SECRETS","The maximum number of secrets that can be stored in a single system was exceeded. The length and number of secrets is limited to satisfy U.S. State Department export restrictions." +"C0000157","-1073741481","3221225815","STATUS_SECRET_TOO_LONG","The length of a secret exceeds the maximum allowable length. The length and number of secrets is limited to satisfy U.S. State Department export restrictions." +"C0000158","-1073741480","3221225816","STATUS_INTERNAL_DB_ERROR","The local security authority (LSA) database contains an internal inconsistency." +"C0000159","-1073741479","3221225817","STATUS_FULLSCREEN_MODE","The requested operation cannot be performed in full-screen mode." +"C000015A","-1073741478","3221225818","STATUS_TOO_MANY_CONTEXT_IDS","During a logon attempt, the user's security context accumulated too many security IDs. This is a very unusual situation. Remove the user from some global or local groups to reduce the number of security IDs to incorporate into the security context." +"C000015B","-1073741477","3221225819","STATUS_LOGON_TYPE_NOT_GRANTED","A user has requested a type of logon (for example, interactive or network) that has not been granted. An administrator has control over who can logon interactively and through the network." +"C000015C","-1073741476","3221225820","STATUS_NOT_REGISTRY_FILE","The system has attempted to load or restore a file into the registry, and the specified file is not in the format of a registry file." +"C000015D","-1073741475","3221225821","STATUS_NT_CROSS_ENCRYPTION_REQUIRED","An attempt was made to change a user password in the security account manager without providing the necessary Windows cross-encrypted password." +"C000015E","-1073741474","3221225822","STATUS_DOMAIN_CTRLR_CONFIG_ERROR","A domain server has an incorrect configuration." +"C000015F","-1073741473","3221225823","STATUS_FT_MISSING_MEMBER","An attempt was made to explicitly access the secondary copy of information via a device control to the fault tolerance driver and the secondary copy is not present in the system." +"C0000160","-1073741472","3221225824","STATUS_ILL_FORMED_SERVICE_ENTRY","A configuration registry node that represents a driver service entry was ill-formed and did not contain the required value entries." +"C0000161","-1073741471","3221225825","STATUS_ILLEGAL_CHARACTER","An illegal character was encountered. For a multibyte character set, this includes a lead byte without a succeeding trail byte. For the Unicode character set this includes the characters 0xFFFF and 0xFFFE." +"C0000162","-1073741470","3221225826","STATUS_UNMAPPABLE_CHARACTER","No mapping for the Unicode character exists in the target multibyte code page." +"C0000163","-1073741469","3221225827","STATUS_UNDEFINED_CHARACTER","The Unicode character is not defined in the Unicode character set that is installed on the system." +"C0000164","-1073741468","3221225828","STATUS_FLOPPY_VOLUME","The paging file cannot be created on a floppy disk." +"C0000165","-1073741467","3221225829","STATUS_FLOPPY_ID_MARK_NOT_FOUND","(Floppy Disk Error) While accessing a floppy disk, an ID address mark was not found." +"C0000166","-1073741466","3221225830","STATUS_FLOPPY_WRONG_CYLINDER","(Floppy Disk Error) While accessing a floppy disk, the track address from the sector ID field was found to be different from the track address that is maintained by the controller." +"C0000167","-1073741465","3221225831","STATUS_FLOPPY_UNKNOWN_ERROR","(Floppy Disk Error) The floppy disk controller reported an error that is not recognized by the floppy disk driver." +"C0000168","-1073741464","3221225832","STATUS_FLOPPY_BAD_REGISTERS","(Floppy Disk Error) While accessing a floppy-disk, the controller returned inconsistent results via its registers." +"C0000169","-1073741463","3221225833","STATUS_DISK_RECALIBRATE_FAILED","(Hard Disk Error) While accessing the hard disk, a recalibrate operation failed, even after retries." +"C000016A","-1073741462","3221225834","STATUS_DISK_OPERATION_FAILED","(Hard Disk Error) While accessing the hard disk, a disk operation failed even after retries." +"C000016B","-1073741461","3221225835","STATUS_DISK_RESET_FAILED","(Hard Disk Error) While accessing the hard disk, a disk controller reset was needed, but even that failed." +"C000016C","-1073741460","3221225836","STATUS_SHARED_IRQ_BUSY","An attempt was made to open a device that was sharing an interrupt request (IRQ) with other devices. At least one other device that uses that IRQ was already opened. Two concurrent opens of devices that share an IRQ and only work via interrupts is not supported for the particular bus type that the devices use." +"C000016D","-1073741459","3221225837","STATUS_FT_ORPHANING","(FT Orphaning) A disk that is part of a fault-tolerant volume can no longer be accessed." +"C000016E","-1073741458","3221225838","STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT","The basic input/output system (BIOS) failed to connect a system interrupt to the device or bus for which the device is connected." +"C0000172","-1073741454","3221225842","STATUS_PARTITION_FAILURE","The tape could not be partitioned." +"C0000173","-1073741453","3221225843","STATUS_INVALID_BLOCK_LENGTH","When accessing a new tape of a multi-volume partition, the current blocksize is incorrect." +"C0000174","-1073741452","3221225844","STATUS_DEVICE_NOT_PARTITIONED","The tape partition information could not be found when loading a tape." +"C0000175","-1073741451","3221225845","STATUS_UNABLE_TO_LOCK_MEDIA","An attempt to lock the eject media mechanism failed." +"C0000176","-1073741450","3221225846","STATUS_UNABLE_TO_UNLOAD_MEDIA","An attempt to unload media failed." +"C0000177","-1073741449","3221225847","STATUS_EOM_OVERFLOW","The physical end of tape was detected." +"C0000178","-1073741448","3221225848","STATUS_NO_MEDIA","(No Media) There is no media in the drive. Insert media into drive %hs." +"C000017A","-1073741446","3221225850","STATUS_NO_SUCH_MEMBER","A member could not be added to or removed from the local group because the member does not exist." +"C000017B","-1073741445","3221225851","STATUS_INVALID_MEMBER","A new member could not be added to a local group because the member has the wrong account type." +"C000017C","-1073741444","3221225852","STATUS_KEY_DELETED","An illegal operation was attempted on a registry key that has been marked for deletion." +"C000017D","-1073741443","3221225853","STATUS_NO_LOG_SPACE","The system could not allocate the required space in a registry log." +"C000017E","-1073741442","3221225854","STATUS_TOO_MANY_SIDS","Too many SIDs have been specified." +"C000017F","-1073741441","3221225855","STATUS_LM_CROSS_ENCRYPTION_REQUIRED","An attempt was made to change a user password in the security account manager without providing the necessary LM cross-encrypted password." +"C0000180","-1073741440","3221225856","STATUS_KEY_HAS_CHILDREN","An attempt was made to create a symbolic link in a registry key that already has subkeys or values." +"C0000181","-1073741439","3221225857","STATUS_CHILD_MUST_BE_VOLATILE","An attempt was made to create a stable subkey under a volatile parent key." +"C0000182","-1073741438","3221225858","STATUS_DEVICE_CONFIGURATION_ERROR","The I/O device is configured incorrectly or the configuration parameters to the driver are incorrect." +"C0000183","-1073741437","3221225859","STATUS_DRIVER_INTERNAL_ERROR","An error was detected between two drivers or within an I/O driver." +"C0000184","-1073741436","3221225860","STATUS_INVALID_DEVICE_STATE","The device is not in a valid state to perform this request." +"C0000185","-1073741435","3221225861","STATUS_IO_DEVICE_ERROR","The I/O device reported an I/O error." +"C0000186","-1073741434","3221225862","STATUS_DEVICE_PROTOCOL_ERROR","A protocol error was detected between the driver and the device." +"C0000187","-1073741433","3221225863","STATUS_BACKUP_CONTROLLER","This operation is only allowed for the primary domain controller of the domain." +"C0000188","-1073741432","3221225864","STATUS_LOG_FILE_FULL","The log file space is insufficient to support this operation." +"C0000189","-1073741431","3221225865","STATUS_TOO_LATE","A write operation was attempted to a volume after it was dismounted." +"C000018A","-1073741430","3221225866","STATUS_NO_TRUST_LSA_SECRET","The workstation does not have a trust secret for the primary domain in the local LSA database." +"C000018B","-1073741429","3221225867","STATUS_NO_TRUST_SAM_ACCOUNT","On applicable Windows Server releases, the SAM database does not have a computer account for this workstation trust relationship." +"C000018C","-1073741428","3221225868","STATUS_TRUSTED_DOMAIN_FAILURE","The logon request failed because the trust relationship between the primary domain and the trusted domain failed." +"C000018D","-1073741427","3221225869","STATUS_TRUSTED_RELATIONSHIP_FAILURE","The logon request failed because the trust relationship between this workstation and the primary domain failed." +"C000018E","-1073741426","3221225870","STATUS_EVENTLOG_FILE_CORRUPT","The Eventlog log file is corrupt." +"C000018F","-1073741425","3221225871","STATUS_EVENTLOG_CANT_START","No Eventlog log file could be opened. The Eventlog service did not start." +"C0000190","-1073741424","3221225872","STATUS_TRUST_FAILURE","The network logon failed. This might be because the validation authority cannot be reached." +"C0000191","-1073741423","3221225873","STATUS_MUTANT_LIMIT_EXCEEDED","An attempt was made to acquire a mutant such that its maximum count would have been exceeded." +"C0000192","-1073741422","3221225874","STATUS_NETLOGON_NOT_STARTED","An attempt was made to logon, but the NetLogon service was not started." +"C0000193","-1073741421","3221225875","STATUS_ACCOUNT_EXPIRED","The user account has expired." +"C0000194","-1073741420","3221225876","STATUS_POSSIBLE_DEADLOCK","(EXCEPTION) Possible deadlock condition." +"C0000195","-1073741419","3221225877","STATUS_NETWORK_CREDENTIAL_CONFLICT","Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again." +"C0000196","-1073741418","3221225878","STATUS_REMOTE_SESSION_LIMIT","An attempt was made to establish a session to a network server, but there are already too many sessions established to that server." +"C0000197","-1073741417","3221225879","STATUS_EVENTLOG_FILE_CHANGED","The log file has changed between reads." +"C0000198","-1073741416","3221225880","STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT","The account used is an interdomain trust account. Use your global user account or local user account to access this server." +"C0000199","-1073741415","3221225881","STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT","The account used is a computer account. Use your global user account or local user account to access this server." +"C000019A","-1073741414","3221225882","STATUS_NOLOGON_SERVER_TRUST_ACCOUNT","The account used is a server trust account. Use your global user account or local user account to access this server." +"C000019B","-1073741413","3221225883","STATUS_DOMAIN_TRUST_INCONSISTENT","The name or SID of the specified domain is inconsistent with the trust information for that domain." +"C000019C","-1073741412","3221225884","STATUS_FS_DRIVER_REQUIRED","A volume has been accessed for which a file system driver is required that has not yet been loaded." +"C000019D","-1073741411","3221225885","STATUS_IMAGE_ALREADY_LOADED_AS_DLL","Indicates that the specified image is already loaded as a DLL." +"C000019E","-1073741410","3221225886","STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING","Short name settings cannot be changed on this volume due to the global registry setting." +"C000019F","-1073741409","3221225887","STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME","Short names are not enabled on this volume." +"C00001A0","-1073741408","3221225888","STATUS_SECURITY_STREAM_IS_INCONSISTENT","The security stream for the given volume is in an inconsistent state. Please run CHKDSK on the volume." +"C00001A1","-1073741407","3221225889","STATUS_INVALID_LOCK_RANGE","A requested file lock operation cannot be processed due to an invalid byte range." +"C00001A2","-1073741406","3221225890","STATUS_INVALID_ACE_CONDITION","The specified access control entry (ACE) contains an invalid condition." +"C00001A3","-1073741405","3221225891","STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT","The subsystem needed to support the image type is not present." +"C00001A4","-1073741404","3221225892","STATUS_NOTIFICATION_GUID_ALREADY_DEFINED","The specified file already has a notification GUID associated with it." +"C0000201","-1073741311","3221225985","STATUS_NETWORK_OPEN_RESTRICTION","A remote open failed because the network open restrictions were not satisfied." +"C0000202","-1073741310","3221225986","STATUS_NO_USER_SESSION_KEY","There is no user session key for the specified logon session." +"C0000203","-1073741309","3221225987","STATUS_USER_SESSION_DELETED","The remote user session has been deleted." +"C0000204","-1073741308","3221225988","STATUS_RESOURCE_LANG_NOT_FOUND","Indicates the specified resource language ID cannot be found in the image file." +"C0000205","-1073741307","3221225989","STATUS_INSUFF_SERVER_RESOURCES","Insufficient server resources exist to complete the request." +"C0000206","-1073741306","3221225990","STATUS_INVALID_BUFFER_SIZE","The size of the buffer is invalid for the specified operation." +"C0000207","-1073741305","3221225991","STATUS_INVALID_ADDRESS_COMPONENT","The transport rejected the specified network address as invalid." +"C0000208","-1073741304","3221225992","STATUS_INVALID_ADDRESS_WILDCARD","The transport rejected the specified network address due to invalid use of a wildcard." +"C0000209","-1073741303","3221225993","STATUS_TOO_MANY_ADDRESSES","The transport address could not be opened because all the available addresses are in use." +"C000020A","-1073741302","3221225994","STATUS_ADDRESS_ALREADY_EXISTS","The transport address could not be opened because it already exists." +"C000020B","-1073741301","3221225995","STATUS_ADDRESS_CLOSED","The transport address is now closed." +"C000020C","-1073741300","3221225996","STATUS_CONNECTION_DISCONNECTED","The transport connection is now disconnected." +"C000020D","-1073741299","3221225997","STATUS_CONNECTION_RESET","The transport connection has been reset." +"C000020E","-1073741298","3221225998","STATUS_TOO_MANY_NODES","The transport cannot dynamically acquire any more nodes." +"C000020F","-1073741297","3221225999","STATUS_TRANSACTION_ABORTED","The transport aborted a pending transaction." +"C0000210","-1073741296","3221226000","STATUS_TRANSACTION_TIMED_OUT","The transport timed out a request that is waiting for a response." +"C0000211","-1073741295","3221226001","STATUS_TRANSACTION_NO_RELEASE","The transport did not receive a release for a pending response." +"C0000212","-1073741294","3221226002","STATUS_TRANSACTION_NO_MATCH","The transport did not find a transaction that matches the specific token." +"C0000213","-1073741293","3221226003","STATUS_TRANSACTION_RESPONDED","The transport had previously responded to a transaction request." +"C0000214","-1073741292","3221226004","STATUS_TRANSACTION_INVALID_ID","The transport does not recognize the specified transaction request ID." +"C0000215","-1073741291","3221226005","STATUS_TRANSACTION_INVALID_TYPE","The transport does not recognize the specified transaction request type." +"C0000216","-1073741290","3221226006","STATUS_NOT_SERVER_SESSION","The transport can only process the specified request on the server side of a session." +"C0000217","-1073741289","3221226007","STATUS_NOT_CLIENT_SESSION","The transport can only process the specified request on the client side of a session." +"C0000218","-1073741288","3221226008","STATUS_CANNOT_LOAD_REGISTRY_FILE","(Registry File Failure) The registry cannot load the hive (file): %hs or its log or alternate. It is corrupt, absent, or not writable." +"C0000219","-1073741287","3221226009","STATUS_DEBUG_ATTACH_FAILED","(Unexpected Failure in DebugActiveProcess) An unexpected failure occurred while processing a DebugActiveProcess API request. Choosing OK will terminate the process, and choosing Cancel will ignore the error." +"C000021A","-1073741286","3221226010","STATUS_SYSTEM_PROCESS_TERMINATED","(Fatal System Error) The %hs system process terminated unexpectedly with a status of 0x%08x (0x%08x 0x%08x). The system has been shut down." +"C000021B","-1073741285","3221226011","STATUS_DATA_NOT_ACCEPTED","(Data Not Accepted) The TDI client could not handle the data received during an indication." +"C000021C","-1073741284","3221226012","STATUS_NO_BROWSER_SERVERS_FOUND","(Unable to Retrieve Browser Server List) The list of servers for this workgroup is not currently available." +"C000021D","-1073741283","3221226013","STATUS_VDM_HARD_ERROR","NTVDM encountered a hard error." +"C000021E","-1073741282","3221226014","STATUS_DRIVER_CANCEL_TIMEOUT","(Cancel Timeout) The driver %hs failed to complete a canceled I/O request in the allotted time." +"C000021F","-1073741281","3221226015","STATUS_REPLY_MESSAGE_MISMATCH","(Reply Message Mismatch) An attempt was made to reply to an LPC message, but the thread specified by the client ID in the message was not waiting on that message." +"C0000220","-1073741280","3221226016","STATUS_MAPPED_ALIGNMENT","(Mapped View Alignment Incorrect) An attempt was made to map a view of a file, but either the specified base address or the offset into the file were not aligned on the proper allocation granularity." +"C0000221","-1073741279","3221226017","STATUS_IMAGE_CHECKSUM_MISMATCH","(Bad Image Checksum) The image %hs is possibly corrupt. The header checksum does not match the computed checksum." +"C0000222","-1073741278","3221226018","STATUS_LOST_WRITEBEHIND_DATA","(Delayed Write Failed) Windows was unable to save all the data for the file %hs. The data has been lost. This error might be caused by a failure of your computer hardware or network connection. Try to save this file elsewhere." +"C0000223","-1073741277","3221226019","STATUS_CLIENT_SERVER_PARAMETERS_INVALID","The parameters passed to the server in the client/server shared memory window were invalid. Too much data might have been put in the shared memory window." +"C0000224","-1073741276","3221226020","STATUS_PASSWORD_MUST_CHANGE","The user password must be changed before logging on the first time." +"C0000225","-1073741275","3221226021","STATUS_NOT_FOUND","The object was not found." +"C0000226","-1073741274","3221226022","STATUS_NOT_TINY_STREAM","The stream is not a tiny stream." +"C0000227","-1073741273","3221226023","STATUS_RECOVERY_FAILURE","A transaction recovery failed." +"C0000228","-1073741272","3221226024","STATUS_STACK_OVERFLOW_READ","The request must be handled by the stack overflow code." +"C0000229","-1073741271","3221226025","STATUS_FAIL_CHECK","A consistency check failed." +"C000022A","-1073741270","3221226026","STATUS_DUPLICATE_OBJECTID","The attempt to insert the ID in the index failed because the ID is already in the index." +"C000022B","-1073741269","3221226027","STATUS_OBJECTID_EXISTS","The attempt to set the object ID failed because the object already has an ID." +"C000022C","-1073741268","3221226028","STATUS_CONVERT_TO_LARGE","Internal OFS status codes indicating how an allocation operation is handled. Either it is retried after the containing oNode is moved or the extent stream is converted to a large stream." +"C000022D","-1073741267","3221226029","STATUS_RETRY","The request needs to be retried." +"C000022E","-1073741266","3221226030","STATUS_FOUND_OUT_OF_SCOPE","The attempt to find the object found an object on the volume that matches by ID; however, it is out of the scope of the handle that is used for the operation." +"C000022F","-1073741265","3221226031","STATUS_ALLOCATE_BUCKET","The bucket array must be grown. Retry the transaction after doing so." +"C0000230","-1073741264","3221226032","STATUS_PROPSET_NOT_FOUND","The specified property set does not exist on the object." +"C0000231","-1073741263","3221226033","STATUS_MARSHALL_OVERFLOW","The user/kernel marshaling buffer has overflowed." +"C0000232","-1073741262","3221226034","STATUS_INVALID_VARIANT","The supplied variant structure contains invalid data." +"C0000233","-1073741261","3221226035","STATUS_DOMAIN_CONTROLLER_NOT_FOUND","A domain controller for this domain was not found." +"C0000234","-1073741260","3221226036","STATUS_ACCOUNT_LOCKED_OUT","The user account has been automatically locked because too many invalid logon attempts or password change attempts have been requested." +"C0000235","-1073741259","3221226037","STATUS_HANDLE_NOT_CLOSABLE","NtClose was called on a handle that was protected from close via NtSetInformationObject." +"C0000236","-1073741258","3221226038","STATUS_CONNECTION_REFUSED","The transport-connection attempt was refused by the remote system." +"C0000237","-1073741257","3221226039","STATUS_GRACEFUL_DISCONNECT","The transport connection was gracefully closed." +"C0000238","-1073741256","3221226040","STATUS_ADDRESS_ALREADY_ASSOCIATED","The transport endpoint already has an address associated with it." +"C0000239","-1073741255","3221226041","STATUS_ADDRESS_NOT_ASSOCIATED","An address has not yet been associated with the transport endpoint." +"C000023A","-1073741254","3221226042","STATUS_CONNECTION_INVALID","An operation was attempted on a nonexistent transport connection." +"C000023B","-1073741253","3221226043","STATUS_CONNECTION_ACTIVE","An invalid operation was attempted on an active transport connection." +"C000023C","-1073741252","3221226044","STATUS_NETWORK_UNREACHABLE","The remote network is not reachable by the transport." +"C000023D","-1073741251","3221226045","STATUS_HOST_UNREACHABLE","The remote system is not reachable by the transport." +"C000023E","-1073741250","3221226046","STATUS_PROTOCOL_UNREACHABLE","The remote system does not support the transport protocol." +"C000023F","-1073741249","3221226047","STATUS_PORT_UNREACHABLE","No service is operating at the destination port of the transport on the remote system." +"C0000240","-1073741248","3221226048","STATUS_REQUEST_ABORTED","The request was aborted." +"C0000241","-1073741247","3221226049","STATUS_CONNECTION_ABORTED","The transport connection was aborted by the local system." +"C0000242","-1073741246","3221226050","STATUS_BAD_COMPRESSION_BUFFER","The specified buffer contains ill-formed data." +"C0000243","-1073741245","3221226051","STATUS_USER_MAPPED_FILE","The requested operation cannot be performed on a file with a user mapped section open." +"C0000244","-1073741244","3221226052","STATUS_AUDIT_FAILED","(Audit Failed) An attempt to generate a security audit failed." +"C0000245","-1073741243","3221226053","STATUS_TIMER_RESOLUTION_NOT_SET","The timer resolution was not previously set by the current process." +"C0000246","-1073741242","3221226054","STATUS_CONNECTION_COUNT_LIMIT","A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached." +"C0000247","-1073741241","3221226055","STATUS_LOGIN_TIME_RESTRICTION","Attempting to log on during an unauthorized time of day for this account." +"C0000248","-1073741240","3221226056","STATUS_LOGIN_WKSTA_RESTRICTION","The account is not authorized to log on from this station." +"C0000249","-1073741239","3221226057","STATUS_IMAGE_MP_UP_MISMATCH","(UP/MP Image Mismatch) The image %hs has been modified for use on a uniprocessor system, but you are running it on a multiprocessor machine. Reinstall the image file." +"C0000250","-1073741232","3221226064","STATUS_INSUFFICIENT_LOGON_INFO","There is insufficient account information to log you on." +"C0000251","-1073741231","3221226065","STATUS_BAD_DLL_ENTRYPOINT","(Invalid DLL Entrypoint) The dynamic link library %hs is not written correctly. The stack pointer has been left in an inconsistent state. The entry point should be declared as WINAPI or STDCALL. Select YES to fail the DLL load. Select NO to continue execution. Selecting NO might cause the application to operate incorrectly." +"C0000252","-1073741230","3221226066","STATUS_BAD_SERVICE_ENTRYPOINT","(Invalid Service Callback Entrypoint) The %hs service is not written correctly. The stack pointer has been left in an inconsistent state. The callback entry point should be declared as WINAPI or STDCALL. Selecting OK will cause the service to continue operation. However, the service process might operate incorrectly." +"C0000253","-1073741229","3221226067","STATUS_LPC_REPLY_LOST","The server received the messages but did not send a reply." +"C0000254","-1073741228","3221226068","STATUS_IP_ADDRESS_CONFLICT1","There is an IP address conflict with another system on the network." +"C0000255","-1073741227","3221226069","STATUS_IP_ADDRESS_CONFLICT2","There is an IP address conflict with another system on the network." +"C0000256","-1073741226","3221226070","STATUS_REGISTRY_QUOTA_LIMIT","(Low On Registry Space) The system has reached the maximum size that is allowed for the system part of the registry. Additional storage requests will be ignored." +"C0000257","-1073741225","3221226071","STATUS_PATH_NOT_COVERED","The contacted server does not support the indicated part of the DFS namespace." +"C0000258","-1073741224","3221226072","STATUS_NO_CALLBACK_ACTIVE","A callback return system service cannot be executed when no callback is active." +"C0000259","-1073741223","3221226073","STATUS_LICENSE_QUOTA_EXCEEDED","The service being accessed is licensed for a particular number of connections. No more connections can be made to the service at this time because the service has already accepted the maximum number of connections." +"C000025A","-1073741222","3221226074","STATUS_PWD_TOO_SHORT","The password provided is too short to meet the policy of your user account. Choose a longer password." +"C000025B","-1073741221","3221226075","STATUS_PWD_TOO_RECENT","The policy of your user account does not allow you to change passwords too frequently. This is done to prevent users from changing back to a familiar, but potentially discovered, password. If you feel your password has been compromised, contact your administrator immediately to have a new one assigned." +"C000025C","-1073741220","3221226076","STATUS_PWD_HISTORY_CONFLICT","You have attempted to change your password to one that you have used in the past. The policy of your user account does not allow this. Select a password that you have not previously used." +"C000025E","-1073741218","3221226078","STATUS_PLUGPLAY_NO_DEVICE","You have attempted to load a legacy device driver while its device instance had been disabled." +"C000025F","-1073741217","3221226079","STATUS_UNSUPPORTED_COMPRESSION","The specified compression format is unsupported." +"C0000260","-1073741216","3221226080","STATUS_INVALID_HW_PROFILE","The specified hardware profile configuration is invalid." +"C0000261","-1073741215","3221226081","STATUS_INVALID_PLUGPLAY_DEVICE_PATH","The specified Plug and Play registry device path is invalid." +"C0000262","-1073741214","3221226082","STATUS_DRIVER_ORDINAL_NOT_FOUND","(Driver Entry Point Not Found) The %hs device driver could not locate the ordinal %ld in driver %hs." +"C0000263","-1073741213","3221226083","STATUS_DRIVER_ENTRYPOINT_NOT_FOUND","(Driver Entry Point Not Found) The %hs device driver could not locate the entry point %hs in driver %hs." +"C0000264","-1073741212","3221226084","STATUS_RESOURCE_NOT_OWNED","(Application Error) The application attempted to release a resource it did not own. Click OK to terminate the application." +"C0000265","-1073741211","3221226085","STATUS_TOO_MANY_LINKS","An attempt was made to create more links on a file than the file system supports." +"C0000266","-1073741210","3221226086","STATUS_QUOTA_LIST_INCONSISTENT","The specified quota list is internally inconsistent with its descriptor." +"C0000267","-1073741209","3221226087","STATUS_FILE_IS_OFFLINE","The specified file has been relocated to offline storage." +"C0000268","-1073741208","3221226088","STATUS_EVALUATION_EXPIRATION","(Windows Evaluation Notification) The evaluation period for this installation of Windows has expired. This system will shutdown in 1 hour. To restore access to this installation of Windows, upgrade this installation by using a licensed distribution of this product." +"C0000269","-1073741207","3221226089","STATUS_ILLEGAL_DLL_RELOCATION","(Illegal System DLL Relocation) The system DLL %hs was relocated in memory. The application will not run properly. The relocation occurred because the DLL %hs occupied an address range that is reserved for Windows system DLLs. The vendor supplying the DLL should be contacted for a new DLL." +"C000026A","-1073741206","3221226090","STATUS_LICENSE_VIOLATION","(License Violation) The system has detected tampering with your registered product type. This is a violation of your software license. Tampering with the product type is not permitted." +"C000026B","-1073741205","3221226091","STATUS_DLL_INIT_FAILED_LOGOFF","(DLL Initialization Failed) The application failed to initialize because the window station is shutting down." +"C000026C","-1073741204","3221226092","STATUS_DRIVER_UNABLE_TO_LOAD","(Unable to Load Device Driver) %hs device driver could not be loaded. Error Status was 0x%x." +"C000026D","-1073741203","3221226093","STATUS_DFS_UNAVAILABLE","DFS is unavailable on the contacted server." +"C000026E","-1073741202","3221226094","STATUS_VOLUME_DISMOUNTED","An operation was attempted to a volume after it was dismounted." +"C000026F","-1073741201","3221226095","STATUS_WX86_INTERNAL_ERROR","An internal error occurred in the Win32 x86 emulation subsystem." +"C0000270","-1073741200","3221226096","STATUS_WX86_FLOAT_STACK_CHECK","Win32 x86 emulation subsystem floating-point stack check." +"C0000271","-1073741199","3221226097","STATUS_VALIDATE_CONTINUE","The validation process needs to continue on to the next step." +"C0000272","-1073741198","3221226098","STATUS_NO_MATCH","There was no match for the specified key in the index." +"C0000273","-1073741197","3221226099","STATUS_NO_MORE_MATCHES","There are no more matches for the current index enumeration." +"C0000275","-1073741195","3221226101","STATUS_NOT_A_REPARSE_POINT","The NTFS file or directory is not a reparse point." +"C0000276","-1073741194","3221226102","STATUS_IO_REPARSE_TAG_INVALID","The Windows I/O reparse tag passed for the NTFS reparse point is invalid." +"C0000277","-1073741193","3221226103","STATUS_IO_REPARSE_TAG_MISMATCH","The Windows I/O reparse tag does not match the one that is in the NTFS reparse point." +"C0000278","-1073741192","3221226104","STATUS_IO_REPARSE_DATA_INVALID","The user data passed for the NTFS reparse point is invalid." +"C0000279","-1073741191","3221226105","STATUS_IO_REPARSE_TAG_NOT_HANDLED","The layered file system driver for this I/O tag did not handle it when needed." +"C000027B","-1073741189","3221226107","Stowed Exception","A Stowed Exception is raised when an asynchronous operation fails." +"C0000280","-1073741184","3221226112","STATUS_REPARSE_POINT_NOT_RESOLVED","The NTFS symbolic link could not be resolved even though the initial file name is valid." +"C0000281","-1073741183","3221226113","STATUS_DIRECTORY_IS_A_REPARSE_POINT","The NTFS directory is a reparse point." +"C0000282","-1073741182","3221226114","STATUS_RANGE_LIST_CONFLICT","The range could not be added to the range list because of a conflict." +"C0000283","-1073741181","3221226115","STATUS_SOURCE_ELEMENT_EMPTY","The specified medium changer source element contains no media." +"C0000284","-1073741180","3221226116","STATUS_DESTINATION_ELEMENT_FULL","The specified medium changer destination element already contains media." +"C0000285","-1073741179","3221226117","STATUS_ILLEGAL_ELEMENT_ADDRESS","The specified medium changer element does not exist." +"C0000286","-1073741178","3221226118","STATUS_MAGAZINE_NOT_PRESENT","The specified element is contained in a magazine that is no longer present." +"C0000287","-1073741177","3221226119","STATUS_REINITIALIZATION_NEEDED","The device requires re-initialization due to hardware errors." +"C000028A","-1073741174","3221226122","STATUS_ENCRYPTION_FAILED","The file encryption attempt failed." +"C000028B","-1073741173","3221226123","STATUS_DECRYPTION_FAILED","The file decryption attempt failed." +"C000028C","-1073741172","3221226124","STATUS_RANGE_NOT_FOUND","The specified range could not be found in the range list." +"C000028D","-1073741171","3221226125","STATUS_NO_RECOVERY_POLICY","There is no encryption recovery policy configured for this system." +"C000028E","-1073741170","3221226126","STATUS_NO_EFS","The required encryption driver is not loaded for this system." +"C000028F","-1073741169","3221226127","STATUS_WRONG_EFS","The file was encrypted with a different encryption driver than is currently loaded." +"C0000290","-1073741168","3221226128","STATUS_NO_USER_KEYS","There are no EFS keys defined for the user." +"C0000291","-1073741167","3221226129","STATUS_FILE_NOT_ENCRYPTED","The specified file is not encrypted." +"C0000292","-1073741166","3221226130","STATUS_NOT_EXPORT_FORMAT","The specified file is not in the defined EFS export format." +"C0000293","-1073741165","3221226131","STATUS_FILE_ENCRYPTED","The specified file is encrypted and the user does not have the ability to decrypt it." +"C0000295","-1073741163","3221226133","STATUS_WMI_GUID_NOT_FOUND","The GUID passed was not recognized as valid by a WMI data provider." +"C0000296","-1073741162","3221226134","STATUS_WMI_INSTANCE_NOT_FOUND","The instance name passed was not recognized as valid by a WMI data provider." +"C0000297","-1073741161","3221226135","STATUS_WMI_ITEMID_NOT_FOUND","The data item ID passed was not recognized as valid by a WMI data provider." +"C0000298","-1073741160","3221226136","STATUS_WMI_TRY_AGAIN","The WMI request could not be completed and should be retried." +"C0000299","-1073741159","3221226137","STATUS_SHARED_POLICY","The policy object is shared and can only be modified at the root." +"C000029A","-1073741158","3221226138","STATUS_POLICY_OBJECT_NOT_FOUND","The policy object does not exist when it should." +"C000029B","-1073741157","3221226139","STATUS_POLICY_ONLY_IN_DS","The requested policy information only lives in the Ds." +"C000029C","-1073741156","3221226140","STATUS_VOLUME_NOT_UPGRADED","The volume must be upgraded to enable this feature." +"C000029D","-1073741155","3221226141","STATUS_REMOTE_STORAGE_NOT_ACTIVE","The remote storage service is not operational at this time." +"C000029E","-1073741154","3221226142","STATUS_REMOTE_STORAGE_MEDIA_ERROR","The remote storage service encountered a media error." +"C000029F","-1073741153","3221226143","STATUS_NO_TRACKING_SERVICE","The tracking (workstation) service is not running." +"C00002A0","-1073741152","3221226144","STATUS_SERVER_SID_MISMATCH","The server process is running under a SID that is different from the SID that is required by client." +"C00002A1","-1073741151","3221226145","STATUS_DS_NO_ATTRIBUTE_OR_VALUE","The specified directory service attribute or value does not exist." +"C00002A2","-1073741150","3221226146","STATUS_DS_INVALID_ATTRIBUTE_SYNTAX","The attribute syntax specified to the directory service is invalid." +"C00002A3","-1073741149","3221226147","STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED","The attribute type specified to the directory service is not defined." +"C00002A4","-1073741148","3221226148","STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS","The specified directory service attribute or value already exists." +"C00002A5","-1073741147","3221226149","STATUS_DS_BUSY","The directory service is busy." +"C00002A6","-1073741146","3221226150","STATUS_DS_UNAVAILABLE","The directory service is unavailable." +"C00002A7","-1073741145","3221226151","STATUS_DS_NO_RIDS_ALLOCATED","The directory service was unable to allocate a relative identifier." +"C00002A8","-1073741144","3221226152","STATUS_DS_NO_MORE_RIDS","The directory service has exhausted the pool of relative identifiers." +"C00002A9","-1073741143","3221226153","STATUS_DS_INCORRECT_ROLE_OWNER","The requested operation could not be performed because the directory service is not the master for that type of operation." +"C00002AA","-1073741142","3221226154","STATUS_DS_RIDMGR_INIT_ERROR","The directory service was unable to initialize the subsystem that allocates relative identifiers." +"C00002AB","-1073741141","3221226155","STATUS_DS_OBJ_CLASS_VIOLATION","The requested operation did not satisfy one or more constraints that are associated with the class of the object." +"C00002AC","-1073741140","3221226156","STATUS_DS_CANT_ON_NON_LEAF","The directory service can perform the requested operation only on a leaf object." +"C00002AD","-1073741139","3221226157","STATUS_DS_CANT_ON_RDN","The directory service cannot perform the requested operation on the Relatively Defined Name (RDN) attribute of an object." +"C00002AE","-1073741138","3221226158","STATUS_DS_CANT_MOD_OBJ_CLASS","The directory service detected an attempt to modify the object class of an object." +"C00002AF","-1073741137","3221226159","STATUS_DS_CROSS_DOM_MOVE_FAILED","An error occurred while performing a cross domain move operation." +"C00002B0","-1073741136","3221226160","STATUS_DS_GC_NOT_AVAILABLE","Unable to contact the global catalog server." +"C00002B1","-1073741135","3221226161","STATUS_DIRECTORY_SERVICE_REQUIRED","The requested operation requires a directory service, and none was available." +"C00002B2","-1073741134","3221226162","STATUS_REPARSE_ATTRIBUTE_CONFLICT","The reparse attribute cannot be set because it is incompatible with an existing attribute." +"C00002B3","-1073741133","3221226163","STATUS_CANT_ENABLE_DENY_ONLY","A group marked use for deny only"" cannot be enabled""" +"C00002B4","-1073741132","3221226164","STATUS_FLOAT_MULTIPLE_FAULTS","(EXCEPTION) Multiple floating-point faults." +"C00002B5","-1073741131","3221226165","STATUS_FLOAT_MULTIPLE_TRAPS","(EXCEPTION) Multiple floating-point traps." +"C00002B6","-1073741130","3221226166","STATUS_DEVICE_REMOVED","The device has been removed." +"C00002B7","-1073741129","3221226167","STATUS_JOURNAL_DELETE_IN_PROGRESS","The volume change journal is being deleted." +"C00002B8","-1073741128","3221226168","STATUS_JOURNAL_NOT_ACTIVE","The volume change journal is not active." +"C00002B9","-1073741127","3221226169","STATUS_NOINTERFACE","The requested interface is not supported." +"C00002C1","-1073741119","3221226177","STATUS_DS_ADMIN_LIMIT_EXCEEDED","A directory service resource limit has been exceeded." +"C00002C2","-1073741118","3221226178","STATUS_DRIVER_FAILED_SLEEP","(System Standby Failed) The driver %hs does not support standby mode. Updating this driver allows the system to go to standby mode." +"C00002C3","-1073741117","3221226179","STATUS_MUTUAL_AUTHENTICATION_FAILED","Mutual Authentication failed. The server password is out of date at the domain controller." +"C00002C4","-1073741116","3221226180","STATUS_CORRUPT_SYSTEM_FILE","The system file %1 has become corrupt and has been replaced." +"C00002C5","-1073741115","3221226181","STATUS_DATATYPE_MISALIGNMENT_ERROR","(EXCEPTION) Alignment Error A data type misalignment error was detected in a load or store instruction." +"C00002C6","-1073741114","3221226182","STATUS_WMI_READ_ONLY","The WMI data item or data block is read-only." +"C00002C7","-1073741113","3221226183","STATUS_WMI_SET_FAILURE","The WMI data item or data block could not be changed." +"C00002C8","-1073741112","3221226184","STATUS_COMMITMENT_MINIMUM","(Virtual Memory Minimum Too Low) Your system is low on virtual memory. Windows is increasing the size of your virtual memory paging file. During this process, memory requests for some applications might be denied. For more information, see Help." +"C00002C9","-1073741111","3221226185","STATUS_REG_NAT_CONSUMPTION","(EXCEPTION) Register NaT consumption faults. A NaT value is consumed on a non-speculative instruction." +"C00002CA","-1073741110","3221226186","STATUS_TRANSPORT_FULL","The transport element of the medium changer contains media, which is causing the operation to fail." +"C00002CB","-1073741109","3221226187","STATUS_DS_SAM_INIT_FAILURE","Security Accounts Manager initialization failed because of the following error: %hs Error Status: 0x%x. Click OK to shut down this system and restart in Directory Services Restore Mode. Check the event log for more detailed information." +"C00002CC","-1073741108","3221226188","STATUS_ONLY_IF_CONNECTED","This operation is supported only when you are connected to the server." +"C00002CD","-1073741107","3221226189","STATUS_DS_SENSITIVE_GROUP_VIOLATION","Only an administrator can modify the membership list of an administrative group." +"C00002CE","-1073741106","3221226190","STATUS_PNP_RESTART_ENUMERATION","A device was removed so enumeration must be restarted." +"C00002CF","-1073741105","3221226191","STATUS_JOURNAL_ENTRY_DELETED","The journal entry has been deleted from the journal." +"C00002D0","-1073741104","3221226192","STATUS_DS_CANT_MOD_PRIMARYGROUPID","Cannot change the primary group ID of a domain controller account." +"C00002D1","-1073741103","3221226193","STATUS_SYSTEM_IMAGE_BAD_SIGNATURE","(Fatal System Error) The system image %s is not properly signed. The file has been replaced with the signed file. The system has been shut down." +"C00002D2","-1073741102","3221226194","STATUS_PNP_REBOOT_REQUIRED","The device will not start without a reboot." +"C00002D3","-1073741101","3221226195","STATUS_POWER_STATE_INVALID","The power state of the current device cannot support this request." +"C00002D4","-1073741100","3221226196","STATUS_DS_INVALID_GROUP_TYPE","The specified group type is invalid." +"C00002D5","-1073741099","3221226197","STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN","In a mixed domain, no nesting of a global group if the group is security enabled." +"C00002D6","-1073741098","3221226198","STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN","In a mixed domain, cannot nest local groups with other local groups, if the group is security enabled." +"C00002D7","-1073741097","3221226199","STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER","A global group cannot have a local group as a member." +"C00002D8","-1073741096","3221226200","STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER","A global group cannot have a universal group as a member." +"C00002D9","-1073741095","3221226201","STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER","A universal group cannot have a local group as a member." +"C00002DA","-1073741094","3221226202","STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER","A global group cannot have a cross-domain member." +"C00002DB","-1073741093","3221226203","STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER","A local group cannot have another cross-domain local group as a member." +"C00002DC","-1073741092","3221226204","STATUS_DS_HAVE_PRIMARY_MEMBERS","Cannot change to a security-disabled group because primary members are in this group." +"C00002DD","-1073741091","3221226205","STATUS_WMI_NOT_SUPPORTED","The WMI operation is not supported by the data block or method." +"C00002DE","-1073741090","3221226206","STATUS_INSUFFICIENT_POWER","There is not enough power to complete the requested operation." +"C00002DF","-1073741089","3221226207","STATUS_SAM_NEED_BOOTKEY_PASSWORD","The Security Accounts Manager needs to get the boot password." +"C00002E0","-1073741088","3221226208","STATUS_SAM_NEED_BOOTKEY_FLOPPY","The Security Accounts Manager needs to get the boot key from the floppy disk." +"C00002E1","-1073741087","3221226209","STATUS_DS_CANT_START","The directory service cannot start." +"C00002E2","-1073741086","3221226210","STATUS_DS_INIT_FAILURE","The directory service could not start because of the following error: %hs Error Status: 0x%x. Click OK to shut down this system and restart in Directory Services Restore Mode. Check the event log for more detailed information." +"C00002E3","-1073741085","3221226211","STATUS_SAM_INIT_FAILURE","The Security Accounts Manager initialization failed because of the following error: %hs Error Status: 0x%x. Click OK to shut down this system and restart in Safe Mode. Check the event log for more detailed information." +"C00002E4","-1073741084","3221226212","STATUS_DS_GC_REQUIRED","The requested operation can be performed only on a global catalog server." +"C00002E5","-1073741083","3221226213","STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY","A local group can only be a member of other local groups in the same domain." +"C00002E6","-1073741082","3221226214","STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS","Foreign security principals cannot be members of universal groups." +"C00002E7","-1073741081","3221226215","STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED","Your computer could not be joined to the domain. You have exceeded the maximum number of computer accounts you are allowed to create in this domain. Contact your system administrator to have this limit reset or increased." +"C00002E9","-1073741079","3221226217","STATUS_CURRENT_DOMAIN_NOT_ALLOWED","This operation cannot be performed on the current domain." +"C00002EA","-1073741078","3221226218","STATUS_CANNOT_MAKE","The directory or file cannot be created." +"C00002EB","-1073741077","3221226219","STATUS_SYSTEM_SHUTDOWN","The system is in the process of shutting down." +"C00002EC","-1073741076","3221226220","STATUS_DS_INIT_FAILURE_CONSOLE","Directory Services could not start because of the following error: %hs Error Status: 0x%x. Click OK to shut down the system. You can use the recovery console to diagnose the system further." +"C00002ED","-1073741075","3221226221","STATUS_DS_SAM_INIT_FAILURE_CONSOLE","Security Accounts Manager initialization failed because of the following error: %hs Error Status: 0x%x. Click OK to shut down the system. You can use the recovery console to diagnose the system further." +"C00002EE","-1073741074","3221226222","STATUS_UNFINISHED_CONTEXT_DELETED","A security context was deleted before the context was completed. This is considered a logon failure." +"C00002EF","-1073741073","3221226223","STATUS_NO_TGT_REPLY","The client is trying to negotiate a context and the server requires user-to-user but did not send a TGT reply." +"C00002F0","-1073741072","3221226224","STATUS_OBJECTID_NOT_FOUND","An object ID was not found in the file." +"C00002F1","-1073741071","3221226225","STATUS_NO_IP_ADDRESSES","Unable to accomplish the requested task because the local machine does not have any IP addresses." +"C00002F2","-1073741070","3221226226","STATUS_WRONG_CREDENTIAL_HANDLE","The supplied credential handle does not match the credential that is associated with the security context." +"C00002F3","-1073741069","3221226227","STATUS_CRYPTO_SYSTEM_INVALID","The crypto system or checksum function is invalid because a required function is unavailable." +"C00002F4","-1073741068","3221226228","STATUS_MAX_REFERRALS_EXCEEDED","The number of maximum ticket referrals has been exceeded." +"C00002F5","-1073741067","3221226229","STATUS_MUST_BE_KDC","The local machine must be a Kerberos KDC (domain controller) and it is not." +"C00002F6","-1073741066","3221226230","STATUS_STRONG_CRYPTO_NOT_SUPPORTED","The other end of the security negotiation requires strong crypto but it is not supported on the local machine." +"C00002F7","-1073741065","3221226231","STATUS_TOO_MANY_PRINCIPALS","The KDC reply contained more than one principal name." +"C00002F8","-1073741064","3221226232","STATUS_NO_PA_DATA","Expected to find PA data for a hint of what etype to use, but it was not found." +"C00002F9","-1073741063","3221226233","STATUS_PKINIT_NAME_MISMATCH","The client certificate does not contain a valid UPN, or does not match the client name in the logon request. Contact your administrator." +"C00002FA","-1073741062","3221226234","STATUS_SMARTCARD_LOGON_REQUIRED","Smart card logon is required and was not used." +"C00002FB","-1073741061","3221226235","STATUS_KDC_INVALID_REQUEST","An invalid request was sent to the KDC." +"C00002FC","-1073741060","3221226236","STATUS_KDC_UNABLE_TO_REFER","The KDC was unable to generate a referral for the service requested." +"C00002FD","-1073741059","3221226237","STATUS_KDC_UNKNOWN_ETYPE","The encryption type requested is not supported by the KDC." +"C00002FE","-1073741058","3221226238","STATUS_SHUTDOWN_IN_PROGRESS","A system shutdown is in progress." +"C00002FF","-1073741057","3221226239","STATUS_SERVER_SHUTDOWN_IN_PROGRESS","The server machine is shutting down." +"C0000300","-1073741056","3221226240","STATUS_NOT_SUPPORTED_ON_SBS","This operation is not supported on a computer running Windows Server 2003 operating system for Small Business Server." +"C0000301","-1073741055","3221226241","STATUS_WMI_GUID_DISCONNECTED","The WMI GUID is no longer available." +"C0000302","-1073741054","3221226242","STATUS_WMI_ALREADY_DISABLED","Collection or events for the WMI GUID is already disabled." +"C0000303","-1073741053","3221226243","STATUS_WMI_ALREADY_ENABLED","Collection or events for the WMI GUID is already enabled." +"C0000304","-1073741052","3221226244","STATUS_MFT_TOO_FRAGMENTED","The master file table on the volume is too fragmented to complete this operation." +"C0000305","-1073741051","3221226245","STATUS_COPY_PROTECTION_FAILURE","Copy protection failure." +"C0000306","-1073741050","3221226246","STATUS_CSS_AUTHENTICATION_FAILURE","Copy protection error - DVD CSS Authentication failed." +"C0000307","-1073741049","3221226247","STATUS_CSS_KEY_NOT_PRESENT","Copy protection error - The specified sector does not contain a valid key." +"C0000308","-1073741048","3221226248","STATUS_CSS_KEY_NOT_ESTABLISHED","Copy protection error - DVD session key not established." +"C0000309","-1073741047","3221226249","STATUS_CSS_SCRAMBLED_SECTOR","Copy protection error - The read failed because the sector is encrypted." +"C000030A","-1073741046","3221226250","STATUS_CSS_REGION_MISMATCH","Copy protection erro - The region of the specified DVD does not correspond to the region setting of the drive." +"C000030B","-1073741045","3221226251","STATUS_CSS_RESETS_EXHAUSTED","Copy protection error - The region setting of the drive might be permanent." +"C0000320","-1073741024","3221226272","STATUS_PKINIT_FAILURE","The Kerberos protocol encountered an error while validating the KDC certificate during smart card logon. There is more information in the system event log." +"C0000321","-1073741023","3221226273","STATUS_SMARTCARD_SUBSYSTEM_FAILURE","The Kerberos protocol encountered an error while attempting to use the smart card subsystem." +"C0000322","-1073741022","3221226274","STATUS_NO_KERB_KEY","The target server does not have acceptable Kerberos credentials." +"C0000350","-1073740976","3221226320","STATUS_HOST_DOWN","The transport determined that the remote system is down." +"C0000351","-1073740975","3221226321","STATUS_UNSUPPORTED_PREAUTH","An unsupported pre-authentication mechanism was presented to the Kerberos package." +"C0000352","-1073740974","3221226322","STATUS_EFS_ALG_BLOB_TOO_BIG","The encryption algorithm that is used on the source file needs a bigger key buffer than the one that is used on the destination file." +"C0000353","-1073740973","3221226323","STATUS_PORT_NOT_SET","An attempt to remove a processes DebugPort was made, but a port was not already associated with the process." +"C0000354","-1073740972","3221226324","STATUS_DEBUGGER_INACTIVE","An attempt to do an operation on a debug port failed because the port is in the process of being deleted." +"C0000355","-1073740971","3221226325","STATUS_DS_VERSION_CHECK_FAILURE","This version of Windows is not compatible with the behavior version of the directory forest, domain, or domain controller." +"C0000356","-1073740970","3221226326","STATUS_AUDITING_DISABLED","The specified event is currently not being audited." +"C0000357","-1073740969","3221226327","STATUS_PRENT4_MACHINE_ACCOUNT","The machine account was created prior to Windows NT 4.0 operating system. The account needs to be recreated." +"C0000358","-1073740968","3221226328","STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER","An account group cannot have a universal group as a member." +"C0000359","-1073740967","3221226329","STATUS_INVALID_IMAGE_WIN_32","The specified image file did not have the correct format; it appears to be a 32-bit Windows image." +"C000035A","-1073740966","3221226330","STATUS_INVALID_IMAGE_WIN_64","The specified image file did not have the correct format; it appears to be a 64-bit Windows image." +"C000035B","-1073740965","3221226331","STATUS_BAD_BINDINGS","The client's supplied SSPI channel bindings were incorrect." +"C000035C","-1073740964","3221226332","STATUS_NETWORK_SESSION_EXPIRED","The client session has expired; so the client must re-authenticate to continue accessing the remote resources." +"C000035D","-1073740963","3221226333","STATUS_APPHELP_BLOCK","The AppHelp dialog box canceled; thus preventing the application from starting." +"C000035E","-1073740962","3221226334","STATUS_ALL_SIDS_FILTERED","The SID filtering operation removed all SIDs." +"C000035F","-1073740961","3221226335","STATUS_NOT_SAFE_MODE_DRIVER","The driver was not loaded because the system is starting in safe mode." +"C0000361","-1073740959","3221226337","STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT","Access to %1 has been restricted by your Administrator by the default software restriction policy level." +"C0000362","-1073740958","3221226338","STATUS_ACCESS_DISABLED_BY_POLICY_PATH","Access to %1 has been restricted by your Administrator by location with policy rule %2 placed on path %3." +"C0000363","-1073740957","3221226339","STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER","Access to %1 has been restricted by your Administrator by software publisher policy." +"C0000364","-1073740956","3221226340","STATUS_ACCESS_DISABLED_BY_POLICY_OTHER","Access to %1 has been restricted by your Administrator by policy rule %2." +"C0000365","-1073740955","3221226341","STATUS_FAILED_DRIVER_ENTRY","The driver was not loaded because it failed its initialization call." +"C0000366","-1073740954","3221226342","STATUS_DEVICE_ENUMERATION_ERROR","The device encountered an error while applying power or reading the device configuration. This might be caused by a failure of your hardware or by a poor connection." +"C0000368","-1073740952","3221226344","STATUS_MOUNT_POINT_NOT_RESOLVED","The create operation failed because the name contained at least one mount point that resolves to a volume to which the specified device object is not attached." +"C0000369","-1073740951","3221226345","STATUS_INVALID_DEVICE_OBJECT_PARAMETER","The device object parameter is either not a valid device object or is not attached to the volume that is specified by the file name." +"C000036A","-1073740950","3221226346","STATUS_MCA_OCCURED","A machine check error has occurred. Check the system event log for additional information." +"C000036B","-1073740949","3221226347","STATUS_DRIVER_BLOCKED_CRITICAL","Driver %2 has been blocked from loading." +"C000036C","-1073740948","3221226348","STATUS_DRIVER_BLOCKED","Driver %2 has been blocked from loading." +"C000036D","-1073740947","3221226349","STATUS_DRIVER_DATABASE_ERROR","There was error [%2] processing the driver database." +"C000036E","-1073740946","3221226350","STATUS_SYSTEM_HIVE_TOO_LARGE","System hive size has exceeded its limit." +"C000036F","-1073740945","3221226351","STATUS_INVALID_IMPORT_OF_NON_DLL","A dynamic link library (DLL) referenced a module that was neither a DLL nor the process's executable image." +"C0000371","-1073740943","3221226353","STATUS_NO_SECRETS","The local account store does not contain secret material for the specified account." +"C0000372","-1073740942","3221226354","STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY","Access to %1 has been restricted by your Administrator by policy rule %2." +"C0000373","-1073740941","3221226355","STATUS_FAILED_STACK_SWITCH","The system was not able to allocate enough memory to perform a stack switch." +"C0000374","-1073740940","3221226356","STATUS_HEAP_CORRUPTION","A heap has been corrupted." +"C0000380","-1073740928","3221226368","STATUS_SMARTCARD_WRONG_PIN","An incorrect PIN was presented to the smart card." +"C0000381","-1073740927","3221226369","STATUS_SMARTCARD_CARD_BLOCKED","The smart card is blocked." +"C0000382","-1073740926","3221226370","STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED","No PIN was presented to the smart card." +"C0000383","-1073740925","3221226371","STATUS_SMARTCARD_NO_CARD","No smart card is available." +"C0000384","-1073740924","3221226372","STATUS_SMARTCARD_NO_KEY_CONTAINER","The requested key container does not exist on the smart card." +"C0000385","-1073740923","3221226373","STATUS_SMARTCARD_NO_CERTIFICATE","The requested certificate does not exist on the smart card." +"C0000386","-1073740922","3221226374","STATUS_SMARTCARD_NO_KEYSET","The requested keyset does not exist." +"C0000387","-1073740921","3221226375","STATUS_SMARTCARD_IO_ERROR","A communication error with the smart card has been detected." +"C0000388","-1073740920","3221226376","STATUS_DOWNGRADE_DETECTED","The system detected a possible attempt to compromise security. Ensure that you can contact the server that authenticated you." +"C0000389","-1073740919","3221226377","STATUS_SMARTCARD_CERT_REVOKED","The smart card certificate used for authentication has been revoked. Contact your system administrator. There might be additional information in the event log." +"C000038A","-1073740918","3221226378","STATUS_ISSUING_CA_UNTRUSTED","An untrusted certificate authority was detected while processing the smart card certificate that is used for authentication. Contact your system administrator." +"C000038B","-1073740917","3221226379","STATUS_REVOCATION_OFFLINE_C","The revocation status of the smart card certificate that is used for authentication could not be determined. Contact your system administrator." +"C000038C","-1073740916","3221226380","STATUS_PKINIT_CLIENT_FAILURE","The smart card certificate used for authentication was not trusted. Contact your system administrator." +"C000038D","-1073740915","3221226381","STATUS_SMARTCARD_CERT_EXPIRED","The smart card certificate used for authentication has expired. Contact your system administrator." +"C000038E","-1073740914","3221226382","STATUS_DRIVER_FAILED_PRIOR_UNLOAD","The driver could not be loaded because a previous version of the driver is still in memory." +"C000038F","-1073740913","3221226383","STATUS_SMARTCARD_SILENT_CONTEXT","The smart card provider could not perform the action because the context was acquired as silent." +"C0000401","-1073740799","3221226497","STATUS_PER_USER_TRUST_QUOTA_EXCEEDED","The delegated trust creation quota of the current user has been exceeded." +"C0000402","-1073740798","3221226498","STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED","The total delegated trust creation quota has been exceeded." +"C0000403","-1073740797","3221226499","STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED","The delegated trust deletion quota of the current user has been exceeded." +"C0000404","-1073740796","3221226500","STATUS_DS_NAME_NOT_UNIQUE","The requested name already exists as a unique identifier." +"C0000405","-1073740795","3221226501","STATUS_DS_DUPLICATE_ID_FOUND","The requested object has a non-unique identifier and cannot be retrieved." +"C0000406","-1073740794","3221226502","STATUS_DS_GROUP_CONVERSION_ERROR","The group cannot be converted due to attribute restrictions on the requested group type." +"C0000407","-1073740793","3221226503","STATUS_VOLSNAP_PREPARE_HIBERNATE","(Volume Shadow Copy Service) Wait while the Volume Shadow Copy Service prepares volume %hs for hibernation." +"C0000408","-1073740792","3221226504","STATUS_USER2USER_REQUIRED","Kerberos sub-protocol User2User is required." +"C0000409","-1073740791","3221226505","STATUS_STACK_BUFFER_OVERRUN","The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application." +"C000040A","-1073740790","3221226506","STATUS_NO_S4U_PROT_SUPPORT","The Kerberos subsystem encountered an error. A service for user protocol request was made against a domain controller which does not support service for user." +"C000040B","-1073740789","3221226507","STATUS_CROSSREALM_DELEGATION_FAILURE","An attempt was made by this server to make a Kerberos constrained delegation request for a target that is outside the server realm. This action is not supported and the resulting error indicates a misconfiguration on the allowed-to-delegate-to list for this server. Contact your administrator." +"C000040C","-1073740788","3221226508","STATUS_REVOCATION_OFFLINE_KDC","The revocation status of the domain controller certificate used for smart card authentication could not be determined. There is additional information in the system event log. Contact your system administrator." +"C000040D","-1073740787","3221226509","STATUS_ISSUING_CA_UNTRUSTED_KDC","An untrusted certificate authority was detected while processing the domain controller certificate used for authentication. There is additional information in the system event log. Contact your system administrator." +"C000040E","-1073740786","3221226510","STATUS_KDC_CERT_EXPIRED","The domain controller certificate used for smart card logon has expired. Contact your system administrator with the contents of your system event log." +"C000040F","-1073740785","3221226511","STATUS_KDC_CERT_REVOKED","The domain controller certificate used for smart card logon has been revoked. Contact your system administrator with the contents of your system event log." +"C0000410","-1073740784","3221226512","STATUS_PARAMETER_QUOTA_EXCEEDED","Data present in one of the parameters is more than the function can operate on." +"C0000411","-1073740783","3221226513","STATUS_HIBERNATION_FAILURE","The system has failed to hibernate (The error code is %hs). Hibernation will be disabled until the system is restarted." +"C0000412","-1073740782","3221226514","STATUS_DELAY_LOAD_FAILED","An attempt to delay-load a .dll or get a function address in a delay-loaded .dll failed." +"C0000413","-1073740781","3221226515","STATUS_AUTHENTICATION_FIREWALL_FAILED","Logon Failure: The machine you are logging onto is protected by an authentication firewall. The specified account is not allowed to authenticate to the machine." +"C0000414","-1073740780","3221226516","STATUS_VDM_DISALLOWED","%hs is a 16-bit application. You do not have permissions to execute 16-bit applications. Check your permissions with your system administrator." +"C0000415","-1073740779","3221226517","STATUS_HUNG_DISPLAY_DRIVER_THREAD","(Display Driver Stopped Responding) The %hs display driver has stopped working normally. Save your work and reboot the system to restore full display functionality. The next time you reboot the machine a dialog will be displayed giving you a chance to report this failure to Microsoft." +"C0000416","-1073740778","3221226518","STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE","The Desktop heap encountered an error while allocating session memory. There is more information in the system event log." +"C0000417","-1073740777","3221226519","STATUS_INVALID_CRUNTIME_PARAMETER","An invalid parameter was passed to a C runtime function." +"C0000418","-1073740776","3221226520","STATUS_NTLM_BLOCKED","The authentication failed because NTLM was blocked." +"C0000419","-1073740775","3221226521","STATUS_DS_SRC_SID_EXISTS_IN_FOREST","The source object's SID already exists in destination forest." +"C000041A","-1073740774","3221226522","STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST","The domain name of the trusted domain already exists in the forest." +"C000041B","-1073740773","3221226523","STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST","The flat name of the trusted domain already exists in the forest." +"C000041C","-1073740772","3221226524","STATUS_INVALID_USER_PRINCIPAL_NAME","The User Principal Name (UPN) is invalid." +"C0000420","-1073740768","3221226528","STATUS_ASSERTION_FAILURE","There has been an assertion failure." +"C0000421","-1073740767","3221226529","STATUS_VERIFIER_STOP","Application verifier has found an error in the current process." +"C0000423","-1073740765","3221226531","STATUS_CALLBACK_POP_STACK","A user mode unwind is in progress." +"C0000424","-1073740764","3221226532","STATUS_INCOMPATIBLE_DRIVER_BLOCKED","%2 has been blocked from loading due to incompatibility with this system. Contact your software vendor for a compatible version of the driver." +"C0000425","-1073740763","3221226533","STATUS_HIVE_UNLOADED","Illegal operation attempted on a registry key which has already been unloaded." +"C0000426","-1073740762","3221226534","STATUS_COMPRESSION_DISABLED","Compression is disabled for this volume." +"C0000427","-1073740761","3221226535","STATUS_FILE_SYSTEM_LIMITATION","The requested operation could not be completed due to a file system limitation." +"C0000428","-1073740760","3221226536","STATUS_INVALID_IMAGE_HASH","The hash for image %hs cannot be found in the system catalogs. The image is likely corrupt or the victim of tampering." +"C0000429","-1073740759","3221226537","STATUS_NOT_CAPABLE","The implementation is not capable of performing the request." +"C000042A","-1073740758","3221226538","STATUS_REQUEST_OUT_OF_SEQUENCE","The requested operation is out of order with respect to other operations." +"C000042B","-1073740757","3221226539","STATUS_IMPLEMENTATION_LIMIT","An operation attempted to exceed an implementation-defined limit." +"C000042C","-1073740756","3221226540","STATUS_ELEVATION_REQUIRED","The requested operation requires elevation." +"C000042D","-1073740755","3221226541","STATUS_NO_SECURITY_CONTEXT","The required security context does not exist." +"C000042E","-1073740754","3221226542","STATUS_PKU2U_CERT_FAILURE","The PKU2U protocol encountered an error while attempting to utilize the associated certificates." +"C0000432","-1073740750","3221226546","STATUS_BEYOND_VDL","The operation was attempted beyond the valid data length of the file." +"C0000433","-1073740749","3221226547","STATUS_ENCOUNTERED_WRITE_IN_PROGRESS","The attempted write operation encountered a write already in progress for some portion of the range." +"C0000434","-1073740748","3221226548","STATUS_PTE_CHANGED","The page fault mappings changed in the middle of processing a fault so the operation must be retried." +"C0000435","-1073740747","3221226549","STATUS_PURGE_FAILED","The attempt to purge this file from memory failed to purge some or all the data from memory." +"C0000440","-1073740736","3221226560","STATUS_CRED_REQUIRES_CONFIRMATION","The requested credential requires confirmation." +"C0000441","-1073740735","3221226561","STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE","The remote server sent an invalid response for a file being opened with Client Side Encryption." +"C0000442","-1073740734","3221226562","STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER","Client Side Encryption is not supported by the remote server even though it claims to support it." +"C0000443","-1073740733","3221226563","STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE","File is encrypted and should be opened in Client Side Encryption mode." +"C0000444","-1073740732","3221226564","STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE","A new encrypted file is being created and a $EFS needs to be provided." +"C0000445","-1073740731","3221226565","STATUS_CS_ENCRYPTION_FILE_NOT_CSE","The SMB client requested a CSE FSCTL on a non-CSE file." +"C0000446","-1073740730","3221226566","STATUS_INVALID_LABEL","Indicates a particular Security ID cannot be assigned as the label of an object." +"C0000450","-1073740720","3221226576","STATUS_DRIVER_PROCESS_TERMINATED","The process hosting the driver for this device has terminated." +"C0000451","-1073740719","3221226577","STATUS_AMBIGUOUS_SYSTEM_DEVICE","The requested system device cannot be identified due to multiple indistinguishable devices potentially matching the identification criteria." +"C0000452","-1073740718","3221226578","STATUS_SYSTEM_DEVICE_NOT_FOUND","The requested system device cannot be found." +"C0000453","-1073740717","3221226579","STATUS_RESTART_BOOT_APPLICATION","This boot application must be restarted." +"C0000454","-1073740716","3221226580","STATUS_INSUFFICIENT_NVRAM_RESOURCES","Insufficient NVRAM resources exist to complete the API. A reboot might be required." +"C0000460","-1073740704","3221226592","STATUS_NO_RANGES_PROCESSED","No ranges for the specified operation were able to be processed." +"C0000463","-1073740701","3221226595","STATUS_DEVICE_FEATURE_NOT_SUPPORTED","The storage device does not support Offload Write." +"C0000464","-1073740700","3221226596","STATUS_DEVICE_UNREACHABLE","Data cannot be moved because the source device cannot communicate with the destination device." +"C0000465","-1073740699","3221226597","STATUS_INVALID_TOKEN","The token representing the data is invalid or expired." +"C0000466","-1073740698","3221226598","STATUS_SERVER_UNAVAILABLE","The file server is temporarily unavailable." +"C0000500","-1073740544","3221226752","STATUS_INVALID_TASK_NAME","The specified task name is invalid." +"C0000501","-1073740543","3221226753","STATUS_INVALID_TASK_INDEX","The specified task index is invalid." +"C0000502","-1073740542","3221226754","STATUS_THREAD_ALREADY_IN_TASK","The specified thread is already joining a task." +"C0000503","-1073740541","3221226755","STATUS_CALLBACK_BYPASS","A callback has requested to bypass native code." +"C0000602","-1073740286","3221227010","STATUS_FAIL_FAST_EXCEPTION","A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately." +"C0000603","-1073740285","3221227011","STATUS_IMAGE_CERT_REVOKED","Windows cannot verify the digital signature for this file. The signing certificate for this file has been revoked." +"C0000700","-1073740032","3221227264","STATUS_PORT_CLOSED","The ALPC port is closed." +"C0000701","-1073740031","3221227265","STATUS_MESSAGE_LOST","The ALPC message requested is no longer available." +"C0000702","-1073740030","3221227266","STATUS_INVALID_MESSAGE","The ALPC message supplied is invalid." +"C0000703","-1073740029","3221227267","STATUS_REQUEST_CANCELED","The ALPC message has been canceled." +"C0000704","-1073740028","3221227268","STATUS_RECURSIVE_DISPATCH","Invalid recursive dispatch attempt." +"C0000705","-1073740027","3221227269","STATUS_LPC_RECEIVE_BUFFER_EXPECTED","No receive buffer has been supplied in a synchronous request." +"C0000706","-1073740026","3221227270","STATUS_LPC_INVALID_CONNECTION_USAGE","The connection port is used in an invalid context." +"C0000707","-1073740025","3221227271","STATUS_LPC_REQUESTS_NOT_ALLOWED","The ALPC port does not accept new request messages." +"C0000708","-1073740024","3221227272","STATUS_RESOURCE_IN_USE","The resource requested is already in use." +"C0000709","-1073740023","3221227273","STATUS_HARDWARE_MEMORY_ERROR","The hardware has reported an uncorrectable memory error." +"C000070A","-1073740022","3221227274","STATUS_THREADPOOL_HANDLE_EXCEPTION","Status 0x%08x was returned, waiting on handle 0x%x for wait 0x%p, in waiter 0x%p." +"C000070B","-1073740021","3221227275","STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED","After a callback to 0x%p(0x%p), a completion call to Set event(0x%p) failed with status 0x%08x." +"C000070C","-1073740020","3221227276","STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED","After a callback to 0x%p(0x%p), a completion call to ReleaseSemaphore(0x%p, %d) failed with status 0x%08x." +"C000070D","-1073740019","3221227277","STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED","After a callback to 0x%p(0x%p), a completion call to ReleaseMutex(%p) failed with status 0x%08x." +"C000070E","-1073740018","3221227278","STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED","After a callback to 0x%p(0x%p), a completion call to FreeLibrary(%p) failed with status 0x%08x." +"C000070F","-1073740017","3221227279","STATUS_THREADPOOL_RELEASED_DURING_OPERATION","The thread pool 0x%p was released while a thread was posting a callback to 0x%p(0x%p) to it." +"C0000710","-1073740016","3221227280","STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING","A thread pool worker thread is impersonating a client, after a callback to 0x%p(0x%p). This is unexpected, indicating that the callback is missing a call to revert the impersonation." +"C0000711","-1073740015","3221227281","STATUS_APC_RETURNED_WHILE_IMPERSONATING","A thread pool worker thread is impersonating a client, after executing an APC. This is unexpected, indicating that the APC is missing a call to revert the impersonation." +"C0000712","-1073740014","3221227282","STATUS_PROCESS_IS_PROTECTED","Either the target process, or the target thread's containing process, is a protected process." +"C0000713","-1073740013","3221227283","STATUS_MCA_EXCEPTION","A thread is getting dispatched with MCA EXCEPTION because of MCA." +"C0000714","-1073740012","3221227284","STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE","The client certificate account mapping is not unique." +"C0000715","-1073740011","3221227285","STATUS_SYMLINK_CLASS_DISABLED","The symbolic link cannot be followed because its type is disabled." +"C0000716","-1073740010","3221227286","STATUS_INVALID_IDN_NORMALIZATION","Indicates that the specified string is not valid for IDN normalization." +"C0000717","-1073740009","3221227287","STATUS_NO_UNICODE_TRANSLATION","No mapping for the Unicode character exists in the target multi-byte code page." +"C0000718","-1073740008","3221227288","STATUS_ALREADY_REGISTERED","The provided callback is already registered." +"C0000719","-1073740007","3221227289","STATUS_CONTEXT_MISMATCH","The provided context did not match the target." +"C000071A","-1073740006","3221227290","STATUS_PORT_ALREADY_HAS_COMPLETION_LIST","The specified port already has a completion list." +"C000071B","-1073740005","3221227291","STATUS_CALLBACK_RETURNED_THREAD_PRIORITY","A threadpool worker thread entered a callback at thread base priority 0x%x and exited at priority 0x%x. This is unexpected, indicating that the callback missed restoring the priority." +"C000071C","-1073740004","3221227292","STATUS_INVALID_THREAD","An invalid thread, handle %p, is specified for this operation. Possibly, a threadpool worker thread was specified." +"C000071D","-1073740003","3221227293","STATUS_CALLBACK_RETURNED_TRANSACTION","A threadpool worker thread entered a callback, which left transaction state. This is unexpected, indicating that the callback missed clearing the transaction." +"C000071E","-1073740002","3221227294","STATUS_CALLBACK_RETURNED_LDR_LOCK","A threadpool worker thread entered a callback, which left the loader lock held. This is unexpected, indicating that the callback missed releasing the lock." +"C000071F","-1073740001","3221227295","STATUS_CALLBACK_RETURNED_LANG","A threadpool worker thread entered a callback, which left with preferred languages set. This is unexpected, indicating that the callback missed clearing them." +"C0000720","-1073740000","3221227296","STATUS_CALLBACK_RETURNED_PRI_BACK","A threadpool worker thread entered a callback, which left with background priorities set. This is unexpected, indicating that the callback missed restoring the original priorities." +"C0000800","-1073739776","3221227520","STATUS_DISK_REPAIR_DISABLED","The attempted operation required self healing to be enabled." +"C0000801","-1073739775","3221227521","STATUS_DS_DOMAIN_RENAME_IN_PROGRESS","The directory service cannot perform the requested operation because a domain rename operation is in progress." +"C0000802","-1073739774","3221227522","STATUS_DISK_QUOTA_EXCEEDED","An operation failed because the storage quota was exceeded." +"C0000804","-1073739772","3221227524","STATUS_CONTENT_BLOCKED","An operation failed because the content was blocked." +"C0000805","-1073739771","3221227525","STATUS_BAD_CLUSTERS","The operation could not be completed due to bad clusters on disk." +"C0000806","-1073739770","3221227526","STATUS_VOLUME_DIRTY","The operation could not be completed because the volume is dirty. Please run the Chkdsk utility and try again." +"C0000901","-1073739519","3221227777","STATUS_FILE_CHECKED_OUT","This file is checked out or locked for editing by another user." +"C0000902","-1073739518","3221227778","STATUS_CHECKOUT_REQUIRED","The file must be checked out before saving changes." +"C0000903","-1073739517","3221227779","STATUS_BAD_FILE_TYPE","The file type being saved or retrieved has been blocked." +"C0000904","-1073739516","3221227780","STATUS_FILE_TOO_LARGE","The file size exceeds the limit allowed and cannot be saved." +"C0000905","-1073739515","3221227781","STATUS_FORMS_AUTH_REQUIRED","Access Denied. Before opening files in this location, you must first browse to the e.g. site and select the option to log on automatically." +"C0000906","-1073739514","3221227782","STATUS_VIRUS_INFECTED","The operation did not complete successfully because the file contains a virus." +"C0000907","-1073739513","3221227783","STATUS_VIRUS_DELETED","This file contains a virus and cannot be opened. Due to the nature of this virus, the file has been removed from this location." +"C0000908","-1073739512","3221227784","STATUS_BAD_MCFG_TABLE","The resources required for this device conflict with the MCFG table." +"C0000909","-1073739511","3221227785","STATUS_CANNOT_BREAK_OPLOCK","The operation did not complete successfully because it would cause an oplock to be broken. The caller has requested that existing oplocks not be broken." +"C000090B","-1073739509","3221227787","STATUS_BAD_DATA","Bad data." +"C0009898","-1073702760","3221264536","STATUS_WOW_ASSERTION","WOW Assertion Error." +"C000A000","-1073700864","3221266432","STATUS_INVALID_SIGNATURE","The cryptographic signature is invalid." +"C000A001","-1073700863","3221266433","STATUS_HMAC_NOT_SUPPORTED","The cryptographic provider does not support HMAC." +"C000A002","-1073700862","3221266434","STATUS_AUTH_TAG_MISMATCH","The computed authentication tag did not match the input authentication tag." +"C000A010","-1073700848","3221266448","STATUS_IPSEC_QUEUE_OVERFLOW","The IPsec queue overflowed." +"C000A011","-1073700847","3221266449","STATUS_ND_QUEUE_OVERFLOW","The neighbor discovery queue overflowed." +"C000A012","-1073700846","3221266450","STATUS_HOPLIMIT_EXCEEDED","An Internet Control Message Protocol (ICMP) hop limit exceeded error was received." +"C000A013","-1073700845","3221266451","STATUS_PROTOCOL_NOT_SUPPORTED","The protocol is not installed on the local machine." +"C000A080","-1073700736","3221266560","STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED","(Delayed Write Failed) Windows was unable to save all the data for the file %hs; the data has been lost. This error might be caused by network connectivity issues. Try to save this file elsewhere." +"C000A081","-1073700735","3221266561","STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR","(Delayed Write Failed) Windows was unable to save all the data for the file %hs; the data has been lost. This error was returned by the server on which the file exists. Try to save this file elsewhere." +"C000A082","-1073700734","3221266562","STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR","(Delayed Write Failed) Windows was unable to save all the data for the file %hs; the data has been lost. This error might be caused if the device has been removed or the media is write-protected." +"C000A083","-1073700733","3221266563","STATUS_XML_PARSE_ERROR","Windows was unable to parse the requested XML data." +"C000A084","-1073700732","3221266564","STATUS_XMLDSIG_ERROR","An error was encountered while processing an XML digital signature." +"C000A085","-1073700731","3221266565","STATUS_WRONG_COMPARTMENT","This indicates that the caller made the connection request in the wrong routing compartment." +"C000A086","-1073700730","3221266566","STATUS_AUTHIP_FAILURE","This indicates that there was an AuthIP failure when attempting to connect to the remote host." +"C000A087","-1073700729","3221266567","STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS","OID mapped groups cannot have members." +"C000A088","-1073700728","3221266568","STATUS_DS_OID_NOT_FOUND","The specified OID cannot be found." +"C000A100","-1073700608","3221266688","STATUS_HASH_NOT_SUPPORTED","Hash generation for the specified version and hash type is not enabled on server." +"C000A101","-1073700607","3221266689","STATUS_HASH_NOT_PRESENT","The hash requests is not present or not up to date with the current file contents." +"C000A2A1","-1073700191","3221267105","STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED","A file system filter on the server has not opted in for Offload Read support." +"C000A2A2","-1073700190","3221267106","STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED","A file system filter on the server has not opted in for Offload Write support." +"C000A2A3","-1073700189","3221267107","STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED","Offload read operations cannot be performed on: Compressed files, Sparse files, Encrypted files, or File system metadata files." +"C000A2A4","-1073700188","3221267108","STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED","Offload write operations cannot be performed on: Compressed files, Sparse files, Encrypted files, or File system metadata files." +"C0010001","-1073676287","3221291009","DBG_NO_STATE_CHANGE","The debugger did not perform a state change." +"C0010002","-1073676286","3221291010","DBG_APP_NOT_IDLE","The debugger found that the application is not idle." +"C0020001","-1073610751","3221356545","RPC_NT_INVALID_STRING_BINDING","The string binding is invalid." +"C0020002","-1073610750","3221356546","RPC_NT_WRONG_KIND_OF_BINDING","The binding handle is not the correct type." +"C0020003","-1073610749","3221356547","RPC_NT_INVALID_BINDING","The binding handle is invalid." +"C0020004","-1073610748","3221356548","RPC_NT_PROTSEQ_NOT_SUPPORTED","The RPC protocol sequence is not supported." +"C0020005","-1073610747","3221356549","RPC_NT_INVALID_RPC_PROTSEQ","The RPC protocol sequence is invalid." +"C0020006","-1073610746","3221356550","RPC_NT_INVALID_STRING_UUID","The string UUID is invalid." +"C0020007","-1073610745","3221356551","RPC_NT_INVALID_ENDPOINT_FORMAT","The endpoint format is invalid." +"C0020008","-1073610744","3221356552","RPC_NT_INVALID_NET_ADDR","The network address is invalid." +"C0020009","-1073610743","3221356553","RPC_NT_NO_ENDPOINT_FOUND","No endpoint was found." +"C002000A","-1073610742","3221356554","RPC_NT_INVALID_TIMEOUT","The time-out value is invalid." +"C002000B","-1073610741","3221356555","RPC_NT_OBJECT_NOT_FOUND","The object UUID was not found." +"C002000C","-1073610740","3221356556","RPC_NT_ALREADY_REGISTERED","The object UUID has already been registered." +"C002000D","-1073610739","3221356557","RPC_NT_TYPE_ALREADY_REGISTERED","The type UUID has already been registered." +"C002000E","-1073610738","3221356558","RPC_NT_ALREADY_LISTENING","The RPC server is already listening." +"C002000F","-1073610737","3221356559","RPC_NT_NO_PROTSEQS_REGISTERED","No protocol sequences have been registered." +"C0020010","-1073610736","3221356560","RPC_NT_NOT_LISTENING","The RPC server is not listening." +"C0020011","-1073610735","3221356561","RPC_NT_UNKNOWN_MGR_TYPE","The manager type is unknown." +"C0020012","-1073610734","3221356562","RPC_NT_UNKNOWN_IF","The interface is unknown." +"C0020013","-1073610733","3221356563","RPC_NT_NO_BINDINGS","There are no bindings." +"C0020014","-1073610732","3221356564","RPC_NT_NO_PROTSEQS","There are no protocol sequences." +"C0020015","-1073610731","3221356565","RPC_NT_CANT_CREATE_ENDPOINT","The endpoint cannot be created." +"C0020016","-1073610730","3221356566","RPC_NT_OUT_OF_RESOURCES","Insufficient resources are available to complete this operation." +"C0020017","-1073610729","3221356567","RPC_NT_SERVER_UNAVAILABLE","The RPC server is unavailable." +"C0020018","-1073610728","3221356568","RPC_NT_SERVER_TOO_BUSY","The RPC server is too busy to complete this operation." +"C0020019","-1073610727","3221356569","RPC_NT_INVALID_NETWORK_OPTIONS","The network options are invalid." +"C002001A","-1073610726","3221356570","RPC_NT_NO_CALL_ACTIVE","No RPCs are active on this thread." +"C002001B","-1073610725","3221356571","RPC_NT_CALL_FAILED","The RPC failed." +"C002001C","-1073610724","3221356572","RPC_NT_CALL_FAILED_DNE","The RPC failed and did not execute." +"C002001D","-1073610723","3221356573","RPC_NT_PROTOCOL_ERROR","An RPC protocol error occurred." +"C002001F","-1073610721","3221356575","RPC_NT_UNSUPPORTED_TRANS_SYN","The RPC server does not support the transfer syntax." +"C0020021","-1073610719","3221356577","RPC_NT_UNSUPPORTED_TYPE","The type UUID is not supported." +"C0020022","-1073610718","3221356578","RPC_NT_INVALID_TAG","The tag is invalid." +"C0020023","-1073610717","3221356579","RPC_NT_INVALID_BOUND","The array bounds are invalid." +"C0020024","-1073610716","3221356580","RPC_NT_NO_ENTRY_NAME","The binding does not contain an entry name." +"C0020025","-1073610715","3221356581","RPC_NT_INVALID_NAME_SYNTAX","The name syntax is invalid." +"C0020026","-1073610714","3221356582","RPC_NT_UNSUPPORTED_NAME_SYNTAX","The name syntax is not supported." +"C0020028","-1073610712","3221356584","RPC_NT_UUID_NO_ADDRESS","No network address is available to construct a UUID." +"C0020029","-1073610711","3221356585","RPC_NT_DUPLICATE_ENDPOINT","The endpoint is a duplicate." +"C002002A","-1073610710","3221356586","RPC_NT_UNKNOWN_AUTHN_TYPE","The authentication type is unknown." +"C002002B","-1073610709","3221356587","RPC_NT_MAX_CALLS_TOO_SMALL","The maximum number of calls is too small." +"C002002C","-1073610708","3221356588","RPC_NT_STRING_TOO_LONG","The string is too long." +"C002002D","-1073610707","3221356589","RPC_NT_PROTSEQ_NOT_FOUND","The RPC protocol sequence was not found." +"C002002E","-1073610706","3221356590","RPC_NT_PROCNUM_OUT_OF_RANGE","The procedure number is out of range." +"C002002F","-1073610705","3221356591","RPC_NT_BINDING_HAS_NO_AUTH","The binding does not contain any authentication information." +"C0020030","-1073610704","3221356592","RPC_NT_UNKNOWN_AUTHN_SERVICE","The authentication service is unknown." +"C0020031","-1073610703","3221356593","RPC_NT_UNKNOWN_AUTHN_LEVEL","The authentication level is unknown." +"C0020032","-1073610702","3221356594","RPC_NT_INVALID_AUTH_IDENTITY","The security context is invalid." +"C0020033","-1073610701","3221356595","RPC_NT_UNKNOWN_AUTHZ_SERVICE","The authorization service is unknown." +"C0020034","-1073610700","3221356596","EPT_NT_INVALID_ENTRY","The entry is invalid." +"C0020035","-1073610699","3221356597","EPT_NT_CANT_PERFORM_OP","The operation cannot be performed." +"C0020036","-1073610698","3221356598","EPT_NT_NOT_REGISTERED","No more endpoints are available from the endpoint mapper." +"C0020037","-1073610697","3221356599","RPC_NT_NOTHING_TO_EXPORT","No interfaces have been exported." +"C0020038","-1073610696","3221356600","RPC_NT_INCOMPLETE_NAME","The entry name is incomplete." +"C0020039","-1073610695","3221356601","RPC_NT_INVALID_VERS_OPTION","The version option is invalid." +"C002003A","-1073610694","3221356602","RPC_NT_NO_MORE_MEMBERS","There are no more members." +"C002003B","-1073610693","3221356603","RPC_NT_NOT_ALL_OBJS_UNEXPORTED","There is nothing to unexport." +"C002003C","-1073610692","3221356604","RPC_NT_INTERFACE_NOT_FOUND","The interface was not found." +"C002003D","-1073610691","3221356605","RPC_NT_ENTRY_ALREADY_EXISTS","The entry already exists." +"C002003E","-1073610690","3221356606","RPC_NT_ENTRY_NOT_FOUND","The entry was not found." +"C002003F","-1073610689","3221356607","RPC_NT_NAME_SERVICE_UNAVAILABLE","The name service is unavailable." +"C0020040","-1073610688","3221356608","RPC_NT_INVALID_NAF_ID","The network address family is invalid." +"C0020041","-1073610687","3221356609","RPC_NT_CANNOT_SUPPORT","The requested operation is not supported." +"C0020042","-1073610686","3221356610","RPC_NT_NO_CONTEXT_AVAILABLE","No security context is available to allow impersonation." +"C0020043","-1073610685","3221356611","RPC_NT_INTERNAL_ERROR","An internal error occurred in the RPC." +"C0020044","-1073610684","3221356612","RPC_NT_ZERO_DIVIDE","The RPC server attempted to divide an integer by zero." +"C0020045","-1073610683","3221356613","RPC_NT_ADDRESS_ERROR","An addressing error occurred in the RPC server." +"C0020046","-1073610682","3221356614","RPC_NT_FP_DIV_ZERO","A floating point operation at the RPC server caused a divide by zero." +"C0020047","-1073610681","3221356615","RPC_NT_FP_UNDERFLOW","A floating point underflow occurred at the RPC server." +"C0020048","-1073610680","3221356616","RPC_NT_FP_OVERFLOW","A floating point overflow occurred at the RPC server." +"C0020049","-1073610679","3221356617","RPC_NT_CALL_IN_PROGRESS","An RPC is already in progress for this thread." +"C002004A","-1073610678","3221356618","RPC_NT_NO_MORE_BINDINGS","There are no more bindings." +"C002004B","-1073610677","3221356619","RPC_NT_GROUP_MEMBER_NOT_FOUND","The group member was not found." +"C002004C","-1073610676","3221356620","EPT_NT_CANT_CREATE","The endpoint mapper database entry could not be created." +"C002004D","-1073610675","3221356621","RPC_NT_INVALID_OBJECT","The object UUID is the nil UUID." +"C002004F","-1073610673","3221356623","RPC_NT_NO_INTERFACES","No interfaces have been registered." +"C0020050","-1073610672","3221356624","RPC_NT_CALL_CANCELLED","The RPC was canceled." +"C0020051","-1073610671","3221356625","RPC_NT_BINDING_INCOMPLETE","The binding handle does not contain all the required information." +"C0020052","-1073610670","3221356626","RPC_NT_COMM_FAILURE","A communications failure occurred during an RPC." +"C0020053","-1073610669","3221356627","RPC_NT_UNSUPPORTED_AUTHN_LEVEL","The requested authentication level is not supported." +"C0020054","-1073610668","3221356628","RPC_NT_NO_PRINC_NAME","No principal name was registered." +"C0020055","-1073610667","3221356629","RPC_NT_NOT_RPC_ERROR","The error specified is not a valid Windows RPC error code." +"C0020057","-1073610665","3221356631","RPC_NT_SEC_PKG_ERROR","A security package-specific error occurred." +"C0020058","-1073610664","3221356632","RPC_NT_NOT_CANCELLED","The thread was not canceled." +"C0020062","-1073610654","3221356642","RPC_NT_INVALID_ASYNC_HANDLE","Invalid asynchronous RPC handle." +"C0020063","-1073610653","3221356643","RPC_NT_INVALID_ASYNC_CALL","Invalid asynchronous RPC call handle for this operation." +"C0020064","-1073610652","3221356644","RPC_NT_PROXY_ACCESS_DENIED","Access to the HTTP proxy is denied." +"C0030001","-1073545215","3221422081","RPC_NT_NO_MORE_ENTRIES","The list of RPC servers available for auto-handle binding has been exhausted." +"C0030002","-1073545214","3221422082","RPC_NT_SS_CHAR_TRANS_OPEN_FAIL","The file designated by DCERPCCHARTRANS cannot be opened." +"C0030003","-1073545213","3221422083","RPC_NT_SS_CHAR_TRANS_SHORT_FILE","The file containing the character translation table has fewer than 512 bytes." +"C0030004","-1073545212","3221422084","RPC_NT_SS_IN_NULL_CONTEXT","A null context handle is passed as an [in] parameter." +"C0030005","-1073545211","3221422085","RPC_NT_SS_CONTEXT_MISMATCH","The context handle does not match any known context handles." +"C0030006","-1073545210","3221422086","RPC_NT_SS_CONTEXT_DAMAGED","The context handle changed during a call." +"C0030007","-1073545209","3221422087","RPC_NT_SS_HANDLES_MISMATCH","The binding handles passed to an RPC do not match." +"C0030008","-1073545208","3221422088","RPC_NT_SS_CANNOT_GET_CALL_HANDLE","The stub is unable to get the call handle." +"C0030009","-1073545207","3221422089","RPC_NT_NULL_REF_POINTER","A null reference pointer was passed to the stub." +"C003000A","-1073545206","3221422090","RPC_NT_ENUM_VALUE_OUT_OF_RANGE","The enumeration value is out of range." +"C003000B","-1073545205","3221422091","RPC_NT_BYTE_COUNT_TOO_SMALL","The byte count is too small." +"C003000C","-1073545204","3221422092","RPC_NT_BAD_STUB_DATA","The stub received bad data." +"C0030059","-1073545127","3221422169","RPC_NT_INVALID_ES_ACTION","Invalid operation on the encoding/decoding handle." +"C003005A","-1073545126","3221422170","RPC_NT_WRONG_ES_VERSION","Incompatible version of the serializing package." +"C003005B","-1073545125","3221422171","RPC_NT_WRONG_STUB_VERSION","Incompatible version of the RPC stub." +"C003005C","-1073545124","3221422172","RPC_NT_INVALID_PIPE_OBJECT","The RPC pipe object is invalid or corrupt." +"C003005D","-1073545123","3221422173","RPC_NT_INVALID_PIPE_OPERATION","An invalid operation was attempted on an RPC pipe object." +"C003005E","-1073545122","3221422174","RPC_NT_WRONG_PIPE_VERSION","Unsupported RPC pipe version." +"C003005F","-1073545121","3221422175","RPC_NT_PIPE_CLOSED","The RPC pipe object has already been closed." +"C0030060","-1073545120","3221422176","RPC_NT_PIPE_DISCIPLINE_ERROR","The RPC call completed before all pipes were processed." +"C0030061","-1073545119","3221422177","RPC_NT_PIPE_EMPTY","No more data is available from the RPC pipe." +"C0040035","-1073479627","3221487669","STATUS_PNP_BAD_MPS_TABLE","A device is missing in the system BIOS MPS table. This device will not be used. Contact your system vendor for a system BIOS update." +"C0040036","-1073479626","3221487670","STATUS_PNP_TRANSLATION_FAILED","A translator failed to translate resources." +"C0040037","-1073479625","3221487671","STATUS_PNP_IRQ_TRANSLATION_FAILED","An IRQ translator failed to translate resources." +"C0040038","-1073479624","3221487672","STATUS_PNP_INVALID_ID","Driver %2 returned an invalid ID for a child device (%3)." +"C0040039","-1073479623","3221487673","STATUS_IO_REISSUE_AS_CACHED","Reissue the given operation as a cached I/O operation." +"C00A0001","-1073086463","3221880833","STATUS_CTX_WINSTATION_NAME_INVALID","Session name %1 is invalid." +"C00A0002","-1073086462","3221880834","STATUS_CTX_INVALID_PD","The protocol driver %1 is invalid." +"C00A0003","-1073086461","3221880835","STATUS_CTX_PD_NOT_FOUND","The protocol driver %1 was not found in the system path." +"C00A0006","-1073086458","3221880838","STATUS_CTX_CLOSE_PENDING","A close operation is pending on the terminal connection." +"C00A0007","-1073086457","3221880839","STATUS_CTX_NO_OUTBUF","No free output buffers are available." +"C00A0008","-1073086456","3221880840","STATUS_CTX_MODEM_INF_NOT_FOUND","The MODEM.INF file was not found." +"C00A0009","-1073086455","3221880841","STATUS_CTX_INVALID_MODEMNAME","The modem (%1) was not found in the MODEM.INF file." +"C00A000A","-1073086454","3221880842","STATUS_CTX_RESPONSE_ERROR","The modem did not accept the command sent to it. Verify that the configured modem name matches the attached modem." +"C00A000B","-1073086453","3221880843","STATUS_CTX_MODEM_RESPONSE_TIMEOUT","The modem did not respond to the command sent to it. Verify that the modem cable is properly attached and the modem is turned on." +"C00A000C","-1073086452","3221880844","STATUS_CTX_MODEM_RESPONSE_NO_CARRIER","Carrier detection has failed or the carrier has been dropped due to disconnection." +"C00A000D","-1073086451","3221880845","STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE","A dial tone was not detected within the required time. Verify that the phone cable is properly attached and functional." +"C00A000E","-1073086450","3221880846","STATUS_CTX_MODEM_RESPONSE_BUSY","A busy signal was detected at a remote site on callback." +"C00A000F","-1073086449","3221880847","STATUS_CTX_MODEM_RESPONSE_VOICE","A voice was detected at a remote site on callback." +"C00A0010","-1073086448","3221880848","STATUS_CTX_TD_ERROR","Transport driver error." +"C00A0012","-1073086446","3221880850","STATUS_CTX_LICENSE_CLIENT_INVALID","The client you are using is not licensed to use this system. Your logon request is denied." +"C00A0013","-1073086445","3221880851","STATUS_CTX_LICENSE_NOT_AVAILABLE","The system has reached its licensed logon limit. Try again later." +"C00A0014","-1073086444","3221880852","STATUS_CTX_LICENSE_EXPIRED","The system license has expired. Your logon request is denied." +"C00A0015","-1073086443","3221880853","STATUS_CTX_WINSTATION_NOT_FOUND","The specified session cannot be found." +"C00A0016","-1073086442","3221880854","STATUS_CTX_WINSTATION_NAME_COLLISION","The specified session name is already in use." +"C00A0017","-1073086441","3221880855","STATUS_CTX_WINSTATION_BUSY","The requested operation cannot be completed because the terminal connection is currently processing a connect, disconnect, reset, or delete operation." +"C00A0018","-1073086440","3221880856","STATUS_CTX_BAD_VIDEO_MODE","An attempt has been made to connect to a session whose video mode is not supported by the current client." +"C00A0022","-1073086430","3221880866","STATUS_CTX_GRAPHICS_INVALID","The application attempted to enable DOS graphics mode. DOS graphics mode is not supported." +"C00A0024","-1073086428","3221880868","STATUS_CTX_NOT_CONSOLE","The requested operation can be performed only on the system console. This is most often the result of a driver or system DLL requiring direct console access." +"C00A0026","-1073086426","3221880870","STATUS_CTX_CLIENT_QUERY_TIMEOUT","The client failed to respond to the server connect message." +"C00A0027","-1073086425","3221880871","STATUS_CTX_CONSOLE_DISCONNECT","Disconnecting the console session is not supported." +"C00A0028","-1073086424","3221880872","STATUS_CTX_CONSOLE_CONNECT","Reconnecting a disconnected session to the console is not supported." +"C00A002A","-1073086422","3221880874","STATUS_CTX_SHADOW_DENIED","The request to control another session remotely was denied." +"C00A002B","-1073086421","3221880875","STATUS_CTX_WINSTATION_ACCESS_DENIED","A process has requested access to a session, but has not been granted those access rights." +"C00A002E","-1073086418","3221880878","STATUS_CTX_INVALID_WD","The terminal connection driver %1 is invalid." +"C00A002F","-1073086417","3221880879","STATUS_CTX_WD_NOT_FOUND","The terminal connection driver %1 was not found in the system path." +"C00A0030","-1073086416","3221880880","STATUS_CTX_SHADOW_INVALID","The requested session cannot be controlled remotely. You cannot control your own session, a session that is trying to control your session, a session that has no user logged on, or other sessions from the console." +"C00A0031","-1073086415","3221880881","STATUS_CTX_SHADOW_DISABLED","The requested session is not configured to allow remote control." +"C00A0032","-1073086414","3221880882","STATUS_RDP_PROTOCOL_ERROR","The RDP protocol component %2 detected an error in the protocol stream and has disconnected the client." +"C00A0033","-1073086413","3221880883","STATUS_CTX_CLIENT_LICENSE_NOT_SET","Your request to connect to this terminal server has been rejected. Your terminal server client license number has not been entered for this copy of the terminal client. Contact your system administrator for help in entering a valid, unique license number for this terminal server client. Click OK to continue." +"C00A0034","-1073086412","3221880884","STATUS_CTX_CLIENT_LICENSE_IN_USE","Your request to connect to this terminal server has been rejected. Your terminal server client license number is currently being used by another user. Contact your system administrator to obtain a new copy of the terminal server client with a valid, unique license number. Click OK to continue." +"C00A0035","-1073086411","3221880885","STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE","The remote control of the console was terminated because the display mode was changed. Changing the display mode in a remote control session is not supported." +"C00A0036","-1073086410","3221880886","STATUS_CTX_SHADOW_NOT_RUNNING","Remote control could not be terminated because the specified session is not currently being remotely controlled." +"C00A0037","-1073086409","3221880887","STATUS_CTX_LOGON_DISABLED","Your interactive logon privilege has been disabled. Contact your system administrator." +"C00A0038","-1073086408","3221880888","STATUS_CTX_SECURITY_LAYER_ERROR","The terminal server security layer detected an error in the protocol stream and has disconnected the client." +"C00A0039","-1073086407","3221880889","STATUS_TS_INCOMPATIBLE_SESSIONS","The target session is incompatible with the current session." +"C00B0001","-1073020927","3221946369","STATUS_MUI_FILE_NOT_FOUND","The resource loader failed to find an MUI file." +"C00B0002","-1073020926","3221946370","STATUS_MUI_INVALID_FILE","The resource loader failed to load an MUI file because the file failed to pass validation." +"C00B0003","-1073020925","3221946371","STATUS_MUI_INVALID_RC_CONFIG","The RC manifest is corrupted with garbage data, is an unsupported version, or is missing a required item." +"C00B0004","-1073020924","3221946372","STATUS_MUI_INVALID_LOCALE_NAME","The RC manifest has an invalid culture name." +"C00B0005","-1073020923","3221946373","STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME","The RC manifest has and invalid ultimate fallback name." +"C00B0006","-1073020922","3221946374","STATUS_MUI_FILE_NOT_LOADED","The resource loader cache does not have a loaded MUI entry." +"C00B0007","-1073020921","3221946375","STATUS_RESOURCE_ENUM_USER_STOP","The user stopped resource enumeration." +"C0130001","-1072496639","3222470657","STATUS_CLUSTER_INVALID_NODE","The cluster node is not valid." +"C0130002","-1072496638","3222470658","STATUS_CLUSTER_NODE_EXISTS","The cluster node already exists." +"C0130003","-1072496637","3222470659","STATUS_CLUSTER_JOIN_IN_PROGRESS","A node is in the process of joining the cluster." +"C0130004","-1072496636","3222470660","STATUS_CLUSTER_NODE_NOT_FOUND","The cluster node was not found." +"C0130005","-1072496635","3222470661","STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND","The cluster local node information was not found." +"C0130006","-1072496634","3222470662","STATUS_CLUSTER_NETWORK_EXISTS","The cluster network already exists." +"C0130007","-1072496633","3222470663","STATUS_CLUSTER_NETWORK_NOT_FOUND","The cluster network was not found." +"C0130008","-1072496632","3222470664","STATUS_CLUSTER_NETINTERFACE_EXISTS","The cluster network interface already exists." +"C0130009","-1072496631","3222470665","STATUS_CLUSTER_NETINTERFACE_NOT_FOUND","The cluster network interface was not found." +"C013000A","-1072496630","3222470666","STATUS_CLUSTER_INVALID_REQUEST","The cluster request is not valid for this object." +"C013000B","-1072496629","3222470667","STATUS_CLUSTER_INVALID_NETWORK_PROVIDER","The cluster network provider is not valid." +"C013000C","-1072496628","3222470668","STATUS_CLUSTER_NODE_DOWN","The cluster node is down." +"C013000D","-1072496627","3222470669","STATUS_CLUSTER_NODE_UNREACHABLE","The cluster node is not reachable." +"C013000E","-1072496626","3222470670","STATUS_CLUSTER_NODE_NOT_MEMBER","The cluster node is not a member of the cluster." +"C013000F","-1072496625","3222470671","STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS","A cluster join operation is not in progress." +"C0130010","-1072496624","3222470672","STATUS_CLUSTER_INVALID_NETWORK","The cluster network is not valid." +"C0130011","-1072496623","3222470673","STATUS_CLUSTER_NO_NET_ADAPTERS","No network adapters are available." +"C0130012","-1072496622","3222470674","STATUS_CLUSTER_NODE_UP","The cluster node is up." +"C0130013","-1072496621","3222470675","STATUS_CLUSTER_NODE_PAUSED","The cluster node is paused." +"C0130014","-1072496620","3222470676","STATUS_CLUSTER_NODE_NOT_PAUSED","The cluster node is not paused." +"C0130015","-1072496619","3222470677","STATUS_CLUSTER_NO_SECURITY_CONTEXT","No cluster security context is available." +"C0130016","-1072496618","3222470678","STATUS_CLUSTER_NETWORK_NOT_INTERNAL","The cluster network is not configured for internal cluster communication." +"C0130017","-1072496617","3222470679","STATUS_CLUSTER_POISONED","The cluster node has been poisoned." +"C0140001","-1072431103","3222536193","STATUS_ACPI_INVALID_OPCODE","An attempt was made to run an invalid AML opcode." +"C0140002","-1072431102","3222536194","STATUS_ACPI_STACK_OVERFLOW","The AML interpreter stack has overflowed." +"C0140003","-1072431101","3222536195","STATUS_ACPI_ASSERT_FAILED","An inconsistent state has occurred." +"C0140004","-1072431100","3222536196","STATUS_ACPI_INVALID_INDEX","An attempt was made to access an array outside its bounds." +"C0140005","-1072431099","3222536197","STATUS_ACPI_INVALID_ARGUMENT","A required argument was not specified." +"C0140006","-1072431098","3222536198","STATUS_ACPI_FATAL","A fatal error has occurred." +"C0140007","-1072431097","3222536199","STATUS_ACPI_INVALID_SUPERNAME","An invalid SuperName was specified." +"C0140008","-1072431096","3222536200","STATUS_ACPI_INVALID_ARGTYPE","An argument with an incorrect type was specified." +"C0140009","-1072431095","3222536201","STATUS_ACPI_INVALID_OBJTYPE","An object with an incorrect type was specified." +"C014000A","-1072431094","3222536202","STATUS_ACPI_INVALID_TARGETTYPE","A target with an incorrect type was specified." +"C014000B","-1072431093","3222536203","STATUS_ACPI_INCORRECT_ARGUMENT_COUNT","An incorrect number of arguments was specified." +"C014000C","-1072431092","3222536204","STATUS_ACPI_ADDRESS_NOT_MAPPED","An address failed to translate." +"C014000D","-1072431091","3222536205","STATUS_ACPI_INVALID_EVENTTYPE","An incorrect event type was specified." +"C014000E","-1072431090","3222536206","STATUS_ACPI_HANDLER_COLLISION","A handler for the target already exists." +"C014000F","-1072431089","3222536207","STATUS_ACPI_INVALID_DATA","Invalid data for the target was specified." +"C0140010","-1072431088","3222536208","STATUS_ACPI_INVALID_REGION","An invalid region for the target was specified." +"C0140011","-1072431087","3222536209","STATUS_ACPI_INVALID_ACCESS_SIZE","An attempt was made to access a field outside the defined range." +"C0140012","-1072431086","3222536210","STATUS_ACPI_ACQUIRE_GLOBAL_LOCK","The global system lock could not be acquired." +"C0140013","-1072431085","3222536211","STATUS_ACPI_ALREADY_INITIALIZED","An attempt was made to reinitialize the ACPI subsystem." +"C0140014","-1072431084","3222536212","STATUS_ACPI_NOT_INITIALIZED","The ACPI subsystem has not been initialized." +"C0140015","-1072431083","3222536213","STATUS_ACPI_INVALID_MUTEX_LEVEL","An incorrect mutex was specified." +"C0140016","-1072431082","3222536214","STATUS_ACPI_MUTEX_NOT_OWNED","The mutex is not currently owned." +"C0140017","-1072431081","3222536215","STATUS_ACPI_MUTEX_NOT_OWNER","An attempt was made to access the mutex by a process that was not the owner." +"C0140018","-1072431080","3222536216","STATUS_ACPI_RS_ACCESS","An error occurred during an access to region space." +"C0140019","-1072431079","3222536217","STATUS_ACPI_INVALID_TABLE","An attempt was made to use an incorrect table." +"C0140020","-1072431072","3222536224","STATUS_ACPI_REG_HANDLER_FAILED","The registration of an ACPI event failed." +"C0140021","-1072431071","3222536225","STATUS_ACPI_POWER_REQUEST_FAILED","An ACPI power object failed to transition state." +"C0150001","-1072365567","3222601729","STATUS_SXS_SECTION_NOT_FOUND","The requested section is not present in the activation context." +"C0150002","-1072365566","3222601730","STATUS_SXS_CANT_GEN_ACTCTX","Windows was unble to process the application binding information. Refer to the system event log for further information." +"C0150003","-1072365565","3222601731","STATUS_SXS_INVALID_ACTCTXDATA_FORMAT","The application binding data format is invalid." +"C0150004","-1072365564","3222601732","STATUS_SXS_ASSEMBLY_NOT_FOUND","The referenced assembly is not installed on the system." +"C0150005","-1072365563","3222601733","STATUS_SXS_MANIFEST_FORMAT_ERROR","The manifest file does not begin with the required tag and format information." +"C0150006","-1072365562","3222601734","STATUS_SXS_MANIFEST_PARSE_ERROR","The manifest file contains one or more syntax errors." +"C0150007","-1072365561","3222601735","STATUS_SXS_ACTIVATION_CONTEXT_DISABLED","The application attempted to activate a disabled activation context." +"C0150008","-1072365560","3222601736","STATUS_SXS_KEY_NOT_FOUND","The requested lookup key was not found in any active activation context." +"C0150009","-1072365559","3222601737","STATUS_SXS_VERSION_CONFLICT","A component version required by the application conflicts with another component version that is already active." +"C015000A","-1072365558","3222601738","STATUS_SXS_WRONG_SECTION_TYPE","The type requested activation context section does not match the query API used." +"C015000B","-1072365557","3222601739","STATUS_SXS_THREAD_QUERIES_DISABLED","Lack of system resources has required isolated activation to be disabled for the current thread of execution." +"C015000C","-1072365556","3222601740","STATUS_SXS_ASSEMBLY_MISSING","The referenced assembly could not be found." +"C015000E","-1072365554","3222601742","STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET","An attempt to set the process default activation context failed because the process default activation context was already set." +"C015000F","-1072365553","3222601743","STATUS_SXS_EARLY_DEACTIVATION","The activation context being deactivated is not the most recently activated one." +"C0150010","-1072365552","3222601744","STATUS_SXS_INVALID_DEACTIVATION","The activation context being deactivated is not active for the current thread of execution." +"C0150011","-1072365551","3222601745","STATUS_SXS_MULTIPLE_DEACTIVATION","The activation context being deactivated has already been deactivated." +"C0150012","-1072365550","3222601746","STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY","The activation context of the system default assembly could not be generated." +"C0150013","-1072365549","3222601747","STATUS_SXS_PROCESS_TERMINATION_REQUESTED","A component used by the isolation facility has requested that the process be terminated." +"C0150014","-1072365548","3222601748","STATUS_SXS_CORRUPT_ACTIVATION_STACK","The activation context activation stack for the running thread of execution is corrupt." +"C0150015","-1072365547","3222601749","STATUS_SXS_CORRUPTION","The application isolation metadata for this process or thread has become corrupt." +"C0150016","-1072365546","3222601750","STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE","The value of an attribute in an identity is not within the legal range." +"C0150017","-1072365545","3222601751","STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME","The name of an attribute in an identity is not within the legal range." +"C0150018","-1072365544","3222601752","STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE","An identity contains two definitions for the same attribute." +"C0150019","-1072365543","3222601753","STATUS_SXS_IDENTITY_PARSE_ERROR","The identity string is malformed. This might be due to a trailing comma, more than two unnamed attributes, a missing attribute name, or a missing attribute value." +"C015001A","-1072365542","3222601754","STATUS_SXS_COMPONENT_STORE_CORRUPT","The component store has become corrupted." +"C015001B","-1072365541","3222601755","STATUS_SXS_FILE_HASH_MISMATCH","A component's file does not match the verification information present in the component manifest." +"C015001C","-1072365540","3222601756","STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT","The identities of the manifests are identical, but their contents are different." +"C015001D","-1072365539","3222601757","STATUS_SXS_IDENTITIES_DIFFERENT","The component identities are different." +"C015001E","-1072365538","3222601758","STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT","The assembly is not a deployment." +"C015001F","-1072365537","3222601759","STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY","The file is not a part of the assembly." +"C0150020","-1072365536","3222601760","STATUS_ADVANCED_INSTALLER_FAILED","An advanced installer failed during setup or servicing." +"C0150021","-1072365535","3222601761","STATUS_XML_ENCODING_MISMATCH","The character encoding in the XML declaration did not match the encoding used in the document." +"C0150022","-1072365534","3222601762","STATUS_SXS_MANIFEST_TOO_BIG","The size of the manifest exceeds the maximum allowed." +"C0150023","-1072365533","3222601763","STATUS_SXS_SETTING_NOT_REGISTERED","The setting is not registered." +"C0150024","-1072365532","3222601764","STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE","One or more required transaction members are not present." +"C0150025","-1072365531","3222601765","STATUS_SMI_PRIMITIVE_INSTALLER_FAILED","The SMI primitive installer failed during setup or servicing." +"C0150026","-1072365530","3222601766","STATUS_GENERIC_COMMAND_FAILED","A generic command executable returned a result that indicates failure." +"C0150027","-1072365529","3222601767","STATUS_SXS_FILE_HASH_MISSING","A component is missing file verification information in its manifest." +"C0190001","-1072103423","3222863873","STATUS_TRANSACTIONAL_CONFLICT","The function attempted to use a name that is reserved for use by another transaction." +"C0190002","-1072103422","3222863874","STATUS_INVALID_TRANSACTION","The transaction handle associated with this operation is invalid." +"C0190003","-1072103421","3222863875","STATUS_TRANSACTION_NOT_ACTIVE","The requested operation was made in the context of a transaction that is no longer active." +"C0190004","-1072103420","3222863876","STATUS_TM_INITIALIZATION_FAILED","The transaction manager was unable to be successfully initialized. Transacted operations are not supported." +"C0190005","-1072103419","3222863877","STATUS_RM_NOT_ACTIVE","Transaction support within the specified file system resource manager was not started or was shut down due to an error." +"C0190006","-1072103418","3222863878","STATUS_RM_METADATA_CORRUPT","The metadata of the resource manager has been corrupted. The resource manager will not function." +"C0190007","-1072103417","3222863879","STATUS_TRANSACTION_NOT_JOINED","The resource manager attempted to prepare a transaction that it has not successfully joined." +"C0190008","-1072103416","3222863880","STATUS_DIRECTORY_NOT_RM","The specified directory does not contain a file system resource manager." +"C019000A","-1072103414","3222863882","STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE","The remote server or share does not support transacted file operations." +"C019000B","-1072103413","3222863883","STATUS_LOG_RESIZE_INVALID_SIZE","The requested log size for the file system resource manager is invalid." +"C019000C","-1072103412","3222863884","STATUS_REMOTE_FILE_VERSION_MISMATCH","The remote server sent mismatching version number or Fid for a file opened with transactions." +"C019000F","-1072103409","3222863887","STATUS_CRM_PROTOCOL_ALREADY_EXISTS","The resource manager tried to register a protocol that already exists." +"C0190010","-1072103408","3222863888","STATUS_TRANSACTION_PROPAGATION_FAILED","The attempt to propagate the transaction failed." +"C0190011","-1072103407","3222863889","STATUS_CRM_PROTOCOL_NOT_FOUND","The requested propagation protocol was not registered as a CRM." +"C0190012","-1072103406","3222863890","STATUS_TRANSACTION_SUPERIOR_EXISTS","The transaction object already has a superior enlistment, and the caller attempted an operation that would have created a new superior. Only a single superior enlistment is allowed." +"C0190013","-1072103405","3222863891","STATUS_TRANSACTION_REQUEST_NOT_VALID","The requested operation is not valid on the transaction object in its current state." +"C0190014","-1072103404","3222863892","STATUS_TRANSACTION_NOT_REQUESTED","The caller has called a response API, but the response is not expected because the transaction manager did not issue the corresponding request to the caller." +"C0190015","-1072103403","3222863893","STATUS_TRANSACTION_ALREADY_ABORTED","It is too late to perform the requested operation, because the transaction has already been aborted." +"C0190016","-1072103402","3222863894","STATUS_TRANSACTION_ALREADY_COMMITTED","It is too late to perform the requested operation, because the transaction has already been committed." +"C0190017","-1072103401","3222863895","STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER","The buffer passed in to NtPushTransaction or NtPullTransaction is not in a valid format." +"C0190018","-1072103400","3222863896","STATUS_CURRENT_TRANSACTION_NOT_VALID","The current transaction context associated with the thread is not a valid handle to a transaction object." +"C0190019","-1072103399","3222863897","STATUS_LOG_GROWTH_FAILED","An attempt to create space in the transactional resource manager's log failed. The failure status has been recorded in the event log." +"C0190021","-1072103391","3222863905","STATUS_OBJECT_NO_LONGER_EXISTS","The object (file, stream, or link) that corresponds to the handle has been deleted by a transaction savepoint rollback." +"C0190022","-1072103390","3222863906","STATUS_STREAM_MINIVERSION_NOT_FOUND","The specified file miniversion was not found for this transacted file open." +"C0190023","-1072103389","3222863907","STATUS_STREAM_MINIVERSION_NOT_VALID","The specified file miniversion was found but has been invalidated. The most likely cause is a transaction savepoint rollback." +"C0190024","-1072103388","3222863908","STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION","A miniversion can be opened only in the context of the transaction that created it." +"C0190025","-1072103387","3222863909","STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT","It is not possible to open a miniversion with modify access." +"C0190026","-1072103386","3222863910","STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS","It is not possible to create any more miniversions for this stream." +"C0190028","-1072103384","3222863912","STATUS_HANDLE_NO_LONGER_VALID","The handle has been invalidated by a transaction. The most likely cause is the presence of memory mapping on a file or an open handle when the transaction ended or rolled back to savepoint." +"C0190030","-1072103376","3222863920","STATUS_LOG_CORRUPTION_DETECTED","The log data is corrupt." +"C0190032","-1072103374","3222863922","STATUS_RM_DISCONNECTED","The transaction outcome is unavailable because the resource manager responsible for it is disconnected." +"C0190033","-1072103373","3222863923","STATUS_ENLISTMENT_NOT_SUPERIOR","The request was rejected because the enlistment in question is not a superior enlistment." +"C0190036","-1072103370","3222863926","STATUS_FILE_IDENTITY_NOT_PERSISTENT","The file cannot be opened in a transaction because its identity depends on the outcome of an unresolved transaction." +"C0190037","-1072103369","3222863927","STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY","The operation cannot be performed because another transaction is depending on this property not changing." +"C0190038","-1072103368","3222863928","STATUS_CANT_CROSS_RM_BOUNDARY","The operation would involve a single file with two transactional resource managers and is, therefore, not allowed." +"C0190039","-1072103367","3222863929","STATUS_TXF_DIR_NOT_EMPTY","The $Txf directory must be empty for this operation to succeed." +"C019003A","-1072103366","3222863930","STATUS_INDOUBT_TRANSACTIONS_EXIST","The operation would leave a transactional resource manager in an inconsistent state and is therefore not allowed." +"C019003B","-1072103365","3222863931","STATUS_TM_VOLATILE","The operation could not be completed because the transaction manager does not have a log." +"C019003C","-1072103364","3222863932","STATUS_ROLLBACK_TIMER_EXPIRED","A rollback could not be scheduled because a previously scheduled rollback has already executed or been queued for execution." +"C019003D","-1072103363","3222863933","STATUS_TXF_ATTRIBUTE_CORRUPT","The transactional metadata attribute on the file or directory %hs is corrupt and unreadable." +"C019003E","-1072103362","3222863934","STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION","The encryption operation could not be completed because a transaction is active." +"C019003F","-1072103361","3222863935","STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED","This object is not allowed to be opened in a transaction." +"C0190040","-1072103360","3222863936","STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE","Memory mapping (creating a mapped section) a remote file under a transaction is not supported." +"C0190043","-1072103357","3222863939","STATUS_TRANSACTION_REQUIRED_PROMOTION","Promotion was required to allow the resource manager to enlist, but the transaction was set to disallow it." +"C0190044","-1072103356","3222863940","STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION","This file is open for modification in an unresolved transaction and can be opened for execute only by a transacted reader." +"C0190045","-1072103355","3222863941","STATUS_TRANSACTIONS_NOT_FROZEN","The request to thaw frozen transactions was ignored because transactions were not previously frozen." +"C0190046","-1072103354","3222863942","STATUS_TRANSACTION_FREEZE_IN_PROGRESS","Transactions cannot be frozen because a freeze is already in progress." +"C0190047","-1072103353","3222863943","STATUS_NOT_SNAPSHOT_VOLUME","The target volume is not a snapshot volume. This operation is valid only on a volume mounted as a snapshot." +"C0190048","-1072103352","3222863944","STATUS_NO_SAVEPOINT_WITH_OPEN_FILES","The savepoint operation failed because files are open on the transaction, which is not permitted." +"C0190049","-1072103351","3222863945","STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION","The sparse operation could not be completed because a transaction is active on the file." +"C019004A","-1072103350","3222863946","STATUS_TM_IDENTITY_MISMATCH","The call to create a transaction manager object failed because the Tm Identity that is stored in the log file does not match the Tm Identity that was passed in as an argument." +"C019004B","-1072103349","3222863947","STATUS_FLOATED_SECTION","I/O was attempted on a section object that has been floated as a result of a transaction ending. There is no valid data." +"C019004C","-1072103348","3222863948","STATUS_CANNOT_ACCEPT_TRANSACTED_WORK","The transactional resource manager cannot currently accept transacted work due to a transient condition, such as low resources." +"C019004D","-1072103347","3222863949","STATUS_CANNOT_ABORT_TRANSACTIONS","The transactional resource manager had too many transactions outstanding that could not be aborted. The transactional resource manager has been shut down." +"C019004E","-1072103346","3222863950","STATUS_TRANSACTION_NOT_FOUND","The specified transaction was unable to be opened because it was not found." +"C019004F","-1072103345","3222863951","STATUS_RESOURCEMANAGER_NOT_FOUND","The specified resource manager was unable to be opened because it was not found." +"C0190050","-1072103344","3222863952","STATUS_ENLISTMENT_NOT_FOUND","The specified enlistment was unable to be opened because it was not found." +"C0190051","-1072103343","3222863953","STATUS_TRANSACTIONMANAGER_NOT_FOUND","The specified transaction manager was unable to be opened because it was not found." +"C0190052","-1072103342","3222863954","STATUS_TRANSACTIONMANAGER_NOT_ONLINE","The specified resource manager was unable to create an enlistment because its associated transaction manager is not online." +"C0190053","-1072103341","3222863955","STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION","The specified transaction manager was unable to create the objects contained in its log file in the Ob namespace. Therefore, the transaction manager was unable to recover." +"C0190054","-1072103340","3222863956","STATUS_TRANSACTION_NOT_ROOT","The call to create a superior enlistment on this transaction object could not be completed because the transaction object specified for the enlistment is a subordinate branch of the transaction. Only the root of the transaction can be enlisted as a superior." +"C0190055","-1072103339","3222863957","STATUS_TRANSACTION_OBJECT_EXPIRED","Because the associated transaction manager or resource manager has been closed, the handle is no longer valid." +"C0190056","-1072103338","3222863958","STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION","The compression operation could not be completed because a transaction is active on the file." +"C0190057","-1072103337","3222863959","STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED","The specified operation could not be performed on this superior enlistment because the enlistment was not created with the corresponding completion response in the NotificationMask." +"C0190058","-1072103336","3222863960","STATUS_TRANSACTION_RECORD_TOO_LONG","The specified operation could not be performed because the record to be logged was too long. This can occur because either there are too many enlistments on this transaction or the combined RecoveryInformation being logged on behalf of those enlistments is too long." +"C0190059","-1072103335","3222863961","STATUS_NO_LINK_TRACKING_IN_TRANSACTION","The link-tracking operation could not be completed because a transaction is active." +"C019005A","-1072103334","3222863962","STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION","This operation cannot be performed in a transaction." +"C019005B","-1072103333","3222863963","STATUS_TRANSACTION_INTEGRITY_VIOLATED","The kernel transaction manager had to abort or forget the transaction because it blocked forward progress." +"C0190060","-1072103328","3222863968","STATUS_EXPIRED_HANDLE","The handle is no longer properly associated with its transaction. It might have been opened in a transactional resource manager that was subsequently forced to restart. Please close the handle and open a new one." +"C0190061","-1072103327","3222863969","STATUS_TRANSACTION_NOT_ENLISTED","The specified operation could not be performed because the resource manager is not enlisted in the transaction." +"C01A0001","-1072037887","3222929409","STATUS_LOG_SECTOR_INVALID","The log service found an invalid log sector." +"C01A0002","-1072037886","3222929410","STATUS_LOG_SECTOR_PARITY_INVALID","The log service encountered a log sector with invalid block parity." +"C01A0003","-1072037885","3222929411","STATUS_LOG_SECTOR_REMAPPED","The log service encountered a remapped log sector." +"C01A0004","-1072037884","3222929412","STATUS_LOG_BLOCK_INCOMPLETE","The log service encountered a partial or incomplete log block." +"C01A0005","-1072037883","3222929413","STATUS_LOG_INVALID_RANGE","The log service encountered an attempt to access data outside the active log range." +"C01A0006","-1072037882","3222929414","STATUS_LOG_BLOCKS_EXHAUSTED","The log service user-log marshaling buffers are exhausted." +"C01A0007","-1072037881","3222929415","STATUS_LOG_READ_CONTEXT_INVALID","The log service encountered an attempt to read from a marshaling area with an invalid read context." +"C01A0008","-1072037880","3222929416","STATUS_LOG_RESTART_INVALID","The log service encountered an invalid log restart area." +"C01A0009","-1072037879","3222929417","STATUS_LOG_BLOCK_VERSION","The log service encountered an invalid log block version." +"C01A000A","-1072037878","3222929418","STATUS_LOG_BLOCK_INVALID","The log service encountered an invalid log block." +"C01A000B","-1072037877","3222929419","STATUS_LOG_READ_MODE_INVALID","The log service encountered an attempt to read the log with an invalid read mode." +"C01A000D","-1072037875","3222929421","STATUS_LOG_METADATA_CORRUPT","The log service encountered a corrupted metadata file." +"C01A000E","-1072037874","3222929422","STATUS_LOG_METADATA_INVALID","The log service encountered a metadata file that could not be created by the log file system." +"C01A000F","-1072037873","3222929423","STATUS_LOG_METADATA_INCONSISTENT","The log service encountered a metadata file with inconsistent data." +"C01A0010","-1072037872","3222929424","STATUS_LOG_RESERVATION_INVALID","The log service encountered an attempt to erroneously allocate or dispose reservation space." +"C01A0011","-1072037871","3222929425","STATUS_LOG_CANT_DELETE","The log service cannot delete the log file or the file system container." +"C01A0012","-1072037870","3222929426","STATUS_LOG_CONTAINER_LIMIT_EXCEEDED","The log service has reached the maximum allowable containers allocated to a log file." +"C01A0013","-1072037869","3222929427","STATUS_LOG_START_OF_LOG","The log service has attempted to read or write backward past the start of the log." +"C01A0014","-1072037868","3222929428","STATUS_LOG_POLICY_ALREADY_INSTALLED","The log policy could not be installed because a policy of the same type is already present." +"C01A0015","-1072037867","3222929429","STATUS_LOG_POLICY_NOT_INSTALLED","The log policy in question was not installed at the time of the request." +"C01A0016","-1072037866","3222929430","STATUS_LOG_POLICY_INVALID","The installed set of policies on the log is invalid." +"C01A0017","-1072037865","3222929431","STATUS_LOG_POLICY_CONFLICT","A policy on the log in question prevented the operation from completing." +"C01A0018","-1072037864","3222929432","STATUS_LOG_PINNED_ARCHIVE_TAIL","The log space cannot be reclaimed because the log is pinned by the archive tail." +"C01A0019","-1072037863","3222929433","STATUS_LOG_RECORD_NONEXISTENT","The log record is not a record in the log file." +"C01A001A","-1072037862","3222929434","STATUS_LOG_RECORDS_RESERVED_INVALID","The number of reserved log records or the adjustment of the number of reserved log records is invalid." +"C01A001B","-1072037861","3222929435","STATUS_LOG_SPACE_RESERVED_INVALID","The reserved log space or the adjustment of the log space is invalid." +"C01A001C","-1072037860","3222929436","STATUS_LOG_TAIL_INVALID","A new or existing archive tail or the base of the active log is invalid." +"C01A001D","-1072037859","3222929437","STATUS_LOG_FULL","The log space is exhausted." +"C01A001E","-1072037858","3222929438","STATUS_LOG_MULTIPLEXED","The log is multiplexed; no direct writes to the physical log are allowed." +"C01A001F","-1072037857","3222929439","STATUS_LOG_DEDICATED","The operation failed because the log is dedicated." +"C01A0020","-1072037856","3222929440","STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS","The operation requires an archive context." +"C01A0021","-1072037855","3222929441","STATUS_LOG_ARCHIVE_IN_PROGRESS","Log archival is in progress." +"C01A0022","-1072037854","3222929442","STATUS_LOG_EPHEMERAL","The operation requires a nonephemeral log, but the log is ephemeral." +"C01A0023","-1072037853","3222929443","STATUS_LOG_NOT_ENOUGH_CONTAINERS","The log must have at least two containers before it can be read from or written to." +"C01A0024","-1072037852","3222929444","STATUS_LOG_CLIENT_ALREADY_REGISTERED","A log client has already registered on the stream." +"C01A0025","-1072037851","3222929445","STATUS_LOG_CLIENT_NOT_REGISTERED","A log client has not been registered on the stream." +"C01A0026","-1072037850","3222929446","STATUS_LOG_FULL_HANDLER_IN_PROGRESS","A request has already been made to handle the log full condition." +"C01A0027","-1072037849","3222929447","STATUS_LOG_CONTAINER_READ_FAILED","The log service encountered an error when attempting to read from a log container." +"C01A0028","-1072037848","3222929448","STATUS_LOG_CONTAINER_WRITE_FAILED","The log service encountered an error when attempting to write to a log container." +"C01A0029","-1072037847","3222929449","STATUS_LOG_CONTAINER_OPEN_FAILED","The log service encountered an error when attempting to open a log container." +"C01A002A","-1072037846","3222929450","STATUS_LOG_CONTAINER_STATE_INVALID","The log service encountered an invalid container state when attempting a requested action." +"C01A002B","-1072037845","3222929451","STATUS_LOG_STATE_INVALID","The log service is not in the correct state to perform a requested action." +"C01A002C","-1072037844","3222929452","STATUS_LOG_PINNED","The log space cannot be reclaimed because the log is pinned." +"C01A002D","-1072037843","3222929453","STATUS_LOG_METADATA_FLUSH_FAILED","The log metadata flush failed." +"C01A002E","-1072037842","3222929454","STATUS_LOG_INCONSISTENT_SECURITY","Security on the log and its containers is inconsistent." +"C01A002F","-1072037841","3222929455","STATUS_LOG_APPENDED_FLUSH_FAILED","Records were appended to the log or reservation changes were made, but the log could not be flushed." +"C01A0030","-1072037840","3222929456","STATUS_LOG_PINNED_RESERVATION","The log is pinned due to reservation consuming most of the log space. Free some reserved records to make space available." +"C01B00EA","-1071972118","3222995178","STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD","(Display Driver Stopped Responding) The %hs display driver has stopped working normally. Save your work and reboot the system to restore full display functionality. The next time you reboot the computer, a dialog box will allow you to upload data about this failure to Microsoft." +"C01C0001","-1071906815","3223060481","STATUS_FLT_NO_HANDLER_DEFINED","A handler was not defined by the filter for this operation." +"C01C0002","-1071906814","3223060482","STATUS_FLT_CONTEXT_ALREADY_DEFINED","A context is already defined for this object." +"C01C0003","-1071906813","3223060483","STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST","Asynchronous requests are not valid for this operation." +"C01C0004","-1071906812","3223060484","STATUS_FLT_DISALLOW_FAST_IO","This is an internal error code used by the filter manager to determine if a fast I/O operation should be forced down the input/output request packet (IRP) path. Minifilters should never return this value." +"C01C0005","-1071906811","3223060485","STATUS_FLT_INVALID_NAME_REQUEST","An invalid name request was made. The name requested cannot be retrieved at this time." +"C01C0006","-1071906810","3223060486","STATUS_FLT_NOT_SAFE_TO_POST_OPERATION","Posting this operation to a worker thread for further processing is not safe at this time because it could lead to a system deadlock." +"C01C0007","-1071906809","3223060487","STATUS_FLT_NOT_INITIALIZED","The Filter Manager was not initialized when a filter tried to register. Make sure that the Filter Manager is loaded as a driver." +"C01C0008","-1071906808","3223060488","STATUS_FLT_FILTER_NOT_READY","The filter is not ready for attachment to volumes because it has not finished initializing (FltStartFiltering has not been called)." +"C01C0009","-1071906807","3223060489","STATUS_FLT_POST_OPERATION_CLEANUP","The filter must clean up any operation-specific context at this time because it is being removed from the system before the operation is completed by the lower drivers." +"C01C000A","-1071906806","3223060490","STATUS_FLT_INTERNAL_ERROR","The Filter Manager had an internal error from which it cannot recover; therefore, the operation has failed. This is usually the result of a filter returning an invalid value from a pre-operation callback." +"C01C000B","-1071906805","3223060491","STATUS_FLT_DELETING_OBJECT","The object specified for this action is in the process of being deleted; therefore, the action requested cannot be completed at this time." +"C01C000C","-1071906804","3223060492","STATUS_FLT_MUST_BE_NONPAGED_POOL","A nonpaged pool must be used for this type of context." +"C01C000D","-1071906803","3223060493","STATUS_FLT_DUPLICATE_ENTRY","A duplicate handler definition has been provided for an operation." +"C01C000E","-1071906802","3223060494","STATUS_FLT_CBDQ_DISABLED","The callback data queue has been disabled." +"C01C000F","-1071906801","3223060495","STATUS_FLT_DO_NOT_ATTACH","Do not attach the filter to the volume at this time." +"C01C0010","-1071906800","3223060496","STATUS_FLT_DO_NOT_DETACH","Do not detach the filter from the volume at this time." +"C01C0011","-1071906799","3223060497","STATUS_FLT_INSTANCE_ALTITUDE_COLLISION","An instance already exists at this altitude on the volume specified." +"C01C0012","-1071906798","3223060498","STATUS_FLT_INSTANCE_NAME_COLLISION","An instance already exists with this name on the volume specified." +"C01C0013","-1071906797","3223060499","STATUS_FLT_FILTER_NOT_FOUND","The system could not find the filter specified." +"C01C0014","-1071906796","3223060500","STATUS_FLT_VOLUME_NOT_FOUND","The system could not find the volume specified." +"C01C0015","-1071906795","3223060501","STATUS_FLT_INSTANCE_NOT_FOUND","The system could not find the instance specified." +"C01C0016","-1071906794","3223060502","STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND","No registered context allocation definition was found for the given request." +"C01C0017","-1071906793","3223060503","STATUS_FLT_INVALID_CONTEXT_REGISTRATION","An invalid parameter was specified during context registration." +"C01C0018","-1071906792","3223060504","STATUS_FLT_NAME_CACHE_MISS","The name requested was not found in the Filter Manager name cache and could not be retrieved from the file system." +"C01C0019","-1071906791","3223060505","STATUS_FLT_NO_DEVICE_OBJECT","The requested device object does not exist for the given volume." +"C01C001A","-1071906790","3223060506","STATUS_FLT_VOLUME_ALREADY_MOUNTED","The specified volume is already mounted." +"C01C001B","-1071906789","3223060507","STATUS_FLT_ALREADY_ENLISTED","The specified transaction context is already enlisted in a transaction." +"C01C001C","-1071906788","3223060508","STATUS_FLT_CONTEXT_ALREADY_LINKED","The specified context is already attached to another object." +"C01C0020","-1071906784","3223060512","STATUS_FLT_NO_WAITER_FOR_REPLY","No waiter is present for the filter's reply to this message." +"C01D0001","-1071841279","3223126017","STATUS_MONITOR_NO_DESCRIPTOR","A monitor descriptor could not be obtained." +"C01D0002","-1071841278","3223126018","STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT","This release does not support the format of the obtained monitor descriptor." +"C01D0003","-1071841277","3223126019","STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM","The checksum of the obtained monitor descriptor is invalid." +"C01D0004","-1071841276","3223126020","STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK","The monitor descriptor contains an invalid standard timing block." +"C01D0005","-1071841275","3223126021","STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED","WMI data-block registration failed for one of the MSMonitorClass WMI subclasses." +"C01D0006","-1071841274","3223126022","STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK","The provided monitor descriptor block is either corrupted or does not contain the monitor's detailed serial number." +"C01D0007","-1071841273","3223126023","STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK","The provided monitor descriptor block is either corrupted or does not contain the monitor's user-friendly name." +"C01D0008","-1071841272","3223126024","STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA","There is no monitor descriptor data at the specified (offset or size) region." +"C01D0009","-1071841271","3223126025","STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK","The monitor descriptor contains an invalid detailed timing block." +"C01D000A","-1071841270","3223126026","STATUS_MONITOR_INVALID_MANUFACTURE_DATE","Monitor descriptor contains invalid manufacture date." +"C01E0000","-1071775744","3223191552","STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER","Exclusive mode ownership is needed to create an unmanaged primary allocation." +"C01E0001","-1071775743","3223191553","STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER","The driver needs more DMA buffer space to complete the requested operation." +"C01E0002","-1071775742","3223191554","STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER","The specified display adapter handle is invalid." +"C01E0003","-1071775741","3223191555","STATUS_GRAPHICS_ADAPTER_WAS_RESET","The specified display adapter and all of its state have been reset." +"C01E0004","-1071775740","3223191556","STATUS_GRAPHICS_INVALID_DRIVER_MODEL","The driver stack does not match the expected driver model." +"C01E0005","-1071775739","3223191557","STATUS_GRAPHICS_PRESENT_MODE_CHANGED","Present happened but ended up into the changed desktop mode." +"C01E0006","-1071775738","3223191558","STATUS_GRAPHICS_PRESENT_OCCLUDED","Nothing to present due to desktop occlusion." +"C01E0007","-1071775737","3223191559","STATUS_GRAPHICS_PRESENT_DENIED","Not able to present due to denial of desktop access." +"C01E0008","-1071775736","3223191560","STATUS_GRAPHICS_CANNOTCOLORCONVERT","Not able to present with color conversion." +"C01E000B","-1071775733","3223191563","STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED","Present redirection is disabled (desktop windowing management subsystem is off)." +"C01E000C","-1071775732","3223191564","STATUS_GRAPHICS_PRESENT_UNOCCLUDED","Previous exclusive VidPn source owner has released its ownership." +"C01E0100","-1071775488","3223191808","STATUS_GRAPHICS_NO_VIDEO_MEMORY","Not enough video memory is available to complete the operation." +"C01E0101","-1071775487","3223191809","STATUS_GRAPHICS_CANT_LOCK_MEMORY","Could not probe and lock the underlying memory of an allocation." +"C01E0102","-1071775486","3223191810","STATUS_GRAPHICS_ALLOCATION_BUSY","The allocation is currently busy." +"C01E0103","-1071775485","3223191811","STATUS_GRAPHICS_TOO_MANY_REFERENCES","An object being referenced has already reached the maximum reference count and cannot be referenced further." +"C01E0104","-1071775484","3223191812","STATUS_GRAPHICS_TRY_AGAIN_LATER","A problem could not be solved due to an existing condition. Try again later." +"C01E0105","-1071775483","3223191813","STATUS_GRAPHICS_TRY_AGAIN_NOW","A problem could not be solved due to an existing condition. Try again now." +"C01E0106","-1071775482","3223191814","STATUS_GRAPHICS_ALLOCATION_INVALID","The allocation is invalid." +"C01E0107","-1071775481","3223191815","STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE","No more unswizzling apertures are currently available." +"C01E0108","-1071775480","3223191816","STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED","The current allocation cannot be unswizzled by an aperture." +"C01E0109","-1071775479","3223191817","STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION","The request failed because a pinned allocation cannot be evicted." +"C01E0110","-1071775472","3223191824","STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE","The allocation cannot be used from its current segment location for the specified operation." +"C01E0111","-1071775471","3223191825","STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION","A locked allocation cannot be used in the current command buffer." +"C01E0112","-1071775470","3223191826","STATUS_GRAPHICS_ALLOCATION_CLOSED","The allocation being referenced has been closed permanently." +"C01E0113","-1071775469","3223191827","STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE","An invalid allocation instance is being referenced." +"C01E0114","-1071775468","3223191828","STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE","An invalid allocation handle is being referenced." +"C01E0115","-1071775467","3223191829","STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE","The allocation being referenced does not belong to the current device." +"C01E0116","-1071775466","3223191830","STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST","The specified allocation lost its content." +"C01E0200","-1071775232","3223192064","STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE","A GPU exception was detected on the given device. The device cannot be scheduled." +"C01E0300","-1071774976","3223192320","STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY","The specified VidPN topology is invalid." +"C01E0301","-1071774975","3223192321","STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED","The specified VidPN topology is valid but is not supported by this model of the display adapter." +"C01E0302","-1071774974","3223192322","STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED","The specified VidPN topology is valid but is not currently supported by the display adapter due to allocation of its resources." +"C01E0303","-1071774973","3223192323","STATUS_GRAPHICS_INVALID_VIDPN","The specified VidPN handle is invalid." +"C01E0304","-1071774972","3223192324","STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE","The specified video present source is invalid." +"C01E0305","-1071774971","3223192325","STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET","The specified video present target is invalid." +"C01E0306","-1071774970","3223192326","STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED","The specified VidPN modality is not supported (for example, at least two of the pinned modes are not co-functional)." +"C01E0308","-1071774968","3223192328","STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET","The specified VidPN source mode set is invalid." +"C01E0309","-1071774967","3223192329","STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET","The specified VidPN target mode set is invalid." +"C01E030A","-1071774966","3223192330","STATUS_GRAPHICS_INVALID_FREQUENCY","The specified video signal frequency is invalid." +"C01E030B","-1071774965","3223192331","STATUS_GRAPHICS_INVALID_ACTIVE_REGION","The specified video signal active region is invalid." +"C01E030C","-1071774964","3223192332","STATUS_GRAPHICS_INVALID_TOTAL_REGION","The specified video signal total region is invalid." +"C01E0310","-1071774960","3223192336","STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE","The specified video present source mode is invalid." +"C01E0311","-1071774959","3223192337","STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE","The specified video present target mode is invalid." +"C01E0312","-1071774958","3223192338","STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET","The pinned mode must remain in the set on the VidPN's co-functional modality enumeration." +"C01E0313","-1071774957","3223192339","STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY","The specified video present path is already in the VidPN's topology." +"C01E0314","-1071774956","3223192340","STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET","The specified mode is already in the mode set." +"C01E0315","-1071774955","3223192341","STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET","The specified video present source set is invalid." +"C01E0316","-1071774954","3223192342","STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET","The specified video present target set is invalid." +"C01E0317","-1071774953","3223192343","STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET","The specified video present source is already in the video present source set." +"C01E0318","-1071774952","3223192344","STATUS_GRAPHICS_TARGET_ALREADY_IN_SET","The specified video present target is already in the video present target set." +"C01E0319","-1071774951","3223192345","STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH","The specified VidPN present path is invalid." +"C01E031A","-1071774950","3223192346","STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY","The miniport has no recommendation for augmenting the specified VidPN's topology." +"C01E031B","-1071774949","3223192347","STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET","The specified monitor frequency range set is invalid." +"C01E031C","-1071774948","3223192348","STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE","The specified monitor frequency range is invalid." +"C01E031D","-1071774947","3223192349","STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET","The specified frequency range is not in the specified monitor frequency range set." +"C01E031F","-1071774945","3223192351","STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET","The specified frequency range is already in the specified monitor frequency range set." +"C01E0320","-1071774944","3223192352","STATUS_GRAPHICS_STALE_MODESET","The specified mode set is stale. Reacquire the new mode set." +"C01E0321","-1071774943","3223192353","STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET","The specified monitor source mode set is invalid." +"C01E0322","-1071774942","3223192354","STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE","The specified monitor source mode is invalid." +"C01E0323","-1071774941","3223192355","STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN","The miniport does not have a recommendation regarding the request to provide a functional VidPN given the current display adapter configuration." +"C01E0324","-1071774940","3223192356","STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE","The ID of the specified mode is being used by another mode in the set." +"C01E0325","-1071774939","3223192357","STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION","The system failed to determine a mode that is supported by both the display adapter and the monitor connected to it." +"C01E0326","-1071774938","3223192358","STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES","The number of video present targets must be greater than or equal to the number of video present sources." +"C01E0327","-1071774937","3223192359","STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY","The specified present path is not in the VidPN's topology." +"C01E0328","-1071774936","3223192360","STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE","The display adapter must have at least one video present source." +"C01E0329","-1071774935","3223192361","STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET","The display adapter must have at least one video present target." +"C01E032A","-1071774934","3223192362","STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET","The specified monitor descriptor set is invalid." +"C01E032B","-1071774933","3223192363","STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR","The specified monitor descriptor is invalid." +"C01E032C","-1071774932","3223192364","STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET","The specified descriptor is not in the specified monitor descriptor set." +"C01E032D","-1071774931","3223192365","STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET","The specified descriptor is already in the specified monitor descriptor set." +"C01E032E","-1071774930","3223192366","STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE","The ID of the specified monitor descriptor is being used by another descriptor in the set." +"C01E032F","-1071774929","3223192367","STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE","The specified video present target subset type is invalid." +"C01E0330","-1071774928","3223192368","STATUS_GRAPHICS_RESOURCES_NOT_RELATED","Two or more of the specified resources are not related to each other, as defined by the interface semantics." +"C01E0331","-1071774927","3223192369","STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE","The ID of the specified video present source is being used by another source in the set." +"C01E0332","-1071774926","3223192370","STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE","The ID of the specified video present target is being used by another target in the set." +"C01E0333","-1071774925","3223192371","STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET","The specified VidPN source cannot be used because there is no available VidPN target to connect it to." +"C01E0334","-1071774924","3223192372","STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER","The newly arrived monitor could not be associated with a display adapter." +"C01E0335","-1071774923","3223192373","STATUS_GRAPHICS_NO_VIDPNMGR","The particular display adapter does not have an associated VidPN manager." +"C01E0336","-1071774922","3223192374","STATUS_GRAPHICS_NO_ACTIVE_VIDPN","The VidPN manager of the particular display adapter does not have an active VidPN." +"C01E0337","-1071774921","3223192375","STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY","The specified VidPN topology is stale; obtain the new topology." +"C01E0338","-1071774920","3223192376","STATUS_GRAPHICS_MONITOR_NOT_CONNECTED","No monitor is connected on the specified video present target." +"C01E0339","-1071774919","3223192377","STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY","The specified source is not part of the specified VidPN's topology." +"C01E033A","-1071774918","3223192378","STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE","The specified primary surface size is invalid." +"C01E033B","-1071774917","3223192379","STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE","The specified visible region size is invalid." +"C01E033C","-1071774916","3223192380","STATUS_GRAPHICS_INVALID_STRIDE","The specified stride is invalid." +"C01E033D","-1071774915","3223192381","STATUS_GRAPHICS_INVALID_PIXELFORMAT","The specified pixel format is invalid." +"C01E033E","-1071774914","3223192382","STATUS_GRAPHICS_INVALID_COLORBASIS","The specified color basis is invalid." +"C01E033F","-1071774913","3223192383","STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE","The specified pixel value access mode is invalid." +"C01E0340","-1071774912","3223192384","STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY","The specified target is not part of the specified VidPN's topology." +"C01E0341","-1071774911","3223192385","STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT","Failed to acquire the display mode management interface." +"C01E0342","-1071774910","3223192386","STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE","The specified VidPN source is already owned by a DMM client and cannot be used until that client releases it." +"C01E0343","-1071774909","3223192387","STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN","The specified VidPN is active and cannot be accessed." +"C01E0344","-1071774908","3223192388","STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL","The specified VidPN's present path importance ordinal is invalid." +"C01E0345","-1071774907","3223192389","STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION","The specified VidPN's present path content geometry transformation is invalid." +"C01E0346","-1071774906","3223192390","STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED","The specified content geometry transformation is not supported on the respective VidPN present path." +"C01E0347","-1071774905","3223192391","STATUS_GRAPHICS_INVALID_GAMMA_RAMP","The specified gamma ramp is invalid." +"C01E0348","-1071774904","3223192392","STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED","The specified gamma ramp is not supported on the respective VidPN present path." +"C01E0349","-1071774903","3223192393","STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED","Multisampling is not supported on the respective VidPN present path." +"C01E034A","-1071774902","3223192394","STATUS_GRAPHICS_MODE_NOT_IN_MODESET","The specified mode is not in the specified mode set." +"C01E034D","-1071774899","3223192397","STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON","The specified VidPN topology recommendation reason is invalid." +"C01E034E","-1071774898","3223192398","STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE","The specified VidPN present path content type is invalid." +"C01E034F","-1071774897","3223192399","STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE","The specified VidPN present path copy protection type is invalid." +"C01E0350","-1071774896","3223192400","STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS","Only one unassigned mode set can exist at any one time for a particular VidPN source or target." +"C01E0352","-1071774894","3223192402","STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING","The specified scan line ordering type is invalid." +"C01E0353","-1071774893","3223192403","STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED","The topology changes are not allowed for the specified VidPN." +"C01E0354","-1071774892","3223192404","STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS","All available importance ordinals are being used in the specified topology." +"C01E0355","-1071774891","3223192405","STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT","The specified primary surface has a different private-format attribute than the current primary surface." +"C01E0356","-1071774890","3223192406","STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM","The specified mode-pruning algorithm is invalid." +"C01E0357","-1071774889","3223192407","STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN","The specified monitor-capability origin is invalid." +"C01E0358","-1071774888","3223192408","STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT","The specified monitor-frequency range constraint is invalid." +"C01E0359","-1071774887","3223192409","STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED","The maximum supported number of present paths has been reached." +"C01E035A","-1071774886","3223192410","STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION","The miniport requested that augmentation be canceled for the specified source of the specified VidPN's topology." +"C01E035B","-1071774885","3223192411","STATUS_GRAPHICS_INVALID_CLIENT_TYPE","The specified client type was not recognized." +"C01E035C","-1071774884","3223192412","STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET","The client VidPN is not set on this adapter (for example, no user mode-initiated mode changes have taken place on this adapter)." +"C01E0400","-1071774720","3223192576","STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED","The specified display adapter child device already has an external device connected to it." +"C01E0401","-1071774719","3223192577","STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED","The display adapter child device does not support reporting a descriptor." +"C01E0430","-1071774672","3223192624","STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER","The display adapter is not linked to any other adapters." +"C01E0431","-1071774671","3223192625","STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED","The lead adapter in a linked configuration was not enumerated yet." +"C01E0432","-1071774670","3223192626","STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED","Some chain adapters in a linked configuration have not yet been enumerated." +"C01E0433","-1071774669","3223192627","STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY","The chain of linked adapters is not ready to start because of an unknown failure." +"C01E0434","-1071774668","3223192628","STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED","An attempt was made to start a lead link display adapter when the chain links had not yet started." +"C01E0435","-1071774667","3223192629","STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON","An attempt was made to turn on a lead link display adapter when the chain links were turned off." +"C01E0436","-1071774666","3223192630","STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE","The adapter link was found in an inconsistent state. Not all adapters are in an expected PNP/power state." +"C01E0438","-1071774664","3223192632","STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER","The driver trying to start is not the same as the driver for the posted display adapter." +"C01E043B","-1071774661","3223192635","STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED","An operation is being attempted that requires the display adapter to be in a quiescent state." +"C01E0500","-1071774464","3223192832","STATUS_GRAPHICS_OPM_NOT_SUPPORTED","The driver does not support OPM." +"C01E0501","-1071774463","3223192833","STATUS_GRAPHICS_COPP_NOT_SUPPORTED","The driver does not support COPP." +"C01E0502","-1071774462","3223192834","STATUS_GRAPHICS_UAB_NOT_SUPPORTED","The driver does not support UAB." +"C01E0503","-1071774461","3223192835","STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS","The specified encrypted parameters are invalid." +"C01E0504","-1071774460","3223192836","STATUS_GRAPHICS_OPM_PARAMETER_ARRAY_TOO_SMALL","An array passed to a function cannot hold all of the data that the function wants to put in it." +"C01E0505","-1071774459","3223192837","STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST","The GDI display device passed to this function does not have any active protected outputs." +"C01E0506","-1071774458","3223192838","STATUS_GRAPHICS_PVP_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME","The PVP cannot find an actual GDI display device that corresponds to the passed-in GDI display device name." +"C01E0507","-1071774457","3223192839","STATUS_GRAPHICS_PVP_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP","This function failed because the GDI display device passed to it was not attached to the Windows desktop." +"C01E0508","-1071774456","3223192840","STATUS_GRAPHICS_PVP_MIRRORING_DEVICES_NOT_SUPPORTED","The PVP does not support mirroring display devices because they do not have any protected outputs." +"C01E050A","-1071774454","3223192842","STATUS_GRAPHICS_OPM_INVALID_POINTER","The function failed because an invalid pointer parameter was passed to it. A pointer parameter is invalid if it is null, is not correctly aligned, or it points to an invalid address or a kernel mode address." +"C01E050B","-1071774453","3223192843","STATUS_GRAPHICS_OPM_INTERNAL_ERROR","An internal error caused an operation to fail." +"C01E050C","-1071774452","3223192844","STATUS_GRAPHICS_OPM_INVALID_HANDLE","The function failed because the caller passed in an invalid OPM user-mode handle." +"C01E050D","-1071774451","3223192845","STATUS_GRAPHICS_PVP_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE","This function failed because the GDI device passed to it did not have any monitors associated with it." +"C01E050E","-1071774450","3223192846","STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH","A certificate could not be returned because the certificate buffer passed to the function was too small." +"C01E050F","-1071774449","3223192847","STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED","DxgkDdiOpmCreateProtectedOutput() could not create a protected output because the video present yarget is in spanning mode." +"C01E0510","-1071774448","3223192848","STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED","DxgkDdiOpmCreateProtectedOutput() could not create a protected output because the video present target is in theater mode." +"C01E0511","-1071774447","3223192849","STATUS_GRAPHICS_PVP_HFS_FAILED","The function call failed because the display adapter's hardware functionality scan (HFS) failed to validate the graphics hardware." +"C01E0512","-1071774446","3223192850","STATUS_GRAPHICS_OPM_INVALID_SRM","The HDCP SRM passed to this function did not comply with section 5 of the HDCP 1.1 specification." +"C01E0513","-1071774445","3223192851","STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP","The protected output cannot enable the HDCP system because it does not support it." +"C01E0514","-1071774444","3223192852","STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP","The protected output cannot enable analog copy protection because it does not support it." +"C01E0515","-1071774443","3223192853","STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA","The protected output cannot enable the CGMS-A protection technology because it does not support it." +"C01E0516","-1071774442","3223192854","STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET","DxgkDdiOPMGetInformation() cannot return the version of the SRM being used because the application never successfully passed an SRM to the protected output." +"C01E0517","-1071774441","3223192855","STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH","DxgkDdiOPMConfigureProtectedOutput() cannot enable the specified output protection technology because the output's screen resolution is too high." +"C01E0518","-1071774440","3223192856","STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE","DxgkDdiOPMConfigureProtectedOutput() cannot enable HDCP because other physical outputs are using the display adapter's HDCP hardware." +"C01E051A","-1071774438","3223192858","STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS","The operating system asynchronously destroyed this OPM-protected output because the operating system state changed. This error typically occurs because the monitor PDO associated with this protected output was removed or stopped, the protected output's session became a nonconsole session, or the protected output's desktop became inactive." +"C01E051B","-1071774437","3223192859","STATUS_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS","OPM functions cannot be called when a session is changing its type. Three types of sessions currently exist: console, disconnected, and remote (RDP or ICA)." +"C01E051C","-1071774436","3223192860","STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS","The DxgkDdiOPMGetCOPPCompatibleInformation, DxgkDdiOPMGetInformation, or DxgkDdiOPMConfigureProtectedOutput function failed. This error is returned only if a protected output has OPM semantics. DxgkDdiOPMGetCOPPCompatibleInformation always returns this error if a protected output has OPM semantics. DxgkDdiOPMGetInformation returns this error code if the caller requested COPP-specific information. DxgkDdiOPMConfigureProtectedOutput returns this error when the caller tries to use a COPP-specific command." +"C01E051D","-1071774435","3223192861","STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST","The DxgkDdiOPMGetInformation and DxgkDdiOPMGetCOPPCompatibleInformation functions return this error code if the passed-in sequence number is not the expected sequence number or the passed-in OMAC value is invalid." +"C01E051E","-1071774434","3223192862","STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR","The function failed because an unexpected error occurred inside a display driver." +"C01E051F","-1071774433","3223192863","STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS","The DxgkDdiOPMGetCOPPCompatibleInformation, DxgkDdiOPMGetInformation, or DxgkDdiOPMConfigureProtectedOutput function failed. This error is returned only if a protected output has COPP semantics. DxgkDdiOPMGetCOPPCompatibleInformation returns this error code if the caller requested OPM-specific information. DxgkDdiOPMGetInformation always returns this error if a protected output has COPP semantics. DxgkDdiOPMConfigureProtectedOutput returns this error when the caller tries to use an OPM-specific command." +"C01E0520","-1071774432","3223192864","STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED","The DxgkDdiOPMGetCOPPCompatibleInformation and DxgkDdiOPMConfigureProtectedOutput functions return this error if the display driver does not support the DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING and DXGKMDT_OPM_SET_ACP_AND_CGMSA_SIGNALING GUIDs." +"C01E0521","-1071774431","3223192865","STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST","The DxgkDdiOPMConfigureProtectedOutput function returns this error code if the passed-in sequence number is not the expected sequence number or the passed-in OMAC value is invalid." +"C01E0580","-1071774336","3223192960","STATUS_GRAPHICS_I2C_NOT_SUPPORTED","The monitor connected to the specified video output does not have an I2C bus." +"C01E0581","-1071774335","3223192961","STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST","No device on the I2C bus has the specified address." +"C01E0582","-1071774334","3223192962","STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA","An error occurred while transmitting data to the device on the I2C bus." +"C01E0583","-1071774333","3223192963","STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA","An error occurred while receiving data from the device on the I2C bus." +"C01E0584","-1071774332","3223192964","STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED","The monitor does not support the specified VCP code." +"C01E0585","-1071774331","3223192965","STATUS_GRAPHICS_DDCCI_INVALID_DATA","The data received from the monitor is invalid." +"C01E0586","-1071774330","3223192966","STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE","A function call failed because a monitor returned an invalid timing status byte when the operating system used the DDC/CI get timing report and timing message command to get a timing report from a monitor." +"C01E0587","-1071774329","3223192967","STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING","A monitor returned a DDC/CI capabilities string that did not comply with the ACCESS.bus 3.0, DDC/CI 1.1, or MCCS 2 Revision 1 specification." +"C01E0588","-1071774328","3223192968","STATUS_GRAPHICS_MCA_INTERNAL_ERROR","An internal error caused an operation to fail." +"C01E0589","-1071774327","3223192969","STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND","An operation failed because a DDC/CI message had an invalid value in its command field." +"C01E058A","-1071774326","3223192970","STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH","This error occurred because a DDC/CI message had an invalid value in its length field." +"C01E058B","-1071774325","3223192971","STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM","This error occurred because the value in a DDC/CI message's checksum field did not match the message's computed checksum value. This error implies that the data was corrupted while it was being transmitted from a monitor to a computer." +"C01E058C","-1071774324","3223192972","STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE","This function failed because an invalid monitor handle was passed to it." +"C01E058D","-1071774323","3223192973","STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS","The operating system asynchronously destroyed the monitor that corresponds to this handle because the operating system's state changed. This error typically occurs because the monitor PDO associated with this handle was removed or stopped, or a display mode change occurred. A display mode change occurs when Windows sends a WM_DISPLAYCHANGE message to applications." +"C01E05E0","-1071774240","3223193056","STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED","This function can be used only if a program is running in the local console session. It cannot be used if a program is running on a remote desktop session or on a terminal server session." +"C01E05E1","-1071774239","3223193057","STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME","This function cannot find an actual GDI display device that corresponds to the specified GDI display device name." +"C01E05E2","-1071774238","3223193058","STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP","The function failed because the specified GDI display device was not attached to the Windows desktop." +"C01E05E3","-1071774237","3223193059","STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED","This function does not support GDI mirroring display devices because GDI mirroring display devices do not have any physical monitors associated with them." +"C01E05E4","-1071774236","3223193060","STATUS_GRAPHICS_INVALID_POINTER","The function failed because an invalid pointer parameter was passed to it. A pointer parameter is invalid if it is null, is not correctly aligned, or points to an invalid address or to a kernel mode address." +"C01E05E5","-1071774235","3223193061","STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE","This function failed because the GDI device passed to it did not have a monitor associated with it." +"C01E05E6","-1071774234","3223193062","STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL","An array passed to the function cannot hold all of the data that the function must copy into the array." +"C01E05E7","-1071774233","3223193063","STATUS_GRAPHICS_INTERNAL_ERROR","An internal error caused an operation to fail." +"C01E05E8","-1071774232","3223193064","STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS","The function failed because the current session is changing its type. This function cannot be called when the current session is changing its type. Three types of sessions currently exist: console, disconnected, and remote (RDP or ICA)." +"C0210000","-1071579136","3223388160","STATUS_FVE_LOCKED_VOLUME","The volume must be unlocked before it can be used." +"C0210001","-1071579135","3223388161","STATUS_FVE_NOT_ENCRYPTED","The volume is fully decrypted and no key is available." +"C0210002","-1071579134","3223388162","STATUS_FVE_BAD_INFORMATION","The control block for the encrypted volume is not valid." +"C0210003","-1071579133","3223388163","STATUS_FVE_TOO_SMALL","Not enough free space remains on the volume to allow encryption." +"C0210004","-1071579132","3223388164","STATUS_FVE_FAILED_WRONG_FS","The partition cannot be encrypted because the file system is not supported." +"C0210005","-1071579131","3223388165","STATUS_FVE_FAILED_BAD_FS","The file system is inconsistent. Run the Check Disk utility." +"C0210006","-1071579130","3223388166","STATUS_FVE_FS_NOT_EXTENDED","The file system does not extend to the end of the volume." +"C0210007","-1071579129","3223388167","STATUS_FVE_FS_MOUNTED","This operation cannot be performed while a file system is mounted on the volume." +"C0210008","-1071579128","3223388168","STATUS_FVE_NO_LICENSE","BitLocker Drive Encryption is not included with this version of Windows." +"C0210009","-1071579127","3223388169","STATUS_FVE_ACTION_NOT_ALLOWED","The requested action was denied by the FVE control engine." +"C021000A","-1071579126","3223388170","STATUS_FVE_BAD_DATA","The data supplied is malformed." +"C021000B","-1071579125","3223388171","STATUS_FVE_VOLUME_NOT_BOUND","The volume is not bound to the system." +"C021000C","-1071579124","3223388172","STATUS_FVE_NOT_DATA_VOLUME","The volume specified is not a data volume." +"C021000D","-1071579123","3223388173","STATUS_FVE_CONV_READ_ERROR","A read operation failed while converting the volume." +"C021000E","-1071579122","3223388174","STATUS_FVE_CONV_WRITE_ERROR","A write operation failed while converting the volume." +"C021000F","-1071579121","3223388175","STATUS_FVE_OVERLAPPED_UPDATE","The control block for the encrypted volume was updated by another thread. Try again." +"C0210010","-1071579120","3223388176","STATUS_FVE_FAILED_SECTOR_SIZE","The volume encryption algorithm cannot be used on this sector size." +"C0210011","-1071579119","3223388177","STATUS_FVE_FAILED_AUTHENTICATION","BitLocker recovery authentication failed." +"C0210012","-1071579118","3223388178","STATUS_FVE_NOT_OS_VOLUME","The volume specified is not the boot operating system volume." +"C0210013","-1071579117","3223388179","STATUS_FVE_KEYFILE_NOT_FOUND","The BitLocker startup key or recovery password could not be read from external media." +"C0210014","-1071579116","3223388180","STATUS_FVE_KEYFILE_INVALID","The BitLocker startup key or recovery password file is corrupt or invalid." +"C0210015","-1071579115","3223388181","STATUS_FVE_KEYFILE_NO_VMK","The BitLocker encryption key could not be obtained from the startup key or the recovery password." +"C0210016","-1071579114","3223388182","STATUS_FVE_TPM_DISABLED","The TPM is disabled." +"C0210017","-1071579113","3223388183","STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO","The authorization data for the SRK of the TPM is not zero." +"C0210018","-1071579112","3223388184","STATUS_FVE_TPM_INVALID_PCR","The system boot information changed or the TPM locked out access to BitLocker encryption keys until the computer is restarted." +"C0210019","-1071579111","3223388185","STATUS_FVE_TPM_NO_VMK","The BitLocker encryption key could not be obtained from the TPM." +"C021001A","-1071579110","3223388186","STATUS_FVE_PIN_INVALID","The BitLocker encryption key could not be obtained from the TPM and PIN." +"C021001B","-1071579109","3223388187","STATUS_FVE_AUTH_INVALID_APPLICATION","A boot application hash does not match the hash computed when BitLocker was turned on." +"C021001C","-1071579108","3223388188","STATUS_FVE_AUTH_INVALID_CONFIG","The Boot Configuration Data (BCD) settings are not supported or have changed because BitLocker was enabled." +"C021001D","-1071579107","3223388189","STATUS_FVE_DEBUGGER_ENABLED","Boot debugging is enabled. Run Windows Boot Configuration Data Store Editor (bcdedit.exe) to turn it off." +"C021001E","-1071579106","3223388190","STATUS_FVE_DRY_RUN_FAILED","The BitLocker encryption key could not be obtained." +"C021001F","-1071579105","3223388191","STATUS_FVE_BAD_METADATA_POINTER","The metadata disk region pointer is incorrect." +"C0210020","-1071579104","3223388192","STATUS_FVE_OLD_METADATA_COPY","The backup copy of the metadata is out of date." +"C0210021","-1071579103","3223388193","STATUS_FVE_REBOOT_REQUIRED","No action was taken because a system restart is required." +"C0210022","-1071579102","3223388194","STATUS_FVE_RAW_ACCESS","No action was taken because BitLocker Drive Encryption is in RAW access mode." +"C0210023","-1071579101","3223388195","STATUS_FVE_RAW_BLOCKED","BitLocker Drive Encryption cannot enter RAW access mode for this volume." +"C0210026","-1071579098","3223388198","STATUS_FVE_NO_FEATURE_LICENSE","This feature of BitLocker Drive Encryption is not included with this version of Windows." +"C0210027","-1071579097","3223388199","STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED","Group policy does not permit turning off BitLocker Drive Encryption on roaming data volumes." +"C0210028","-1071579096","3223388200","STATUS_FVE_CONV_RECOVERY_FAILED","Bitlocker Drive Encryption failed to recover from aborted conversion. This could be due to either all conversion logs being corrupted or the media being write-protected." +"C0210029","-1071579095","3223388201","STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG","The requested virtualization size is too big." +"C0210030","-1071579088","3223388208","STATUS_FVE_VOLUME_TOO_SMALL","The drive is too small to be protected using BitLocker Drive Encryption." +"C0220001","-1071513599","3223453697","STATUS_FWP_CALLOUT_NOT_FOUND","The callout does not exist." +"C0220002","-1071513598","3223453698","STATUS_FWP_CONDITION_NOT_FOUND","The filter condition does not exist." +"C0220003","-1071513597","3223453699","STATUS_FWP_FILTER_NOT_FOUND","The filter does not exist." +"C0220004","-1071513596","3223453700","STATUS_FWP_LAYER_NOT_FOUND","The layer does not exist." +"C0220005","-1071513595","3223453701","STATUS_FWP_PROVIDER_NOT_FOUND","The provider does not exist." +"C0220006","-1071513594","3223453702","STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND","The provider context does not exist." +"C0220007","-1071513593","3223453703","STATUS_FWP_SUBLAYER_NOT_FOUND","The sublayer does not exist." +"C0220008","-1071513592","3223453704","STATUS_FWP_NOT_FOUND","The object does not exist." +"C0220009","-1071513591","3223453705","STATUS_FWP_ALREADY_EXISTS","An object with that GUID or LUID already exists." +"C022000A","-1071513590","3223453706","STATUS_FWP_IN_USE","The object is referenced by other objects and cannot be deleted." +"C022000B","-1071513589","3223453707","STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS","The call is not allowed from within a dynamic session." +"C022000C","-1071513588","3223453708","STATUS_FWP_WRONG_SESSION","The call was made from the wrong session and cannot be completed." +"C022000D","-1071513587","3223453709","STATUS_FWP_NO_TXN_IN_PROGRESS","The call must be made from within an explicit transaction." +"C022000E","-1071513586","3223453710","STATUS_FWP_TXN_IN_PROGRESS","The call is not allowed from within an explicit transaction." +"C022000F","-1071513585","3223453711","STATUS_FWP_TXN_ABORTED","The explicit transaction has been forcibly canceled." +"C0220010","-1071513584","3223453712","STATUS_FWP_SESSION_ABORTED","The session has been canceled." +"C0220011","-1071513583","3223453713","STATUS_FWP_INCOMPATIBLE_TXN","The call is not allowed from within a read-only transaction." +"C0220012","-1071513582","3223453714","STATUS_FWP_TIMEOUT","The call timed out while waiting to acquire the transaction lock." +"C0220013","-1071513581","3223453715","STATUS_FWP_NET_EVENTS_DISABLED","The collection of network diagnostic events is disabled." +"C0220014","-1071513580","3223453716","STATUS_FWP_INCOMPATIBLE_LAYER","The operation is not supported by the specified layer." +"C0220015","-1071513579","3223453717","STATUS_FWP_KM_CLIENTS_ONLY","The call is allowed for kernel-mode callers only." +"C0220016","-1071513578","3223453718","STATUS_FWP_LIFETIME_MISMATCH","The call tried to associate two objects with incompatible lifetimes." +"C0220017","-1071513577","3223453719","STATUS_FWP_BUILTIN_OBJECT","The object is built-in and cannot be deleted." +"C0220018","-1071513576","3223453720","STATUS_FWP_TOO_MANY_CALLOUTS","The maximum number of callouts has been reached." +"C0220019","-1071513575","3223453721","STATUS_FWP_NOTIFICATION_DROPPED","A notification could not be delivered because a message queue has reached maximum capacity." +"C022001A","-1071513574","3223453722","STATUS_FWP_TRAFFIC_MISMATCH","The traffic parameters do not match those for the security association context." +"C022001B","-1071513573","3223453723","STATUS_FWP_INCOMPATIBLE_SA_STATE","The call is not allowed for the current security association state." +"C022001C","-1071513572","3223453724","STATUS_FWP_NULL_POINTER","A required pointer is null." +"C022001D","-1071513571","3223453725","STATUS_FWP_INVALID_ENUMERATOR","An enumerator is not valid." +"C022001E","-1071513570","3223453726","STATUS_FWP_INVALID_FLAGS","The flags field contains an invalid value." +"C022001F","-1071513569","3223453727","STATUS_FWP_INVALID_NET_MASK","A network mask is not valid." +"C0220020","-1071513568","3223453728","STATUS_FWP_INVALID_RANGE","An FWP_RANGE is not valid." +"C0220021","-1071513567","3223453729","STATUS_FWP_INVALID_INTERVAL","The time interval is not valid." +"C0220022","-1071513566","3223453730","STATUS_FWP_ZERO_LENGTH_ARRAY","An array that must contain at least one element has a zero length." +"C0220023","-1071513565","3223453731","STATUS_FWP_NULL_DISPLAY_NAME","The displayData.name field cannot be null." +"C0220024","-1071513564","3223453732","STATUS_FWP_INVALID_ACTION_TYPE","The action type is not one of the allowed action types for a filter." +"C0220025","-1071513563","3223453733","STATUS_FWP_INVALID_WEIGHT","The filter weight is not valid." +"C0220026","-1071513562","3223453734","STATUS_FWP_MATCH_TYPE_MISMATCH","A filter condition contains a match type that is not compatible with the operands." +"C0220027","-1071513561","3223453735","STATUS_FWP_TYPE_MISMATCH","An FWP_VALUE or FWPM_CONDITION_VALUE is of the wrong type." +"C0220028","-1071513560","3223453736","STATUS_FWP_OUT_OF_BOUNDS","An integer value is outside the allowed range." +"C0220029","-1071513559","3223453737","STATUS_FWP_RESERVED","A reserved field is nonzero." +"C022002A","-1071513558","3223453738","STATUS_FWP_DUPLICATE_CONDITION","A filter cannot contain multiple conditions operating on a single field." +"C022002B","-1071513557","3223453739","STATUS_FWP_DUPLICATE_KEYMOD","A policy cannot contain the same keying module more than once." +"C022002C","-1071513556","3223453740","STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER","The action type is not compatible with the layer." +"C022002D","-1071513555","3223453741","STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER","The action type is not compatible with the sublayer." +"C022002E","-1071513554","3223453742","STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER","The raw context or the provider context is not compatible with the layer." +"C022002F","-1071513553","3223453743","STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT","The raw context or the provider context is not compatible with the callout." +"C0220030","-1071513552","3223453744","STATUS_FWP_INCOMPATIBLE_AUTH_METHOD","The authentication method is not compatible with the policy type." +"C0220031","-1071513551","3223453745","STATUS_FWP_INCOMPATIBLE_DH_GROUP","The Diffie-Hellman group is not compatible with the policy type." +"C0220032","-1071513550","3223453746","STATUS_FWP_EM_NOT_SUPPORTED","An IKE policy cannot contain an Extended Mode policy." +"C0220033","-1071513549","3223453747","STATUS_FWP_NEVER_MATCH","The enumeration template or subscription will never match any objects." +"C0220034","-1071513548","3223453748","STATUS_FWP_PROVIDER_CONTEXT_MISMATCH","The provider context is of the wrong type." +"C0220035","-1071513547","3223453749","STATUS_FWP_INVALID_PARAMETER","The parameter is incorrect." +"C0220036","-1071513546","3223453750","STATUS_FWP_TOO_MANY_SUBLAYERS","The maximum number of sublayers has been reached." +"C0220037","-1071513545","3223453751","STATUS_FWP_CALLOUT_NOTIFICATION_FAILED","The notification function for a callout returned an error." +"C0220038","-1071513544","3223453752","STATUS_FWP_INCOMPATIBLE_AUTH_CONFIG","The IPsec authentication configuration is not compatible with the authentication type." +"C0220039","-1071513543","3223453753","STATUS_FWP_INCOMPATIBLE_CIPHER_CONFIG","The IPsec cipher configuration is not compatible with the cipher type." +"C022003C","-1071513540","3223453756","STATUS_FWP_DUPLICATE_AUTH_METHOD","A policy cannot contain the same auth method more than once." +"C0220100","-1071513344","3223453952","STATUS_FWP_TCPIP_NOT_READY","The TCP/IP stack is not ready." +"C0220101","-1071513343","3223453953","STATUS_FWP_INJECT_HANDLE_CLOSING","The injection handle is being closed by another thread." +"C0220102","-1071513342","3223453954","STATUS_FWP_INJECT_HANDLE_STALE","The injection handle is stale." +"C0220103","-1071513341","3223453955","STATUS_FWP_CANNOT_PEND","The classify cannot be pended." +"C0230002","-1071448062","3223519234","STATUS_NDIS_CLOSING","The binding to the network interface is being closed." +"C0230004","-1071448060","3223519236","STATUS_NDIS_BAD_VERSION","An invalid version was specified." +"C0230005","-1071448059","3223519237","STATUS_NDIS_BAD_CHARACTERISTICS","An invalid characteristics table was used." +"C0230006","-1071448058","3223519238","STATUS_NDIS_ADAPTER_NOT_FOUND","Failed to find the network interface or the network interface is not ready." +"C0230007","-1071448057","3223519239","STATUS_NDIS_OPEN_FAILED","Failed to open the network interface." +"C0230008","-1071448056","3223519240","STATUS_NDIS_DEVICE_FAILED","The network interface has encountered an internal unrecoverable failure." +"C0230009","-1071448055","3223519241","STATUS_NDIS_MULTICAST_FULL","The multicast list on the network interface is full." +"C023000A","-1071448054","3223519242","STATUS_NDIS_MULTICAST_EXISTS","An attempt was made to add a duplicate multicast address to the list." +"C023000B","-1071448053","3223519243","STATUS_NDIS_MULTICAST_NOT_FOUND","At attempt was made to remove a multicast address that was never added." +"C023000C","-1071448052","3223519244","STATUS_NDIS_REQUEST_ABORTED","The network interface aborted the request." +"C023000D","-1071448051","3223519245","STATUS_NDIS_RESET_IN_PROGRESS","The network interface cannot process the request because it is being reset." +"C023000F","-1071448049","3223519247","STATUS_NDIS_INVALID_PACKET","An attempt was made to send an invalid packet on a network interface." +"C0230010","-1071448048","3223519248","STATUS_NDIS_INVALID_DEVICE_REQUEST","The specified request is not a valid operation for the target device." +"C0230011","-1071448047","3223519249","STATUS_NDIS_ADAPTER_NOT_READY","The network interface is not ready to complete this operation." +"C0230014","-1071448044","3223519252","STATUS_NDIS_INVALID_LENGTH","The length of the buffer submitted for this operation is not valid." +"C0230015","-1071448043","3223519253","STATUS_NDIS_INVALID_DATA","The data used for this operation is not valid." +"C0230016","-1071448042","3223519254","STATUS_NDIS_BUFFER_TOO_SHORT","The length of the submitted buffer for this operation is too small." +"C0230017","-1071448041","3223519255","STATUS_NDIS_INVALID_OID","The network interface does not support this object identifier." +"C0230018","-1071448040","3223519256","STATUS_NDIS_ADAPTER_REMOVED","The network interface has been removed." +"C0230019","-1071448039","3223519257","STATUS_NDIS_UNSUPPORTED_MEDIA","The network interface does not support this media type." +"C023001A","-1071448038","3223519258","STATUS_NDIS_GROUP_ADDRESS_IN_USE","An attempt was made to remove a token ring group address that is in use by other components." +"C023001B","-1071448037","3223519259","STATUS_NDIS_FILE_NOT_FOUND","An attempt was made to map a file that cannot be found." +"C023001C","-1071448036","3223519260","STATUS_NDIS_ERROR_READING_FILE","An error occurred while NDIS tried to map the file." +"C023001D","-1071448035","3223519261","STATUS_NDIS_ALREADY_MAPPED","An attempt was made to map a file that is already mapped." +"C023001E","-1071448034","3223519262","STATUS_NDIS_RESOURCE_CONFLICT","An attempt to allocate a hardware resource failed because the resource is used by another component." +"C023001F","-1071448033","3223519263","STATUS_NDIS_MEDIA_DISCONNECTED","The I/O operation failed because the network media is disconnected or the wireless access point is out of range." +"C0230022","-1071448030","3223519266","STATUS_NDIS_INVALID_ADDRESS","The network address used in the request is invalid." +"C023002A","-1071448022","3223519274","STATUS_NDIS_PAUSED","The offload operation on the network interface has been paused." +"C023002B","-1071448021","3223519275","STATUS_NDIS_INTERFACE_NOT_FOUND","The network interface was not found." +"C023002C","-1071448020","3223519276","STATUS_NDIS_UNSUPPORTED_REVISION","The revision number specified in the structure is not supported." +"C023002D","-1071448019","3223519277","STATUS_NDIS_INVALID_PORT","The specified port does not exist on this network interface." +"C023002E","-1071448018","3223519278","STATUS_NDIS_INVALID_PORT_STATE","The current state of the specified port on this network interface does not support the requested operation." +"C023002F","-1071448017","3223519279","STATUS_NDIS_LOW_POWER_STATE","The miniport adapter is in a lower power state." +"C02300BB","-1071447877","3223519419","STATUS_NDIS_NOT_SUPPORTED","The network interface does not support this request." +"C023100F","-1071443953","3223523343","STATUS_NDIS_OFFLOAD_POLICY","The TCP connection is not offloadable because of a local policy setting." +"C0231012","-1071443950","3223523346","STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED","The TCP connection is not offloadable by the Chimney offload target." +"C0231013","-1071443949","3223523347","STATUS_NDIS_OFFLOAD_PATH_REJECTED","The IP Path object is not in an offloadable state." +"C0232000","-1071439872","3223527424","STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED","The wireless LAN interface is in auto-configuration mode and does not support the requested parameter change operation." +"C0232001","-1071439871","3223527425","STATUS_NDIS_DOT11_MEDIA_IN_USE","The wireless LAN interface is busy and cannot perform the requested operation." +"C0232002","-1071439870","3223527426","STATUS_NDIS_DOT11_POWER_STATE_INVALID","The wireless LAN interface is power down and does not support the requested operation." +"C0232003","-1071439869","3223527427","STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL","The list of wake on LAN patterns is full." +"C0232004","-1071439868","3223527428","STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL","The list of low power protocol offloads is full." +"C0360001","-1070202879","3224764417","STATUS_IPSEC_BAD_SPI","The SPI in the packet does not match a valid IPsec SA." +"C0360002","-1070202878","3224764418","STATUS_IPSEC_SA_LIFETIME_EXPIRED","The packet was received on an IPsec SA whose lifetime has expired." +"C0360003","-1070202877","3224764419","STATUS_IPSEC_WRONG_SA","The packet was received on an IPsec SA that does not match the packet characteristics." +"C0360004","-1070202876","3224764420","STATUS_IPSEC_REPLAY_CHECK_FAILED","The packet sequence number replay check failed." +"C0360005","-1070202875","3224764421","STATUS_IPSEC_INVALID_PACKET","The IPsec header and/or trailer in the packet is invalid." +"C0360006","-1070202874","3224764422","STATUS_IPSEC_INTEGRITY_CHECK_FAILED","The IPsec integrity check failed." +"C0360007","-1070202873","3224764423","STATUS_IPSEC_CLEAR_TEXT_DROP","IPsec dropped a clear text packet." +"C0360008","-1070202872","3224764424","STATUS_IPSEC_AUTH_FIREWALL_DROP","IPsec dropped an incoming ESP packet in authenticated firewall mode. This drop is benign." +"C0360009","-1070202871","3224764425","STATUS_IPSEC_THROTTLE_DROP","IPsec dropped a packet due to DOS throttle." +"C0368000","-1070170112","3224797184","STATUS_IPSEC_DOSP_BLOCK","IPsec Dos Protection matched an explicit block rule." +"C0368001","-1070170111","3224797185","STATUS_IPSEC_DOSP_RECEIVED_MULTICAST","IPsec Dos Protection received an IPsec specific multicast packet which is not allowed." +"C0368002","-1070170110","3224797186","STATUS_IPSEC_DOSP_INVALID_PACKET","IPsec Dos Protection received an incorrectly formatted packet." +"C0368003","-1070170109","3224797187","STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED","IPsec Dos Protection failed to lookup state." +"C0368004","-1070170108","3224797188","STATUS_IPSEC_DOSP_MAX_ENTRIES","IPsec Dos Protection failed to create state because there are already maximum number of entries allowed by policy." +"C0368005","-1070170107","3224797189","STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED","IPsec Dos Protection received an IPsec negotiation packet for a keying module which is not allowed by policy." +"C0368006","-1070170106","3224797190","STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES","IPsec Dos Protection failed to create per internal IP ratelimit queue because there is already maximum number of queues allowed by policy." +"C038005B","-1070071717","3224895579","STATUS_VOLMGR_MIRROR_NOT_SUPPORTED","The system does not support mirrored volumes." +"C038005C","-1070071716","3224895580","STATUS_VOLMGR_RAID5_NOT_SUPPORTED","The system does not support RAID-5 volumes." +"C03A0014","-1069940716","3225026580","STATUS_VIRTDISK_PROVIDER_NOT_FOUND","A virtual disk support provider for the specified file was not found." +"C03A0015","-1069940715","3225026581","STATUS_VIRTDISK_NOT_VIRTUAL_DISK","The specified disk is not a virtual disk." +"C03A0016","-1069940714","3225026582","STATUS_VHD_PARENT_VHD_ACCESS_DENIED","The chain of virtual hard disks is inaccessible. The process has not been granted access rights to the parent virtual hard disk for the differencing disk." +"C03A0017","-1069940713","3225026583","STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH","The chain of virtual hard disks is corrupted. There is a mismatch in the virtual sizes of the parent virtual hard disk and differencing disk." +"C03A0018","-1069940712","3225026584","STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED","The chain of virtual hard disks is corrupted. A differencing disk is indicated in its own parent chain." +"C03A0019","-1069940711","3225026585","STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT","The chain of virtual hard disks is inaccessible. There was an error opening a virtual hard disk further up the chain." +"C05D0000","-1067646976","3227320320","STATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP","Returned in response to a client negotiate request when the server does not support any of the hash algorithms in the request." +"C05D0001","-1067646975","3227320321","STATUS_SMB_BAD_CLUSTER_DIALECT","" +"C8000147","-939523769","3355443527","NULL","" +"C8000152","-939523758","3355443538","MCIERR_Seq_Port_Nonexistent","" +"C8000158","-939523752","3355443544","NULL","" +"C80001FE","-939523586","3355443710","hrLogWriteFail","unable to write to the log file." +"C8000211","-939523567","3355443729","hrLogDiskFull","" +"C8000240","-939523520","3355443776","SE_Auditid_Assign_Special_Priv","" +"C80003F3","-939523085","3355444211","hrOutOfMemory","The computer is out of memory." +"C80003F6","-939523082","3355444214","hrOutOfBuffers","out of database page buffers." +"C80003FA","-939523078","3355444218","hrReadVerifyFailure","" +"C80003FB","-939523077","3355444219","Error_No_Log_Space","System could not allocate the required space in a registry log." +"C80003FE","-939523074","3355444222","hrDiskIO","" +"C8000442","-939523006","3355444290","CS_Event_reg_Operations_Failed","" +"C800044E","-939522994","3355444302","hrWriteConflict","The write lock failed due to an outstanding write lock." +"C8000710","-939522288","3355445008","hrDiskFull","" +"D0000005","-805306363","3489660933","ERROR_ACCESS_DENIED","" +"D0000006","-805306362","3489660934","Error_Invalid_Handle","" +"D0000008","-805306360","3489660936","ERROR_NOT_ENOUGH_MEMORY","not enough storage is available to process this command." +"D0000017","-805306345","3489660951","Error_CRC","" +"D0000018","-805306344","3489660952","Error_Bad_Length","the program issued a command but the command length is incorrect." +"D000001D","-805306339","3489660957","Error_Write_Fault","the system cannot write the specified device." +"D0000022","-805306334","3489660962","Error_Wrong_Disk","" +"D000012D","-805306067","3489661229","HTTP_Status_Moved","Object Permanently moved." +"D0000135","-805306059","3489661237","MCIErr_Set_Drive","" +"D000013A","-805306054","3489661242","NULL","" +"D0000142","-805306046","3489661250","MCIERR_Wave_Inputsinuse","" +"D0000194","-805305964","3489661332","HTTP_Status_Not_Found","" +"D0000354","-805305516","3489661780","NULL","" +"DEADDEAD","-559030611","3735936685","MANUALLY_INITIATED_CRASH1 ","Crash was manually initiated." +"E0000101","-536870655","3758096641","ERROR_SECTION_NOT_FOUND","" +"E0000201","-536870399","3758096897","ERROR_CLASS_MISMATCH","" +"E0000203","-536870397","3758096899","ERROR_NO_DRIVER_SELECTED","" +"E000020B","-536870389","3758096907","ERROR_NO_SUCH_DEVINST","" +"E000020D","-536870387","3758096909","ERROR_INVALID_CLASS_INSTALLER","" +"E0000217","-536870377","3758096919","ERROR_BAD_SERVICE_INSTALLSECT","" +"E0000219","-536870375","3758096921","ERROR_NO_ASSOCIATED_SERVICE","" +"E000022B","-536870357","3758096939","ERROR_DI_DONT_INSTALL","" +"E000022D","-536870355","3758096941","ERROR_NON_WINDOWS_NT_DRIVER","" +"E000022F","-536870353","3758096943","ERROR_NO_CATALOG_FOR_OEM_INF","" +"E0000230","-536870352","3758096944","ERROR_DEVINSTALL_QUEUE_NONNATIVE","" +"E0000234","-536870348","3758096948","ERROR_DRIVER_NONNATIVE","" +"E000023A","-536870342","3758096954","ERROR_PNP REGISTRY_ERROR","" +"E0434352","-532462766","3762504530","EXCEPTION_COMPLUS","Unhandled Exception." +"E0434F4D","-532459699","3762507597","","Unhandled exception in .NET application." +"E6000000","-436207616","3858759680","","Required hardware is not present. ." +"FFFFF8F0","-1808","4294965488","JET_errDiskFull","" +"FFFFFB40","-1216","4294966080","JET_errAttachedDatabaseMismatch","" +"FFFFFB4A","-1206","4294966090","JET_errDatabaseCorrupted","" +"FFFFFBBE","-1090","4294966206","JET_errInstanceUnavailable","" +"FFFFFBF8","-1032","4294966264","JET_errFileAccessDenied","" +"FFFFFC01","-1023","4294966273","NULL","" +"FFFFFC02","-1022","4294966274","JET_errDiskIO","" +"FFFFFC06","-1018","4294966278","JET_errReadVerifyFailure","" +"FFFFFC0D","-1011","4294966285","JET_errOutOfMemory","" +"FFFFFDC9","-567","4294966729","JET_errDbTimeTooNew","" +"FFFFFDDA","-550","4294966746","JET_errDatabaseInconsistent","" +"FFFFFDEC","-532","4294966764","NULL","" +"FFFFFDFD","-515","4294966781","JET_errInvalidLogSequence","" +"FFFFFE02","-510","4294966786","JET_errLogWriteFail","" +"FFFFFE0B","-501","4294966795","JET_errLogFileCorrupt","" +"FFFFFF99","-103","4294967193","JET_errOutOfThreads","" diff --git a/Tools/ManualValidation/LabelActions.csv b/Tools/ManualValidation/LabelActions.csv index 439d93360d241..501b8cd7e8749 100644 --- a/Tools/ManualValidation/LabelActions.csv +++ b/Tools/ManualValidation/LabelActions.csv @@ -1,9 +1,11 @@ "Label","Logset","StringSet","MatchOffset","LengthSet" "Binary-Validation-Error","29|41|37|","0","","" -"Internal-Error","29|15|25|54|56|57|58","1|9|12","","" -"Manifest-AppsAndFeaturesVersion-Error","29|30|14|42|46|48|34","1|2","","" -"Manifest-Installer-Validation-Error","29|42|43|48","1|2","","" -"Manifest-Validation-Error","29|30|14|23|34|39|42|46|47","8|2|10|11","","" -"PullRequest-Error","29|13|14|27|33|41|45|68","1|9","","" +"Internal-Error","47|46|29|15|25|54|56|57|58","12|1|9","","" +"Internal-Error-PR","36","","" +"Manifest-AppsAndFeaturesVersion-Error","36|29|30|14|42|46|48|34","1|2","","" +"Manifest-Installer-Validation-Error","37|36|29|42|43|48","1|2","","" +"Manifest-Validation-Error","37","11|8|2|10","","" +"PullRequest-Error","36","13","","0" "Validation-Forbidden-URL-Error","29|21|23|53|55","9","","" -"Error-Hash-Mismatch","29|53|25|41|57|59|60|46","0","","10" +"Error-Hash-Mismatch","54","0","","10" +"Internal-Error-Manifest-Installer","37|36","9|0","1|0","3" diff --git a/Tools/ManualValidation/MMCExceptionList.txt b/Tools/ManualValidation/MMCExceptionList.txt new file mode 100644 index 0000000000000..c008863531216 --- /dev/null +++ b/Tools/ManualValidation/MMCExceptionList.txt @@ -0,0 +1,10 @@ +Icons +InstallationMetadata +MinimumOSVersion +Missing Properties +Moniker +Platform +ReleaseNotes +ReleaseNotesUrl +ReleaseDate +UpgradeBehavior \ No newline at end of file diff --git a/Tools/ManualValidation/ManualValidationPipeline.cs b/Tools/ManualValidation/ManualValidationPipeline.cs index 0953b0206d4ec..d3a6e5206f036 100644 --- a/Tools/ManualValidation/ManualValidationPipeline.cs +++ b/Tools/ManualValidation/ManualValidationPipeline.cs @@ -1,57 +1,57 @@ -//Copyright 2022-2025 Microsoft Corporation -//Author: Stephen Gillie -//Title: WinGet Approval Pipeline v3.-4.0 -//Created: 1/19/2024 -//Updated: 3/3/2025 -//Notes: Tool to streamline evaluating winget-pkgs PRs. - - - - - - -/*Contents: -- Init vars -- Boilerplate -- UI top-of-box - - Menu -- Tabs -- Automation Tools -- PR Tools -- Network Tools -- Validation Starts Here -- Manifests Etc -- VM Image Management -- VM Pipeline Management -- VM Status -- VM Versioning -- VM Orchestration -- File Management -- Reporting -- Clipboard -- Et Cetera -- Utility functions -- Powershell equivalency -- VM Window management -- Event Handlers -- Inject into PRs -- Inject into files -- Misc data - -Need work: -1. HourlyRun (pending) +//Copyright 2022-2025 Microsoft Corporation +//Author: Stephen Gillie +//Title: WinGet Approval Pipeline v3.-4.0 +//Created: 1/19/2024 +//Updated: 3/3/2025 +//Notes: Tool to streamline evaluating winget-pkgs PRs. + + + + + + +/*Contents: +- Init vars +- Boilerplate +- UI top-of-box + - Menu +- Tabs +- Automation Tools +- PR Tools +- Network Tools +- Validation Starts Here +- Manifests Etc +- VM Image Management +- VM Pipeline Management +- VM Status +- VM Versioning +- VM Orchestration +- File Management +- Reporting +- Clipboard +- Et Cetera +- Utility functions +- Powershell equivalency +- VM Window management +- Event Handlers +- Inject into PRs +- Inject into files +- Misc data + +Need work: +1. HourlyRun (pending) - LabelAction (needs testing) - - DefenderFail (pending) + - DefenderFail (pending) - PRStateFromComments (needs rewrite) - - ADOLog (needs testing) -2. PR Watcher bulk approvals & RandomIEDS (pending) - - Validation DataGridView needs a function to write to it. - - ListingDiff (pending) - - ManifestListing (pending) -3. ToWork Search & Full ToWork Run (need rewrite) - - PRStateFromComments (needs rewrite) -4. Every second / 5 seconds - Run Tracker - - VM Window arrangement (50% rewritten) + - ADOLog (needs testing) +2. PR Watcher bulk approvals & RandomIEDS (pending) + - Validation DataGridView needs a function to write to it. + - ListingDiff (pending) + - ManifestListing (pending) +3. ToWork Search & Full ToWork Run (need rewrite) + - PRStateFromComments (needs rewrite) +4. Every second / 5 seconds - Run Tracker + - VM Window arrangement (50% rewritten) - VM Cycle (pending) - GenerateVM (pending) - DisgenerateVM (pending) @@ -61,987 +61,1014 @@ 4. Every second / 5 seconds - Run Tracker - RemoveVMSnapshot (pending) - ImportVM (pending) - SetVMMemory (pending) - - RebuildStatus (pending) - - Automatic VM rotation (pending) -7. Update manifest tools - - SingleFileAutomation (pending) - - ManifestAutomation (pending) - - ManifestFile (pending) -8. AddValidationData - need a form to fill out. (and testing) -9. FullReport (needs testing) -10. AddPRToRecord (needs bugfix) - - Squash-merge and Closed stats should be higher, but some of the data is “evaporating” before it reaches the logs. -11. PRReportFromRecord (needs testing) -12. Import new image VM - - MoveVMStorage (pending) - - ImageVMMove (pending) -13. Win11 image VM - - ImageVMStart (pending) - - ImageVMStop (pending) -14. Update manifest + - RebuildStatus (pending) + - Automatic VM rotation (pending) +7. Update manifest tools + - SingleFileAutomation (pending) + - ManifestAutomation (pending) + - ManifestFile (pending) +8. AddValidationData - need a form to fill out. (and testing) +9. FullReport (needs testing) +10. AddPRToRecord (needs bugfix) + - Squash-merge and Closed stats should be higher, but some of the data is “evaporating” before it reaches the logs. +11. PRReportFromRecord (needs testing) +12. Import new image VM + - MoveVMStorage (pending) + - ImageVMMove (pending) +13. Win11 image VM + - ImageVMStart (pending) + - ImageVMStop (pending) +14. Update manifest - In PR - AddDependencyToPR (pending) - UpdateHashInPR/2 (pending) - - UpdateArchInPR (pending) + - UpdateArchInPR (pending) - On Disk - AddToValidationFile (pending) - - AddInstallerSwitch (pending) -15. Require admin/UAC (for VMs – might have non-admin mode that uses sandbox instead) - - OpenSandbox (pending) -16. Preferences (pending) - - Window arrangement - - Hourly Mode + - AddInstallerSwitch (pending) +15. Require admin/UAC (for VMs – might have non-admin mode that uses sandbox instead) + - OpenSandbox (pending) +16. Preferences (pending) + - Window arrangement + - Hourly Mode - Warnings - - Add warnings - - Enable clipboard watching (manifests/) - - Enable approvals - - Enable Waivers? - - Comment-based moderator controls - - Use sandbox instead of VMs and don't require Admin/UAC - - Open VM folder -17. Status bar (pending) -18. PR counters on certain buttons - Approval-Ready, ToWork, Defender, IEDS -19. Buttons/controls foreach VM in VM display: Complete, open PR, open files on disk, Add dependency (Default VS2015 isf User Input is empty.), - - Faster/better to have in-VM controls or in-app controls, or both? Why? - - Double-click VM row to bring window to front. -20. Process for adding PackageIdentifier or PR# to VM display. -*/ - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//====================-------------------- Init vars --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Drawing.Imaging; -using System.Diagnostics; -using System.Globalization; -using System.IO; -using System.IO.Compression; -using System.Linq; -using System.Management; -using System.Net; -using System.Runtime.InteropServices; -using System.Security.Principal; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading; -using System.Windows.Forms; -using System.Web.Script.Serialization; - -namespace WinGetApprovalNamespace { - public class WinGetApprovalPipeline : Form { - //vars - public int build = 931;//Get-RebuildPipeApp - public string appName = "WinGetApprovalPipeline"; - public string appTitle = "WinGet Approval Pipeline - Build "; - public static string owner = "microsoft"; - public static string repo = "winget-pkgs"; - - public static string remoteIP = Dns.GetHostEntry(Dns.GetHostName()).AddressList.Where(n => n.ToString().Contains("172.")).FirstOrDefault().ToString(); - //PowerShell: $remoteIP = ([ipaddress](($ipconfig[($ipconfig | Select-String "vEthernet").LineNumber..$ipconfig.Length] | Select-String "IPv4 Address") -split ": ")[1]).IPAddressToString - - //From VM perspective - for validation script builder. - public static string RemoteMainFolder = "//"+remoteIP+"/"; - public string SharedFolder = RemoteMainFolder+"/write"; - - //Meanwhile, back on the host... - public static string MainFolder = "C:\\ManVal"; - public string runPath = MainFolder+"\\vm\\"; //VM working folder; - public string vmCounter = MainFolder+"\\vmcounter.txt"; - public string VMversion = MainFolder+"\\VMversion.txt"; - public string LogFile = MainFolder+"\\misc\\ApprovedPRs.txt"; - public string PeriodicRunLog = MainFolder+"\\misc\\PeriodicRunLog.txt"; - - public static string logsFolder = MainFolder+"\\logs"; //VM Logs folder; - public string timecardfile = logsFolder+"\\timecard.txt"; - public string TrackerModeFile = logsFolder+"\\trackermode.txt"; - - public static string writeFolder = MainFolder+"\\write"; //Folder with write permissions; - public string SharedErrorFile = writeFolder+"\\err.txt"; - public string StatusFile = writeFolder+"\\status.csv"; - - public static string ReposFolder = "C:\\repos\\"+repo; - public string DataFileName = ReposFolder+"\\Tools\\ManualValidationPipeline.csv"; - - public static string imagesFolder = MainFolder+"\\Images"; //VM Images folder; - public string Win10Folder = imagesFolder+"\\Win10-Created053025-Original"; - public string Win11Folder = imagesFolder+"\\Win11-Created010424-Original"; - - public static string GitHubBaseUrl = "https://github.com/"+owner+"/"+repo; - public static string GitHubContentBaseUrl = "https://raw.githubusercontent.com/"+owner+"/"+repo; - public static string GitHubApiBaseUrl = "https://api.github.com/repos/"+owner+"/"+repo; - public string ADOMSBaseUrl = "https://dev.azure.com/shine-oss"; - - //ADOLogs - should be refactored to be in-memory. - public static string DestinationPath = MainFolder+"\\Installers"; - public static string LogPath = DestinationPath+"\\InstallationVerificationLogs\\"; - public static string ZipPath = DestinationPath+"\\InstallationVerificationLogs.zip"; - - public string CheckpointName = "Validation"; - public string VMUserName = "user"; //Set to the internal username you're using in your VMs.; - public string gitHubUserName = "stephengillie"; - //public string SystemRAM = (Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb; - - public int displayLine = 0; - - public static string string_PRRegex = "[0-9]{5,6}"; - public static string string_hashPRRegex = "[#]"+string_PRRegex; - public static string string_hashPRRegexEnd = string_hashPRRegex+"$"; - public static string string_colonPRRegex = string_PRRegex+"[:]"; - - public Regex regex_PRRegex = new Regex(@string_PRRegex); - public Regex regex_hashPRRegex = new Regex(@string_hashPRRegex); - public Regex regex_hashPRRegexEnd = new Regex(@string_hashPRRegexEnd); - public Regex regex_colonPRRegex = new Regex(@string_colonPRRegex); - - public string file_GitHubToken = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Documents\\PowerShell\\ght.txt"; - //public string file_GitHubToken = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Documents\\PowerShell\\ght.txt"; - public string GitHubToken; - public bool TokenLoaded = false; - public int GitHubRateLimitDelay = 333; // ms - public int HyperVRateLimitDelay = 3; // seconds - - //JSON - JavaScriptSerializer serializer = new JavaScriptSerializer(); - - //WMI for local VMs - public ManagementScope scope = new ManagementScope(@"root\virtualization\v2");//, null); - /* Remote VMs - var connectionOptions = new ConnectionOptions( - @"en-US", - @"domain\user", - @"password", - null, - ImpersonationLevel.Impersonate, - AuthenticationLevel.Default, - false, - null, - TimeSpan.FromSeconds(5); - public ManagementScope scope = new ManagementScope(new ManagementPath { Server = "hostnameOrIpAddress", NamespacePath = @"root\virtualization\v2" }, connectionOptions);scope.Connect(); - */ - - //ui - public RichTextBox outBox_msg; - public System.Drawing.Bitmap myBitmap;//Depreciate - public System.Drawing.Graphics pageGraphics;//Depreciate? - public Panel pagePanel; - public ContextMenuStrip contextMenu1;//Menu? - - public TextBox inputBox_PRNumber, inputBox_User, inputBox_VMRAM; - public Label label_VMRAM = new Label(); - public Label label_User = new Label(); - public Label label_PRNumber = new Label(); - public DataGridView dataGridView_vm = new DataGridView(); - public DataGridView dataGridView_val = new DataGridView(); - public DataTable table_vm = new DataTable(); - public DataTable table_val = new DataTable(); - public Button btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9; - public Button btn10, btn11, btn12, btn13, btn14, btn15, btn16, btn17, btn18, btn19; - public Button btn20, btn21, btn22, btn23, btn24, btn25, btn26, btn27, btn28; - public ToolTip toolTip1, toolTip2, toolTip3, toolTip4; - - public StatusStrip statusStrip1; - public ToolStripStatusLabel toolStripStatusLabel1; - - int DarkMode = 1;//(int)Microsoft.Win32.Registry.GetValue("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", "AppsUseLightTheme", -1); - //0 : dark theme - //1 : light theme - //-1 : AppsUseLightTheme could not be found - - public Color color_DefaultBack = Color.FromArgb(240,240,240); - public Color color_DefaultText = Color.FromArgb(0,0,0); - public Color color_InputBack = Color.FromArgb(255,255,255); - public Color color_ActiveBack = Color.FromArgb(200,240,240); - - int table_vm_Row_Index = 0; - - //PRWatch - public string oldclip = ""; - public string PRTitle = ""; - - //Grid - public static int gridItemWidth = 70; - public static int gridItemHeight = 45; - - public int lineHeight = 14; - public int WindowWidth = gridItemWidth*15+20; - public int WindowHeight = gridItemHeight*12+20; - - //Fonts - string AppFont = "Calibri"; - int AppFontSIze = 12; - int urlBoxFontSIze = 12; - string buttonFont = SystemFonts.MessageBoxFont.ToString(); - int buttonFontSIze = 8; - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//====================-------------------- Boilerplate --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - [STAThread] - static void Main() { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new WinGetApprovalPipeline()); - }// end Main - - public WinGetApprovalPipeline() { - if (TokenLoaded == false) { - GitHubToken = GetContent(file_GitHubToken); - if (GitHubToken.Length > 0) { - TokenLoaded = true; - } - } - - System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); - timer.Interval = (1 * 1000); // 10 secs - timer.Tick += new EventHandler(timer_everysecond); - timer.Start(); - - this.Text = appTitle + build; - this.Size = new Size(WindowWidth,WindowHeight); - //this.StartPosition = FormStartPosition.CenterScreen; - - //this.MaximizeBox = false; - //this.FormBorderStyle = FormBorderStyle.FixedSingle; - this.Resize += new System.EventHandler(this.OnResize); - this.AutoScroll = true; - Icon icon = Icon.ExtractAssociatedIcon("ManualValidationPipeline.ico"); - this.Icon = icon; - - if (DarkMode == 0) { - color_DefaultBack = Color.FromArgb(33,33,33); - color_DefaultText = Color.FromArgb(200,200,200); - color_ActiveBack = Color.FromArgb(15,55,105); - color_InputBack = Color.FromArgb(0,0,0); - } - this.BackColor = color_DefaultBack; - this.ForeColor = color_DefaultText; - - drawMenuBar(); - drawUrlBoxAndGoButton(); - RefreshStatus(); - - } // end WinGetApprovalPipeline - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//====================-------------------- UI top-of-box --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public void drawButton(ref Button button, int pointX, int pointY, int sizeX, int sizeY,string buttonText, EventHandler buttonOnclick){ - button = new Button(); - button.Text = buttonText; - button.Location = new Point(pointX, pointY); - button.Size = new Size(sizeX, sizeY); - button.BackColor = color_DefaultBack; - button.ForeColor = color_DefaultText; - button.Click += new EventHandler(buttonOnclick); - button.Font = new Font(buttonFont, buttonFontSIze); - Controls.Add(button); - }// end drawButton - - public void drawRichTextBox(ref RichTextBox richTextBox, int pointX,int pointY,int sizeX,int sizeY,string text, string name){ - richTextBox = new RichTextBox(); - richTextBox.Text = text; - richTextBox.Name = name; - richTextBox.Multiline = true; - richTextBox.AcceptsTab = true; - richTextBox.WordWrap = true; - richTextBox.ReadOnly = true; - richTextBox.DetectUrls = true; - richTextBox.BackColor = color_DefaultBack; - richTextBox.ForeColor = color_DefaultText; - richTextBox.Font = new Font(AppFont, AppFontSIze); - richTextBox.Location = new Point(pointX, pointY); - //richTextBox.LinkClicked += new LinkClickedEventHandler(Link_Click); - richTextBox.Width = sizeX; - richTextBox.Height = sizeY; - //richTextBox.Dock = DockStyle.Fill; - richTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None; - - - //richTextBox.BackColor = Color.Red; - //richTextBox.ForeColor = Color.Blue; - //richTextBox.RichTextBoxScrollBars = ScrollBars.Both; - //richTextBox.AcceptsReturn = true; - - Controls.Add(richTextBox); - }// end drawRichTextBox - - public void drawUrlBox(ref TextBox urlBox, int pointX, int pointY, int sizeX, int sizeY,string text){ - urlBox = new TextBox(); - urlBox.Text = text; - urlBox.Name = "urlBox"; - urlBox.Font = new Font(AppFont, urlBoxFontSIze); - urlBox.Location = new Point(pointX, pointY); - urlBox.BackColor = color_InputBack; - urlBox.ForeColor = color_DefaultText; - urlBox.Width = sizeX; - urlBox.Height = sizeY; - Controls.Add(urlBox); - } - - public void drawLabel(ref Label newLabel, int pointX, int pointY, int sizeX, int sizeY,string text){ - newLabel = new Label(); - newLabel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - //newLabel.ImageList = imageList1; - newLabel.ImageIndex = 1; - newLabel.ImageAlign = ContentAlignment.TopLeft; - newLabel.BackColor = color_DefaultBack; - newLabel.ForeColor = color_DefaultText; - newLabel.Name = "newLabel"; - newLabel.Font = new Font(AppFont, AppFontSIze); - newLabel.Location = new Point(pointX, pointY); - newLabel.Width = sizeX; - newLabel.Height = sizeY; - //newLabel.KeyUp += newLabel_KeyUp; - - newLabel.Text = text; - - //newLabel.Size = new Size (label1.PreferredWidth, label1.PreferredHeight); - Controls.Add(newLabel); - } - - public void drawDataGrid(ref DataGridView dataGridView, int startX, int startY, int sizeX, int sizeY){ - dataGridView = new DataGridView(); - dataGridView.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Raised; - dataGridView.CellBorderStyle = DataGridViewCellBorderStyle.Single; - dataGridView.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - - dataGridView.ForeColor = color_DefaultText;//Selected cell text color - dataGridView.BackColor = color_DefaultBack;//Selected cell BG color - dataGridView.DefaultCellStyle.SelectionForeColor = color_DefaultText;//Unselected cell text color - dataGridView.DefaultCellStyle.SelectionBackColor = color_DefaultBack;//Unselected cell BG color - dataGridView.BackgroundColor = color_DefaultBack;//Space underneath/between cells - dataGridView.GridColor = SystemColors.ActiveBorder;//Gridline color - - dataGridView.Name = "dataGridView"; - dataGridView.Font = new Font(AppFont, AppFontSIze); - dataGridView.Location = new Point(startX, startY); - dataGridView.Size = new Size(sizeX, sizeY); - // dataGridView.KeyUp += dataGridView_KeyUp; - // dataGridView.Text = text; - Controls.Add(dataGridView); - - - - dataGridView.EditMode = DataGridViewEditMode.EditProgrammatically; - dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders; - dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; - dataGridView.AllowUserToDeleteRows = false; - dataGridView.RowHeadersVisible = false; - dataGridView.MultiSelect = false; - //dataGridView.Dock = DockStyle.Fill; - -/* - dataGridView.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView_CellFormatting); - dataGridView.CellParsing += new DataGridViewCellParsingEventHandler(dataGridView_CellParsing); - addNewRowButton.Click += new EventHandler(addNewRowButton_Click); - deleteRowButton.Click += new EventHandler(deleteRowButton_Click); - ledgerStyleButton.Click += new EventHandler(ledgerStyleButton_Click); - dataGridView.CellValidating += new DataGridViewCellValidatingEventHandler(dataGridView_CellValidating); -*/ - }// end drawDataGrid - - public void drawToolTip(ref ToolTip toolTip, ref Button button, string DisplayText, int AutoPopDelay = 5000, int InitialDelay = 1000, int ReshowDelay = 500){ - toolTip = new ToolTip(); - - // Set up the delays for the ToolTip. - toolTip.AutoPopDelay = AutoPopDelay; - toolTip.InitialDelay = InitialDelay; - toolTip.ReshowDelay = ReshowDelay; - // Force the ToolTip text to be displayed whether or not the form is active. - toolTip.ShowAlways = true; - - // Set up the ToolTip text for the Button and Checkbox. - toolTip.SetToolTip(button, DisplayText); - //toolTip.SetToolTip(this.checkBox1, "My checkBox1"); - } - - public void drawStatusStrip (StatusStrip statusStrip,ToolStripStatusLabel toolStripStatusLabel) { - statusStrip = new System.Windows.Forms.StatusStrip(); - statusStrip.Dock = System.Windows.Forms.DockStyle.Bottom; - statusStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible; - - toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); - toolStripStatusLabel.Name = "toolStripStatusLabel"; - toolStripStatusLabel.Size = new System.Drawing.Size(109, 17); - toolStripStatusLabel.Text = "toolStripStatusLabel"; - statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripStatusLabel }); - - statusStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow; - statusStrip.Location = new System.Drawing.Point(0, 0); - statusStrip.Name = "statusStrip"; - statusStrip.ShowItemToolTips = true; - statusStrip.Size = new System.Drawing.Size(292, 22); - statusStrip.SizingGrip = false; - statusStrip.Stretch = false; - statusStrip.TabIndex = 0; - statusStrip.Text = "statusStrip"; - - Controls.Add(statusStrip); - } - - public void drawMenuBar (){ - this.Menu = new MainMenu(); - MenuItem item = new MenuItem("File"); - this.Menu.MenuItems.Add(item); - item.MenuItems.Add("(disabled) Specify key file location...", new EventHandler(Save_File_Action)); - item.MenuItems.Add("(disabled) Generate daily report", new EventHandler(About_Click_Action)); - - item = new MenuItem("Selected VM"); - this.Menu.MenuItems.Add(item); - item.MenuItems.Add("Complete VM", new EventHandler(Complete_VM_Image_Action)); - item.MenuItems.Add("Relaunch window", new EventHandler(Launch_Window_Image_Action)); - item.MenuItems.Add("Open VM folder", new EventHandler(Open_Folder_Image_Action)); - MenuItem submenu = new MenuItem("WIn10 Image VM"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("Generate VM from image", new EventHandler(Generate_Win10_VM_Image_Action)); - submenu.MenuItems.Add("Start", new EventHandler(Start_Win10_Image_Action)); - submenu.MenuItems.Add("Relaunch window", new EventHandler(Launch_Win10_Window_Image_Action)); - submenu.MenuItems.Add("Stop", new EventHandler(Stop_Win10_Image_Action)); - submenu.MenuItems.Add("Turn off", new EventHandler(TurnOff_Win10_Image_Action)); - submenu.MenuItems.Add("Attach new image VM", new EventHandler(Attach_Win10_Image_Action)); - submenu = new MenuItem("Win11 Image VM"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("Generate VM from image", new EventHandler(Generate_Win11_VM_Image_Action)); - submenu.MenuItems.Add("Start", new EventHandler(Start_Win11_Image_Action)); - submenu.MenuItems.Add("Relaunch window", new EventHandler(Launch_Win11_Window_Image_Action)); - submenu.MenuItems.Add("Stop", new EventHandler(Stop_Win11_Image_Action)); - submenu.MenuItems.Add("Turn Off", new EventHandler(TurnOff_Win11_Image_Action)); - submenu.MenuItems.Add("Attach new image VM", new EventHandler(Attach_Win11_Image_Action)); - item.MenuItems.Add("Disgenerate VM", new EventHandler(Disgenerate_VM_Image_Action)); - - item = new MenuItem("Validate Manifest"); - this.Menu.MenuItems.Add(item); - item.MenuItems.Add("Regular Validation", new EventHandler(Validate_Manifest_Action)); - item.MenuItems.Add("DSC Configure", new EventHandler(Validate_By_Configure_Action)); - item.MenuItems.Add("By PackageIdentifier (User Input)", new EventHandler(Validate_By_ID_Action)); - item.MenuItems.Add("By Arch", new EventHandler(Validate_By_Arch_Action)); - item.MenuItems.Add("By Scope", new EventHandler(Validate_By_Scope_Action)); - item.MenuItems.Add("Both Arch and Scope", new EventHandler(Validate_By_Arch_And_Scope_Action)); - submenu = new MenuItem("Generate manifest for selected VM"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("Manifest from clipboard", new EventHandler(Manifest_From_Clipboard)); - submenu.MenuItems.Add("Installer.yaml and the rest from GH", new EventHandler(Single_File_Automation_Action)); - submenu = new MenuItem("Update manifest"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("Add dependency (VS2015+)", new EventHandler(Add_Dependency_Disk_Action)); - submenu.MenuItems.Add("Add installer switch (/S)", new EventHandler(Add_Installer_Switch_Action)); - - item = new MenuItem("Current PR"); - this.Menu.MenuItems.Add(item); - submenu = new MenuItem("Approve PR"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("Approve PR", new EventHandler(Approved_Action)); - submenu = new MenuItem("Update PR"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("@wingetbot run", new EventHandler(Retry_Action)); - submenu.MenuItems.Add("Label Action", new EventHandler(Label_Action_Action)); - submenu.MenuItems.Add("Check installer", new EventHandler(Check_Installer_Action)); - submenu = new MenuItem("Update manifest"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("Add dependency (VS2015+)", new EventHandler(Add_Dependency_Repo_Action)); - submenu.MenuItems.Add("Update hash 'Specified hash doesn't match.'", new EventHandler(Update_Hash_Action)); - submenu.MenuItems.Add("Update hash 2 'SHA256 in manifest...'", new EventHandler(Update_Hash2_Action)); - submenu.MenuItems.Add("Update architecture (x64)", new EventHandler(Update_Arch_Action)); - submenu = new MenuItem("Complete PR"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("Installs Normally in VM", new EventHandler(Manually_Validated_Action)); - submenu = new MenuItem("Wingetbot Close"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("Close: Merge Conflicts;", new EventHandler(Merge_Conflicts_Action)); - submenu.MenuItems.Add("Close: Version Already Exists;", new EventHandler(Version_Already_Exiss_Action)); - submenu.MenuItems.Add("Close: Regen with new hash;", new EventHandler(Regen_Hash_Action)); - submenu = new MenuItem("Regular Close"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("Close: (User Input);", new EventHandler(Closed_Action)); - submenu.MenuItems.Add("Close: Package still available;", new EventHandler(Package_Available_Action)); - submenu.MenuItems.Add("Close: Duplicate of (User Input);", new EventHandler(Duplicate_Action)); - // item.MenuItems.Add("Add Waiver", new EventHandler(Add_Waiver_Action)); - // item.MenuItems.Add("(disabled) Needs Author Feedback (reason)", new EventHandler(Needs_Author_Feedback_Action)); - // submenu = new MenuItem("Canned Replies"); - // item.MenuItems.Add(submenu); - // submenu.MenuItems.Add("Automation block", new EventHandler(Automation_Block_Action)); - // submenu.MenuItems.Add("Driver install", new EventHandler(Driver_Install_Action)); - // submenu.MenuItems.Add("Installer missing", new EventHandler(Installer_Missing_Action)); - // submenu.MenuItems.Add("Installer not silent", new EventHandler(Installer_Not_Silent_Action)); - // submenu.MenuItems.Add("Needs PackageUrl", new EventHandler(Needs_PackageUrl_Action)); - // submenu.MenuItems.Add("One manifest per PR", new EventHandler(One_Manifest_Per_PR_Action)); - // item.MenuItems.Add("Record as Project File", new EventHandler(Project_File_Action)); - // item.MenuItems.Add("Record as squash-merge", new EventHandler(Squash_Action)); - - item = new MenuItem("Open In Browser"); - this.Menu.MenuItems.Add(item); - item.MenuItems.Add("Current PR", new EventHandler(Open_Current_PR_Action)); - item.MenuItems.Add("PR for selected VM", new EventHandler(Open_PR_Selected_VM_Action)); - submenu = new MenuItem("Open many tabs:"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("All PRs on clipboard", new EventHandler(Open_AllUrls_Action)); - submenu.MenuItems.Add("Full Approval Run", new EventHandler(Approval_Run_Search_Action)); - submenu.MenuItems.Add("Full ToWork Run", new EventHandler(ToWork_Run_Search_Action)); - submenu.MenuItems.Add("All Start Of Day", new EventHandler(Start_Of_Day_Action)); - submenu.MenuItems.Add("All Resources", new EventHandler(All_Resources_Action)); - submenu = new MenuItem("Start Of Day:"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("WinGet-pkgs repo", new EventHandler(Open_PKGS_Repo_Action)); - submenu.MenuItems.Add("WinGet-cli repo", new EventHandler(Open_CLI_Repo_Action)); submenu = new MenuItem("Resources:"); - item.MenuItems.Add(submenu); - submenu.MenuItems.Add("Gitter chat", new EventHandler(Open_Gitter_Action)); - submenu.MenuItems.Add("Pipeline status", new EventHandler(Open_Pipeline_Action)); - submenu.MenuItems.Add("Dashboard", new EventHandler(Open_Dashboard_Action)); - submenu.MenuItems.Add("Notifications mentions", new EventHandler(Open_Notifications_Action)); - submenu.MenuItems.Add("Approval search", new EventHandler(Approval_Search_Action)); - submenu.MenuItems.Add("Defender search", new EventHandler(Defender_Search_Action)); - submenu.MenuItems.Add("ToWork search", new EventHandler(ToWork_Search_Action)); - item.MenuItems.Add("Search GitHub for PRs (User Input)", new EventHandler(Pkgs_Search_Action)); - item.MenuItems.Add("Approved PR selected below", new EventHandler(Open_SelectedApproved_Action)); - - item = new MenuItem("Help"); - this.Menu.MenuItems.Add(item); - item.MenuItems.Add("About...", new EventHandler(About_Click_Action)); - item.MenuItems.Add("VCRedist to dependency...", new EventHandler(VCDependency_Click_Action)); - - this.BackColor = color_DefaultBack; - this.ForeColor = color_DefaultText; - }// end drawMenuBar - - public void drawUrlBoxAndGoButton(){ - int inc = 0; - int row0 = gridItemHeight*inc;inc++; - int row1 = gridItemHeight*inc;inc++; - int row2 = gridItemHeight*inc;inc++; - int row3 = gridItemHeight*inc;inc++; - int row4 = gridItemHeight*inc;inc++; - int row5 = gridItemHeight*inc;inc++; - int row6 = gridItemHeight*inc;inc++; - int row7 = gridItemHeight*inc;inc++; - int row8 = gridItemHeight*inc;inc++; - int row9 = gridItemHeight*inc;inc++; - int row10 = gridItemHeight*inc;inc++; - - inc = 0; - int col0 = gridItemWidth*inc;inc++; - int col1 = gridItemWidth*inc;inc++; - int col2 = gridItemWidth*inc;inc++; - int col3 = gridItemWidth*inc;inc++; - int col4 = gridItemWidth*inc;inc++; - int col5 = gridItemWidth*inc;inc++; - int col6 = gridItemWidth*inc;inc++; - int col7 = gridItemWidth*inc;inc++; - int col8 = gridItemWidth*inc;inc++; - int col9 = gridItemWidth*inc;inc++; - int col10 = gridItemWidth*inc;inc++; - - //drawStatusStrip(statusStrip1, toolStripStatusLabel1); - - table_vm.Columns.Add("vm", typeof(string)); - table_vm.Columns.Add("status", typeof(string)); - table_vm.Columns.Add("version", typeof(int)); - table_vm.Columns.Add("OS", typeof(string)); - table_vm.Columns.Add("Package", typeof(string)); - table_vm.Columns.Add("PR", typeof(int)); - table_vm.Columns.Add("Mode", typeof(string)); - table_vm.Columns.Add("RAM", typeof(double)); - - table_val.Columns.Add("Timestamp", typeof(string)); - table_val.Columns.Add("PR", typeof(int)); - table_val.Columns.Add("PackageIdentifier", typeof(string)); - table_val.Columns.Add("prVersion", typeof(string)); - table_val.Columns.Add("A", typeof(string)); - table_val.Columns.Add("M", typeof(int)); - table_val.Columns.Add("R", typeof(string)); - table_val.Columns.Add("G", typeof(string)); - table_val.Columns.Add("W", typeof(string)); - table_val.Columns.Add("F", typeof(string)); - table_val.Columns.Add("I", typeof(string)); - table_val.Columns.Add("D", typeof(string)); - table_val.Columns.Add("V", typeof(string)); - table_val.Columns.Add("ManifestVer", typeof(string)); - table_val.Columns.Add("OK", typeof(string)); - - foreach (DataGridViewColumn column in dataGridView_vm.Columns){ - column.SortMode = DataGridViewColumnSortMode.NotSortable; - } - - drawDataGrid(ref dataGridView_vm, col0, row0, gridItemWidth*7, gridItemHeight*5); - drawLabel(ref label_PRNumber, col6, row0, gridItemWidth, gridItemHeight,"Current PR:"); - drawUrlBox(ref inputBox_PRNumber, col7, row0, gridItemWidth*2,gridItemHeight,"#000000"); - - drawLabel(ref label_User, col6, row1, gridItemWidth, gridItemHeight,"User Input:"); - drawUrlBox(ref inputBox_User,col7, row1, gridItemWidth*2,gridItemHeight,"");//UserInput field - - drawLabel(ref label_VMRAM, col6, row2, gridItemWidth, gridItemHeight,"VM RAM:"); - drawUrlBox(ref inputBox_VMRAM,col7, row2, gridItemWidth*2,gridItemHeight,"");//VM RAM display - - drawDataGrid(ref dataGridView_val, col0, row5, gridItemWidth*8, gridItemHeight*5); - //dataGridView_val.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; - - drawRichTextBox(ref outBox_msg, col0, row10, this.ClientRectangle.Width,gridItemHeight, "", "outBox_msg"); - - drawButton(ref btn10, col6, row3, gridItemWidth, gridItemHeight, "Bulk Approving", Approving_Action); - drawToolTip(ref toolTip1, ref btn10, "Automatically approve PRs. (Caution - easy to accidentally approve, use with care.)"); - drawButton(ref btn18, col7, row3, gridItemWidth, gridItemHeight, "Individual Validations", Validating_Action); - drawToolTip(ref toolTip2, ref btn18, "Automatically start manifest in VM."); - drawButton(ref btn11, col6, row4, gridItemWidth, gridItemHeight, "Validate Rand IEDS", IEDS_Action); - drawToolTip(ref toolTip3, ref btn11, "Automatically start manifest for random IEDS in VM."); - drawButton(ref btn19, col7, row4, gridItemWidth, gridItemHeight, "Idle Mode", Idle_Action); - drawToolTip(ref toolTip4, ref btn19, "It does nothing."); - drawButton(ref btn20, col8, row3, gridItemWidth, gridItemHeight, "Testing button", Testing_Action); - drawButton(ref btn21, col8, row4, gridItemWidth, gridItemHeight, "Testing button 2", Testing2_Action); - - }// end drawGoButton - - public void OnResize(object sender, System.EventArgs e) { - //Width - VM and Validation windows adjust with window. - dataGridView_vm.Width = ClientRectangle.Width - gridItemWidth*3;// - gridItemWidth*2; - dataGridView_val.Width = ClientRectangle.Width;// - gridItemWidth*2; - outBox_msg.Width = ClientRectangle.Width; - - inputBox_PRNumber.Left = ClientRectangle.Width - gridItemWidth*2;//col8 - inputBox_User.Left = ClientRectangle.Width - gridItemWidth*2;//col8 - inputBox_VMRAM.Left = ClientRectangle.Width - gridItemWidth*2;//col8 - - label_PRNumber.Left = ClientRectangle.Width - gridItemWidth*3;//col7 - label_User.Left = ClientRectangle.Width - gridItemWidth*3;//col7 - label_VMRAM.Left = ClientRectangle.Width - gridItemWidth*3;//col7 - - //Height -Validation and mode buttons adjusts with window. - btn10.Left = ClientRectangle.Width - gridItemWidth*3;//col7 - btn11.Left = ClientRectangle.Width - gridItemWidth*3;//col7 - btn18.Left = ClientRectangle.Width - gridItemWidth*2;//col8 - btn19.Left = ClientRectangle.Width - gridItemWidth*2;//col8 - btn20.Left = ClientRectangle.Width - gridItemWidth*1;//col9 - btn21.Left = ClientRectangle.Width - gridItemWidth*1;//col9 - } - //Refresh display and buttons - private void timer_everysecond(object sender, EventArgs e) { - UpdateTableVM(); - RefreshStatus(); - dataGridView_vm.AutoResizeColumns(); - dataGridView_vm.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; - dataGridView_val.AutoResizeColumns(); - dataGridView_val.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; - - //Hourly Run functionality - bool HourLatch = false; - if (Int32.Parse(DateTime.Now.ToString("mm")) == 20 - && Int32.Parse(DateTime.Now.ToString("mm")) > 00 - && Int32.Parse(DateTime.Now.ToString("mm")) < 02) { - HourLatch = true; - } - if (HourLatch) { - HourLatch = false; - HourlyRun(); - // if (Int32.Parse(DateTime.Now.ToString("mm")) == 20) { - // string seconds = DateTime.Now.ToString("ss"); - // Thread.Sleep((60-Int32.Parse(seconds))*1000);//If it's still :20 after, sleep out the minute. - // } - } - //Update PR display - string clip = Clipboard.GetText(); - Regex regex = new Regex("^[0-9]{6}$"); - string[] clipSplit = clip.Replace("\r\n","\n").Replace("\n"," ").Replace("/"," ").Replace("#"," ").Replace(";"," ").Split(' '); - string c = clipSplit.Where(n => regex.IsMatch(n)).FirstOrDefault(); - if (null != c) { - if (regex.IsMatch(c)) { - inputBox_PRNumber.Text = "#"+c; - } - } - - string Mode = GetMode(); - //Automatic clipboard actions - regex = new Regex(@"^manifests/"); - if (clip.Contains("Skip to content")) { - if (Mode == "Validating") { - //ValidateManifest; - // Mode | clip - } else if (Mode == "Approving") { - PRWatch(false, "Default", "C:\\ManVal\\misc\\ApprovedPRs.txt", "C:\\repos\\winget-pkgs\\Tools\\Review.csv"); - } - } else if (regex.IsMatch(clip)) { - Clipboard.SetText("open manifest"); - string ManifestUrl = GitHubBaseUrl+"/tree/master/"+clip; - System.Diagnostics.Process.Start(ManifestUrl); - } - - //Random IEDS mode - // if ($Mode == "IEDS") { - // if ((Get-ArraySum (GetStatus()).RAM) < ($SystemRAM*.42)) { - // RandomIEDS(); - // } - // } - - //Automatic RAM adjustment - // (Get-VM) | foreach-Object { - // if(($_.MemoryDemand / $_.MemoryMaximum) -ge 0.9){ - // set-vm -VMName $_.name -MemoryMaximumBytes "$(($_.MemoryMaximum / 1073741824)+2)GB" - // } - // } - - - //CycleVMs(); - //WindowArrange(); - //RotateVMs(); - - } - - public void HourlyRun() { - Console.Beep(500,250);Console.Beep(500,250);Console.Beep(500,250); //Beep 3x to alert the PC user. - foreach (string Preset in HourlyRun_PresetList) { - dynamic Results = SearchGitHub(Preset,1); - if (Results != null) { - //foreach (int Result in Results) { - // LabelAction(Result); - //} - } - } - } - - public void RefreshStatus() { - string Mode = ""; - if (TestPath(TrackerModeFile) == "File") { - Mode = GetMode(); - } - if (Mode == "Approving") { - btn10.BackColor = color_ActiveBack;//Bulk Approving - btn18.BackColor = color_DefaultBack;//Individual Validations - btn11.BackColor = color_DefaultBack;//IEDS - btn19.BackColor = color_DefaultBack;//Idle - } else if (Mode == "Validating") { - btn10.BackColor = color_DefaultBack;//Bulk Approving - btn18.BackColor = color_ActiveBack;//Individual Validations - btn11.BackColor = color_DefaultBack;//IEDS - btn19.BackColor = color_DefaultBack;//Idle - } else if (Mode == "IEDS") { - btn10.BackColor = color_DefaultBack;//Bulk Approving - btn18.BackColor = color_DefaultBack;//Individual Validations - btn11.BackColor = color_ActiveBack;//IEDS - btn19.BackColor = color_DefaultBack;//Idle - } else if (Mode == "Idle") { - btn10.BackColor = color_DefaultBack;//Bulk Approving - btn18.BackColor = color_DefaultBack;//Individual Validations - btn11.BackColor = color_DefaultBack;//IEDS - btn19.BackColor = color_ActiveBack;//Idle - } else if (Mode == "Config") { - btn10.BackColor = color_DefaultBack;//Bulk Approving - btn18.BackColor = color_DefaultBack;//Individual Validations - btn11.BackColor = color_DefaultBack;//IEDS - btn19.BackColor = color_DefaultBack;//Idle - } - - if (TestPath(StatusFile) == "File") { - double VMRAM = 0; - try { - Dictionary[] GetStatus = FromCsv(GetContent(StatusFile)); - //Update RAM column and write - for (int VM = 0; VM < GetStatus.Length -1; VM++) { - //$_.RAM = Math.Round((Get-VM -Name ("vm"+$_.vm)).MemoryAssigned/1024/1024/1024,2)} - try { - VMRAM += Convert.ToDouble(GetStatus[VM]["RAM"]); - } catch (Exception e) { - inputBox_VMRAM.Text = "VM"+VM+": "+e.ToString(); - }//end try - }//end for VM - } catch {} - inputBox_VMRAM.Text = VMRAM.ToString(); - }//end if TestPath - }//end function - - public void UpdateTableVM() { - try { - if (TestPath(StatusFile) == "File") { - if (dataGridView_vm.SelectedCells.Count > 0) {//Record the selected row. - table_vm_Row_Index = dataGridView_vm.SelectedCells[0].RowIndex; - } else { - table_vm_Row_Index = 0; - } - table_vm.Clear();//Clear the table - dynamic Status = FromCsv(GetContent(StatusFile, true)); - if (Status != null) { - for (int r = 1; r < Status.Length -1; r++){ - var rowData = Status[r];//Reload the table - table_vm.Rows.Add(rowData["vm"], rowData["status"], rowData["version"], rowData["OS"], rowData["Package"], rowData["PR"], rowData["Mode"], rowData["RAM"]); - }//end for r - }//end if Status - dataGridView_vm.DataSource=table_vm; - dataGridView_vm.Rows[table_vm_Row_Index].Selected = true;//Reselect the row. - - dataGridView_vm.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//vm - dataGridView_vm.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//status - dataGridView_vm.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//version - dataGridView_vm.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//OS - dataGridView_vm.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;//Package - dataGridView_vm.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//PR - dataGridView_vm.Columns[6].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//RAM - - dataGridView_val.DataSource=table_val; - dataGridView_val.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;//Timestamp - dataGridView_val.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//PR - dataGridView_val.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;//PackageIdentifier - dataGridView_val.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;//prVersion - dataGridView_val.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//A - dataGridView_val.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//R - dataGridView_val.Columns[6].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//G - dataGridView_val.Columns[7].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//W - dataGridView_val.Columns[8].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//F - dataGridView_val.Columns[9].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//I - dataGridView_val.Columns[10].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//D - dataGridView_val.Columns[11].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//V - dataGridView_val.Columns[12].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;//ManifestVer - dataGridView_val.Columns[13].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;//OK - - }//end if TestPath - } catch (Exception e){ - outBox_msg.AppendText(Environment.NewLine + "e: " + e ); - }//end try - }//end function - - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//====================-------------------- Tabs --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public void PRWatch(bool noNew, string Chromatic = "Default", string LogFile = ".\\PR.txt", string ReviewFile = ".\\Review.csv"){ - //$Host.UI.RawUI.WindowTitle = "PR Watcher"//I'm a PR Watcher, watchin PRs go by. - string clip = Clipboard.GetText(); - string[] split_clip = clip.Replace("\r\n","\n").Split('\n'); - string replace_clip = clip.Replace("'","").Replace("\"",""); - PRTitle = split_clip.Where(n => regex_hashPRRegexEnd.IsMatch(n)).FirstOrDefault(); - int PR = GetCurrentPR(); - - if (PRTitle != "") { - if (PRTitle != oldclip) { - //(GetStatus() .Where(n => n["status"] == "ValidationCompleted"} | format-Table);//Drops completed VMs in the middle of the PR approval display. - //Chromatic was here. - - string[] title = PRTitle.Split(':'); - if (title.Length > 1) { - title = title[1].Split(' '); - } else { - title = title[0].Split(' '); - } - string Submitter = ""; - try { - Submitter = split_clip.Where(n => n.Contains("wants to merge")).FirstOrDefault().Split(' ')[0]; - } catch {} - string InstallerType = YamlValue("InstallerType",clip); - - //Split the title by spaces. Try extracting the version location as the next item after the word "version", and if that fails, use the 2nd to the last item, then 3rd to last, and 4th to last. for some reason almost everyone puts the version number as the last item, and GitHub appends the PR number. - int prVerLoc = 0; - for (int i = 0; i < title.Length; i++) { - if (title[i].Contains("version")) { - prVerLoc = i; - } - } - - string PRVersion = YamlValue("PackageVersion",replace_clip); - - //Get the PackageIdentifier and alert if it matches the auth list. - string PackageIdentifier = ""; - try { - PackageIdentifier = YamlValue("PackageIdentifier",replace_clip); - } catch { - PackageIdentifier = replace_clip; - } - // string matchColor = validColor; - - - - - string Timestamp = DateTime.Now.ToString("H:mm:ss"); - //Write-Host -nonewline -f $matchColor "| $(Get-Date -format T) | $PR | $(Get-PadRight "PackageIdentifier") | " - DataRow row = table_val.NewRow(); - row[0] = Timestamp; //Timestamp - row[1] = PR; //PR (int) - row[2] = PackageIdentifier; //PackageIdentifier - row[3] = ""; //prVersion - row[4] = ""; //A - Auth - row[5] = 0; //M (int) - Major version difference - row[6] = ""; //R - Review file - row[7] = ""; //G - aGreements - row[8] = ""; //W - Word filter - row[9] = ""; //F - apps and Features changed - row[10] = ""; //I - InstallerUrl contains PackageVersion - row[11] = ""; //D - PR has fewer files than manifest - row[12] = ""; //V - Versions remaining - row[13] = ""; //ManifestVer - row[14] = ""; //OK - table_val.Rows.InsertAt(row,0); - int LastRow = 0;//table_val.Rows.Count -1; - table_val.Rows[LastRow].SetField("PRVersion", PRVersion); - - - string ManifestVersion = FindWinGetVersion(PackageIdentifier); - int PRMajorVersion = Convert.ToInt32(PRVersion.Split('.')[0]); - int ManifestMajorVersion = 0; - if (ManifestVersion != "") { - outBox_msg.AppendText(Environment.NewLine + "ManifestVersion.Split('.') " + ManifestVersion + " PRMajorVersion " + PRMajorVersion); - ManifestMajorVersion = Convert.ToInt32(ManifestVersion.Split('.')[0]); - } - outBox_msg.AppendText(Environment.NewLine + "I'm a PR " + PR + " Watcher, watchin PRs go by."); - - - //Variable effervescence - string prAuth = "+"; - string Auth = "A"; - int VersionIncrease = PRMajorVersion - ManifestMajorVersion;//M - string Review = "R"; - string AgreementAccept = "G"; - string WordFilter = "W"; - string AnF = "F"; - string InstVer = "I"; - string string_ListingDiff = "D"; - int NumVersions = FindWinGetTotalVersions(PackageIdentifier) ; - string PRvMan = "P"; - string Approve = "+"; - - string Body = ""; - -//"PackageIdentifier","gitHubUserName","authStrictness","authUpdateType","autoWaiverLabel","versionParamOverrideUserName","versionParamOverridePR","code200OverrideUserName","code200OverridePR","AgreementOverridePR","AgreementURL","reviewText" - string strictness = ""; - outBox_msg.AppendText(Environment.NewLine + "PR: " + PR ); - try { - strictness = GetFileData(DataFileName,PackageIdentifier,"authStrictness"); - } catch {} - string AuthAccount = ""; - if (strictness != "") { - try { - AuthAccount = GetFileData(DataFileName,PackageIdentifier,"gitHubUserName"); - outBox_msg.AppendText(Environment.NewLine + "PR: " + PR + " AuthAccount: " + AuthAccount); - } catch {} - } - if (ManifestVersion == "") { - PRvMan = "N"; - // matchColor = invalidColor; - Approve = "-!"; - if (noNew) { + - Add warnings + - Enable clipboard watching (manifests/) + - Enable approvals + - Enable Waivers? + - Comment-based moderator controls + - Use sandbox instead of VMs and don't require Admin/UAC + - Open VM folder +17. Status bar (pending) +18. PR counters on certain buttons - Approval-Ready, ToWork, Defender, IEDS +19. Buttons/controls foreach VM in VM display: Complete, open PR, open files on disk, Add dependency (Default VS2015 isf User Input is empty.), + - Faster/better to have in-VM controls or in-app controls, or both? Why? + - Double-click VM row to bring window to front. +20. Process for adding PackageIdentifier or PR# to VM display. +*/ + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//====================-------------------- Init vars --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Imaging; +using System.Diagnostics; +using System.Globalization; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.Management; +using System.Net; +using System.Runtime.InteropServices; +using System.Security.Principal; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Windows.Forms; +using System.Web.Script.Serialization; + +namespace WinGetApprovalNamespace { + public class WinGetApprovalPipeline : Form { + //vars + public int build = 934;//Get-RebuildPipeApp + public string appName = "WinGetApprovalPipeline"; + public string appTitle = "WinGet Approval Pipeline - Build "; + public static string owner = "microsoft"; + public static string repo = "winget-pkgs"; + + public static string remoteIP = Dns.GetHostEntry(Dns.GetHostName()).AddressList.Where(n => n.ToString().Contains("192.")).FirstOrDefault().ToString(); + //PowerShell: $remoteIP = ([ipaddress](($ipconfig[($ipconfig | Select-String "vEthernet").LineNumber..$ipconfig.Length] | Select-String "IPv4 Address") -split ": ")[1]).IPAddressToString + + //From VM perspective - for validation script builder. + public static string RemoteMainFolder = "//"+remoteIP+"/"; + public string SharedFolder = RemoteMainFolder+"/write"; + + //Meanwhile, back on the host... + public static string MainFolder = "C:\\ManVal"; + public string runPath = MainFolder+"\\vm\\"; //VM working folder; + public string vmCounter = MainFolder+"\\vmcounter.txt"; + public string VMversion = MainFolder+"\\VMversion.txt"; + public string LogFile = MainFolder+"\\misc\\ApprovedPRs.txt"; + public string PeriodicRunLog = MainFolder+"\\misc\\PeriodicRunLog.txt"; + + public static string logsFolder = MainFolder+"\\logs"; //VM Logs folder; + public string timecardfile = logsFolder+"\\timecard.txt"; + public string TrackerModeFile = logsFolder+"\\trackermode.txt"; + + public static string writeFolder = MainFolder+"\\write"; //Folder with write permissions; + public string SharedErrorFile = writeFolder+"\\err.txt"; + public string StatusFile = writeFolder+"\\status.csv"; + + public static string ReposFolder = "C:\\repos\\"+repo; + public string DataFileName = ReposFolder+"\\Tools\\ManualValidationPipeline.csv"; + + public static string imagesFolder = MainFolder+"\\Images"; //VM Images folder; + // public string Win10Folder = imagesFolder+"\\Win10-Created053025-Original"; + public string Win11Folder = imagesFolder+"\\Win11-Created010424-Original"; + + public static string GitHubBaseUrl = "https://github.com/"+owner+"/"+repo; + public static string GitHubContentBaseUrl = "https://raw.githubusercontent.com/"+owner+"/"+repo; + public static string GitHubApiBaseUrl = "https://api.github.com/repos/"+owner+"/"+repo; + public string ADOMSBaseUrl = "https://dev.azure.com/shine-oss"; + + //ADOLogs - should be refactored to be in-memory. + public static string DestinationPath = MainFolder+"\\Installers"; + public static string LogPath = DestinationPath+"\\InstallationVerificationLogs\\"; + public static string ZipPath = DestinationPath+"\\InstallationVerificationLogs.zip"; + + public string CheckpointName = "Validation"; + public string VMUserName = "user"; //Set to the internal username you're using in your VMs.; + public string gitHubUserName = "stephengillie"; + //public string SystemRAM = (Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb; + + public int displayLine = 0; + + public static string string_PRRegex = "[0-9]{5,6}"; + public static string string_hashPRRegex = "[#]"+string_PRRegex; + public static string string_hashPRRegexEnd = string_hashPRRegex+"$"; + public static string string_colonPRRegex = string_PRRegex+"[:]"; + + public Regex regex_PRRegex = new Regex(@string_PRRegex); + public Regex regex_hashPRRegex = new Regex(@string_hashPRRegex); + public Regex regex_hashPRRegexEnd = new Regex(@string_hashPRRegexEnd); + public Regex regex_colonPRRegex = new Regex(@string_colonPRRegex); + + public string file_GitHubToken = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Documents\\PowerShell\\ght.txt"; + //public string file_GitHubToken = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Documents\\PowerShell\\ght.txt"; + public string GitHubToken; + public bool TokenLoaded = false; + public int GitHubRateLimitDelay = 333; // ms + public int HyperVRateLimitDelay = 3; // seconds + + //JSON + JavaScriptSerializer serializer = new JavaScriptSerializer(); + + //WMI for local VMs + public ManagementScope scope = new ManagementScope(@"root\virtualization\v2");//, null); + /* Remote VMs + var connectionOptions = new ConnectionOptions( + @"en-US", + @"domain\user", + @"password", + null, + ImpersonationLevel.Impersonate, + AuthenticationLevel.Default, + false, + null, + TimeSpan.FromSeconds(5); + public ManagementScope scope = new ManagementScope(new ManagementPath { Server = "hostnameOrIpAddress", NamespacePath = @"root\virtualization\v2" }, connectionOptions);scope.Connect(); + */ + + //ui + public RichTextBox outBox_msg; + public System.Drawing.Bitmap myBitmap;//Depreciate + public System.Drawing.Graphics pageGraphics;//Depreciate? + public Panel pagePanel; + public ContextMenuStrip contextMenu1;//Menu? + + public TextBox inputBox_PRNumber, inputBox_User, inputBox_VMRAM; + public Label label_VMRAM = new Label(); + public Label label_User = new Label(); + public Label label_PRNumber = new Label(); + public DataGridView dataGridView_vm = new DataGridView(); + public DataGridView dataGridView_val = new DataGridView(); + public DataTable table_vm = new DataTable(); + public DataTable table_val = new DataTable(); + public Button btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9; + public Button btn10, btn11, btn12, btn13, btn14, btn15, btn16, btn17, btn18, btn19; + public Button btn20, btn21, btn22, btn23, btn24, btn25, btn26, btn27, btn28; + public ToolTip toolTip1, toolTip2, toolTip3, toolTip4; + + public StatusStrip statusStrip1; + public ToolStripStatusLabel toolStripStatusLabel1; + + int DarkMode = 1;//(int)Microsoft.Win32.Registry.GetValue("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", "AppsUseLightTheme", -1); + //0 : dark theme + //1 : light theme + //-1 : AppsUseLightTheme could not be found + + public Color color_DefaultBack = Color.FromArgb(240,240,240); + public Color color_DefaultText = Color.FromArgb(0,0,0); + public Color color_InputBack = Color.FromArgb(255,255,255); + public Color color_ActiveBack = Color.FromArgb(200,240,240); + + int table_vm_Row_Index = 0; + + //PRWatch + public string oldclip = ""; + public string PRTitle = ""; + + //Grid + public static int gridItemWidth = 70; + public static int gridItemHeight = 45; + + public int lineHeight = 14; + public int WindowWidth = gridItemWidth*15+20; + public int WindowHeight = gridItemHeight*12+20; + + //Fonts + string AppFont = "Calibri"; + int AppFontSIze = 12; + int urlBoxFontSIze = 12; + string buttonFont = SystemFonts.MessageBoxFont.ToString(); + int buttonFontSIze = 8; + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//====================-------------------- Boilerplate --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + [STAThread] + static void Main() { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new WinGetApprovalPipeline()); + }// end Main + + public WinGetApprovalPipeline() { + if (TokenLoaded == false) { + GitHubToken = GetContent(file_GitHubToken); + if (GitHubToken.Length > 0) { + TokenLoaded = true; + } + } + + System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); + timer.Interval = (1 * 1000); // 10 secs + timer.Tick += new EventHandler(timer_everysecond); + timer.Start(); + + this.Text = appTitle + build; + this.Size = new Size(WindowWidth,WindowHeight); + //this.StartPosition = FormStartPosition.CenterScreen; + + //this.MaximizeBox = false; + //this.FormBorderStyle = FormBorderStyle.FixedSingle; + this.Resize += new System.EventHandler(this.OnResize); + this.AutoScroll = true; + Icon icon = Icon.ExtractAssociatedIcon("ManualValidationPipeline.ico"); + this.Icon = icon; + + if (DarkMode == 0) { + color_DefaultBack = Color.FromArgb(33,33,33); + color_DefaultText = Color.FromArgb(200,200,200); + color_ActiveBack = Color.FromArgb(15,55,105); + color_InputBack = Color.FromArgb(0,0,0); + } + this.BackColor = color_DefaultBack; + this.ForeColor = color_DefaultText; + + drawMenuBar(); + drawUrlBoxAndGoButton(); + RefreshStatus(); + + } // end WinGetApprovalPipeline + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//====================-------------------- UI top-of-box --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void drawButton(ref Button button, int pointX, int pointY, int sizeX, int sizeY,string buttonText, EventHandler buttonOnclick){ + button = new Button(); + button.Text = buttonText; + button.Location = new Point(pointX, pointY); + button.Size = new Size(sizeX, sizeY); + button.BackColor = color_DefaultBack; + button.ForeColor = color_DefaultText; + button.Click += new EventHandler(buttonOnclick); + button.Font = new Font(buttonFont, buttonFontSIze); + Controls.Add(button); + }// end drawButton + + public void drawRichTextBox(ref RichTextBox richTextBox, int pointX,int pointY,int sizeX,int sizeY,string text, string name){ + richTextBox = new RichTextBox(); + richTextBox.Text = text; + richTextBox.Name = name; + richTextBox.Multiline = true; + richTextBox.AcceptsTab = true; + richTextBox.WordWrap = true; + richTextBox.ReadOnly = true; + richTextBox.DetectUrls = true; + richTextBox.BackColor = color_DefaultBack; + richTextBox.ForeColor = color_DefaultText; + richTextBox.Font = new Font(AppFont, AppFontSIze); + richTextBox.Location = new Point(pointX, pointY); + //richTextBox.LinkClicked += new LinkClickedEventHandler(Link_Click); + richTextBox.Width = sizeX; + richTextBox.Height = sizeY; + //richTextBox.Dock = DockStyle.Fill; + richTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None; + + + //richTextBox.BackColor = Color.Red; + //richTextBox.ForeColor = Color.Blue; + //richTextBox.RichTextBoxScrollBars = ScrollBars.Both; + //richTextBox.AcceptsReturn = true; + + Controls.Add(richTextBox); + }// end drawRichTextBox + + public void drawUrlBox(ref TextBox urlBox, int pointX, int pointY, int sizeX, int sizeY,string text){ + urlBox = new TextBox(); + urlBox.Text = text; + urlBox.Name = "urlBox"; + urlBox.Font = new Font(AppFont, urlBoxFontSIze); + urlBox.Location = new Point(pointX, pointY); + urlBox.BackColor = color_InputBack; + urlBox.ForeColor = color_DefaultText; + urlBox.Width = sizeX; + urlBox.Height = sizeY; + Controls.Add(urlBox); + } + + public void drawLabel(ref Label newLabel, int pointX, int pointY, int sizeX, int sizeY,string text){ + newLabel = new Label(); + newLabel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + //newLabel.ImageList = imageList1; + newLabel.ImageIndex = 1; + newLabel.ImageAlign = ContentAlignment.TopLeft; + newLabel.BackColor = color_DefaultBack; + newLabel.ForeColor = color_DefaultText; + newLabel.Name = "newLabel"; + newLabel.Font = new Font(AppFont, AppFontSIze); + newLabel.Location = new Point(pointX, pointY); + newLabel.Width = sizeX; + newLabel.Height = sizeY; + //newLabel.KeyUp += newLabel_KeyUp; + + newLabel.Text = text; + + //newLabel.Size = new Size (label1.PreferredWidth, label1.PreferredHeight); + Controls.Add(newLabel); + } + + public void drawDataGrid(ref DataGridView dataGridView, int startX, int startY, int sizeX, int sizeY){ + dataGridView = new DataGridView(); + dataGridView.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Raised; + dataGridView.CellBorderStyle = DataGridViewCellBorderStyle.Single; + dataGridView.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + + dataGridView.ForeColor = color_DefaultText;//Selected cell text color + dataGridView.BackColor = color_DefaultBack;//Selected cell BG color + dataGridView.DefaultCellStyle.SelectionForeColor = color_DefaultText;//Unselected cell text color + dataGridView.DefaultCellStyle.SelectionBackColor = color_DefaultBack;//Unselected cell BG color + dataGridView.BackgroundColor = color_DefaultBack;//Space underneath/between cells + dataGridView.GridColor = SystemColors.ActiveBorder;//Gridline color + + dataGridView.Name = "dataGridView"; + dataGridView.Font = new Font(AppFont, AppFontSIze); + dataGridView.Location = new Point(startX, startY); + dataGridView.Size = new Size(sizeX, sizeY); + // dataGridView.KeyUp += dataGridView_KeyUp; + // dataGridView.Text = text; + Controls.Add(dataGridView); + + + + dataGridView.EditMode = DataGridViewEditMode.EditProgrammatically; + dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders; + dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridView.AllowUserToDeleteRows = false; + dataGridView.RowHeadersVisible = false; + dataGridView.MultiSelect = false; + //dataGridView.Dock = DockStyle.Fill; + +/* + dataGridView.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView_CellFormatting); + dataGridView.CellParsing += new DataGridViewCellParsingEventHandler(dataGridView_CellParsing); + addNewRowButton.Click += new EventHandler(addNewRowButton_Click); + deleteRowButton.Click += new EventHandler(deleteRowButton_Click); + ledgerStyleButton.Click += new EventHandler(ledgerStyleButton_Click); + dataGridView.CellValidating += new DataGridViewCellValidatingEventHandler(dataGridView_CellValidating); +*/ + }// end drawDataGrid + + public void drawToolTip(ref ToolTip toolTip, ref Button button, string DisplayText, int AutoPopDelay = 5000, int InitialDelay = 1000, int ReshowDelay = 500){ + toolTip = new ToolTip(); + + // Set up the delays for the ToolTip. + toolTip.AutoPopDelay = AutoPopDelay; + toolTip.InitialDelay = InitialDelay; + toolTip.ReshowDelay = ReshowDelay; + // Force the ToolTip text to be displayed whether or not the form is active. + toolTip.ShowAlways = true; + + // Set up the ToolTip text for the Button and Checkbox. + toolTip.SetToolTip(button, DisplayText); + //toolTip.SetToolTip(this.checkBox1, "My checkBox1"); + } + + public void drawStatusStrip (StatusStrip statusStrip,ToolStripStatusLabel toolStripStatusLabel) { + statusStrip = new System.Windows.Forms.StatusStrip(); + statusStrip.Dock = System.Windows.Forms.DockStyle.Bottom; + statusStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible; + + toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); + toolStripStatusLabel.Name = "toolStripStatusLabel"; + toolStripStatusLabel.Size = new System.Drawing.Size(109, 17); + toolStripStatusLabel.Text = "toolStripStatusLabel"; + statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripStatusLabel }); + + statusStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow; + statusStrip.Location = new System.Drawing.Point(0, 0); + statusStrip.Name = "statusStrip"; + statusStrip.ShowItemToolTips = true; + statusStrip.Size = new System.Drawing.Size(292, 22); + statusStrip.SizingGrip = false; + statusStrip.Stretch = false; + statusStrip.TabIndex = 0; + statusStrip.Text = "statusStrip"; + + Controls.Add(statusStrip); + } + + public void drawMenuBar (){ + this.Menu = new MainMenu(); + MenuItem item = new MenuItem("File"); + this.Menu.MenuItems.Add(item); + item.MenuItems.Add("(disabled) Specify key file location...", new EventHandler(Save_File_Action)); + item.MenuItems.Add("(disabled) Generate daily report", new EventHandler(About_Click_Action)); + + item = new MenuItem("Selected VM"); + this.Menu.MenuItems.Add(item); + item.MenuItems.Add("Complete VM", new EventHandler(Complete_VM_Image_Action)); + item.MenuItems.Add("Relaunch window", new EventHandler(Launch_Window_Image_Action)); + item.MenuItems.Add("Open VM folder", new EventHandler(Open_Folder_Image_Action)); + MenuItem submenu = new MenuItem("WIn10 Image VM"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("Generate VM from image", new EventHandler(Generate_Win10_VM_Image_Action)); + submenu.MenuItems.Add("Start", new EventHandler(Start_Win10_Image_Action)); + submenu.MenuItems.Add("Relaunch window", new EventHandler(Launch_Win10_Window_Image_Action)); + submenu.MenuItems.Add("Stop", new EventHandler(Stop_Win10_Image_Action)); + submenu.MenuItems.Add("Turn off", new EventHandler(TurnOff_Win10_Image_Action)); + submenu.MenuItems.Add("Attach new image VM", new EventHandler(Attach_Win10_Image_Action)); + submenu = new MenuItem("Win11 Image VM"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("Generate VM from image", new EventHandler(Generate_Win11_VM_Image_Action)); + submenu.MenuItems.Add("Start", new EventHandler(Start_Win11_Image_Action)); + submenu.MenuItems.Add("Relaunch window", new EventHandler(Launch_Win11_Window_Image_Action)); + submenu.MenuItems.Add("Stop", new EventHandler(Stop_Win11_Image_Action)); + submenu.MenuItems.Add("Turn Off", new EventHandler(TurnOff_Win11_Image_Action)); + submenu.MenuItems.Add("Attach new image VM", new EventHandler(Attach_Win11_Image_Action)); + item.MenuItems.Add("Disgenerate VM", new EventHandler(Disgenerate_VM_Image_Action)); + + item = new MenuItem("Validate Manifest"); + this.Menu.MenuItems.Add(item); + item.MenuItems.Add("Regular Validation", new EventHandler(Validate_Manifest_Action)); + item.MenuItems.Add("DSC Configure", new EventHandler(Validate_By_Configure_Action)); + item.MenuItems.Add("By PackageIdentifier (User Input)", new EventHandler(Validate_By_ID_Action)); + item.MenuItems.Add("By Arch", new EventHandler(Validate_By_Arch_Action)); + item.MenuItems.Add("By Scope", new EventHandler(Validate_By_Scope_Action)); + item.MenuItems.Add("Both Arch and Scope", new EventHandler(Validate_By_Arch_And_Scope_Action)); + submenu = new MenuItem("Generate manifest for selected VM"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("Manifest from clipboard", new EventHandler(Manifest_From_Clipboard)); + submenu.MenuItems.Add("Installer.yaml and the rest from GH", new EventHandler(Single_File_Automation_Action)); + submenu = new MenuItem("Update manifest"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("Add dependency (VS2015+)", new EventHandler(Add_Dependency_Disk_Action)); + submenu.MenuItems.Add("Add installer switch (/S)", new EventHandler(Add_Installer_Switch_Action)); + + item = new MenuItem("Current PR"); + this.Menu.MenuItems.Add(item); + submenu = new MenuItem("Approve PR"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("Approve PR", new EventHandler(Approved_Action)); + submenu = new MenuItem("Update PR"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("@wingetbot run", new EventHandler(Retry_Action)); + submenu.MenuItems.Add("Label Action", new EventHandler(Label_Action_Action)); + submenu.MenuItems.Add("Check installer", new EventHandler(Check_Installer_Action)); + submenu = new MenuItem("Update manifest"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("Add dependency (VS2015+)", new EventHandler(Add_Dependency_Repo_Action)); + submenu.MenuItems.Add("Update hash 'Specified hash doesn't match.'", new EventHandler(Update_Hash_Action)); + submenu.MenuItems.Add("Update hash 2 'SHA256 in manifest...'", new EventHandler(Update_Hash2_Action)); + submenu.MenuItems.Add("Update architecture (x64)", new EventHandler(Update_Arch_Action)); + submenu = new MenuItem("Complete PR"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("Installs Normally in VM", new EventHandler(Manually_Validated_Action)); + submenu = new MenuItem("Wingetbot Close"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("Close: Merge Conflicts;", new EventHandler(Merge_Conflicts_Action)); + submenu.MenuItems.Add("Close: Version Already Exists;", new EventHandler(Version_Already_Exiss_Action)); + submenu.MenuItems.Add("Close: Regen with new hash;", new EventHandler(Regen_Hash_Action)); + submenu = new MenuItem("Regular Close"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("Close: (User Input);", new EventHandler(Closed_Action)); + submenu.MenuItems.Add("Close: Stale;", new EventHandler(Stale_Action)); + submenu.MenuItems.Add("Close: Package still available;", new EventHandler(Package_Available_Action)); + submenu.MenuItems.Add("Close: Duplicate of (User Input);", new EventHandler(Duplicate_Action)); + // item.MenuItems.Add("Add Waiver", new EventHandler(Add_Waiver_Action)); + // item.MenuItems.Add("(disabled) Needs Author Feedback (reason)", new EventHandler(Needs_Author_Feedback_Action)); + // submenu = new MenuItem("Canned Replies"); + // item.MenuItems.Add(submenu); + // submenu.MenuItems.Add("Automation block", new EventHandler(Automation_Block_Action)); + // submenu.MenuItems.Add("Driver install", new EventHandler(Driver_Install_Action)); + // submenu.MenuItems.Add("Installer missing", new EventHandler(Installer_Missing_Action)); + // submenu.MenuItems.Add("Installer not silent", new EventHandler(Installer_Not_Silent_Action)); + // submenu.MenuItems.Add("Needs PackageUrl", new EventHandler(Needs_PackageUrl_Action)); + // submenu.MenuItems.Add("One manifest per PR", new EventHandler(One_Manifest_Per_PR_Action)); + // item.MenuItems.Add("Record as Project File", new EventHandler(Project_File_Action)); + // item.MenuItems.Add("Record as squash-merge", new EventHandler(Squash_Action)); + + item = new MenuItem("Open In Browser"); + this.Menu.MenuItems.Add(item); + item.MenuItems.Add("Current PR", new EventHandler(Open_Current_PR_Action)); + item.MenuItems.Add("PR for selected VM", new EventHandler(Open_PR_Selected_VM_Action)); + submenu = new MenuItem("Open many tabs:"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("All PRs on clipboard", new EventHandler(Open_AllUrls_Action)); + submenu.MenuItems.Add("Full Approval Run", new EventHandler(Approval_Run_Search_Action)); + submenu.MenuItems.Add("Full ToWork Run", new EventHandler(ToWork_Run_Search_Action)); + submenu.MenuItems.Add("All Start Of Day", new EventHandler(Start_Of_Day_Action)); + submenu.MenuItems.Add("All Resources", new EventHandler(All_Resources_Action)); + submenu = new MenuItem("Start Of Day:"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("WinGet-pkgs repo", new EventHandler(Open_PKGS_Repo_Action)); + submenu.MenuItems.Add("WinGet-cli repo", new EventHandler(Open_CLI_Repo_Action)); submenu = new MenuItem("Resources:"); + item.MenuItems.Add(submenu); + submenu.MenuItems.Add("Gitter chat", new EventHandler(Open_Gitter_Action)); + submenu.MenuItems.Add("Pipeline status", new EventHandler(Open_Pipeline_Action)); + submenu.MenuItems.Add("Dashboard", new EventHandler(Open_Dashboard_Action)); + submenu.MenuItems.Add("Notifications mentions", new EventHandler(Open_Notifications_Action)); + submenu.MenuItems.Add("Approval search", new EventHandler(Approval_Search_Action)); + submenu.MenuItems.Add("Defender search", new EventHandler(Defender_Search_Action)); + submenu.MenuItems.Add("ToWork search", new EventHandler(ToWork_Search_Action)); + item.MenuItems.Add("Search GitHub for PRs (User Input)", new EventHandler(Pkgs_Search_Action)); + item.MenuItems.Add("Approved PR selected below", new EventHandler(Open_SelectedApproved_Action)); + + item = new MenuItem("Help"); + this.Menu.MenuItems.Add(item); + item.MenuItems.Add("About...", new EventHandler(About_Click_Action)); + item.MenuItems.Add("VCRedist to dependency...", new EventHandler(VCDependency_Click_Action)); + + this.BackColor = color_DefaultBack; + this.ForeColor = color_DefaultText; + }// end drawMenuBar + + public void drawUrlBoxAndGoButton(){ + int inc = 0; + int row0 = gridItemHeight*inc;inc++; + int row1 = gridItemHeight*inc;inc++; + int row2 = gridItemHeight*inc;inc++; + int row3 = gridItemHeight*inc;inc++; + int row4 = gridItemHeight*inc;inc++; + int row5 = gridItemHeight*inc;inc++; + int row6 = gridItemHeight*inc;inc++; + int row7 = gridItemHeight*inc;inc++; + int row8 = gridItemHeight*inc;inc++; + int row9 = gridItemHeight*inc;inc++; + int row10 = gridItemHeight*inc;inc++; + + inc = 0; + int col0 = gridItemWidth*inc;inc++; + int col1 = gridItemWidth*inc;inc++; + int col2 = gridItemWidth*inc;inc++; + int col3 = gridItemWidth*inc;inc++; + int col4 = gridItemWidth*inc;inc++; + int col5 = gridItemWidth*inc;inc++; + int col6 = gridItemWidth*inc;inc++; + int col7 = gridItemWidth*inc;inc++; + int col8 = gridItemWidth*inc;inc++; + int col9 = gridItemWidth*inc;inc++; + int col10 = gridItemWidth*inc;inc++; + + //drawStatusStrip(statusStrip1, toolStripStatusLabel1); + + table_vm.Columns.Add("vm", typeof(string)); + table_vm.Columns.Add("status", typeof(string)); + table_vm.Columns.Add("version", typeof(int)); + table_vm.Columns.Add("OS", typeof(string)); + table_vm.Columns.Add("Package", typeof(string)); + table_vm.Columns.Add("PR", typeof(int)); + table_vm.Columns.Add("Mode", typeof(string)); + table_vm.Columns.Add("RAM", typeof(double)); + + table_val.Columns.Add("Timestamp", typeof(string)); + table_val.Columns.Add("PR", typeof(int)); + table_val.Columns.Add("PackageIdentifier", typeof(string)); + table_val.Columns.Add("prVersion", typeof(string)); + table_val.Columns.Add("A", typeof(string)); + table_val.Columns.Add("M", typeof(int)); + table_val.Columns.Add("R", typeof(string)); + table_val.Columns.Add("G", typeof(string)); + table_val.Columns.Add("W", typeof(string)); + table_val.Columns.Add("F", typeof(string)); + table_val.Columns.Add("I", typeof(string)); + table_val.Columns.Add("D", typeof(string)); + table_val.Columns.Add("V", typeof(string)); + table_val.Columns.Add("ManifestVer", typeof(string)); + table_val.Columns.Add("OK", typeof(string)); + + foreach (DataGridViewColumn column in dataGridView_vm.Columns){ + column.SortMode = DataGridViewColumnSortMode.NotSortable; + } + + drawDataGrid(ref dataGridView_vm, col0, row0, gridItemWidth*7, gridItemHeight*5); + drawLabel(ref label_PRNumber, col6, row0, gridItemWidth, gridItemHeight,"Current PR:"); + drawUrlBox(ref inputBox_PRNumber, col7, row0, gridItemWidth*2,gridItemHeight,"#000000"); + + drawLabel(ref label_User, col6, row1, gridItemWidth, gridItemHeight,"User Input:"); + drawUrlBox(ref inputBox_User,col7, row1, gridItemWidth*2,gridItemHeight,"");//UserInput field + + drawLabel(ref label_VMRAM, col6, row2, gridItemWidth, gridItemHeight,"VM RAM:"); + drawUrlBox(ref inputBox_VMRAM,col7, row2, gridItemWidth*2,gridItemHeight,"");//VM RAM display + + drawDataGrid(ref dataGridView_val, col0, row5, gridItemWidth*8, gridItemHeight*5); + //dataGridView_val.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + + drawRichTextBox(ref outBox_msg, col0, row10, this.ClientRectangle.Width,gridItemHeight, "", "outBox_msg"); + + drawButton(ref btn10, col6, row3, gridItemWidth, gridItemHeight, "Bulk Approving", Approving_Action); + drawToolTip(ref toolTip1, ref btn10, "Automatically approve PRs. (Caution - easy to accidentally approve, use with care.)"); + drawButton(ref btn18, col7, row3, gridItemWidth, gridItemHeight, "Individual Validations", Validating_Action); + drawToolTip(ref toolTip2, ref btn18, "Automatically start manifest in VM."); + drawButton(ref btn11, col6, row4, gridItemWidth, gridItemHeight, "Validate Rand IEDS", IEDS_Action); + drawToolTip(ref toolTip3, ref btn11, "Automatically start manifest for random IEDS in VM."); + drawButton(ref btn19, col7, row4, gridItemWidth, gridItemHeight, "Idle Mode", Idle_Action); + drawToolTip(ref toolTip4, ref btn19, "It does nothing."); + drawButton(ref btn20, col8, row3, gridItemWidth, gridItemHeight, "NoNew", NoNew_Action); + drawToolTip(ref toolTip4, ref btn20, "Only validates pre-existing packages."); + drawButton(ref btn21, col8, row4, gridItemWidth, gridItemHeight, "OnlyNew", OnlyNew_Action); + drawToolTip(ref toolTip4, ref btn21, "Only validates new packages."); + + }// end drawGoButton + + public void OnResize(object sender, System.EventArgs e) { + //Width - VM and Validation windows adjust with window. + dataGridView_vm.Width = ClientRectangle.Width - gridItemWidth*3;// - gridItemWidth*2; + dataGridView_val.Width = ClientRectangle.Width;// - gridItemWidth*2; + outBox_msg.Width = ClientRectangle.Width; + + inputBox_PRNumber.Left = ClientRectangle.Width - gridItemWidth*2;//col8 + inputBox_User.Left = ClientRectangle.Width - gridItemWidth*2;//col8 + inputBox_VMRAM.Left = ClientRectangle.Width - gridItemWidth*2;//col8 + + label_PRNumber.Left = ClientRectangle.Width - gridItemWidth*3;//col7 + label_User.Left = ClientRectangle.Width - gridItemWidth*3;//col7 + label_VMRAM.Left = ClientRectangle.Width - gridItemWidth*3;//col7 + + //Height -Validation and mode buttons adjusts with window. + btn10.Left = ClientRectangle.Width - gridItemWidth*3;//col7 + btn11.Left = ClientRectangle.Width - gridItemWidth*3;//col7 + btn18.Left = ClientRectangle.Width - gridItemWidth*2;//col8 + btn19.Left = ClientRectangle.Width - gridItemWidth*2;//col8 + btn20.Left = ClientRectangle.Width - gridItemWidth*1;//col9 + btn21.Left = ClientRectangle.Width - gridItemWidth*1;//col9 + } + //Refresh display and buttons + private void timer_everysecond(object sender, EventArgs e) { + UpdateTableVM(); + RefreshStatus(); + dataGridView_vm.AutoResizeColumns(); + dataGridView_vm.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; + dataGridView_val.AutoResizeColumns(); + dataGridView_val.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; + + //Hourly Run functionality + bool HourLatch = false; + if (Int32.Parse(DateTime.Now.ToString("mm")) == 20 + && Int32.Parse(DateTime.Now.ToString("mm")) > 00 + && Int32.Parse(DateTime.Now.ToString("mm")) < 02) { + HourLatch = true; + } + if (HourLatch) { + HourLatch = false; + HourlyRun(); + // if (Int32.Parse(DateTime.Now.ToString("mm")) == 20) { + // string seconds = DateTime.Now.ToString("ss"); + // Thread.Sleep((60-Int32.Parse(seconds))*1000);//If it's still :20 after, sleep out the minute. + // } + } + //Update PR display + string clip = Clipboard.GetText(); + Regex regex = new Regex("^[0-9]{6}$"); + string[] clipSplit = clip.Replace("\r\n","\n").Replace("\n"," ").Replace("/"," ").Replace("#"," ").Replace(";"," ").Split(' '); + string c = clipSplit.Where(n => regex.IsMatch(n)).FirstOrDefault(); + if (null != c) { + if (regex.IsMatch(c)) { + inputBox_PRNumber.Text = "#"+c; + } + } + + string Mode = GetMode(); + //Automatic clipboard actions + regex = new Regex(@"^manifests/"); + if (clip.Contains("Skip to content")) { + if (Mode == "Validating") { + //ValidateManifest; + // Mode | clip + } else if (Mode == "Approving") { + PRWatch(false, "Default", "C:\\ManVal\\misc\\ApprovedPRs.txt", "C:\\repos\\winget-pkgs\\Tools\\Review.csv"); + } + } else if (regex.IsMatch(clip)) { + Clipboard.SetText("open manifest"); + string ManifestUrl = GitHubBaseUrl+"/tree/master/"+clip; + System.Diagnostics.Process.Start(ManifestUrl); + } + + //Random IEDS mode + // if ($Mode == "IEDS") { + // if ((Get-ArraySum (GetStatus()).RAM) < ($SystemRAM*.42)) { + // RandomIEDS(); + // } + // } + + //Automatic RAM adjustment + // (Get-VM) | foreach-Object { + // if(($_.MemoryDemand / $_.MemoryMaximum) -ge 0.9){ + // set-vm -VMName $_.name -MemoryMaximumBytes "$(($_.MemoryMaximum / 1073741824)+2)GB" + // } + // } + + + //CycleVMs(); + //WindowArrange(); + //RotateVMs(); + + } + + public void HourlyRun() { + Console.Beep(500,250);Console.Beep(500,250);Console.Beep(500,250); //Beep 3x to alert the PC user. + foreach (string Preset in HourlyRun_PresetList) { + dynamic Results = SearchGitHub(Preset,1); + if (Results != null) { + //foreach (int Result in Results) { + // LabelAction(Result); + //} + } + } + } + + public void RefreshStatus() { + string Mode = ""; + if (TestPath(TrackerModeFile) == "File") { + Mode = GetMode(); + } + if (Mode == "Approving") { + btn10.BackColor = color_ActiveBack;//Bulk Approving + btn18.BackColor = color_DefaultBack;//Individual Validations + btn11.BackColor = color_DefaultBack;//IEDS + btn19.BackColor = color_DefaultBack;//Idle + btn20.BackColor = color_DefaultBack;//Idle + btn21.BackColor = color_DefaultBack;//Idle + } else if (Mode == "Validating") { + btn10.BackColor = color_DefaultBack;//Bulk Approving + btn18.BackColor = color_ActiveBack;//Individual Validations + btn11.BackColor = color_DefaultBack;//IEDS + btn19.BackColor = color_DefaultBack;//Idle + btn20.BackColor = color_DefaultBack;//Idle + btn21.BackColor = color_DefaultBack;//Idle + } else if (Mode == "IEDS") { + btn10.BackColor = color_DefaultBack;//Bulk Approving + btn18.BackColor = color_DefaultBack;//Individual Validations + btn11.BackColor = color_ActiveBack;//IEDS + btn19.BackColor = color_DefaultBack;//Idle + btn20.BackColor = color_DefaultBack;//Idle + btn21.BackColor = color_DefaultBack;//Idle + } else if (Mode == "Idle") { + btn10.BackColor = color_DefaultBack;//Bulk Approving + btn18.BackColor = color_DefaultBack;//Individual Validations + btn11.BackColor = color_DefaultBack;//IEDS + btn19.BackColor = color_ActiveBack;//Idle + btn20.BackColor = color_DefaultBack;//Idle + btn21.BackColor = color_DefaultBack;//Idle + } else if (Mode == "Config") { + btn10.BackColor = color_DefaultBack;//Bulk Approving + btn18.BackColor = color_DefaultBack;//Individual Validations + btn11.BackColor = color_DefaultBack;//IEDS + btn19.BackColor = color_DefaultBack;//Idle + btn20.BackColor = color_DefaultBack;//Idle + btn21.BackColor = color_DefaultBack;//Idle + } else if (Mode == "NoNew") { + btn10.BackColor = color_DefaultBack;//Bulk Approving + btn18.BackColor = color_DefaultBack;//Individual Validations + btn11.BackColor = color_DefaultBack;//IEDS + btn19.BackColor = color_DefaultBack;//Idle + btn20.BackColor = color_ActiveBack;//Idle + btn21.BackColor = color_DefaultBack;//Idle + } else if (Mode == "OnlyNew") { + btn10.BackColor = color_DefaultBack;//Bulk Approving + btn18.BackColor = color_DefaultBack;//Individual Validations + btn11.BackColor = color_DefaultBack;//IEDS + btn19.BackColor = color_DefaultBack;//Idle + btn20.BackColor = color_DefaultBack;//Idle + btn21.BackColor = color_ActiveBack;//Idle + } + + if (TestPath(StatusFile) == "File") { + double VMRAM = 0; + try { + Dictionary[] GetStatus = FromCsv(GetContent(StatusFile, false)); + //Update RAM column and write + for (int VM = 0; VM < GetStatus.Length -1; VM++) { + //$_.RAM = Math.Round((Get-VM -Name ("vm"+$_.vm)).MemoryAssigned/1024/1024/1024,2)} + try { + VMRAM += Convert.ToDouble(GetStatus[VM]["RAM"]); + } catch (Exception e) { + inputBox_VMRAM.Text = "VM"+VM+": "+e.ToString(); + }//end try + }//end for VM + } catch {} + inputBox_VMRAM.Text = VMRAM.ToString(); + }//end if TestPath + }//end function + + public void UpdateTableVM() { + try { + if (TestPath(StatusFile) == "File") { + if (dataGridView_vm.SelectedCells.Count > 0) {//Record the selected row. + table_vm_Row_Index = dataGridView_vm.SelectedCells[0].RowIndex; + } else { + table_vm_Row_Index = 0; + } + table_vm.Clear();//Clear the table + dynamic Status = FromCsv(GetContent(StatusFile, true)); + if (Status != null) { + for (int r = 1; r < Status.Length -1; r++){ + var rowData = Status[r];//Reload the table + table_vm.Rows.Add(rowData["vm"], rowData["status"], rowData["version"], rowData["OS"], rowData["Package"], rowData["PR"], rowData["Mode"], rowData["RAM"]); + }//end for r + }//end if Status + dataGridView_vm.DataSource=table_vm; + dataGridView_vm.Rows[table_vm_Row_Index].Selected = true;//Reselect the row. + + dataGridView_vm.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//vm + dataGridView_vm.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//status + dataGridView_vm.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//version + dataGridView_vm.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//OS + dataGridView_vm.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;//Package + dataGridView_vm.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//PR + dataGridView_vm.Columns[6].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//RAM + + dataGridView_val.DataSource=table_val; + dataGridView_val.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;//Timestamp + dataGridView_val.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//PR + dataGridView_val.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;//PackageIdentifier + dataGridView_val.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;//prVersion + dataGridView_val.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//A + dataGridView_val.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//R + dataGridView_val.Columns[6].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//G + dataGridView_val.Columns[7].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//W + dataGridView_val.Columns[8].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//F + dataGridView_val.Columns[9].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//I + dataGridView_val.Columns[10].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//D + dataGridView_val.Columns[11].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;//V + dataGridView_val.Columns[12].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;//ManifestVer + dataGridView_val.Columns[13].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;//OK + + }//end if TestPath + } catch (Exception e){ + outBox_msg.AppendText(Environment.NewLine + "e: " + e ); + }//end try + }//end function + + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//====================-------------------- Tabs --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void PRWatch(bool noNew, string Chromatic = "Default", string LogFile = ".\\PR.txt", string ReviewFile = ".\\Review.csv"){ + //$Host.UI.RawUI.WindowTitle = "PR Watcher"//I'm a PR Watcher, watchin PRs go by. + string clip = Clipboard.GetText(); + string[] split_clip = clip.Replace("\r\n","\n").Split('\n'); + string replace_clip = clip.Replace("'","").Replace("\"",""); + PRTitle = split_clip.Where(n => regex_hashPRRegexEnd.IsMatch(n)).FirstOrDefault(); + int PR = GetCurrentPR(); + + if (PRTitle != "") { + if (PRTitle != oldclip) { + //(GetStatus() .Where(n => n["status"] == "ValidationCompleted"} | format-Table);//Drops completed VMs in the middle of the PR approval display. + //Chromatic was here. + + string[] title = PRTitle.Split(':'); + if (title.Length > 1) { + title = title[1].Split(' '); + } else { + title = title[0].Split(' '); + } + string Submitter = ""; + try { + Submitter = split_clip.Where(n => n.Contains("wants to merge")).FirstOrDefault().Split(' ')[0]; + } catch {} + string InstallerType = YamlValue("InstallerType",clip); + + //Split the title by spaces. Try extracting the version location as the next item after the word "version", and if that fails, use the 2nd to the last item, then 3rd to last, and 4th to last. for some reason almost everyone puts the version number as the last item, and GitHub appends the PR number. + int prVerLoc = 0; + for (int i = 0; i < title.Length; i++) { + if (title[i].Contains("version")) { + prVerLoc = i; + } + } + + string PRVersion = YamlValue("PackageVersion",replace_clip); + + //Get the PackageIdentifier and alert if it matches the auth list. + string PackageIdentifier = ""; + try { + PackageIdentifier = YamlValue("PackageIdentifier",replace_clip); + } catch { + PackageIdentifier = replace_clip; + } + // string matchColor = validColor; + + + + + string Timestamp = DateTime.Now.ToString("H:mm:ss"); + //Write-Host -nonewline -f $matchColor "| $(Get-Date -format T) | $PR | $(Get-PadRight "PackageIdentifier") | " + DataRow row = table_val.NewRow(); + row[0] = Timestamp; //Timestamp + row[1] = PR; //PR (int) + row[2] = PackageIdentifier; //PackageIdentifier + row[3] = ""; //prVersion + row[4] = ""; //A - Auth + row[5] = 0; //M (int) - Major version difference + row[6] = ""; //R - Review file + row[7] = ""; //G - aGreements + row[8] = ""; //W - Word filter + row[9] = ""; //F - apps and Features changed + row[10] = ""; //I - InstallerUrl contains PackageVersion + row[11] = ""; //D - PR has fewer files than manifest + row[12] = ""; //V - Versions remaining + row[13] = ""; //ManifestVer + row[14] = ""; //OK + table_val.Rows.InsertAt(row,0); + int LastRow = 0;//table_val.Rows.Count -1; + table_val.Rows[LastRow].SetField("PRVersion", PRVersion); + + + string ManifestVersion = FindWinGetVersion(PackageIdentifier); + int PRMajorVersion = Convert.ToInt32(PRVersion.Split('.')[0]); + int ManifestMajorVersion = 0; + if (ManifestVersion != "") { + outBox_msg.AppendText(Environment.NewLine + "ManifestVersion.Split('.') " + ManifestVersion + " PRMajorVersion " + PRMajorVersion); + ManifestMajorVersion = Convert.ToInt32(ManifestVersion.Split('.')[0]); + } + outBox_msg.AppendText(Environment.NewLine + "I'm a PR " + PR + " Watcher, watchin PRs go by."); + + + //Variable effervescence + string prAuth = "+"; + string Auth = "A"; + int VersionIncrease = PRMajorVersion - ManifestMajorVersion;//M + string Review = "R"; + string AgreementAccept = "G"; + string WordFilter = "W"; + string AnF = "F"; + string InstVer = "I"; + string string_ListingDiff = "D"; + int NumVersions = FindWinGetTotalVersions(PackageIdentifier) ; + string PRvMan = "P"; + string Approve = "+"; + + string Body = ""; + +//"PackageIdentifier","gitHubUserName","authStrictness","authUpdateType","autoWaiverLabel","versionParamOverrideUserName","versionParamOverridePR","code200OverrideUserName","code200OverridePR","AgreementOverridePR","AgreementURL","reviewText" + string strictness = ""; + outBox_msg.AppendText(Environment.NewLine + "PR: " + PR ); + try { + strictness = GetFileData(DataFileName,PackageIdentifier,"authStrictness"); + } catch {} + string AuthAccount = ""; + if (strictness != "") { + try { + AuthAccount = GetFileData(DataFileName,PackageIdentifier,"gitHubUserName"); + outBox_msg.AppendText(Environment.NewLine + "PR: " + PR + " AuthAccount: " + AuthAccount); + } catch {} + } + if (ManifestVersion == "") { + PRvMan = "N"; + // matchColor = invalidColor; + Approve = "-!"; + if (noNew) { } else { - + if (regex_hashPRRegex.IsMatch(title[title.Length -1])) { // if ((Get-Command ValidateManifest).name) { ValidateManifest(); @@ -1050,739 +1077,739 @@ public void PRWatch(bool noNew, string Chromatic = "Default", string LogFile = " // } //end if Get-Command; } //end if title; } //end if noNew; - } else if (null != ManifestVersion) { - - - - + } else if (null != ManifestVersion) { + + + + if ((Math.Abs(VersionIncrease) > 3) && - (!PRTitle.Contains("Automatic deletion")) && - (!PRTitle.Contains("Delete")) && - (!PRTitle.Contains("Remove")) && + (!PRTitle.Contains("Automatic deletion")) && + (!PRTitle.Contains("Delete")) && + (!PRTitle.Contains("Remove")) && (!InstallerType.Contains("portable")) && (AuthAccount != Submitter)) { - + string greaterOrLessThan = ""; - //if VersionIncrease equal = current major version + //if VersionIncrease equal = current major version if (VersionIncrease < 0) { - //if VersionIncrease negative = old major version + //if VersionIncrease negative = old major version greaterOrLessThan = "greater"; } else if (VersionIncrease > 0) { - //if VersionIncrease positive = new major version + //if VersionIncrease positive = new major version greaterOrLessThan = "less"; } Body = "Hi @"+Submitter+",\\n\\n> This PR's version number "+PRVersion+" has major version"+PRMajorVersion+" while the current manifest has major version "+ManifestVersion+". This is a difference of " + Math.Abs(VersionIncrease) + "major versions. Is this intentional?"; Approve = "-!"; Body = Body + "\\n\\n(Automated response - build "+build+")\\n"; -/* +/* InvokeGitHubPRRequest(PR,"Post","comments",Body,"Silent"); - AddPRToRecord(PR,"Feedback",PRTitle); - outBox_msg.AppendText(Environment.NewLine + "PR: " + PR + " comments"); - */ - } - } - table_val.Rows[LastRow].SetField("M", VersionIncrease); - - - - if (strictness != "") { - string matchVar = ""; - - foreach (string Account in AuthAccount.Split('/')) { - if (Account == Submitter) { - matchVar = "matches"; - Auth = "+"; - } else { - matchVar = "does not match"; - Auth = "-"; - } - } - outBox_msg.AppendText(Environment.NewLine + "PR: " + PR + " matchVar: "+ matchVar); - - if (strictness == "must") { - Auth += "!"; - } - } - if (Auth == "-!") { - // GetPRApproval(clip,PR,PackageIdentifier); - outBox_msg.AppendText(Environment.NewLine + "PR: " + PR + " GetPRApproval"); - } - table_val.Rows[LastRow].SetField("A", Auth); - - - - - - //Review file only alerts, doesn't block. - string ReviewData = ""; - try { - ReviewData = GetFileData(ReviewFile,PackageIdentifier,"Reason"); - if (ReviewData != "") { - oldclip = PRTitle; - if (MessageBox.Show(PackageIdentifier + ": " + ReviewData + " - Should this still be approved?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { - Approve = "+"; - Review= "+"; - } else { - Review= "-"; - Approve = "-"; - // MessageBox.Show("Nothing happens."); - } - } - } catch {} - table_val.Rows[LastRow].SetField("R", Review); - - - //In list, matches PR - explicit pass - //In list, PR has no Installer.yaml - implicit pass - //In list, missing from PR - block - //In list, mismatch from PR - block - //Not in list or PR - pass - //Not in list, in PR - alert and pass? - //Check previous version for omission - depend on wingetbot for now. - string AgreementUrlFromList = ""; - try { - AgreementUrlFromList = GetFileData(DataFileName,PackageIdentifier,"AgreementUrl"); - outBox_msg.AppendText(Environment.NewLine + "PR: " + PR + " AgreementUrlFromList: " + AgreementUrlFromList); - } catch {} - if (AgreementUrlFromList != "") { - string AgreementUrlFromClip = YamlValue("AgreementUrl",replace_clip); - if (AgreementUrlFromClip == AgreementUrlFromList) { - //Explicit Approve - URL is present and matches. - AgreementAccept = "+!"; - } else { - //Explicit mismatch - URL is present and does not match, or URL is missing. - AgreementAccept = "-!"; - // ReplyToPR(PR,"AgreementMismatch",AgreementUrlFromList); - } - } else { - AgreementAccept = "+"; - //Implicit Approve - your AgreementsUrl is in another file. Can't modify what isn't there. - } - table_val.Rows[LastRow].SetField("G", AgreementAccept); - - - - - - - - - if ((!PRTitle.Contains("Automatic deletion")) && - (!PRTitle.Contains("Delete")) && - (!PRTitle.Contains("Remove")) && - (!AgreementAccept.Contains("+"))) { - outBox_msg.AppendText(Environment.NewLine + "WordFilter: " ); - - List WordFilterMatch = null; - foreach (string word in WordFilterList) { - // if (clip.Contains(word) && !clip.Contains("Url") && !clip.Contains("Agreement")) { - if (clip.Contains(word)) { - WordFilterMatch.Add(word); - } - } - - if (WordFilterMatch != null) { - WordFilter = "-!"; - Approve = "-!"; - outBox_msg.AppendText(Environment.NewLine + "WordFilter: " + WordFilterMatch.FirstOrDefault()); - // ReplyToPR(PR,"WordFilter",WordFilterMatch.FirstOrDefault()); - } - } - table_val.Rows[LastRow].SetField("W", WordFilter); - - - - - - - if (null != ManifestVersion) { - if ((PRvMan != "N") && - (!PRTitle.Contains("Automatic deletion")) && - (!PRTitle.Contains("Delete")) && - (!PRTitle.Contains("Remove"))) { - /* + AddPRToRecord(PR,"Feedback",PRTitle); + outBox_msg.AppendText(Environment.NewLine + "PR: " + PR + " comments"); + */ + } + } + table_val.Rows[LastRow].SetField("M", VersionIncrease); + + + + if (strictness != "") { + string matchVar = ""; + + foreach (string Account in AuthAccount.Split('/')) { + if (Account == Submitter) { + matchVar = "matches"; + Auth = "+"; + } else { + matchVar = "does not match"; + Auth = "-"; + } + } + outBox_msg.AppendText(Environment.NewLine + "PR: " + PR + " matchVar: "+ matchVar); + + if (strictness == "must") { + Auth += "!"; + } + } + if (Auth == "-!") { + // GetPRApproval(clip,PR,PackageIdentifier); + outBox_msg.AppendText(Environment.NewLine + "PR: " + PR + " GetPRApproval"); + } + table_val.Rows[LastRow].SetField("A", Auth); + + + + + + //Review file only alerts, doesn't block. + string ReviewData = ""; + try { + ReviewData = GetFileData(ReviewFile,PackageIdentifier,"Reason"); + if (ReviewData != "") { + oldclip = PRTitle; + if (MessageBox.Show(PackageIdentifier + ": " + ReviewData + " - Should this still be approved?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { + Approve = "+"; + Review= "+"; + } else { + Review= "-"; + Approve = "-"; + // MessageBox.Show("Nothing happens."); + } + } + } catch {} + table_val.Rows[LastRow].SetField("R", Review); + + + //In list, matches PR - explicit pass + //In list, PR has no Installer.yaml - implicit pass + //In list, missing from PR - block + //In list, mismatch from PR - block + //Not in list or PR - pass + //Not in list, in PR - alert and pass? + //Check previous version for omission - depend on wingetbot for now. + string AgreementUrlFromList = ""; + try { + AgreementUrlFromList = GetFileData(DataFileName,PackageIdentifier,"AgreementUrl"); + outBox_msg.AppendText(Environment.NewLine + "PR: " + PR + " AgreementUrlFromList: " + AgreementUrlFromList); + } catch {} + if (AgreementUrlFromList != "") { + string AgreementUrlFromClip = YamlValue("AgreementUrl",replace_clip); + if (AgreementUrlFromClip == AgreementUrlFromList) { + //Explicit Approve - URL is present and matches. + AgreementAccept = "+!"; + } else { + //Explicit mismatch - URL is present and does not match, or URL is missing. + AgreementAccept = "-!"; + // ReplyToPR(PR,"AgreementMismatch",AgreementUrlFromList); + } + } else { + AgreementAccept = "+"; + //Implicit Approve - your AgreementsUrl is in another file. Can't modify what isn't there. + } + table_val.Rows[LastRow].SetField("G", AgreementAccept); + + + + + + + + + if ((!PRTitle.Contains("Automatic deletion")) && + (!PRTitle.Contains("Delete")) && + (!PRTitle.Contains("Remove")) && + (!AgreementAccept.Contains("+"))) { + outBox_msg.AppendText(Environment.NewLine + "WordFilter: " ); + + List WordFilterMatch = null; + foreach (string word in WordFilterList) { + // if (clip.Contains(word) && !clip.Contains("Url") && !clip.Contains("Agreement")) { + if (clip.Contains(word)) { + WordFilterMatch.Add(word); + } + } + + if (WordFilterMatch != null) { + WordFilter = "-!"; + Approve = "-!"; + outBox_msg.AppendText(Environment.NewLine + "WordFilter: " + WordFilterMatch.FirstOrDefault()); + // ReplyToPR(PR,"WordFilter",WordFilterMatch.FirstOrDefault()); + } + } + table_val.Rows[LastRow].SetField("W", WordFilter); + + + + + + + if (null != ManifestVersion) { + if ((PRvMan != "N") && + (!PRTitle.Contains("Automatic deletion")) && + (!PRTitle.Contains("Delete")) && + (!PRTitle.Contains("Remove"))) { + /* DisplayName - maybe warn DisplayVersion - Hard block Publisher - maybe warn ProductCode - maybe warn UpgradeCode - maybe warn - InstallerType - maybe warn - */ - - string replyType = ""; - AnF = ""; - - foreach (string Entry in AppsAndFeaturesEntriesList) { - string replyString = "un"; - int entryType = 0; - if (Entry == "DisplayName") { - replyString = "dn"; - } else if (Entry == "DisplayVersion") { - replyString = "dv"; - // entryType = 1; - // } else if (Entry == "InstallerType") { - // replyString = "it"; - // } else if (Entry == "Publisher") { - // replyString = "pu"; - } else if (Entry == "ProductCode") { - replyString = "pc"; - } else if (Entry == "UpgradeCode") { - replyString = "uc"; - } - - bool ANFOld = ManifestEntryCheck(PackageIdentifier, ManifestVersion, Entry); - bool ANFCurrent = clip.Contains(Entry); - if ((ANFOld == true) && (ANFCurrent == false)) { - if (entryType == 1) { - AnF = replyString+"O-"; - } - replyType = "AppsAndFeaturesMissing"; - } else if ((ANFOld == false) && (ANFCurrent == true)) { - if (entryType == 1) { - AnF = replyString+"C-"; - } - replyType = "AppsAndFeaturesNew"; - //InvokeGitHubPRRequest(PR,"Post","comments","[Policy] Needs-Author-Feedback","Silent") - } else if ((ANFOld == false) && (ANFCurrent == false)) { - AnF += replyString+"0"; - } else if ((ANFOld == true) && (ANFCurrent == true)) { - AnF += replyString+"1"; - }//end if ANFOld - }//end foreach Entry - if (replyType != "") { - - // ReplyToPR(PR,replyType,Submitter,MagicLabels[30]); - // AddPRToRecord(PR,"Feedback",PRTitle); - } - - - }//end if PRvMan - }//end if null - table_val.Rows[LastRow].SetField("F", AnF); - - - - - - if ((PRvMan != "N") && - (!PRTitle.Contains("Automatic deletion")) && - (!PRTitle.Contains("Delete")) && - (!PRTitle.Contains("Remove"))) { - try { - if (clip.Contains("InstallerUrl")) { - string InstallerUrl = YamlValue("InstallerUrl",clip); - ////Write-Host "InstallerUrl: InstallerUrl installerMatches PRVersion: -PR PRVersion" -f "blue" - if (!(InstallerUrl.Contains(PRVersion))) { - //Matches when the dots are removed from semantec versions in the URL. - if (!(InstallerUrl.Contains(PRVersion.Replace(".","")))) { - InstVer = "-"; - } - } - } - } catch { - InstVer = "-"; - } //end try - } //end if PRvMan - - try { - PRVersion = YamlValue("PackageVersion",clip); - if (PRVersion.Contains(" ")) { - InstVer = "-!"; - } - }catch{ - //null = (Get-Process) //This section intentionally left blank. - } - - table_val.Rows[LastRow].SetField("I", InstVer); - - -/* -Version Parameter Check - Removed -A = Auth - Done -M = Major version - Done -R = Review - Done -G = aGreement - Done -F = apps and Features - Done in an inefficient fashion that really should be rewritten soon. -W = Word filter - Done -I = version number in InstallerUrl - Done -D = Difference between file counts (PR removes files) - disabled, needs revision -V = highest Version remaining - Done -Manifest version in repo - Done - -New UEs -154958 "2024.4.1.152" -155049 "5.1.1.188" -155051 "5.1.1.188" -155060 "4.10.1" -155507 "3.2.38.4985" -156171 (YamlValue) -155850 - -string to number -155006 ""14"" -155193 "7.5.30-Release.5179102" -155266 "c6.76.06" -155353 "1.1.20240415-1" -155354 "1.1.20240415-1" -155593 "v0.7.1" -155642 "v577" -155031 "v576" -155918 "v0.8.0-alpha1" -156200 "V0" -156550 "dev-2024-06" - -Returned array instead of string -157466 - */ - - - if ((PRvMan != "N") && - ((PRTitle.Contains("Automatic deletion")) || - (PRTitle.Contains("Delete")) || - (PRTitle.Contains("Remove")))) {//Removal PR - if highest version in repo. - if ((PRVersion == ManifestVersion) || (NumVersions == 1)) { - /* - ReplyToPR(PR,"VersionCount",Submitter,"[Policy] Needs-Author-Feedback\n[Policy] Highest-Version-Removal"); - AddPRToRecord(PR,"Feedback",PRTitle); -*/ - NumVersions = -1; - } - } else {//Addition PR - has more files than repo. - bool GLD =ListingDiff(clip);// //Ignores when a PR adds files that didn't exist before. - if (GLD == true) { - string_ListingDiff = "-!"; -/* - ReplyToPR(PR,"ListingDiff",GLD); - InvokeGitHubPRRequest(PR,"Post","comments","[Policy] Needs-Author-Feedback","Silent"); - AddPRToRecord(PR,"Feedback",PRTitle); - */ - }//end if GLD - }//end if PRvMan - table_val.Rows[LastRow].SetField("D", string_ListingDiff); - table_val.Rows[LastRow].SetField("V", NumVersions); - - - - -int comparison = String.Compare(PRVersion, ManifestVersion); - - if (PRvMan != "N") { - if (null == PRVersion || "" == PRVersion) { - PRvMan = "Error:PRVersion"; - } else if (ManifestVersion == "Unknown") { - PRvMan = "Error:ManifestVersion"; - } else if (ManifestVersion == null) { - PRvMan = "Error:ManifestVersion"; - } else if (comparison < 0) {//PRVersion < ManifestVersion - PRvMan = ManifestVersion; - } else if (comparison > 0) {//PRVersion > ManifestVersion - PRvMan = ManifestVersion; - } else if (PRVersion == ManifestVersion) { - PRvMan = "="; - } else { - PRvMan = "Error:ManifestVersion"; - } - } - - if ((Approve == "-!") || - (Auth == "-!") || - (AnF == "-") || - (InstVer == "-!") || - (prAuth == "-!") || - (string_ListingDiff == "-!") || - (NumVersions == -1) || - (WordFilter == "-!") || - (Review == "-") || - (AgreementAccept == "-!") || - (PRvMan == "N")) { - //|| (PRvMan -match "^Error") - Approve = "-!"; - } - - //PRvMan = PadRight(PRvMan,14); - table_val.Rows[LastRow].SetField("ManifestVer", PRvMan); - - - - - -/* - if (Approve == "+") { - ApprovePR(PR); - AddPRToRecord(PR,"Approved",PRTitle); - } -*/ - - table_val.Rows[LastRow].SetField("OK", Approve); - dataGridView_val.FirstDisplayedScrollingRowIndex = 0; - oldclip = PRTitle; - } //end if PRTitle - } //end if PRTitle - } //end function - - public void WorkSearch(string Preset, int Days = 7) { - int Page = 1; - dynamic[] PRs = SearchGitHub(Preset,Page,Days,false,true); - PRs = PRs.Where(n => n["labels"] != null).ToArray();//.Where(n => n["number"] -notin (Get-Status).pr} - - foreach (dynamic FullPR in PRs) { - int PR = FullPR["number"]; - //Get-TrackerProgress -PR $PR $MyInvocation.MyCommand line PRs.Length - //line++; - //This part is too spammy, checking Highest-Version-Removal on every run (sometimes twice a day) for a week as the PR sits. I think this is fixed in the other version. #PendingBugfix - if((FullPR["title"].Contains("Remove")) || - (FullPR["title"].Contains("Delete")) || - (FullPR["title"].Contains("Automatic deletion"))){ - CheckInstaller(PR); - } - //The other version populates Comments equivalent here, and hands this to both the PRHasNonstandardComments equivalent call, and the PRStateFromComments equivalent below. To halve the number of API calls by reducing redundant calls. This was facilitated by PowerShell's optional typing. - //dynamic[] Comments = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Get,"comments")); - if (Preset == "Approval"){ - if (PRHasNonstandardComments(PR)){ - OpenPRInBrowser(PR); - //One of these is faster to open, as though one code path has a huge inefficiency. Need more data on which. - } else { - OpenPRInBrowser(PR,true); - } - } else if (Preset == "Defender"){ - LabelAction(PR); - } else {//ToWork etc - //Don't open the PR in browser if UserName (self) was the last commenter, or if it's in the Defender loop. - /* - $Comments = ($Comments | select created_at,@{n="UserName";e={$_.user.login.Replace("\\[bot\\]")}},body) - State = (Get-PRStateFromComments -PR $PR -Comments $Comments) - $LastState = $State[-1] - if ($LastState.event == "DefenderFail") { - Get-PRLabelAction -PR $PR - } else if ($LastState.event == "LabelAction") { - Get-GitHubPreset -Preset LabelAction -PR $PR - OpenPRInBrowser(PR); - } else { - if ($Comments[-1].UserName != $gitHubUserName) { - OpenPRInBrowser(PR); - } - }//end if LastCommenter - */ - }//end if Preset - }//end foreach FullPR - }//end Get-WorkSearch - - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Automation Tools --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public void LabelAction(int PR){ - string[] PRLabels = FromJson(InvokeGitHubPRRequest(PR,"labels","content"))["name"]; - //Write-Output "PR $PR has labels $PRLabels" - if (PRLabels.Any(n => MagicLabels[0].Contains(n))) { - DataTable PRState = PRStateFromComments(PR); - string EightHoursAgo = DateTime.Now.AddHours(-8).ToString("M/d/yyyy"); - string EighteenHoursAgo = DateTime.Now.AddHours(-18).ToString("M/d/yyyy"); - /* - if (PRState.Where(n => n.Event == "PreValidation")[-1].created_at < EightHoursAgo && //Last Prevalidation was 8 hours ago. - PRState.Where(n => n.Event == "Running")[-1].created_at < EighteenHoursAgo) { //Last Run was 18 hours ago. - RetryPR(PR); -DataTable dt = ... -DataView dv = new DataView(dt); -dv.RowFilter = "(EmpName != 'abc' or EmpName != 'xyz') and (EmpID = 5)" - -dt.where(e => {check something}).Select({select code here}) -var query = - contacts.SelectMany( - contact => orders.Where(order => order).Select(order ) - } - */ - } else { - - foreach (string Label in PRLabels) { - string UserInput = ""; - if (Label == MagicLabels[1]) { - UserInput = LineFromCommitFile(PR,36,MagicStrings[0],10); - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,41,MagicStrings[0],10); - } - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,50,MagicStrings[0],10); - } - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,26,MagicStrings[0],10); - } - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,34,MagicStrings[0],10); - } - if (UserInput != null) { - ReplyToPR(PR,"AutoValEnd",UserInput); - } - if (UserInput.Contains(MagicStrings[3])) { - AddPRToRecord(PR,"Blocking"); - ReplyToPR(PR,"AutomationBlock","","Network-Blocker"); - } - } else if (Label == MagicLabels[2]) { - UserInput = LineFromCommitFile(PR,36,MagicStrings[0],3); - if (UserInput != null) { - ReplyToPR(PR,"AutoValEnd",UserInput); - } - if (UserInput.Contains(MagicStrings[3])) { - AddPRToRecord(PR,"Blocking"); - ReplyToPR(PR,"AutomationBlock","","Network-Blocker"); - } - } else if (Label == MagicLabels[3]) { - UserInput = LineFromCommitFile(PR,36,MagicStrings[0],10); - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,26,MagicStrings[0],10); - } - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,36,MagicStrings[0],10); - } - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,37,MagicStrings[0],10); - } - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,50,MagicStrings[0],10); - } - if (UserInput != null) { - ReplyToPR(PR,"AutoValEnd",UserInput); - //Get-UpdateHashInPR2 -PR $PR -Clip UserInput - } - } else if (Label == MagicLabels[4]) { - UserInput = LineFromCommitFile(PR,36,MagicStrings[6],5); - if (UserInput == null) { - ReplyToPR(PR,"AutoValEnd",UserInput); - CheckInstaller(PR); - } - } else if (Label == MagicLabels[5]) { - UserInput = LineFromCommitFile(PR,25,MagicStrings[1]); - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,15,MagicStrings[1]); - } - if (UserInput != null) { - if (UserInput.Contains(MagicStrings[5])) { - RetryPR(PR); - } - ReplyToPR(PR,"AutoValEnd",UserInput); - } - } else if (Label == MagicLabels[6]) { - RetryPR(PR); - } else if (Label == MagicLabels[7]) { - UserInput = LineFromCommitFile(PR,15,MagicStrings[1]); - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,25,MagicStrings[4],7); - } - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,39,MagicStrings[4],7); - } - if (UserInput != null) { - if (UserInput.Contains("Sequence contains no elements")) {//Reindex fixes this. - ReplyToPR(PR,"SequenceNoElements"); - string PRTitle = FromJson(InvokeGitHubPRRequest(PR))["title"]; - if ((PRTitle.Contains("Automatic deletion")) || (PRTitle.Contains("Remove"))) { - ReplyToPR(PR,"InstallsNormally","","Manually-Validated"); - } - } - } - } else if (Label == MagicLabels[8]) { + InstallerType - maybe warn + */ + + string replyType = ""; + AnF = ""; + + foreach (string Entry in AppsAndFeaturesEntriesList) { + string replyString = "un"; + int entryType = 0; + if (Entry == "DisplayName") { + replyString = "dn"; + } else if (Entry == "DisplayVersion") { + replyString = "dv"; + // entryType = 1; + // } else if (Entry == "InstallerType") { + // replyString = "it"; + // } else if (Entry == "Publisher") { + // replyString = "pu"; + } else if (Entry == "ProductCode") { + replyString = "pc"; + } else if (Entry == "UpgradeCode") { + replyString = "uc"; + } + + bool ANFOld = ManifestEntryCheck(PackageIdentifier, ManifestVersion, Entry); + bool ANFCurrent = clip.Contains(Entry); + if ((ANFOld == true) && (ANFCurrent == false)) { + if (entryType == 1) { + AnF = replyString+"O-"; + } + replyType = "AppsAndFeaturesMissing"; + } else if ((ANFOld == false) && (ANFCurrent == true)) { + if (entryType == 1) { + AnF = replyString+"C-"; + } + replyType = "AppsAndFeaturesNew"; + //InvokeGitHubPRRequest(PR,"Post","comments","[Policy] Needs-Author-Feedback","Silent") + } else if ((ANFOld == false) && (ANFCurrent == false)) { + AnF += replyString+"0"; + } else if ((ANFOld == true) && (ANFCurrent == true)) { + AnF += replyString+"1"; + }//end if ANFOld + }//end foreach Entry + if (replyType != "") { + + // ReplyToPR(PR,replyType,Submitter,MagicLabels[30]); + // AddPRToRecord(PR,"Feedback",PRTitle); + } + + + }//end if PRvMan + }//end if null + table_val.Rows[LastRow].SetField("F", AnF); + + + + + + if ((PRvMan != "N") && + (!PRTitle.Contains("Automatic deletion")) && + (!PRTitle.Contains("Delete")) && + (!PRTitle.Contains("Remove"))) { + try { + if (clip.Contains("InstallerUrl")) { + string InstallerUrl = YamlValue("InstallerUrl",clip); + ////Write-Host "InstallerUrl: InstallerUrl installerMatches PRVersion: -PR PRVersion" -f "blue" + if (!(InstallerUrl.Contains(PRVersion))) { + //Matches when the dots are removed from semantec versions in the URL. + if (!(InstallerUrl.Contains(PRVersion.Replace(".","")))) { + InstVer = "-"; + } + } + } + } catch { + InstVer = "-"; + } //end try + } //end if PRvMan + + try { + PRVersion = YamlValue("PackageVersion",clip); + if (PRVersion.Contains(" ")) { + InstVer = "-!"; + } + }catch{ + //null = (Get-Process) //This section intentionally left blank. + } + + table_val.Rows[LastRow].SetField("I", InstVer); + + +/* +Version Parameter Check - Removed +A = Auth - Done +M = Major version - Done +R = Review - Done +G = aGreement - Done +F = apps and Features - Done in an inefficient fashion that really should be rewritten soon. +W = Word filter - Done +I = version number in InstallerUrl - Done +D = Difference between file counts (PR removes files) - disabled, needs revision +V = highest Version remaining - Done +Manifest version in repo - Done + +New UEs +154958 "2024.4.1.152" +155049 "5.1.1.188" +155051 "5.1.1.188" +155060 "4.10.1" +155507 "3.2.38.4985" +156171 (YamlValue) +155850 + +string to number +155006 ""14"" +155193 "7.5.30-Release.5179102" +155266 "c6.76.06" +155353 "1.1.20240415-1" +155354 "1.1.20240415-1" +155593 "v0.7.1" +155642 "v577" +155031 "v576" +155918 "v0.8.0-alpha1" +156200 "V0" +156550 "dev-2024-06" + +Returned array instead of string +157466 + */ + + + if ((PRvMan != "N") && + ((PRTitle.Contains("Automatic deletion")) || + (PRTitle.Contains("Delete")) || + (PRTitle.Contains("Remove")))) {//Removal PR - if highest version in repo. + if ((PRVersion == ManifestVersion) || (NumVersions == 1)) { + /* + ReplyToPR(PR,"VersionCount",Submitter,"[Policy] Needs-Author-Feedback\n[Policy] Highest-Version-Removal"); + AddPRToRecord(PR,"Feedback",PRTitle); +*/ + NumVersions = -1; + } + } else {//Addition PR - has more files than repo. + bool GLD =ListingDiff(clip);// //Ignores when a PR adds files that didn't exist before. + if (GLD == true) { + string_ListingDiff = "-!"; +/* + ReplyToPR(PR,"ListingDiff",GLD); + InvokeGitHubPRRequest(PR,"Post","comments","[Policy] Needs-Author-Feedback","Silent"); + AddPRToRecord(PR,"Feedback",PRTitle); + */ + }//end if GLD + }//end if PRvMan + table_val.Rows[LastRow].SetField("D", string_ListingDiff); + table_val.Rows[LastRow].SetField("V", NumVersions); + + + + +int comparison = String.Compare(PRVersion, ManifestVersion); + + if (PRvMan != "N") { + if (null == PRVersion || "" == PRVersion) { + PRvMan = "Error:PRVersion"; + } else if (ManifestVersion == "Unknown") { + PRvMan = "Error:ManifestVersion"; + } else if (ManifestVersion == null) { + PRvMan = "Error:ManifestVersion"; + } else if (comparison < 0) {//PRVersion < ManifestVersion + PRvMan = ManifestVersion; + } else if (comparison > 0) {//PRVersion > ManifestVersion + PRvMan = ManifestVersion; + } else if (PRVersion == ManifestVersion) { + PRvMan = "="; + } else { + PRvMan = "Error:ManifestVersion"; + } + } + + if ((Approve == "-!") || + (Auth == "-!") || + (AnF == "-") || + (InstVer == "-!") || + (prAuth == "-!") || + (string_ListingDiff == "-!") || + (NumVersions == -1) || + (WordFilter == "-!") || + (Review == "-") || + (AgreementAccept == "-!") || + (PRvMan == "N")) { + //|| (PRvMan -match "^Error") + Approve = "-!"; + } + + //PRvMan = PadRight(PRvMan,14); + table_val.Rows[LastRow].SetField("ManifestVer", PRvMan); + + + + + +/* + if (Approve == "+") { + ApprovePR(PR); + AddPRToRecord(PR,"Approved",PRTitle); + } +*/ + + table_val.Rows[LastRow].SetField("OK", Approve); + dataGridView_val.FirstDisplayedScrollingRowIndex = 0; + oldclip = PRTitle; + } //end if PRTitle + } //end if PRTitle + } //end function + + public void WorkSearch(string Preset, int Days = 7) { + int Page = 1; + dynamic[] PRs = SearchGitHub(Preset,Page,Days,false,true); + PRs = PRs.Where(n => n["labels"] != null).ToArray();//.Where(n => n["number"] -notin (Get-Status).pr} + + foreach (dynamic FullPR in PRs) { + int PR = FullPR["number"]; + //Get-TrackerProgress -PR $PR $MyInvocation.MyCommand line PRs.Length + //line++; + //This part is too spammy, checking Highest-Version-Removal on every run (sometimes twice a day) for a week as the PR sits. I think this is fixed in the other version. #PendingBugfix + if((FullPR["title"].Contains("Remove")) || + (FullPR["title"].Contains("Delete")) || + (FullPR["title"].Contains("Automatic deletion"))){ + CheckInstaller(PR); + } + //The other version populates Comments equivalent here, and hands this to both the PRHasNonstandardComments equivalent call, and the PRStateFromComments equivalent below. To halve the number of API calls by reducing redundant calls. This was facilitated by PowerShell's optional typing. + //dynamic[] Comments = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Get,"comments")); + if (Preset == "Approval"){ + if (PRHasNonstandardComments(PR)){ + OpenPRInBrowser(PR); + //One of these is faster to open, as though one code path has a huge inefficiency. Need more data on which. + } else { + OpenPRInBrowser(PR,true); + } + } else if (Preset == "Defender"){ + LabelAction(PR); + } else {//ToWork etc + //Don't open the PR in browser if UserName (self) was the last commenter, or if it's in the Defender loop. + /* + $Comments = ($Comments | select created_at,@{n="UserName";e={$_.user.login.Replace("\\[bot\\]")}},body) + State = (Get-PRStateFromComments -PR $PR -Comments $Comments) + $LastState = $State[-1] + if ($LastState.event == "DefenderFail") { + Get-PRLabelAction -PR $PR + } else if ($LastState.event == "LabelAction") { + Get-GitHubPreset -Preset LabelAction -PR $PR + OpenPRInBrowser(PR); + } else { + if ($Comments[-1].UserName != $gitHubUserName) { + OpenPRInBrowser(PR); + } + }//end if LastCommenter + */ + }//end if Preset + }//end foreach FullPR + }//end Get-WorkSearch + + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Automation Tools --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void LabelAction(int PR){ + string[] PRLabels = FromJson(InvokeGitHubPRRequest(PR,"labels","content"))["name"]; + //Write-Output "PR $PR has labels $PRLabels" + if (PRLabels.Any(n => MagicLabels[0].Contains(n))) { + DataTable PRState = PRStateFromComments(PR); + string EightHoursAgo = DateTime.Now.AddHours(-8).ToString("M/d/yyyy"); + string EighteenHoursAgo = DateTime.Now.AddHours(-18).ToString("M/d/yyyy"); + /* + if (PRState.Where(n => n.Event == "PreValidation")[-1].created_at < EightHoursAgo && //Last Prevalidation was 8 hours ago. + PRState.Where(n => n.Event == "Running")[-1].created_at < EighteenHoursAgo) { //Last Run was 18 hours ago. + RetryPR(PR); +DataTable dt = ... +DataView dv = new DataView(dt); +dv.RowFilter = "(EmpName != 'abc' or EmpName != 'xyz') and (EmpID = 5)" + +dt.where(e => {check something}).Select({select code here}) +var query = + contacts.SelectMany( + contact => orders.Where(order => order).Select(order ) + } + */ + } else { + + foreach (string Label in PRLabels) { + string UserInput = ""; + if (Label == MagicLabels[1]) { + UserInput = LineFromCommitFile(PR,36,MagicStrings[0],10); + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,41,MagicStrings[0],10); + } + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,50,MagicStrings[0],10); + } + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,26,MagicStrings[0],10); + } + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,34,MagicStrings[0],10); + } + if (UserInput != null) { + ReplyToPR(PR,"AutoValEnd",UserInput); + } + if (UserInput.Contains(MagicStrings[3])) { + AddPRToRecord(PR,"Blocking"); + ReplyToPR(PR,"AutomationBlock","","Network-Blocker"); + } + } else if (Label == MagicLabels[2]) { + UserInput = LineFromCommitFile(PR,36,MagicStrings[0],3); + if (UserInput != null) { + ReplyToPR(PR,"AutoValEnd",UserInput); + } + if (UserInput.Contains(MagicStrings[3])) { + AddPRToRecord(PR,"Blocking"); + ReplyToPR(PR,"AutomationBlock","","Network-Blocker"); + } + } else if (Label == MagicLabels[3]) { + UserInput = LineFromCommitFile(PR,36,MagicStrings[0],10); + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,26,MagicStrings[0],10); + } + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,36,MagicStrings[0],10); + } + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,37,MagicStrings[0],10); + } + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,50,MagicStrings[0],10); + } + if (UserInput != null) { + ReplyToPR(PR,"AutoValEnd",UserInput); + //Get-UpdateHashInPR2 -PR $PR -Clip UserInput + } + } else if (Label == MagicLabels[4]) { + UserInput = LineFromCommitFile(PR,36,MagicStrings[6],5); + if (UserInput == null) { + ReplyToPR(PR,"AutoValEnd",UserInput); + CheckInstaller(PR); + } + } else if (Label == MagicLabels[5]) { + UserInput = LineFromCommitFile(PR,25,MagicStrings[1]); + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,15,MagicStrings[1]); + } + if (UserInput != null) { + if (UserInput.Contains(MagicStrings[5])) { + RetryPR(PR); + } + ReplyToPR(PR,"AutoValEnd",UserInput); + } + } else if (Label == MagicLabels[6]) { + RetryPR(PR); + } else if (Label == MagicLabels[7]) { + UserInput = LineFromCommitFile(PR,15,MagicStrings[1]); + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,25,MagicStrings[4],7); + } + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,39,MagicStrings[4],7); + } + if (UserInput != null) { + if (UserInput.Contains("Sequence contains no elements")) {//Reindex fixes this. + ReplyToPR(PR,"SequenceNoElements"); + string PRTitle = FromJson(InvokeGitHubPRRequest(PR))["title"]; + if ((PRTitle.Contains("Automatic deletion")) || (PRTitle.Contains("Remove"))) { + ReplyToPR(PR,"InstallsNormally","","Manually-Validated"); + } + } + } + } else if (Label == MagicLabels[8]) { UserInput = LineFromCommitFile(PR,25,MagicStrings[1]); - if (UserInput == null) { - if (UserInput.Contains(MagicStrings[5])) { - RetryPR(PR); - } - ReplyToPR(PR,"AutoValEnd",UserInput); - } - } else if (Label == MagicLabels[9]) { - UserInput = LineFromCommitFile(PR,25,MagicStrings[2]); - if (UserInput == null) { + if (UserInput == null) { + if (UserInput.Contains(MagicStrings[5])) { + RetryPR(PR); + } + ReplyToPR(PR,"AutoValEnd",UserInput); + } + } else if (Label == MagicLabels[9]) { + UserInput = LineFromCommitFile(PR,25,MagicStrings[2]); + if (UserInput == null) { UserInput = LineFromCommitFile(PR,25,MagicStrings[1]); - } - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,15,MagicStrings[2]); - } - if (UserInput == null) { + } + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,15,MagicStrings[2]); + } + if (UserInput == null) { UserInput = LineFromCommitFile(PR,15,MagicStrings[1]); - } - if (UserInput == null) { - UserInput = LineFromCommitFile(PR,39,MagicStrings[2]); - } - if (UserInput == null) { + } + if (UserInput == null) { + UserInput = LineFromCommitFile(PR,39,MagicStrings[2]); + } + if (UserInput == null) { UserInput = LineFromCommitFile(PR,39,MagicStrings[1]); - } - if (UserInput == null) { - ReplyToPR(PR,"AutoValEnd",UserInput); - } - } else if (Label == MagicLabels[10]) { + } + if (UserInput == null) { + ReplyToPR(PR,"AutoValEnd",UserInput); + } + } else if (Label == MagicLabels[10]) { UserInput = LineFromCommitFile(PR,25,MagicStrings[2]); - if (UserInput == null) { + if (UserInput == null) { UserInput = LineFromCommitFile(PR,25,MagicStrings[1]); - } - if (UserInput == null) { + } + if (UserInput == null) { UserInput = LineFromCommitFile(PR,31,MagicStrings[2]); - } - if (UserInput == null) { + } + if (UserInput == null) { UserInput = LineFromCommitFile(PR,31,MagicStrings[1]); - } - if (UserInput == null) { + } + if (UserInput == null) { UserInput = LineFromCommitFile(PR,44,MagicStrings[2]); - } - if (UserInput == null) { + } + if (UserInput == null) { UserInput = LineFromCommitFile(PR,44,MagicStrings[1]); - } - if (UserInput == null) { + } + if (UserInput == null) { UserInput = LineFromCommitFile(PR,15,MagicStrings[2]); - } - if (UserInput == null) { + } + if (UserInput == null) { UserInput = LineFromCommitFile(PR,15,MagicStrings[1]); - } - if (UserInput == null) { - ReplyToPR(PR,"AutoValEnd",UserInput); - } - } else if (Label == MagicLabels[11]) {//Manifest-Validation-Error + } + if (UserInput == null) { + ReplyToPR(PR,"AutoValEnd",UserInput); + } + } else if (Label == MagicLabels[11]) {//Manifest-Validation-Error UserInput = LineFromCommitFile(PR,25,MagicStrings[2]); - if (null == UserInput) { + if (null == UserInput) { UserInput = LineFromCommitFile(PR,25,MagicStrings[1]); - } - if (null == UserInput) { + } + if (null == UserInput) { UserInput = LineFromCommitFile(PR,31,MagicStrings[2]); - } - if (null == UserInput) { + } + if (null == UserInput) { UserInput = LineFromCommitFile(PR,31,MagicStrings[1]); - } - if (null == UserInput) { + } + if (null == UserInput) { UserInput = LineFromCommitFile(PR,44,MagicStrings[2]); - } - if (null == UserInput) { + } + if (null == UserInput) { UserInput = LineFromCommitFile(PR,44,MagicStrings[1]); - } - if (null == UserInput) { + } + if (null == UserInput) { UserInput = LineFromCommitFile(PR,15,MagicStrings[2]); - } - if (null == UserInput) { + } + if (null == UserInput) { UserInput = LineFromCommitFile(PR,15,MagicStrings[1]); - } - if (null != UserInput) { - ReplyToPR(PR,"AutoValEnd",UserInput); - } - } else if (Label == MagicLabels[12]) { - //Get-GitHubPreset PossibleDuplicate -PR PR - } else if (Label == MagicLabels[13]) { + } + if (null != UserInput) { + ReplyToPR(PR,"AutoValEnd",UserInput); + } + } else if (Label == MagicLabels[12]) { + //Get-GitHubPreset PossibleDuplicate -PR PR + } else if (Label == MagicLabels[13]) { UserInput = LineFromCommitFile(PR,24,MagicStrings[1]); - if (UserInput == null) { + if (UserInput == null) { UserInput = LineFromCommitFile(PR,25,MagicStrings[1]); - } - if (UserInput == null) { + } + if (UserInput == null) { UserInput = LineFromCommitFile(PR,14,MagicStrings[1]); - } - if (UserInput == null) { + } + if (UserInput == null) { UserInput = LineFromCommitFile(PR,27,MagicStrings[1]); - } - if (UserInput.Contains("The pull request contains more than one manifest")) { - AddPRToRecord(PR,"Feedback"); - ReplyToPR(PR,"OneManifestPerPR",MagicLabels[30]); - } - if (UserInput == null) { - ReplyToPR(PR,"AutoValEnd",UserInput); - } - } else if (Label == MagicLabels[14]) { - UserInput = LineFromCommitFile(PR,32,"Validation result: Failed"); - CheckInstaller(PR); - if (UserInput == null) { - ReplyToPR(PR,"AutoValEnd",UserInput); - } - } else if (Label == MagicLabels[15]) { - } else if (Label == MagicLabels[16]) { - AutoValLog(PR); - } else if (Label == MagicLabels[17]) { - AutoValLog(PR); - } else if (Label == MagicLabels[18]) { + } + if (UserInput.Contains("The pull request contains more than one manifest")) { + AddPRToRecord(PR,"Feedback"); + ReplyToPR(PR,"OneManifestPerPR",MagicLabels[30]); + } + if (UserInput == null) { + ReplyToPR(PR,"AutoValEnd",UserInput); + } + } else if (Label == MagicLabels[14]) { + UserInput = LineFromCommitFile(PR,32,"Validation result: Failed"); + CheckInstaller(PR); + if (UserInput == null) { + ReplyToPR(PR,"AutoValEnd",UserInput); + } + } else if (Label == MagicLabels[15]) { + } else if (Label == MagicLabels[16]) { + AutoValLog(PR); + } else if (Label == MagicLabels[17]) { + AutoValLog(PR); + } else if (Label == MagicLabels[18]) { UserInput = LineFromCommitFile(PR,25,MagicStrings[1]); - if (UserInput == null) { - ReplyToPR(PR,"AutoValEnd",UserInput); - } - } else if (Label == MagicLabels[19]) { - } else if (Label == MagicLabels[20]) { - string PRTitle = FromJson(InvokeGitHubPRRequest(PR,""))["title"]; - // foreach (Dictionary Waiver in GetFileData(DataFileName,"autoWaiverLabel")) { - // if (PRTitle.Contains((string)Waiver["PackageIdentifier"])) { - // AddWaiver(PR); - // } - // } - } else if (Label == MagicLabels[21]) { - AutoValLog(PR); - } else if (Label == MagicLabels[22]) { - AutoValLog(PR); - } else if (Label == MagicLabels[23]) { - AutoValLog(PR); - }//end if Label - }//end foreach Label - }//end if Label - } - - public string AddWaiver(int PR) { - dynamic Labels = FromJson(InvokeGitHubPRRequest(PR ,WebRequestMethods.Http.Get,"labels","","issues")); - string string_out = ""; - foreach (dynamic Label in Labels) { - string Labelname = Label["name"]; - string Waiver = ""; - if (Labelname == MagicLabels[2]){ - //GitHubPreset(PR,"Completed")l - AddPRToRecord(PR,"Manual"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[31]){ - AddPRToRecord(PR,"Waiver"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[24]){ - AddPRToRecord(PR,"Waiver"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[25]){ - AddPRToRecord(PR,"Waiver"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[26]){ - //GitHubPreset(PR,"Approved")l - } else if (Labelname == MagicLabels[15]){ - AddPRToRecord(PR,"Waiver"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[16]){ - AddPRToRecord(PR,"Waiver"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[27]){ - AddPRToRecord(PR,"Waiver"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[21]){ - AddPRToRecord(PR,"Waiver"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[20]){ - AddPRToRecord(PR,"Waiver"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[22]){ - AddPRToRecord(PR,"Waiver"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[23]){ - AddPRToRecord(PR,"Waiver"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[28]){ - AddPRToRecord(PR,"Waiver"); - Waiver = Labelname; - } else if (Labelname == MagicLabels[29]){ - //GitHubPreset(PR,"Completed")l - AddPRToRecord(PR,"Manual"); - } else if (Labelname == MagicLabels[6]){ - //GitHubPreset(PR,"Completed")l - AddPRToRecord(PR,"Manual"); - } - if (Waiver != "") { - string_out += InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","@wingetbot waivers Add "+Waiver,"issues"); - }; //end if Waiver - }; //end Foreach Label - return string_out; - } //end Add-Waiver - - public dynamic SearchGitHub(string Preset, int Page = 1,int Days = 0,bool IEDS = false,bool NoLabels = false,bool Browser = false){ - //[ValidateSet("Approval","Blocking","Defender","IEDS","ToWork","ToWork2")] - string Url = "https://api.github.com/search/issues?page=Page&q="; + if (UserInput == null) { + ReplyToPR(PR,"AutoValEnd",UserInput); + } + } else if (Label == MagicLabels[19]) { + } else if (Label == MagicLabels[20]) { + string PRTitle = FromJson(InvokeGitHubPRRequest(PR,""))["title"]; + // foreach (Dictionary Waiver in GetFileData(DataFileName,"autoWaiverLabel")) { + // if (PRTitle.Contains((string)Waiver["PackageIdentifier"])) { + // AddWaiver(PR); + // } + // } + } else if (Label == MagicLabels[21]) { + AutoValLog(PR); + } else if (Label == MagicLabels[22]) { + AutoValLog(PR); + } else if (Label == MagicLabels[23]) { + AutoValLog(PR); + }//end if Label + }//end foreach Label + }//end if Label + } + + public string AddWaiver(int PR) { + dynamic Labels = FromJson(InvokeGitHubPRRequest(PR ,WebRequestMethods.Http.Get,"labels","","issues")); + string string_out = ""; + foreach (dynamic Label in Labels) { + string Labelname = Label["name"]; + string Waiver = ""; + if (Labelname == MagicLabels[2]){ + //GitHubPreset(PR,"Completed")l + AddPRToRecord(PR,"Manual"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[31]){ + AddPRToRecord(PR,"Waiver"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[24]){ + AddPRToRecord(PR,"Waiver"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[25]){ + AddPRToRecord(PR,"Waiver"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[26]){ + //GitHubPreset(PR,"Approved")l + } else if (Labelname == MagicLabels[15]){ + AddPRToRecord(PR,"Waiver"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[16]){ + AddPRToRecord(PR,"Waiver"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[27]){ + AddPRToRecord(PR,"Waiver"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[21]){ + AddPRToRecord(PR,"Waiver"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[20]){ + AddPRToRecord(PR,"Waiver"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[22]){ + AddPRToRecord(PR,"Waiver"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[23]){ + AddPRToRecord(PR,"Waiver"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[28]){ + AddPRToRecord(PR,"Waiver"); + Waiver = Labelname; + } else if (Labelname == MagicLabels[29]){ + //GitHubPreset(PR,"Completed")l + AddPRToRecord(PR,"Manual"); + } else if (Labelname == MagicLabels[6]){ + //GitHubPreset(PR,"Completed")l + AddPRToRecord(PR,"Manual"); + } + if (Waiver != "") { + string_out += InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","@wingetbot waivers Add "+Waiver,"issues"); + }; //end if Waiver + }; //end Foreach Label + return string_out; + } //end Add-Waiver + + public dynamic SearchGitHub(string Preset, int Page = 1,int Days = 0,bool IEDS = false,bool NoLabels = false,bool Browser = false){ + //[ValidateSet("Approval","Blocking","Defender","IEDS","ToWork","ToWork2")] + string Url = "https://api.github.com/search/issues?page=Page&q="; if (Browser == true) { Url = GitHubBaseUrl+"/pulls?page=Page&q="; } @@ -1802,7 +1829,7 @@ public dynamic SearchGitHub(string Preset, int Page = 1,int Days = 0,bool IEDS = string string_nHW = "-label:Hardware+"; string IEDSLabel = "label:Internal-Error-Dynamic-Scan+"; string nIEDS = "-"+IEDSLabel; - string nMMC = "-label:Manifest-Metadata-Consistency+"; + string nMMC = "-label:Manifest-Metadata-Consistency+"; string string_IEM = "label:Internal-Error-Manifest+"; string string_NA = "label:Needs-Attention+"; string string_NAF = "label:Needs-Author-Feedback+"; @@ -1812,7 +1839,7 @@ public dynamic SearchGitHub(string Preset, int Page = 1,int Days = 0,bool IEDS = string string_VC = "label:Validation-Completed+";//Completed; //string string_VPM = "label:Version-Parameter-Mismatch+"; string string_nVC = "-"+string_VC;//Completed; - + string date = DateTime.Now.AddDays(-Days).ToString("yyyy-MM-dd"); string Recent = "updated:>"+date+"+"; @@ -1845,17 +1872,17 @@ public dynamic SearchGitHub(string Preset, int Page = 1,int Days = 0,bool IEDS = Review2 += "-"+string_NAF; Review2 += "-label:Needs-Review+"; - string Approvable = "-label:Validation-Merge-Conflict+" ; - Approvable += "-label:Manifest-Version-Error+"; - Approvable += "-label:Unexpected-File+"; - + string Approvable = "-label:Validation-Merge-Conflict+" ; + Approvable += "-label:Manifest-Version-Error+"; + Approvable += "-label:Unexpected-File+"; + string Workable = "-label:Highest-Version-Removal+"; - Workable += "-label:Manifest-Version-Error+"; - Workable += "-label:Validation-Certificate-Root+"; - Workable += "-label:Binary-Validation-Error+"; + Workable += "-label:Manifest-Version-Error+"; + Workable += "-label:Validation-Certificate-Root+"; + Workable += "-label:Binary-Validation-Error+"; Workable += "-label:Validation-Merge-Conflict+"; - Workable += "-label:Validation-SmartScreen-Error+"; - Workable += "-label:Unexpected-File+"; + Workable += "-label:Validation-SmartScreen-Error+"; + Workable += "-label:Unexpected-File+"; //Composite settings; string Set1 = Blocking + Common + Review1; @@ -1886,12 +1913,12 @@ public dynamic SearchGitHub(string Preset, int Page = 1,int Days = 0,bool IEDS = if (Preset == "Approval") { Url += Cna; Url += Set2; //Blocking + Common + Review1 + Review2; - Url += Approvable; - Url += nMMC; - Url += Workable; + Url += Approvable; + Url += nMMC; + Url += Workable; Url += " sort:created-asc"; } else if (Preset == "Defender") { - Url += Defender; + Url += Defender; Url += "sort:updated-asc+"; } else if (Preset == "IEDS") { Url += IEDSLabel; @@ -1908,818 +1935,826 @@ public dynamic SearchGitHub(string Preset, int Page = 1,int Days = 0,bool IEDS = Url += Set1; //Blocking + Common + Review1; Url += string_nVC; } - + if (Browser == true) { - System.Diagnostics.Process.Start(Url); - return ""; + System.Diagnostics.Process.Start(Url); + return ""; //System.Diagnostics.Process.Start("https://bing.com"); - } else { + } else { //if (NoLabels == true) { //return FromJson(InvokeGitHubRequest(Url))["items"].Where(n => n["labels"] != null); //} else { return FromJson(InvokeGitHubRequest(Url))["items"]; - } + } //} } -//[Message options: ("AgreementMismatch","AppFail","Approve","AutomationBlock","AutoValEnd","AppsAndFeaturesNew","AppsAndFeaturesMissing","DriverInstall","DefenderFail","HashFailRegen","InstallerFail","InstallerMissing","InstallerNotSilent","NormalInstall","InstallerUrlBad","ListingDiff","ManValEnd","ManifestVersion","NoCause","NoExe","NoRecentActivity","NotGoodFit","OneManifestPerPR","Only64bit","PackageFail","PackageUrl","Paths","PendingAttendedInstaller","PolicyWrapper","RemoveAsk","SequenceNoElements","Unattended","Unavailable","UrlBad","VersionCount","WhatIsIEDS","WordFilter")] - public string CannedMessage (string Message, string UserInput = "") { - string string_out = ""; - string Username = "@"+UserInput.Replace(" ","")+","; - string greeting = "Hi "+ Username + Environment.NewLine + Environment.NewLine; - //Most of these aren't used frequently enough to store and should be depreciated. - if (Message == "AgreementMismatch"){ - string_out = greeting + "This package uses Agreements, but this PR's AgreementsUrl doesn't match the AgreementsUrl on file."; - } else if (Message == "AppsAndFeaturesNew"){ - string_out = greeting + "This manifest adds Apps and Features entries that aren't present in previous PR versions. This entry should be added to the previous versions, or removed from this version."; - } else if (Message == "AppsAndFeaturesMissing"){ - string_out = greeting + "This manifest removes Apps and Features entries that are present in previous PR versions. This entry should be added to this version, to maintain version matching, and prevent the 'upgrade always available' situation with this package."; - } else if (Message == "AppFail"){ - string_out = greeting + "The application installed normally, but gave an error instead of launching:" + Environment.NewLine; - } else if (Message == "Approve"){ - string_out = greeting + "Do you approve of these changes?"; - } else if (Message == "AutomationBlock"){ - string_out = "This might be due to a network block of data centers, to prevent automated downloads."; - } else if (Message == "UserAgentBlock"){ - string_out = "This might be due to user-agent throttling."; - } else if (Message == "AutoValEnd"){ - string_out = "Automatic Validation ended with:" + Environment.NewLine + "> " + UserInput; - } else if (Message == "DriverInstall"){ - string_out = greeting + "The installation is unattended, but installs a driver which isn't unattended:" + Environment.NewLine + "Unfortunately, installer switches are not usually provided for this situation. Are you aware of an installer switch to have the driver silently install as well?"; - } else if (Message == "DefenderFail"){ - string_out = greeting + "The package didn't pass a Defender or similar security scan. This might be a false positive and we can rescan tomorrow."; - } else if (Message == "HashFailRegen"){ - string_out = "Closing to regenerate with correct hash."; - } else if (Message == "InstallerFail"){ - string_out = greeting + "The installer did not complete:" + Environment.NewLine; - } else if (Message == "InstallerMissing"){ - string_out = greeting + "Has the installer been removed?"; - } else if (Message == "InstallerNotSilent"){ - string_out = greeting + "The installation isn't unattended. Is there an installer switch to have the package install silently?"; - } else if (Message == "InstallsNormally"){ - string_out = "This package installs and launches normally in a Windows 10 VM."; - } else if (Message == "ListingDiff"){ - string_out = "This PR omits these files that are present in the current manifest:" + Environment.NewLine + "> " + UserInput; - } else if (Message == "ManifestVersion"){ - string_out = greeting + "We don't often see the `1.0.0` manifest version anymore. Would it be possible to upgrade this to the [1.5.0]($GitHubBaseUrl/tree/master/doc/manifest/schema/1.5.0) version, possibly through a tool such as [WinGetCreate](https://learn.microsoft.com/en-us/windows/package-manager/package/manifest?tabs=minschema%2Cversion-example), [YAMLCreate]($GitHubBaseUrl/blob/master/Tools/YamlCreate.ps1), or [Komac](https://github.com/russellbanks/Komac)? "; - } else if (Message == "ManValEnd"){ - string_out = "Manual Validation ended with:" + Environment.NewLine + "> " + UserInput; - } else if (Message == "NoCause"){ - string_out = "I'm not able to find the cause for this error. It installs and runs normally on a Windows 10 VM."; - } else if (Message == "NoExe"){ - string_out = greeting + "The installer doesn't appear to install any executables, only supporting files:" + Environment.NewLine + Environment.NewLine + "Is this expected?"; - } else if (Message == "NoRecentActivity"){ - string_out = "No recent activity."; - } else if (Message == "NotGoodFit"){ - string_out = greeting + "Unfortunately, this package might not be a good fit for inclusion into the WinGet public manifests. Please consider using a local manifest (\\WinGet install --manifest C:\\path\\to\\manifest\\files\\) for local installations. "; - } else if (Message == "NormalInstall"){ - string_out = "This package installs and launches normally in a Windows 10 VM."; - } else if (Message == "OneManifestPerPR"){ - string_out = greeting + "We have a limit of 1 manifest change, addition, or removal per PR. This PR modifies more than one PR. Can these changes be spread across multiple PRs?"; - } else if (Message == "Only64bit"){ - string_out = greeting + "Validation failed on the x86 package, and x86 packages are validated on 32-bit OSes. So this might be a 64-bit package."; - } else if (Message == "PackageFail"){ - string_out = greeting + "The package installs normally, but fails to run:" + Environment.NewLine; - } else if (Message == "PackageUrl"){ - string_out = greeting + "Could you add a PackageUrl?"; - } else if (Message == "Paths"){ - string_out = "Please update file name and path to match this change."; - } else if (Message == "PendingAttendedInstaller"){ - string_out = "Pending:" + Environment.NewLine + "* https://github.com/microsoft/winget-cli/issues/910"; - } else if (Message == "PolicyWrapper"){ - string_out = ""; - } else if (Message == "RemoveAsk"){ - string_out = greeting + "This package installer is still available. Why should it be removed?"; - } else if (Message == "SequenceNoElements"){ - string_out = "> Sequence contains no elements" + Environment.NewLine + Environment.NewLine + " - $GitHubBaseUrl/issues/133371"; - } else if (Message == "Unavailable"){ - string_out = greeting + "The installer isn't available from the publisher's website:"; - } else if (Message == "Unattended"){ - string_out = greeting + "The installation isn't unattended:" + Environment.NewLine + Environment.NewLine + "Is there an installer switch to bypass this and have it install automatically?"; - } else if (Message == "UrlBad"){ - string_out = greeting + "I'm not able to find this InstallerUrl from the PackageUrl. Is there another page on the developer's site that has a link to the package?"; - } else if (Message == "VersionCount"){ - string_out = greeting + "This manifest has the highest version number for this package. Is it available from another location? (This might be in error if the version is switching from semantic to string, or string to semantic.)"; - } else if (Message == "WhatIsIEDS"){ - string_out = greeting + "The label `Internal-Error-Dynamic-Scan` is a blanket error for one of a number of internal pipeline errors or issues that occurred during the Dynamic Scan step of our validation process. It only indicates a pipeline issue and does not reflect on your package. Sorry for any confusion caused."; - } else if (Message == "WordFilter"){ - string_out = "This manifest contains a term that is blocked:" + Environment.NewLine + Environment.NewLine + "> " + UserInput; - } - string_out += Environment.NewLine + Environment.NewLine + "(Automated response - build " + build + ".)"; - return string_out; - } - - public string AutoValLog(int PR){ - //int PR = Int32.Parse(inputBox_PRNumber.Text.Replace("#","")); - //Download - //Unzip - //Filter - //Post - string string_out = ""; - int DownloadSeconds = 4; - //StopProcess("photosapp"); - int? BuildNumber = ADOBuildFromPR(PR); - if (BuildNumber != null) { - - string Url =ADOMSBaseUrl+"/ed6a5dfa-6e7f-413b-842c-8305dd9e89e6/_apis/build/builds/" + BuildNumber + "/artifacts?artifactName=InstallationVerificationLogs&api-version=7.1&%24format=zip"; - System.Diagnostics.Process.Start(Url);//This downloads to Windows default location, which has already been set to DestinationPath - Thread.Sleep(DownloadSeconds*1000);//Sleep while download completes. - - RemoveItem(LogPath); - ZipFile.ExtractToDirectory(ZipPath, DestinationPath); - RemoveItem(ZipPath); - List UserInput = new List(); - - string[] files = Directory.GetFileSystemEntries(LogPath, "*", SearchOption.AllDirectories); - foreach (string file in files) { - if (file.Contains("png")) { - System.Diagnostics.Process.Start(file); - } //Open PNGs with default app. - string[] fileContents = GetContent(file).Split('\n'); - UserInput.AddRange(fileContents.Where(n => n.Contains("[FAIL]")).ToList()); +//[Message options: ("AgreementMismatch","AppFail","Approve","AutomationBlock","AutoValEnd","AppsAndFeaturesNew","AppsAndFeaturesMissing","DriverInstall","DefenderFail","HashFailRegen","InstallerFail","InstallerMissing","InstallerNotSilent","NormalInstall","InstallerUrlBad","ListingDiff","ManValEnd","ManifestVersion","NoCause","NoExe","NoRecentActivity","NotGoodFit","OneManifestPerPR","Only64bit","PackageFail","PackageUrl","Paths","PendingAttendedInstaller","PolicyWrapper","RemoveAsk","SequenceNoElements","Unattended","Unavailable","UrlBad","VersionCount","WhatIsIEDS","WordFilter")] + public string CannedMessage (string Message, string UserInput = "") { + string string_out = ""; + string Username = "@"+UserInput.Replace(" ","")+","; + string greeting = "Hi "+ Username + Environment.NewLine + Environment.NewLine; + //Most of these aren't used frequently enough to store and should be depreciated. + if (Message == "AgreementMismatch"){ + string_out = greeting + "This package uses Agreements, but this PR's AgreementsUrl doesn't match the AgreementsUrl on file."; + } else if (Message == "AppsAndFeaturesNew"){ + string_out = greeting + "This manifest adds Apps and Features entries that aren't present in previous PR versions. This entry should be added to the previous versions, or removed from this version."; + } else if (Message == "AppsAndFeaturesMissing"){ + string_out = greeting + "This manifest removes Apps and Features entries that are present in previous PR versions. This entry should be added to this version, to maintain version matching, and prevent the 'upgrade always available' situation with this package."; + } else if (Message == "AppFail"){ + string_out = greeting + "The application installed normally, but gave an error instead of launching:" + Environment.NewLine; + } else if (Message == "Approve"){ + string_out = greeting + "Do you approve of these changes?"; + } else if (Message == "AutomationBlock"){ + string_out = "This might be due to a network block of data centers, to prevent automated downloads."; + } else if (Message == "UserAgentBlock"){ + string_out = "This might be due to user-agent throttling."; + } else if (Message == "AutoValEnd"){ + string_out = "Automatic Validation ended with:" + Environment.NewLine + "> " + UserInput; + } else if (Message == "DriverInstall"){ + string_out = greeting + "The installation is unattended, but installs a driver which isn't unattended:" + Environment.NewLine + "Unfortunately, installer switches are not usually provided for this situation. Are you aware of an installer switch to have the driver silently install as well?"; + } else if (Message == "DefenderFail"){ + string_out = greeting + "The package didn't pass a Defender or similar security scan. This might be a false positive and we can rescan tomorrow."; + } else if (Message == "HashFailRegen"){ + string_out = "Closing to regenerate with correct hash."; + } else if (Message == "InstallerFail"){ + string_out = greeting + "The installer did not complete:" + Environment.NewLine; + } else if (Message == "InstallerMissing"){ + string_out = greeting + "Has the installer been removed?"; + } else if (Message == "InstallerNotSilent"){ + string_out = greeting + "The installation isn't unattended. Is there an installer switch to have the package install silently?"; + } else if (Message == "InstallsNormally"){ + string_out = "This package installs and launches normally in a Windows 10 VM."; + } else if (Message == "ListingDiff"){ + string_out = "This PR omits these files that are present in the current manifest:" + Environment.NewLine + "> " + UserInput; + } else if (Message == "ManifestVersion"){ + string_out = greeting + "We don't often see the `1.0.0` manifest version anymore. Would it be possible to upgrade this to the [1.5.0]($GitHubBaseUrl/tree/master/doc/manifest/schema/1.5.0) version, possibly through a tool such as [WinGetCreate](https://learn.microsoft.com/en-us/windows/package-manager/package/manifest?tabs=minschema%2Cversion-example), [YAMLCreate]($GitHubBaseUrl/blob/master/Tools/YamlCreate.ps1), or [Komac](https://github.com/russellbanks/Komac)? "; + } else if (Message == "ManValEnd"){ + string_out = "Manual Validation ended with:" + Environment.NewLine + "> " + UserInput; + } else if (Message == "NoCause"){ + string_out = "I'm not able to find the cause for this error. It installs and runs normally on a Windows 10 VM."; + } else if (Message == "NoExe"){ + string_out = greeting + "The installer doesn't appear to install any executables, only supporting files:" + Environment.NewLine + Environment.NewLine + "Is this expected?"; + } else if (Message == "NoRecentActivity"){ + string_out = "No recent activity."; + } else if (Message == "NotGoodFit"){ + string_out = greeting + "Unfortunately, this package might not be a good fit for inclusion into the WinGet public manifests. Please consider using a local manifest (\\WinGet install --manifest C:\\path\\to\\manifest\\files\\) for local installations. "; + } else if (Message == "NormalInstall"){ + string_out = "This package installs and launches normally in a Windows 10 VM."; + } else if (Message == "OneManifestPerPR"){ + string_out = greeting + "We have a limit of 1 manifest change, addition, or removal per PR. This PR modifies more than one PR. Can these changes be spread across multiple PRs?"; + } else if (Message == "Only64bit"){ + string_out = greeting + "Validation failed on the x86 package, and x86 packages are validated on 32-bit OSes. So this might be a 64-bit package."; + } else if (Message == "PackageFail"){ + string_out = greeting + "The package installs normally, but fails to run:" + Environment.NewLine; + } else if (Message == "PackageUrl"){ + string_out = greeting + "Could you add a PackageUrl?"; + } else if (Message == "Paths"){ + string_out = "Please update file name and path to match this change."; + } else if (Message == "PendingAttendedInstaller"){ + string_out = "Pending:" + Environment.NewLine + "* https://github.com/microsoft/winget-cli/issues/910"; + } else if (Message == "PolicyWrapper"){ + string_out = ""; + } else if (Message == "RemoveAsk"){ + string_out = greeting + "This package installer is still available. Why should it be removed?"; + } else if (Message == "SequenceNoElements"){ + string_out = "> Sequence contains no elements" + Environment.NewLine + Environment.NewLine + " - $GitHubBaseUrl/issues/133371"; + } else if (Message == "Unavailable"){ + string_out = greeting + "The installer isn't available from the publisher's website:"; + } else if (Message == "Unattended"){ + string_out = greeting + "The installation isn't unattended:" + Environment.NewLine + Environment.NewLine + "Is there an installer switch to bypass this and have it install automatically?"; + } else if (Message == "UrlBad"){ + string_out = greeting + "I'm not able to find this InstallerUrl from the PackageUrl. Is there another page on the developer's site that has a link to the package?"; + } else if (Message == "VersionCount"){ + string_out = greeting + "This manifest has the highest version number for this package. Is it available from another location? (This might be in error if the version is switching from semantic to string, or string to semantic.)"; + } else if (Message == "WhatIsIEDS"){ + string_out = greeting + "The label `Internal-Error-Dynamic-Scan` is a blanket error for one of a number of internal pipeline errors or issues that occurred during the Dynamic Scan step of our validation process. It only indicates a pipeline issue and does not reflect on your package. Sorry for any confusion caused."; + } else if (Message == "WordFilter"){ + string_out = "This manifest contains a term that is blocked:" + Environment.NewLine + Environment.NewLine + "> " + UserInput; + } + string_out += Environment.NewLine + Environment.NewLine + "(Automated response - build " + build + ".)"; + return string_out; + } + + public string AutoValLog(int PR){ + //int PR = Int32.Parse(inputBox_PRNumber.Text.Replace("#","")); + //Download + //Unzip + //Filter + //Post + string string_out = ""; + int DownloadSeconds = 4; + //StopProcess("photosapp"); + int? BuildNumber = ADOBuildFromPR(PR); + if (BuildNumber != null) { + + string Url =ADOMSBaseUrl+"/ed6a5dfa-6e7f-413b-842c-8305dd9e89e6/_apis/build/builds/" + BuildNumber + "/artifacts?artifactName=InstallationVerificationLogs&api-version=7.1&%24format=zip"; + System.Diagnostics.Process.Start(Url);//This downloads to Windows default location, which has already been set to DestinationPath + Thread.Sleep(DownloadSeconds*1000);//Sleep while download completes. + + RemoveItem(LogPath); + ZipFile.ExtractToDirectory(ZipPath, DestinationPath); + RemoveItem(ZipPath); + List UserInput = new List(); + + string[] files = Directory.GetFileSystemEntries(LogPath, "*", SearchOption.AllDirectories); + foreach (string file in files) { + if (file.Contains("png")) { + System.Diagnostics.Process.Start(file); + } //Open PNGs with default app. + string[] fileContents = GetContent(file).Split('\n'); + UserInput.AddRange(fileContents.Where(n => n.Contains("[FAIL]")).ToList()); UserInput.AddRange(fileContents.Where(n => n.Contains("error")).ToList()); UserInput.AddRange(fileContents.Where(n => n.Contains("exception")).ToList()); - UserInput.AddRange(fileContents.Where(n => n.Contains("exit code")).ToList()); + UserInput.AddRange(fileContents.Where(n => n.Contains("exit code")).ToList()); UserInput.AddRange(fileContents.Where(n => n.Contains("fail")).ToList()); UserInput.AddRange(fileContents.Where(n => n.Contains("No suitable")).ToList()); - UserInput.AddRange(fileContents.Where(n => n.Contains("not supported")).ToList());//not supported by this processor type + UserInput.AddRange(fileContents.Where(n => n.Contains("not supported")).ToList());//not supported by this processor type // UserInput += fileContents.Where(n => n.Contains("not applicable")).ToList()); UserInput.AddRange(fileContents.Where(n => n.Contains("Unable to locate nested installer")).ToList()); - UserInput.AddRange(fileContents.Where(n => n.Contains("Windows cannot install package")).ToList()); - } - - if (UserInput != null) { - // if (UserInput.Contains("[FAIL] Installer failed security check.") || UserInput.Contains("Operation did not complete successfully because the file contains a virus or potentially unwanted software")) { - //Get-GitHubPreset -Preset DefenderFail -PR PR - // } - - UserInput = UserInput.Where(n => !n.Contains(" success or error status: 0")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("Windows Error Reporting")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("--- End of inner exception stack trace ---")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("api-ms-win-core-errorhandling")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("because the current user does not have that package installed")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("Could not create system restore point")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("Dest filename")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("ERROR: Signature Update failed")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("Exception during executable launch operation System.InvalidOperationException: No process is associated with this object.")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("Exception(1) ")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("Exit code: 0")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("Installation failed with exit code -1978334972")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("ISWEBVIEW2INSTALLED")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("ResultException")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("SchedNetFx")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("Setting error JSON 1.0 fields")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("Standard error: ")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("Terminating context")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("The FileSystemWatcher has detected an error ")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("The process cannot access the file because it is being used by another process")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("ThrowifExceptional")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("Windows Installer installed the product")).ToList(); - UserInput = UserInput.Where(n => !n.Contains("with working directory \"D:TOOLS\".")).ToList(); - UserInput = UserInput.Distinct().ToList(); - - string message = "Automatic Validation ended with:" + Environment.NewLine + Environment.NewLine + "> " + string.Join(Environment.NewLine+"> ",UserInput) +Environment.NewLine + Environment.NewLine + Environment.NewLine + "(Automated response - build "+build+".)"; - - string_out = ReplyToPR(PR,"", "", "", message); - } else { - string message = "Automatic Validation ended with:" + Environment.NewLine + Environment.NewLine + "> No errors to post."+Environment.NewLine + Environment.NewLine + Environment.NewLine +"(Automated response - build "+build+".)"; - string_out = ReplyToPR(PR,"", "", "", message); - } - } else { - string message = "Automatic Validation ended with:" + Environment.NewLine + Environment.NewLine + "> ADO Build not found."+Environment.NewLine + Environment.NewLine +"(Automated response - build "+build+".)"; - string_out = ReplyToPR(PR,"", "", "", message); - } - return string_out; - } - - public void RandomIEDS(int VM = 0){ - if (VM == 0) { - VM = NextFreeVM(); - } - dynamic IEDSPRs = SearchGitHub("IEDS"); - int PR = 0;//(IEDSPRs["number"].Where(n => !n.Contains(GetStatus())["pr"]} | Get-Random); - int File = 0; - string ManifestType = ""; - string OldManifestType = ""; - while (ManifestType != "version") { - string string_CommitFile = CommitFile(PR,File); - string PackageIdentifier = YamlValue("PackageIdentifier",string_CommitFile).Replace("\"","").Replace("'",""); - //ManifestFile(VM,PR,string_CommitFile,PackageIdentifier); - OldManifestType = ManifestType; - ManifestType = YamlValue(ManifestType,string_CommitFile); - //if (OldManifestType == ManifestType) {break}; - File++; - } - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//====================-------------------- PR Tools --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - //Add user to PR: InvokeGitHubPRRequest -Method $Method -Type "assignees" -Data $User -Output StatusDescription - //Approve PR (needs work): InvokeGitHubPRRequest -PR $PR -Method Post -Type reviews - public string InvokeGitHubPRRequest(int PR, string Method = WebRequestMethods.Http.Get,string Type = "labels",string Data = "",string Path = "issues") { - //Method [ValidateSet("GET","DELETE","PATCH","POST","PUT")] - //Type [ValidateSet("assignees","comments","commits","files","labels","reviews","")] - //Path [ValidateSet("issues","pulls")] - //Output [ValidateSet("Content","Silent","StatusDescription")][ - Dictionary Response = new Dictionary(); - string Url = GitHubApiBaseUrl+"/"+Path+"/"+PR+"/"+Type; - string commitUrl = GitHubApiBaseUrl+"/pulls/"+PR+"/commits"; - //dynamic prData = FromJson(InvokeGitHubRequest(commitUrl)); - string commit = "";//((prData["commit"]["url"].Split("/"))[-1]); - - if ((Type == "") || (Type == "files") || (Type == "reviews")){ - Path = "pulls"; - Url = GitHubApiBaseUrl+"/"+Path+"/"+PR+"/"+Type; - } else if (Type == "comments") { - Response.Add("body",Data); - } else if (Type == "commits") { - Url = GitHubApiBaseUrl+"/"+Type+"/"+commit; - } else if (Type == "reviews") { - Path = "pulls"; - Response.Add("body",Data); - Response.Add("commit",commit); - Response.Add("event","APPROVE"); - } else if (Type == "") { - //Response.title = ""; - //Response.body = ""; - Response.Add("state","closed"); - Response.Add("base","master"); - } else { - Response.Add("ResponseType",Data); - } - - Url = Url.Replace("/$",""); - - string output_var; - if (Method == WebRequestMethods.Http.Get) { - output_var = InvokeGitHubRequest(Url,Method); - } else { - string Body = ToJson(Response); - output_var = InvokeGitHubRequest(Url,Method,Body); - } - - if (null == output_var) { - return "!"; - } else { - return output_var; - } - } - - public string ApprovePR(int PR,string Data = "") { - string commitUrl = GitHubApiBaseUrl+"/pulls/"+PR+"/commits"; - //dynamic prData = FromJson(InvokeGitHubRequest(commitUrl)); - string commit = "";//((prData["commit"]["url"].Split("/"))[-1]); - string Url = GitHubApiBaseUrl+"/pulls/"+PR+"/reviews"; - - - Dictionary Response = new Dictionary(); - Response.Add("body",Data); - Response.Add("commit",commit); - Response.Add("event","APPROVE"); - string Body = ToJson(Response); - - string out_var = InvokeGitHubRequest(Url,WebRequestMethods.Http.Post,Body); - return out_var; - } - - public string RetryPR(int PR) { - AddPRToRecord(PR,"Retry"); - return InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","@wingetbot run"); - } - - public string AddGitHubReviewComment(int PR, string Comment,int? StartLine,int Line) { - dynamic Commit = FromJson(InvokeGitHubPRRequest(PR, WebRequestMethods.Http.Get, "commits")); - string CommitID = Commit["sha"]; - string Filename = Commit["files"]["filename"]; - string Side = "RIGHT"; - if (Filename.GetType().BaseType.Name == "Array") { - //Filename = Filename[0]; - } - - Dictionary Response = new Dictionary (); - Response.Add("body", Comment); - Response.Add("body", Comment); - Response.Add("Commit_id", CommitID); - Response.Add("path", Filename); - if (null != StartLine) { - Response.Add("start_line", StartLine); - } - Response.Add("start_side", Side); - Response.Add("line", Line); - Response.Add("side", Side); - string Body = ToJson(Response); - - string uri = GitHubApiBaseUrl+"/pulls/"+PR+"/comments"; - string string_out = InvokeGitHubRequest(uri, WebRequestMethods.Http.Post, Body); - return string_out;//.StatusDescription; - } - - public int ADOBuildFromPR(int PR) { - dynamic content = FromJson(InvokeWebRequest(ADOMSBaseUrl+"/"+repo+"/_apis/build/builds?branchName=refs/pull/"+PR+"/merge&api-version=6.0")); - string href = content["value"][0]["_links"]["web"]["href"]; - int PRbuild = Int32.Parse(href.Split('=')[1]); - return PRbuild; - } - - public string LineFromCommitFile(int PR, int LogNumber, string SearchString = "Specified hash doesn't match", int NumberOfLines = 0){ - int PRbuild = ADOBuildFromPR(PR); + UserInput.AddRange(fileContents.Where(n => n.Contains("Windows cannot install package")).ToList()); + } + + if (UserInput != null) { + // if (UserInput.Contains("[FAIL] Installer failed security check.") || UserInput.Contains("Operation did not complete successfully because the file contains a virus or potentially unwanted software")) { + //Get-GitHubPreset -Preset DefenderFail -PR PR + // } + + UserInput = UserInput.Where(n => !n.Contains(" success or error status: 0")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("Windows Error Reporting")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("--- End of inner exception stack trace ---")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("api-ms-win-core-errorhandling")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("because the current user does not have that package installed")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("Could not create system restore point")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("Dest filename")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("ERROR: Signature Update failed")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("Exception during executable launch operation System.InvalidOperationException: No process is associated with this object.")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("Exception(1) ")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("Exit code: 0")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("Installation failed with exit code -1978334972")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("ISWEBVIEW2INSTALLED")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("ResultException")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("SchedNetFx")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("Setting error JSON 1.0 fields")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("Standard error: ")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("Terminating context")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("The FileSystemWatcher has detected an error ")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("The process cannot access the file because it is being used by another process")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("ThrowifExceptional")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("Windows Installer installed the product")).ToList(); + UserInput = UserInput.Where(n => !n.Contains("with working directory \"D:TOOLS\".")).ToList(); + UserInput = UserInput.Distinct().ToList(); + + string message = "Automatic Validation ended with:" + Environment.NewLine + Environment.NewLine + "> " + string.Join(Environment.NewLine+"> ",UserInput) +Environment.NewLine + Environment.NewLine + Environment.NewLine + "(Automated response - build "+build+".)"; + + string_out = ReplyToPR(PR,"", "", "", message); + } else { + string message = "Automatic Validation ended with:" + Environment.NewLine + Environment.NewLine + "> No errors to post."+Environment.NewLine + Environment.NewLine + Environment.NewLine +"(Automated response - build "+build+".)"; + string_out = ReplyToPR(PR,"", "", "", message); + } + } else { + string message = "Automatic Validation ended with:" + Environment.NewLine + Environment.NewLine + "> ADO Build not found."+Environment.NewLine + Environment.NewLine +"(Automated response - build "+build+".)"; + string_out = ReplyToPR(PR,"", "", "", message); + } + return string_out; + } + + public void RandomIEDS(int VM = 0){ + if (VM == 0) { + VM = NextFreeVM(); + } + dynamic IEDSPRs = SearchGitHub("IEDS"); + int PR = 0;//(IEDSPRs["number"].Where(n => !n.Contains(GetStatus())["pr"]} | Get-Random); + int File = 0; + string ManifestType = ""; + string OldManifestType = ""; + while (ManifestType != "version") { + string string_CommitFile = CommitFile(PR,File); + string PackageIdentifier = YamlValue("PackageIdentifier",string_CommitFile).Replace("\"","").Replace("'",""); + //ManifestFile(VM,PR,string_CommitFile,PackageIdentifier); + OldManifestType = ManifestType; + ManifestType = YamlValue(ManifestType,string_CommitFile); + //if (OldManifestType == ManifestType) {break}; + File++; + } + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//====================-------------------- PR Tools --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + //Add user to PR: InvokeGitHubPRRequest -Method $Method -Type "assignees" -Data $User -Output StatusDescription + //Approve PR (needs work): InvokeGitHubPRRequest -PR $PR -Method Post -Type reviews + public string InvokeGitHubPRRequest(int PR, string Method = WebRequestMethods.Http.Get,string Type = "labels",string Data = "",string Path = "issues") { + //Method [ValidateSet("GET","DELETE","PATCH","POST","PUT")] + //Type [ValidateSet("assignees","comments","commits","files","labels","reviews","")] + //Path [ValidateSet("issues","pulls")] + //Output [ValidateSet("Content","Silent","StatusDescription")][ + Dictionary Response = new Dictionary(); + string Url = GitHubApiBaseUrl+"/"+Path+"/"+PR+"/"+Type; + string commitUrl = GitHubApiBaseUrl+"/pulls/"+PR+"/commits"; + //dynamic prData = FromJson(InvokeGitHubRequest(commitUrl)); + string commit = "";//((prData["commit"]["url"].Split("/"))[-1]); + + if ((Type == "") || (Type == "files") || (Type == "reviews")){ + Path = "pulls"; + Url = GitHubApiBaseUrl+"/"+Path+"/"+PR+"/"+Type; + } else if (Type == "comments") { + Response.Add("body",Data); + } else if (Type == "commits") { + Url = GitHubApiBaseUrl+"/"+Type+"/"+commit; + } else if (Type == "reviews") { + Path = "pulls"; + Response.Add("body",Data); + Response.Add("commit",commit); + Response.Add("event","APPROVE"); + } else if (Type == "") { + //Response.title = ""; + //Response.body = ""; + Response.Add("state","closed"); + Response.Add("base","master"); + } else { + Response.Add("ResponseType",Data); + } + + Url = Url.Replace("/$",""); + + string output_var; + if (Method == WebRequestMethods.Http.Get) { + output_var = InvokeGitHubRequest(Url,Method); + } else { + string Body = ToJson(Response); + output_var = InvokeGitHubRequest(Url,Method,Body); + } + + if (null == output_var) { + return "!"; + } else { + return output_var; + } + } + + public string ApprovePR(int PR,string Data = "") { + string commitUrl = GitHubApiBaseUrl+"/pulls/"+PR+"/commits"; + //dynamic prData = FromJson(InvokeGitHubRequest(commitUrl)); + string commit = "";//((prData["commit"]["url"].Split("/"))[-1]); + string Url = GitHubApiBaseUrl+"/pulls/"+PR+"/reviews"; + + + Dictionary Response = new Dictionary(); + Response.Add("body",Data); + Response.Add("commit",commit); + Response.Add("event","APPROVE"); + string Body = ToJson(Response); + + string out_var = InvokeGitHubRequest(Url,WebRequestMethods.Http.Post,Body); + return out_var; + } + + public string RetryPR(int PR) { + AddPRToRecord(PR,"Retry"); + return InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","@wingetbot run"); + } + + public string AddGitHubReviewComment(int PR, string Comment,int? StartLine,int Line) { + dynamic Commit = FromJson(InvokeGitHubPRRequest(PR, WebRequestMethods.Http.Get, "commits")); + string CommitID = Commit["sha"]; + string Filename = Commit["files"]["filename"]; + string Side = "RIGHT"; + if (Filename.GetType().BaseType.Name == "Array") { + //Filename = Filename[0]; + } + + Dictionary Response = new Dictionary (); + Response.Add("body", Comment); + Response.Add("body", Comment); + Response.Add("Commit_id", CommitID); + Response.Add("path", Filename); + if (null != StartLine) { + Response.Add("start_line", StartLine); + } + Response.Add("start_side", Side); + Response.Add("line", Line); + Response.Add("side", Side); + string Body = ToJson(Response); + + string uri = GitHubApiBaseUrl+"/pulls/"+PR+"/comments"; + string string_out = InvokeGitHubRequest(uri, WebRequestMethods.Http.Post, Body); + return string_out;//.StatusDescription; + } + + public int ADOBuildFromPR(int PR) { + dynamic content = FromJson(InvokeWebRequest(ADOMSBaseUrl+"/"+repo+"/_apis/build/builds?branchName=refs/pull/"+PR+"/merge&api-version=6.0")); + string href = content["value"][0]["_links"]["web"]["href"]; + int PRbuild = Int32.Parse(href.Split('=')[1]); + return PRbuild; + } + + public string LineFromCommitFile(int PR, int LogNumber, string SearchString = "Specified hash doesn't match", int NumberOfLines = 0){ + int PRbuild = ADOBuildFromPR(PR); // Take the returned string, - string Content = InvokeWebRequest(ADOMSBaseUrl+"/ed6a5dfa-6e7f-413b-842c-8305dd9e89e6/_apis/build/builds/"+PRbuild+"/logs/"+LogNumber); + string Content = InvokeWebRequest(ADOMSBaseUrl+"/ed6a5dfa-6e7f-413b-842c-8305dd9e89e6/_apis/build/builds/"+PRbuild+"/logs/"+LogNumber); // slice by line breaks, - string[] SplitContent = Content.Split('\n'); - - string output = ""; - int StartLine = 0; - int EndLine = 0; - for (int i = 0; i < SplitContent.Length; i++) { + string[] SplitContent = Content.Split('\n'); + + string output = ""; + int StartLine = 0; + int EndLine = 0; + for (int i = 0; i < SplitContent.Length; i++) { // find the string containing the SearchString, - if (SplitContent[i].Contains(SearchString)) { - StartLine = i; - EndLine = StartLine + NumberOfLines; - } + if (SplitContent[i].Contains(SearchString)) { + StartLine = i; + EndLine = StartLine + NumberOfLines; + } // gather it and the next Length lines, - if (StartLine <= i && i <= EndLine) { - // Join these into a single string by line breaks - output += SplitContent[i] + Environment.NewLine; - } - } - //and return. - return output; - } - - public void GetPRApproval(string Clip = "",int PR = 0,string PackageIdentifier = ""){ - if (Clip == "") { - Clip = Clipboard.GetText(); - } - if (PR == 0) { + if (StartLine <= i && i <= EndLine) { + // Join these into a single string by line breaks + output += SplitContent[i] + Environment.NewLine; + } + } + //and return. + return output; + } + + public void GetPRApproval(string Clip = "",int PR = 0,string PackageIdentifier = ""){ + if (Clip == "") { + Clip = Clipboard.GetText(); + } + if (PR == 0) { PR = Int32.Parse(inputBox_PRNumber.Text.Replace("#","")); - } - if (PackageIdentifier == "") { + } + if (PackageIdentifier == "") { PackageIdentifier = ((Clip.Split(':'))[1].Split(' ')[0]); - } - //Happens only during Bulk Approval, when manifest is in clipboard. + } + //Happens only during Bulk Approval, when manifest is in clipboard. string auth = GetFileData(DataFileName,PackageIdentifier,"gitHubUserName"); - List Approver = auth.Split('/').Where(n => !n.Contains("(")).ToList(); - string string_joined = string.Join("; @", Approver); - ReplyToPR(PR,string_joined,"Approve","Needs-Review"); - } - - public string ReplyToPR(int PR,string string_CannedMessage, string string_UserInput = "", string Policy = "", string Body = ""){ -/* - Dictionary PRContent = new Dictionary(); - PRContent = FromJson(InvokeGitHubPRRequest(PR,"","content")); - string from_mid = ToJson(PRContent["user"]); - Dictionary to_user = new Dictionary(); - to_user = FromJson(from_mid); - string string_UserInput = to_user["login"].ToString(); -*/ - if (Body == "") { - Body = CannedMessage(string_CannedMessage,string_UserInput); - } - if (Policy != "") { - Body += "\n"; - } - return InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments",Body,"issues"); - } - - public bool PRHasNonstandardComments(int PR) { - //Check for any non-standard PR comments. Return true if any are non-standard, and false if none are non-standard. - List list_comments = new List(); - bool out_bool = false; - dynamic[] comments = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Get,"comments")); - - if (comments != null) { - for (int c = 0; c < comments.Length; c++) { - list_comments.Add(comments[c]["body"]); - } - foreach (string StdComment in StandardPRComments) { - foreach (string comment in list_comments) { - if (comment.Contains(StdComment)) { - list_comments = list_comments.Where(n => n != comment).ToList(); - } - } - } - } - if (list_comments.Count > 0) { - out_bool = true; - } - return out_bool; - } - - public DataTable PRStateFromComments(int PR){ - dynamic[] Comments = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Get,"comments")); //| select created_at,@{n="UserName";e={$_.user.login -replace "\[bot\]"}},body) - //Robot usernames - string Wingetbot = "wingetbot"; - string AzurePipelines = "azure-pipelines"; - string FabricBot = "microsoft-github-policy-service"; - // List OverallState = new List(); - outBox_msg.AppendText(Environment.NewLine + "PRStateFromComments: "+ Comments.Length); - -DataTable OverallState = new DataTable(); -OverallState.Columns.Add("UserName", typeof(string)); -OverallState.Columns.Add("body", typeof(string)); -OverallState.Columns.Add("created_at", typeof(DateTime)); -OverallState.Columns.Add("State", typeof(string)); - - - foreach (dynamic Comment in Comments) { - outBox_msg.AppendText(Environment.NewLine + "Comment "+ ToJson(Comment)); - string State = ""; - string UserName = (string)Comment["user"]["login"]; - string body = (string)Comment["body"]; - //DateTime created_at = TimeZoneInfo.ConvertTimeBySystemTimeZoneId((DateTime)Comment["created_at"], "Pacific Standard Time"); - outBox_msg.AppendText(Environment.NewLine + "State "+ State + "UserName "+ UserName + "body "+ body); - - if (string.Equals(UserName, Wingetbot) && body.Contains("Service Badge")) { - State = "PreRun"; - } - if (body.Contains("AzurePipelines run") || - body.Contains("AzurePipelines run") || - body.Contains("azp run") || - body.Contains("wingetbot run")) { - State = "PreValidation"; - } - if (string.Equals(UserName, AzurePipelines) && body.Contains("Azure Pipelines successfully started running 1 pipeline")) { - State = "Running"; - } - if (string.Equals(UserName, FabricBot) && body.Contains("The check-in policies require a moderator to approve PRs from the community")) { - State = "PreApproval"; - } - if (string.Equals(UserName, gitHubUserName) && body.Contains("The package didn't pass a Defender or similar security scan")) { - State = "DefenderFail"; - } - if (string.Equals(UserName, gitHubUserName) && body.Contains("Status Code: 200")) { - State = "InstallerAvailable"; - } - if (string.Equals(UserName, gitHubUserName) && body.Contains("Response status code does not indicate success")) { - State = "InstallerRemoved"; - } - if (string.Equals(UserName, gitHubUserName) && body.Contains("which is greater than the current manifest's version")) { - State = "VersionParamMismatch"; - } - if (string.Equals(UserName, FabricBot) && ( - string.Equals(body, "The package manager bot determined there was an issue with one of the installers listed in the url field") || //URL error - string.Equals(body, "The package manager bot determined there was an issue with installing the application correctly") || //Validation-Installation-Error - string.Equals(body, "The pull request encountered an internal error and has been assigned to a developer to investigate") || //Internal-Error - string.Equals(body, "this application failed to install without user input") || //Validation-Unattended-Failed - string.Equals(body, "Please verify the manifest file is compliant with the package manager") //Manifest-Validation-Error - )) { - State = "LabelAction"; - } - if (string.Equals(UserName, FabricBot) && body.Contains("One or more of the installer URLs doesn't appear valid")) { - State = "DomainReview"; - } - if (string.Equals(UserName, gitHubUserName) && body.Contains("Sequence contains no elements")) { - State = "SequenceError"; - } - if (string.Equals(UserName, gitHubUserName) && body.Contains("This manifest has the highest version number for this package")) { - State = "HighestVersionRemoval"; - } - if (string.Equals(UserName, gitHubUserName) && body.Contains("SQL error or missing database")) { - State = "SQLMissingError"; - } - if (string.Equals(UserName, FabricBot) && body.Contains("The package manager bot determined changes have been requested to your PR")) { - State = "ChangesRequested"; - } - if (string.Equals(UserName, FabricBot) && body.Contains("I am sorry to report that the Sha256 Hash does not match the installer")) { - State = "HashMismatch"; - } - if (string.Equals(UserName, gitHubUserName) && body.Contains("Automatic Validation ended with:")) { - State = "AutoValEnd"; - } - if (string.Equals(UserName, gitHubUserName) && body.Contains("Manual Validation ended with:")) { - State = "ManValEnd"; - } - if (string.Equals(UserName, AzurePipelines) && body.Contains("Pull request contains merge conflicts")) { - State = "MergeConflicts"; - } - if (string.Equals(UserName, FabricBot) && body.Contains("Validation has completed")) { - State = "ValidationCompleted"; - } - if (string.Equals(UserName, Wingetbot) && body.Contains("Publish pipeline succeeded for this Pull Request")) { - State = "PublishSucceeded"; - } - if (!string.Equals(State, "")) { -DataRow newRow = OverallState.NewRow(); -newRow["UserName"] = UserName; -newRow["body"] = body; -newRow["created_at"] = Comment["created_at"]; -newRow["State"] = State; -OverallState.Rows.Add(newRow); - // OverallState.Add(State); //| select @{n="event";e={State}},created_at; - } - } - return OverallState; - } - -/* -vm = GetVM(VM); -bool ConnectionStatus = vm.Scope.IsConnected; - -*/ - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Network Tools --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - //GET = Read; POST = Append; PUT = Overwrite; DELETE = delete - public string InvokeGitHubRequest(string Url,string Method = WebRequestMethods.Http.Get,string Body = ""){ - string response_out = ""; - //This wrapper function is a relic of the PowerShell version, and should be obviated during a refactor. The need it meets in the PowerShell version - inject authentication headers into web requests, is met here directly inside the InvokeWebRequest function below. But having it here during the port process (code portage) reduces the amount of work needed to port the other functions were written to use it. - - if (Body == "") { - try { - response_out = InvokeWebRequest(Url, Method,"",true);// Headers Body -ContentType "application/json"; - } catch (Exception e) { - //MessageBox.Show("Wrong request!" + ex.Message, "Error"); - response_out = e.Message; - } - } else { - try { - response_out = InvokeWebRequest(Url, Method, Body,true);// Headers -ContentType "application/json"; - } catch (Exception e) { - //MessageBox.Show("Wrong request!" + ex.Message, "Error"); - response_out = e.Message; - } - } - - return response_out; - } - - public void CheckInstaller(int PR) { - dynamic Pull = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Get,"files")); - string PullInstallerContents = DecodeGitHubFile(FromJson(InvokeGitHubRequest(Pull[0]["contents_url"]))["content"]); - string Url = YamlValue("InstallerUrl",PullInstallerContents); - string string_out = "Error: Not successful but no error code from internal call."; - try { - string_out = "Status code: 200"; - string_out = InvokeWebRequest(Url, "Head");//.StatusCode; - }catch (Exception err) { - string_out = err.Message; - } - string Body = "URL: "+Url+" \n"+string_out + "\n\n(Automated message - build "+build+")"; - //If ($Body -match "Response status code does not indicate success") { - //string_out += Get-GitHubPreset InstallerMissing -PR $PR - //} //Need this to only take action on new PRs, not removal PRs. - InvokeGitHubPRRequest(PR, WebRequestMethods.Http.Post, "comments", Body); - } - - public string FindWinGetVersion(string PackageIdentifier) { - string string_out = ""; - string command = "winget search " + PackageIdentifier + " --exact --disable-interactivity"; - - Process process = new Process(); - StreamWriter StandardInput; - StreamReader StandardOut; - ProcessStartInfo processStartInfo = new ProcessStartInfo("PowerShell.exe"); - processStartInfo.UseShellExecute = false; - processStartInfo.RedirectStandardInput = true; - processStartInfo.RedirectStandardOutput = true; - processStartInfo.RedirectStandardError = true; - processStartInfo.CreateNoWindow = true; - process.StartInfo = processStartInfo; - process.Start(); - - StandardInput = process.StandardInput; - StandardOut = process.StandardOutput; - StandardInput.AutoFlush = true; - StandardInput.WriteLine(command); - StandardInput.Close(); - - string_out = StandardOut.ReadToEnd(); - try { - string_out = string_out - .Split('\n') - .Where(n => !n.Contains("disable-interactivity")) - .Where(n => n.ToLower().Contains(PackageIdentifier.ToLower())).FirstOrDefault(); - - int stringStart = string_out.IndexOf(PackageIdentifier); - string_out = string_out.Substring(stringStart); - string_out = string_out.Split(' ')[1]; - } catch { - string_out = ""; - } - return string_out; - } - - public int FindWinGetTotalVersions(string PackageIdentifier) { - string string_out = ""; - string command = "(((winget search " + PackageIdentifier + " --exact --disable-interactivity --versions --disable-interactivity) -join ',' -replace '-+,','' -split 'Version,')[1] -split ',').count"; - - Process process = new Process(); - StreamWriter StandardInput; - StreamReader StandardOut; - ProcessStartInfo processStartInfo = new ProcessStartInfo("PowerShell.exe"); - processStartInfo.UseShellExecute = false; - processStartInfo.RedirectStandardInput = true; - processStartInfo.RedirectStandardOutput = true; - processStartInfo.RedirectStandardError = true; - processStartInfo.CreateNoWindow = true; - process.StartInfo = processStartInfo; - process.Start(); - - StandardInput = process.StandardInput; - StandardOut = process.StandardOutput; - StandardInput.AutoFlush = true; - StandardInput.WriteLine(command); - StandardInput.Close(); - - string_out = StandardOut.ReadToEnd(); - // outBox_msg.AppendText(Environment.NewLine + "Testing2: " + string_out); - foreach (string string_in in string_out.Split('\n')) { - if (string_in.Length > 1 && string_in.Length < 5) { - string_out = string_in; - } - } - return Convert.ToInt32(string_out); - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================------------------- Validation Starts Here ------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - -public void ValidateManifest(int VM = 0, string PackageIdentifier = "", string PackageVersion = "", int PR = 0, string Arch = "",string Scope = "", string InstallerType = "",string OS = "",string Locale = "",bool InspectNew = false,bool notElevated = false,string MinimumOSVersion = "", string ManualDependency = "", bool NoFiles = false, string installerLine = "", string Operation = "Scan"){ - /* Vaidation orchestration - Construct WinGet args string and populate script variables. - - if Configure - skip all of this and just add the Configure file as the WinGet arg. - Construct the VM script from the script variables and output to commands file. - - if Configure - Construct a similar script and perform the same output. - Construct the manifest from the files in the clipboard. - - if NoFiles, skip. - Perform new package inspection. - - if not InspectNew, skip. - Revert selected VM and launch its window. - */ - string clipInput = Clipboard.GetText(); - // [ValidateSet("x86","x64","arm","arm32","arm64","neutral")] - // [ValidateSet("User","Machine")] - //PowerShell version passes forward Get-YamlVale's Get-Clipboard call, to get any MinimumOSVersion your clipboard. Because this is only supposed to be run during validation, when you've got the PR with manifest on your clipboard. - if (OS == "") { - try{ - var version = YamlValue("MinimumOSVersion", MinimumOSVersion); - if (Version.Parse(version) >= Version.Parse("10.0.22000.0")){ - OS = "Win11"; - } else{ - OS = "Win10"; - } - } catch { - OS = "Win10"; - } - } - if (VM == 0) { - VM = NextFreeVM(OS);//.Replace("vm",""); - } - if (VM == 0){ - //Write-Host "No available OS VMs"; - GenerateVM(OS); - //break; - } - RevertVM(VM); - //[ValidateSet("Win10","Win11")] - //[ValidateSet("Configure","DevHomeConfig","Pin","Scan")] - int lowerIndex = clipInput.IndexOf("Do not share my personal information") -1;//This is the last visible string at the bottom of the Files page on GitHub. - - string clip = clipInput; - if (clipInput.Contains("Do not share my personal information")) { - clip = clipInput.Substring(0,lowerIndex); - } - if (clip.Contains("PackageIdentifier: ")) { - if (PackageIdentifier == "") { - PackageIdentifier = YamlValue("PackageIdentifier",clip).Replace("\"","").Replace("'",""); - } - } - if (clip.Contains("PackageVersion: ")) { - if (PackageVersion == "") { - PackageVersion = YamlValue("PackageVersion",clip).Replace("\"","").Replace("'",""); - } - } - if (PR == 0) { - PR = PRNumber(clip,true).FirstOrDefault(); - } - string RemoteFolder = "//"+remoteIP+"/ManVal/vm/"+VM.ToString(); - if (installerLine == "") { - installerLine = "--manifest "+RemoteFolder+"/manifest"; - } - string optionsLine = ""; - - string logLine = OS.ToString(); - string nonElevatedShell = ""; - string logExt = "log"; - string VMFolder = MainFolder+"\\vm\\"+VM; - string manifestFolder = VMFolder+"\\manifest"; - string CmdsFileName = VMFolder+"\\cmds.ps1"; - string packageName = ""; - string wingetArgs = ""; - - string archDetect = ""; - string archColor = "yellow"; - string MDLog = ""; - - if (Operation == "Configure") { - //Write-Host "Running Manual Config build "build" on vmVM for ConfigureFile" - wingetArgs = "configure -f "+RemoteFolder+"/manifest/config.yaml --accept-configuration-agreements --disable-interactivity"; - InspectNew = false; - } else { - if (PackageIdentifier == "") { - //Write-Host "Bad PackageIdentifier: "PackageIdentifier"" - //Break; - Clipboard.SetText(PackageIdentifier); - } - //Write-Host "Running Manual Validation build "build" on vmVM for package "PackageIdentifier" version $PackageVersion" - - if (PackageVersion != "") { - logExt = PackageVersion+"."+logExt; - logLine += "version "+PackageVersion+" "; - } - if (Locale != "") { - logExt = Locale+"."+logExt; - optionsLine += " --locale "+Locale+" "; - logLine += "locale "+Locale+" "; - } - if (Scope != "") { - logExt = Scope+"."+logExt; - optionsLine += " --scope "+Scope+" "; - logLine += "scope "+Scope+" "; - } - if (InstallerType != "") { - logExt = InstallerType+"."+logExt; - optionsLine += " --installer-type "+InstallerType+" "; - logLine += "InstallerType $"+InstallerType+" "; - } - string[] Archs = clip.Split(' ') - .Where(n => !n.Contains("arm")) - .Where(n => n.Contains("Architecture: ")).ToArray(); - for (int i = 0; i < Archs.Length; i++) { - Archs[i] = (Archs[i].Split(':'))[1].Trim(); - } - - if (Archs != null) { - if (Arch != null) { - archDetect = "Selected"; - } else { - Arch = Archs[0]; - archDetect = "Detected"; - } - archColor = "red"; - } - if (Arch != "") { - logExt = Arch+"."+logExt; - //Write-Host "archDetect Arch Arch of available architectures: Archs" -f archColor - logLine += Arch+" "; - } - if (ManualDependency != "") { - MDLog = ManualDependency; - //Write-Host " = = = = Installing manual dependency "+ManualDependency+" = = = = " - ManualDependency = "Out-Log 'Installing manual dependency "+MDLog+".';Start-Process 'winget' 'install "+MDLog+" --accept-package-agreements --ignore-local-archive-malware-scan' -wait\n"; - } - // if (notElevated == true || clip.Contains("ElevationRequirement: elevationProhibited")) { - //Write-Host " = = = = Detecting de-elevation requirement = = = = " - // nonElevatedShell = "if ([bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match 'S-1-5-32-544')){& explorer.exe 'C:\\Program Files\\PowerShell\\7\\pwsh.exe';Stop-Process (Get-Process WindowsTerminal).id}"; - //if elevated, run^^ and exit, else run cmds. - // } - packageName = (PackageIdentifier.Split('.'))[1]; - wingetArgs = "install "+optionsLine+" "+installerLine+" --accept-package-agreements --ignore-local-archive-malware-scan"; - } - List cmdsOut = new List(); -/* - - - - - - - - - - - - - -*/ -// - caret double quote = replace with backslash double quote -// - caret dollarsign = 2nd run remove caret - if (Operation == "Configure") { - cmdsOut.Add(""+nonElevatedShell+""); + List Approver = auth.Split('/').Where(n => !n.Contains("(")).ToList(); + string string_joined = string.Join("; @", Approver); + ReplyToPR(PR,string_joined,"Approve","Needs-Review"); + } + + public string ReplyToPR(int PR,string string_CannedMessage, string string_UserInput = "", string Policy = "", string Body = ""){ +/* + Dictionary PRContent = new Dictionary(); + PRContent = FromJson(InvokeGitHubPRRequest(PR,"","content")); + string from_mid = ToJson(PRContent["user"]); + Dictionary to_user = new Dictionary(); + to_user = FromJson(from_mid); + string string_UserInput = to_user["login"].ToString(); +*/ + if (Body == "") { + Body = CannedMessage(string_CannedMessage,string_UserInput); + } + if (Policy != "") { + Body += "\n"; + } + return InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments",Body,"issues"); + } + + public bool PRHasNonstandardComments(int PR) { + //Check for any non-standard PR comments. Return true if any are non-standard, and false if none are non-standard. + List list_comments = new List(); + bool out_bool = false; + dynamic[] comments = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Get,"comments")); + + if (comments != null) { + for (int c = 0; c < comments.Length; c++) { + list_comments.Add(comments[c]["body"]); + } + foreach (string StdComment in StandardPRComments) { + foreach (string comment in list_comments) { + if (comment.Contains(StdComment)) { + list_comments = list_comments.Where(n => n != comment).ToList(); + } + } + } + } + if (list_comments.Count > 0) { + out_bool = true; + } + return out_bool; + } + + public DataTable PRStateFromComments(int PR){ + dynamic[] Comments = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Get,"comments")); //| select created_at,@{n="UserName";e={$_.user.login -replace "\[bot\]"}},body) + //Robot usernames + string Wingetbot = "wingetbot"; + string AzurePipelines = "azure-pipelines"; + string FabricBot = "microsoft-github-policy-service"; + // List OverallState = new List(); + outBox_msg.AppendText(Environment.NewLine + "PRStateFromComments: "+ Comments.Length); + +DataTable OverallState = new DataTable(); +OverallState.Columns.Add("UserName", typeof(string)); +OverallState.Columns.Add("body", typeof(string)); +OverallState.Columns.Add("created_at", typeof(DateTime)); +OverallState.Columns.Add("State", typeof(string)); + + + foreach (dynamic Comment in Comments) { + outBox_msg.AppendText(Environment.NewLine + "Comment "+ ToJson(Comment)); + string State = ""; + string UserName = (string)Comment["user"]["login"]; + string body = (string)Comment["body"]; + //DateTime created_at = TimeZoneInfo.ConvertTimeBySystemTimeZoneId((DateTime)Comment["created_at"], "Pacific Standard Time"); + outBox_msg.AppendText(Environment.NewLine + "State "+ State + "UserName "+ UserName + "body "+ body); + + if (string.Equals(UserName, Wingetbot) && body.Contains("Service Badge")) { + State = "PreRun"; + } + if (body.Contains("AzurePipelines run") || + body.Contains("AzurePipelines run") || + body.Contains("azp run") || + body.Contains("wingetbot run")) { + State = "PreValidation"; + } + if (string.Equals(UserName, AzurePipelines) && body.Contains("Azure Pipelines successfully started running 1 pipeline")) { + State = "Running"; + } + if (string.Equals(UserName, FabricBot) && body.Contains("The check-in policies require a moderator to approve PRs from the community")) { + State = "PreApproval"; + } + if (string.Equals(UserName, gitHubUserName) && body.Contains("The package didn't pass a Defender or similar security scan")) { + State = "DefenderFail"; + } + if (string.Equals(UserName, gitHubUserName) && body.Contains("Status Code: 200")) { + State = "InstallerAvailable"; + } + if (string.Equals(UserName, gitHubUserName) && body.Contains("Response status code does not indicate success")) { + State = "InstallerRemoved"; + } + if (string.Equals(UserName, gitHubUserName) && body.Contains("which is greater than the current manifest's version")) { + State = "VersionParamMismatch"; + } + if (string.Equals(UserName, FabricBot) && ( + string.Equals(body, "The package manager bot determined there was an issue with one of the installers listed in the url field") || //URL error + string.Equals(body, "The package manager bot determined there was an issue with installing the application correctly") || //Validation-Installation-Error + string.Equals(body, "The pull request encountered an internal error and has been assigned to a developer to investigate") || //Internal-Error + string.Equals(body, "this application failed to install without user input") || //Validation-Unattended-Failed + string.Equals(body, "Please verify the manifest file is compliant with the package manager") //Manifest-Validation-Error + )) { + State = "LabelAction"; + } + if (string.Equals(UserName, FabricBot) && body.Contains("One or more of the installer URLs doesn't appear valid")) { + State = "DomainReview"; + } + if (string.Equals(UserName, gitHubUserName) && body.Contains("Sequence contains no elements")) { + State = "SequenceError"; + } + if (string.Equals(UserName, gitHubUserName) && body.Contains("This manifest has the highest version number for this package")) { + State = "HighestVersionRemoval"; + } + if (string.Equals(UserName, gitHubUserName) && body.Contains("SQL error or missing database")) { + State = "SQLMissingError"; + } + if (string.Equals(UserName, FabricBot) && body.Contains("The package manager bot determined changes have been requested to your PR")) { + State = "ChangesRequested"; + } + if (string.Equals(UserName, FabricBot) && body.Contains("I am sorry to report that the Sha256 Hash does not match the installer")) { + State = "HashMismatch"; + } + if (string.Equals(UserName, gitHubUserName) && body.Contains("Automatic Validation ended with:")) { + State = "AutoValEnd"; + } + if (string.Equals(UserName, gitHubUserName) && body.Contains("Manual Validation ended with:")) { + State = "ManValEnd"; + } + if (string.Equals(UserName, AzurePipelines) && body.Contains("Pull request contains merge conflicts")) { + State = "MergeConflicts"; + } + if (string.Equals(UserName, FabricBot) && body.Contains("Validation has completed")) { + State = "ValidationCompleted"; + } + if (string.Equals(UserName, Wingetbot) && body.Contains("Publish pipeline succeeded for this Pull Request")) { + State = "PublishSucceeded"; + } + if (!string.Equals(State, "")) { +DataRow newRow = OverallState.NewRow(); +newRow["UserName"] = UserName; +newRow["body"] = body; +newRow["created_at"] = Comment["created_at"]; +newRow["State"] = State; +OverallState.Rows.Add(newRow); + // OverallState.Add(State); //| select @{n="event";e={State}},created_at; + } + } + return OverallState; + } + +/* +vm = GetVM(VM); +bool ConnectionStatus = vm.Scope.IsConnected; + +*/ + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Network Tools --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + //GET = Read; POST = Append; PUT = Overwrite; DELETE = delete + public string InvokeGitHubRequest(string Url,string Method = WebRequestMethods.Http.Get,string Body = ""){ + string response_out = ""; + //This wrapper function is a relic of the PowerShell version, and should be obviated during a refactor. The need it meets in the PowerShell version - inject authentication headers into web requests, is met here directly inside the InvokeWebRequest function below. But having it here during the port process (code portage) reduces the amount of work needed to port the other functions were written to use it. + + if (Body == "") { + try { + response_out = InvokeWebRequest(Url, Method,"",true);// Headers Body -ContentType "application/json"; + } catch (Exception e) { + //MessageBox.Show("Wrong request!" + ex.Message, "Error"); + response_out = e.Message; + } + } else { + try { + response_out = InvokeWebRequest(Url, Method, Body,true);// Headers -ContentType "application/json"; + } catch (Exception e) { + //MessageBox.Show("Wrong request!" + ex.Message, "Error"); + response_out = e.Message; + } + } + + return response_out; + } + + public void CheckInstaller(int PR) { + dynamic Pull = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Get,"files")); + string PullInstallerContents = DecodeGitHubFile(FromJson(InvokeGitHubRequest(Pull[0]["contents_url"]))["content"]); + string Url = YamlValue("InstallerUrl",PullInstallerContents); + string string_out = "Error: Not successful but no error code from internal call."; + try { + string_out = "Status code: 200"; + string_out = InvokeWebRequest(Url, "Head");//.StatusCode; + }catch (Exception err) { + string_out = err.Message; + } + string Body = "URL: "+Url+" \n"+string_out + "\n\n(Automated message - build "+build+")"; + //If ($Body -match "Response status code does not indicate success") { + //string_out += Get-GitHubPreset InstallerMissing -PR $PR + //} //Need this to only take action on new PRs, not removal PRs. + InvokeGitHubPRRequest(PR, WebRequestMethods.Http.Post, "comments", Body); + } + + public string FindWinGetVersion(string PackageIdentifier) { + string string_out = ""; + // string command = "winget search " + PackageIdentifier + " --exact --disable-interactivity"; + string commandSpace = " "; + string commandSearch = "search"; + string commandPackageIdentifier = PackageIdentifier; + string commandFlags = "--exact --disable-interactivity"; + string Arguments = commandSpace + commandSearch + commandSpace + PackageIdentifier + commandSpace + commandFlags; + // string command = "winget" + Arguments; + + Process process = new Process(); + StreamWriter StandardInput; + StreamReader StandardOut; + // ProcessStartInfo processStartInfo = new ProcessStartInfo("PowerShell.exe"); + ProcessStartInfo processStartInfo = new ProcessStartInfo("winget.exe"); + processStartInfo.UseShellExecute = false; + processStartInfo.RedirectStandardInput = true; + processStartInfo.RedirectStandardOutput = true; + processStartInfo.RedirectStandardError = true; + processStartInfo.CreateNoWindow = true; + processStartInfo.Arguments = Arguments; + process.StartInfo = processStartInfo; + process.Start(); + + StandardInput = process.StandardInput; + StandardOut = process.StandardOutput; + StandardInput.AutoFlush = true; + StandardInput.WriteLine(command); + StandardInput.Close(); + + string_out = StandardOut.ReadToEnd(); + try { + string_out = string_out + .Split('\n') + .Where(n => !n.Contains("disable-interactivity")) + .Where(n => n.ToLower().Contains(PackageIdentifier.ToLower())).FirstOrDefault(); + + int stringStart = string_out.IndexOf(PackageIdentifier); + string_out = string_out.Substring(stringStart); + string_out = string_out.Split(' ')[1]; + } catch { + string_out = ""; + } + return string_out; + } + + public int FindWinGetTotalVersions(string PackageIdentifier) { + string string_out = ""; + string command = "(((winget search " + PackageIdentifier + " --exact --disable-interactivity --versions --disable-interactivity) -join ',' -replace '-+,','' -split 'Version,')[1] -split ',').count"; + + Process process = new Process(); + StreamWriter StandardInput; + StreamReader StandardOut; + ProcessStartInfo processStartInfo = new ProcessStartInfo("PowerShell.exe"); + processStartInfo.UseShellExecute = false; + processStartInfo.RedirectStandardInput = true; + processStartInfo.RedirectStandardOutput = true; + processStartInfo.RedirectStandardError = true; + processStartInfo.CreateNoWindow = true; + process.StartInfo = processStartInfo; + process.Start(); + + StandardInput = process.StandardInput; + StandardOut = process.StandardOutput; + StandardInput.AutoFlush = true; + StandardInput.WriteLine(command); + StandardInput.Close(); + + string_out = StandardOut.ReadToEnd(); + // outBox_msg.AppendText(Environment.NewLine + "Testing2: " + string_out); + foreach (string string_in in string_out.Split('\n')) { + if (string_in.Length > 1 && string_in.Length < 5) { + string_out = string_in; + } + } + return Convert.ToInt32(string_out); + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================------------------- Validation Starts Here ------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + +public void ValidateManifest(int VM = 0, string PackageIdentifier = "", string PackageVersion = "", int PR = 0, string Arch = "",string Scope = "", string InstallerType = "",string OS = "",string Locale = "",bool InspectNew = false,bool notElevated = false,string MinimumOSVersion = "", string ManualDependency = "", bool NoFiles = false, string installerLine = "", string Operation = "Scan"){ + /* Vaidation orchestration + Construct WinGet args string and populate script variables. + - if Configure - skip all of this and just add the Configure file as the WinGet arg. + Construct the VM script from the script variables and output to commands file. + - if Configure - Construct a similar script and perform the same output. + Construct the manifest from the files in the clipboard. + - if NoFiles, skip. + Perform new package inspection. + - if not InspectNew, skip. + Revert selected VM and launch its window. + */ + string clipInput = Clipboard.GetText(); + // [ValidateSet("x86","x64","arm","arm32","arm64","neutral")] + // [ValidateSet("User","Machine")] + //PowerShell version passes forward Get-YamlVale's Get-Clipboard call, to get any MinimumOSVersion your clipboard. Because this is only supposed to be run during validation, when you've got the PR with manifest on your clipboard. + if (OS == "") { + try{ + var version = YamlValue("MinimumOSVersion", MinimumOSVersion); + if (Version.Parse(version) >= Version.Parse("10.0.22000.0")){ + OS = "Win11"; + } else{ + OS = "Win10"; + } + } catch { + OS = "Win10"; + } + } + if (VM == 0) { + VM = NextFreeVM(OS);//.Replace("vm",""); + } + if (VM == 0){ + //Write-Host "No available OS VMs"; + GenerateVM(OS); + //break; + } + RevertVM(VM); + //[ValidateSet("Win10","Win11")] + //[ValidateSet("Configure","DevHomeConfig","Pin","Scan")] + int lowerIndex = clipInput.IndexOf("Do not share my personal information") -1;//This is the last visible string at the bottom of the Files page on GitHub. + + string clip = clipInput; + if (clipInput.Contains("Do not share my personal information")) { + clip = clipInput.Substring(0,lowerIndex); + } + if (clip.Contains("PackageIdentifier: ")) { + if (PackageIdentifier == "") { + PackageIdentifier = YamlValue("PackageIdentifier",clip).Replace("\"","").Replace("'",""); + } + } + if (clip.Contains("PackageVersion: ")) { + if (PackageVersion == "") { + PackageVersion = YamlValue("PackageVersion",clip).Replace("\"","").Replace("'",""); + } + } + if (PR == 0) { + PR = PRNumber(clip,true).FirstOrDefault(); + } + string RemoteFolder = "//"+remoteIP+"/ManVal/vm/"+VM.ToString(); + if (installerLine == "") { + installerLine = "--manifest "+RemoteFolder+"/manifest"; + } + string optionsLine = ""; + + string logLine = OS.ToString(); + string nonElevatedShell = ""; + string logExt = "log"; + string VMFolder = MainFolder+"\\vm\\"+VM; + string manifestFolder = VMFolder+"\\manifest"; + string CmdsFileName = VMFolder+"\\cmds.ps1"; + string packageName = ""; + string wingetArgs = ""; + + string archDetect = ""; + string archColor = "yellow"; + string MDLog = ""; + + if (Operation == "Configure") { + //Write-Host "Running Manual Config build "build" on vmVM for ConfigureFile" + wingetArgs = "configure -f "+RemoteFolder+"/manifest/config.yaml --accept-configuration-agreements --disable-interactivity"; + InspectNew = false; + } else { + if (PackageIdentifier == "") { + //Write-Host "Bad PackageIdentifier: "PackageIdentifier"" + //Break; + Clipboard.SetText(PackageIdentifier); + } + //Write-Host "Running Manual Validation build "build" on vmVM for package "PackageIdentifier" version $PackageVersion" + + if (PackageVersion != "") { + logExt = PackageVersion+"."+logExt; + logLine += "version "+PackageVersion+" "; + } + if (Locale != "") { + logExt = Locale+"."+logExt; + optionsLine += " --locale "+Locale+" "; + logLine += "locale "+Locale+" "; + } + if (Scope != "") { + logExt = Scope+"."+logExt; + optionsLine += " --scope "+Scope+" "; + logLine += "scope "+Scope+" "; + } + if (InstallerType != "") { + logExt = InstallerType+"."+logExt; + optionsLine += " --installer-type "+InstallerType+" "; + logLine += "InstallerType $"+InstallerType+" "; + } + string[] Archs = clip.Split(' ') + .Where(n => !n.Contains("arm")) + .Where(n => n.Contains("Architecture: ")).ToArray(); + for (int i = 0; i < Archs.Length; i++) { + Archs[i] = (Archs[i].Split(':'))[1].Trim(); + } + + if (Archs != null) { + if (Arch != null) { + archDetect = "Selected"; + } else { + Arch = Archs[0]; + archDetect = "Detected"; + } + archColor = "red"; + } + if (Arch != "") { + logExt = Arch+"."+logExt; + //Write-Host "archDetect Arch Arch of available architectures: Archs" -f archColor + logLine += Arch+" "; + } + if (ManualDependency != "") { + MDLog = ManualDependency; + //Write-Host " = = = = Installing manual dependency "+ManualDependency+" = = = = " + ManualDependency = "Out-Log 'Installing manual dependency "+MDLog+".';Start-Process 'winget' 'install "+MDLog+" --accept-package-agreements --ignore-local-archive-malware-scan' -wait\n"; + } + // if (notElevated == true || clip.Contains("ElevationRequirement: elevationProhibited")) { + //Write-Host " = = = = Detecting de-elevation requirement = = = = " + // nonElevatedShell = "if ([bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match 'S-1-5-32-544')){& explorer.exe 'C:\\Program Files\\PowerShell\\7\\pwsh.exe';Stop-Process (Get-Process WindowsTerminal).id}"; + //if elevated, run^^ and exit, else run cmds. + // } + packageName = (PackageIdentifier.Split('.'))[1]; + wingetArgs = "install "+optionsLine+" "+installerLine+" --accept-package-agreements --ignore-local-archive-malware-scan"; + } + List cmdsOut = new List(); +/* + + + + + + + + + + + + + +*/ +// - caret double quote = replace with backslash double quote +// - caret dollarsign = 2nd run remove caret + if (Operation == "Configure") { + cmdsOut.Add(""+nonElevatedShell+""); cmdsOut.Add("$TimeStart = Get-Date;"); - cmdsOut.Add("$ConfigurelLogFolder = \""+SharedFolder+"/logs/Configure/$(Get-Date -UFormat %B)/$(Get-Date -Format dd)\""); + cmdsOut.Add("$ConfigurelLogFolder = \""+SharedFolder+"/logs/Configure/$(Get-Date -UFormat %B)/$(Get-Date -Format dd)\""); cmdsOut.Add("Function Out-Log ([string]$logData,[string]$logColor='cyan') {"); cmdsOut.Add("$TimeStamp = (Get-Date -Format T) + ': ';"); cmdsOut.Add("$logEntry = $TimeStamp + $logData"); @@ -2768,14 +2803,14 @@ Revert selected VM and launch its window. cmdsOut.Add("Out-ErrorData $DefenderThreat \"Defender (with signature version $((Get-MpComputerStatus).QuickScanSignatureVersion))\""); cmdsOut.Add("Out-Log \" = = = = Completing Manual Validation pipeline build "+build+" on VM "+VM+" for Configure file "+logLine+" in $(((Get-Date) -$TimeStart).TotalSeconds) seconds. = = = = \""); cmdsOut.Add("Get-TrackerVMSetStatus 'ValidationCompleted'"); - - + + } else if (Operation == "Scan") { - - - - cmdsOut.Add(""+nonElevatedShell+""); + + + + cmdsOut.Add(""+nonElevatedShell+""); cmdsOut.Add("$TimeStart = Get-Date;"); cmdsOut.Add("$explorerPid = (Get-Process Explorer).id;"); cmdsOut.Add("$ManValLogFolder = \""+SharedFolder+"/logs/$(Get-Date -UFormat %B)/$(Get-Date -Format dd)\""); @@ -2934,2324 +2969,2331 @@ Revert selected VM and launch its window. cmdsOut.Add("Out-Log \" = = = = Completing Manual Validation pipeline build "+build+" on VM "+VM+" for "+PackageIdentifier+" "+logLine+" in $(((Get-Date) -$TimeStart).TotalSeconds) seconds. = = = = \""); cmdsOut.Add("Get-TrackerVMSetStatus 'ValidationCompleted'"); cmdsOut.Add("}"); - - - }else { - // Write-Host "Error: Bad Function" - } -/* - - - - - - - - - - - - -*/ - OutFile(CmdsFileName,string.Join("\n",cmdsOut)); - - if (NoFiles == false) { - //Extract multi-part manifest from clipboard and write to disk - //Write-Host "Removing previous manifest and adding current..." - string FilePath = ""; - RemoveItem(manifestFolder,true); - if (Operation == "Configure") { - FilePath = manifestFolder+"\\config.yaml"; - OutFile(FilePath,clipInput); - } else { - List Files = new List(); - Files.Add("Package.installer.yaml"); - //Gather filenames from PR manifest in clipboard - most PRs, not all. - string[] FileNames = clip.Replace("\n"," ").Replace("\r"," ").Replace("/"," ").Split(' ').Where(n => n.Contains(".yaml")).ToArray(); - //Get the last file name and chop the .yaml from it, to get the ToReplace string. - string replace = FileNames[FileNames.Length -1].Replace(".yaml",""); - //Update each filename so it comes out with "Package". - for (int i = 0;i < FileNames.Length; i++){ - string string_add = FileNames[i].Replace(replace,"Package"); - Files.Add(string_add); - } - //Split out manifest files by the Git double atpersand. - string[] split_clip = clip.Replace("@@","∞").Split('∞'); - //foreach files - for (int i=0;i < Files.Count;i++) { - string File = Files[i]; - string this_split = split_clip[i*2]; - this_split = this_split.Substring(0,this_split.IndexOf("ManifestVersion") + 22); - string[] inputObj = this_split.Split('\n'); - - //Add the manifest folder path to the file path. - FilePath = manifestFolder+"\\"+File; - - //Write-Host "Writing $($inputObj.Length) lines to $FilePath" - OutFile(FilePath,inputObj); - - //Bugfix to catch package identifier appended to last line of last file. - // string fileContents = GetContent(FilePath); - string[] fileContents = GetContent(FilePath).Split('\n'); - int fcLen = fileContents.Length -1; - if (fileContents[fcLen].Contains(PackageIdentifier)) { - fileContents[fcLen] = (fileContents[fcLen].Replace("PackageIdentifier","∞").Split('∞'))[0]; - } - fileContents = fileContents.Where(n => !n.Contains("additions & 0 deletions")).ToArray(); - fileContents = fileContents.Where(n => !n.Contains("manifests/")).ToArray(); - fileContents = fileContents.Where(n => !n.Contains("Viewed")).ToArray(); - fileContents = fileContents.Where(n => !n.Contains("marked this conversation as resolved")).ToArray(); - - string out_file = string.Join("\n",fileContents); - OutFile(FilePath,out_file); - } - //Get the files just written and extract how many. - string[] entries = Directory.GetFileSystemEntries(manifestFolder, "*", SearchOption.AllDirectories); - int filecount = entries.Length; - // string filedir = "ok"; - // string filecolor = "green"; - // if (filecount < 3) { filedir = "too low"; filecolor = "red";} - // if (filecount > 3) { filedir = "high"; filecolor = "yellow";} - // if (filecount > 10) { filedir = "too high"; filecolor = "red";} - //Write-Host -f $filecolor "File count $filecount is $filedir" - // if (filecount < 3) { break;} - - }//end if Configure - }//end if NoFiles - - if (InspectNew == true) { - //Write-Host "Searching Winget for PackageIdentifier" - //Write-Host PackageResult - string PackageResult = FindWinGetVersion(PackageIdentifier); - if (PackageResult == null) {//"No package found matching input criteria." - OpenAllURLs(clip); - System.Diagnostics.Process.Start("https://www.bing.com/search?q="+PackageIdentifier); - string a = PackageIdentifier.Split('.')[0]; - string b = PackageIdentifier.Split('.')[1]; - if (a != "") { - //Write-Host "Searching Winget for a" - // string result_a = FindWinGetVersion(a); - //Need to refactor these - they're meant to dump into console. - } - if (b != "") { - //Write-Host "Searching Winget for b" - // string result_b = FindWinGetVersion(b); - } - }//end if PackageResult - }//end if InspectNew - //Write-Host "File operations complete, starting VM operations." - Thread.Sleep(1000); - SetStatus(VM, "Prevalidation", PackageIdentifier,PR); - SetVMState("vm"+VM, 2); - - LaunchWindow(VM); -}//end manifest - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Manifests Etc --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// -//Section needs refactor badly - public void SingleFileAutomation(int PR) {//Put installer.yaml on your clipboard and run this, and it gets the other files from the latest manifest, then start validation. - string clip = Clipboard.GetText(); + + + }else { + // Write-Host "Error: Bad Function" + } +/* + + + + + + + + + + + + +*/ + OutFile(CmdsFileName,string.Join("\n",cmdsOut)); + + if (NoFiles == false) { + //Extract multi-part manifest from clipboard and write to disk + //Write-Host "Removing previous manifest and adding current..." + string FilePath = ""; + RemoveItem(manifestFolder,true); + if (Operation == "Configure") { + FilePath = manifestFolder+"\\config.yaml"; + OutFile(FilePath,clipInput); + } else { + List Files = new List(); + Files.Add("Package.installer.yaml"); + //Gather filenames from PR manifest in clipboard - most PRs, not all. + string[] FileNames = clip.Replace("\n"," ").Replace("\r"," ").Replace("/"," ").Split(' ').Where(n => n.Contains(".yaml")).ToArray(); + //Get the last file name and chop the .yaml from it, to get the ToReplace string. + string replace = FileNames[FileNames.Length -1].Replace(".yaml",""); + //Update each filename so it comes out with "Package". + for (int i = 0;i < FileNames.Length; i++){ + string string_add = FileNames[i].Replace(replace,"Package"); + Files.Add(string_add); + } + //Split out manifest files by the Git double atpersand. + string[] split_clip = clip.Replace("@@","∞").Split('∞'); + //foreach files + for (int i=0;i < Files.Count;i++) { + string File = Files[i]; + string this_split = split_clip[i*2]; + this_split = this_split.Substring(0,this_split.IndexOf("ManifestVersion") + 22); + string[] inputObj = this_split.Split('\n'); + + //Add the manifest folder path to the file path. + FilePath = manifestFolder+"\\"+File; + + //Write-Host "Writing $($inputObj.Length) lines to $FilePath" + OutFile(FilePath,inputObj); + + //Bugfix to catch package identifier appended to last line of last file. + // string fileContents = GetContent(FilePath); + string[] fileContents = GetContent(FilePath).Split('\n'); + int fcLen = fileContents.Length -1; + if (fileContents[fcLen].Contains(PackageIdentifier)) { + fileContents[fcLen] = (fileContents[fcLen].Replace("PackageIdentifier","∞").Split('∞'))[0]; + } + fileContents = fileContents.Where(n => !n.Contains("additions & 0 deletions")).ToArray(); + fileContents = fileContents.Where(n => !n.Contains("manifests/")).ToArray(); + fileContents = fileContents.Where(n => !n.Contains("Viewed")).ToArray(); + fileContents = fileContents.Where(n => !n.Contains("marked this conversation as resolved")).ToArray(); + + string out_file = string.Join("\n",fileContents); + OutFile(FilePath,out_file); + } + //Get the files just written and extract how many. + string[] entries = Directory.GetFileSystemEntries(manifestFolder, "*", SearchOption.AllDirectories); + int filecount = entries.Length; + // string filedir = "ok"; + // string filecolor = "green"; + // if (filecount < 3) { filedir = "too low"; filecolor = "red";} + // if (filecount > 3) { filedir = "high"; filecolor = "yellow";} + // if (filecount > 10) { filedir = "too high"; filecolor = "red";} + //Write-Host -f $filecolor "File count $filecount is $filedir" + // if (filecount < 3) { break;} + + }//end if Configure + }//end if NoFiles + + if (InspectNew == true) { + //Write-Host "Searching Winget for PackageIdentifier" + //Write-Host PackageResult + string PackageResult = FindWinGetVersion(PackageIdentifier); + if (PackageResult == null) {//"No package found matching input criteria." + OpenAllURLs(clip); + System.Diagnostics.Process.Start("https://www.bing.com/search?q="+PackageIdentifier); + string a = PackageIdentifier.Split('.')[0]; + string b = PackageIdentifier.Split('.')[1]; + if (a != "") { + //Write-Host "Searching Winget for a" + // string result_a = FindWinGetVersion(a); + //Need to refactor these - they're meant to dump into console. + } + if (b != "") { + //Write-Host "Searching Winget for b" + // string result_b = FindWinGetVersion(b); + } + }//end if PackageResult + }//end if InspectNew + //Write-Host "File operations complete, starting VM operations." + Thread.Sleep(1000); + SetStatus(VM, "Prevalidation", PackageIdentifier,PR); + SetVMState("vm"+VM, 2); + + LaunchWindow(VM); +}//end manifest + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Manifests Etc --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// +//Section needs refactor badly + public void SingleFileAutomation(int PR) {//Put installer.yaml on your clipboard and run this, and it gets the other files from the latest manifest, then start validation. + string clip = Clipboard.GetText(); string PackageIdentifier = YamlValue("PackageIdentifier",clip); string version = YamlValue("PackageVersion",clip).Replace("'","").Replace("\"",""); List listing = ManifestListing(PackageIdentifier); - int VM = ManifestFile(PR); - - for (int file = 0; file < listing.Count;file++) { - clip = FileFromGitHub(PackageIdentifier,version,listing[file]); - ManifestFile(PR, "", "", "", VM,clip); - } - } - - public void ManifestAutomation(int VM = 0, int PR =0, string Arch = "", string OS = "", string Scope = ""){//Put installler.yaml on your clipboard and run this, then put locale.yaml on your clipboard and press enter, then put the version (.yaml) on your clipboard and press enter, and it will start validation. - if (VM == 0){ - VM = NextFreeVM();//.Replace("vm",""); - } - //Read-Host "Copy Installer file to clipboard, then press Enter to continue." - string clip = Clipboard.GetText(); - ManifestFile(0,"","","",VM,clip); - - //Read-Host "Copy defaultLocale file to clipboard, then press Enter to continue." - clip = Clipboard.GetText(); - ManifestFile(0,"","","",VM,clip); - - //Read-Host "Copy version file to clipboard, then press Enter to continue." - clip = Clipboard.GetText(); - if (Arch != "") { - ManifestFile(0,Arch,"","",VM,clip); - } else if (OS != "") { - ManifestFile(0,"",OS,"",VM,clip); - } else if (Scope != "") { - ManifestFile(0,"","",Scope,VM,clip); - } else { - ManifestFile(PR,"","","",VM,clip); - } - } - - public int ManifestFile(int PR = 0, string Arch = "", string OS = "", string Scope = "", int VM = 0, string clip = ""){//Gets next VM, pulls a file from the clipboard and puts into the VM's manifest folder, then if it's the Version (.yaml) file, start the VM for validation. - if (VM == 0){ + int VM = ManifestFile(PR); + + for (int file = 0; file < listing.Count;file++) { + clip = FileFromGitHub(PackageIdentifier,version,listing[file]); + ManifestFile(PR, "", "", "", VM,clip); + } + } + + public void ManifestAutomation(int VM = 0, int PR =0, string Arch = "", string OS = "", string Scope = ""){//Put installler.yaml on your clipboard and run this, then put locale.yaml on your clipboard and press enter, then put the version (.yaml) on your clipboard and press enter, and it will start validation. + if (VM == 0){ + VM = NextFreeVM();//.Replace("vm",""); + } + //Read-Host "Copy Installer file to clipboard, then press Enter to continue." + string clip = Clipboard.GetText(); + ManifestFile(0,"","","",VM,clip); + + //Read-Host "Copy defaultLocale file to clipboard, then press Enter to continue." + clip = Clipboard.GetText(); + ManifestFile(0,"","","",VM,clip); + + //Read-Host "Copy version file to clipboard, then press Enter to continue." + clip = Clipboard.GetText(); + if (Arch != "") { + ManifestFile(0,Arch,"","",VM,clip); + } else if (OS != "") { + ManifestFile(0,"",OS,"",VM,clip); + } else if (Scope != "") { + ManifestFile(0,"","",Scope,VM,clip); + } else { + ManifestFile(PR,"","","",VM,clip); + } + } + + public int ManifestFile(int PR = 0, string Arch = "", string OS = "", string Scope = "", int VM = 0, string clip = ""){//Gets next VM, pulls a flie from the clipboard and puts into the VM's manifest folder, then if it's the Version (.yaml) file, start the VM for validation. + if (VM == 0){ VM = NextFreeVM();//.Replace("vm",""); - } - if (clip == ""){ - clip = Clipboard.GetText(); - } + } + if (clip == ""){ + clip = Clipboard.GetText(); + } clip = SecondMatch(clip); string FileName = "Package"; - string PackageIdentifier = YamlValue("PackageIdentifier",clip).Replace("\"","").Replace("'",""); - string manifestFolder = MainFolder+"\\vm\\"+VM+"\\manifest"; - clip = string.Join("\n",clip.Split('\n').Where(n => !n.Contains("marked this conversation as resolved."))); - - string string_YamlValue = YamlValue("ManifestType",clip); - if (string_YamlValue == "defaultLocale") { - string Locale = YamlValue("PackageLocale",clip); - FileName = FileName+".locale."+Locale; - } else if (string_YamlValue == "Locale") { - string Locale = YamlValue("PackageLocale",clip); - FileName = FileName+".locale."+Locale; - } else if (string_YamlValue == "installer") { - RemoveItem(manifestFolder,true); - FileName = FileName+".installer"; - } else if (string_YamlValue == "version") { - if (Arch != "") { - ValidateManifest(VM, PackageIdentifier, "", PR, Arch,"", "","","",false,false,"", "", true); - } else if (OS != "") { - ValidateManifest(VM, PackageIdentifier, "", PR, "","", "",OS,"",false,false,"", "", true); - } else if (Scope != "") { - ValidateManifest(VM, PackageIdentifier, "", PR, "",Scope, "","","",false,false,"", "", true); - } else { - ValidateManifest(VM, PackageIdentifier, "", PR, "","", "","","",false,false,"", "", true); - } - } - string FilePath = manifestFolder+"\\"+FileName+".yaml"; - //Write-Host "Writing (clip.Length) lines to FilePath" - clip = clip.Replace("0New version: ","0").Replace("0Add version: ","0").Replace("0Add ","0").Replace("0New ","0"); - OutFile(FilePath,clip); - return VM; - } - - public List ManifestListing(string PackageIdentifier){ - List string_out = new List(); - try{ + string PackageIdentifier = YamlValue("PackageIdentifier",clip).Replace("\"","").Replace("'",""); + string manifestFolder = MainFolder+"\\vm\\"+VM+"\\manifest"; + clip = string.Join("\n",clip.Split('\n').Where(n => !n.Contains("marked this conversation as resolved."))); + + string string_YamlValue = YamlValue("ManifestType",clip); + if (string_YamlValue == "defaultLocale") { + string Locale = YamlValue("PackageLocale",clip); + FileName = FileName+".locale."+Locale; + } else if (string_YamlValue == "Locale") { + string Locale = YamlValue("PackageLocale",clip); + FileName = FileName+".locale."+Locale; + } else if (string_YamlValue == "installer") { + RemoveItem(manifestFolder,true); + FileName = FileName+".installer"; + } else if (string_YamlValue == "version") { + if (Arch != "") { + ValidateManifest(VM, PackageIdentifier, "", PR, Arch,"", "","","",false,false,"", "", true); + } else if (OS != "") { + ValidateManifest(VM, PackageIdentifier, "", PR, "","", "",OS,"",false,false,"", "", true); + } else if (Scope != "") { + ValidateManifest(VM, PackageIdentifier, "", PR, "",Scope, "","","",false,false,"", "", true); + } else { + ValidateManifest(VM, PackageIdentifier, "", PR, "","", "","","",false,false,"", "", true); + } + } + string FilePath = manifestFolder+"\\"+FileName+".yaml"; + //Write-Host "Writing (clip.Length) lines to FilePath" + clip = clip.Replace("0New version: ","0").Replace("0Add version: ","0").Replace("0Add ","0").Replace("0New ","0"); + OutFile(FilePath,clip); + return VM; + } + + public List ManifestListing(string PackageIdentifier){ + List string_out = new List(); + try{ string FirstLetter = PackageIdentifier.ToLower()[0].ToString(); string Path = PackageIdentifier.Replace(".","/"); string Version = FindWinGetVersion(PackageIdentifier); - string Uri = GitHubApiBaseUrl+"/contents/manifests/"+FirstLetter+"/"+Path+"/"+Version+"/"; - dynamic FromGH = FromJson(InvokeGitHubRequest(Uri)); - - int n = 0; - foreach (dynamic line in FromGH) { - n++; - string_out.Add(line["name"]); - } - } catch { - string_out.Add("Error"); - } - return string_out; - } - - public bool ListingDiff(string string_PRManifest){ - string PackageIdentifier = YamlValue("PackageIdentifier", string_PRManifest.Replace("\"","")); - + string Uri = GitHubApiBaseUrl+"/contents/manifests/"+FirstLetter+"/"+Path+"/"+Version+"/"; + dynamic FromGH = FromJson(InvokeGitHubRequest(Uri)); + + int n = 0; + foreach (dynamic line in FromGH) { + n++; + string_out.Add(line["name"]); + } + } catch { + string_out.Add("Error"); + } + return string_out; + } + + public bool ListingDiff(string string_PRManifest){ + string PackageIdentifier = YamlValue("PackageIdentifier", string_PRManifest.Replace("\"","")); + //Get the lines from the PR manifest containing the filenames. - string[] array_PRManifest = string_PRManifest.Split('\n') - .Where(n => n.Contains(".yaml")) - .Where(n => n.Contains(PackageIdentifier)).ToArray(); - //Go through these and snip the PackageIdentifier, split on slashes, and get the last one. - for (int i = 0; i < array_PRManifest.Length; i++) { - string[] swap_array = array_PRManifest[i].Replace(PackageIdentifier+".", "").Split('/'); - array_PRManifest[i] = array_PRManifest[i].Replace(PackageIdentifier+".", "").Split('/')[swap_array.Length - 1]; - } - - bool difference = false; - if (array_PRManifest.Length > 2){//If there are more than 2 files, so a full multi-part manifest and not just updating ReleaseNotes or ReleaseDate, etc. The other checks for this logic (not deletion PR,etc) are in the main Approval Watch method, so maybe this should join them. - List CurrentManifest = ManifestListing(PackageIdentifier); - // string CurrentManifest = string.Join("\n",ManifestListing(PackageIdentifier)); - outBox_msg.AppendText(Environment.NewLine + "CurrentManifest: " + CurrentManifest); - //Gather the lines from the newest manifest in repo. Counterpart to the above section. - // if (CurrentManifest == "Error") { - //If CurrentManifest didn't get any results, (no newest manifest = New package) compare that error with the file list in the PR. - // difference = diff CurrentManifest array_PRManifest.Length; - //Need to rebuild in absence of Compare-Object. - // } else { - //But if CurrentManifest did return something, return that. - if (array_PRManifest.Length < CurrentManifest.Count){ - difference = true; - } + string[] array_PRManifest = string_PRManifest.Split('\n') + .Where(n => n.Contains(".yaml")) + .Where(n => n.Contains(PackageIdentifier)).ToArray(); + //Go through these and snip the PackageIdentifier, split on slashes, and get the last one. + for (int i = 0; i < array_PRManifest.Length; i++) { + string[] swap_array = array_PRManifest[i].Replace(PackageIdentifier+".", "").Split('/'); + array_PRManifest[i] = array_PRManifest[i].Replace(PackageIdentifier+".", "").Split('/')[swap_array.Length - 1]; } - return difference; - } - - public string OSFromVersion(string version) { - string string_out = ""; - try{ - version = YamlValue("MinimumOSVersion", version); - if (Version.Parse(version) >= Version.Parse("10.0.22000.0")){ - string_out = "Win11"; - } else{ - string_out = "Win10"; - } - } catch { - string_out = "Win10"; - } - return string_out; - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- VM Image Mgmt --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public void ImageVMStart(string OS = "Win10"){ - //[ValidateSet("Win10","Win11")] - int VM = 0; - //RestoreVMSnapshot(VMName); - //Thread.Sleep(3); - //SetVMState(VMName,2); - - RestoreVMSnapshot(OS);//,OS - Thread.Sleep(3); - SetVMState(OS, 2);// ; - LaunchWindow(VM, OS);//,OS - } - - public void ImageVMStop(string OS = "Win10"){ - //[ValidateSet("Win10","Win11")] - int VM = 0; - string OriginalLoc = ""; - if (OS == "Win10") { - OriginalLoc = Win10Folder; - } else if (OS == "Win11") { - OriginalLoc = Win11Folder; - } - //string ImageLoc = "imagesFolder\\OS-image\\"; - int version = GetVMVersion(OS) + 1; - //Write-Host "Writing OS version version" - SetVMVersion(version,OS); - var VMWindows = Process.GetProcessesByName("vmconnect"); - foreach (Process VMWindow in VMWindows){ - if (VMWindow.MainWindowTitle.Contains(OS)) { - VMWindow.CloseMainWindow(); - } - } - RemoveVMSnapshot(OS); - CheckpointVM(OS); - StopVM(VM,OS); - //Write-Host "Letting VM cool..." - Thread.Sleep(30); - Process robocopy = new Process(); - robocopy.StartInfo.Arguments = string.Format("/C Robocopy /S {0} {1}", "C:\\source", "C:\\destination"); - robocopy.StartInfo.FileName = "CMD.EXE"; - robocopy.StartInfo.CreateNoWindow = true; - robocopy.StartInfo.UseShellExecute = false; - robocopy.Start(); - robocopy.WaitForExit(); - } - - public void ImageVMMove(string OS = "Win10"){ - string CurrentVMName = ""; - string timestamp = DateTime.Now.ToString("MMddyy"); - string newLoc = imagesFolder+"\\"+OS+"-Created-"+timestamp+"-original"; - if (OS == "Win10") { - CurrentVMName = "Windows 10 MSIX packaging environment"; - } else if (OS == "Win11") { - CurrentVMName = "Windows 11 dev environment"; - } - //ManagementObject VM = GetVM(CurrentVMName); - MoveVMStorage(CurrentVMName,newLoc); - RenameVM(CurrentVMName,OS); - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- VM Pipeline Mgmt --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public void GenerateVM(string OS = "Win10"){ - - string vmdata = GetContent(vmCounter); + + bool difference = false; + if (array_PRManifest.Length > 2){//If there are more than 2 files, so a full multi-part manifest and not just updating ReleaseNotes or ReleaseDate, etc. The other checks for this logic (not deletion PR,etc) are in the main Approval Watch method, so maybe this should join them. + List CurrentManifest = ManifestListing(PackageIdentifier); + // string CurrentManifest = string.Join("\n",ManifestListing(PackageIdentifier)); + outBox_msg.AppendText(Environment.NewLine + "CurrentManifest: " + CurrentManifest); + //Gather the lines from the newest manifest in repo. Counterpart to the above section. + // if (CurrentManifest == "Error") { + //If CurrentManifest didn't get any results, (no newest manifest = New package) compare that error with the file list in the PR. + // difference = diff CurrentManifest array_PRManifest.Length; + //Need to rebuild in absence of Compare-Object. + // } else { + //But if CurrentManifest did return something, return that. + if (array_PRManifest.Length < CurrentManifest.Count){ + difference = true; + } + } + return difference; + } + + public string OSFromVersion(string version) { + string string_out = ""; + try{ + version = YamlValue("MinimumOSVersion", version); + if (Version.Parse(version) >= Version.Parse("10.0.22000.0")){ + string_out = "Win11"; + } else{ + string_out = "Win10"; + } + } catch { + string_out = "Win10"; + } + return string_out; + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- VM Image Mgmt --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void ImageVMStart(string OS = "Win10"){ + //[ValidateSet("Win10","Win11")] + int VM = 0; + //RestoreVMSnapshot(VMName); + //Thread.Sleep(3); + //SetVMState(VMName,2); + + RestoreVMSnapshot(OS);//,OS + Thread.Sleep(3); + SetVMState(OS, 2);// ; + LaunchWindow(VM, OS);//,OS + } + + public void ImageVMStop(string OS = "Win10"){ + //[ValidateSet("Win10","Win11")] + int VM = 0; + string OriginalLoc = ""; + // if (OS == "Win10") { + // OriginalLoc = Win10Folder; + // } else if (OS == "Win11") { + OriginalLoc = Win11Folder; + // } + //string ImageLoc = "imagesFolder\\OS-image\\"; + int version = GetVMVersion(OS) + 1; + //Write-Host "Writing OS version version" + SetVMVersion(version,OS); + var VMWindows = Process.GetProcessesByName("vmconnect"); + foreach (Process VMWindow in VMWindows){ + if (VMWindow.MainWindowTitle.Contains(OS)) { + VMWindow.CloseMainWindow(); + } + } + RemoveVMSnapshot(OS); + CheckpointVM(OS); + StopVM(VM,OS); + //Write-Host "Letting VM cool..." + Thread.Sleep(30); + Process robocopy = new Process(); + robocopy.StartInfo.Arguments = string.Format("/C Robocopy /S {0} {1}", "C:\\source", "C:\\destination"); + robocopy.StartInfo.FileName = "CMD.EXE"; + robocopy.StartInfo.CreateNoWindow = true; + robocopy.StartInfo.UseShellExecute = false; + robocopy.Start(); + robocopy.WaitForExit(); + } + + public void ImageVMMove(string OS = "Win10"){ + string CurrentVMName = ""; + string timestamp = DateTime.Now.ToString("MMddyy"); + string newLoc = imagesFolder+"\\"+OS+"-Created-"+timestamp+"-original"; + if (OS == "Win10") { + CurrentVMName = "Windows 10 MSIX packaging environment"; + } else if (OS == "Win11") { + CurrentVMName = "Windows 11 dev environment"; + } + //ManagementObject VM = GetVM(CurrentVMName); + MoveVMStorage(CurrentVMName,newLoc); + RenameVM(CurrentVMName,OS); + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- VM Pipeline Mgmt --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void GenerateVM(string OS = "Win10"){ + + string vmdata = GetContent(vmCounter); int vm = Int32.Parse(vmdata.Replace("\n","")); - int version = GetVMVersion(OS); - string destinationPath = imagesFolder+"\\" + vm + "\\"; - string VMFolder = MainFolder + "\\vm\\" + vm; - string newVmName = "vm" + vm; - //string startTime = (Get-Date) - //Write-Host "Creating VM $newVmName version $version OS OS" - OutFile(vmCounter,(vm + 1).ToString()); - OutFile(StatusFile,"\"" + vm + "\",\"Generating\",\"" + version + "\",\"" + OS + "\",\"\",\"1\",\"0\"",true); - RemoveItem(destinationPath,true); - RemoveItem(VMFolder,true); - string path = imagesFolder+"\\"+OS+"-image\\Virtual Machines\\"; - string VMImageFolder = Directory.GetFileSystemEntries(path, "*.vmcx", SearchOption.AllDirectories)[0]; - - //Write-Host "Takes about 120 seconds..." - ImportVM(VMImageFolder, destinationPath); - outBox_msg.AppendText(Environment.NewLine + "newVmName "+ newVmName); - RenameVM(vm.ToString(),newVmName); //(Get-VM | Where-Object {($_.CheckpointFileLocation)+"\\" == $destinationPath}) newName $ - outBox_msg.AppendText(Environment.NewLine + "newVmName "+ newVmName); - SetVMState(newVmName, 2);// $ - //Remove-VMCheckpoint -VMName $newVmName -Name "Backup" - RevertVM(vm); - LaunchWindow(vm); - //Write-Host "Took $(((Get-Date)-$startTime).TotalSeconds) seconds..." - } - - public void DisgenerateVM(int vm){ - string destinationPath = "$imagesFolder\\"+vm+"\\"; + int version = GetVMVersion(OS); + string destinationPath = imagesFolder+"\\" + vm + "\\"; + string VMFolder = MainFolder + "\\vm\\" + vm; + string newVmName = "vm" + vm; + //string startTime = (Get-Date) + //Write-Host "Creating VM $newVmName version $version OS OS" + OutFile(vmCounter,(vm + 1).ToString()); + OutFile(StatusFile,"\"" + vm + "\",\"Generating\",\"" + version + "\",\"" + OS + "\",\"\",\"1\",\"0\"",true); + RemoveItem(destinationPath,true); + RemoveItem(VMFolder,true); + string path = imagesFolder+"\\"+OS+"-image\\Virtual Machines\\"; + string VMImageFolder = Directory.GetFileSystemEntries(path, "*.vmcx", SearchOption.AllDirectories)[0]; + + //Write-Host "Takes about 120 seconds..." + ImportVM(VMImageFolder, destinationPath); + outBox_msg.AppendText(Environment.NewLine + "newVmName "+ newVmName); + RenameVM(vm.ToString(),newVmName); //(Get-VM | Where-Object {($_.CheckpointFileLocation)+"\\" == $destinationPath}) newName $ + outBox_msg.AppendText(Environment.NewLine + "newVmName "+ newVmName); + SetVMState(newVmName, 2);// $ + //Remove-VMCheckpoint -VMName $newVmName -Name "Backup" + RevertVM(vm); + LaunchWindow(vm); + //Write-Host "Took $(((Get-Date)-$startTime).TotalSeconds) seconds..." + } + + public void DisgenerateVM(int vm){ + string destinationPath = "$imagesFolder\\"+vm+"\\"; string VMFolder = MainFolder+"\\vm\\"+vm; - string VMName = "vm"+vm; - - SetStatus(vm,"Disgenerate"); - var processes = Process.GetProcessesByName("vmconnect"); - foreach (Process process in processes){ - if (process.MainWindowTitle.Contains(VMName)) { - process.CloseMainWindow(); - } - } - StopVM(vm); - RemoveVM(VMName); - - // string_out = GetStatus(); - // string_out = string_out .Where(n => !n.vm.Contains(VM)); - // Write-Status string_out; - - // int delay = 15 - // 0..$delay | foreach-Object { - // $pct = $_ / $delay * 100 - // Write-Progress -Activity "Remove VM" -Status "$_ of $delay" -PercentComplete $pct - // Thread.Sleep(GitHubRateLimitDelay) - // } - RemoveItem(destinationPath); - RemoveItem(VMFolder); - } - - public void LaunchWindow(int VM = 0, string VMName = ""){ - if (VMName == "") { - VMName = "vm"+VM; - } - var processes = Process.GetProcessesByName("vmconnect"); - foreach (Process process in processes){ - if (process.MainWindowTitle.Contains(VMName)) { - process.CloseMainWindow(); - } - } - var newProcess = new System.Diagnostics.Process(); - newProcess.StartInfo.FileName = "C:\\Windows\\System32\\vmconnect.exe"; - newProcess.StartInfo.Arguments = "localhost " + VMName; - newProcess.Start(); - } - - public void RevertVM(int VM = 0, string VMName = ""){ - if (VMName == "") { - VMName = "vm"+VM; - } - SetStatus(VM,"Restoring") ; - RestoreVMSnapshot(VMName); - } - - public void CompleteVM(int vm){ - string VMFolder = MainFolder+"\\vm\\"+vm; - string filesFileName = VMFolder+"\\files.txt"; - string VMName = "vm"+vm; - SetStatus(vm,"Completing", " ", 1); - var processes = Process.GetProcessesByName("vmconnect"); - foreach (Process process in processes){ - if (process.MainWindowTitle.Contains(VMName)) { - process.CloseMainWindow(); - } - } - try { - SetVMState("vm"+vm, 3); - } catch { - outBox_msg.AppendText(Environment.NewLine + "SetVMState failed for VM: " + vm); - } - RemoveItem(filesFileName); - SetStatus(vm,"Ready","",0,"Ready"); - } - - public void StopVM(int vm,string VMName = ""){ - if (VMName == "") { - VMName = "vm"+vm; - } else { - VMName = vm; - } - F(VMName, 3); - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- VM Status --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public void SetStatus(int VM, string Status = "", string Package = "",int PR = 0,string Mode = ""){ -//[ValidateSet("AddVCRedist","Approved","CheckpointComplete","Checkpointing","CheckpointReady","Completing","Complete","Disgenerate","Generating","Installing","Prescan","Prevalidation","Ready","Rebooting","Regenerate","Restoring","Revert","Scanning","SendStatus","Setup","SetupComplete","Starting","Updating","ValidationCompleted")] - dynamic Records = FromCsv(GetContent(StatusFile)); - for (int r = 1; r < Records.Length -1; r++){ - var row = Records[r]; - if (Int32.Parse(row["vm"]) == VM) { - if (Status != "") { - row["status"] = Status; - } - if (Package != "") { - row["Package"] = Package; - } - if (Mode != "") { - row["Mode"] = Mode; - } - if (PR != 0) { - row["PR"] = PR; - }//end if PR - }//end if row vm - }//end for r - OutFile(StatusFile, ToCsv(Records)); - }//end function - - //GetStatus = FromCsv(GetContent(StatusFile)); - //WriteStatus = OutFile(StatusFile,string_out); - - public void ResetStatus() { - IEnumerable> VMs = FromCsv(GetContent(StatusFile)) - .Where(n => n["Status"] != "Ready") - .Where(n => (int)n["RAM"] == 0); - - foreach (Dictionary VM in VMs) { - SetStatus(VM["VM"],"Complete"); - } - VMs = FromCsv(GetContent(StatusFile)).Where(n => n["Status"] != "Ready").Where(n => (string)n["Package"] == ""); - foreach (Dictionary VM in VMs) { - SetStatus(VM["VM"],"Complete"); - } - var processes = Process.GetProcessesByName("vmconnect"); - if (processes.Length == 0){ - StopProcess("vmwp"); - } - } - -/*public RebuildStatus { - Status = Get-VM.Where(n => n.name -notmatch "vm0"}| - Select-Object @{n="vm";e={$_.name}}, - @{n="status";e={"Ready"}}, - @{n="version";e={(GetVMVersion -OS "Win10")}}, - @{n="OS";e={"Win10"}}, - @{n="Package";e={""}}, - @{n="PR";e={"1"}}, - @{n="RAM";e={"0"}} - OutFile(StatusFile,Status); -} -*/ - - public int GetVMPowerState (int VM){ - string VMName = "vm"+VM; - int Status =0; - foreach (var property in GetVM(VMName).Properties) { - if (property.Name == "EnabledState"){ - //HwThreadsPerCoreRealized - //OnTimeInMilliseconds - //ProcessID - Status = Convert.ToInt32(property.Value); - } - } - return Status; - } - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- VM Versioning --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public int GetVMVersion (string OS = "Win10") { - //[ValidateSet("Win10","Win11")][string]OS = "Win10", - int VMVersion; - string VMData = GetContent(VMversion); - List Line = VMData.Split('\n').ToList(); - string Line2 = Line.Where(n => n.Contains(OS)).FirstOrDefault(); - Line2 = Line2.Replace("\"",""); - VMVersion = Int32.Parse(Line2.Split(',','"')[1]); - return VMVersion; - } - - public void SetVMVersion(int Version, string OS = "Win10") { - string VMData = GetContent(VMversion); - List Line = VMData.Split('\n').ToList(); - string Line2 = Line.Where(n => n.Contains(OS)).FirstOrDefault(); - Line2 = Line2.Replace("\"",""); - int CurrentVersion = Int32.Parse(Line2.Split(',','"')[1]); - VMData = VMData.Replace(OS+"\",\""+CurrentVersion,OS+"\",\""+Version); - OutFile(VMversion,VMData); - } - - public void RotateVMs(string OS = "Win10") { - Random rnd = new Random(); - Dictionary[] GetStatus = FromCsv(GetContent(StatusFile)); - var VMs = GetStatus.Where(n => (int)n["version"] < GetVMVersion(OS)) - .Where(n => n["OS"] == OS) - .Where(n => n["status"] != "Ready"); - if (VMs != null){ - int counter = 0; - int rand_VM = rnd.Next(VMs.Count()); - foreach (Dictionary FullVM in VMs) { - counter++; - if (rand_VM == counter) { - SetStatus((int)FullVM["vm"],"Regenerate"); - } - }//end foreach FullVM - }//end if VMs - }//end function - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- VM Orchestration --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public void VMCycle(){ - Dictionary[] VMs = FromCsv(GetContent(StatusFile)); - foreach (Dictionary VM in VMs) { - string Status = (string)VM["status"]; - if (Status == "AddVCRedist") { - AddToValidationFile((int)VM["vm"]); - } else if (Status == "Approved") { - AddWaiver((int)VM["PR"]); - SetStatus((int)VM["vm"], "Complete"); - } else if (Status == "CheckpointReady") { - RedoCheckpoint((int)VM["vm"]); - } else if (Status == "Complete") { - // if ((VMs .Where(n => n.vm ==((int)VM["vm"])} ).version < (GetVMVersion -OS (int)VM["os"])) { - // SetStatus((int)VM["vm"],"Regenerate"); - // } else { - CompleteVM((int)VM["vm"]); - // } - } else if (Status == "Disgenerate") { - DisgenerateVM((int)VM["vm"]); - } else if (Status == "Revert") { - RevertVM((int)VM["vm"]); - } else if (Status == "Regenerate") { - DisgenerateVM((int)VM["vm"]); - GenerateVM((string)VM["os"]); - } else if (Status == "SendStatus") { - string SharedError = GetContent(SharedErrorFile); - SharedError = SharedError.Replace("Faulting","\n> Faulting"); - SharedError = SharedError.Replace("2024","\n> 2024"); - SharedError = SharedError.Replace(" (caller: 00007FFA008A5769)",""); - SharedError = SharedError.Replace(" (caller: 00007FFA008AA79F)",""); - SharedError = SharedError.Replace("Exception(1) tid(f1c) 80D02002",""); - SharedError = SharedError.Replace("Exception(2) tid(f1c) 80072EE2 ",""); - SharedError = SharedError.Replace("Exception(4) tid(f1c) 80072EE2 ",""); - SharedError = SharedError.Replace("tid(f1c)",""); - SharedError = SharedError.Replace("C:\\\\__w\\\\1\\\\s\\\\external\\\\pkg\\\\src\\\\AppInstallerCommonCore\\\\Downloader.cpp(185)\\\\WindowsPackageManager.dll!00007FFA008A37C9:",""); - ReplyToPR((int)VM["PR"],"ManValEnd",SharedError); - SetStatus((int)VM["vm"],"Complete"); - if ((SharedError.Contains("\\[FAIL\\] Installer failed security check.")) || (SharedError.Contains("Detected 1 Defender"))) { - //Get-GitHubPreset -Preset DefenderFail -PR VM.PR - } - }; //end switch - } - } - - public string GetMode() { - return GetContent(TrackerModeFile); - } - - public void SetMode(string Status = "Validating") { - //[ValidateSet("Approving","Idle","IEDS","Validating")] - OutFile(TrackerModeFile,Status); - } - - //ConnectedVM = var processes = Process.GetProcessesByName("vmconnect"); - - public int NextFreeVM(string OS = "Win10",string Status = "Ready") { - //[ValidateSet("Win10","Win11")] - Random rnd = new Random(); - dynamic VMs = FromCsv(GetContent(StatusFile)); - List VMList = new List(); - for (int r = 1; r < VMs.Length -1; r++){ - dynamic FullVM = VMs[r]; - if (FullVM["OS"] == OS && FullVM["status"] == Status ) { - //.Where(n => (int)n["version"] < GetVMVersion(OS)) - VMList.Add(Convert.ToInt32(FullVM["vm"])); - } - } - int rand_VM = rnd.Next(VMList.Count -1); - - return VMList[rand_VM]; - //Write-Host "No available $OS VMs" - }//end function - - public void RedoCheckpoint(int vm,string VMName = ""){ - if (VMName == "") { - VMName = "vm"+vm; - } - SetStatus(vm,"Checkpointing"); - RemoveVMSnapshot(VMName); - CheckpointVM(VMName); - SetStatus(vm,"Complete"); - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- File Management --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public string SecondMatch(string clip, int depth = 1) { - string[] clipArray = clip.Split('\n'); - List sa_out = new List(); - //If $current and $prev don't match, return the $prev element, which is $depth lines below the $current line. Start at clip[$depth] and go until the end - this starts $current at clip[$depth], and $prev gets moved backwards to clip[0] and moves through until $current is at the end of the array, clip[clip.Length], and $prev is $depth previous, at clip[clip.Length - $depth]. - for (int depthUnit = depth;depthUnit < clip.Length; depthUnit++){ - string current = clipArray[depthUnit].Split(':')[0]; - string prevUnit = clipArray[depthUnit - depth]; - string prev = prevUnit.Split(':')[0]; - if (current != prev) { - sa_out.Add(prevUnit); - } - } - //Then complete the last depth items of the array by starting at clip[-depth] and work backwards through the last items in reverse order to clip[-1]. - for (int depthUnit = depth;depthUnit > 0; depthUnit--){ - sa_out.Add(clipArray[-depthUnit]); - - } - string string_joined = string.Join("\n", sa_out); - return string_joined; - } - - //RemoveFileifExist(FileName) = RemoveItem(FIleName); - //LoadFileIfExists(FileName) = GetContent(FIleName); - - public string FileFromGitHub(string PackageIdentifier, string Version, string FileName = "installer.yaml") { - string Path = PackageIdentifier.Replace('.','/'); - string FirstLetter = PackageIdentifier[0].ToString().ToLower(); - string content = ""; - try{ - content = InvokeGitHubRequest(GitHubContentBaseUrl+"/master/manifests/"+FirstLetter+"/"+Path+"/"+Version+"/"+PackageIdentifier+"."+FileName); - }catch{ - content = "Error"; - } - return content; - } - - public bool ManifestEntryCheck(string PackageIdentifier, string Version, string Entry = "AppsAndFeaturesEntries"){ - string content = FileFromGitHub(PackageIdentifier,Version); - string string_out = ""; - string_out = string_out.Split('\n').Where(n => n.Contains(Entry)).FirstOrDefault(); // s.IndexOf(": "); - if (string_out == "") { - return false; - } else { - return true; - } - } - - public string DecodeGitHubFile (string Base64String) { - var Bits = System.Convert.FromBase64String(Base64String); - string String = System.Text.Encoding.UTF8.GetString(Bits); - return String; - } - - public string CommitFile(int PR, int File){ - string url = ""; - dynamic Commit = FromJson(InvokeGitHubPRRequest(PR,"commits","content")); - if (Commit["files"]["contents_url"].GetType() == "String") { - url = Commit["files"]["contents_url"]; - } else { - url = Commit["files"]["contents_url"][File]; - } - dynamic EncodedFile = FromJson(InvokeGitHubRequest(url)); - return DecodeGitHubFile(EncodedFile["content"]); - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Reporting --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public void AddPRToRecord(int PR, string Action, string Title = ""){ - //[ValidateSet("Approved", "Blocking", "Feedback", "Retry", "Manual", "Closed", "Project", "Squash", "Waiver")] - Title = Title.Split('#')[0]; - string string_out = (PR+","+Action+","+Title + Environment.NewLine); - OutFile(LogFile, string_out, true); - } - - public void PRPopulateRecord(){ - dynamic Logs = FromCsv(GetContent(LogFile)); - for (int l = 1; l < Logs.Length -1; l++){ - var Log = Logs[l]; - //If the title is null, search for another with the same PR whose title isn't null. - if (Log["title"] == null) { - for (int m = 1; m < Logs.Length -1; m++){ - var ListItem = Logs[m]; - if (ListItem["title"] != null && ListItem["PR"] == Log["PR"]) { - Log["title"] = ListItem["title"]; - }//end if ListItem - }//end for m - }//end if ListItem - }//end for l - OutFile(LogFile, ToCsv(Logs)); - }//end function - - public dynamic PRFromRecord(string string_action){ - - PRPopulateRecord(); - return FromCsv(GetContent(LogFile)).Where(n => n["Action"].Contains(string_action)); - } - - public string PRReportFromRecord(string string_action, string string_out = "", int line = 0) { - //Add items to dictionary array then remove from file. - Dictionary[] Records = PRFromRecord(string_action); - dynamic dynamic_csv = FromCsv(GetContent(LogFile)).Where(n => !n["Action"].Contains(string_action)).ToList(); - string string_csv = ToCsv(dynamic_csv); - OutFile(LogFile,string_csv); - - foreach (Dictionary Record in Records) { - line++; - string Title = Record["Title"]; - int PR = Record["PR"]; - if (Title == null) { - Title = FromJson(InvokeGitHubPRRequest(PR,"","content"))["title"]; - } - TrackerProgress(PR,System.Reflection.MethodBase.GetCurrentMethod().Name,line,Records.Length); - string_out += Title+" #"+PR+Environment.NewLine; - } - return string_out; - } - - public void PRFullReport() { - string ReportName = logsFolder+"\\"+DateTime.Now.ToString("MMddyy")+"-Report.txt"; - string[] PRTypes = {"Feedback","Blocking","Waiver","Retry","Manual","Closed","Project","Squash","Approved"}; - foreach (string Type in PRTypes) { - string string_out = Type+Environment.NewLine+Environment.NewLine+Environment.NewLine+PRReportFromRecord(Type); - OutFile(ReportName,string_out,true); - } - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Clipboard --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public int[] PRNumber(string clip, bool Hash = false){ - string[] string_PRs = null; - if (Hash == true) { - string_PRs = clip.Replace("\n"," ").Split(' ').Where(n => regex_hashPRRegex.IsMatch(n)).Distinct().ToArray(); - } else { - string_PRs = clip.Replace("\n"," ").Split(' ').Where(n => regex_hashPRRegexEnd.IsMatch(n)).ToArray(); - } - int[] int_PRs = new int[string_PRs.Length]; - for (int n = 0;n < string_PRs.Length; n++) { - if (Hash == true) { - string_PRs[n] = string_PRs[n].Replace("#"," "); - } - int_PRs[n] = Int32.Parse(string_PRs[n]); - } - return int_PRs; - } - - public string SortedClipboard(string string_in){ - IEnumerable string_array = string_in.Split('\n').Distinct(); - string string_joined = string.Join("\n", string_array); - return string_joined; - } - - public void OpenAllURLs (string Clip = ""){ - if (Clip == "") { - Clip = Clipboard.GetText(); - } - IEnumerable Urls; - Urls = Clip.Split(' '); - Urls = Urls.Where(n => n.Contains("http")); - Urls = Urls.Where(n => !n.Contains("[.]exe$")); - Urls = Urls.Where(n => !n.Contains("[.]msi$")); - Urls = Urls.Where(n => !n.Contains("[.]zip$")); - Urls = Urls.Distinct(); - foreach (string Url in Urls) { - System.Diagnostics.Process.Start(Url); - } - } - - public void OpenPRInBrowser(int PR,bool Files = false){ - string URL = GitHubBaseUrl+"/pull/"+PR+"#issue-comment-box"; - if (Files == true) { - URL = GitHubBaseUrl+"/pull/"+PR+"/files"; - } - Thread.Sleep(GitHubRateLimitDelay); - System.Diagnostics.Process.Start(URL); - }//end Function - - public string YamlValue(string ContainsString, string YamlString){ - //Split YamlString by \n - //String where equals StringName - YamlString = YamlString.Split('\n').Where(n => n.Contains(ContainsString)).FirstOrDefault(); // s.IndexOf(": "); - YamlString = YamlString.Replace(ContainsString+": ",""); - YamlString = YamlString.Split('#')[0]; - //YamlString = (YamlString.ToCharArray().Where(n => n.Contains("\\S"}).Join(""); - return YamlString.Trim(); - } - - public int GetCurrentPR() { - return Int32.Parse(inputBox_PRNumber.Text.Replace("#","")); - } - - public int GetSelectedVM() { - return Convert.ToInt32(dataGridView_vm.SelectedRows[0].Cells["vm"].Value); - } - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Et Cetera --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public bool TestAdmin() { - bool isAdmin = new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator); - if (isAdmin == true) { - MessageBox.Show("Try elevating your session." + Environment.NewLine, "Error"); - } - return isAdmin; - } - - public void TrackerProgress(int PR, string Activity, int Incrementor, int Length){ - //double Percent = System.Math.Round(Incrementor / Length*100,2); - //Write-Progress -Activity $Activity -Status "$PR - $Incrementor / $Length = $Percent %" -PercentComplete Percent - } - - public double ArraySum(int[] int_in){ - int sum = int_in.Sum(); - return sum;//Math.Round(sum,2); - } - - public void GitHubRateLimit(){ - //Time, as a number, constantly increases. - string Url = "https://api.github.com/rate_limit"; - dynamic Unlogged_Rate = FromJson(InvokeWebRequest(Url)); - //Unlogged_Rate["rate"] | select @{n="source";e={"Unlogged"}}, limit, used, remaining, @{n="reset";e={([System.DateTimeOffset]::FromUnixTimeSeconds(_.reset)).DateTime.AddHours(-8)}} - - dynamic Logged_Rate = FromJson(InvokeGitHubRequest(Url)); - //Response["rate"] | select @{n="source";e={"Logged"}}, limit, used, remaining, @{n="reset";e={([System.DateTimeOffset]::FromUnixTimeSeconds(_.reset)).DateTime.AddHours(-8)}} - } - - public string GetFileData(string Filename, string PackageIdentifier, string Property){ - dynamic Records = FromCsv(GetContent(Filename));//StatusFile - string string_out = ""; - for (int r = 1; r < Records.Length -1; r++){ - var row = Records[r]; - if (row["PackageIdentifier"] == PackageIdentifier) { - string_out += row[Property]; - }//end if row vm - }//end for r - return string_out; - } - - public void AddValidationData(string PackageIdentifier,string gitHubUserName = "",string authStrictness = "",string authUpdateType = "",string autoWaiverLabel = "",string versionParamOverrideUserName = "",int versionParamOverridePR = 0,string code200OverrideUserName = "",int code200OverridePR = 0,int AgreementOverridePR = 0 ,string AgreementURL = "",string reviewText = ""){ - //[ValidateSet("should","must")] - //[ValidateSet("auto","manual")] - - //Find the line with the PackageIdentifier, then if it's null, make a new line and insert. - dynamic data = FromCsv(GetContent(DataFileName)); - for (int r = 1; r < data.Length -1; r++){ - var row = data[r]; - - if (row["PackageIdentifier"] == PackageIdentifier) { - row["gitHubUserName"] = gitHubUserName; - row["authStrictness"] = authStrictness; - row["authUpdateType"] = authUpdateType; - row["autoWaiverLabel"] = autoWaiverLabel; - row["versionParamOverrideUserName"] = versionParamOverrideUserName; - row["versionParamOverridePR"] = versionParamOverridePR; - row["code200OverrideUserName"] = code200OverrideUserName; - row["code200OverridePR"] = code200OverridePR; - row["AgreementURL"] = AgreementURL; - row["AgreementOverridePR"] = AgreementOverridePR; - row["reviewText"] = reviewText; - }//end if row vm - }//end for r - - /* - if (null == string_out) {0 - string_out = ( "" | Select-Object "PackageIdentifier","gitHubUserName","authStrictness","authUpdateType","autoWaiverLabel","versionParamOverrideUserName","versionParamOverridePR","code200OverrideUserName","code200OverridePR","AgreementOverridePR","AgreementURL","reviewText") - string_out.PackageIdentifier = PackageIdentifier - } - - data += string_out - data = data.OrderBy(o=>o["PackageIdentifier"]).ToArray(); - */ - OutFile(DataFileName, ToCsv(data)); - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Utility Functions --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public void OpenSandbox(string string_PRNumber){ - int int_PRNumber = 0; - if (string_PRNumber[0] == '#') { - int_PRNumber = Int32.Parse(string_PRNumber.Substring(1,string_PRNumber.Length)); - } - StopProcess("sandbox"); - StopProcess("wingetautomator"); - string version = "1.6.1573-preview";//This is out of date. - string process ="wingetautomator://install?pull_request_number="+int_PRNumber.ToString()+"&winget_cli_version=v"+version.ToString()+"&watch=yes"; - System.Diagnostics.Process.Start(process); - } - - public string PadRight(string PackageIdentifier,int PadChars = 45){ - string string_out = ""; - if (PackageIdentifier.Length < PadChars) { - int int_extraSpaces = (PadChars - PackageIdentifier.Length -1); - string string_extraSpaces = new string(' ', int_extraSpaces); - string_out = String.Concat(PackageIdentifier, string_extraSpaces); - //} else if (PackageIdentifier.Length > PadChars) { - //string_out = PackageIdentifier.substring(0..(PadChars -1)) - //} - } - return string_out; - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- PowerShell Equivs --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// -/*Powershell functional equivalency imperatives - Get-Clipboard = Clipboard.GetText(); - Get-Date = DateTime.Now.ToString("M/d/yyyy"); - Get-Process = public Process[] processes = Process.GetProcesses(); or var processes = Process.GetProcessesByName("Test"); - New-Item = Directory.CreateDirectory(Path) or File.Create(Path); - Remove-Item = Directory.Delete(Path) or File.Delete(Path); - Get-ChildItem = string[] entries = Directory.GetFileSystemEntries(path, "*", SearchOption.AllDirectories); - Start-Process = System.Diagnostics.Process.Start("PathOrUrl"); - Stop-Process = StopProcess("ProcessName"); - Start-Sleep = Thread.Sleep(GitHubRateLimitDelay); - Get-Random - Random rnd = new Random(); or int month = rnd.Next(1, 13); or int card = rnd.Next(52); - Create-Archive = ZipFile.CreateFromDirectory(dataPath, zipPath); - Expand-Archive = ZipFile.ExtractToDirectory(zipPath, extractPath); - Sort-Object = .OrderBy(n=>n).ToArray(); and -Unique = .Distinct(); Or Array.Sort(strArray); or List - - Get-VM = GetVM("VMName"); - Start-VM = SetVMState("VMName", 2); - Stop-VM = SetVMState("VMName", 4); - Stop-VM -TurnOff = SetVMState("VMName", 3); - Reboot-VM = SetVMState("VMName", 10); - Reset-VM = SetVMState("VMName", 11); - -*/ - //System - public void StopProcess(string ProcessName) { - var processes = Process.GetProcessesByName(ProcessName); - foreach (Process process in processes){ - process.CloseMainWindow(); - } - } - //JSON - public dynamic FromJson(string string_input) { - dynamic dynamic_output = new System.Dynamic.ExpandoObject(); - dynamic_output = serializer.Deserialize(string_input); - return dynamic_output; - } - - public string ToJson(dynamic dynamic_input) { - string string_out; - string_out = serializer.Serialize(dynamic_input); - return string_out; - } - //CSV - public Dictionary[] FromCsv(string csv_in) { - //CSV isn't just a 2d object array - it's an array of Dictionary, whose string keys are the column headers. - string[] Rows = csv_in.Replace("\r\n","\n").Replace("\"","").Split('\n'); - string[] columnHeaders = Rows[0].Split(','); - Dictionary[] matrix = new Dictionary [Rows.Length]; - try { - for (int row = 1; row < Rows.Length; row++){ - matrix[row] = new Dictionary(); - //Need to enumerate values to create first row. - string[] rowData = Rows[row].Split(','); - try { - for (int col = 0; col < rowData.Length; col++){ - //Need to record or access first row to match with values. - matrix[row].Add(columnHeaders[col].ToString(), rowData[col]); - } - } catch { - } - } - } catch { - } - return matrix; - } - - public string ToCsv(Dictionary[] matrix) { - string csv_out = ""; - //Arrays seem to have a buffer row above and below the data. - int topRow = 1; - Dictionary headerRow = matrix[topRow]; - //Write header row (th). Support for multi-line headers maybe someday but not today. - if (headerRow != null) { - string[] columnHeaders = new string[headerRow.Keys.Count]; - headerRow.Keys.CopyTo(columnHeaders, 0); - //var a = matrix[0].Keys; - foreach (string columnHeader in columnHeaders){ - csv_out += columnHeader.ToString()+","; - } - csv_out = csv_out.TrimEnd(','); - // Write data rows (td). - for (int row = topRow; row < matrix.Length -1; row++){ - csv_out += "\n"; - foreach (string columnHeader in columnHeaders){ - csv_out += matrix[row][columnHeader]+","; - } - csv_out = csv_out.TrimEnd(','); - } - } - csv_out += "\n"; - return csv_out; - } - //File - public string GetContent(string Filename, bool NoErrorMessage = false) { - string string_out = ""; - try { - // Open the text file using a stream reader. - using (var sr = new StreamReader(Filename)) { - // Read the stream as a string, and write the string to the console. - string_out = sr.ReadToEnd(); - } - } catch (IOException e) { - if (NoErrorMessage == false) { - MessageBox.Show(e.Message, "Error"); - } - } - return string_out; - } - - public void OutFile(string path, object content, bool Append = false) { - //From SO: Use "typeof" when you want to get the type at compilation time. Use "GetType" when you want to get the type at execution time. "is" returns true if an instance is in the inheritance tree. - if (TestPath(path) == "None") { - File.Create(path).Close(); - } - if (content.GetType() == typeof(string)) { - string out_content = (string)content; - //From SO: File.WriteAllLines takes a sequence of strings - you've only got a single string. If you only want your file to contain that single string, just use File.WriteAllText. - if (Append == true) { - File.AppendAllText(path, out_content, Encoding.ASCII);//string - } else { - File.WriteAllText(path, out_content, Encoding.ASCII);//string - } - } else { - IEnumerable out_content = (IEnumerable)content; - if (Append == true) { - File.AppendAllLines(path, out_content, Encoding.ASCII);//IEnumerable' - } else { - File.WriteAllLines(path, out_content, Encoding.ASCII);//string[] - } - } - } - - public string TestPath(string path) { - string string_out = ""; - if (path != null) { - path = path.Trim(); - if (Directory.Exists(path)) { - string_out = "Directory"; - } else if (File.Exists(path)) { - string_out = "File"; - } else {// neither file nor directory exists. guess intention - string_out = "None"; - } - } else {// neither file nor directory exists. guess intention - string_out = "Empty"; - } - return string_out; - } - //Web - public string InvokeWebRequest(string Url, string Method = WebRequestMethods.Http.Get, string Body = "",bool Authorization = false){ - string response_out = ""; - - // SSL stuff - //ServicePointManager.Expect100Continue = true; - ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; - - HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); - - if (Authorization == true) { - request.Headers.Add("Authorization", "Bearer "+GitHubToken); - request.Headers.Add("X-GitHub-Api-build", "2022-11-28"); - request.PreAuthenticate = true; - } - - request.Method = Method; - request.ContentType = "application/json;charset=utf-8"; - request.Accept = "application/vnd.github+json"; - request.UserAgent = "WinGetApprovalPipeline"; - - //Check Headers - // for (int i=0; i < response.Headers.Count; ++i) { - // outBox_msg.AppendText(Environment.NewLine + "Header Name : " + response.Headers.Keys[i] + "Header value : " + response.Headers[i]); - // } - - try { - if ((Body == "") || (Method ==WebRequestMethods.Http.Get)) { - } else { - var data = Encoding.Default.GetBytes(Body); // note: choose appropriate encoding - request.ContentLength = data.Length; - var newStream = request.GetRequestStream(); // get a ref to the request body so it can be modified - newStream.Write(data, 0, data.Length); - newStream.Close(); - } - - } catch (Exception e) { - //MessageBox.Show("Wrong request!" + ex.Message, "Error"); - response_out = "Request Error: " + e.Message; - } - - try { - HttpWebResponse response = (HttpWebResponse)request.GetResponse(); - StreamReader sr = new StreamReader(response.GetResponseStream()); - if (Method == "Head") { - string response_text = response.StatusCode.ToString(); - response_out = response_text; - - } else { - string response_text = sr.ReadToEnd(); - response_out = response_text; - } - sr.Close(); - } catch (Exception e) { - response_out = "Response Error: " + e.Message; - } - return response_out; - }// end InvokeWebRequest - - public void RemoveItem(string Path,bool remake = false){ - if (TestPath(Path) == "File") { - File.Delete(Path); - if (remake) { - File.Create(Path); - } - } else if (TestPath(Path) == "Directory") { - Directory.Delete(Path, true); - if (remake) { - Directory.CreateDirectory(Path); - } - } - } - //Hyper-V - public ManagementObject GetCimService(string ServiceName) { - string CImQuery = "SELECT * FROM "+ServiceName; - ObjectQuery QueryData = new ObjectQuery(@CImQuery); - ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, QueryData); - ManagementObjectCollection collection = searcher.Get(); - - ManagementObject CimService = null; - foreach (ManagementObject obj in collection) { - CimService = obj; - break; - } - return CimService; - } - - public ManagementObject GetVM(string VMName, string ServiceName = "Msvm_ComputerSystem") { - return GetCimService(ServiceName + " WHERE ElementName = '" + VMName + "'"); - } - /*States: - 1: Other - 2: Start-VM - 3: Stop-VM -TurnOff - 4: Stop-VM - 5: Stopped??? - 6: Offline - 7: Test - 8: Defer - 9: Quiesce - 10: Reboot - 11: Reset - */ - public void SetVMState(string VMName, int state) { - ManagementObject vm = GetVM(VMName); - ManagementBaseObject inParams = vm.GetMethodParameters("RequestStateChange"); - inParams["RequestedState"] = state; - ManagementBaseObject outParams = vm.InvokeMethod("RequestStateChange", inParams, null); - } - - public void RemoveVM(string VMName) { - ManagementObject vm = GetVM(VMName); - ManagementObject virtualSystemService = GetCimService("Msvm_VirtualSystemManagementService"); - - ManagementBaseObject inParams = virtualSystemService.GetMethodParameters("DestroyVirtualSystem"); - inParams["ComputerSystem"] = vm.Path.Path; - ManagementBaseObject outParams = virtualSystemService.InvokeMethod("DestroyVirtualSystem", inParams, null); - } - - public ManagementObject GetLastSnapshot(string VMName = "") { - ManagementObject vm = GetVM(VMName); - ManagementObjectCollection settings = vm.GetRelated( - "Msvm_VirtualSystemSettingData", - "Msvm_MostCurrentSnapshotInBranch", - null, - null, - "Dependent", - "Antecedent", - false, - null); - - ManagementObject virtualSystemsetting = null; - foreach (ManagementObject setting in settings) { - //Console.WriteLine(setting.Path.Path); - //Console.WriteLine(setting["ElementName"]); - virtualSystemsetting = setting; - } - return virtualSystemsetting; - } - - public void RestoreVMSnapshot(string VMName) { - try { - - ManagementObject snapshot = GetLastSnapshot(VMName); - ManagementObject snapshotService = GetCimService("Msvm_VirtualSystemSnapshotService"); - - var inParameters = snapshotService.GetMethodParameters("ApplySnapshot"); - inParameters["Snapshot"] = snapshot.Path.Path; - var outParameters = snapshotService.InvokeMethod("ApplySnapshot", inParameters, null); - //return (uint)outParameters["ReturnValue"]; - } catch (Exception e) { - outBox_msg.AppendText(Environment.NewLine + "e: " + e ); - } - } - - public uint CheckpointVM(string VMName) { - ManagementObject snapshot = GetLastSnapshot(VMName); - ManagementObject snapshotService = GetCimService("Msvm_VirtualSystemSnapshotService"); - - var inParameters = snapshotService.GetMethodParameters("CreateSnapshot"); - inParameters["Snapshot"] = snapshot.Path.Path; - var outParameters = snapshotService.InvokeMethod("CreateSnapshot", inParameters, null); - return (uint)outParameters["ReturnValue"]; - } - - public uint RemoveVMSnapshot(string VMName) { - ManagementObject snapshot = GetLastSnapshot(VMName); - ManagementObject snapshotService = GetCimService("Msvm_VirtualSystemSnapshotService"); - - var inParameters = snapshotService.GetMethodParameters("DestroySnapshot"); - inParameters["Snapshot"] = snapshot.Path.Path; - var outParameters = snapshotService.InvokeMethod("DestroySnapshot ", inParameters, null); - return (uint)outParameters["ReturnValue"]; - } - - public void RenameVM(string VMName, string NewName) { - Process process = new Process(); - string command = "Rename-VM -VM "+VMName+" -newName "+NewName; - process.StartInfo.Arguments = string.Format(command); - process.StartInfo.FileName = "PowerShell.EXE"; - process.StartInfo.CreateNoWindow = true; - process.StartInfo.UseShellExecute = false; - process.Start(); - process.WaitForExit(); - } - - public void RenameVM2(string VMName, string vmNewName) { - - ManagementObject virtualSystemService = GetCimService("Msvm_VirtualSystemManagementService"); - ManagementBaseObject inParams = virtualSystemService.GetMethodParameters("ModifyVirtualSystem"); - ManagementObject vm = GetVM(VMName); - // ManagementBaseObject inParams = vm.GetMethodParameters("ModifyVirtualSystem"); - - inParams["ComputerSystem"] = vm.Path.Path; - ManagementObject settingData = null; - ManagementObjectCollection settingsData = vm.GetRelated( - "Msvm_VirtualSystemSettingData", - "Msvm_SettingsDefineState", - null, - null, - "SettingData", - "ManagedElement", - false, - null); - - foreach (ManagementObject data in settingsData) { - settingData = data; - } - settingData["ElementName"] = vmNewName; - inParams["SystemsettingData"] = settingData.GetText(TextFormat.CimDtd20); - ManagementBaseObject outParams = virtualSystemService.InvokeMethod("ModifyVirtualSystem", inParams, null); - // ManagementBaseObject outParams = vm.InvokeMethod("RequestStateChange", inParams, null); - - } - - public void MoveVMStorage(string VMName, string DestinationPath) { - Process process = new Process(); - string command = "Move-VMStorage -VM "+VMName+" -DestinationStoragePath "+DestinationPath; - process.StartInfo.Arguments = string.Format(command); - process.StartInfo.FileName = "PowerShell.EXE"; - process.StartInfo.CreateNoWindow = true; - process.StartInfo.UseShellExecute = false; - process.Start(); - process.WaitForExit(); - } - - public void ImportVM(string CurrentPath, string DestinationPath) { - Process process = new Process(); - string command = "Import-VM -Path " + CurrentPath + " -Copy -GenerateNewId -VhdDestinationPath "+DestinationPath +" -VirtualMachinePath "+DestinationPath; - process.StartInfo.FileName = "PowerShell.EXE"; - process.StartInfo.Arguments = command; - process.StartInfo.CreateNoWindow = true; - process.StartInfo.UseShellExecute = false; - outBox_msg.AppendText(Environment.NewLine + "ImportVM " + process.StartInfo.FileName); - process.Start(); - outBox_msg.AppendText(Environment.NewLine + "Start " + process.StartInfo.FileName); - process.WaitForExit(); - outBox_msg.AppendText(Environment.NewLine + "WaitForExit " + process.StartInfo.FileName); - } - - public void SetVMMemory(string VMName, int MemoryMaximumGB) { - Process process = new Process(); - string command = "Set-VM -VMName " + VMName + " -MemoryMaximumBytes " + ((MemoryMaximumGB + 2) * 1073741824); - process.StartInfo.Arguments = string.Format(command); - process.StartInfo.FileName = "PowerShell.EXE"; - process.StartInfo.CreateNoWindow = true; - process.StartInfo.UseShellExecute = false; - process.Start(); - process.WaitForExit(); - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Window Locations --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - [DllImport("user32.dll")] - [return: MarshalAs(UnmanagedType.Bool)] - public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect); - - [DllImport("user32.dll")] - public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); - - public struct RECT { - public int Left; // x position of upper-left corner - public int Top; // y position of upper-left corner - public int Right; // x position of lower-right corner - public int Bottom; // y position of lower-right corner - } - - public RECT rect; - - public void WindowLoc(int vm,ref RECT rect) { - //Need to readd the logic that finds the mainwindowhandle from the VM number. - var processes = Process.GetProcessesByName("vmconnect"); - string VMName = "vm"+vm; - foreach (Process process in processes){ - if (process.MainWindowTitle ==(VMName)) { - GetWindowRect(process.MainWindowHandle,out rect); - } - } - } - - public void WindowSet(int vm,int Left,int Top,int Right,int Bottom) { - var processes = Process.GetProcessesByName("vmconnect"); - string VMName = "vm"+vm; - foreach (Process process in processes){ - if (process.MainWindowTitle ==(VMName)) { - MoveWindow(process.MainWindowHandle,Left,Top,Right,Bottom,true); - } - } - } - - public void WindowArrange() { - Dictionary[] GetStatus = FromCsv(GetContent(StatusFile)); - - Dictionary[] VMs = (Dictionary[])GetStatus.Where(n => (string)n["status"] != "Ready").Select(n => n["vm"]); - - if (VMs != null) { - int n = 0; - //for (int n = 1;n < VMs.Length;n++) { - foreach (Dictionary FullVM in VMs){ - RECT Base = new RECT(); - int VM = (int)FullVM["vm"]; - if (n == 0) { - WindowSet(VM,900,0,1029,860); - WindowLoc(VM, ref Base); - } - - int Left = (Base.Left - (100 * n)); - int Top = (Base.Top + (66 * n)); - WindowSet(VM,Left,Top,1029,860); - n++; - } - } - - for (int VM = 0; VM < GetStatus.Length; VM++) { - try { - string string_ram = GetStatus[VM]["RAM"]+" "; - } catch { - //inputBox_VMRAM.Text = e.ToString(); - } - } - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Event Handlers --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - //File - public void Save_File_Action(object sender, EventArgs e) { - MessageBox.Show("You're saved"); - }// end Save_File_Action - - public void Daily_Report_Action(object sender, EventArgs e) { - PRFullReport(); - }// end Daily_Report_Action - - //VM Lifecycle - public void Complete_VM_Image_Action (object sender, EventArgs e) { - CompleteVM(GetSelectedVM()); - } // end Complete_VM_Image_Action - - public void Launch_Window_Image_Action (object sender, EventArgs e) { - LaunchWindow(GetSelectedVM()); - } // end Launch_Window_Image_Action - - public void Open_Folder_Image_Action (object sender, EventArgs e) { - int VM = GetSelectedVM(); - Process.Start("C:\\ManVal\\vm\\"+VM.ToString()); - } // end Launch_Window_Image_Action - //VM Lifecycle - Win10 - public void Generate_Win10_VM_Image_Action (object sender, EventArgs e) { - GenerateVM("Win10"); - } // end Generate_VM_Image_Action - - public void Start_Win10_Image_Action (object sender, EventArgs e) { - ImageVMStart("Win10"); - } // end Start_Win10_Image_Action - - public void Launch_Win10_Window_Image_Action (object sender, EventArgs e) { - LaunchWindow(0,"Win10"); - } // end Launch_Win10_Window_Image_Action - - public void Stop_Win10_Image_Action (object sender, EventArgs e) { - ImageVMStop("Win10"); - } // end Stop_Win10_Image_Action - - public void TurnOff_Win10_Image_Action (object sender, EventArgs e) { - StopVM(0,"Win10"); - } // end TurnOff_Win10_Image_Action - - public void Attach_Win10_Image_Action (object sender, EventArgs e) { - ImageVMMove("Win10"); - } // end Attach_Win10_Image_Action - //VM Lifecycle - Win11 - public void Generate_Win11_VM_Image_Action (object sender, EventArgs e) { - GenerateVM("Win11"); - } // end Generate_VM_Image_Action - - public void Start_Win11_Image_Action (object sender, EventArgs e) { - ImageVMStart("Win11"); - } // end Start_Win11_Image_Action - - public void Launch_Win11_Window_Image_Action (object sender, EventArgs e) { - LaunchWindow(0,"Win11"); - } // end Launch_Win11_Window_Image_Action - - public void Stop_Win11_Image_Action (object sender, EventArgs e) { - ImageVMStop("Win11"); - } // end Stop_Win11_Image_Action - - public void TurnOff_Win11_Image_Action (object sender, EventArgs e) { - StopVM(0,"Win11"); - } // end TurnOff_Win11_Image_Action - - public void Attach_Win11_Image_Action (object sender, EventArgs e) { - ImageVMMove("Win11"); - } // end Attach_Win11_Image_Action - //VM Lifecycle - public void Disgenerate_VM_Image_Action (object sender, EventArgs e) { - DisgenerateVM(GetSelectedVM()); - } // end Disgenerate_VM_Image_Action - - //Validate Manifest - public void Validate_Manifest_Action(object sender, EventArgs e) { - ValidateManifest(); - }// end Validate_Manifest_Action - - public void Validate_By_Configure_Action(object sender, EventArgs e) { - ValidateManifest(0,"","",0,"","","","","",false,false,"","",false, "","Configure"); - }// end Validate_By_ID_Action - - public void Validate_By_ID_Action(object sender, EventArgs e) { - string PackageIdentifier = inputBox_User.Text; - - ValidateManifest(0,PackageIdentifier,"",0,"","","","","",false,false,"","",false, "--id "+PackageIdentifier); -//ValidateManifest(VM = 0, PackageIdentifier = "", PackageVersion = "", PR = 0, Arch = "", Scope = "", InstallerType = "", OS = "", Locale = "", InspectNew = false, notElevated = false, MinimumOSVersion = "", ManualDependency = "", NoFiles = false, installerLine = "", Operation = "Scan") - }// end Validate_By_ID_Action - - public void Validate_By_Arch_Action(object sender, EventArgs e) { - ValidateManifest(0,"","",0,"x64"); - Thread.Sleep(HyperVRateLimitDelay); - ValidateManifest(0,"","",0,"x86"); - }// end Validate_By_ID_Action - - public void Validate_By_Scope_Action(object sender, EventArgs e) { - ValidateManifest(0,"","",0,"","Machine"); - Thread.Sleep(HyperVRateLimitDelay); - ValidateManifest(0,"","",0,"","User"); - }// end Validate_By_ID_Action - - public void Validate_By_Arch_And_Scope_Action(object sender, EventArgs e) { - ValidateManifest(0,"","",0,"x64","Machine"); - Thread.Sleep(HyperVRateLimitDelay); - ValidateManifest(0,"","",0,"x86","Machine"); - Thread.Sleep(HyperVRateLimitDelay); - ValidateManifest(0,"","",0,"x64","User"); - Thread.Sleep(HyperVRateLimitDelay); - ValidateManifest(0,"","",0,"x86","User"); - }// end Validate_By_ID_Action - //Generate manifest for selected VM - public void Manifest_From_Clipboard (object sender, EventArgs e) { - string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; - AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "Report bugs and request features:" + Environment.NewLine; - AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - MessageBox.Show(AboutText); - }// end Validate_By_ID_Action - - public void Single_File_Automation_Action(object sender, EventArgs e) { - string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; - AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "Report bugs and request features:" + Environment.NewLine; - AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - MessageBox.Show(AboutText); - }// end Validate_By_ID_Action - //Update manifest - public void Add_Dependency_Disk_Action (object sender, EventArgs e) { - string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; - AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "Report bugs and request features:" + Environment.NewLine; - AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - MessageBox.Show(AboutText); - } // end Add_Dependency_Disk_Action - - public void Add_Installer_Switch_Action (object sender, EventArgs e) { - string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; - AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "Report bugs and request features:" + Environment.NewLine; - AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - MessageBox.Show(AboutText); - } // end Add_Installer_Switch_Action - - //Modify PR - public void Add_Waiver_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - dynamic string_out = FromJson(AddWaiver(PR)); - AddPRToRecord(PR,"Waiver"); - }// end Add_Waiver_Action - - public void Label_Action_Action(object sender, EventArgs e) { - string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; - AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "Report bugs and request features:" + Environment.NewLine; - AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - MessageBox.Show(AboutText); - }// end Label_Action_Action - - public void Approved_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - - string Timestamp = DateTime.Now.ToString("H:mm:ss"); - DataRow row = table_val.NewRow(); - row[0] = Timestamp; - row[1] = PR; - row[2] = ""; - row[3] = ""; - row[4] = "A"; - row[5] = 0;//M - row[6] = "R"; - row[7] = "G"; - row[8] = "W"; - row[9] = "F"; - row[10] = "I"; - row[11] = "D"; - row[12] = "V"; - row[13] = ""; - row[14] = "+"; - table_val.Rows.InsertAt(row,0); - - string response_out = FromJson(ApprovePR(PR))["state"]; - table_val.Rows[0].SetField("OK", response_out[0]); - AddPRToRecord(PR,"Approved"); - }// end Approved_Action - - public void Needs_Author_Feedback_Action(object sender, EventArgs e) { - string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; - AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "Report bugs and request features:" + Environment.NewLine; - AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - MessageBox.Show(AboutText); - }// end Needs_Author_Feedback_Action - - public void Check_Installer_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - CheckInstaller(PR); - }// end Check_Installer_Action - //Modify PR - Canned Replies - public void Automation_Block_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - AddPRToRecord(PR,"Blocking"); - string response_out = ReplyToPR(PR,"AutomationBlock","Network-Blocker"); - }// end Automation_Block_Action - - public void Driver_Install_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - string response_out = ReplyToPR(PR,"DriverInstall","DriverInstall"); - AddPRToRecord(PR,"Blocking"); - }// end Driver_Install_Action - - public void Installer_Missing_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - AddPRToRecord(PR,"Feedback"); - string response_out = ReplyToPR(PR,"InstallerMissing",MagicLabels[30]); - }// end Installer_Missing_Action - - public void Installer_Not_Silent_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - AddPRToRecord(PR,"Feedback"); - string response_out = ReplyToPR(PR,"InstallerNotSilent",MagicLabels[30]); - }// end Installer_Not_Silent_Action - - public void Needs_PackageUrl_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - AddPRToRecord(PR,"Feedback"); - string response_out = ReplyToPR(PR,"PackageUrl",MagicLabels[30]); - }// end Needs_PackageUrl_Action - - public void One_Manifest_Per_PR_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - AddPRToRecord(PR,"Feedback"); - string response_out = ReplyToPR(PR,"OneManifestPerPR",MagicLabels[30]); - }// end One_Manifest_Per_PR_Action - //Modify PR - Update Manifest - public void Add_Dependency_Repo_Action (object sender, EventArgs e) { - string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; - AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "Report bugs and request features:" + Environment.NewLine; - AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - MessageBox.Show(AboutText); - } // end Add_Dependency_Repo_Action - - public void Update_Hash_Action (object sender, EventArgs e) { - string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; - AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "Report bugs and request features:" + Environment.NewLine; - AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - MessageBox.Show(AboutText); - } // end Update_Hash_Action - - public void Update_Hash2_Action (object sender, EventArgs e) { - string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; - AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "Report bugs and request features:" + Environment.NewLine; - AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - MessageBox.Show(AboutText); - } // end Update_Hash2_Action - - public void Update_Arch_Action (object sender, EventArgs e) { - string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; - AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "Report bugs and request features:" + Environment.NewLine; - AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - MessageBox.Show(AboutText); - } // end Update_Arch_Action - //Modify PR - public void Retry_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - dynamic response_out = FromJson(RetryPR(PR)); - AddPRToRecord(PR,"Retry"); - }// end Approved_Action - - public void Manually_Validated_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - string response_out = ReplyToPR(PR,"InstallsNormally","","Manually-Validated"); - AddPRToRecord(PR,"Manual"); - }// end Manually_Validated_Action - //Modify PR - Close PR - public void Closed_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - string UserInput = inputBox_User.Text; - inputBox_User.Text = ""; - AddPRToRecord(PR,"Closed"); - InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: "+UserInput+";"); - }// end Closed_Action - - public void Merge_Conflicts_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - AddPRToRecord(PR,"Closed"); - dynamic response_out = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: Merge Conflicts;")); - }// end Merge_Conflicts_Action - - public void Version_Already_Exiss_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - AddPRToRecord(PR,"Closed"); - dynamic response_out = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: Version already exists;")); - }// end Version_Already_Exiss_Action - - public void Package_Available_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - AddPRToRecord(PR,"Closed"); - dynamic response_out = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: Package still available;")); - }// end Package_Available_Action - - public void Regen_Hash_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - AddPRToRecord(PR,"Closed"); - dynamic response_out = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: Regenerate with new hash, and the newest version number.;")); - }// end Package_Available_Action - - public void Duplicate_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - int UserInput = Int32.Parse(inputBox_User.Text.Replace("#","")); - inputBox_User.Text = ""; - AddPRToRecord(PR,"Closed"); - dynamic response_out = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: Duplicate of #"+UserInput+";")); - }// end Duplicate_Action - //Modify PR - public void Project_File_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - AddPRToRecord(PR,"Project"); - }// end Project_File_Action - - public void Squash_Action(object sender, EventArgs e) { - int PR = GetCurrentPR(); - AddPRToRecord(PR,"Squash"); - }// end Approved_Action - - //Open In Browser - public void Open_Current_PR_Action(object sender, EventArgs e) { - OpenPRInBrowser(GetCurrentPR()); - - }// end Approved_Action - - public void Open_PR_Selected_VM_Action(object sender, EventArgs e) {; - int PR = Convert.ToInt32(dataGridView_vm.SelectedRows[0].Cells["PR"].Value); - OpenPRInBrowser(PR); - }// end Approved_Action - - public void Pkgs_Issues_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/issues"); - }// end Approval_Search_Action - - public void Cli_Issues_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-cli/issues"); - }// end Approval_Search_Action - - public void Manual_Merge_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/labels/Needs-Manual-Merge"); - }// end Approval_Search_Action - - public void Highest_Version_Remaining_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/pulls?q=is%3Aopen+is%3Apr+draft%3Afalse+label%3AHighest-Version-Removal+");//HVR - }// end Approval_Search_Action - - public void Approval_Search_Action(object sender, EventArgs e) { - SearchGitHub("Approval",1,0, false,false,true); - }// end Approval_Search_Action - - public void Defender_Search_Action(object sender, EventArgs e) { - SearchGitHub("Defender",1,0, false,false,true); - }// end Defender_Search_Action - - public void ToWork_Search_Action(object sender, EventArgs e) { - SearchGitHub("ToWork",1,0, false,false,true); - }// end ToWork_Search_Action - - public void Open_Repo_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start(GitHubBaseUrl); - }// end Approved_Action - //Open In Browser - Open many tabs: - public void Open_AllUrls_Action(object sender, EventArgs e) { - string clip = Clipboard.GetText(); - foreach (int PR in PRNumber(clip,true)) { - OpenPRInBrowser(PR); - Thread.Sleep(GitHubRateLimitDelay); - } - }// end Approved_Action - - public void Approval_Run_Search_Action(object sender, EventArgs e) { - WorkSearch("Approval"); - }// end Approved_Action - - public void ToWork_Run_Search_Action(object sender, EventArgs e) { - WorkSearch("ToWork"); - }// end Approved_Action - - public void All_Resources_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://app.gitter.im/#/room/#Microsoft_winget-pkgs:gitter.im");//Gitter chat - System.Diagnostics.Process.Start("https://dev.azure.com/ms/winget-pkgs/_build");//Pipeline status - System.Diagnostics.Process.Start("https://stpkgmandashwesus2pme.z5.web.core.windows.net/");//Dashboard - SearchGitHub("Approval",1,0, false,false,true);//Approval search - SearchGitHub("ToWork",1,0, false,false,true);//ToWork search - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/pulls?q=is%3Aopen+is%3Apr+draft%3Afalse+-label%3ABlocking-Issue++label%3AValidation-Executable-Error+label%3AAzure-Pipeline-Passed+-label%3AValidation-Completed+-label%3AInternal-Error-Dynamic-Scan+-label%3AValidation-Defender-Error+-label%3AChanges-Requested+-label%3ADependencies+-label%3AHardware+-label%3AInternal-Error-Manifest+-label%3AInternal-Error-NoSupportedArchitectures+-label%3ALicense-Blocks-Install+-label%3ANeeds-CLA+-label%3ANetwork-Blocker+-label%3ANo-Recent-Activity+-label%3Aportable-jar+-label%3AReboot+-label%3AScripted-Application+-label%3AWindowsFeatures+-label%3Azip-binary");//APP-VEE - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/issues?q=is%3Aopen+assignee%3A"+gitHubUserName+"+-label%3AValidation-Completed+-label%3AValidation-Defender-Error+-label%3AError-Hash-Mismatch");//Assigned to user - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/pulls?q=is%3Apr+is%3Aopen+-is%3Adraft+label%3Amoderator-approved+label%3AValidation-Completed+-label%3ANeeds-CLA+-label%3ANeeds-Attention+-label%3ANeeds-Author-Feedback++-label%3ABlocking-Issue+");//Squash-Ready - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/labels/Internal-Error-Dynamic-Scan");//IEDS - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/pulls?page=1&q=is%3Apr+is%3Aopen+draft%3Afalse+label%3AValidation-Completed+label%3ANeeds-Attention+-label%3ALast-Version-Remaining+-label%3AScripted-Application+-label%3Ahardware");//VCNA - System.Diagnostics.Process.Start("https://github.com/notifications?query=reason%3Amention");//Notifications mentions - }// end All_Resources_Action - - public void Start_Of_Day_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/issues"); - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-cli/issues"); - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/labels/Needs-Manual-Merge"); - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/pulls?q=is%3Aopen+is%3Apr+draft%3Afalse+label%3AHighest-Version-Removal+");//HVR - SearchGitHub("Defender",1,0, false,false,true); - }// end Start_Of_Day_Action - //Open In Browser - public void Open_PKGS_Repo_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start(GitHubBaseUrl); - }// end Open_PKGS_Repo_Action - - public void Open_CLI_Repo_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/microsoft/winget-cli/"); - }// end Open_CLI_Repo_Action - - public void Open_Notifications_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://github.com/notifications?query=reason%3Amention"); - }// end Approved_Action - - public void Open_Gitter_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://app.gitter.im/#/room/#Microsoft_winget-pkgs:gitter.im"); - }// end Approved_Action - - public void Open_Pipeline_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://dev.azure.com/ms/winget-pkgs/_build"); - }// end Approved_Action - - public void Open_Dashboard_Action(object sender, EventArgs e) { - System.Diagnostics.Process.Start("https://stpkgmandashwesus2pme.z5.web.core.windows.net/"); - }// end Approved_Action - - public void Pkgs_Search_Action(object sender, EventArgs e) { - string UserInput = inputBox_User.Text; - inputBox_User.Text = ""; - System.Diagnostics.Process.Start("https://github.com/search?q=repo%3Amicrosoft%2Fwinget-pkgs+"+UserInput+"&type=pullrequests"); - }// end Pkgs_Search_Action - - public void Open_SelectedApproved_Action(object sender, EventArgs e) { - int PR = Convert.ToInt32(dataGridView_val.SelectedRows[0].Cells["PR"].Value); - OpenPRInBrowser(PR); - }// end Open_SelectedApproved_Action - - - //Help - public void About_Click_Action (object sender, EventArgs e) { - string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; - AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "Report bugs and request features:" + Environment.NewLine; - AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - AboutText += "" + Environment.NewLine; - MessageBox.Show(AboutText); - } // end About_Click_Action - - public void VCDependency_Click_Action (object sender, EventArgs e) { - string AboutText = "VCRedist DLL to dependency mapping:" + Environment.NewLine; - AboutText += "Missing DLL - Dependency" + Environment.NewLine; - AboutText += "MSVCR71.dll - Microsoft.VCRedist.2005.x64 (x86)" + Environment.NewLine; - AboutText += "MSVCR08.dll - Microsoft.VCRedist.2008.x64 (x86)" + Environment.NewLine; - AboutText += "MSVCR09.dll & MSVCR100.dll - Microsoft.VCRedist.2010.x64 (x86)" + Environment.NewLine; - AboutText += "MSVCR120.dll - Microsoft.VCRedist.2012.x64 (x86)" + Environment.NewLine; - AboutText += "MSVCR130.dll - Microsoft.VCRedist.2013.x64 (x86)" + Environment.NewLine; - AboutText += "MSVCR140.dll - Microsoft.VCRedist.2015+.x64 (x86)" + Environment.NewLine; - AboutText += "??? - Microsoft.VCRedist.2019.arm64" + Environment.NewLine; - AboutText += "??? - Microsoft.VCRedist.2022.arm64" + Environment.NewLine; - MessageBox.Show(AboutText); - } // end About_Click_Action - - - - - - public void Testing_Action(object sender, EventArgs e) { - // string string_out = (PRStateFromComments(PR).ToString()); - // dynamic string_out = GetFileData(DataFileName,"PackageIdentifier", UserInput); - // dynamic string_out = FromCsv(GetContent(DataFileName)).Where(n => n[Property] != null).Where(n => (string)n[Property].Contains(Match); - string UserInput = inputBox_User.Text; - dynamic line = FromCsv(GetContent(DataFileName)).Where(n => (string)n["PackageIdentifier"] == (UserInput)); - outBox_msg.AppendText(Environment.NewLine + "Testing: " + ToJson(line)); - }// end Testing_Action - - public void Testing2_Action(object sender, EventArgs e) { - string UserInput = inputBox_User.Text; - List versions = ManifestListing(UserInput); - // dynamic line = FromCsv(GetContent(DataFileName)).Where(n => (string)n["PackageIdentifier"] == (UserInput)); - outBox_msg.AppendText(Environment.NewLine + "Testing2: " + ToJson(versions)); - }// end Testing_Action - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Inject into PRs --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// -/*Inject into PRs -public string AddDependencyToPR(int PR){ - string Dependency = "Microsoft.VCRedist.2015+.x64", - string SearchString = "Installers:", - string LineNumbers = CommitFile(PR, string File, string url) (Select-String SearchString).LineNumber), - string ReplaceString = "Dependencies:\n PackageDependencies:\n - PackageIdentifier: $Dependency\nInstallers:", - string comment = "\\\\\\suggestion\n$ReplaceString\n\\\\\\\n\n(Automated response - build "build".)" - string_out = "" - foreach ($Line in $LineNumbers) { - string_out += Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Policy "Needs-Author-Feedback" - } -} -public string UpdateHashInPR(int PR, string ManifestHash, string PackageHash, string LineNumbers = ((Get-CommitFile -PR $PR | Select-String ManifestHash).LineNumber), string ReplaceTerm = (" InstallerSha256: $($PackageHash.toUpper())"), string comment = "\\\\\\suggestion\n$ReplaceString\n\\\\\\\n\n(Automated response - build "build".)"){ - foreach ($Line in $LineNumbers) { - Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Policy "Needs-Author-Feedback" - } -} - -public string UpdateHashInPR2(int PR, string clip, string SearchTerm = "Expected hash", string ManifestHash = (YamlValue $SearchTerm -Clip $Clip), string LineNumbers = ((Get-CommitFile -PR $PR | Select-String ManifestHash).LineNumber), string ReplaceTerm = "Actual hash", string PackageHash = (" InstallerSha256: "+(YamlValue $ReplaceTerm -Clip $Clip).toUpper()), string comment = "\\\\\\suggestion\n$ReplaceString\n\\\\\\\n\n(Automated response - build "build".)"){ - foreach ($Line in $LineNumbers) { - Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Policy "Needs-Author-Feedback" - } -} - -public string UpdateArchInPR(int PR, string SearchTerm = " Architecture: x86", string LineNumbers = ((Get-CommitFile -PR $PR | Select-String SearchTerm).LineNumber),string ReplaceTerm = (($SearchTerm.Split(": "))[1]),string ReplaceArch = (("x86","x64").Where(n => n -notmatch $ReplaceTerm}), string ReplaceString = ($SearchTerm.Replace($ReplaceTerm, string ReplaceArch), string comment = "\\\\\\suggestion\n$ReplaceString\n\\\\\\\n\n(Automated response - build "build".)")){ -[ValidateSet("x86","x64","arm","arm32","arm64","neutral")] - foreach ($Line in $LineNumbers) { - Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Policy "Needs-Author-Feedback" - } -} -*/ - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Inject into Files --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public void AddToValidationFile(int VM, string Dependency = "Microsoft.VCRedist.2015+.x64"){ - string VMFolder = MainFolder+"\\vm\\"+VM; - string manifestFolder = VMFolder+"\\manifest"; - string FilePath = "manifestFolder\\Package.installer.yaml"; - string fileContents = GetContent(FilePath); - //string Selector = "Installers:"; - // int offset = 1; - // int lineNo = 0;//((fileContents| Select-String Selector -List).LineNumber -offset); - //string fileInsert = "Dependencies:\n PackageDependencies:\n - PackageIdentifier: Dependency"; - string fileOutput = fileContents;//(fileContents[0..(lineNo -1)]+fileInsert+fileContents[lineNo..(fileContents.Length)]); - OutFile(FilePath,fileOutput); - SetStatus(VM,"Revert"); - } - - public void AddInstallerSwitch(int VM, string Data){ - string VMFolder = MainFolder+"\\vm\\"+VM; - string manifestFolder = VMFolder+"\\manifest"; - string FilePath = "manifestFolder\\Package.installer.yaml"; - string fileContents = GetContent(FilePath); - // string Selector = "ManifestType:"; - // int offset = 1; - // int lineNo = 0;//((fileContents| Select-String Selector -List).LineNumber -offset); - // string fileInsert = " InstallerSwitches:\n Silent: $Data"; - string fileOutput = fileContents;//(fileContents[0..(lineNo -1)]+fileInsert+fileContents[lineNo..(fileContents.Length)]); - OutFile(FilePath,fileOutput); - SetStatus(VM,"Revert"); - } - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Modes --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public void Approving_Action(object sender, EventArgs e) { - SetMode("Approving"); - }// end Approving_Action - - public void IEDS_Action(object sender, EventArgs e) { - SetMode("IEDS"); - }// end IEDS_Action - - public void Validating_Action(object sender, EventArgs e) { - SetMode("Validating"); - }// end Validating_Action - - public void Idle_Action(object sender, EventArgs e) { - SetMode("Idle"); - }// end Idle_Action - - - - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Misc Data --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// - public string[] StandardPRComments = { - "Validation Pipeline Badge",//Pipeline status - "wingetbot run",//Run pipelines - "azp run",//Run pipelines - "AzurePipelines run",//Run pipelines - "Azure Pipelines successfully started running 1 pipeline",//Run confirmation - "The check-in policies require a moderator to approve PRs from the community",//Validation complete - "microsoft-github-policy-service agree",//CLA acceptance - "wingetbot waivers Add",//Any waivers - "The pull request encountered an internal error and has been assigned to a developer to investigate",//IEDS or other error - "Manifest Schema Version: 1.4.0 less than 1.5.0 for ID:",//Manifest depreciation for 1.4.0 - "This account is bot account and belongs to CoolPlayLin",//CoolPlayLin's automation - "This account is automated by Github Actions and the source code was created by CoolPlayLin",//Exorcism0666's automation - "Response status code does not indicate success",//My automation - removal PR where URL failed status check. - "Automatic Validation ended with",//My automation - Validation output might be immaterial if unactioned. - "Manual Validation ended with",//My automation - Validation output might be immaterial if unactioned. - "No errors to post",//My automation - AutoValLog with no logs. - "The package didn't pass a Defender or similar security scan",//My automation - DefenderFail. - "Installer failed security check",//My automation - AutoValLog DefenderFail. - "Sequence contains no elements",//New Sequence error. - "Missing Properties value based on version",//New property detection. - "Azure Pipelines could not run because the pipeline triggers exclude this branch/path"//Pipeline error. - }; - - public string[] WordFilterList = { - "accept_gdpr ", - "accept-licenses", - "accept-license", - "eula", - "downloadarchive.documentfoundation.org", - "paypal" - }; - - public string[] AppsAndFeaturesEntriesList = { - "DisplayName", - "DisplayVersion", - // "Publisher", - "ProductCode", - "UpgradeCode" //, - // "InstallerType" - }; - - public string[] CountrySet = { - "Default", "Warm", "Cool", "Random", "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antigua And Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia And Herzegovina", "Botswana", "Bouvet Island", "Brazil", "Brunei Darussalam", "Bulgaria", "Burkina Faso", "Burundi", "Cabo Verde", "Cambodia", "Cameroon", "Canada", "Central African Republic", "Chad", "Chile", "China", "Colombia", "Comoros", "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Curacao", "Cyprus", "Czechia", "Cöte D'Ivoire", "Democratic Republic Of The Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Eswatini", "Ethiopia", "Fiji", "Finland", "France", "French Polynesia", "Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Holy See (Vatican City State)", "Honduras", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Montenegro", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "North Macedonia", "Norway", "Oman", "Pakistan", "Palau", "Palestine", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Qatar", "Republic Of The Congo", "Romania", "Russian Federation", "Rwanda", "Saint Kitts And Nevis", "Saint Lucia", "Saint Vincent And The Grenadines", "Samoa", "San Marino", "Sao Tome And Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Korea", "South Sudan", "Spain", "Sri Lanka", "Sudan", "Suriname", "Sweden", "Switzerland", "Syrian Arab Republic", "Tajikistan", "Tanzania", " United Republic Of", "Thailand", "Togo", "Tonga", "Trinidad And Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "Yemen", "Zambia", "Zimbabwe", "Ã…land Islands" - }; - - public string[] MagicStrings = { - "Installer Verification Analysis Context Information:", //0 - "[error] One or more errors occurred.", //1 - "[error] Manifest Error:", //2 - "BlockingDetectionFound", //3 - "Processing manifest", //4 - "SQL error or missing database", //5 - "Error occurred while downloading installer" //6 - }; - - public string[] MagicLabels = { - "Validation-Defender-Error", //0 - "Binary-Validation-Error", //1 - "Error-Analysis-Timeout", //2 - "Error-Hash-Mismatch", //3 - "Error-Installer-Availability", //4 - "Internal-Error", //5 - "Internal-Error-Dynamic-Scan", //6 - "Internal-Error-Manifest", //7 - "Internal-Error-URL", //8 - "Manifest-AppsAndFeaturesVersion-Error", //9 - "Manifest-Installer-Validation-Error", //10 - "Manifest-Validation-Error", //11 - "Possible-Duplicate", //12 - "PullRequest-Error", //13 - "URL-Validation-Error", //14 - "Validation-Domain", //15 - "Validation-Executable-Error", //16 - "Validation-Hash-Verification-Failed", //17 - "Validation-Missing-Dependency", //18 - "Validation-Merge-Conflict", //19 - "Validation-No-Executables", //20 - "Validation-Installation-Error", //21 - "Validation-Shell-Execute", //22 - "Validation-Unattended-Failed", //23 - "Policy-Test-1.2", //24 - "Policy-Test-2.3", //25 - "Validation-Completed", //26 - "Validation-Forbidden-URL-Error", //27 - "Validation-Unapproved-URL", //28 - "Validation-Retry", //29 - "Needs-Author-Feedback",//30 - "Policy-Test-2.3" //31 - }; - - public string[] HourlyRun_PresetList = { - "Defender", - "ToWork2" - }; - }// end WinGetApprovalPipeline -}// end WinGetApprovalNamespace - - - - -//////////////////////////////////////////====================//////////////////////////////////////// -//////////////////////====================--------------------====================//////////////////// -//===================-------------------- Miscellany --------------------==================== -//////////////////////====================--------------------====================//////////////////// -//////////////////////////////////////////====================//////////////////////////////////////// -/* Original drawing -................................................................................................................................................................................................................................................ -WinGet Approver - Build 365 -....VMs..................................................................................................................................................................................................................................... -....................................................................................................................|......--------------------......--------------------......---------------------------------------------..... -....VM..|.Status.|.Version.|.OS.|.Package.|.PR.|.RAM.............................|......|...Blocking...|......|..Feedback..|.....|..................139040....................|..... -....600.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......|___Issue___|.....|__________|.....|_________________________|...... -....601.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......--------------------......--------------------......--------------------......--------------------..... -....602.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......|......Retry.....|......|...Changes....|.....|.....Check....|.....|...Approved..|..... -....603.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......|__________|......|_Requested_|.....|__Installer_|.....|__________|..... -....604.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......--------------------......--------------------......--------------------......--------------------..... -....605.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......|....Waiver....|......|.....Squash....|.....|.....Project....|.....|.....Closed....|..... -....................................................................................................................|......|__________|......|__________|......|__________|.....|__________|..... -__________________________________________________________|_____________________________________________________________ -....Approvals............................................................................................................................................................................................................................ -................................................................................................................................................................................................................................................. -|.Timestp..|.PR#.......|.PackageIdentifier......................|.PRVersion........|.A.|.R.|.W.|.F.|.I.|.D.|.V.|.ManifestVer.........|.OK.|.......................................... -|.15:18:10.|.138430.|.JetBrains.WebStorm.EAP..........|.241.11761.28..|.A.|.R.|.W.|.1.|.I.|.D.|.999.|.241.10840.2......|.OK.|.......................................... -|.15:18:18.|.138431.|.Fly-io.flyctl.................................|.0.1.148............|.A.|.R.|.W.|.0.|.I.|.D.|.999.|.0.1.147..............|.OK.|......................................... -|.15:18:32.|.138435.|.JosephFinney.Text-Grab...........|.4.1.3.................|.A.|.R.|.W.|.0.|.I.|.D.|.999.|.4.1.0..................|.OK.|......................................... -|.15:18:42.|.138437.|.AdGuard.AdGuardVPN..............|.2.2.1251.0.......|.A.|.R.|.W.|.0.|.-.|.D.|.999.|.2.2.1233.0.........|.OK.|......................................... -|.15:18:52.|.138438.|.VSCodium.VSCodium.Insiders..|.1.86.0.24039....|.A.|.R.|.W.|.0.|.I.|.D.|.999.|.1.86.0.24038.....|.OK.|......................................... -|.15:19:31.|.138440.|.Rustlang.Rust.MSVC...................|.1.76.0..............|.+.|.R.|.W.|.1.|.I.|.D.|.999.|.1.75.0................|.OK.|........................................ -|.15:19:48.|.138441.|.Rustlang.Rust.GNU.....................|.1.76.0..............|.+.|.R.|.W.|.1.|.I.|.D.|.999.|.1.75.0................|.OK.|........................................ -________________________________________________________________________________________________________________________ -......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------..... -......|..Approving.|......|.......IEDS......|.....|.......Idle.......|.....|..Validating..|.....|.....Button....|......|.....Button....|.....|.....Button....|.....|......Reset.....|..... -......|__________|......|__________|......|__________|.....|__________|......|__________|......|__________|......|__________|.....|__Vedant__|..... -......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------..... -......|...Installer...|......|....Installer...|......|.....Merge....|.....|...Network..|.....|One.Manifest|......|...Package...|.....|WorkSearch.|.....|..Timeclock..|..... -......|_Not_Silent|......|__Missing__|.....|_Conflicts__|.....|__Blocker__|......|__Per_PR___|......|___Url____|......|__________|.....|__________|..... -......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------..... -......|..Defender..|......|.Automation|.....|.....Button....|.....|.....Button....|.....|.....Button....|......|.....Button....|.....|.....Button....|.....|.....Button....|..... -......|___Fail____|......|___Block___|.....|__________|.....|__________|......|__________|......|__________|......|__________|.....|__________|..... -................................................................................................................................................................................................................................................ -................................................................................................................................................................................................................................................ -*/ -/* A PR's journey through the WinGet pipeline system: -- PR committed - manually or with a tool. -- PR pulled into Automatic Validation Pipeline. - - On fail, add label. - - Pipeline errors - these often have the label Internal-Error or Internal-Error-Dynamic-Scan. The former are usually ephemeral and disappear on retry. The latter are sometimes ephemeral, and sometimes happen to a package on every run - it's far enough along that the package can be manually validated. Manual validation might still fail on one of the following errors, and has to manually update labels and comment in the PR similar to how the pipeline would. - - PR and Manifest errors - these can often be remediated in PR, then retry and pass. - - Defender and scan errors - some can linger in the fail-and-remediation state ("Defender Loop") for an extended duration before passing. - - Installer and application errors - these can sometimes be remediated in PR, by adding data such as switches or dependencies. If so, retry and pass. - - Legal and political issues - these can be hard blockers. Some might need the manifest schema to be updated with additional fields, and those fields populated with legal agreements, before the PR can pass. - - Unfortunately, for some PRs, the next step is closure. The path to this step isn't always straightforward, and some linger here for an extended duration as well. Closed PRs can be reopened for a good reason. Feel free to ask. - - On pass, continue. -- SDL checks occur at some point. These don't take very long, unless you're waiting on the PR. -- PR pends for community and moderator review. (Review "pool") - - On fail, add comment. - - Installer: Duplicate PRs, version mismatches between manifest and registry, different installer types. - - Locale: Incorrect PackageName, ReleaseNotes not in locale's natural language, PackageUrl not leading to InstallerUrl, and other errata. - - On pass, continue. -- PR pends for moderator approval. (Approval pipeline) - - On fail, add comment. - - Auth fail - Package has Auth strictness of "must" and submitter isn't on the list. Ask someone who IS on the list for approval. - - Version parameter fail - the number of version parameters (data between dots, such as major and minor version numbers) has changed. This is common for some developers, and an exception list is currently manually implemented. - - Version number contains spaces fail - this check needs to be reimplemented. It was meant to catch an automation bug adding spaces after the dots in PackageVersion numbers. - - Review fail - PackageIdentifier has review notes blocking approval. Post them. - - Agreements fail - PackageIdentifier has EULA but PR is missing the AgreementsUrl. Post this. - - Words filter fail - Manifest contains words (such as "EULA") that are restricted, because they might indicate another check has failed or been skipped. Post about these. - - AnF fail - missing the "AppsAndFeaturesEntries" entry but present in previous PR. This check needs to be updated. Usually only block on DisplayVersion, but also note if there are more than 3 of these missing. - - InstallerUrl contains PackageVersion - Doesn't block but is informative. Should be rebuilt to include a vanity URL detector, and also detect if the InstallerUrl shows previous version. - - Files removed - if the PR has more than 2 files, and it's not a removal, check if the previous version had at least as many files. To prevent a PR from leaving out localization files from the previous version. - - OR Last Version Remaining fail - If it's a removal, check if it's the highest version. If it is, ask if it's available from another location. - - On pass, approve. -- PR pends for publish pipeline. - - Publish converts repo to an XML database and compresses into MSIX. - - Uploads to storage location, refreshes CDN. -- Package is available to users. -(Goal is to make this have 1 remediation loop instead of 3.) -*/ + string VMName = "vm"+vm; + + SetStatus(vm,"Disgenerate"); + var processes = Process.GetProcessesByName("vmconnect"); + foreach (Process process in processes){ + if (process.MainWindowTitle.Contains(VMName)) { + process.CloseMainWindow(); + } + } + StopVM(vm); + // RemoveVM(VMName); + + // string_out = GetStatus(); + // string_out = string_out .Where(n => !n.vm.Contains(VM)); + // Write-Status string_out; + + // int delay = 15 + // 0..$delay | foreach-Object { + // $pct = $_ / $delay * 100 + // Write-Progress -Activity "Remove VM" -Status "$_ of $delay" -PercentComplete $pct + // Thread.Sleep(GitHubRateLimitDelay) + // } + RemoveItem(destinationPath); + RemoveItem(VMFolder); + } + + public void LaunchWindow(int VM = 0, string VMName = ""){ + if (VMName == "") { + VMName = "vm"+VM; + } + var processes = Process.GetProcessesByName("vmconnect"); + foreach (Process process in processes){ + if (process.MainWindowTitle.Contains(VMName)) { + process.CloseMainWindow(); + } + } + var newProcess = new System.Diagnostics.Process(); + newProcess.StartInfo.FileName = "C:\\Windows\\System32\\vmconnect.exe"; + newProcess.StartInfo.Arguments = "localhost " + VMName; + newProcess.Start(); + } + + public void RevertVM(int VM = 0, string VMName = ""){ + if (VMName == "") { + VMName = "vm"+VM; + } + SetStatus(VM,"Restoring") ; + RestoreVMSnapshot(VMName); + } + + public void CompleteVM(int vm){ + string VMFolder = MainFolder+"\\vm\\"+vm; + string filesFileName = VMFolder+"\\files.txt"; + string VMName = "vm"+vm; + SetStatus(vm,"Completing", " ", 1); + var processes = Process.GetProcessesByName("vmconnect"); + foreach (Process process in processes){ + if (process.MainWindowTitle.Contains(VMName)) { + process.CloseMainWindow(); + } + } + try { + SetVMState("vm"+vm, 3); + } catch { + outBox_msg.AppendText(Environment.NewLine + "SetVMState failed for VM: " + vm); + } + RemoveItem(filesFileName); + SetStatus(vm,"Ready","",0,"Ready"); + } + + public void StopVM(int vm,string VMName = ""){ + if (VMName == "") { + VMName = "vm"+vm.ToString(); + } else { + VMName = vm.ToString(); + } + SetVMState(VMName, 3); + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- VM Status --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void SetStatus(int VM, string Status = "", string Package = "",int PR = 0,string Mode = ""){ +//[ValidateSet("AddVCRedist","Approved","CheckpointComplete","Checkpointing","CheckpointReady","Completing","Complete","Disgenerate","Generating","Installing","Prescan","Prevalidation","Ready","Rebooting","Regenerate","Restoring","Revert","Scanning","SendStatus","Setup","SetupComplete","Starting","Updating","ValidationCompleted")] + dynamic Records = FromCsv(GetContent(StatusFile)); + for (int r = 1; r < Records.Length -1; r++){ + var row = Records[r]; + if (Int32.Parse(row["vm"]) == VM) { + if (Status != "") { + row["status"] = Status; + } + if (Package != "") { + row["Package"] = Package; + } + if (Mode != "") { + row["Mode"] = Mode; + } + if (PR != 0) { + row["PR"] = PR; + }//end if PR + }//end if row vm + }//end for r + OutFile(StatusFile, ToCsv(Records)); + }//end function + + //GetStatus = FromCsv(GetContent(StatusFile)); + //WriteStatus = OutFile(StatusFile,string_out); + + public void ResetStatus() { + IEnumerable> VMs = FromCsv(GetContent(StatusFile)) + .Where(n => n["Status"] != "Ready") + .Where(n => (int)n["RAM"] == 0); + + foreach (Dictionary VM in VMs) { + SetStatus(VM["VM"],"Complete"); + } + VMs = FromCsv(GetContent(StatusFile)).Where(n => n["Status"] != "Ready").Where(n => (string)n["Package"] == ""); + foreach (Dictionary VM in VMs) { + SetStatus(VM["VM"],"Complete"); + } + var processes = Process.GetProcessesByName("vmconnect"); + if (processes.Length == 0){ + StopProcess("vmwp"); + } + } + +/*public RebuildStatus { + Status = Get-VM.Where(n => n.name -notmatch "vm0"}| + Select-Object @{n="vm";e={$_.name}}, + @{n="status";e={"Ready"}}, + @{n="version";e={(GetVMVersion -OS "Win10")}}, + @{n="OS";e={"Win10"}}, + @{n="Package";e={""}}, + @{n="PR";e={"1"}}, + @{n="RAM";e={"0"}} + OutFile(StatusFile,Status); +} +*/ + + public int GetVMPowerState (int VM){ + string VMName = "vm"+VM; + int Status =0; + foreach (var property in GetVM(VMName).Properties) { + if (property.Name == "EnabledState"){ + //HwThreadsPerCoreRealized + //OnTimeInMilliseconds + //ProcessID + Status = Convert.ToInt32(property.Value); + } + } + return Status; + } + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- VM Versioning --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public int GetVMVersion (string OS = "Win10") { + //[ValidateSet("Win10","Win11")][string]OS = "Win10", + int VMVersion; + string VMData = GetContent(VMversion); + List Line = VMData.Split('\n').ToList(); + string Line2 = Line.Where(n => n.Contains(OS)).FirstOrDefault(); + Line2 = Line2.Replace("\"",""); + VMVersion = Int32.Parse(Line2.Split(',','"')[1]); + return VMVersion; + } + + public void SetVMVersion(int Version, string OS = "Win10") { + string VMData = GetContent(VMversion); + List Line = VMData.Split('\n').ToList(); + string Line2 = Line.Where(n => n.Contains(OS)).FirstOrDefault(); + Line2 = Line2.Replace("\"",""); + int CurrentVersion = Int32.Parse(Line2.Split(',','"')[1]); + VMData = VMData.Replace(OS+"\",\""+CurrentVersion,OS+"\",\""+Version); + OutFile(VMversion,VMData); + } + + public void RotateVMs(string OS = "Win10") { + Random rnd = new Random(); + Dictionary[] GetStatus = FromCsv(GetContent(StatusFile)); + var VMs = GetStatus.Where(n => (int)n["version"] < GetVMVersion(OS)) + .Where(n => n["OS"] == OS) + .Where(n => n["status"] != "Ready"); + if (VMs != null){ + int counter = 0; + int rand_VM = rnd.Next(VMs.Count()); + foreach (Dictionary FullVM in VMs) { + counter++; + if (rand_VM == counter) { + SetStatus((int)FullVM["vm"],"Regenerate"); + } + }//end foreach FullVM + }//end if VMs + }//end function + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- VM Orchestration --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void VMCycle(){ + Dictionary[] VMs = FromCsv(GetContent(StatusFile)); + foreach (Dictionary VM in VMs) { + string Status = (string)VM["status"]; + if (Status == "AddVCRedist") { + AddToValidationFile((int)VM["vm"]); + } else if (Status == "Approved") { + AddWaiver((int)VM["PR"]); + SetStatus((int)VM["vm"], "Complete"); + } else if (Status == "CheckpointReady") { + RedoCheckpoint((int)VM["vm"]); + } else if (Status == "Complete") { + // if ((VMs .Where(n => n.vm ==((int)VM["vm"])} ).version < (GetVMVersion -OS (int)VM["os"])) { + // SetStatus((int)VM["vm"],"Regenerate"); + // } else { + CompleteVM((int)VM["vm"]); + // } + } else if (Status == "Disgenerate") { + DisgenerateVM((int)VM["vm"]); + } else if (Status == "Revert") { + RevertVM((int)VM["vm"]); + } else if (Status == "Regenerate") { + DisgenerateVM((int)VM["vm"]); + GenerateVM((string)VM["os"]); + } else if (Status == "SendStatus") { + string SharedError = GetContent(SharedErrorFile); + SharedError = SharedError.Replace("Faulting","\n> Faulting"); + SharedError = SharedError.Replace("2024","\n> 2024"); + SharedError = SharedError.Replace(" (caller: 00007FFA008A5769)",""); + SharedError = SharedError.Replace(" (caller: 00007FFA008AA79F)",""); + SharedError = SharedError.Replace("Exception(1) tid(f1c) 80D02002",""); + SharedError = SharedError.Replace("Exception(2) tid(f1c) 80072EE2 ",""); + SharedError = SharedError.Replace("Exception(4) tid(f1c) 80072EE2 ",""); + SharedError = SharedError.Replace("tid(f1c)",""); + SharedError = SharedError.Replace("C:\\\\__w\\\\1\\\\s\\\\external\\\\pkg\\\\src\\\\AppInstallerCommonCore\\\\Downloader.cpp(185)\\\\WindowsPackageManager.dll!00007FFA008A37C9:",""); + ReplyToPR((int)VM["PR"],"ManValEnd",SharedError); + SetStatus((int)VM["vm"],"Complete"); + if ((SharedError.Contains("\\[FAIL\\] Installer failed security check.")) || (SharedError.Contains("Detected 1 Defender"))) { + //Get-GitHubPreset -Preset DefenderFail -PR VM.PR + } + }; //end switch + } + } + + public string GetMode() { + return GetContent(TrackerModeFile); + } + + public void SetMode(string Status = "Validating") { + //[ValidateSet("Approving","Idle","IEDS","Validating")] + OutFile(TrackerModeFile,Status); + } + + //ConnectedVM = var processes = Process.GetProcessesByName("vmconnect"); + + public int NextFreeVM(string OS = "Win10",string Status = "Ready") { + //[ValidateSet("Win10","Win11")] + Random rnd = new Random(); + dynamic VMs = FromCsv(GetContent(StatusFile)); + List VMList = new List(); + for (int r = 1; r < VMs.Length -1; r++){ + dynamic FullVM = VMs[r]; + if (FullVM["OS"] == OS && FullVM["status"] == Status ) { + //.Where(n => (int)n["version"] < GetVMVersion(OS)) + VMList.Add(Convert.ToInt32(FullVM["vm"])); + } + } + int rand_VM = rnd.Next(VMList.Count -1); + + return VMList[rand_VM]; + //Write-Host "No available $OS VMs" + }//end function + + public void RedoCheckpoint(int vm,string VMName = ""){ + if (VMName == "") { + VMName = "vm"+vm; + } + SetStatus(vm,"Checkpointing"); + RemoveVMSnapshot(VMName); + CheckpointVM(VMName); + SetStatus(vm,"Complete"); + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- File Management --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public string SecondMatch(string clip, int depth = 1) { + string[] clipArray = clip.Split('\n'); + List sa_out = new List(); + //If $current and $prev don't match, return the $prev element, which is $depth lines below the $current line. Start at clip[$depth] and go until the end - this starts $current at clip[$depth], and $prev gets moved backwards to clip[0] and moves through until $current is at the end of the array, clip[clip.Length], and $prev is $depth previous, at clip[clip.Length - $depth]. + for (int depthUnit = depth;depthUnit < clip.Length; depthUnit++){ + string current = clipArray[depthUnit].Split(':')[0]; + string prevUnit = clipArray[depthUnit - depth]; + string prev = prevUnit.Split(':')[0]; + if (current != prev) { + sa_out.Add(prevUnit); + } + } + //Then complete the last depth items of the array by starting at clip[-depth] and work backwards through the last items in reverse order to clip[-1]. + for (int depthUnit = depth;depthUnit > 0; depthUnit--){ + sa_out.Add(clipArray[-depthUnit]); + + } + string string_joined = string.Join("\n", sa_out); + return string_joined; + } + + //RemoveFileifExist(FileName) = RemoveItem(FIleName); + //LoadFileIfExists(FileName) = GetContent(FIleName); + + public string FileFromGitHub(string PackageIdentifier, string Version, string FileName = "installer.yaml") { + string Path = PackageIdentifier.Replace('.','/'); + string FirstLetter = PackageIdentifier[0].ToString().ToLower(); + string content = ""; + try{ + content = InvokeGitHubRequest(GitHubContentBaseUrl+"/master/manifests/"+FirstLetter+"/"+Path+"/"+Version+"/"+PackageIdentifier+"."+FileName); + }catch{ + content = "Error"; + } + return content; + } + + public bool ManifestEntryCheck(string PackageIdentifier, string Version, string Entry = "AppsAndFeaturesEntries"){ + string content = FileFromGitHub(PackageIdentifier,Version); + string string_out = ""; + string_out = string_out.Split('\n').Where(n => n.Contains(Entry)).FirstOrDefault(); // s.IndexOf(": "); + if (string_out == "") { + return false; + } else { + return true; + } + } + + public string DecodeGitHubFile (string Base64String) { + var Bits = System.Convert.FromBase64String(Base64String); + string String = System.Text.Encoding.UTF8.GetString(Bits); + return String; + } + + public string CommitFile(int PR, int File){ + string url = ""; + dynamic Commit = FromJson(InvokeGitHubPRRequest(PR,"commits","content")); + if (Commit["files"]["contents_url"].GetType() == "String") { + url = Commit["files"]["contents_url"]; + } else { + url = Commit["files"]["contents_url"][File]; + } + dynamic EncodedFile = FromJson(InvokeGitHubRequest(url)); + return DecodeGitHubFile(EncodedFile["content"]); + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Reporting --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void AddPRToRecord(int PR, string Action, string Title = ""){ + //[ValidateSet("Approved", "Blocking", "Feedback", "Retry", "Manual", "Closed", "Project", "Squash", "Waiver")] + Title = Title.Split('#')[0]; + string string_out = (PR+","+Action+","+Title + Environment.NewLine); + OutFile(LogFile, string_out, true); + } + + public void PRPopulateRecord(){ + dynamic Logs = FromCsv(GetContent(LogFile)); + for (int l = 1; l < Logs.Length -1; l++){ + var Log = Logs[l]; + //If the title is null, search for another with the same PR whose title isn't null. + if (Log["title"] == null) { + for (int m = 1; m < Logs.Length -1; m++){ + var ListItem = Logs[m]; + if (ListItem["title"] != null && ListItem["PR"] == Log["PR"]) { + Log["title"] = ListItem["title"]; + }//end if ListItem + }//end for m + }//end if ListItem + }//end for l + OutFile(LogFile, ToCsv(Logs)); + }//end function + + public dynamic PRFromRecord(string string_action){ + + PRPopulateRecord(); + return FromCsv(GetContent(LogFile)).Where(n => n["Action"].Contains(string_action)); + } + + public string PRReportFromRecord(string string_action, string string_out = "", int line = 0) { + //Add items to dictionary array then remove from file. + Dictionary[] Records = PRFromRecord(string_action); + dynamic dynamic_csv = FromCsv(GetContent(LogFile)).Where(n => !n["Action"].Contains(string_action)).ToList(); + string string_csv = ToCsv(dynamic_csv); + OutFile(LogFile,string_csv); + + foreach (Dictionary Record in Records) { + line++; + string Title = Record["Title"]; + int PR = Record["PR"]; + if (Title == null) { + Title = FromJson(InvokeGitHubPRRequest(PR,"","content"))["title"]; + } + TrackerProgress(PR,System.Reflection.MethodBase.GetCurrentMethod().Name,line,Records.Length); + string_out += Title+" #"+PR+Environment.NewLine; + } + return string_out; + } + + public void PRFullReport() { + string ReportName = logsFolder+"\\"+DateTime.Now.ToString("MMddyy")+"-Report.txt"; + string[] PRTypes = {"Feedback","Blocking","Waiver","Retry","Manual","Closed","Project","Squash","Approved"}; + foreach (string Type in PRTypes) { + string string_out = Type+Environment.NewLine+Environment.NewLine+Environment.NewLine+PRReportFromRecord(Type); + OutFile(ReportName,string_out,true); + } + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Clipboard --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public int[] PRNumber(string clip, bool Hash = false){ + string[] string_PRs = null; + if (Hash == true) { + string_PRs = clip.Replace("\n"," ").Split(' ').Where(n => regex_hashPRRegex.IsMatch(n)).Distinct().ToArray(); + } else { + string_PRs = clip.Replace("\n"," ").Split(' ').Where(n => regex_hashPRRegexEnd.IsMatch(n)).ToArray(); + } + int[] int_PRs = new int[string_PRs.Length]; + for (int n = 0;n < string_PRs.Length; n++) { + if (Hash == true) { + string_PRs[n] = string_PRs[n].Replace("#"," "); + } + int_PRs[n] = Int32.Parse(string_PRs[n]); + } + return int_PRs; + } + + public string SortedClipboard(string string_in){ + IEnumerable string_array = string_in.Split('\n').Distinct(); + string string_joined = string.Join("\n", string_array); + return string_joined; + } + + public void OpenAllURLs (string Clip = ""){ + if (Clip == "") { + Clip = Clipboard.GetText(); + } + IEnumerable Urls; + Urls = Clip.Split(' '); + Urls = Urls.Where(n => n.Contains("http")); + Urls = Urls.Where(n => !n.Contains("[.]exe$")); + Urls = Urls.Where(n => !n.Contains("[.]msi$")); + Urls = Urls.Where(n => !n.Contains("[.]zip$")); + Urls = Urls.Distinct(); + foreach (string Url in Urls) { + System.Diagnostics.Process.Start(Url); + } + } + + public void OpenPRInBrowser(int PR,bool Files = false){ + string URL = GitHubBaseUrl+"/pull/"+PR+"#issue-comment-box"; + if (Files == true) { + URL = GitHubBaseUrl+"/pull/"+PR+"/files"; + } + Thread.Sleep(GitHubRateLimitDelay); + System.Diagnostics.Process.Start(URL); + }//end Function + + public string YamlValue(string ContainsString, string YamlString){ + //Split YamlString by \n + //String where equals StringName + YamlString = YamlString.Split('\n').Where(n => n.Contains(ContainsString)).FirstOrDefault(); // s.IndexOf(": "); + YamlString = YamlString.Replace(ContainsString+": ",""); + YamlString = YamlString.Split('#')[0]; + //YamlString = (YamlString.ToCharArray().Where(n => n.Contains("\\S"}).Join(""); + return YamlString.Trim(); + } + + public int GetCurrentPR() { + return Int32.Parse(inputBox_PRNumber.Text.Replace("#","")); + } + + public int GetSelectedVM() { + return Convert.ToInt32(dataGridView_vm.SelectedRows[0].Cells["vm"].Value); + } + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Et Cetera --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public bool TestAdmin() { + bool isAdmin = new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator); + if (isAdmin == true) { + MessageBox.Show("Try elevating your session." + Environment.NewLine, "Error"); + } + return isAdmin; + } + + public void TrackerProgress(int PR, string Activity, int Incrementor, int Length){ + //double Percent = System.Math.Round(Incrementor / Length*100,2); + //Write-Progress -Activity $Activity -Status "$PR - $Incrementor / $Length = $Percent %" -PercentComplete Percent + } + + public double ArraySum(int[] int_in){ + int sum = int_in.Sum(); + return sum;//Math.Round(sum,2); + } + + public void GitHubRateLimit(){ + //Time, as a number, constantly increases. + string Url = "https://api.github.com/rate_limit"; + dynamic Unlogged_Rate = FromJson(InvokeWebRequest(Url)); + //Unlogged_Rate["rate"] | select @{n="source";e={"Unlogged"}}, limit, used, remaining, @{n="reset";e={([System.DateTimeOffset]::FromUnixTimeSeconds(_.reset)).DateTime.AddHours(-8)}} + + dynamic Logged_Rate = FromJson(InvokeGitHubRequest(Url)); + //Response["rate"] | select @{n="source";e={"Logged"}}, limit, used, remaining, @{n="reset";e={([System.DateTimeOffset]::FromUnixTimeSeconds(_.reset)).DateTime.AddHours(-8)}} + } + + public string GetFileData(string Filename, string PackageIdentifier, string Property){ + dynamic Records = FromCsv(GetContent(Filename));//StatusFile + string string_out = ""; + for (int r = 1; r < Records.Length -1; r++){ + var row = Records[r]; + if (row["PackageIdentifier"] == PackageIdentifier) { + string_out += row[Property]; + }//end if row vm + }//end for r + return string_out; + } + + public void AddValidationData(string PackageIdentifier,string gitHubUserName = "",string authStrictness = "",string authUpdateType = "",string autoWaiverLabel = "",string versionParamOverrideUserName = "",int versionParamOverridePR = 0,string code200OverrideUserName = "",int code200OverridePR = 0,int AgreementOverridePR = 0 ,string AgreementURL = "",string reviewText = ""){ + //[ValidateSet("should","must")] + //[ValidateSet("auto","manual")] + + //Find the line with the PackageIdentifier, then if it's null, make a new line and insert. + dynamic data = FromCsv(GetContent(DataFileName)); + for (int r = 1; r < data.Length -1; r++){ + var row = data[r]; + + if (row["PackageIdentifier"] == PackageIdentifier) { + row["gitHubUserName"] = gitHubUserName; + row["authStrictness"] = authStrictness; + row["authUpdateType"] = authUpdateType; + row["autoWaiverLabel"] = autoWaiverLabel; + row["versionParamOverrideUserName"] = versionParamOverrideUserName; + row["versionParamOverridePR"] = versionParamOverridePR; + row["code200OverrideUserName"] = code200OverrideUserName; + row["code200OverridePR"] = code200OverridePR; + row["AgreementURL"] = AgreementURL; + row["AgreementOverridePR"] = AgreementOverridePR; + row["reviewText"] = reviewText; + }//end if row vm + }//end for r + + /* + if (null == string_out) {0 + string_out = ( "" | Select-Object "PackageIdentifier","gitHubUserName","authStrictness","authUpdateType","autoWaiverLabel","versionParamOverrideUserName","versionParamOverridePR","code200OverrideUserName","code200OverridePR","AgreementOverridePR","AgreementURL","reviewText") + string_out.PackageIdentifier = PackageIdentifier + } + + data += string_out + data = data.OrderBy(o=>o["PackageIdentifier"]).ToArray(); + */ + OutFile(DataFileName, ToCsv(data)); + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Utility Functions --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void OpenSandbox(string string_PRNumber){ + int int_PRNumber = 0; + if (string_PRNumber[0] == '#') { + int_PRNumber = Int32.Parse(string_PRNumber.Substring(1,string_PRNumber.Length)); + } + StopProcess("sandbox"); + StopProcess("wingetautomator"); + string version = "1.6.1573-preview";//This is out of date. + string process ="wingetautomator://install?pull_request_number="+int_PRNumber.ToString()+"&winget_cli_version=v"+version.ToString()+"&watch=yes"; + System.Diagnostics.Process.Start(process); + } + + public string PadRight(string PackageIdentifier,int PadChars = 45){ + string string_out = ""; + if (PackageIdentifier.Length < PadChars) { + int int_extraSpaces = (PadChars - PackageIdentifier.Length -1); + string string_extraSpaces = new string(' ', int_extraSpaces); + string_out = String.Concat(PackageIdentifier, string_extraSpaces); + //} else if (PackageIdentifier.Length > PadChars) { + //string_out = PackageIdentifier.substring(0..(PadChars -1)) + //} + } + return string_out; + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- PowerShell Equivs --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// +/*Powershell functional equivalency imperatives + Get-Clipboard = Clipboard.GetText(); + Get-Date = DateTime.Now.ToString("M/d/yyyy"); + Get-Process = public Process[] processes = Process.GetProcesses(); or var processes = Process.GetProcessesByName("Test"); + New-Item = Directory.CreateDirectory(Path) or File.Create(Path); + Remove-Item = Directory.Delete(Path) or File.Delete(Path); + Get-ChildItem = string[] entries = Directory.GetFileSystemEntries(path, "*", SearchOption.AllDirectories); + Start-Process = System.Diagnostics.Process.Start("PathOrUrl"); + Stop-Process = StopProcess("ProcessName"); + Start-Sleep = Thread.Sleep(GitHubRateLimitDelay); + Get-Random - Random rnd = new Random(); or int month = rnd.Next(1, 13); or int card = rnd.Next(52); + Create-Archive = ZipFile.CreateFromDirectory(dataPath, zipPath); + Expand-Archive = ZipFile.ExtractToDirectory(zipPath, extractPath); + Sort-Object = .OrderBy(n=>n).ToArray(); and -Unique = .Distinct(); Or Array.Sort(strArray); or List + + Get-VM = GetVM("VMName"); + Start-VM = SetVMState("VMName", 2); + Stop-VM = SetVMState("VMName", 4); + Stop-VM -TurnOff = SetVMState("VMName", 3); + Reboot-VM = SetVMState("VMName", 10); + Reset-VM = SetVMState("VMName", 11); + +*/ + //System + public void StopProcess(string ProcessName) { + var processes = Process.GetProcessesByName(ProcessName); + foreach (Process process in processes){ + process.CloseMainWindow(); + } + } + //JSON + public dynamic FromJson(string string_input) { + dynamic dynamic_output = new System.Dynamic.ExpandoObject(); + dynamic_output = serializer.Deserialize(string_input); + return dynamic_output; + } + + public string ToJson(dynamic dynamic_input) { + string string_out; + string_out = serializer.Serialize(dynamic_input); + return string_out; + } + //CSV + public Dictionary[] FromCsv(string csv_in) { + //CSV isn't just a 2d object array - it's an array of Dictionary, whose string keys are the column headers. + string[] Rows = csv_in.Replace("\r\n","\n").Replace("\"","").Split('\n'); + string[] columnHeaders = Rows[0].Split(','); + Dictionary[] matrix = new Dictionary [Rows.Length]; + try { + for (int row = 1; row < Rows.Length; row++){ + matrix[row] = new Dictionary(); + //Need to enumerate values to create first row. + string[] rowData = Rows[row].Split(','); + try { + for (int col = 0; col < rowData.Length; col++){ + //Need to record or access first row to match with values. + matrix[row].Add(columnHeaders[col].ToString(), rowData[col]); + } + } catch { + } + } + } catch { + } + return matrix; + } + + public string ToCsv(Dictionary[] matrix) { + string csv_out = ""; + //Arrays seem to have a buffer row above and below the data. + int topRow = 1; + Dictionary headerRow = matrix[topRow]; + //Write header row (th). Support for multi-line headers maybe someday but not today. + if (headerRow != null) { + string[] columnHeaders = new string[headerRow.Keys.Count]; + headerRow.Keys.CopyTo(columnHeaders, 0); + //var a = matrix[0].Keys; + foreach (string columnHeader in columnHeaders){ + csv_out += columnHeader.ToString()+","; + } + csv_out = csv_out.TrimEnd(','); + // Write data rows (td). + for (int row = topRow; row < matrix.Length -1; row++){ + csv_out += "\n"; + foreach (string columnHeader in columnHeaders){ + csv_out += matrix[row][columnHeader]+","; + } + csv_out = csv_out.TrimEnd(','); + } + } + csv_out += "\n"; + return csv_out; + } + //File + public string GetContent(string Filename, bool NoErrorMessage = false) { + string string_out = ""; + try { + // Open the text file using a stream reader. + using (var sr = new StreamReader(Filename)) { + // Read the stream as a string, and write the string to the console. + string_out = sr.ReadToEnd(); + } + } catch (IOException e) { + if (NoErrorMessage == false) { + MessageBox.Show(e.Message, "Error"); + } + } + return string_out; + } + + public void OutFile(string path, object content, bool Append = false) { + //From SO: Use "typeof" when you want to get the type at compilation time. Use "GetType" when you want to get the type at execution time. "is" returns true if an instance is in the inheritance tree. + if (TestPath(path) == "None") { + File.Create(path).Close(); + } + if (content.GetType() == typeof(string)) { + string out_content = (string)content; + //From SO: File.WriteAllLines takes a sequence of strings - you've only got a single string. If you only want your file to contain that single string, just use File.WriteAllText. + if (Append == true) { + File.AppendAllText(path, out_content, Encoding.ASCII);//string + } else { + File.WriteAllText(path, out_content, Encoding.ASCII);//string + } + } else { + IEnumerable out_content = (IEnumerable)content; + if (Append == true) { + File.AppendAllLines(path, out_content, Encoding.ASCII);//IEnumerable' + } else { + File.WriteAllLines(path, out_content, Encoding.ASCII);//string[] + } + } + } + + public string TestPath(string path) { + string string_out = ""; + if (path != null) { + path = path.Trim(); + if (Directory.Exists(path)) { + string_out = "Directory"; + } else if (File.Exists(path)) { + string_out = "File"; + } else {// neither file nor directory exists. guess intention + string_out = "None"; + } + } else {// neither file nor directory exists. guess intention + string_out = "Empty"; + } + return string_out; + } + //Web + public string InvokeWebRequest(string Url, string Method = WebRequestMethods.Http.Get, string Body = "",bool Authorization = false){ + string response_out = ""; + + // SSL stuff + //ServicePointManager.Expect100Continue = true; + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; + + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); + + if (Authorization == true) { + request.Headers.Add("Authorization", "Bearer "+GitHubToken); + request.Headers.Add("X-GitHub-Api-build", "2022-11-28"); + request.PreAuthenticate = true; + } + + request.Method = Method; + request.ContentType = "application/json;charset=utf-8"; + request.Accept = "application/vnd.github+json"; + request.UserAgent = "WinGetApprovalPipeline"; + + //Check Headers + // for (int i=0; i < response.Headers.Count; ++i) { + // outBox_msg.AppendText(Environment.NewLine + "Header Name : " + response.Headers.Keys[i] + "Header value : " + response.Headers[i]); + // } + + try { + if ((Body == "") || (Method ==WebRequestMethods.Http.Get)) { + } else { + var data = Encoding.Default.GetBytes(Body); // note: choose appropriate encoding + request.ContentLength = data.Length; + var newStream = request.GetRequestStream(); // get a ref to the request body so it can be modified + newStream.Write(data, 0, data.Length); + newStream.Close(); + } + + } catch (Exception e) { + //MessageBox.Show("Wrong request!" + ex.Message, "Error"); + response_out = "Request Error: " + e.Message; + } + + try { + HttpWebResponse response = (HttpWebResponse)request.GetResponse(); + StreamReader sr = new StreamReader(response.GetResponseStream()); + if (Method == "Head") { + string response_text = response.StatusCode.ToString(); + response_out = response_text; + + } else { + string response_text = sr.ReadToEnd(); + response_out = response_text; + } + sr.Close(); + } catch (Exception e) { + response_out = "Response Error: " + e.Message; + } + return response_out; + }// end InvokeWebRequest + + public void RemoveItem(string Path,bool remake = false){ + if (TestPath(Path) == "File") { + File.Delete(Path); + if (remake) { + File.Create(Path); + } + } else if (TestPath(Path) == "Directory") { + Directory.Delete(Path, true); + if (remake) { + Directory.CreateDirectory(Path); + } + } + } + //Hyper-V + public ManagementObject GetCimService(string ServiceName) { + string CImQuery = "SELECT * FROM "+ServiceName; + ObjectQuery QueryData = new ObjectQuery(@CImQuery); + ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, QueryData); + ManagementObjectCollection collection = searcher.Get(); + + ManagementObject CimService = null; + foreach (ManagementObject obj in collection) { + CimService = obj; + break; + } + return CimService; + } + + public ManagementObject GetVM(string VMName, string ServiceName = "Msvm_ComputerSystem") { + return GetCimService(ServiceName + " WHERE ElementName = '" + VMName + "'"); + } + /*States: + 1: Other + 2: Start-VM + 3: Stop-VM -TurnOff + 4: Stop-VM + 5: Stopped??? + 6: Offline + 7: Test + 8: Defer + 9: Quiesce + 10: Reboot + 11: Reset + */ + public void SetVMState(string VMName, int state) { + ManagementObject vm = GetVM(VMName); + ManagementBaseObject inParams = vm.GetMethodParameters("RequestStateChange"); + inParams["RequestedState"] = state; + ManagementBaseObject outParams = vm.InvokeMethod("RequestStateChange", inParams, null); + } + + public void RemoveVM(string VMName) { + ManagementObject vm = GetVM(VMName); + ManagementObject virtualSystemService = GetCimService("Msvm_VirtualSystemManagementService"); + + ManagementBaseObject inParams = virtualSystemService.GetMethodParameters("DestroyVirtualSystem"); + inParams["ComputerSystem"] = vm.Path.Path; + ManagementBaseObject outParams = virtualSystemService.InvokeMethod("DestroyVirtualSystem", inParams, null); + } + + public ManagementObject GetLastSnapshot(string VMName = "") { + ManagementObject vm = GetVM(VMName); + ManagementObjectCollection settings = vm.GetRelated( + "Msvm_VirtualSystemSettingData", + "Msvm_MostCurrentSnapshotInBranch", + null, + null, + "Dependent", + "Antecedent", + false, + null); + + ManagementObject virtualSystemsetting = null; + foreach (ManagementObject setting in settings) { + //Console.WriteLine(setting.Path.Path); + //Console.WriteLine(setting["ElementName"]); + virtualSystemsetting = setting; + } + return virtualSystemsetting; + } + + public void RestoreVMSnapshot(string VMName) { + try { + + ManagementObject snapshot = GetLastSnapshot(VMName); + ManagementObject snapshotService = GetCimService("Msvm_VirtualSystemSnapshotService"); + + var inParameters = snapshotService.GetMethodParameters("ApplySnapshot"); + inParameters["Snapshot"] = snapshot.Path.Path; + var outParameters = snapshotService.InvokeMethod("ApplySnapshot", inParameters, null); + //return (uint)outParameters["ReturnValue"]; + } catch (Exception e) { + outBox_msg.AppendText(Environment.NewLine + "e: " + e ); + } + } + + public uint CheckpointVM(string VMName) { + ManagementObject snapshot = GetLastSnapshot(VMName); + ManagementObject snapshotService = GetCimService("Msvm_VirtualSystemSnapshotService"); + + var inParameters = snapshotService.GetMethodParameters("CreateSnapshot"); + inParameters["Snapshot"] = snapshot.Path.Path; + var outParameters = snapshotService.InvokeMethod("CreateSnapshot", inParameters, null); + return (uint)outParameters["ReturnValue"]; + } + + public uint RemoveVMSnapshot(string VMName) { + ManagementObject snapshot = GetLastSnapshot(VMName); + ManagementObject snapshotService = GetCimService("Msvm_VirtualSystemSnapshotService"); + + var inParameters = snapshotService.GetMethodParameters("DestroySnapshot"); + inParameters["Snapshot"] = snapshot.Path.Path; + var outParameters = snapshotService.InvokeMethod("DestroySnapshot ", inParameters, null); + return (uint)outParameters["ReturnValue"]; + } + + public void RenameVM(string VMName, string NewName) { + Process process = new Process(); + string command = "Rename-VM -VM "+VMName+" -newName "+NewName; + process.StartInfo.Arguments = string.Format(command); + process.StartInfo.FileName = "PowerShell.EXE"; + process.StartInfo.CreateNoWindow = true; + process.StartInfo.UseShellExecute = false; + process.Start(); + process.WaitForExit(); + } + + public void RenameVM2(string VMName, string vmNewName) { + + ManagementObject virtualSystemService = GetCimService("Msvm_VirtualSystemManagementService"); + ManagementBaseObject inParams = virtualSystemService.GetMethodParameters("ModifyVirtualSystem"); + ManagementObject vm = GetVM(VMName); + // ManagementBaseObject inParams = vm.GetMethodParameters("ModifyVirtualSystem"); + + inParams["ComputerSystem"] = vm.Path.Path; + ManagementObject settingData = null; + ManagementObjectCollection settingsData = vm.GetRelated( + "Msvm_VirtualSystemSettingData", + "Msvm_SettingsDefineState", + null, + null, + "SettingData", + "ManagedElement", + false, + null); + + foreach (ManagementObject data in settingsData) { + settingData = data; + } + settingData["ElementName"] = vmNewName; + inParams["SystemsettingData"] = settingData.GetText(TextFormat.CimDtd20); + ManagementBaseObject outParams = virtualSystemService.InvokeMethod("ModifyVirtualSystem", inParams, null); + // ManagementBaseObject outParams = vm.InvokeMethod("RequestStateChange", inParams, null); + + } + + public void MoveVMStorage(string VMName, string DestinationPath) { + Process process = new Process(); + string command = "Move-VMStorage -VM "+VMName+" -DestinationStoragePath "+DestinationPath; + process.StartInfo.Arguments = string.Format(command); + process.StartInfo.FileName = "PowerShell.EXE"; + process.StartInfo.CreateNoWindow = true; + process.StartInfo.UseShellExecute = false; + process.Start(); + process.WaitForExit(); + } + + public void ImportVM(string CurrentPath, string DestinationPath) { + Process process = new Process(); + string command = "Import-VM -Path " + CurrentPath + " -Copy -GenerateNewId -VhdDestinationPath "+DestinationPath +" -VirtualMachinePath "+DestinationPath; + process.StartInfo.FileName = "PowerShell.EXE"; + process.StartInfo.Arguments = command; + process.StartInfo.CreateNoWindow = true; + process.StartInfo.UseShellExecute = false; + outBox_msg.AppendText(Environment.NewLine + "ImportVM " + process.StartInfo.FileName); + process.Start(); + outBox_msg.AppendText(Environment.NewLine + "Start " + process.StartInfo.FileName); + process.WaitForExit(); + outBox_msg.AppendText(Environment.NewLine + "WaitForExit " + process.StartInfo.FileName); + } + + public void SetVMMemory(string VMName, int MemoryMaximumGB) { + Process process = new Process(); + string command = "Set-VM -VMName " + VMName + " -MemoryMaximumBytes " + ((MemoryMaximumGB + 2) * 1073741824); + process.StartInfo.Arguments = string.Format(command); + process.StartInfo.FileName = "PowerShell.EXE"; + process.StartInfo.CreateNoWindow = true; + process.StartInfo.UseShellExecute = false; + process.Start(); + process.WaitForExit(); + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Window Locations --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect); + + [DllImport("user32.dll")] + public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); + + public struct RECT { + public int Left; // x position of upper-left corner + public int Top; // y position of upper-left corner + public int Right; // x position of lower-right corner + public int Bottom; // y position of lower-right corner + } + + public RECT rect; + + public void WindowLoc(int vm,ref RECT rect) { + //Need to readd the logic that finds the mainwindowhandle from the VM number. + var processes = Process.GetProcessesByName("vmconnect"); + string VMName = "vm"+vm; + foreach (Process process in processes){ + if (process.MainWindowTitle ==(VMName)) { + GetWindowRect(process.MainWindowHandle,out rect); + } + } + } + + public void WindowSet(int vm,int Left,int Top,int Right,int Bottom) { + var processes = Process.GetProcessesByName("vmconnect"); + string VMName = "vm"+vm; + foreach (Process process in processes){ + if (process.MainWindowTitle ==(VMName)) { + MoveWindow(process.MainWindowHandle,Left,Top,Right,Bottom,true); + } + } + } + + public void WindowArrange() { + Dictionary[] GetStatus = FromCsv(GetContent(StatusFile)); + + Dictionary[] VMs = (Dictionary[])GetStatus.Where(n => (string)n["status"] != "Ready").Select(n => n["vm"]); + + if (VMs != null) { + int n = 0; + //for (int n = 1;n < VMs.Length;n++) { + foreach (Dictionary FullVM in VMs){ + RECT Base = new RECT(); + int VM = (int)FullVM["vm"]; + if (n == 0) { + WindowSet(VM,900,0,1029,860); + WindowLoc(VM, ref Base); + } + + int Left = (Base.Left - (100 * n)); + int Top = (Base.Top + (66 * n)); + WindowSet(VM,Left,Top,1029,860); + n++; + } + } + + for (int VM = 0; VM < GetStatus.Length; VM++) { + try { + string string_ram = GetStatus[VM]["RAM"]+" "; + } catch { + //inputBox_VMRAM.Text = e.ToString(); + } + } + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Event Handlers --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + //File + public void Save_File_Action(object sender, EventArgs e) { + MessageBox.Show("You're saved"); + }// end Save_File_Action + + public void Daily_Report_Action(object sender, EventArgs e) { + PRFullReport(); + }// end Daily_Report_Action + + //VM Lifecycle + public void Complete_VM_Image_Action (object sender, EventArgs e) { + CompleteVM(GetSelectedVM()); + } // end Complete_VM_Image_Action + + public void Launch_Window_Image_Action (object sender, EventArgs e) { + LaunchWindow(GetSelectedVM()); + } // end Launch_Window_Image_Action + + public void Open_Folder_Image_Action (object sender, EventArgs e) { + int VM = GetSelectedVM(); + Process.Start("C:\\ManVal\\vm\\"+VM.ToString()); + } // end Launch_Window_Image_Action + //VM Lifecycle - Win10 + public void Generate_Win10_VM_Image_Action (object sender, EventArgs e) { + GenerateVM("Win10"); + } // end Generate_VM_Image_Action + + public void Start_Win10_Image_Action (object sender, EventArgs e) { + ImageVMStart("Win10"); + } // end Start_Win10_Image_Action + + public void Launch_Win10_Window_Image_Action (object sender, EventArgs e) { + LaunchWindow(0,"Win10"); + } // end Launch_Win10_Window_Image_Action + + public void Stop_Win10_Image_Action (object sender, EventArgs e) { + ImageVMStop("Win10"); + } // end Stop_Win10_Image_Action + + public void TurnOff_Win10_Image_Action (object sender, EventArgs e) { + StopVM(0,"Win10"); + } // end TurnOff_Win10_Image_Action + + public void Attach_Win10_Image_Action (object sender, EventArgs e) { + ImageVMMove("Win10"); + } // end Attach_Win10_Image_Action + //VM Lifecycle - Win11 + public void Generate_Win11_VM_Image_Action (object sender, EventArgs e) { + GenerateVM("Win11"); + } // end Generate_VM_Image_Action + + public void Start_Win11_Image_Action (object sender, EventArgs e) { + ImageVMStart("Win11"); + } // end Start_Win11_Image_Action + + public void Launch_Win11_Window_Image_Action (object sender, EventArgs e) { + LaunchWindow(0,"Win11"); + } // end Launch_Win11_Window_Image_Action + + public void Stop_Win11_Image_Action (object sender, EventArgs e) { + ImageVMStop("Win11"); + } // end Stop_Win11_Image_Action + + public void TurnOff_Win11_Image_Action (object sender, EventArgs e) { + StopVM(0,"Win11"); + } // end TurnOff_Win11_Image_Action + + public void Attach_Win11_Image_Action (object sender, EventArgs e) { + ImageVMMove("Win11"); + } // end Attach_Win11_Image_Action + //VM Lifecycle + public void Disgenerate_VM_Image_Action (object sender, EventArgs e) { + DisgenerateVM(GetSelectedVM()); + } // end Disgenerate_VM_Image_Action + + //Validate Manifest + public void Validate_Manifest_Action(object sender, EventArgs e) { + ValidateManifest(); + }// end Validate_Manifest_Action + + public void Validate_By_Configure_Action(object sender, EventArgs e) { + ValidateManifest(0,"","",0,"","","","","",false,false,"","",false, "","Configure"); + }// end Validate_By_ID_Action + + public void Validate_By_ID_Action(object sender, EventArgs e) { + string PackageIdentifier = inputBox_User.Text; + + ValidateManifest(0,PackageIdentifier,"",0,"","","","","",false,false,"","",false, "--id "+PackageIdentifier); +//ValidateManifest(VM = 0, PackageIdentifier = "", PackageVersion = "", PR = 0, Arch = "", Scope = "", InstallerType = "", OS = "", Locale = "", InspectNew = false, notElevated = false, MinimumOSVersion = "", ManualDependency = "", NoFiles = false, installerLine = "", Operation = "Scan") + }// end Validate_By_ID_Action + + public void Validate_By_Arch_Action(object sender, EventArgs e) { + ValidateManifest(0,"","",0,"x64"); + Thread.Sleep(HyperVRateLimitDelay); + ValidateManifest(0,"","",0,"x86"); + }// end Validate_By_ID_Action + + public void Validate_By_Scope_Action(object sender, EventArgs e) { + ValidateManifest(0,"","",0,"","Machine"); + Thread.Sleep(HyperVRateLimitDelay); + ValidateManifest(0,"","",0,"","User"); + }// end Validate_By_ID_Action + + public void Validate_By_Arch_And_Scope_Action(object sender, EventArgs e) { + ValidateManifest(0,"","",0,"x64","Machine"); + Thread.Sleep(HyperVRateLimitDelay); + ValidateManifest(0,"","",0,"x86","Machine"); + Thread.Sleep(HyperVRateLimitDelay); + ValidateManifest(0,"","",0,"x64","User"); + Thread.Sleep(HyperVRateLimitDelay); + ValidateManifest(0,"","",0,"x86","User"); + }// end Validate_By_ID_Action + //Generate manifest for selected VM + public void Manifest_From_Clipboard (object sender, EventArgs e) { + string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; + AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs and request features:" + Environment.NewLine; + AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + MessageBox.Show(AboutText); + }// end Validate_By_ID_Action + + public void Single_File_Automation_Action(object sender, EventArgs e) { + string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; + AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs and request features:" + Environment.NewLine; + AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + MessageBox.Show(AboutText); + }// end Validate_By_ID_Action + //Update manifest + public void Add_Dependency_Disk_Action (object sender, EventArgs e) { + string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; + AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs and request features:" + Environment.NewLine; + AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + MessageBox.Show(AboutText); + } // end Add_Dependency_Disk_Action + + public void Add_Installer_Switch_Action (object sender, EventArgs e) { + string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; + AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs and request features:" + Environment.NewLine; + AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + MessageBox.Show(AboutText); + } // end Add_Installer_Switch_Action + + //Modify PR + public void Add_Waiver_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + dynamic string_out = FromJson(AddWaiver(PR)); + AddPRToRecord(PR,"Waiver"); + }// end Add_Waiver_Action + + public void Label_Action_Action(object sender, EventArgs e) { + string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; + AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs and request features:" + Environment.NewLine; + AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + MessageBox.Show(AboutText); + }// end Label_Action_Action + + public void Approved_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + + string Timestamp = DateTime.Now.ToString("H:mm:ss"); + DataRow row = table_val.NewRow(); + row[0] = Timestamp; + row[1] = PR; + row[2] = ""; + row[3] = ""; + row[4] = "A"; + row[5] = 0;//M + row[6] = "R"; + row[7] = "G"; + row[8] = "W"; + row[9] = "F"; + row[10] = "I"; + row[11] = "D"; + row[12] = "V"; + row[13] = ""; + row[14] = "+"; + table_val.Rows.InsertAt(row,0); + + string response_out = FromJson(ApprovePR(PR))["state"]; + table_val.Rows[0].SetField("OK", response_out[0]); + AddPRToRecord(PR,"Approved"); + }// end Approved_Action + + public void Needs_Author_Feedback_Action(object sender, EventArgs e) { + string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; + AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs and request features:" + Environment.NewLine; + AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + MessageBox.Show(AboutText); + }// end Needs_Author_Feedback_Action + + public void Check_Installer_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + CheckInstaller(PR); + }// end Check_Installer_Action + //Modify PR - Canned Replies + public void Automation_Block_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Blocking"); + string response_out = ReplyToPR(PR,"AutomationBlock","Network-Blocker"); + }// end Automation_Block_Action + + public void Driver_Install_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + string response_out = ReplyToPR(PR,"DriverInstall","DriverInstall"); + AddPRToRecord(PR,"Blocking"); + }// end Driver_Install_Action + + public void Installer_Missing_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Feedback"); + string response_out = ReplyToPR(PR,"InstallerMissing",MagicLabels[30]); + }// end Installer_Missing_Action + + public void Installer_Not_Silent_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Feedback"); + string response_out = ReplyToPR(PR,"InstallerNotSilent",MagicLabels[30]); + }// end Installer_Not_Silent_Action + + public void Needs_PackageUrl_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Feedback"); + string response_out = ReplyToPR(PR,"PackageUrl",MagicLabels[30]); + }// end Needs_PackageUrl_Action + + public void One_Manifest_Per_PR_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Feedback"); + string response_out = ReplyToPR(PR,"OneManifestPerPR",MagicLabels[30]); + }// end One_Manifest_Per_PR_Action + //Modify PR - Update Manifest + public void Add_Dependency_Repo_Action (object sender, EventArgs e) { + string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; + AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs and request features:" + Environment.NewLine; + AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + MessageBox.Show(AboutText); + } // end Add_Dependency_Repo_Action + + public void Update_Hash_Action (object sender, EventArgs e) { + string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; + AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs and request features:" + Environment.NewLine; + AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + MessageBox.Show(AboutText); + } // end Update_Hash_Action + + public void Update_Hash2_Action (object sender, EventArgs e) { + string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; + AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs and request features:" + Environment.NewLine; + AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + MessageBox.Show(AboutText); + } // end Update_Hash2_Action + + public void Update_Arch_Action (object sender, EventArgs e) { + string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; + AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs and request features:" + Environment.NewLine; + AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + MessageBox.Show(AboutText); + } // end Update_Arch_Action + //Modify PR + public void Retry_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + dynamic response_out = FromJson(RetryPR(PR)); + AddPRToRecord(PR,"Retry"); + }// end Approved_Action + + public void Manually_Validated_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + string response_out = ReplyToPR(PR,"InstallsNormally","","Manually-Validated"); + AddPRToRecord(PR,"Manual"); + }// end Manually_Validated_Action + //Modify PR - Close PR + public void Closed_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + string UserInput = inputBox_User.Text; + inputBox_User.Text = ""; + AddPRToRecord(PR,"Closed"); + InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: "+UserInput+";"); + }// end Closed_Action + + public void Merge_Conflicts_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Closed"); + dynamic response_out = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: Merge Conflicts;")); + }// end Merge_Conflicts_Action + + public void Version_Already_Exiss_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Closed"); + dynamic response_out = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: Version already exists;")); + }// end Version_Already_Exiss_Action + + public void Stale_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Closed"); + dynamic response_out = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: Stale;")); + }// end Stale_Action + + public void Package_Available_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Closed"); + dynamic response_out = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: Package still available;")); + }// end Package_Available_Action + + public void Regen_Hash_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Closed"); + dynamic response_out = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: Regenerate with new hash, and the newest version number.;")); + }// end Regen_Hash_Action + + public void Duplicate_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + int UserInput = Int32.Parse(inputBox_User.Text.Replace("#","")); + inputBox_User.Text = ""; + AddPRToRecord(PR,"Closed"); + dynamic response_out = FromJson(InvokeGitHubPRRequest(PR,WebRequestMethods.Http.Post,"comments","Close with reason: Duplicate of #"+UserInput+";")); + }// end Duplicate_Action + //Modify PR + public void Project_File_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Project"); + }// end Project_File_Action + + public void Squash_Action(object sender, EventArgs e) { + int PR = GetCurrentPR(); + AddPRToRecord(PR,"Squash"); + }// end Approved_Action + + //Open In Browser + public void Open_Current_PR_Action(object sender, EventArgs e) { + OpenPRInBrowser(GetCurrentPR()); + + }// end Approved_Action + + public void Open_PR_Selected_VM_Action(object sender, EventArgs e) {; + int PR = Convert.ToInt32(dataGridView_vm.SelectedRows[0].Cells["PR"].Value); + OpenPRInBrowser(PR); + }// end Approved_Action + + public void Pkgs_Issues_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/issues"); + }// end Approval_Search_Action + + public void Cli_Issues_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-cli/issues"); + }// end Approval_Search_Action + + public void Manual_Merge_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/labels/Needs-Manual-Merge"); + }// end Approval_Search_Action + + public void Highest_Version_Remaining_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/pulls?q=is%3Aopen+is%3Apr+draft%3Afalse+label%3AHighest-Version-Removal+");//HVR + }// end Approval_Search_Action + + public void Approval_Search_Action(object sender, EventArgs e) { + SearchGitHub("Approval",1,0, false,false,true); + }// end Approval_Search_Action + + public void Defender_Search_Action(object sender, EventArgs e) { + SearchGitHub("Defender",1,0, false,false,true); + }// end Defender_Search_Action + + public void ToWork_Search_Action(object sender, EventArgs e) { + SearchGitHub("ToWork",1,0, false,false,true); + }// end ToWork_Search_Action + + public void Open_Repo_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start(GitHubBaseUrl); + }// end Approved_Action + //Open In Browser - Open many tabs: + public void Open_AllUrls_Action(object sender, EventArgs e) { + string clip = Clipboard.GetText(); + foreach (int PR in PRNumber(clip,true)) { + OpenPRInBrowser(PR); + Thread.Sleep(GitHubRateLimitDelay); + } + }// end Approved_Action + + public void Approval_Run_Search_Action(object sender, EventArgs e) { + WorkSearch("Approval"); + }// end Approved_Action + + public void ToWork_Run_Search_Action(object sender, EventArgs e) { + WorkSearch("ToWork"); + }// end Approved_Action + + public void All_Resources_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start("https://app.gitter.im/#/room/#Microsoft_winget-pkgs:gitter.im");//Gitter chat + System.Diagnostics.Process.Start("https://dev.azure.com/ms/winget-pkgs/_build");//Pipeline status + System.Diagnostics.Process.Start("https://stpkgmandashwesus2pme.z5.web.core.windows.net/");//Dashboard + SearchGitHub("Approval",1,0, false,false,true);//Approval search + SearchGitHub("ToWork",1,0, false,false,true);//ToWork search + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/pulls?q=is%3Aopen+is%3Apr+draft%3Afalse+-label%3ABlocking-Issue++label%3AValidation-Executable-Error+label%3AAzure-Pipeline-Passed+-label%3AValidation-Completed+-label%3AInternal-Error-Dynamic-Scan+-label%3AValidation-Defender-Error+-label%3AChanges-Requested+-label%3ADependencies+-label%3AHardware+-label%3AInternal-Error-Manifest+-label%3AInternal-Error-NoSupportedArchitectures+-label%3ALicense-Blocks-Install+-label%3ANeeds-CLA+-label%3ANetwork-Blocker+-label%3ANo-Recent-Activity+-label%3Aportable-jar+-label%3AReboot+-label%3AScripted-Application+-label%3AWindowsFeatures+-label%3Azip-binary");//APP-VEE + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/issues?q=is%3Aopen+assignee%3A"+gitHubUserName+"+-label%3AValidation-Completed+-label%3AValidation-Defender-Error+-label%3AError-Hash-Mismatch");//Assigned to user + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/pulls?q=is%3Apr+is%3Aopen+-is%3Adraft+label%3Amoderator-approved+label%3AValidation-Completed+-label%3ANeeds-CLA+-label%3ANeeds-Attention+-label%3ANeeds-Author-Feedback++-label%3ABlocking-Issue+");//Squash-Ready + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/labels/Internal-Error-Dynamic-Scan");//IEDS + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/pulls?page=1&q=is%3Apr+is%3Aopen+draft%3Afalse+label%3AValidation-Completed+label%3ANeeds-Attention+-label%3ALast-Version-Remaining+-label%3AScripted-Application+-label%3Ahardware");//VCNA + System.Diagnostics.Process.Start("https://github.com/notifications?query=reason%3Amention");//Notifications mentions + }// end All_Resources_Action + + public void Start_Of_Day_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/issues"); + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-cli/issues"); + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/labels/Needs-Manual-Merge"); + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-pkgs/pulls?q=is%3Aopen+is%3Apr+draft%3Afalse+label%3AHighest-Version-Removal+");//HVR + SearchGitHub("Defender",1,0, false,false,true); + }// end Start_Of_Day_Action + //Open In Browser + public void Open_PKGS_Repo_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start(GitHubBaseUrl); + }// end Open_PKGS_Repo_Action + + public void Open_CLI_Repo_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start("https://github.com/microsoft/winget-cli/"); + }// end Open_CLI_Repo_Action + + public void Open_Notifications_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start("https://github.com/notifications?query=reason%3Amention"); + }// end Approved_Action + + public void Open_Gitter_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start("https://app.gitter.im/#/room/#Microsoft_winget-pkgs:gitter.im"); + }// end Approved_Action + + public void Open_Pipeline_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start("https://dev.azure.com/ms/winget-pkgs/_build"); + }// end Approved_Action + + public void Open_Dashboard_Action(object sender, EventArgs e) { + System.Diagnostics.Process.Start("https://stpkgmandashwesus2pme.z5.web.core.windows.net/"); + }// end Approved_Action + + public void Pkgs_Search_Action(object sender, EventArgs e) { + string UserInput = inputBox_User.Text; + inputBox_User.Text = ""; + System.Diagnostics.Process.Start("https://github.com/search?q=repo%3Amicrosoft%2Fwinget-pkgs+"+UserInput+"&type=pullrequests"); + }// end Pkgs_Search_Action + + public void Open_SelectedApproved_Action(object sender, EventArgs e) { + int PR = Convert.ToInt32(dataGridView_val.SelectedRows[0].Cells["PR"].Value); + OpenPRInBrowser(PR); + }// end Open_SelectedApproved_Action + + + //Help + public void About_Click_Action (object sender, EventArgs e) { + string AboutText = "WinGet Approval Pipeline" + Environment.NewLine; + AboutText += "(c) 2024 Microsoft Corp" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs and request features:" + Environment.NewLine; + AboutText += "https://Github.com/winget-pkgs/issues/" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + MessageBox.Show(AboutText); + } // end About_Click_Action + + public void VCDependency_Click_Action (object sender, EventArgs e) { + string AboutText = "VCRedist DLL to dependency mapping:" + Environment.NewLine; + AboutText += "Missing DLL - Dependency" + Environment.NewLine; + AboutText += "MSVCR71.dll - Microsoft.VCRedist.2005.x64 (x86)" + Environment.NewLine; + AboutText += "MSVCR08.dll - Microsoft.VCRedist.2008.x64 (x86)" + Environment.NewLine; + AboutText += "MSVCR09.dll & MSVCR100.dll - Microsoft.VCRedist.2010.x64 (x86)" + Environment.NewLine; + AboutText += "MSVCR120.dll - Microsoft.VCRedist.2012.x64 (x86)" + Environment.NewLine; + AboutText += "MSVCR130.dll - Microsoft.VCRedist.2013.x64 (x86)" + Environment.NewLine; + AboutText += "MSVCR140.dll - Microsoft.VCRedist.2015+.x64 (x86)" + Environment.NewLine; + AboutText += "??? - Microsoft.VCRedist.2019.arm64" + Environment.NewLine; + AboutText += "??? - Microsoft.VCRedist.2022.arm64" + Environment.NewLine; + MessageBox.Show(AboutText); + } // end About_Click_Action + + + + + + + // string UserInput = inputBox_User.Text; + // List versions = ManifestListing(UserInput); + // outBox_msg.AppendText(Environment.NewLine + "Testing2: " + ToJson(versions)); + // dynamic line = FromCsv(GetContent(DataFileName)).Where(n => (string)n["PackageIdentifier"] == (UserInput)); + // string string_out = (PRStateFromComments(PR).ToString()); + // dynamic string_out = GetFileData(DataFileName,"PackageIdentifier", UserInput); + // dynamic string_out = FromCsv(GetContent(DataFileName)).Where(n => n[Property] != null).Where(n => (string)n[Property].Contains(Match); + // string UserInput = inputBox_User.Text; + // dynamic line = FromCsv(GetContent(DataFileName)).Where(n => (string)n["PackageIdentifier"] == (UserInput)); + // outBox_msg.AppendText(Environment.NewLine + "Testing: " + ToJson(line)); + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Inject into PRs --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// +/*Inject into PRs +public string AddDependencyToPR(int PR){ + string Dependency = "Microsoft.VCRedist.2015+.x64", + string SearchString = "Installers:", + string LineNumbers = CommitFile(PR, string File, string url) (Select-String SearchString).LineNumber), + string ReplaceString = "Dependencies:\n PackageDependencies:\n - PackageIdentifier: $Dependency\nInstallers:", + string comment = "\\\\\\suggestion\n$ReplaceString\n\\\\\\\n\n(Automated response - build "build".)" + string_out = "" + foreach ($Line in $LineNumbers) { + string_out += Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Policy "Needs-Author-Feedback" + } +} +public string UpdateHashInPR(int PR, string ManifestHash, string PackageHash, string LineNumbers = ((Get-CommitFile -PR $PR | Select-String ManifestHash).LineNumber), string ReplaceTerm = (" InstallerSha256: $($PackageHash.toUpper())"), string comment = "\\\\\\suggestion\n$ReplaceString\n\\\\\\\n\n(Automated response - build "build".)"){ + foreach ($Line in $LineNumbers) { + Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Policy "Needs-Author-Feedback" + } +} + +public string UpdateHashInPR2(int PR, string clip, string SearchTerm = "Expected hash", string ManifestHash = (YamlValue $SearchTerm -Clip $Clip), string LineNumbers = ((Get-CommitFile -PR $PR | Select-String ManifestHash).LineNumber), string ReplaceTerm = "Actual hash", string PackageHash = (" InstallerSha256: "+(YamlValue $ReplaceTerm -Clip $Clip).toUpper()), string comment = "\\\\\\suggestion\n$ReplaceString\n\\\\\\\n\n(Automated response - build "build".)"){ + foreach ($Line in $LineNumbers) { + Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Policy "Needs-Author-Feedback" + } +} + +public string UpdateArchInPR(int PR, string SearchTerm = " Architecture: x86", string LineNumbers = ((Get-CommitFile -PR $PR | Select-String SearchTerm).LineNumber),string ReplaceTerm = (($SearchTerm.Split(": "))[1]),string ReplaceArch = (("x86","x64").Where(n => n -notmatch $ReplaceTerm}), string ReplaceString = ($SearchTerm.Replace($ReplaceTerm, string ReplaceArch), string comment = "\\\\\\suggestion\n$ReplaceString\n\\\\\\\n\n(Automated response - build "build".)")){ +[ValidateSet("x86","x64","arm","arm32","arm64","neutral")] + foreach ($Line in $LineNumbers) { + Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Policy "Needs-Author-Feedback" + } +} +*/ + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Inject into Files --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void AddToValidationFile(int VM, string Dependency = "Microsoft.VCRedist.2015+.x64"){ + string VMFolder = MainFolder+"\\vm\\"+VM; + string manifestFolder = VMFolder+"\\manifest"; + string FilePath = "manifestFolder\\Package.installer.yaml"; + string fileContents = GetContent(FilePath); + //string Selector = "Installers:"; + // int offset = 1; + // int lineNo = 0;//((fileContents| Select-String Selector -List).LineNumber -offset); + //string fileInsert = "Dependencies:\n PackageDependencies:\n - PackageIdentifier: Dependency"; + string fileOutput = fileContents;//(fileContents[0..(lineNo -1)]+fileInsert+fileContents[lineNo..(fileContents.Length)]); + OutFile(FilePath,fileOutput); + SetStatus(VM,"Revert"); + } + + public void AddInstallerSwitch(int VM, string Data){ + string VMFolder = MainFolder+"\\vm\\"+VM; + string manifestFolder = VMFolder+"\\manifest"; + string FilePath = "manifestFolder\\Package.installer.yaml"; + string fileContents = GetContent(FilePath); + // string Selector = "ManifestType:"; + // int offset = 1; + // int lineNo = 0;//((fileContents| Select-String Selector -List).LineNumber -offset); + // string fileInsert = " InstallerSwitches:\n Silent: $Data"; + string fileOutput = fileContents;//(fileContents[0..(lineNo -1)]+fileInsert+fileContents[lineNo..(fileContents.Length)]); + OutFile(FilePath,fileOutput); + SetStatus(VM,"Revert"); + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Modes --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void Approving_Action(object sender, EventArgs e) { + SetMode("Approving"); + }// end Approving_Action + + public void IEDS_Action(object sender, EventArgs e) { + SetMode("IEDS"); + }// end IEDS_Action + + public void Validating_Action(object sender, EventArgs e) { + SetMode("Validating"); + }// end Validating_Action + + public void Idle_Action(object sender, EventArgs e) { + SetMode("Idle"); + }// end Idle_Action + + public void NoNew_Action(object sender, EventArgs e) { + SetMode("NoNew"); + }// end NoNew_Action + + public void OnlyNew_Action(object sender, EventArgs e) { + SetMode("OnlyNew"); + }// end OnlyNew_Action + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Misc Data --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public string[] StandardPRComments = { + "Validation Pipeline Badge",//Pipeline status + "wingetbot run",//Run pipelines + "azp run",//Run pipelines + "AzurePipelines run",//Run pipelines + "Azure Pipelines successfully started running 1 pipeline",//Run confirmation + "The check-in policies require a moderator to approve PRs from the community",//Validation complete + "microsoft-github-policy-service agree",//CLA acceptance + "wingetbot waivers Add",//Any waivers + "The pull request encountered an internal error and has been assigned to a developer to investigate",//IEDS or other error + "Manifest Schema Version: 1.4.0 less than 1.5.0 for ID:",//Manifest depreciation for 1.4.0 + "This account is bot account and belongs to CoolPlayLin",//CoolPlayLin's automation + "This account is automated by Github Actions and the source code was created by CoolPlayLin",//Exorcism0666's automation + "Response status code does not indicate success",//My automation - removal PR where URL failed status check. + "Automatic Validation ended with",//My automation - Validation output might be immaterial if unactioned. + "Manual Validation ended with",//My automation - Validation output might be immaterial if unactioned. + "No errors to post",//My automation - AutoValLog with no logs. + "The package didn't pass a Defender or similar security scan",//My automation - DefenderFail. + "Installer failed security check",//My automation - AutoValLog DefenderFail. + "Sequence contains no elements",//New Sequence error. + "Missing Properties value based on version",//New property detection. + "Azure Pipelines could not run because the pipeline triggers exclude this branch/path"//Pipeline error. + }; + + public string[] WordFilterList = { + "accept_gdpr ", + "accept-licenses", + "accept-license", + "eula", + "downloadarchive.documentfoundation.org", + "paypal" + }; + + public string[] AppsAndFeaturesEntriesList = { + "DisplayName", + "DisplayVersion", + // "Publisher", + "ProductCode", + "UpgradeCode" //, + // "InstallerType" + }; + + public string[] CountrySet = { + "Default", "Warm", "Cool", "Random", "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antigua And Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia And Herzegovina", "Botswana", "Bouvet Island", "Brazil", "Brunei Darussalam", "Bulgaria", "Burkina Faso", "Burundi", "Cabo Verde", "Cambodia", "Cameroon", "Canada", "Central African Republic", "Chad", "Chile", "China", "Colombia", "Comoros", "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Curacao", "Cyprus", "Czechia", "Cöte D'Ivoire", "Democratic Republic Of The Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Eswatini", "Ethiopia", "Fiji", "Finland", "France", "French Polynesia", "Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Holy See (Vatican City State)", "Honduras", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Montenegro", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "North Macedonia", "Norway", "Oman", "Pakistan", "Palau", "Palestine", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Qatar", "Republic Of The Congo", "Romania", "Russian Federation", "Rwanda", "Saint Kitts And Nevis", "Saint Lucia", "Saint Vincent And The Grenadines", "Samoa", "San Marino", "Sao Tome And Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Korea", "South Sudan", "Spain", "Sri Lanka", "Sudan", "Suriname", "Sweden", "Switzerland", "Syrian Arab Republic", "Tajikistan", "Tanzania", " United Republic Of", "Thailand", "Togo", "Tonga", "Trinidad And Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "Yemen", "Zambia", "Zimbabwe", "Ã…land Islands" + }; + + public string[] MagicStrings = { + "Installer Verification Analysis Context Information:", //0 + "[error] One or more errors occurred.", //1 + "[error] Manifest Error:", //2 + "BlockingDetectionFound", //3 + "Processing manifest", //4 + "SQL error or missing database", //5 + "Error occurred while downloading installer" //6 + }; + + public string[] MagicLabels = { + "Validation-Defender-Error", //0 + "Binary-Validation-Error", //1 + "Error-Analysis-Timeout", //2 + "Error-Hash-Mismatch", //3 + "Error-Installer-Availability", //4 + "Internal-Error", //5 + "Internal-Error-Dynamic-Scan", //6 + "Internal-Error-Manifest", //7 + "Internal-Error-URL", //8 + "Manifest-AppsAndFeaturesVersion-Error", //9 + "Manifest-Installer-Validation-Error", //10 + "Manifest-Validation-Error", //11 + "Possible-Duplicate", //12 + "PullRequest-Error", //13 + "URL-Validation-Error", //14 + "Validation-Domain", //15 + "Validation-Executable-Error", //16 + "Validation-Hash-Verification-Failed", //17 + "Validation-Missing-Dependency", //18 + "Validation-Merge-Conflict", //19 + "Validation-No-Executables", //20 + "Validation-Installation-Error", //21 + "Validation-Shell-Execute", //22 + "Validation-Unattended-Failed", //23 + "Policy-Test-1.2", //24 + "Policy-Test-2.3", //25 + "Validation-Completed", //26 + "Validation-Forbidden-URL-Error", //27 + "Validation-Unapproved-URL", //28 + "Validation-Retry", //29 + "Needs-Author-Feedback",//30 + "Policy-Test-2.3" //31 + }; + + public string[] HourlyRun_PresetList = { + "Defender", + "ToWork2" + }; + }// end WinGetApprovalPipeline +}// end WinGetApprovalNamespace + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Miscellany --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// +/* Original drawing +................................................................................................................................................................................................................................................ +WinGet Approver - Build 365 +....VMs..................................................................................................................................................................................................................................... +....................................................................................................................|......--------------------......--------------------......---------------------------------------------..... +....VM..|.Status.|.Version.|.OS.|.Package.|.PR.|.RAM.............................|......|...Blocking...|......|..Feedback..|.....|..................139040....................|..... +....600.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......|___Issue___|.....|__________|.....|_________________________|...... +....601.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......--------------------......--------------------......--------------------......--------------------..... +....602.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......|......Retry.....|......|...Changes....|.....|.....Check....|.....|...Approved..|..... +....603.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......|__________|......|_Requested_|.....|__Installer_|.....|__________|..... +....604.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......--------------------......--------------------......--------------------......--------------------..... +....605.|.Ready.|.99.....|.Win10..|.............|.......|......................................|......|....Waiver....|......|.....Squash....|.....|.....Project....|.....|.....Closed....|..... +....................................................................................................................|......|__________|......|__________|......|__________|.....|__________|..... +__________________________________________________________|_____________________________________________________________ +....Approvals............................................................................................................................................................................................................................ +................................................................................................................................................................................................................................................. +|.Timestp..|.PR#.......|.PackageIdentifier......................|.PRVersion........|.A.|.R.|.W.|.F.|.I.|.D.|.V.|.ManifestVer.........|.OK.|.......................................... +|.15:18:10.|.138430.|.JetBrains.WebStorm.EAP..........|.241.11761.28..|.A.|.R.|.W.|.1.|.I.|.D.|.999.|.241.10840.2......|.OK.|.......................................... +|.15:18:18.|.138431.|.Fly-io.flyctl.................................|.0.1.148............|.A.|.R.|.W.|.0.|.I.|.D.|.999.|.0.1.147..............|.OK.|......................................... +|.15:18:32.|.138435.|.JosephFinney.Text-Grab...........|.4.1.3.................|.A.|.R.|.W.|.0.|.I.|.D.|.999.|.4.1.0..................|.OK.|......................................... +|.15:18:42.|.138437.|.AdGuard.AdGuardVPN..............|.2.2.1251.0.......|.A.|.R.|.W.|.0.|.-.|.D.|.999.|.2.2.1233.0.........|.OK.|......................................... +|.15:18:52.|.138438.|.VSCodium.VSCodium.Insiders..|.1.86.0.24039....|.A.|.R.|.W.|.0.|.I.|.D.|.999.|.1.86.0.24038.....|.OK.|......................................... +|.15:19:31.|.138440.|.Rustlang.Rust.MSVC...................|.1.76.0..............|.+.|.R.|.W.|.1.|.I.|.D.|.999.|.1.75.0................|.OK.|........................................ +|.15:19:48.|.138441.|.Rustlang.Rust.GNU.....................|.1.76.0..............|.+.|.R.|.W.|.1.|.I.|.D.|.999.|.1.75.0................|.OK.|........................................ +________________________________________________________________________________________________________________________ +......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------..... +......|..Approving.|......|.......IEDS......|.....|.......Idle.......|.....|..Validating..|.....|.....Button....|......|.....Button....|.....|.....Button....|.....|......Reset.....|..... +......|__________|......|__________|......|__________|.....|__________|......|__________|......|__________|......|__________|.....|__Vedant__|..... +......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------..... +......|...Installer...|......|....Installer...|......|.....Merge....|.....|...Network..|.....|One.Manifest|......|...Package...|.....|WorkSearch.|.....|..Timeclock..|..... +......|_Not_Silent|......|__Missing__|.....|_Conflicts__|.....|__Blocker__|......|__Per_PR___|......|___Url____|......|__________|.....|__________|..... +......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------......--------------------..... +......|..Defender..|......|.Automation|.....|.....Button....|.....|.....Button....|.....|.....Button....|......|.....Button....|.....|.....Button....|.....|.....Button....|..... +......|___Fail____|......|___Block___|.....|__________|.....|__________|......|__________|......|__________|......|__________|.....|__________|..... +................................................................................................................................................................................................................................................ +................................................................................................................................................................................................................................................ +*/ +/* A PR's journey through the WinGet pipeline system: +- PR committed - manually or with a tool. +- PR pulled into Automatic Validation Pipeline. + - On fail, add label. + - Pipeline errors - these often have the label Internal-Error or Internal-Error-Dynamic-Scan. The former are usually ephemeral and disappear on retry. The latter are sometimes ephemeral, and sometimes happen to a package on every run - it's far enough along that the package can be manually validated. Manual validation might still fail on one of the following errors, and has to manually update labels and comment in the PR similar to how the pipeline would. + - PR and Manifest errors - these can often be remediated in PR, then retry and pass. + - Defender and scan errors - some can linger in the fail-and-remediation state ("Defender Loop") for an extended duration before passing. + - Installer and application errors - these can sometimes be remediated in PR, by adding data such as switches or dependencies. If so, retry and pass. + - Legal and political issues - these can be hard blockers. Some might need the manifest schema to be updated with additional fields, and those fields populated with legal agreements, before the PR can pass. + - Unfortunately, for some PRs, the next step is closure. The path to this step isn't always straightforward, and some linger here for an extended duration as well. Closed PRs can be reopened for a good reason. Feel free to ask. + - On pass, continue. +- SDL checks occur at some point. These don't take very long, unless you're waiting on the PR. +- PR pends for community and moderator review. (Review "pool") + - On fail, add comment. + - Installer: Duplicate PRs, version mismatches between manifest and registry, different installer types. + - Locale: Incorrect PackageName, ReleaseNotes not in locale's natural language, PackageUrl not leading to InstallerUrl, and other errata. + - On pass, continue. +- PR pends for moderator approval. (Approval pipeline) + - On fail, add comment. + - Auth fail - Package has Auth strictness of "must" and submitter isn't on the list. Ask someone who IS on the list for approval. + - Version parameter fail - the number of version parameters (data between dots, such as major and minor version numbers) has changed. This is common for some developers, and an exception list is currently manually implemented. + - Version number contains spaces fail - this check needs to be reimplemented. It was meant to catch an automation bug adding spaces after the dots in PackageVersion numbers. + - Review fail - PackageIdentifier has review notes blocking approval. Post them. + - Agreements fail - PackageIdentifier has EULA but PR is missing the AgreementsUrl. Post this. + - Words filter fail - Manifest contains words (such as "EULA") that are restricted, because they might indicate another check has failed or been skipped. Post about these. + - AnF fail - missing the "AppsAndFeaturesEntries" entry but present in previous PR. This check needs to be updated. Usually only block on DisplayVersion, but also note if there are more than 3 of these missing. + - InstallerUrl contains PackageVersion - Doesn't block but is informative. Should be rebuilt to include a vanity URL detector, and also detect if the InstallerUrl shows previous version. + - Files removed - if the PR has more than 2 files, and it's not a removal, check if the previous version had at least as many files. To prevent a PR from leaving out localization files from the previous version. + - OR Last Version Remaining fail - If it's a removal, check if it's the highest version. If it is, ask if it's available from another location. + - On pass, approve. +- PR pends for publish pipeline. + - Publish converts repo to an XML database and compresses into MSIX. + - Uploads to storage location, refreshes CDN. +- Package is available to users. +(Goal is to make this have 1 remediation loop instead of 3.) +*/ diff --git a/Tools/ManualValidation/ManualValidationPipeline.csv b/Tools/ManualValidation/ManualValidationPipeline.csv index 1cd49efa7c6d8..14895c399be55 100644 --- a/Tools/ManualValidation/ManualValidationPipeline.csv +++ b/Tools/ManualValidation/ManualValidationPipeline.csv @@ -1,304 +1,309 @@ -"PackageIdentifier","gitHubUserName","authStrictness","authUpdateType","autoWaiverLabel","versionParamOverrideUserName","versionParamOverridePR","code200OverrideUserName","code200OverridePR","AgreementOverridePR","AgreementUrl","reviewText" -"2BrightSparks.SyncBackFree","2BrightSparks","should","auto","","","","","","","", -"2BrightSparks.SyncBackPro","2BrightSparks","should","auto","","","","","","","", -"2BrightSparks.SyncBackSE","2BrightSparks","should","auto","","","","","","","", -"AdGuard.dnsproxy","","","","Validation-Executable-Error","","","","","","", -"aiko-chan-ai.DiscordBotClient","aiko-chan-ai","should","auto","","","","","","","", -"AlexanderPro.SmartSystemMenu","AlexanderPro","should","manual","","","","","","","", -"amrdeveloper.gitql","AmrDeveloper","should","manual","","","","","","","", -"Anki.Anki","","","","","fabio-muramatsu","","","","","", -"AntoineAflalo.SoundSwitch","","","","","Belphemur","","","","","", -"ApeCloud.kbcli","apecloud-bot","should","manual","","","","","","","", -"aquaproj.aqua","suzuki-shunsuke","should","auto","","","","","","","", -"ART.ART","","","","Policy-Test-2.3","","","","","","", -"Aserto.DSLoad","","","","Validation-Executable-Error","","","","","","", -"Aserto.Topaz","gertd","must","manual","","","0","","0","0","", -"ast-grep.ast-grep","","","","Validation-Executable-Error","","","","","","", -"Astronomer.Astro","kushalmalani/neel-astro","should","manual","","","","","","","", -"BakkesMod.BakkesMod","BakkesMod","must","manual","","","","","","","", -"beeradmoore.dlss-swapper","beeradmoore","should","manual","","","","","","","", -"blacktop.ipsw","blacktop","should","auto","","","","","","","", -"blacktop.ipswd","blacktop","should","auto","","","","","","","", -"BlenderFoundation.Blender.LTS","EGuillemot","should","auto","","","","","","","", -"bloznelis.typioca","bloznelis","should","auto","","","","","","","", -"BlueBubbles.BlueBubbles","","","","Validation-Installation-Error","","","","","","", -"BrettMayson.HEMTT","","","","Validation-Executable-Error","","","","","","", -"Brows.App","kyourek","should","manual","","","","","","","", -"c3er.mdview","c3er","should","manual","","","","","","","", -"Chocolatey.Chocolatey","pauby/gep13/choco-bot","must","manual","","","","","","","", -"chrisant996.Clink","chrisant996","should","manual","","","","","","","", -"ClassWidgets.ClassWidgets","","must","manual","","","","","","","", -"Coder.Coder","cdrci","should","manual","","","","","","","", -"CodingWondersSoftware.DISMTools.Stable","CodingWonders","should","auto","","","","","","","", -"Coloryr.ColorMC","Coloryr","should","manual","","","","","","","", -"craftablescience.VPKEdit","craftablescience","should","manual","","","","","","","", -"creativeprojects.resticprofile","","","","Validation-Executable-Error","","0","","0","0","", -"DanielMcGuireCorporation.MathBotCLI","DanielLMcGuire","should","manual","","","","","","","", -"DanielMcGuireCorporation.SimpleBrowser","DanielLMcGuire","should","manual","","","","","","","", -"Dapr.CLI","dapr-bot","should","manual","","","","","","","", -"Datadog.Agent","robot-github-winget-datadog-agent","should","auto","","","0","","0","0","", -"Devolutions.Launcher","devolutionsbot","should","manual","","","","","","","", -"Devolutions.RemoteDesktopManagerAgent","devolutionsbot","should","manual","","","","","","","", -"DoltHub.Dolt","coffeegoddd","should","manual","","","","","","","", -"Doppler.doppler","doppler-bot","should","manual","","","","","","","", -"ducaale.xh","ducaale","should","manual","Validation-Executable-Error","","","","","","", -"dundee.gdu","dundee","should","manual","","","0","","0","0","", -"dustinblackman.oatmeal","dustinblackman","should","manual","","","","","","","", -"DVSTSEOOD.QOps","qops-hub","should","manual","Validation-No-Executables","","","","","","", -"DuckStudio.FufuTools","DuckDuckStudio/Luna-Grace/fjwxzde","must","","","","","","","","", -"DuckStudio.FufuDevTools","DuckDuckStudio/Luna-Grace/fjwxzde","must","","","","","","","","", -"DuckStudio.ChineseGit","DuckDuckStudio/Luna-Grace/fjwxzde","must","","","","","","","","", -"DuckStudio.GitHubLabelsManager","DuckDuckStudio","must","","","","","","","","", -"DuckStudio.GitHubView","DuckDuckStudio","must","","","","","","","","", -"DuckStudio.GitHubView.Nightly","DuckDuckStudio","must","","","","","","","","", -"DuckStudio.Sundry","DuckDuckStudio","must","","","","","","","","", -"EFIBootEditor.EFIBootEditor","EFIBootEditorBot","should","auto","","","","","","","", -"EliWeitzman.ETT","eliweitzman","should","auto","","","","","","","", -"Emurasoft.EmEditor","yutakaemura","should","auto","","","","","","","", -"ErikAraojo.FintX","namigop","should","manual","","","","","","","", -"erikbra.grate","erikbra","should","manual","","","","","","","", -"Ferdium.Ferdium","Alphrag","should","auto","","","","","","","", -"Ferdium.Ferdium.Nightly","Alphrag","should","auto","","","","","","","", -"File-New-Project.EarTrumpet","riverar","must","manual","","","","","","","", -"Fort.Firewall","","","","","","Emi-Emi-Emi","139421","","","", -"FOSSA.FOSSA-cli","","","","Validation-Executable-Error","","","","","","", -"FreeDV.FreeDV","","","","","fancybody","","","","","", -"G0rocks.Cab","G0rocks","should","manual","","","0","","0","0","", -"GalvanizeInc.GalvanizeCirrus","andrewsingley-glv","should","auto","","","","","","","", -"Genivia.ugrep","genivia-inc","should","manual","Validation-Executable-Error","","0","","0","0","", -"Genivia.ugrep","genivia-inc","should","auto","Validation-Executable-Error","","","","","","", -"GiulioSorrentino.astroni","numerunix","should","auto","Validation-No-Executables","","","","","","", -"GiulioSorrentino.Backgrounds","numerunix","should","auto","Validation-No-Executables","","","","","","", -"GiulioSorrentino.BackgroundsOtto","numerunix","should","auto","Validation-No-Executables","","","","","","", -"GiulioSorrentino.CBriscola.WPF","numerunix","should","auto","","","","","","","", -"GiulioSorrentino.numeronesfortuneinavalonia ","numerunix","should","auto","Validation-No-Executables","","","","","","", -"GiulioSorrentino.WinDateFrom","numerunix","should","auto","","","","","","","", -"GiulioSorrentino.wxBriscola","numerunix","should","manual","Waived-Validation-Executable-Error","","0","","0","0","", -"GNU.Nano","","","","Validation-Executable-Error","","","","","","", -"goplus.gop","cpunion","should","auto","Validation-Executable-Error","","","","","","", -"goreleaser.goreleaser","caarlos0","should","auto","Validation-Executable-Error","","","","","","", -"goreleaser.goreleaser-pro","caarlos0","should","auto","Validation-Executable-Error","","","","","","", -"GorillaDevs.Ferium","","","","Validation-Executable-Error","","","","","","", -"Guilded.Guilded","","","","","Always Fails Due To Spaces In Version.","","","","","", -"Gyan.FFmpeg","","","","","BiosPlus","","","","","", -"h3poteto.whalebird-desktop","itsAdee","should","auto","","","","","","","", -"Hashicorp.Nomad","","","","Validation-Executable-Error","","0","","0","0","", -"haskell.cabal","","","","Validation-Executable-Error","","","","","","", -"HiroshibaKazuyuki.VOICEVOX","","","","Validation-Executable-Error","","","","","","", -"HiroshibaKazuyuki.VOICEVOX.CPU","","","","Validation-Executable-Error","","","","","","", -"hrkfdn.ncspot","","","","Validation-Executable-Error","","0","","0","0","", -"IcoFXSoftware.icofx","Dvd-Znf","should","auto","","","","","","","", -"IDRIX.VeraCrypt","","","","","","0","","0","147744","https://veracrypt.fr/en/VeraCrypt%20License.html","" -"igoogolx.lux","igoogolx","should","auto","","","","","","","", -"Insomnia.Inso","","","","Validation-Executable-Error","","","","","","", -"Intel.FortranCompiler","lars-nvhgroup","should","manual","","","0","","0","140928","https://cdrdv2-public.intel.com/777700/intel-end-user-license-agreement-for-developer-tools-version-april-2023.pdf","" -"Intel.oneMKL","","","","","","0","","0","140741","", -"IPEP.Scantailor-Experimental","plzombie","should","auto","","","","","","","", -"iQIYI.iQIYI","kingcean","should","auto","","","","","","","", -"Istio.Istio","ateoi","should","manual","","","","","","","", -"Jackett.Jackett","ilike2burnthing","should","auto","","","","","","","", -"JAMSoftware.JAMSoftware.UltraSearch","JAMSoftwareAutomatedTasks","should","auto","","Daniel-Tr","","","","","", -"JAMSoftware.TreeSize","JAMSoftwareAutomatedTasks","should","auto","","Daniel-Tr","","","","","", -"JanDeDobbeleer.OhMyPosh","JanDeDobbeleer","must","manual","","","","","","","", -"Japplis.AntCommander.Personal","japplis","should","manual","","","","","","","", -"Japplis.AntCommander.Pro","japplis","should","manual","","","","","","","", -"Japplis.ClipboardHistory","japplis","should","manual","","","","","","","", -"Japplis.ClipboardHistory.Pro","japplis","should","manual","","","","","","","", -"Japplis.ControlDashboard","japplis","should","manual","","","","","","","", -"Japplis.ControlDashboard.Pro","japplis","should","manual","","","","","","","", -"Japplis.Decoration","japplis","should","manual","","","","","","","", -"Japplis.DesktopWatchmaker","japplis","should","manual","","","","","","","", -"Japplis.Dictaphone","japplis","should","manual","","","","","","","", -"Japplis.Discotheek","japplis","should","manual","","","","","","","", -"Japplis.M2RepoCleaner","japplis","should","manual","","","","","","","", -"Japplis.Pastel","japplis","should","manual","","","","","","","", -"Japplis.PosterFont","japplis","should","manual","","","","","","","", -"Japplis.PosterFont.Light","japplis","should","manual","","","","","","","", -"Japplis.PostOnScreen.Pro","japplis","should","manual","","","","","","","", -"Japplis.ScreenHighlighter","japplis","should","manual","","","","","","","", -"Japplis.SheetStats","japplis","should","manual","","","","","","","", -"Japplis.SheetViewer","japplis","should","manual","","","","","","","", -"Japplis.Toolbox","japplis","should","manual","","","","","","","", -"Japplis.Toolbox.Pro","japplis","should","manual","","","","","","","", -"Japplis.TreeDataExplorer","japplis","should","manual","","","","","","","", -"Japplis.Watch","japplis","should","manual","","","","","","","", -"Japplis.Watch.Pro","japplis","should","manual","","","","","","","", -"Japplis.WebsiteOptimizer","japplis","should","manual","","","","","","","", -"JesseDuffield.Lazydocker","","","","Validation-Executable-Error","","","","","","", -"JetBrains.*","","","","","SpecterShell","","","","","", -"JRSoftware.InnoSetup","martijnlaan","should","manual","","","","","","","", -"junegunn.fzf","junegunn","should","auto","","","","","","","", -"kairoaraujo.tufie","kairoaraujo","should","auto","","","","","","","", -"Keboola.KeboolaCLI","KeboolaAsCodeBot","should","auto","","","","","","","", -"kevinboss.port","kevinboss","should","manual","","","","","","","", -"KhronosGroup.VulkanSDK","","","","","","0","","0","139478","", -"Kingsoft.KingsoftPDF","","","","","","0","","0","139290","", -"kramo.Cartridges","","","","","kbdharun","","","","","", -"krishisrani.appel","krishisrani61","should","auto","","","","","","","", -"Kubernetes.kwok","","","","Validation-Executable-Error","","0","","0","0","", -"Lenovo.SystemUpdate","philjorgensen","should","auto","","","","","","","", -"Libretro.RetroArch","fpscan","should","auto","","","","","","","", -"lin-ycv.EverythingPowerToys","lin-ycv","should","auto","","","","","","","", -"LinwoodCloud.Butterfly","","","","Validation-Executable-Error","","","","","","", -"LizardByte.Sunshine","LizardByte-bot","should","auto","","","","","","","", -"LutzRoeder.Netron","lutzroeder","should","auto","","","","","","","", -"lycheeverse.lychee","","","","Validation-Executable-Error","","","","","","", -"mar10.stressor","mar10","should","auto","","","","","","","", -"maximmax42.CustomRP","maximmax42","should","manual","","","","","","","", -"meshmakers.octo-cli","","","","Validation-Executable-Error","","","","","","", -"MichalStrehovsky.bflat","MichalStrehovsky","should","manual","","","0","","0","0","","" -"Microsoft.Accessibility","DaveTryon","must","manual","","","","","","","", -"Microsoft.AccessibilityInsights","DaveTryon","must","manual","","","","","","","", -"Microsoft.Azd","azure-sdk","should","auto","","","","","","","", -"Microsoft.Azure.QuickReview","cmendible","should","auto","","","","","","","", -"Microsoft.AzureCLI","(Microsoft)","should","auto","","","","","","","", -"Microsoft.AzureDataStudio","(Microsoft)/erpett/Charles-Gagnon","must","manual","","","","","","","", -"Microsoft.DevHome","(Microsoft)/cinnamon-msft","should","auto","","","","","","","", -"Microsoft.devtunnel","","","","Validation-Executable-Error","","","","","","", -"Microsoft.DotNet","(Microsoft)/mthalman/dotnet-winget-bot","must","manual","","","","","","","", -"Microsoft.Git","(Microsoft)","should","auto","","","","","","","", -"Microsoft.PIX","sfreed141","should","manual","","","0","","0","146955","https://aka.ms/pix-eula-april2024","" -"Microsoft.PowerAutomateDesktop","","","","","","0","","0","139648","", -"Microsoft.PowerBI.DesktopReportServer","","","","","","0","","0","139341","", -"Microsoft.PowerShell","(Microsoft)/anamnavi","must","manual","","","","","","","", -"Microsoft.PowerShell.Previdew","(Microsoft)/anamnavi","must","manual","","","","","","","", -"Microsoft.PowerToys","(Microsoft)/crutkas/consvc","must","manual","","","","","","","", -"Microsoft.Sqlcmd","(Microsoft)","should","auto","","","","","","","", -"Microsoft.SQLServer.2012.NativeClient","","","","","","0","","0","139454","", -"Microsoft.SQLServer.2019.Developer","","","","","","0","","0","139457","", -"Microsoft.SQLServer.2019.Express","","","","","","0","","0","139456","", -"Microsoft.SQLServerManagementStudio","(Microsoft)","must","manual","","","","","","","", -"Microsoft.VisualStudio","(Microsoft)/edwardskrod","must","manual","","","","","","","", -"Microsoft.VisualStudioCode","(Microsoft)/lszomoru","must","manual","","","","","","","", -"Microsoft.VisualStudioCode.CLI","(Microsoft)/lszomoru","must","manual","","","","","","","", -"Microsoft.VisualStudioCode.Insiders","(Microsoft)/lszomoru","must","manual","","","","","","","", -"Microsoft.VisualStudioCode.Insiders.CLI","(Microsoft)/lszomoru","must","manual","","","","","","","", -"Microsoft.WindowsTerminal","(Microsoft)/consvc/DHowett","must","manual","","","","","","","", -"Momento.cli","momento-github-actions-machine-user","should","auto","","","","","","","", -"Mozilla.Firefox","","","","","krystofkrticka","","","","","", -"mpv.net","","","","Validation-Installation-Error","","","","","","", -"nektos.act","nektos-ci","should","auto","","","","","","","", -"NelsonNumericalSoftware.Nelson","Nelson-numerical-software","should","auto","","","","","","","", -"Neovim.Neovim.Nightly","nvim-winget","should","auto","","","","","","","", -"Nervatura.Nervatura","nervatura","should","auto","","","","","","","", -"NewTek.NDI5Runtime","","","","Validation-No-Executables","","0","","0","0","", -"nginxinc.nginx-prometheus-exporter","nginx-bot","should","auto","","","","","","","", -"NhekoReborn.Nheko","","","","","","0","","0","139455","", -"NI.ni-daqmx","lars-nvhgroup","should","manual","","","0","","0","140243","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf", -"NI.ni-packagemanager","lars-nvhgroup","should","manual","","","0","","0","139458","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf", -"NI.ni-pxiplatformservices","lars-nvhgroup","should","manual","","","0","","0","140233","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf", -"NI.ni-serial","lars-nvhgroup","should","manual","","","0","","0","140987","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf", -"NI.ni-systemconfiguration","lars-nvhgroup","should","manual","","","0","","0","140989","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf","" -"NI.ni-visa","lars-nvhgroup","should","manual","","","0","","0","140984","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf","" -"NI.ni-xnet","lars-nvhgroup","should","manual","","","0","","0","140241","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf", -"NickeManarin.ScreenToGif","","","","","Trenly","","","","","", -"nkdAgility.AzureDevOpsMigrationTools","MrHinsh","should","auto","","","","","","","", -"nkdAgility.AzureDevOpsMigrationTools.Preview","MrHinsh","should","auto","","","","","","","", -"nomic.gpt4all","","","","","","0","","0","139459","", -"NoMoreFood.PuTTY-CAC","NoMoreFood","should","auto","","","","","","","", -"NumeRe.NumeRe","numeredev","should","auto","","","","","","","", -"octobuild.octobuild","slonopotamus","should","auto","","","","","","","", -"OleksisFraga.PythonLauncher","oleksis","should","auto","","","","","","","", -"OpenTofu.Tofu","","","","Validation-Executable-Error","","","","","","", -"pedrojreis.scrumchrono","pedrojreis","should","manual","","","0","","0","0","", -"Peppy.Osu!","","","","Validation-No-Executables","","","","","","", -"Phoner.PhonerLite","PhonerLite","should","auto","","","","","","","", -"Pikcube.OrangeJuiceModMaker","Pikcube","should","auto","","","","","","","", -"pit-ray.win-vind","pit-ray","should","auto","","","","","","","", -"pizzaboxer.Bloxstrap","pizzaboxer","should","auto","","","","","","","", -"pnpm.pnpm","zkochan","should","manual","","","","","","","", -"prefix-dev.pixi","ruben-arts","should","manual","Validation-Executable-Error","","","","","","", -"Princessmortix.Cobalt","princessmortix","should","manual","","","","","","","", -"PRQL.prqlc","","","","Validation-Executable-Error","","","","","","", -"Pulumi.Pulumi","pulumi-bot","should","manual","","","","","","","", -"Pylogmon.pot","Pylogmon","should","manual","","","","","","","", -"qarmin.czkawka.cli","","","","Validation-Executable-Error","","","","","","", -"rink-turksma.IntunePrepTool","rink-turksma","should","manual","","","","","","","", -"robinovitch61.wander","robinovitch61","should","auto","","","","","","","", -"Rohde&Schwarz.SDC.IETDViewPublish","RohdeSchwarz-SDC","should","auto","","","","","","","", -"Rowley.CrossWorks","","","","","","0","","0","139477","", -"rsteube.Carapace","rsteube-bot","should","auto","","","","","","","", -"Ruben2776.PicView","Ruben2776","should","auto","","","","","","","", -"RussellBanks.Komac","russellbanks","must","manual","Policy-Test-1.8","","","","","","", -"RussellBanks.Komac.Nightly","russellbanks","must","manual","Policy-Test-1.8","","","","","","", -"Rustlang.Rust","Rust-Winget-Bot","should","auto","","","","","","","", -"Rustlang.Rust.GNU","Rust-Winget-Bot","should","auto","","","","","","","", -"Rustlang.Rust.MSVC","Rust-Winget-Bot","should","auto","","","","","","","", -"ryanbekhen.nanoproxy","ryanbekhen","should","manual","","","","","","","", -"Rye.Rye","","","","Validation-Unattended-Failed","","","","","","", -"Ryujinx.Ryujinx","Exorcism0666","should","auto","Validation-Executable-Error","","","","","","", -"Ryujinx.Ryujinx.Ava","Exorcism0666","should","auto","Validation-Executable-Error","","","","","","", -"SatDump.SatDump","","","","Validation-Executable-Error","","","","","","", -"Schlaubi.Tonbrett","DRSchlaubi/tonbrett-ci","should","manual","","","","","","","", -"Schuischta.SystemLoadTracker","Schuischta","should","auto","","","0","","0","0","", -"Segger.EmbeddedStudioARM","","","","","","0","","0","139476","", -"Sentry.sentry-cli","","","","Validation-Executable-Error","","","","","","", -"sirredbeard.wslinternals","sirredbeard","should","auto","","","","","","","", -"SKDataAS.ORMCore","skdataas","should","auto","","","","","","","", -"Slonopotamus.Stevedore","slonopotamus","should","auto","","","","","","","", -"Splunk.UniversalForwarder","","","","","","0","","0","139475","", -"stacklok.frizbee","stacklok/stacklokbot","should","auto","","","","","","","", -"stacklok.minder","stacklok/stacklokbot","should","auto","","","","","","","", -"StandardNotes.StandardNotes","russellbanks","must","manual","","","","","","","", -"StefHeyenrath.GitHubReleaseNotes","StefH","should","manual","","","","","","","", -"swri.EverythingToolbar","stnkl","should","auto","","","","","","","", -"SylvainRougeaux.Metatogger","","","","Validation-Shell-Execute","","","","","","", -"t1m0thyj.WinDynamicDesktop","t1m0thyj","must","manual","","","","","","","", -"Tableau.Desktop","","","","","","0","","0","139479","", -"Tableau.PrepBuilder","","","","","","0","","0","139481","", -"Tableau.Public","","","","","","0","","0","139474","", -"Tableau.Reader","","","","","","0","","0","139471","", -"taers232c.GAMADV-XTD3","Exorcism0666","should","manual","","","","","","","", -"tangshimin.MuJing","","","","Validation-Executable-Error","","","","","","", -"Taozuhong.Kangaroo","taozuhong","should","manual","","","","","","","", -"Tauri.create-tauri-app","SpecterShell","should","manual","","","","","","","", -"TechPowerUp.GPU-Z","","","","","","0","","0","0","","Don't process removals. Host only allows package manager user agents to download." -"Tonec.InternetDownloadManager","","","","","","0","","0","0","","Adds patch versions as duplicates of the latest build version. https://github.com/microsoft/winget-pkgs/issues/128340" -"Telegram.TelegramDesktop","","","","","MaanuelMM","","","","","", -"Tencent.Foxmail","","","","Validation-Domain","","0","","0","0","","" -"Tgstation.Server","Cyberboss","should","manual","","","","","","","", -"th-ch.YouTubeMusic","youtube-music-winget","should","manual","","","0","","0","0","", -"ThaUnknown.Miru","ThaUnknown","should","manual","","","","","","","", -"the-sz.Auburn","the-sz","should","manual","","","","","","","", -"the-sz.Banks","the-sz","should","manual","","","","","","","", -"the-sz.Bear","the-sz","should","manual","","","","","","","", -"the-sz.Carroll","the-sz","should","manual","","","","","","","", -"the-sz.Conroe","the-sz","should","manual","","","","","","","", -"the-sz.Doro","the-sz","should","manual","","","","","","","", -"the-sz.FlashBuilder","the-sz","should","manual","","","","","","","", -"the-sz.Homedale","the-sz","should","manual","","","0","","0","0","", -"the-sz.Howard","the-sz","should","manual","","","","","","","", -"the-sz.Lacey","the-sz","should","manual","","","","","","","", -"the-sz.Newfield","the-sz","should","manual","","","","","","","", -"the-sz.Rimhill","the-sz","should","manual","","","","","","","", -"the-sz.Seaside","the-sz","should","manual","","","","","","","", -"the-sz.SkypeFocusFix","the-sz","should","manual","","","","","","","", -"the-sz.Spencer","the-sz","should","manual","","","","","","","", -"the-sz.Trion","the-sz","should","manual","","","","","","","", -"the-sz.Yale","the-sz","should","manual","","","","","","","", -"the-sz.York","the-sz","should","manual","","","","","","","", -"thebookisclosed.ViVeTool","thebookisclosed","must","manual","","","","","","","", -"therealpaulgg.ssh-sync","therealpaulgg","should","manual","","","0","","0","0","", -"tinygo-org.tinygo","","","","Validation-Executable-Error","","","","","","", -"Toit.Jaguar","LeonGungadinMogensen","should","auto","","","","","","","", -"TopalaSoftwareSolutions.SIW","gtopala","should","manual","","","","","","","", -"TortoiseSVN.TortoiseSVN","","","","","PckgrBot","","","","","", -"trzsz.tssh","","","","Validation-Executable-Error","","","","","","", -"twpayne.chezmoi","twpayne","should","manual","","","","","","","", -"Typst.Typst","michidk","should","manual","Validation-Executable-Error","","0","","0","0","", -"vedantmgoyal.sheltasks-cli","vedantmgoyal2009","must","manual","","","","","","","", -"veeam.veeam-agent","","","","","","0","","0","139659","", -"vim.vim","chrisbra","should","manual","","","","","","","", -"vim.vim.nightly","chrisbra","should","manual","Validation-Installation-Error","","","","","","", -"VMware.WorkstationPlayer","","","","","","0","","0","143919","https://docs.vmware.com/en/VMware-Workstation-Player/17.5/rn/vmware-workstation-175-player-release-notes/index.html","" -"VMware.WorkstationPro","","","","","","0","","0","139464","", -"Wasmer.Wasmer","","","","Validation-Executable-Error","","0","","0","0","","" -"WerWolv.ImHex","WerWolv","should","manual","","","","","","","", -"wez.wezterm","wez","should","manual","","","","","","","", -"WHONET.2023","drshtmstry","should","manual","","","","","","","", -"WHTA.Tamara","lars-nvhgroup","must","manual","","","0","","0","139830","", -"Wilfred.difftastic","","","","Validation-Executable-Error","","","","","","", -"xavidop.cxcli","xavidop","should","manual","Validation-Installation-Error","","","","","","", -"XmacsLabs.Mogan","","","","","","0","","0","139462","", -"yetone.OpenAITranslator","yetone","should","manual","","","","","","","", -"Zoom.ZoomRooms","","","","","","0","","0","139461","", +"PackageIdentifier","gitHubUserName","authStrictness","authUpdateType","autoWaiverLabel","versionParamOverrideUserName","versionParamOverridePR","code200OverrideUserName","code200OverridePR","AgreementOverridePR","AgreementUrl","reviewText" +"2BrightSparks.SyncBackFree","2BrightSparks","should","auto","","","","","","","", +"2BrightSparks.SyncBackPro","2BrightSparks","should","auto","","","","","","","", +"2BrightSparks.SyncBackSE","2BrightSparks","should","auto","","","","","","","", +"AdGuard.dnsproxy","","","","Validation-Executable-Error","","","","","","", +"aiko-chan-ai.DiscordBotClient","aiko-chan-ai","should","auto","","","","","","","", +"AlexanderPro.SmartSystemMenu","AlexanderPro","should","manual","","","","","","","", +"amrdeveloper.gitql","AmrDeveloper","should","manual","","","","","","","", +"Anki.Anki","","","","","fabio-muramatsu","","","","","", +"AntoineAflalo.SoundSwitch","","","","","Belphemur","","","","","", +"ApeCloud.kbcli","apecloud-bot","should","manual","","","","","","","", +"aquaproj.aqua","suzuki-shunsuke","should","auto","","","","","","","", +"ART.ART","","","","Policy-Test-2.3","","","","","","", +"Articulate.Articulate360","Articulate","must","manual","","","","","","","", +"Aserto.DSLoad","","","","Validation-Executable-Error","","","","","","", +"Aserto.Topaz","gertd","must","manual","","","0","","0","0","", +"ast-grep.ast-grep","","","","Validation-Executable-Error","","","","","","", +"Astronomer.Astro","kushalmalani/neel-astro","should","manual","","","","","","","", +"BakkesMod.BakkesMod","BakkesMod","must","manual","","","","","","","", +"beeradmoore.dlss-swapper","beeradmoore","should","manual","","","","","","","", +"blacktop.ipsw","blacktop","should","auto","","","","","","","", +"blacktop.ipswd","blacktop","should","auto","","","","","","","", +"BlenderFoundation.Blender.LTS","EGuillemot","should","auto","","","","","","","", +"bloznelis.typioca","bloznelis","should","auto","","","","","","","", +"BlueBubbles.BlueBubbles","","","","Validation-Installation-Error","","","","","","", +"BrettMayson.HEMTT","","","","Validation-Executable-Error","","","","","","", +"Brows.App","kyourek","should","manual","","","","","","","", +"c3er.mdview","c3er","should","manual","","","","","","","", +"Chocolatey.Chocolatey","pauby/gep13/choco-bot","must","manual","","","","","","","", +"chrisant996.Clink","chrisant996","should","manual","","","","","","","", +"ClassWidgets.ClassWidgets","","must","manual","","","","","","","", +"Coder.Coder","cdrci","should","manual","","","","","","","", +"CodingWondersSoftware.DISMTools.Stable","CodingWonders","should","auto","","","","","","","", +"Coloryr.ColorMC","Coloryr","should","manual","","","","","","","", +"craftablescience.VPKEdit","craftablescience","should","manual","","","","","","","", +"creativeprojects.resticprofile","","","","Validation-Executable-Error","","0","","0","0","", +"DanielMcGuireCorporation.MathBotCLI","DanielLMcGuire","should","manual","","","","","","","", +"DanielMcGuireCorporation.SimpleBrowser","DanielLMcGuire","should","manual","","","","","","","", +"Dapr.CLI","dapr-bot","should","manual","","","","","","","", +"Datadog.Agent","robot-github-winget-datadog-agent","should","auto","","","0","","0","0","", +"Devolutions.Launcher","devolutionsbot","should","manual","","","","","","","", +"Devolutions.RemoteDesktopManagerAgent","devolutionsbot","should","manual","","","","","","","", +"DoltHub.Dolt","coffeegoddd","should","manual","","","","","","","", +"Doppler.doppler","doppler-bot","should","manual","","","","","","","", +"ducaale.xh","ducaale","should","manual","Validation-Executable-Error","","","","","","", +"DuckStudio.ChineseGit","DuckDuckStudio/Luna-Grace/fjwxzde","must","","","","","","","","", +"DuckStudio.FufuDevTools","DuckDuckStudio/Luna-Grace/fjwxzde","must","","","","","","","","", +"DuckStudio.FufuTools","DuckDuckStudio/Luna-Grace/fjwxzde","must","","","","","","","","", +"DuckStudio.GitHubLabelsManager","DuckDuckStudio","must","","","","","","","","", +"DuckStudio.GitHubView","DuckDuckStudio","must","","","","","","","","", +"DuckStudio.GitHubView.Nightly","DuckDuckStudio","must","","","","","","","","", +"DuckStudio.Sundry","DuckDuckStudio","must","","","","","","","","", +"dundee.gdu","dundee","should","manual","","","0","","0","0","", +"dustinblackman.oatmeal","dustinblackman","should","manual","","","","","","","", +"DVSTSEOOD.QOps","qops-hub","should","manual","Validation-No-Executables","","","","","","", +"EFIBootEditor.EFIBootEditor","EFIBootEditorBot","should","auto","","","","","","","", +"EliWeitzman.ETT","eliweitzman","should","auto","","","","","","","", +"Emurasoft.EmEditor","yutakaemura","should","auto","","","","","","","", +"ErikAraojo.FintX","namigop","should","manual","","","","","","","", +"erikbra.grate","erikbra","should","manual","","","","","","","", +"Ferdium.Ferdium","Alphrag","should","auto","","","","","","","", +"Ferdium.Ferdium.Nightly","Alphrag","should","auto","","","","","","","", +"File-New-Project.EarTrumpet","riverar","must","manual","","","","","","","", +"FilesCommunity.Files","yair100/Josh65-2201","must","manual","","","","","","","", +"Fort.Firewall","","","","","","Emi-Emi-Emi","139421","","","", +"FOSSA.FOSSA-cli","","","","Validation-Executable-Error","","","","","","", +"FreeDV.FreeDV","","","","","fancybody","","","","","", +"G0rocks.Cab","G0rocks","should","manual","","","0","","0","0","", +"GalvanizeInc.GalvanizeCirrus","andrewsingley-glv","should","auto","","","","","","","", +"Genivia.ugrep","genivia-inc","should","auto","Validation-Executable-Error","","","","","","", +"Genivia.ugrep","genivia-inc","should","manual","Validation-Executable-Error","","0","","0","0","", +"GiulioSorrentino.astroni","numerunix","should","auto","Validation-No-Executables","","","","","","", +"GiulioSorrentino.Backgrounds","numerunix","should","auto","Validation-No-Executables","","","","","","", +"GiulioSorrentino.BackgroundsOtto","numerunix","should","auto","Validation-No-Executables","","","","","","", +"GiulioSorrentino.CBriscola.WPF","numerunix","should","auto","","","","","","","", +"GiulioSorrentino.numeronesfortuneinavalonia ","numerunix","should","auto","Validation-No-Executables","","","","","","", +"GiulioSorrentino.WinDateFrom","numerunix","should","auto","","","","","","","", +"GiulioSorrentino.wxBriscola","numerunix","should","manual","Waived-Validation-Executable-Error","","0","","0","0","", +"GNU.Nano","","","","Validation-Executable-Error","","","","","","", +"goplus.gop","cpunion","should","auto","Validation-Executable-Error","","","","","","", +"goreleaser.goreleaser","caarlos0","should","auto","Validation-Executable-Error","","","","","","", +"goreleaser.goreleaser-pro","caarlos0","should","auto","Validation-Executable-Error","","","","","","", +"GorillaDevs.Ferium","","","","Validation-Executable-Error","","","","","","", +"Guilded.Guilded","","","","","Always Fails Due To Spaces In Version.","","","","","", +"Gyan.FFmpeg","","","","","BiosPlus","","","","","", +"h3poteto.whalebird-desktop","itsAdee","should","auto","","","","","","","", +"Hashicorp.Nomad","","","","Validation-Executable-Error","","0","","0","0","", +"haskell.cabal","","","","Validation-Executable-Error","","","","","","", +"HiroshibaKazuyuki.VOICEVOX","","","","Validation-Executable-Error","","","","","","", +"HiroshibaKazuyuki.VOICEVOX.CPU","","","","Validation-Executable-Error","","","","","","", +"hrkfdn.ncspot","","","","Validation-Executable-Error","","0","","0","0","", +"IcoFXSoftware.icofx","Dvd-Znf","should","auto","","","","","","","", +"IDMComputerSolutionsInc.UltraEdit","jpickle-idera/jmoerdyk","must","manual","","","","","","","", +"IDRIX.VeraCrypt","","","","","","0","","0","147744","https://veracrypt.fr/en/VeraCrypt%20License.html","" +"igoogolx.lux","igoogolx","should","auto","","","","","","","", +"Insomnia.Inso","","","","Validation-Executable-Error","","","","","","", +"Intel.FortranCompiler","lars-nvhgroup","should","manual","","","0","","0","140928","https://www.intel.com/content/www/us/en/content-details/777700/","" +"Intel.oneMKL","","","","","","0","","0","140741","", +"IPEP.Scantailor-Experimental","plzombie","should","auto","","","","","","","", +"iQIYI.iQIYI","kingcean","should","auto","","","","","","","", +"Istio.Istio","ateoi","should","manual","","","","","","","", +"Jackett.Jackett","ilike2burnthing","should","auto","","","","","","","", +"JAMSoftware.JAMSoftware.UltraSearch","JAMSoftwareAutomatedTasks","should","auto","","Daniel-Tr","","","","","", +"JAMSoftware.TreeSize","JAMSoftwareAutomatedTasks","should","auto","","Daniel-Tr","","","","","", +"JanDeDobbeleer.OhMyPosh","JanDeDobbeleer","must","manual","","","","","","","", +"Japplis.AntCommander.Personal","japplis","should","manual","","","","","","","", +"Japplis.AntCommander.Pro","japplis","should","manual","","","","","","","", +"Japplis.ClipboardHistory","japplis","should","manual","","","","","","","", +"Japplis.ClipboardHistory.Pro","japplis","should","manual","","","","","","","", +"Japplis.ControlDashboard","japplis","should","manual","","","","","","","", +"Japplis.ControlDashboard.Pro","japplis","should","manual","","","","","","","", +"Japplis.Decoration","japplis","should","manual","","","","","","","", +"Japplis.DesktopWatchmaker","japplis","should","manual","","","","","","","", +"Japplis.Dictaphone","japplis","should","manual","","","","","","","", +"Japplis.Discotheek","japplis","should","manual","","","","","","","", +"Japplis.M2RepoCleaner","japplis","should","manual","","","","","","","", +"Japplis.Pastel","japplis","should","manual","","","","","","","", +"Japplis.PosterFont","japplis","should","manual","","","","","","","", +"Japplis.PosterFont.Light","japplis","should","manual","","","","","","","", +"Japplis.PostOnScreen.Pro","japplis","should","manual","","","","","","","", +"Japplis.ScreenHighlighter","japplis","should","manual","","","","","","","", +"Japplis.SheetStats","japplis","should","manual","","","","","","","", +"Japplis.SheetViewer","japplis","should","manual","","","","","","","", +"Japplis.Toolbox","japplis","should","manual","","","","","","","", +"Japplis.Toolbox.Pro","japplis","should","manual","","","","","","","", +"Japplis.TreeDataExplorer","japplis","should","manual","","","","","","","", +"Japplis.Watch","japplis","should","manual","","","","","","","", +"Japplis.Watch.Pro","japplis","should","manual","","","","","","","", +"Japplis.WebsiteOptimizer","japplis","should","manual","","","","","","","", +"JesseDuffield.Lazydocker","","","","Validation-Executable-Error","","","","","","", +"JetBrains.*","","","","","SpecterShell","","","","","", +"JRSoftware.InnoSetup","martijnlaan/jordanrussell","must","manual","","","","","","","", +"JRSoftware.InnoSetup.7","martijnlaan/jordanrussell","must","manual","","","","","","","", +"junegunn.fzf","junegunn","should","auto","","","","","","","", +"kairoaraujo.tufie","kairoaraujo","should","auto","","","","","","","", +"Keboola.KeboolaCLI","KeboolaAsCodeBot","should","auto","","","","","","","", +"kevinboss.port","kevinboss","should","manual","","","","","","","", +"KhronosGroup.VulkanSDK","","","","","","0","","0","139478","", +"Kingsoft.KingsoftPDF","","","","","","0","","0","139290","", +"kramo.Cartridges","","","","","kbdharun","","","","","", +"krishisrani.appel","krishisrani61","should","auto","","","","","","","", +"Kubernetes.kwok","","","","Validation-Executable-Error","","0","","0","0","", +"Lenovo.SystemUpdate","philjorgensen","should","auto","","","","","","","", +"Libretro.RetroArch","fpscan","should","auto","","","","","","","", +"lin-ycv.EverythingPowerToys","lin-ycv","should","auto","","","","","","","", +"LinwoodCloud.Butterfly","","","","Validation-Executable-Error","","","","","","", +"LizardByte.Sunshine","LizardByte-bot","should","auto","","","","","","","", +"LutzRoeder.Netron","lutzroeder","should","auto","","","","","","","", +"lycheeverse.lychee","","","","Validation-Executable-Error","","","","","","", +"mar10.stressor","mar10","should","auto","","","","","","","", +"maximmax42.CustomRP","maximmax42","should","manual","","","","","","","", +"meshmakers.octo-cli","","","","Validation-Executable-Error","","","","","","", +"MichalStrehovsky.bflat","MichalStrehovsky","should","manual","","","0","","0","0","","" +"Microsoft.Accessibility","DaveTryon","must","manual","","","","","","","", +"Microsoft.AccessibilityInsights","DaveTryon","must","manual","","","","","","","", +"Microsoft.Azd","azure-sdk","should","auto","","","","","","","", +"Microsoft.Azure.QuickReview","cmendible","should","auto","","","","","","","", +"Microsoft.AzureCLI","(Microsoft)","should","auto","","","","","","","", +"Microsoft.AzureDataStudio","(Microsoft)/erpett/Charles-Gagnon","must","manual","","","","","","","", +"Microsoft.DevHome","(Microsoft)/cinnamon-msft","should","auto","","","","","","","", +"Microsoft.devtunnel","","","","Validation-Executable-Error","","","","","","", +"Microsoft.DotNet.*,"(Microsoft)/mthalman/dotnet-winget-bot","must","manual","","","","","","","", +"Microsoft.Git","(Microsoft)","should","auto","","","","","","","", +"Microsoft.PIX","sfreed141","should","manual","","","0","","0","146955","https://aka.ms/pix-eula-april2024","" +"Microsoft.PowerAutomateDesktop","","","","","","0","","0","139648","", +"Microsoft.PowerBI.DesktopReportServer","","","","","","0","","0","139341","", +"Microsoft.PowerShell","(Microsoft)/anamnavi","must","manual","","","","","","","", +"Microsoft.PowerShell.Preview","(Microsoft)/anamnavi","must","manual","","","","","","","", +"Microsoft.PowerToys","(Microsoft)/crutkas/consvc/yeelam-gordon","must","manual","","","","","","","", +"Microsoft.Sqlcmd","(Microsoft)","should","auto","","","","","","","", +"Microsoft.SQLServer.2012.NativeClient","","","","","","0","","0","139454","", +"Microsoft.SQLServer.2019.Developer","","","","","","0","","0","139457","", +"Microsoft.SQLServer.2019.Express","","","","","","0","","0","139456","", +"Microsoft.SQLServerManagementStudio","(Microsoft)","must","manual","","","","","","","", +"Microsoft.VisualStudio","(Microsoft)/edwardskrod","must","manual","","","","","","","", +"Microsoft.VisualStudioCode","(Microsoft)/lszomoru","must","manual","","","","","","","", +"Microsoft.VisualStudioCode.CLI","(Microsoft)/lszomoru","must","manual","","","","","","","", +"Microsoft.VisualStudioCode.Insiders","(Microsoft)/lszomoru","must","manual","","","","","","","", +"Microsoft.VisualStudioCode.Insiders.CLI","(Microsoft)/lszomoru","must","manual","","","","","","","", +"Microsoft.WindowsTerminal","(Microsoft)/consvc/DHowett","must","manual","","","","","","","", +"Momento.cli","momento-github-actions-machine-user","should","auto","","","","","","","", +"Mozilla.Firefox","","","","","krystofkrticka","","","","","", +"mpv.net","","","","Validation-Installation-Error","","","","","","", +"nektos.act","nektos-ci","should","auto","","","","","","","", +"NelsonNumericalSoftware.Nelson","Nelson-numerical-software","should","auto","","","","","","","", +"Neovim.Neovim.Nightly","nvim-winget","should","auto","","","","","","","", +"Nervatura.Nervatura","nervatura","should","auto","","","","","","","", +"NewTek.NDI5Runtime","","","","Validation-No-Executables","","0","","0","0","", +"nginxinc.nginx-prometheus-exporter","nginx-bot","should","auto","","","","","","","", +"NhekoReborn.Nheko","","","","","","0","","0","139455","", +"NI.ni-daqmx","lars-nvhgroup","should","manual","","","0","","0","140243","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf", +"NI.ni-packagemanager","lars-nvhgroup","should","manual","","","0","","0","139458","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf", +"NI.ni-pxiplatformservices","lars-nvhgroup","should","manual","","","0","","0","140233","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf", +"NI.ni-serial","lars-nvhgroup","should","manual","","","0","","0","140987","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf", +"NI.ni-systemconfiguration","lars-nvhgroup","should","manual","","","0","","0","140989","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf","" +"NI.ni-visa","lars-nvhgroup","should","manual","","","0","","0","140984","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf","" +"NI.ni-xnet","lars-nvhgroup","should","manual","","","0","","0","140241","https://www.ni.com/content/dam/web/pdfs/legal/software_license_agreement_en.pdf", +"NickeManarin.ScreenToGif","","","","","Trenly","","","","","", +"nkdAgility.AzureDevOpsMigrationTools","MrHinsh","should","auto","","","","","","","", +"nkdAgility.AzureDevOpsMigrationTools.Preview","MrHinsh","should","auto","","","","","","","", +"nomic.gpt4all","","","","","","0","","0","139459","", +"NoMoreFood.PuTTY-CAC","NoMoreFood","should","auto","","","","","","","", +"NumeRe.NumeRe","numeredev","should","auto","","","","","","","", +"octobuild.octobuild","slonopotamus","should","auto","","","","","","","", +"OleksisFraga.PythonLauncher","oleksis","should","auto","","","","","","","", +"OpenTofu.Tofu","","","","Validation-Executable-Error","","","","","","", +"pedrojreis.scrumchrono","pedrojreis","should","manual","","","0","","0","0","", +"Peppy.Osu!","","","","Validation-No-Executables","","","","","","", +"Phoner.PhonerLite","PhonerLite","should","auto","","","","","","","", +"Pikcube.OrangeJuiceModMaker","Pikcube","should","auto","","","","","","","", +"pit-ray.win-vind","pit-ray","should","auto","","","","","","","", +"pizzaboxer.Bloxstrap","pizzaboxer","should","auto","","","","","","","", +"pnpm.pnpm","zkochan","should","manual","","","","","","","", +"prefix-dev.pixi","ruben-arts","should","manual","Validation-Executable-Error","","","","","","", +"Princessmortix.Cobalt","princessmortix","should","manual","","","","","","","", +"PRQL.prqlc","","","","Validation-Executable-Error","","","","","","", +"Pulumi.Pulumi","pulumi-bot","should","manual","","","","","","","", +"Pylogmon.pot","Pylogmon","should","manual","","","","","","","", +"qarmin.czkawka.cli","","","","Validation-Executable-Error","","","","","","", +"rink-turksma.IntunePrepTool","rink-turksma","should","manual","","","","","","","", +"robinovitch61.wander","robinovitch61","should","auto","","","","","","","", +"Rohde&Schwarz.SDC.IETDViewPublish","RohdeSchwarz-SDC","should","auto","","","","","","","", +"Rowley.CrossWorks","","","","","","0","","0","139477","", +"rsteube.Carapace","rsteube-bot","should","auto","","","","","","","", +"Ruben2776.PicView","Ruben2776","should","auto","","","","","","","", +"RussellBanks.Komac","russellbanks","must","manual","Policy-Test-1.8","","","","","","", +"RussellBanks.Komac.Nightly","russellbanks","must","manual","Policy-Test-1.8","","","","","","", +"Rustlang.Rust","Rust-Winget-Bot","should","auto","","","","","","","", +"Rustlang.Rust.GNU","Rust-Winget-Bot","should","auto","","","","","","","", +"Rustlang.Rust.MSVC","Rust-Winget-Bot","should","auto","","","","","","","", +"ryanbekhen.nanoproxy","ryanbekhen","should","manual","","","","","","","", +"Rye.Rye","","","","Validation-Unattended-Failed","","","","","","", +"Ryujinx.Ryujinx","Exorcism0666","should","auto","Validation-Executable-Error","","","","","","", +"Ryujinx.Ryujinx.Ava","Exorcism0666","should","auto","Validation-Executable-Error","","","","","","", +"SatDump.SatDump","","","","Validation-Executable-Error","","","","","","", +"Schlaubi.Tonbrett","DRSchlaubi/tonbrett-ci","should","manual","","","","","","","", +"Schuischta.SystemLoadTracker","Schuischta","should","auto","","","0","","0","0","", +"Segger.EmbeddedStudioARM","","","","","","0","","0","139476","", +"Sentry.sentry-cli","","","","Validation-Executable-Error","","","","","","", +"simple-acme.simple-acme","WouterTinus","must","manual","","","0","","0","0","","" +"sirredbeard.wslinternals","sirredbeard","should","auto","","","","","","","", +"SKDataAS.ORMCore","skdataas","should","auto","","","","","","","", +"Slonopotamus.Stevedore","slonopotamus","should","auto","","","","","","","", +"Splunk.UniversalForwarder","","","","","","0","","0","139475","", +"stacklok.frizbee","stacklok/stacklokbot","should","auto","","","","","","","", +"stacklok.minder","stacklok/stacklokbot","should","auto","","","","","","","", +"StandardNotes.StandardNotes","russellbanks","must","manual","","","","","","","", +"StefHeyenrath.GitHubReleaseNotes","StefH","should","manual","","","","","","","", +"swri.EverythingToolbar","stnkl","should","auto","","","","","","","", +"SylvainRougeaux.Metatogger","","","","Validation-Shell-Execute","","","","","","", +"t1m0thyj.WinDynamicDesktop","t1m0thyj","must","manual","","","","","","","", +"Tableau.Desktop","","","","","","0","","0","139479","", +"Tableau.PrepBuilder","","","","","","0","","0","139481","", +"Tableau.Public","","","","","","0","","0","139474","", +"Tableau.Reader","","","","","","0","","0","139471","", +"taers232c.GAMADV-XTD3","Exorcism0666","should","manual","","","","","","","", +"tangshimin.MuJing","","","","Validation-Executable-Error","","","","","","", +"Taozuhong.Kangaroo","taozuhong","should","manual","","","","","","","", +"Tauri.create-tauri-app","SpecterShell","should","manual","","","","","","","", +"TechPowerUp.GPU-Z","","","","","","0","","0","0","","Don't process removals. Host only allows package manager user agents to download." +"Telegram.TelegramDesktop","","","","","MaanuelMM","","","","","", +"Tencent.Foxmail","","","","Validation-Domain","","0","","0","0","","" +"Tgstation.Server","Cyberboss","should","manual","","","","","","","", +"th-ch.YouTubeMusic","youtube-music-winget","should","manual","","","0","","0","0","", +"ThaUnknown.Miru","ThaUnknown","should","manual","","","","","","","", +"the-sz.Auburn","the-sz","should","manual","","","","","","","", +"the-sz.Banks","the-sz","should","manual","","","","","","","", +"the-sz.Bear","the-sz","should","manual","","","","","","","", +"the-sz.Carroll","the-sz","should","manual","","","","","","","", +"the-sz.Conroe","the-sz","should","manual","","","","","","","", +"the-sz.Doro","the-sz","should","manual","","","","","","","", +"the-sz.FlashBuilder","the-sz","should","manual","","","","","","","", +"the-sz.Homedale","the-sz","should","manual","","","0","","0","0","", +"the-sz.Howard","the-sz","should","manual","","","","","","","", +"the-sz.Lacey","the-sz","should","manual","","","","","","","", +"the-sz.Newfield","the-sz","should","manual","","","","","","","", +"the-sz.Rimhill","the-sz","should","manual","","","","","","","", +"the-sz.Seaside","the-sz","should","manual","","","","","","","", +"the-sz.SkypeFocusFix","the-sz","should","manual","","","","","","","", +"the-sz.Spencer","the-sz","should","manual","","","","","","","", +"the-sz.Trion","the-sz","should","manual","","","","","","","", +"the-sz.Yale","the-sz","should","manual","","","","","","","", +"the-sz.York","the-sz","should","manual","","","","","","","", +"thebookisclosed.ViVeTool","thebookisclosed","must","manual","","","","","","","", +"therealpaulgg.ssh-sync","therealpaulgg","should","manual","","","0","","0","0","", +"tinygo-org.tinygo","","","","Validation-Executable-Error","","","","","","", +"Toit.Jaguar","LeonGungadinMogensen","should","auto","","","","","","","", +"Tonec.InternetDownloadManager","","","","","","0","","0","0","","Adds patch versions as duplicates of the latest build version. https://github.com/microsoft/winget-pkgs/issues/128340" +"TopalaSoftwareSolutions.SIW","gtopala","should","manual","","","","","","","", +"TortoiseSVN.TortoiseSVN","","","","","PckgrBot","","","","","", +"trzsz.tssh","","","","Validation-Executable-Error","","","","","","", +"twpayne.chezmoi","twpayne","should","manual","","","","","","","", +"Typst.Typst","michidk","should","manual","Validation-Executable-Error","","0","","0","0","", +"vedantmgoyal.sheltasks-cli","vedantmgoyal2009","must","manual","","","","","","","", +"veeam.veeam-agent","","","","","","0","","0","139659","", +"vim.vim","chrisbra","should","manual","","","","","","","", +"vim.vim.nightly","chrisbra","should","manual","Validation-Installation-Error","","","","","","", +"VMware.WorkstationPlayer","","","","","","0","","0","143919","https://docs.vmware.com/en/VMware-Workstation-Player/17.5/rn/vmware-workstation-175-player-release-notes/index.html","" +"VMware.WorkstationPro","","","","","","0","","0","139464","", +"Wasmer.Wasmer","","","","Validation-Executable-Error","","0","","0","0","","" +"WerWolv.ImHex","WerWolv","should","manual","","","","","","","", +"wez.wezterm","wez","should","manual","","","","","","","", +"WHONET.2023","drshtmstry","should","manual","","","","","","","", +"WHTA.Tamara","lars-nvhgroup","must","manual","","","0","","0","139830","", +"Wilfred.difftastic","","","","Validation-Executable-Error","","","","","","", +"xavidop.cxcli","xavidop","should","manual","Validation-Installation-Error","","","","","","", +"XmacsLabs.Mogan","","","","","","0","","0","139462","", +"yetone.OpenAITranslator","yetone","should","manual","","","","","","","", +"Zoom.ZoomRooms","","","","","","0","","0","139461","", diff --git a/Tools/ManualValidation/ManualValidationPipeline.json b/Tools/ManualValidation/ManualValidationPipeline.json new file mode 100644 index 0000000000000..6357a2e1a2055 --- /dev/null +++ b/Tools/ManualValidation/ManualValidationPipeline.json @@ -0,0 +1,902 @@ +{ + "Regex": { + "colonPRRegex": "[0-9]{5,6}[:]", + "PRRegex": "[0-9]{5,6}", + "hashPRRegex": "[#][0-9]{5,6}", + "hashPRRegexEnd": "[#][0-9]{5,6}$", + "CleanClipRegex": "[^\\x00-\\x7F]", + }, + "LabelActions": { + "BVE": { + "Label": "Binary-Validation-Error", + "Logset": "29|41|37", + "StringSet": "0", + "MatchOffset": "", + "LengthSet": "" + }, + "IE": { + "Label": "Internal-Error", + "Logset": "47|46|29|15|25|54|56|57|58", + "StringSet": "12|1|9", + "MatchOffset": "", + "LengthSet": "" + }, + "IEPR": { + "Label": "Internal-Error-PR", + "Logset": "36", + "StringSet": "", + "MatchOffset": "", + "LengthSet": "" + }, + "MAFVE": { + "Label": "Manifest-AppsAndFeaturesVersion-Error", + "Logset": "36|29|30|14|42|46|48|34", + "StringSet": "1|2", + "MatchOffset": "", + "LengthSet": "" + }, + "MIVE": { + "Label": "Manifest-Installer-Validation-Error", + "Logset": "37|36|29|42|43|48", + "StringSet": "1|2", + "MatchOffset": "", + "LengthSet": "" + }, + "MVE": { + "Label": "Manifest-Validation-Error", + "Logset": "37", + "StringSet": "11|8|2|10", + "MatchOffset": "", + "LengthSet": "" + }, + "PRE": { + "Label": "PullRequest-Error", + "Logset": "36", + "StringSet": "13", + "MatchOffset": "", + "LengthSet": "0" + }, + "VFUE": { + "Label": "Validation-Forbidden-URL-Error", + "Logset": "29|21|23|53|55", + "StringSet": "9", + "MatchOffset": "", + "LengthSet": "" + }, + "EHM": { + "Label": "Error-Hash-Mismatch", + "Logset": "54", + "StringSet": "0", + "MatchOffset": "", + "LengthSet": "10" + }, + "IEMI": { + "Label": "Internal-Error-Manifest-Installer", + "Logset": "37|36", + "StringSet": "9|0", + "MatchOffset": "1|0", + "LengthSet": "3" + } + }, + "AutowaiverColumns": { + "PackageIdentifier": "PackageIdentifier", + "ManifestValue": "ManifestValue", + "ManifestKey": "ManifestKey", + "RemoveLabel": "RemoveLabel" + }, + "VMOS": { + "Win11": "Win11", + "Win12": "Win12", + "Win10": "Win10" + }, + "SendStatusReplace": { + "Caller1": " (caller: 00007FFA008A5769)", + "Caller2": " (caller: 00007FFA008AA79F)", + "Exception1": "Exception(1)", + "Exception2": "Exception(2)", + "Exception4": "Exception(4)", + "Tid": "tid(f1c)", + "LongFilepath": "C:\\__w\\1\\s\\external\\pkg\\src\\AppInstallerCommonCore\\Downloader.cpp(185)\\WindowsPackageManager.dll!00007FFA008A37C9\\:" + }, + "ADOValidationStatus": { + "Completed": "Completed", + "InProgress": "InProgress", + "Started": "Started", + "Waiting": "Waiting" + }, + "PRRequestPaths": { + "Issues": "issues", + "Pulls": "pulls" + }, + "Index": { + "Last": -1, + "First": 0, + "Second": 1, + "Third": 2, + "Eleventh": 10 + }, + "RerunCheck": { + "MatchCode": 2147467260 + }, + "DataVersion": 121, + "VmModes": { + "Ready": "Ready", + "New": "New", + "Existing": "Existing", + "Unknown": "Unknown" + }, + "Arch": { + "86": "x86", + "64": "x64", + "Arm": "arm", + "A32": "arm32", + "A64": "arm64", + "Neutral": "neutral" + }, + "DiffData": { + "Left": "Left", + "LeftSide": "<=", + "Right": "Right", + "RightSide": "=>" + }, + "PRRecordHeaders": { + "PR": "PR", + "Action": "Action", + "Title": "Title" + }, + "ManifestFileTypes": { + "defaultLocale": "defaultLocale", + "Locale": "Locale", + "installer": "installer", + "installeryaml": "installer.yaml", + "version": "version", + "Root": "" + }, + "Num": { + "NegativeOne": -1, + "Zero": 0, + "One": 1, + "Two": 2, + "Ten": 10 + }, + "PRCheckLabels": { + "Completed": "Completed", + "LicenseCla": "license/cla", + "Queued": "Queued" + }, + "QueueInputs": [ + "No suitable installer found for manifest", + "Caught std::exception: bad allocation", + "exit code: -1073741515", + "exit code: -1978335216" + ], + "ManifestScope": { + "User": "User", + "Machine": "Machine" + }, + "PRWatch": { + "Remove": "Remove", + "Delete": "Delete", + "AutomaticDeletion":"Automatic deletion", + }, + "Words": { + "Package": "Package", + "Error": "Error", + "Installation": "Installation", + "Event": "event", + "Something": "something", + "NoteProperty": "NoteProperty" + }, + "VMWinLoc": { + "Left": 900, + "LeftAdj": 100, + "Top": 0, + "TopAdj": 66, + "Bottom": 1029, + "Right": 860 + }, + "WaiverActions": { + "Manual": "Manual", + "Approved": "Approved" + }, + "PRWatchDataSource": { + "GitHub": "GitHub", + "WinGet": "WinGet" + }, + "PushMePRWho": [ + { + "Author": "spectopo", + "MatchString": "Mozilla.Firefox" + }, + { + "Author": "SpecterShell", + "MatchString": "Mozilla.Thunderbird" + }, + { + "Author": "spectopo", + "MatchString": "OpenJS" + } + ], + "Run": { + "azp2": "azp run", + "azp1": "AzurePipelines run", + "wingetbot": "wingetbot run" + }, + "PRActions": { + "Approved": "Approved", + "Blocking": "Blocking", + "Feedback": "Feedback", + "Retry": "Retry", + "Manual": "Manual", + "Closed": "Closed", + "Project": "Project", + "Squash": "Squash", + "Waiver": "Waiver" + }, + "PRCloseReasons": { + "MergeConflicts": "Close with reason: Merge Conflicts;" + }, + "PSColors": { + "Black": "Black", + "DarkBlue": "DarkBlue", + "DarkGreen": "DarkGreen", + "DarkCyan": "DarkCyan", + "DarkRed": "DarkRed", + "DarkMagenta": "DarkMagenta", + "DarkYellow": "DarkYellow", + "Gray": "Gray", + "DarkGray": "DarkGray", + "Blue": "Blue", + "Green": "Green", + "Cyan": "Cyan", + "Red": "Red", + "Magenta": "Magenta", + "Yellow": "Yellow", + "White": "White" + }, + "CannedMessages": { + "AgreementMismatch": "AgreementMismatch", + "AppFail": "AppFail", + "Approve": "Approve", + "AutomationBlock": "AutomationBlock", + "AutoValEnd": "AutoValEnd", + "AppsAndFeaturesNew": "AppsAndFeaturesNew", + "AppsAndFeaturesMissing": "AppsAndFeaturesMissing", + "AppsAndFeaturesMatch": "AppsAndFeaturesMatch", + "DoesntRun": "DoesntRun", + "DriverInstall": "DriverInstall", + "DefenderFail": "DefenderFail", + "HashFailRegen": "HashFailRegen", + "InstallerFail": "InstallerFail", + "InstallerMatchesSubmitter": "InstallerMatchesSubmitter", + "InstallerMissing": "InstallerMissing", + "InstallerNotSilent": "InstallerNotSilent", + "NormalInstall": "NormalInstall", + "InstallerUrlBad": "InstallerUrlBad", + "ListingDiff": "ListingDiff", + "ManValEnd": "ManValEnd", + "ManifestVersion": "ManifestVersion", + "MergeFail": "MergeFail", + "NoCause": "NoCause", + "NoExe": "NoExe", + "NoRecentActivity": "NoRecentActivity", + "NotGoodFit": "NotGoodFit", + "OneManifestPerPR": "OneManifestPerPR", + "Only64bit": "Only64bit", + "PackageFail": "PackageFail", + "PackageUrl": "PackageUrl", + "Paths": "Paths", + "PendingAttendedInstaller": "PendingAttendedInstaller", + "PolicyWrapper": "PolicyWrapper", + "PRNoYamlFiles": "PRNoYamlFiles", + "RemoveAsk": "RemoveAsk", + "SequenceNoElements": "SequenceNoElements", + "Unattended": "Unattended", + "Unavailable": "Unavailable", + "UrlBad": "UrlBad", + "VersionCount": "VersionCount", + "WhatIsIEDS": "WhatIsIEDS", + "WordFilter": "WordFilter" + }, + "ManifestFileExtension": { + "Installer": ".installer", + "Locale": ".locale", + "LocaleEnUS": ".locale.en-US", + "Root": ".yaml" + }, + "SuccessType": { + "New": "Attempting", + "Success": "Auto-Completing", + "Fail": "Failing" + }, + "PRTrackerOperations": { + "Configure": "Configure", + "DevHomeConfig": "DevHomeConfig", + "Pin": "Pin", + "Scan": "Scan" + }, + "Columns": { + "VM": "VM", + "Status": "status", + "Version": "version", + "OS": "OS", + "Package": "Package", + "PR": "PR", + "Mode": "Mode", + "RAM": "RAM" + }, + "PRLabels": { + "403": "Validation-Forbidden-URL-Error", + "404": "Validation-404-Error", + "AGR": "Agreements", + "ANA": "Author-Not-Authorized", + "ANF": "Manifest-AppsAndFeaturesVersion-Error", + "APP": "Azure-Pipeline-Passed", + "BI": "Blocking-Issue", + "BMM": "Bulk-Modify-Metadata", + "BVE": "Binary-Validation-Error", + "CLA": "Needs-CLA", + "CR": "Changes-Requested", + "DI": "DriverInstall", + "EAT": "Error-Analysis-Timeout", + "EHM": "Error-Hash-Mismatch", + "EIA": "Error-Installer-Availability", + "HVF": "Validation-Hash-Verification-Failed", + "HVL": "Highest-Version-Remaining", + "HVR": "Highest-Version-Removal", + "HW": "Hardware", + "IE": "Internal-Error", + "IEDS": "Internal-Error-Dynamic-Scan", + "IEM": "Internal-Error-Manifest", + "IEMI": "Internal-Error-Manifest-Installer", + "IEU": "Internal-Error-URL", + "IOD": "Interactive-Only-Download", + "IOI": "Interactive-Only-Installer", + "LBI": "License-Blocks-Install", + "LVR": "Last-Version-Removal", + "MA": "Moderator-Approved", + "MIVE": "Manifest-Installer-Validation-Error", + "MMC": "Manifest-Metadata-Consistency", + "MSD": "Manifest-Singleton-Deprecated", + "MV": "Manually-Validated", + "MVC": "Manual-Validation-Completed", + "MVE": "Manifest-Validation-Error", + "NA": "Needs-Attention", + "NAF": "Needs-Author-Feedback", + "NB": "Network-Blocker", + "NM": "New-Manifest", + "NMM": "Needs-Manual-Merge", + "NP": "New-Package", + "NR": "Needs-Review", + "NRA": "No-Recent-Activity", + "NSA": "Internal-Error-NoSupportedArchitectures", + "OUF": "Validation-Open-Url-Failed", + "PD": "Possible-Duplicate", + "PF": "Project-File", + "PF2": "Package-Flagged", + "PRE": "PullRequest-Error", + "PT12": "Policy-Test-1.2", + "PT18": "Policy-Test-1.8", + "PT23": "Policy-Test-2.3", + "PT25": "Policy-Test-2.5", + "PT27": "Policy-Test-2.7", + "PT29": "Policy-Test-2.9", + "RB": "Reboot", + "RET": "Retry-1", + "SA": "Scripted-Application", + "UF": "Unexpected-File", + "UVE": "URL-Validation-Error", + "VAD": "Validation-Agreement-Domain", + "VC": "Validation-Completed", + "VCR": "Validation-Certificate-Root", + "VD": "Validation-Domain", + "VDI": "Validate-Domain-Installer", + "VDE": "Validation-Defender-Error", + "VEE": "Validation-Executable-Error", + "VER": "Manifest-Version-Error", + "VHE": "Validation-HTTP-Error", + "VIE": "Validation-Installation-Error", + "VMC": "Validation-Merge-Conflict", + "VMD": "Validation-Missing-Dependency", + "VNE": "Validation-No-Executables", + "VR": "Validation-Retry", + "VSA": "Validation-Skip-Automations", + "VSE": "Validation-Shell-Execute", + "VSS": "Validation-SmartScreen-Error", + "VUF": "Validation-Unattended-Failed", + "VUU": "Validation-Unapproved-URL" + }, + "PRRequestTypes": { + "Assignees": "assignees", + "Comments": "comments", + "Commits": "commits", + "Files": "files", + "Labels": "labels", + "Merge": "merge", + "Reviews": "reviews", + "Blank": "" + }, + "LabelActionComments": { + "URLError": "The package manager bot determined there was an issue with one of the installers listed in the url field", + "ValidationInstallationError": "The package manager bot determined there was an issue with installing the application correctly", + "InternalError": "The pull request encountered an internal error and has been assigned to a developer to investigate", + "ManifestValidationError": "Please verify the manifest file is compliant with the package manager", + "ValidationUnattendedFailed": "this application failed to install without user input" + }, + "VMStatus": { + "AddVCRedist": "AddVCRedist", + "Approved": "Approved", + "CheckpointComplete": "CheckpointComplete", + "Checkpointing": "Checkpointing", + "CheckpointReady": "CheckpointReady", + "Completing": "Completing", + "Complete": "Complete", + "Disgenerate": "Disgenerate", + "DoesntRun": "DoesntRun", + "Feedback": "Feedback", + "LongRunning": "LongRunning", + "Postscan": "Postscan", + "PrescanPause": "PrescanPause", + "PostscanPause": "PostscanPause", + "Generating": "Generating", + "Installing": "Installing", + "Prescan": "Prescan", + "Prevalidation": "Prevalidation", + "Ready": "Ready", + "Rebooting": "Rebooting", + "Regenerate": "Regenerate", + "Restoring": "Restoring", + "Revert": "Revert", + "Scanning": "Scanning", + "SendStatus": "SendStatus", + "SendStatusApproved": "SendStatus-Approved", + "SendStatusComplete": "SendStatus-Complete", + "SendStatusFeedback": "SendStatus-Feedback", + "Setup": "Setup", + "SetupComplete": "SetupComplete", + "Starting": "Starting", + "Unhealthy": "Unhealthy", + "Updating": "Updating", + "ValidationCompleted": "ValidationCompleted" + }, + "ValidationDataType": { + "Should": "should", + "Must": "must" + }, + "MagicStrings": [ + "Installer Verification Analysis Context Information:", + "[error] One or more errors occurred.", + "[error] Manifest Error:", + "BlockingDetectionFound", + "Processing manifest", + "SQL error or missing database", + "Error occurred while downloading installer", + "Specified hash doesn't match", + "[error] Manifest is invalid", + "Result: Failed", + "[error] Manifest Warning:", + "[error] Manifest:", + "Exception Message", + "[error] " + ], + "ScriptBlocks": { + "VMName": "vm$VM", + "BearerGitHubToken": "Bearer $GitHubToken", + "GetDate": "'Get-Date'", + "TestVar": "$Test", + "TestVar2": "$MyInvocation.MyCommand" + }, + "GitHubRequestHeaders": { + "AuthorizationKey": "Authorization", + "AcceptKey": "Accept", + "AcceptValue": "application/vnd.github+json", + "ApiKey": "X-GitHub-Api-Version", + "ApiValue": "2022-11-28" + }, + "CommitFileModes":{ +"Patch":"Patch", +"Parent":"Parent", +"Default":"Default", + }, +"Data":{ +"PackageIdentifier": "PackageIdentifier", +"GitHubUserName": "GitHubUserName", +"authStrictness": "authStrictness", +"authUpdateType": "authUpdateType", +"AutoWaiverLabel": "AutoWaiverLabel", +"versionParamOverrideUserName": "versionParamOverrideUserName", +"versionParamOverridePR": "versionParamOverridePR", +"code200OverrideUserName": "code200OverrideUserName", +"code200OverridePR": "code200OverridePR", +"AgreementOverridePR": "AgreementOverridePR", +"AgreementURL": "AgreementURL", +"reviewText":"reviewText", +}, + "Strings": { + "AllCommentsMustBeResolved": "All comments must be resolved", + "ApiRateLimitExceeded": "API rate limit exceeded", + "DetectedOneDefender": "Detected 1 Defender", + "FoundDuplicatePullRequest": "Found duplicate pull request", + "LettingVmCool": "Letting VM cool...", + "NoData": "NoData", + "NoErrorsToPost": "No errors to post.", + "DisplayVersion":"DisplayVersion", + "MarkedThisConversationAsResolved": "marked this conversation as resolved.", + "PrimaryFork": "master", + "ManualValidation": "Manual Validation", + "OneManifestPerPR": "The pull request contains more than one manifest", + "ManifestTypeSingleton": "ManifestType: singleton", + "Pst": "Pacific Standard Time", + "PRNoYamlFiles": "The pull request doesn't include any manifest files yaml", + "Win11DevEnv": "Windows 11 dev environment", + "RemovingPreviousManifestAndAddingCurrent": "Removing previous manifest and adding current...", + "RenameCompleteStarting": "Rename complete, starting...", + "StartingVmAndCleaningUpCheckpoints": "Starting VM and cleaning up checkpoints...", + "RevertingVm": "Reverting VM...", + "PullRequestHasMergeConflicts": "Pull Request has merge conflicts", + "LaunchingVMWindowHandingOffToOrchestration": "Launching VM window, handing off to Orchestration.", + "StandardizeFormatting": "Standardize formatting", + "CreatedAt": "created_at", + "UserName":"UserName", + "BuildLinkComment":"Validation Pipeline Run \\[WinGetSvc-Validation-", + "ReturningPatch":"Returning Patch:", + "Label":"label:", + "Timestamp":"yyyy-MM-dd", +"Microsoft":"Microsoft", +"matches":"matches", +"preapproved":"preapproved", +"does not match":"does not match", + "GitHubUserName":"GitHubUserName", + "BotPrefix":"\\[bot\\]", + "Vm": "vm", + "ValidationResultFailed": "Validation result: Failed", + "ValidationPipelineRun": "Validation Pipeline Run", + "WingetbotRun": "@wingetbot run", + "WingetbotWaiversAdd": "@wingetbot waivers Add", + "Win": "Win", +"Url" :"Url", +"Agreement" :"Agreement", +}, + "PRStates": { + "Open": "open", + "Closed": "closed" + }, + "PRRequestMethods": { + "Get": "GET", + "Delete": "DELETE", + "Head": "HEAD", + "Post": "POST", + "Put": "PUT" + }, + "Dependencies": { + "VCRedist": "Microsoft.VCRedist.2015+.x64", + "DesktopRuntime8": "Microsoft.DotNet.DesktopRuntime.8", + "OracleJre": "Oracle.JavaRuntimeEnvironment" + }, + "PRRequestOutput": { + "Content": "Content", + "Silent": "Silent", + "StatusDescription": "StatusDescription" + }, + "CannedMessageResponses": { + "AgreementMismatch": "Hi $Username`n`nThis package uses Agreements, but this manifest's AgreementsUrl doesn't match the AgreementsUrl on file: $AgreementUrlFromList", + "AppsAndFeaturesNew": "Hi $Username`n`nThis manifest adds a `DisplayVersion` to the `AppsAndFeaturesEntries` that isn't present in previous manifest versions. This entry should be added to the previous versions, or removed from this version.", + "AppsAndFeaturesMissing": "Hi $Username`n`nThis manifest removes the `DisplayVersion` from the `AppsAndFeaturesEntries`, which is present in previous manifest versions. This entry should be added to this version, to maintain version matching, and prevent the 'upgrade always available' situation with this package.", + "AppsAndFeaturesMatch": "Hi $Username`n`nThis manifest uses the same values for `DisplayVersion` and `PackageVersion`. This is not recommended, and the `DisplayVersion` should be removed.", + "AppFail": "Hi $Username`n`nThe application installed normally, but gave an error instead of launching:`n", + "Approve": "Hi $Username`n`nDo you approve of these changes?", + "AutomationBlock": "This might be due to a network block of data centers, to prevent automated downloads.", + "UserAgentBlock": "This might be due to user-agent throttling.", + "AutoValEnd": "Automatic Validation ended with: `n> $UserInput", + "DriverInstall": "Hi $Username`n`nThe installation is unattended, but installs a driver which isn't unattended:`nUnfortunately, installer switches are not usually provided for this situation. Are you aware of an installer switch to have the driver silently install as well?", + "DefenderFail": "The package didn't pass a Defender or similar security scan. This might be a false positive and we can rescan tomorrow..", + "HashFailRegen": "Closing to regenerate with correct hash.", + "InstallerFail": "Hi $Username`n`nThe installer did not complete:`n", + "InstallerMatchesSubmitter": "Submitter username detected in InstallerUrl, but not in PackageIdentifier. Verify not a forked repository.", + "InstallerMissing": "Hi $Username`n`nHas the installer been removed?", + "InstallerNotSilent": "Hi $Username`n`nThe installation isn't unattended. Is there an installer switch to have the package install silently?", + "ListingDiff": "This PR omits these files that are present in the current manifest:`n> $UserInput", + "ManifestVersion": "Hi $Username`n`nWe don't often see the `1.0.0` manifest version anymore. Would it be possible to upgrade this to the [1.12.0]($GitHubBaseUrl/tree/master/doc/manifest/schema/1.12.0) version, possibly through a tool such as [WinGetCreate](https://learn.microsoft.com/en-us/windows/package-manager/package/manifest?tabs=minschema%2Cversion-example), [YAMLCreate]($GitHubBaseUrl/blob/master/Tools/YamlCreate.ps1), or [Komac](https://github.com/russellbanks/Komac)? ", + "ManValEnd": "Manual Validation ended with: `n> $UserInput", + "MergeFail": "Merging failed with:`n> $UserInput", + "NoCause": "I'm not able to find the cause for this error. It installs and runs normally on a Windows 10 VM.", + "NoExe": "Hi $Username`n`nThe installer doesn't appear to install any executables, only supporting files:`n`nIs this expected?", + "NoRecentActivity": "No recent activity.", + "NotGoodFit": "Hi $Username`n`nUnfortunately, this package might not be a good fit for inclusion into the WinGet public manifests. Please consider using a local manifest (`WinGet install --manifest C:\\path\\to\\manifest\\files\\`) for local installations. ", + "NormalInstall": "This package installs and launches normally in a Windows 10 VM.", + "OneManifestPerPR": "Hi $Username`n`nWe have a limit of 1 manifest change, addition, or removal per PR. This PR modifies more than one PR. Can these changes be spread across multiple PRs?", + "Only64bit": "Hi $Username`n`nValidation failed on the x86 package, and x86 packages are validated on 32-bit OSes. So this might be a 64-bit package.", + "PackageFail": "Hi $Username`n`nThe package installs normally, but fails to run:`n", + "PackageUrl": "Hi $Username`n`nCould you add a PackageUrl?", + "Paths": "Please update file name and path to match this change.", + "PendingAttendedInstaller": "Pending:`n* https://github.com/microsoft/winget-cli/issues/910", + "PolicyWrapper": "", + "PRNoYamlFiles": "Hi $Username`n`nThis error means that this PR diff Master had no output. In other words, it's like a merge conflict.`n> The pull request doesn't include any manifest files yaml.", + "RemoveAsk": "Hi $Username`n`nThis package installer is still available. Why should it be removed?", + "SequenceNoElements": "> Sequence contains no elements`n`n - This error means that this PR diff Master had no output. In other words, it's like a merge conflict.", + "Unavailable": "Hi $Username`n`nThe installer isn't available from the publisher's website:", + "Unattended": "Hi $Username`n`nThe installation isn't unattended:`n`nIs there an installer switch to bypass this and have it install automatically?", + "UrlBad": "Hi $Username`n`nI'm not able to find this InstallerUrl from the PackageUrl. Is there another page on the developer's site that has a link to the package?", + "VersionCount": "Hi $Username`n`nThis manifest has the highest version number for this package. Is it available from another location? (This might be in error if the version is switching from semantic to string, or string to semantic.)", + "WhatIsIEDS": "Hi $Username`n`nThe label `Internal-Error-Dynamic-Scan` is a blanket error for one of a number of internal pipeline errors or issues that occurred during the Dynamic Scan step of our validation process. It only indicates a pipeline issue and does not reflect on your package. Sorry for any confusion caused.", + "WordFilter": "This manifest contains a term that is blocked:`n`n> $UserInput" + }, + "ManifestStrings": { + "FooterHeader": "\n@@ -0,0 + 0,0 @@\n" + }, + "PSDataTypes": { + "String": "string", + "Array": "array" + }, + "ManifestKeys": { + "PackageIdentifier": "PackageIdentifier", + "PackageVersion": "PackageVersion", + "InstallerUrl": "InstallerUrl" + }, + "WordFilterList": [ + "accept_gdpr ", + "accept-licenses", + "accept-license", + "eula", + "downloadarchive.documentfoundation.org", + "paypal" + ], +"GitHubRateLimit":{ + "Url":"https://api.github.com/rate_limit", + "Source":"source", + "Reset":"reset", + "Logged":"Logged", + "Unlogged":"Unlogged", +}, + "Char": { + "Ampersand": "@", + "Backslash": "\\", + "Blank": "", + "Colon": ":", + "Comma": ",", + "DoubleAmpersand": "@@", + "DoubleQuote": "\"", + "Dash": "-", +"Plus":"+", +"Exclamation":"!", +"NotExclamation":"-!", + "Equal": "=", + "EscapedStar": "\\*", + "EscapedPipe": "\\|", + "EscapedOpenParens": "\\)", + "Hash": "#", + "LineBreak": "\n", + "LineBreakMDQuote": "\n> ", + "CarriageReturn": "\r", + "SingleQuote": "'", + "Slash": "/", + "Space": " ", + "X": "x", + "Y": "y", + "T": "T" + }, + "PRTrackerStates": { + "PreRun": "PreRun", + "PreValidation": "PreValidation", + "Running": "Running", + "PreApproval": "PreApproval", + "DefenderFail": "DefenderFail", + "InstallerAvailable": "InstallerAvailable", + "InstallerRemoved": "InstallerRemoved", + "VersionParamMismatch": "VersionParamMismatch", + "LabelAction": "LabelAction", + "DomainReview": "DomainReview", + "SequenceError": "SequenceError", + "HighestVersionRemoval": "HighestVersionRemoval", + "SQLMissingError": "SQLMissingError", + "ChangesRequested": "ChangesRequested", + "HashMismatch": "HashMismatch", + "AutoValEnd": "AutoValEnd", + "ManValEnd": "ManValEnd", + "MergeConflicts": "MergeConflicts", + "ValidationCompleted": "ValidationCompleted", + "PublishSucceeded": "PublishSucceeded" + }, + "GitHubPresets": { + "Approved": "Approved", + "AutomationBlock": "AutomationBlock", + "BadPR": "BadPR", + "Blocking": "Blocking", + "CheckInstaller": "CheckInstaller", + "Closed": "Closed", + "Completed": "Completed", + "DefenderFail": "DefenderFail", + "DriverInstall": "DriverInstall", + "Duplicate": "Duplicate", + "Feedback": "Feedback", + "GitHubStatus": "GitHubStatus", + "IdleMode": "IdleMode", + "IEDSMode": "IEDSMode", + "InstallerNotSilent": "InstallerNotSilent", + "InstallerMissing": "InstallerMissing", + "LabelAction": "LabelAction", + "ManuallyValidated": "ManuallyValidated", + "MergeConflicts": "MergeConflicts", + "NetworkBlocker": "NetworkBlocker", + "NoInstallerChange": "NoInstallerChange", + "OneManifestPerPR": "OneManifestPerPR", + "PRNoYamlFiles": "PRNoYamlFiles", + "PackageUrl": "PackageUrl", + "Paths": "Paths", + "PossibleDuplicate": "PossibleDuplicate", + "Project": "Project", + "RestrictedSubmitter": "RestrictedSubmitter", + "ResetApproval": "ResetApproval", + "Retry": "Retry", + "Squash": "Squash", + "Timeclock": "Timeclock", + "Validating": "Validating", + "VedantResetPR": "VedantResetPR", + "WorkSearch": "WorkSearch", + "Waiver": "Waiver" + }, + "StandardPRComments": { + "ValidationPipelineBadge": "Validation Pipeline Badge", + "WingetbotRun": "wingetbot run", + "AzpRun": "azp run", + "AzurePipelinesRun": "AzurePipelines run", + "AzurePipelinesSuccessfullyStarted": "Azure Pipelines successfully started running 1 pipeline", + "CheckInPolicies": "The check-in policies require a moderator to approve PRs from the community", + "CLAAgree": "microsoft-github-policy-service agree", + "WingetbotWaiversAdd": "wingetbot waivers Add", + "InternalError": "The pull request encountered an internal error and has been assigned to a developer to investigate", + "ManifestVersion": "Manifest Schema Version: 1.4.0 less than 1.5.0 for ID:", + "CoolPlayLinBot": "This account is bot account and belongs to CoolPlayLin", + "CoolPlayLinBot2": "This account is automated by Github Actions and the source code was created by CoolPlayLin", + "Poke": "Poke 👉", + "ResponseStatusCode": "Response status code does not indicate success", + "AutoValEnd": "Automatic Validation ended with", + "ManValEnd": "Manual Validation ended with", + "NoErrorsToPost": "No errors to post", + "DefenderFail": "The package didn't pass a Defender or similar security scan", + "SecurityCheck": "Installer failed security check", + "SequenceNoElements": "Sequence contains no elements", + "MissingProperties": "Missing Properties value based on version", + "AzpTriggersExcludeBranch": "Azure Pipelines could not run because the pipeline triggers exclude this branch/path" + }, + "DisplayVersionExceptionList": [ + "Netbird.Netbird", + "ppy.osu", + "Aircall.AircallWorkspace" + ], + "TrackerModes": { + "Approving": "Approving", + "Drain": "Drain", + "Idle": "Idle", + "IEDS": "IEDS", + "NoNew": "NoNew", + "OnlyNew": "OnlyNew", + "Validating": "Validating" + }, + "SearchPresets": { + "Approval": "Approval", + "Approval2": "Approval2", + "Autowaiver": "Autowaiver", + "Blocking": "Blocking", + "Defender": "Defender", + "Domain": "Domain", + "Duplicate": "Duplicate", + "HVR": "HVR", + "IEDS": "IEDS", + "LVR": "LVR", + "MMC": "MMC", + "NMM": "NMM", + "None": "None", + "ToWork": "ToWork", + "ToWork2": "ToWork2", + "ToWork3": "ToWork3", + "VCMA": "VCMA" + }, + "SearchTerms":{ + "IsPR":"is:pr+", +"IsOpen":"is:open+", +"DraftFalse":"draft:false+", +"SortAsc":"sort:created-asc+", +}, + "MMC": { + "MissingProperties": "Missing Properties", + "ManifestsHeader": " = = = manifests" + }, + "GitHubUserNames": { + "Trenly": "Trenly", + "GitHubUserName": "stephengillie", + "GitHubUserNameFull": "Stephen Gillie", + "GitHubUserName2": "Gilgamech", + "AzurePipelines": "azure-pipelines" + }, + "PRCheckStates": { + "Queued": "queued", + "Success": "success", + "Failure": "failure" + }, + "ValidationDataStrictness": { + "Manual": "manual", + "Auto": "auto" + }, + "TestAdmin": { + "AdminString": "S-1-5-32-544", + "TryElevatingYourSession": "Try elevating your session." + }, + "PRLabelActions": [ + { + "Label": "Binary-Validation-Error", + "Logset": "29|41|37|", + "StringSet": "0", + "MatchOffset": "", + "LengthSet": "" + }, + { + "Label": "Internal-Error", + "Logset": "47|46|29|15|25|54|56|57|58", + "StringSet": "12|1|9", + "MatchOffset": "", + "LengthSet": "" + }, + { + "Label": "Internal-Error-PR", + "Logset": "36", + "StringSet": "", + "MatchOffset": "", + "LengthSet": "" + }, + { + "Label": "Manifest-AppsAndFeaturesVersion-Error", + "Logset": "36|29|30|14|42|46|48|34", + "StringSet": "1|2", + "MatchOffset": "", + "LengthSet": "" + }, + { + "Label": "Manifest-Installer-Validation-Error", + "Logset": "37|36|29|42|43|48", + "StringSet": "1|2", + "MatchOffset": "", + "LengthSet": "" + }, + { + "Label": "Manifest-Validation-Error", + "Logset": "37", + "StringSet": "11|8|2|10", + "MatchOffset": "", + "LengthSet": "" + }, + { + "Label": "PullRequest-Error", + "Logset": "36", + "StringSet": "13", + "MatchOffset": "", + "LengthSet": "0" + }, + { + "Label": "Validation-Forbidden-URL-Error", + "Logset": "29|21|23|53|55", + "StringSet": "9", + "MatchOffset": "", + "LengthSet": "" + }, + { + "Label": "Error-Hash-Mismatch", + "Logset": "54", + "StringSet": "0", + "MatchOffset": "", + "LengthSet": "10" + }, + { + "Label": "Internal-Error-Manifest-Installer", + "Logset": "37|36", + "StringSet": "9|0", + "MatchOffset": "1|0", + "LengthSet": "3" + } + ], + "Robots": { + "Wingetbot": "wingetbot", + "FabricBot": "microsoft-github-policy-service", + "AzurePipelines": "azure-pipelines" + } +} diff --git a/Tools/ManualValidation/ManualValidationPipeline.ps1 b/Tools/ManualValidation/ManualValidationPipeline.ps1 index ff93d4ff000a2..c7263e5b1426a 100644 --- a/Tools/ManualValidation/ManualValidationPipeline.ps1 +++ b/Tools/ManualValidation/ManualValidationPipeline.ps1 @@ -1,5694 +1,6499 @@ -#Copyright 2022-2025 Microsoft Corporation -#Author: Stephen Gillie -#Title: Manual Validation Pipeline v3.90.0 -#Created: 10/19/2022 -#Updated: 3/3/2025 -#Notes: Utilities to streamline evaluating 3rd party PRs. - - -$build = 1085 -$appName = "ManualValidationPipeline" -Write-Host "$appName build: $build" -$MainFolder = "C:\ManVal" -$Owner = "microsoft" -$Repo = "winget-pkgs" -$ReposFolder = "C:\repos\$Repo" -#Share this folder with Windows File Sharing, then access it from within the VM across the network, as \\LaptopIPAddress\SharedFolder. For LaptopIPAddress use Ethernet adapter vEthernet (Default Switch) IPv4 Address. -Set-Location $MainFolder - -$ipconfig = (ipconfig) -$remoteIP = ([ipaddress](($ipconfig[($ipconfig | Select-String "vEthernet").LineNumber..$ipconfig.length] | Select-String "IPv4 Address") -split ": ")[1]).IPAddressToString -$RemoteMainFolder = "//$remoteIP/" -$SharedFolder = "$RemoteMainFolder/write" - -$imagesFolder = "$MainFolder\Images" #VM Images folder -$logsFolder = "$MainFolder\logs" #VM Logs folder -$runPath = "$MainFolder\vm\" #VM working folder -$writeFolder = "$MainFolder\write" #Folder with write permissions -$vmCounter = "$MainFolder\vmcounter.txt" -$VMversion = "$MainFolder\VMversion.txt" -$StatusFile = "$writeFolder\status.csv" -$TrackerModeFile = "$logsFolder\trackermode.txt" -$RemoteTrackerModeFile = "$RemoteMainFolder\ManVal\logs\trackermode.txt" -$LogFile = "$MainFolder\misc\ApprovedPRs.txt" -$PeriodicRunLog = "$MainFolder\misc\PeriodicRunLog.txt" -$SharedErrorFile = "$writeFolder\err.txt" -$DataFileName = "$ReposFolder\Tools\ManualValidationPipeline.csv" - -$LabelActionFile = "$ReposFolder\Tools\LabelActions.csv" -$ExitCodeFile = "$ReposFolder\Tools\ExitCodes.csv" -$MsiErrorCodeFile = "$ReposFolder\Tools\MsiErrorCodes.csv" -$AutowaiverFile = "$ReposFolder\Tools\Autowaiver.csv" -$PRStateDataFile = "$ReposFolder\Tools\PRStateFromComments.csv" -$PRQueueFile = "C:\manval\misc\PRQueue.txt" -$PRExcludeFile = "C:\manval\misc\PRExclude.txt" - -$Win10Folder = "$imagesFolder\Win10-Created053025-Original" -$Win11Folder = "$imagesFolder\Win11-Created061225-Original" - -$GitHubBaseUrl = "https://github.com/$Owner/$Repo" -$GitHubContentBaseUrl = "https://raw.githubusercontent.com//$Owner/$Repo" -$GitHubApiBaseUrl = "https://api.github.com/repos/$Owner/$Repo" -$ADOMSBaseUrl = "https://dev.azure.com/shine-oss" -$ADOMSGUID = "8b78618a-7973-49d8-9174-4360829d979b" - -$CheckpointName = "Validation" -$VMUserName = "user" #Set to the internal username you're using in your VMs. -$GitHubUserName = "stephengillie" -$SystemRAM = (Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb -$Host.UI.RawUI.WindowTitle = "Utility" -$GitHubRateLimitDelay = 0.2 #seconds - -$PRRegex = "[0-9]{5,6}" -$hashPRRegex = "[#]"+$PRRegex -$hashPRRegexEnd = $hashPRRegex+"$" -$colonPRRegex = $PRRegex+"[:]" -#"Manual Validation results for $PackageIdentifier version $PackageVersion on $Date" - -<# -$package = "clang-uml" -$a = Get-ARPTable |where {$_.DisplayName -match $package} -$a.displayversion -$b = &"C:\Program Files\clang-uml\bin\clang-uml.exe" "--version" -$a.DisplayVersion -match $b -$a.DisplayVersion -match $b -join " " -$b -match $a.DisplayVersion -#> - -#region Data -[array]$DisplayVersionExceptionList = "Netbird.Netbird", -"ppy.osu" - -#$MagicStrings = @{} -[array]$MagicStrings = "Installer Verification Analysis Context Information:", #0 -"[error] One or more errors occurred.", #1 -"[error] Manifest Error:", #2 -"BlockingDetectionFound", #3 -"Processing manifest", #4 -"SQL error or missing database", #5 -"Error occurred while downloading installer", #6 -"Specified hash doesn't match", #7 -"[error] Manifest is invalid", #8 -"Result: Failed", #9 -"[error] Manifest Warning:",#10 -"[error] Manifest:",#11 -"Exception Message",#12 -"[error] "#13 - -$Actions = @{} -$Actions.Approved = "Approved" -$Actions.Blocking = "Blocking" -$Actions.Feedback = "Feedback" -$Actions.Retry = "Retry" -$Actions.Manual = "Manual" -$Actions.Closed = "Closed" -$Actions.Project = "Project" -$Actions.Squash = "Squash" -$Actions.Waiver = "Waiver" - -$Labels = @{} - -$Labels.403 = "Validation-Forbidden-URL-Error" -$Labels.404 = "Validation-404-Error" -$Labels.AGR = "Agreements" -$Labels.ANA = "Author-Not-Authorized" -$Labels.ANF = "Manifest-AppsAndFeaturesVersion-Error" -$Labels.APP = "Azure-Pipeline-Passed" -$Labels.BI = "Blocking-Issue" -$Labels.BMM = "Bulk-Modify-Metadata" -$Labels.BVE = "Binary-Validation-Error" -$Labels.CLA = "Needs-CLA" -$Labels.CR = "Changes-Requested" -$Labels.DI = "DriverInstall" -$Labels.EAT = "Error-Analysis-Timeout" -$Labels.EHM = "Error-Hash-Mismatch" -$Labels.EIA = "Error-Installer-Availability" -$Labels.HVF = "Validation-Hash-Verification-Failed" -$Labels.HVL = "Highest-Version-Remaining" -$Labels.HVR = "Highest-Version-Removal" -$Labels.HW = "Hardware" -$Labels.IE = "Internal-Error" -$Labels.IEDS = "Internal-Error-Dynamic-Scan" -$Labels.IEM = "Internal-Error-Manifest" -$Labels.IEU = "Internal-Error-URL" -$Labels.IOD = "Interactive-Only-Download" -$Labels.IOI = "3AInteractive-Only-Installer" -$Labels.LBI = "License-Blocks-Install" -$Labels.LVR = "Last-Version-Removal" -$Labels.MA = "Moderator-Approved" -$Labels.MIVE = "Manifest-Installer-Validation-Error" -$Labels.MMC = "Manifest-Metadata-Consistency" -$Labels.MV = "Manually-Validated" -$Labels.MVE = "Manifest-Validation-Error" -$Labels.NA = "Needs-Attention" -$Labels.NAF = "Needs-Author-Feedback" -$Labels.NB = "Network-Blocker" -$Labels.NM = "New-Manifest" -$Labels.NMM = "Needs-Manual-Merge" -$Labels.NP = "New-Package" -$Labels.NR = "Needs-Review" -$Labels.NRA = "No-Recent-Activity" -$Labels.NSA = "Internal-Error-NoSupportedArchitectures" -$Labels.OUF = "Validation-Open-Url-Failed" -$Labels.PD = "Possible-Duplicate" -$Labels.PF = "Project-File" -$Labels.PRE = "PullRequest-Error" -$Labels.PT12 = "Policy-Test-1.2" -$Labels.PT23 = "Policy-Test-2.3" -$Labels.PT27 = "Policy-Test-2.7" -$Labels.RB = "Reboot" -$Labels.RET = "Retry-1" -$Labels.SA = "Scripted-Application" -$Labels.UF = "Unexpected-File" -$Labels.UVE = "URL-Validation-Error" -$Labels.VC = "Validation-Completed" -$Labels.VCR = "Validation-Certificate-Root" -$Labels.VD = "Validation-Domain" -$Labels.VDE = "Validation-Defender-Error" -$Labels.VEE = "Validation-Executable-Error" -$Labels.VER = "Manifest-Version-Error" -$Labels.VHE = "Validation-HTTP-Error" -$Labels.VIE = "Validation-Installation-Error" -$Labels.VMC = "Validation-Merge-Conflict" -$Labels.VMD = "Validation-Missing-Dependency" -$Labels.VNE = "Validation-No-Executables" -$Labels.VR = "Validation-Retry" -$Labels.VSA = "Validation-Skip-Automations" -$Labels.VSE = "Validation-Shell-Execute" -$Labels.VSS = "Validation-SmartScreen-Error" -$Labels.VUF = "Validation-Unattended-Failed" -$Labels.VUU = "Validation-Unapproved-URL" - - -$PushMePRWho = "Author,MatchString`nspectopo,Mozilla.Firefox`ntrenly,Standardize formatting`nSpecterShell,Mozilla.Thunderbird" | ConvertFrom-Csv - -$QueueInputs = "No suitable installer found for manifest", #0 -"Caught std::exception: bad allocation", #1 -"exit code: -1073741515",#2 -"exit code: -1978335216"#3 - -#endregion - -#First tab -Function Get-TrackerVMRunTracker { - param( - [switch]$RunLatch - ) - $HourLatch = $False - while ($True) { - $Host.UI.RawUI.WindowTitle = "Orchestration" - #Run once an hour at ~20 after. - if (([int](get-date -f mm) -eq 20) -OR ([int](get-date -f mm) -eq 50)) { - $HourLatch = $True - } - if ($RunLatch -eq $False) { - $HourLatch = $False - } - if ($HourLatch) {#Hourly Run functionality - Get-ScheduledRun - $HourLatch = $False - } - - Clear-Host - $GetStatus = Get-Status - $GetStatus | Format-Table; - $VMRAM = Get-ArraySum $GetStatus.RAM - $ramColor = "green" - $valMode = Get-TrackerMode - -(Get-Status).vm | %{$path = "C:\ManVal\vm\$_\manifest\Package.yaml";(gc $path) -replace "ManifestVersion: 1..0$","ManifestVersion: 1.10.0" | out-file $path} - - if ($VMRAM -gt ($SystemRAM*0.5)) { - $ramColor = "red" - } elseif ($VMRAM -gt ($SystemRAM*.25)) { - $ramColor = "yellow" - } - Write-Host "VM RAM Total: " -nonewline - Write-Host -f $ramColor $VMRAM - $timeClockColor = "red" - if (Get-TimeRunning) { - $timeClockColor = "green" - } - $PRQueueCount = Get-PRQueueCount - Write-Host -nonewline "Build: $build - Hours worked: " - Write-Host -nonewline -f $timeClockColor (Get-HoursWorkedToday) - Write-Host " - PRs in queue: $PRQueueCount - Hourly Run: $RunLatch" - (Get-VM) | ForEach-Object { - if(($_.MemoryDemand / $_.MemoryMaximum) -ge 0.9){ - Set-VM -VMName $_.name -MemoryMaximumBytes "$(($_.MemoryMaximum / 1073741824)+2)GB" - } - } - $status = Get-Status - $status | ForEach-Object {$_.RAM = [math]::Round((Get-VM -Name ("vm"+$_.vm)).MemoryAssigned/1024/1024/1024,2)} - Write-Status $status - Get-TrackerVMCycle; - Get-TrackerVMWindowArrange - - if ($valMode -eq "IEDS") { - if ((Get-ArraySum (Get-Status).RAM) -lt ($SystemRAM*.42)) { - Write-Output $valMode - Get-RandomIEDS - } - } - - if ($PRQueueCount -gt 0) { - if ((Get-ArraySum (Get-Status).RAM) -lt ($SystemRAM*.42)) { - $PR = Get-PopPRQueue - if ($null -ne $PR) { - Write-Output "Running $PR from queue." - Get-RandomIEDS -PR $PR - } - } - } - - $clip = (Get-Clipboard) - If ($clip -match $ADOMSBaseUrl) { - #Write-Output "Gathering Automated Validation Logs" - #Get-AutoValLog - } elseIf ($clip -match "Skip to content") { - if ($valMode -eq "Validating") { - Write-Output $valMode - Get-TrackerVMValidate; - $valMode | clip - } - } elseIf ($clip -match " Windows Package Manager") {#Package Manager Dashboard - #Write-Output "Gathering PR Headings" - #Get-PRNumber - } elseIf ($clip -match "^manifests`/") { - Write-Output "Opening manifest file" - $ManifestUrl = "$GitHubBaseUrl/tree/master/"+$clip - $ManifestUrl | clip - start-process ($ManifestUrl) - } - # $MozillaThunderbird = (Get-Status | ? {$_.Package -match "Mozilla.Thunderbird"} ).vm - # if ($null -ne $MozillaThunderbird) { - # $MozillaThunderbird | %{Get-TrackerVMSetStatus -Status Complete -VM $_} - # } - if (Get-ConnectedVM) { - #Get-TrackerVMResetStatus - } else { - Get-TrackerVMRotate - } - Write-Output "End of cycle." - Start-Sleep 5; - } - #Write-Progress -Completed -} - -#Second tab -Function Get-PRWatch { - [CmdletBinding()] - param( - [switch]$noNew, - [ValidateSet("Default","Warm","Cool","Random","Afghanistan","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antigua And Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia And Herzegovina","Botswana","Bouvet Island","Brazil","Brunei Darussalam","Bulgaria","Burkina Faso","Burundi","Cabo Verde","Cambodia","Cameroon","Canada","Central African Republic","Chad","Chile","China","Colombia","Comoros","Cook Islands","Costa Rica","Croatia","Cuba","Curacao","Cyprus","Czechia","Cöte D'Ivoire","Democratic Republic Of The Congo","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Eswatini","Ethiopia","Fiji","Finland","France","French Polynesia","Gabon","Gambia","Georgia","Germany","Ghana","Greece","Grenada","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Holy See (Vatican City State)","Honduras","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Kiribati","Kuwait","Kyrgyzstan","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Mauritania","Mauritius","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","New Zealand","Nicaragua","Niger","Nigeria","Niue","Norfolk Island","North Korea","North Macedonia","Norway","Oman","Pakistan","Palau","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Pitcairn Islands","Poland","Portugal","Qatar","Republic Of The Congo","Romania","Russian Federation","Rwanda","Saint Kitts And Nevis","Saint Lucia","Saint Vincent And The Grenadines","Samoa","San Marino","Sao Tome And Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Korea","South Sudan","Spain","Sri Lanka","Sudan","Suriname","Sweden","Switzerland","Syrian Arab Republic","Tajikistan","Tanzania, United Republic Of","Thailand","Togo","Tonga","Trinidad And Tobago","Tunisia","Turkey","Turkmenistan","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States","Uruguay","Uzbekistan","Vanuatu","Venezuela","Vietnam","Yemen","Zambia","Zimbabwe","Åland Islands")]$Chromatic = "Default", - $LogFile = ".\PR.txt", - $ReviewFile = ".\Review.csv", - $oldclip = "", - $PrePipeline = $false, - $AuthList = (Get-ValidationData -Property authStrictness), - $AgreementsList = (Get-ValidationData -Property AgreementUrl), - $ReviewList = (Get-LoadFileIfExists $ReviewFile), - $clip = (Get-Clipboard), - [switch]$WhatIf - ) - $Host.UI.RawUI.WindowTitle = "PR Watcher"#I'm a PR Watcher, watchin PRs go by. - #if ((Get-Command Get-TrackerVMSetMode).name) {Get-TrackerVMSetMode "Approving"} - - Write-Host " | Timestmp | $(Get-PadRight PR# 6) | $(Get-PadRight PackageIdentifier) | $(Get-PadRight prVersion 15) | A | R | G | W | F | I | D | V | $(Get-PadRight ManifestVer 14) | OK |" - Write-Host " | -------- | ----- | ------------------------------- | -------------- | - | - | - | - | - | - | - | - | ------------- | -- |" - - while($True -gt 0){ - $clip = (Get-Clipboard) - $PRtitle = $clip | Select-String ($hashPRRegexEnd); - $PR = ($PRtitle -split "#")[1] - if ($PRtitle) { - if (Compare-Object $PRtitle $oldclip) { - # if ((Get-Command Get-Status).name) { - # (Get-Status | Where-Object {$_.status -eq "ValidationCompleted"} | Format-Table) - # } - $validColor = "green" - $invalidColor = "red" - $cautionColor = "yellow" - - Switch ($Chromatic) { - #Color schemes, to accommodate needs and also add variety. - "Default" { - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" - } - "Warm" { - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Yellow" - } - "Cool" { - $validColor = "Green" - $invalidColor = "Blue" - $cautionColor = "Cyan" - } - "Random" { - $Chromatic = ($CountrySet | get-random) - Write-Host "Using CountrySet $Chromatic" -f green - } -#https://www.flagpictures.com/countries/flag-colors/ -"Afghanistan"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Albania"{ - $validColor = "DarkGray" - $invalidColor = "Red" -} -"Algeria"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"American Samoa"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Andorra"{ - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Angola"{ - $validColor = "DarkGray" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Anguilla"{ - $invalidColor = "Blue" - $cautionColor = "White" -} -"Antigua And Barbuda"{ - $invalidColor = "Red" - $validColor = "DarkGray" - $invalidColor = "Blue" - $validColor = "White" - $cautionColor = "Yellow" -} -"Argentina"{ - $validColor = "White" - $cautionColor = "Cyan" -} -"Armenia"{ - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "DarkYellow" -} -"Aruba"{ - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Australia"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Austria"{ - $validColor = "White" - $invalidColor = "Red" -} -"Azerbaijan"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Cyan" -} -"Bahamas"{ - $validColor = "DarkGray" - $invalidColor = "Cyan" - $cautionColor = "Yellow" -} -"Bahrain"{ - $validColor = "White" - $invalidColor = "Red" -} -"Bangladesh"{ - $validColor = "Green" - $invalidColor = "Red" -} -"Barbados"{ - $validColor = "DarkGray" - $invalidColor = "Blue" - $cautionColor = "DarkYellow" -} -"Belarus"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Belgium"{ - $validColor = "DarkGray" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Belize"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Benin"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Bermuda"{ - $invalidColor = "Red" -} -"Bhutan"{ - $validColor = "DarkRed" - $invalidColor = "DarkYellow" - $cautionColor = "White" -} -"Bolivia"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Bosnia And Herzegovina"{ - $invalidColor = "Blue" - $validColor = "White" - $cautionColor = "Yellow" -} -"Botswana"{ - $validColor = "DarkGray" - $invalidColor = "White" - $cautionColor = "Cyan" -} -"Bouvet Island"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Brazil"{ - $validColor = "Green" - $invalidColor = "Blue" - $cautionColor = "DarkYellow" -} -"Brunei Darussalam"{ - $validColor = "DarkGray" - $invalidColor = "Red" - $validColor = "White" - $cautionColor = "Yellow" -} -"Bulgaria"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Burkina Faso"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Burundi"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Cabo Verde"{ - $validColor = "White" - $invalidColor = "DarkYellow" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Cambodia"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Cameroon"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Canada"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Central African Republic"{ - $validColor = "Green" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" - $cautionColor = "Yellow" -} -"Chad"{ - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Chile"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"China"{ - $invalidColor = "Red" - $cautionColor = "DarkYellow" -} -"Colombia"{ - $invalidColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Comoros"{ - $validColor = "Green" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" - $cautionColor = "Yellow" -} -"Cook Islands"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Costa Rica"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Croatia"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Cuba"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Curaçao"{ - $validColor = "White" - $invalidColor = "Blue" - $cautionColor = "Yellow" -} -"Cyprus"{ - $validColor = "White" - $invalidColor = "Blue" -} -"Czechia"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Côte D'Ivoire"{ - $validColor = "Green" - $invalidColor = "DarkYellow" - $cautionColor = "White" -} -"Democratic Republic Of The Congo"{ - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Denmark"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Djibouti"{ - $validColor = "Green" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Cyan" -} -"Dominica"{ - $validColor = "Green" - $validColor = "DarkGray" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Dominican Republic"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Ecuador"{ - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Egypt"{ - $validColor = "DarkGray" - $invalidColor = "DarkYellow" - $invalidColor = "Red" - $cautionColor = "White" -} -"El Salvador"{ - $validColor = "White" - $invalidColor = "DarkYellow" - $cautionColor = "Blue" -} -"Equatorial Guinea"{ - $validColor = "Green" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Eritrea"{ - $validColor = "Green" - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Estonia"{ - $validColor = "DarkGray" - $invalidColor = "Blue" - $cautionColor = "White" -} -"Eswatini"{ - $validColor = "DarkGray" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" - $cautionColor = "Yellow" -} -"Ethiopia"{ - $validColor = "Green" - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Fiji"{ - $validColor = "White" - $validColor = "DarkBlue" - $invalidColor = "DarkYellow" - $invalidColor = "Red" - $cautionColor = "Cyan" -} -"Finland"{ - $validColor = "White" - $invalidColor = "Blue" -} -"France"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"French Polynesia"{ - $validColor = "White" - $invalidColor = "Red" - $invalidColor = "Blue" - $cautionColor = "DarkYellow" -} -"Gabon"{ - $validColor = "Green" - $invalidColor = "Blue" - $cautionColor = "Yellow" -} -"Gambia"{ - $validColor = "Green" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Georgia"{ - $validColor = "White" - $invalidColor = "Red" -} -"Germany"{ - $validColor = "DarkGray" - $invalidColor = "Red" - $cautionColor = "DarkYellow" -} -"Ghana"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Greece"{ - $validColor = "White" - $invalidColor = "Blue" -} -"Grenada"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Guatemala"{ - $validColor = "White" - $invalidColor = "Blue" -} -"Guinea"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Guinea-Bissau"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Guyana"{ - $validColor = "DarkGray" - $validColor = "Green" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Haiti"{ - $validColor = "Blue" - $invalidColor = "Red" -} -"Holy See (Vatican City State)"{ - $validColor = "White" - $cautionColor = "Yellow" -} -"Honduras"{ - $validColor = "White" - $invalidColor = "Blue" -} -"Hong Kong" { - $validColor = "White" - $invalidColor = "Red" -} -"Hungary"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Iceland"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"India"{ - $validColor = "Green" - $validColor = "White" - $invalidColor = "Blue" - $cautionColor = "DarkYellow" -} -"Indonesia"{ - $validColor = "White" - $invalidColor = "Red" -} -"Iran"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Iraq"{ - $invalidColor = "Red" - $validColor = "DarkGray" - $validColor = "Green" - $cautionColor = "White" -} -"Ireland"{ - $validColor = "Green" - $invalidColor = "Blue" -} -"Israel"{ - $validColor = "White" - $invalidColor = "Blue" -} -"Italy"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Jamaica"{ - $validColor = "Green" - $invalidColor = "DarkGray" - $cautionColor = "DarkYellow" -} -"Japan"{ - $validColor = "White" - $invalidColor = "Red" -} -"Jordan"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Kazakhstan"{ - $cautionColor = "Yellow" - $invalidColor = "Blue" -} -"Kenya"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Kiribati"{ - $validColor = "White" - $invalidColor = "Red" - $invalidColor = "Blue" - $cautionColor = "DarkYellow" -} -"Kuwait"{ - $validColor = "Green" - $validColor = "DarkGray" - $invalidColor = "Red" - $cautionColor = "White" -} -"Kyrgyzstan"{ - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Laos"{ - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "White" -} -"Latvia"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Lebanon"{ - $invalidColor = "Red" - $validColor = "Green" - $cautionColor = "White" -} -"Lesotho"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Blue" - $cautionColor = "White" -} -"Liberia"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Libya"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Liechtenstein"{ - $validColor = "Blue" - $invalidColor = "Red" -} -"Lithuania"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Luxembourg"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Cyan" -} -"Macao" { - $validColor = "Green" - $cautionColor = "White" -} -"Madagascar"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Malawi"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "DarkGray" -} -"Malaysia"{ - $validColor = "White" - $invalidColor = "Red" - $invalidColor = "DarkBlue" - $cautionColor = "Yellow" -} -"Maldives"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Mali"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Malta"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Marshall Islands"{ - $invalidColor = "Blue" - $invalidColor = "DarkYellow" - $cautionColor = "White" -} -"Mauritania"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Mauritius"{ - $validColor = "Green" - $invalidColor = "Red" - $invalidColor = "Blue" - $cautionColor = "Yellow" -} -"Mexico"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Micronesia"{ - $invalidColor = "Blue" - $cautionColor = "White" -} -"Moldova"{ - $validColor = "Blue" - $invalidColor = "DarkYellow" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Monaco"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Mongolia"{ - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Montenegro"{ - $invalidColor = "Red" - $cautionColor = "DarkYellow" -} -"Morocco"{ - $validColor = "Green" - $invalidColor = "Red" -} -"Mozambique"{ - $validColor = "DarkGray" - $validColor = "Green" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Myanmar"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" - $cautionColor = "White" -} -"Namibia"{ - $validColor = "Green" - $validColor = "White" - $invalidColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Nauru"{ - $invalidColor = "Blue" - $validColor = "White" - $cautionColor = "Yellow" -} -"Nepal"{ - $validColor = "DarkRed" - $invalidColor = "Blue" - $cautionColor = "White" -} -"Netherlands"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"New Zealand"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Nicaragua"{ - $invalidColor = "Blue" - $cautionColor = "White" -} -"Niger"{ - $validColor = "Green" - $cautionColor = "White" - $cautionColor = "DarkYellow" -} -"Nigeria"{ - $validColor = "Green" - $cautionColor = "White" -} -"Niue"{ - $validColor = "DarkYellow" -} -"Norfolk Island"{ - $validColor = "Green" - $cautionColor = "White" -} -"North Korea"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"North Macedonia"{ - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Norway"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Oman"{ - $invalidColor = "Red" - $validColor = "Green" - $cautionColor = "White" -} -"Pakistan"{ - $validColor = "Green" - $cautionColor = "White" -} -"Palau"{ - $cautionColor = "Yellow" - $invalidColor = "Blue" -} -"Palestine"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Panama"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Papua New Guinea"{ - $validColor = "DarkGray" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Paraguay"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Peru"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Philippines"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" - $cautionColor = "Yellow" -} -"Pitcairn Islands"{ - $validColor = "Green" - $validColor = "DarkGray" - $validColor = "White" - $invalidColor = "Red" - $invalidColor = "Blue" - $cautionColor = "Brown" - $cautionColor = "Yellow" -} -"Poland"{ - $validColor = "White" - $invalidColor = "Red" -} -"Portugal"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Qatar"{ - $validColor = "DarkRed" - $cautionColor = "White" -} -"Republic Of The Congo"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Romania"{ - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Russian Federation"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Rwanda"{ - $validColor = "Green" - $invalidColor = "Cyan" - $cautionColor = "Yellow" -} -"Saint Kitts And Nevis"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Saint Lucia"{ - $validColor = "DarkGray" - $validColor = "White" - $invalidColor = "Cyan" - $cautionColor = "Yellow" -} -"Saint Vincent And The Grenadines"{ - $validColor = "Green" - $invalidColor = "Blue" - $cautionColor = "Yellow" -} -"Samoa"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"San Marino"{ - $validColor = "White" - $cautionColor = "Cyan" -} -"Sao Tome And Principe"{ - $validColor = "Green" - $validColor = "DarkGray" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Saudi Arabia"{ - $validColor = "Green" - $cautionColor = "White" -} -"Senegal"{ - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Serbia"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Seychelles"{ - $validColor = "Green" - $validColor = "White" - $invalidColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Sierra Leone"{ - $validColor = "Green" - $invalidColor = "Blue" - $cautionColor = "White" -} -"Singapore"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Slovakia"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Slovenia"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $invalidColor = "Blue" - $cautionColor = "DarkYellow" - $cautionColor = "White" -} -"Solomon Islands"{ - $validColor = "Green" - $invalidColor = "Blue" - $cautionColor = "Yellow" -} -"Somalia"{ - $invalidColor = "Blue" - $cautionColor = "White" -} -"South Africa"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $invalidColor = "Blue" - $invalidColor = "DarkYellow" - $cautionColor = "White" -} -"South Korea"{ - $validColor = "White" - $validColor = "DarkGray" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"South Sudan"{ - $validColor = "DarkGray" - $validColor = "Green" - $validColor = "White" - $invalidColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Spain"{ - $invalidColor = "Red" - $invalidColor = "DarkYellow" -} -"Sri Lanka"{ - $validColor = "Green" - $invalidColor = "DarkRed" - $cautionColor = "DarkYellow" -} -"Sudan"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Suriname"{ - $validColor = "DarkYellow" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Sweden"{ - $validColor = "Blue" - $invalidColor = "DarkYellow" -} -"Switzerland"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Syrian Arab Republic"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Tajikistan"{ - $validColor = "DarkYellow" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"Tanzania, United Republic Of"{ - $validColor = "Green" - $validColor = "DarkGray" - $invalidColor = "Blue" - $cautionColor = "Yellow" -} -"Thailand"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Togo"{ - $validColor = "Green" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Tonga"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Trinidad And Tobago"{ - $validColor = "DarkGray" - $invalidColor = "Red" - $cautionColor = "White" -} -"Tunisia"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Turkey"{ - $invalidColor = "Red" - $cautionColor = "White" -} -"Turkmenistan"{ - $validColor = "Green" - $cautionColor = "White" -} -"Tuvalu"{ - $validColor = "DarkBlue" - $invalidColor = "DarkYellow" - $invalidColor = "Red" - $cautionColor = "Cyan" - $cautionColor = "White" -} -"Uganda"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" - $cautionColor = "Yellow" -} -"Ukraine"{ - $invalidColor = "Blue" - $invalidColor = "DarkYellow" -} -"United Arab Emirates"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "White" -} -"United Kingdom"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"United States"{ - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Blue" -} -"Uruguay"{ - $invalidColor = "Blue" - $cautionColor = "White" -} -"Uzbekistan"{ - $validColor = "Green" - $invalidColor = "Blue" - $invalidColor = "Red" - $cautionColor = "White" -} -"Vanuatu"{ - $validColor = "DarkGray" - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Venezuela"{ - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Vietnam"{ - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Yemen"{ - $validColor = "DarkGray" - $invalidColor = "Red" - $cautionColor = "White" -} -"Zambia"{ - $validColor = "Green" - $validColor = "DarkGray" - $invalidColor = "Red" - $cautionColor = "DarkYellow" -} -"Zimbabwe"{ - $validColor = "Green" - $validColor = "DarkGray" - $validColor = "White" - $invalidColor = "Red" - $cautionColor = "Yellow" -} -"Ã…land Islands"{ - $validColor = "Blue" - $invalidColor = "Red" - $cautionColor = "DarkYellow" -} - Default { - $validColor = "Green" - $invalidColor = "Red" - $cautionColor = "Yellow" - } - }; #end Switch Chromatic - - $noRecord = $False - $title = $PRtitle -split ": " - if ($title[1]) { - $title = $title[1] -split " " - } else { - $title = $title -split " " - } - $Submitter = (($clip | Select-String "wants to merge") -split " ")[0] - $InstallerType = Get-YamlValue InstallerType - - #Split the title by spaces. Try extracting the version location as the next item after the word "version", and if that fails, use the 2nd to the last item, then 3rd to last, and 4th to last. For some reason almost everyone puts the version number as the last item, and GitHub appends the PR number. - $prVerLoc =($title | Select-String "version").linenumber - #Version is on the line before the line number, and this set indexes with 1 - but the following array indexes with 0, so the value is automatically transformed by the index mismatch. - try { - [System.Version]$prVersion = Get-YamlValue PackageVersion $clip -replace "'","" -replace '"','' - } catch { - try { - $prVersion = Get-YamlValue PackageVersion $clip -replace "'","" -replace '"','' - } catch { - try { - [System.Version]$prVersion = Get-YamlValue PackageVersion $clip - } catch { - if ($null -ne $PRVerLoc) { - try { - [System.Version]$prVersion = $title[$prVerLoc] - } catch { - [string]$prVersion = $title[$prVerLoc] - } - } else { - #Otherwise we have to go hunting for the version number. - try { - [System.Version]$prVersion = $title[-1] - } catch { - try { - [System.Version]$prVersion = $title[-2] - } catch { - try { - [System.Version]$prVersion = $title[-3] - } catch { - try { - [System.Version]$prVersion = $title[-4] - } catch { - #If it's not a semantic version, guess that it's the 2nd to last, based on the above logic. - [string]$prVersion = $title[-2] - } - } - } - }; #end try - }; #end try - }; #end if null - }; #end try - }; #end try - - #Get the PackageIdentifier and alert if it matches the auth list. - $PackageIdentifier = "" - try { - $PackageIdentifier = Get-YamlValue PackageIdentifier $clip -replace '"',"" - } catch { - $PackageIdentifier = (Get-CleanClip $PRtitle); -replace '"',"" - } - $matchColor = $validColor - - - - - - Write-Host -nonewline -f $matchColor " | $(Get-Date -Format T) | $PR | $(Get-PadRight $PackageIdentifier) | " - - #Variable effervescence - $prAuth = "+" - $Auth = "A" - $Review = "R" - $WordFilter = "W" - $AgreementAccept = "G" - $AnF = "F" - $InstVer = "I" - $ListingDiff = "D" - $NumVersions = 99 - $PRvMan = "P" - $Approve = "+" - - $WinGetOutput = Find-WinGetPackage $PackageIdentifier | where {$_.id -eq $PackageIdentifier} - $ManifestVersion = $WinGetOutput.version - $ManifestVersionParams = ($ManifestVersion -split "[.]").count - $prVersionParams = ($prVersion -split "[.]").count - - - $AuthMatch = $AuthList | Where-Object {$_.PackageIdentifier -eq $PackageIdentifier} - - if ($AuthMatch) { - $AuthAccount = $AuthMatch.GitHubUserName | Sort-Object -Unique - } - - if ($null -eq $WinGetOutput) { - $PRvMan = "N" - $matchColor = $invalidColor - $Approve = "-!" - if ($noNew) { - $noRecord = $True - } else { - Add-PRToQueue -PR $PR - # if ($title[-1] -match $hashPRRegex) { - # if ((Get-Command Get-TrackerVMValidate).name) { - #Add-PRToQueue -PR $PR - # Get-TrackerVMValidate -Silent -InspectNew - # } else { - # Get-Sandbox ($title[-1] -replace"#","") - # }; #end if Get-Command - # }; #end if title - }; #end if noNew - } - Write-Host -nonewline -f $matchColor "$(Get-PadRight $PRVersion.toString() 14) | " - $matchColor = $validColor - - - - - if ($AuthMatch) { - $strictness = $AuthMatch.authStrictness | Sort-Object -Unique - $matchVar = "" - $matchColor = $cautionColor - $AuthAccount -split "/" | where {$_ -notmatch "Microsoft"} | %{ - #write-host "This $_ Submitter $Submitter" - if ($_ -eq $Submitter) { - $matchVar = "matches" - $Auth = "+" - $matchColor = $validColor - } - foreach ($User in ((Invoke-GitHubPRRequest -PR $PR -Type reviews -Output Content).user.login | select -Unique)) { - if ($Submitter -match $User) { - $matchVar = "preapproved" - $Auth = "+" - $matchColor = $validColor - } - } - - } - - if ($matchVar -eq "") { - $matchVar = "does not match" - $Auth = "-" - $matchColor = $invalidColor - } - if ($strictness -eq "must") { - $Auth += "!" - } - } - if ($Auth -eq "-!") { - if (!$WhatIf) { - Get-PRApproval -PR $PR -PackageIdentifier $PackageIdentifier - } - } - Write-Host -nonewline -f $matchColor "$Auth | " - $matchColor = $validColor - - - - - - $ReviewMatch = $ReviewList | Where-Object {$_.PackageIdentifier -match $PackageIdentifier } - if ($ReviewMatch) { - $Review = $ReviewMatch.Reason | Sort-Object -Unique - $matchColor = $cautionColor - } - - Write-Host -nonewline -f $matchColor "$Review | " - $matchColor = $validColor - - - - #In list, matches PR - explicit pass - #In list, PR has no Installer.yaml - implicit pass - #In list, missing from PR - block - #In list, mismatch from PR - block - #Not in list or PR - pass - #Not in list, in PR - alert and pass? - #Check previous version for omission - depend on wingetbot for now. - $AgreementUrlFromList = ($AgreementsList | where {$_.PackageIdentifier -eq $PackageIdentifier}).AgreementUrl - if ($AgreementUrlFromList) { - $AgreementUrlFromClip = Get-YamlValue AgreementUrl $clip -replace '"',"" - if ($AgreementUrlFromClip -eq $AgreementUrlFromList) { - #Explicit Approve - URL is present and matches. - $AgreementAccept = "+!" - } else { - #Explicit mismatch - URL is present and does not match, or URL is missing. - $AgreementAccept = "-!" - if (!$WhatIf) { - Reply-ToPR -PR $PR -CannedMessage AgreementMismatch -UserInput $AgreementUrlFromList -Silent - } - } - } else { - $AgreementAccept = "+" - #Implicit Approve - your AgreementsUrl is in another file. Can't modify what isn't there. - } - Write-Host -nonewline -f $matchColor "$AgreementAccept | " - $matchColor = $validColor - - - - - - - - - if (($PRtitle -notmatch "Automatic deletion") -AND - ($PRtitle -notmatch "Delete") -AND - ($PRtitle -notmatch "Remove") -AND - ($AgreementAccept -notmatch "[+]")) { - - $WordFilterMatch = $WordFilterList | ForEach-Object {($Clip -match $_) -notmatch "Url" -notmatch "Agreement"} - - if ($WordFilterMatch) { - $WordFilter = "-!" - $Approve = "-!" - $matchColor = $invalidColor - if (!$WhatIf) { - Reply-ToPR -PR $PR -CannedMessage WordFilter -UserInput $WordFilterMatch -Silent - } - } - } - Write-Host -nonewline -f $matchColor "$WordFilter | " - $matchColor = $validColor - - - - - - - if ($null -ne $WinGetOutput) { - if (($PRvMan -ne "N") -AND - ($PRtitle -notmatch (($DisplayVersionExceptionList) -join " ")) -AND - ($PRtitle -notmatch "Automatic deletion") -AND - ($PRtitle -notmatch "Delete") -AND - ($PRtitle -notmatch "Remove")) { - $DisplayVersion = Get-YamlValue DisplayVersion -clip $clip - $DeveloperIsAuthor = (((Get-YamlValue PackageIdentifier -clip $clip) -split ".") -eq $Submitter) - $InstallerMatch = ($InstallerUrl -split "/") -match $Submitter - - if ($DisplayVersion) { - if ($DisplayVersion -eq $prVersion) { - $matchColor = $invalidColor - $AnF = "-" - if (!$WhatIf) { - Reply-ToPR -PR $PR -CannedMessage AppsAndFeaturesMatch -UserInput $Submitter -Policy $Labels.NAF -Silent - Add-PRToRecord -PR $PR -Action $Actions.Feedback -Title $PRtitle - } - } - } - - # if (!($DeveloperIsAuthor)) { - # if ($InstallerMatch) { - # $matchColor = $invalidColor - # $AnF = "-" - # Reply-ToPR -PR $PR -CannedMessage InstallerMatchesSubmitter -UserInput $Submitter -Policy $Labels.NAF -Silent - # Add-PRToRecord -PR $PR -Action $Actions.Feedback -Title $PRtitle - # } - # } - } - } -<# - #> - Write-Host -nonewline -f $matchColor "$AnF | " - $matchColor = $validColor - - - - - if (($PRvMan -ne "N") -AND - ($PRtitle -notmatch "Automatic deletion") -AND - ($PRtitle -notmatch "Delete") -AND - ($PRtitle -notmatch "Remove")) { - try { - if ([bool]($clip -match "InstallerUrl")) { - $InstallerUrl = Get-YamlValue InstallerUrl -clip $clip - #write-host "InstallerUrl: $InstallerUrl $installerMatches prVersion: -PR $PRVersion" -f "blue" - $installerMatches = [bool]($InstallerUrl | Select-String $PRVersion) - if (!($installerMatches)) { - #Matches when the dots are removed from semantec versions in the URL. - $installerMatches2 = [bool]($InstallerUrl | Select-String ($prVersion -replace "[.]","")) - if (!($installerMatches2)) { - $matchColor = $invalidColor - $InstVer = "-" - } - } - } - } catch { - $matchColor = $invalidColor - $InstVer = "-" - }; #end try - }; #end if PRvMan - - try { - if (($prVersion = Get-YamlValue PackageVersion $clip) -match " ") { - $matchColor = $invalidColor - $InstVer = "-!" - } - }catch{ - $null = (Get-Process) #This section intentionally left blank. - } - - Write-Host -nonewline -f $matchColor "$InstVer | " - $matchColor = $validColor - - - - - - if (($PRvMan -ne "N") -AND - (($PRtitle -match "Automatic deletion") -OR - ($PRtitle -match "Delete") -OR - ($PRtitle -match "Remove"))) {#Removal PR - #$Versions = - $NumVersions = ($WinGetOutput.AvailableVersions | sort).count - if (($prVersion -eq $ManifestVersion) -OR ($NumVersions -eq 1)) { - $matchColor = $invalidColor - if (!$WhatIf) { - Reply-ToPR -PR $PR -CannedMessage VersionCount -UserInput $Submitter -Silent -Policy "[Policy] $($Labels.NAF)`n[Policy] $($Labels.HVL)" -Output Silent - Add-PRToRecord -PR $PR -Action $Actions.Feedback -Title $PRtitle - $NumVersions = "L" - } - } - } else {#Addition PR - $GLD = (Get-ListingDiff $clip | Where-Object {$_.SideIndicator -eq "<="}).installer.yaml #Ignores when a PR adds files that didn't exist before. - if ($null -ne $GLD) { - if ($GLD -eq "Error") { - $ListingDiff = "E" - $matchColor = $invalidColor - } else { - $ListingDiff = "-!" - $matchColor = $cautionColor - if (!$WhatIf) { - Reply-ToPR -PR $PR -CannedMessage ListingDiff -UserInput $GLD -Silent - Invoke-GitHubPRRequest -PR $PR -Method POST -Type comments -Data "[Policy] $Labels.NAF" -Output Silent - Add-PRToRecord -PR $PR -Action $Actions.Feedback -Title $PRtitle - }#if Whatif - }#end if GLD - }#end if null - }#end if PRvMan - Write-Host -nonewline -f $matchColor "$ListingDiff | " - Write-Host -nonewline -f $matchColor "$NumVersions | " - $matchColor = $validColor - - - - - - if ($PRvMan -ne "N") { - if ($null -eq $PRVersion -or "" -eq $PRVersion) { - $noRecord = $True - $PRvMan = "Error:prVersion" - $matchColor = $invalidColor - } elseif ($ManifestVersion -eq "Unknown") { - $noRecord = $True - $PRvMan = "Error:ManifestVersion" - $matchColor = $invalidColor - } elseif ($null -eq $ManifestVersion) { - $noRecord = $True - $PRvMan = $WinGetOutput - $matchColor = $invalidColor - } elseif ($prVersion -gt $ManifestVersion) { - $PRvMan = $ManifestVersion.toString() - } elseif ($prVersion -lt $ManifestVersion) { - $PRvMan = $ManifestVersion.toString() - $matchColor = $cautionColor - } elseif ($prVersion -eq $ManifestVersion) { - $PRvMan = "=" - } else { - $noRecord = $True - $PRvMan = $WinGetOutput - }; - }; - - - if (($Approve -eq "-!") -or - ($Auth -eq "-!") -or - ($AnF -eq "-") -or - ($InstVer -eq "-!") -or - ($prAuth -eq "-!") -or - ($Review -ne "R") -or - ($ListingDiff -eq "-!") -or - ($NumVersions -eq 1) -or - ($NumVersions -eq "L") -or - ($WordFilter -eq "-!") -or - ($AgreementAccept -eq "-!") -or - ($PRvMan -eq "N")) { - #-or ($PRvMan -match "^Error") - $matchColor = $cautionColor - $Approve = "-!" - $noRecord = $True - } - if ($WhatIf) { - $Approve += "W" - } - - $PRvMan = Get-PadRight $PRvMan 14 - Write-Host -nonewline -f $matchColor "$PRvMan | " - $matchColor = $validColor - - - - - - if ($PrePipeline -eq $false) { - if ($Approve -eq "+") { - if (!$WhatIf) { - $Approve = Approve-PR -PR $PR - Add-PRToRecord -PR $PR -Action $Actions.Approved -Title $PRtitle - } - } - } - - Write-Host -nonewline -f $matchColor "$Approve | " - Write-Host -f $matchColor "" - - $oldclip = $PRtitle - }; #end if Compare-Object - }; #end if PRtitle - Start-Sleep 1 - }; #end while Count - $Count-- -}; #end function - -Function Get-RunPRWatchAutomation { - param( - $SleepDuration = 5, - $Preset = "Approval2", - $Results = (Get-SearchGitHub -Preset $Preset).number - ) - Write-Output "$(Get-Date -Format T) Starting $Preset with $($Results.length) Results" - $Results | %{ - write-output "$(Get-Date): $_"; - Get-PRManifest -PR $_ | clip; - sleep $SleepDuration - } - Write-Output "$(Get-Date -Format T) Completing $Preset with $($Results.length) Results" -} - -#Third tab -Function Get-WorkSearch { - param( - $PresetList = @("ToWork"),#Approval"," - $Days = 7 - ) - Foreach ($Preset in $PresetList) { - $Page = 1 - While ($true) { - $line = 0 - $PRs = (Get-SearchGitHub -Preset $Preset -Page $Page -NoLabels -nBMM) - Write-Output "$(Get-Date -f T) $Preset Page $Page beginning with $Count Results" - $PRs = $PRs | where {$_.labels} | where {$_.number -notin (Get-Status).pr} - - Foreach ($FullPR in $PRs) { - $PR = $FullPR.number - Get-TrackerProgress -PR $PR $MyInvocation.MyCommand $line $PRs.length - $line++ - if ($Labels.HVL -notin $FullPR.labels.name) { - if (($FullPR.title -match "Remove") -OR - ($FullPR.title -match "Delete") -OR - ($FullPR.title -match "Automatic deletion")){ - Get-GitHubPreset CheckInstaller -PR $PR - } - } - $Comments = (Invoke-GitHubPRRequest -PR $PR -Type comments -Output content) - if ($Preset -eq "Approval"){ - if (Get-NonstandardPRComments -PR $PR -comments $Comments.body){ - Open-PRInBrowser -PR $PR - } else { - Open-PRInBrowser -PR $PR -FIles - } - } elseif ($Preset -eq "Defender"){ - Get-GitHubPreset -Preset LabelAction -PR $PR - } else {#ToWork etc - $Comments = ($Comments | select created_at,@{n="UserName";e={$_.user.login -replace "\[bot\]"}},body) - $State = (Get-PRStateFromComments -PR $PR -Comments $Comments) - $LastState = $State[-1] - if ($LastState.event -eq "DefenderFail") { - Get-PRLabelAction -PR $PR - } elseif ($LastState.event -eq "LabelAction") { - Get-GitHubPreset -Preset LabelAction -PR $PR - Open-PRInBrowser -PR $PR - } else { - if ($Comments[-1].UserName -ne $GitHubUserName) { - if ($LastState.event -eq "PreValidation") { - Get-GitHubPreset -Preset LabelAction -PR $PR - } - Open-PRInBrowser -PR $PR - } - }#end if LastCommenter - }#end if Preset - }#end foreach FullPR - Read-Host "$(Get-Date -f T) $Preset Page $Page complete with $Count Results - press ENTER to continue..." - $Page++ - }#end While Count - }#end Foreach Preset - Write-Progress -Activity $MyInvocation.MyCommand -Completed -}#end Get-WorkSearch - -#Automation tools -Function Get-GitHubPreset { - param( - [ValidateSet("Approved","AutomationBlock","BadPR","Blocking","CheckInstaller","Closed","Completed","DefenderFail","DriverInstall","Duplicate","Feedback","IdleMode","IEDSMode","InstallerNotSilent","InstallerMissing","LabelAction","ManuallyValidated","MergeConflicts","NetworkBlocker","NoInstallerChange","OneManifestPerPR","PRNoYamlFiles","PackageUrl","Paths","PossibleDuplicate","Project","RestrictedSubmitter","ResetApproval","Retry","Squash","Timeclock","Validating","VedantResetPR","WorkSearch","Waiver")][string]$Preset, - $PR = (Get-Clipboard), - $CannedMessage = $Preset, - $UserInput, - [Switch]$Force, - $out = "" - ) - if (($Preset -eq "GitHubStatus") -OR - ($Preset -eq "IdleMode") -OR - ($Preset -eq "IEDSMode") -OR - ($Preset -eq "Timeclock") -OR - ($Preset -eq "Validating") -OR - ($Preset -eq "WorkSearch")) { - $Force = $True - $out += $Preset; - } - - if (($PR.ToString().length -eq 6) -OR $Force) { - Switch ($Preset) { - $Actions.Approved { - $out += Approve-PR -PR $PR; - Add-PRToRecord -PR $PR -Action $Preset - } - "AutomationBlock" { - Add-PRToRecord -PR $PR -Action $Actions.Blocking - $out += Reply-ToPR -PR $PR -CannedMessage AutomationBlock -Policy $Labels.NB - } - $Actions.Blocking { - Add-PRToRecord -PR $PR -Action $Actions.Blocking - $out += Invoke-GitHubPRRequest -PR $PR -Method POST -Type comments -Data "[Policy] $($Labels.NB)" - } - "CheckInstaller" { - $Pull = (Invoke-GitHubPRRequest -PR $PR -Type files -Output content -JSON) - $PullInstallerContents = (Get-DecodeGitHubFile ((Invoke-GitHubRequest -Uri $Pull.contents_url[0] -JSON).content)) - $Url = (Get-YamlValue -StringName InstallerUrl -clip $PullInstallerContents) - $out = "" - try { - $InstallerStatus = Check-PRInstallerStatusInnerWrapper $Url - $out = "Status Code: $InstallerStatus" - }catch{ - $out = $error[0].Exception.Message - } - $Body = "URL: $Url `n"+$out + "`n`n(Automated message - build $build)" - #If ($Body -match "Response status code does not indicate success") { - #$out += Get-GitHubPreset InstallerMissing -PR $PR - #} #Need this to only take action on new PRs, not removal PRs. - $out = $out += Invoke-GitHubPRRequest -PR $PR -Method Post -Type comments -Data $Body -Output StatusDescription - } - "Completed" { - $out += Reply-ToPR -PR $PR -Body "This package installs and launches normally in a Windows 10 VM." -Policy $Labels.MV - } - $Actions.Closed { - if ($UserInput) { - Add-PRToRecord -PR $PR -Action $Preset - $out += Invoke-GitHubPRRequest -PR $PR -Type comments -Output StatusDescription -Method POST -Data "Close with reason: $UserInput;" - } else { - Write-Output "-UserInput needed to use preset $preset" - } - } - "DefenderFail" { - Add-PRToRecord -PR $PR -Action $Actions.Blocking - $out += Get-CannedMessage -Response DefenderFail -NoClip -NotAutomated - #$out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy "Needs-Attention`n[Policy] $($Labels.VDE)" - } - "DriverInstall" { - Add-PRToRecord -PR $PR -Action $Actions.Blocking - $out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy $Labels.DI - } - "Duplicate" { - if ($UserInput -match "[0-9]{5,6}") { - Get-GitHubPreset -Preset Closed -PR $PR -UserInput "Duplicate of #$UserInput" - } else { - Write-Output "-UserInput PRNumber needed to close as duplicate." - } - } - $Actions.Feedback { - Add-PRToRecord -PR $PR -Action $Preset - if ($UserInput) { - $out += Reply-ToPR -PR $PR -Body $UserInput -Policy $Labels.NAF - } else { - Write-Output "-UserInput needed to use preset $preset" - } - } - "GitHubStatus" { - return (Invoke-GitHubRequest -Uri https://www.githubstatus.com/api/v2/summary.json -JSON) | Select-Object @{n="Status";e={$_.incidents[0].status}},@{n="Message";e={$_.incidents[0].name+" ("+$_.incidents.count+")"}} - #$out += $Preset; - } - "IEDSMode" { - Get-TrackerVMSetMode IEDS - } - "IdleMode" { - Get-TrackerVMSetMode Idle - } - "InstallerNotSilent" { - Add-PRToRecord -PR $PR -Action $Actions.Feedback - $out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy $Labels.NAF - } - "InstallerMissing" { - Add-PRToRecord -PR $PR -Action $Actions.Feedback - $out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy $Labels.NAF - } - "LabelAction" { - Get-PRLabelAction -PR $PR - } - "ManuallyValidated" { - $out += Reply-ToPR -PR $PR -Body "Completing validation." -Policy $Labels.MV - } - "MergeConflicts" { - Get-GitHubPreset -Preset Closed -PR $PR -UserInput "Merge Conflicts" - } - "NetworkBlocker" { - Write-Output "Use AutomationBlock instead." - } - "NoInstallerChange" { - $out += Reply-ToPR -PR $PR -Body "This PR doesn't modify any of the `InstallerUrl` nor `InstallerSha256` fields." -Policy $Labels.MV - } - "OneManifestPerPR" { - Add-PRToRecord -PR $PR -Action $Actions.Feedback - $out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy $Labels.NAF - Get-AddPRLabel -PR $PR -Label $Labels.BI - } - "PRNoYamlFiles" { - Add-PRToRecord -PR $PR -Action $Actions.Feedback - $out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy $Labels.NAF - Get-GitHubPreset -Preset MergeConflicts -PR $PR - } - "PackageUrl" { - Add-PRToRecord -PR $PR -Action $Actions.Feedback - $out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy $Labels.NAF - } - "PossibleDuplicate" { - $Pull = (Invoke-GitHubPRRequest -PR $PR -Type files -Output content -JSON) - $PullInstallerContents = (Get-DecodeGitHubFile ((Invoke-GitHubRequest -Uri $Pull.contents_url[0] -JSON).content)) - $Url = (Get-YamlValue -StringName InstallerUrl -clip $PullInstallerContents) - $PackageIdentifier = (Get-YamlValue -StringName PackageIdentifier -clip $PullInstallerContents) - $Version = (Find-WinGetPackage $PackageIdentifier | where {$_.ID -eq $PackageIdentifier}).Version - $out = ($PullInstallerContents -match $Version) - $UserInput = $out | where {$_ -match "http"} | where {$_ -notmatch "json"} - if ($UserInput) { - $UserInput = "InstallerUrl contains Manifest version instead of PR version:`n"+$UserInput + "`n`n(Automated message - build $build)" - $out += Reply-ToPR -PR $PR -Body $UserInput -Policy $Labels.NAF - Add-PRToRecord -PR $PR -Action Feedback - } - } - "Project" { - Add-PRToRecord -PR $PR -Action $Preset - } - "RestrictedSubmitter" { - Get-GitHubPreset -Preset Closed -PR $PR -UserInput "Restricted Submitter" - } - "ResetApproval" { - $out += Reply-ToPR -PR $PR -Body "Reset approval workflow." -Policy "Reset Feedback `n[Policy] $($Labels.VC) `n[Policy] $($Actions.Approved)" } - "Retry" { - Add-PRToRecord -PR $PR -Action $Preset - $out += Get-RetryPR -PR $PR - } - "Squash" { - Add-PRToRecord -PR $PR -Action $Preset - } - "Timeclock" { - Get-TimeclockSet - } - "Validating" { - Get-TrackerVMSetMode Validating - $PR = "" - } - "Waiver" { - Add-PRToRecord -PR $PR -Action $Preset - $out += Add-Waiver -PR $PR; - } - "WorkSearch" { - Get-WorkSearch - } - } - } else { - $out += "Error: $($PR[0..10])" - } - Write-Output "PR $($PR): $out" -} - -Function Get-PRLabelAction { #Soothing label action. - param( - [int]$PR, - $PRLabels = ((Invoke-GitHubPRRequest -PR $PR -Type labels -Output content -JSON).name), - $PRLabelActions = (Get-Content $LabelActionFile | ConvertFrom-Csv) - ) - Write-Output "PR $PR has labels $PRLabels" - if ($PRLabels -contains $Labels.VDE) { - $PRState = Get-PRStateFromComments $PR - if (($PRState | where {$_.event -eq "PreValidation"})[-1].created_at -lt (Get-Date).AddHours(-8)) {# -AND #Last Prevalidation was 8 hours ago. - #($PRState | where {$_.event -eq "AutoValEnd"})[-1].created_at -lt (Get-Date).AddHours(-12)) { #Last Run was 18 hours ago. - Get-GitHubPreset Retry -PR $PR - } - } else { - - Foreach ($Label in ($PRLabels -split " ")) { - $Logset = ($PRLabelActions | ? {$_.Label -match $Label}).Logset -split "\|" - $StringSet = ($PRLabelActions | ? {$_.Label -match $Label}).StringSet -split "\|" - $LengthSet = ($PRLabelActions | ? {$_.Label -match $Label}).LengthSet -split "\|" - Switch -wildcard ($Label) { - $Labels.403 { - $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet - if ($UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - Get-Autowaiver -PR $PR - } - $Labels.ANF { - $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet - if ($null -ne $UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - } - $Labels.BVE { - $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet -length 5 - if ($null -ne $UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - if ($UserInput -match $MagicStrings[3]) { - #Get-GitHubPreset -PR $PR -Preset AutomationBlock - } - } - $Labels.EAT { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 36 -SearchString $MagicStrings[0] -length 4 - if ($UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - if ($UserInput -match $MagicStrings[3]) { - Get-GitHubPreset -PR $PR -Preset AutomationBlock - } - } - $Labels.EHM { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 44 -SearchString $MagicStrings[7] -length 3 - if ($UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } # write-host "a" - # $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet -Length $LengthSet - # write-host "b" - # if ($null -ne $UserInput) { - # write-host "c" - # Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - # write-host "d" - # Get-UpdateHashInPR2 -PR $PR -Clip $UserInput - # write-host "e" - # } - # write-host "f" - } - $Labels.EIA { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 53 -SearchString $MagicStrings[6] -length 5 - if ($null -eq $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 25 -SearchString $MagicStrings[0] -Length 10 - } - if ($null -eq $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 57 -SearchString $MagicStrings[0] -Length 10 - } - if ($null -eq $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 42 -SearchString $MagicStrings[0] -Length 10 - } - if ($UserInput) { - $UserInput = Get-AutomatedErrorAnalysis $UserInput - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - Get-GitHubPreset -PR $PR -Preset CheckInstaller - } - } - $Labels.HVF { - Get-AutoValLog -PR $PR - } - $Labels.HVL { - Approve-PR -PR $PR - } - $Labels.HVR { - Approve-PR -PR $PR - } - $Labels.IE { - $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet - if ($UserInput) { - if (($MagicStrings[5] -in $UserInput) -OR ("Server Unavailable" -in $UserInput)) { - Get-GitHubPreset -PR $PR Retry - } - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - } - $Labels.IEDS { - Get-AutoValLog -PR $PR - Add-PRToQueue -PR $PR - } - $Labels.IEM { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 15 -SearchString $MagicStrings[1] - if ($null -match $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 30 -SearchString $MagicStrings[13] - } - if ($null -match $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 25 -SearchString $MagicStrings[4] -length 7 - } - if ($null -match $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 39 -SearchString $MagicStrings[4] -length 7 - } - if ($null -match $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 42 -SearchString $MagicStrings[9] -MatchOffset -3 -Length 4 - } - if ($null -match $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 46 -SearchString $MagicStrings[9] -MatchOffset -3 -Length 4 - } - if ($null -match $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 47 -SearchString $MagicStrings[9] -MatchOffset -3 -Length 4 - } - if ($UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - if ($UserInput -match "Sequence contains no elements") {#Reindex fixes this. - Reply-ToPR -PR $PR -CannedMessage SequenceNoElements - $PRtitle = ((Invoke-GitHubPRRequest -PR $PR -Type "" -Output content -JSON).title) - if (($PRtitle -match "Automatic deletion") -OR ($PRtitle -match "Remove")) { - Get-GitHubPreset -Preset Completed -PR $PR - } - } - } - } - $Labels.IEU { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 25 -SearchString $MagicStrings[1] - if ($UserInput) { - if ($MagicStrings[5] -in $UserInput) { - Get-GitHubPreset -PR $PR Retry - } - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - } - $Labels.LVR { - Approve-PR -PR $PR - } - $Labels.MIVE { - $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet - if ($null -ne $UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - } - $Labels.MMC { - Get-VerifyMMC -PR $PR - } - $Labels.MVE {#One of these is VER. - $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet - if ($null -ne $UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - } - $Labels.MVE { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 42 -SearchString $MagicStrings[2] - if ($null -eq $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 42 -SearchString $MagicStrings[1] - } - if ($null -ne $UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - } - $Labels.NMM { - Approve-PR -PR $PR - Get-MergePR -PR $PR - } - $Labels.NP { - if ((($PRLabels -join " ") -notmatch $Labels.MA)) { - Add-PRToQueue -PR $PR - } - } - $Labels.PD { - Get-DuplicateCheck -PR $PR - } - $Labels.PRE { - if ($null -match $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 47 -SearchString $MagicStrings[12] -Length 2 - } - if ($null -match $UserInput) { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 33 -SearchString $MagicStrings[12] -Length 2 - } - $UserInput += Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet - - if ($UserInput -match "The pull request contains more than one manifest") { - Get-GitHubPreset -Preset OneManifestPerPR -PR $PR - } - if ($UserInput -match "The pull request doesn't include any manifest files yaml") { - Get-GitHubPreset -Preset PRNoYamlFiles -PR $PR - } - if ($UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - } - $Labels.UVE { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 32 -SearchString "Validation result: Failed" - Get-GitHubPreset -PR $PR -Preset CheckInstaller - if ($UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - Get-Autowaiver -PR $PR - } - $Labels.VC { - } - $Labels.VD { - Get-Autowaiver -PR $PR - } - $Labels.VEE { - Get-AutoValLog -PR $PR - Add-PRToQueue -PR $PR - } - $Labels.VIE { - Get-AutoValLog -PR $PR - Get-Autowaiver -PR $PR - } - $Labels.VMD { - $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 25 -SearchString $MagicStrings[1] - if ($UserInput) { - Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - } - $Labels.VMC { - } - $Labels.VNE { - Get-Autowaiver -PR $PR -<# - $Title = ((Invoke-GitHubPRRequest -PR $PR -Type "" -Output content -JSON).title); - foreach ($Waiver in (Get-ValidationData -Property AutoWaiverLabel)) { - if ($Title -match $Waiver.PackageIdentifier) { - Get-GitHubPreset -PR $PR Waiver - } - } - #> - } - $Labels.VSE { - Get-AutoValLog -PR $PR - Add-PRToQueue -PR $PR - } - $Labels.VUF { - Get-AutoValLog -PR $PR - Add-PRToQueue -PR $PR - } - $Labels.VUE { - Get-Autowaiver -PR $PR - } - $Labels.VUU { - Get-Autowaiver -PR $PR - } - "Policy-Test-*" { - Get-Autowaiver -PR $PR - } - }#end Switch Label - }#end Foreach Label - }#end if PRLabels -} - -Function Get-ScheduledRun { - [console]::beep(500,250);[console]::beep(500,250);[console]::beep(500,250) #Beep 3x to alert the PC user. - $Host.UI.RawUI.WindowTitle = "Periodic Run" - - #Check for yesterday's report and create if missing. - $Month = (Get-Culture).DateTimeFormat.GetMonthName((Get-Date).Month) - md "C:\ManVal\logs\$Month" -ErrorAction SilentlyContinue - $Yesterday = (get-date).AddDays(-1) - $YesterdayFormatted = (get-date $Yesterday -f MMddyy) - $ReportName = "$logsFolder\$Month\$YesterdayFormatted-Report.txt" - if (Get-Content $ReportName -ErrorAction SilentlyContinue) { - Write-Host "Report for $YesterdayFormatted found." - } else { - Write-Host "Report for $YesterdayFormatted not found." - Get-PRFullReport -Today $YesterdayFormatted - } - - Get-StaleVMCheck - - $PresetList = ("Defender","Domain","Duplicate","HVR","IEDS","LVR","MMC","NMM","ToWork3","Approval","Approval2","VCMA") - foreach ($Preset in $PresetList) { - $Results = (Get-SearchGitHub -Preset $Preset -nBMM).number - Write-Output "$(Get-Date -Format T) Starting $Preset with $($Results.length) Results" - if ($Results) { - switch ($Preset) { - "Approval" { - $Results = (Get-SearchGitHub Approval -NewPackages).number - $Results | %{Add-PRToQueue -PR $_} - } - "Approval2" { - $Results | %{ - write-output "$(get-date): $_"; - Get-PRManifest -pr $_ | clip; - sleep 5 - } - } - "IEDS" { - $Results | %{Add-PRToQueue -PR $_} - } - "VCMA" { - $GitHubResults = Get-SearchGitHub VCMA - $AnHourAgo = (get-date).AddHours(-1) - $Results = ($GitHubResults | where {[TimeZone]::CurrentTimeZone.ToLocalTime($_.updated_at) -lt $AnHourAgo}).number - #Time, as a number, is always increasing. So the past is always less than the present, which is always less than the future. - $Results | %{Approve-PR -PR $_;Get-MergePR -PR $_} - } - Default { - $Results | %{Get-PRLabelAction -PR $_ } - } - }#end switch Preset - }#end if Results12 - Write-Output "$(Get-Date -Format T) Completing $Preset with $($Results.length) Results" - }#End for preset - - - Write-Output "$(Get-Date -Format T) Starting PushMePRYou with $($PushMePRWho.count) Results" - $PushMePRWho | %{write-host $_.Author;Get-PushMePRYou -Author $_.Author -MatchString $_.MatchString} - Write-Output "$(Get-Date -Format T) Completing PushMePRYou with $($PushMePRWho.count) Results" - if (([int](get-date -f mm) -eq 20) -OR ([int](get-date -f mm) -eq 50)) { - sleep (60-(get-date -f ss))#Sleep out the minute. - } -} - -Function Get-StaleVMCheck { - $VMStatus = gc $statusFile | convertfrom-csv - $CheckVMStatus = ($VMStatus | where {$_.status -ne "Ready"}) - Write-Output "$(Get-Date -Format T) Starting stale VM check with $($CheckVMStatus.count) Results" - foreach ($vm in $CheckVMStatus) { - $PRState = Invoke-GitHubPRRequest -PR $VM.pr -Type "" -Output Content; - $PRLabels = ((Invoke-GitHubPRRequest -PR $PR -Type "labels" -Output content -JSON).name) - if (($PRState.state -ne "open") -OR - (($PRLabels -join " ") -match $Labels.CR)){ - Get-TrackerVMSetStatus -Status Complete -VM $VM.vm - } - } - Write-Output "$(Get-Date -Format T) Completing stale VM check with $($CheckVMStatus.count) Results" -} - -Function Get-LogFromCommitFile { - param( - $PR, - $LogNumbers, - $StringNumbers, - $Length, - [switch]$WhatIf - ) - Foreach ($Log in $LogNumbers) { - $n = 0; - if ($WhatIf) { - write-host $log - } - while ($n -le ($StringNumbers.Count -1)) { - if ($WhatIf) { - write-host "n $n - string $($MagicStrings[($StringNumbers[$n])]) - UserInput $UserInput" - } - try { - if ($WhatIf) { - write-host "Get-LineFromBuildResult -PR $PR -LogNumber $Log -SearchString $($MagicStrings[$StringNumbers[$n]]) -Length $Length" - } else { - $UserInput += Get-LineFromBuildResult -PR $PR -LogNumber $Log -SearchString $MagicStrings[$StringNumbers[$n]] -Length $Length - } - } catch {} - $n++ - } - } - - if ($WhatIf) { - write-host "return $UserInput" - } else { - return $UserInput - } -} - -Function Add-Waiver { - param( - $PR, - $Labels = ((Invoke-GitHubPRRequest -PR $PR -Type "labels" -Output content -JSON).name) - ) - #$actions = "Manual","Waiver","Approved" - $actions = "Manual","Manual","Approved" - Foreach ($Label in $Labels) { - $Waiver = "" - Switch ($Label) { - $Labels.EAT { - Get-GitHubPreset -Preset Completed -PR $PR - Add-PRToRecord -PR $PR -Action $actions[0] - $Waiver = $Label - } - $Labels.PT27 { - Add-PRToRecord -PR $PR -Action $actions[0] - $Waiver = $Label - } - $Labels.PT12 { - Add-PRToRecord -PR $PR -Action $actions[0] - $Waiver = $Label - } - $Labels.PT23 { - Add-PRToRecord -PR $PR -Action $actions[0] - $Waiver = $Label - } - $Labels.VC { - Get-GitHubPreset -Preset Approved -PR $PR - Add-PRToRecord -PR $PR -Action $actions[2] - } - $Labels.VD { - Add-PRToRecord -PR $PR -Action $actions[0] - $Waiver = $Label - } - $Labels.VEE { - Add-PRToRecord -PR $PR -Action $actions[0] - $Waiver = $Label - } - $Labels.403 { - Add-PRToRecord -PR $PR -Action $actions[1] - $Waiver = $Label - } - $Labels.VIE { - Add-PRToRecord -PR $PR -Action $actions[1] - $Waiver = $Label - } - $Labels.VNE { - Add-PRToRecord -PR $PR -Action $actions[1] - $Waiver = $Label - } - $Labels.VSE { - Add-PRToRecord -PR $PR -Action $actions[1] - $Waiver = $Label - } - $Labels.VUF { - Add-PRToRecord -PR $PR -Action $actions[1] - $Waiver = $Label - } - $Labels.VUE { - Add-PRToRecord -PR $PR -Action $actions[1] - $Waiver = $Label - } - $Labels.VR { - Get-GitHubPreset -Preset Completed -PR $PR - #Invoke-GitHubPRRequest -PR $PR -Method POST -Type labels -Data "Retry-1" - Add-PRToRecord -PR $PR -Action $actions[0] - } - $Labels.IEDS { - Get-GitHubPreset -Preset Completed -PR $PR - #Invoke-GitHubPRRequest -PR $PR -Method POST -Type labels -Data "Retry-1" - Add-PRToRecord -PR $PR -Action $actions[0] - } - } - if ($Waiver -ne "") { - $out = Get-CompletePR -PR $PR - Write-Output $out - }; #end if Waiver - }; #end Foreach Label -}; #end Add-Waiver - -Function Get-SearchGitHub { - param( - [ValidateSet("Approval","Approval2","Autowaiver","Blocking","Defender","Domain","Duplicate","HVR","IEDS","LVR","MMC","NMM","None","ToWork","ToWork2","ToWork3","VCMA")][string]$Preset = "Approval", - [Switch]$Browser, - $Url = "https://api.github.com/search/issues?page=$Page&q=", - $Author, #wingetbot - $Commenter, #wingetbot - $Title, - $ExcludeTitle, - [string]$Label, - $Page = 1, - [int]$Days, - [Switch]$BMM, - [Switch]$NewPackages, - [Switch]$nBMM, - [Switch]$IEDS, - [Switch]$NotWorked, - [Switch]$NoLabels, - [Switch]$AllowClosedPRs - ) - if ($Browser) { - $Url = "$GitHubBaseUrl/pulls?page=$Page&q=" - } - #Base settings - $Base = "repo:$Owner/$Repo+" - $Base = $Base + "is:pr+" - if (!($AllowClosedPRs)) { - $Base += "is:open+" - } - $Base += "draft:false+" - $Base += "sort:created-asc+" - - #Smaller blocks - $date = Get-Date (Get-Date).AddDays(-$Days) -Format "yyyy-MM-dd" - $Defender = "label:$($Labels.VDE)+" - $HaventWorked = "-commenter:$($GitHubUserName)+" - $HVR = "label:$($Labels.HVR)+" - $IEDSLabel = "label:$($Labels.IEDS)+" - $IEM = "label:$($Labels.IEM)+" - $LVR = "label:$($Labels.LVR)+" - $MA = "label:$($Labels.MA)+" - $MMC = "label:$($Labels.MMC)+" - $NA = "label:$($Labels.NA)+" - $NAF = "label:$($Labels.NAF)+" - $nBI = "-label:Blocking-Issue+" - $nHW = "-label:Hardware+" - $nIEDS = "-"+$IEDSLabel - $nMA = "-"+$MA - $NMM = "label:$($Labels.NMM)+" - $nMMC = "-"+$MMC - $nNA = "-"+$NA - $nNP = "-label:$($Labels.NP)+" - $nNRA = "-label:$($Labels.IOD)+" - $nNRA = "-label:$($Labels.IOI)+" - $nNRA = "-label:$($Labels.NRA)+" - $nNSA = "-label:$($Labels.NSA)+" - $NotPass = "-label:$($Labels.APP)+"#Hasn't psased pipelines - $nVC = "-"+$VC #Not Completed - $Recent = "updated:>$($date)+" - $VC = "label:$($Labels.VC)+"#Completed - $VD = "label:$($Labels.VD)+" - $VSA = "label:$($Labels.VSA)+" - - - #Building block settings - $Blocking = $nHW - $Blocking += $nNSA - $Blocking += "-label:$($Labels.AGR)+" - $Blocking += "-label:$($Labels.DI)+" - $Blocking += "-label:$($Labels.LBI)+" - $Blocking += "-label:$($Labels.NB)+" - $Blocking += "-label:$($Labels.PF)+" - $Blocking += "-label:$($Labels.RB)+" - $Blocking += "-label:$($Labels.SA)+" - - $Common = $nBI - $Common = $Common + "-"+$IEM - $Common = $Common + "-"+$Defender - - $Cna = $VC - $Cna = $Cna+ $nMA - - $Review1 = "-label:$($Labels.CR)+" - $Review1 += "-label:$($Labels.CLA)+" - $Review1 += $nNRA - - $Review2 = "-"+$NA - $Review2 = $Review2 + "-"+$NAF - $Review2 = $Review2 + "-label:$($Labels.NR)+" - - $Approvable = "-label:$($Labels.VMC)+" - $Approvable += "-label:$($Labels.VER)+" - $Approvable += "-label:$($Labels.MIVE)+" - $Approvable += "-label:$($Labels.PD)+" - $Approvable += "-label:$($Labels.UF)+" - - $Workable += "-label:$($Labels.LVR)+" - $Workable += "-label:$($Labels.HVR)+" - $Workable += "-label:$($Labels.VMC)+" - $Workable += "-label:$($Labels.BVE)+" - $Workable += "-label:$($Labels.UF)+" - $Workable += "-label:$($Labels.VCR)+" - $Workable += "-label:$($Labels.VSS)+" - - $PolicyTests = "-label:Policy-Test-1.1+"; - $PolicyTests += "-label:$($Labels.PT12)+" - $PolicyTests += "-label:Policy-Test-1.3+"; - $PolicyTests += "-label:Policy-Test-1.4+"; - $PolicyTests += "-label:Policy-Test-1.5+"; - $PolicyTests += "-label:Policy-Test-1.6+"; - $PolicyTests += "-label:Policy-Test-1.7+"; - $PolicyTests += "-label:Policy-Test-1.8+"; - $PolicyTests += "-label:Policy-Test-1.9+"; - $PolicyTests += "-label:Policy-Test-1.10+"; - $PolicyTests += "-label:Policy-Test-2.1+"; - $PolicyTests += "-label:Policy-Test-2.2+"; - $PolicyTests += "-label:$($Labels.PT23)+" - $PolicyTests += "-label:Policy-Test-2.4+"; - $PolicyTests += "-label:Policy-Test-2.5+"; - $PolicyTests += "-label:Policy-Test-2.6+"; - $PolicyTests += "-label:$($Labels.PT27)+" - $PolicyTests += "-label:Policy-Test-2.8+"; - $PolicyTests += "-label:Policy-Test-2.9+"; - $PolicyTests += "-label:Policy-Test-2.10+"; - $PolicyTests += "-label:Policy-Test-2.11+"; - $PolicyTests += "-label:Policy-Test-2.12+"; - - $Automatable = "-label:WSL+"; - $Automatable = "-label:$($Labels.UVE)+" - $Automatable = "-label:$($Labels.VUE)+" - $Automatable = "-label:$($Labels.OUF)+" - $Automatable = "-label:$($Labels.VHE)+" - $Automatable = "-label:$($Labels.403)+" - $Automatable = "-label:$($Labels.404)+" - $Automatable = "-label:$($Labels.ANA)+" - $Automatable = "-label:$($Labels.HW)+" - $Automatable = "-label:$($Labels.PRE)+" - $Automatable = "-label:$($Labels.MVE)+" - $Automatable = "-label:$($Labels.EHM)+" - $Automatable = "-label:$($Labels.ANF)+" - $Automatable = "-label:$($Labels.EIA)+" - $Automatable = "-label:$($Labels.VC)+" - $Automatable += "-"+$VD; - - #Composite settings - $Set1 = $Blocking + $Common + $Review1 - $Set2 = $Set1 + $Review2 - $Url += $Base - if ($Author) { - $Url += "author:$($Author)+" - } - if ($Commenter) { - $Url += "commenter:$($Commenter)+" - } - if ($Days) { - $Url += $Recent - } - if ($IEDS) { - $Url += $nIEDS - } - if ($Label) { - $Url += "label:$($Label)+" - } - if ($NotWorked) { - $Url += $HaventWorked - } - if ($NewPackages) { - $Url += "label:New-Package+" - } - if ($Title) { - $Url += "$Title in:title+" - } - if ($BMM) { - $Url += "label:$($Labels.BMM)+" - } - if ($nBMM) { - $Url += "-label:$($Labels.BMM)+" - } - switch ($Preset) { - "Approval"{ - $Url += $Cna - $Url += $Set2 #Blocking + Common + Review1 + Review2 - $Url += $Approvable - $Url += $Workable; - $Url += $nMMC; - } - "Approval2"{ - $Url += $Cna - $Url += $nNP - $Url += $Set2 #Blocking + Common + Review1 + Review2 - $Url += $Approvable - $Url += $Workable; - $Url += $nMMC; - } - "Defender"{ - $Url += $Defender - } - "Domain"{ - $Url += "label:$($Labels.VD)+" - } - "Duplicate"{ - $Url += "label:"+$Labels.PD+"+";#dupe - $Url += $nNRA - } - "Autowaiver"{ - $Url += $Set1 - $Url += $Workable - $Url += $nIEDS - $Url += $nVC - $Url += "label:$($Labels.EHM)+" - $Url += "label:$($Labels.MIVE)+" - $Url += "label:$($Labels.MVE)+" - $Url += "label:$($Labels.VEE)+" - $Url += "label:$($Labels.VNE)+" - $Url += "label:$($Labels.VIE)+" - $Url += "label:$($Labels.VSE)+" - $Url += "label:$($Labels.VUF)+" - $Url += "label:$($Labels.ANF)+" - $Url += $nBI - $Url += $nIOD - $Url += $nIOI - } - "IEDS" { - $Url += $IEDSLabel - $Url += $nBI - $Url += $Blocking - $Url += $NotPass - $Url += $nVC - } - "HVR"{ - $date = Get-Date (Get-Date).AddDays(-7) -Format "yyyy-MM-dd" - $createdDate = "created:<$($date)+" - $Url += $createdDate; - $Url += $HVR; - } - "LVR"{ - $date = Get-Date (Get-Date).AddDays(-7) -Format "yyyy-MM-dd" - $createdDate = "created:<$($date)+" - $Url += $createdDate; - $Url += $LVR; - } - "MMC"{ - $Url += $MMC; - } - "NMM"{ - $Url += $NMM; - } - "None"{ - } - "ToWork"{ - $Url += $Set1 #Blocking + Common + Review1 - $Url += $Workable; - #$Url += $Workable - } - "ToWork2"{ - $Url += $HaventWorked - $Url += "-"+$Defender - $Url += $Set1 #Blocking + Common + Review1 - $Url += $nVC - } - "ToWork3"{ - $Url += $HaventWorked - $Url += "-"+$Defender - $Url += $Set1 #Blocking + Common + Review1 - $Url += $nVC - $Url += $nMA - $Url += $nNA - } - "VCMA"{ - #$date = Get-Date (Get-Date).AddHours(-1) -Format "yyyy-MM-dd" - #$createdDate = "created:<$($date)+" - $Url += $createdDate; - $Url += $MA - $Url += $VC - $Url += $Set2 #Blocking + Common + Review1 + Review2 - $Url += $Approvable - $Url += $Workable; - $Url += $nMMC; - } - } - - if ($Browser) { - Start-Process $Url - } else { - $Response = Invoke-GitHubRequest $Url - $Response = ($Response.Content | ConvertFrom-Json).items - #$Response = $Response | ? {!(($_.labels.name -match $Labels.MA) -AND ($_.labels.name -match "Needs-Attention"))} - if ($ExcludeTitle) { - $Response = $Response | ? {$_.title -notmatch $ExcludeTitle} - } - if (!($NoLabels)) { - $Response = $Response | where {$_.labels} - } - return $Response - } -} - -Function Get-CannedMessage { - param( - [ValidateSet("AgreementMismatch","AppFail","Approve","AutomationBlock","AutoValEnd","AppsAndFeaturesNew","AppsAndFeaturesMissing","AppsAndFeaturesMatch","DriverInstall","DefenderFail","HashFailRegen","InstallerFail","InstallerMatchesSubmitter","InstallerMissing","InstallerNotSilent","NormalInstall","InstallerUrlBad","ListingDiff","ManValEnd","ManifestVersion","MergeFail","NoCause","NoExe","NoRecentActivity","NotGoodFit","OneManifestPerPR","Only64bit","PackageFail","PackageUrl","Paths","PendingAttendedInstaller","PolicyWrapper","PRNoYamlFiles","RemoveAsk","SequenceNoElements","Unattended","Unavailable","UrlBad","VersionCount","WhatIsIEDS","WordFilter")] - [string]$Response, - $UserInput=(Get-Clipboard), - [switch]$NoClip, - [switch]$NotAutomated - ) - [string]$Username = "@"+$UserInput.replace(" ","")+"," - switch ($Response) { - "AgreementMismatch" { - $out = "Hi $Username`n`nThis package uses Agreements, but this manifest's AgreementsUrl doesn't match the AgreementsUrl on file." - } - "AppsAndFeaturesNew" { - $out = "Hi $Username`n`nThis manifest adds a `DisplayVersion` to the `AppsAndFeaturesEntries` that isn't present in previous manifest versions. This entry should be added to the previous versions, or removed from this version." - } - "AppsAndFeaturesMissing" { - $out = "Hi $Username`n`nThis manifest removes the `DisplayVersion` from the `AppsAndFeaturesEntries`, which is present in previous manifest versions. This entry should be added to this version, to maintain version matching, and prevent the 'upgrade always available' situation with this package." - } - "AppsAndFeaturesMatch" { - $out = "Hi $Username`n`nThis manifest uses the same values for `DisplayVersion` and `PackageVersion`. This is not recommended, and the `DisplayVersion` should be removed." - } - "AppFail" { - $out = "Hi $Username`n`nThe application installed normally, but gave an error instead of launching:`n" - } - "Approve" { - $out = "Hi $Username`n`nDo you approve of these changes?" - } - "AutomationBlock" { - $out = "This might be due to a network block of data centers, to prevent automated downloads." - } - "UserAgentBlock" { - $out = "This might be due to user-agent throttling." - } - "AutoValEnd" { - $UserInput = $UserInput -join "`n" - $UserInput = "Automatic Validation ended with:`n```````n $UserInput`n```````n" - $out = Get-AutomatedErrorAnalysis $UserInput - } - "DriverInstall" { - $out = "Hi $Username`n`nThe installation is unattended, but installs a driver which isn't unattended:`nUnfortunately, installer switches are not usually provided for this situation. Are you aware of an installer switch to have the driver silently install as well?" - } - "DefenderFail" { - $out = "The package didn't pass a Defender or similar security scan. This might be a false positive and we can rescan tomorrow.." - } - "HashFailRegen" { - $out = "Closing to regenerate with correct hash." - } - "InstallerFail" { - $out = "Hi $Username`n`nThe installer did not complete:`n" - } - "InstallerMatchesSubmitter" { - $out = "Submitter username detected in InstallerUrl, but not in PackageIdentifier. Verify not a forked repository." - } - "InstallerMissing" { - $out = "Hi $Username`n`nHas the installer been removed?" - } - "InstallerNotSilent" { - $out = "Hi $Username`n`nThe installation isn't unattended. Is there an installer switch to have the package install silently?" - } - "ListingDiff" { - $out = "This PR omits these files that are present in the current manifest:`n> $UserInput" - } - "ManifestVersion" { - $out = "Hi $Username`n`nWe don't often see the `1.0.0` manifest version anymore. Would it be possible to upgrade this to the [1.5.0]($GitHubBaseUrl/tree/master/doc/manifest/schema/1.5.0) version, possibly through a tool such as [WinGetCreate](https://learn.microsoft.com/en-us/windows/package-manager/package/manifest?tabs=minschema%2Cversion-example), [YAMLCreate]($GitHubBaseUrl/blob/master/Tools/YamlCreate.ps1), or [Komac](https://github.com/russellbanks/Komac)? " - } - "ManValEnd" { - $UserInput = $UserInput -join "`n" - $UserInput = "Manual Validation ended with:`n```````n$UserInput`n```````n" - $out = Get-AutomatedErrorAnalysis $UserInput - } - "MergeFail" { - $out = "Merging failed with:`n> $UserInput" - } - "NoCause" { - $out = "I'm not able to find the cause for this error. It installs and runs normally on a Windows 10 VM." - } - "NoExe" { - $out = "Hi $Username`n`nThe installer doesn't appear to install any executables, only supporting files:`n`nIs this expected?" - } - "NoRecentActivity" { - $out = "No recent activity." - } - "NotGoodFit" { - $out = "Hi $Username`n`nUnfortunately, this package might not be a good fit for inclusion into the WinGet public manifests. Please consider using a local manifest (`WinGet install --manifest C:\path\to\manifest\files\`) for local installations. " - } - "NormalInstall" { - $out = "This package installs and launches normally in a Windows 10 VM." - } - "OneManifestPerPR" { - $out = "Hi $Username`n`nWe have a limit of 1 manifest change, addition, or removal per PR. This PR modifies more than one PR. Can these changes be spread across multiple PRs?" - } - "Only64bit" { - $out = "Hi $Username`n`nValidation failed on the x86 package, and x86 packages are validated on 32-bit OSes. So this might be a 64-bit package." - } - "PackageFail" { - $out = "Hi $Username`n`nThe package installs normally, but fails to run:`n" - } - "PackageUrl" { - $out = "Hi $Username`n`nCould you add a PackageUrl?" - } - "Paths" { - $out = "Please update file name and path to match this change." - } - "PendingAttendedInstaller" { - $out = "Pending:`n* https://github.com/microsoft/winget-cli/issues/910" - } - "PolicyWrapper" { - $out = "" - } - "PRNoYamlFiles" { - $out = "Hi $Username`n`nThis error means that this PR diff Master had no output. In other words, it's like a merge conflict.`n> The pull request doesn't include any manifest files yaml." - } - "RemoveAsk" { - $out = "Hi $Username`n`nThis package installer is still available. Why should it be removed?" - } - "SequenceNoElements" { - $out = "> Sequence contains no elements`n`n - This error means that this PR diff Master had no output. In other words, it's like a merge conflict." - } - "Unavailable" { - $out = "Hi $Username`n`nThe installer isn't available from the publisher's website:" - } - "Unattended" { - $out = "Hi $Username`n`nThe installation isn't unattended:`n`nIs there an installer switch to bypass this and have it install automatically?" - } - "UrlBad" { - $out = "Hi $Username`n`nI'm not able to find this InstallerUrl from the PackageUrl. Is there another page on the developer's site that has a link to the package?" - } - "VersionCount" { - $out = "Hi $Username`n`nThis manifest has the highest version number for this package. Is it available from another location? (This might be in error if the version is switching from semantic to string, or string to semantic.)" - } - "WhatIsIEDS" { - $out = "Hi $Username`n`nThe label `Internal-Error-Dynamic-Scan` is a blanket error for one of a number of internal pipeline errors or issues that occurred during the Dynamic Scan step of our validation process. It only indicates a pipeline issue and does not reflect on your package. Sorry for any confusion caused." - } - "WordFilter" { - $out = "This manifest contains a term that is blocked:`n`n> $UserInput" - } - } - if (!($NotAutomated)) { - $out += "`n`n(Automated response - build $build.)" - } - if ($NoClip) { - $out - } else { - $out |clip - } -} - -Function Get-AutomatedErrorAnalysis { - param( - $UserInput, - $Spacer = " | ", - $LineBreak = "`n" - ) - - #$UserSplit = $UserInput -replace "0x","" -replace "[^\w]"," " -split " " - $UserSplit = $UserInput -replace "0x"," " -replace "\)"," " -split " " - $UserSplit = $UserSplit | Sort-Object -Unique - - if ($UserInput -match "exit code" -OR - $UserInput -match "DeliveryOptimization error" -OR - $UserInput -match "Installer failed security check" -OR - $UserInput -match "Error information") { - $ExitCodeTable = gc $ExitCodeFile | ConvertFrom-Csv - $UserInput += "$LineBreak $LineBreak | Hex | Dec | Inverted Dec | Symbol | Description | $LineBreak | --- | --- | --- | --- | --- | $LineBreak" - foreach ($ExitCode in $ExitCodeTable) { - foreach ($Word in $UserSplit) { - if (($Word -eq $ExitCode.Hex) -OR ($Word -eq $ExitCode.Dec) -OR ($Word -eq $ExitCode.InvDec) ) { - $UserInput += $Spacer + $ExitCode.Hex + $Spacer + $ExitCode.Dec + $Spacer + $ExitCode.InvDec + $Spacer + $ExitCode.Symbol + $Spacer + $ExitCode.Description + $Spacer + $LineBreak - }# end if word - }# end foreach word - }#end foreach exitcode - }#end if userinput - $UserInput = $UserInput | Select-Object -Unique - return $UserInput -}#end function - -Function Get-AutoValLog { - #Needs $GitHubToken to be set up in your -PR $PROFILE or somewhere more secure. Needs permissions: workflow, - param( - $clip = (Get-Clipboard), - $PR = ($clip -split "/" | Select-String $PRRegex ), - $DestinationPath = "$MainFolder\Installers", - $LogPath = "$DestinationPath\InstallationVerificationLogs\", - $ZipPath = "$DestinationPath\InstallationVerificationLogs.zip", - [switch]$CleanoutDirectory, - [switch]$WhatIf, - [switch]$Force, - [switch]$Silent, - $notes = "" - ) - $PRState = Get-PRStateFromComments $PR - if ((!($PRState | where {$_.event -eq "AutoValEnd"})) -OR (($PRState | where {$_.event -eq "PreValidation"})[-1].created_at -gt ($PRState | where {$_.event -eq "AutoValEnd"})[-1].created_at) -OR ($Force)) { #Last Prevalidation was 8 hours ago. - $DownloadSeconds = 8; - $LowerOps = $true; - $WaiverList = Get-ValidationData -Property AutoWaiverLabel - #Get-Process *photosapp* | Stop-Process - $BuildNumber = Get-BuildFromPR -PR $PR - - if ($BuildNumber -gt 0) { - $FileList = $null - [int]$BackoffSeconds = 0 - - while ($FileList -eq $null) { - try { - #This downloads to Windows default location, which has already been set to $DestinationPath - Start-Process "$ADOMSBaseUrl/$ADOMSGUID/_apis/build/builds/$BuildNumber/artifacts?artifactName=InstallationVerificationLogs&api-version=7.1&%24format=zip" - if ($WhatIf) { - write-host "$ADOMSBaseUrl/$ADOMSGUID/_apis/build/builds/$BuildNumber/artifacts?artifactName=InstallationVerificationLogs&api-version=7.1&%24format=zip" - } - Start-Sleep $DownloadSeconds; - [bool]$IsZipPath = (Test-Path $ZipPath) - if (!$IsZipPath) { - #if (!$Force) { - $UserInput = "No logs." - $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - Write-Host $UserInput - Continue; - #} - } - Remove-Item $LogPath -Recurse -ErrorAction Ignore - Expand-Archive $ZipPath -DestinationPath $DestinationPath; - Remove-Item $ZipPath - if ($CleanoutDirectory) { - Get-ChildItem $DestinationPath | Remove-Item -Recurse - } - $FileList = (Get-ChildItem $LogPath).FullName - } catch { - if ($BackoffSeconds -gt 60) { - $UserInput = "Build $BuildNumber not found." - Continue; - } - $AddSeconds = Get-Random -min 1 -max 5 - $BackoffSeconds += $AddSeconds - Write-Host "Can't access $DestinationPath or a subfolder. Backing off another $AddSeconds seconds, for $BackoffSeconds total seconds." - sleep $BackoffSeconds - } - } - - [Array]$UserInput = $null - foreach ($File in $filelist) { - $UserInput += (Get-Content $File) -split "`n" - } - $UserInput = $UserInput | Where-Object { - $_ -match '[[]FAIL[]]' -OR - $_ -match 'error' -OR - $_ -match 'exception' -OR - $_ -match 'exit code' -OR - $_ -match 'fail' -OR - $_ -match 'manual review' -OR - $_ -match 'No suitable' -OR - $_ -match 'not supported' -OR #not supported by this processor type - #$_ -match 'not applicable' -OR - $_ -match 'unwanted' -OR #PUA - $_ -match 'Unable to locate nested installer' -OR - $_ -match 'space' -OR - $_ -match 'cannot install' - } - if ($WhatIf) { - write-host "File $File - UserInput $UserInput Length $($UserInput.Length)" - } - $UserInput = $UserInput -split "`n" | Select-Object -Unique; - $UserInput = $UserInput -replace "Standard error: ",$null - $UserReplace = $UserInput -replace "\\","\\" -replace "\[","\["-replace "\]","\]"-replace "\*","\*"-replace "\+","\+" - - if ($null -notmatch ($UserReplace)) { - if (($UserInput -match "Installer failed security check") -OR ($UserInput -match "Operation did not complete successfully because the file contains a virus or potentially unwanted software")) { - $LowerOps = $false - #$UserInput = Get-AutomatedErrorAnalysis $UserInput - write-host "DefenderFail - UserInput $UserInput" - } - if ($UserInput -match "SQL error or missing database") { - Get-GitHubPreset Retry -PR $PR - if (!($Silent)) { - Write-Output "PR $PR - SQL error or missing database" - } - Open-PRInBrowser -PR $PR - } - - $UserInput = $UserInput -split "`n" - $UserInput = $UserInput -notmatch " success or error status`: 0" - $UserInput = $UserInput -notmatch "``Windows Error Reporting``" - $UserInput = $UserInput -notmatch "--- End of inner exception stack trace ---" - $UserInput = $UserInput -notmatch "AppInstallerRepositoryCore" - $UserInput = $UserInput -notmatch "api-ms-win-core-errorhandling" - $UserInput = $UserInput -notmatch "appropriate application package" - $UserInput = $UserInput -notmatch "2: 3: Error" - $UserInput = $UserInput -notmatch "because the current user does not have that package installed" - $UserInput = $UserInput -notmatch "Cannot create a file when that file already exists" - $UserInput = $UserInput -notmatch "Could not create system restore point" - $UserInput = $UserInput -notmatch "Dest filename" - $UserInput = $UserInput -notmatch "ERROR: Signature Update failed" - $UserInput = $UserInput -notmatch "Exception during executable launch operation System.InvalidOperationException: No process is associated with this object." - $UserInput = $UserInput -notmatch "Exit code`: 0" - $UserInput = $UserInput -notmatch "Failed to open available source: msstore" - $UserInput = $UserInput -notmatch "ISWEBVIEW2INSTALLED" - $UserInput = $UserInput -notmatch "MpCmdRun" - $UserInput = $UserInput -notmatch "ResultException" - $UserInput = $UserInput -notmatch "SchedNetFx" - $UserInput = $UserInput -notmatch "Setting error JSON 1.0 fields" - $UserInput = $UserInput -notmatch "Terminating context" - $UserInput = $UserInput -notmatch "The process cannot access the file because it is being used by another process" - $UserInput = $UserInput -notmatch "The FileSystemWatcher has detected an error System.IO.ErrorEventArgs" - $UserInput = $UserInput -notmatch "ThrowIfExceptional" - $UserInput = $UserInput -notmatch "Windows Installer installed the product" - $UserInput = $UserInput -notmatch "with working directory 'D" - } - $UserReplace = $UserInput -replace "\\","\\" -replace "\[","\["-replace "\]","\]"-replace "\*","\*"-replace "\+","\+" - - if ($null -notmatch ($UserReplace)) { - $UserInput = $UserInput | Select-Object -Unique - - $UserInput = $UserInput -replace "-",$null - if ($WhatIf) { - Write-Host "WhatIf: Reply-ToPR (A) -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd" - } else { - $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - - - if ($LowerOps -eq $true) { - $SplitInput = ($UserInput -split "`n" ) - foreach ($input in $QueueInputs) { - if($SplitInput -match $input) { - if ($WhatIf) { - Write-Host "WhatIf: Add-PRToQueue -PR $PR" - } else { - Add-PRToQueue -PR $PR - } - - } - } - $exitregex = "exit code: [0-9]{0,3}$" - $exitregex2 = "exit code: [0-9]{4,}$" - if(!(($UserInput -split "`n" ) -match $exitregex2)) { #4 digits bad - if(($UserInput -split "`n" ) -match $exitregex) { #1-3 digits good - if ($WhatIf) { - Write-Host "WhatIf: Get-CompletePR -PR $PR" - } else { - Get-CompletePR -PR $PR - } - } - } - }#end If LowerOps - - if (!($Silent)) { - if ($WhatIf) { - Write-Host "WhatIf: Write-Host 'PR: $PR - $out'" - } else { - Write-Host "PR: $PR - $out" - } - } - } else { - if ($IsZipPath) { - $UserInput = "No errors to post." - $Title = ((Invoke-GitHubPRRequest -PR $PR -Type "" -Output content -JSON).title); - if ($WhatIf) { - Write-Host "WhatIf: Reply-ToPR (B) -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd" - Write-Host "WhatIf: Get-CompletePR -PR $PR" - Write-Host "WhatIf: Get-GitHubPreset -PR $PR Waiver" - } else { - $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - Get-CompletePR -PR $PR - foreach ($Waiver in $WaiverList) { - if ($Title -match $Waiver.PackageIdentifier) { - Get-GitHubPreset -PR $PR Waiver - }#end if title - }#end foreach waiver - } - } - } - } else { - if (!($Silent)) { - if ($WhatIf) { - Write-Host "WhatIf: Reply-ToPR (C) -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd" - Write-Host "WhatIf: UserInput Length $($UserInput.Length)" - } else { - $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - if ($WhatIf) { - Write-Host "WhatIf: Reply-ToPR (D) -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd" - } else { - $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - $UserInput = "Build $BuildNumber not found." - Write-Host $UserInput - $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd - } - } - return $out - } -} - -Function Get-RandomIEDS { - param( - $VM = (Get-NextFreeVM), - $IEDSPRs =(Get-SearchGitHub -Preset IEDS -nBMM), - #$IEDSPRs =(Get-SearchGitHub -Preset ToWork3), - $PR = ($IEDSPRs.number | where {$_ -notin (Get-Status).pr} | Get-Random), - $PRData = (Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$pr" -JSON), - $PRTitle = (($PRData.title -split " ")[2] | where {$_ -match "\."}), - $File = 0, - $ManifestType = "", - $OldManifestType = "", - $OldPackageIdentifier = "" - ) - - if ($VM -eq 0){ - Write-Host "No available $OS VMs"; - Get-PipelineVmGenerate -OS $OS; - Add-PRToQueue -PR $PR; - } else { - Get-CommitFile -PR $PR -VM $VM -MatchName "" - } -} - -Function Get-PRManifest { - param( - $PR, - $File = 0, - $ManifestType = "", - $OldManifestType = "", - $FooterHeader = "`n@@ -0,0 +0,0 @@`n", - $CommitFile = (Get-CommitFile -PR $PR -MatchName ""), - $PackageIdentifier = ((Get-YamlValue -StringName "PackageIdentifier" $CommitFile) -replace '"',''-replace "'",''), - $PackageVersion = ((Get-YamlValue -StringName "PackageVersion" $CommitFile) -replace '"',''-replace "'",''), - $Submitter = ((Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$pr" -JSON).user.login) - ) - - $out = "$PackageIdentifier version $PackageVersion #$PR`n" - $out += "$Submitter wants to merge`n" - $out += $FooterHeader - $out += ($CommitFile -join "`n") - $out += $FooterHeader - return $out -} - -#PR tools -#Add user to PR: Invoke-GitHubPRRequest -Method $Method -Type "assignees" -Data $User -Output StatusDescription -#Approve PR (needs work): Invoke-GitHubPRRequest -PR $PR -Method Post -Type reviews -Function Invoke-GitHubPRRequest { - param( - $PR, - [ValidateSet("GET","DELETE","PATCH","POST","PUT")][string]$Method = "GET", - [ValidateSet("assignees","comments","commits","files","labels","merge","reviews","")][string]$Type = "labels", - [string]$Data, - [ValidateSet("issues","pulls")][string]$Path = "issues", - [ValidateSet("Content","Silent","StatusDescription")][string]$Output = "StatusDescription", - [switch]$JSON, - $prData = (Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$pr/commits" -JSON), - $commit = (($prData.commit.url -split "/")[-1]) - ) - $Response = @{} - $ResponseType = $Type - $uri = "$GitHubApiBaseUrl/$Path/$pr/$Type" - - if (($Type -eq "") -OR ($Type -eq "files") -OR ($Type -eq "reviews")){ - $Path = "pulls" - $uri = "$GitHubApiBaseUrl/$Path/$pr/$Type" - } elseif ($Type -eq "comments") { - $Response.body += $Data - } elseif ($Type -eq "commits") { - $uri = "$GitHubApiBaseUrl/$Type/$commit" - } elseif ($Type -eq "merge") { - $Path = "pulls" - } elseif ($Type -eq "reviews") { - $Path = "pulls" - $Response.body = ""+$Data - $Response.commit = $commit - $Response.event = "APPROVE" - } elseif ($Type -eq "") { - #$Response.title = "" - #$Response.body = "" - $Response.state = "closed" - $Response.base = "master" - } else { - $Response.$ResponseType = @() - $Response.$ResponseType += $Data - } - - $uri = $uri -replace "/$","" - - if ($Method -eq "GET") { - $out = Invoke-GitHubRequest -Method $Method -Uri $uri - } else { - [string]$Body = $Response | ConvertTo-Json - $out = Invoke-GitHubRequest -Method $Method -Uri $uri -Body $Body - } - - if (($JSON) -OR ($Output -eq "Content")) { - if ($null -ne $out.$Output) { - try { - $out.$Output | ConvertFrom-Json - }catch{ - return ("PR: $PR - Error: $($error[0].ToString()) - Url $uri - Body: $Body") - } - } elseif ($Output -eq "Silent") { - } else { - $out.$Output - } - } else { - return "!"#"PR: $PR - No output. Method: $Method - URI: $uri" - #return ("PR: $PR - Error: $($error[0].ToString()) - Url $uri - Body: $Body") - } -} - -Function Approve-PR { - param( - $PR, - [string]$Body = "", - $prData = (Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$pr/commits" -JSON), - $commit = (($prData.commit.url -split "/")[-1]), - $uri = "$GitHubApiBaseUrl/pulls/$pr/reviews" - ) - - $Response = @{} - $Response.body = $Body - $Response.commit = $commit - $Response.event = "APPROVE" - [string]$Body = $Response | ConvertTo-Json - - $out = Invoke-GitHubRequest -Method Post -Uri $uri -Body $Body - $out.StatusDescription - Get-AddPRLabel -PR $PR -LabelName $Labels.MA -} - -Function Get-ApproveBySearch { - Param( - [Parameter(mandatory=$True)][string]$Author, - $Preset = "ToWork", - $MatchText = 'Standardize formatting', - $Results = (Get-SearchGitHub -Author $Author -Preset $Preset -NoLabels) - ) - $Results = $Results | ? {$_.user.login -eq $Author -and $_.title -match $MatchText -and $_.labels.name -notcontains $Labels.MA -and $_.labels.name -notcontains $Labels.CR}; - $Results.number | % { write-host "$_ - " -nonewline;Approve-PR $_ }; -} - -Function Get-PRRange ([int]$firstPR,[int]$lastPR,[string]$Body,[string]$Preset) { - $line = 0;$firstPR..$lastPR | %{ - if ($Preset -eq "closed") { - Get-GitHubPreset -Preset $Preset -PR $_ -UserInput $Body - } else { - Reply-ToPR -PR $_ -Body $Body; - Get-GitHubPreset -Preset $Preset -PR $_ - } - Get-TrackerProgress -PR $_ $MyInvocation.MyCommand $line ($lastPR - $firstPR);$line++ -}} - -Function Get-AllPRsOnClipboard { - param( - $clip = (Get-Clipboard), - $hash = "#", - $br = "`n", - $sp = " " - ) - $out = @() - ($clip -replace $hash,($br+$hash) -split $br -split $sp | select-string $hash) -replace $hash,$null | %{$out += $_} - return $out -} - -Function Get-AllPRsOnClipboardPreset ([string]$Body,[string]$Preset) { - $line = 0; - Get-AllPRsOnClipboard | %{ - if ($Preset) { - if ($Preset -eq "closed") { - Get-GitHubPreset -Preset $Preset -PR $_ -UserInput $Body - } else { - Reply-ToPR -PR $_ -Body $Body; - Get-GitHubPreset -Preset $Preset -PR $_ - } - } - Get-TrackerProgress -PR $_ $MyInvocation.MyCommand $line ($lastPR - $firstPR);$line++ - } -} - -Function Get-AddPRLabel { - param( - [int]$PR, - [string]$LabelName - ) - (Invoke-GitHubPRRequest -PR $PR -Method POST -Type labels -Data $LabelName -Output Content).name -} - -Function Get-RemovePRLabel { - param( - [int]$PR, - [string]$LabelName - ) - (Invoke-GitHubRequest -Uri "$GitHubApiBaseUrl/issues/$PR/labels/$LabelName" -Method DELETE).StatusDescription -} - -function Get-CompletePR ([int]$PR){ - $PRLabels = (invoke-GitHubPRRequest -PR $PR -Type labels -Method GET -Output Content).name | - where {$_ -notmatch $Labels.APP} | - where {$_ -notmatch $Labels.MMC} | - where {$_ -notmatch $Labels.MA} | - where {$_ -notmatch $Labels.NM} | - where {$_ -notmatch $Labels.NP} | - where {$_ -notmatch $Labels.PD} | - where {$_ -notmatch $Labels.RET} | - where {$_ -notmatch $Labels.VC} - - foreach ($label in $PRLabels) { - Get-RemovePRLabel -PR $PR -Label $label - } - if (($PRLabels -join " ") -notmatch $Labels.VDE) { - Get-AddPRLabel -PR $PR -LabelName $Labels.VC - } -} - -Function Get-MergePR { - Param( - $PR, - $ShaNumber = (-1) - ) - $sha = (Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$pr/commits" -JSON).sha - if ($null -ne $sha) { - if ($sha.gettype().name -eq "String") { - $sha = $sha - } else { - $sha = $sha[$ShaNumber] - } - } else { - write-host "SHA $sha not found (length $($sha.length)" - } - - $out = "" - $Data = Invoke-GitHubrequest -Uri "https://api.github.com/repos/microsoft/winget-pkgs/pulls/$pr/merge" -Method PUT -Body "{`"merge_method`":`"squash`",`"sha`":`"$sha`"}" - if ($Data.Content) { - $out = $Data.Content - } else { - $out = $Data - #($Data[1..$Data.length] | convertfrom-json).message - } - - $Comments = (Invoke-GitHubPRRequest -PR $PR -Type comments -Output content) - if ($out -match "Error") { - if ($Comments[-1].UserName -ne $GitHubUserName) { - Reply-ToPR -PR $PR -UserInput $out -CannedMessage MergeFail - } - } - $out - - Add-PRToRecord -PR $PR -Action Squash - #invoke-GitHubprRequest -PR $PR -Method PUT -Type merge -Data "{`"merge_method`":`"squash`",`"sha`":`"$sha`"}" -} - -Function Get-RetryPR { - Param( - $PR, - $Command = "@wingetbot run" - ) - Invoke-GitHubPRRequest -PR $PR -Type comments -Output StatusDescription -Method POST -Data $Command -} - -function Get-PushMePRYou { - Param( - $Author = "Trenly", - $MatchString = "Standardize formatting" - ) - foreach ($Preset in ("Approval","ToWork")) { - write-host "$($Preset): $(get-date)"; - $a = @(); - $a = Get-SearchGitHub -Author $Author -Preset $Preset -NoLabels; - $a = $a | ? {$_.user.login -eq $Author -and $_.title -match $MatchString -and $_.labels.name -notcontains $Labels.MA}; - $a.number | % { - write-host "$_ - " -nonewline; - Approve-PR $_ - }; - }; - - $Preset = "Complete" - write-host "$($Preset): $(get-date)"; -} - -Function Add-GitHubReviewComment { - param( - $PR, - [string]$Comment = "", - $Commit = (Invoke-GitHubPRRequest -PR $PR -Type commits -Output content -JSON), - $commitID = $commit.sha, - $Filename = $commit.files.filename, - $Side = "RIGHT", - $StartLine, - $Line - ) - if ($Filename.GetType().BaseType.Name -eq "Array") { - $Filename = $Filename[0] - } - - $Response = @{} - $Response.body = $Comment - $Response.commit_id = $commitID - $Response.path = $Filename - if ($StartLine) { - $Response.start_line = $StartLine - } - $Response.start_side = $Side - $Response.line = $Line - $Response.side = $Side - [string]$Body = $Response | ConvertTo-Json - - $uri = "$GitHubApiBaseUrl/pulls/$pr/comments" - - $out = Invoke-GitHubRequest -Method Post -Uri $uri -Body $Body - $out.StatusDescription -} - -Function Get-BuildFromPR { - param( - $PR, - $content = (Invoke-GitHubPRRequest -PR $PR -Method GET -Type comments -Output Content), - $href = ($content.body | where {$_ -match "Validation Pipeline Run"}) - ) - if ($href.gettype().basetype.name -eq "Array" ) { - $href = $href[-1] - } - $PRbuild = (($href -split "=" -replace "\)")[1]) - return $PRbuild -} - -Function Get-LineFromBuildResult { - param( - $PR, - $PRbuild = (Get-BuildFromPR -PR $PR), - $LogNumber = (36), - $SearchString = "Specified hash doesn't match", - $content = (Invoke-WebRequest "$ADOMSBaseUrl/$ADOMSGUID/_apis/build/builds/$PRbuild/logs/$LogNumber" -ProgressAction SilentlyContinue).content, - $Log = ($content -join "" -split "`n"), - $MatchOffset = (-1), - $MatchLine = (($Log | Select-String -SimpleMatch $SearchString).LineNumber | where {$_ -gt 0}), - $Length = 0, - $output = @() - ) - foreach ($Match in $MatchLine) { - $output += ($Log[($Match + $MatchOffset)..($Match+$Length + $MatchOffset)]) - } - return $output -} - -Function Get-PRApproval { - param( - $Clip = (Get-Clipboard), - [int]$PR = (($Clip -split "#")[1]), - $PackageIdentifier = ((($clip -split ": ")[1] -split " ")[0]), - $auth = (Get-ValidationData -Property PackageIdentifier -Match $PackageIdentifier -Exact).GitHubUserName, - $Approver = (($auth -split "/" | Where-Object {$_ -notmatch "\("}) -join ", @"), - [switch]$DemoMode - ) - Reply-ToPR -PR $PR -UserInput $Approver -CannedMessage Approve -Policy $Labels.NR -} - -Function Reply-ToPR { - param( - $PR, - [string]$CannedMessage, - [string]$UserInput = ((Invoke-GitHubPRRequest -PR $PR -Type "" -Output content -JSON).user.login), - [string]$Body = (Get-CannedMessage $CannedMessage -UserInput $UserInput -NoClip), - [string]$Policy, - [Switch]$Silent - ) - if ($Policy) { - $Body += "`n" - } - # If (($CannedMessage -eq "AutoValEnd") -OR ($CannedMessage -eq "ManValEnd")) { - # $SharedError = Get-AutomatedErrorAnalysis $SharedError - # } - if ($Silent) { - Invoke-GitHubPRRequest -PR $PR -Method Post -Type "comments" -Data $Body -Output Silent - } else { - Invoke-GitHubPRRequest -PR $PR -Method Post -Type "comments" -Data $Body -Output StatusDescription - } -} - -Function Get-NonstandardPRComments { - param( - $PR, - $comments = (Invoke-GitHubPRRequest -PR $PR -Type comments -Output content).body - ) - foreach ($StdComment in $StandardPRComments) { - $comments = $comments | Where-Object {$_ -notmatch $StdComment} - } - return $comments -} - -Function Get-PRStateFromComments { - param( - $PR = (Get-Clipboard), - $PRComments = (Invoke-GitHubPRRequest -PR $PR -Type comments -Output content | select created_at,@{n="UserName";e={$_.user.login -replace "\[bot\]"}},body), - $PRStateData = ((Get-Content $PRStateDataFile) -replace "GitHubUserName",$GitHubUserName | ConvertFrom-Csv), - [switch]$WhatIf - ) - if ($WhatIf) { - write-host "PR $PR - Comments $($PRComments.count)" - } - $Robots = @{} - $Robots.Wingetbot = "wingetbot" - $Robots.AzurePipelines = "azure-pipelines" - $Robots.FabricBot = "microsoft-github-policy-service" - - $Run = @{} - $Run.azp1 = "AzurePipelines run" - $Run.azp2 = "azp run" - $Run.wingetbot = "wingetbot run" - - $States = @{} - $States.PreRun = "PreRun" - $States.PreValidation = "PreValidation" - $States.Running = "Running" - $States.PreApproval = "PreApproval" - $States.DefenderFail = "DefenderFail" - $States.InstallerAvailable = "InstallerAvailable" - $States.InstallerRemoved = "InstallerRemoved" - $States.VersionParamMismatch = "VersionParamMismatch" - $States.LabelAction = "LabelAction" - $States.DomainReview = "DomainReview" - $States.SequenceError = "SequenceError" - $States.HighestVersionRemoval = "HighestVersionRemoval" - $States.SQLMissingError = "SQLMissingError" - $States.ChangesRequested = "ChangesRequested" - $States.HashMismatch = "HashMismatch" - $States.AutoValEnd = "AutoValEnd" - $States.ManValEnd = "ManValEnd" - $States.MergeConflicts = "MergeConflicts" - $States.ValidationCompleted = "ValidationCompleted" - $States.PublishSucceeded = "PublishSucceeded" - - $LabelActionComments = @{} - $LabelActionComments.URLError = "The package manager bot determined there was an issue with one of the installers listed in the url field" - $LabelActionComments.ValidationInstallationError = "The package manager bot determined there was an issue with installing the application correctly" - $LabelActionComments.InternalError = "The pull request encountered an internal error and has been assigned to a developer to investigate" - $LabelActionComments.ValidationUnattendedFailed = "this application failed to install without user input" - $LabelActionComments.ManifestValidationError = "Please verify the manifest file is compliant with the package manager" - - - $out = @() - foreach ($PRComment in $PRComments) { - $State = "" - $PRComment.created_at = [TimeZoneInfo]::ConvertTimeBySystemTimeZoneId($PRComment.created_at, 'Pacific Standard Time') - if ($WhatIf) { - write-host "PR $PR - created_at $($PRComment.created_at)" - } - - if (($PRComment.body -match $Run.azp1) -OR - ($PRComment.body -match $Run.azp2) -OR - ($PRComment.body -match $Run.wingetbot)) { - if ($WhatIf) { - write-host "PR $PR - State $($States.PreValidation)" - } - $State = $States.PreValidation - } elseif (($PRComment.UserName -eq $Robots.FabricBot) -AND ( - ($PRComment.body -match $LabelActionComments.URLError) -OR - ($PRComment.body -match $LabelActionComments.ValidationInstallationError) -OR - ($PRComment.body -match $LabelActionComments.InternalError) -OR - ($PRComment.body -match $LabelActionComments.ValidationUnattendedFailed) -OR - ($PRComment.body -match $LabelActionComments.ManifestValidationError) - )) { - if ($WhatIf) { - write-host "PR $PR - State $($States.LabelAction)" - } - $State = $States.LabelAction - } else { - foreach ($Key in $States.Keys) { - $KeyData = $PRStateData | where {$_.State -eq $Key} - if ($WhatIf) { - write-host "PR $PR - key $key - State $($States.Key) - botcomment $($KeyData.BotComment) - PRComment $($PRComment.body)" - } - if (($PRComment.body -match $KeyData.BotComment) -AND ($PRComment.UserName -eq $KeyData.User)) { - if ($WhatIf) { - write-host "PR $PR - match $($KeyData.BotComment)" - } - $State = $States.$Key - } - } - } - if ($WhatIf) { - write-host "PR $PR - State $State" - } - if ($State -ne "") { - if ($WhatIf) { - write-host "PR $PR - out $out" - } - $out += $PRComment | select @{n="event";e={$State}},created_at - } - } - Return $out -} - -Function Get-AddToAutowaiver { - param( - $PR, - $RemoveLabel, - $AutowaiverData = (Get-Content $AutowaiverFile | ConvertFrom-Csv), - $PRData = (Get-CommitFile -PR $PR), - $PackageIdentifier = (Get-YamlValue -StringName PackageIdentifier -clip $PRData) - ) - $NewLine = "" | select "PackageIdentifier","ManifestValue","ManifestKey","RemoveLabel" - $NewLine.PackageIdentifier = $PackageIdentifier - $NewLine.RemoveLabel = $RemoveLabel - if (($RemoveLabel -eq $Labels.VD) -or ($RemoveLabel -eq $Labels.VUU)) { - $NewLine.ManifestValue = ((Get-YamlValue -StringName InstallerUrl -clip $PRData) -split "/")[2] - $NewLine.ManifestKey = "InstallerUrl" - } else { - $NewLine.ManifestValue = $PackageIdentifier - $NewLine.ManifestKey = "PackageIdentifier" - } - - $AutowaiverData += $NewLine - ($AutowaiverData | sort PackageIdentifier | ConvertTo-Csv) | Out-File $AutowaiverFile -} - -Function Get-Autowaiver { - param( - [int]$PR = (Get-PRNumber (Get-Clipboard) -Hash), - $AutowaiverData = (Get-Content $AutowaiverFile | ConvertFrom-Csv), - $PRData = (Get-CommitFile -PR $PR), - $PackageIdentifier = (Get-YamlValue -StringName PackageIdentifier -clip $PRData), - $WaiverData = ($AutowaiverData | ?{$_.PackageIdentifier -eq $PackageIdentifier}) - ) - if ($WaiverData) { - Add-PRToRecord -PR $PR -Action $Actions.Waiver - foreach ($Waiver in $WaiverData) { - try { - $PackageValue = (Get-YamlValue -StringName $Waiver.ManifestKey -clip $PRData) - } catch {} - if ($PackageValue -match $Waiver.ManifestValue) { - Get-RemovePRLabel -PR $PR -LabelName $Waiver.RemoveLabel - Get-RemovePRLabel -PR $pr -LabelName "Needs-Author-Feedback" - Get-RemovePRLabel -PR $pr -LabelName "Needs-Attention" - Get-AddPRLabel -PR $PR -LabelName Validation-Completed - } - } - } -} - -Function Get-VerifyMMC { - param( - [int]$PR = (Get-PRNumber $clip -Hash) - ) - $Comments = (Invoke-GitHubPRRequest -PR $PR -Type comments -Output content | select created_at,@{n="UserName";e={$_.user.login -replace "\[bot\]"}},body) - [array]$MissingProperties = ($Comments.body | ? {$_ -match "=== manifests"}) -split "`n" | ?{ $_ -notmatch "=== manifests" -AND - $_ -notmatch "Missing Properties" -AND - $_ -notmatch "Icons" -AND - $_ -notmatch "Platform" -AND - $_ -notmatch "MinimumOSVersion" -AND - $_ -notmatch "ReleaseNotes" -AND - $_ -notmatch "ReleaseNotesUrl" -AND - $_ -notmatch "ReleaseDate"} - if (!$MissingProperties) { - Get-RemovePRLabel -PR $PR -LabelName Manifest-Metadata-Consistency - } -} - -Function Get-DuplicateCheck { - param( - [int]$PR - ) - $PRLabels = ((Invoke-GitHubPRRequest -PR $PR -Type "labels" -Output content -JSON).name) - if ($PRLabels -match $Labels.VC) { #If this PR is VC - $Comments = (Invoke-GitHubPRRequest -PR $PR -Type comments -Output content) - $otherPR = $Comments.body | ? {$_ -match "Found duplicate pull request"} - $otherPR = $otherPR -split "`n" - [int]$otherPR = (($otherPR | where {$_ -match $hashPRRegex}) -split "#")[-1] - $otherPRLabels = ((Invoke-GitHubPRRequest -PR $otherPR -Type "labels" -Output content -JSON).name) - [int]$mainPR = 0 - [int]$dupePR = 0 - if ($otherPRLabels -match $Labels.VC) { #If other is VC, close the lower number as other. - if ($otherPRLabels -match $Labels.MA) { #If other is VCMA, close this. - $mainPR = $otherPR - $dupePR = $PR - } else { #If the other is not VC, close it as other. - $mainPR = [math]::Max($PR,$otherPR) - $dupePR = [math]::Min($PR,$otherPR) - }# end if Moderator-Approved - } else { #If the other is not VC, close it as other. - $mainPR = $PR - $dupePR = $otherPR - }# end if Validation-Completed - if ($dupePR -gt 0) { - Get-GitHubPreset -Preset Duplicate -PR $dupePR -UserInput $mainPR - Get-RemovePRLabel -PR $mainPR -Label $Labels.PD - }# end if dupePR - }# end if mainPRLabels -}# end function - -#Network tools -#GET = Read; POST = Append; PUT = Write; DELETE = delete -Function Invoke-GitHubRequest { - param( - [Parameter(mandatory=$True)][string]$Uri, +#Copyright 2022-2026 Microsoft Corporation +#Author: Stephen Gillie +#Title: Manual Validation Pipeline v3.90.0 +#Created: 10/19/2022 +#Updated: 4/3/2026 +#Notes: Utilities to streamline evaluating 3rd party PRs. + +$build = 1385 +$appName = "ManualValidationPipeline" +Write-Host "$appName build: $build" +$Owner = "microsoft" +if ($preprod) { + $Repo = "winget-pkgs-preprod" + $Host.UI.RawUI.WindowTitle = "PREPROD" +} else { + $Repo = "winget-pkgs" +} +#Share this folder with Windows File Sharing, then access it from within the VM across the network, as \\LaptopIPAddress\SharedFolder. For LaptopIPAddress use Ethernet adapter vEthernet (Default Switch) IPv4 Address. + +$ipconfig = (ipconfig) +$remoteIP = ([ipaddress](($ipconfig[($ipconfig | Select-String "vEthernet").LineNumber..$ipconfig.Length] | Select-String "IPv4 Address") -split ": ")[1]).IPAddressToString +$RemoteMainFolder = "//$remoteIP/" +$SharedFolder = "$RemoteMainFolder/write" + +#Folders +$MainFolder = "C:\ManVal" +Set-Location $MainFolder +$imagesFolder = "$MainFolder\Images" #VM Images folder +$logsFolder = "$MainFolder\logs" #VM Logs folder +$MiscFolder = "$MainFolder\misc" +$writeFolder = "$MainFolder\write" #Folder with write permissions +$vmCounter = "$MainFolder\vmcounter.txt" +$VMversion = "$MainFolder\VMversion.txt" + +#Files +$TrackerModeFile = "$logsFolder\trackermode.txt" +$RemoteTrackerModeFile = "$RemoteMainFolder\ManVal\logs\trackermode.txt" #TrackerModeFile from the VM's perspective. +$LogFile = "$MiscFolder\ApprovedPRs.txt" +$PRQueueFile = "$MiscFolder\PRQueue.txt" +$PRExcludeFile = "$MiscFolder\PRExclude.txt" +$repoCountfile = "$MiscFolder\RepoCounts.csv" +$CovertReviewFile = "$MiscFolder\CovertReview.csv" +$ApprovalStatsFile = "$MiscFolder\ApprovalStats.csv" + +#Data +$RepoFolder = "C:\repos\$Repo\Tools\ManualValidation" +$DataFileName = "$RepoFolder\ManualValidationPipeline.csv" +$JsonFileName = "$RepoFolder\ManualValidationPipeline.json" +$LabelActionFile = "$RepoFolder\LabelActions.csv" +$ExitCodeFile = "$RepoFolder\ExitCodes.csv" +$AutowaiverFile = "$RepoFolder\Autowaiver.csv" +$PRStateDataFile = "$RepoFolder\PRStateFromComments.csv" +$MMCExceptionListFile = "$RepoFolder\MMCExceptionList.txt" +$ReviewFile = "$RepoFolder\Review.csv" + +$SharedErrorFile = "$writeFolder\err.txt" +$StatusFile = "$writeFolder\status.csv" + +$Win10Folder = "$imagesFolder\Win10-Created053025-Original" +$Win11Folder = "$imagesFolder\Win11-Created120825-Original" + +$GitHubBaseUrl = "https://github.com/$Owner/$Repo" +$GitHubContentBaseUrl = "https://raw.githubusercontent.com/$Owner/$Repo" +$GitHubApiBaseUrl = "https://api.github.com/repos/$Owner/$Repo" +$ADOMSBaseUrl = "https://dev.azure.com/shine-oss" +$ADOMSGUID = "8b78618a-7973-49d8-9174-4360829d979b" +$NextStaleCheck = (Get-Date) + +$CheckpointName = "Validation" +$VMUserName = "user" #Set to the internal username you're using in your VMs. +$SystemRAM = (Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb +if ($preprod) { + $Host.UI.RawUI.WindowTitle = "PREPROD-Utility" +} else { + $Host.UI.RawUI.WindowTitle = "Utility" +} +$GitHubRateLimitDelay = 0.33 #second +$RamPctForVms = .28 +[int]$PatchedValidationIteration = 0 +# $RamPctForVms = .42 +$GhRlRemain = 0 + + +Function Get-SartupTest { +$SartupTestPaths = "Path,Name +$DataFileName,DataFileName +$JsonFileName,JsonFileName +$LabelActionFile,LabelActionFile +$ExitCodeFile,ExitCodeFile +$AutowaiverFile,AutowaiverFile +$PRStateDataFile,PRStateDataFile +$MMCExceptionListFile,MMCExceptionListFile +$ReviewFile,ReviewFile +$SharedErrorFile,SharedErrorFile +$StatusFile,StatusFile +$Win10Folder,Win10Folder +$Win11Folder,Win11Folder +$SharedFolder,SharedFolder +$MainFolder,MainFolder +$imagesFolder,imagesFolder +$logsFolder,logsFolder +$MiscFolder,MiscFolder +$writeFolder,writeFolder +$vmCounter,vmCounter +$VMversion,VMversion +$RemoteTrackerModeFile,RemoteTrackerModeFile +$TrackerModeFile,TrackerModeFile +$LogFile,LogFile +$PRQueueFile,PRQueueFile +$PRExcludeFile,PRExcludeFile +$repoCountfile,repoCountfile +$CovertReviewFile,CovertReviewFile +$ApprovalStatsFile,ApprovalStatsFile +" | convertfrom-csv + +$SartupTestItems = "Path,Name +$((Get-VM | where {$_.Name -notmatch 'Win'}).count -eq (Get-Status).count),VMCount +" | convertfrom-csv + +# $SartupTestItems + + $TotalTests = $SartupTestPaths.Count + $SartupTestItems.Count + + Write-Host "Running $TotalTests Tests: " -NoNewline + $fail = 0 + foreach ($Datum in $SartupTestPaths) { + $String = "$($Datum.Name) - " + $ForegroundColor = "yellow" + if (Test-Path $Datum.Path -ErrorAction SilentlyContinue) { + $ForegroundColor = $Enum.PSColors.Green + } else { + $ForegroundColor = $Enum.PSColors.Red + $fail++ + } + Write-Host -ForegroundColor $ForegroundColor $String -NoNewline + } + + foreach ($Datum in $SartupTestItems) { + $String = "$($Datum.Name) - " + $ForegroundColor = "yellow" + if ($Datum.Path) { + $ForegroundColor = $Enum.PSColors.Green + } else { + $ForegroundColor = $Enum.PSColors.Red + $fail++ + } + Write-Host -ForegroundColor $ForegroundColor $String -NoNewline + } + + + if ($fail) { + Write-Host -ForegroundColor $Enum.PSColors.Red "$Fail failed!" -NoNewline + } + Write-Host $Enum.Char.Blank #Write a blank string, to auto-add the console newline at the end of the tests. +} + +#Data +Function Read-JsonData { + Param( + $FileName = $JsonFileName, + $InputData = (Get-Content $FileName | ConvertFrom-Json) + ) + $out = @{} + $Names = ($InputData | Get-Member | where {$_.MemberType -match $Enum.Words.NoteProperty}).name + foreach ($Name in $Names) {#Reserialize PSObject as hash table. + $out.($Name) = $InputData.($Name) + } + $out +} +$Enum = Read-JsonData +$VMNameSB = [Scriptblock]::Create("`"$($Enum.ScriptBlocks.VMName)`"") + +Function Write-JsonData { + Param( + $Data = $Enum + ) + [string]$Enum = $Data | ConvertTo-Json + if ($Enum) { + $Enum > $JsonFileName + } +} + +Function Get-ValidationData { + Param( + $Property = $Enum.Char.Blank, + $Match = $Enum.Char.Blank, + $data = (Get-Content $DataFileName | ConvertFrom-Csv | Where-Object {$_.$Property} | Where-Object {$_.$Property -match $Match}), + [switch]$Exact + ) + if ($Exact -eq $True) { + $data = $data | Where-Object {$_.$Property -eq $Match} + } + Return $data +} + +Function Add-ValidationData { + Param( + [Parameter(Mandatory)][string]$PackageIdentifier, + [string]$GitHubUserName = $Enum.GitHubUserNames.GitHubUserName, + [ValidateScript( { $_ -in (Get-Keys $Enum.ValidationDataStrictness) } )][string]$authStrictness, + [ValidateScript( { $_ -in (Get-Keys $Enum.ValidationDataType) } )][string]$authUpdateType, + [string]$AutoWaiverLabel, + [string]$versionParamOverrideUserName, + [int]$versionParamOverridePR, + [string]$code200OverrideUserName, + [int]$code200OverridePR, + [int]$AgreementOverridePR, + [string]$AgreementURL, + [string]$reviewText, + $data = (Get-Content $DataFileName | ConvertFrom-Csv) + ) + $out = ($data | where {$_.PackageIdentifier -eq $PackageIdentifier} | Select-Object $Enum.Data.PackageIdentifier,"GitHubUserName","authStrictness","authUpdateType","AutoWaiverLabel","versionParamOverrideUserName","versionParamOverridePR","code200OverrideUserName","code200OverridePR","AgreementOverridePR","AgreementURL","reviewText") + if ($null -eq $out) { + $out = ( $Enum.Char.Blank | Select-Object "PackageIdentifier","GitHubUserName","authStrictness","authUpdateType","AutoWaiverLabel","versionParamOverrideUserName","versionParamOverridePR","code200OverrideUserName","code200OverridePR","AgreementOverridePR","AgreementURL","reviewText") + $out.PackageIdentifier = $PackageIdentifier + } + + $out.GitHubUserName = $GitHubUserName + $out.authStrictness = $authStrictness + $out.authUpdateType = $authUpdateType + $out.AutoWaiverLabel = $AutoWaiverLabel + $out.versionParamOverrideUserName = $versionParamOverrideUserName + $out.versionParamOverridePR = $versionParamOverridePR + $out.code200OverrideUserName = $code200OverrideUserName + $out.code200OverridePR = $code200OverridePR + $out.AgreementURL = $AgreementURL + $out.AgreementOverridePR = $AgreementOverridePR + $out.reviewText = $reviewText + $data += $out + $data | sort PackageIdentifier | ConvertTo-Csv | Out-File $DataFileName +} + +#First tab +Function Get-TrackerVMRunTracker { + while ($True) { + if ($preprod) { + $Host.UI.RawUI.WindowTitle = "PREPROD-Orchestration" + } else { + $Host.UI.RawUI.WindowTitle = "Orchestration" + } + + Clear-Host + $Status = Get-Status + $Status | Format-Table; #Display + $VMRAM = Get-ArraySum $status.RAM + $ramColor = $Enum.PSColors.Green + $valMode = Get-TrackerVMMode + $contents = "" + + $Status.vm | %{ + $path = "$MainFolder\vm\$_\manifest\Package.yaml"; + try {$contents = (Get-Content $path -ErrorAction SilentlyContinue)}catch{} + if ($contents -match "ManifestVersion: 1..0$") { + $contents -replace "ManifestVersion: 1..0$","ManifestVersion: 1.10.0" | out-file $path -ErrorAction SilentlyContinue + } + } + + $status | ForEach-Object { + $GetVM = Get-VM -Name ($Enum.Strings.Vm + $_.vm) + $_.RAM = [math]::Round($GetVM.MemoryAssigned/1024/1024/1024, $Enum.Num.Two) + + if (($_.package -eq $Enum.Char.Blank) -AND ($_.status -eq $Enum.VMStatus.ValidationCompleted)) { + $_.status = $Enum.VMStatus.Complete + } + } + if ($status -ne $Enum.Char.Blank){ + Write-Status $status + } + + + + if ($VMRAM -gt ($SystemRAM*0.5)) { + $ramColor = $Enum.PSColors.Red + } elseif ($VMRAM -gt ($SystemRAM*.25)) { + $ramColor = $Enum.PSColors.Yellow + } + Write-Host "VM RAM Total: " -nonewline + Write-Host -f $ramColor $VMRAM + $timeClockColor = $Enum.PSColors.Red + if (Get-TimeRunning) { + $timeClockColor = $Enum.PSColors.Green + } + $PRQueueCount = Get-PRQueueCount + $VMRate = [math]::round((Get-VMMinutesPerPackage),2) + $PRsPerHour = [math]::round((60/$VMRate) * (Get-Status).count,2) + # $GhRlRemain = ((Get-GitHubRateLimit) | where {$_.source -match $Enum.GitHubRateLimit.Unlogged}).remaining + Write-Host -nonewline "Build: $build - Mode $valMode - $GhRlRemain GH calls remain. Hours worked: " + Write-Host -nonewline -f $timeClockColor (Get-HoursWorkedToday) + Get-UpdateSource + Write-Host " - PRs in queue: $PRQueueCount" + Write-Host -nonewline "VMs are taking $VMRate minutes each, for about $PRsPerHour per hour. " + (Get-VM) | ForEach-Object { + if(($_.MemoryDemand / $_.MemoryMaximum) -ge 0.9){ + Set-VM -VMName $_.name -MemoryMaximumBytes "$(($_.MemoryMaximum / 1073741824) + 2)GB" + } + } + Get-TrackerVMCycle; + Get-TrackerVMWindowArrange + $PatchedValidationIteration = 0 + + if ($valMode -eq "IEDS") { + if ((Get-ArraySum $status.RAM) -lt ($SystemRAM*$RamPctForVms)) { + Write-Output $valMode + Get-RandomIEDS + } + } elseif ($valMode -eq "Drain") { + } else { + if (!(($status | Where-Object {$_.version -ne (Get-TrackerVMVersion)}).Count)) { + if (!($status | Where-Object {($_.mode -join $Enum.Char.Space) -match "Creation"})) { + if ($PRQueueCount -gt 0) { + if ((Get-ArraySum $status.RAM) -lt ($SystemRAM*$RamPctForVms)) { + $PR = Get-PopPRQueue + if ($null -ne $PR) { + Write-Output "Running $PR from queue." + # $CoinFlip = Get-Random -Maximum $Enum.Num.Two -Minimum 0 + # if ($CoinFlip) { + # Get-PatchedValidation -PR $PR + # } else { + Get-CommitFile -PR $PR -VM (Get-NextFreeVM) + # Get-RandomIEDS -PR $PR + # }; #if CoinFlip + }; #if null + }; #if Get-Array + }; #if PRQueueCount + }; #If not status + }; #If not status + }; #if valMode + + $clip = (Get-CleanClipboard) + If ($clip -match $ADOMSBaseUrl) { + $GhRlRemain = ((Get-GitHubRateLimit) | where {$_.source -match $Enum.GitHubRateLimit.Unlogged}).remaining + #Write-Output "Gathering Automated Validation Logs" + #Get-AutoValLog + } elseIf ($clip -match "Skip to content") { + $GhRlRemain = ((Get-GitHubRateLimit) | where {$_.source -match $Enum.GitHubRateLimit.Unlogged}).remaining + if ($valMode -eq "Validating") { + # Write-Output $valMode + Get-TrackerVMValidate; + $valMode | clip + } + } elseIf ($clip -match " Windows Package Manager") {#Package Manager Dashboard + #Write-Output "Gathering PR Headings" + #Get-PRNumber + } elseIf ($clip -match "^manifests`/") { + $GhRlRemain = ((Get-GitHubRateLimit) | where {$_.source -match $Enum.GitHubRateLimit.Unlogged}).remaining + Write-Output "Opening manifest file" + $ManifestUrl = "$GitHubBaseUrl/tree/master/" + $clip + $ManifestUrl | clip + start-process ($ManifestUrl) + } + # $MozillaThunderbird = (Get-Status | Where-Object {$_.Package -match "Mozilla.Thunderbird"} ).vm + # if ($null -ne $MozillaThunderbird) { + # $MozillaThunderbird | %{Get-TrackerVMSetStatus -Status $Enum.VMStatus.Complete -VM $_} + # } + if (Get-ConnectedVM) { + #Get-TrackerVMResetStatus + } else { + Get-TrackerVMRotate + } + Start-Sleep 5; + } + Write-Host "End of cycle." + #Write-Progress -Completed +} + +#Second tab +Function Get-TrackerVMScheduler { + $Now = get-date + while ($true) { + $Timestamp = (get-date -f s) -replace $Enum.Char.T,$Enum.Char.Space + if (([int](get-date -f mm) / $enum.Num.Ten) -eq $enum.Num.One) { + #Every 10 minutes. + $WatchLatch = $True + $VMs = (Get-VM |where {$_.status -ne "LongRunning"}) + foreach ($VM in $VMs) { + if ($VM.uptime.totalhours -gt 3){ + $name = $VM.name -replace $Enum.Strings.Vm,$Enum.Char.Blank; + Get-TrackerVMSetStatus $Enum.VMStatus.Complete $name + } + } + Write-Host "WatchLatch - $WatchLatch" + } + if ($WatchLatch) {#PR Watch functionality + Write-Host "$Timestamp - PRWatch" + Get-StopStuckVMs + Copy-Item "$RepoFolder\ManualValidationProfile.ps1" "$MainFolder\vm\0\Profile.ps1" + # Get-PRWatch -LogFile $MiscFolder\ApprovedPRs.txt -ReviewFile $ReviewFile -noNew + $WatchLatch = $False + } #Every 10 minutes. + + if (([int](get-date -f mm) -eq 20) -OR ([int](get-date -f mm) -eq 50)) { + #Twice an hour at 20 and 50 after. + $HourLatch = $True + Write-Host "HourLatch - $HourLatch" + + $DefenderPRs = (Get-SearchGitHub -Preset Defender).number + foreach ($PR in $DefenderPRs) { + Get-RemovePRLabel -PR $PR -LabelName $Enum.PRLabels.IEDS + Get-RemovePRLabel -PR $PR -LabelName $Enum.PRLabels.VIE + Get-RemovePRLabel -PR $PR -LabelName $Enum.PRLabels.VEE + Get-RemovePRLabel -PR $PR -LabelName $Enum.PRLabels.VC + } + } + if ($HourLatch) {#Hourly Run functionality + Write-Host "$Timestamp - ScheduledRun" + Get-ScheduledRun + $HourLatch = $False + } #Twice an hour at 20 and 50 after. + cls + Write-Host "$Timestamp - Waiting" + if ($preprod) { + $Host.UI.RawUI.WindowTitle = "PREPROD-Waiting" + } else { + $Host.UI.RawUI.WindowTitle = "Waiting" + } + $GetStatus = Get-Status + $VMRAM = Get-ArraySum $GetStatus.RAM + $ramColor = $Enum.PSColors.Green + if ($VMRAM -gt ($SystemRAM*0.5)) { + $ramColor = $Enum.PSColors.Red + } elseif ($VMRAM -gt ($SystemRAM*.25)) { + $ramColor = $Enum.PSColors.Yellow + } + Write-Host "VM RAM Total: " -nonewline + Write-Host -f $ramColor $VMRAM + $timeClockColor = $Enum.PSColors.Red + if (Get-TimeRunning) { + $timeClockColor = $Enum.PSColors.Green + } + $PRQueueCount = Get-PRQueueCount + Write-Host -nonewline "Build: $build - Hours worked: " + Write-Host -nonewline -f $timeClockColor (Get-HoursWorkedToday) + Write-Host " - PRs in queue: $PRQueueCount" + Start-Sleep 5 + + $HourLatch = $False + $WatchLatch = $False + }; #end while true +}; #end function + +Function Get-PRWatch { + [CmdletBinding()] + Param( + [switch]$noNew, + [string]$LogFile = ".\PR.txt", + $oldclip = $Enum.Char.Blank, + [ValidateScript( { $_ -in (Get-Keys $Enum.SearchPresets)})][string]$SearchPreset = $Enum.SearchPresets.Approval2, + $PrePipeline = $false, + [switch]$DirectMode, + [switch]$Continuous, + $AuthList = (Get-ValidationData -Property authStrictness), + $AgreementsList = (Get-ValidationData -Property AgreementUrl), + $ReviewList = (Get-LoadFileIfExists $ReviewFile), + $clip = (Get-CleanClipboard), + [int]$Page = $enum.Num.One, + [switch]$Patch, + [switch]$WhatIf, + [switch]$Display + ) + #if ((Get-Command Get-TrackerVMSetMode).name) {Get-TrackerVMSetMode "Approving"} + $ManifestReview = $True + $ResultsCount = 0 + $RunStart = Get-Date + Write-Log " | Timestmp | $(Get-PadRight PR# 6) | $(Get-PadRight PackageIdentifier) | $(Get-PadRight prVersion 15) | A | R | G | W | F | I | D | V | $(Get-PadRight ManifestVer 14) | OK |" + Write-Log " | -------- | ----- | ------------------------------- | -------------- | - | - | - | - | - | - | - | - | ------------- | -- |" + $Run = $True + while($Run -eq $True){ + if ($WhatIf) { + if ($preprod) { + $Host.UI.RawUI.WindowTitle = "PREPROD-(WhatIf) Watcher" + } else { + $Host.UI.RawUI.WindowTitle = "(WhatIf) Watcher"#I'm the Fisher King, and "What if I watched PRs go by" is my question. + } + } else { + if ($preprod) { + $Host.UI.RawUI.WindowTitle = "PREPROD-PR Watcher" + } else { + $Host.UI.RawUI.WindowTitle = "PR Watcher"#I'm a PR Watcher, watchin PRs go by. + } + } + if ($DirectMode) { + $clip = (Get-CleanClipboard) + $PRtitle = $clip | Select-String ($Enum.Regex.hashPRRegexEnd); + $Results = ($PRtitle -split $Enum.Char.Hash)[$Enum.Index.Second] + } else { + $RunStart = Get-Date + if ($Display) {Write-Host "Gathering PR numbers for $SearchPreset"} + $FullResults = Get-SearchGitHub -Preset $SearchPreset -nBMM -Page $Page + $Results = $FullResults.number + $ResultsCount = $Results.Count + if ($Display) {Write-Host "Found $($results.Count) PRs"} + } + foreach ($PR in $Results) { + $FullPR = $FullResults | where {$_.number -match $PR} + if ($Display) {Write-Host "Processing PR $PR"} + if ($DirectMode) { + } else { + if ($Patch) { + $clip = Get-PRManifest -pr $PR -Patch; + } else { + $clip = (Get-PRManifest -pr $PR) -replace "\r",$Enum.Char.Blank -split "\n"; + } + if ($Display) {Write-Host "PR manifest length $($clip.Count)"} + if ($clip.Count -lt $enum.Num.Ten) { + $clip + } + $PRtitle = $FullPR.title; + if ($Display) {Write-Host "PR title $PRTitle"} + } + + if ($PRtitle) { + if (Compare-Object $PRtitle $oldclip) { + $ManifestReview = (Get-ManifestCovertReview $clip) + + $validColor = $Enum.PSColors.Green + $invalidColor = $Enum.PSColors.Red + $cautionColor = $Enum.PSColors.Yellow + + $noRecord = $False + $WinGetOutput = "" + $title = $PRtitle -split ": " + if ($title[$Enum.Index.Second]) { + $title = $title[$Enum.Index.Second] -split $Enum.Char.Space + } else { + $title = $title -split $Enum.Char.Space + } + # $LineNo = ($clip | Select-String "wants to merge").LineNumber - 2 + # $Submitter = $clip[$lineNo] + $Submitter = (($clip | Select-String "wants to merge") -split $Enum.Char.Space)[$Enum.Index.First] + $InstallerType = Get-YamlValue InstallerType -clip $clip + + #Split the title by spaces. Try extracting the version location as the next item after the word "version", and if that fails, use the 2nd to the last item, then 3rd to last, and 4th to last. For some reason almost everyone puts the version number as the last item, and GitHub appends the PR number. + $prVerLoc = ($title | Select-String "version").linenumber + #Version is on the line before the line number, and this set indexes with 1 - but the following array indexes with 0, so the value is automatically transformed by the index mismatch. + try { + [System.Version]$prVersion = (Get-YamlValue $enum.ManifestKeys.PackageVersion -clip $clip) | Get-RemoveQuotes + } catch { + try { + $prVersion = (Get-YamlValue $enum.ManifestKeys.PackageVersion -clip $clip) | Get-RemoveQuotes + } catch { + try { + [System.Version]$prVersion = (Get-YamlValue PackageVersion -clip $clip) + } catch { + if ($null -ne $PRVerLoc) { + try { + [System.Version]$prVersion = $title[$prVerLoc] + } catch { + [string]$prVersion = $title[$prVerLoc] + } + } else { + #Otherwise we have to go hunting for the version number. + try { + [System.Version]$prVersion = $title[$Enum.Index.Last] + } catch { + try { + [System.Version]$prVersion = $title[-2] + } catch { + try { + [System.Version]$prVersion = $title[-3] + } catch { + try { + [System.Version]$prVersion = $title[-4] + } catch { + #If it's not a semantic version, guess that it's the 2nd to last, based on the above logic. + [string]$prVersion = $title[-2] + } + } + } + }; #end try + }; #end try + }; #end if null + }; #end try + }; #end try + # Write-Host "PR version $prVersion" + + #Get the PackageIdentifier and alert if it matches the auth list. + [string]$PackageIdentifier = $Enum.Char.Blank + try { + $PackageIdentifier = (Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $clip) -replace $Enum.Char.DoubleQuote,$Enum.Char.Blank + } catch { + $PackageIdentifier = $PRtitle -replace $Enum.Char.DoubleQuote,$Enum.Char.Blank + } + $matchColor = $validColor + # Write-Host "PackageIdentifier $PackageIdentifier" + + + + + Write-Log " | $(Get-Date -Format $($Enum.Char.T)) | $PR | $(Get-PadRight $PackageIdentifier) | " -nonewline -ForegroundColor $matchColor + + + + #Variable effervescence + $prAuth = $Enum.Char.Plus + $Auth = "A" + $Review = "R" + $WordFilter = "W" + $AgreementAccept = "G" + $AnF = "F" + $InstVer = "I" + $ListingDiff = "D" + $NumVersions = 99 + $PRvMan = "P" + $Approve = $Enum.Char.Plus + + $ValToEval = $Enum.Char.Blank + + If ($PackageIdentifier.Length -gt 3) { + + # $fullPR.labels.name -match $Enum.PRLabels.NP + $ManifestVersion = Get-ManifestVersion -PackageIdentifier $PackageIdentifier + $ManifestVersionParams = ($ManifestVersion -split "[.]").Count + $prVersionParams = ($prVersion -split "[.]").Count + + + #/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\ + #-------------------------- Auth ----------------------------- + #\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////// + + + $AuthMatch = $AuthList | Where-Object {$PackageIdentifier -cmatch $_.PackageIdentifier} + if ($AuthMatch.PackageIdentifier -notmatch "\*") { + $AuthMatch = $AuthList | Where-Object {$_.PackageIdentifier -ceq $PackageIdentifier} + } + + if ($ManifestReview -eq $false) { + $Approve = $Enum.Char.NotExclamation + } + if ($AuthMatch) { + $AuthAccount = $AuthMatch.GitHubUserName | Sort-Object -Unique + } + $GhRlRemain = ((Get-GitHubRateLimit) | where {$_.source -match $Enum.GitHubRateLimit.Unlogged}).remaining + if ($GhRlRemain -le 0) { + $WinGetOutput = (Find-WinGetPackage $PackageIdentifier) + $ValToEval = $WinGetOutput + } else { + $ValToEval = $ManifestVersion + } + + if ($null -eq $ValToEval) { + $PRvMan = "N" + $matchColor = $invalidColor + $Approve = $Enum.Char.NotExclamation + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.NP + Get-RemovePRLabel -PR $PR -LabelName $Enum.PRLabels.NM + if ($noNew) { + $noRecord = $True + } else { + Add-PRToQueue -PR $PR + # if ($title[$Enum.Index.Last] -match $Enum.Regex.hashPRRegex) { + # if ((Get-Command Get-TrackerVMValidate).name) { + #Add-PRToQueue -PR $PR + # Get-TrackerVMValidate -Silent -InspectNew + # } else { + # Get-Sandbox ($title[$Enum.Index.Last] -replace $Enum.Char.Hash,$Enum.Char.Blank) + # }; #end if Get-Command + # }; #end if title + }; #end if noNew + } + Write-Log "$(Get-PadRight $PRVersion.toString() 14) | " -nonewline -ForegroundColor $matchColor + $matchColor = $validColor + + + + + if ($AuthMatch) { + $strictness = $AuthMatch.authStrictness | Sort-Object -Unique + $matchVar = $Enum.Char.Blank + $matchColor = $cautionColor + $AuthAccount -split $Enum.Char.Slash| where {$_ -notmatch "Microsoft"} | %{ + #Write-Host "This $_ Submitter $Submitter" + if ($_ -ceq $Submitter) { + $matchVar = "matches" + $Auth = $Enum.Char.Plus + $matchColor = $validColor + } + foreach ($User in ((Invoke-GitHubPRRequest -PR $PR -Type reviews -Output Content).user.login | Select-Object -Unique)) { + if ($Submitter -match $User) { + $matchVar = "preapproved" + $Auth = $Enum.Char.Plus + $matchColor = $validColor + } + } + + } + + if ($matchVar -eq $Enum.Char.Blank) { + $matchVar = "does not match" + $Auth = $Enum.Char.Dash + $matchColor = $invalidColor + } + if ($strictness -eq "must") { + $Auth += "!" + } + } + if ($Auth -eq $Enum.Char.NotExclamation) { + if (!$WhatIf) { + Get-PRApproval -PR $PR -PackageIdentifier $PackageIdentifier + } + } + Write-Log "$Auth | " -nonewline -ForegroundColor $matchColor + $matchColor = $validColor + + + + + #/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\ + #-------------------------- Review---------------------------- + #\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////// + + $ReviewMatch = $ReviewList | Where-Object {$_.PackageIdentifier -ceq $PackageIdentifier } + if ($ReviewMatch) { + $Review = $ReviewMatch.Reason | Sort-Object -Unique + $matchColor = $cautionColor + } + + Write-Log "$Review | " -nonewline -ForegroundColor $matchColor + $matchColor = $validColor + + + + #In list, matches PR - explicit pass + #In list, PR has no Installer.yaml - implicit pass + #In list, missing from PR - block + #In list, mismatch from PR - block + #Not in list or PR - pass + #Not in list, in PR - alert and pass? + #Check previous version for omission - depend on wingetbot for now. + $AgreementUrlFromList = ($AgreementsList | where {$_.PackageIdentifier -ceq $PackageIdentifier}).AgreementUrl + if ($AgreementUrlFromList) { + $AgreementUrlFromClip = (Get-YamlValue AgreementUrl -clip $clip) -replace $Enum.Char.DoubleQuote,$Enum.Char.Blank + if ($AgreementUrlFromClip -ceq $AgreementUrlFromList) { + #Explicit Approve - URL is present and matches. + $AgreementAccept = " + !" + } else { + #Explicit mismatch - URL is present and does not match, or URL is missing. + $AgreementAccept = $Enum.Char.NotExclamation + $ApproverUserName = ($AgreementsList | where {$_.PackageIdentifier -ceq $PackageIdentifier}).gitHubUserName + "Reply-ToPR -PR $PR -CannedMessage AgreementMismatch -UserInput $ApproverUserName -Silent" + if ($WhatIf) { + } else { + $ApproverUserName = ($AgreementsList | where {$_.PackageIdentifier -ceq $PackageIdentifier}).gitHubUserName + Reply-ToPR -PR $PR -CannedMessage AgreementMismatch -UserInput $ApproverUserName -Silent + } + } + } else { + $AgreementAccept = $Enum.Char.Plus + #Implicit Approve - your AgreementsUrl is in another file. Can't modify what isn't there. + } + Write-Log "$AgreementAccept | " -nonewline -ForegroundColor $matchColor + $matchColor = $validColor + + + + + + + #/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\ + #-------------------------- Word Filter --------------------- + #\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////// + + + if (($PRtitle -notmatch $enum.PRWatch.AutomaticDeletion) -AND + ($PRtitle -notmatch $Enum.PRWatch.Delete) -AND + ($PRtitle -notmatch $Enum.PRWatch.Remove) -AND + ($AgreementAccept -notmatch "[ + ]")) { + + $WordFilterMatch = $Enum.WordFilterList | ForEach-Object {($Clip -match $_) -notmatch $Enum.Strings.Url -notmatch $Enum.Strings.Agreement} + + if ($WordFilterMatch) { + $WordFilter = $Enum.Char.NotExclamation + $Approve = $Enum.Char.NotExclamation + $matchColor = $invalidColor + if (!$WhatIf) { + Reply-ToPR -PR $PR -CannedMessage WordFilter -UserInput $WordFilterMatch -Silent + } + } + } + Write-Log "$WordFilter | " -nonewline -ForegroundColor $matchColor + $matchColor = $validColor + + + + + + + if ($null -ne $ValToEval) { + if (($PRvMan -ne "N") -AND + ((($Enum.DisplayVersionExceptionList) -join $Enum.Char.Space) -match $PRtitle) -AND + ($PRtitle -notmatch $enum.PRWatch.AutomaticDeletion) -AND + ($PRtitle -notmatch $Enum.PRWatch.Delete) -AND + ($PRtitle -notmatch $Enum.PRWatch.Remove)) { + $DisplayVersion = Get-YamlValue DisplayVersion -clip $clip + $DeveloperIsAuthor = (((Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $clip) -split ".") -ceq $Submitter) + $InstallerMatch = ($InstallerUrl -split $Enum.Char.Slash) -match $Submitter + + if ($DisplayVersion) { + if ($DisplayVersion -eq $prVersion) { + $matchColor = $invalidColor + $AnF = $Enum.Char.Dash + if (!$WhatIf) { + Reply-ToPR -PR $PR -CannedMessage AppsAndFeaturesMatch -UserInput $Submitter -Policy "[Policy] $($Enum.PRLabels.NAF)`n[Policy] $($Enum.PRLabels.CR)" -Silent + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Feedback -Title $PRtitle + } + } + } + + # if (!($DeveloperIsAuthor)) { + # if ($InstallerMatch) { + # $matchColor = $invalidColor + # $AnF = $Enum.Char.Dash + # Reply-ToPR -PR $PR -CannedMessage InstallerMatchesSubmitter -UserInput $Submitter -Policy $Enum.PRLabels.NAF -Silent + # Add-PRToRecord -PR $PR -Action $Enum.PRActions.Feedback -Title $PRtitle + # } + # } + } + } + + Write-Log "$AnF | " -nonewline -ForegroundColor $matchColor + $matchColor = $validColor + + + + #/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\ + #------------- InstallerUrl Version Check --------------- + #\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////// + + if (($PRvMan -ne "N") -AND + ($PRtitle -notmatch $enum.PRWatch.AutomaticDeletion) -AND + ($PRtitle -notmatch $Enum.PRWatch.Delete) -AND + ($PRtitle -notmatch $Enum.PRWatch.Remove)) { + try { + if ([bool]($clip -match $Enum.ManifestKeys.InstallerUrl)) { + $InstallerUrl = Get-YamlValue InstallerUrl -clip $clip + #Write-Host "InstallerUrl: $InstallerUrl $installerMatches prVersion: -PR $PRVersion" -f "blue" + $installerMatches = [bool]($InstallerUrl | Select-String $PRVersion) + if (!($installerMatches)) { + #Matches when the dots are removed from semantec versions in the URL. + $installerMatches2 = [bool]($InstallerUrl | Select-String ($prVersion -replace "[.]",$Enum.Char.Blank)) + if (!($installerMatches2)) { + $matchColor = $invalidColor + $InstVer = $Enum.Char.Dash + } + } + } + } catch { + $matchColor = $invalidColor + $InstVer = $Enum.Char.Dash + }; #end try + }; #end if PRvMan + + try { + if (($prVersion = Get-YamlValue PackageVersion -clip $clip) -match $Enum.Char.Space) { + $matchColor = $invalidColor + $InstVer = $Enum.Char.NotExclamation + } + }catch{} + + Write-Log "$InstVer | " -nonewline -ForegroundColor $matchColor + $matchColor = $validColor + + + + #/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\ + #--------------- Highest Version Removal -------------- + #\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////// + + if (($PRvMan -ne "N") -AND + (($PRtitle -match $enum.PRWatch.AutomaticDeletion) -OR + ($PRtitle -match $Enum.PRWatch.Delete) -OR + ($PRtitle -match $Enum.PRWatch.Remove))) {#Removal PR + + if ($GhRlRemain -le 0) { + $NumVersions = ($WinGetOutput.AvailableVersions | sort).Count + } else { + $NumVersions = $ListVersions.Count + } + if (($prVersion -eq $ManifestVersion) -OR ($NumVersions -eq 1)) { + $matchColor = $invalidColor + if ($WhatIf) { + "Reply-ToPR -PR $PR -CannedMessage VersionCount -UserInput $Submitter -Silent -Policy '[Policy] $($Enum.PRLabels.NAF)`n[Policy] $($Enum.PRLabels.HVL)'" + "Add-PRToRecord -PR $PR -Action $($Enum.PRActions.Feedback) -Title $PRtitle" + } else { + Reply-ToPR -PR $PR -CannedMessage VersionCount -UserInput $Submitter -Silent -Policy "[Policy] $($Enum.PRLabels.NAF)`n[Policy] $($Enum.PRLabels.HVL)" + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Feedback -Title $PRtitle + $NumVersions = "L" + } + } + } else {#Addition PR + <# + $GLD = (Get-ListingDiff $clip | Where-Object {$_.SideIndicator -eq $Enum.DiffData.LeftSide}).installer.yaml #Ignores when a PR adds files that didn't exist before. + if ($null -ne $GLD) { + if ($GLD -eq $Enum.Words.Error) { + $ListingDiff = "E" + $matchColor = $invalidColor + } else { + $ListingDiff = $Enum.Char.NotExclamation + $matchColor = $cautionColor + if (!$WhatIf) { + Reply-ToPR -PR $PR -CannedMessage ListingDiff -UserInput $GLD -Silent + Invoke-GitHubPRRequest -PR $PR -Method $Enum.PRRequestMethods.Post -Type $Enum.PRRequestTypes.Comments -Data "[Policy] $Enum.PRLabels.NAF" -Output Silent + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Feedback -Title $PRtitle + }#if Whatif + }#end if GLD + }#end if null + #> + }#end if PRvMan + Write-Log "$ListingDiff | " -nonewline -ForegroundColor $matchColor + Write-Log "$NumVersions | " -nonewline -ForegroundColor $matchColor + $matchColor = $validColor + + + + + #/////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\ + #-------------------------- Approval ------------------------ + #\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////// + + if ($PRvMan -ne "N") { + if ($null -eq $PRVersion -or $Enum.Char.Blank -eq $PRVersion) { + $noRecord = $True + $PRvMan = "Error:prVersion" + $matchColor = $invalidColor + } elseif ($ManifestVersion -eq "Unknown") { + $noRecord = $True + $PRvMan = "Error:ManifestVersion" + $matchColor = $invalidColor + } elseif ($null -eq $ManifestVersion) { + $noRecord = $True + + if ($GhRlRemain -le 0) { + $PRvMan = $WinGetOutput + } else { + $PRvMan = $ManifestVersion + } + $matchColor = $invalidColor + } elseif ($prVersion -gt $ManifestVersion) { + $PRvMan = $ManifestVersion.toString() + } elseif ($prVersion -lt $ManifestVersion) { + $PRvMan = $ManifestVersion.toString() + $matchColor = $cautionColor + } elseif ($prVersion -eq $ManifestVersion) { + $PRvMan = " = " + } else { + $noRecord = $True + if ($GhRlRemain -le 0) { + $PRvMan = $WinGetOutput + } else { + $PRvMan = $ManifestVersion + } + }; + }; + } else { + $Approve = $Enum.Char.NotExclamation + $Auth = $Enum.Char.NotExclamation + $AnF = "F" + $InstVer = "I" + $prAuth = $Enum.Char.NotExclamation + $Review = "R" + $ListingDiff = "D" + $NumVersions = 99 + $WordFilter = "W" + $AgreementAccept = "G" + $PRvMan = "P" + Open-PRInBrowser -PR $pr + } + + + if (($Approve -eq $Enum.Char.NotExclamation) -or + ($Auth -eq $Enum.Char.NotExclamation) -or + ($AnF -eq $Enum.Char.Dash) -or + ($InstVer -eq $Enum.Char.NotExclamation) -or + ($prAuth -eq $Enum.Char.NotExclamation) -or + ($Review -ne "R") -or + ($ListingDiff -eq $Enum.Char.NotExclamation) -or + ($NumVersions -eq 1) -or + ($NumVersions -eq "L") -or + ($WordFilter -eq $Enum.Char.NotExclamation) -or + ($AgreementAccept -eq $Enum.Char.NotExclamation) -or + ($PRvMan -eq "N")) { + #-or ($PRvMan -match "^Error") + $matchColor = $cautionColor + $Approve = $Enum.Char.NotExclamation + $noRecord = $True + } + if ($WhatIf) { + $Approve += "W" + } + + $PRvMan = Get-PadRight $PRvMan 14 + Write-Log "$PRvMan | " -nonewline -ForegroundColor $matchColor + $matchColor = $validColor + + + + + + if ($PrePipeline -eq $false) { + if ($WhatIf) { + Write-Host "Approve-PR -PR $PR" + Write-Host "Add-PRToRecord -PR $PR -Action $($Enum.PRActions.Approved) -Title $PRtitle" + }else { + if ($Approve -eq $Enum.Char.Plus) { + $Approve = Approve-PR -PR $PR + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Approved -Title $PRtitle + } + } + } + + Write-Log "$Approve | " -ForegroundColor $matchColor + + $oldclip = $PRtitle + + }; #end if Compare-Object + }; #end if PRtitle + }; #end foreach PR + if ($DirectMode) { + $SecondsBetweenRuns = 1 + #Write-Host "Sleeping for $SecondsBetweenRuns seconds." + Start-Sleep $SecondsBetweenRuns + + } else { + $Run = $False + } + if ($Continuous) { + $Run = $True + $SleepSeconds = (30-$ResultsCount)*60 + $WakeTime = (Get-Date (Get-Date).AddSeconds($SleepSeconds)).ToString() + $RunEnd = Get-Date + $RunMinutes = ($RunEnd - $RunStart).TotalMinutes + $RunSeconds = ($RunEnd - $RunStart).TotalSeconds + $RunAvgSecPerItem = $RunSeconds/$ResultsCount + Write-Log "Last run approved $ResultsCount PRs in $RunMinutes minutes ($RunSeconds seconds), for an average of $RunAvgSecPerItem seconds per PR - sleeping until $WakeTime" + if ($WhatIf) { + if ($preprod) { + $Host.UI.RawUI.WindowTitle = "PREPROD-(WhatIf) until $WakeTime" + } else { + $Host.UI.RawUI.WindowTitle = "(WhatIf) until $WakeTime" + } + } else { + if ($preprod) { + $Host.UI.RawUI.WindowTitle = "PREPROD-sleeping until $WakeTime" + } else { + $Host.UI.RawUI.WindowTitle = "sleeping until $WakeTime" + } + } + Write-ApprovalStats -DateTime $RunStart -PRsApprovedDuringLastRun $ResultsCount -LastRunTookSeconds $RunSeconds -SleepUntil $WakeTime + + Sleep $SleepSeconds + } + $log = "" + + }; #end while true eq run +}; #end function + +#Third tab +Function Get-WorkSearch { + Param( + $PresetList = @($Enum.SearchPresets.ToWork),#Approval"," + [int]$Page = $Enum.Num.One, + [switch]$OpenInBrowser + ) + Foreach ($Preset in $PresetList) { + Write-Host "Preset $Preset" + $PRs = (Get-SearchGitHub -Preset $Preset -Page $Page -NoLabels -nBMM) + Write-Host "PRs.Length $($PRs.Length)" + While ($PRs.Length -gt 0) { + $line = 0 + $PRs = (Get-SearchGitHub -Preset $Preset -Page $Page -NoLabels -nBMM) + Write-Output "$(Get-Date -Format $($Enum.Char.T)) $Preset Page $Page beginning with $($PRs.Length) Results" + $PRs = $PRs | where {$_.labels} | where {$_.number -notin (Get-Status).pr} + + Foreach ($FullPR in $PRs) { + # Write-Host "FullPR $FullPR" + $PR = $FullPR.number + Get-TrackerProgress -Activity $MyInvocation.MyCommand.name -ItemName $PR -ItemNumber $line -TotalItems $PRs.Length; $line++ + if ($Enum.PRLabels.HVL -notin $FullPR.labels.name) { + if (($FullPR.title -match $Enum.PRWatch.Remove) -OR + ($FullPR.title -match $Enum.PRWatch.Delete) -OR + ($FullPR.title -match $enum.PRWatch.AutomaticDeletion)){ + Get-GitHubPreset CheckInstaller -PR $PR + } + } + $Comments = Get-PRComments -PR $PR + if ($Preset -eq $Enum.SearchPresets.Approval){ + if (Get-NonStdPRComments -PR $PR -comments $Comments.body){ + Open-PRInBrowser -PR $PR + } else { + Open-PRInBrowser -PR $PR -FIles + } + } elseif ($Preset -eq $Enum.SearchPresets.Defender){ + Get-GitHubPreset -Preset $Enum.GitHubPresets.LabelAction -PR $PR + } else {#ToWork etc + $Comments = ($Comments | Select-Object $Enum.Strings.CreatedAt,@{n = $Enum.Strings.UserName; e = {$_.user.login -replace $Enum.Strings.BotPrefix}},body) + $State = (Get-PRStateFromComments -PR $PR -Comments $Comments) + $LastState = $State[$Enum.Index.Last] + if ($LastState.event -eq $Enum.PRTrackerStates.DefenderFail) { + Get-PRLabelAction -PR $PR + } elseif ($LastState.event -eq $Enum.PRTrackerStates.LabelAction) { + Get-GitHubPreset -Preset $Enum.GitHubPresets.LabelAction -PR $PR + Open-PRInBrowser -PR $PR + } else { + if ($Comments[$Enum.Index.Last].user.login -ne $Enum.GitHubUserNames.GitHubUserName) { + if ($LastState.event -eq $Enum.PRTrackerStates.PreValidation) { + Get-GitHubPreset -Preset $Enum.GitHubPresets.LabelAction -PR $PR + } + if ($OpenInBrowser) { + Open-PRInBrowser -PR $PR + } + } + }#end if LastCommenter + }#end if Preset + }#end foreach FullPR + if ($OpenInBrowser) { + Read-Host "$(Get-Date -Format $($Enum.Char.T)) $Preset Page $Page complete with $($PRs.Length) Results - press ENTER to continue..." + } + $Page++ + }#end While Count + $Page = $Enum.Num.One + }#end Foreach Preset + Write-Progress -Activity $MyInvocation.MyCommand.name -Completed +}#end Get-WorkSearch +#Automation tools +Function Get-GitHubPreset { + Param( + [ValidateScript( { $_ -in (Get-Keys $Enum.GitHubPresets)} )][string]$Preset, + $PR = (Get-CleanClipboard), + $CannedMessage = $Preset, + $UserInput, + [Switch]$Force, + $out = $Enum.Char.Blank + ) + if (($Preset -eq $Enum.GitHubPresets.GitHubStatus) -OR + ($Preset -eq $Enum.GitHubPresets.IdleMode) -OR + ($Preset -eq $Enum.GitHubPresets.IEDSMode) -OR + ($Preset -eq $Enum.GitHubPresets.Timeclock) -OR + ($Preset -eq $Enum.GitHubPresets.Validating) -OR + ($Preset -eq $Enum.GitHubPresets.WorkSearch)) { + $Force = $True + $out += $Preset; + } + + if (($PR.ToString().Length -eq 6) -OR $Force) { + Switch ($Preset) { + $Enum.GitHubPresets.Approved { + $out += Approve-PR -PR $PR; + Add-PRToRecord -PR $PR -Action $Preset + } + $Enum.GitHubPresets.AutomationBlock { + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Blocking + $out += Reply-ToPR -PR $PR -CannedMessage AutomationBlock -Policy $Enum.PRLabels.NB + } + $Enum.GitHubPresets.Blocking { + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Blocking + $out += Invoke-GitHubPRRequest -PR $PR -Method $Enum.PRRequestMethods.Post -Type $Enum.PRRequestTypes.Comments -Data "[Policy] $($Enum.PRLabels.NB)" + } + $Enum.GitHubPresets.CheckInstaller { + $Pull = (Invoke-GitHubPRRequest -PR $PR -Type files -Output $Enum.PRRequestOutput.Content -JSON) + $PullInstallerContents = (Get-DecodeGitHubFile ((Invoke-GitHubRequest -Uri $Pull.contents_url[$Enum.Index.First] -JSON).content)) + $Url = (Get-YamlValue -Key InstallerUrl -clip $PullInstallerContents) + $out = $Enum.Char.Blank + try { + $InstallerStatus = Check-PRInstallerStatusInnerWrapper $Url + $out = "Status Code: $InstallerStatus" + }catch{ + $out = $error[$Enum.Index.First].Exception.Message + } + $Body = "URL: $Url `n" + $out+"`n`n(Automated message - build $build)" + #If ($Body -match "Response status code does not indicate success") { + #$out += Get-GitHubPreset InstallerMissing -PR $PR + #} #Need this to only take action on new PRs, not removal PRs. + $out += Reply-ToPR -PR $PR -body $Body -Automated + # $out = $out += Invoke-GitHubPRRequest -PR $PR -Method $Enum.PRRequestMethods.Post -Type $Enum.PRRequestTypes.Comments -Data $Body -Output $Enum.PRRequestOutput.StatusDescription + } + $Enum.GitHubPresets.Completed { + $out += Reply-ToPR -PR $PR -Body "This package installs and launches normally in a Windows 10 VM." -Policy $Enum.PRLabels.MV + } + $Enum.GitHubPresets.Closed { + if ($UserInput) { + Add-PRToRecord -PR $PR -Action $Preset + $out += Invoke-GitHubPRRequest -PR $PR -Type $Enum.PRRequestTypes.Comments -Output $Enum.PRRequestOutput.StatusDescription -Method $Enum.PRRequestMethods.Post -Data "Close with reason: $UserInput;" + } else { + Write-Output "-UserInput needed to use preset $preset" + } + } + $Enum.GitHubPresets.DefenderFail { + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Blocking + $out += Get-CannedMessage -Response DefenderFail -NoClip -NotAutomated + #$out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy "Needs-Attention`n[Policy] $($Enum.PRLabels.VDE)" + } + $Enum.GitHubPresets.DriverInstall { + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Blocking + $out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy $Enum.PRLabels.DI + } + $Enum.GitHubPresets.Duplicate { + if ($UserInput -match "[0-9]{5,6}") { + Get-GitHubPreset -Preset $Enum.GitHubPresets.Closed -PR $PR -UserInput "Duplicate of #$UserInput" + } else { + Write-Output "-UserInput PRNumber needed to close as duplicate." + } + } + $Enum.GitHubPresets.Feedback { + Add-PRToRecord -PR $PR -Action $Preset + if ($UserInput) { + $out += Reply-ToPR -PR $PR -Body $UserInput -Policy $Enum.PRLabels.NAF + } else { + Write-Output "-UserInput needed to use preset $preset" + } + } + $Enum.GitHubPresets.GitHubStatus { + return (Invoke-GitHubRequest -Uri https://www.githubstatus.com/api/v2/summary.json -JSON) | Select-Object @{n = "Status"; e = {$_.incidents[$Enum.Index.First].status}},@{n = "Message"; e = {$_.incidents[$Enum.Index.First].name+" (" + $_.incidents.Count+")"}} + #$out += $Preset; + } + $Enum.GitHubPresets.IEDSMode { + Get-TrackerVMSetMode IEDS + } + $Enum.GitHubPresets.IdleMode { + Get-TrackerVMSetMode Idle + } + $Enum.GitHubPresets.InstallerNotSilent { + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Feedback + $out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy $Enum.PRLabels.NAF + } + $Enum.GitHubPresets.InstallerMissing { + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Feedback + $out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy $Enum.PRLabels.NAF + } + $Enum.GitHubPresets.LabelAction { + Get-PRLabelAction -PR $PR + } + $Enum.GitHubPresets.ManuallyValidated { + $out += Reply-ToPR -PR $PR -Body "Completing validation." -Policy $Enum.PRLabels.MV + } + $Enum.GitHubPresets.MergeConflicts { + Get-GitHubPreset -Preset $Enum.GitHubPresets.Closed -PR $PR -UserInput "Merge Conflicts" + } + $Enum.GitHubPresets.NetworkBlocker { + Write-Output "Use AutomationBlock instead." + } + $Enum.GitHubPresets.NoInstallerChange { + $out += Reply-ToPR -PR $PR -Body "This PR doesn't modify any of the `InstallerUrl` nor `InstallerSha256` fields." -Policy $Enum.PRLabels.MV + } + $Enum.GitHubPresets.OneManifestPerPR { + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Feedback + $out += Reply-ToPR -PR $PR -CannedMessage $Enum.GitHubPresets.OneManifestPerPR -Policy $Enum.PRLabels.NAF + Get-AddPRLabel -PR $PR -Label $Enum.PRLabels.BI + } + $Enum.GitHubPresets.PRNoYamlFiles { + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Feedback + $out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy $Enum.PRLabels.NAF + Get-GitHubPreset -Preset $Enum.GitHubPresets.MergeConflicts -PR $PR + } + $Enum.GitHubPresets.PackageUrl { + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Feedback + $out += Reply-ToPR -PR $PR -CannedMessage $Preset -Policy $Enum.PRLabels.NAF + } + $Enum.GitHubPresets.PossibleDuplicate { + $Pull = (Invoke-GitHubPRRequest -PR $PR -Type files -Output $Enum.PRRequestOutput.Content -JSON) + $PullInstallerContents = (Get-DecodeGitHubFile ((Invoke-GitHubRequest -Uri $Pull.contents_url[$Enum.Index.First] -JSON).content)) + $Url = (Get-YamlValue -Key InstallerUrl -clip $PullInstallerContents) + $PackageIdentifier = (Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $PullInstallerContents) + $Version = (Get-ManifestVersion -PackageIdentifier $PackageIdentifier) + $out = ($PullInstallerContents -match $Version) + $UserInput = $out | where {$_ -match "http"} | where {$_ -notmatch "json"} + if ($UserInput) { + $UserInput = "InstallerUrl contains Manifest version instead of PR version:`n" + $UserInput+"`n`n(Automated message - build $build)" + $out += Reply-ToPR -PR $PR -Body $UserInput -Policy $Enum.PRLabels.NAF + Add-PRToRecord -PR $PR -Action Feedback + } + } + $Enum.GitHubPresets.Project { + Add-PRToRecord -PR $PR -Action $Preset + } + $Enum.GitHubPresets.RestrictedSubmitter { + Get-GitHubPreset -Preset $Enum.GitHubPresets.Closed -PR $PR -UserInput "Restricted Submitter" + } + $Enum.GitHubPresets.ResetApproval { + $out += Reply-ToPR -PR $PR -Body "Reset approval workflow." -Policy "Reset Feedback `n[Policy] $($Enum.PRLabels.VC) `n[Policy] $($Enum.PRActions.Approved)" + } + $Enum.GitHubPresets.Retry { + Add-PRToRecord -PR $PR -Action $Preset + $out += Get-RetryPR -PR $PR + } + $Enum.GitHubPresets.Squash { + Add-PRToRecord -PR $PR -Action $Preset + } + $Enum.GitHubPresets.Timeclock { + Get-TimeclockSet + } + $Enum.GitHubPresets.Validating { + Get-TrackerVMSetMode Validating + $PR = $Enum.Char.Blank + } + $Enum.GitHubPresets.Waiver { + Add-PRToRecord -PR $PR -Action $Preset + $out += Add-Waiver -PR $PR; + } + $Enum.GitHubPresets.WorkSearch { + Get-WorkSearch + } + } + } else { + $out += "Error: $($PR[0..10])" + } + Write-Output "PR $($PR): $out" +} + +Function Get-PRLabelAction { #Soothing label action. + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [string[]]$PRLabels = ((Invoke-GitHubPRRequest -PR $PR -Type labels -Output $Enum.PRRequestOutput.Content -JSON).name) + # $PRLabelActions = (Get-Content $LabelActionFile | ConvertFrom-Csv), + # [switch]$Debug + ) + Write-Output "PR $PR has labels $PRLabels" + if ($PRLabels -contains $Enum.PRLabels.VDE) { + if ($Debug) {Write-Host ($PRLabels -join $Enum.Char.Space)} + $PRState = Get-PRStateFromComments $PR + if ($Debug) {Write-Host $PRState} + if (($PRState | where {$_.event -eq $Enum.PRTrackerStates.PreValidation})[$Enum.Index.Last].($Enum.Strings.CreatedAt) -lt (Get-Date).AddHours(-8)) {# -AND #Last Prevalidation was 8 hours ago. + #($PRState | where {$_.event -eq $Enum.PRTrackerStates.AutoValEnd})[$Enum.Index.Last].($Enum.Strings.CreatedAt) -lt (Get-Date).AddHours(-12)) { #Last Run was 18 hours ago. + Get-GitHubPreset Retry -PR $PR + } + } else { + + Foreach ($Label in ($PRLabels -split $Enum.Char.Space)) { + if ($Debug) {Write-Host "Label: $Label"} + $Logset = ($Enum.PRLabelActions | Where-Object {$_.Label -match $Label}).Logset -split $Enum.Char.EscapedPipe + $StringSet = ($Enum.PRLabelActions | Where-Object {$_.Label -match $Label}).StringSet -split $Enum.Char.EscapedPipe + $LengthSet = ($Enum.PRLabelActions | Where-Object {$_.Label -match $Label}).LengthSet -split $Enum.Char.EscapedPipe + Switch -wildcard ($Label) { + $Enum.PRLabels.403 { + $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet + if ($UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + } + Get-Autowaiver -PR $PR + } + $Enum.PRLabels.ANF { + $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet + if ($null -ne $UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + } + } + $Enum.PRLabels.BVE { + $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet -length 5 + if ($null -ne $UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + } + if ($UserInput -match $Enum.MagicStrings[3]) { + #Get-GitHubPreset -PR $PR -Preset $Enum.GitHubPresets.AutomationBlock + } + } + $Enum.PRLabels.CLA { + Get-ClaCheck -PR $PR + } + $Enum.PRLabels.EAT { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 36 -SearchString $Enum.MagicStrings[$Enum.Index.First] -length 4 + if ($UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + } + if ($UserInput -match $Enum.MagicStrings[3]) { + Get-GitHubPreset -PR $PR -Preset $Enum.GitHubPresets.AutomationBlock + } + } + $Enum.PRLabels.EHM { + $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet -length 5 + # $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 44 -SearchString $Enum.MagicStrings[7] -length 3 + if ($UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd -Automated + } # Write-Host "a" + # $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet -Length $LengthSet + # Write-Host "b" + # if ($null -ne $UserInput) { + # Write-Host "c" + # Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + # Write-Host "d" + # Get-UpdateHashInPR2 -PR $PR -Clip $UserInput + # Write-Host "e" + # } + # Write-Host "f" + } + $Enum.PRLabels.EIA { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 53 -SearchString $Enum.MagicStrings[6] -length 5 + if ($null -eq $UserInput) { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 25 -SearchString $Enum.MagicStrings[$Enum.Index.First] -Length $enum.Num.Ten + } + if ($null -eq $UserInput) { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 57 -SearchString $Enum.MagicStrings[$Enum.Index.First] -Length $enum.Num.Ten + } + if ($null -eq $UserInput) { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 42 -SearchString $Enum.MagicStrings[$Enum.Index.First] -Length $enum.Num.Ten + } + if ($UserInput) { + $UserInput = Get-AutomatedErrorAnalysis $UserInput + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + Get-GitHubPreset -PR $PR -Preset $Enum.GitHubPresets.CheckInstaller + } + } + $Enum.PRLabels.HVF { + Get-AutoValLog -PR $PR + } + $Enum.PRLabels.HVL { + Approve-PR -PR $PR + } + $Enum.PRLabels.HVR { + Approve-PR -PR $PR + } + $Enum.PRLabels.IE { + if ($Debug) {Write-Host "Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet"} + $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet -whatif + if ($Debug) {Write-Host "UserInput Len $($UserInput.Length)"} + if ($UserInput) { + if (($Enum.MagicStrings[5] -in $UserInput) -OR ("Server Unavailable" -in $UserInput)) { + Get-GitHubPreset -PR $PR Retry + } + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + } + } + $Enum.PRLabels.IEDS { + #Get-AutoValLog -PR $PR + Add-PRToQueue -PR $PR + } + $Enum.PRLabels.IEM { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 15 -SearchString $Enum.MagicStrings[$Enum.Index.Second] + if ($null -match $UserInput) { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 30 -SearchString $Enum.MagicStrings[13] + } + if ($null -match $UserInput) { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 25 -SearchString $Enum.MagicStrings[4] -length 7 + } + if ($null -match $UserInput) { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 39 -SearchString $Enum.MagicStrings[4] -length 7 + } + if ($null -match $UserInput) { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 42 -SearchString $Enum.MagicStrings[9] -MatchOffset -3 -Length 4 + } + if ($null -match $UserInput) { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 46 -SearchString $Enum.MagicStrings[9] -MatchOffset -3 -Length 4 + } + if ($null -match $UserInput) { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 47 -SearchString $Enum.MagicStrings[9] -MatchOffset -3 -Length 4 + } + if ($UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + if ($UserInput -match $enum.StandardPRComments.SequenceNoElements) {#Reindex fixes this. + Reply-ToPR -PR $PR -CannedMessage SequenceNoElements + $PRtitle = ((Invoke-GitHubPRRequest -PR $PR -Type $Enum.Char.Blank -Output $Enum.PRRequestOutput.Content -JSON).title) + if (($PRtitle -match $enum.PRWatch.AutomaticDeletion) -OR ($PRtitle -match $Enum.PRWatch.Remove)) { + Get-GitHubPreset -Preset $Enum.GitHubPresets.Completed -PR $PR + } + } + } + } + $Enum.PRLabels.IEMI { + $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet + if ($UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + } + } + $Enum.PRLabels.IEU { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 25 -SearchString $Enum.MagicStrings[$Enum.Index.Second] + if ($UserInput) { + if ($Enum.MagicStrings[5] -in $UserInput) { + Get-GitHubPreset -PR $PR Retry + } + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + } + } + $Enum.PRLabels.LVR { + Approve-PR -PR $PR + } + $Enum.PRLabels.MIVE { + $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet + if ($null -ne $UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + } + } + $Enum.PRLabels.MMC { + if ((($PRLabels -join $Enum.Char.Space) -match $Enum.PRLabels.VC)) { + Get-VerifyMMC -PR $PR + } + } + $Enum.PRLabels.MVE {#One of these is VER. + if ($Debug) {Write-Host " Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet"} + $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet + if ($null -ne $UserInput) { + if ($Debug) {Write-Host "UserInput: $UserInput"} + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd -Automated + } + } + $Enum.PRLabels.MVE { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 42 -SearchString $Enum.MagicStrings[2] + if ($null -eq $UserInput) { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 42 -SearchString $Enum.MagicStrings[$Enum.Index.Second] + } + if ($null -ne $UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd -Automated + } + } + $Enum.PRLabels.NMM { + # if ($PRLabels -notcontains $Enum.PRLabels.BI) { + # Approve-PR -PR $PR + # Get-MergePR -PR $PR + # } + } + $Enum.PRLabels.NP { + if ((($PRLabels -join $Enum.Char.Space) -notmatch $Enum.PRLabels.MA)) { + Add-PRToQueue -PR $PR + } + } + $Enum.PRLabels.PD { + Get-DuplicateCheck -PR $PR + } + $Enum.PRLabels.PRE { + # $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 36 -SearchString $Enum.MagicStrings[13] -Length 0 + # if ($Debug) { + # Write-Host "Debug" + # $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet -Length $LengthSet -WhatIF + # } else { + $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet + # $UserInput = Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet -StringNumbers $StringSet -Length $LengthSet + # } + + + if ($UserInput -match $Enum.Strings.OneManifestPerPR) { + Get-GitHubPreset -Preset $Enum.GitHubPresets.OneManifestPerPR -PR $PR + } elseif ($UserInput -match $Enum.Strings.PRNoYamlFiles) { + Get-GitHubPreset -Preset $Enum.GitHubPresets.PRNoYamlFiles -PR $PR + } elseif ($UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd -Automated + } + } + $Enum.PRLabels.UVE { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 32 -SearchString $Enum.Strings.ValidationResultFailed + Get-GitHubPreset -PR $PR -Preset $Enum.GitHubPresets.CheckInstaller + if ($UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + } + Get-Autowaiver -PR $PR + } + $Enum.PRLabels.VC { + } + $Enum.PRLabels.VD { + Get-Autowaiver -PR $PR + } + $Enum.PRLabels.VEE { + Get-AutoValLog -PR $PR + Get-RerunCheck -PR $PR + } + $Enum.PRLabels.VIE { + Get-AutoValLog -PR $PR + Get-Autowaiver -PR $PR + } + $Enum.PRLabels.VMD { + $UserInput = Get-LineFromBuildResult -PR $PR -LogNumber 25 -SearchString $Enum.MagicStrings[$Enum.Index.Second] + if ($UserInput) { + Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd + } + } + $Enum.PRLabels.VMC { + } + $Enum.PRLabels.VNE { + Get-Autowaiver -PR $PR +<# + $Title = ((Invoke-GitHubPRRequest -PR $PR -Type $Enum.Char.Blank -Output $Enum.PRRequestOutput.Content -JSON).title); + foreach ($Waiver in (Get-ValidationData -Property AutoWaiverLabel)) { + if ($Title -match $Waiver.PackageIdentifier) { + Get-GitHubPreset -PR $PR Waiver + } + } + #> + } + $Enum.PRLabels.VSE { + Get-AutoValLog -PR $PR + Add-PRToQueue -PR $PR + } + $Enum.PRLabels.VUF { + Get-AutoValLog -PR $PR + Add-PRToQueue -PR $PR + } + $Enum.PRLabels.VUE { + Get-Autowaiver -PR $PR + } + $Enum.PRLabels.VUU { + Get-Autowaiver -PR $PR + } + "Policy-Test-*" { + Get-Autowaiver -PR $PR + } + }#end Switch Label + }#end Foreach Label + }#end if PRLabels +} + +Function Get-ScheduledRun { + # [console]::beep(500,250);[console]::beep(500,250);[console]::beep(500,250) #Beep 3x to alert the PC user. + if ($preprod) { + $Host.UI.RawUI.WindowTitle = "PREPROD-Periodic Run" + } else { + $Host.UI.RawUI.WindowTitle = "Periodic Run" + } + + #Check for yesterday's report and create if missing. + $Month = (Get-Culture).DateTimeFormat.GetMonthName((Get-Date).Month) + md "$logsFolder\$Month" -ErrorAction SilentlyContinue + $Yesterday = (get-date).AddDays(-1) + $YesterdayFormatted = (get-date $Yesterday -f MMddyy) + $ReportName = "$logsFolder\$Month\Stats\$YesterdayFormatted-Report.csv" + if (Get-Content $ReportName -ErrorAction SilentlyContinue) { + Write-Host "Report for $YesterdayFormatted found." + } else { + Write-Host "Report for $YesterdayFormatted not found." + #And everything else that should run once every 24h. + Get-PRFullReport -Today $YesterdayFormatted + Get-CleanPRExcludeFile + Get-CleanPRFolder + Get-RepoCountReport + (Get-SearchGitHub None -Label $Enum.PRLabels.MVC).number | %{Open-PRInBrowser -PR $_} + } + + Get-StaleVMCheck + + $PresetList2 = $Enum.PRLabels.CLA, $Enum.PRLabels.VIE, $Enum.PRLabels.VEE, $Enum.PRLabels.VSE, $Enum.PRLabels.VD, $Enum.PRLabels.VUU, $Enum.PRLabels.VIE, $Enum.PRLabels.PT12, $Enum.PRLabels.PT18, $Enum.PRLabels.PT23, $Enum.PRLabels.PT27, "New-Package label:New-Manifest"; + foreach ($Preset in $PresetList2) { + $Results = (Get-SearchGitHub -Preset None -Label $Preset -DaysAgo 1).number; + Write-Output "$(Get-Date -Format $($Enum.Char.T)) Starting $Preset with $($Results.Length) Results" + if ($Results) { + foreach ($PR in $Results) { + Get-ClaCheck -PR $PR + # switch ($Preset) { + # "New-Package label:New-Manifest" { + # Get-RemovePRLabel -PR $PR -LabelName $Enum.PRLabels.NP + # } + # Default { + Get-PRLabelAction -PR $PR + # } + # } + } + }#end if Results12 + Write-Output "$(Get-Date -Format $($Enum.Char.T)) Completing $Preset with $($Results.Length) Results" + }#End for preset + + $PresetList = ($Enum.SearchPresets.Defender,$Enum.SearchPresets.Duplicate,$Enum.SearchPresets.HVR,$Enum.SearchPresets.IEDS,$Enum.SearchPresets.LVR,$Enum.SearchPresets.MMC,$Enum.SearchPresets.NMM,$Enum.SearchPresets.ToWork3,$Enum.SearchPresets.Approval,$Enum.SearchPresets.VCMA) + foreach ($Preset in $PresetList) { + $Results = (Get-SearchGitHub -Preset $Preset -nBMM -DaysAgo 1).number + Write-Output "$(Get-Date -Format $($Enum.Char.T)) Starting $Preset with $($Results.Length) Results" + if ($Results) { + switch ($Preset) { + $Enum.SearchPresets.Approval { + $Results = (Get-SearchGitHub Approval -NewPackages -DaysAgo 1).number + $Results | %{Get-ClaCheck -PR $_;Add-PRToQueue -PR $_} + } + $Enum.SearchPresets.Approval2 { + $Results | %{ + Write-Output "$(get-date): $_"; + Get-ClaCheck -PR $_; + Get-PRManifest -pr $_ | clip; + sleep 5 + } + } + $Enum.SearchPresets.IEDS { + $Results | %{Get-ClaCheck -PR $_;Add-PRToQueue -PR $_} + } + $Enum.SearchPresets.VCMA { + $GitHubResults = Get-SearchGitHub VCMA #-DaysAgo 1 + $AnHourAgo = (get-date).AddHours(-1) + $Results = ($GitHubResults | where {[TimeZone]::CurrentTimeZone.ToLocalTime($_.updated_at) -lt $AnHourAgo}).number + #Time, as a number, is always increasing. So the past is always less than the present, which is always less than the future. + $Results | %{Get-ClaCheck -PR $_;Approve-PR -PR $_;Get-MergePR -PR $_} + } + Default { + $Results | %{Get-ClaCheck -PR $_;Get-PRLabelAction -PR $_ } + } + }#end switch Preset + }#end if Results12 + Write-Output "$(Get-Date -Format $($Enum.Char.T)) Completing $Preset with $($Results.Length) Results" + }#End for preset + + Write-Output "$(Get-Date -Format $($Enum.Char.T)) Starting $Preset with $($Results.Length) Results" + + + Write-Output "$(Get-Date -Format $($Enum.Char.T)) Starting PushMePRYou with $($Enum.PushMePRWho.Count) Results" + $Enum.PushMePRWho | %{Write-Host $_.Author;Get-PushMePRYou -Author $_.Author -MatchString $_.MatchString} + Write-Output "$(Get-Date -Format $($Enum.Char.T)) Completing PushMePRYou with $($Enum.PushMePRWho.Count) Results" + if (([int](get-date -f mm) -eq 20) -OR ([int](get-date -f mm) -eq 50)) { + sleep (60-(get-date -f ss))#Sleep out the minute. + } +} + +Function Get-StaleVMCheck { + if ((get-date) -gt $NextStaleCheck) { + $VMStatus = Get-Content $statusFile | convertfrom-csv + $CheckVMStatus = ($VMStatus | where {$_.status -ne $Enum.VMStatus.Ready}) + Write-Output "$(Get-Date -Format $($Enum.Char.T)) Starting stale VM check with $($CheckVMStatus.Count) Results" + foreach ($vm in $CheckVMStatus) { + if ($VM.pr -ne 1) { + $vmNum = $vm.vm + $PRState = (Invoke-GitHubPRRequest -PR $VM.pr -Type $Enum.PRRequestTypes.Blank -Output Content).state; + $PRLabels = ((Invoke-GitHubPRRequest -PR $VM.pr -Type $Enum.PRRequestTypes.Labels -Output $Enum.PRRequestOutput.Content -JSON).name) + if ($null -ne $PRState) { + if (($PRState -ne $Enum.PRStates.Open) -OR + (($PRLabels -join $Enum.Char.Space) -match $Enum.PRLabels.CR)){ + Get-TrackerVMSetStatus -Status $Enum.VMStatus.Complete -VM $vmNum + Suspend-VM -Name "vm$vmNum" + } #end if PRState.state + } #end if null + } #end VM.pr + } #end foreach vm + Write-Output "$(Get-Date -Format $($Enum.Char.T)) Completing stale VM check with $($CheckVMStatus.Count) Results" + $NextStaleCheck = (Get-Date).AddMinutes(5) + } +} + +Function Get-RerunCheck { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $Comments = (Get-PRComments -PR $PR), + [int]$MatchCode = $enum.RerunCheck.MatchCode, + [int]$RetryCount = $Enum.Num.Two, + [string]$MatchTerm = $Enum.Strings.ValidationPipelineRun, + [switch]$WhatIf + ) + Process { + $LastAutomationComment = $Enum.Char.Blank + $ValPipeRunCount = 0 + try { + $LastAutomationComment = ($Comments | Where-Object {$_.user.login -eq $Enum.GitHubUserNames.GitHubUserName})[$Enum.Index.Last].body -join $Enum.Char.Space + } catch {}#If this fails, I don't care. It's already the empty string it needs to be. + try { + $ValPipeRunCount = ($Comments.body | where {$_ -match $MatchTerm}).Count + } catch {}#If this fails, I don't care. It's already the zero it needs to be. + #IF contains MatchCode + #If only 1 retry + if (($LastAutomationComment -match $MatchCode) -OR + ($ValPipeRunCount -lt $RetryCount)) { + Write-Host "Checking PR $PR" + if ($WhatIf) { + Write-Host "Reply-ToPR -PR $pr -body '$($Enum.Strings.WingetbotRun)'" + } else { + Reply-ToPR -PR $pr -body $Enum.Strings.WingetbotRun + } + } else { + Write-Host "PR $PR is workable, adding to queue." + Add-PRToQueue -PR $PR + Return + } + } +} + +Function Get-LogFromCommitFile { + Param( + $PR, + [array]$LogNumbers, + [array]$StringNumbers, + $Length = 0, + [switch]$WhatIf + ) + Foreach ($Log in $LogNumbers) { + $n = 0; + if ($WhatIf) {Write-Host "Log: $log"} + while ($n -le ($StringNumbers.Count -1)) { + try { + if ($WhatIf) { + Write-Host "n $n - Get-LineFromBuildResult -PR $PR -LogNumber $Log -SearchString $($Enum.MagicStrings[$StringNumbers[$n]]) -Length $Length - UserInput $UserInput" + } else { + $UserInput += Get-LineFromBuildResult -PR $PR -LogNumber $Log -SearchString $Enum.MagicStrings[$StringNumbers[$n]] -Length $Length + } + } catch {} + $n++ + } + } + + if ($WhatIf) { + Write-Host "return $UserInput" + } else { + return $UserInput + } +} + +<# +Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet[$Enum.Index.First] -StringNumbers $StringSet[$Enum.Index.First] -WhatIf +Log: 36 +n 0 - Get-LineFromBuildResult -PR 369299 -LogNumber 36 -SearchString -Length 0 - UserInput +return +A few minutes later... +Get-LogFromCommitFile -PR $PR -LogNumbers $LogSet[$Enum.Index.First] -StringNumbers $StringSet[$Enum.Index.First] -WhatIf +Log: 36 +n 0 - Get-LineFromBuildResult -PR 369299 -LogNumber 36 -SearchString [error] -Length 0 - UserInput +return +#> + +Function Add-Waiver { + Param( + $PR, + $LabelNames = ((Invoke-GitHubPRRequest -PR $PR -Type $Enum.prRequestTypes.Labels -Output $Enum.PRRequestOutput.Content -JSON).name) + ) + Foreach ($Label in $LabelNames) { + $Waiver = $Enum.Char.Blank + Switch ($Label) { + $Enum.PRLabels.EAT { + Get-GitHubPreset -Preset $Enum.GitHubPresets.Completed -PR $PR + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.First] + $Waiver = $Label + } + $Enum.PRLabels.PT27 { + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.First] + $Waiver = $Label + } + $Enum.PRLabels.PT12 { + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.First] + $Waiver = $Label + } + $Enum.PRLabels.PT23 { + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.First] + $Waiver = $Label + } + $Enum.PRLabels.VC { + Get-GitHubPreset -Preset $Enum.GitHubPresets.Approved -PR $PR + Add-PRToRecord -PR $PR -Action $actions[$Enum.Num.Two] + } + $Enum.PRLabels.VD { + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.First] + $Waiver = $Label + } + $Enum.PRLabels.VEE { + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.First] + $Waiver = $Label + } + $Enum.PRLabels.403 { + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.Second] + $Waiver = $Label + } + $Enum.PRLabels.VIE { + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.Second] + $Waiver = $Label + } + $Enum.PRLabels.VNE { + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.Second] + $Waiver = $Label + } + $Enum.PRLabels.VSE { + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.Second] + $Waiver = $Label + } + $Enum.PRLabels.VUF { + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.Second] + $Waiver = $Label + } + $Enum.PRLabels.VUE { + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.Second] + $Waiver = $Label + } + $Enum.PRLabels.VR { + Get-GitHubPreset -Preset $Enum.GitHubPresets.Completed -PR $PR + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.First] + } + $Enum.PRLabels.IEDS { + Get-GitHubPreset -Preset $Enum.GitHubPresets.Completed -PR $PR + Add-PRToRecord -PR $PR -Action $actions[$Enum.Index.First] + } + } + if ($Waiver -ne $Enum.Char.Blank) { + $out = Get-CompletePR -PR $PR + Write-Output $out + }; #end if Waiver + }; #end Foreach Label +}; #end Add-Waiver + +Function Get-CannedMessage { + Param( + [ValidateScript( { $_ -in (Get-Keys $Enum.CannedMessages)} )][string[]]$Response, + $UserInput = (Get-CleanClipboard), + [switch]$NoClip, + [switch]$NotAutomated + ) + [string]$Username = $Enum.Char.Ampersand + $UserInput.replace($Enum.Char.Space,$Enum.Char.Blank) + $Enum.Char.Comma + switch ($Response) { + $Enum.CannedMessages.AgreementMismatch { + $AgreementUrlFromList = ($AgreementsList | where {$_.PackageIdentifier -eq $PackageIdentifier}).AgreementUrl + $out = "Hi $Username`n`nThis package uses Agreements, but this manifest's AgreementsUrl doesn't match the AgreementsUrl on file: $AgreementUrlFromList" + } + $Enum.CannedMessages.AppsAndFeaturesNew { + $out = "Hi $Username`n`nThis manifest adds a `DisplayVersion` to the `AppsAndFeaturesEntries` that isn't present in previous manifest versions. This entry should be added to the previous versions, or removed from this version." + } + $Enum.CannedMessages.AppsAndFeaturesMissing { + $out = "Hi $Username`n`nThis manifest removes the `DisplayVersion` from the `AppsAndFeaturesEntries`, which is present in previous manifest versions. This entry should be added to this version, to maintain version matching, and prevent the 'upgrade always available' situation with this package." + } + $Enum.CannedMessages.AppsAndFeaturesMatch { + $out = "Hi $Username`n`nThis manifest uses the same values for `DisplayVersion` and `PackageVersion`. This is not recommended, and the `DisplayVersion` should be removed." + } + $Enum.CannedMessages.AppFail { + $out = "Hi $Username`n`nThe application installed normally, but gave an error instead of launching:`n" + } + $Enum.CannedMessages.Approve { + $out = "Hi $Username`n`nDo you approve of these changes?" + } + $Enum.CannedMessages.AutoValEnd { + $UserInput = Get-AutomatedErrorAnalysis ($UserInput -join $Enum.Char.LineBreak) + $out = "Automatic Validation ended with: `n> $UserInput" + } + $Enum.CannedMessages.DriverInstall { + $out = "Hi $Username`n`nThe installation is unattended, but installs a driver which isn't unattended:`nUnfortunately, installer switches are not usually provided for this situation. Are you aware of an installer switch to have the driver silently install as well?" + } + $Enum.CannedMessages.DoesntRun { + $out = "Hi $Username`n`nThis package seems to install normally, but doesn't run when launched. Is this expected? Manual Validation ended with: `n> $UserInput" + } + $Enum.CannedMessages.InstallerFail { + $out = "Hi $Username`n`nThe installer did not complete:`n" + } + $Enum.CannedMessages.InstallerMissing { + $out = "Hi $Username`n`nHas the installer been removed?" + } + $Enum.CannedMessages.InstallerNotSilent { + $out = "Hi $Username`n`nThe installation isn't unattended. Is there an installer switch to have the package install silently?" + } + $Enum.CannedMessages.ListingDiff { + $out = "This PR omits these files that are present in the current manifest:`n> $UserInput" + } + $Enum.CannedMessages.ManifestVersion { + $out = "Hi $Username`n`nWe don't often see the `1.0.0` manifest version anymore. Would it be possible to upgrade this to the [1.12.0]($GitHubBaseUrl/tree/master/doc/manifest/schema/1.12.0) version, possibly through a tool such as [WinGetCreate](https://learn.microsoft.com/en-us/windows/package-manager/package/manifest?tabs = minschema%2Cversion-example), [YAMLCreate]($GitHubBaseUrl/blob/master/Tools/YamlCreate.ps1), or [Komac](https://github.com/russellbanks/Komac)? " + } + $Enum.CannedMessages.ManValEnd { + $UserInput = Get-AutomatedErrorAnalysis ($UserInput -join $Enum.Char.LineBreak) + $out = "Manual Validation ended with: `n> $UserInput" + } + $Enum.CannedMessages.MergeFail { + if ($UserInput -match "Required status check") { + $UserInput += "" + } + $out = "Merging failed with:`n> $UserInput" + } + $Enum.CannedMessages.NoExe { + $out = "Hi $Username`n`nThe installer doesn't appear to install any executables, only supporting files:`n`nIs this expected?" + } + $Enum.CannedMessages.NotGoodFit { + $out = "Hi $Username`n`nUnfortunately, this package might not be a good fit for inclusion into the WinGet public manifests. Please consider using a local manifest (`WinGet install --manifest C:\path\to\manifest\files\`) for local installations. " + } + $Enum.CannedMessages.OneManifestPerPR { + $out = "Hi $Username`n`nWe have a limit of 1 manifest change, addition, or removal per PR. This PR modifies more than one PR. Can these changes be spread across multiple PRs?" + } + $Enum.CannedMessages.Only64bit { + $out = "Hi $Username`n`nValidation failed on the $($Enum.Arch.86) package, and $($Enum.Arch.86) packages are validated on 32-bit OSes. So this might be a 64-bit package." + } + $Enum.CannedMessages.PackageFail { + $out = "Hi $Username`n`nThe package installs normally, but fails to run:`n" + } + $Enum.CannedMessages.PackageUrl { + $out = "Hi $Username`n`nCould you add a PackageUrl?" + } + $Enum.CannedMessages.PolicyWrapper { + $out = "" + } + $Enum.CannedMessages.PRNoYamlFiles { + $out = "Hi $Username`n`nThis error means that this PR diff Master had no output. In other words, it's like a merge conflict.`n> The pull request doesn't include any manifest files yaml." + } + $Enum.CannedMessages.RemoveAsk { + $out = "Hi $Username`n`nThis package installer is still available. Why should it be removed?" + } + $Enum.CannedMessages.Unavailable { + $out = "Hi $Username`n`nThe installer isn't available from the publisher's website:" + } + $Enum.CannedMessages.Unattended { + $out = "Hi $Username`n`nThe installation isn't unattended:`n`nIs there an installer switch to bypass this and have it install automatically?" + } + $Enum.CannedMessages.UrlBad { + $out = "Hi $Username`n`nI'm not able to find this InstallerUrl from the PackageUrl. Is there another page on the developer's site that has a link to the package?" + } + $Enum.CannedMessages.VersionCount { + $out = "Hi $Username`n`nThis manifest has the highest version number for this package. Is it available from another location? (This might be in error if the version is switching from semantic to string, or string to semantic.)" + } + $Enum.CannedMessages.WhatIsIEDS { + $out = "Hi $Username`n`nThe label `Internal-Error-Dynamic-Scan` is a blanket error for one of a number of internal pipeline errors or issues that occurred during the Dynamic Scan step of our validation process. It only indicates a pipeline issue and does not reflect on your package. Sorry for any confusion caused." + } + $Enum.CannedMessages.WordFilter { + $out = "This manifest contains a term that is blocked:`n`n> $UserInput" + } + Default { + $out = $Enum.CannedMessageResponses.($Response) + } + } + if (!($NotAutomated)) { + $out += "`n`n(Deterministic automation - build $build.)" + } + if ($NoClip) { + $out + } else { + $out |clip + } +} + +Function Get-AutomatedErrorAnalysis { + Param( + $UserInput, + $Spacer = " | " + ) + + #$UserSplit = $UserInput -replace "0x",$Enum.Char.Blank -replace "[^\w]",$Enum.Char.Space -split $Enum.Char.Space + $UserInput = ($UserInput -split $Enum.Char.LineBreak) | where {$_ -notmatch 'Winget errors'} + $UserInput = ($UserInput -split $Enum.Char.LineBreak) | where {$_ -notmatch 'attempting win'} + $UserJoin = $UserInput -join $Enum.Char.Space -replace $Enum.Char.LineBreak,$Enum.Char.Blank -replace $Enum.Char.CarriageReturn,$Enum.Char.Blank + $UserSplit = $UserJoin -replace "0x",$Enum.Char.Space -replace $Enum.Char.EscapedOpenParens,$Enum.Char.Space -replace ">",$Enum.Char.Space -replace "<",$Enum.Char.Space -split $Enum.Char.Space + $UserSplit = $UserSplit | Sort-Object -Unique + [array]$UserArray = ($UserInput -join $Enum.Char.LineBreak) + + # Write-Host "UserJoin $UserJoin" + # Write-Host "UserInput $UserInput" + # Write-Host "UserArray $($UserArray -join '`n')" + + if ($UserJoin -match "exit code" -OR + $UserJoin -match "DeliveryOptimization error" -OR + $UserJoin -match "Installer failed security check" -OR + $UserJoin -match "Error information") { + $ExitCodeTable = Get-Content $ExitCodeFile | ConvertFrom-Csv + + $UserArray += "$($Enum.Char.LineBreak) $($Enum.Char.LineBreak) | Hex | Dec | Inverted Dec | Symbol | Description | $($Enum.Char.LineBreak) | --- | --- | --- | --- | --- | $($Enum.Char.LineBreak)" + foreach ($ExitCode in $ExitCodeTable) { + foreach ($Word in $UserSplit) { + if (($Word -eq $ExitCode.Hex) -OR ($Word -eq $ExitCode.Dec) -OR ($Word -eq $ExitCode.InvDec) ) { + $UserArray += $Spacer + $ExitCode.Hex + $Spacer + $ExitCode.Dec + $Spacer + $ExitCode.InvDec + $Spacer + $ExitCode.Symbol + $Spacer + $ExitCode.Description + $Spacer + $Enum.Char.LineBreak + }# end if word + }# end foreach word + }#end foreach exitcode + }#end if userinput + $UserArray = $UserArray | Select-Object -Unique + return $UserArray +}#end function + +Function Get-DownloadADOFile { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [string]$DestinationPath = "$MainFolder\Installers", + [string]$LogPath = "$DestinationPath\ValidationResult\", + [string]$ZipPath = "$DestinationPath\ValidationResult.zip", + [int]$RetriesLimit = $enum.Num.Ten, + [switch]$CleanoutDirectory, + [switch]$WhatIf, + [switch]$Force, + [switch]$Silent, + $notes = $Enum.Char.Blank + ) + $PRState = Get-PRStateFromComments $PR + $FileList = $null + [int]$BackoffSeconds = 0 + [int]$Retries = 0 + $ArtfiactUrl = $Enum.Char.Blank + $DownloadSeconds = 8; + if ($Preprod) { + $BuildNumber = 1 + } else { + $BuildNumber = Get-BuildFromPR -PR $PR + } + if ($BuildNumber -gt 0) { + while ($FileList -eq $null) { + try { + #This downloads to Windows default location, which has already been set to $DestinationPath + if ($Preprod) { + $CheckData = Get-CheckData -PR $PR | where {$_.name -match "Validation Completed"} + $ArtfiactUrl = (($CheckData.output.text -split $Enum.Char.LineBreak | select-string "zip")[$Enum.Index.Last] -split $Enum.Char.DoubleQuote)[3] + } else { + $ArtfiactUrl = "$ADOMSBaseUrl/$ADOMSGUID/_apis/build/builds/$BuildNumber/artifacts?artifactName = ValidationResult&api-version = 7.1&%24format = zip" + } + Start-Process $ArtfiactUrl + if ($WhatIf) { + Write-Host $ArtfiactUrl + } + Start-Sleep $DownloadSeconds; + [bool]$IsZipPath = (Test-Path $ZipPath) + if ($WhatIf) { + Write-Host "IsZipPath $IsZipPath" + } + if (!$IsZipPath) { + if ($Retries -ge $RetriesLimit) { + $UserInput = "No logs after $Retries retries." + if ($WhatIf) { + Write-Host "Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd" + } else { + $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd -Automated + } + Write-Host $UserInput + Break; + } else { + Write-Host "Retry $Retries of $RetriesLimit" + } + $Retries++ + } + Remove-Item $LogPath -Recurse -ErrorAction Ignore + Expand-Archive $ZipPath -DestinationPath $DestinationPath; + Remove-Item $ZipPath + if ($CleanoutDirectory) { + Get-ChildItem $DestinationPath | Remove-Item -Recurse + } + $FileList = (Get-ChildItem $LogPath).FullName + } catch { + if ($BackoffSeconds -gt 60) { + $UserInput = "Build $BuildNumber not found." + } + $AddSeconds = Get-Random -min $Enum.Num.One -max 5 + $BackoffSeconds += $AddSeconds + Write-Host "Can't access $DestinationPath or a subfolder. Backing off another $AddSeconds seconds, for $BackoffSeconds total seconds." + sleep $BackoffSeconds + } + } + } +} + +Function Get-ValidationResult { + Param( + [Parameter(ValueFromPipeline)][int]$PR = (Get-CleanClipboard) + ) + Write-Host "Get-ValidationResult PR $PR" + $BuildNumber = Get-BuildFromPR -PR $PR + + $ValidationResultUrl = "https://dev.azure.com/shine-oss/8b78618a-7973-49d8-9174-4360829d979b/_apis/build/builds/$BuildNumber/" + $ValidationResultData = Invoke-GitHubRequest $ValidationResultUrl + $ValidationResult = $ValidationResultData | ConvertFrom-Json + + if (($ValidationResult.status -eq "completed") -and ($ValidationResult.result -eq "succeeded")) { + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.VC + } else { + Get-DownloadADOFile -PR $PR -RetriesLimit 1 + # [int]$PR = ($clip -split $Enum.Char.Slash| Select-String $Enum.Regex.PRRegex ) + $ResultFileName = "InstallationVerification_Result.json" + + $DestinationPath = "$MainFolder\Installers" + $ValidationResultPath = "$DestinationPath\ValidationResult\" + + $PackageIdentifier = (ls $ValidationResultPath)[$Enum.Index.First].name + $ValidationResultPath += "$PackageIdentifier\" + $PackageVersion = (ls $ValidationResultPath)[$Enum.Index.First].name + $ValidationResultPath += "$PackageVersion\" + $ResultFilePath = (ls $ValidationResultPath).fullname | where {$_ -match $ResultFileName} + + # if (!$ResultFilePath) { + # $ResultFileName = "ContentCatalogVerification_Result.json" + # $ResultFilePath = (ls $ValidationResultPath).fullname | where {$_ -match $ResultFileName} + # } + if ($ResultFilePath) { + $OverallResult = (Get-Content $ResultFilePath | ConvertFrom-Json).OverallResult + if ($OverallResult -eq "Success") { + #Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.VC + Write-Host "$($PR): Success" + } else { + Write-Host "$($PR): $LabelName" + $LabelName = (Get-Content $ResultFilePath | ConvertFrom-Json).TestplansResults.TestPlan + Get-AddPRLabel -PR $PR -LabelName $LabelName + } + } + } + # Write-Host "ContentCatalogVerification_Result.json" + +} + +Function Get-AutoValLog { + #Needs $GitHubToken to be set up in your -PR $PROFILE or somewhere more secure. Needs permissions: workflow, + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $DestinationPath = "$MainFolder\Installers", + $LogPath = "$DestinationPath\InstallationVerificationLogs\", + $ZipPath = "$DestinationPath\InstallationVerificationLogs.zip", + $BuildNumber = (Get-BuildFromPR -PR $PR ), + [switch]$CleanoutDirectory, + [switch]$WhatIf, + [switch]$Force, + [switch]$Silent, + $notes = $Enum.Char.Blank + ) + Write-Host "Gathering data for PR $PR" + $PRState = Get-PRStateFromComments $PR + $FileList = $null + [int]$BackoffSeconds = $Enum.Num.Zero + [int]$Retries = $Enum.Num.Zero + [int]$RetriesLimit = 1 + $ArtfiactUrl = $Enum.Char.Blank + + if ((!($PRState | where {$_.event -eq $Enum.PRTrackerStates.AutoValEnd})) -OR (($PRState | where {$_.event -eq $Enum.PRTrackerStates.PreValidation})[$Enum.Index.Last].($Enum.Strings.CreatedAt) -gt ($PRState | where {$_.event -eq $Enum.PRTrackerStates.AutoValEnd})[$Enum.Index.Last].($Enum.Strings.CreatedAt)) -OR ($Force)) { #Last Prevalidation was 8 hours ago. + $DownloadSeconds = 8; + $LowerOps = $true; + $WaiverList = Get-ValidationData -Property AutoWaiverLabel + #Get-Process *photosapp* | Stop-Process + if ($Preprod) { + $BuildNumber = 1 + } else { + + } + + if ($BuildNumber -gt $Enum.Num.Zero) { + while ($null -eq $FileList) { + try { + #This downloads to Windows default location, which has already been set to $DestinationPath + if ($Preprod) { + $ZipPath = "$DestinationPath\WinGetSvc-Validation-Ppe-$PR-3-artifacts.zip" + + $CheckData = Get-CheckData -PR $PR | where {$_.name -match "Validation Completed"} + $ArtfiactUrl = (($CheckData.output.text -split $Enum.Char.LineBreak | select-string "zip")[$Enum.Index.Last] -split $Enum.Char.DoubleQuote)[3] + } else { + $ArtfiactUrl = "$ADOMSBaseUrl/$ADOMSGUID/_apis/build/builds/$BuildNumber/artifacts?artifactName=InstallationVerificationLogs&api-version=7.1&%24format=zip" + } + Start-Process $ArtfiactUrl + if ($WhatIf) { + Write-Host $ArtfiactUrl + } + Start-Sleep $DownloadSeconds; + [bool]$IsZipPath = (Test-Path $ZipPath) + if ($WhatIf) { + Write-Host "IsZipPath $IsZipPath" + } + if (!$IsZipPath) { + if ($Retries -ge $RetriesLimit) { + $UserInput = "No logs after $Retries retries." + if ($WhatIf) { + Write-Host "Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd" + } else { + if ($Force) { + $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd + } else { + $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd -Automated + } + } + Write-Host $UserInput + Break; + } else { + Write-Host "Retry $Retries of $RetriesLimit" + } + $Retries++ + } + Remove-Item $LogPath -Recurse -ErrorAction Ignore + Expand-Archive $ZipPath -DestinationPath $DestinationPath; + Remove-Item $ZipPath + if ($CleanoutDirectory) { + Get-ChildItem $DestinationPath | Remove-Item -Recurse + } + $FileList = (Get-ChildItem $LogPath).FullName + } catch { + if ($BackoffSeconds -gt 60) { + $UserInput = "Build $BuildNumber not found." + } + $AddSeconds = Get-Random -min 1 -max 5 + $BackoffSeconds += $AddSeconds + Write-Host "Can't access $DestinationPath or a subfolder. Backing off another $AddSeconds seconds, for $BackoffSeconds total seconds." + sleep $BackoffSeconds + } + } + + [Array]$UserInput = $null + foreach ($File in $filelist) { + $UserInput += (Get-Content $File) -split $Enum.Char.LineBreak + } + $UserInput = $UserInput | Where-Object { + $_ -match '[[]FAIL[]]' -OR + $_ -match 'error' -OR + $_ -match 'exception' -OR + $_ -match 'exit code' -OR + $_ -match 'fail' -OR + $_ -match 'manual review' -OR + $_ -match 'No suitable' -OR + $_ -match 'not supported' -OR #not supported by this processor type + #$_ -match 'not applicable' -OR + $_ -match 'unwanted' -OR #PUA + $_ -match 'Unable to locate nested installer' -OR + $_ -match 'space' -OR + $_ -match 'cannot install' + } + if ($WhatIf) { + Write-Host "File $File - UserInput $UserInput Length $($UserInput.Length)" + } + $UserInput = $UserInput | Select-Object -Unique; #-split $Enum.Char.LineBreak + $UserInput = $UserInput -replace "Standard error: ",$null + $UserReplace = $UserInput -replace "\\","\\" -replace "\[","\[" -replace "\]","\]" -replace "\*","\*" -replace "\+","\+" -replace "\s",$Enum.Char.Blank -join $Enum.Char.Blank + [bool]$isnotnull = ($null -notmatch $UserReplace) + if ($WhatIf) { + Write-Host "UserReplace 1 $UserReplace - notmatch null $isnotnull (true is populated, false is null)" + } + + if ($isnotnull) { + if (($UserInput -match "Installer failed security check") -OR ($UserInput -match "Operation did not complete successfully because the file contains a virus or potentially unwanted software")) { + $LowerOps = $false + #$UserInput = Get-AutomatedErrorAnalysis $UserInput + Write-Host "DefenderFail - UserInput $UserInput" + } + if ($UserInput -match "SQL error or missing database") { + Get-GitHubPreset Retry -PR $PR + if (!($Silent)) { + Write-Output "PR $PR - SQL error or missing database" + } + Open-PRInBrowser -PR $PR + } + + # $UserInput = $UserInput -split $Enum.Char.LineBreak + $UserInput = $UserInput -notmatch " success or error status`: 0" + $UserInput = $UserInput -notmatch "``Windows Error Reporting``" + $UserInput = $UserInput -notmatch "--- End of inner exception stack trace ---" + $UserInput = $UserInput -notmatch "2: 3: Error" + $UserInput = $UserInput -notmatch "Property\(S\)" + $UserInput = $UserInput -notmatch "AppInstallerRepositoryCore" + $UserInput = $UserInput -notmatch "api-ms-win-core-errorhandling" + $UserInput = $UserInput -notmatch "appropriate application package" + $UserInput = $UserInput -notmatch "because the current user does not have that package installed" + $UserInput = $UserInput -notmatch "Cannot create a file when that file already exists" + $UserInput = $UserInput -notmatch "Could not create system restore point" + $UserInput = $UserInput -notmatch "Dest filename" + $UserInput = $UserInput -notmatch "DismHost" + $UserInput = $UserInput -notmatch "Element not found" + $UserInput = $UserInput -notmatch "Error occurred while trying to capture screenshot" + $UserInput = $UserInput -notmatch "Exception during executable launch operation System.InvalidOperationException: No process is associated with this object." + $UserInput = $UserInput -notmatch "exception thrown when getting" + $UserInput = $UserInput -notmatch "Exit code`: 0" + $UserInput = $UserInput -notmatch "Failed to open available source: msstore" + $UserInput = $UserInput -notmatch "GetLastError@kernel32.dll" + $UserInput = $UserInput -notmatch "IconContent" + $UserInput = $UserInput -notmatch "ISWEBVIEW2INSTALLED" + $UserInput = $UserInput -notmatch "MpCmdRun" + $UserInput = $UserInput -notmatch "ResultException" + $UserInput = $UserInput -notmatch "SchedNetFx" + $UserInput = $UserInput -notmatch "Setting error JSON 1.0 fields" + $UserInput = $UserInput -notmatch "Signature Update Failed" + $UserInput = $UserInput -notmatch "Terminating context" + $UserInput = $UserInput -notmatch "The process cannot access the file because it is being used by another process" + $UserInput = $UserInput -notmatch "The FileSystemWatcher has detected an error System.IO.ErrorEventArgs" + $UserInput = $UserInput -notmatch "ThrowIfExceptional" + $UserInput = $UserInput -notmatch "Windows Installer installed the product" + $UserInput = $UserInput -notmatch "with working directory 'D" + }#end if isnotnull + + $UserReplace = $UserInput -replace "\\","\\" -replace "\[","\[" -replace "\]","\]" -replace "\*","\*" -replace "\+","\+" -replace "\s",$Enum.Char.Blank -join $Enum.Char.Blank + + [bool]$isnotnull = ($null -notmatch $UserReplace) + # [bool]$isnotnull = (($UserReplace.Length -gt $enum.Num.Ten) && ($UserReplace.gettype().name -eq $Enum.PSDataTypes.String)) + if ($WhatIf) {Write-Host "UserReplace 2 $UserReplace - notmatch null $isnotnull (true is populated, false is null)"} + if ($isnotnull) { + # if (!($isnotnull)) { + $UserInput = $UserInput | Select-Object -Unique + + #$UserInput = $UserInput -replace " -",$null #What was this for again? + if ($WhatIf) { + Write-Host "WhatIf: Reply-ToPR (A) -PR $PR -UserInput $($UserInput -join `"`n> `") -CannedMessage AutoValEnd" + Write-Host "WhatIf: UserInput Length $($UserInput.Length)" + $out = Reply-ToPR -PR $PR -UserInput ($UserInput -join $Enum.Char.LineBreakMDQuote) -CannedMessage $Enum.CannedMessages.AutoValEnd -WhatIf + } else { + $out = Reply-ToPR -PR $PR -UserInput ($UserInput -join $Enum.Char.LineBreakMDQuote) -CannedMessage $Enum.CannedMessages.AutoValEnd -Automated + } + + if ($LowerOps -eq $true) { + $SplitInput = ($UserInput -split $Enum.Char.LineBreak ) + foreach ($input in $Enum.QueueInputs) { + if($SplitInput -match $input) { + if ($WhatIf) { + Write-Host "WhatIf: Add-PRToQueue -PR $PR" + } else { + Add-PRToQueue -PR $PR + } + + } + } + $exitregex = "exit code: [0-9]{0,3}$" + $exitregex2 = "exit code: [0-9]{4,}$" + $exitregex3 = "exit code: -[0-9]{4,}$" + if(!(($UserInput -split $Enum.Char.LineBreak ) -match $exitregex2)) { #4 digits bad + if(!(($UserInput -split $Enum.Char.LineBreak ) -match $exitregex3)) { #4 digits bad + if(($UserInput -split $Enum.Char.LineBreak ) -match $exitregex) { #1-3 digits good + if ($WhatIf) { + Write-Host "WhatIf: Get-CompletePR -PR $PR (A)" + } else { + Get-CompletePR -PR $PR + } + } + if ($WhatIf) { + Write-Host "WhatIf: exit regex3 4 digits bad(A)" + } + } + if ($WhatIf) { + Write-Host "WhatIf: exit regex2 4 digits bad (A)" + } + } + }#end If LowerOps + + if (!($Silent)) { + if ($WhatIf) { + Write-Host "WhatIf: Write-Host 'PR: $PR - $out'" + } else { + Write-Host "PR: $PR - $out" + } + } + } else { + if ($IsZipPath) { + $UserInput = $Enum.Strings.NoErrorsToPost + $Title = ((Invoke-GitHubPRRequest -PR $PR -Type $Enum.Char.Blank -Output $Enum.PRRequestOutput.Content -JSON).title); + if ($WhatIf) { + Write-Host "WhatIf: Reply-ToPR (B) -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd" + $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd -WhatIf + Write-Host "WhatIf: Get-CompletePR -PR $PR (B)" + Write-Host "WhatIf: Get-GitHubPreset -PR $PR Waiver" + Write-Host "WhatIf: UserInput Length $($UserInput.Length)" + } else { + $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd -Automated + Get-CompletePR -PR $PR + foreach ($Waiver in $WaiverList) { + if ($Title -match $Waiver.PackageIdentifier) { + Get-GitHubPreset -PR $PR Waiver + }#end if title + }#end foreach waiver + }#end if WhatIf + }#end if ZipPath + }#end if isnotnull + } else { + if (!($Silent)) { + if ($WhatIf) { + Write-Host "WhatIf: Reply-ToPR (C) -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd" + $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd -WhatIf + Write-Host "WhatIf: UserInput Length $($UserInput.Length)" + } else { + $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd -Automated + } + if ($WhatIf) { + Write-Host "WhatIf: Reply-ToPR (D) -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd" + $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd -WhatIf + } else { + $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd -Automated + } + $UserInput = "`Build $BuildNumber not found." + Write-Host $UserInput + if ($WhatIf) { + Write-Host "WhatIf: Reply-ToPR (E) -PR $PR -UserInput $UserInput -CannedMessage AutoValEnd" + $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd -WhatIf + } else { + $out = Reply-ToPR -PR $PR -UserInput $UserInput -CannedMessage $Enum.CannedMessages.AutoValEnd -Automated + }#end if WhatIf + }#end if not silent + }#end if BuildNumber + + return $out + }#end if Last Prevalidation was 8 hours ago. +} + +Function Get-RandomIEDS { + Param( + [int]$VM = (Get-NextFreeVM), + $IEDSPRs = (Get-SearchGitHub -Preset IEDS -nBMM), + #$IEDSPRs = (Get-SearchGitHub -Preset ToWork3), + [ValidateScript( { $_ -in $Enum.VMOS.Win11 } )][string]$OS = $Enum.VMOS.Win11, + $PR = ($IEDSPRs.number | where {$_ -notin (Get-Status).pr} | Get-Random)#, + # $PRData = (Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$pr" -JSON), + # $PRTitle = (($PRData.title -split $Enum.Char.Space)[$Enum.Num.Two] | where {$_ -match "\."}), + # $File = 0, + # $ManifestType = $Enum.Char.Blank, + # $OldManifestType = $Enum.Char.Blank, + # $OldPackageIdentifier = $Enum.Char.Blank + ) + + if ($VM -eq 0){ + Write-Host "No available $OS VMs"; + Get-PipelineVmGenerate -OS $OS; + Add-PRToQueue -PR $PR; + } else { + Get-CommitFile -PR $PR -VM $VM + } +} + +Function Get-PRManifest { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $File = 0, + $ManifestType = $Enum.Char.Blank, + $OldManifestType = $Enum.Char.Blank, + [switch]$Patch + ) + $CommitFile = (Get-CommitFile -PR $PR -Deparent); + # $n = 0 + # while ($CommitFile.Length -lt $enum.Num.Ten) { + # $CommitFile = (Get-CommitFile -PR $PR); + # Write-Host "Blank Commit response retry $n" + # $n++ + # } + $PackageIdentifier = Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $CommitFile | Get-RemoveQuotes + $PackageVersion = Get-YamlValue -Key $Enum.ManifestKeys.PackageVersion -clip $CommitFile | Get-RemoveQuotes + $Submitter = ((Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$pr" -JSON).user.login); + + if ($Patch) { + $CommitFile = (Get-CommitFile -PR $PR -Mode Patch) + } + + $out = "$PackageIdentifier version $PackageVersion #$PR`n" + $out += "$Submitter wants to merge`n" + $out += $Enum.ManifestStrings.FooterHeader + $out += ($CommitFile -join $Enum.Char.LineBreak) + $out += $Enum.ManifestStrings.FooterHeader + return $out +} + +Function Get-RemoveQuotes { + Param( + [Parameter(ValueFromPipeline)][string]$String + ) + Process { + $String -replace $Enum.Char.DoubleQuote,$Enum.Char.Blank-replace $Enum.Char.SingleQuote,$Enum.Char.Blank + } +} + +#GItHub Tools +Function Invoke-Commits { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [string]$Type = "commits" + ) + Process { + $Commits = Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$pr/$Type" -JSON + $Commits + } +} + +Function Invoke-GitHubPRRequest { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [ValidateScript( { $_ -in (Get-Keys $Enum.PRRequestMethods)} )][string]$Method = $Enum.PRRequestMethods.Get, + [ValidateScript( { $_ -in (Get-Values $Enum.PRRequestTypes)} )][string]$Type = $Enum.PRRequestTypes.Labels, + [string]$Data, + [ValidateScript( { $_ -in (Get-Keys $Enum.PRRequestPaths)} )][string]$Path = $Enum.PRRequestPaths.Issues, + [ValidateScript( { $_ -in (Get-Keys $Enum.PRRequestOutput)} )][string]$Output = $Enum.PRRequestOutput.StatusDescription, + [switch]$LastPage, + [switch]$JSON, + [switch]$WhatIf, + $PRData = (Invoke-Commits -PR $PR), + $commit = (($PRData.commit.url -split $Enum.Char.Slash)[$Enum.Index.Last]) + ) + $Response = @{} + $ResponseType = $Type + $uri = "$GitHubApiBaseUrl/$Path/$pr/$Type" + + if (($Type -eq $Enum.PRRequestTypes.Blank) -OR ($Type -eq $Enum.PRRequestTypes.Files) -OR ($Type -eq $Enum.PRRequestTypes.Reviews)){ + $Path = $Enum.PRRequestPaths.Pulls + $uri = "$GitHubApiBaseUrl/$Path/$pr/$Type" + } elseif ($Type -eq $Enum.PRRequestTypes.Comments) { + $Response.body += $Data + } elseif ($Type -eq $Enum.PRRequestTypes.Commits) { + $uri = "$GitHubApiBaseUrl/$Type/$commit" + } elseif ($Type -eq $Enum.PRRequestTypes.Merge) { + $Path = $Enum.PRRequestPaths.Pulls + } elseif ($Type -eq $Enum.PRRequestTypes.Reviews) { + $Path = $Enum.PRRequestPaths.Pulls + $Response.body = $Enum.Char.Blank + $Data + $Response.commit = $commit + $Response.event = "APPROVE" + } elseif ($Type -eq $Enum.Char.Blank) { + #$Response.title = $Enum.Char.Blank + #$Response.body = $Enum.Char.Blank + $Response.state = $Enum.PRStates.Closed + $Response.base = $Enum.Strings.PrimaryFork + } else { + $Response.$ResponseType = @() + $Response.$ResponseType += $Data + } + + $uri = $uri -replace "/$",$Enum.Char.Blank + + if ($LastPage) { + $uri += "?per_page=100&filter=latest" + } + if ($Method -eq $Enum.PRRequestMethods.Get) { + if ($WhatIf) { + "Invoke-GitHubRequest -Method $Method -Uri $uri" + } else { + $out = Invoke-GitHubRequest -Method $Method -Uri $uri +#$uri = "$GitHubApiBaseUrl/$Path/$pr/$Type" +#$uri = "$GitHubApiBaseUrl/commits/$headSha/check-runs?per_page=100&filter=latest" + + } + } else { + [string]$Body = $Response | ConvertTo-Json + $out = Invoke-GitHubRequest -Method $Method -Uri $uri -Body $Body + } + + if (($JSON) -OR ($Output -eq $Enum.PRRequestOutput.Content)) { + if ($null -ne $out.$Output) { + try { + $out.$Output | ConvertFrom-Json + }catch{ + return ("PR: $PR - Error: $($error[$Enum.Index.First].ToString()) - Url $uri - Body: $Body") + } + } elseif ($Output -eq $Enum.PRRequestOutput.Silent ) { + } else { + $out.$Output + } + } else { + return "!" #"PR: $PR - No output. Method: $Method - URI: $uri" + #return ("PR: $PR - Error: $($error[$Enum.Index.First].ToString()) - Url $uri - Body: $Body") + } +} + +Function Get-UpdateSource { + $GhRlRemain = ((Get-GitHubRateLimit) | where {$_.source -match $Enum.GitHubRateLimit.Unlogged}).remaining + # Param( + # ) + # if ($GhRlRemain -gt 0) { + # $DataSource = $Enum.PRWatchDataSource.GitHub + # } else { + # $DataSource = $Enum.PRWatchDataSource.WinGet + # } +} + +Function Get-SyncFork { + Param( + $SyncUserName = $Enum.GitHubUserNames.GitHubUserName, + $SyncRepo = $repo, + $SyncFork = $Enum.Strings.PrimaryFork, + $Uri = "https://api.github.com/repos/$SyncUserName/$SyncRepo/merge-upstream", + $Body = "{`"branch`":`"$SyncFork`"}" + ) + $out = (Invoke-GitHubRequest -Uri $Uri -Body $Body -Method $Enum.PRRequestMethods.Post).content | ConvertFrom-Json + return $out +} + +Function Get-GitHubRateLimit { + Param( + $Url = "https://api.github.com/rate_limit" + ) + (Get-Date)#Time, as a number, constantly increases. + $Response = Invoke-WebRequest -Uri $Url -ProgressAction SilentlyContinue + $Content = $Response.content | ConvertFrom-Json; + $Content.rate | Select-Object @{n = $Enum.GitHubRateLimit.Source; e = {$Enum.GitHubRateLimit.Unlogged}}, limit, used, remaining, @{n = $Enum.GitHubRateLimit.Reset; e = {([System.DateTimeOffset]::FromUnixTimeSeconds($_.reset)).DateTime.AddHours(-8)}} + $Response = invoke-GitHubRequest -Uri $Url -JSON; + $Response.rate | Select-Object @{n = $Enum.GitHubRateLimit.Source; e = {$Enum.GitHubRateLimit.Logged}}, limit, used, remaining, @{n = $Enum.GitHubRateLimit.Reset; e = {([System.DateTimeOffset]::FromUnixTimeSeconds($_.reset)).DateTime.AddHours(-8)}} +} + +Function Get-GitHubTimeout { + $GitHubRateLimit = Get-GitHubRateLimit + $starttime = get-date $GitHubRateLimit[$Enum.Index.First] + $UsedCalls = ($GitHubRateLimit)[$Enum.Num.Two].used + $Limit = ($GitHubRateLimit)[$Enum.Num.Two].limit + while ($UsedCalls -ge $Limit) { + $GitHubRateLimit = Get-GitHubRateLimit + $UsedCalls = $GitHubRateLimit[$Enum.Num.Two].used + $endtime = get-date $GitHubRateLimit[$Enum.Num.Two].reset + $timeleft = $endtime - (Get-Date) + $totaltime = $endtime - $starttime + $pct = (1 - ($timeleft.TotalSeconds / $totaltime.TotalSeconds)) * 100 + $OutputTime = (get-date $endtime -f s) -replace $Enum.Char.T," - " + Write-Progress -Activity "Waiting until $OutputTime for API rate limit cooldown." -Status "$($timeleft.TotalSeconds) seconds remaining." -PercentComplete $pct + } +} + +Function Get-FileFromGitHub { + Param( + $PackageIdentifier, + $Version, + $Suffix = $Enum.ManifestFileTypes.installeryaml, + $Path = ($PackageIdentifier -replace "[.]",$Enum.Char.Slash), + $FirstLetter = ($PackageIdentifier[$Enum.Index.First].tostring().tolower()) + ) + Write-Host "$($MyInvocation.MyCommand.name) $PR" + try{ + $content = (Invoke-GitHubRequest -Uri "$GitHubContentBaseUrl/master/manifests/$FirstLetter/$Path/$Version/$PackageIdentifier.$Suffix").content + }catch{ + $content = "Error $GitHubContentBaseUrl/master/manifests/$FirstLetter/$Path/$Version/$PackageIdentifier.$Suffix not found." + } + return ($content -split $Enum.Char.LineBreak) +} + +Function Get-SearchGitHub { + Param( + [ValidateScript( { $_ -in (Get-Keys $Enum.SearchPresets)} )][string[]]$Preset = $Enum.SearchPresets.Approval, + [Switch]$Browser, + $Url = "https://api.github.com/search/issues?page=$Page&q=", + $SearchString, + $Author, #wingetbot + $Commenter, #wingetbot + $Title, + $ExcludeTitle, + [string]$Label, + [int]$Page = $Enum.Num.One, + [int]$DaysAgo, + [Switch]$BMM, + [Switch]$NewPackages, + [Switch]$nBMM, + [Switch]$IEDS, + [Switch]$NotWorked, + [Switch]$NoLabels, + [Switch]$AllowClosedPRs + ) + if ($Browser) { + $Url = "$GitHubBaseUrl/pulls?page=$Page&q=" + } + #Base settings + $Base = "repo:$Owner/$Repo+" + $Base = $Base+$Enum.SearchTerms.IsPR + if (!($AllowClosedPRs)) { + $Base += $Enum.SearchTerms.IsOpen + } + $Base += $Enum.SearchTerms.DraftFalse + $Base += $Enum.SearchTerms.SortAsc + + #Smaller blocks + $date = Get-Date (Get-Date).AddDays(-$DaysAgo) -Format $Enum.Strings.Timestamp + # $Url += $Enum.Strings.Label+$Enum.PRLabels.PD+$Enum.Char.Plus;#dupe + $Defender = "label:$($Enum.PRLabels.VDE)+" + $HaventWorked = "-commenter:$($Enum.GitHubUserNames.GitHubUserName)+" + $HVR = "label:$($Enum.PRLabels.HVR)+" + $IEDSLabel = "label:$($Enum.PRLabels.IEDS)+" + $IEM = "label:$($Enum.PRLabels.IEM)+" + $LVR = "label:$($Enum.PRLabels.LVR)+" + $MA = "label:$($Enum.PRLabels.MA)+" + $MMC = "label:$($Enum.PRLabels.MMC)+" + $NA = "label:$($Enum.PRLabels.NA)+" + $NAF = "label:$($Enum.PRLabels.NAF)+" + $NotPass = "-label:$($Enum.PRLabels.APP)+"#Hasn't psased pipelines + $Recent = "updated:>$($date)+" + $VC = "label:$($Enum.PRLabels.VC)+"#Completed + $VD = "label:$($Enum.PRLabels.VD)+" + $VSA = "label:$($Enum.PRLabels.VSA)+" + + $nBI = "-label:$($Enum.PRLabels.BI)+" + $nHW = "-label:Hardware+" + $nHVR = $Enum.Char.Dash + $HVR + $Enum.Char.Plus + $nIEDS = $Enum.Char.Dash + $IEDSLabel + $Enum.Char.Plus + $nIEDS = $Enum.Char.Dash + $IEDSLabel + $Enum.Char.Plus + $nMA = $Enum.Char.Dash + $MA + $Enum.Char.Plus + $NMM = "label:$($Enum.PRLabels.NMM)+" + $nMMC = $Enum.Char.Dash + $MMC + $Enum.Char.Plus + $nNA = $Enum.Char.Dash + $NA + $Enum.Char.Plus + $nNP = "-label:$($Enum.PRLabels.NP)+" + $nNRA = "-label:$($Enum.PRLabels.IOD)+" + $nNRA = "-label:$($Enum.PRLabels.IOI)+" + $nNRA = "-label:$($Enum.PRLabels.NRA)+" + $nNSA = "-label:$($Enum.PRLabels.NSA)+" + $nVC = $Enum.Char.Dash + $VC #Not Completed + + + #Building block settings + $Blocking = $nHW + $Blocking += $nNSA + $Blocking += "-label:$($Enum.PRLabels.AGR)+" + $Blocking += "-label:$($Enum.PRLabels.DI)+" + $Blocking += "-label:$($Enum.PRLabels.LBI)+" + $Blocking += "-label:$($Enum.PRLabels.NB)+" + $Blocking += "-label:$($Enum.PRLabels.PF)+" + $Blocking += "-label:$($Enum.PRLabels.RB)+" + $Blocking += "-label:$($Enum.PRLabels.SA)+" + + $Common = $nBI + $Common = $Common+$Enum.Char.Dash + $IEM + $Common = $Common+$Enum.Char.Dash + $Defender + + $Cna = $VC + $Cna = $Cna + $nMA + + $Review1 = "-label:$($Enum.PRLabels.CR)+" + $Review1 += "-label:$($Enum.PRLabels.CLA)+" + $Review1 += $nNRA + + $Review2 = $Enum.Char.Dash + $NA + $Review2 = $Review2 + $Enum.Char.Dash + $NAF + $Review2 = $Review2 + "-label:$($Enum.PRLabels.NR)+" + + $Approvable = "-label:$($Enum.PRLabels.VMC)+" + $Approvable += "-label:$($Enum.PRLabels.VER)+" + $Approvable += "-label:$($Enum.PRLabels.MIVE)+" + $Approvable += "-label:$($Enum.PRLabels.PD)+" + $Approvable += "-label:$($Enum.PRLabels.UF)+" + + $Workable += "-label:$($Enum.PRLabels.LVR)+" + $Workable += "-label:$($Enum.PRLabels.HVR)+" + $Workable += "-label:$($Enum.PRLabels.VMC)+" + $Workable += "-label:$($Enum.PRLabels.BVE)+" + $Workable += "-label:$($Enum.PRLabels.UF)+" + $Workable += "-label:$($Enum.PRLabels.VCR)+" + $Workable += "-label:$($Enum.PRLabels.VSS)+" + + $PolicyTests = "-label:Policy-Test-1.1+"; + $PolicyTests += "-label:$($Enum.PRLabels.PT12)+" + $PolicyTests += "-label:Policy-Test-1.3+"; + $PolicyTests += "-label:Policy-Test-1.4+"; + $PolicyTests += "-label:Policy-Test-1.5+"; + $PolicyTests += "-label:Policy-Test-1.6+"; + $PolicyTests += "-label:Policy-Test-1.7+"; + $PolicyTests += "-label:Policy-Test-1.8+"; + $PolicyTests += "-label:Policy-Test-1.9+"; + $PolicyTests += "-label:Policy-Test-1.10+"; + $PolicyTests += "-label:Policy-Test-2.1+"; + $PolicyTests += "-label:Policy-Test-2.2+"; + $PolicyTests += "-label:$($Enum.PRLabels.PT23)+" + $PolicyTests += "-label:Policy-Test-2.4+"; + $PolicyTests += "-label:Policy-Test-2.5+"; + $PolicyTests += "-label:Policy-Test-2.6+"; + $PolicyTests += "-label:$($Enum.PRLabels.PT27)+" + $PolicyTests += "-label:Policy-Test-2.8+"; + $PolicyTests += "-label:Policy-Test-2.9+"; + $PolicyTests += "-label:Policy-Test-2.10+"; + $PolicyTests += "-label:Policy-Test-2.11+"; + $PolicyTests += "-label:Policy-Test-2.12+"; + + #Composite settings + $Set1 = $Blocking + $Common + $Review1 + $Set2 = $Set1 + $Review2 + $Url += $Base + if ($Author) { + $Url += "author:$($Author)+" + } + if ($Commenter) { + $Url += "commenter:$($Commenter)+" + } + if ($Days) { + $Url += $Recent + } + if ($IEDS) { + $Url += $nIEDS + } + if ($Label) { + $Url += "label:$($Label)+" + } + if ($NotWorked) { + $Url += $HaventWorked + } + if ($NewPackages) { + $Url += "label:New-Package+" + } + if ($Title) { + $Url += "$Title in:title+" + } + if ($BMM) { + $Url += "label:$($Enum.PRLabels.BMM)+" + } + if ($nBMM) { + $Url += "-label:$($Enum.PRLabels.BMM)+" + } + switch ($Preset) { + $Enum.SearchPresets.Approval { + $Url += $Cna + $Url += $nBI + $Url += $Set2 #Blocking + Common + Review1 + Review2 + $Url += $Approvable + $Url += $Workable; + $Url += $nMMC; + } + $Enum.SearchPresets.Approval2 { + $Url += $Cna + $Url += $nNP + $Url += $nHVR + $Url += $Set2 #Blocking + Common + Review1 + Review2 + $Url += $Approvable + $Url += $Workable; + $Url += $nMMC; + } + $Enum.SearchPresets.Defender { + $Url += $Defender + } + $Enum.SearchPresets.Domain { + $Url += "label:$($Enum.PRLabels.VD)+" + } + $Enum.SearchPresets.Duplicate { + $Url += $Enum.Strings.Label+$Enum.PRLabels.PD+$Enum.Char.Plus;#dupe + $Url += $nNRA + } + $Enum.SearchPresets.Autowaiver { + $Url += $Set1 + $Url += $Workable + $Url += $nIEDS + $Url += $nVC + $Url += "label:$($Enum.PRLabels.EHM)+" + $Url += "label:$($Enum.PRLabels.MIVE)+" + $Url += "label:$($Enum.PRLabels.MVE)+" + $Url += "label:$($Enum.PRLabels.VEE)+" + $Url += "label:$($Enum.PRLabels.VNE)+" + $Url += "label:$($Enum.PRLabels.VIE)+" + $Url += "label:$($Enum.PRLabels.VSE)+" + $Url += "label:$($Enum.PRLabels.VUF)+" + $Url += "label:$($Enum.PRLabels.ANF)+" + $Url += $nBI + $Url += $nIOD + $Url += $nIOI + } + $Enum.SearchPresets.IEDS { + $Url += $IEDSLabel + $Url += $nBI + $Url += $Blocking + $Url += $NotPass + $Url += $nVC + } + $Enum.SearchPresets.HVR { + $date = Get-Date (Get-Date).AddDays(-7) -Format $Enum.Strings.Timestamp + $createdDate = "created:<$($date)+" + $Url += $createdDate; + $Url += $HVR; + } + $Enum.SearchPresets.LVR { + $date = Get-Date (Get-Date).AddDays(-7) -Format $Enum.Strings.Timestamp + $createdDate = "created:<$($date)+" + $Url += $createdDate; + $Url += $LVR; + } + $Enum.SearchPresets.MMC { + $Url += $MMC; + } + $Enum.SearchPresets.NMM { + $Url += $NMM; + } + $Enum.SearchPresets.None { + } + $Enum.SearchPresets.ToWork { + $Url += $Set1 #Blocking + Common + Review1 + $Url += $Workable; + #$Url += $Workable + } + $Enum.SearchPresets.ToWork2 { + $Url += $HaventWorked + $Url += $Enum.Char.Dash + $Defender + $Url += $Set1 #Blocking + Common + Review1 + $Url += $nVC + } + $Enum.SearchPresets.ToWork3 { + $Url += $HaventWorked + $Url += $Enum.Char.Dash + $Defender + $Url += $Set1 #Blocking + Common + Review1 + $Url += $nVC + $Url += $nMA + $Url += $nNA + } + $Enum.SearchPresets.VCMA { + #$date = Get-Date (Get-Date).AddHours(-1) -Format $Enum.Strings.Timestamp + #$createdDate = "created:<$($date)+" + $Url += $createdDate; + $Url += $MA + $Url += $VC + $Url += $Set2 #Blocking + Common + Review1 + Review2 + $Url += $Approvable + $Url += $Workable; + $Url += $nMMC; + } + } + + if ($Browser) { + Start-Process $Url + } else { + $Response = Invoke-GitHubRequest $Url + $Response = ($Response.Content | ConvertFrom-Json).items + #$Response = $Response | Where-Object {!(($_.labels.name -match $Enum.PRLabels.MA) -AND ($_.labels.name -match "Needs-Attention"))} + if ($ExcludeTitle) { + $Response = $Response | Where-Object {$_.title -notmatch $ExcludeTitle} + } + if (!($NoLabels)) { + $Response = $Response | where {$_.labels} + } + return $Response + } +} + +Function Get-ClaCheck { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $LabelName = $Enum.PRCheckLabels.LicenseCla, + [switch]$WhatIf + ) + $Status = (Get-CheckData -PR $PR | where {$_.name -match $LabelName}).status + If ($WhatIf) {Write-Host "$($MyInvocation.MyCommand.name): $Status"} + switch ($Status) { + $Enum.PRCheckLabels.Queued { + If ($WhatIf) { + Write-Host "Get-AddPRLabel -PR $PR -Label $($Enum.PRLabels.CLA)" + } else { + Get-AddPRLabel -PR $PR -Label $Enum.PRLabels.CLA + } + } + $Enum.PRCheckLabels.Completed { + If ($WhatIf) { + Write-Host "Get-RemovePRLabel -PR $PR -Label $($Enum.PRLabels.CLA)" + } else { + Get-RemovePRLabel -PR $PR -Label $Enum.PRLabels.CLA + } + } + Default { + Write-Host "Invalid Status: $Status" + } + } +} + +Function Get-CheckIfPackageIsNew { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $prdata = (Get-CommitFile -PR $PR), + [string]$PackageIdentifier = (Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $PRData), + $ManifestVersion = (Get-ManifestVersion -PackageIdentifier $PackageIdentifier) + ) + Process { + Write-Host "$($MyInvocation.MyCommand.name): PR $PR - PackageIdentifier: $PackageIdentifier - ManifestVersion $ManifestVersion" + if ($ManifestVersion) {#If any version data exists, then it's a New-Manifest. + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.NM + Get-RemovePRLabel -PR $PR -LabelName $Enum.PRLabels.NP + } else { + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.NP + Get-RemovePRLabel -PR $PR -LabelName $Enum.PRLabels.NM + } + } +} + +#PR tools +#Add user to PR: Invoke-GitHubPRRequest -Method $Enum.PRRequestMethods.$Method -Type "assignees" -Data $User -Output StatusDescription +#Approve PR (needs work): Invoke-GitHubPRRequest -PR $PR -Method $Enum.PRRequestMethods.Post -Type reviews +Function Get-RevertCompletePR { + Param( + $PR = (Get-CleanClipboard) + ) + $VRlabels = Get-ValidationResult $pr + $VRlabels = $VRlabels | where {$_ -notmatch $Enum.PRLabels.vc} + if ($VRlabels) { + Get-RemovePRLabel -PR $pr -LabelName $Enum.PRLabels.vc + $VRlabels | %{Get-AddPRLabel -PR $pr -LabelName $_} + } +} + +Function Approve-PR { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [string]$Body = $Enum.Char.Blank, + $PRData = (Invoke-Commits -PR $PR), + $commit = (($PRData.commit.url -split $Enum.Char.Slash)[$Enum.Index.Last]), + $uri = "$GitHubApiBaseUrl/pulls/$pr/reviews" + ) + Process { + if (!(Get-PRApprovalCheck -PR $PR)) { + try { + [array]$AuthorList = $PRData.commit.author.name# -join $Enum.Char.Space + $PRAuthors = $AuthorList[$Enum.Index.First] + }catch{} + if (($PRAuthors -notmatch $Enum.GitHubUserNames.GitHubUserName2) -AND ($PRAuthors -notmatch $Enum.GitHubUserNames.GitHubUserNameFull)) { + $Response = @{} + $Response.body = $Body + $Response.commit = $commit + $Response.event = "APPROVE" + [string]$Body = $Response | ConvertTo-Json + + $out = Invoke-GitHubRequest -Method $Enum.PRRequestMethods.Post -Uri $uri -Body $Body + $out.StatusDescription + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.MA + } #end try + } else { + Write-Host "$($MyInvocation.MyCommand.name): PR $PR failed approval check" + }#end if Get-PRApprovalCheck + }#end Process +}#end Function + +Function Get-PRApprovalCheck { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $PRData = (Invoke-Commits -PR $PR -Type "reviews") + ) + Process { + [array]$StateData = ($PRData | Where {$_.user.login -match $enum.GitHubUserNames.GitHubUserName}).state + $State = $StateData -join $Enum.Char.Blank + [bool]$out = $State -match "APPROVED" + Return $out + } +} + +Function Get-ApproveBySearch { + Param( + [Parameter(mandatory = $True)][string]$Author, + $Preset = $Enum.SearchPresets.ToWork, + $MatchText = $Enum.Strings.StandardizeFormatting, + $Results = (Get-SearchGitHub -Author $Author -Preset $Preset -NoLabels) + ) + $Results = $Results | Where-Object {$_.user.login -eq $Author -and $_.title -match $MatchText -and $_.labels.name -notcontains $Enum.PRLabels.MA -and $_.labels.name -notcontains $Enum.PRLabels.CR}; + $Results.number | % { Write-Host "$_ - " -nonewline;Approve-PR $_ }; +} + +Function Get-PRRange { + Param( + [int]$firstPR, + [int]$lastPR, [string]$Body, - [ValidateSet("DELETE","GET","HEAD","PATCH","POST","PUT")][string]$Method = "GET", - $Headers = @{"Authorization"="Bearer $GitHubToken"; "Accept"="application/vnd.github+json"; "X-GitHub-Api-Version"="2022-11-28"}, - #[ValidateSet("content","StatusDescription")][string]$Output = "content", - [switch]$JSON, - $out = "" - ) - if ($Body) { - try { - $out = (Invoke-WebRequest -Method $Method -Uri $Uri -Headers $Headers -Body $Body -ContentType application/json -ProgressAction SilentlyContinue) - } catch { - Write-Output ("Error: $($error[0].ToString()) - Url $Url - Body: $Body") - } - } else { - try { - $out = (Invoke-WebRequest -Method $Method -Uri $Uri -Headers $Headers -ProgressAction SilentlyContinue) - } catch { - Write-Output ("Error: $($error[0].ToString()) - Url $Url - Body: $Body") - } - } - #GitHub requires the value be the .body property of the variable. This makes more sense with CURL, Where-Object this is the -data parameter. However with Invoke-WebRequest it's the -Body parameter, so we end up with the awkward situation of having a Body parameter that needs to be prepended with a body property. - #if (!($Silent)) { - if (($JSON)){# -OR ($Output -eq "content")) { - $out | ConvertFrom-Json - } else { - $out - } - #} - Start-Sleep $GitHubRateLimitDelay; -} - -Function Check-PRInstallerStatusInnerWrapper { - param( - $Url, - $Code = (Invoke-WebRequest $Url -Method Head -ErrorAction SilentlyContinue -ProgressAction SilentlyContinue).StatusCode - ) - return $Code -} - -#Validation Starts Here -#Validation Starts Here -#Validation Starts Here -Function Get-TrackerVMValidate { - param( - $clipInput = ((Get-Clipboard) -split "`n"), - $clip = ($clipInput[0..(($clipInput | Select-String "Do not share my personal information").LineNumber -1)]), - [ValidateSet("Win10","Win11")][string]$OS = (Get-OSFromVersion -clip $clip), - [int]$vm = ((Get-NextFreeVM -OS $OS) -replace"vm",""), - [switch]$NoFiles, - [ValidateSet("Configure","DevHomeConfig","Pin","Scan")][string]$Operation = "Scan", - [switch]$InspectNew, - [switch]$notElevated, - $ManualDependency, - $PackageIdentifier = ((Get-YamlValue -StringName "PackageIdentifier" $clip) -replace '"',''-replace "'",''), - $PackageVersion = ((Get-YamlValue -StringName "PackageVersion" $clip) -replace '"',''-replace "'",''), - [int]$PR = (Get-PRNumber $clip -Hash), - $RemoteFolder = "//$remoteIP/ManVal/vm/$vm", - $installerLine = "--manifest $RemoteFolder/manifest", - [ValidateSet("x86","x64","arm","arm32","arm64","neutral")][string]$Arch, - [ValidateSet("User","Machine")][string]$Scope, - $InstallerType, - [string]$Locale, - [switch]$Force, - [switch]$Silent, - [switch]$PauseAfterInstall, - $optionsLine = "" - ) - <#Sections: - Construct WinGet args string and populate script variables. - - If Configure - skip all of this and just add the Configure file as the WinGet arg. - Construct the VM script from the script variables and output to commands file. - - If Configure - Construct a similar script and perform the same output. - Construct the manifest from the files in the clipboard. - - If NoFiles, skip. - Perform new package inspection. - - If not InspectNew, skip. - Revert selected VM and launch its window. - #> - - Test-Admin - Get-StaleVMCheck - - #Check if PR is open - $PRState = Invoke-GitHubPRRequest -PR $PR -Type "" -Output Content - - $LabelList = (Invoke-GitHubPRRequest -PR $PR -Type labels -Output Content).name - if ($Force -OR !((($LabelList -join " ") -match $Labels.MA) -AND (($LabelList -join " ") -match $Labels.CR) -AND (($LabelList -join " ") -match "New-Package")) -OR ($PRState.merged -ne $False) -OR ($PRState.state -ne "open")) { - if ($vm -eq 0){ - Write-Host "No available $OS VMs"; - Get-PipelineVmGenerate -OS $OS; - #Break; - } - $PackageMode = "Existing" - - - if ($null -eq (Find-WinGetPackage $PackageIdentifier)) { - $PackageMode = "New" - } - $PostInstallPause = "" - if ($PauseAfterInstall) { - $PostInstallPause = "Read-Host 'Install complete, press ENTER to continue...'" - } - if ($Silent) { - Get-TrackerVMSetStatus "Prevalidation" $VM $PackageIdentifier -PR $PR -Mode $PackageMode -Silent - } else { - Get-TrackerVMSetStatus "Prevalidation" $VM $PackageIdentifier -PR $PR -Mode $PackageMode - } - if ((Get-VM "vm$VM").state -ne "Running") {Start-VM "vm$VM"} - - $logLine = "$OS " - $nonElevatedShell = "" - $logExt = "log" - $VMFolder = "$MainFolder\vm\$vm" - $manifestFolder = "$VMFolder\manifest" - $CmdsFileName = "$VMFolder\cmds.ps1" - - if ($Operation -eq "Configure") { - if (!($Silent)) { - Write-Host "Running Manual Config build $build on vm$VM for ConfigureFile" - } - $wingetArgs = "configure -f $RemoteFolder/manifest/config.yaml --accept-configuration-agreements --disable-interactivity" - $Operation = "Configure" - $InspectNew = $False - } else { - if ($PackageIdentifier -eq "") { - Write-Host "Bad PackageIdentifier: $PackageIdentifier" - #Break; - $PackageIdentifier | clip - } - if (!($Silent)) { - Write-Host "Running Manual Validation build $build on vm$VM for package $PackageIdentifier version $PackageVersion" - } - - if ($PackageVersion) { - $logExt = $PackageVersion+"."+$logExt - $logLine += "version $PackageVersion " - } - if ($Locale) { - $logExt = $Locale+"."+$logExt - $optionsLine += " --locale $Locale " - $logLine += "locale $Locale " - } - if ($Scope) { - $logExt = $Scope+"."+$logExt - $optionsLine += " --scope $Scope " - $logLine += "scope $Scope " - } - if ($InstallerType) { - $logExt = $InstallerType+"."+$logExt - $optionsLine += " --installer-type $InstallerType " - $logLine += "InstallerType $InstallerType " - } - $Archs = ($clip | Select-String -notmatch "arm" | Select-String "Architecture: " )|ForEach-Object{($_ -split ": ")[1]} - $archDetect = "" - $archColor = "yellow" - if ($Archs) { - if ($Archs[0].length -ge 2) { - if ($Arch) { - $archDetect = "Selected" - } else { - $Arch = $Archs[0] - $archDetect = "Detected" - } - $archColor = "red" - } else { - if ($Archs -eq "neutral") { - $archColor = "yellow" - } else { - $Arch = $Archs - $archDetect = "Detected" - $archColor = "green" - } - } - } - if ($Arch) { - $logExt = $Arch+"."+$logExt - if (!($Silent)) { - Write-Host "$archDetect Arch $Arch of available architectures: $Archs" -f $archColor - } - $logLine += "$Arch " - } - $MDLog = "" - if ($ManualDependency) { - $MDLog = $ManualDependency - if (!($Silent)) { - Write-Host " = = = = Installing manual dependency $ManualDependency = = = = " - } - [string]$ManualDependency = "Out-Log 'Installing manual dependency $ManualDependency.';Start-Process 'winget' 'install "+$ManualDependency+" --accept-package-agreements --ignore-local-archive-malware-scan' -wait`n" - } - if ($notElevated -OR ($clip | Select-String "ElevationRequirement: elevationProhibited")) { - if (!($Silent)) { - Write-Host " = = = = Detecting de-elevation requirement = = = = " - } - $nonElevatedShell = "if ([bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match 'S-1-5-32-544')){& explorer.exe 'C:\Program Files\PowerShell\7\pwsh.exe';Stop-Process (Get-Process WindowsTerminal).id}" - #If elevated, run^^ and exit, else run cmds. - } - $packageName = ($PackageIdentifier -split "[.]")[1] - $wingetArgs = "install $optionsLine $installerLine --accept-package-agreements --ignore-local-archive-malware-scan" - } - $cmdsOut = "" - - switch ($Operation) { - "Configure" { - $cmdsOut = "$nonElevatedShell - `$TimeStart = Get-Date; - `$ConfigurelLogFolder = `"$SharedFolder/logs/Configure/$(Get-Date -UFormat %B)/`$(Get-Date -Format dd)`" - Function Out-Log ([string]`$logData,[string]`$logColor='cyan') { - `$TimeStamp = (Get-Date -Format T) + ': '; - `$logEntry = `$TimeStamp + `$logData - Write-Host `$logEntry -f `$logColor; - md `$ConfigurelLogFolder -ErrorAction Ignore - `$logEntry | Out-File `"`$ConfigurelLogFolder/$PackageIdentifier.$logExt`" -Append -Encoding unicode - }; - Function Out-ErrorData (`$errArray,[string]`$serviceName,`$errorName='errors') { - Out-Log `"Detected `$(`$errArray.count) `$serviceName `$(`$errorName): `" - `$errArray | ForEach-Object {Out-Log `$_ 'red'} - }; - Get-TrackerVMSetStatus 'Installing' - Out-Log ' = = = = Starting Manual Validation pipeline build $build on VM $VM Configure file $logLine = = = = ' - - Out-Log 'Pre-testing log cleanup.' - Out-Log 'Clearing PowerShell errors.' - `$Error.Clear() - Out-Log 'Clearing Application Log.' - Clear-EventLog -LogName Application -ErrorAction Ignore - Out-Log 'Clearing WinGet Log folder.' - `$WinGetLogFolder = 'C:\Users\User\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir' - rm `$WinGetLogFolder\* - Out-Log 'Gathering WinGet info.' - `$info = winget --info - Out-ErrorData @(`$info[0],`$info[3],`$info[4],`$info[5]) 'WinGet' 'infos' - - Out-Log `"Main Package Configure with args: $wingetArgs`" - `$mainpackage = (Start-Process 'winget' '$wingetArgs' -wait -PassThru); - - Out-Log `"`$(`$mainpackage.processname) finished with exit code: `$(`$mainpackage.ExitCode)`"; - If (`$mainpackage.ExitCode -ne 0) { - Out-Log 'Install Failed.'; - explorer.exe `$WinGetLogFolder; - Out-ErrorData ((Get-ChildItem `$WinGetLogFolder).fullname | ForEach-Object {Get-Content `$_ |Where-Object {`$_ -match '[[]FAIL[]]' -OR `$_ -match 'failed' -OR `$_ -match 'error' -OR `$_ -match 'does not match'}}) 'WinGet' - Out-ErrorData '$MDLog' 'Manual' 'Dependency' - Out-ErrorData `$Error 'PowerShell' - Out-ErrorData (Get-EventLog Application -EntryType Error -after `$TimeStart -ErrorAction Ignore).Message 'Application Log' - - Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for Configure file $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" - Get-TrackerVMSetStatus 'ValidationCompleted' - Break; - } - Read-Host 'Configure complete, press ENTER to continue...' #Uncomment to examine installer before scanning, for when scanning disrupts the install. - - Get-TrackerVMSetStatus 'Scanning' - - `$WinGetLogs = ((Get-ChildItem `$WinGetLogFolder).fullname | ForEach-Object {Get-Content `$_ |Where-Object {`$_ -match '[[]FAIL[]]' -OR `$_ -match 'failed' -OR `$_ -match 'error' -OR `$_ -match 'does not match'}}) - `$DefenderThreat = (Get-MPThreat).ThreatName - - Out-ErrorData `$WinGetLogs 'WinGet' - Out-ErrorData `$Error 'PowerShell' - Out-ErrorData (Get-EventLog Application -EntryType Error -after `$TimeStart -ErrorAction Ignore).Message 'Application Log' - Out-ErrorData `$DefenderThreat `"Defender (with signature version `$((Get-MpComputerStatus).QuickScanSignatureVersion))`" - - Out-Log `" = = = = Completing Manual Validation pipeline build $build on VM $VM for Configure file $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" - Get-TrackerVMSetStatus 'ValidationCompleted' - - " - }#end Configure - "Scan" { - $cmdsOut = "$nonElevatedShell - `$TimeStart = Get-Date; - `$explorerPid = (Get-Process Explorer).id; - `$ManValLogFolder = `"$SharedFolder/logs/$(Get-Date -UFormat %B)/`$(Get-Date -Format dd)`" - Function Out-Log ([string]`$logData,[string]`$logColor='cyan') { - `$TimeStamp = (Get-Date -Format T) + ': '; - `$logEntry = `$TimeStamp + `$logData - Write-Host `$logEntry -f `$logColor; - md `$ManValLogFolder -ErrorAction Ignore - `$logEntry | Out-File `"`$ManValLogFolder/$PackageIdentifier.$logExt`" -Append -Encoding unicode - }; - Function Out-ErrorData (`$errArray,[string]`$serviceName,`$errorName='errors') { - Out-Log `"Detected `$(`$errArray.count) `$serviceName `$(`$errorName): `" - `$errArray | ForEach-Object {Out-Log `$_ 'red'} - }; - Function Get-TrackerProgress { - param( - `$File, - `$Activity, - `$Incrementor, - `$Length, - `$Percent = [math]::round(`$Incrementor / `$length*100,2) - ) - }; - Get-TrackerVMSetStatus 'Installing' - Out-Log ' = = = = Starting Manual Validation pipeline build $build on VM $VM $PackageIdentifier $logLine = = = = ' - - Out-Log 'Pre-testing log cleanup.' - Out-Log 'Upgrading installed applications.' - Out-Log (WinGet upgrade --all --include-pinned --disable-interactivity) - Out-Log 'Clearing PowerShell errors.' - `$Error.Clear() - Out-Log 'Clearing Application Log.' - Clear-EventLog -LogName Application -ErrorAction Ignore - Out-Log 'Clearing WinGet Log folder.' - `$WinGetLogFolder = 'C:\Users\User\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir' - rm `$WinGetLogFolder\* - Out-Log 'Updating Defender signature.' - Update-MpSignature - Out-Log 'Gathering WinGet info.' - `$info = winget --info - Out-ErrorData @(`$info[0],`$info[3],`$info[4],`$info[5]) 'WinGet' 'infos' - - `$InstallStart = Get-Date; - $ManualDependency - Out-Log `"Main Package Install with args: $wingetArgs`" - `$mainpackage = (Start-Process 'winget' '$wingetArgs' -wait -PassThru); - Out-Log `"`$(`$mainpackage.processname) finished with exit code: `$(`$mainpackage.ExitCode)`"; - `$SleepSeconds = 15 #Sleep a few seconds for processes to complete. - if ((`$InstallStart).AddSeconds(`$SleepSeconds) -gt (Get-Date)) { - sleep ((`$InstallStart).AddSeconds(`$SleepSeconds)-(Get-Date)).totalseconds - } - `$InstallEnd = Get-Date; - - If (`$mainpackage.ExitCode -ne 0) { - Out-Log 'Install Failed.'; - explorer.exe `$WinGetLogFolder; - - `$WinGetLogs = ((Get-ChildItem `$WinGetLogFolder).fullname | ForEach-Object { - Get-Content `$_ | Where-Object { - `$_ -match '[[]FAIL[]]' -OR - `$_ -match 'failed' -OR - `$_ -match 'error' -OR - `$_ -match 'does not match' - } - }) - `$DefenderThreat = (Get-MPThreat).ThreatName - - Out-ErrorData `$WinGetLogs 'WinGet' - Out-ErrorData '$MDLog' 'Manual' 'Dependency' - Out-ErrorData `$Error 'PowerShell' - Out-ErrorData (Get-EventLog Application -EntryType Error -after `$TimeStart -ErrorAction Ignore).Message 'Application Log' - Out-ErrorData `$DefenderThreat `"Defender (with signature version `$((Get-MpComputerStatus).QuickScanSignatureVersion))`" - - Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" - - if ((`$WinGetLogs -match '\[FAIL\] Installer failed security check.') -OR - (`$WinGetLogs -match '80190194 Not found') -OR - (`$WinGetLogs -match 'Package hash verification failed') -OR - (`$WinGetLogs -match 'Operation did not complete successfully because the file contains a virus or potentially unwanted software')){ - Send-SharedError -clip `$WinGetLogs - } elseif (`$DefenderThreat) { - Send-SharedError -clip `$DefenderThreat - } else { - Get-TrackerVMSetStatus 'ValidationCompleted' - } - - Break; - } - $PostInstallPause - - - - Get-TrackerVMSetStatus 'Scanning' - - Out-Log 'Install complete, starting file change scan.' - `$files = '' - if (Test-Path $RemoteFolder\files.txt) {#If we have a list of files to run - a relic from before automatic file gathering. - `$files = Get-Content $RemoteFolder\files.txt - } else { - `$files1 = ( - Get-ChildItem c:\ -File -Recurse -ErrorAction Ignore -Force | - Where-Object {`$_.CreationTime -gt `$InstallStart} | - Where-Object {`$_.CreationTime -lt `$InstallEnd} | - %{`$line++;Get-TrackerProgress `$_ `"lnk`" `$line `$line;return `$_} - ).FullName - `$files2 = ( - Get-ChildItem c:\ -File -Recurse -ErrorAction Ignore -Force | - Where-Object {`$_.LastAccessTIme -gt `$InstallStart} | - Where-Object {`$_.CreationTime -lt `$InstallEnd} | - %{`$line++;Get-TrackerProgress `$_ `"lnk`" `$line `$line;return `$_} - ).FullName - `$files3 = ( - Get-ChildItem c:\ -File -Recurse -ErrorAction Ignore -Force | - Where-Object {`$_.LastWriteTIme -gt `$InstallStart} | - Where-Object {`$_.CreationTime -lt `$InstallEnd} | - %{`$line++;Get-TrackerProgress `$_ `"lnk`" `$line `$line;return `$_} - ).FullName - `$files = `$files1 + `$files2 + `$files3 | Select-Object -Unique - } - - Out-Log `"Reading `$(`$files.count) file changes in the last `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. Starting bulk file execution:`" - `$files = `$files | - Where-Object {`$_ -notmatch 'AppRepository'} | - Where-Object {`$_ -notmatch 'assembly'} | - Where-Object {`$_ -notmatch 'CbsTemp'} | - Where-Object {`$_ -notmatch 'CryptnetUrlCache'} | - Where-Object {`$_ -notmatch 'DesktopAppInstaller'} | - Where-Object {`$_ -notmatch 'dotnet'} | - Where-Object {`$_ -notmatch 'dump64a'} | - Where-Object {`$_ -notmatch 'EdgeCore'} | - Where-Object {`$_ -notmatch 'EdgeUpdate'} | - Where-Object {`$_ -notmatch 'EdgeWebView'} | - Where-Object {`$_ -notmatch 'ErrorDialog = ErrorDlg'} | - Where-Object {`$_ -notmatch 'Microsoft.Windows.Search'} | - Where-Object {`$_ -notmatch 'Microsoft\\Edge\\Application'} | - Where-Object {`$_ -notmatch 'msedge'} | - Where-Object {`$_ -notmatch 'NativeImages'} | - Where-Object {`$_ -notmatch 'Prefetch'} | - Where-Object {`$_ -notmatch 'Provisioning'} | - Where-Object {`$_ -notmatch 'redis'} | - Where-Object {`$_ -notmatch 'servicing'} | - Where-Object {`$_ -notmatch 'System32'} | - Where-Object {`$_ -notmatch 'SysWOW64'} | - Where-Object {`$_ -notmatch 'unins'} | - Where-Object {`$_ -notmatch 'waasmedic'} | - Where-Object {`$_ -notmatch 'Windows Defender'} | - Where-Object {`$_ -notmatch 'Windows Error Reporting'} | - Where-Object {`$_ -notmatch 'WindowsUpdate'} | - Where-Object {`$_ -notmatch 'WinSxS'} - - `$files | Out-File 'C:\Users\user\Desktop\ChangedFiles.txt' - `$files | Select-String '[.]exe`$' | ForEach-Object {if (`$_ -match '$packageName') {Out-Log `$_ 'green'} else{Out-Log `$_ 'cyan'}; try{Start-Process `$_}catch{}}; - `$files | Select-String '[.]msi`$' | ForEach-Object {if (`$_ -match '$packageName') {Out-Log `$_ 'green'} else{Out-Log `$_ 'cyan'}; try{Start-Process `$_}catch{}}; - `$files | Select-String '[.]lnk`$' | ForEach-Object {if (`$_ -match '$packageName') {Out-Log `$_ 'green'} else{Out-Log `$_ 'cyan'}; try{Start-Process `$_}catch{}}; - - Out-Log `" = = = = End file list. Starting Defender scan.`" - Start-MpScan; - - Out-Log `"Defender scan complete, closing windows...`" - Get-Process msedge | Stop-Process -Force - Get-Process mip | Stop-Process - Get-Process powershell | where {`$_.id -ne `$PID} | Stop-Process - Get-Process explorer | where {`$_.id -ne `$explorerPid} | Stop-Process - - Get-process | Where-Object { `$_.mainwindowtitle -ne '' -and `$_.processname -notmatch '$packageName' -and `$_.processname -ne 'powershell' -and `$_.processname -ne 'WindowsTerminal' -and `$_.processname -ne 'csrss' -and `$_.processname -ne 'dwm'} | Stop-Process - #Get-Process | Where-Object {`$_.id -notmatch `$PID -and `$_.id -notmatch `$explorerPid -and `$_.processname -notmatch `$packageName -and `$_.processname -ne 'csrss' -and `$_.processname -ne 'dwm'} | Stop-Process - - `$WinGetLogs = ((Get-ChildItem `$WinGetLogFolder).fullname | ForEach-Object {Get-Content `$_ |Where-Object {`$_ -match '[[]FAIL[]]' -OR `$_ -match 'failed' -OR `$_ -match 'error' -OR `$_ -match 'does not match'}}) - `$DefenderThreat = (Get-MPThreat).ThreatName - - Out-ErrorData `$WinGetLogs 'WinGet' - Out-ErrorData '$MDLog' 'Manual' 'Dependency' - Out-ErrorData `$Error 'PowerShell' - Out-ErrorData (Get-EventLog Application -EntryType Error -after `$TimeStart -ErrorAction Ignore).Message 'Application Log' - Out-ErrorData `$DefenderThreat `"Defender (with signature version `$((Get-MpComputerStatus).QuickScanSignatureVersion))`" - - if ((`$WinGetLogs -match '\[FAIL\] Installer failed security check.') -OR - (`$WinGetLogs -match 'Package hash verification failed') -OR - (`$WinGetLogs -match 'Operation did not complete successfully because the file contains a virus or potentially unwanted software')){ - Send-SharedError -clip `$WinGetLogs - Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" - Get-TrackerVMSetStatus 'SendStatus' - } elseif (`$DefenderThreat) { - Send-SharedError -clip `$DefenderThreat - Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" - Get-TrackerVMSetStatus 'SendStatus' - } elseif ((Get-Content $RemoteTrackerModeFile) -eq 'IEDS') { - Out-Log `" = = = = Auto-Completing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" - Get-TrackerVMSetStatus 'Approved' - } elseif ((Get-TrackerVMStatus | where {`$_.vm -match `$vm}).Mode -eq 'Existing') { - Out-Log `" = = = = Auto-Completing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" - Get-TrackerVMSetStatus 'Approved' - } else { - Start-Process PowerShell - Out-Log `" = = = = Completing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" - Get-TrackerVMSetStatus 'ValidationCompleted' - } - - " - }#end Scan - Default { - Write-Host "Error: Bad Function" - Break; - } - } - - $cmdsOut | Out-File $CmdsFileName - - if ($NoFiles -eq $False) { - #Extract multi-part manifest from clipboard and write to disk - if (!($Silent)) { - Write-Host "Removing previous manifest and adding current..." - } - Get-RemoveFileIfExist "$manifestFolder" -remake -Silent - if ($Operation -eq "Configure") { - $FilePath = "$manifestFolder\config.yaml" - Out-File -FilePath $FilePath -InputObject $clipInput - } else { - $Files = @() - $Files += "Package.installer.yaml" - $FileNames = ($clip | Select-String "[.]yaml") |ForEach-Object{($_ -split "/")[-1]} - $replace = $FileNames[-1] -replace ".yaml" - $FileNames | ForEach-Object { - $Files += $_ -replace $replace,"Package" - } - $clip = $clip -join "`n" -split "@@" - for ($i=0;$i -lt $Files.length;$i++) { - $File = $Files[$i] - $inputObj = $clip[$i*2] -split "`n" - $inputObj = $inputObj[1..(($inputObj | Select-String "ManifestVersion" -SimpleMatch).LineNumber -1)] | Where-Object {$_ -notmatch "marked this conversation as resolved."} - $FilePath = "$manifestFolder\$File" - if (!($Silent)) { - Write-Host "Writing $($inputObj.length) lines to $FilePath" - } - Out-File -FilePath $FilePath -InputObject $inputObj - #Bugfix to catch package identifier appended to last line of last file. - $fileContents = (Get-Content $FilePath) - if ($fileContents[-1] -match $PackageIdentifier) { - $fileContents[-1]=($fileContents[-1] -split $PackageIdentifier)[0] - } - $fileContents -replace "0New version: ","0" -replace "0New package: ","0" -replace "0Add version: ","0" -replace "0Add package: ","0" -replace "0Add ","0" -replace "0New ","0" -replace "0package: ","0" | Out-File $FilePath - } - $filecount = (Get-ChildItem $manifestFolder).count - $filedir = "ok" - $filecolor = "green" - if ($filecount -lt 3) { $filedir = "too low"; $filecolor = "red"} - if ($filecount -gt 3) { $filedir = "high"; $filecolor = "yellow"} - if ($filecount -gt 10) { $filedir = "too high"; $filecolor = "red"} - if (!($Silent)) { - Write-Host -f $filecolor "File count $filecount is $filedir" - } - if ($filecount -lt 3) { break} - $fileContents = Get-Content "$runPath\$vm\manifest\Package.yaml" - if ($fileContents[-1] -ne "0") { - $fileContents[-1] = ($fileContents[-1] -split ".0")[0]+".0" - $fileContents | Out-File $filePath - $fileContents = Get-Content "$runPath\$vm\manifest\Package.yaml" - $fileContents -replace "1..0","1.10.0" - $fileContents | Out-File $filePath - }#end if fileContents - }#end if Operation - }#end if NoFiles - - if ($InspectNew) { - $PackageResult = Find-WinGetPackage $PackageIdentifier - if (!($Silent)) { - Write-Host "Searching Winget for $PackageIdentifier" - } - Write-Host $PackageResult - if ($PackageResult -eq "No package found matching input criteria.") { - Open-AllURL - Start-Process "https://www.bing.com/search?q=$PackageIdentifier" - $a,$b = $PackageIdentifier -split "[.]" - if ($a -ne "") { - if (!($Silent)) { - Write-Host "Searching Winget for $a" - } - Find-WinGetPackage $a - } - if ($b -ne "") { - if (!($Silent)) { - Write-Host "Searching Winget for $b" - } - Find-WinGetPackage $b - } - } - } - if (!($Silent)) { - Write-Host "File operations complete, starting VM operations." - } - Get-TrackerVMRevert $VM -Silent - Get-TrackerVMLaunchWindow $VM - } -} - -Function Get-TrackerVMValidateByID { - param( - $PackageIdentifier = (Get-Clipboard) - ) - Get-TrackerVMValidate -installerLine "--id $PackageIdentifier" -PackageIdentifier $PackageIdentifier -NoFiles #-notElevated -} - -Function Get-TrackerVMValidateByConfig { - param( - $PackageIdentifier = "Microsoft.Devhome", - $ManualDependency = "Git.Git" - ) - - Get-TrackerVMValidate -installerLine "--id $PackageIdentifier" -PackageIdentifier $PackageIdentifier -NoFiles -ManualDependency $ManualDependency -Operation "DevHomeConfig" - Start-Sleep 2 - Get-TrackerVMValidate -installerLine "--id $ManualDependency" -PackageIdentifier $ManualDependency -NoFiles -Operation "Config" -} - -Function Get-TrackerVMValidateByArch { - param( - ) - Get-TrackerVMValidate -Arch x64; - Start-Sleep 2; - Get-TrackerVMValidate -Arch x86; -} - -Function Get-TrackerVMValidateByScope { - param( - ) - Get-TrackerVMValidate -Scope Machine; - Start-Sleep 2; - Get-TrackerVMValidate -Scope User; -} - -Function Get-TrackerVMValidateBothArchAndScope { - param( - ) - Get-TrackerVMValidate -Arch x64 -Scope Machine; - Start-Sleep 2; - Get-TrackerVMValidate -Arch x86 -Scope Machine; - Start-Sleep 2; - Get-TrackerVMValidate -Arch x64 -Scope User; - Start-Sleep 2; - Get-TrackerVMValidate -Arch x86 -Scope User; -} - -#Manifests Etc -Function Get-SingleFileAutomation { - param( - $PR, - $clip = (Get-Clipboard), - $PackageIdentifier = (Get-YamlValue PackageIdentifier -clip $clip), - $version = ((Get-YamlValue PackageVersion -clip $clip) -replace "'","" -replace '"',""), - $listing = (Get-ManifestListing $PackageIdentifier), - $VM = (Get-ManifestFile -clip $clip)[-1] - ) - - for ($File = 0; $File -lt $listing.length;$File++) { - Get-ManifestFile $VM -clip (Get-FileFromGitHub -PackageIdentifier $PackageIdentifier -Version $version -FileName $listing[$File]) -PR $PR - } -} - -Function Get-InstallerFileAutomation { - Param( - $PR = (Get-Clipboard), - $InstallerFile = (Get-CommitFile -PR $PR -MatchName "") - ) - Get-SingleFileAutomation -PR $pr -clip $InstallerFile -} - -Function Get-ManifestAutomation { - param( - $VM = (Get-NextFreeVM), - $PR =0, - $Arch, - $OS, - $Scope - ) - - #Read-Host "Copy Installer file to clipboard, then press Enter to continue." - (Get-Clipboard) -join "" | clip; - $null = Get-ManifestFile $VM - - Read-Host "Copy defaultLocale file to clipboard, then press Enter to continue." - (Get-Clipboard) -join "" | clip; - $null = Get-ManifestFile $VM - - Read-Host "Copy version file to clipboard, then press Enter to continue." - (Get-Clipboard) -join "" | clip; - if ($Arch) { - $null = Get-ManifestFile $VM -Arch $Arch - } elseif ($OS) { - $null = Get-ManifestFile $VM -OS $OS - } elseif ($Scope) { - $null = Get-ManifestFile $VM -Scope $Scope - } else { - $null = Get-ManifestFile $VM -PR $PR - } -} - -Function Get-ManifestOtherAutomation { - param( - $Clip = (Get-Clipboard), - $Title = ($Clip -split " version "), - $Version = ($Title[1] -split " #"), - $PR = ($Version[1]), - [switch]$Installer - ) - $Title = $Title[0] - $Version = $Version[0] - if ($Installer) { - $File = (Get-FileFromGitHub $Title $Version) - } -} - -Function Get-Generate { -$out = " -# Created by Validation Pipeline build $build -# If a human is reading this, then something has gone wrong. - -PackageIdentifier: $PackageIdentifier -PackageVersion: $PackageVersion -DefaultLocale: $Locale -ManifestType: version -ManifestVersion: $ManifestVersion" - -} - -Function Get-ManifestFile { - param( - [int]$vm = ((Get-NextFreeVM) -replace "vm",""), - $clip = (Get-SecondMatch), - $FileName = "Package", - $PackageIdentifier = ((Get-YamlValue -StringName "PackageIdentifier" -clip $clip) -replace '"','' -replace "'",'' -replace ",",''), - $PR = 0, - $Arch, - $OS, - $Scope - ); - #Write-Output "PackageIdentifier: $PackageIdentifier" - $manifestFolder = "$MainFolder\vm\$vm\manifest" - $clip = $clip | Where-Object {$_ -notmatch "marked this conversation as resolved."} - - $YamlValue = (Get-YamlValue ManifestType $clip) - switch ($YamlValue) { - "defaultLocale" { - $Locale = (Get-YamlValue PackageLocale $clip) - $FileName = "$FileName.locale.$Locale" - } - "Locale" { - $Locale = (Get-YamlValue PackageLocale $clip) - $FileName = "$FileName.locale.$Locale" - } - "installer" { - Get-RemoveFileIfExist "$manifestFolder" -remake - $FileName = "$FileName.installer" - } - "version" { - if ($Arch) { - Get-TrackerVMValidate -vm $VM -NoFiles -Arch $Arch -PR $PR -PackageIdentifier $PackageIdentifier - } elseif ($OS) { - Get-TrackerVMValidate -vm $VM -NoFiles -OS $OS -PR $PR -PackageIdentifier $PackageIdentifier - } elseif ($Scope) { - Get-TrackerVMValidate -vm $VM -NoFiles -Scope $Scope -PR $PR -PackageIdentifier $PackageIdentifier - } else { - Get-TrackerVMValidate -vm $VM -NoFiles -PR $PR -PackageIdentifier $PackageIdentifier - } - } - Default { - Write-Output "Error: Bad ManifestType" - Write-Output $clip - } - } - $FilePath = "$manifestFolder\$FileName.yaml" - Write-Output "Writing $($clip.length) lines to $FilePath" - $clip -replace "0New version: ","0" -replace "0Add version: ","0" -replace "0Add ","0" -replace "0New ","0" | Out-File $FilePath -Encoding unicode - return $VM -} - -Function Get-ManifestListing { - param( - $PackageIdentifier, - $Version = (Find-WinGetPackage $PackageIdentifier -MatchOption Equals).version, - $Path = ($PackageIdentifier -replace "[.]","/"), - $FirstLetter = ($PackageIdentifier[0].tostring().tolower()), - $Uri = "$GitHubApiBaseUrl/contents/manifests/$FirstLetter/$Path/$Version/", - [Switch]$Versions - ) - If ($Versions) { - $Uri = "$GitHubApiBaseUrl/contents/manifests/$FirstLetter/$Path/" - } - try{ - $out = (Invoke-GitHubRequest -Uri $Uri -JSON).name - }catch{ - $out = "Error" - } - return $out -replace "$($PackageIdentifier)[.]","" -} - -Function Get-ListingDiff { - param( - $Clip = (Get-Clipboard), - $PackageIdentifier = (Get-YamlValue PackageIdentifier $Clip -replace '"',""), - $PRManifest = ($clip -split "`n" | Where-Object {$_ -match ".yaml"} | Where-Object {$_ -match $PackageIdentifier} |%{($_ -split "/")[-1] -replace "$($PackageIdentifier)[.]",""}), - $Returnables = "" - ) - if ($PRManifest.count -gt 2){ - $CurrentManifest = (Get-ManifestListing $PackageIdentifier) - if ($CurrentManifest -eq "Error") { - $Returnables = diff $CurrentManifest $PRManifest - } else { - $Returnables = $CurrentManifest - } - } - Return $Returnables -} - -Function Get-OSFromVersion ($clip) { - try{ - if ([system.version](Get-YamlValue -StringName MinimumOSVersion -clip $clip) -ge [system.version]"10.0.22000.0"){"Win11"} else{"Win10"} - } catch { - "Win10" - } -} - -#VM Image Management -Function Get-PipelineVmGenerate { - param( - [int]$vm = (Get-Content $vmCounter), - [ValidateSet("Win10","Win11")][string]$OS = "Win10", - [int]$version = (Get-TrackerVMVersion -OS $OS), - $destinationPath = "$imagesFolder\$vm\", - $VMFolder = "$MainFolder\vm\$vm", - $newVmName = "vm$VM", - $startTime = (Get-Date) - ) - Test-Admin - Write-Host "Creating VM $newVmName version $version OS $OS" - [int]$vm+1|Out-File $vmCounter - "`"$vm`",`"Generating`",`"$version`",`"$OS`",`"`",`"1`",`"Creation`",`"0`""|Out-File $StatusFile -Append -Encoding unicode - Get-RemoveFileIfExist $destinationPath -remake - Get-RemoveFileIfExist $VMFolder -remake - $vmImageFolder = (ls "$imagesFolder\$OS-image\Virtual Machines\" *.vmcx).fullname - - Write-Host "Takes about 120 seconds..." - Import-VM -Path $vmImageFolder -Copy -GenerateNewId -VhdDestinationPath $destinationPath -VirtualMachinePath $destinationPath; - Rename-VM (Get-VM | Where-Object {($_.CheckpointFileLocation)+"\" -eq $destinationPath}) -NewName $newVmName - Start-VM $newVmName - Remove-VMCheckpoint -VMName $newVmName -Name "Backup" - Get-TrackerVMRevert $VM - Get-TrackerVMLaunchWindow $VM - Write-Host "Took $(((Get-Date)-$startTime).TotalSeconds) seconds..." -} - -Function Get-PipelineVmDisgenerate { - param( - [Parameter(mandatory=$True)][int]$vm, - $destinationPath = "$imagesFolder\$vm\", - $VMFolder = "$MainFolder\vm\$vm", - $vmName = "vm$VM" - ) - Test-Admin - Get-TrackerVMSetStatus 'Disgenerate' $VM - Get-ConnectedVM | Where-Object {$_.vm -match $VMName} | ForEach-Object {Stop-Process -id $_.id} - Stop-TrackerVM $VM - Remove-VM -Name $vmName -Force - - $out = Get-Status - $out = $out | Where-Object {$_.vm -notmatch $VM} - Write-Status $out - - $delay = 15 - 0..$delay | ForEach-Object { - $pct = $_ / $delay * 100 - Write-Progress -Activity "Remove VM" -Status "$_ of $delay" -PercentComplete $pct - Start-Sleep $GitHubRateLimitDelay - } - Get-RemoveFileIfExist $destinationPath - Get-RemoveFileIfExist $VMFolder - Write-Progress -Activity "Remove VM" -Completed -} - -Function Get-ImageVMStart { - param( - [ValidateSet("Win10","Win11")][string]$OS = "Win10" - ) - Test-Admin - $VM = 0 - Start-VM $OS; - Get-TrackerVMRevert $VM $OS; - Get-TrackerVMLaunchWindow $VM $OS -} - -Function Get-ImageVMStop { - param( - [ValidateSet("Win10","Win11")][string]$OS = "Win10" - ) - Test-Admin - $VM = 0 - $OriginalLoc = "" - switch ($OS) { - "Win10" { - $OriginalLoc = $Win10Folder - } - "Win11" { - $OriginalLoc = $Win11Folder - } - } - $ImageLoc = "$imagesFolder\$OS-image\" - [int]$version = [int](Get-TrackerVMVersion -OS $OS) + 1 - Write-Host "Writing $OS version $version" - Get-TrackerVMSetVersion -Version $Version -OS $OS - Stop-Process -id ((Get-ConnectedVM)|Where-Object {$_.VM -match "$OS"}).id -ErrorAction Ignore - Redo-Checkpoint $VM $OS; - Stop-TrackerVM $VM $OS; - Write-Host "Letting VM cool..." - Start-Sleep 30; - Robocopy.exe $OriginalLoc $ImageLoc -mir -} - -Function Get-ImageVMMove { - param( - [ValidateSet("Win10","Win11")][string]$OS = "Win10", - $CurrentVMName = "", - $newLoc = "$imagesFolder\$OS-Created$(get-date -f MMddyy)-Original" - ) - Test-Admin - switch ($OS) { - "Win10" { - $CurrentVMName = "Windows 10 MSIX packaging environment" - } - "Win11" { - $CurrentVMName = "Windows 11 dev environment" - } - } - $VM = Get-VM | where {$_.Name -match $CurrentVMName} - Move-VMStorage -VM $VM -DestinationStoragePath $newLoc - Rename-VM -VM $VM -NewName $OS -} - -#VM Pipeline Management -Function Get-TrackerVMLaunchWindow { - param( - [Parameter(mandatory=$True)][int]$vm, - $VMName = "vm$VM" - ) - Test-Admin - Get-ConnectedVM | Where-Object {$_.vm -match $VMName} | ForEach-Object {Stop-Process -id $_.id} - C:\Windows\System32\vmconnect.exe localhost $VMName -} - -Function Get-TrackerVMRevert { - param( - [Parameter(mandatory=$True)][int]$vm, - $VMName = "vm$VM", - [Switch]$Silent - ) - Test-Admin - if ($Silent) { - Get-TrackerVMSetStatus "Restoring" $VM -Silent - } else { - Get-TrackerVMSetStatus "Restoring" $VM - } - Restore-VMCheckpoint -Name $CheckpointName -VMName $VMName -Confirm:$False -} - -Function Complete-TrackerVM { - param( - [Parameter(mandatory=$True)][int]$vm, - $VMFolder = "$MainFolder\vm\$vm", - $filesFileName = "$VMFolder\files.txt" - ) - Test-Admin - Get-TrackerVMSetStatus "Completing" $VM - Stop-Process -id ((Get-ConnectedVM)|Where-Object {$_.VM -match "vm$VM"}).id -ErrorAction Ignore - Stop-TrackerVM $VM - Get-RemoveFileIfExist $filesFileName - Get-TrackerVMSetStatus "Ready" $VM " " 1 "Ready" -} - -Function Stop-TrackerVM { - param( - [Parameter(mandatory=$True)][int]$vm, - $VMName = "vm$VM" - ) - Test-Admin - Stop-VM $VMName -TurnOff -} - -#VM Status -Function Get-TrackerVMSetStatus { - param( - [ValidateSet("AddVCRedist","Approved","CheckpointComplete","Checkpointing","CheckpointReady","Completing","Complete","Disgenerate","Generating","Installing","Prescan","Prevalidation","Ready","Rebooting","Regenerate","Restoring","Revert","Scanning","SendStatus","SendStatus-Approved","SendStatus-Complete","Setup","SetupComplete","Starting","Updating","ValidationCompleted")] - $Status = "Complete", - [Parameter(mandatory=$True)]$VM, - [string]$Package, - [int]$PR, - [ValidateSet("New","Creating","Existing","Ready","Unknown")] - [string]$Mode, - [Switch]$Silent - ) - $out = Get-Status - if ($Status) { - ($out | Where-Object {$_.vm -match $VM}).Status = $Status - } - if ($Package) { - ($out | Where-Object {$_.vm -match $VM}).Package = $Package - } - if ($PR) { - ($out | Where-Object {$_.vm -match $VM}).PR = $PR - } - if ($Mode) { - ($out | Where-Object {$_.vm -match $VM}).Mode = $Mode - } - if ($Silent) { - Write-Status $out -Silent - } else { - Write-Status $out - Write-Host "Setting $VM $Package $PR state $Status" - } -} - -Function Write-Status { - Param( - $out, - [Switch]$Silent - ) - if (!($Silent)) { - Write-Host "Writing $($out.length) lines to $StatusFile." - } - $out | ConvertTo-Csv | Out-File $StatusFile -Encoding unicode -} - -Function Get-Status { - param( - [int]$vm, - [ValidateSet("AddVCRedist","Approved","CheckpointComplete","Checkpointing","CheckpointReady","Completing","Complete","Disgenerate","Generating","Installing","Prescan","Prevalidation","Ready","Rebooting","Regenerate","Restoring","Revert","Scanning","SendStatus","SendStatus-Approved","SendStatus-Complete","Setup","SetupComplete","Starting","Updating","ValidationCompleted")] - $Status, - [ValidateSet("Win10","Win11")][string]$OS, - $out = (Get-Content $StatusFile | ConvertFrom-Csv) - ) - $out -} - -Function Get-TrackerVMResetStatus { - $VMs = (Get-Status | Where-Object {$_.Status -ne "Ready"} | Where-Object {$_.RAM -eq 0}).VM - $VMs += (Get-Status | Where-Object {$_.Status -ne "Ready"} | Where-Object {$_.Package -eq ""}).VM - Foreach ($VM in $VMs) { - Get-TrackerVMSetStatus Complete $VM - } - if (!(Get-ConnectedVM)){ - Get-Process *vmwp* | Stop-Process - } -} - -Function Get-TrackerVMRebuildStatus { - $Status = Get-VM | - Where-Object {$_.name -notmatch "vm0"} | - Where-Object {$_.name -notmatch "Win10"} | - Where-Object {$_.name -notmatch "Win11"} | - Select-Object @{n="vm";e={$_.name -replace "vm",$null}}, - @{n="status";e={"Ready"}}, - @{n="version";e={(Get-TrackerVMVersion -OS "Win10")}}, - @{n="OS";e={"Win10"}}, - @{n="Package";e={""}}, - @{n="PR";e={"1"}}, - @{n="Mode";e={"Unknown"}}, - @{n="RAM";e={"0"}} - Write-Status $Status -} - -#VM Versioning -Function Get-TrackerVMVersion { - param( - [ValidateSet("Win10","Win11")][string]$OS = "Win10", - [int]$VM = ((Get-Content $VMversion | ConvertFrom-Csv | Where-Object {$_.OS -eq $OS}).version) - ) - Return $VM -} - -Function Get-TrackerVMSetVersion { - param( - [int]$Version, - [ValidateSet("Win10","Win11")][string]$OS = "Win10", - $Versions = (Get-Content $VMversion | ConvertFrom-Csv) - ) - ($Versions | Where-Object {$_.OS -eq $OS}).Version = $Version - $Versions | ConvertTo-Csv|Out-File $VMversion -} - -Function Get-TrackerVMRotate { - param( - $status = (Get-Status), - $OS = "Win10", - $VMs = ($status | Where-Object {$_.version -lt (Get-TrackerVMVersion -OS $OS)} | Where-Object {$_.OS -eq $OS}) - ) - if ($VMs){ - if (!(($status | Where-Object {$_.status -ne "Ready"}).count)) { - Get-TrackerVMSetStatus Regenerate ($VMs.VM | Get-Random) - } - } -} - -#VM Orchestration -Function Get-TrackerVMCycle { - param( - $VMs = (Get-Status) - ) - Foreach ($VM in $VMs) { - Switch ($VM.status) { - "AddVCRedist" { - Add-ToValidationFile $VM.vm - } - "Approved" { - #Add-Waiver $VM.PR - $PRLabels = ((Invoke-GitHubPRRequest -PR $VM.PR -Type "labels" -Output content -JSON).name) -join " " - if ($PRLabels -match $Labels.VC) { - Approve-PR -PR $VM.PR - } else { - Get-CompletePR -PR $VM.PR - } - Get-TrackerVMSetStatus "Complete" $VM.vm - } - "CheckpointReady" { - Redo-Checkpoint $VM.vm - } - "Complete" { - if (($VMs | Where-Object {$_.vm -eq $VM.vm} ).version -lt (Get-TrackerVMVersion -OS $VM.os)) { - Get-TrackerVMSetStatus "Regenerate" $VM.vm - } else { - Complete-TrackerVM $VM.vm - } - } - "Disgenerate" { - Get-PipelineVmDisgenerate $VM.vm - } - "Revert" { - Get-TrackerVMRevert $VM.vm - } - "Regenerate" { - Get-PipelineVmDisgenerate $VM.vm - Get-PipelineVmGenerate -OS $VM.os - } - "SendStatus-Complete" { - Get-SendStatus -Status "Complete" - } - "SendStatus-Approved" { - Get-SendStatus -Status "Approved" - } - "SendStatus" { - Get-SendStatus -Status "Complete" - } - "ValidationCompleted" { - # if ($VM.Mode -eq "Existing") { - # Get-CompletePR -PR $VM.PR - # Get-TrackerVMSetStatus "Complete" $VM.vm - # } - } - default { - #Write-Host "Complete" - } - }; #end switch - } -} - -Function Get-TrackerMode { - param( - $mode = (Get-Content $TrackerModeFile) - ) - $mode -} - -Function Get-TrackerVMSetMode { - param( - [ValidateSet("Approving","Idle","IEDS","Validating")] - $Status = "Validating" - ) - $Status | Out-File $TrackerModeFile -NoNewLine -} - -Function Get-ConnectedVM { - Test-Admin - (Get-Process *vmconnect*) | Select-Object id, @{n="VM";e={ForEach-Object{$_.mainwindowtitle[0..5] -join ""}}} -} - -Function Get-NextFreeVM { - param( - [ValidateSet("Win10","Win11")][string] $OS = "Win10", - $Status = "Ready" - ) - Test-Admin - try { - $out_status = Get-Status - $out_status = $out_status | Where-Object {$_.OS -eq $OS} - $out_status = ($out_status | Where-Object {$_.version -eq (Get-TrackerVMVersion -OS $OS)} | Where-Object {$_.status -eq $Status}).vm - $out_status = $out_status |Get-Random -ErrorAction SilentlyContinue - return $out_status; - } catch { - Write-Host "No available $OS VMs" - return 0 - } -} - -Function Redo-Checkpoint { - param( - [Parameter(mandatory=$True)][int]$vm, - $VMName = "vm$VM" - ) - Test-Admin - Get-TrackerVMSetStatus "Checkpointing" $VM - Remove-VMCheckpoint -Name $CheckpointName -VMName $VMName - Checkpoint-VM -SnapshotName $CheckpointName -VMName $VMName - Get-TrackerVMSetStatus "Complete" $VM -} - -#File Management -Function Get-SecondMatch { - param( - $clip = (Get-Clipboard), - $depth = 1 - ) - #If $current and $prev don't match, return the $prev element, which is $depth lines below the $current line. Start at $clip[$depth] and go until the end - this starts $current at $clip[$depth], and $prev gets moved backwards to $clip[0] and moves through until $current is at the end of the array, $clip[$clip.length], and $prev is $depth previous, at $clip[$clip.length - $depth]. - for ($depthUnit = $depth;$depthUnit -lt $clip.length; $depthUnit++){ - $current = ($clip[$depthUnit] -split ": ")[0] - $prevUnit = $clip[$depthUnit - $depth] - $Prev = ($prevUnit -split ": ")[0] - if ($current -ne $Prev) { - $prevUnit - } - } - #Then complete the last $depth items of the array by starting at $clip[-$depth] and work backwards through the last items in reverse order to $clip[-1]. - for ($depthUnit = $depth ;$depthUnit -gt 0; $depthUnit--){ - $clip[-$depthUnit] - } -} - -Function Get-SendStatus { - Param( - $PR, - [ValidateSet("AddVCRedist","Approved","CheckpointComplete","Checkpointing","CheckpointReady","Completing","Complete","Disgenerate","Generating","Installing","Prescan","Prevalidation","Ready","Rebooting","Regenerate","Restoring","Revert","Scanning","SendStatus","SendStatus-Approved","SendStatus-Complete","Setup","SetupComplete","Starting","Updating","ValidationCompleted")] - $Status = "Complete", - $SharedError = ((Get-Content $SharedErrorFile) -split "`n") - ) - $SharedError = $SharedError -replace "`r","" - $SharedError = $SharedError -replace " (caller: 00007FFA008A5769)","" - $SharedError = $SharedError -replace " (caller: 00007FFA008AA79F)","" - $SharedError = $SharedError -replace "Exception(1)","" - $SharedError = $SharedError -replace "Exception(2)","" - $SharedError = $SharedError -replace "Exception(4)","" - $SharedError = $SharedError -replace "tid(f1c)","" - $SharedError = $SharedError -replace "C:\\__w\\1\\s\\external\\pkg\\src\\AppInstallerCommonCore\\Downloader.cpp(185)\\WindowsPackageManager.dll!00007FFA008A37C9:","" - $SharedError = $SharedError -join "`n" - #$SharedError = Get-AutomatedErrorAnalysis $SharedError - if ((($SharedError -join " ") -match "Installer failed security check") -OR (($SharedError -join " ") -match "Detected 1 Defender")) { - Get-AddPRLabel -PR $PR -LabelName $Labels.VDE - } - Reply-ToPR -PR $VM.PR -UserInput $SharedError -CannedMessage ManValEnd - Get-TrackerVMSetStatus $Status $VM.vm -} - -Function Get-TrackerVMRotateLog { - $logYesterDate = (Get-Date -f dd) - 1 - Move-Item "$writeFolder\logs\$logYesterDate" "$logsFolder\$logYesterDate" -} - -Function Get-RemoveFileIfExist { - param( - $FilePath, - [switch]$remake, - [switch]$Silent - ) - if (Test-Path $FilePath) {Remove-Item $FilePath -Recurse} - if ($Silent) { - if ($remake) {$null = New-Item -ItemType Directory -Path $FilePath} - } else { - if ($remake) {New-Item -ItemType Directory -Path $FilePath} - } - -} - -Function Get-LoadFileIfExists { - param( - $FileName, - $FileContents, - [Switch]$Silent - ) - if (Test-Path $FileName) { - $FileContents = Get-Content $FileName | ConvertFrom-Csv - if (!($Silent)) { - Write-Host "Loaded $($FileContents.count) entries from $FileName." -f green - Return $FileContents - } - } else { - if (!($Silent)) { - Write-Host "File $FileName not found!" -f red - } - } -} - -Function Get-FileFromGitHub { - param( - $PackageIdentifier, - $Version, - $FileName = "installer.yaml", - $Path = ($PackageIdentifier -replace "[.]","/"), - $FirstLetter = ($PackageIdentifier[0].tostring().tolower()) - ) - try{ - $content = (Invoke-GitHubRequest -Uri "$GitHubContentBaseUrl/master/manifests/$FirstLetter/$Path/$Version/$PackageIdentifier.$FileName").content - }catch{ - $content = "Error" - } - return ($content -split "`n") -} - -Function Get-ManifestEntryCheck { - param( - $PackageIdentifier, - $Version, - $Entry = "DisplayVersion" - ) - $content = Get-FileFromGitHub $PackageIdentifier $Version - $out = ($content | Where-Object {$_ -match $Entry}) - if ($out) {$True} else {$False} -} - -Function Get-DecodeGitHubFile { - param( - [string]$Base64String, - $Bits = ([Convert]::FromBase64String($Base64String)), - $String = ([System.Text.Encoding]::UTF8.GetString($Bits)) - ) - return $String -split "`n" -} - -Function Get-CommitFile { - param( - $PR = (Get-Clipboard), - $Commit = (Invoke-GitHubPRRequest -PR $PR -Type commits -Output content -JSON), - $MatchName = "installer", - $PRData = (Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$pr" -JSON), - $PRTitle = (($PRData.title -split " ") | where {$_ -match "[A-Za-z0-9]\.[A-Za-z0-9]"} | where {$_ -notmatch "[0-9].[0-9]"}), - #$PRTitle = (($PRData.title -split " ")[2] | where {$_ -match "\."}), - $FileList = ($Commit.files.contents_url | where {$_ -match $MatchName} | where {$_ -match $PRTitle}), - [int]$VM = 0 - ) - $FileList | %{ - "File: $_" - try { - $EncodedFile = (invoke-GithubRequest -Uri $_ -JSON) - } catch { - write-host $error[0].Message - } - $DecodedFile = Get-DecodeGitHubFile $EncodedFile.content - if ($VM -gt 0) { - Get-ManifestFile -vm $VM -PR $PR -clip $DecodedFile - } else { - $DecodedFile -join "`n" - } - } -} - -#Inject dependencies -Function Add-ToValidationFile { - param( - [Parameter(mandatory=$True)][int]$vm, - [ValidateSet("Microsoft.VCRedist.2015+.x64","Microsoft.DotNet.DesktopRuntime.8","Oracle.JavaRuntimeEnvironment")]$Common = "Microsoft.VCRedist.2015+.x64", - $Dependency = $Common, - $VMFolder = "$MainFolder\vm\$vm", - $manifestFolder = "$VMFolder\manifest", - $FilePath = "$manifestFolder\Package.installer.yaml", - $fileContents = (Get-Content $FilePath), - $Selector = "Installers:", - $offset = 1, - $lineNo = (($fileContents | Select-String $Selector -List).LineNumber -$offset), - $fileInsert = "Dependencies:`n PackageDependencies:`n - PackageIdentifier: $Dependency", - $fileOutput = ($fileContents[0..($lineNo -1)]+$fileInsert+$fileContents[$lineNo..($fileContents.length)]) - ) - Write-Host "Writing $($fileContents.length) lines to $FilePath" - Out-File -FilePath $FilePath -InputObject $fileOutput - Get-TrackerVMSetStatus "Revert" $VM; -} - -Function Add-InstallerSwitch { - param( - [Parameter(mandatory=$True)][int]$vm, - $Data = '/qn', - $Selector = "ManifestType:", - [ValidateSet("EXE","MSI","MSIX","Inno","Nullsoft","InstallShield")] - [string]$InstallerType - - ) - switch ($InstallerType) { - "MSIX"{ - $Data = '/quiet' - } - "Inno"{ - $Data = '/SILENT' - } - "Nullsoft"{ - $Data = '/S' - } - "InstallShield"{ - $Data = '/s' #or -s - } - } - $fileInsert = " InstallerSwitches:`n Silent: $Data" - Add-ToValidationFile $VM -Selector $Selector -fileInsert $fileInsert #-Force -} - -Function Get-UpdateHashInPR { - param( - $PR, - $ManifestHash, - $PackageHash, - $LineNumbers = ((Get-CommitFile -PR $PR | Select-String $ManifestHash).LineNumber), - $ReplaceString = (" InstallerSha256: $($PackageHash.toUpper())"), - $comment = "``````suggestion`n$ReplaceString`n```````n`n(Automated response - build $build.)" - ) - foreach ($Line in $LineNumbers) { - Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Action $Labels.NAF - } -} - -Function Get-UpdateHashInPR2 { - param( - $PR, - $Clip = (Get-Clipboard), - $SearchTerm = "Expected hash", - $ManifestHash = (Get-YamlValue $SearchTerm -Clip $Clip), - $LineNumbers = ((Get-CommitFile -PR $PR | Select-String $ManifestHash).LineNumber), - $ReplaceTerm = "Actual hash", - $ReplaceString = (" InstallerSha256: "+(Get-YamlValue $ReplaceTerm -Clip $Clip).toUpper()), - $comment = "``````suggestion`n$ReplaceString`n```````n`n(Automated response - build $build.)" - ) - foreach ($Line in $LineNumbers) { - Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Action $Labels.NAF - } -} - -Function Get-UpdateArchInPR { - param( - $PR, - $SearchTerm = " Architecture: x86", - $LineNumbers = ((Get-CommitFile -PR $PR | Select-String $SearchTerm).LineNumber), - [string]$ReplaceTerm = (($SearchTerm -split ": ")[1]), - [ValidateSet("x86","x64","arm","arm32","arm64","neutral")] - [string]$ReplaceArch = (("x86","x64") | where {$_ -notmatch $ReplaceTerm}), - $ReplaceString = ($SearchTerm -replace $ReplaceTerm,$ReplaceArch), - $comment = "``````suggestion`n$ReplaceString`n```````n`n(Automated response - build $build.)" - ) - foreach ($Line in $LineNumbers) { - Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Action $Labels.NAF - } -} - -Function Add-DependencyToPR { - param( - $PR, - $Dependency = "Microsoft.VCRedist.2015+.x64", - $SearchString = "Installers:", - $LineNumbers = ((Get-CommitFile -PR $PR | Select-String $SearchString).LineNumber), - $ReplaceString = "Dependencies:`n PackageDependencies:`n - PackageIdentifier: $Dependency`nInstallers:", - $comment = "``````suggestion`n$ReplaceString`n```````n`n(Automated response - build $build.)" - ) - $out = "" - foreach ($Line in $LineNumbers) { - $out += Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Action $Labels.NAF - } -} - -#PR Queue -Function Add-PRToQueue { - param( - $PR, - $PRExclude = ((gc $PRExcludeFile) -split "`n") - ) - if ($PRExclude -notcontains $Pr) { - $PR | Out-File $PRQueueFile -Append - - } -} - -Function Get-PopPRQueue { - [array]$PRQueue = gc $PRQueueFile - $PRQueue = $PRQueue -split "`n" - $PRQueue = (diff $PRQueue (Get-Status).pr | where {$_.SideIndicator -eq "<="}).inputobject - $out = $PRQueue[0] - $PRQueue = $PRQueue[1..$PRQueue.length] | Select-Object -unique - $PRQueue | Out-File $PRQueueFile - return $out -} - -Function Get-PRQueueCount { - $count = ((Get-Content $PRQueueFile) -split "`n").count - return $count -} - -#Reporting -Function Add-PRToRecord { - param( - $PR, - [ValidateSet("Approved","Blocking","Feedback","Retry","Manual","Closed","Project","Squash","Waiver")] - $Action, - $Title - ) - $Title = ($Title -split "#")[0] - "$PR,$Action,$Title" | Out-File $LogFile -Append -} - -Function Get-PRPopulateRecord { - param( - $Logs = (Get-Content $LogFile | ConvertFrom-Csv -Header ("PR","Action","Title")) - ) - Foreach ($Log in $Logs) { - #Populate the Title column where blank, so all lines with the same PR number also have the same title, preventing the API calls for the lookup. - $Log.title = ($Logs | Where-Object {$_.title} | Where-Object {$_.PR -match $Log.PR}).title | Sort-Object -Unique - } - $Logs | ConvertTo-Csv|Out-File $LogFile -} - -Function Get-PRFromRecord { - param( - [ValidateSet("Approved","Blocking","Feedback","Retry","Manual","Closed","Project","Squash","Waiver")] - $Action - ) - Get-PRPopulateRecord - (Get-Content $LogFile) | ConvertFrom-Csv -Header ("PR","Action","Title") | Where-Object {$_.Action -match $Action} -} - -Function Get-PRReportFromRecord { - param( - [ValidateSet("Approved","Blocking","Feedback","Retry","Manual","Closed","Project","Squash","Waiver")] - $Action, - $out = "", - $line = 0, - $Record = ((Get-PRFromRecord $Action) | Sort-Object PR -Unique), - [switch]$NoClip - ) - - $LogContents = (Get-Content $LogFile | ConvertFrom-Csv | Where-Object {$_.Action -notmatch $Action} | ConvertTo-Csv) - Out-File -FilePath $LogFile -InputObject $LogContents - #Get everything that doesn't match the action and put it back in the CSV. - - Foreach ($PR in $Record) { - $line++ - $Title = $PR.Title - $PR = $PR.PR - if (!($Title)) { - $Title = (Invoke-GitHubPRRequest -PR $PR -Type "" -Output content -JSON).title - } - Get-TrackerProgress -PR $PR ("$($MyInvocation.MyCommand) $Action") $line $Record.length - $out += "$Title #$PR`n"; - } - if ($NoClip) { - return $out - } else { - $out | clip - } - Write-Progress -Completed -} - -Function Get-PRFullReport { - param( - $Month = (Get-Culture).DateTimeFormat.GetMonthName((Get-Date).Month), - $Today = (get-date -f MMddyy), - $ReportName = "$logsFolder\$Month\$Today-Report.txt", - $HeaderList = ($Actions.Feedback,"Blocking","Waiver","Retry","Manual","Closed","Project","Squash","Approved") - ) - Write-Host "Generating report for $Today" - $null | Out-File $ReportName - $HeaderList | %{ - $_ | Out-File $ReportName -Append; - Get-PRReportFromRecord $_ -NoClip | Out-File $ReportName -Append - } - Write-Host "Report for $Today complete" -} - -#Clipboard -Function Get-PRNumber { - param( - $out = (Get-Clipboard), - [switch]$NoClip, - [switch]$Hash - ) - if ($Hash) { - $out = ($out -split " " | Select-String $hashPRRegex) -replace '#','' | Sort-Object -unique - $NoClip = $True - } else { - $out = $out | Select-String $hashPRRegexEnd | Sort-Object -descending - } - - if ($NoClip) { - $out - } else { - $out | clip - } -} - -Function Get-SortedClipboard { - param( - $out = ((Get-Clipboard) -split "`n") - ) - $out | Sort-Object -Unique | clip -} - -Function Open-AllURL { - param( - $out = (Get-Clipboard) - ) - $out = $out -split " " - $out = $out | Select-String "`^http" - $out = $out | Select-String -NotMatch "[.]exe$" - $out = $out | Select-String -NotMatch "[.]msi$" - $out = $out | Select-String -NotMatch "[.]zip$" - $out = $out | Sort-Object -unique - $out = $out | ForEach-Object {start-process $_} -} - -Function Open-PRInBrowser { - param( - $PR, - [Switch]$Files - ) - $URL = "$GitHubBaseUrl/pull/$PR#issue-comment-box" - if ($Files) { - $URL = "$GitHubBaseUrl/pull/$PR/files" - } - Start-Process $URL - Start-Sleep $GitHubRateLimitDelay -}#end Function - -Function Get-YamlValue { - param( - [string]$StringName, - $clip = (Get-Clipboard) - ) - $clip = ($clip -split "`n" | where {$_ -match $StringName}) - $clip = ($clip -split ": ")[1] - $clip = ($clip -split "#")[0] - $clip = ((($clip.ToCharArray()) | where {$_ -match "\S"}) -join "") - Return $clip -} - -#Etc -Function Test-Admin { - if (![bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match "S-1-5-32-544")){Write-Host "Try elevating your session.";break} -} - -Function Get-LazySearchWinGet { -#I am out of names and scraping the bottom of the barrel. - param( - [String]$SearchTerm, - [String]$Name, - [String]$ID, - $Version, - $Results = (Find-WinGetPackage $SearchTerm) - ) - foreach ($Item in ("Name","ID","Version")) { - If ($Item) { - $itemContents = (Invoke-Command -ScriptBlock ([Scriptblock]::Create("$"+$item))) - $Results = $Results | where {$_.$Item -match $itemContents} - } - } - Return $Results -} - -Function Get-TrackerProgress { - param( - $PR, - $Activity, - $Incrementor, - $Length, - $Percent = [math]::round($Incrementor / $length*100,2) - ) - Write-Progress -Activity $Activity -Status "$PR - $Incrementor / $Length = $Percent %" -PercentComplete $Percent -} - -Function Get-ArraySum { - param( - $in = 0, - $out = 0 - ) - $in |ForEach-Object{$out += $_*1} - [math]::Round($out,2) -} - -Function Get-GitHubRateLimit { - param( - $Url = "https://api.github.com/rate_limit" - ) - (Get-Date) - #Time, as a number, constantly increases. - $Response = Invoke-WebRequest -Uri $Url -ProgressAction SilentlyContinue - $Content = $Response.content | ConvertFrom-Json; - #Write-Output "Headers:" - #$Response.Headers - $Content.rate | select @{n="source";e={"Unlogged"}}, limit, used, remaining, @{n="reset";e={([System.DateTimeOffset]::FromUnixTimeSeconds($_.reset)).DateTime.AddHours(-8)}} - $Response = invoke-GitHubRequest -Uri $Url -JSON; - $Response.rate | select @{n="source";e={"Logged"}}, limit, used, remaining, @{n="reset";e={([System.DateTimeOffset]::FromUnixTimeSeconds($_.reset)).DateTime.AddHours(-8)}} -} - -Function Get-ValidationData { - param( - $Property = "", - $Match = "", - $data = (Get-Content $DataFileName | ConvertFrom-Csv | Where-Object {$_.$Property} | Where-Object {$_.$Property -match $Match}), - [switch]$Exact - ) - if ($Exact -eq $True) { - $data = $data | Where-Object {$_.$Property -eq $Match} - } - Return $data -} - -Function Add-ValidationData { - param( - [Parameter(mandatory=$True)][string]$PackageIdentifier, - [string]$GitHubUserName, - [ValidateSet("should","must")][string]$authStrictness, - [ValidateSet("auto","manual")][string]$authUpdateType, - [string]$AutoWaiverLabel, - [string]$versionParamOverrideUserName, - [int]$versionParamOverridePR, - [string]$code200OverrideUserName, - [int]$code200OverridePR, - [int]$AgreementOverridePR, - [string]$AgreementURL, - [string]$reviewText, - $data = (Get-Content $DataFileName | ConvertFrom-Csv) - ) - $out = ($data | where {$_.PackageIdentifier -eq $PackageIdentifier} | Select-Object "PackageIdentifier","GitHubUserName","authStrictness","authUpdateType","AutoWaiverLabel","versionParamOverrideUserName","versionParamOverridePR","code200OverrideUserName","code200OverridePR","AgreementOverridePR","AgreementURL","reviewText") - if ($null -eq $out) { - $out = ( "" | Select-Object "PackageIdentifier","GitHubUserName","authStrictness","authUpdateType","AutoWaiverLabel","versionParamOverrideUserName","versionParamOverridePR","code200OverrideUserName","code200OverridePR","AgreementOverridePR","AgreementURL","reviewText") - $out.PackageIdentifier = $PackageIdentifier - } - - $out.GitHubUserName = $GitHubUserName - $out.authStrictness = $authStrictness - $out.authUpdateType = $authUpdateType - $out.AutoWaiverLabel = $AutoWaiverLabel - $out.versionParamOverrideUserName = $versionParamOverrideUserName - $out.versionParamOverridePR = $versionParamOverridePR - $out.code200OverrideUserName = $code200OverrideUserName - $out.code200OverridePR = $code200OverridePR - $out.AgreementURL = $AgreementURL - $out.AgreementOverridePR = $AgreementOverridePR - $out.reviewText = $reviewText - $data += $out - $data | sort PackageIdentifier | ConvertTo-Csv | Out-File $DataFileName -} - -#PR Watcher Utility functions -Function Get-Sandbox { -#Terminates any current sandbox and makes a new one. - param( - [string]$PRNumber = (Get-Clipboard) - ) - $FirstLetter = $PRNumber[0] - if ($FirstLetter -eq "#") { - [string]$PRNumber = $PRNumber[1..$PRNumber.length] -join "" - } - Get-Process *sandbox* | ForEach-Object {Stop-Process $_} - Get-Process *wingetautomator* | ForEach-Object {Stop-Process $_} - $version = "1.6.1573-preview" - $process ="wingetautomator://install?pull_request_number=$PRNumber&winget_cli_version=v$version&watch=yes" - Start-Process -PR $PRocess -} - -Function Get-PadRight { - param( - [string]$PackageIdentifier, - [int]$PadChars = 45 - ) - $out = $PackageIdentifier - if ($PackageIdentifier.Length -lt $PadChars) { - $out = $PackageIdentifier +(" "*($PadChars - $PackageIdentifier.Length -1)) - } elseif ($PackageIdentifier.Length -lt $PadChars) { - $out = $PackageIdentifier[0..($PadChars -1)] - } - - if ($out.GetType().name -eq "Array") { - - } - $out = $out -join "" - - $out -} - -$WordFilterList = "accept_gdpr ", "accept-licenses", "accept-license","eula","downloadarchive.documentfoundation.org","paypal" - -$CountrySet = "Default","Warm","Cool","Random","Afghanistan","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antigua And Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia And Herzegovina","Botswana","Bouvet Island","Brazil","Brunei Darussalam","Bulgaria","Burkina Faso","Burundi","Cabo Verde","Cambodia","Cameroon","Canada","Central African Republic","Chad","Chile","China","Colombia","Comoros","Cook Islands","Costa Rica","Croatia","Cuba","Curacao","Cyprus","Czechia","Cöte D'Ivoire","Democratic Republic Of The Congo","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Eswatini","Ethiopia","Fiji","Finland","France","French Polynesia","Gabon","Gambia","Georgia","Germany","Ghana","Greece","Grenada","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Holy See (Vatican City State)","Honduras","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Kiribati","Kuwait","Kyrgyzstan","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Mauritania","Mauritius","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","New Zealand","Nicaragua","Niger","Nigeria","Niue","Norfolk Island","North Korea","North Macedonia","Norway","Oman","Pakistan","Palau","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Pitcairn Islands","Poland","Portugal","Qatar","Republic Of The Congo","Romania","Russian Federation","Rwanda","Saint Kitts And Nevis","Saint Lucia","Saint Vincent And The Grenadines","Samoa","San Marino","Sao Tome And Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Korea","South Sudan","Spain","Sri Lanka","Sudan","Suriname","Sweden","Switzerland","Syrian Arab Republic","Tajikistan","Tanzania"," United Republic Of","Thailand","Togo","Tonga","Trinidad And Tobago","Tunisia","Turkey","Turkmenistan","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States","Uruguay","Uzbekistan","Vanuatu","Venezuela","Vietnam","Yemen","Zambia","Zimbabwe","Ã…land Islands" - -#Misc Data -$StandardPRComments = ("Validation Pipeline Badge",#Pipeline status -"wingetbot run",#Run pipelines -"azp run",#Run pipelines -"AzurePipelines run",#Run pipelines -"Azure Pipelines successfully started running 1 pipeline",#Run confirmation -"The check-in policies require a moderator to approve PRs from the community",#Validation complete -"microsoft-github-policy-service agree",#CLA acceptance -"wingetbot waivers Add",#Any waivers -"The pull request encountered an internal error and has been assigned to a developer to investigate",#IEDS or other error -"Manifest Schema Version: 1.4.0 less than 1.5.0 for ID:",#Manifest depreciation for 1.4.0 -"This account is bot account and belongs to CoolPlayLin",#CoolPlayLin's automation -"This account is automated by Github Actions and the source code was created by CoolPlayLin",#Exorcism0666's automation -"Poke 👉", #gama-bot's automation -"Response status code does not indicate success",#My automation - removal PR where URL failed status check. -"Automatic Validation ended with",#My automation - Validation output might be immaterial if unactioned. -"Manual Validation ended with",#My automation - Validation output might be immaterial if unactioned. -"No errors to post",#My automation - AutoValLog with no logs. -"The package didn't pass a Defender or similar security scan",#My automation - DefenderFail. -"Installer failed security check",#My automation - AutoValLog DefenderFail. -"Sequence contains no elements",#New Sequence error. -"Missing Properties value based on version",#New property detection. -"Azure Pipelines could not run because the pipeline triggers exclude this branch/path"#Pipeline error. -) - -#VM Window Management -Function Get-TrackerVMWindowLoc { - param( - $VM, - $Rectangle = (New-Object RECT), - $VMProcesses = (Get-Process vmconnect), - $MWHandle = ($VMProcesses | where {$_.MainWindowTitle -match "vm$VM"}).MainWindowHandle - ) - [window]::GetWindowRect($MWHandle,[ref]$Rectangle) - Return $Rectangle -} - -Function Get-TrackerVMWindowSet { - param( - $VM, - $Left, - $Top, - $Right, - $Bottom, - $VMProcesses = (Get-Process vmconnect), - $MWHandle = ($VMProcesses | where {$_.MainWindowTitle -match "vm$VM"}).MainWindowHandle - ) - $null = [window]::MoveWindow($MWHandle,$Left,$Top,$Right,$Bottom,$True) -} - -Function Get-TrackerVMWindowArrange { - param( - $VMs = (Get-Status |where {$_.status -ne "Ready"}|where {$_.status -ne "ImagePark"}).vm - ) - If ($VMs) { - Get-TrackerVMWindowSet $VMs[0] 900 0 1029 860 - $Base = Get-TrackerVMWindowLoc $VMs[0] - - For ($n = 1;$n -lt $VMs.count;$n++) { - $VM = $VMs[$n] - - $Left = ($Base.left - (100 * $n)) - $Top = ($Base.top + (66 * $n)) - Get-TrackerVMWindowSet $VM $Left $Top 1029 860 - } - } -} - - -Add-Type @" -using System; -using System.Runtime.InteropServices; - -public class Window { - [DllImport("user32.dll")] - [return: MarshalAs(UnmanagedType.Bool)] - public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect); - [DllImport("user32.dll")] - public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); - -} -public struct RECT { - public int Left; // x position of upper-left corner - public int Top; // y position of upper-left corner - public int Right; // x position of lower-right corner - public int Bottom; // y position of lower-right corner -} - -"@ - - - -#Index of each column name is where prev column ends and this one starts. \ No newline at end of file + [string]$Preset + ) + $line = 0; + $firstPR..$lastPR | %{ + if ($Preset -eq $Enum.PRStates.Closed) { + Get-GitHubPreset -Preset $Enum.GitHubPresets.($Preset) -PR $_ -UserInput $Body + } else { + Reply-ToPR -PR $_ -Body $Body; + Get-GitHubPreset -Preset $Enum.GitHubPresets.($Preset) -PR $_ + } + Get-TrackerProgress -Activity $MyInvocation.MyCommand.name -ItemName $_ -ItemNumber $line -TotalItems ($lastPR - $firstPR); + $line++ + } +} + +Function Get-AllPRsOnClipboard { + Param( + $clip = (Get-CleanClipboard), + $br = $Enum.Char.LineBreak + ) + [int[]]$out = @() + ($clip -replace $Enum.Char.Hash,($br + $Enum.Char.Hash) -split $br -split $Enum.Char.Space | select-string $Enum.Char.Hash) -replace $Enum.Char.Hash,$null | %{$out += $_} + return $out +} + +Function Get-AddPRLabel { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [string]$LabelName + ) + Process { + $Response = Invoke-GitHubPRRequest -PR $PR -Method $Enum.PRRequestMethods.Post -Type labels -Data $LabelName -Output Content + Write-Host $Response.name + } +} + +Function Get-RemovePRLabel { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [string]$LabelName + ) + Process { + $Uri = "$GitHubApiBaseUrl/issues/$PR/labels/$LabelName" + $Response = Invoke-GitHubRequest -Uri $Uri -Method $Enum.PRRequestMethods.Delete + Write-Host $Response.StatusDescription + } +} + +function Get-CompletePR { + Param( + [Parameter(ValueFromPipeline)][int]$PR + ) + $PRLabels = (invoke-GitHubPRRequest -PR $PR -Type labels -Method $Enum.PRRequestMethods.Get -Output Content).name | + where {$_ -notmatch $Enum.PRLabels.APP} | + where {$_ -notmatch $Enum.PRLabels.MMC} | + where {$_ -notmatch $Enum.PRLabels.MA} | + where {$_ -notmatch $Enum.PRLabels.NM} | + where {$_ -notmatch $Enum.PRLabels.NP} | + where {$_ -notmatch $Enum.PRLabels.PD} | + where {$_ -notmatch $Enum.PRLabels.RET} | + where {$_ -notmatch $Enum.PRLabels.VAD} | + where {$_ -notmatch $Enum.PRLabels.VC} + + foreach ($label in $PRLabels) { + Get-RemovePRLabel -PR $PR -Label $label + } + if (($PRLabels -join $Enum.Char.Space) -notmatch $Enum.PRLabels.VDE) { + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.VC + } +} + +Function Get-StringOrArrayLast { + Param( + $StringOrArray, + $ArrayIndex = $Enum.Index.Last + ) + if ($null -ne $StringOrArray) { + if ($StringOrArray.GetType().name -eq $Enum.PSDataTypes.String) { + Return $StringOrArray + } else { + Return $StringOrArray[$ArrayIndex] + } + } else { + Write-Host "$($MyInvocation.MyCommand.name): StringOrArray $StringOrArray not found (length $($StringOrArray.Length)" + } +} + +Function Get-MergePR { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $ShaNumber = (-1) + ) + Process { + $sha = (Invoke-Commits -PR $PR).sha + $sha = Get-StringOrArrayLast -StringOrArray $Sha -ArrayIndex $ShaNumber + + $out = $Enum.Char.Blank + $Data = Invoke-GitHubrequest -Uri "https://api.github.com/repos/microsoft/winget-pkgs/pulls/$pr/merge" -Method $Enum.PRRequestMethods.Put -Body "{`"merge_method`":`"squash`",`"sha`":`"$sha`"}" + if ($Data.Content) { + $out = $Data.Content + } else { + $out = $Data + #($Data[1..$Data.Length] | ConvertFrom-Json).message + } + + $Comments = Get-PRComments -PR $PR + if ($out -match $Enum.Words.Error) { + if ($Comments[$Enum.Index.Last].UserName -ne $Enum.GitHubUserNames.GitHubUserName) { + $LabelNames = ((Invoke-GitHubPRRequest -PR $PR -Type $Enum.prRequestTypes.Labels -Output $Enum.PRRequestOutput.Content -JSON).name) + if ($LabelNames[$Enum.Index.Last].UserName -ne $Enum.GitHubUserNames.GitHubUserName) { + if (($LabelNames -join $Enum.Char.Space) -notmatch $Enum.PRLabels.BI) { + Reply-ToPR -PR $PR -UserInput $out -CannedMessage MergeFail -Automated + } + } + } + } + + if ($out -match $Enum.Strings.PullRequestHasMergeConflicts) { + Reply-ToPR -PR $PR -body $Enum.PRCloseReasons.MergeConflicts + } + Write-Host "$($MyInvocation.MyCommand.name): $PR - $out" + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Squash + #invoke-GitHubprRequest -PR $PR -Method $Enum.PRRequestMethods.Put -Type merge -Data "{`"merge_method`":`"squash`",`"sha`":`"$sha`"}" + } +} + +Function Get-RetryPR { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [string]$Command = $Enum.Strings.WingetbotRun + ) + Process { + $Response = Invoke-GitHubPRRequest -PR $PR -Type $Enum.PRRequestTypes.Comments -Output $Enum.PRRequestOutput.StatusDescription -Method $Enum.PRRequestMethods.Post -Data $Command + Write-Host $Response + } +} + +function Get-PushMePRYou { + Param( + $Author = $Enum.GitHubUserNames.Trenly, + $MatchString = $Enum.Strings.StandardizeFormatting, + [int]$Page = $Enum.Num.One + ) + foreach ($Preset in ($Enum.SearchPresets.Approval,$Enum.SearchPresets.ToWork)) { + Write-Host "$(Get-Date -Format T) $($MyInvocation.MyCommand.name): $PR - $($Preset)"; + $PRsForAuthor = @(); + $PRsForAuthor = Get-SearchGitHub -Author $Author -Preset $Preset -Page $Page -NoLabels; + $PRsForAuthor = $PRsForAuthor | Where-Object {$_.user.login -eq $Author -and $_.title -match $MatchString -and $_.labels.name -notcontains $Enum.PRLabels.MA}; + if ($PRsForAuthor) { + $PRsForAuthor.number | % { + Write-Host "$_ - " -nonewline; + Approve-PR $_ + }; + } + }; + + $Preset = $Enum.VMStatus.Complete + Write-Host "$($Preset): $(get-date)"; +} + +Function Add-GitHubReviewComment { + Param( + $PR, + [string]$Comment = $Enum.Char.Blank, + $Commit = (Invoke-GitHubPRRequest -PR $PR -Type commits -Output $Enum.PRRequestOutput.Content -JSON), + $commitID = $commit.sha, + $Filename = $commit.files.filename, + $Side = $Enum.DiffData.Right, + $StartLine, + $Line + ) + $Filename = Get-StringOrArrayLast $Filename + + $Response = @{} + $Response.body = $Comment + $Response.commit_id = $commitID + $Response.path = $Filename + if ($StartLine) { + $Response.start_line = $StartLine + } + $Response.start_side = $Side + $Response.line = $Line + $Response.side = $Side + [string]$Body = $Response | ConvertTo-Json + + $uri = "$GitHubApiBaseUrl/pulls/$pr/comments" + + $out = Invoke-GitHubRequest -Method $Enum.PRRequestMethods.Post -Uri $uri -Body $Body + $out.$Enum.PRRequestOutput.StatusDescription +} + +Function Get-BuildFromPR { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $content = (Invoke-GitHubPRRequest -PR $PR -Method $Enum.PRRequestMethods.Get -Type $Enum.PRRequestTypes.Comments -Output Content), + # [array]$href = ($content.body | where {$_ -match $Enum.Strings.ValidationPipelineRun}) + [array]$href = ($content.body | where {$_ -match $Enum.Strings.BuildLinkComment}) + ) + process { + $href = ($href -split $Enum.Char.LineBreak)[$Enum.Index.Last] + # [int]$LineNo = ($content.body | Select-String $Enum.Strings.BuildLinkComment).LineNumber[$Enum.Index.Last] + # $href = ($href -split $Enum.Char.LineBreak)[$LineNo - 1] + $PRbuild = (($href -split $Enum.Char.Equal -replace $Enum.Char.EscapedOpenParens)[$Enum.Index.Second]) + return $PRbuild + } +} + +Function Get-LineFromBuildResult { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $PRbuild = (Get-BuildFromPR -PR $PR), + $LogNumber = (36), + $SearchString = $Enum.MagicStrings[7], + $content = (Invoke-GitHubRequest "$ADOMSBaseUrl/$ADOMSGUID/_apis/build/builds/$PRbuild/logs/$LogNumber" -ProgressAction SilentlyContinue).content, + $Log = ($content -join $Enum.Char.Blank -split $Enum.Char.LineBreak), + $MatchOffset = (-1), + $MatchLine = (($Log | Select-String -SimpleMatch $SearchString).LineNumber | where {$_ -gt 0}), + $Length = 0, + $output = @() + ) + process { + foreach ($Match in $MatchLine) { + $output += ($Log[($Match + $MatchOffset)..($Match + $Length + $MatchOffset)]) + } + if (($output -join $Enum.Char.Space) -match $Enum.Strings.ManifestTypeSingleton) { + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.MSD + } + return $output + } +} + +Function Get-PRApproval { + Param( + $Clip = (Get-CleanClipboard), + [Parameter(ValueFromPipeline)][int]$PR = (($Clip -split $Enum.Char.Hash)[$Enum.Index.Second]), + $PackageIdentifier = ((($clip -split ": ")[$Enum.Index.Second] -split $Enum.Char.Space)[$Enum.Index.First]), + $auth = (Get-ValidationData -Property $Enum.ManifestKeys.PackageIdentifier -Match $PackageIdentifier -Exact).GitHubUserName, + $Approver = (($auth -split $Enum.Char.Slash| Where-Object {$_ -notmatch "\("}) -join ", @"), + [switch]$DemoMode + ) + Reply-ToPR -PR $PR -UserInput $Approver -CannedMessage Approve -Policy $Enum.PRLabels.NR +} + +Function Reply-ToPR { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [string]$CannedMessage, + $UserInput = ((Invoke-GitHubPRRequest -PR $PR -Type $Enum.Char.Blank -Output $Enum.PRRequestOutput.Content -JSON).user.login), + [string]$Body = (Get-CannedMessage $CannedMessage -UserInput $UserInput -NoClip), + [string]$Policy, + [Switch]$Silent, + [Switch]$Automated, + [Switch]$WhatIf + ) + process { + if ($PR -eq 1) { + Write-Host "Invalid PR number, quitting to squelch output: $Body" + } else { + if ($Policy) { + $Body += "`n" + } + if ($Body -match $Enum.Strings.AllCommentsMustBeResolved) { + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.CR + # Get-RemovePRLabel -PR $PR -LabelName $Enum.PRLabels.VC + # Open-PRInBrowser -PR $PR + } + $Comments = $Enum.Char.Blank + if ($Automated) { + $Comments = Get-PRComments -PR $PR + if ($WhatIf) {Write-Host "WhatIf: Automated: $Automated Comments: $($Comments.count)"} + if (!(($Comments[$Enum.Index.Last].user.login -eq $Enum.GitHubUserNames.GitHubUserName) -AND ($Automated))) { + if ($WhatIf) { + Write-Host "WhatIf: Invoke-GitHubPRRequest -PR $PR -Method $($Enum.PRRequestMethods.Post) -Type $($Enum.PRRequestTypes.Comments) -Data $Body -Output $($Enum.PRRequestOutput.StatusDescription)" + } else { + if ($Silent) { + Invoke-GitHubPRRequest -PR $PR -Method $Enum.PRRequestMethods.Post -Type $Enum.PRRequestTypes.Comments -Data $Body -Output Silent + } else { + Invoke-GitHubPRRequest -PR $PR -Method $Enum.PRRequestMethods.Post -Type $Enum.PRRequestTypes.Comments -Data $Body -Output $Enum.PRRequestOutput.StatusDescription + }# end if Silent + }# end if WhatIf + } + } else { + if ($WhatIf) { + Write-Host "WhatIf: Invoke-GitHubPRRequest -PR $PR -Method $($Enum.PRRequestMethods.Post) -Type $($Enum.PRRequestTypes.Comments) -Data $Body -Output $($Enum.PRRequestOutput.StatusDescription)" + } else { + if ($Silent) { + Invoke-GitHubPRRequest -PR $PR -Method $Enum.PRRequestMethods.Post -Type $Enum.PRRequestTypes.Comments -Data $Body -Output Silent + } else { + Invoke-GitHubPRRequest -PR $PR -Method $Enum.PRRequestMethods.Post -Type $Enum.PRRequestTypes.Comments -Data $Body -Output $Enum.PRRequestOutput.StatusDescription + }# end if Silent + }#end if WhatIf + }#end if Automated + }#end if PR + }#end process +}#end Function + +Function Get-PRComments { + Param( + [Parameter(ValueFromPipeline)][int]$PR + ) + $Comments = (Invoke-GitHubPRRequest -PR $PR -Type $Enum.PRRequestTypes.Comments -Output $Enum.PRRequestOutput.Content -LastPage) + foreach ($Comment in $Comments) { + $Comment.($Enum.Strings.CreatedAt) = [TimeZoneInfo]::ConvertTimeBySystemTimeZoneId($Comment.($Enum.Strings.CreatedAt), $Enum.Strings.Pst) + } + + Return $Comments +} + +Function Get-NonStdPRComments { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $Comments = (Get-PRComments -PR $PR).body + ) + process { + foreach ($StdComment in (Get-Values $Enum.StandardPRComments)) { + $Comments = $Comments | Where-Object {$_ -notmatch $StdComment} + } + return $Comments + } +} + +Function Get-PRStateFromComments { + Param( + $PR = (Get-CleanClipboard), + $Comments = (Get-PRComments -PR $PR | Select-Object $Enum.Strings.CreatedAt,@{n = $Enum.Strings.UserName; e = {$_.user.login -replace $Enum.Strings.BotPrefix}},body), + $PRStateData = ((Get-Content $PRStateDataFile) -replace $Enum.Strings.GitHubUserName,$Enum.GitHubUserNames.GitHubUserName | ConvertFrom-Csv), + [switch]$WhatIf + ) + if ($WhatIf) {Write-Host "$($MyInvocation.MyCommand.name): $PR - Comments $($Comments.Count)"} + $out = @() + foreach ($Comment in $Comments) { + $State = $Enum.Char.Blank + if ($WhatIf) {Write-Host "$($MyInvocation.MyCommand.name): $PR - $($Enum.Strings.CreatedAt) $($Comment.($Enum.Strings.CreatedAt))"} + + if (($Comment.body -match $Enum.Run.azp1) -OR + ($Comment.body -match $Enum.Run.azp2) -OR + ($Comment.body -match $Enum.Run.wingetbot)) { + if ($WhatIf) {Write-Host "PR $PR - State $($Enum.PRTrackerStates.PreValidation)"} + $State = $Enum.PRTrackerStates.PreValidation + } elseif (($Comment.UserName -eq $Enum.Robots.FabricBot) -AND ( + ($Comment.body -match $Enum.LabelActionComments.URLError) -OR + ($Comment.body -match $Enum.LabelActionComments.ValidationInstallationError) -OR + ($Comment.body -match $Enum.LabelActionComments.InternalError) -OR + ($Comment.body -match $Enum.LabelActionComments.ValidationUnattendedFailed) -OR + ($Comment.body -match $Enum.LabelActionComments.ManifestValidationError) + )) { + if ($WhatIf) { + Write-Host "PR $PR - State $($Enum.PRTrackerStates.LabelAction)" + } + $State = $Enum.PRTrackerStates.LabelAction + } else { + $StateKeys = (Get-Keys $Enum.PRTrackerStates) + foreach ($Key in $StateKeys) { + $KeyData = $PRStateData | where {$_.State -eq $Key} + if ($WhatIf) { + Write-Host "PR $PR - key $key - State $($States.Key) - botcomment $($KeyData.BotComment) - Comment $($Comment.body)" + } + if (($Comment.body -match $KeyData.BotComment) -AND ($Comment.UserName -eq $KeyData.User)) { + if ($WhatIf) { + Write-Host "PR $PR - match $($KeyData.BotComment)" + } + $State = $Enum.PRTrackerStates.($Key) + } + } + } + if ($WhatIf) { + Write-Host "PR $PR - State $State" + } + if ($State -ne $Enum.Char.Blank) { + if ($WhatIf) { + Write-Host "PR $PR - out $out" + } + $out += $Comment | Select-Object @{n = $Enum.Words.Event; e = {$State}},$Enum.Strings.CreatedAt + } + } + Return $out +} + +Function Get-VerifyMMC { + Param( + [Parameter(ValueFromPipeline)][int]$PR = (Get-PRNumber $clip -Hash) + ) + $Comments = (Get-PRComments -PR $PR | Select-Object $Enum.Strings.CreatedAt,@{n = $Enum.Strings.UserName; e = {$_.user.login -replace $Enum.Strings.BotPrefix}},body) + + [array]$MissingProperties = ($Comments.body | Where-Object {$_ -match $Enum.MMC.ManifestsHeader}) -split $Enum.Char.LineBreak | Where-Object { $_ -notmatch $Enum.MMC.ManifestsHeader -AND + $_ -notmatch $Enum.MMC.MissingProperties} #-AND + # $_ -notmatch "Icons" -AND + # $_ -notmatch "Platform" -AND + # $_ -notmatch "MinimumOSVersion" -AND + # $_ -notmatch "ReleaseNotes" -AND + # $_ -notmatch "ReleaseNotesUrl" -AND + # $_ -notmatch "ReleaseDate"} + + [array]$MMCExceptionList = (Get-Content $MMCExceptionListFile) -split $Enum.Char.LineBreak + foreach ($Exception in $MMCExceptionList) { + $MissingProperties = $MissingProperties | Where-Object { $_ -notmatch $Exception} + } + if (!$MissingProperties) { + Get-RemovePRLabel -PR $PR -LabelName $Enum.PRLabels.MMC + } +} + +Function Get-DuplicateCheck { + Param( + [Parameter(ValueFromPipeline)][int]$PR + ) + $mainPRLabels = ((Invoke-GitHubPRRequest -PR $PR -Type $Enum.prRequestTypes.Labels -Output $Enum.PRRequestOutput.Content -JSON).name) + [int]$mainPR = 0 + [int]$closePR = 0 + + if ($mainPRLabels -match $Enum.PRLabels.VC) { #If this PR is VC + #Get the PR number for the other duplicate. + $Comments = Get-PRComments -PR $PR + $otherPR = $Comments.body | Where-Object {$_ -match $Enum.Strings.FoundDuplicatePullRequest} + $otherPR = $otherPR -split $Enum.Char.LineBreak + [int]$otherPR = (($otherPR | where {$_ -match $Enum.Regex.hashPRRegex}) -split $Enum.Char.Hash)[$Enum.Index.Last] + $otherPRLabels = ((Invoke-GitHubPRRequest -PR $otherPR -Type $Enum.prRequestTypes.Labels -Output $Enum.PRRequestOutput.Content -JSON).name) + + #If this PR is VC, + #If other is VC, + #If other is MA, close this. + #If other is not MA, close the lower number as other. + #if this is CLA + #if other is CLA, do nothing. + #If other is not MA, close other. + #If other is not VC, close other. + + #If this is on Auth list but other is not + + + + if ($otherPRLabels -match $Enum.PRLabels.VC) { #If other PR is VC + if ($otherPRLabels -match $Enum.PRLabels.MA) { #If other is VCMA, close this. + $mainPR = $otherPR + $closePR = $PR + } else { #If other is not MA, close the lower number as other. + $mainPR = [math]::Max($PR,$otherPR) + $closePR = [math]::Min($PR,$otherPR) + }# end if Moderator-Approved + } else { #If other is not VC, close other. + $mainPR = $PR + $closePR = $otherPR + }# end if Validation-Completed + + if ($mainPRLabels -match $Enum.PRLabels.CLA) { #if both are VC and CLA, do nothing. + } else { + if ($otherPRLabels -match $Enum.PRLabels.CLA) {#if both are VC and this is CLA, close this. + } else { + }# end if mainPRLabels + }# end if mainPRLabels + + if ($closePR -gt 0) { + Get-GitHubPreset -Preset $Enum.GitHubPresets.Duplicate -PR $closePR -UserInput $mainPR + Get-RemovePRLabel -PR $mainPR -Label $Enum.PRLabels.PD + }# end if closePR + }# end if mainPRLabels +}# end function + +#ADO tools +Function Get-CheckData { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $PRData = (Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$pr" -JSON), + $headSha = $PRData.head.sha, + $checkdata = (Invoke-GitHubRequest "$GitHubApiBaseUrl/commits/$headSha/check-runs?per_page=100&filter=latest" -JSON) + ) + process { + Return $checkdata.check_runs #| Select-Object id, name, status, conclusion, started_at, completed_at | ft + } +} + +Function Get-ADOValidationStatus { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [switch]$Browser, + [switch]$WhatIf + ) + $PRbuild = (Get-BuildFromPR -PR $PR) + $LogNumber = (55) + $URL = "$ADOMSBaseUrl/$ADOMSGUID/_apis/build/builds/$PRbuild/logs/$LogNumber" + if ($Browser) { Start-Process $URL;return $null} + if ($WhatIf) { Write-Host "$($MyInvocation.MyCommand.name): $PR URL: $($URL)"} + $Content = (Invoke-GitHubRequest $URL -ProgressAction SilentlyContinue).content + if ($WhatIf) { Write-Host "$($MyInvocation.MyCommand.name): $PR Content Length: $($Content.Length)"} + $Log = ($Content -join $Enum.Char.Blank -split $Enum.Char.LineBreak) -replace $Enum.Char.EscapedStar,$Enum.Char.Blank -split $Enum.Char.LineBreak | where {$_.length -gt 1} + if ($WhatIf) { Write-Host "$($MyInvocation.MyCommand.name): $PR Log Length: $($Log.Length)"} + $LogLines = ($Log | Select-String $Enum.Words.Installation).LineNumber + if ($WhatIf) { Write-Host "$($MyInvocation.MyCommand.name): $PR LogLines: $($LogLines)"} + # $LogEntries = $Log -join $Enum.Char.LineBreak -replace "\*",$Enum.Char.Blank -split "Installation Validation Progress Report" -split "Installation Verification" + $LogEntries = $Log -join $Enum.Char.LineBreak -replace $Enum.Char.EscapedStar,$Enum.Char.Blank + if ($WhatIf) { Write-Host "$($MyInvocation.MyCommand.name): $PR LogEntries: $($LogEntries.Length)"} + + $out = @() + # foreach ($LogEntry in $LogEntries){ + for ($i = 0; $i -lt ($LogLines.Length - $Enum.Num.One); $i++) { + $LogEntry = ($LogEntries -split $Enum.Char.LineBreak)[$LogLines[$i]..($LogLines[$i + $Enum.Num.One] - $Enum.Num.Two)] + if ($WhatIf) { Write-Host "$($MyInvocation.MyCommand.name): $PR $i LogEntry: $($LogEntry.Length)"} + try{ + $Date = (Get-Date ($LogEntry -split $Enum.Char.LineBreak)[$Enum.Index.Last]) + $Date = [System.TimeZoneInfo]::ConvertTimeFromUtc($Date,(Get-TimeZone $Enum.Strings.Pst)) + } catch { + $Date = $Enum.Strings.NoData + } + if ($WhatIf) { Write-Host "$($MyInvocation.MyCommand.name): $PR $i Date: $Date"} + # $ThisLog = $Log[($LogLines[$i] + $Enum.Num.One)..($LogLines[$I + $Enum.Num.One] - 3)] #This cuts the stars off the top and bottom. + $Statii = (($LogEntry -split $Enum.Char.LineBreak | Select-String "Status") | Get-YamlValue -Key "Status" -JSON) -replace $Enum.char.DoubleQuote,$Enum.Char.Blank + if ($WhatIf) { Write-Host "$($MyInvocation.MyCommand.name): $PR $i Statii: $Statii"} + if ($Statii) { + $Mid = $Enum.Char.Blank | Select-Object @{n = "PR"; e = {$PR}}, @{n = "Date"; e = {$Date}}, @{n = "Statii"; e = {$Statii}} + if ($WhatIf) { Write-Host "$($MyInvocation.MyCommand.name): $PR $i Mid: $Mid"} + $Out += $Mid + } + } + Return $Out +} + +Function Get-ADOLastStatus { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [int]$WaitingMinutes + ) + Process { + $Statii = Get-ADOValidationStatus -PR $PR + $Last = $Statii[$Enum.Index.Last] + if ($Last.Statii -match $Enum.ADOValidationStatus.InProgress) { + $TotalMinutes = ((get-date) - (get-date $Last.Date)).totalminutes + if ($TotalMinutes -gt 180) {#3 hour timeout + Write-Host "ADOLastStatus InProgress Reply-ToPR $PR" + Reply-ToPR -PR $PR -body $Enum.Strings.WingetbotRun + } else { + Write-Host "ADOLastStatus $($PR): $TotalMinutes" + } + } else { + if ($Last.Statii -match $Enum.ADOValidationStatus.Waiting) { + if ($TotalMinutes -gt $WaitingMinutes) { + Write-Host "ADOLastStatus Waiting Reply-ToPR $PR" + Reply-ToPR -PR $PR -body $Enum.Strings.WingetbotRun + } + } else { + Write-Host "ADOLastStatus $($PR): $($Last.Statii -join ' ')" + } + } + }#end Process +} + +Function Get-PRStateFromAPI { + Param( + $PR = (Get-CleanClipboard), + $Data = (Get-CheckData -PR $PR) + ) + $in = (($Data | where {$_.name -match "Installation Validation"}).output.text -split $Enum.Char.LineBreak) + $out = @() + $in[$Enum.Num.Two..($in.Count -$Enum.Num.Two)] -replace "Status: " | %{ + $Date, $time, $event = $_.split(' '); + $event = $event -join $Enum.Char.Space + $mid = $Enum.Char.Blank | Select-Object @{n = $Enum.Words.Event; e = {$event}},@{n = $Enum.Strings.CreatedAt; e = {Get-Date "$Date $time"}} + $out += $mid + } + return $out +} + +Function Get-PRFailData { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $Data = (Get-CheckData -PR $PR) + ) + process { + $in = ($Data | where {$_.name -match "`\. "} | where {$_.conclusion -match $Enum.PRCheckStates.Failure}) + $out = $in.output.text -split $Enum.Char.LineBreak + return $out + } +} + +Function Get-ParseGHAppData { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $Data = (Get-PRFailData -PR $PR) + ) + Process { + $out = $Enum.Char.Blank + [array]$h3 = ($Data | Select-string '###').LineNumber + + $chunks = $Data.split($h3) + foreach ($Location in $h3) { + $Location = $Location -1 + $out = $out | Select-Object *, @{n = 'New Property'; e = {23}}, @{n = $Enum.Words.Something; e = {$false}} + } + $start = ($Data | select-string '```log').LineNumber + $end = ($Data | select-string '```').LineNumber + + $mid = $Data.output.text -split $Enum.Char.LineBreak + $out = $out | Select-Object *, @{n = 'New Property'; e = {23}}, @{n = $Enum.Words.Something; e = {$false}} + return $out + } +} + +Function Get-PRStateFromBoth { + Param( + $PR = (Get-CleanClipboard), + $PRStateFromAPI = (Get-PRStateFromAPI -PR $PR), + $PRStateFromComments = (Get-PRStateFromComments -PR $PR) + ) + $out = $PRStateFromAPI + $PRStateFromComments | sort $Enum.Strings.CreatedAt + Return $out +} + +#Autowaiver +Function Get-AddToAutowaiver { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $RemoveLabel, + $AutowaiverData = (Get-Content $AutowaiverFile | ConvertFrom-Csv), + $PRData = (Get-CommitFile -PR $PR), + $PackageIdentifier = (Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $PRData), + [switch]$AlsoRunAutowaiver + ) + Process { + if ($PackageIdentifier.Length -gt 1) { + Write-Host "$($MyInvocation.MyCommand.name): $PR - Adding $PackageIdentifier to $AutowaiverFile" + $NewLine = $Enum.Char.Blank | Select-Object $Enum.AutowaiverColumns.PackageIdentifier,$Enum.AutowaiverColumns.ManifestValue,$Enum.AutowaiverColumns.ManifestKey,$Enum.AutowaiverColumns.RemoveLabel + $NewLine.PackageIdentifier = $PackageIdentifier + $NewLine.RemoveLabel = $RemoveLabel + if (($RemoveLabel -eq $Enum.PRLabels.VD) -or ($RemoveLabel -eq $Enum.PRLabels.VUU)) { + $PRData = Get-CommitFile -PR $PR -MatchName $Enum.ManifestFileTypes.Installer + $NewLine.ManifestValue = ((Get-YamlValue -Key InstallerUrl -clip $PRData) -split $Enum.Char.Slash)[$Enum.Num.Two] + $NewLine.ManifestKey = $Enum.ManifestKeys.InstallerUrl + } else { + $NewLine.ManifestValue = $PackageIdentifier + $NewLine.ManifestKey = $Enum.ManifestKeys.PackageIdentifier + } + + $AutowaiverData += $NewLine + ($AutowaiverData | Sort-Object PackageIdentifier | ConvertTo-Csv) | Out-File $AutowaiverFile + if ($AlsoRunAutowaiver) { + Get-Autowaiver -PR $PR + } + }#end if PackageIdentifier.Length + } +}#end function + +Function Get-Autowaiver { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + # [int]$PR = (Get-PRNumber (Get-CleanClipboard) -Hash), + $PRData = (Get-CommitFile -PR $PR), + $PackageIdentifier = (Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $PRData), + $AutowaiverData = (Get-Content $AutowaiverFile | ConvertFrom-Csv), + $WaiverData = ($AutowaiverData | ?{$_.PackageIdentifier -eq $PackageIdentifier}), + $PRLabels = (invoke-GitHubPRRequest -PR $PR -Type labels -Method $Enum.PRRequestMethods.Get -Output Content).name, + [switch]$WhatIf + ) + Process { + Write-Host "$($MyInvocation.MyCommand.name) $PR" + $PRLabels = $PRLabels | where {$_ -notmatch "Waived"} + $JoinLabels = ($PRLabels -join $Enum.Char.Space) + + if ($WaiverData) { + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Waiver + if ($WhatIf) {Write-Host "JoinLabels $JoinLabels"} + } + foreach ($Waiver in $WaiverData) { + if ($WhatIf) {Write-Host "Waiver $Waiver"} + if ($JoinLabels -match $Waiver.RemoveLabel) { + if ($Waiver.RemoveLabel -eq $Enum.PRLabels.PD) { + Write-Host "PR: $PR - Completing PR for $PackageIdentifier" + if ($WhatIf) { + "Get-RemovePRLabel -PR $PR -LabelName $($Waiver.RemoveLabel)" + "Get-RemovePRLabel -PR $PR -LabelName $($Enum.PRLabels.NAF)" + "Get-RemovePRLabel -PR $PR -LabelName $($Enum.PRLabels.NA)" + "Get-AddPRLabel -PR $PR -LabelName $($Enum.PRLabels.VC)" + } else { + Get-RemovePRLabel -PR $PR -LabelName $Waiver.RemoveLabel + Get-RemovePRLabel -PR $pr -LabelName $Enum.PRLabels.NAF + Get-RemovePRLabel -PR $pr -LabelName $Enum.PRLabels.NA + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.VC + } + } else { + try { + if ($Waiver.ManifestKey -eq $Enum.ManifestKeys.InstallerUrl) { + $PRData = Get-CommitFile -PR $PR -MatchName $Enum.ManifestFileTypes.Installer + } + $PackageValue = (Get-YamlValue -Key $Waiver.ManifestKey -clip $PRData) + if ($WhatIf) {Write-Host "PackageValue $PackageValue"} + } catch {} + if ($PackageValue -match $Waiver.ManifestValue) { + Write-Host "PR: $PR - Adding $($Waiver.RemoveLabel) waiver for $PackageIdentifier" + if ($WhatIf) { + "Reply-ToPR -PR $PR -body '$($Enum.Strings.WingetbotWaiversAdd) $($Waiver.RemoveLabel)'" + } else { + Reply-ToPR -PR $PR -body "$($Enum.Strings.WingetbotWaiversAdd) $($Waiver.RemoveLabel)" + } + } else { + Write-Host "PR: $PR - PackageIdentifier $PackageIdentifier - $PackageValue notmatch $($Waiver.ManifestValue)" + }; #end if PackageValue + }; #end if Waiver.RemoveLabel + } else { + if ($WhatIf) { + "$JoinLabels -notmatch $($Waiver.RemoveLabel)" + } + }; #end foreach Waiver + }; #if WaiverData + } #Process +}; #end Get-Autowaiver + +#Network tools +#GET = Read; POST = Append; PUT = Write; DELETE = delete +Function Invoke-GitHubRequest { + Param( + [Parameter(Mandatory)][string]$Uri, + [string]$Body, + [ValidateScript( { $_ -in (Get-Keys $Enum.PRRequestMethods)} )][string]$Method = $Enum.PRRequestMethods.Get, + $Headers = @{$Enum.GitHubRequestHeaders.AuthorizationKey = (Run-ScriptBlock $Enum.ScriptBlocks.BearerGitHubToken); $Enum.GitHubRequestHeaders.AcceptKey = $Enum.GitHubRequestHeaders.AcceptValue; $Enum.GitHubRequestHeaders.ApiKey = $Enum.GitHubRequestHeaders.ApiValue}, + [switch]$JSON, + $out = $Enum.Char.Blank + ) + if ($Body) { + try { + $out = (Invoke-WebRequest -Method $Method -Uri $Uri -Headers $Headers -Body $Body -ContentType application/json -ProgressAction SilentlyContinue) + } catch { + # Write-Output ("Error: $($error[$Enum.Index.First].ToString()) - Uri $Uri - Body: $Body") + $out = ("Error: $($error[$Enum.Index.First].ToString()) - Uri $Uri - Body: $Body") + if ($out -match $Enum.Strings.ApiRateLimitExceeded) { + Get-GitHubTimeout + } + + } + } else { + try { + $out = (Invoke-WebRequest -Method $Method -Uri $Uri -Headers $Headers -ProgressAction SilentlyContinue) + } catch { + $out = ("Error: $($error[$Enum.Index.First].ToString()) - Uri $Uri - Body: $Body") + if ($out -match $Enum.Strings.ApiRateLimitExceeded) { + Get-GitHubTimeout + } + } + } + + if ($out -match $Enum.Strings.ApiRateLimitExceeded) { + Get-GitHubTimeout + } + #GitHub requires the value be the .body property of the variable. This makes more sense with Curl, where this is the -data parameter. However with Invoke-WebRequest it's the -Body parameter, so we end up with the awkward situation of having a Body parameter that needs to be prepended with a body property. + #if (!($Silent)) { + if (($JSON)){# -OR ($Output -eq $Enum.PRRequestOutput.Content)) { + try {$out | ConvertFrom-Json} catch {$out} + } else { + $out + } + #} + Start-Sleep $GitHubRateLimitDelay; +} + +Function Check-PRInstallerStatusInnerWrapper { + Param( + $Url, + $Out = $Enum.Char.Blank + ) + try { + $Out = (Invoke-GitHubRequest $Url -Method $Enum.PRRequestMethods.Head -ErrorAction SilentlyContinue -ProgressAction SilentlyContinue).StatusCode + } catch {} + return $Out +} + +#Validation Starts Here +#Validation Starts Here +#Validation Starts Here +Function Get-TrackerVMValidate { + Param( + $clip = ((Get-CleanClipboard) -split $Enum.Char.LineBreak), + # $clipInput = ((Get-CleanClipboard) -split $Enum.Char.LineBreak), + # $clip = ($clipInput[$Enum.Index.First..(($clipInput | Select-String "Do not share my personal information").LineNumber -1)]), + [ValidateScript( { $_ -in $Enum.VMOS.Win11 } )][string]$OS = (Get-OSFromVersion -clip $clip), + [int]$vm = ((Get-NextFreeVM -OS $OS) -replace$Enum.Strings.Vm,$Enum.Char.Blank), + [switch]$NoFiles, + [ValidateScript( { $_ -in (Get-Keys $Enum.PRTrackerOperations) } )][string]$Operation = $Enum.PRTrackerOperations.Scan, + [switch]$InspectNew, + [switch]$notElevated, + $ManualDependency, + $PackageIdentifier = ((Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $clip) | Get-RemoveQuotes), + $PackageVersion = ((Get-YamlValue -Key $Enum.ManifestKeys.PackageVersion -clip $clip) | Get-RemoveQuotes), + [int]$PR = (Get-PRNumber ($clip -replace $Enum.Char.Hash," #") -Hash), + $RemoteFolder = "//$remoteIP/ManVal/vm/$vm", + $installerLine = "--manifest $RemoteFolder/manifest", + [ValidateScript( { $_ -in (Get-Values $Enum.Arch) } )][string]$Arch, + [ValidateScript( { $_ -in (Get-Keys $Enum.ManifestScope) } )][string]$Scope, + $InstallerType, + [string]$Locale, + [switch]$Force, + [switch]$Silent, + [switch]$PauseAfterInstall, + [switch]$NoStaleCheck, + $optionsLine = $Enum.Char.Blank + ) + $null = (Get-ManifestCovertReview $clip) + + Write-Host "Starting Manual Validation build $build on vm$VM for package $PackageIdentifier version $PackageVersion in PR $PR" + # Get-TrackerVMSetStatus $Enum.VMStatus.Prevalidation $VM -PackageIdentifier $PackageIdentifier -PR $PR -Silent + <#Sections: + Construct WinGet args string and populate script variables. + - If Configure - skip all of this and just add the Configure file as the WinGet arg. + Construct the VM script from the script variables and output to commands file. + - If Configure - Construct a similar script and perform the same output. + Construct the manifest from the files in the clipboard. + - If NoFiles, skip. + Perform new package inspection. + - If not InspectNew, skip. + Revert selected VM and launch its window. + #> + + if (($PackageIdentifier) -AND ($PackageIdentifier -ne $Enum.ManifestKeys.PackageIdentifier)) { + Test-Admin + # $clip = $clip -replace $Enum.Char.Hash," #" + + #Check if PR is open + $PRState = Invoke-GitHubPRRequest -PR $PR -Type $Enum.Char.Blank -Output $Enum.PRRequestOutput.Content + + $LabelList = (Invoke-GitHubPRRequest -PR $PR -Type labels -Output $Enum.PRRequestOutput.Content).name + $JoinLabels = ($LabelList -join $Enum.Char.Space) + if ($Force -OR + !(($JoinLabels -match $Enum.PRLabels.MA) -AND + ($JoinLabels -match $Enum.PRLabels.CR) -AND + ($JoinLabels -match $Enum.PRLabels.NP)) -OR + ($PRState.merged -ne $False) -OR + ($PRState.state -ne $Enum.PRStates.Open)) { + if ($vm -eq 0){ + Write-Host "No available $OS VMs"; + Get-PipelineVmGenerate -OS $OS; + #Break; + } + $PackageMode = $Enum.VmModes.Unknown + if ($JoinLabels -match $Enum.PRLabels.NP) { + $PackageMode = $Enum.VmModes.New + } elseif ($JoinLabels -match $Enum.PRLabels.NM) { + $PackageMode = $Enum.VmModes.Existing + } else { + Write-Host "No Package/Manifest label, checking source..." + if ($null -match (Get-ManifestVersion $PackageIdentifier)) { + $PackageMode = $Enum.VmModes.New + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.NP + Get-removePRLabel -PR $PR -LabelName $Enum.PRLabels.NM + } else { + $PackageMode = $Enum.VmModes.Existing + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.NM + Get-removePRLabel -PR $PR -LabelName $Enum.PRLabels.NP + } + } + Write-Host "PackageMode: $PackageMode" + + if ((($valMode -match $Enum.TrackerModes.NoNew) -AND ($PackageMode -eq $Enum.VmModes.New)) -OR + (($valMode -match $Enum.TrackerModes.OnlyNew) -AND ($PackageMode -eq $Enum.VmModes.Existing))) { + $PackageIdentifier = $Enum.Char.Blank + return $Enum.Char.Blank + } + + $PostInstallPause = $Enum.Char.Blank + if ($PauseAfterInstall) { + $PostInstallPause = "Read-Host 'Install complete, press ENTER to continue...'" + } + if ($Silent) { + Get-TrackerVMSetStatus -Status $Enum.VMStatus.Prevalidation $VM -PackageIdentifier $PackageIdentifier -PR $PR -Mode $PackageMode -Silent + } else { + Get-TrackerVMSetStatus -Status $Enum.VMStatus.Prevalidation $VM -PackageIdentifier $PackageIdentifier -PR $PR -Mode $PackageMode + } + if ((Get-VM (& $VMNameSB)).state -ne $Enum.PRTrackerStates.Running) {Start-VM (& $VMNameSB)} + + $logLine = "$OS " + $nonElevatedShell = $Enum.Char.Blank + $logExt = "log" + $VMFolder = "$MainFolder\vm\$vm" + $manifestFolder = "$VMFolder\manifest" + $CmdsFileName = "$VMFolder\cmds.ps1" + + if ($Operation -eq $Enum.PRTrackerOperations.Configure) { + if (!($Silent)) { + Write-Host "Running Manual Config build $build on vm$VM for ConfigureFile" + } + $wingetArgs = "configure -f $RemoteFolder/manifest/config.yaml --accept-configuration-agreements --disable-interactivity" + $Operation = $Enum.PRTrackerOperations.Configure + $InspectNew = $False + } else { + Add-PRToRecord -PR $PR -Action $Enum.PRActions.Manual -Title $PRtitle + if ($PackageIdentifier -eq $Enum.Char.Blank) { + Write-Host "Bad PackageIdentifier: $PackageIdentifier" + #Break; + $PackageIdentifier | clip + } + if (!($Silent)) { + Write-Host "Running Manual Validation build $build on vm$VM for package $PackageIdentifier version $PackageVersion" + } + + if ($PackageVersion) { + $logExt = $PackageVersion+"." + $logExt + $logLine += "version $PackageVersion " + } + if ($Locale) { + $logExt = $Locale+"." + $logExt + $optionsLine += " --locale $Locale " + $logLine += "locale $Locale " + } + if ($Scope) { + $logExt = $Scope+"." + $logExt + $optionsLine += " --scope $Scope " + $logLine += "scope $Scope " + } + if ($InstallerType) { + $logExt = $InstallerType+"." + $logExt + $optionsLine += " --installer-type $InstallerType " + $logLine += "InstallerType $InstallerType " + } + $Archs = ($clip | Select-String -notmatch "arm" | Select-String "Architecture: " )|ForEach-Object{($_ -split ": ")[$Enum.Index.Second]} + $archDetect = $Enum.Char.Blank + $archColor = $Enum.PSColors.Yellow + if ($Archs) { + if ($Archs[$Enum.Index.First].Length -ge $Enum.Num.Two) { + if ($Arch) { + $archDetect = "Selected" + } else { + $Arch = $Archs[$Enum.Index.First] + $archDetect = "Detected" + } + $archColor = $Enum.PSColors.Red + } else { + if ($Archs -eq "neutral") { + $archColor = $Enum.PSColors.Yellow + } else { + $Arch = $Archs + $archDetect = "Detected" + $archColor = $Enum.PSColors.Green + } + } + } + if ($Arch) { + $logExt = $Arch+"." + $logExt + if (!($Silent)) { + Write-Host "$archDetect Arch $Arch of available architectures: $Archs" -f $archColor + } + $logLine += "$Arch " + } + $MDLog = $Enum.Char.Blank + if ($ManualDependency) { + $MDLog = $ManualDependency + if (!($Silent)) { + Write-Host " = = = = Installing manual dependency $ManualDependency = = = = " + } + [string]$ManualDependency = "Out-Log 'Installing manual dependency $ManualDependency.';Start-Process 'winget' 'install " + $ManualDependency+" --accept-package-agreements --ignore-local-archive-malware-scan' -wait`n" + } + if ($notElevated -OR ($clip | Select-String "ElevationRequirement: elevationProhibited")) { + if (!($Silent)) { + Write-Host " = = = = Detecting de-elevation requirement = = = = " + } + $nonElevatedShell = "if ([bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match 'S-1-5-32-544')){& explorer.exe 'C:\Program Files\PowerShell\7\pwsh.exe';Stop-Process (Get-Process WindowsTerminal).id}" + #If elevated, run^^ and exit, else run cmds. + } + $packageName = ($PackageIdentifier -split "[.]")[$Enum.Index.Second] + $wingetArgs = "install $optionsLine $installerLine --accept-package-agreements --ignore-local-archive-malware-scan" + } + $cmdsOut = $Enum.Char.Blank + + switch ($Operation) { + $Enum.PRTrackerOperations.Configure { + $cmdsOut = "$nonElevatedShell + `$TimeStart = Get-Date; + `$ConfigurelLogFolder = `"$SharedFolder/logs/Configure/$(Get-Date -UFormat %B)/`$(Get-Date -Format dd)`" + Function Out-Log ([string]`$logData,[string]`$logColor = 'cyan') { + `$TimeStamp = (Get-Date -Format $($Enum.Char.T)) + ': '; + `$logEntry = `$TimeStamp + `$logData + Write-Host `$logEntry -f `$logColor; + md `$ConfigurelLogFolder -ErrorAction Ignore + `$logEntry | Out-File `"`$ConfigurelLogFolder/$PackageIdentifier.$logExt`" -Append -Encoding unicode + }; + Function Out-ErrorData ([array]`$errArray,[string]`$serviceName,`$errorName = 'errors') { + Out-Log `"Detected `$(`$errArray.Count) `$serviceName `$(`$errorName): `" + `$errArray | ForEach-Object {Out-Log `$_ 'red'} + }; + Get-TrackerVMSetStatus 'Installing' + Out-Log ' = = = = Starting Manual Validation pipeline build $build on VM $VM Configure file $logLine = = = = ' + + Out-Log 'Pre-testing log cleanup.' + Out-Log 'Clearing PowerShell errors.' + `$Error.Clear() + Out-Log 'Clearing Application Log.' + Clear-EventLog -LogName Application -ErrorAction Ignore + Out-Log 'Clearing WinGet Log folder.' + `$WinGetLogFolder = 'C:\Users\User\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir' + rm `$WinGetLogFolder\* + Out-Log 'Gathering WinGet info.' + `$info = winget --info + Out-ErrorData @(`$info[0],`$info[3],`$info[4],`$info[5]) 'WinGet' 'infos' + + Out-Log `"Main Package Configure with args: $wingetArgs`" + `$mainpackage = (Start-Process 'winget' '$wingetArgs' -wait -PassThru); + + Out-Log `"`$(`$mainpackage.processname) finished with exit code: `$(`$mainpackage.ExitCode)`"; + If (`$mainpackage.ExitCode -ne 0) { + Out-Log 'Install Failed.'; + explorer.exe `$WinGetLogFolder; + Out-ErrorData ((Get-ChildItem `$WinGetLogFolder).fullname | ForEach-Object {Get-Content `$_ |Where-Object {`$_ -match '[[]FAIL[]]' -OR `$_ -match 'failed' -OR `$_ -match 'error' -OR `$_ -match 'does not match'}}) 'WinGet' + Out-ErrorData '$MDLog' 'Manual' 'Dependency' + Out-ErrorData `$Error 'PowerShell' + Out-ErrorData (Get-EventLog Application -EntryType Error -after `$TimeStart -ErrorAction Ignore).Message 'Application Log' + + Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for Configure file $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Get-TrackerVMSetStatus 'ValidationCompleted' + Break; + } + Read-Host 'Configure complete, press ENTER to continue...' #Uncomment to examine installer before scanning, for when scanning disrupts the install. + + Get-TrackerVMSetStatus 'Scanning' + + `$WinGetLogs = ((Get-ChildItem `$WinGetLogFolder).fullname | ForEach-Object {Get-Content `$_ |Where-Object {`$_ -match '[[]FAIL[]]' -OR `$_ -match 'failed' -OR `$_ -match 'error' -OR `$_ -match 'does not match'}}) + `$DefenderThreat = (Get-MPThreat).ThreatName + + Out-ErrorData `$WinGetLogs 'WinGet' + Out-ErrorData `$Error 'PowerShell' + Out-ErrorData (Get-EventLog Application -EntryType Error -after `$TimeStart -ErrorAction Ignore).Message 'Application Log' + Out-ErrorData `$DefenderThreat `"Defender (with Security Intelligence version `$((Get-MpComputerStatus).QuickScanSignatureVersion))`" + + Out-Log `" = = = = Completing Manual Validation pipeline build $build on VM $VM for Configure file $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Get-TrackerVMSetStatus 'ValidationCompleted' + + " + }#end Configure + $Enum.PRTrackerOperations.Scan { + $cmdsOut = "$nonElevatedShell + `$TimeStart = Get-Date; + `$explorerPid = (Get-Process Explorer).id; + `$removetoken = 'REMOVEDELETEREMOVEDELETE' + `$ManValLogFolder = `"$SharedFolder/logs/$(Get-Date -UFormat %B)/`$(Get-Date -Format dd)`" + `$WinGetLogFolder = 'C:\Users\User\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir' + Function Out-Log ([string]`$logData,[string]`$logColor = 'cyan') { + `$TimeStamp = (Get-Date -Format $($Enum.Char.T)) + ': '; + `$logEntry = `$TimeStamp + `$logData + Write-Host `$logEntry -f `$logColor; + md `$ManValLogFolder -ErrorAction Ignore + `$logEntry | Out-File `"`$ManValLogFolder/$PackageIdentifier.$logExt`" -Append -Encoding unicode + }; + Function Out-ErrorData ([array]`$errArray,[string]`$serviceName,`$errorName = 'errors') { + Out-Log `"Detected `$(`$errArray.Count) `$serviceName `$(`$errorName): `" + `$errArray | ForEach-Object {Out-Log `$_ 'red'} + }; + Function Get-TrackerProgress { + Param( + `$File, + `$Activity, + `$Hunkrementor, + `$Length, + `$Percent = [math]::round(`$Hunkrementor / `$length*100,2) + ) + }; + Get-TrackerVMSetStatus -Status 'Installing' -Package $PackageIdentifier -PR $PR + + Out-Log ' = = = = Starting Manual Validation pipeline build $build on VM $VM $PackageIdentifier $logLine = = = = ' + + Out-Log 'Pre-testing log cleanup.' + Out-Log 'Upgrading installed applications.' + Out-Log (WinGet upgrade --all --include-pinned --disable-interactivity) + Out-Log 'Clearing PowerShell errors.' + `$Error.Clear() + Out-Log 'Clearing Application Log.' + Clear-EventLog -LogName Application -ErrorAction Ignore + Out-Log 'Clearing WinGet Log folder.' + rm `$WinGetLogFolder\* + Out-Log 'Updating Defender Security Intelligence version.' + Update-MpSignature + Out-Log 'Gathering WinGet info.' + `$info = winget --info + Out-ErrorData @(`$info[0],`$info[3],`$info[4],`$info[5]) 'WinGet' 'infos' + + `$InstallStart = Get-Date; + Out-Log 'Starting preinstall filescan.' + `$PreinstallFilesystem = &cmd /c 'dir C:\ /b /s' + `$PreinstallFileCount = `$PreinstallFilesystem.Count + Out-Log `"Completing preinstall filescan. Read `$PreinstallFileCount files.`" + $ManualDependency + Out-Log `"Main Package Install with args: $wingetArgs`" + `$mainpackage = (Start-Process 'winget' '$wingetArgs' -wait -PassThru); + Out-Log `"Install finished with exit code: `$(`$mainpackage.ExitCode)`"; + `$SleepSeconds = 15 #Sleep a few seconds for processes to complete. + if ((`$InstallStart).AddSeconds(`$SleepSeconds) -gt (Get-Date)) { + sleep ((`$InstallStart).AddSeconds(`$SleepSeconds)-(Get-Date)).totalseconds + } + `$InstallEnd = Get-Date; + + If (`$mainpackage.ExitCode -ne 0) { + Out-Log 'Install Failed.'; + explorer.exe `$WinGetLogFolder; + + `$WinGetLogs = ((Get-ChildItem `$WinGetLogFolder).fullname | ForEach-Object { + Get-Content `$_ | Where-Object { + `$_ -match '[[]FAIL[]]' -OR + `$_ -match 'failed' -OR + `$_ -match 'error' -OR + `$_ -match 'does not match' + } + }) + `$DefenderThreat = (Get-MPThreat).ThreatName + `$SigVer = (Get-MpComputerStatus).QuickScanSignatureVersion + + Out-ErrorData `$WinGetLogs 'WinGet' + Out-ErrorData '$MDLog' 'Manual' 'Dependency' + Out-ErrorData `$Error 'PowerShell' + Out-ErrorData (Get-EventLog Application -EntryType Error -after `$TimeStart -ErrorAction Ignore).Message 'Application Log' + Out-ErrorData `$DefenderThreat `"Defender (with Security Intelligence version `$((Get-MpComputerStatus).QuickScanSignatureVersion))`" + + Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + + if ((`$WinGetLogs -match '\[FAIL\] Installer failed security check.') -OR + `$DefenderThreat) { + Send-SharedError -clip (`$WinGetLogs + ' ' + '`n' + 'Detection: ' + `$DefenderThreat + '`n' + 'Defender Security Intelligence version: ' + `$SigVer) + Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Get-TrackerVMSetStatus 'SendStatus' -Package $PackageIdentifier -PR $PR + } elseif ( + (`$WinGetLogs -match 'Package hash verification failed') -OR + (`$WinGetLogs -match 'Operation did not complete successfully because the file contains a virus or potentially unwanted software')){ + Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Send-SharedError -clip (`$WinGetLogs + ' ') + Out-Log $WinGetLogs + Get-TrackerVMSetStatus 'SendStatus' -Package $PackageIdentifier -PR $PR + } elseif ((`$WinGetLogs -match 'The multi file manifest has inconsistent field values') -OR + (`$WinGetLogs -match 'valid root file')) { + Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Out-Log $WinGetLogs + Get-TrackerVMSetStatus 'Complete' -Package $PackageIdentifier -PR $PR + } elseif ((`$WinGetLogs -match 'Download request failed. Returned status: 404')) { + Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Out-Log $WinGetLogs + Send-SharedError -clip (`$WinGetLogs + ' ') + Get-TrackerVMSetStatus 'SendStatus' -Package $PackageIdentifier -PR $PR + } elseif (`$mainpackage.ExitCode -eq '-1978335216') { #arm64 package + Get-TrackerVMSetStatus 'Approved' + } else { + Get-TrackerVMSetStatus 'ValidationCompleted' -Package $PackageIdentifier -PR $PR + } + + Break; + } + $PostInstallPause + Function Get-ScanStep { + Get-TrackerVMSetStatus 'Scanning' -Package $PackageIdentifier -PR $PR + Out-Log 'Install complete, starting second filesystem scan.' + + `$files = '' + if (Test-Path `$RemoteFolder\files.txt) {#If we have a list of files to run - a relic from before automatic file gathering. + `$files = Get-Content `$RemoteFolder\files.txt + } else { + `$PostinstallFilesystem = &cmd /c 'dir C:\ /b /s' + `$PostinstallFileCount = `$PostinstallFilesystem.Count + Out-Log `"Completing postinstall filescan. Read `$PostinstallFileCount files, a difference of `$(`$PostinstallFileCount - `$PreinstallFileCount) files.`" + `$files = (Compare-Object `$PreinstallFilesystem `$PostinstallFilesystem | where {`$_.SideIndicator -eq '=>'}).inputobject + + `$list = 'AppRepository','assembly', 'CbsTemp', 'CryptnetUrlCache', 'CacheStorage', 'Cache_Data', 'Code Cache', 'DesktopAppInstaller', 'dump64a', 'EdgeCore', 'EdgeUpdate', 'EdgeWebView', 'ErrorDlg', 'ErrorDialog', 'Microsoft\\Edge\\Application', 'Microsoft\\Copilot', 'Microsoft.Copilot', 'Microsoft\\Defender', 'Microsoft\\Diagnosis', 'Microsoft\\Edge\\Temp', 'msedge', 'NativeImages', 'Prefetch', 'Provisioning', 'redis', 'servicing', 'ServiceProfiles', 'Start Menu', 'System32', 'SystemTemp', 'SysWOW64', 'unins', 'waasmedic', 'C:\\Windows', 'Windows\\Explorer', 'WinSxS' + + `$files = `$files -join ';' + foreach (`$item in `$list) { + `$files = `$files -replace `$item,`$removetoken + } + `$files = `$files -split ';' + `$files = `$files | Where-Object {`$_ -notmatch `$removetoken} | sort -unique + + } + + Out-Log `"Reading `$(`$files.Count) file changes in the last `$(((Get-Date) -`$InstallEnd).TotalSeconds) seconds. Starting bulk file execution:`" + `$files | Out-File 'C:\Users\user\Desktop\ChangedFiles.txt' + `$files | Select-String '[.]exe`$' | ForEach-Object {if (`$_ -match '$packageName') {Out-Log `$_ 'green'} else{Out-Log `$_ 'cyan'}; try{Start-Process `$_}catch{}}; + `$files | Select-String '[.]msi`$' | ForEach-Object {if (`$_ -match '$packageName') {Out-Log `$_ 'green'} else{Out-Log `$_ 'cyan'}; try{Start-Process `$_}catch{}}; + `$files | Select-String '[.]lnk`$' | ForEach-Object {if (`$_ -match '$packageName') {Out-Log `$_ 'green'} else{Out-Log `$_ 'cyan'}; try{Start-Process `$_}catch{}}; + + Out-Log `" = = = = End file list. Starting Defender scan. = = = = = `" + Start-MpScan; + + Out-Log `"Defender scan complete, closing windows...`" + Get-Process explorer -ErrorAction SilentlyContinue| where {`$_.id -ne `$explorerPid} | Stop-Process + Get-Process LiveCaptions -ErrorAction SilentlyContinue | Stop-Process + Get-Process Magnify -ErrorAction SilentlyContinue | Stop-Process -Force + Get-Process mip -ErrorAction SilentlyContinue | Stop-Process + Get-Process msedge -ErrorAction SilentlyContinue | Stop-Process -Force + Get-Process Narrator -ErrorAction SilentlyContinue | Stop-Process + Get-Process osk -ErrorAction SilentlyContinue | Stop-Process -Force + Get-Process powershell -ErrorAction SilentlyContinue | where {`$_.id -ne `$PID} | Stop-Process -force + + Get-process | Where-Object { `$_.mainwindowtitle -ne '' -and `$_.processname -notmatch '$packageName' -and `$_.processname -ne 'powershell' -and `$_.processname -ne 'WindowsTerminal' -and `$_.processname -ne 'csrss' -and `$_.processname -ne 'dwm'} | Stop-Process + #Get-Process | Where-Object {`$_.id -notmatch `$PID -and `$_.id -notmatch `$explorerPid -and `$_.processname -notmatch `$packageName -and `$_.processname -ne 'csrss' -and `$_.processname -ne 'dwm'} | Stop-Process + + `$WinGetLogs = ((Get-ChildItem `$WinGetLogFolder).fullname | ForEach-Object {Get-Content `$_ |Where-Object {`$_ -match '[[]FAIL[]]' -OR `$_ -match 'failed' -OR `$_ -match 'error' -OR `$_ -match 'does not match'}}) + `$DefenderThreat = (Get-MPThreat).ThreatName + `$SigVer = (Get-MpComputerStatus).QuickScanSignatureVersion + + Out-ErrorData `$WinGetLogs 'WinGet' + Out-ErrorData '$MDLog' 'Manual' 'Dependency' + Out-ErrorData `$Error 'PowerShell' + Out-ErrorData (Get-EventLog Application -EntryType Error -after `$TimeStart -ErrorAction Ignore).Message 'Application Log' + Out-ErrorData `$DefenderThreat `"Defender (with Security Intelligence version `$SigVer)`" + + if (`$DefenderThreat) { + Send-SharedError -clip (`$WinGetLogs + ' ' + '`n' + 'Detection: ' + `$DefenderThreat + '`n' + 'Defender Security Intelligence version: ' + `$SigVer) + Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Get-TrackerVMSetStatus 'SendStatus' -Package $PackageIdentifier -PR $PR + } elseif ((`$WinGetLogs -match '\[FAIL\] Installer failed security check.') -OR + (`$WinGetLogs -match 'Package hash verification failed') -OR + (`$WinGetLogs -match 'Operation did not complete successfully because the file contains a virus or potentially unwanted software')){ + Send-SharedError -clip (`$WinGetLogs + ' ') + Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Get-TrackerVMSetStatus 'SendStatus' -Package $PackageIdentifier -PR $PR + } elseif ((`$WinGetLogs -match 'The multi file manifest has inconsistent field values') -OR + (`$WinGetLogs -match 'valid root file')) { + Out-Log `" = = = = Failing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Out-Log $WinGetLogs + Get-TrackerVMSetStatus 'Complete' -Package $PackageIdentifier -PR $PR + } elseif ((Get-Content $RemoteTrackerModeFile) -eq 'IEDS') { + Out-Log `" = = = = Auto-Completing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Get-TrackerVMSetStatus 'Approved' -Package $PackageIdentifier -PR $PR + } elseif ((Get-TrackerVMStatus | where {`$_.vm -match `$vm}).Mode -eq 'Existing') { + Out-Log `" = = = = Auto-Completing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Get-TrackerVMSetStatus 'Approved' -Package $PackageIdentifier -PR $PR + } elseif ((Get-TrackerVMStatus | where {`$_.vm -match `$vm}).Mode -eq 'New') { + Out-Log `" = = = = Attempting Auto-Completion of Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Get-TrackerVMSetStatus 'ValidationCompleted' -Package $PackageIdentifier -PR $PR + Get-installedVersions + } else { + Start-Process PowerShell + Out-Log `" = = = = Completing Manual Validation pipeline build $build on VM $VM for $PackageIdentifier $logLine in `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. = = = = `" + Get-TrackerVMSetStatus 'ValidationCompleted' -Package $PackageIdentifier -PR $PR + } + }; + Get-ScanStep + + + " + <# + `$FileSystem = Get-ChildItem C:\ -Recurse -ErrorAction Ignore -Force + `$FileSystem = `$FileSystem | sort -unique + Out-Log 'File system scan complete, finding changed folders by CreationTime.' + `$CreationTimeDirectories = ( + `$FileSystem | + Where-Object {`$_.CreationTime -gt `$InstallStart} | + Where-Object {`$_.CreationTime -lt `$InstallEnd} | + %{return `$_} + ).DirectoryName | sort -unique + Out-Log `"Found `$(`$CreationTimeDirectories.Count) folders. Checking for folders by LastAccessTime.`" + `$LastAccessTimeDirectories = ( + `$FileSystem | + Where-Object {`$_.LastAccessTime -gt `$InstallStart} | + Where-Object {`$_.LastAccessTime -lt `$InstallEnd} | + %{return `$_} + ).DirectoryName | sort -unique + Out-Log `"Found `$(`$LastAccessTimeDirectories.Count) folders. Checking for folders by LastWriteTime.`" + `$LastWriteTImeDirectories = ( + `$FileSystem | + Where-Object {`$_.LastWriteTIme -gt `$InstallStart} | + Where-Object {`$_.LastWriteTIme -lt `$InstallEnd} | + %{return `$_} + ).DirectoryName | sort -unique + Out-Log `"Found `$(`$LastWriteTImeDirectories.Count) folders. Collating...`" + `$DirectoryList = `$CreationTimeDirectories + `$LastAccessTimeDirectories + `$LastWriteTImeDirectories | sort -unique + Out-Log `"Found `$(`$DirectoryList.Count) total folders. Checking for files in folders...`" + `$files = foreach (`$Directory in `$DirectoryList) {`$FileSystem.fullname | select-string `$Directory -SimpleMatch} + `$files += (Get-ChildItem 'C:\Users\User\AppData\Local\Microsoft\WinGet' -Recurse -ErrorAction Ignore -Force).FullName + + #> + <# + `$files = foreach (`$file in `$files) { + `$file | Where-Object {`$_ -notmatch 'AppRepository'} | + Where-Object {`$_ -notmatch '\\assembly'} | + Where-Object {`$_ -notmatch 'CbsTemp'} | + Where-Object {`$_ -notmatch 'CryptnetUrlCache'} | + Where-Object {`$_ -notmatch 'DesktopAppInstaller'} | + Where-Object {`$_ -notmatch 'dotnet'} | + Where-Object {`$_ -notmatch 'dump64a'} | + Where-Object {`$_ -notmatch 'EdgeCore'} | + Where-Object {`$_ -notmatch 'EdgeUpdate'} | + Where-Object {`$_ -notmatch 'EdgeWebView'} | + Where-Object {`$_ -notmatch 'ErrorDlg'} | + Where-Object {`$_ -notmatch 'ErrorDialog'} | + Where-Object {`$_ -notmatch 'Microsoft\\Edge\\Application'} | + Where-Object {`$_ -notmatch 'Microsoft\\Diagnosis'} | + Where-Object {`$_ -notmatch 'msedge'} | + Where-Object {`$_ -notmatch 'NativeImages'} | + Where-Object {`$_ -notmatch 'Prefetch'} | + Where-Object {`$_ -notmatch 'Provisioning'} | + Where-Object {`$_ -notmatch 'redis'} | + Where-Object {`$_ -notmatch 'servicing'} | + Where-Object {`$_ -notmatch 'ServiceProfiles'} | + Where-Object {`$_ -notmatch 'Start Menu'} | + Where-Object {`$_ -notmatch '\\System32'} | + Where-Object {`$_ -notmatch '\\SystemTemp'} | + Where-Object {`$_ -notmatch '\\SysWOW64'} | + Where-Object {`$_ -notmatch 'unins'} | + Where-Object {`$_ -notmatch 'waasmedic'} | + Where-Object {`$_ -notmatch 'C:\\Windows'} | + Where-Object {`$_ -notmatch 'Windows\\Explorer'} | + Where-Object {`$_ -notmatch '\\WinSxS'} + } + + #> + }#end Scan + Default { + Write-Host "Error: Bad Function" + Break; + } + } + + $cmdsOut | Out-File $CmdsFileName + + if ($NoFiles -eq $False) { + Get-ManifestForValidation -vm $vm -clip $clip -PackageIdentifier $PackageIdentifier -Operation $Operation -Silent $Silent -manifestFolder $manifestFolder + }#end if NoFiles + +<# + if ($InspectNew) { + $PackageResult = Find-WinGetPackage $PackageIdentifier + if (!($Silent)) { + Write-Host "Searching Winget for $PackageIdentifier" + } + Write-Host $PackageResult + if ($PackageResult -eq "No package found matching input criteria.") { + Open-AllURL + Start-Process "https://www.bing.com/search?q = $PackageIdentifier" + $a,$b = $PackageIdentifier -split "[.]" + if ($a -ne $Enum.Char.Blank) { + if (!($Silent)) { + Write-Host "Searching Winget for $a" + # Find-WinGetPackage + } + } + if ($b -ne $Enum.Char.Blank) { + if (!($Silent)) { + Write-Host "Searching Winget for $b" + # Find-WinGetPackage + } + } + } + } +#> + if (!($Silent)) { + Write-Host "File operations complete, starting VM operations." + } + Get-TrackerVMLaunchWindow $VM + } + if (!$NoStaleCheck) {Get-StaleVMCheck} + }#end if PackageIdentifier +} + +Function Get-TrackerVMValidateByID { + Param( + $PackageIdentifier = (Get-CleanClipboard) + ) + Get-TrackerVMValidate -installerLine "--id $PackageIdentifier" -PackageIdentifier $PackageIdentifier -NoFiles #-notElevated +} + +Function Get-TrackerVMValidateByConfig { + Param( + $PackageIdentifier = "Microsoft.Devhome", + $ManualDependency = "Git.Git" + ) + + Get-TrackerVMValidate -installerLine "--id $PackageIdentifier" -PackageIdentifier $PackageIdentifier -NoFiles -ManualDependency $ManualDependency -Operation "DevHomeConfig" + Start-Sleep $Enum.Num.Two + Get-TrackerVMValidate -installerLine "--id $ManualDependency" -PackageIdentifier $ManualDependency -NoFiles -Operation "Config" +} + +Function Get-TrackerVMValidateByArch { + Get-TrackerVMValidate -Arch $Enum.Arch.64; + Start-Sleep $Enum.Num.Two; + Get-TrackerVMValidate -Arch $Enum.Arch.86; +} + +Function Get-TrackerVMValidateByScope { + Get-TrackerVMValidate -Scope Machine; + Start-Sleep $Enum.Num.Two; + Get-TrackerVMValidate -Scope User; +} + +Function Get-TrackerVMValidateBothArchAndScope { + Get-TrackerVMValidate -Arch $Enum.Arch.64 -Scope Machine; + Start-Sleep $Enum.Num.Two; + Get-TrackerVMValidate -Arch $Enum.Arch.86 -Scope Machine; + Start-Sleep $Enum.Num.Two; + Get-TrackerVMValidate -Arch $Enum.Arch.64 -Scope User; + Start-Sleep $Enum.Num.Two; + Get-TrackerVMValidate -Arch $Enum.Arch.86 -Scope User; +} + +#Manifests Etc +Function Get-ManifestForValidation { + Param( + [int]$vm, + $clip = ((Get-CleanClipboard) -split $Enum.Char.LineBreak), + # $clipInput = ((Get-CleanClipboard) -split $Enum.Char.LineBreak) + # $clip = ($clipInput[$Enum.Index.First..(($clipInput | Select-String "Do not share my personal information").LineNumber -1)]), + $PackageIdentifier = ((Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $clip) | Get-RemoveQuotes), + [ValidateScript( { $_ -in (Get-Keys $Enum.PRTrackerOperations) } )][string]$Operation = $Enum.PRTrackerOperations.Scan, + [switch]$Silent, + [switch]$WhatIf, + $VMFolder = "$MainFolder\vm\$vm", + $manifestFolder = "$VMFolder\manifest" + ) + #Extract multi-part manifest from clipboard and write to disk + if (!($Silent)) { + Write-Host $Enum.Strings.RemovingPreviousManifestAndAddingCurrent + } + Get-RemoveFileIfExist "$manifestFolder" -remake -Silent + if ($Operation -eq $Enum.PRTrackerOperations.Configure) { + $FilePath = "$manifestFolder\config.yaml" + Out-File -FilePath $FilePath -InputObject $clipInput -NoClobber + } else { + $Files = @() + # $Files += "Package.installer.yaml" + # $FileNames = ($clip | Select-String "[.]yaml") |ForEach-Object{($_ -split $Enum.Char.Slash)[$Enum.Index.Last]} + $FileNames = ($clip | where {$_ -notmatch "manifest"} | Select-String "[.]yaml") |ForEach-Object{($_ -split $Enum.Char.Slash)[$Enum.Index.Last]} + $replace = $FileNames[$Enum.Index.Last] -replace $Enum.ManifestFileExtension.Root -replace "[.]","[.]" + $FileNames | ForEach-Object { + $Files += $_ -replace $PackageIdentifier,"Package" + } + $clip = $clip | where {$_ -notmatch "Lines changed"} + $clip = $clip -join $Enum.Char.LineBreak + $clip = $clip -replace "Original file line number\s+Diff line number\s+Diff line change",$Enum.Char.DoubleAmpersand + $clip = $clip -split $Enum.Char.DoubleAmpersand + for ($i = 0; $i -lt $Files.Length; $i++) { + $File = $Files[$i] + $shift = 1 + $inputObj = $clip[$i + $shift] -split $Enum.Char.LineBreak + # $inputObj = $clip[($i*$Enum.Num.Two) + $shift] -split $Enum.Char.LineBreak + $inputObj = $inputObj[1..(($inputObj | Select-String "ManifestVersion" -SimpleMatch).LineNumber -1)] | Where-Object {$_ -notmatch $Enum.Strings.MarkedThisConversationAsResolved}| Where-Object {$_ -notmatch "Comment on line"} | Where-Object {$_ -notmatch "Resolved"} | Where-Object {$_ -notlike ' # # Changelog'}| Where-Object {$_ -notlike ' ## Changelog'} + $FilePath = "$manifestFolder\$File" + if (!($Silent)) { + Write-Host "Writing $($inputObj.Length) lines to $FilePath" + } + if ($WhatIF) { + "$filepath - $inputObj" + } else { + + + Out-File -FilePath $FilePath -InputObject $inputObj + #Bugfix to catch package identifier appended to last line of last file. + $fileContents = (Get-Content $FilePath) + for ($n = 0; $n -lt $fileContents.Length; $n++) { + if (($fileContents[$n][$Enum.Index.First] -eq $Enum.Char.Space) -AND ($fileContents[$n][$Enum.Index.Second] -eq $Enum.Char.Hash)) { + $fileContents[$n] = $Enum.Char.Hash + $fileContents[$n] + }#end if fileContents + } + + if ($fileContents[$Enum.Index.Last] -clike $PackageIdentifier) { + $fileContents[$Enum.Index.Last] = ($fileContents[$Enum.Index.Last] -split $PackageIdentifier)[$Enum.Index.First] + } + $fileContents -replace "0New version: ","0" -replace "0New package: ","0" -replace "0Add version: ","0" -replace "0Add package: ","0" -replace "0Add ","0" -replace "0New ","0" -replace "0package: ","0" | Out-File $FilePath + }#end if WhatIF + } + $filecount = (Get-ChildItem $manifestFolder).Count + $filedir = "ok" + $filecolor = $Enum.PSColors.Green + if ($filecount -lt 3) { $filedir = "too low"; $filecolor = $Enum.PSColors.Red} + if ($filecount -gt 3) { $filedir = "high"; $filecolor = $Enum.PSColors.Yellow} + if ($filecount -gt $enum.Num.Ten) { $filedir = "too high"; $filecolor = $Enum.PSColors.Red} + if (!($Silent)) { + Write-Host -f $filecolor "File count $filecount is $filedir" + } + # if ($filecount -lt 3) { break} + if (!($WhatIF)) { + $filename = "$MainFolder\vm\$vm\manifest\Package.yaml" + $fileContents = Get-Content $filename + if ($fileContents[$Enum.Index.Last] -ne "0") { + $fileContents[$Enum.Index.Last] = ($fileContents[$Enum.Index.Last] -split ".0")[$Enum.Index.First]+".0" + $fileContents | Out-File $filePath + $fileContents = Get-Content $filename + $fileContents -replace "1..0","1.10.0" + $fileContents | Out-File $filePath + }#end if fileContents + }#end if WhatIf + try {#Clean up any misnamed files. + Get-ChildItem "$MainFolder\vm\$VM\manifest" | where {$_.fullname -notmatch "Package"} | Remove-Item -Path $_.fullname + }catch{} + }#end if Operation +} + +Function Get-SingleFileAutomation { + Param( + $PR, + $clip = (Get-CleanClipboard), + $PackageIdentifier = (Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $clip), + $version = ((Get-YamlValue PackageVersion -clip $clip) | Get-RemoveQuotes), + $listing = (Get-ManifestListing $PackageIdentifier), + $VM = (Get-NextFreeVM)# (Get-ManifestFile -clip $clip)[$Enum.Index.Last] + ) + + for ($File = 0; $File -lt $listing.Length; $File++) { + Write-Host "$($MyInvocation.MyCommand.name) $PR - $File for VM $VM" + $Clip = (Get-FileFromGitHub -PackageIdentifier $PackageIdentifier -Version $version -Suffix $listing[$File]) + Get-ManifestFile -clip $Clip -PR $PR + } +} + +Function Get-InstallerFileAutomation { + Param( + $PR = (Get-CleanClipboard), + $InstallerFile = (Get-CommitFile -PR $PR) + ) + Write-Host "$($MyInvocation.MyCommand.name) $PR" + Get-SingleFileAutomation -PR $PR -clip $InstallerFile +} + +Function Get-ManifestAutomation { + Param( + $VM = (Get-NextFreeVM), + $PR = 0, + $Arch, + $OS, + $Scope + ) + + #Read-Host "Copy Installer file to clipboard, then press Enter to continue." + (Get-CleanClipboard) -join $Enum.Char.Blank | clip; + $null = Get-ManifestFile $VM + + Read-Host "Copy defaultLocale file to clipboard, then press Enter to continue." + (Get-CleanClipboard) -join $Enum.Char.Blank | clip; + $null = Get-ManifestFile $VM + + Read-Host "Copy version file to clipboard, then press Enter to continue." + (Get-CleanClipboard) -join $Enum.Char.Blank | clip; + if ($Arch) { + $null = Get-ManifestFile $VM -Arch $Arch + } elseif ($OS) { + $null = Get-ManifestFile $VM -OS $OS + } elseif ($Scope) { + $null = Get-ManifestFile $VM -Scope $Scope + } else { + $null = Get-ManifestFile $VM -PR $PR + } +} + +Function Get-ManifestOtherAutomation { + Param( + $Clip = (Get-CleanClipboard), + $Title = ($Clip -split " version "), + $Version = ($Title[$Enum.Index.Second] -split " #"), + $PR = ($Version[$Enum.Index.Second]), + [switch]$Installer + ) + $Title = $Title[$Enum.Index.First] + $Version = $Version[$Enum.Index.First] + if ($Installer) { + $File = (Get-FileFromGitHub $Title $Version) + } +} + +Function Get-ManifestFile { + Param( + [int]$VM = ((Get-NextFreeVM) -replace $Enum.Strings.Vm,$Enum.Char.Blank), + $clip = (Get-SecondMatch), + $FileName = "Package", + $PackageIdentifier = ((Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $clip) -replace $Enum.Char.DoubleQuote,$Enum.Char.Blank -replace $Enum.Char.SingleQuote,$Enum.Char.Blank -replace $Enum.Char.Comma,$Enum.Char.Blank), + $PR = 0, + $Arch, + $OS, + $Scope + ); + #Write-Output "PackageIdentifier: $PackageIdentifier" + $manifestFolder = "$MainFolder\vm\$vm\manifest" + $clip = $clip | Where-Object {$_ -notmatch $Enum.Strings.MarkedThisConversationAsResolved} + + $YamlValue = (Get-YamlValue ManifestType -clip $clip) + switch ($YamlValue) { + $Enum.ManifestFileTypes.defaultLocale { + $Locale = (Get-YamlValue PackageLocale -clip $clip) + $FileName = "$FileName.locale.$Locale" + } + $Enum.ManifestFileTypes.Locale { + $Locale = (Get-YamlValue PackageLocale -clip $clip) + $FileName = "$FileName.locale.$Locale" + } + $Enum.ManifestFileTypes.installer { + Get-RemoveFileIfExist "$manifestFolder" -remake + $FileName = "$FileName.installer" + } + $Enum.ManifestFileTypes.version { + if ($Arch) { + Get-TrackerVMValidate -vm $VM -NoFiles -Arch $Arch -PR $PR -PackageIdentifier $PackageIdentifier + } elseif ($OS) { + Get-TrackerVMValidate -vm $VM -NoFiles -OS $OS -PR $PR -PackageIdentifier $PackageIdentifier + } elseif ($Scope) { + Get-TrackerVMValidate -vm $VM -NoFiles -Scope $Scope -PR $PR -PackageIdentifier $PackageIdentifier + } else { + Get-TrackerVMValidate -vm $VM -NoFiles -PR $PR -PackageIdentifier $PackageIdentifier + } + } + Default { + Write-Output "Error: Bad ManifestType" + # if ($PatchedValidationIteration -gt 3) { + # Write-Host "Get-ManifestFile Infinte Loop Detected after $PatchedValidationIteration iterations." + Return + # } + # $PatchedValidationIteration++ + # Write-Output "Get-ManifestFile PatchedValidationIteration Iteration $PatchedValidationIteration" + # Get-PatchedValidation -PR $PR -VM $VM + } + } + $FilePath = "$manifestFolder\$FileName.yaml" + Write-Output "Writing $($clip.Length) lines to $FilePath" + $clip -replace "0New version: ","0" -replace "0Add version: ","0" -replace "0Add ","0" -replace "0New ","0" | Out-File $FilePath -Encoding unicode + return $VM +} + +Function Get-ManifestListing { + Param( + [string]$PackageIdentifier, + $VersionNumber, + [string]$Path = ($PackageIdentifier -replace "[.]",$Enum.Char.Slash), + [string]$FirstLetter = ($PackageIdentifier[$Enum.Index.First].tostring().tolower()), + [string]$Uri = "$GitHubApiBaseUrl/contents/manifests/$FirstLetter/$Path/$VersionNumber/", + [Switch]$ListVersions + ) + If ($ListVersions) { + $Uri = "$GitHubApiBaseUrl/contents/manifests/$FirstLetter/$Path/" + } else { + Write-Host "$($MyInvocation.MyCommand.name) $PR" + $VersionNumber = Get-ManifestVersion -PackageIdentifier $PackageIdentifier + $Uri = "$GitHubApiBaseUrl/contents/manifests/$FirstLetter/$Path/$VersionNumber/" + } + try{ + $out = (Invoke-GitHubRequest -Uri $Uri -JSON).name + }catch{ + $out = $Enum.Words.Error + } + $PackageIdentifier = $PackageIdentifier -replace "\+","\+" + return $out -replace "$($PackageIdentifier)[.]",$Enum.Char.Blank +} + +Function Get-ManifestVersion { + Param( + [string]$PackageIdentifier, + $VersionNumber, + [switch]$Display + ) + $Invo = $($MyInvocation.MyCommand.name) + " $PR" + if ($Display) {Write-Host "$Invo"} + $GhRlRemain = ((Get-GitHubRateLimit) | where {$_.source -match $Enum.GitHubRateLimit.Unlogged}).remaining + if ($GhRlRemain -le 0) { + $WinGetOutput = Find-WinGetPackage $PackageIdentifier | where {$_.id -ceq $PackageIdentifier} + if ($Display) {Write-Host "$Invo - WinGetOutput: $WinGetOutput"} + $VersionNumber = $WinGetOutput.version + if ($Display) {Write-Host "$Invo - VersionNumber: $VersionNumber"} + } else { + [array]$ListVersions = (Get-ManifestListing -PackageIdentifier $PackageIdentifier -ListVersions) + if ($Display) {Write-Host "$Invo - ListVersions: $(ListVersions.count)"} + if ($ListVersions[$Enum.Index.First] -gt $ListVersions[$Enum.Index.Last]) {#Attempt to fix inferior GitHub version sorting. + $VersionNumber = $ListVersions[$Enum.Index.First] + if ($Display) {Write-Host "$Invo - First VersionNumber: $VersionNumber"} + } else { + $VersionNumber = $ListVersions[$Enum.Index.Last] + if ($Display) {Write-Host "$Invo - Last VersionNumber: $VersionNumber"} + }#end if ListVersions + }#end if DataSource + return $VersionNumber +} + +Function Get-ListingDiff { + Param( + $Clip = (Get-CleanClipboard), + $PackageIdentifier = (Get-YamlValue -Key $Enum.ManifestKeys.PackageIdentifier -clip $clip -replace $Enum.Char.DoubleQuote,$Enum.Char.Blank), + $PRManifest = ($clip -split $Enum.Char.LineBreak | Where-Object {$_ -match $Enum.ManifestFileExtension.Root} | Where-Object {$_ -match $PackageIdentifier} |%{($_ -split $Enum.Char.Slash)[$Enum.Index.Last] -replace "$($PackageIdentifier)[.]",$Enum.Char.Blank}), + $Returnables = $Enum.Char.Blank + ) + if ($PRManifest.Count -gt $Enum.Num.Two){ + $CurrentManifest = (Get-ManifestListing $PackageIdentifier) + if ($CurrentManifest -eq $Enum.Words.Error) { + $Returnables = diff $CurrentManifest $PRManifest + } else { + $Returnables = $CurrentManifest + } + } + Return $Returnables +} + +Function Get-OSFromVersion { + Param( + $clip + ) + # try{ + # if ([system.version](Get-YamlValue -Key MinimumOSVersion -clip $clip) -ge [system.version]"10.0.22000.0"){$Enum.VMOS.Win11} else{$Enum.VMOS.Win10} + # } catch { + $Enum.VMOS.Win11 + # } +} + +#VM Image Management +Function Get-PipelineVmGenerate { + Param( + [int]$vm = (Get-Content $vmCounter), + [ValidateScript( { $_ -in $Enum.VMOS.Win11 } )][string]$OS = $Enum.VMOS.Win11, + [int]$version = (Get-TrackerVMVersion -OS $OS), + $destinationPath = "$imagesFolder\$vm\", + $VMFolder = "$MainFolder\vm\$vm", + $newVmName = (& $VMNameSB), + $startTime = (Get-Date) + ) + Test-Admin + Write-Host "Creating VM $newVmName version $version OS $OS" + [int]$vm + 1|Out-File $vmCounter + "`"$vm`",`"Generating`",`"$version`",`"$OS`",`"`",`"1`",`"Creation`",`"0`""|Out-File $StatusFile -Append -Encoding unicode + Get-RemoveFileIfExist $destinationPath -remake + Get-RemoveFileIfExist $VMFolder -remake + $vmImageFolder = (ls "$imagesFolder\$OS-image\Virtual Machines\" *.vmcx).fullname + + $ImportEst = (get-date).AddSeconds(400).ToString($Enum.Char.T) + Write-Host "Takes about 400 seconds. (Until $($ImportEst).) Beginning import..." + Import-VM -Path $vmImageFolder -Copy -GenerateNewId -VhdDestinationPath $destinationPath -VirtualMachinePath $destinationPath; + $ImportSeconds = ((Get-Date)-$startTime).TotalSeconds + if ($ImportSeconds -gt 30) { + Write-Host "Import complete, taking $ImportSeconds seconds. Renaming..." + Rename-VM (Get-VM | Where-Object {($_.CheckpointFileLocation)+$Enum.Char.Backslash -eq $destinationPath}) -NewName $newVmName + Write-Host $Enum.Strings.RenameCompleteStarting + Start-VM $newVmName + Write-Host $Enum.Strings.StartingVmAndCleaningUpCheckpoints + Remove-VMCheckpoint -VMName $newVmName -Name "Backup" + Write-Host $Enum.Strings.RevertingVm + Get-TrackerVMRevert $VM + Write-Host $Enum.Strings.LaunchingVMWindowHandingOffToOrchestration + Get-TrackerVMLaunchWindow $VM + Write-Host "Took $ImportSeconds seconds." + } else { + Write-Host "Error: $ImportSeconds seconds is too short. Disgnenerating vm $VM" + Get-TrackerVMSetStatus -Status $Enum.VMStatus.Disgenerate -VM $VM + } +} + +Function Get-PipelineVmDisgenerate { + Param( + [Parameter(mandatory = $True)][int]$vm, + $destinationPath = "$imagesFolder\$vm\", + $VMFolder = "$MainFolder\vm\$vm", + $vmName = (& $VMNameSB) + ) + + if ($vm -gt 0) { + Test-Admin + Get-TrackerVMSetStatus $Enum.VMStatus.Disgenerate $VM + Get-ConnectedVM | Where-Object {$_.vm -match $VMName} | ForEach-Object {Stop-Process -id $_.id} + Stop-TrackerVM $VM + Remove-VM -Name $vmName -Force + + $out = Get-Status + $out = $out | Where-Object {$_.vm -notmatch $VM} + Write-Status $out + + $delay = 15 + 0..$delay | ForEach-Object { + $pct = $_ / $delay * 100 + Write-Progress -Activity "Remove VM" -Status "$_ of $delay" -PercentComplete $pct + Start-Sleep $GitHubRateLimitDelay + } + Get-RemoveFileIfExist $destinationPath + Get-RemoveFileIfExist $VMFolder + Write-Progress -Activity "Remove VM" -Completed + } +} + +Function Get-ImageVMStart { + Param( + [ValidateScript( { $_ -in $Enum.VMOS.Win11 } )][string]$OS = $Enum.VMOS.Win11 + ) + Test-Admin + $VM = 0 + Start-VM $OS; + Get-TrackerVMRevert $VM $OS; + Get-TrackerVMLaunchWindow $VM $OS +} + +Function Get-ImageVMStop { + Param( + [ValidateScript( { $_ -in $Enum.VMOS.Win11 } )][string]$OS = $Enum.VMOS.Win11 + ) + Test-Admin + $VM = 0 + $OriginalLoc = $Enum.Char.Blank + # switch ($OS) { + # $Enum.VMOS.Win10 { + # $OriginalLoc = $Win10Folder + # } + # $Enum.VMOS.Win11 { + # } + # } + $OriginalLoc = $Win11Folder + $ImageLoc = "$imagesFolder\$OS-image\" + [int]$version = [int](Get-TrackerVMVersion -OS $OS) + 1 + Write-Host "Writing $OS version $version" + Get-TrackerVMSetVersion -Version $Version -OS $OS + Stop-Process -id ((Get-ConnectedVM)|Where-Object {$_.VM -match "$OS"}).id -ErrorAction Ignore + Redo-Checkpoint $VM $OS; + Stop-TrackerVM $VM $OS; + Write-Host $Enum.Strings.LettingVmCool + Start-Sleep 30; + Robocopy.exe $OriginalLoc $ImageLoc -mir +} + +Function Get-ImageVMMove { + Param( + [ValidateScript( { $_ -in $Enum.VMOS.Win11 } )][string]$OS = $Enum.VMOS.Win11, + $CurrentVMName = $Enum.Char.Blank, + $newLoc = "$imagesFolder\$OS-Created$(get-date -f MMddyy)-Original" + ) + Test-Admin + # switch ($OS) { + # $Enum.VMOS.Win10 { + # $CurrentVMName = "Windows 10 MSIX packaging environment" + # } + # $Enum.VMOS.Win11 { + # } + # } + $CurrentVMName = $Enum.Strings.Win11DevEnv + $VM = Get-VM | where {$_.Name -match $CurrentVMName} + Move-VMStorage -VM $VM -DestinationStoragePath $newLoc + Rename-VM -VM $VM -NewName $OS +} + +#VM Pipeline Management +Function Get-TrackerVMLaunchWindow { + Param( + [Parameter(mandatory = $True)][int]$vm, + $VMName = (& $VMNameSB) + ) + Test-Admin + Get-ConnectedVM | Where-Object {$_.vm -match $VMName} | ForEach-Object {Stop-Process -id $_.id} + C:\Windows\System32\vmconnect.exe localhost $VMName +} + +Function Get-TrackerVMRevert { + Param( + [Parameter(mandatory = $True)][int]$vm, + $VMName = (& $VMNameSB), + [Switch]$Silent + ) + Test-Admin + if ($Silent) { + Get-TrackerVMSetStatus $Enum.VMStatus.Restoring $VM -Silent + } else { + Get-TrackerVMSetStatus $Enum.VMStatus.Restoring $VM + } + Restore-VMCheckpoint -Name $CheckpointName -VMName $VMName -Confirm:$False + if ($Silent) { + Get-TrackerVMSetStatus $Enum.VMStatus.Ready $VM -Silent + } else { + Get-TrackerVMSetStatus $Enum.VMStatus.Ready $VM + } +} + +Function Complete-TrackerVM { + Param( + [Parameter(mandatory = $True)][int]$vm, + $VMFolder = "$MainFolder\vm\$vm", + $filesFileName = "$VMFolder\files.txt" + ) + Test-Admin + Get-TrackerVMSetStatus $Enum.VMStatus.Completing $VM + Stop-Process -id ((Get-ConnectedVM)|Where-Object {$_.VM -match (& $VMNameSB)}).id -ErrorAction Ignore + Stop-TrackerVM $VM + Get-RemoveFileIfExist $filesFileName + Get-TrackerVMRevert $VM -Silent + Get-TrackerVMSetStatus $Enum.VMStatus.Ready $VM $Enum.Char.Space 1 $Enum.VMStatus.Ready +} + +Function Stop-TrackerVM { + Param( + [Parameter(mandatory = $True)][int]$vm, + $VMName = (& $VMNameSB) + ) + Test-Admin + Stop-VM $VMName -TurnOff +} + +#VM Status +Function Get-TrackerVMSetStatus { + Param( + [ValidateScript( { $_ -in (Get-Keys $Enum.VMStatus)} )][string]$Status = $Enum.VMStatus.Complete, + [Parameter(mandatory = $True)]$VM, + [string]$PackageIdentifier, + [Parameter(ValueFromPipeline)][int]$PR, + [ValidateScript( { $_ -in (Get-Keys $Enum.VmModes)} )][string]$Mode, + [Switch]$Silent + ) + $out = Get-Status + if ($VM -notmatch $Enum.Strings.Win) { + if ($Status) { + ($out | Where-Object {$_.vm -eq $VM}).Status = $Status + } + if ($PackageIdentifier) { + ($out | Where-Object {$_.vm -eq $VM}).Package = $PackageIdentifier + } + if ($PR) { + ($out | Where-Object {$_.vm -eq $VM}).PR = $PR + } + if ($Mode) { + ($out | Where-Object {$_.vm -eq $VM}).Mode = $Mode + } + if ($Silent) { + Write-Status $out -Silent + } else { + + Write-Status $out + Write-Host "Setting $VM $PackageIdentifier $PR state $Status" + }; #end if Status + }; #end if VM +} + +Function Get-Status { + Param( + [int]$VM, + [ValidateScript( { $_ -in (Get-Keys $Enum.VMStatus) } )][string]$Status, + [ValidateScript( { $_ -in $Enum.VMOS.Win11 } )][string]$OS, + [string]$PackageIdentifier, + [Parameter(ValueFromPipeline)][int]$PR, + [ValidateScript( { $_ -in (Get-Keys $Enum.VmModes)} )][string]$Mode, + $RAM, + $out = (Get-Content $StatusFile | ConvertFrom-Csv) + ) + if ($VM) {$out = ($out | Where-Object {$_.vm -eq $VM})} + if ($Status) {$out = ($out | Where-Object {$_.Status -eq $Status})} + if ($OS) {$out = ($out | Where-Object {$_.OS -eq $OS})} + if ($PackageIdentifier) {$out = ($out | Where-Object {$_.Package -eq $PackageIdentifier})} + if ($PR) {$out = ($out | Where-Object {$_.PR -eq $PR})} + if ($Mode) {$out = ($out | Where-Object {$_.Mode -eq $Mode})} + if ($RAM) {$out = ($out | Where-Object {$_.RAM -eq $RAM})} + Return $out +} + +Function Get-TrackerVMResetStatus { + $VMs = (Get-Status -Status Ready -RAM 0).VM + $VMs += (Get-Status -Status Ready -PackageIdentifier $Enum.Char.Blank).VM + Foreach ($VM in $VMs) { + Get-TrackerVMSetStatus Complete $VM + } + if (!(Get-ConnectedVM)){ + Get-Process *vmwp* | Stop-Process + } +} + +Function Get-TrackerVMRebuildStatus { + $Status = Get-VM | + Where-Object {$_.name -notmatch "vm0"} | + Where-Object {$_.name -notmatch $Enum.VMOS.Win10} | + Where-Object {$_.name -notmatch $Enum.VMOS.Win11} | + Select-Object @{n =$Enum.Strings.Vm; e = {$_.name -replace $Enum.Strings.Vm,$null}}, + @{n = $Enum.Columns.Status; e = {$Enum.VMStatus.Ready}}, + @{n = $Enum.Columns.version; e = {(Get-TrackerVMVersion -OS $Enum.VMOS.Win11)}}, + @{n = $Enum.Columns.OS; e = {$Enum.VMOS.Win11}}, + @{n = $Enum.Columns.Package; e = {$Enum.Char.Blank}}, + @{n = $Enum.Columns.PR; e = {"1"}}, + @{n = $Enum.Columns.Mode; e = {$Enum.VmModes.Unknown}}, + @{n = $Enum.Columns.RAM; e = {"0"}} + Write-Status $Status +} + +Function Get-TrackerVMProcess { + Param( + [int]$vm + ) + return (Get-process *vmwp* -IncludeUserName) | where {($_.username -replace "NT VIRTUAL MACHINE\\",$Enum.Char.Blank) -match (Get-VM (& $VMNameSB)).vmid} +} + +#VM Versioning +Function Get-TrackerVMVersion { + Param( + [ValidateScript( { $_ -in $Enum.VMOS.Win11 } )][string]$OS = $Enum.VMOS.Win11, + [int]$VM = ((Get-Content $VMversion | ConvertFrom-Csv | Where-Object {$_.OS -eq $OS}).version) + ) + Return $VM +} + +Function Get-TrackerVMSetVersion { + Param( + [int]$Version, + [ValidateScript( { $_ -in $Enum.VMOS.Win11 } )][string]$OS = $Enum.VMOS.Win11, + $Versions = (Get-Content $VMversion | ConvertFrom-Csv) + ) + ($Versions | Where-Object {$_.OS -eq $OS}).Version = $Version + $Versions | ConvertTo-Csv|Out-File $VMversion +} + +Function Get-TrackerVMRotate { + Param( + $status = (Get-Status), + $OS = $Enum.VMOS.Win11, + $VMs = ($status | Where-Object {$_.version -lt (Get-TrackerVMVersion -OS $OS)} | Where-Object {$_.OS -eq $OS}) + ) + if ($VMs){ + if (!(($status | Where-Object {$_.status -ne $Enum.VMStatus.Ready}).Count)) { + Get-TrackerVMSetStatus Regenerate ($VMs.VM | Get-Random) + } + } +} + +#VM Orchestration +Function Get-TrackerVMCycle { + Param( + $VMs = (Get-Status) + ) + Foreach ($VM in $VMs) { + $vmNum = $Enum.Strings.Vm + $vm.vm + Switch ($VM.status) { + $Enum.VMStatus.AddVCRedist { + Add-ToValidationFile $VM.vm + Suspend-VM -Name $vmNum + } + $Enum.VMStatus.Approved { + Suspend-VM -Name $vmNum + #Add-Waiver $VM.PR + #Add-PRToRecord -PR $PR -Action $Enum.PRActions.Manual -Title $PRtitle + $PRLabels = ((Invoke-GitHubPRRequest -PR $VM.PR -Type $Enum.prRequestTypes.Labels -Output $Enum.PRRequestOutput.Content -JSON).name) -join $Enum.Char.Space + if ($PRLabels -match $Enum.PRLabels.VC) { + Approve-PR -PR $VM.PR + } else { + Get-CompletePR -PR $VM.PR + } + Get-TrackerVMSetStatus $Enum.VMStatus.Complete $VM.vm + } + $Enum.VMStatus.CheckpointReady { + Redo-Checkpoint $VM.vm + } + $Enum.VMStatus.Complete { + Suspend-VM -Name $vmNum + if (($VMs | Where-Object {$_.vm -eq $VM.vm} ).version -lt (Get-TrackerVMVersion -OS $VM.os)) { + Get-TrackerVMSetStatus $Enum.VMStatus.Regenerate $VM.vm + } else { + Complete-TrackerVM $VM.vm + } + } + $Enum.VMStatus.Disgenerate { + Suspend-VM -Name $vmNum + Get-PipelineVmDisgenerate $VM.vm + } + $Enum.VMStatus.DoesntRun { + Suspend-VM -Name $vmNum + Get-SendStatus -Status $Enum.VMStatus.Complete + } + $Enum.VMStatus.Feedback { + Suspend-VM -Name $vmNum + Get-AddPRLabel -PR $VM.PR -LabelName $Enum.PRLabels.NAF + Get-TrackerVMSetStatus $Enum.VMStatus.Complete $VM.vm + } + $Enum.VMStatus.Revert { + Suspend-VM -Name $vmNum + Get-TrackerVMRevert $VM.vm + } + $Enum.VMStatus.Regenerate { + Suspend-VM -Name $vmNum + Get-PipelineVmDisgenerate $VM.vm + Get-PipelineVmGenerate -OS $VM.os + } + $Enum.VMStatus.SendStatusApproved { + Suspend-VM -Name $vmNum + Get-SendStatus -Status $Enum.VMStatus.Approved + } + $Enum.VMStatus.SendStatusComplete { + Suspend-VM -Name $vmNum + Get-SendStatus -Status $Enum.VMStatus.Complete + } + $Enum.VMStatus.SendStatusFeedback { + Suspend-VM -Name $vmNum + Get-SendStatus -Status $Enum.VMStatus.Feedback + } + $Enum.VMStatus.SendStatus { + Suspend-VM -Name $vmNum + Get-SendStatus -Status $Enum.VMStatus.Complete + } + default { + } + }; #end switch + } +} + +Function Get-TrackerVMMode { + Param( + $mode = (Get-Content $TrackerModeFile) + ) + $mode +} + +Function Get-TrackerVMSetMode { + Param( + [ValidateScript( { $_ -in (Get-Keys $Enum.TrackerModes) } )][string]$Mode = $Enum.TrackerModes.Validating + ) + $Mode | Out-File $TrackerModeFile -NoNewLine +} + +Function Get-ConnectedVM { + Test-Admin + (Get-Process *vmconnect*) | Select-Object id, @{n = $Enum.Strings.Vm; e = {ForEach-Object{$_.mainwindowtitle[$Enum.Index.First..5] -join $Enum.Char.Blank}}} +} + +Function Get-NextFreeVM { + Param( + [ValidateScript( { $_ -in $Enum.VMOS.Win11 } )][string]$OS = $Enum.VMOS.Win11, + $Status = $Enum.VMStatus.Ready + ) + Test-Admin + try { + $out_status = Get-Status + $out_status = $out_status | Where-Object {$_.OS -eq $OS} + $out_status = ($out_status | Where-Object {$_.version -eq (Get-TrackerVMVersion -OS $OS)} | Where-Object {$_.status -eq $Status}).vm + $out_status = $out_status |Get-Random -ErrorAction SilentlyContinue + return $out_status; + } catch { + Write-Host "No available $OS VMs" + return $Enum.Num.Zero + } +} + +Function Redo-Checkpoint { + Param( + [Parameter(mandatory = $True)][int]$VM, + $VMName = (& $VMNameSB) + ) + Test-Admin + Get-TrackerVMSetStatus $Enum.VMStatus.Checkpointing $VM + Remove-VMCheckpoint -Name $CheckpointName -VMName $VMName + Checkpoint-VM -SnapshotName $CheckpointName -VMName $VMName + Get-TrackerVMSetStatus $Enum.VMStatus.Complete $VM +} + +Function Get-StopStuckVMs { + Param( + $VMsToStop = (Get-Status -Status Completing).VM + ) + if ($VMsToStop) { + $VMsToStop | %{Get-TrackerVMProcess $_ | Stop-Process -Force} + } +} + +#File Management +Function Get-SecondMatch { + Param( + $clip = (Get-CleanClipboard), + $depth = 1 + ) + #If $current and $prev don't match, return the $prev element, which is $depth lines below the $current line. Start at $clip[$depth] and go until the end - this starts $current at $clip[$depth], and $prev gets moved backwards to $clip[$Enum.Index.First] and moves through until $current is at the end of the array, $clip[$clip.Length], and $prev is $depth previous, at $clip[$clip.Length - $depth]. + for ($depthUnit = $depth; $depthUnit -lt $clip.Length; $depthUnit++){ + $current = ($clip[$depthUnit] -split ": ")[$Enum.Index.First] + $prevUnit = $clip[$depthUnit - $depth] + $Prev = ($prevUnit -split ": ")[$Enum.Index.First] + if ($current -ne $Prev) { + $prevUnit + } + } + #Then complete the last $depth items of the array by starting at $clip[-$depth] and work backwards through the last items in reverse order to $clip[$Enum.Index.Last]. + for ($depthUnit = $depth ; $depthUnit -gt $Enum.Num.Zero; $depthUnit--){ + $clip[-$depthUnit] + } +} + +Function Get-SendStatus { + Param( + $PR, + [ValidateScript( { $_ -in (Get-Keys $Enum.VMStatus)} )][string]$Status = $Enum.VMStatus.Complete, + $SharedError = ((Get-Content $SharedErrorFile) -split $Enum.Char.LineBreak) + ) + $SharedError = $SharedError -replace $Enum.Char.CarriageReturn,$Enum.Char.Blank + $SharedError = $SharedError -replace $Enum.SendStatusReplace.Caller1,$Enum.Char.Blank + $SharedError = $SharedError -replace $Enum.SendStatusReplace.Caller2,$Enum.Char.Blank + $SharedError = $SharedError -replace $Enum.SendStatusReplace.Exception1,$Enum.Char.Blank + $SharedError = $SharedError -replace $Enum.SendStatusReplace.Exception2,$Enum.Char.Blank + $SharedError = $SharedError -replace $Enum.SendStatusReplace.Exception4,$Enum.Char.Blank + $SharedError = $SharedError -replace $Enum.SendStatusReplace.Tid,$Enum.Char.Blank + $SharedError = $SharedError -replace $Enum.SendStatusReplace.LongFilepath,$Enum.Char.Blank + $SharedError = $SharedError -join $Enum.Char.LineBreakMDQuote + #$SharedError = Get-AutomatedErrorAnalysis $SharedError + if ((($SharedError -join $Enum.Char.Space) -match $Enum.StandardPRComments.SecurityCheck) -OR (($SharedError -join $Enum.Char.Space) -match $enum.Strings.DetectedOneDefender)) { + Get-AddPRLabel -PR $PR -LabelName $Enum.PRLabels.VDE + } + Reply-ToPR -PR $VM.PR -UserInput $SharedError -CannedMessage $Enum.CannedMessages.ManValEnd + Get-TrackerVMSetStatus -Status $Status -VM $VM.vm +} + +Function Get-TrackerVMRotateLog { + $logYesterDate = (Get-Date -f dd) - 1 + Move-Item "$writeFolder\logs\$logYesterDate" "$logsFolder\$logYesterDate" +} + +Function Get-RemoveFileIfExist { + Param( + $FilePath, + [switch]$remake, + [switch]$Silent + ) + if (Test-Path $FilePath) {Remove-Item $FilePath -Recurse} + if ($Silent) { + if ($remake) {$null = New-Item -ItemType Directory -Path $FilePath} + } else { + if ($remake) {New-Item -ItemType Directory -Path $FilePath} + } + +} + +Function Get-LoadFileIfExists { + Param( + $FileName, + $FileContents, + [Switch]$Silent + ) + if (Test-Path $FileName) { + $FileContents = Get-Content $FileName | ConvertFrom-Csv + if (!($Silent)) { + Write-Host "Loaded $($FileContents.Count) entries from $FileName." -f green + Return $FileContents + } + } else { + if (!($Silent)) { + Write-Host "File $FileName not found!" -f red + } + } +} + +Function Get-ManifestEntryCheck { + Param( + $PackageIdentifier, + $Version, + $Entry = $Enum.Strings.DisplayVersion + ) + $content = Get-FileFromGitHub $PackageIdentifier $Version + $out = ($content | Where-Object {$_ -match $Entry}) + if ($out) {$True} else {$False} +} + +#Commit +Function Get-CommitFile { + Param( + $PR = (Get-CleanClipboard), + $Commit = (Invoke-GitHubPRRequest -PR $PR -Type commits -Output $Enum.PRRequestOutput.Content -JSON), + [ValidateScript( { $_ -in (Get-Keys $Enum.ManifestFileTypes) } )][string]$MatchName = $Enum.ManifestFileTypes.Root, + $PRData = (Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$pr" -JSON), + $PackageIdentifier = (($Commit.files.filename -split $Enum.Char.Slash)[$Enum.Index.Last] -replace $Enum.ManifestFileExtension.Installer,$Enum.Char.Comma -replace $Enum.ManifestFileExtension.Locale,$Enum.Char.Comma -replace $Enum.ManifestFileExtension.Root,$Enum.Char.Comma -split $Enum.Char.Comma)[$Enum.Index.First], + $FileList = ($Commit.files.contents_url | where {$_ -match $MatchName} | where {$_ -match [System.Web.HttpUtility]::UrlEncode($PackageIdentifier)}), + # [int]$VM = (Get-NextFreeVM), + [int]$VM, + [ValidateScript( { $_ -in (Get-Keys $Enum.CommitFileModes) } )][string]$Mode = $Enum.CommitFileModes.Default, + [switch]$Deparent, + [switch]$WhatIf + ) + if ($VM) { + Write-Host "Starting PR $PR on VM $VM for CommitFile" + } + if ($WhatIf) { + if ($Commit.Length -lt 1) { + Write-Host "Commit $Commit" + } + if ($PRData.Length -lt 1) { + Write-Host "PRData $PRData" + } + if ($FileList.Length -lt 1) { + Write-Host "FileList $FileList" + } + } + + if (!($Deparent)) { + #Count leading pluses or minuses to see if it's addition or removal PR. If removal, goto parent. + $commitfilespatch = $commit.files.patch -split $Enum.Char.LineBreak + $removeCount = ($commitfilespatch | Where {$_ -notmatch $Enum.Char.Ampersand} | Where {$_[$Enum.Index.First] -match $Enum.Char.Dash} | Measure-Object).Count + $AtCount = ($commitfilespatch | Where {$_[$Enum.Index.First] -match $Enum.Char.Ampersand} | Measure-Object).Count + if (($AtCount + $RemoveCount) -eq $commitfilespatch.Count) { + $Mode = $Enum.CommitFileModes.Parent + } + } + $manifestFolder = "$MainFolder\vm\$vm\manifest" + if ($VM -gt $Enum.Num.Zero) { + if (!($Silent)) {Write-Host $Enum.Strings.RemovingPreviousManifestAndAddingCurrent} + Get-RemoveFileIfExist "$manifestFolder" -remake -Silent + } + + switch ($Mode) { + $Enum.CommitFileModes.Patch { + Write-Host $Enum.Strings.ReturningPatch + $commit.files.patch + } + $Enum.CommitFileModes.Parent { + $parentCommit = Invoke-GitHubRequest -Uri $Commit.parents.url + # Write-Host "parentCommit count: $($parentCommit.Count)" + $parentcontent = $parentCommit.content | convertfrom-json + # Write-Host "parentCommit.content count: $($parentcontent.Count)" + $parentcontent = ($parentcontent.files.patch -split $Enum.Char.LineBreak) -replace "^\+",$Enum.Char.Blank + # Write-Host "parentcontent.files.patch count: $($parentcontent.Count)" + $parentcontent = $parentcontent -join $Enum.Char.LineBreak + # Write-Host "parentcontent -join count: $($parentcontent.Count)" + $parentcontent = $parentcontent -split $Enum.Char.DoubleAmpersand + # Write-Host "parentcontent -split count: $($parentcontent.Count)" + if ($parentcontent.Count -lt 3) { + Write-Host "File count $($file.Count) is too low." + Sleep $enum.Num.Ten + } else { + + foreach ($file in $parentcontent) { + $file = $file -split $Enum.Char.LineBreak + # Write-Host "file: $($file.Count)" + $file + # Write-Host "file: $file" + if ($file.Count -gt 5) { + if ($VM -gt $Enum.Num.Zero) { + Write-Host "Starting PR $PR on VM $VM for file $file" + Get-ManifestFile -vm $VM -PR $PR -clip $file + } else { + $file -join $Enum.Char.LineBreak + }; #end if VM + } + }; # Forech file + } + } + default { + If ($FileList) { + foreach ($File in $FileList) { + if ($WhatIf) {Write-Host "$($MyInvocation.MyCommand.name) File: $File"} + try { + $EncodedFile = (invoke-GithubRequest -Uri $File -JSON) + } catch { + Write-Host $error[$Enum.Index.First].Message + } + $DecodedFile = Get-DecodeGitHubFile $EncodedFile.content + if ($VM -gt $Enum.Num.Zero) { + if ($FileList.Count -eq $Enum.Num.One) { + Write-Host "Starting PR $PR on VM $VM for InstallerFileAutomation - FileList.Count $($FileList.Count)" + Get-InstallerFileAutomation -PR $PR + Return + } else { + Write-Host "Starting PR $PR on VM $VM for DecodedFile - FileList.Count $($FileList.Count)" + Get-ManifestFile -vm $VM -PR $PR -clip $DecodedFile + } + } else { + $DecodedFile -join $Enum.Char.LineBreak + }; #end if VM + }; #end foreach Filelist + } else { + Write-Host "FileList empty: $FileList" + Get-CommitFile -PR $PR -Mode parent + } + }#end default + } +} + +Function Get-DecodeGitHubFile { + Param( + [string]$Base64String, + $Bits = ([Convert]::FromBase64String($Base64String)), + $String = ([System.Text.Encoding]::UTF8.GetString($Bits)) + ) + return $String -split $Enum.Char.LineBreak +} + +Function Get-PatchedValidation { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [int]$VM = ((Get-NextFreeVM) -replace $Enum.Strings.Vm,$Enum.Char.Blank), + $commit = (Invoke-GitHubPRRequest -PR $PR -Type commits -Output $Enum.PRRequestOutput.Content -JSON) + ) + while ($commit.files.Length -eq $Enum.Num.Zero) { + if ($PatchedValidationIteration -gt 3) { + Write-Host "Infinte Loop Detected after $PatchedValidationIteration iterations." + Return + } + Write-Host "Fetching commit - Iteration $PatchedValidationIteration" + $commit = (Invoke-GitHubRequest -Uri $commit.parents.url -JSON) + $PatchedValidationIteration++ + } + $PackageIdentifier = ($commit.files[$Enum.Index.First].filename -split $Enum.Char.Slash)[$Enum.Index.Last] -replace $Enum.ManifestFileExtension.Installer,$Enum.Char.Blank -replace $Enum.ManifestFileExtension.LocaleEnUS,$Enum.Char.Blank -replace $Enum.ManifestFileExtension.Root,$Enum.Char.Blank + $SuffixList = (Get-ManifestListing $Packageidentifier) + foreach ($Suffix in $SuffixList) { + Write-Host "Fetching Suffix $Suffix" + $file = Get-PatchedFile -PR $PR -Suffix $Suffix -commit $commit + Get-ManifestFile -VM $VM -PR $PR -clip $file + + } +} + +Function Get-PatchedFile { + Param( + [Parameter(ValueFromPipeline)][int]$PR = (Get-CleanClipboard), + [int]$vm = ((Get-NextFreeVM) -replace $Enum.Strings.Vm,$Enum.Char.Blank), + $Suffix = $Enum.ManifestFileTypes.installeryaml, + $commit = (Invoke-GitHubPRRequest -PR $PR -Type commits -Output $Enum.PRRequestOutput.Content -JSON), + [Switch]$WhatIF, + [Switch]$InnerWhatIF + ) + $n = $Enum.Num.Zero + while ($commit.files.Length -eq $Enum.Num.Zero) { + $commit = (Invoke-GitHubRequest -Uri $commit.parents.url -JSON) + if ($WhatIF) { + Write-Host "Get-PatchedFile commit parents Iteration $n" + $n++ + } + } + $patch = ($commit.files | where {$_.filename -match $Suffix}).patch -join $Enum.Char.Blank -split $Enum.Char.LineBreak + $PackageIdentifier = ($commit.files[$Enum.Index.First].filename -split $Enum.Char.Slash)[$Enum.Index.Last] -replace $Enum.ManifestFileExtension.Installer,$Enum.Char.Blank -replace $enum.ManifestFileExtension.LocaleEnUS,$Enum.Char.Blank -replace $Enum.ManifestFileExtension.Root,$Enum.Char.Blank + if ($WhatIF) { + Write-Host "PackageIdentifier: $PackageIdentifier" + } + $PackageVersion = (Get-ManifestListing $PackageIdentifier -ListVersions)[$Enum.Index.Last] + $file = Get-FileFromGitHub -PackageIdentifier $PackageIdentifier -Version $PackageVersion -Suffix $Suffix + if ($InnerWhatIF) { + Get-InnerPatchedFile -File $file -Patch $patch -WhatIf + } else { + Get-InnerPatchedFile -File $file -Patch $patch + } + +} + +Function Get-InnerPatchedFile { + Param( + # [int]$PR, + $File, + $Patch, + [switch]$WhatIf + ); + $Loop = 1 + $AddedLines = $Enum.Num.Zero + $HunkData = $Patch -join "%%" -split $Enum.Char.DoubleAmpersand + $HunkDataCount = $HunkData.Length -1 + if ($WhatIF) { + Write-Host "PatchDataCount $HunkDataCount" + Write-Host "`n`n`nInput File" + $File + } + for ($Hunk = $Enum.Index.Second; $Hunk -lt $HunkDataCount; $Hunk += $Enum.Num.Two) { + $Loop = ($Hunk/$Enum.Num.Two) + .5 + if ($WhatIF) { + Write-Host "`n`n`n = = = = = = = = = = = = = = = = Loop $Loop = = = = = = = = = = = = = = = = " + Write-Host "AddedLines before $AddedLines" + } + $RemoveData = ($HunkData[$Hunk] -replace $Enum.Char.Ampersand,$Enum.Char.Blank -replace $Enum.Char.Dash,$Enum.Char.Blank -replace "\+",$Enum.Char.Blank -split $Enum.Char.Space -split $Enum.Char.Comma) + [int]$RemoveStart = $RemoveData[$Enum.Index.Second] - 1 + $AddedLines + [int]$RemoveEnd = $RemoveStart + $RemoveData[$Enum.Num.Two] + [int]$ReplaceStart = $RemoveData[3] - 1 + $AddedLines + [int]$ReplaceEnd = $ReplaceStart + $RemoveData[4] + # $AddedLines += $RemoveData[4] - $RemoveData[$Enum.Num.Two] + $HunkChange = $HunkData[$Hunk + 1] -split "%%" + + if ($WhatIF) { + Write-Host "AddedLines after $AddedLines" + Write-Host "RemoveData $RemoveData" + Write-Host "RemoveData2 $RemoveStart $RemoveEnd $ReplaceStart $ReplaceEnd" + + Write-Host "HunkChange: $($HunkChange.Length)" + # $HunkChange + [array]$HunkChange = $HunkChange -split $Enum.Char.LineBreak + for ($Line = 0; $Line -lt $HunkChange.Length; $Line++) { + Write-Host "$($Line): $($HunkChange[$Line])" + }#end foreach Line + } + $ReplaceHunk = ($HunkChange | where {$_ -notmatch "^[-]"} | %{$_[$Enum.Index.Second..$_.Length] -join $Enum.Char.Blank}) + $ReplaceHunk = $ReplaceHunk[$Enum.Index.Second..($RemoveData[4])] + if ($WhatIF) { + Write-Host "RemoveHunk: $($RemoveEnd - $RemoveStart)" + [array]$FileArray = $File -split $Enum.Char.LineBreak + for ($Line = $RemoveStart; $Line -lt $RemoveEnd; $Line++) { + Write-Host "$($Line): $($FileArray[$Line])" + }#end foreach Line + + Write-Host "ReplaceHunk: $($ReplaceHunk.Length)" + [array]$ReplaceHunk = $ReplaceHunk -split $Enum.Char.LineBreak + for ($Line = 0; $Line -lt $ReplaceHunk.Length; $Line++) { + Write-Host "$($Line + $ReplaceStart): $($ReplaceHunk[$Line])" + }#end foreach Line + } + if ($ReplaceStart -eq 0) { + if ($WhatIF) {Write-Host "File Change: `$ReplaceHunk + `$File[$ReplaceEnd..$($File.Length)]"} + $File = $ReplaceHunk[$Enum.Index.First..$ReplaceHunk.Length] + $File[$ReplaceEnd..$File.Length] + } else { + if ($WhatIF) {Write-Host "File Change: `$File[$($Enum.Index.First)..$ReplaceStart] + `$ReplaceHunk + `$File[$ReplaceEnd..$($File.Length)]"} + $File = $File[$Enum.Index.First..($ReplaceStart -1)] + $ReplaceHunk + $File[($ReplaceEnd -1)..$File.Length] + } #end if ReplaceStart + if ($WhatIF) { + # $AddedLines += $ReplaceHunk.Length - ($RemoveEnd - $RemoveStar) + # $AddedLines += $RemoveData[4] - $RemoveData[2] + # Write-Host "AddedLines: $AddedLines" + + Write-Host "`nFile after Loop $Loop " + [array]$FileArray = $File -split $Enum.Char.LineBreak + for ($Line = 0; $Line -lt $FileArray.Length; $Line++) { + Write-Host "$($Line): $($FileArray[$Line])" + }#end foreach Line + }#end whatif + }#end for inc + if ($WhatIF) { + Write-Host "`n`n`nOutput File" + } + return $File + +} + +#Inject dependencies +Function Add-ToValidationFile { + Param( + [Parameter(mandatory = $True)][int]$vm, + [ValidateScript( { $_ -in (Get-Keys $Enum.Dependencies) } )][string]$Common = $Enum.Dependencies.VCRedist, + $Dependency = $Common, + $VMFolder = "$MainFolder\vm\$vm", + $manifestFolder = "$VMFolder\manifest", + $FilePath = "$manifestFolder\Package.installer.yaml", + $fileContents = (Get-Content $FilePath), + $Selector = "Installers:", + $offset = 1, + $lineNo = (($fileContents | Select-String $Selector -List).LineNumber -$offset), + $fileInsert = "Dependencies:`n PackageDependencies:`n - PackageIdentifier: $Dependency", + $fileOutput = ($fileContents[$Enum.Index.First..($lineNo -1)] + $fileInsert + $fileContents[$lineNo..($fileContents.Length)]) + ) + Write-Host "Writing $($fileContents.Length) lines to $FilePath" + Out-File -FilePath $FilePath -InputObject $fileOutput + Get-TrackerVMSetStatus $Enum.VMStatus.Revert $VM; +} + +Function Add-InstallerSwitch { + Param( + [Parameter(mandatory = $True)][int]$vm, + $Data = '/qn', + $Selector = "ManifestType:", + [ValidateSet("EXE","MSI","MSIX","Inno","Nullsoft","InstallShield")] + [string]$InstallerType + + ) + switch ($InstallerType) { + "MSIX"{ + $Data = '/quiet' + } + "Inno"{ + $Data = '/SILENT' + } + "Nullsoft"{ + $Data = '/S' + } + "InstallShield"{ + $Data = '/s' #or -s + } + } + $fileInsert = " InstallerSwitches:`n Silent: $Data" + Add-ToValidationFile $VM -Selector $Selector -fileInsert $fileInsert #-Force +} + +Function Get-UpdateHashInPR { + Param( + $PR, + $ManifestHash, + $PackageHash, + $LineNumbers = ((Get-CommitFile -PR $PR | Select-String $ManifestHash).LineNumber), + $ReplaceString = (" InstallerSha256: $($PackageHash.toUpper())"), + $comment = "``````suggestion`n$ReplaceString`n```````n`n(Deterministic automation - build $build.)" + ) + foreach ($Line in $LineNumbers) { + Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Action $Enum.PRLabels.NAF + } +} + +Function Get-UpdateHashInPR2 { + Param( + $PR, + $Clip = (Get-CleanClipboard), + $SearchTerm = "Expected hash", + $ManifestHash = (Get-YamlValue $SearchTerm -Clip $Clip), + $LineNumbers = ((Get-CommitFile -PR $PR | Select-String $ManifestHash).LineNumber), + $ReplaceTerm = "Actual hash", + $ReplaceString = (" InstallerSha256: " + (Get-YamlValue $ReplaceTerm -Clip $Clip).toUpper()), + $comment = "``````suggestion`n$ReplaceString`n```````n`n(Deterministic automation - build $build.)" + ) + foreach ($Line in $LineNumbers) { + Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Action $Enum.PRLabels.NAF + } +} + +Function Get-UpdateArchInPR { + Param( + $PR, + $SearchTerm = " Architecture: $($Enum.Arch.86)", + $LineNumbers = ((Get-CommitFile -PR $PR | Select-String $SearchTerm).LineNumber), + [string]$ReplaceTerm = (($SearchTerm -split ": ")[$Enum.Index.Second]), + [ValidateScript( { $_ -in (Get-Keys $Enum.Arch) } )] + [string]$ReplaceArch = (($Enum.Arch.86,$Enum.Arch.64) | where {$_ -notmatch $ReplaceTerm}), + $ReplaceString = ($SearchTerm -replace $ReplaceTerm,$ReplaceArch), + $comment = "``````suggestion`n$ReplaceString`n```````n`n(Deterministic automation - build $build.)" + ) + foreach ($Line in $LineNumbers) { + Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Action $Enum.PRLabels.NAF + } +} + +Function Add-DependencyToPR { + Param( + $PR, + $Dependency = $Enum.Dependencies.VCRedist, + $SearchString = "Installers:", + $LineNumbers = ((Get-CommitFile -PR $PR | Select-String $SearchString).LineNumber), + $ReplaceString = "Dependencies:`n PackageDependencies:`n - PackageIdentifier: $Dependency`nInstallers:", + $comment = "``````suggestion`n$ReplaceString`n```````n`n(Deterministic automation - build $build.)" + ) + $out = $Enum.Char.Blank + foreach ($Line in $LineNumbers) { + $out += Add-GitHubReviewComment -PR $PR -Comment $comment -Line $Line -Action $Enum.PRLabels.NAF + } +} + +#PR Queue +Function Add-PRToQueue { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + $PRExclude = ((Get-Content $PRExcludeFile) -split $Enum.Char.LineBreak) + ) + process { + if ($PRExclude -notcontains $PR) { + $PR | Out-File $PRQueueFile -Append + } + } +} + +Function Get-PopPRQueue { + [array]$PRQueue = Get-Content $PRQueueFile + $PRQueue = $PRQueue -split $Enum.Char.LineBreak + $PRQueue = Get-Diff $PRQueue (Get-Status).PR + $out = $PRQueue[$Enum.Index.First] + $PRQueue = $PRQueue[$Enum.Index.Second..$PRQueue.Length] | Select-Object -unique + $PRQueue | Out-File $PRQueueFile + return $out +} + +Function Get-PRQueueCount { + $count = ((Get-Content $PRQueueFile) -split $Enum.Char.LineBreak).Count + return $count +} + +Function Get-CleanPRExcludeFile { + [array]$out = $null + Get-Content $PRExcludeFile | %{ + $PRData = (Invoke-GitHubRequest "$GitHubApiBaseUrl/pulls/$_" -JSON); if ($PRData.state -eq $Enum.PRStates.Open){ + $out += $_ + } + } + Out-File -InputObject $out -FilePath $PRExcludeFile +} + +Function Get-CleanPRFolder { + [array]$Images = ((Get-ChildItem $imagesFolder -Directory).name | where {$_ -notmatch $Enum.Strings.Win}) + $VMs = (Get-Status).vm + $VMs += 0 + $VMsToRemove = Get-Diff $Images $VMs + $VMsToRemove | %{Get-PipelineVmDisgenerate $_} +} + +#Reporting +Function Add-PRToRecord { + Param( + $PR, + [ValidateScript( { $_ -in (Get-Keys $Enum.PRActions)} )][string[]]$Action, + $Title + ) + $Title = ($Title -split $Enum.Char.Hash)[$Enum.Index.First] + "$PR,$Action,$Title" | Out-File $LogFile -Append +} + +Function Get-PRPopulateRecord { + Param( + $Logs = (Get-Content $LogFile | ConvertFrom-Csv -Header ($Enum.PRRecordHeaders.PR,$Enum.PRRecordHeaders.Action,$Enum.PRRecordHeaders.Title)) + ) + Foreach ($Log in $Logs) { + #Populate the Title column where blank, so all lines with the same PR number also have the same title, preventing the API calls for the lookup. + $Log.title = ($Logs | Where-Object {$_.title} | Where-Object {$_.PR -match $Log.PR}).title | Sort-Object -Unique + } + $Logs | ConvertTo-Csv|Out-File $LogFile +} + +Function Get-PRFromRecord { + Param( + [ValidateScript( { $_ -in (Get-Keys $Enum.PRActions)} )][string]$Action + ) + Get-PRPopulateRecord + (Get-Content $LogFile) | ConvertFrom-Csv -Header ($Enum.PRRecordHeaders.PR,$Enum.PRRecordHeaders.Action,$Enum.PRRecordHeaders.Title) | Where-Object {$_.Action -match $Action} +} + +Function Get-PRReportFromRecord { + Param( + [ValidateScript( { $_ -in (Get-Keys $Enum.PRActions)} )][string[]]$Action, + $out = $Enum.Char.Blank, + $line = 0, + $Record = ((Get-PRFromRecord $Action) | Sort-Object PR -Unique), + [switch]$NoClip + ) + + $LogContents = (Get-Content $LogFile | ConvertFrom-Csv | Where-Object {$_.Action -notmatch $Action} | ConvertTo-Csv) + Out-File -FilePath $LogFile -InputObject $LogContents + #Get everything that doesn't match the action and put it back in the CSV. + + Foreach ($PR in $Record) { + $Title = $PR.Title + $PR = $PR.PR + if (!($Title)) { + $Title = (Invoke-GitHubPRRequest -PR $PR -Type $Enum.Char.Blank -Output $Enum.PRRequestOutput.Content -JSON).title + } + Get-TrackerProgress -Activity ("$($MyInvocation.MyCommand.name) $Action") -ItemName $PR -ItemNumber $line -TotalItems $Record.Length; $line++ + $out += "$Title #$PR`n"; + } + if ($NoClip) { + return $out + } else { + $out | clip + } + Write-Progress -Completed +} + +Function Get-PRFullReport { + Param( + $Month = (Get-Culture).DateTimeFormat.GetMonthName((Get-Date).Month), + $Today = (get-date -f MMddyy), + $ReportName = "$logsFolder\$Month\$Today-Report.txt", + $HeaderList = ($Enum.PRActions.Feedback,$Enum.PRActions.Blocking,$Enum.PRActions.Waiver,$Enum.PRActions.Retry,$Enum.PRActions.Manual,$Enum.PRActions.Closed,$Enum.PRActions.Project,$Enum.PRActions.Squash,$Enum.PRActions.Approved) + # $HeaderList = (Get-Keys $Enum.PRActions) + ) + Write-Host "Generating report for $Today" + md "$logsFolder\$Month\Stats\" -ErrorAction SilentlyContinue + Copy-Item -Path $LogFile -Destination "$logsFolder\$Month\Stats\$Today-Report.csv" + $null | Out-File $ReportName + $HeaderList | %{ + $_ | Out-File $ReportName -Append; + Get-PRReportFromRecord $_ -NoClip | Out-File $ReportName -Append + } + Write-Host "Report for $Today complete" +} + +Function Get-RepoCountReport { + Param( + $Date = (Get-Date -Format "s"), + $Count = (((Find-WinGetPackage $Enum.Char.Blank) | Measure-Object).Count) + ) + $out = "`"$Date`", `"$Count`"" + Out-file -InputObject $out -FilePath $RepoCountFile -Append +} + +Function Get-RepoState { +"https://github.com/microsoft/winget-pkgs/pulls?page=1&q = repo%3Amicrosoft%2Fwinget-pkgs + is%3Apr + is%3Aopen + draft%3Afalse + sort%3Aupdated-asc + label%3ANew-Package" # NewPackages +"https://github.com/microsoft/winget-pkgs/issues?q = state%3Aopen%20label%3AInternal-Error-Dynamic-Scan%20sort%3Aupdated-asc&page=1" #IEDS +"https://github.com/microsoft/winget-pkgs/pulls?q = repo%3Amicrosoft%2Fwinget-pkgs + is%3Apr + is%3Aopen + draft%3Afalse + -label%3AProject-File + -label%3Ablocked-installertype + -label%3AAzure-Pipeline-Passed + -label%3AValidation-Completed + -label%3AModerator-Approved + -label%3ABlocking-Issue + -label%3AInternal-Error-Manifest + -label%3AValidation-Defender-Error + -label%3AChanges-Requested + -label%3ANeeds-CLA + -label%3ANo-Recent-Activity + -label%3ANeeds-Attention + -label%3ANeeds-Author-Feedback + -label%3ANeeds-Review + -label%3AValidation-Merge-Conflict + -label%3AUnexpected-File + -label%3ALast-Version-Remaining + sort%3Aupdated-asc+" #NoLabels +"https://github.com/microsoft/winget-pkgs/pulls?q = is%3Apr + is%3Aopen + sort%3Aupdated-asc + label%3AValidation-Installation-Error" #VIE + +$StartTotal = 710 +$NewPackages = 172 +$IEDS = 71 +$NoL = 115 +$VIE = 178 +$Remainder = $StartTotal - $NewPackages - $IEDS - $NoL - $vie + +"Label | Count | % +New | $NewPackages | $([math]::round( $NewPackages/ $StartTotal,2)*100)% +IEDS | $IEDS | $([math]::round( $IEDS/ $StartTotal,2)*100)% +No Labels | $NoL | $([math]::round( $NoL/ $StartTotal,2)*100)% +VIE | $VIE | $([math]::round( $VIE/ $StartTotal,2)*100)% +Remainder | $Remainder | $([math]::round( $Remainder/ $StartTotal,2)*100)% +Total | $StartTotal | $([math]::round( $StartTotal/ $StartTotal,2)*100)%" + +} + +Function Get-ApprovalStats { + Param( + [Parameter(ValueFromPipeline)][int]$Date = ((Get-Date).day) + # [Switch]$Debug + ) + Process { + # $ApprovalStats = Get-Content $ApprovalStatsFile | ConvertFrom-Csv + $ApprovalStats = Get-Content $ApprovalStatsFile | ConvertFrom-Csv | where {(get-date $_.DateTime).day -match $date} + $AverageArray = @() + for ($n = 0; $n -le $ApprovalStats.Length; $n++) { + $add = $Enum.Char.Blank | Select-Object @{n = $Enum.Char.X; e = {$ApprovalStats[$n].PRsApprovedDuringLastRun}},@{n = $Enum.Char.Y; e = {$ApprovalStats[$n].AvgSecPerPR}} + $AverageArray += $add + }; #end for n + $LinearRegression = Get-LinearRegression $AverageArray + if ($Debug) { Write-Host "LR.m: $($LinearRegression.m); LR.b: $($LinearRegression.b)"} + $SecondsPerMaxRun = $LinearRegression.m * 30 + $LinearRegression.b + if ($Debug) { Write-Host "SecondsPerMaxRun: $SecondsPerMaxRun"} + $secondsperday = 24*60*60 + $MaxPRsPerDay = $secondsperday/$SecondsPerMaxRun + if ($Debug) { Write-Host "MaxPRsPerDay: $MaxPRsPerDay"} + $count = (Get-YesterdayFormattedReport $Date | where {$_.action -eq "approved"}).Count; + $pct = $count / $MaxPRsPerDay * 100; + + $AvgPRsPerRun = ($ApprovalStats.PRsApprovedDuringLastRun | Measure-Object -Average).average + $AvgSecPerRun = ($ApprovalStats.LastRunTookSeconds | Measure-Object -Average).average + $AvgSecPerPR = $AvgSecPerRun / $AvgPRsPerRun + + # "DateTime","PRsApprovedDuringLastRun","LastRunTookSeconds","AvgSecPerPR","SleepUntil" + $out = $Enum.Char.Blank | Select-Object Date, MaxPRs, YesterdayPRs, Percent, AvgPRsPerRun, AvgSecPerRun, AvgSecPerPR + $out.Date = $Date + $out.MaxPRs = [math]::round($MaxPRsPerDay,$Enum.Num.Two) + $out.YesterdayPRs = $count + $out.Percent = [math]::round($Pct,$Enum.Num.Two) + $out.AvgPRsPerRun = [math]::round($AvgPRsPerRun,$Enum.Num.Two) + $out.AvgSecPerRun = [math]::round($AvgSecPerRun,$Enum.Num.Two) + $out.AvgSecPerPR = [math]::round($AvgSecPerPR,$Enum.Num.Two) + $out + } +} + +Function Get-RunDurationStats { + Param( + $Files = (Get-ChildItem $logsFolder -recurse -file -Filter "*.log"), + [switch]$Debug + ) +$Return = @() +Write-Host "Crunching $($Files.Count) log files..." +$ItemNumber = 0 +Foreach ($File in $Files) { + $out = $Enum.Char.Blank | Select-Object @{n = "DateTime"; e = {$SplitLog = ($File.FullName -split "\\"); + $year = $SplitLog[3]; $month = $SplitLog[4]; $Day = $SplitLog[5]; + $time = ((Get-Content $File)[$Enum.Index.Last] -split ": ")[$Enum.Index.First];Get-Date "$month/$day/$year $time"}}, @{n = "seconds"; e = {(((Get-Content $File)[$Enum.Index.Last] -split " in ")[$Enum.Index.Second] -split " seconds. ")[$Enum.Index.First]}} + $Return += $out + if ($Debug) { + Write-Host "Crunching file $($file.fullname)" + } else { + Get-TrackerProgress -Activity "Crunching log files..." -ItemName $file.fullname -ItemNumber $ItemNumber -TotalItems $Files.Count + $ItemNumber++ + } +} + +Return $Return +} + +Function Get-SuccessRates { + Param( + $LastMonth = (Get-Date (Get-Date).AddMonths(-1) -Format "MMMM") + ) + $out = @() + $MonthList = (Get-ChildItem "$logsFolder\$LastMonth\" -Directory).fullname + Foreach ($DayList in $MonthList) { + $DayStats = (Get-ChildItem $DayList).fullname | %{ + $file = Get-Content $_; + (($file[($file | Select-String $Enum.Strings.ManualValidation).LineNumber[$Enum.Index.Last] - 1] -split ": ")[$Enum.Index.Second] -replace "= " -split $Enum.Char.Space)[$Enum.Index.Second] + } + $Group = $DayStats | Group-Object | Select-Object Name, Count + + $Day = ($DayList -split "\\")[$Enum.Index.Last] + $New = ($Group | where {$_.name -match $Enum.SuccessType.New}).count + $Success = ($Group | where {$_.name -match $Enum.SuccessType.Success}).count + $Fail = ($Group | where {$_.name -match $Enum.SuccessType.Fail}).count + [int]$TotalCount = ($Group |%{$_.count} | Measure-Object -sum).sum + $SuccessRate = ($New + $Success) / $TotalCount + + + $mid = $Enum.Char.Blank | Select-Object @{n="Day";e={$Day}}, @{n="New";e={$New}}, @{n="Success";e={$Success}}, @{n="Fail";e={$Fail}}, @{n="TotalCount";e={$TotalCount}}, @{n="SuccessRate";e={$SuccessRate}} + $out += $mid + Write-Host "SuccessRates $LastMonth \ $Day found: $($file.count)" + } + $Day = "Totals" + [int]$New = ($out.("New") | Measure-Object -sum).sum + [int]$Success = ($out.("Success") | Measure-Object -sum).sum + [int]$Fail = ($out.("Fail") | Measure-Object -sum).sum + [int]$TotalCount = ($out.TotalCount | Measure-Object -sum).sum + $SuccessRate = ($New + $Success) / $TotalCount + + $mid = $Enum.Char.Blank | Select-Object @{n="Day";e={$Day}}, @{n="New";e={$New}}, @{n="Success";e={$Success}}, @{n="Fail";e={$Fail}}, @{n="TotalCount";e={$TotalCount}}, @{n="SuccessRate";e={$SuccessRate}} + $out += $mid + + Return $out +} + +Function Get-VMMinutesPerPackage { + Param( + [string]$Day = (Get-Date -Format "dd"), + [string]$Month = (Get-Date -Format "MMMM") + ) + $Path = "C:\ManVal\write\logs\$Month\$Day" + if (test-path $Path) { + $ChildItem = Get-ChildItem $Path + } else { + mkdir $Path + $ChildItem = Get-ChildItem $Path + } + + $count = $ChildItem.LastWriteTime.count + $LastWriteTime = $ChildItem.LastWriteTime | sort -Descending + $minutes = ($LastWriteTime[0] - $LastWriteTime[-1]).totalminutes + $MinutesEach = $minutes/$count + # Write-Host "Each PR takes : $MinutesEach" + Return $MinutesEach +} + +#Write +Function Write-ApprovalStats { + Param( + [string]$PRsApprovedDuringLastRun, + [string]$LastRunTookSeconds, + [string]$SleepUntil, + $DateTime = (get-date -f s), + [Switch]$Silent, + [Switch]$WhatIf + ) + # $out = "$DateTime,$PR, $Switch, $LineNos, $Trigger" | ConvertTo-Csv -NoHeader + + $out = $Enum.Char.Blank | Select-Object DateTime,PRsApprovedDuringLastRun,LastRunTookSeconds,AvgSecPerPR,SleepUntil + $out.DateTime = get-date $DateTime -f s + $out.PRsApprovedDuringLastRun = $PRsApprovedDuringLastRun + $out.LastRunTookSeconds = $LastRunTookSeconds + $out.AvgSecPerPR = $out.LastRunTookSeconds / $out.PRsApprovedDuringLastRun + $out.SleepUntil = $SleepUntil + $out = $out | ConvertTo-Csv -NoHeader + if ($WhatIf) { + Write-Host "WhatIF: Out-File $ApprovalStatsFile -Encoding unicode -Append" + Write-Host '"DateTime","PRsApprovedDuringLastRun","LastRunTookSeconds","AvgSecPerPR","SleepUntil"' + Write-Host $out + } else { + if (!($Silent)) { + Write-Host "Writing $($out.Length) characters to $ApprovalStatsFile." + } + if ($out.Length -gt 0) { + if ($out.PRsApprovedDuringLastRun -gt 0) { + $out | Out-File $ApprovalStatsFile -Append + } + } + } +} + +Function Write-Status { + Param( + $out, + [Switch]$Silent, + [Switch]$NoClobber, + $OutFile = $StatusFile + ) + if (!($Silent)) { + Write-Host "Writing $($out.Length) lines to $OutFile." + } + if ($out.Length -gt $Enum.Num.Zero) { + $out | ConvertTo-Csv | Out-File $OutFile -Encoding unicode + } +} + +Function Write-CovertReviewFile { + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [ValidateSet("Silent","SilentWithProgress","Interactive","InstallLocation","Log","Upgrade","Custom","Repair")] + [string]$Switch, + [string]$Trigger, + [string]$LineNos, + $DateTime = (get-date -f s), + [Switch]$Silent + ) + # $out = "$DateTime,$PR, $Switch, $LineNos, $Trigger" | ConvertTo-Csv -NoHeader + $out = $Enum.Char.Blank | Select-Object DateTime,PR,Switch,LineNos,Trigger + $out.DateTime = $DateTime + $out.PR = $PR + $out.Switch = $Switch + $out.LineNos = $LineNos + $out.Trigger = $Trigger + $out = $out | ConvertTo-Csv -NoHeader + if (!($Silent)) { + Write-Host "Writing $($out.Length) characters to $CovertReviewFile." + } + if ($out.Length -gt 0) { + $out | Out-File $CovertReviewFile -Append + } +} + +Function Write-Log { + Param( + [string]$logData, + [string]$ForegroundColor = "Gray", + [string]$Month = (Get-Culture).DateTimeFormat.GetMonthName((Get-Date).Month), + [string]$Today = (get-date -f MMddyy), + [string]$FileName = "$logsFolder\$Month\$Today-Approval.log", + [switch]$NoNewLine + ) + md "$logsFolder\$Month\" -ErrorAction SilentlyContinue + if ($NoNewLine) { + Write-Host $logData -ForegroundColor $ForegroundColor -NoNewLine + # Add-Content -LiteralPath $FileName -Value $logData + $logData | Out-File $FileName -Append -NoNewline # -Encoding unicode + } else { + Write-Host $logData -ForegroundColor $ForegroundColor + $logData | Out-File $FileName -Append # -Encoding unicode + } +}; + +#ExitCodes +Function Get-UpdateExitCodeFile { + Param( + $FileName = $ExitCodeFile, + $ExitCodes = (Get-Content $FileName | ConvertFrom-Csv) + ) + try { + $ExitCodes | %{$_.dec = [System.Convert]::ToInt32($_.Hex,16)} + } catch {} + try { + $ExitCodes | %{if ($_.dec -ge 0) {$_.invDec = $_.dec - 4GB}else {$_.invDec = $_.dec + 4GB}} + } catch {} + $ExitCodes | select "Hex","Dec","InvDec","Symbol","Description" -unique | sort hex | ConvertTo-Csv | clip +} + +Function Get-UpdateExitCodeFile2 { + Param( + $FileName = $ExitCodeFile, + $ExitCodes = (Get-Content $FileName | ConvertFrom-Csv) + ) + $ExitCodes = (Get-CleanClipboard) | convertFrom-Csv + for ($i = 0; $i -lt $ExitCodes.count; $i++){ + if ($ExitCodes[$i].hex -match $ExitCodes[$i+1].hex){ + if ($ExitCodes[$i].Symbol -eq "") { + $ExitCodes[$i].Symbol += $ExitCodes[$i+1].Symbol; + } + if ($ExitCodes[$i].Symbol -eq "") { + $ExitCodes[$i] = $null; + } + if ($ExitCodes[$i].Description -eq "") { + $ExitCodes[$i].Description += $ExitCodes[$i+1].Description; + }#end if ExitCodes.Description + if ($ExitCodes[$i].Description -eq "") { + $ExitCodes[$i] = $null; + } + }#end if ExitCodes.hex + } + $ExitCodes | select "Hex","Dec","InvDec","Symbol","Description" -unique | sort hex | ConvertTo-Csv | clip +} + +#Security +#region Data +$IPv4RegEx = "(((?!25?[6-9])[$Enum.Index.Second2]\d|[1-9])?\d\.?\b){4}" +$IPv6RegEx = "(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))" +#endregion + +Function Get-ManifestCovertReview { + Param( + $StringToReview = (Get-CleanClipboard), + [switch]$WhatIf + ) + $ReturnValue = $True + + # $Title = ($Clip -split " version ") + # $Version = ($Title[$Enum.Index.Second] -split " #") + # $PR = ($Version[$Enum.Index.Second]) + $PRtitle = $StringToReview | Select-String ($Enum.Regex.hashPRRegexEnd); + $PR = ($PRtitle -split $Enum.Char.Hash)[$Enum.Index.Second] + if ($WhatIF) {Write-Host "Reviewing PR $PR"} + + + $SwitchList = "Silent","SilentWithProgress","Interactive","InstallLocation","Log","Upgrade","Custom","Repair" + foreach ($Switch in $SwitchList) { + $Trigger = $Enum.Char.Blank + $LineNos = $Enum.Char.Blank + if ($WhatIF) {Write-Host "Processing installer switch $Switch"} + $YamlValue = Get-YamlValue -Key $Switch -clip $StringToReview + if ($YamlValue.Length -gt 0) { + $YamlValue = $YamlValue -split $Enum.Char.LineBreak + $IPv4Detected = $YamlValue | Select-String -Pattern $IPv4RegEx #IPv4 address + $IPv6Detected = $YamlValue | Select-String -Pattern $IPv6RegEx #IPv4 address + $TRANSFORMSDetected = $YamlValue | Select-String "TRANSFORMS" #MSI Transform files + $PATCHDetected = $YamlValue | Select-String "PATCH" #MSI Patch files + $mspDetected = $YamlValue | Select-String ".msp" #MSI Patch files + + if ($IPv4Detected) { + # [console]::beep(500,250);[console]::beep(500,250);[console]::beep(500,250) #Beep 3x to alert the PC user. + $ReturnValue = $False + $Detection = "IPv4" + if ($WhatIF) {Write-Host "$Detection Detected"} + [string]$Trigger = "$Detection - $($IPv4Detected -join ',')" + [string]$LineNos = $IPv4Detected.LineNumbers -join ',' + if ($WhatIF) { + "Write-CovertReviewFile -PR $PR -Switch $Switch -Trigger $Trigger -LineNos $LineNos" + } else { + Write-CovertReviewFile -PR $PR -Switch $Switch -Trigger $Trigger -LineNos $LineNos + } + } + + if ($IPv6Detected) { + $ReturnValue = $False + $Detection = "IPv6" + if ($WhatIF) {Write-Host "$Detection Detected"} + [string]$Trigger = "$Detection - $($IPv6Detected -join ',')" + [string]$LineNos = $IPv6Detected.LineNumbers -join ',' + if ($WhatIF) { + "Write-CovertReviewFile -PR $PR -Switch $Switch -Trigger $Trigger -LineNos $LineNos" + } else { + Write-CovertReviewFile -PR $PR -Switch $Switch -Trigger $Trigger -LineNos $LineNos + } + } + + if ($TRANSFORMSDetected) { + $ReturnValue = $False + $Detection = "TRANSFORMS" + if ($WhatIF) {Write-Host "$Detection Detected"} + [string]$Trigger = "$Detection - $($TRANSFORMSDetected -join ',')" + [string]$LineNos = $TRANSFORMSDetected.LineNumbers -join ',' + if ($WhatIF) { + "Write-CovertReviewFile -PR $PR -Switch $Switch -Trigger $Trigger -LineNos $LineNos" + } else { + Write-CovertReviewFile -PR $PR -Switch $Switch -Trigger $Trigger -LineNos $LineNos + } + } + + if ($PATCHDetected) { + $ReturnValue = $False + $Detection = "PATCH" + if ($WhatIF) {Write-Host "$Detection Detected"} + [string]$Trigger = "$Detection - $($TRANSFORMSDetected -join ',')" + [string]$LineNos = $PATCHDetected.LineNumbers -join ',' + if ($WhatIF) { + "Write-CovertReviewFile -PR $PR -Switch $Switch -Trigger $Trigger -LineNos $LineNos" + } else { + Write-CovertReviewFile -PR $PR -Switch $Switch -Trigger $Trigger -LineNos $LineNos + } + } + + if ($mspDetected) { + $ReturnValue = $False + $Detection = "msp" + if ($WhatIF) {Write-Host "$Detection Detected"} + [string]$Trigger = "$Detection - $($TRANSFORMSDetected -join ',')" + [string]$LineNos = $mspDetected.LineNumbers -join ',' + if ($WhatIF) { + "Write-CovertReviewFile -PR $PR -Switch $Switch -Trigger $Trigger -LineNos $LineNos" + } else { + Write-CovertReviewFile -PR $PR -Switch $Switch -Trigger $Trigger -LineNos $LineNos + } + } + + }#end if YamlValue + }#end foreach Switch + Return $ReturnValue +} + +#Clipboard +Function Get-CleanClipboard { + Param( + $clip = (Get-Clipboard) + ) + $clip = $clip -replace $Enum.Regex.CleanClipRegex,$null + return $clip +} + +Function Get-PRNumber { + Param( + $out = (Get-CleanClipboard), + [switch]$NoClip, + [switch]$Hash + ) + if ($Hash) { + $out = ($out -split $Enum.Char.Space | Select-String $Enum.Regex.hashPRRegex) -replace $Enum.Char.Hash,$Enum.Char.Blank | Sort-Object -unique + $NoClip = $True + } else { + $out = $out | Select-String $Enum.Regex.hashPRRegexEnd | Sort-Object -Descending + } + + if ($NoClip) { + $out + } else { + $out | clip + } +} + +Function Get-SortedClipboard { + Param( + $out = ((Get-CleanClipboard) -split $Enum.Char.LineBreak) + ) + $out | Sort-Object -Unique | clip +} + +Function Open-AllURL { + Param( + $out = (Get-CleanClipboard) + ) + $out = $out -split $Enum.Char.Space + $out = $out | Select-String "`^http" + $out = $out | Select-String -NotMatch "[.]exe$" + $out = $out | Select-String -NotMatch "[.]msi$" + $out = $out | Select-String -NotMatch "[.]zip$" + $out = $out | Sort-Object -unique + $out = $out | ForEach-Object {start-process $_} +} + +Function Open-PRInBrowser { + Param( + $PR, + [Switch]$Files) + $URL = "$GitHubBaseUrl/pull/$PR#issue-comment-box" + if ($Files) { + $URL = "$GitHubBaseUrl/pull/$PR/files" + } + Start-Process $URL + Start-Sleep $GitHubRateLimitDelay +}#end Function + +Function Get-YamlValue { + Param( + [string]$Key, + [Parameter(ValueFromPipeline)]$clip = (Get-CleanClipboard), + [switch]$JSON, + [switch]$Display + ) + Process { + if ($JSON) { + $Key = "`"$($Key)`": " + } else { + $Key = "$($Key): " + } + $clip = $clip -split $Enum.Char.LineBreak | where {$_ -match $Key} + if ($Display) {Write-Host "$($MyInvocation.MyCommand.name) (A): $clip"} + if ($clip) { + [array]$clip = $clip | Select-Object -unique + if ($Display) {Write-Host "$($MyInvocation.MyCommand.name) (B): $clip"} + [array]$clip = $clip[$enum.Index.First] + if ($Display) {Write-Host "$($MyInvocation.MyCommand.name) (C): $clip"} + $clip = ($clip -split ($Enum.Char.Colon + $Enum.Char.Space))[$Enum.Index.Second] + # [$Enum.Index.Second..99] + if ($Display) {Write-Host "$($MyInvocation.MyCommand.name) (D): $clip"} + $clip = ($clip -split $Enum.Char.Hash)[$Enum.Index.First] + if ($Display) {Write-Host "$($MyInvocation.MyCommand.name) (E): $clip"} + $clip = ((($clip.ToCharArray()) | where {$_ -match "\S"}) -join $Enum.Char.Blank) + if ($Display) {Write-Host "$($MyInvocation.MyCommand.name) (F): $clip"} + } + $clip + } +} + +Function Get-BackupDataFIles { + $date = (get-Date -f s) -replace("\:","_") + # $path = "$RepoFolder\Backups\$date\" + # md $path + $path = "$RepoFolder\Backups\$date.zip" + Compress-Archive -Path $RepoFolder -DestinationPath $path +} + +#Etc +Function Test-Admin { + $UserGroups = ([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups + if (![bool]($UserGroups -match $enum.TestAdmin.AdminString)){ + Write-Host $enum.TestAdmin.TryElevatingYourSession; + Break + } +} + +Function Get-TrackerProgress { + Param( + $Activity, + $ItemName, + $ItemNumber, + $TotalItems, + $Percent = [math]::round($ItemNumber / $TotalItems*100,$Enum.Num.Two) + ) + Write-Progress -Activity $Activity -Status "$ItemNumber / $TotalItems = $Percent % - $ItemName" -PercentComplete $Percent +} + +Function Get-ArraySum { + Param( + $in = $Enum.Num.Zero, + $out = $Enum.Num.Zero + ) + $in |ForEach-Object{$out += $_* $Enum.Num.One} + [math]::Round($out,$Enum.Num.Two) +} + +Function Get-Diff { + Param( + $Left, + $Right, + [ValidateScript( { $_ -in (Get-Keys $Enum.DiffData)} )][string]$Side = $Enum.DiffData.Left + ) + $matchSide = $Enum.Char.Blank + switch ($Side) { + $Enum.DiffData.Left { + $matchSide = $Enum.DiffData.LeftSide + } + $Enum.DiffData.Right { + $matchSide = $Enum.DiffData.RightSide + } + default { + Write-Host "Error: Side $Side is neither Left nor RIght!" + Break + } + } + $mid = Compare-Object $Left $Right | where {$_.SideIndicator -match $matchSide} + $out = $mid.inputobject + return $out +} + +Function Get-PrFromUrl { + Param( + [Parameter(ValueFromPipeline)][string]$Url, + $PR = ($Url -split $Enum.Char.Slash| Select-String $Enum.Regex.PRRegex) + ) + Process { + Return $PR + } +} + +Function Get-Keys { + Param( + $Data + ) + [string[]]$Names = ($Data | Get-Member | Where-Object {$_.membertype -eq $Enum.Words.NoteProperty}).name + Return $Names +} + +Function Get-Values { + Param( + $Data + ) + $Names = Get-Keys $Data + $Values = $Names | %{$Data.($_)} + Return $Values +} + +Function Test-Params { +<# + Param( + [Parameter(ValueFromPipeline)][int]$PR, + [ValidateScript( { $_ -in (Get-Keys $Enum.GitHubPresets)} )][string]$Preset, + [ValidateScript( { $_ -in (Get-Keys $Enum.WordFilterList)} )][string]$Items + ) + process { + Foreach ($Item in $Items) { + Write-Host "$item for $PR" + } + } +#> +(Get-CleanClipboard) -split $Enum.Char.Comma | %{"$($_): $($_),"} | clip +}# Test-Params -Items eula, paypal + +Function Test-Variable { + $scriptBlock = [Scriptblock]::Create("$($Enum.ScriptBlocks.TestVar)") + $test = 5 + & $scriptBlock +} + +Function Run-ScriptBlock { + Param( + $InputVar = "", + $ScriptBlock = [Scriptblock]::Create("`"$($InputVar)`"") + # $ScriptBlock = [Scriptblock]::Create("$($InputVar)") + ) + [int]$VM = 5 + & $ScriptBlock +} + +Function Get-VMName { + Param( + [int]$VM = 5 + ) + & $VMNameSB +} + +#PR Watcher Utility functions +Function Get-Sandbox { +#Terminates any current sandbox and makes a new one. + Param( + [string]$PRNumber = (Get-CleanClipboard) + ) + $FirstLetter = $PRNumber[$Enum.Index.First] + if ($FirstLetter -eq $Enum.Char.Hash) { + [string]$PRNumber = $PRNumber[$Enum.Index.Second..$PRNumber.Length] -join $Enum.Char.Blank + } + Get-Process *sandbox* | ForEach-Object {Stop-Process $_} + Get-Process *wingetautomator* | ForEach-Object {Stop-Process $_} + $version = "1.6.1573-preview" + $process = "wingetautomator://install?pull_request_number = $PRNumber&winget_cli_version = v$version&watch = yes" + Start-Process -PR $PRocess +} + +Function Get-PadRight { + Param( + [string]$PackageIdentifier, + [int]$PadChars = 45 + ) + $out = $PackageIdentifier + if ($PackageIdentifier.Length -lt $PadChars) { + $out = $PackageIdentifier + ($Enum.Char.Space*($PadChars - $PackageIdentifier.Length -1)) + } elseif ($PackageIdentifier.Length -lt $PadChars) { + $out = $PackageIdentifier[$Enum.Index.First..($PadChars -1)] + } + + $out = $out -join $Enum.Char.Blank + + $out +} + +#VM Window Management +Function Get-TrackerVMWindowLoc { + Param( + $VM, + $Rectangle = (New-Object RECT), + $VMProcesses = (Get-Process vmconnect), + $MWHandle = ($VMProcesses | where {$_.MainWindowTitle -match (& $VMNameSB)}).MainWindowHandle + ) + [window]::GetWindowRect($MWHandle,[ref]$Rectangle) + Return $Rectangle +} + +Function Get-TrackerVMWindowSet { + Param( + $VM, + $Left, + $Top, + $Right, + $Bottom, + $VMProcesses = (Get-Process vmconnect), + $MWHandle = ($VMProcesses | where {$_.MainWindowTitle -match (& $VMNameSB)}).MainWindowHandle + ) + $null = [window]::MoveWindow($MWHandle,$Left,$Top,$Right,$Bottom,$True) +} + +Function Get-TrackerVMWindowArrange { + Param( + $VMs = (Get-Status |where {$_.status -ne $Enum.VMStatus.Ready}|where {$_.status -ne $Enum.VMStatus.Unhealthy}).vm + ) + If ($VMs) { + Get-TrackerVMWindowSet $VMs[$Enum.Index.First] $Enum.VMWinLoc.Left $Enum.VMWinLoc.Top $Enum.VMWinLoc.Bottom $Enum.VMWinLoc.Right + $Base = Get-TrackerVMWindowLoc $VMs[$Enum.Index.First] + + For ($n = $Enum.Index.Second; $n -lt $VMs.Count; $n++) { + $VM = $VMs[$n] + + $Left = ($Base.left - ($Enum.VMWinLoc.LeftAdj * $n)) + $Top = ($Base.top + ($Enum.VMWinLoc.TopAdj * $n)) + Get-TrackerVMWindowSet $VM $Left $Top $Enum.VMWinLoc.Bottom $Enum.VMWinLoc.Right + } + } +} + +Add-Type @" +using System; +using System.Runtime.InteropServices; + +public class Window { + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect); + [DllImport("user32.dll")] + public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); + +} +public struct RECT { + public int Left; // x position of upper-left corner + public int Top; // y position of upper-left corner + public int Right; // x position of lower-right corner + public int Bottom; // y position of lower-right corner +} + +"@ + +Get-SartupTest diff --git a/Tools/ManualValidation/ManualValidationProfile.ps1 b/Tools/ManualValidation/ManualValidationProfile.ps1 index b62138bef67d1..0c8919763ad33 100644 --- a/Tools/ManualValidation/ManualValidationProfile.ps1 +++ b/Tools/ManualValidation/ManualValidationProfile.ps1 @@ -1,159 +1,181 @@ -$VM = 0 -$build = 137 -$ipconfig = (ipconfig) -$remoteIP = ([ipaddress](($ipconfig | select-string "Default Gateway") -split ": ")[1]).IPAddressToString -#$remoteIP = ([ipaddress](($ipconfig[($ipconfig | select-string "vEthernet").LineNumber..$ipconfig.length] | select-string "IPv4 Address") -split ": ")[1]).IPAddressToString -Write-Host "VM$VM with remoteIP $remoteIP version $build" - -$MainFolder = "\\$remoteIP\ManVal" -$homePath = "C:\Users\User\Desktop" -Set-Location $homePath - -$runPath = "$MainFolder\vm\$VM" -$writeFolder = "\\$remoteIP\write" -$statusFile = "$writeFolder\status.csv" -$SharedFolder = $writeFolder - -if ($VM -eq 0) { - $VM = (gc "$MainFolder\vmcounter.txt")-1 -} -"`$VM = $VM" | Out-File $profile -(Get-Content "\\$remoteIP\ManVal\vm\0\profile.ps1")[1..999] | Out-File $profile -append - -Function Send-SharedError { - param( - [switch]$Approved, - $Clip = (Get-Clipboard) - ) - Write-Host "Writing $($Clip.length) lines." - $Clip -join "`n" | Out-File "$writeFolder\err.txt" - if ($Approved) { - Get-TrackerVMSetStatus "SendStatus-Approved" - } - Get-TrackerVMSetStatus "SendStatus-Complete" -} - -function Get-ARPTable { - Param( - $DisplayName - ) - #SandboxTest.ps1 copypasta - https://github.com/microsoft/winget-pkgs/blob/01d110895592f8775f7a3e9c1e4b50a8bd3dc698/Tools/SandboxTest.ps1#L703 - $registry_paths = @('HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*','HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKCU:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*') - $out = Get-ItemProperty $registry_paths -ErrorAction SilentlyContinue | - Where-Object { $_.DisplayName -and (-not $_.SystemComponent -or $_.SystemComponent -ne 1 ) } | - Select-Object DisplayName, DisplayVersion, Publisher, @{N='ProductCode'; E={$_.PSChildName}}, @{N='Scope'; E={if($_.PSDrive.Name -eq 'HKCU') {'User'} else {'Machine'}}} - if ($DisplayName) { - $out = $out | where {$_.DisplayName -match $DisplayName} - } - return $out -} - -Function Get-TrackerVMSetStatus { - param( - [ValidateSet("AddVCRedist","Approved","CheckpointComplete","Checkpointing","CheckpointReady","Completing","Complete","Disgenerate","Generating","Installing","Prescan","Prevalidation","Ready","Rebooting","Regenerate","Restoring","Revert","Scanning","SendStatus","SendStatus-Approved","SendStatus-Complete","Setup","SetupComplete","Starting","Updating","ValidationCompleted")] - $Status = "Complete", - [string]$Package, - [int]$PR - ) - $out = Get-TrackerVMStatus - if ($Status) { - ($out | where {$_.vm -match $VM}).Status = $Status - } - if ($Package) { - ($out | where {$_.vm -match $VM}).Package = $Package - } - if ($PR) { - ($out | where {$_.vm -match $VM}).PR = $PR - } - $out | ConvertTo-Csv -NoTypeInformation | Out-File $StatusFile - Write-Host "Setting $vm $Package $PR state $Status" -} - -Function Get-TrackerVMRunValidation { - param( - $fileName = "cmds.ps1" - ) - Copy-Item $runPath\$fileName $homePath\$fileName - & $homePath\$fileName -} - -Function Get-TrackerVMStatus{ - param( - [int]$vmNum, - [ValidateSet("AddVCRedist","Approved","CheckpointComplete","Checkpointing","CheckpointReady","Completing","Complete","Disgenerate","Generating","Installing","Prescan","Prevalidation","Ready","Rebooting","Regenerate","Restoring","Revert","Scanning","SendStatus","Setup","SetupComplete","Starting","Updating","ValidationCompleted")] - $Status, - $Option = "status", - $out = (Get-Content $StatusFile | ConvertFrom-Csv | where {$_.status -notmatch "ImagePark"}) - ) - if ($vmNum) { - $out = ($out | where {$_.vm -eq $vmNum}).$Option - } - if ($Status) { - $out = ($out | where {$_.status -eq $Status}).vm - } - $out -} - -<# -Registry: -$a = gci HKLM:SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall | Get-ItemProperty | select DisplayName,DisplayVersion -$a += gci HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall | Get-ItemProperty | select DisplayName,DisplayVersion -$a | where {$_.displayname} | sort displayname -Unique - -#Clear event logs. - -# Commands -$n = 15;$t = $n;while ($n -gt 0) {$n--;$r = $t - $n;Write-Progress -Activity "Build latch" -Status "Seconds remaining: $r/$t" -PercentComplete ((1-$n/$t)*100);sleep 1}; -Get-NetAdapter|Disable-NetAdapter;Get-NetAdapter|Enable-NetAdapter;sleep 30;Import-Module $Profile -Force;Import-Module $Profile -Force;cls;Write-Host "VM$VM with remoteIP $remoteIP version $build"; -Get-TrackerVMSetStatus CheckpointReady; -$n = 15;$t = $n;while ($n -gt 0) {$n--;$r = $t - $n;Write-Progress -Activity "Run latch" -Status "Seconds remaining: $r/$t" -PercentComplete ((1-$n/$t)*100);sleep 1}; -Get-TrackerVMRunValidation -#Get-NetAdapter|Disable-NetAdapter;Get-NetAdapter|Enable-NetAdapter;sleep 30;Import-Module $Profile -Force;Import-Module $Profile -Force;cls;Write-Host "VM$VM with remoteIP $remoteIP version $build";Get-TrackerVMSetStatus CheckpointReady;$n = 15;$t = $n;while ($n -gt 0) {$n--;$r = $t - $n;Write-Progress -Activity "Process latch" -Status "Seconds remaining: $r/$t" -PercentComplete ((1-$n/$t)*100);sleep 1};Write-Host "Waiting for Network...";Get-TrackerVMRunValidation - - -# Reset display window -$vm = 0;notepad $profile;cls;Write-Host "VM$VM with remoteIP $remoteIP version $build" - -# Close Notepad -Get-Process Notepad|Stop-Process; - -# Reboot -shutdown -r -t 05 - -# Setup: ExecutionPolicy, Uninstall, Enable WinGet settings. -Set-ExecutionPolicy Unrestricted -winget uninstall Microsoft.Teams -winget uninstall Microsoft.OneDrive -winget uninstall Microsoft.MSIXPackagingTool_8wekyb3d8bbwe -winget settings --enable LocalManifestFiles;winget settings --enable LocalArchiveMalwareScanOverride; - -# Files -Logs file: C:\Users\user\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir -Programs: C:\Users\user\AppData\Local\Programs\ -Download: C:\Users\user\AppData\Local\Temp\WinGet\ -Portable: C:\Users\user\AppData\Local\Microsoft\WinGet\Packages\ -Symlinks: C:\Users\user\AppData\Local\Microsoft\WinGet\Links\ - -New VM: -- Open Quick Create, create VM -- Connect, power on, use example@example.com to skip login. -- User username, easy to type password, security questions. -- Keyboard layout and locale, maybe a few other questions, then skip everything else. -- Do something else during initial setup. -- Install all store, winget, windows, and defender updates. Reboot as necessary. -ImageVMMove here at any point. -- Open PowerShell and run IPConfig, get switch IP. -- Connect to \\ip\ManVal\, open \vm\0\profile.ps1 -- Run few setup and uninstall commands -- Copy to local profile. -- Set up PowerShell window sizes -- Enter commands in windows -ImageVMStop -- Wait for image to cool -PipelineVMGenerate -- VM is in system. - -gci HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall -gci HKLM:SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall - +$VM = 0 +$build = 146 +$ipconfig = (ipconfig) +$remoteIP = ([ipaddress](($ipconfig | select-string "Default Gateway") -split ": ")[1]).IPAddressToString +#$remoteIP = ([ipaddress](($ipconfig[($ipconfig | select-string "vEthernet").LineNumber..$ipconfig.length] | select-string "IPv4 Address") -split ": ")[1]).IPAddressToString +Write-Host "VM$VM with remoteIP $remoteIP version $build" + +$MainFolder = "\\$remoteIP\ManVal" +$homePath = "C:\Users\User\Desktop" +Set-Location $homePath + +$runPath = "$MainFolder\vm\$VM" +$writeFolder = "\\$remoteIP\write" +$statusFile = "$writeFolder\status.csv" +# $statusFile = "$writeFolder\status\$VM.csv" +$SharedFolder = $writeFolder + +if ($VM -eq 0) { + $VM = (gc "$MainFolder\vmcounter.txt")-1 +} +"`$VM = $VM" | Out-File $profile +(Get-Content "\\$remoteIP\ManVal\vm\0\profile.ps1")[1..999] | Out-File $profile -append + +Function Send-SharedError { + param( + [switch]$Approved, + $Clip = (Get-Clipboard) + ) + if ($Clip.length -gt 0) { + Write-Host "Writing $($Clip.length) lines." + $Clip -join "`n" | Out-File "$writeFolder\err.txt" + if ($Approved) { + Get-TrackerVMSetStatus "SendStatus-Approved" + } else { + Get-TrackerVMSetStatus "SendStatus-Complete" + } #end if Approved + } +} + +function Get-ARPTable { + Param( + $DisplayName + ) + #SandboxTest.ps1 copypasta - https://github.com/microsoft/winget-pkgs/blob/01d110895592f8775f7a3e9c1e4b50a8bd3dc698/Tools/SandboxTest.ps1#L703 + $registry_paths = @('HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*','HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKCU:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*') + $out = Get-ItemProperty $registry_paths -ErrorAction SilentlyContinue | + Where-Object { $_.DisplayName -and (-not $_.SystemComponent -or $_.SystemComponent -ne 1 ) } | + Select-Object DisplayName, DisplayVersion, Publisher, @{N='ProductCode'; E={$_.PSChildName}}, @{N='Scope'; E={if($_.PSDrive.Name -eq 'HKCU') {'User'} else {'Machine'}}} + if ($DisplayName) { + $out = $out | where {$_.DisplayName -match $DisplayName} + } + return $out +} + +Function Get-TrackerVMSetStatus { + param( + [ValidateSet("AddVCRedist","Approved","CheckpointComplete","Checkpointing","CheckpointReady","Completing","Complete","Disgenerate","DoesntRun","Feedback","LongRunning","FileScan1","FileScan2","FileScan1Pause","FileScan2Pause","Generating","Installing","Prescan","Prevalidation","Ready","Rebooting","Regenerate","Restoring","Revert","Scanning","SendStatus","SendStatus-Approved","SendStatus-Complete","SendStatus-Feedback","Setup","SetupComplete","Starting","Unhealthy","Updating","ValidationCompleted")] + $Status = "Complete", + [string]$Package, + [int]$PR + ) + $out = Get-TrackerVMStatus + if ($Status) { + ($out | where {$_.vm -match $VM}).Status = $Status + } + if ($Package) { + ($out | where {$_.vm -match $VM}).Package = $Package + } + if ($PR) { + ($out | where {$_.vm -match $VM}).PR = $PR + } + $out | ConvertTo-Csv -NoTypeInformation | Out-File $StatusFile + Write-Host "Setting $vm $Package $PR state $Status" +} + +Function Get-TrackerVMRunValidation { + param( + $fileName = "cmds.ps1" + ) + Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log } + Copy-Item $runPath\$fileName $homePath\$fileName + & $homePath\$fileName +} + +Function Get-TrackerVMStatus{ + param( + [int]$vmNum, + [ValidateSet("AddVCRedist","Approved","CheckpointComplete","Checkpointing","CheckpointReady","Completing","Complete","Disgenerate","DoesntRun","Feedback","LongRunning","FileScan1","FileScan2","FileScan1Pause","FileScan2Pause","Generating","Installing","Prescan","Prevalidation","Ready","Rebooting","Regenerate","Restoring","Revert","Scanning","SendStatus","SendStatus-Approved","SendStatus-Complete","SendStatus-Feedback","Setup","SetupComplete","Starting","Unhealthy","Updating","ValidationCompleted")] + $Status, + $Option = "status", + $out = (Get-Content $StatusFile | ConvertFrom-Csv | where {$_.status -notmatch "ImagePark"}) + ) + if ($vmNum) { + $out = ($out | where {$_.vm -eq $vmNum}).$Option + } + if ($Status) { + $out = ($out | where {$_.status -eq $Status}).vm + } + $out +} + +Function Get-InstalledVersions { + Param( + $file = (gc C:\Users\User\Desktop\ChangedFiles.txt | where {$_ -match "Links"} | where {$_ -match "exe"}), + $cmdstring = "version", + $ArpName = (($file -split "\\")[-1] -split "\.")[0] + ) + if ($file) { + Write-Host "Reading $ArpName" + $ArpData = Get-ARPTable $ArpName + $FileData = &"$file" "--$cmdstring" + if ($null -eq $FileData){ + $FileData = &"$file" "$cmdstring" + } + $shouldsend = $false + ($FileData -replace ":"," " -replace "v","" -split " ") |%{if ($ArpData.DisplayVersion -match $_ ) {$shouldsend = $true}} + if ($shouldsend){ + Send-SharedError -Status Approved -Clip $FileData + } + } +} + +<# +Registry: +$a = gci HKLM:SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall | Get-ItemProperty | select DisplayName,DisplayVersion +$a += gci HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall | Get-ItemProperty | select DisplayName,DisplayVersion +$a | where {$_.displayname} | sort displayname -Unique + +#Clear event logs. + +# Commands +$n = 15;$t = $n;while ($n -gt 0) {$n--;$r = $t - $n;Write-Progress -Activity "Build latch" -Status "Seconds remaining: $r/$t" -PercentComplete ((1-$n/$t)*100);sleep 1}; Get-NetAdapter|Disable-NetAdapter -confirm:$false;Get-NetAdapter|Enable-NetAdapter;sleep 30;Import-Module $Profile -Force;Import-Module $Profile -Force;cls;Write-Host "VM$VM with remoteIP $remoteIP version $build"; Get-TrackerVMSetStatus CheckpointReady; $n = 15;$t = $n;while ($n -gt 0) {$n--;$r = $t - $n; Write-Progress -Activity "Run latch" -Status "Seconds remaining: $r/$t" -PercentComplete ((1-$n/$t)*100);sleep 1};Write-Host "Waiting for Network...";Get-TrackerVMRunValidation + + +# Reset display window +$vm = 0;notepad $profile;cls;Write-Host "VM$VM with remoteIP $remoteIP version $build" + +# Close Notepad +Get-Process Notepad|Stop-Process; + +# Reboot +shutdown -r -t 05 + +# Setup: ExecutionPolicy, Uninstall, Enable WinGet settings. +Set-ExecutionPolicy Unrestricted +winget uninstall Microsoft.Teams +winget uninstall Microsoft.Teams.Free +winget uninstall Microsoft.OneDrive +winget uninstall Microsoft.MSIXPackagingTool_8wekyb3d8bbwe +winget settings --enable LocalManifestFiles;winget settings --enable LocalArchiveMalwareScanOverride; + +# Files +Logs file: C:\Users\user\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir +Programs: C:\Users\user\AppData\Local\Programs\ +Download: C:\Users\user\AppData\Local\Temp\WinGet\ +Portable: C:\Users\user\AppData\Local\Microsoft\WinGet\Packages\ +Symlinks: C:\Users\user\AppData\Local\Microsoft\WinGet\Links\ + +New VM: +- Open Quick Create, create VM +- Connect, power on, use example@example.com to skip login. +- User username, easy to type password, security questions. +- Keyboard layout and locale, maybe a few other questions, then skip everything else. +- Do something else during initial setup. +- Install all store, winget, windows, and defender updates. Reboot as necessary. +ImageVMMove here at any point. +- Open PowerShell and run IPConfig, get switch IP. +- Connect to \\ip\ManVal\, open \vm\0\profile.ps1 +- Run few setup and uninstall commands +- Copy to local profile. +- Set up PowerShell window sizes +- Enter commands in windows +ImageVMStop +- Wait for image to cool +PipelineVMGenerate +- VM is in system. + +gci HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall +gci HKLM:SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall + #> \ No newline at end of file diff --git a/Tools/ManualValidation/Review.csv b/Tools/ManualValidation/Review.csv index b5ce3410a235f..03fd1b87ce0fa 100644 --- a/Tools/ManualValidation/Review.csv +++ b/Tools/ManualValidation/Review.csv @@ -1,4 +1,4 @@ -PackageIdentifier,Reason,PR -Google.PlayGames.Beta,Installs a version above 120.0.0000.0 which is actually Chrome.,154622 -TechPowerUp.GPU-Z,404 unless the correct user-agent is specified..,221603 +PackageIdentifier,Reason,PR +Google.PlayGames.Beta,Installs a version above 120.0.0000.0 which is actually Chrome.,154622 +TechPowerUp.GPU-Z,404 unless the correct user-agent is specified..,221603 Aries-Sciences-LLC.AI-Chess,Version 0.0.1 sits in the version 1.0 folder.,230382 \ No newline at end of file diff --git a/Tools/ManualValidation/RulesEngine.cs b/Tools/ManualValidation/RulesEngine.cs new file mode 100644 index 0000000000000..f20b71a0f1afe --- /dev/null +++ b/Tools/ManualValidation/RulesEngine.cs @@ -0,0 +1,1192 @@ +//Copyright 2025 Gilgamech Technologies +//Author: Stephen Gillie +//Created 06/22/2025 +//Updated 06/22/2025 +//Alcove was the new finditem. + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//====================-------------------- Init vars --------------------====================// +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Configuration; +using System.Diagnostics; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.Net; +using System.Runtime.InteropServices; +using System.Text; +using System.Windows.Forms; +using System.Web.Script.Serialization; + +namespace ShopBotNamespace { + public class AlcoveShopBot : Form { +//{ Ints + public int build = 1548;//Get-RebuildCsharpApp AlcoveShopBot + public string appName = "AlcoveShopBot"; + public string StoreName = "Not Loaded"; + public string StoreCoords = "Not Loaded"; + public string webHook = "Not Loaded"; + public string appTitle = " Shop Bot - 1."; + + List OldData = new List(); + JavaScriptSerializer serializer = new JavaScriptSerializer(); + System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); + + public Button runButton, stopButton; + public TextBox shopRevenueBox = new TextBox(); + public Label shopRevenueLabel = new Label(); + public RichTextBox outBox = new RichTextBox(); + public System.Drawing.Bitmap myBitmap; + public System.Drawing.Graphics pageGraphics; + public ContextMenuStrip contextMenu1; + + public string[] parsedHtml = new string[1]; + public bool WebhookPresent = false; + + + // public static string WindowsUsername = System.Security.Principal.WindowsIdentity.GetCurrent().Name; + // public static string MainFolder = "C:\\Users\\"+WindowsUsername+"\\AppData\\Roaming\\.minecraft\\"; + // public static string logFolder = MainFolder+"\\logs"; //Logs folder; + public static string logFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\.minecraft\\logs"; + //public string logFolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Packages\\Microsoft.MinecraftUWP_8wekyb3d8bbwe\\LocalState\\logs" + public string LatestLog = logFolder+"\\latest.log"; + + //ui + public Panel pagePanel; + public int displayLine = 0; + public int sideBufferWidth = 0; + public string Mode = "Stop"; + //outBox.Font = new Font("Calibri", 14); + + //Grid + public static int gridItemWidth = 60; + public static int gridItemHeight = 30; + + public static int row0 = gridItemHeight*0; + public static int row1 = gridItemHeight*1; + public static int row2 = gridItemHeight*2; + public static int row3 = gridItemHeight*3; + public static int row4 = gridItemHeight*4; + public static int row5 = gridItemHeight*5; + public static int row6 = gridItemHeight*6; + public static int row7 = gridItemHeight*7; + public static int row8 = gridItemHeight*8; + public static int row9 = gridItemHeight*9; + public static int row10 = gridItemHeight*10; + + public static int col0 = gridItemWidth*0; + public static int col1 = gridItemWidth*1; + public static int col2 = gridItemWidth*2; + public static int col3 = gridItemWidth*3; + public static int col4 = gridItemWidth*4; + public static int col5 = gridItemWidth*5; + public static int col6 = gridItemWidth*6; + public static int col7 = gridItemWidth*7; + public static int col8 = gridItemWidth*8; + public static int col9 = gridItemWidth*9; + public static int col10 = gridItemWidth*10; + +public enum EventNames +{ + Empty, + Full, + Sell, + Buy +} + + + public int WindowWidth = col7+20; + public int WindowHeight = row8+10; + + public bool debuggingView = false; + public string FullText = "is now full";//[05:33:18] [Render thread/INFO]: [System] [CHAT] SHOPS ▶ Your shop at 15274, 66, 20463 is now full. + public string SellText = "to your shop";//[05:40:12] [Render thread/INFO]: [System] [CHAT] SHOPS ▶ kota490 sold 1728 Sea Lantern to your shop {3}. + public string BuyText = "from your shop";//[05:47:12] [Render thread/INFO]: [System] [CHAT] SHOPS ▶ _Blackjack29313 purchased 2 Grindstone from your shop and you earned $9.50 ($0.50 in taxes). + public string EmptyText = "has run out of";//[06:07:40] [Rend + //public void OldDate = get-date -f dd + + //public string DataFile = "C:\\repos\\AlcoveShopBot\\AlcoveShopBot.csv"; + //public string OwnerList = "C:\\repos\\AlcoveShopBot\\ChillPWOwnerList.csv"; + + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//====================-------------------- Boilerplate --------------------====================// +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + [STAThread] + static void Main() { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new AlcoveShopBot()); + }// end Main + + public AlcoveShopBot() { + LoadSetting("StoreName", ref StoreName, "Alcove"); + LoadSetting("StoreCoords", ref StoreCoords, "StoreCoords"); + LoadSetting("webHook", ref webHook, "webHook"); + this.Text = StoreName + appTitle + build; + this.Size = new Size(WindowWidth,WindowHeight); + this.Resize += new System.EventHandler(this.OnResize); + this.AutoScroll = true; + // Icon icon = Icon.ExtractAssociatedIcon("C:\\repos\\AlcoveShopBot\\AlcoveShopBot.ico"); + // this.Icon = icon; + buildMenuBar(); + drawLabel(ref shopRevenueLabel, col0, row0, col2, row1, "Shop revenue this \nplay session:"); + drawTextBox(ref shopRevenueBox, col2, row0, col2, 0,"$0"); + //drawButton(ref sendButton, col2, row0, col2, row1, "Daily Report", sendButton_Click); + drawButton(ref runButton, col5, row0, col1, row1, "Run", runButton_Click); + drawButton(ref stopButton, col6, row0, col1, row1, "Stop", stopButton_Click); + drawRichTextBox(ref outBox, col0, row1, col7, row5,"Transaction Log", "outBox"); + + shopRevenueBox.Font = new Font("Calibri", 14); + outBox.Multiline = true; + outBox.AcceptsTab = true; + outBox.WordWrap = true; + outBox.ReadOnly = true; + outBox.DetectUrls = true; + // outBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None; + RefreshStatus(); + + timer.Interval = (10 * 1000); + timer.Tick += new EventHandler(timer_everysecond); + } // end AlcoveShopBot + + public void buildMenuBar (){ + this.Menu = new MainMenu(); + + MenuItem item = new MenuItem("File"); + this.Menu.MenuItems.Add(item); + item.MenuItems.Add("Open log folder", new EventHandler(Open_Log_Folder)); + + item = new MenuItem("Edit"); + this.Menu.MenuItems.Add(item); + item.MenuItems.Add("Shop name", new EventHandler(Edit_Store_Name)); + item.MenuItems.Add("Shop coordinates", new EventHandler(Edit_Store_Coords)); + item.MenuItems.Add("Webhook", new EventHandler(Edit_Webhook)); + + item = new MenuItem("Reports"); + this.Menu.MenuItems.Add(item); + item.MenuItems.Add("Daily Revenue", new EventHandler(Daily_Revenue)); + item.MenuItems.Add("Daily Sales Report", new EventHandler(Daily_Report)); + item.MenuItems.Add("Send Daily Sales Report to Webhook", new EventHandler(Send_Daily_Report)); + item.MenuItems.Add("Biweekly Report", new EventHandler(Biweekly_Report)); + + item = new MenuItem("Help"); + this.Menu.MenuItems.Add(item); + item.MenuItems.Add("About", new EventHandler(About_Click)); + }// end buildMenuBar + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Event Handlers --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + //timer + private void timer_everysecond(object sender, EventArgs e) { + RunBot(0); + } + //ui + public void runButton_Click(object sender, EventArgs e) { + Mode = "Run"; + outBox.Text = Mode + Environment.NewLine + outBox.Text; + RefreshStatus(); + RunBot(0); + timer.Start(); + }// end runButton_Click + + public void stopButton_Click(object sender, EventArgs e) { + Mode = "Stop"; + outBox.Text = Mode + Environment.NewLine + outBox.Text; + RefreshStatus(); + timer.Stop(); + }// end stopButton_Click + + public void OnResize(object sender, System.EventArgs e) { + } + //Menu + //File + public void Open_Log_Folder(object sender, EventArgs e) { + Process.Start(logFolder); + }// end Open_Log_Folder + + public void Edit_Store_Name(object sender, EventArgs e) { + DialogResult result = drawInputDialog(ref StoreName, "Enter store name"); + switch (result) { + case DialogResult.OK: + AddOrUpdateSetting("StoreName", StoreName); + this.Text = StoreName + appTitle + build; + break; + } + }// end Edit_Store_Name + + public void Edit_Store_Coords(object sender, EventArgs e) { + DialogResult result = drawInputDialog(ref StoreCoords, "Enter store coordiantes (still to-do)."); + switch (result) { + case DialogResult.OK: + AddOrUpdateSetting("StoreCoords", StoreCoords); + break; + } + }// end Edit_Store_Coords + + public void Edit_Webhook(object sender, EventArgs e) { + DialogResult result = drawInputDialog(ref webHook, "Paste your webhook URL here."); + switch (result) { + case DialogResult.OK: + AddOrUpdateSetting("Webhook", webHook); + break; + } + }// end Edit_Webhook + + //Reports + public void Daily_Revenue(object sender, EventArgs e) { + var now = DateTime.Now; + string reportDay_string = now.AddDays(-1).Day.ToString(); + int reportDay = 0; + int daysAgo = 0; + DialogResult result = drawInputDialog(ref reportDay_string, "Day of month to report."); + switch (result) { + case DialogResult.OK: + int.TryParse(reportDay_string, out reportDay); + //Numbers representing time increase with time. + if (now.Day > reportDay) { + //If now.Day is larger than (after) reportDay, then the report is for earlier this month. + daysAgo = now.Day - reportDay; + } else if (reportDay > now.Day) { + //If reportDay is larger than (after) now.Day, then it's for last month. + int DaysInLastMonth = DateTime.DaysInMonth(now.AddDays(-daysAgo).Year, now.AddDays(-daysAgo).AddMonths(-1).Month); + daysAgo = DaysInLastMonth - (reportDay - now.Day); + //outBox.Text = "DaysInLastMonth: " + DaysInLastMonth + Environment.NewLine + outBox.Text; + } else { + daysAgo = 0; + } + string Date = new DateTime(now.AddDays(-daysAgo).Year, now.AddDays(-daysAgo).Month, now.AddDays(-daysAgo).Day).ToString("yyyy-MM-dd"); + outBox.Text = ShopRevenue(0, Date, true) + Environment.NewLine + outBox.Text; + break; + } + }// end Daily_Report + + public void Daily_Report(object sender, EventArgs e) { + GetDailyReport(); + }// end Daily_Report + + public void Send_Daily_Report(object sender, EventArgs e) { + GetDailyReport(true); + }// end Send_Daily_Report + + public void Biweekly_Report(object sender, EventArgs e) { + string days = "14"; + DialogResult result = drawInputDialog(ref days, "Days in report."); + switch (result) { + case DialogResult.OK: + outBox.Text = BuildBiweeklyReport(Convert.ToInt32(days)) + Environment.NewLine + outBox.Text; + break; + } + }// end Weekly_Report + + //Help + public void About_Click (object sender, EventArgs e) { + string AboutText = "Alcove Shop Bot" + Environment.NewLine; + AboutText += "Generates out-of-stock alerts and financial reports from QuickShop" + Environment.NewLine; + AboutText += "Buy/Sell comments in Minecraft chat logs. Made for The Alcove player" + Environment.NewLine; + AboutText += "-run store on the ChillSMP Minecraft server. But this product isn't" + Environment.NewLine; + AboutText += "affiliated with any of those." + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Version 1." + build + Environment.NewLine; + AboutText += "(C) 2025 Gilgamech Technologies" + Environment.NewLine; + AboutText += "" + Environment.NewLine; + AboutText += "Report bugs & request features:" + Environment.NewLine; + AboutText += "https://github.com/Gilgamech/AlcoveShopBot/issues" + Environment.NewLine; + MessageBox.Show(AboutText); + } // end Link_Click + + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//====================-------------------- Main --------------------====================// +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void RunBot (int setzero) { + shopRevenueBox.Text = ShopRevenue(0,"",false,true); + List ShopData = GetShopData(""); + ShopData = ShopData.Where(s => s.Event.Contains("Empty")).ToList(); + ShopData = ShopData.Where(s => !OldData.Any(o => o.Timestamp.Contains(s.Timestamp))).ToList(); + if (ShopData.Any() == true) { + foreach (StockItem item in ShopData) { + item.ItemName = item.ItemName.Replace("\r","").Replace("\n",""); + string out_msg = "Empty shop: Player `" + item.PlayerName + "` has purchased the last "+ item.StockQty + " " + item.ItemName+"!"; + outBox.Text = "[" + item.Timestamp + "] " + out_msg + Environment.NewLine + outBox.Text; + SendMessageToWebhook(out_msg); + }; + OldData.AddRange(ShopData); + } + } + + public List GetShopData (string Logfile) { + if (Logfile == "") { + Logfile = LatestLog; + } + List out_var = new List(); + // List Raw_Data = new List(); + List Data = new List(); + string fiileString = null; + StockItem stockitem = new StockItem(); + int n = 0; + + try { + FileStream logFileStream = new FileStream(Logfile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + StreamReader logFileReader = new StreamReader(logFileStream); + while (!logFileReader.EndOfStream) { + fiileString = logFileReader.ReadLine(); + string[] fileContents = fiileString.Replace("] [Render thread/INFO]: [System] [CHAT] ",",").Replace("[","").Replace("]","").Split('\n'); + // string[] fileContents = fiileString.Replace("] [Render thread/INFO]: [System] [CHAT] ",",").Replace("[","").Replace("]","").Replace("Your shop at","").Split('\n'); + + // fiileString = logFileReader.ReadLine(); + // fiileString.Replace("] [Render thread/INFO]: [System] [CHAT] ",",").Replace("[","").Replace("]",""); + // fiileString = fiileString.Replace("Your shop at","SHOPBOTFLAG Your shop at"); + // fiileString = fiileString.Replace("to your shop {3}","SHOPBOTFLAG to your shop {3}"); + // fiileString = fiileString.Replace("from your shop and you earned","SHOPBOTFLAG from your shop and you earned"); + + Data.AddRange(fileContents.Where(d => d.Contains("SHOPS ▶ ")).ToList()); + // outBox.Text = "(GetShopData) Data: " + serializer.Serialize(Data) + Environment.NewLine + outBox.Text; + // Data.AddRange(Raw_Data.Where(d => d.Contains("has run out of"))); + // Data.AddRange(Raw_Data.Where(d => d.Contains("is now full"))); + // Data.AddRange(Raw_Data.Where(d => d.Contains("to your shop"))); + // Data.AddRange(Raw_Data.Where(d => d.Contains("from your shop"))); + } + logFileReader.Close(); + logFileStream.Close(); + + } catch (Exception FileStreamError) { + //outBox.Text = "(GetShopData) FileStreamError: " + FileStreamError.Message + Environment.NewLine + outBox.Text; + try { + string[] fileContents = GetContent(Logfile, true).Replace("] [Render thread/INFO]: [System] [CHAT] ",",").Replace("[","").Replace("]","").Split('\n'); + Data.AddRange(fileContents.Where(d => d.Contains("SHOPS ▶ ")).ToList()); + } catch (Exception GetContentError) { + // outBox.Text = "(GetShopData) GetContentError: " + GetContentError.Message + Environment.NewLine + outBox.Text; + fiileString = FileStreamError.Message + "; " + GetContentError.Message; + } + } + Data = Data.Where(d => !d.Contains("Enter all in chat")).ToList(); + Data = Data.Where(d => !d.Contains("out of space")).ToList(); + Data = Data.Where(d => !d.Contains("how many you wish")).ToList(); + Data = Data.Where(d => !d.Contains("Shop purchase cancelled")).ToList(); + Data = Data.Where(d => !d.Contains("get it refilled")).ToList(); + Data = Data.Where(d => !d.Contains("new price of the")).ToList(); + Data = Data.Where(d => !d.Contains("look at one")).ToList(); + Data = Data.Where(d => !d.Contains("shop is now")).ToList(); + Data = Data.Where(d => !d.Contains("is nothing in your")).ToList(); + Data = Data.Where(d => !d.Contains("is already")).ToList(); + Data = Data.Where(d => !d.Contains("result in")).ToList(); + + //Data = Data.Where(x => x.notmatch(""); + foreach (string Item in Data) { + n++; + stockitem = new StockItem(); + // outBox.Text = "(GetShopData) Item " + serializer.Serialize(Item) + Environment.NewLine + outBox.Text; + //Use all 3 coords because some places have 2 buy shops stacked at the same X and Z. + if (Item.Contains("has run out of")){ + string[] SplitItem = Item.Replace("[","").Replace("] Your shop at",",").Replace(" has run out of",",").Replace("!","").Replace(", ",",").Split(','); + //06:07:40 ,15226, 63, 20487, Cocoa Beans + stockitem.Event = "Empty"; + stockitem.Timestamp = SplitItem[0]; + stockitem.XLoc = Convert.ToInt32(SplitItem[1].Split(' ').Last()); + stockitem.YLoc = Convert.ToInt32(SplitItem[2]); + stockitem.ZLoc = Convert.ToInt32(SplitItem[3]); + stockitem.ItemName = SplitItem[4]; + stockitem.StockQty = Convert.ToInt32((Data[Data.IndexOf(Item)-1].Split(' '))[4]); + stockitem.PlayerName = (Data[Data.IndexOf(Item)-1].Split(' '))[2]; + } else if (Item.Contains("is now full")){ + string[] SplitItem = Item.Replace("[","").Replace("] Your shop at",",").Replace(" is now full.",", ").Replace("!","").Replace(", ",",").Split(','); + //05:33:18, 15274, 66, 20463, + stockitem.Event = "Full"; + stockitem.Timestamp = SplitItem[0]; + stockitem.XLoc = Convert.ToInt32(SplitItem[1].Split(' ').Last()); + stockitem.YLoc = Convert.ToInt32(SplitItem[2]); + stockitem.ZLoc = Convert.ToInt32(SplitItem[3]); + } else if (Item.Contains("to your shop")){ + string[] SplitItem = Item.Replace("[","").Replace("]",",").Replace(" sold ",", ").Replace(" to your shop {3}.",", ").Replace("!","").Split(','); + //05:40:12, kota490, 1728 Sea Lantern, + stockitem.Event = "Sell"; + stockitem.Timestamp = SplitItem[0]; + stockitem.PlayerName = SplitItem[1].Split(' ').Last(); + int.TryParse(SplitItem[2].Split(' ')[1], out stockitem.StockQty); + stockitem.ItemName = String.Join(" ", SplitItem[2].Split(' ').Skip(2).Take(9)); + // outBox.Text = stockitem.Timestamp + " - " + stockitem.Event + " - " + stockitem.ItemName + " - " + Environment.NewLine + outBox.Text; + } else if (Item.Contains("from your shop")){ + string[] SplitItem = Item.Replace("[","").Replace("]",",").Replace(" purchased ",", ").Replace(" from your shop and you earned ",", ").Replace("(","").Split(','); + // outBox.Text = "(GetShopData) SplitItem " + serializer.Serialize(SplitItem) + Environment.NewLine + outBox.Text; + // outBox.Text = "(GetShopData) Item " + serializer.Serialize(Item) + Environment.NewLine + outBox.Text; + //05:47:12 _Blackjack29313, 2 Grindstone, 9.50 0.50 in taxes). + stockitem.Event = "Buy"; + stockitem.Timestamp = SplitItem[0]; + stockitem.PlayerName = SplitItem[1].Split(' ').Last(); + int.TryParse(SplitItem[2].Split(' ')[1], out stockitem.StockQty); + stockitem.ItemName = String.Join(" ", SplitItem[2].Split(' ').Skip(2).Take(9)); + string Earnings = SplitItem[3]; + Earnings = Earnings.Replace("$","").Split(' ')[1]; + // outBox.Text = "(GetShopData) Earnings: " + Earnings+ Environment.NewLine + outBox.Text; + stockitem.Earnings = decimal.Parse(Earnings); + // outBox.Text = "(GetShopData) stockitem: " + serializer.Serialize(stockitem) + Environment.NewLine + outBox.Text; + } else {} + //outBox.Text = "(GetShopData) stockitem " + serializer.Serialize(stockitem) + Environment.NewLine + outBox.Text; + out_var.Add(stockitem); + }//end foreach + return out_var; + } + + //Reports + public string[] DecompressDailyFiles (int day = 0, string Date = "") { + var now = DateTime.Now; + if (day == 0) { + int.TryParse(now.AddDays(-1).ToString("dd"), out day); + } + if (Date == "") { + Date = new DateTime(now.Year, now.Month, day).ToString("yyyy-MM-dd"); + } + //outBox.Text = "(DecompressDailyFiles) Date: " + Date + Environment.NewLine + outBox.Text; + string[] UnzipFiles = Directory.GetFiles(logFolder, Date + "*.log.gz", SearchOption.TopDirectoryOnly); + foreach (string Filename in UnzipFiles) { + try { + DeGZip(Filename); + } catch (Exception e) { + //outBox.Text = "(DecompressDailyFiles) DeGZip: " + e.Message + Environment.NewLine + outBox.Text; + } + } + try { + string[] inputfiles = Directory.GetFiles(logFolder, Date + "*.log", SearchOption.TopDirectoryOnly); + //outBox.Text = "(DecompressDailyFiles) inputfiles: " + serializer.Serialize(inputfiles) + Environment.NewLine + outBox.Text; + return inputfiles; + } catch (Exception e) { + //outBox.Text = "(DecompressDailyFiles) inputfiles: " + e.Message + Environment.NewLine + outBox.Text; + return null; + } + } + + public List DailyData (int day = 0, string Date = "") { + var now = DateTime.Now; + if (day == 0) { + int.TryParse(now.AddDays(-1).ToString("dd"), out day); + } + if (Date == "") { + Date = new DateTime(now.Year, now.Month, day).ToString("yyyy-MM-dd"); + } + List Data = new List(); + string[] inputfiles = DecompressDailyFiles(day,Date); + GetShopData(LatestLog); //Reading the log seems to nudge the filesystem into writing the gzip data. + foreach (string Filename in inputfiles) { + var data_inter = GetShopData(Filename); + Data.AddRange(data_inter); + } + return Data; + } + + public string ShopRevenue (int day = 0, string Date = "", bool Format = false, bool Today = false) { + string sum_string = null; + decimal Sum = 0; + List Data = DailyData(day, Date); + if (Today) { + Data = GetShopData(LatestLog); + } + Data = Data.Where(s => s.Event.Contains(EventNames.Buy.ToString())).ToList(); + foreach (StockItem Datum in Data) { + Sum += Datum.Earnings; + } + sum_string = Sum.ToString("C2"); + if (Format) { + sum_string = Date + " Alcove made " + sum_string; + } + return sum_string; + } + + public string GetDailySales (string Date = "", bool Weekly = false, List Data = null) { + string string_out = ""; + string Turnover = ""; + string string_Sold = ""; + string string_Purchased = ""; + var now = DateTime.Now; + int day = Convert.ToInt32(now.AddDays(-1).ToString("dd")); + if (Date == "") { + Date = new DateTime(now.Year, now.Month, day).ToString("yyyy-MM-dd"); + } + string LogFile = logFolder+"\\" + Date + ".log"; + + int Sold = 0; + int Purchased = 0; + if (Data == null) { + Data = GetShopData (LogFile).Where(d => d.Event != null).ToList(); + } + foreach (StockItem Datum in Data.Where(d => d.Event == EventNames.Buy.ToString()).ToList()) { + int number = 0; + int.TryParse(Datum.StockQty.ToString().Replace("-",""), out number); + //outBox.Text = "(GetDailySales) Buy Datum " + serializer.Serialize(Datum) + Environment.NewLine + outBox.Text; + Sold += number; + } + foreach (StockItem Datum in Data.Where(d => d.Event == EventNames.Sell.ToString()).ToList()) { + int number = 0; + int.TryParse(Datum.StockQty.ToString().Replace("-",""), out number); + //outBox.Text = "(GetDailySales) Sell Datum " + serializer.Serialize(Datum) + Environment.NewLine + outBox.Text; + Purchased += number; + } + if (Purchased > Sold) { + Turnover = (Purchased - Sold) + " more purchased than sold."; + } else if (Purchased < Sold) { + Turnover = (Sold - Purchased) + " more sold than purchased."; + } else { + Turnover = "Exact same amount purchased as sold. (This is rare, please double-check.)"; + } + string_Sold = Sold.ToString("C2"); + string_Purchased = Purchased.ToString("C2"); + + int OOS = Data.Where(d => d.Event == EventNames.Empty.ToString()).ToList().Count(); + + if (Weekly) { + if (Turnover == "Exact same amount purchased as sold. (This is rare, please double-check.)") { + Turnover = "Same"; + } + string spacer = " | "; + string_out = Date + spacer + Sold+ spacer + Purchased+ spacer + Turnover + spacer + OOS; + } else { + string_out = "Daily sales report for " + Date + ":\n- Sold: " + Sold + ":\n- Purchased: " + Purchased + ":\n- Turnover: " + Turnover + "\n- Out of stocks: " + OOS; + } + return string_out; + } + + public string BuildDailyReport (int day = 0, string Date = "", bool Weekly = false) { + var now = DateTime.Now; + if (day == 0) { + day = Convert.ToInt32(now.AddDays(-1).ToString("dd")); + } + if (Date == "") { + Date = new DateTime(now.Year, now.Month, day).ToString("yyyy-MM-dd"); + } + List ShopData = DailyData (day, Date); + //outBox.Text = "(BuildDailyReport) "+serializer.Serialize(ShopData) + Environment.NewLine + outBox.Text; + return GetDailySales(Date, Weekly, ShopData); + } + + public string BuildBiweeklyReport (int days = 14) { + var now = DateTime.Now; + string string_out = "Date | Sold | Purchased | Turnover | OOS | Revenue\n"; + + for (int day = 1; day<(days +1); day++) { + string Date = new DateTime(now.AddDays(-day).Year, now.AddDays(-day).Month, now.AddDays(-day).Day).ToString("yyyy-MM-dd"); + string Report = BuildDailyReport (0, Date, true); + string shopRevenue = ShopRevenue(0,Date,false); + string_out += Report + " | " + shopRevenue + "\n"; + } + return string_out; + } + + public void RefreshStatus() { + Color color_DefaultBack = Color.FromArgb(240,240,240); + Color color_DefaultText = Color.FromArgb(0,0,0); + Color color_InputBack = Color.FromArgb(255,255,255); + Color color_ActiveBack = Color.FromArgb(200,240,240); + + if (Mode == "Run") { + runButton.BackColor = color_ActiveBack; + stopButton.BackColor = color_DefaultBack; + } else if (Mode == "Stop") { + runButton.BackColor = color_DefaultBack; + stopButton.BackColor = color_ActiveBack; + } + } + + public void GetDailyReport(bool SendToWebhook = false) { + var now = DateTime.Now; + string reportDay_string = now.AddDays(-1).Day.ToString(); + int reportDay = 0; + int daysAgo = 0; + DialogResult result = drawInputDialog(ref reportDay_string, "Day of month:"); + switch (result) { + case DialogResult.OK: + int.TryParse(reportDay_string, out reportDay); + //Numbers representing time increase with time. + if (now.Day > reportDay) { + //If now.Day is larger than (after) reportDay, then the report is for earlier this month. + daysAgo = now.Day - reportDay; + } else if (reportDay > now.Day) { + //If reportDay is larger than (after) now.Day, then it's for last month. + int DaysInLastMonth = DateTime.DaysInMonth(now.AddDays(-daysAgo).Year, now.AddDays(-daysAgo).AddMonths(-1).Month); + daysAgo = DaysInLastMonth - (reportDay - now.Day); + //outBox.Text = "DaysInLastMonth: " + DaysInLastMonth + Environment.NewLine + outBox.Text; + } else { + daysAgo = 0; + } + string Date = new DateTime(now.AddDays(-daysAgo).Year, now.AddDays(-daysAgo).Month, now.AddDays(-daysAgo).Day).ToString("yyyy-MM-dd"); + string out_text = BuildDailyReport(0, Date); + outBox.Text = out_text + Environment.NewLine + outBox.Text; + if (SendToWebhook) { + SendMessageToWebhook(serializer.Serialize(out_text).Replace("\"","")); + outBox.Text = "Report sent to webhook:" + Environment.NewLine + outBox.Text; + } + break; + } + } + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//===================-------------------- Utility Functions --------------------==================== +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// +/*Powershell functional equivalency imperatives + Get-Clipboard = Clipboard.GetText(); + Get-Date = Timestamp.Now.ToString("M/d/yyyy"); + Get-Process = public Process[] processes = Process.GetProcesses(); or var processes = Process.GetProcessesByName("Test"); + New-Item = Directory.CreateDirectory(Path) or File.Create(Path); + Remove-Item = Directory.Delete(Path) or File.Delete(Path); + Get-ChildItem = string[] entries = Directory.GetFiles(path, "*", SearchOption.TopDirectoryOnly); + Start-Process = System.Diagnostics.Process.Start("PathOrUrl"); + Stop-Process = StopProcess("ProcessName"); + Start-Sleep = Thread.Sleep(GitHubRateLimitDelay); + Get-Random - Random rnd = new Random(); or int month = rnd.Next(1, 13); or int card = rnd.Next(52); + Create-Archive = ZipFile.CreateFromDirectory(dataPath, zipPath); + Expand-Archive = ZipFile.ExtractToDirectory(zipPath, extractPath); + Sort-Object = .OrderBy(n=>n).ToArray(); and -Unique = .Distinct(); Or Array.Sort(strArray); or List + + Get-VM = GetVM("VMName"); + Start-VM = SetVMState("VMName", 2); + Stop-VM = SetVMState("VMName", 4); + Stop-VM -TurnOff = SetVMState("VMName", 3); + Reboot-VM = SetVMState("VMName", 10); + Reset-VM = SetVMState("VMName", 11); + + Diff + var inShopDataButNotInOldData = ShopData.Except(OldData); + var inOldDataButNotInShopData = OldData.Except(ShopData); + +*/ + public string findIndexOf(string pageString,string startString,string endString,int startPlus,int endPlus){ + return pageString.Substring(pageString.IndexOf(startString)+startPlus, pageString.IndexOf(endString) - pageString.IndexOf(startString)+endPlus); + }// end findIndexOf + + public void DeGZip (string infile) { + string outfile = infile.Replace(".gz",""); + FileStream compressedFileStream = File.Open(infile, FileMode.Open); + FileStream outputFileStream = File.Create(outfile); + var decompressor = new GZipStream(compressedFileStream, CompressionMode.Decompress); + decompressor.CopyTo(outputFileStream); + } + //JSON + public dynamic FromJson(string string_input) { + dynamic dynamic_output = new System.Dynamic.ExpandoObject(); + dynamic_output = serializer.Deserialize(string_input); + return dynamic_output; + } + + public string ToJson(dynamic dynamic_input) { + string string_out; + string_out = serializer.Serialize(dynamic_input); + return string_out; + } + //CSV + public Dictionary[] FromCsv(string csv_in) { + //CSV isn't just a 2d object array - it's an array of Dictionary, whose string keys are the column headers. + string[] Rows = csv_in.Replace("\r\n","\n").Replace("\"","").Split('\n'); + string[] columnHeaders = Rows[0].Split(','); + Dictionary[] matrix = new Dictionary [Rows.Length]; + try { + for (int row = 1; row < Rows.Length; row++){ + matrix[row] = new Dictionary(); + //Need to enumerate values to create first row. + string[] rowData = Rows[row].Split(','); + try { + for (int col = 0; col < rowData.Length; col++){ + //Need to record or access first row to match with values. + matrix[row].Add(columnHeaders[col].ToString(), rowData[col]); + } + } catch { + } + } + } catch { + } + return matrix; + } + + public string ToCsv(Dictionary[] matrix) { + string csv_out = ""; + //Arrays seem to have a buffer row above and below the data. + int topRow = 1; + Dictionary headerRow = matrix[topRow]; + //Write header row (th). Support for multi-line headers maybe someday but not today. + if (headerRow != null) { + string[] columnHeaders = new string[headerRow.Keys.Count]; + headerRow.Keys.CopyTo(columnHeaders, 0); + //var a = matrix[0].Keys; + foreach (string columnHeader in columnHeaders){ + csv_out += columnHeader.ToString()+","; + } + csv_out = csv_out.TrimEnd(','); + // Write data rows (td). + for (int row = topRow; row < matrix.Length -1; row++){ + csv_out += "\n"; + foreach (string columnHeader in columnHeaders){ + csv_out += matrix[row][columnHeader]+","; + } + csv_out = csv_out.TrimEnd(','); + } + } + csv_out += "\n"; + return csv_out; + } + //File + //Non-locking alternative: System.IO.File.ReadAllBytes(Filename); + public string GetContent(string Filename, bool NoErrorMessage = false, bool Debug = false) { + string fiileString = null; + try { + //outBox.Text = "fiileString Start" + Environment.NewLine + outBox.Text; + + FileStream logFileStream = new FileStream(Filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + StreamReader logFileReader = new StreamReader(logFileStream); + while (!logFileReader.EndOfStream) { + // outBox.Text = "(GetContent) fiileString While."+ fiileString.Length + Environment.NewLine + outBox.Text; + fiileString = logFileReader.ReadLine(); + if (Debug == true) { + outBox.Text = "(GetContent) fiileString.Length."+ fiileString.Length + Environment.NewLine + outBox.Text; + } + } + if (Debug == true) { + outBox.Text = "(GetContent) FileStream Success."+ fiileString.Length + Environment.NewLine + outBox.Text; + } + logFileReader.Close(); + logFileStream.Close(); + } catch (Exception e){ + if (Debug == true) { + outBox.Text = "(GetContent) Error."+ e.Message + Environment.NewLine + outBox.Text; + } + } + return fiileString; + } + public string OldGetContent(string Filename, bool NoErrorMessage = false) { + string string_out = ""; + try { + // Open the text file using a stream reader. + using (var sr = new StreamReader(Filename)) { + // Read the stream as a string, and write the string to the console. + string_out = sr.ReadToEnd(); + } + } catch (Exception e){ + outBox.Text = "(OldGetContent) Error."+ e.Message + Environment.NewLine + outBox.Text; + } + return string_out; + } + + public void OutFile(string path, object content, bool Append = false) { + //From SO: Use "typeof" when you want to get the type at compilation time. Use "GetType" when you want to get the type at execution time. "is" returns true if an instance is in the inheritance tree. + if (TestPath(path) == "None") { + File.Create(path).Close(); + } + if (content.GetType() == typeof(string)) { + string out_content = (string)content; + //From SO: File.WriteAllLines takes a sequence of strings - you've only got a single string. If you only want your file to contain that single string, just use File.WriteAllText. + if (Append == true) { + File.AppendAllText(path, out_content, Encoding.ASCII);//string + } else { + File.WriteAllText(path, out_content, Encoding.ASCII);//string + } + } else { + IEnumerable out_content = (IEnumerable)content; + if (Append == true) { + File.AppendAllLines(path, out_content, Encoding.ASCII);//IEnumerable' + } else { + File.WriteAllLines(path, out_content, Encoding.ASCII);//string[] + } + } + } + + public void RemoveItem(string Path,bool remake = false){ + if (TestPath(Path) == "File") { + File.Delete(Path); + if (remake) { + File.Create(Path); + } + } else if (TestPath(Path) == "Directory") { + Directory.Delete(Path, true); + if (remake) { + Directory.CreateDirectory(Path); + } + } + } + + public string TestPath(string path) { + string string_out = ""; + if (path != null) { + path = path.Trim(); + if (Directory.Exists(path)) { + string_out = "Directory"; + } else if (File.Exists(path)) { + string_out = "File"; + } else {// neither file nor directory exists. guess intention + string_out = "None"; + } + } else {// neither file nor directory exists. guess intention + string_out = "Empty"; + } + return string_out; + } + //Web + public string InvokeWebRequest(string Url, string Method = WebRequestMethods.Http.Get, string Body = "",bool Authorization = false,bool JSON = false){ + string response_out = ""; + + // SSL stuff + //ServicePointManager.Expect100Continue = true; + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; + + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); + + if (JSON == true) { + request.ContentType = "application/json"; + } + if (Authorization == true) { + //request.Headers.Add("Authorization", "Bearer "+webHook); + //request.Headers.Add("X-GitHub-Api-build", "2022-11-28"); + request.PreAuthenticate = true; + } + + request.Method = Method; + request.ContentType = "application/json;charset=utf-8"; + request.Accept = "application/vnd.github+json"; + request.UserAgent = "WinGetApprovalPipeline"; + + //Check Headers + // for (int i=0; i < response.Headers.Count; ++i) { + // outBox_msg.AppendText(Environment.NewLine + "Header Name : " + response.Headers.Keys[i] + "Header value : " + response.Headers[i]); + // } + + try { + if ((Body == "") || (Method ==WebRequestMethods.Http.Get)) { + } else { + var data = Encoding.Default.GetBytes(Body); // note: choose appropriate encoding + request.ContentLength = data.Length; + var newStream = request.GetRequestStream(); // get a ref to the request body so it can be modified + newStream.Write(data, 0, data.Length); + newStream.Close(); + } + + } catch (Exception e) { + outBox.Text = "(InvokeWebRequest) Request Error: " + e.Message + Environment.NewLine + outBox.Text; + } + + try { + HttpWebResponse response = (HttpWebResponse)request.GetResponse(); + StreamReader sr = new StreamReader(response.GetResponseStream()); + if (Method == "Head") { + string response_text = response.StatusCode.ToString(); + response_out = response_text; + + } else { + string response_text = sr.ReadToEnd(); + response_out = response_text; + } + sr.Close(); + } catch (Exception e) { + outBox.Text = "(InvokeWebRequest) Response Error: " + e.Message + Environment.NewLine + outBox.Text; + } + return response_out; + }// end InvokeWebRequest + //Discord + public void SendMessageToWebhook (string content) { + string payload = "{\"content\": \"" + content + "\"}"; + if (webHook.Contains("http")) { + InvokeWebRequest(webHook, WebRequestMethods.Http.Post, payload,false,true); + } + } + + public string ReadSetting(string key) { + string result = "Not Found"; + try { + var appSettings = ConfigurationManager.AppSettings; + result = appSettings[key] ?? "Not Found"; + } catch (ConfigurationErrorsException) { + outBox.Text = "Error reading app settings" + Environment.NewLine + outBox.Text; + } + return result; + } + + public void DeleteSetting(string key) { + try { + var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); + var settings = configFile.AppSettings.Settings; + if (settings[key] == null) { + } else { + settings.Remove(key); + } + configFile.Save(ConfigurationSaveMode.Modified); + ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); + } catch (ConfigurationErrorsException) { + outBox.Text = "Error reading app settings" + Environment.NewLine + outBox.Text; + } + } + + public void AddOrUpdateSetting(string key, string value) { + try { + var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); + var settings = configFile.AppSettings.Settings; + if (settings[key] == null) { + settings.Add(key, value); + } else { + settings[key].Value = value; + } + configFile.Save(ConfigurationSaveMode.Modified); + ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); + } catch (ConfigurationErrorsException) { + outBox.Text = "Error reading app settings" + Environment.NewLine + outBox.Text; + } + } + + public void LoadSetting(string key, ref string value, string defaultValue) { + if (value == "Not Loaded") { + value = ReadSetting(key); + if (value == "Not Found") { + value = defaultValue; + AddOrUpdateSetting(key, value); + } + } + } + + + + + + + + +//////////////////////////////////////////====================//////////////////////////////////////// +//////////////////////====================--------------------====================//////////////////// +//====================-------------------- UI templates --------------------====================// +//////////////////////====================--------------------====================//////////////////// +//////////////////////////////////////////====================//////////////////////////////////////// + public void drawButton(ref Button button, int pointX, int pointY, int sizeX, int sizeY,string buttonText, EventHandler buttonOnclick){ + button = new Button(); + button.Text = buttonText; + button.Location = new Point(pointX, pointY); + button.Size = new Size(sizeX, sizeY); + //button.BackColor = color_DefaultBack; + //button.ForeColor = color_DefaultText; + button.Click += new EventHandler(buttonOnclick); + // button.Font = new Font(buttonFont, buttonFontSIze); + Controls.Add(button); + }// end drawButton + + public void drawRichTextBox(ref RichTextBox richTextBox, int pointX,int pointY,int sizeX,int sizeY,string text, string name){ + richTextBox = new RichTextBox(); + richTextBox.Text = text; + richTextBox.Name = name; + richTextBox.Multiline = true; + richTextBox.AcceptsTab = true; + richTextBox.WordWrap = true; + richTextBox.ReadOnly = true; + richTextBox.DetectUrls = true; + // richTextBox.BackColor = color_DefaultBack; + // richTextBox.ForeColor = color_DefaultText; + // richTextBox.Font = new Font(AppFont, AppFontSIze); + richTextBox.Location = new Point(pointX, pointY); + //richTextBox.LinkClicked += new LinkClickedEventHandler(Link_Click); + richTextBox.Width = sizeX; + richTextBox.Height = sizeY; + //richTextBox.Dock = DockStyle.Fill; + richTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None; + + + //richTextBox.BackColor = Color.Red; + //richTextBox.ForeColor = Color.Blue; + //richTextBox.RichTextBoxScrollBars = ScrollBars.Both; + //richTextBox.AcceptsReturn = true; + + Controls.Add(richTextBox); + }// end drawRichTextBox + + public void drawTextBox(ref TextBox urlBox, int pointX, int pointY, int sizeX, int sizeY,string text){ + urlBox = new TextBox(); + urlBox.Text = text; + urlBox.Name = "urlBox"; + // urlBox.Font = new Font(AppFont, urlBoxFontSIze); + urlBox.Location = new Point(pointX, pointY); + // urlBox.BackColor = color_InputBack; + // urlBox.ForeColor = color_DefaultText; + urlBox.Width = sizeX; + urlBox.Height = sizeY; + Controls.Add(urlBox); + } + + public void drawLabel(ref Label newLabel, int pointX, int pointY, int sizeX, int sizeY,string text){ + newLabel = new Label(); + newLabel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + //newLabel.ImageList = imageList1; + newLabel.ImageIndex = 1; + newLabel.ImageAlign = ContentAlignment.TopLeft; + // newLabel.BackColor = color_DefaultBack; + // newLabel.ForeColor = color_DefaultText; + newLabel.Name = "newLabel"; + // newLabel.Font = new Font(AppFont, AppFontSIze); + newLabel.Location = new Point(pointX, pointY); + newLabel.Width = sizeX; + newLabel.Height = sizeY; + //newLabel.KeyUp += newLabel_KeyUp; + + newLabel.Text = text; + + //newLabel.Size = new Size (label1.PreferredWidth, label1.PreferredHeight); + Controls.Add(newLabel); + } + + public void drawDataGrid(ref DataGridView dataGridView, int startX, int startY, int sizeX, int sizeY){ + dataGridView = new DataGridView(); + dataGridView.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Raised; + dataGridView.CellBorderStyle = DataGridViewCellBorderStyle.Single; + dataGridView.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + + // dataGridView.ForeColor = color_DefaultText;//Selected cell text color + // dataGridView.BackColor = color_DefaultBack;//Selected cell BG color + // dataGridView.DefaultCellStyle.SelectionForeColor = color_DefaultText;//Unselected cell text color + // dataGridView.DefaultCellStyle.SelectionBackColor = color_DefaultBack;//Unselected cell BG color + // dataGridView.BackgroundColor = color_DefaultBack;//Space underneath/between cells + dataGridView.GridColor = SystemColors.ActiveBorder;//Gridline color + + dataGridView.Name = "dataGridView"; + // dataGridView.Font = new Font(AppFont, AppFontSize); + dataGridView.Location = new Point(startX, startY); + dataGridView.Size = new Size(sizeX, sizeY); + // dataGridView.KeyUp += dataGridView_KeyUp; + // dataGridView.Text = text; + Controls.Add(dataGridView); + + + + dataGridView.EditMode = DataGridViewEditMode.EditProgrammatically; + dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders; + dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridView.AllowUserToDeleteRows = false; + dataGridView.RowHeadersVisible = false; + dataGridView.MultiSelect = false; + //dataGridView.Dock = DockStyle.Fill; + +/* + dataGridView.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView_CellFormatting); + dataGridView.CellParsing += new DataGridViewCellParsingEventHandler(dataGridView_CellParsing); + addNewRowButton.Click += new EventHandler(addNewRowButton_Click); + deleteRowButton.Click += new EventHandler(deleteRowButton_Click); + ledgerStyleButton.Click += new EventHandler(ledgerStyleButton_Click); + dataGridView.CellValidating += new DataGridViewCellValidatingEventHandler(dataGridView_CellValidating); +*/ + }// end drawDataGrid + + public void drawToolTip(ref ToolTip toolTip, ref Button button, string DisplayText, int AutoPopDelay = 5000, int InitialDelay = 1000, int ReshowDelay = 500){ + toolTip = new ToolTip(); + + // Set up the delays for the ToolTip. + toolTip.AutoPopDelay = AutoPopDelay; + toolTip.InitialDelay = InitialDelay; + toolTip.ReshowDelay = ReshowDelay; + // Force the ToolTip text to be displayed whether or not the form is active. + toolTip.ShowAlways = true; + + // Set up the ToolTip text for the Button and Checkbox. + toolTip.SetToolTip(button, DisplayText); + //toolTip.SetToolTip(this.checkBox1, "My checkBox1"); + } + + public void drawStatusStrip (StatusStrip statusStrip,ToolStripStatusLabel toolStripStatusLabel) { + statusStrip = new System.Windows.Forms.StatusStrip(); + statusStrip.Dock = System.Windows.Forms.DockStyle.Bottom; + statusStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible; + + toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); + toolStripStatusLabel.Name = "toolStripStatusLabel"; + toolStripStatusLabel.Size = new System.Drawing.Size(109, 17); + toolStripStatusLabel.Text = "toolStripStatusLabel"; + statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripStatusLabel }); + + statusStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow; + statusStrip.Location = new System.Drawing.Point(0, 0); + statusStrip.Name = "statusStrip"; + statusStrip.ShowItemToolTips = true; + statusStrip.Size = new System.Drawing.Size(292, 22); + statusStrip.SizingGrip = false; + statusStrip.Stretch = false; + statusStrip.TabIndex = 0; + statusStrip.Text = "statusStrip"; + + Controls.Add(statusStrip); + } + + public static DialogResult drawInputDialog(ref string input, string boxTitle) { + System.Drawing.Size size = new System.Drawing.Size(200, 70); + Form inputBox = new Form(); + + inputBox.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + inputBox.ClientSize = size; + inputBox.Text = boxTitle; + + System.Windows.Forms.TextBox textBox = new TextBox(); + textBox.Size = new System.Drawing.Size(size.Width - 10, 23); + textBox.Location = new System.Drawing.Point(5, 5); + textBox.Text = input; + inputBox.Controls.Add(textBox); + + Button okButton = new Button(); + okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + okButton.Name = "okButton"; + okButton.Size = new System.Drawing.Size(75, 23); + okButton.Text = "&OK"; + okButton.Location = new System.Drawing.Point(size.Width - 80 - 80, 39); + inputBox.Controls.Add(okButton); + + Button cancelButton = new Button(); + cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + cancelButton.Name = "cancelButton"; + cancelButton.Size = new System.Drawing.Size(75, 23); + cancelButton.Text = "&Cancel"; + cancelButton.Location = new System.Drawing.Point(size.Width - 80, 39); + inputBox.Controls.Add(cancelButton); + + inputBox.AcceptButton = okButton; + inputBox.CancelButton = cancelButton; + + DialogResult result = inputBox.ShowDialog(); + input = textBox.Text; + return result; + } + }// end AlcoveShopBot + + public class StockItem { + public string ItemName; + public int XLoc; + public int YLoc; + public int ZLoc; + public int StockQty; + public string Event; + public string Timestamp; + public string PlayerName; + public decimal Earnings; + } +}// end ShopBotNamespace +