From 504c7bf68b17b9234de03a4e4e3de33872bcc861 Mon Sep 17 00:00:00 2001 From: Liza Poggemeyer Date: Tue, 2 Oct 2018 21:56:39 +0000 Subject: [PATCH 01/34] Merged PR 11779: Fixed what's new merge issue - live publish --- .../auditing/audit-ipsec-driver.md | 4 ++-- .../auditing/audit-ipsec-extended-mode.md | 16 +++++++-------- .../auditing/audit-ipsec-main-mode.md | 20 +++++++++---------- .../auditing/audit-ipsec-quick-mode.md | 8 ++++---- .../whats-new-windows-10-version-1809.md | 3 --- 5 files changed, 24 insertions(+), 27 deletions(-) diff --git a/windows/security/threat-protection/auditing/audit-ipsec-driver.md b/windows/security/threat-protection/auditing/audit-ipsec-driver.md index 4b1c430188..1fb88b5fd4 100644 --- a/windows/security/threat-protection/auditing/audit-ipsec-driver.md +++ b/windows/security/threat-protection/auditing/audit-ipsec-driver.md @@ -8,7 +8,7 @@ ms.mktglfcycl: deploy ms.sitesec: library ms.localizationpriority: none author: Mir0sh -ms.date: 04/19/2017 +ms.date: 10/02/2018 --- # Audit IPsec Driver @@ -56,7 +56,7 @@ This subcategory is outside the scope of this document. ## 5478(S): IPsec Services has started successfully. -## 5479(): IPsec Services has been shut down successfully. The shutdown of IPsec Services can put the computer at greater risk of network attack or expose the computer to potential security risks. +## 5479(S): IPsec Services has been shut down successfully. The shutdown of IPsec Services can put the computer at greater risk of network attack or expose the computer to potential security risks. ## 5480(F): IPsec Services failed to get the complete list of network interfaces on the computer. This poses a potential security risk because some of the network interfaces may not get the protection provided by the applied IPsec filters. Use the IP Security Monitor snap-in to diagnose the problem. diff --git a/windows/security/threat-protection/auditing/audit-ipsec-extended-mode.md b/windows/security/threat-protection/auditing/audit-ipsec-extended-mode.md index 9edf8ad528..e9388ef13f 100644 --- a/windows/security/threat-protection/auditing/audit-ipsec-extended-mode.md +++ b/windows/security/threat-protection/auditing/audit-ipsec-extended-mode.md @@ -8,7 +8,7 @@ ms.mktglfcycl: deploy ms.sitesec: library ms.localizationpriority: none author: Mir0sh -ms.date: 04/19/2017 +ms.date: 10/02/2018 --- # Audit IPsec Extended Mode @@ -28,17 +28,17 @@ Audit IPsec Extended Mode subcategory is out of scope of this document, because | Member Server | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Extended Mode troubleshooting, or for tracing or monitoring IPsec Extended Mode operations. | | Workstation | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Extended Mode troubleshooting, or for tracing or monitoring IPsec Extended Mode operations. | -## 4978: During Extended Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. +## 4978(S): During Extended Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. -## 4979: IPsec Main Mode and Extended Mode security associations were established. +## 4979(S): IPsec Main Mode and Extended Mode security associations were established. -## 4980: IPsec Main Mode and Extended Mode security associations were established. +## 4980(S): IPsec Main Mode and Extended Mode security associations were established. -## 4981: IPsec Main Mode and Extended Mode security associations were established. +## 4981(S): IPsec Main Mode and Extended Mode security associations were established. -## 4982: IPsec Main Mode and Extended Mode security associations were established. +## 4982(S): IPsec Main Mode and Extended Mode security associations were established. -## 4983: An IPsec Extended Mode negotiation failed. The corresponding Main Mode security association has been deleted. +## 4983(S): An IPsec Extended Mode negotiation failed. The corresponding Main Mode security association has been deleted. -## 4984: An IPsec Extended Mode negotiation failed. The corresponding Main Mode security association has been deleted. +## 4984(S): An IPsec Extended Mode negotiation failed. The corresponding Main Mode security association has been deleted. diff --git a/windows/security/threat-protection/auditing/audit-ipsec-main-mode.md b/windows/security/threat-protection/auditing/audit-ipsec-main-mode.md index d0764daf4b..1a34ba32f3 100644 --- a/windows/security/threat-protection/auditing/audit-ipsec-main-mode.md +++ b/windows/security/threat-protection/auditing/audit-ipsec-main-mode.md @@ -8,7 +8,7 @@ ms.mktglfcycl: deploy ms.sitesec: library ms.localizationpriority: none author: Mir0sh -ms.date: 04/19/2017 +ms.date: 10/02/2018 --- # Audit IPsec Main Mode @@ -28,21 +28,21 @@ Audit IPsec Main Mode subcategory is out of scope of this document, because this | Member Server | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Main Mode troubleshooting, or for tracing or monitoring IPsec Main Mode operations. | | Workstation | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Main Mode troubleshooting, or for tracing or monitoring IPsec Main Mode operations. | -## 4646: Security ID: %1 +## 4646(S): Security ID: %1 -## 4650: An IPsec Main Mode security association was established. Extended Mode was not enabled. Certificate authentication was not used. +## 4650(S): An IPsec Main Mode security association was established. Extended Mode was not enabled. Certificate authentication was not used. -## 4651: An IPsec Main Mode security association was established. Extended Mode was not enabled. A certificate was used for authentication. +## 4651(S): An IPsec Main Mode security association was established. Extended Mode was not enabled. A certificate was used for authentication. -## 4652: An IPsec Main Mode negotiation failed. +## 4652(F): An IPsec Main Mode negotiation failed. -## 4653: An IPsec Main Mode negotiation failed. +## 4653(F): An IPsec Main Mode negotiation failed. -## 4655: An IPsec Main Mode security association ended. +## 4655(S): An IPsec Main Mode security association ended. -## 4976: During Main Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. +## 4976(S): During Main Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. -## 5049: An IPsec Security Association was deleted. +## 5049(S): An IPsec Security Association was deleted. -## 5453: An IPsec negotiation with a remote computer failed because the IKE and AuthIP IPsec Keying Modules (IKEEXT) service is not started. +## 5453(S): An IPsec negotiation with a remote computer failed because the IKE and AuthIP IPsec Keying Modules (IKEEXT) service is not started. diff --git a/windows/security/threat-protection/auditing/audit-ipsec-quick-mode.md b/windows/security/threat-protection/auditing/audit-ipsec-quick-mode.md index 7adfcddd8c..40aabcd719 100644 --- a/windows/security/threat-protection/auditing/audit-ipsec-quick-mode.md +++ b/windows/security/threat-protection/auditing/audit-ipsec-quick-mode.md @@ -8,7 +8,7 @@ ms.mktglfcycl: deploy ms.sitesec: library ms.localizationpriority: none author: Mir0sh -ms.date: 04/19/2017 +ms.date: 10/02/2018 --- # Audit IPsec Quick Mode @@ -28,9 +28,9 @@ Audit IPsec Quick Mode subcategory is out of scope of this document, because thi | Member Server | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Quick Mode troubleshooting, or for tracing or monitoring IPsec Quick Mode operations. | | Workstation | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Quick Mode troubleshooting, or for tracing or monitoring IPsec Quick Mode operations. | -## 4977: During Quick Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. +## 4977(S): During Quick Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. -## 5451: An IPsec Quick Mode security association was established. +## 5451(S): An IPsec Quick Mode security association was established. -## 5452: An IPsec Quick Mode security association ended. +## 5452(S): An IPsec Quick Mode security association ended. diff --git a/windows/whats-new/whats-new-windows-10-version-1809.md b/windows/whats-new/whats-new-windows-10-version-1809.md index 50352d8816..62ee95e835 100644 --- a/windows/whats-new/whats-new-windows-10-version-1809.md +++ b/windows/whats-new/whats-new-windows-10-version-1809.md @@ -189,8 +189,6 @@ Windows Defender Credential Guard has always been an optional feature, but Windo A network connection is now required to set up a new device. As a result, we removed the “skip for now” option in the network setup page in Out Of Box Experience (OOBE). -<<<<<<< HEAD -======= ### Windows Defender ATP [Windows Defender ATP](https://docs.microsoft.com/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection) has been enhanced with many new capabilities. For more information, see the following topics: @@ -220,7 +218,6 @@ Windows Defender ATP now adds support for Windows Server 2019. You'll be able to - [Onboard previous versions of Windows](https://docs.microsoft.com/windows/security/threat-protection/onboard-downlevel-windows-defender-advanced-threat-protection)
Onboard supported versions of Windows machines so that they can send sensor data to the Windows Defender ATP sensor ->>>>>>> 951a08abdd8a55231838c35a12890ed68af95f88 ## Faster sign-in to a Windows 10 shared pc Do you have shared devices deployed in your work place? **Fast sign-in** enables users to sign in to a shared Windows 10 PC in a flash! From df0712bd005c86bcbf4bf8f61295c6762bdea1f6 Mon Sep 17 00:00:00 2001 From: Dani Halfin Date: Thu, 4 Oct 2018 19:58:05 +0000 Subject: [PATCH 02/34] Merged PR 11881: push all the fixes to live --- windows/deployment/TOC.md | 7 + .../update/windows-analytics-azure-portal.md | 2 +- windows/security/threat-protection/TOC.md | 10 +- .../threat-protection/fips-140-validation.md | 7085 +++++++++++++++++ .../mbsa-removal-and-guidance.md | 39 + ...ows-defender-advanced-threat-protection.md | 2 +- .../windows-platform-common-criteria.md | 165 + 7 files changed, 7304 insertions(+), 6 deletions(-) create mode 100644 windows/security/threat-protection/fips-140-validation.md create mode 100644 windows/security/threat-protection/mbsa-removal-and-guidance.md create mode 100644 windows/security/threat-protection/windows-platform-common-criteria.md diff --git a/windows/deployment/TOC.md b/windows/deployment/TOC.md index 6577188cbc..c136d082ac 100644 --- a/windows/deployment/TOC.md +++ b/windows/deployment/TOC.md @@ -218,6 +218,13 @@ ### [Prepare servicing strategy for Windows 10 updates](update/waas-servicing-strategy-windows-10-updates.md) ### [Build deployment rings for Windows 10 updates](update/waas-deployment-rings-windows-10-updates.md) ### [Assign devices to servicing channels for Windows 10 updates](update/waas-servicing-channels-windows-10-updates.md) +### [Get started with Windows Update](update/windows-update-overview.md) +#### [How Windows Update works](update/how-windows-update-works.md) +#### [Windows Update log files](update/windows-update-logs.md) +#### [How to troubleshoot Windows Update](update/windows-update-troubleshooting.md) +#### [Common Windows Update errors](update/windows-update-errors.md) +#### [Windows Update error code reference](update/windows-update-error-reference.md) +#### [Other Windows Update resources](update/windows-update-resources.md) ### [Optimize Windows 10 update delivery](update/waas-optimize-windows-10-updates.md) #### [Configure Delivery Optimization for Windows 10 updates](update/waas-delivery-optimization.md) #### [Configure BranchCache for Windows 10 updates](update/waas-branchcache.md) diff --git a/windows/deployment/update/windows-analytics-azure-portal.md b/windows/deployment/update/windows-analytics-azure-portal.md index 0d7862c02a..e06fcfd35f 100644 --- a/windows/deployment/update/windows-analytics-azure-portal.md +++ b/windows/deployment/update/windows-analytics-azure-portal.md @@ -33,7 +33,7 @@ To check the Log Analytics workspaces you can access, select **Log Analytics**. [![Log Analytics workspace page showing accessible workspaces and linked Azure subscriptions](images/azure-portal-LAmain-wkspc-subname-sterile.png)](images/azure-portal-LAmain-wkspc-subname-sterile.png) -If you do not see your workspace in this view, but you are able to access the workspace from the classic portal, that means you do not have access to the workspaces's Azure subscription or resource group. To remedy this, you will need to find someone with admin rights to grant you access, which they can do by selecting the subscription name and selecting **Access control (IAM)** (alternatively they can configure your access at the resource group level). They should either grant you "Log Analytics Reader" access (for read-only access) or "Log Analytics Contributor" access (which enables making changes such as creating deployment plans and changing application readiness states). +If you do not see your workspace in this view, but you are able to access the workspace from the classic portal, that means you do not have access to the workspace's Azure subscription or resource group. To remedy this, you will need to find someone with admin rights to grant you access, which they can do by selecting the subscription name and selecting **Access control (IAM)** (alternatively they can configure your access at the resource group level). They should either grant you "Log Analytics Reader" access (for read-only access) or "Log Analytics Contributor" access (which enables making changes such as creating deployment plans and changing application readiness states). When permissions are configured, you can select the workspace and then select **Workspace summary** to see information similar to what was shown in the OMS overview page. diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 6bc125f9d5..5399e86a43 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -394,6 +394,12 @@ #### [Software developer FAQ](intelligence/developer-faq.md) #### [Software developer resources](intelligence/developer-resources.md) +## Certifications + +### [FIPS 140 Validation](fips-140-validation.md) +### [Windows Platform Common Criteria Certification](windows-platform-common-criteria.md) + + ## More Windows 10 security ### [The Windows Security app](windows-defender-security-center/windows-defender-security-center.md) @@ -961,14 +967,10 @@ ###### [Take ownership of files or other objects](security-policy-settings/take-ownership-of-files-or-other-objects.md) - - ### [Windows security baselines](windows-security-baselines.md) #### [Security Compliance Toolkit](security-compliance-toolkit-10.md) #### [Get support](get-support-for-security-baselines.md) - - ### [Windows 10 Mobile security guide](windows-10-mobile-security-guide.md) ## [Change history for Threat protection](change-history-for-threat-protection.md) diff --git a/windows/security/threat-protection/fips-140-validation.md b/windows/security/threat-protection/fips-140-validation.md new file mode 100644 index 0000000000..cdd262ce1c --- /dev/null +++ b/windows/security/threat-protection/fips-140-validation.md @@ -0,0 +1,7085 @@ +--- +title: FIPS 140 Validation +description: This topic provides information on how Microsoft products and cryptographic modules comply with the U.S. Federal government standard FIPS 140. +ms.prod: w10 +ms.localizationpriority: medium +ms.author: daniha +author: danihalfin +ms.date: 04/03/2018 +--- + + +# FIPS 140 Validation + +On this page + + - [Introduction](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0eo) + - [FIPS 140 Overview](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0ebd) + - [Microsoft Product Validation (Information for Procurement Officers and Auditors)](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0ezd) + - [Information for System Integrators](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0eve) + - [Information for Software Developers](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0eibac) + - [FIPS 140 FAQ](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0eqcac) + - [Microsoft FIPS 140 Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0ewfac) + - [Cryptographic Algorithms](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0erobg) + +Updated: March 2018 + +  + +## Introduction + +This document provides information on how Microsoft products and cryptographic modules comply with the U.S. Federal government standard, *Federal Information Processing Standard (FIPS) 140 – Security Requirements for Cryptographic Modules* \[FIPS 140\]. + +### Audience + +This document is primarily focused on providing information for three parties: + +[Procurement Officer](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_product_validation) – Responsible for verifying that Microsoft products (or even third-party applications) are either FIPS 140 validated or utilize a Microsoft FIPS 140 validated cryptographic module. + +[System Integrator](https://technet.microsoft.com/en-us/library/cc750357.aspx#_information_for_system) – Responsible for ensuring that Microsoft Products are configured properly to use only FIPS 140 validated cryptographic modules. + +[Software Developer](https://technet.microsoft.com/en-us/library/cc750357.aspx#_information_for_software) – Responsible for building software products that utilize Microsoft FIPS 140 validated cryptographic modules. + +### Document Map + +This document is broken into seven major sections: + +[FIPS 140 Overview](https://technet.microsoft.com/en-us/library/cc750357.aspx#_fips_140_overview) – Provides an overview of the FIPS 140 standard as well as provides some historical information about the standard. + +[Microsoft Product Validation (Information for Procurement Officers and Auditors)](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_product_validation) – Provides information on how Microsoft products are FIPS 140 validated. + +[Information for System Integrators](https://technet.microsoft.com/en-us/library/cc750357.aspx#_information_for_system) – Describes how to configure and verify that Microsoft Products are being used in a manner consistent with the product’s FIPS 140 Security Policy. + +[Information for Software Developers](https://technet.microsoft.com/en-us/library/cc750357.aspx#_information_for_software) – Identifies how developers can leverage the Microsoft FIPS 140 validated cryptographic modules. + +[FAQ](https://technet.microsoft.com/en-us/library/cc750357.aspx#_fips_140_faq) – Frequently Asked Questions. + +[Microsoft FIPS 140 Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_fips_140) – Explains Microsoft cryptographic architecture and identifies specific modules that are FIPS 140 validated. + +[Cryptographic Algorithms](https://technet.microsoft.com/en-us/library/cc750357.aspx#_cryptographic_algorithms) – Lists the cryptographic algorithm, modes, states, key sizes, Windows versions, and corresponding cryptographic algorithm validation certificates. + +## FIPS 140 Overview + +### FIPS 140 Standard + +FIPS 140 is a US government and Canadian government standard that defines a minimum set of the security requirements for products that implement cryptography. This standard is designed for cryptographic modules that are used to secure sensitive but unclassified information. Testing against the FIPS 140 standard is maintained by the Cryptographic Module Validation Program (CMVP), a joint effort between the US National Institute of Standards and Technology (NIST) and the Communications Security Establishment of Canada (CSEC). + +The current standard defines four-levels of increasing security, 1 through 4. Most software products (including all Microsoft products) are tested against the Level 1 security requirements. + +### Applicability of the FIPS standard + +Within the US Federal government, the FIPS 140 standard applies to any security system (whether hardware, firmware, software, or a combination thereof) to be used by agencies for protecting sensitive but unclassified information. Some agencies have expanded its use by requiring that the modules to be procured for secret systems also meet the FIPS 140 requirements. + +The FIPS 140 standard has also been used by different standards bodies, specification groups, nations, and private institutions as a requirement or guideline for those products (e.g. – Digital Cinema Systems Specification). + +### History of 140-1 + +FIPS 140-1 is the original working version of the standard made official on January 11, 1994. The standard remained in effect until FIPS 140-2 became mandatory for new products on May 25, 2002. + +### FIPS 140-2 + +FIPS 140-2 is currently the active version of the standard. + +### Microsoft FIPS Support Policy + +Microsoft actively maintains FIPS 140 validation for its cryptographic modules. + +### FIPS Mode of Operation + +The common term “FIPS mode” is used in this document and Security Policy documents. When a cryptographic module contains both FIPS-approved and non-FIPS approved security methods, it must have a "FIPS mode of operation" to ensure only FIPS-approved security methods may be used. When a module is in "FIPS mode", a non-FIPS approved method cannot be used instead of a FIPS-approved method. + +## Microsoft Product Validation (Information for Procurement Officers and Auditors) + +This section provides information for Procurement Officers and Auditors who are responsible for ensuring that Microsoft products with FIPS 140 validated cryptographic modules are used in their organization. The goal of this section is to provide an overview of the Microsoft developed products and modules and explain how the validated cryptographic modules are used. + +### Microsoft Product Relationship with CNG and CAPI libraries + +Rather than validate individual components and products, Microsoft chooses to validate only the underlying cryptographic modules. Subsequently, many Windows components and Microsoft products are built to rely on the Cryptographic API: Next Generation (CNG) and legacy Cryptographic API (CAPI) FIPS 140 validated cryptographic modules. Windows components and Microsoft products use the documented application programming interfaces (APIs) for each of the modules to access various cryptographic services. + +The following list contains some of the Windows components and Microsoft products that rely on FIPS 140 validated cryptographic modules: + + - Schannel Security Package + - Remote Desktop Protocol (RDP) Client + - Encrypting File System (EFS) + - Some Microsoft .NET Framework Applications (.NET also provides cryptographic algorithm implementations that have not been FIPS 140 validated.) + - BitLocker® Drive Full-volume Encryption + - IPsec Settings of Windows Firewall + +## Information for System Integrators + +This section provides information for System Integrators and Auditors who are responsible for deploying Microsoft products in a manner consistent with the product’s FIPS 140 Security Policy. + +There are two steps to ensure that Microsoft products operate in FIPS mode: + +1. Selecting/Installing FIPS 140 validated cryptographic modules +2. Setting FIPS local/group security policy flag. + +### Step 1 – Selecting/Installing FIPS 140 Validated Cryptographic Modules + +Systems Integrators must ensure that all cryptographic modules installed are, in fact, FIPS 140 validated. This can be accomplished by cross-checking the version number of the installed module with the list of validated binaries. The list of validated CAPI binaries is identified in the [CAPI Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_capi_validated_cryptographic) section below and the list of validated CNG binaries is identified in the [CNG Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_cng_validated_cryptographic) section below. There are similar sections for all other validated cryptographic modules. + +The version number of the installed binary is found by right-clicking the module file and clicking on the Version or Details tab. Cryptographic modules are stored in the "windows\\system32" or "windows\\system32\\drivers" directory. + +### Step 2 – Setting FIPS Local/Group Security Policy Flag + +The Windows operating system provides a group (or local) security policy setting, “System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing”, which is used by many Microsoft products to determine whether to operate in a FIPS-approved mode. When this policy is set, the validated cryptographic modules in Windows will also operate in a FIPS-approved mode. + +**Note** – There is no enforcement of the FIPS policy by the operating system or the validated cryptographic modules. Instead, each individual application must check this flag and enforce the Security Policy of the validated cryptographic modules. + +#### Instructions on Setting the FIPS Local/Group Security Policy Flag + +While there are alternative methods for setting the FIPS local/group security policy flag, the following method is included as a guide to users with Administrative privileges. This description is for the Local Security Policy, but the Group Security Policy may be set in a similar manner. + +1. Open the 'Run' menu by pressing the combination 'Windows Key + R'. +2. Type 'secpol.msc' and press 'Enter' or click the 'Ok' button. +3. In the Local Security Policy management console window that opens, use the left tab to navigate to the Local Policies -\> Security Options. +4. Scroll down the right pane and double-click 'System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing'. +5. In the properties window, select the 'Enabled' option and click the 'Apply' button. + +#### Microsoft Components and Products That Utilize FIPS Local/Group Security Policy + +The following list details some of the Microsoft components that use the cryptographic functionality implemented by either CNG or legacy CAPI. When the FIPS Local/Group Security Policy is set, the following components will enforce the validated module Security Policy. + + - Schannel Security Package + - Remote Desktop Protocol (RDP) Client + - Encrypting File System (EFS) + - Some Microsoft .NET Framework Applications (.NET also provides cryptographic algorithm implementations that have not been FIPS 140 validated.) + - BitLocker® Drive Full-volume Encryption + - IPsec Settings of Windows Firewall + +#### Effects of Setting FIPS Local/Group Security Policy Flag + +When setting the FIPS local/group security policy flag, the behavior of several Microsoft components and products are affected. The most noticeable difference will be that the components enforcing this setting will only use those algorithms approved or allowed in FIPS mode. The specific changes to the products listed above are: + + - Schannel Security Package forced to negotiate sessions using TLS. The following supported Cipher Suites are disabled: + + - - TLS\_RSA\_WITH\_RC4\_128\_SHA + - TLS\_RSA\_WITH\_RC4\_128\_MD5 + - SSL\_CK\_RC4\_128\_WITH\_MD5 + - SSL\_CK\_DES\_192\_EDE3\_CBC\_WITH\_MD5 + - TLS\_RSA\_WITH\_NULL\_MD5 + - TLS\_RSA\_WITH\_NULL\_SHA + + - The set of cryptographic algorithms that a Remote Desktop Protocol (RDP) server will use is scoped to: + + - - CALG\_RSA\_KEYX - RSA public key exchange algorithm + - CALG\_3DES - Triple DES encryption algorithm + - CALG\_AES\_128 - 128 bit AES + - CALG\_AES\_256 - 256 bit AES + - CALG\_SHA1 - SHA hashing algorithm + - CALG\_SHA\_256 - 256 bit SHA hashing algorithm + - CALG\_SHA\_384 - 384 bit SHA hashing algorithm + - CALG\_SHA\_512 - 512 bit SHA hashing algorithm + + - Any Microsoft .NET Framework applications, such as Microsoft ASP.NET or Windows Communication Foundation (WCF), only allow algorithm implementations that are validated to FIPS 140, meaning only classes that end in "CryptoServiceProvider" or "Cng" can be used. Any attempt to create an instance of other cryptographic algorithm classes or create instances that use non-allowed algorithms will cause an InvalidOperationException exception. + + - Verification of ClickOnce applications fails unless the client computer has .NET Framework 2.0 SP1 or later service pack installed or .NET Framework 3.5 or later installed. + + - On Windows Vista and Windows Server 2008 and later, BitLocker Drive Encryption switches from AES-128 using the elephant diffuser to using the approved AES-256 encryption. Recovery passwords are not created or backed up. Instead, backup a recovery key on a local drive or on a network share. To use the recovery key, put the key on a USB device and plug the device into the computer. + +Please be aware that selection of FIPS mode can limit product functionality (See ). + +## Information for Software Developers + +This section is targeted at developers who wish to build their own applications using the FIPS 140 validated cryptographic modules. + +Each of the validated cryptographic modules defines a series of rules that must be followed. The security rules for each validated cryptographic module are specified in the Security Policy document. Links to each of the Security Policy documents is provided in the [Microsoft FIPS 140 Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_fips_140) section below. Generally, the restriction in Microsoft validated cryptographic modules is limiting the use of cryptography to only FIPS Approved cryptographic algorithms, modes, and key sizes. + +### Using Microsoft Cryptographic Modules in a FIPS mode of operation + +No matter whether developing with native languages or using .NET, it is important to first check whether the CNG modules for the target system are FIPS validated. The list of validated CNG binaries is identified in the [CNG Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_cng_validated_cryptographic) section. + +When developing using CNG directly, it is the responsibility of the developer to follow the security rules outlined in the FIPS 140 Security Policy for each module. The security policy for each module is provided on the CMVP website. Links to each of the Security Policy documents is provided in the tables below. It is important to remember that setting the FIPS local/group security policy Flag (discussed above) does not affect the behavior of the modules when used for developing custom applications. + +If you are developing your application using .NET instead of using the native libraries, then setting the FIPS local policy flag will generate an exception when an improper .NET class is used for cryptography (i.e. the cryptographic classes whose names end in "Managed"). The names of these allowed classes end with "Cng", which use the CNG binaries or "CryptoServiceProvider", which use the legacy CAPI binaries. + +### Key Strengths and Validity Periods + +NIST Special Publication 800-131A Revision 1, Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths, dated November 2015, \[[SP 800-131A](http://dx.doi.org/10.6028/nist.sp.800-131ar1)\], offers guidance for moving to stronger cryptographic keys and algorithms. This does not replace NIST SP 800-57, Recommendation for Key Management Part 1: General, \[[SP 800-57](http://csrc.nist.gov/publications/pubssps.html#800-57-part1)\], but gives more specific guidance. One of the most important topics discussed in these publications deals with the key strengths of FIPS Approved algorithms and their validity periods. When developing applications that use FIPS Approved algorithms, it is also extremely important to select appropriate key sizes based on the security lifetimes recommended by NIST. + +## FIPS 140 FAQ + +The following are answers to commonly asked questions for the FIPS 140-2 validation of Microsoft products. + +1. How does FIPS 140 relate to the Common Criteria? + **Answer:** These are two separate security standards with different, but complementary, purposes. FIPS 140 is a standard designed specifically for validating product modules that implement cryptography. On the other hand, Common Criteria is designed to help evaluate security functions in IT products. + In many cases, Common Criteria evaluations will rely on FIPS 140 validations to provide assurance that cryptographic functionality is implemented properly. +2. How does FIPS 140 relate to Suite B? + **Answer:** Suite B is simply a set of cryptographic algorithms defined by the U.S. National Security Agency (NSA) as part of its Cryptographic Modernization Program. The set of Suite B cryptographic algorithms are to be used for both unclassified information and most classified information. + The Suite B cryptographic algorithms are a subset of the FIPS Approved cryptographic algorithms as allowed by the FIPS 140 standard. +3. There are so many modules listed on the NIST website for each release, how are they related and how do I tell which one applies to me? + **Answer:** Microsoft strives to validate all releases of its cryptographic modules. Each module provides a different set of cryptographic algorithms. If you are required to use only FIPS validated cryptographic modules, you simply need to verify that the version being used appears on the validation list. + Please see the [Microsoft FIPS 140 Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_fips_140)section for a complete list of Microsoft validated modules. +4. My application links against crypt32.dll, cryptsp.dll, advapi32.dll, bcrypt.dll, bcryptprimitives.dll, or ncrypt.dll. What do I need to do to assure I’m using FIPS 140 validated cryptographic modules? + **Answer:** crypt32.dll, cryptsp.dll, advapi32.dll, and ncrypt.dll are intermediary libraries that will offload all cryptographic operations to the FIPS validated cryptographic modules. Bcrypt.dll itself is a validated cryptographic module for Windows Vista and Windows Server 2008. For Windows 7 and Windows Server 2008 R2 and later, bcryptprimitives.dll is the validated module, but bcrypt.dll remains as one of the libraries to link against. + You must first verify that the underlying CNG cryptographic module is validated. Once verified, you'll need to confirm that you're using the module correctly in FIPS mode (See [Information for Software Developers](https://technet.microsoft.com/en-us/library/cc750357.aspx#_information_for_software) section for details). +5. What does "When operated in FIPS mode" mean on certificates? + **Answer:** This caveat identifies that a required configuration and security rules must be followed in order to use the cryptographic module in a manner consistent with its FIPS 140 Security Policy. The security rules are defined in the Security Policy for the module and usually revolve around using only FIPS Approved cryptographic algorithms and key sizes. Please see the Security Policy for the specific security rules for each cryptographic module (See [Microsoft FIPS 140 Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_fips_140) section for links to each policy). +6. Which FIPS validated module is called when Windows 7 or Windows 8 is configured to use the FIPS setting in the wireless configuration? + **Answer:** CNG is used. This setting tells the wireless driver to call FIPS 140-2 validated cryptographic modules instead of using the driver’s own cryptography, if any. +7. Is BitLocker to Go FIPS 140-2 validated? + **Answer:** There are two separate parts for BitLocker to Go. One part is simply a native feature of BitLocker and as such, it uses FIPS 140-2 validated cryptographic modules. The other part is the BitLocker to Go Reader application for down-level support of older operating systems such as Windows XP and Windows Vista. The Reader application does not use FIPS 140-2 validated cryptographic modules. +8. Are applications FIPS 140-2 validated? + **Answer:** Microsoft only has low-level cryptographic modules in Windows FIPS 140-2 validated, not high-level applications. A better question is whether a certain application calls a FIPS 140-2 validated cryptographic module in the underlying Windows OS. That question needs to be directed to the company/product group that created the application of interest. +9. How can Systems Center Operations Manager 2012 be configured to use FIPS 140-2 validated cryptographic modules? + **Answer:** See [http://technet.microsoft.com/en-us/library/hh914094.aspx](https://technet.microsoft.com/en-us/library/hh914094.aspx) + +## Microsoft FIPS 140 Validated Cryptographic Modules + +### Modules By Operating System + +The following tables identify the Cryptographic Modules for an operating system. + +#### Windows + +##### Windows 10 Creators Update (Version 1703) + +Validated Editions: Home, Pro, Enterprise, Education, S, Surface Hub, Mobile + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)10.0.15063#3095

FIPS Approved algorithms: AES (Cert. #4624); CKG (vendor affirmed); CVL (Certs. #1278 and #1281); DRBG (Cert. #1555); DSA (Cert. #1223); ECDSA (Cert. #1133); HMAC (Cert. #3061); KAS (Cert. #127); KBKDF (Cert. #140); KTS (AES Cert. #4626; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2521 and #2522); SHS (Cert. #3790); Triple-DES (Cert. #2459)
+
+Other algorithms: HMAC-MD5; MD5; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)

+

Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #1133); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #2521); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #1281); SP800-135 - Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS (Cert. #1278)

Kernel Mode Cryptographic Primitives Library (cng.sys)10.0.15063#3094

#3094

+

FIPS Approved algorithms: AES (Certs. #4624 and #4626); CKG (vendor affirmed); CVL (Certs. #1278 and #1281); DRBG (Cert. #1555); DSA (Cert. #1223); ECDSA (Cert. #1133); HMAC (Cert. #3061); KAS (Cert. #127); KBKDF (Cert. #140); KTS (AES Cert. #4626; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2521 and #2523); SHS (Cert. #3790); Triple-DES (Cert. #2459)
+
+Other algorithms: HMAC-MD5; MD5; NDRNG; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)

+

Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert.#1133); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert.#2521); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert.#1281)

Boot Manager10.0.15063#3089

FIPS Approved algorithms: AES (Certs. #4624 and #4625); CKG (vendor affirmed); HMAC (Cert. #3061); PBKDF (vendor affirmed); RSA (Cert. #2523); SHS (Cert. #3790)

+

Other algorithms: PBKDF (vendor affirmed); VMK KDF (vendor affirmed)

Windows OS Loader10.0.15063#3090

FIPS Approved algorithms: AES (Certs. #4624 and #4625); RSA (Cert. #2523); SHS (Cert. #3790)

+

Other algorithms: NDRNG

Windows Resume[1]10.0.15063#3091FIPS Approved algorithms: AES (Certs. #4624 and #4625); RSA (Cert. #2523); SHS (Cert. #3790)
BitLocker® Dump Filter[2]10.0.15063#3092FIPS Approved algorithms: AES (Certs. #4624 and #4625); RSA (Cert. #2522); SHS (Cert. #3790)
Code Integrity (ci.dll)10.0.15063#3093

FIPS Approved algorithms: AES (Cert. #4624); RSA (Certs. #2522 and #2523); SHS (Cert. #3790)

+

Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v1.5 - RSASP1 Signature Primitive (Cert. #1282)

Secure Kernel Code Integrity (skci.dll)[3]10.0.15063#3096

FIPS Approved algorithms: AES (Cert. #4624); RSA (Certs. #2522 and #2523); SHS (Cert. #3790)

+

Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v1.5 - RSASP1 Signature Primitive (Cert. #1282)

+ + +\[1\] Applies only to Home, Pro, Enterprise, Education and S + +\[2\] Applies only to Pro, Enterprise, Education, S, Mobile and Surface Hub + +\[3\] Applies only to Pro, Enterprise Education and S + +##### Windows 10 Anniversary Update (Version 1607) + +Validated Editions: Home, Pro, Enterprise, Enterprise LTSB, Mobile + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)10.0.14393#2937

FIPS Approved algorithms: AES (Cert. #4064); DRBG (Cert. #1217); DSA (Cert. #1098); ECDSA (Cert. #911); HMAC (Cert. #2651); KAS (Cert. #92); KBKDF (Cert. #101); KTS (AES Cert. #4062; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2192, #2193 and #2195); SHS (Cert. #3347); Triple-DES (Cert. #2227)
+
+Other algorithms: HMAC-MD5; MD5; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)

+

Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #922); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #888); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #887); SP800-135 - Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS (Cert. #886)

Kernel Mode Cryptographic Primitives Library (cng.sys)10.0.14393#2936

FIPS Approved algorithms: AES (Cert. #4064); DRBG (Cert. #1217); DSA (Cert. #1098); ECDSA (Cert. #911); HMAC (Cert. #2651); KAS (Cert. #92); KBKDF (Cert. #101); KTS (AES Cert. #4062; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2192, #2193 and #2195); SHS (Cert. #3347); Triple-DES (Cert. #2227)
+
+Other algorithms: HMAC-MD5; MD5; NDRNG; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)

+

Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #922); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #888); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #887)

Boot Manager10.0.14393#2931

FIPS Approved algorithms: AES (Certs. #4061 and #4064); HMAC (Cert. #2651); PBKDF (vendor affirmed); RSA (Cert. #2193); SHS (Cert. #3347)

+

Other algorithms: MD5; PBKDF (non-compliant); VMK KDF

BitLocker® Windows OS Loader (winload)10.0.14393#2932FIPS Approved algorithms: AES (Certs. #4061 and #4064); RSA (Cert. #2193); SHS (Cert. #3347)
+
+Other algorithms: NDRNG; MD5
BitLocker® Windows Resume (winresume)[1]10.0.14393#2933FIPS Approved algorithms: AES (Certs. #4061 and #4064); RSA (Cert. #2193); SHS (Cert. #3347)
+
+Other algorithms: MD5
BitLocker® Dump Filter (dumpfve.sys)[2]10.0.14393#2934FIPS Approved algorithms: AES (Certs. #4061 and #4064)
Code Integrity (ci.dll)10.0.14393#2935

FIPS Approved algorithms: RSA (Cert. #2193); SHS (Cert. #3347)
+
+Other algorithms: AES (non-compliant); MD5

+

Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #888)

Secure Kernel Code Integrity (skci.dll)[3]10.0.14393#2938

FIPS Approved algorithms: RSA (Certs. #2193); SHS (Certs. #3347)
+
+Other algorithms: MD5

+

Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #888)

+ + +\[1\] Applies only to Home, Pro, Enterprise and Enterprise LTSB + +\[2\] Applies only to Pro, Enterprise, Enterprise LTSB and Mobile + +\[3\] Applies only to Pro, Enterprise and Enterprise LTSB + +##### Windows 10 November 2015 Update (Version 1511) + +Validated Editions: Home, Pro, Enterprise, Enterprise LTSB, Mobile, Surface Hub + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)10.0.10586#2606

FIPS Approved algorithms: AES (Certs. #3629); DRBG (Certs. #955); DSA (Certs. #1024); ECDSA (Certs. #760); HMAC (Certs. #2381); KAS (Certs. #72; key agreement; key establishment methodology provides between 112 and 256 bits of encryption strength); KBKDF (Certs. #72); KTS (AES Certs. #3653; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #1887, #1888 and #1889); SHS (Certs. #3047); Triple-DES (Certs. #2024)
+
+Other algorithms: DES; HMAC-MD5; Legacy CAPI KDF; MD2; MD4; MD5; RC2; RC4; RSA (encrypt/decrypt)

+

Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #666); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #665); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #663); SP800-135 - Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS (Cert. #664)

Kernel Mode Cryptographic Primitives Library (cng.sys)10.0.10586#2605

FIPS Approved algorithms: AES (Certs. #3629); DRBG (Certs. #955); DSA (Certs.  #1024); ECDSA (Certs. #760); HMAC (Certs. #2381); KAS (Certs. #72; key agreement; key establishment methodology provides between 112 and 256 bits of encryption strength); KBKDF (Certs. #72); KTS (AES Certs. #3653; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #1887, #1888 and #1889); SHS (Certs. #3047); Triple-DES (Certs. #2024)
+
+Other algorithms: DES; HMAC-MD5; Legacy CAPI KDF; MD2; MD4; MD5; RC2; RC4; RSA (encrypt/decrypt)

+

Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #666); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #665); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #663)

Boot Manager[4]10.0.10586#2700FIPS Approved algorithms: AES (Certs. #3653); HMAC (Cert. #2381); PBKDF (vendor affirmed); RSA (Cert. #1871); SHS (Certs. #3047 and #3048)
+
+Other algorithms: MD5; KDF (non-compliant); PBKDF (non-compliant)
BitLocker® Windows OS Loader (winload)[5]10.0.10586#2701FIPS Approved algorithms: AES (Certs. #3629 and #3653); RSA (Cert. #1871); SHS (Cert. #3048)
+
+Other algorithms: MD5; NDRNG
BitLocker® Windows Resume (winresume)[6]10.0.10586#2702FIPS Approved algorithms: AES (Certs. #3653); RSA (Cert. #1871); SHS (Cert. #3048)
+
+Other algorithms: MD5
BitLocker® Dump Filter (dumpfve.sys)[7]10.0.10586#2703FIPS Approved algorithms: AES (Certs. #3653)
Code Integrity (ci.dll)10.0.10586#2604

FIPS Approved algorithms: RSA (Certs. #1871); SHS (Certs. #3048)
+
+Other algorithms: AES (non-compliant); MD5

+

Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #665)

Secure Kernel Code Integrity (skci.dll)[8]10.0.10586#2607

FIPS Approved algorithms: RSA (Certs. #1871); SHS (Certs. #3048)
+
+Other algorithms: MD5

+

Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #665)

+ + +\[4\] Applies only to Home, Pro, Enterprise, Mobile and Surface Hub + +\[5\] Applies only to Home, Pro, Enterprise, Mobile and Surface Hub + +\[6\] Applies only to Home, Pro and Enterprise + +\[7\] Applies only to Pro, Enterprise, Mobile and Surface Hub + +\[8\] Applies only to Enterprise and Enterprise LTSB + +##### Windows 10 (Version 1507) + +Validated Editions: Home, Pro, Enterprise, Enterprise LTSB, Mobile, and Surface Hub + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)10.0.10240#2606

FIPS Approved algorithms: AES (Certs. #3497); DRBG (Certs. #868); DSA (Certs. #983); ECDSA (Certs. #706); HMAC (Certs. #2233); KAS (Certs. #64; key agreement; key establishment methodology provides between 112 and 256 bits of encryption strength); KBKDF (Certs. #66); KTS (AES Certs. #3507; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #1783, #1798, and #1802); SHS (Certs. #2886); Triple-DES (Certs. #1969)
+
+Other algorithms: DES; HMAC-MD5; Legacy CAPI KDF; MD2; MD4; MD5; RC2; RC4; RSA (encrypt/decrypt)

+

Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #572); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #576); SP800-135 - Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS (Cert. #575)

Kernel Mode Cryptographic Primitives Library (cng.sys)10.0.10240#2605

FIPS Approved algorithms: AES (Certs. #3497); DRBG (Certs. #868); DSA (Certs. #983); ECDSA (Certs. #706); HMAC (Certs. #2233); KAS (Certs. #64; key agreement; key establishment methodology provides between 112 and 256 bits of encryption strength); KBKDF (Certs. #66); KTS (AES Certs. #3507; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #1783, #1798, and #1802); SHS (Certs. #2886); Triple-DES (Certs. #1969)
+
+Other algorithms: DES; HMAC-MD5; Legacy CAPI KDF; MD2; MD4; MD5; RC2; RC4; RSA (encrypt/decrypt)

+

Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #572); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #576)

Boot Manager[9]10.0.10240#2600FIPS Approved algorithms: AES (Cert. #3497); HMAC (Cert. #2233); KTS (AES Cert. #3498); PBKDF (vendor affirmed); RSA (Cert. #1784); SHS (Certs. #2871 and #2886)
+
+Other algorithms: MD5; KDF (non-compliant); PBKDF (non-compliant)
BitLocker® Windows OS Loader (winload)[10]10.0.10240#2601FIPS Approved algorithms: AES (Certs. #3497 and #3498); RSA (Cert. #1784); SHS (Cert. #2871)
+
+Other algorithms: MD5; NDRNG
BitLocker® Windows Resume (winresume)[11]10.0.10240#2602FIPS Approved algorithms: AES (Certs. #3497 and #3498); RSA (Cert. #1784); SHS (Cert. #2871)
+
+Other algorithms: MD5
BitLocker® Dump Filter (dumpfve.sys)[12]10.0.10240#2603FIPS Approved algorithms: AES (Certs. #3497 and #3498)
Code Integrity (ci.dll)10.0.10240#2604

FIPS Approved algorithms: RSA (Certs. #1784); SHS (Certs. #2871)
+
+Other algorithms: AES (non-compliant); MD5

+

Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #572)

Secure Kernel Code Integrity (skci.dll)[13]10.0.10240#2607

FIPS Approved algorithms: RSA (Certs. #1784); SHS (Certs. #2871)
+
+Other algorithms: MD5

+

Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #572)

+ + +\[9\] Applies only to Home, Pro, Enterprise and Enterprise LTSB + +\[10\] Applies only to Home, Pro, Enterprise and Enterprise LTSB + +\[11\] Applies only to Home, Pro, Enterprise and Enterprise LTSB + +\[12\] Applies only to Pro, Enterprise and Enterprise LTSB + +\[13\] Applies only to Enterprise and Enterprise LTSB + +##### Windows 8.1 + +Validated Editions: RT, Pro, Enterprise, Phone, Embedded + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)6.3.9600 6.3.9600.17031#2357

FIPS Approved algorithms: AES (Cert. #2832); DRBG (Certs. #489); DSA (Cert. #855); ECDSA (Cert. #505); HMAC (Cert. #1773); KAS (Cert. #47); KBKDF (Cert. #30); PBKDF (vendor affirmed); RSA (Certs. #1487, #1493 and #1519); SHS (Cert. #2373); Triple-DES (Cert. #1692)
+
+Other algorithms: AES (Cert. #2832, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); AES-GCM encryption (non-compliant); DES; HMAC MD5; Legacy CAPI KDF; MD2; MD4; MD5; NDRNG; RC2; RC4; RSA (encrypt/decrypt)#2832, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); AES-GCM encryption (non-compliant); DES; HMAC MD5; Legacy CAPI KDF; MD2; MD4; MD5; NDRNG; RC2; RC4; RSA (encrypt/decrypt)

+

Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #288); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #289); SP800-135 - Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS (Cert. #323)

Kernel Mode Cryptographic Primitives Library (cng.sys)6.3.9600 6.3.9600.17042#2356

FIPS Approved algorithms: AES (Cert. #2832); DRBG (Certs. #489); ECDSA (Cert. #505); HMAC (Cert. #1773); KAS (Cert. #47); KBKDF (Cert. #30); PBKDF (vendor affirmed); RSA (Certs. #1487, #1493 and #1519); SHS (Cert. # 2373); Triple-DES (Cert. #1692)
+
+Other algorithms: AES (Cert. #2832, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); AES-GCM encryption (non-compliant); DES; HMAC MD5; Legacy CAPI KDF; MD2; MD4; MD5; NDRNG; RC2; RC4; RSA (encrypt/decrypt)

+

Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #288); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #289)

Boot Manager6.3.9600 6.3.9600.17031#2351FIPS Approved algorithms: AES (Cert. #2832); HMAC (Cert. #1773); PBKDF (vendor affirmed); RSA (Cert. #1494); SHS (Certs. # 2373 and #2396)
+
+Other algorithms: MD5; KDF (non-compliant); PBKDF (non-compliant)
BitLocker® Windows OS Loader (winload)6.3.9600 6.3.9600.17031#2352FIPS Approved algorithms: AES (Cert. #2832); RSA (Cert. #1494); SHS (Cert. #2396)
+
+Other algorithms: MD5; NDRNG
BitLocker® Windows Resume (winresume)[14]6.3.9600 6.3.9600.17031#2353FIPS Approved algorithms: AES (Cert. #2832); RSA (Cert. #1494); SHS (Certs. # 2373 and #2396)
+
+Other algorithms: MD5
BitLocker® Dump Filter (dumpfve.sys)6.3.9600 6.3.9600.17031#2354FIPS Approved algorithms: AES (Cert. #2832)
+
+Other algorithms: N/A
Code Integrity (ci.dll)6.3.9600 6.3.9600.17031#2355#2355

FIPS Approved algorithms: RSA (Cert. #1494); SHS (Cert. # 2373)
+
+Other algorithms: MD5

+

Validated Component Implementations: PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #289)

+ + +\[14\] Applies only to Pro, Enterprise, and Embedded 8. + +##### Windows 8 + +Validated Editions: RT, Home, Pro, Enterprise, Phone + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Cryptographic Primitives Library (BCRYPTPRIMITIVES.DLL)6.2.9200#1892FIPS Approved algorithms: AES (Certs. #2197 and #2216); DRBG (Certs. #258); DSA (Cert. #687); ECDSA (Cert. #341); HMAC (Cert. #1345); KAS (Cert. #36); KBKDF (Cert. #3); PBKDF (vendor affirmed); RSA (Certs. #1133 and #1134); SHS (Cert. #1903); Triple-DES (Cert. #1387)
+
+Other algorithms: AES (Cert. #2197, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)#258); DSA (Cert. ); ECDSA (Cert. ); HMAC (Cert. ); KAS (Cert. ); KBKDF (Cert. ); PBKDF (vendor affirmed); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )
+
+
Kernel Mode Cryptographic Primitives Library (cng.sys)6.2.9200#1891FIPS Approved algorithms: AES (Certs. #2197 and #2216); DRBG (Certs. #258 and #259); ECDSA (Cert. #341); HMAC (Cert. #1345); KAS (Cert. #36); KBKDF (Cert. #3); PBKDF (vendor affirmed); RNG (Cert. #1110); RSA (Certs. #1133 and #1134); SHS (Cert. #1903); Triple-DES (Cert. #1387)
+
+Other algorithms: AES (Cert. #2197, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)#258 and ); ECDSA (Cert. ); HMAC (Cert. ); KAS (Cert. ); KBKDF (Cert. ); PBKDF (vendor affirmed); RNG (Cert. ); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )
+
+Other algorithms: AES (Cert. , key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)
Boot Manager6.2.9200#1895FIPS Approved algorithms: AES (Certs. #2196 and #2198); HMAC (Cert. #1347); RSA (Cert. #1132); SHS (Cert. #1903)
+
+Other algorithms: MD5
BitLocker® Windows OS Loader (WINLOAD)6.2.9200#1896FIPS Approved algorithms: AES (Certs. #2196 and #2198); RSA (Cert. #1132); SHS (Cert. #1903)
+
+Other algorithms: AES (Cert. #2197; non-compliant); MD5; Non-Approved RNG
BitLocker® Windows Resume (WINRESUME)[15]6.2.9200#1898FIPS Approved algorithms: AES (Certs. #2196 and #2198); RSA (Cert. #1132); SHS (Cert. #1903)
+
+Other algorithms: MD5
BitLocker® Dump Filter (DUMPFVE.SYS)6.2.9200#1899FIPS Approved algorithms: AES (Certs. #2196 and #2198)
+
+Other algorithms: N/A
Code Integrity (CI.DLL)6.2.9200#1897FIPS Approved algorithms: RSA (Cert. #1132); SHS (Cert. #1903)
+
+Other algorithms: MD5
Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH.DLL)6.2.9200#1893FIPS Approved algorithms: DSA (Cert. #686); SHS (Cert. #1902); Triple-DES (Cert. #1386); Triple-DES MAC (Triple-DES Cert. #1386, vendor affirmed)
+
+Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman; MD5; RC2; RC2 MAC; RC4; Triple-DES (Cert. #1386, key wrapping; key establishment methodology provides 112 bits of encryption strength; non-compliant less than 112 bits of encryption strength)#1902); Triple-DES (Cert. ); Triple-DES MAC (Triple-DES Cert. , vendor affirmed)
+
+Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman; MD5; RC2; RC2 MAC; RC4; Triple-DES (Cert. , key wrapping; key establishment methodology provides 112 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
Enhanced Cryptographic Provider (RSAENH.DLL)6.2.9200#1894FIPS Approved algorithms: AES (Cert. #2196); HMAC (Cert. #1346); RSA (Cert. #1132); SHS (Cert. #1902); Triple-DES (Cert. #1386)
+
+Other algorithms: AES (Cert. #2196, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); Triple-DES (Cert. #1386, key wrapping; key establishment methodology provides 112 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
+ + +\[15\] Applies only to Home and Pro + +**Windows 7** + +Validated Editions: Windows 7, Windows 7 SP1 + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Cryptographic Primitives Library (BCRYPTPRIMITIVES.DLL)

6.1.7600.16385

+

6.1.7601.17514

1329FIPS Approved algorithms: AES (Certs. #1168 and #1178); AES GCM (Cert. #1168, vendor-affirmed); AES GMAC (Cert. #1168, vendor-affirmed); DRBG (Certs. #23 and #24); DSA (Cert. #386); ECDSA (Cert. #141); HMAC (Cert. #677); KAS (SP 800-56A, vendor affirmed, key agreement; key establishment methodology provides 80 to 256 bits of encryption strength); RNG (Cert. #649); RSA (Certs. #559 and #560); SHS (Cert. #1081); Triple-DES (Cert. #846)
+
+Other algorithms: AES (Cert. #1168, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4#559 and ); SHS (Cert. ); Triple-DES (Cert. )
+
+Other algorithms: AES (Cert. , key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4
Kernel Mode Cryptographic Primitives Library (cng.sys)

6.1.7600.16385

+

6.1.7600.16915

+

6.1.7600.21092

+

6.1.7601.17514

+

6.1.7601.17725

+

6.1.7601.17919

+

6.1.7601.21861

+

6.1.7601.22076

1328FIPS Approved algorithms: AES (Certs. #1168 and #1178); AES GCM (Cert. #1168, vendor-affirmed); AES GMAC (Cert. #1168, vendor-affirmed); DRBG (Certs. #23 and #24); ECDSA (Cert. #141); HMAC (Cert. #677); KAS (SP 800-56A, vendor affirmed, key agreement; key establishment methodology provides 80 to 256 bits of encryption strength); RNG (Cert. #649); RSA (Certs. #559 and #560); SHS (Cert. #1081); Triple-DES (Cert. #846)
+
+Other algorithms: AES (Cert. #1168, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4
Boot Manager

6.1.7600.16385

+

6.1.7601.17514

1319FIPS Approved algorithms: AES (Certs. #1168 and #1177); HMAC (Cert. #675); RSA (Cert. #557); SHS (Cert. #1081)
+
+Other algorithms: MD5#1168 and ); HMAC (Cert. ); RSA (Cert. ); SHS (Cert. )
+
+Other algorithms: MD5
Winload OS Loader (winload.exe)

6.1.7600.16385

+

6.1.7600.16757

+

6.1.7600.20897

+

6.1.7600.20916

+

6.1.7601.17514

+

6.1.7601.17556

+

6.1.7601.21655

+

6.1.7601.21675

1326FIPS Approved algorithms: AES (Certs. #1168 and #1177); RSA (Cert. #557); SHS (Cert. #1081)
+
+Other algorithms: MD5
BitLocker™ Drive Encryption

6.1.7600.16385

+

6.1.7600.16429

+

6.1.7600.16757

+

6.1.7600.20536

+

6.1.7600.20873

+

6.1.7600.20897

+

6.1.7600.20916

+

6.1.7601.17514

+

6.1.7601.17556

+

6.1.7601.21634

+

6.1.7601.21655

+

6.1.7601.21675

1332FIPS Approved algorithms: AES (Certs. #1168 and #1177); HMAC (Cert. #675); SHS (Cert. #1081)
+
+Other algorithms: Elephant Diffuser
Code Integrity (CI.DLL)

6.1.7600.16385

+

6.1.7600.17122

+

6.1.7600.21320

+

6.1.7601.17514

+

6.1.7601.17950

+

6.1.7601.22108

1327FIPS Approved algorithms: RSA (Cert. #557); SHS (Cert. #1081)
+
+Other algorithms: MD5
Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH.DLL)6.1.7600.16385
+(no change in SP1)
1331FIPS Approved algorithms: DSA (Cert. #385); RNG (Cert. #649); SHS (Cert. #1081); Triple-DES (Cert. #846); Triple-DES MAC (Triple-DES Cert. #846, vendor affirmed)
+
+Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman; MD5; RC2; RC2 MAC; RC4
Enhanced Cryptographic Provider (RSAENH.DLL)6.1.7600.16385
+(no change in SP1)
1330FIPS Approved algorithms: AES (Cert. #1168); DRBG (Cert. #23); HMAC (Cert. #673); SHS (Cert. #1081); RSA (Certs. #557 and #559); Triple-DES (Cert. #846)
+
+Other algorithms: DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 256-bits of encryption strength; non-compliant less than 112 bits of encryption strength)
+ + +##### Windows Vista SP1 + +Validated Editions: Ultimate Edition + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Boot Manager (bootmgr)6.0.6001.18000 and 6.0.6002.18005978FIPS Approved algorithms: AES (Certs. #739 and #760); HMAC (Cert. #415); RSA (Cert. #354); SHS (Cert. #753)
Winload OS Loader (winload.exe)6.0.6001.18000, 6.0.6001.18027, 6.0.6001.18606, 6.0.6001.22125, 6.0.6001.22861, 6.0.6002.18005, 6.0.6002.18411 and 6.0.6002.22596979FIPS Approved algorithms: AES (Certs. #739 and #760); RSA (Cert. #354); SHS (Cert. #753)
+
+Other algorithms: MD5
Code Integrity (ci.dll)6.0.6001.18000, 6.0.6001.18023, 6.0.6001.22120, and 6.0.6002.18005980FIPS Approved algorithms: RSA (Cert. #354); SHS (Cert. #753)
+
+Other algorithms: MD5
Kernel Mode Security Support Provider Interface (ksecdd.sys)6.0.6001.18709, 6.0.6001.18272, 6.0.6001.18796, 6.0.6001.22202, 6.0.6001.22450, 6.0.6001.22987, 6.0.6001.23069, 6.0.6002.18005, 6.0.6002.18051, 6.0.6002.18541, 6.0.6002.18643, 6.0.6002.22152, 6.0.6002.22742, and 6.0.6002.228696.0.6001.18709, 6.0.6001.18272, 6.0.6001.18796, 6.0.6001.22202, 6.0.6001.22450, 6.0.6001.22987, 6.0.6001.23069, 6.0.6002.18005, 6.0.6002.18051, 6.0.6002.18541, 6.0.6002.18643, 6.0.6002.22152, 6.0.6002.22742, and 6.0.6002.228691000

FIPS Approved algorithms: AES (Certs. #739 and #756); ECDSA (Cert. #82); HMAC (Cert. #412); RNG (Cert. #435 and SP 800-90 AES-CTR, vendor-affirmed); RSA (Certs. #353 and #357); SHS (Cert. #753); Triple-DES (Cert. #656)#739 and ); ECDSA (Cert. ); HMAC (Cert. ); RNG (Cert.  and SP 800-90 AES-CTR, vendor-affirmed); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )

+

Other algorithms: AES (GCM and GMAC; non-compliant); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides between 128 and 256 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4; RNG (SP 800-90 Dual-EC; non-compliant); RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)

Cryptographic Primitives Library (bcrypt.dll)6.0.6001.22202, 6.0.6002.18005, and 6.0.6002.228726.0.6001.22202, 6.0.6002.18005, and 6.0.6002.228721001

FIPS Approved algorithms: AES (Certs. #739 and #756); DSA (Cert. #283); ECDSA (Cert. #82); HMAC (Cert. #412); RNG (Cert. #435 and SP 800-90, vendor affirmed); RSA (Certs. #353 and #357); SHS (Cert. #753); Triple-DES (Cert. #656)

+

Other algorithms: AES (GCM and GMAC; non-compliant); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides between 128 and 256 bits of encryption strength); MD2; MD4; MD5; RC2; RC4; RNG (SP 800-90 Dual-EC; non-compliant); RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant provides less than 112 bits of encryption strength)

Enhanced Cryptographic Provider (RSAENH)6.0.6001.22202 and 6.0.6002.180056.0.6001.22202 and 6.0.6002.180051002

FIPS Approved algorithms: AES (Cert. #739); HMAC (Cert. #407); RNG (SP 800-90, vendor affirmed); RSA (Certs. #353 and #354); SHS (Cert. #753); Triple-DES (Cert. #656)

+

Other algorithms: DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)

Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)6.0.6001.18000 and 6.0.6002.180056.0.6001.18000 and 6.0.6002.180051003

FIPS Approved algorithms: DSA (Cert. #281); RNG (Cert. #435); SHS (Cert. #753); Triple-DES (Cert. #656); Triple-DES MAC (Triple-DES Cert. #656, vendor affirmed)

+

Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD5; RC2; RC2 MAC; RC4

+ + +##### Windows Vista + +Validated Editions: Ultimate Edition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Enhanced Cryptographic Provider (RSAENH)6.0.6000.16386893FIPS Approved algorithms: AES (Cert. #553); HMAC (Cert. #297); RNG (Cert. #321); RSA (Certs. #255 and #258); SHS (Cert. #618); Triple-DES (Cert. #549)
+
+Other algorithms: DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)6.0.6000.16386894FIPS Approved algorithms: DSA (Cert. #226); RNG (Cert. #321); SHS (Cert. #618); Triple-DES (Cert. #549); Triple-DES MAC (Triple-DES Cert. #549, vendor affirmed)
+
+Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD5; RC2; RC2 MAC; RC4
BitLocker™ Drive Encryption6.0.6000.16386947FIPS Approved algorithms: AES (Cert. #715); HMAC (Cert. #386); SHS (Cert. #737)
+
+Other algorithms: Elephant Diffuser
Kernel Mode Security Support Provider Interface (ksecdd.sys)6.0.6000.16386, 6.0.6000.16870 and 6.0.6000.21067891FIPS Approved algorithms: AES (Cert. #553); ECDSA (Cert. #60); HMAC (Cert. #298); RNG (Cert. #321); RSA (Certs. #257 and #258); SHS (Cert. #618); Triple-DES (Cert. #549)
+
+Other algorithms: DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides 128 to 256 bits of encryption strength); MD2; MD4; MD5; RC2; RC4; HMAC MD5
+ + +##### Windows XP SP3 + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Kernel Mode Cryptographic Module (FIPS.SYS)5.1.2600.5512997

FIPS Approved algorithms: HMAC (Cert. #429); RNG (Cert. #449); SHS (Cert. #785); Triple-DES (Cert. #677); Triple-DES MAC (Triple-DES Cert. #677, vendor affirmed)

+

Other algorithms: DES; MD5; HMAC MD5

Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)5.1.2600.5507990

FIPS Approved algorithms: DSA (Cert. #292); RNG (Cert. #448); SHS (Cert. #784); Triple-DES (Cert. #676); Triple-DES MAC (Triple-DES Cert. #676, vendor affirmed)

+

Other algorithms: DES; DES40; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits); MD5; RC2; RC4

Enhanced Cryptographic Provider (RSAENH)5.1.2600.5507989

FIPS Approved algorithms: AES (Cert. #781); HMAC (Cert. #428); RNG (Cert. #447); RSA (Cert. #371); SHS (Cert. #783); Triple-DES (Cert. #675); Triple-DES MAC (Triple-DES Cert. #675, vendor affirmed)

+

Other algorithms: DES; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits)

+ + +##### Windows XP SP2 + + ++++++ + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
DSS/Diffie-Hellman Enhanced Cryptographic Provider5.1.2600.2133240

FIPS Approved algorithms: Triple-DES (Cert. #16); DSA/SHA-1 (Cert. #29)

+

Other algorithms: DES (Cert. #66); RC2; RC4; MD5; DES40; Diffie-Hellman (key agreement)

Microsoft Enhanced Cryptographic Provider5.1.2600.2161238

FIPS Approved algorithms: Triple-DES (Cert. #81); AES (Cert. #33); SHA-1 (Cert. #83); RSA (PKCS#1, vendor affirmed); HMAC-SHA-1 (Cert. #83, vendor affirmed)

+

Other algorithms: DES (Cert. #156); RC2; RC4; MD5

+ + +##### Windows XP SP1 + + ++++++ + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Microsoft Enhanced Cryptographic Provider5.1.2600.1029238

FIPS Approved algorithms: Triple-DES (Cert. #81); AES (Cert. #33); SHA-1 (Cert. #83); RSA (PKCS#1, vendor affirmed); HMAC-SHA-1 (Cert. #83, vendor affirmed)

+

Other algorithms: DES (Cert. #156); RC2; RC4; MD5

+ + +##### Windows XP + + ++++++ + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Kernel Mode Cryptographic Module5.1.2600.0241

FIPS Approved algorithms: Triple-DES (Cert. #16); DSA/SHA-1 (Cert. #35); HMAC-SHA-1 (Cert. #35, vendor affirmed)

+

Other algorithms: DES (Cert. #89)

+ + +##### Windows 2000 SP3 + + ++++++ + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Kernel Mode Cryptographic Module (FIPS.SYS)5.0.2195.1569106

FIPS Approved algorithms: Triple-DES (Cert. #16); SHA-1 (Certs. #35)

+

Other algorithms: DES (Certs. #89)

Base DSS Cryptographic Provider, Base Cryptographic Provider, DSS/Diffie-Hellman Enhanced Cryptographic Provider, and Enhanced Cryptographic Provider

(Base DSS: 5.0.2195.3665 [SP3])

+

(Base: 5.0.2195.3839 [SP3])

+

(DSS/DH Enh: 5.0.2195.3665 [SP3])

+

(Enh: 5.0.2195.3839 [SP3]

103

FIPS Approved algorithms: Triple-DES (Cert. #16); DSA/SHA-1 (Certs. #28 and #29); RSA (vendor affirmed)

+

Other algorithms: DES (Certs. #65, 66, 67 and 68); Diffie-Hellman (key agreement); RC2; RC4; MD2; MD4; MD5

+ + +##### Windows 2000 SP2 + + ++++++ + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Kernel Mode Cryptographic Module (FIPS.SYS)5.0.2195.1569106

FIPS Approved algorithms: Triple-DES (Cert. #16); SHA-1 (Certs. #35)

+

Other algorithms: DES (Certs. #89)

Base DSS Cryptographic Provider, Base Cryptographic Provider, DSS/Diffie-Hellman Enhanced Cryptographic Provider, and Enhanced Cryptographic Provider

(Base DSS:

+

5.0.2195.2228 [SP2])

+

(Base:

+

5.0.2195.2228 [SP2])

+

(DSS/DH Enh:

+

5.0.2195.2228 [SP2])

+

(Enh:

+

5.0.2195.2228 [SP2])

103

FIPS Approved algorithms: Triple-DES (Cert. #16); DSA/SHA-1 (Certs. #28 and #29); RSA (vendor affirmed)

+

Other algorithms: DES (Certs. #65, 66, 67 and 68); Diffie-Hellman (key agreement); RC2; RC4; MD2; MD4; MD5

+ + +##### Windows 2000 SP1 + + ++++++ + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Base DSS Cryptographic Provider, Base Cryptographic Provider, DSS/Diffie-Hellman Enhanced Cryptographic Provider, and Enhanced Cryptographic Provider

(Base DSS: 5.0.2150.1391 [SP1])

+

(Base: 5.0.2150.1391 [SP1])

+

(DSS/DH Enh: 5.0.2150.1391 [SP1])

+

(Enh: 5.0.2150.1391 [SP1])

103

FIPS Approved algorithms: Triple-DES (Cert. #16); DSA/SHA-1 (Certs. #28 and #29); RSA (vendor affirmed)

+

Other algorithms: DES (Certs. #65, 66, 67 and 68); Diffie-Hellman (key agreement); RC2; RC4; MD2; MD4; MD5

+ + +##### Windows 2000 + + ++++++ + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Base DSS Cryptographic Provider, Base Cryptographic Provider, DSS/Diffie-Hellman Enchanced Cryptographic Provider, and Enhanced Cryptographic Provider5.0.2150.176

FIPS Approved algorithms: Triple-DES (vendor affirmed); DSA/SHA-1 (Certs. #28 and 29); RSA (vendor affirmed)

+

Other algorithms: DES (Certs. #65, 66, 67 and 68); RC2; RC4; MD2; MD4; MD5; Diffie-Hellman (key agreement)

+ + +##### Windows 95 and Windows 98 + + ++++++ + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Base DSS Cryptographic Provider, Base Cryptographic Provider, DSS/Diffie-Hellman Enchanced Cryptographic Provider, and Enhanced Cryptographic Provider5.0.1877.6 and 5.0.1877.775

FIPS Approved algorithms: Triple-DES (vendor affirmed); SHA-1 (Certs. #20 and 21); DSA/SHA-1 (Certs. #25 and 26); RSA (vendor- affirmed)

+

Other algorithms: DES (Certs. #61, 62, 63 and 64); RC2; RC4; MD2; MD4; MD5; Diffie-Hellman (key agreement)

+ + +##### Windows NT 4.0 + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Base Cryptographic Provider5.0.1877.6 and 5.0.1877.768FIPS Approved algorithms: SHA-1 (Certs. #20 and 21); DSA/SHA- 1 (Certs. #25 and 26); RSA (vendor affirmed)
+
+Other algorithms: DES (Certs. #61, 62, 63 and 64); Triple-DES (allowed for US and Canadian Government use); RC2; RC4; MD2; MD4; MD5; Diffie-Hellman (key agreement)
+ + +#### Windows Server + +##### Windows Server 2016 + +Validated Editions: Standard, Datacenter, Storage Server + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)10.0.143932937FIPS Approved algorithms: AES (Cert. #4064); DRBG (Cert. #1217); DSA (Cert. #1098); ECDSA (Cert. #911); HMAC (Cert. #2651); KAS (Cert. #92); KBKDF (Cert. #101); KTS (AES Cert. #4062; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2192, #2193 and #2195); SHS (Cert. #3347); Triple-DES (Cert. #2227)
+
+Other algorithms: HMAC-MD5; MD5; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)
Kernel Mode Cryptographic Primitives Library (cng.sys)10.0.143932936FIPS Approved algorithms: AES (Cert. #4064); DRBG (Cert. #1217); DSA (Cert. #1098); ECDSA (Cert. #911); HMAC (Cert. #2651); KAS (Cert. #92); KBKDF (Cert. #101); KTS (AES Cert. #4062; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2192, #2193 and #2195); SHS (Cert. #3347); Triple-DES (Cert. #2227)
+
+Other algorithms: HMAC-MD5; MD5; NDRNG; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)
Boot Manager10.0.143932931

FIPS Approved algorithms: AES (Certs. #4061 and #4064); HMAC (Cert. #2651); PBKDF (vendor affirmed); RSA (Cert. #2193); SHS (Cert. #3347)

+

Other algorithms: MD5; PBKDF (non-compliant); VMK KDF

BitLocker® Windows OS Loader (winload)10.0.143932932FIPS Approved algorithms: AES (Certs. #4061 and #4064); RSA (Cert. #2193); SHS (Cert. #3347)
+
+Other algorithms: NDRNG; MD5
BitLocker® Windows Resume (winresume)10.0.143932933FIPS Approved algorithms: AES (Certs. #4061 and #4064); RSA (Cert. #2193); SHS (Cert. #3347)
+
+Other algorithms: MD5
BitLocker® Dump Filter (dumpfve.sys)10.0.143932934FIPS Approved algorithms: AES (Certs. #4061 and #4064)
Code Integrity (ci.dll)10.0.143932935FIPS Approved algorithms: RSA (Cert. #2193); SHS (Cert. #3347)
+
+Other algorithms: AES (non-compliant); MD5
Secure Kernel Code Integrity (skci.dll)10.0.143932938FIPS Approved algorithms: RSA (Certs. #2193); SHS (Certs. #3347)
+
+Other algorithms: MD5
+ + +##### Windows Server 2012 R2 + +Validated Editions: Server, Storage Server, + +**StorSimple 8000 Series, Azure StorSimple Virtual Array Windows Server 2012 R2** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)6.3.9600 6.3.9600.170312357FIPS Approved algorithms: AES (Cert. #2832); DRBG (Certs. #489); DSA (Cert. #855); ECDSA (Cert. #505); HMAC (Cert. #1773); KAS (Cert. #47); KBKDF (Cert. #30); PBKDF (vendor affirmed); RSA (Certs. #1487, #1493 and #1519); SHS (Cert. #2373); Triple-DES (Cert. #1692)
+
+Other algorithms: AES (Cert. #2832, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); AES-GCM encryption (non-compliant); DES; HMAC MD5; Legacy CAPI KDF; MD2; MD4; MD5; NDRNG; RC2; RC4; RSA (encrypt/decrypt)
Kernel Mode Cryptographic Primitives Library (cng.sys)6.3.9600 6.3.9600.170422356FIPS Approved algorithms: AES (Cert. #2832); DRBG (Certs. #489); ECDSA (Cert. #505); HMAC (Cert. #1773); KAS (Cert. #47); KBKDF (Cert. #30); PBKDF (vendor affirmed); RSA (Certs. #1487, #1493 and #1519); SHS (Cert. # 2373); Triple-DES (Cert. #1692)
+
+Other algorithms: AES (Cert. #2832, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); AES-GCM encryption (non-compliant); DES; HMAC MD5; Legacy CAPI KDF; MD2; MD4; MD5; NDRNG; RC2; RC4; RSA (encrypt/decrypt)
Boot Manager6.3.9600 6.3.9600.170312351FIPS Approved algorithms: AES (Cert. #2832); HMAC (Cert. #1773); PBKDF (vendor affirmed); RSA (Cert. #1494); SHS (Certs. # 2373 and #2396)
+
+Other algorithms: MD5; KDF (non-compliant); PBKDF (non-compliant)
BitLocker® Windows OS Loader (winload)6.3.9600 6.3.9600.170312352FIPS Approved algorithms: AES (Cert. #2832); RSA (Cert. #1494); SHS (Cert. #2396)
+
+Other algorithms: MD5; NDRNG
BitLocker® Windows Resume (winresume)[16]6.3.9600 6.3.9600.170312353FIPS Approved algorithms: AES (Cert. #2832); RSA (Cert. #1494); SHS (Certs. # 2373 and #2396)
+
+Other algorithms: MD5
BitLocker® Dump Filter (dumpfve.sys)[17]6.3.9600 6.3.9600.170312354FIPS Approved algorithms: AES (Cert. #2832)
+
+Other algorithms: N/A
Code Integrity (ci.dll)6.3.9600 6.3.9600.170312355FIPS Approved algorithms: RSA (Cert. #1494); SHS (Cert. # 2373)
+
+Other algorithms: MD5
+ + +\[16\] Does not apply to **Azure StorSimple Virtual Array Windows Server 2012 R2** + +\[17\] Does not apply to **Azure StorSimple Virtual Array Windows Server 2012 R2** + +**Windows Server 2012** + +Validated Editions: Server, Storage Server + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Cryptographic Primitives Library (BCRYPTPRIMITIVES.DLL)6.2.92001892FIPS Approved algorithms: AES (Certs. #2197 and #2216); DRBG (Certs. #258); DSA (Cert. #687); ECDSA (Cert. #341); HMAC (Cert. #1345); KAS (Cert. #36); KBKDF (Cert. #3); PBKDF (vendor affirmed); RSA (Certs. #1133 and #1134); SHS (Cert. #1903); Triple-DES (Cert. #1387)
+
+Other algorithms: AES (Cert. #2197, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)#687); ECDSA (Cert. ); HMAC (Cert. #); KAS (Cert. ); KBKDF (Cert. ); PBKDF (vendor affirmed); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )
+
+Other algorithms: AES (Cert. , key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)
Kernel Mode Cryptographic Primitives Library (cng.sys)6.2.92001891FIPS Approved algorithms: AES (Certs. #2197 and #2216); DRBG (Certs. #258 and #259); ECDSA (Cert. #341); HMAC (Cert. #1345); KAS (Cert. #36); KBKDF (Cert. #3); PBKDF (vendor affirmed); RNG (Cert. #1110); RSA (Certs. #1133 and #1134); SHS (Cert. #1903); Triple-DES (Cert. #1387)
+
+Other algorithms: AES (Cert. #2197, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)#1110); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )
+
+Other algorithms: AES (Cert. , key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)
Boot Manager6.2.92001895FIPS Approved algorithms: AES (Certs. #2196 and #2198); HMAC (Cert. #1347); RSA (Cert. #1132); SHS (Cert. #1903)
+
+Other algorithms: MD5
BitLocker® Windows OS Loader (WINLOAD)6.2.92001896FIPS Approved algorithms: AES (Certs. #2196 and #2198); RSA (Cert. #1132); SHS (Cert. #1903)
+
+Other algorithms: AES (Cert. #2197; non-compliant); MD5; Non-Approved RNG
BitLocker® Windows Resume (WINRESUME)6.2.92001898FIPS Approved algorithms: AES (Certs. #2196 and #2198); RSA (Cert. #1132); SHS (Cert. #1903)
+
+Other algorithms: MD5
BitLocker® Dump Filter (DUMPFVE.SYS)6.2.92001899FIPS Approved algorithms: AES (Certs. #2196 and #2198)
+
+Other algorithms: N/A
Code Integrity (CI.DLL)6.2.92001897FIPS Approved algorithms: RSA (Cert. #1132); SHS (Cert. #1903)
+
+Other algorithms: MD5
Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH.DLL)6.2.92001893FIPS Approved algorithms: DSA (Cert. #686); SHS (Cert. #1902); Triple-DES (Cert. #1386); Triple-DES MAC (Triple-DES Cert. #1386, vendor affirmed)
+
+Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman; MD5; RC2; RC2 MAC; RC4; Triple-DES (Cert. #1386, key wrapping; key establishment methodology provides 112 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
Enhanced Cryptographic Provider (RSAENH.DLL)6.2.92001894FIPS Approved algorithms: AES (Cert. #2196); HMAC (Cert. #1346); RSA (Cert. #1132); SHS (Cert. #1902); Triple-DES (Cert. #1386)
+
+Other algorithms: AES (Cert. #2196, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); Triple-DES (Cert. #1386, key wrapping; key establishment methodology provides 112 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
+ + +##### Windows Server 2008 R2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Boot Manager (bootmgr)6.1.7600.16385 or 6.1.7601.175146.1.7600.16385 or 6.1.7601.175141321FIPS Approved algorithms: AES (Certs. #1168 and #1177); HMAC (Cert. #675); RSA (Cert. #568); SHS (Cert. #1081)
+
+Other algorithms: MD5
Winload OS Loader (winload.exe)6.1.7600.16385, 6.1.7600.16757, 6.1.7600.20897, 6.1.7600.20916, 6.1.7601.17514, 6.1.7601.17556, 6.1.7601.21655 and 6.1.7601.216756.1.7600.16385, 6.1.7600.16757, 6.1.7600.20897, 6.1.7600.20916, 6.1.7601.17514, 6.1.7601.17556, 6.1.7601.21655 and 6.1.7601.216751333FIPS Approved algorithms: AES (Certs. #1168 and #1177); RSA (Cert. #568); SHS (Cert. #1081)
+
+Other algorithms: MD5
Code Integrity (ci.dll)6.1.7600.16385, 6.1.7600.17122, 6.1.7600.21320, 6.1.7601.17514, 6.1.7601.17950 and 6.1.7601.221086.1.7600.16385, 6.1.7600.17122, 6.1.7600.21320, 6.1.7601.17514, 6.1.7601.17950 and 6.1.7601.221081334FIPS Approved algorithms: RSA (Cert. #568); SHS (Cert. #1081)
+
+Other algorithms: MD5
Kernel Mode Cryptographic Primitives Library (cng.sys)6.1.7600.16385, 6.1.7600.16915, 6.1.7600.21092, 6.1.7601.17514, 6.1.7601.17919, 6.1.7601.17725, 6.1.7601.21861 and 6.1.7601.220766.1.7600.16385, 6.1.7600.16915, 6.1.7600.21092, 6.1.7601.17514, 6.1.7601.17919, 6.1.7601.17725, 6.1.7601.21861 and 6.1.7601.220761335FIPS Approved algorithms: AES (Certs. #1168 and #1177); AES GCM (Cert. #1168, vendor-affirmed); AES GMAC (Cert. #1168, vendor-affirmed); DRBG (Certs. #23 and #27); ECDSA (Cert. #142); HMAC (Cert. #686); KAS (SP 800-56A, vendor affirmed, key agreement; key establishment methodology provides between 80 and 256 bits of encryption strength); RNG (Cert. #649); RSA (Certs. #559 and #567); SHS (Cert. #1081); Triple-DES (Cert. #846)
+
+-Other algorithms: AES (Cert. #1168, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4
Cryptographic Primitives Library (bcryptprimitives.dll)66.1.7600.16385 or 6.1.7601.1751466.1.7600.16385 or 6.1.7601.175141336FIPS Approved algorithms: AES (Certs. #1168 and #1177); AES GCM (Cert. #1168, vendor-affirmed); AES GMAC (Cert. #1168, vendor-affirmed); DRBG (Certs. #23 and #27); DSA (Cert. #391); ECDSA (Cert. #142); HMAC (Cert. #686); KAS (SP 800-56A, vendor affirmed, key agreement; key establishment methodology provides between 80 and 256 bits of encryption strength); RNG (Cert. #649); RSA (Certs. #559 and #567); SHS (Cert. #1081); Triple-DES (Cert. #846)
+
+Other algorithms: AES (Cert. #1168, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; HMAC MD5; MD2; MD4; MD5; RC2; RC4
Enhanced Cryptographic Provider (RSAENH)6.1.7600.163851337FIPS Approved algorithms: AES (Cert. #1168); DRBG (Cert. #23); HMAC (Cert. #687); SHS (Cert. #1081); RSA (Certs. #559 and #568); Triple-DES (Cert. #846)
+
+Other algorithms: DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 256 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)6.1.7600.163851338FIPS Approved algorithms: DSA (Cert. #390); RNG (Cert. #649); SHS (Cert. #1081); Triple-DES (Cert. #846); Triple-DES MAC (Triple-DES Cert. #846, vendor affirmed)
+
+Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman; MD5; RC2; RC2 MAC; RC4
BitLocker™ Drive Encryption6.1.7600.16385, 6.1.7600.16429, 6.1.7600.16757, 6.1.7600.20536, 6.1.7600.20873, 6.1.7600.20897, 6.1.7600.20916, 6.1.7601.17514, 6.1.7601.17556, 6.1.7601.21634, 6.1.7601.21655 or 6.1.7601.216756.1.7600.16385, 6.1.7600.16429, 6.1.7600.16757, 6.1.7600.20536, 6.1.7600.20873, 6.1.7600.20897, 6.1.7600.20916, 6.1.7601.17514, 6.1.7601.17556, 6.1.7601.21634, 6.1.7601.21655 or 6.1.7601.216751339FIPS Approved algorithms: AES (Certs. #1168 and #1177); HMAC (Cert. #675); SHS (Cert. #1081)
+
+Other algorithms: Elephant Diffuser
+ + +##### Windows Server 2008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Boot Manager (bootmgr)6.0.6001.18000, 6.0.6002.18005 and 6.0.6002.224976.0.6001.18000, 6.0.6002.18005 and 6.0.6002.224971004FIPS Approved algorithms: AES (Certs. #739 and #760); HMAC (Cert. #415); RSA (Cert. #355); SHS (Cert. #753)
+
+Other algorithms: N/A
Winload OS Loader (winload.exe)6.0.6001.18000, 6.0.6001.18606, 6.0.6001.22861, 6.0.6002.18005, 6.0.6002.18411, 6.0.6002.22497 and 6.0.6002.225966.0.6001.18000, 6.0.6001.18606, 6.0.6001.22861, 6.0.6002.18005, 6.0.6002.18411, 6.0.6002.22497 and 6.0.6002.225961005FIPS Approved algorithms: AES (Certs. #739 and #760); RSA (Cert. #355); SHS (Cert. #753)
+
+Other algorithms: MD5
Code Integrity (ci.dll)6.0.6001.18000 and 6.0.6002.180056.0.6001.18000 and 6.0.6002.180051006FIPS Approved algorithms: RSA (Cert. #355); SHS (Cert. #753)
+
+Other algorithms: MD5
Kernel Mode Security Support Provider Interface (ksecdd.sys)6.0.6001.18709, 6.0.6001.18272, 6.0.6001.18796, 6.0.6001.22202, 6.0.6001.22450, 6.0.6001.22987, 6.0.6001.23069, 6.0.6002.18005, 6.0.6002.18051, 6.0.6002.18541, 6.0.6002.18643, 6.0.6002.22152, 6.0.6002.22742 and 6.0.6002.228696.0.6001.18709, 6.0.6001.18272, 6.0.6001.18796, 6.0.6001.22202, 6.0.6001.22450, 6.0.6001.22987, 6.0.6001.23069, 6.0.6002.18005, 6.0.6002.18051, 6.0.6002.18541, 6.0.6002.18643, 6.0.6002.22152, 6.0.6002.22742 and 6.0.6002.228691007FIPS Approved algorithms: AES (Certs. #739 and #757); ECDSA (Cert. #83); HMAC (Cert. #413); RNG (Cert. #435 and SP800-90 AES-CTR, vendor affirmed); RSA (Certs. #353 and #358); SHS (Cert. #753); Triple-DES (Cert. #656)
+
+Other algorithms: AES (GCM and GMAC; non-compliant); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides between 128 and 256 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4; RNG (SP 800-90 Dual-EC; non-compliant); RSA (key wrapping: key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)#83); HMAC (Cert. ); RNG (Cert.  and SP800-90 AES-CTR, vendor affirmed); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )
+
+Other algorithms: AES (GCM and GMAC; non-compliant); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides between 128 and 256 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4; RNG (SP 800-90 Dual-EC; non-compliant); RSA (key wrapping: key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
Cryptographic Primitives Library (bcrypt.dll)6.0.6001.22202, 6.0.6002.18005 and 6.0.6002.228726.0.6001.22202, 6.0.6002.18005 and 6.0.6002.228721008FIPS Approved algorithms: AES (Certs. #739 and #757); DSA (Cert. #284); ECDSA (Cert. #83); HMAC (Cert. #413); RNG (Cert. #435 and SP800-90, vendor affirmed); RSA (Certs. #353 and #358); SHS (Cert. #753); Triple-DES (Cert. #656)
+
+Other algorithms: AES (GCM and GMAC; non-compliant); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides between 128 and 256 bits of encryption strength); MD2; MD4; MD5; RC2; RC4; RNG (SP 800-90 Dual-EC; non-compliant); RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant provides less than 112 bits of encryption strength)
Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)6.0.6001.18000 and 6.0.6002.180056.0.6001.18000 and 6.0.6002.180051009FIPS Approved algorithms: DSA (Cert. #282); RNG (Cert. #435); SHS (Cert. #753); Triple-DES (Cert. #656); Triple-DES MAC (Triple-DES Cert. #656, vendor affirmed)
+
+-Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD5; RC2; RC2 MAC; RC4
Enhanced Cryptographic Provider (RSAENH)6.0.6001.22202 and 6.0.6002.180056.0.6001.22202 and 6.0.6002.180051010FIPS Approved algorithms: AES (Cert. #739); HMAC (Cert. #408); RNG (SP 800-90, vendor affirmed); RSA (Certs. #353 and #355); SHS (Cert. #753); Triple-DES (Cert. #656)
+
+Other algorithms: DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
+ + +##### Windows Server 2003 SP2 + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)5.2.3790.3959875

FIPS Approved algorithms: DSA (Cert. #221); RNG (Cert. #314); RSA (Cert. #245); SHS (Cert. #611); Triple-DES (Cert. #543)

+

Other algorithms: DES; DES40; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD5; RC2; RC4

Kernel Mode Cryptographic Module (FIPS.SYS)5.2.3790.3959869

FIPS Approved algorithms: HMAC (Cert. #287); RNG (Cert. #313); SHS (Cert. #610); Triple-DES (Cert. #542)

+

Other algorithms: DES; HMAC-MD5

Enhanced Cryptographic Provider (RSAENH)5.2.3790.3959868

FIPS Approved algorithms: AES (Cert. #548); HMAC (Cert. #289); RNG (Cert. #316); RSA (Cert. #245); SHS (Cert. #613); Triple-DES (Cert. #544)

+

Other algorithms: DES; RC2; RC4; MD2; MD4; MD5; RSA (key wrapping; key establishment methodology provides between 112 and 256 bits of encryption strength; non-compliant less than 112 bits of encryption strength)

+ + +##### Windows Server 2003 SP1 + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Kernel Mode Cryptographic Module (FIPS.SYS)5.2.3790.1830 [SP1]405

FIPS Approved algorithms: Triple-DES (Certs. #201[1] and #370[1]); SHS (Certs. #177[1] and #371[2])

+

Other algorithms: DES (Cert. #230[1]); HMAC-MD5; HMAC-SHA-1 (non-compliant)

+

[1] x86
+[2] SP1 x86, x64, IA64

Enhanced Cryptographic Provider (RSAENH)5.2.3790.1830 [Service Pack 1])382

FIPS Approved algorithms: Triple-DES (Cert. #192[1] and #365[2]); AES (Certs. #80[1] and #290[2]); SHS (Cert. #176[1] and #364[2]); HMAC (Cert. #176, vendor affirmed[1] and #99[2]); RSA (PKCS#1, vendor affirmed[1] and #81[2])

+

Other algorithms: DES (Cert. #226[1]); SHA-256[1]; SHA-384[1]; SHA-512[1]; RC2; RC4; MD2; MD4; MD5

+

[1] x86
+[2] SP1 x86, x64, IA64

Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)5.2.3790.1830 [Service Pack 1]381

FIPS Approved algorithms: Triple-DES (Certs. #199[1] and #381[2]); SHA-1 (Certs. #181[1] and #385[2]); DSA (Certs. #95[1] and #146[2]); RSA (Cert. #81)

+

Other algorithms: DES (Cert. #229[1]); Diffie-Hellman (key agreement); RC2; RC4; MD5; DES 40

+

[1] x86
+[2] SP1 x86, x64, IA64

+ + +##### Windows Server 2003 + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Kernel Mode Cryptographic Module (FIPS.SYS)5.2.3790.0405

FIPS Approved algorithms: Triple-DES (Certs. #201[1] and #370[1]); SHS (Certs. #177[1] and #371[2])

+

Other algorithms: DES (Cert. #230[1]); HMAC-MD5; HMAC-SHA-1 (non-compliant)

+

[1] x86
+[2] SP1 x86, x64, IA64

Enhanced Cryptographic Provider (RSAENH)5.2.3790.0382

FIPS Approved algorithms: Triple-DES (Cert. #192[1] and #365[2]); AES (Certs. #80[1] and #290[2]); SHS (Cert. #176[1] and #364[2]); HMAC (Cert. #176, vendor affirmed[1] and #99[2]); RSA (PKCS#1, vendor affirmed[1] and #81[2])

+

Other algorithms: DES (Cert. #226[1]); SHA-256[1]; SHA-384[1]; SHA-512[1]; RC2; RC4; MD2; MD4; MD5

+

[1] x86
+[2] SP1 x86, x64, IA64

Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)5.2.3790.0381

FIPS Approved algorithms: Triple-DES (Certs. #199[1] and #381[2]); SHA-1 (Certs. #181[1] and #385[2]); DSA (Certs. #95[1] and #146[2]); RSA (Cert. #81)

+

Other algorithms: DES (Cert. #229[1]); Diffie-Hellman (key agreement); RC2; RC4; MD5; DES 40

+

[1] x86
+[2] SP1 x86, x64, IA64

+ + +#### Other Products + +##### Windows Embedded Compact 7 and Windows Embedded Compact 8 + + ++++++ + + + + + + + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Enhanced Cryptographic Provider7.00.2872 [1] and 8.00.6246 [2]2957

FIPS Approved algorithms: AES (Certs.#4433and#4434); CKG (vendor affirmed); DRBG (Certs.#1432and#1433); HMAC (Certs.#2946and#2945); RSA (Certs.#2414and#2415); SHS (Certs.#3651and#3652); Triple-DES (Certs.#2383and#2384)

+

Allowed algorithms: HMAC-MD5; MD5; NDRNG

Cryptographic Primitives Library (bcrypt.dll)7.00.2872 [1] and 8.00.6246 [2]2956

FIPS Approved algorithms: AES (Certs.#4430and#4431); CKG (vendor affirmed); CVL (Certs.#1139and#1140); DRBG (Certs.#1429and#1430); DSA (Certs.#1187and#1188); ECDSA (Certs.#1072and#1073); HMAC (Certs.#2942and#2943); KAS (Certs.#114and#115); RSA (Certs.#2411and#2412); SHS (Certs.#3648and#3649); Triple-DES (Certs.#2381and#2382)

+

Allowed algorithms: MD5; NDRNG; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength

+ + + +##### Windows CE 6.0 and Windows Embedded Compact 7 + + ++++++ + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Enhanced Cryptographic Provider6.00.1937 [1] and 7.00.1687 [2]825

FIPS Approved algorithms: AES (Certs. #516 [1] and #2024 [2]); HMAC (Certs. #267 [1] and #1227 [2]); RNG (Certs. #292 [1] and #1060 [2]); RSA (Cert. #230 [1] and #1052 [2]); SHS (Certs. #589 [1] and #1774 [2]); Triple-DES (Certs. #526 [1] and #1308 [2])

+

Other algorithms: MD5; HMAC-MD5; RC2; RC4; DES

+ + +##### Outlook Cryptographic Provider + + ++++++ + + + + + + + + + + + + + + +
Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
Outlook Cryptographic Provider (EXCHCSP)SR-1A (3821)SR-1A (3821)110

FIPS Approved algorithms: Triple-DES (Cert. #18); SHA-1 (Certs. #32); RSA (vendor affirmed)

+

Other algorithms: DES (Certs. #91); DES MAC; RC2; MD2; MD5

+ +  + +### Cryptographic Algorithms + +The following tables are organized by cryptographic algorithms with their modes, states, and key sizes. For each algorithm implementation (operating system / platform), there is a link to the Cryptographic Algorithm Validation Program (CAVP) issued certificate. + +### Advanced Encryption Standard (AES) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modes / States / Key SizesAlgorithm Implementation and Certificate #
    +
  • AES-CBC:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CFB128:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CTR:
  • +
    • +
    • Counter Source: Internal
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-OFB:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +

Microsoft Surface Hub Virtual TPM Implementations #4904

+

Version 10.0.15063.674

    +
  • AES-CBC:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CFB128:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CTR:
  • +
    • +
    • Counter Source: Internal
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-OFB:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #4903

+

Version 10.0.16299

    +
  • AES-CBC:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CCM:
  • +
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
    • Tag Lengths: 32, 48, 64, 80, 96, 112, 128 (bits)
    • +
    • IV Lengths: 56, 64, 72, 80, 88, 96, 104 (bits)
    • +
    • Plain Text Length: 0-32
    • +
    • AAD Length: 0-65536
    • +
  • +
  • AES-CFB128:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CFB8:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CMAC:
  • +
    • +
    • Generation:
    • +
      • +
      • AES-128:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-192:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-256:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
    • +
    • Verification:
    • +
      • +
      • AES-128:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-192:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-256:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
    • +
  • +
  • AES-CTR:
  • +
    • +
    • Counter Source: Internal
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-ECB:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-GCM:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
    • Tag Lengths: 96, 104, 112, 120, 128 (bits)
    • +
    • Plain Text Lengths: 0, 8, 1016, 1024 (bits)
    • +
    • AAD Lengths: 0, 8, 1016, 1024 (bits)
    • +
    • 96 bit IV supported
    • +
  • +
  • AES-XTS:
  • +
    • +
    • Key Size: 128:
    • +
      • +
      • Modes: Decrypt, Encrypt
      • +
      • Block Sizes: Full
      • +
    • +
    • Key Size: 256:
    • +
      • +
      • Modes: Decrypt, Encrypt
      • +
      • Block Sizes: Full
      • +
    • +
  • +

Microsoft Surface Hub SymCrypt Cryptographic Implementations #4902

+

Version 10.0.15063.674

    +
  • AES-CBC:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CCM:
  • +
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
    • Tag Lengths: 32, 48, 64, 80, 96, 112, 128 (bits)
    • +
    • IV Lengths: 56, 64, 72, 80, 88, 96, 104 (bits)
    • +
    • Plain Text Length: 0-32
    • +
    • AAD Length: 0-65536
    • +
  • +
  • AES-CFB128:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CFB8:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CMAC:
  • +
    • +
    • Generation:
    • +
      • +
      • AES-128:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-192:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-256:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
    • +
    • Verification:
    • +
      • +
      • AES-128:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-192:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-256:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
    • +
  • +
  • AES-CTR:
  • +
    • +
    • Counter Source: Internal
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-ECB:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-GCM:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
    • Tag Lengths: 96, 104, 112, 120, 128 (bits)
    • +
    • Plain Text Lengths: 0, 8, 1016, 1024 (bits)
    • +
    • AAD Lengths: 0, 8, 1016, 1024 (bits)
    • +
    • 96 bit IV supported
    • +
  • +
  • AES-XTS:
  • +
    • +
    • Key Size: 128:
    • +
      • +
      • Modes: Decrypt, Encrypt
      • +
      • Block Sizes: Full
      • +
    • +
    • Key Size: 256:
    • +
      • +
      • Modes: Decrypt, Encrypt
      • +
      • Block Sizes: Full
      • +
    • +
  • +

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #4901

+

Version 10.0.15254

    +
  • AES-CBC:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CCM:
  • +
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
    • Tag Lengths: 32, 48, 64, 80, 96, 112, 128 (bits)
    • +
    • IV Lengths: 56, 64, 72, 80, 88, 96, 104 (bits)
    • +
    • Plain Text Length: 0-32
    • +
    • AAD Length: 0-65536
    • +
  • +
  • AES-CFB128:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CFB8:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-CMAC:
  • +
    • +
    • Generation:
    • +
      • +
      • AES-128:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-192:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-256:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
    • +
    • Verification:
    • +
      • +
      • AES-128:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-192:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
      • AES-256:
      • +
        • +
        • Block Sizes: Full, Partial
        • +
        • Message Length: 0-65536
        • +
        • Tag Length: 16-16
        • +
      • +
    • +
  • +
  • AES-CTR:
  • +
    • +
    • Counter Source: Internal
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-ECB:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
  • +
  • AES-GCM:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • IV Generation: External
    • +
    • Key Lengths: 128, 192, 256 (bits)
    • +
    • Tag Lengths: 96, 104, 112, 120, 128 (bits)
    • +
    • Plain Text Lengths: 0, 8, 1016, 1024 (bits)
    • +
    • AAD Lengths: 0, 8, 1016, 1024 (bits)
    • +
    • 96 bit IV supported
    • +
  • +
  • AES-XTS:
  • +
    • +
    • Key Size: 128:
    • +
      • +
      • Modes: Decrypt, Encrypt
      • +
      • Block Sizes: Full
      • +
    • +
    • Key Size: 256:
    • +
      • +
      • Modes: Decrypt, Encrypt
      • +
      • Block Sizes: Full
      • +
    • +
  • +

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #4897

+

Version 10.0.16299

AES-KW:

+
    +
  • Modes: Decrypt, Encrypt
  • +
  • CIPHK transformation direction: Forward
  • +
  • Key Lengths: 128, 192, 256 (bits)
  • +
  • Plain Text Lengths: 128, 192, 256, 320, 2048 (bits)
  • +
+

AES Val#4902

Microsoft Surface Hub Cryptography Next Generation (CNG) Implementations #4900

+

Version 10.0.15063.674

AES-KW:

+
    +
  • Modes: Decrypt, Encrypt
  • +
  • CIPHK transformation direction: Forward
  • +
  • Key Lengths: 128, 192, 256 (bits)
  • +
  • Plain Text Lengths: 128, 192, 256, 320, 2048 (bits)
  • +
+

AES Val#4901

Windows 10 Mobile (version 1709) Cryptography Next Generation (CNG) Implementations #4899

+

Version 10.0.15254

AES-KW:

+
    +
  • Modes: Decrypt, Encrypt
  • +
  • CIPHK transformation direction: Forward
  • +
  • Key Lengths: 128, 192, 256 (bits)
  • +
  • Plain Text Lengths: 128, 192, 256, 320, 2048 (bits)
  • +
+

AES Val#4897

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Cryptography Next Generation (CNG) Implementations #4898

+

Version 10.0.16299

AES-CCM:

+
    +
  • Key Lengths: 256 (bits)
  • +
  • Tag Lengths: 128 (bits)
  • +
  • IV Lengths: 96 (bits)
  • +
  • Plain Text Length: 0-32
  • +
  • AAD Length: 0-65536
  • +
+

AES Val#4902

Microsoft Surface Hub BitLocker(R) Cryptographic Implementations #4896

+

Version 10.0.15063.674

AES-CCM:

+
    +
  • Key Lengths: 256 (bits)
  • +
  • Tag Lengths: 128 (bits)
  • +
  • IV Lengths: 96 (bits)
  • +
  • Plain Text Length: 0-32
  • +
  • AAD Length: 0-65536
  • +
+

AES Val#4901

Windows 10 Mobile (version 1709) BitLocker(R) Cryptographic Implementations #4895

+

Version 10.0.15254

AES-CCM:

+
    +
  • Key Lengths: 256 (bits)
  • +
  • Tag Lengths: 128 (bits)
  • +
  • IV Lengths: 96 (bits)
  • +
  • Plain Text Length: 0-32
  • +
  • AAD Length: 0-65536
  • +
+

AES Val#4897

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); BitLocker(R) Cryptographic Implementations #4894

+

Version 10.0.16299

CBC ( e/d; 128 , 192 , 256 );

+

CFB128 ( e/d; 128 , 192 , 256 );

+

OFB ( e/d; 128 , 192 , 256 );

+

CTR ( int only; 128 , 192 , 256 )

Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #4627

+

Version 10.0.15063

KW ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 256 , 192 , 320 , 2048 )

+

AES Val#4624

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile Cryptography Next Generation (CNG) Implementations #4626

+

Version 10.0.15063

CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

+

AES Val#4624

+

 

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile BitLocker(R) Cryptographic Implementations #4625

+

Version 10.0.15063

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CFB8 ( e/d; 128 , 192 , 256 );

+

CFB128 ( e/d; 128 , 192 , 256 );

+

CTR ( int only; 128 , 192 , 256 )

+

CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

+

CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 )

+

GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )

+

(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )

+

IV Generated: ( External ) ; PT Lengths Tested: ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested: ( 0 , 1024 , 8 , 1016 ) ; 96BitIV_Supported

+

GMAC_Supported

+

XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #4624

+

Version 10.0.15063

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #4434

+

Version 7.00.2872

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #4433

+

Version 8.00.6246

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CTR ( int only; 128 , 192 , 256 )

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #4431

+

Version 7.00.2872

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CTR ( int only; 128 , 192 , 256 )

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #4430

+

Version 8.00.6246

CBC ( e/d; 128 , 192 , 256 );

+

CFB128 ( e/d; 128 , 192 , 256 );

+

OFB ( e/d; 128 , 192 , 256 );

+

CTR ( int only; 128 , 192 , 256 )

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #4074

+

Version 10.0.14393

ECB ( e/d; 128 , 192 , 256 ); CBC ( e/d; 128 , 192 , 256 ); CFB8 ( e/d; 128 , 192 , 256 ); CFB128 ( e/d; 128 , 192 , 256 ); CTR ( int only; 128 , 192 , 256 )

+

CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

+

CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

+

GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
+(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
+IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 0 , 0 ) ; 96BitIV_Supported
+GMAC_Supported

+

XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #4064

+

Version 10.0.14393

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CFB8 ( e/d; 128 , 192 , 256 );

+

 

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update RSA32 Algorithm Implementations #4063
+Version 10.0.14393

KW  ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 192 , 256 , 320 , 2048 )

+

AES Val#4064

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #4062

+

Version 10.0.14393

CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

+

AES Val#4064

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update BitLocker® Cryptographic Implementations #4061

+

Version 10.0.14393

KW  ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 256 , 192 , 320 , 2048 )

+

AES Val#3629

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” Cryptography Next Generation (CNG) Implementations #3652

+

Version 10.0.10586

CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

+

AES Val#3629

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” BitLocker® Cryptographic Implementations #3653

+

Version 10.0.10586

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CFB8 ( e/d; 128 , 192 , 256 );

+

 

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” RSA32 Algorithm Implementations #3630
+Version 10.0.10586

ECB ( e/d; 128 , 192 , 256 ); CBC ( e/d; 128 , 192 , 256 ); CFB8 ( e/d; 128 , 192 , 256 ); CFB128 ( e/d; 128 , 192 , 256 ); CTR ( int only; 128 , 192 , 256 )

+

CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

+

CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

+

GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
+(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
+IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 0 , 0 ) ; 96BitIV_Supported
+GMAC_Supported

+

XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” SymCrypt Cryptographic Implementations #3629
+
+

+

Version 10.0.10586

KW  ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 256 , 192 , 320 , 2048 )

+

AES Val#3497

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #3507

+

Version 10.0.10240

CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

+

AES Val#3497

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 BitLocker® Cryptographic Implementations #3498

+

Version 10.0.10240

ECB ( e/d; 128 , 192 , 256 ); CBC ( e/d; 128 , 192 , 256 ); CFB8 ( e/d; 128 , 192 , 256 ); CFB128 ( e/d; 128 , 192 , 256 ); CTR ( int only; 128 , 192 , 256 )

+

CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

+

CMAC(Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

+

GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
+(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
+IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 0 , 0 ) ; 96BitIV_Supported
+GMAC_Supported

+

XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #3497
+Version 10.0.10240

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CFB8 ( e/d; 128 , 192 , 256 );

+

 

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 RSA32 Algorithm Implementations #3476
+Version 10.0.10240

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CFB8 ( e/d; 128 , 192 , 256 );

+

 

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry RSA32 Algorithm Implementations #2853

+

Version 6.3.9600

CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

+

AES Val#2832

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 BitLocker� Cryptographic Implementations #2848

+

Version 6.3.9600

CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 0 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

+

CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

+

GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )

+

(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )

+

IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 128 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 128 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 8 , 1024 ) ; 96BitIV_Supported ;
+OtherIVLen_Supported
+GMAC_Supported

Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #2832

+

Version 6.3.9600

CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )
+AES Val#2197

+

CMAC (Generation/Verification ) (KS: 128; Block Size(s): ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 192; Block Size(s): ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 256; Block Size(s): ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 )
+AES Val#2197

+

GCM(KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
+(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
+IV Generated: ( Externally ) ; PT Lengths Tested: ( 0 , 128 , 1024 , 8 , 1016 ) ; AAD Lengths tested: ( 0 , 128 , 1024 , 8 , 1016 ) ; IV Lengths Tested: ( 8 , 1024 ) ; 96BitIV_Supported
+GMAC_Supported

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #2216

CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

+

AES Val#2196

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 BitLocker® Cryptographic Implementations #2198

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CFB8 ( e/d; 128 , 192 , 256 );

+

CFB128 ( e/d; 128 , 192 , 256 );

+

CTR ( int only; 128 , 192 , 256 )

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #2197

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CFB8 ( e/d; 128 , 192 , 256 );

+

 

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Symmetric Algorithm Implementations (RSA32) #2196
CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 – 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )
+AES Val#1168

Windows Server 2008 R2 and SP1 CNG algorithms #1187

+

Windows 7 Ultimate and SP1 CNG algorithms #1178

CCM (KS: 128 , 256 ) (Assoc. Data Len Range: 0 - 8 ) (Payload Length Range: 4 - 32 ( Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16 )
+AES Val#1168
Windows 7 Ultimate and SP1 and Windows Server 2008 R2 and SP1 BitLocker Algorithm Implementations #1177

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CFB8 ( e/d; 128 , 192 , 256 );

+

 

Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #1168

GCM

+

GMAC

Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #1168 , vendor-affirmed
CCM (KS: 128 , 256 ) (Assoc. Data Len Range: 0 - 8 ) (Payload Length Range: 4 - 32 ( Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16 )Windows Vista Ultimate SP1 and Windows Server 2008 BitLocker Algorithm Implementations #760
CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 1 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

Windows Server 2008 CNG algorithms #757

+

Windows Vista Ultimate SP1 CNG algorithms #756

CBC ( e/d; 128 , 256 );

+

CCM (KS: 128 , 256 ) (Assoc. Data Len Range: 0 - 8 ) (Payload Length Range: 4 - 32 ( Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16 )

Windows Vista Ultimate BitLocker Drive Encryption #715

+

Windows Vista Ultimate BitLocker Drive Encryption #424

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CFB8 ( e/d; 128 , 192 , 256 );

Windows Vista Ultimate SP1 and Windows Server 2008 Symmetric Algorithm Implementation #739

+

Windows Vista Symmetric Algorithm Implementation #553

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

+

CTR ( int only; 128 , 192 , 256 )

Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #2023

ECB ( e/d; 128 , 192 , 256 );

+

CBC ( e/d; 128 , 192 , 256 );

Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #2024

+

Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #818

+

Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #781

+

Windows 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #548

+

Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #516

+

Windows CE and Windows Mobile 6, 6.1, and 6.5 Enhanced Cryptographic Provider (RSAENH) #507

+

Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #290

+

Windows CE 5.0 and 5.1 Enhanced Cryptographic Provider (RSAENH) #224

+

Windows Server 2003 Enhanced Cryptographic Provider (RSAENH) #80

+

Windows XP, SP1, and SP2 Enhanced Cryptographic Provider (RSAENH) #33

+ + +Deterministic Random Bit Generator (DRBG) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modes / States / Key SizesAlgorithm Implementation and Certificate #
    +
  • Counter:
  • +
    • +
    • Modes: AES-256
    • +
    • Derivation Function States: Derivation Function not used
    • +
    • Prediction Resistance Modes: Not Enabled
    • +
  • +
+

Prerequisite: AES #4904

Microsoft Surface Hub Virtual TPM Implementations #1734

+

Version 10.0.15063.674

    +
  • Counter:
  • +
    • +
    • Modes: AES-256
    • +
    • Derivation Function States: Derivation Function not used
    • +
    • Prediction Resistance Modes: Not Enabled
    • +
  • +
+

Prerequisite: AES #4903

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1733

+

Version 10.0.16299

    +
  • Counter:
  • +
    • +
    • Modes: AES-256
    • +
    • Derivation Function States: Derivation Function used
    • +
    • Prediction Resistance Modes: Not Enabled
    • +
  • +
+

Prerequisite: AES #4902

Microsoft Surface Hub SymCrypt Cryptographic Implementations #1732

+

Version 10.0.15063.674

    +
  • Counter:
  • +
    • +
    • Modes: AES-256
    • +
    • Derivation Function States: Derivation Function used
    • +
    • Prediction Resistance Modes: Not Enabled
    • +
  • +
+

Prerequisite: AES #4901

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1731

+

Version 10.0.15254

    +
  • Counter:
  • +
    • +
    • Modes: AES-256
    • +
    • Derivation Function States: Derivation Function used
    • +
    • Prediction Resistance Modes: Not Enabled
    • +
  • +
+

Prerequisite: AES #4897

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1730

+

Version 10.0.16299

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4627 ) ]

Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #1556

+

Version 10.0.15063

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#4624 ) ]

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1555

+

Version 10.0.15063

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4434 ) ]

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #1433

+

Version 7.00.2872

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4433 ) ]

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #1432

+

Version 8.00.6246

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4431 ) ]

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1430

+

Version 7.00.2872

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4430 ) ]

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1429

+

Version 8.00.6246

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4074 ) ]

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #1222

+

Version 10.0.14393

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#4064 ) ]

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #1217

+

Version 10.0.14393

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#3629 ) ]

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub SymCrypt Cryptographic Implementations #955

+

Version 10.0.10586

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#3497 ) ]

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #868

+

Version 10.0.10240

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#2832 ) ]

Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #489

+

Version 6.3.9600

CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#2197 ) ]Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #258
CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#2023 ) ]Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #193
CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#1168 ) ]Windows 7 Ultimate and SP1 and Windows Server 2008 R2 and SP1 RNG Library #23
DRBG (SP 800–90)Windows Vista Ultimate SP1, vendor-affirmed
+ + +#### Digital Signature Algorithm (DSA) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modes / States / Key SizesAlgorithm Implementation and Certificate #
    +
  • DSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • PQGGen:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • PQGVer:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • SigGen:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • SigVer:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • KeyPair:
      • +
        • +
        • L = 2048, N = 256
        • +
        • L = 3072, N = 256
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, DRBG #1732

Microsoft Surface Hub SymCrypt Cryptographic Implementations #1303

+

Version 10.0.15063.674

    +
  • DSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • PQGGen:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • PQGVer:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • SigGen:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • SigVer:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • KeyPair:
      • +
        • +
        •  
        • +
        •  
        • +
        • L = 2048, N = 256
        • +
        • L = 3072, N = 256
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4010, DRBG #1731

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1302

+

Version 10.0.15254

    +
  • DSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • PQGGen:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • PQGVer:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • SigGen:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • SigVer:
      • +
        • +
        • L = 2048, N = 256 SHA: SHA-256
        • +
        • L = 3072, N = 256 SHA: SHA-256
        • +
      • +
      • KeyPair:
      • +
        • +
        • L = 2048, N = 256
        • +
        • L = 3072, N = 256
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, DRBG #1730

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1301

+

Version 10.0.16299

FIPS186-4:

+

PQG(gen)PARMS TESTED:   [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]

+

PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

+

KeyPairGen:   [ (2048,256) ; (3072,256) ]

+

SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]

+

SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

+

SHS: Val#3790

+

DRBG: Val# 1555

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1223

+

Version 10.0.15063

FIPS186-4:
+PQG(ver)PARMS TESTED:
  [ (1024,160) SHA( 1 ); ]
+SIG(ver)PARMS TESTED:   [ (1024,160) SHA( 1 ); ]
+SHS: Val# 3649

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1188

+

Version 7.00.2872

FIPS186-4:
+PQG(ver)PARMS TESTED:
  [ (1024,160) SHA( 1 ); ]
+SIG(ver)PARMS TESTED:   [ (1024,160) SHA( 1 ); ]
+SHS: Val#3648

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1187

+

Version 8.00.6246

FIPS186-4:
+PQG(gen)
PARMS TESTED: [
+(2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
+PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
+KeyPairGen:    [ (2048,256) ; (3072,256) ]
+SIG(gen)PARMS TESTED:   [ (2048,256)
+SHA( 256 ); (3072,256) SHA( 256 ); ]
+SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

+

SHS: Val# 3347
+DRBG: Val# 1217

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #1098

+

Version 10.0.14393

FIPS186-4:
+PQG(gen)
PARMS TESTED:   [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ] PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 )]
+KeyPairGen:    [ (2048,256) ; (3072,256) ] SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]
+SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

+

SHS: Val# 3047
+DRBG: Val# 955

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” MsBignum Cryptographic Implementations #1024

+

Version 10.0.10586

FIPS186-4:
+PQG(gen)
PARMS TESTED:   [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
+PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
+KeyPairGen:    [ (2048,256) ; (3072,256) ]
+SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ] SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

+

SHS: Val# 2886
+DRBG: Val# 868

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 MsBignum Cryptographic Implementations #983

+

Version 10.0.10240

FIPS186-4:
+PQG(gen)
PARMS TESTED:   [
+(2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
+PQG(ver)PARMS TESTED:   [ (2048,256)
+SHA( 256 ); (3072,256) SHA( 256 ) ]
+KeyPairGen:    [ (2048,256) ; (3072,256) ]
+SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]
+SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

+

SHS: Val# 2373
+DRBG: Val# 489

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #855

+

Version 6.3.9600

FIPS186-2:
+PQG(ver) MOD(1024);
+SIG(ver) MOD(1024);
+SHS: #1903
+DRBG: #258

+

FIPS186-4:
+PQG(gen)PARMS TESTED
: [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
+PQG(ver)PARMS TESTED: [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
+SIG(gen)PARMS TESTED: [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]
+SIG(ver)PARMS TESTED: [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
+SHS: #1903
+DRBG: #258
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#687.

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #687
FIPS186-2:
+PQG(ver)
MOD(1024);
+SIG(ver) MOD(1024);
+SHS: #1902
+DRBG: #258
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#686.
Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 DSS and Diffie-Hellman Enhanced Cryptographic Provider (DSSENH) #686
FIPS186-2:
+SIG(ver)
MOD(1024);
+SHS: Val# 1773
+DRBG: Val# 193
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#645.
Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #645
FIPS186-2:
+SIG(ver)
MOD(1024);
+SHS: Val# 1081
+DRBG: Val# 23
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#391. See Historical DSA List Val#386.

Windows Server 2008 R2 and SP1 CNG algorithms #391

+

Windows 7 Ultimate and SP1 CNG algorithms #386

FIPS186-2:
+SIG(ver)
MOD(1024);
+SHS: Val# 1081
+RNG: Val# 649
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#390. See Historical DSA List Val#385.

Windows Server 2008 R2 and SP1 Enhanced DSS (DSSENH) #390

+

Windows 7 Ultimate and SP1 Enhanced DSS (DSSENH) #385

FIPS186-2:
+SIG(ver)
MOD(1024);
+SHS: Val# 753
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#284. See Historical DSA List Val#283.

Windows Server 2008 CNG algorithms #284

+

Windows Vista Ultimate SP1 CNG algorithms #283

FIPS186-2:
+SIG(ver)
MOD(1024);
+SHS: Val# 753
+RNG: Val# 435
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#282. See Historical DSA List Val#281.

Windows Server 2008 Enhanced DSS (DSSENH) #282

+

Windows Vista Ultimate SP1 Enhanced DSS (DSSENH) #281

FIPS186-2:
+SIG(ver)
MOD(1024);
+SHS: Val# 618
+RNG: Val# 321
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#227. See Historical DSA List Val#226.

Windows Vista CNG algorithms #227

+

Windows Vista Enhanced DSS (DSSENH) #226

FIPS186-2:
+SIG(ver)
MOD(1024);
+SHS: Val# 784
+RNG: Val# 448
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#292.
Windows XP Professional SP3 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #292
FIPS186-2:
+SIG(ver)
MOD(1024);
+SHS: Val# 783
+RNG: Val# 447
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#291.
Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #291
FIPS186-2:
+PQG(gen)
MOD(1024);
+PQG(ver) MOD(1024);
+KEYGEN(Y) MOD(1024);
+SIG(gen) MOD(1024);
+SIG(ver) MOD(1024);
+SHS: Val# 611
+RNG: Val# 314
Windows 2003 SP2 Enhanced DSS and Diffie-Hellman Cryptographic Provider #221
FIPS186-2:
+PQG(gen)
MOD(1024);
+PQG(ver) MOD(1024);
+KEYGEN(Y) MOD(1024);
+SIG(gen) MOD(1024);
+SIG(ver) MOD(1024);
+SHS: Val# 385
Windows Server 2003 SP1 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #146
FIPS186-2:
+PQG(ver)
MOD(1024);
+KEYGEN(Y) MOD(1024);
+SIG(gen) MOD(1024);
+SIG(ver) MOD(1024);
+SHS: Val# 181
+
+
Windows Server 2003 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #95
FIPS186-2:
+PQG(gen)
MOD(1024);
+PQG(ver) MOD(1024);
+KEYGEN(Y) MOD(1024);
+SIG(gen) MOD(1024);
+SHS: SHA-1 (BYTE)
+SIG(ver) MOD(1024);
+SHS: SHA-1 (BYTE)

Windows 2000 DSSENH.DLL #29

+

Windows 2000 DSSBASE.DLL #28

+

Windows NT 4 SP6 DSSENH.DLL #26

+

Windows NT 4 SP6 DSSBASE.DLL #25

FIPS186-2: PRIME;
+FIPS186-2:

+

KEYGEN(Y):
+SHS: SHA-1 (BYTE)

+

SIG(gen):
+SIG(ver)
MOD(1024);
+SHS: SHA-1 (BYTE)

Windows NT 4.0 SP4 Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider #17
+ + +#### Elliptic Curve Digital Signature Algorithm (ECDSA) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modes / States / Key SizesAlgorithm Implementation and Certificate #
    +
  • ECDSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • Key Pair Generation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
        • Generation Methods: Extra Random Bits
        • +
      • +
      • Public Key Validation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
      • +
      • Signature Generation:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      • Signature Verification:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #2373, DRBG #489

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #1263

+

Version 6.3.9600

    +
  • ECDSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • Key Pair Generation:
      • +
        • +
        • Curves: P-256, P-384
        • +
        • Generation Methods: Testing Candidates
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, DRBG #1734

Microsoft Surface Hub Virtual TPM Implementations #1253

+

Version 10.0.15063.674

    +
  • ECDSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • Key Pair Generation:
      • +
        • +
        • Curves: P-256, P-384
        • +
        • Generation Methods: Testing Candidates
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, DRBG #1733

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1252

+

Version 10.0.16299

    +
  • ECDSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • Key Pair Generation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
        • Generation Methods: Extra Random Bits
        • +
      • +
      • Public Key Validation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
      • +
      • Signature Generation:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      • Signature Verification:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, DRBG #1732

Microsoft Surface Hub MsBignum Cryptographic Implementations #1251

+

Version 10.0.15063.674

    +
  • ECDSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • Key Pair Generation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
        • Generation Methods: Extra Random Bits
        • +
      • +
      • Public Key Validation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
      • +
      • Signature Generation:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      • Signature Verification:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, DRBG #1732

Microsoft Surface Hub SymCrypt Cryptographic Implementations #1250

+

Version 10.0.15063.674

    +
  • ECDSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • Key Pair Generation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
        • Generation Methods: Extra Random Bits
        • +
      • +
      • Public Key Validation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
      • +
      • Signature Generation:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      • Signature Verification:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4010, DRBG #1731

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1249

+

Version 10.0.15254

    +
  • ECDSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • Key Pair Generation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
        • Generation Methods: Extra Random Bits
        • +
      • +
      • Public Key Validation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
      • +
      • Signature Generation:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      • Signature Verification:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4010, DRBG #1731

Windows 10 Mobile (version 1709) MsBignum Cryptographic Implementations #1248

+

Version 10.0.15254

    +
  • ECDSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • Key Pair Generation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
        • Generation Methods: Extra Random Bits
        • +
      • +
      • Public Key Validation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
      • +
      • Signature Generation:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      • Signature Verification:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, DRBG #1730

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1247

+

Version 10.0.16299

    +
  • ECDSA:
  • +
    • +
    • 186-4:
    • +
      • +
      • Key Pair Generation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
        • Generation Methods: Extra Random Bits
        • +
      • +
      • Public Key Validation:
      • +
        • +
        • Curves: P-256, P-384, P-521
        • +
      • +
      • Signature Generation:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      • Signature Verification:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, DRBG #1730

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1246

+

Version 10.0.16299

FIPS186-4:
+PKG: CURVES
( P-256 P-384 TestingCandidates )
+SHS: Val#3790
+DRBG: Val# 1555

Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #1136

+

Version 10.0.15063

FIPS186-4:
+PKG: CURVES
( P-256 P-384 P-521 ExtraRandomBits )
+PKV: CURVES( P-256 P-384 P-521 )
+SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
+SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
+SHS: Val#3790
+DRBG: Val# 1555

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #1135

+

Version 10.0.15063

FIPS186-4:
+PKG: CURVES
( P-256 P-384 P-521 ExtraRandomBits )
+PKV: CURVES( P-256 P-384 P-521 )
+SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
+SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
+SHS: Val#3790
+DRBG: Val# 1555

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1133

+

Version 10.0.15063

FIPS186-4:
+PKG: CURVES
( P-256 P-384 P-521 ExtraRandomBits )
+PKV: CURVES( P-256 P-384 P-521 )
+SigGen: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) SIG(gen) with SHA-1 affirmed for use with protocols only.
+SigVer: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) )
+SHS:Val# 3649
+DRBG:Val# 1430

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1073

+

Version 7.00.2872

FIPS186-4:
+PKG: CURVES
( P-256 P-384 P-521 ExtraRandomBits )
+PKV: CURVES( P-256 P-384 P-521 )
+SigGen: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) SIG(gen) with SHA-1 affirmed for use with protocols only.
+SigVer: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) )
+SHS:Val#3648
+DRBG:Val# 1429

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1072

+

Version 8.00.6246

FIPS186-4:
+PKG: CURVES
( P-256 P-384 TestingCandidates )
+PKV: CURVES( P-256 P-384 )
+SigGen: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 256, 384) SIG(gen) with SHA-1 affirmed for use with protocols only.
+SigVer: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 256, 384) )

+

SHS: Val# 3347
+DRBG: Val# 1222

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #920

+

Version 10.0.14393

FIPS186-4:
+PKG: CURVES
( P-256 P-384 P-521 ExtraRandomBits )
+PKV: CURVES( P-256 P-384 P-521 )
+SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
+SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

+

SHS: Val# 3347
+DRBG: Val# 1217

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #911

+

Version 10.0.14393

FIPS186-4:
+PKG: CURVES
( P-256 P-384 P-521 ExtraRandomBits )
+SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
+SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

+

SHS: Val# 3047
+DRBG: Val# 955

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” MsBignum Cryptographic Implementations #760

+

Version 10.0.10586

FIPS186-4:
+PKG: CURVES
( P-256 P-384 P-521 ExtraRandomBits )
+SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
+SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

+

SHS: Val# 2886
+DRBG: Val# 868

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 MsBignum Cryptographic Implementations #706

+

Version 10.0.10240

FIPS186-4:
+PKG: CURVES
( P-256 P-384 P-521 ExtraRandomBits )
+SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
+SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

+

SHS: Val#2373
+DRBG: Val# 489

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #505

+

Version 6.3.9600

FIPS186-2:
+PKG: CURVES
( P-256 P-384 P-521 )
+SHS: #1903
+DRBG: #258
+SIG(ver):CURVES( P-256 P-384 P-521 )
+SHS: #1903
+DRBG: #258

+

FIPS186-4:
+PKG: CURVES
( P-256 P-384 P-521 ExtraRandomBits )
+SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
+SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
+SHS: #1903
+DRBG: #258
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#341.

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #341

FIPS186-2:
+PKG: CURVES
( P-256 P-384 P-521 )
+SHS: Val#1773
+DRBG: Val# 193
+SIG(ver): CURVES( P-256 P-384 P-521 )
+SHS: Val#1773
+DRBG: Val# 193

+

FIPS186-4:
+PKG: CURVES
( P-256 P-384 P-521 ExtraRandomBits )
+SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
+SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
+SHS: Val#1773
+DRBG: Val# 193
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#295.

Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #295
FIPS186-2:
+PKG: CURVES
( P-256 P-384 P-521 )
+SHS: Val#1081
+DRBG: Val# 23
+SIG(ver): CURVES( P-256 P-384 P-521 )
+SHS: Val#1081
+DRBG: Val# 23
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#142. See Historical ECDSA List Val#141.

Windows Server 2008 R2 and SP1 CNG algorithms #142

+

Windows 7 Ultimate and SP1 CNG algorithms #141

FIPS186-2:
+PKG: CURVES
( P-256 P-384 P-521 )
+SHS: Val#753
+SIG(ver): CURVES( P-256 P-384 P-521 )
+SHS: Val#753
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#83. See Historical ECDSA List Val#82.

Windows Server 2008 CNG algorithms #83

+

Windows Vista Ultimate SP1 CNG algorithms #82

FIPS186-2:
+PKG: CURVES
( P-256 P-384 P-521 )
+SHS: Val#618
+RNG: Val# 321
+SIG(ver): CURVES( P-256 P-384 P-521 )
+SHS: Val#618
+RNG: Val# 321
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#60.
Windows Vista CNG algorithms #60
+ + +#### Keyed-Hash Message Authentication Code (HMAC) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modes / States / Key SizesAlgorithm Implementation and Certificate #
    +
  • HMAC-SHA-1:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-256:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-384:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
+

Prerequisite: SHS #4011

Microsoft Surface Hub Virtual TPM Implementations #3271

+

Version 10.0.15063.674

    +
  • HMAC-SHA-1:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-256:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-384:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
+

Prerequisite: SHS #4009

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #3270

+

Version 10.0.16299

    +
  • HMAC-SHA-1:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-256:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-384:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-512:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
+

Prerequisite: SHS #4011

Microsoft Surface Hub SymCrypt Cryptographic Implementations #3269

+

Version 10.0.15063.674

    +
  • HMAC-SHA-1:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-256:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-384:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-512:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
+

Prerequisite: SHS #4010

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #3268

+

Version 10.0.15254

    +
  • HMAC-SHA-1:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-256:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-384:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
  • HMAC-SHA2-512:
  • +
    • +
    • Key Sizes &lt; Block Size
    • +
    • Key Sizes &gt; Block Size
    • +
    • Key Sizes = Block Size
    • +
  • +
+

Prerequisite: SHS #4009

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #3267

+

Version 10.0.16299

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3790

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #3062

+

Version 10.0.15063

HMAC-SHA1(Key Sizes Ranges Tested: KSBS ) SHS Val#3790

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #3061

+

Version 10.0.15063

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3652

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3652

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3652

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#3652

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2946

+

Version 7.00.2872

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3651

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3651

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3651

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#3651

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2945

+

Version 8.00.6246

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val# 3649

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val# 3649

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val# 3649

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal# 3649

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2943

+

Version 7.00.2872

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3648

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3648

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3648

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#3648

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2942

+

Version 8.00.6246

HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
+SHS Val# 3347

+

HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
+SHS Val# 3347

+

HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
+SHS Val# 3347

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #2661

+

Version 10.0.14393

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val# 3347

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val# 3347

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val# 3347

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS Val# 3347

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #2651

+

Version 10.0.14393

HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
+SHS Val# 3047

+

HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
+SHS Val# 3047

+

HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
+SHS Val# 3047

+

HMAC-SHA512 ( Key Size Ranges Tested:  KSBS )
+SHS Val# 3047

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” SymCrypt Cryptographic Implementations #2381

+

Version 10.0.10586

HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
+SHSVal# 2886

+

HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
+SHSVal# 2886

+

HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
+ SHSVal# 2886

+

HMAC-SHA512 ( Key Size Ranges Tested:  KSBS )
+SHSVal# 2886

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #2233

+

Version 10.0.10240

HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
+SHS Val#2373

+

HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
+SHS Val#2373

+

HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
+SHS Val#2373

+

HMAC-SHA512 ( Key Size Ranges Tested:  KSBS )
+SHS Val#2373

Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #1773

+

Version 6.3.9600

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#2764

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#2764

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#2764

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS Val#2764

Windows CE and Windows Mobile, and Windows Embedded Handheld Enhanced Cryptographic Provider (RSAENH) #2122

+

Version 5.2.29344

HMAC-SHA1 (Key Sizes Ranges Tested: KS#1902

+

HMAC-SHA256 ( Key Size Ranges Tested: KS#1902

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 BitLocker® Cryptographic Implementations #1347

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS#1902

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS#1902

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS#1902

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS#1902

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Enhanced Cryptographic Provider (RSAENH) #1346

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS )

+

SHS#1903

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS )

+

SHS#1903

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS )

+

SHS#1903

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS )

+

SHS#1903

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #1345

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#1773

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#1773

+

Tinker HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#1773

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#1773

Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #1364

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#1774

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#1774

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#1774

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#1774

Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1227

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#1081

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#1081

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#1081

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#1081

Windows Server 2008 R2 and SP1 CNG algorithms #686

+

Windows 7 and SP1 CNG algorithms #677

+

Windows Server 2008 R2 Enhanced Cryptographic Provider (RSAENH) #687

+

Windows 7 Enhanced Cryptographic Provider (RSAENH) #673

HMAC-SHA1(Key Sizes Ranges Tested: KSVal#1081

+

HMAC-SHA256 ( Key Size Ranges Tested: KSVal#1081

Windows 7 and SP1 and Windows Server 2008 R2 and SP1 BitLocker Algorithm Implementations #675

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#816

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#816

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#816

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#816

Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #452

HMAC-SHA1 (Key Sizes Ranges Tested: KSVal#753

+

HMAC-SHA256 ( Key Size Ranges Tested: KSVal#753

Windows Vista Ultimate SP1 and Windows Server 2008 BitLocker Algorithm Implementations #415

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#753

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#753

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#753

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS )SHS Val#753

Windows Server 2008 Enhanced Cryptographic Provider (RSAENH) #408

+

Windows Vista Enhanced Cryptographic Provider (RSAENH) #407

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS )SHSVal#618

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#618

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#618

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#618

Windows Vista Enhanced Cryptographic Provider (RSAENH) #297
HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#785

Windows XP Professional SP3 Kernel Mode Cryptographic Module (fips.sys) #429

+

Windows XP, vendor-affirmed

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#783

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#783

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#783

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#783

Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #428

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#613

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#613

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#613

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#613

Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #289
HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#610Windows Server 2003 SP2 Kernel Mode Cryptographic Module (fips.sys) #287

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#753

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#753

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#753

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#753

Windows Server 2008 CNG algorithms #413

+

Windows Vista Ultimate SP1 CNG algorithms #412

HMAC-SHA1 (Key Sizes Ranges Tested: KSVal#737

+

HMAC-SHA256 ( Key Size Ranges Tested: KSVal#737

Windows Vista Ultimate BitLocker Drive Encryption #386

HMAC-SHA1 ( Key Sizes Ranges Tested: KSBS ) SHSVal#618

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#618

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#618

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#618

Windows Vista CNG algorithms #298

HMAC-SHA1 ( Key Sizes Ranges Tested: KSBS ) SHSVal#589

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS )SHSVal#589

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#589

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#589

Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #267

HMAC-SHA1 ( Key Sizes Ranges Tested: KSBS ) SHSVal#578

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#578

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#578

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#578

Windows CE and Windows Mobile 6.0 and Windows Mobil 6.5 Enhanced Cryptographic Provider (RSAENH) #260

HMAC-SHA1 (Key Sizes Ranges Tested: KSVal#495

+

HMAC-SHA256 ( Key Size Ranges Tested: KSVal#495

Windows Vista BitLocker Drive Encryption #199
HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#364

Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #99

+

Windows XP, vendor-affirmed

HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#305

+

HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#305

+

HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#305

+

HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#305

Windows CE 5.00 and Windows CE 5.01 Enhanced Cryptographic Provider (RSAENH) #31
+ + +#### Key Agreement Scheme (KAS) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modes / States / Key SizesAlgorithm Implementation and Certificate #
    +
  • KAS ECC:
  • +
    • +
    • Functions: Domain Parameter Generation, Domain Parameter Validation, Full Public Key Validation, Key Pair Generation, Public Key Regeneration
    • +
    • Schemes:
    • +
      • +
      • Full Unified:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • KDFs: Concatenation
        • +
        • Parameter Sets:
        • +
          • +
          • EC:
          • +
            • +
            • Curve: P-256
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • ED:
          • +
            • +
            • Curve: P-384
            • +
            • SHA: SHA-384
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, ECDSA #1253, DRBG #1734

Microsoft Surface Hub Virtual TPM Implementations #150

+

Version 10.0.15063.674

    +
  • KAS ECC:
  • +
    • +
    • Functions: Domain Parameter Generation, Domain Parameter Validation, Full Public Key Validation, Key Pair Generation, Public Key Regeneration
    • +
    • Schemes:
    • +
      • +
      • Full Unified:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • KDFs: Concatenation
        • +
        • Parameter Sets:
        • +
          • +
          • EC:
          • +
            • +
            • Curve: P-256
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • ED:
          • +
            • +
            • Curve: P-384
            • +
            • SHA: SHA-384
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, ECDSA #1252, DRBG #1733

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #149

+

Version 10.0.16299

    +
  • KAS ECC:
  • +
    • +
    • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation, Public Key Regeneration
    • +
    • Schemes:
    • +
      • +
      • Ephemeral Unified:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • KDFs: Concatenation
        • +
        • Parameter Sets:
        • +
          • +
          • EC:
          • +
            • +
            • Curve: P-256
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • ED:
          • +
            • +
            • Curve: P-384
            • +
            • SHA: SHA-384
            • +
            • MAC: HMAC
            • +
          • +
          • EE:
          • +
            • +
            • Curve: P-521
            • +
            • SHA: SHA-512
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • One Pass DH:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • EC:
          • +
            • +
            • Curve: P-256
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • ED:
          • +
            • +
            • Curve: P-384
            • +
            • SHA: SHA-384
            • +
            • MAC: HMAC
            • +
          • +
          • EE:
          • +
            • +
            • Curve: P-521
            • +
            • SHA: SHA-512
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • Static Unified:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • EC:
          • +
            • +
            • Curve: P-256
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • ED:
          • +
            • +
            • Curve: P-384
            • +
            • SHA: SHA-384
            • +
            • MAC: HMAC
            • +
          • +
          • EE:
          • +
            • +
            • Curve: P-521
            • +
            • SHA: SHA-512
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, ECDSA #1250, DRBG #1732

+
    +
  • KAS FFC:
  • +
    • +
    • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation
    • +
    • Schemes:
    • +
      • +
      • dhEphem:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • FB:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • FC:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • dhOneFlow:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • FB:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • FC:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • dhStatic:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • FB:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • FC:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, DSA #1303, DRBG #1732

Microsoft Surface Hub SymCrypt Cryptographic Implementations #148

+

Version 10.0.15063.674

    +
  • KAS ECC:
  • +
    • +
    • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation, Public Key Regeneration
    • +
    • Schemes:
    • +
      • +
      • Ephemeral Unified:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • KDFs: Concatenation
        • +
        • Parameter Sets:
        • +
          • +
          • EC:
          • +
            • +
            • Curve: P-256
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • ED:
          • +
            • +
            • Curve: P-384
            • +
            • SHA: SHA-384
            • +
            • MAC: HMAC
            • +
          • +
          • EE:
          • +
            • +
            • Curve: P-521
            • +
            • SHA: SHA-512
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • One Pass DH:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • EC:
          • +
            • +
            • Curve: P-256
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • ED:
          • +
            • +
            • Curve: P-384
            • +
            • SHA: SHA-384
            • +
            • MAC: HMAC
            • +
          • +
          • EE:
          • +
            • +
            • Curve: P-521
            • +
            • SHA: SHA-512
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • Static Unified:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • EC:
          • +
            • +
            • Curve: P-256
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • ED:
          • +
            • +
            • Curve: P-384
            • +
            • SHA: SHA-384
            • +
            • MAC: HMAC
            • +
          • +
          • EE:
          • +
            • +
            • Curve: P-521
            • +
            • SHA: SHA-512
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4010, ECDSA #1249, DRBG #1731

+
    +
  • KAS FFC:
  • +
    • +
    • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation
    • +
    • Schemes:
    • +
      • +
      • dhEphem:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • FB:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • FC:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • dhOneFlow:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • FB:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • FC:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • dhStatic:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • FB:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • FC:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4010, DSA #1302, DRBG #1731

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #147

+

Version 10.0.15254

    +
  • KAS ECC:
  • +
    • +
    • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation, Public Key Regeneration
    • +
    • Schemes:
    • +
      • +
      • Ephemeral Unified:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • KDFs: Concatenation
        • +
        • Parameter Sets:
        • +
          • +
          • EC:
          • +
            • +
            • Curve: P-256
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • ED:
          • +
            • +
            • Curve: P-384
            • +
            • SHA: SHA-384
            • +
            • MAC: HMAC
            • +
          • +
          • EE:
          • +
            • +
            • Curve: P-521
            • +
            • SHA: SHA-512
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • One Pass DH:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • EC:
          • +
            • +
            • Curve: P-256
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • ED:
          • +
            • +
            • Curve: P-384
            • +
            • SHA: SHA-384
            • +
            • MAC: HMAC
            • +
          • +
          • EE:
          • +
            • +
            • Curve: P-521
            • +
            • SHA: SHA-512
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • Static Unified:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • EC:
          • +
            • +
            • Curve: P-256
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • ED:
          • +
            • +
            • Curve: P-384
            • +
            • SHA: SHA-384
            • +
            • MAC: HMAC
            • +
          • +
          • EE:
          • +
            • +
            • Curve: P-521
            • +
            • SHA: SHA-512
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, ECDSA #1246, DRBG #1730

+
    +
  • KAS FFC:
  • +
    • +
    • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation
    • +
    • Schemes:
    • +
      • +
      • dhEphem:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • FB:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • FC:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • dhOneFlow:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • FB:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • FC:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
      • dhStatic:
      • +
        • +
        • Key Agreement Roles: Initiator, Responder
        • +
        • Parameter Sets:
        • +
          • +
          • FB:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
          • FC:
          • +
            • +
            • SHA: SHA-256
            • +
            • MAC: HMAC
            • +
          • +
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, DSA #1301, DRBG #1730

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #146

+

Version 10.0.16299

ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Full Validation   Key Regeneration ) SCHEMES [ FullUnified ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ]

+

SHS Val#3790
+DSA Val#1135
+DRBG Val#1556

Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #128

+

Version 10.0.15063

FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
+( FB: SHA256 ) ( FC: SHA256 ) ]
+[ dhOneFlow ( FB: SHA256 ) ( FC: SHA256 ) ] [ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB: SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
+SHS Val#3790
+DSA Val#1223
+DRBG Val#1555

+

ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ EphemeralUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
+[ OnePassDH ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
+[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
+
+SHS Val#3790
+ECDSA Val#1133
+DRBG Val#1555

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #127

+

Version 10.0.15063

FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
+( FB: SHA256 ) ( FC: SHA256 ) ]
+[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB: SHA256 ) ( FC: SHA256 ) ] [ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB: SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
+SHS Val# 3649
+DSA Val#1188
+DRBG Val#1430

+

ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES [ EphemeralUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
+[ OnePassDH ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
+[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #115

+

Version 7.00.2872

FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
+( FB: SHA256 ) ( FC: SHA256 ) ]
+[ dhHybridOneFlow ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB:SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
+[ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB:SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
+SHS Val#3648
+DSA Val#1187
+DRBG Val#1429

+

ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES [ EphemeralUnified ( No_KC ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
+[ OnePassDH ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
+[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
+
+SHS Val#3648
+ECDSA Val#1072
+DRBG Val#1429

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #114

+

Version 8.00.6246

ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Full Validation   Key Regeneration )
+SCHEMES  [ FullUnified  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; &lt; KDF: CONCAT &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ]

+

SHS Val# 3347 ECDSA Val#920 DRBG Val#1222

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #93

+

Version 10.0.14393

FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation )
+SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
+( FB: SHA256 ) ( FC: SHA256 ) ]
+[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic (No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

+

SHS Val# 3347 DSA Val#1098 DRBG Val#1217

+

ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
+[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
+[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

+

SHS Val# 3347 DSA Val#1098 ECDSA Val#911 DRBG Val#1217 HMAC Val#2651

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #92

+

Version 10.0.14393

FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
+( FB: SHA256 ) ( FC: SHA256 ) ]
+[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

+

SHS Val# 3047 DSA Val#1024 DRBG Val#955

+

ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
+[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
+[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

+

SHS Val# 3047 ECDSA Val#760 DRBG Val#955

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub Cryptography Next Generation (CNG) Implementations #72

+

Version 10.0.10586

FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
+( FB: SHA256 ) ( FC: SHA256 ) ]
+[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

+

SHS Val# 2886 DSA Val#983 DRBG Val#868

+

ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
+[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
+[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

+

SHS Val# 2886 ECDSA Val#706 DRBG Val#868

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 Cryptography Next Generation (CNG) Implementations #64

+

Version 10.0.10240

FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
+( FB: SHA256 ) ( FC: SHA256 ) ]
+[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

+

SHS Val#2373 DSA Val#855 DRBG Val#489

+

ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
+[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
+[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

+

SHS Val#2373 ECDSA Val#505 DRBG Val#489

Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 Cryptography Next Generation Cryptographic Implementations #47

+

Version 6.3.9600

FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG DPV KPG Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
+( FA: SHA256 ) ( FB: SHA256 ) ( FC: SHA256 ) ]
+[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FA: SHA256 ) ( FB: SHA256 ) ( FC: SHA256 ) ]
+[ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FA: SHA256 HMAC ) ( FB: SHA256 HMAC ) ( FC: SHA256 HMAC ) ]
+SHS #1903 DSA Val#687 DRBG #258

+

ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG DPV KPG Partial Validation Key Regeneration ) SCHEMES [ EphemeralUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256 SHA256 HMAC ) ( ED: P-384 SHA384 HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
+[ OnePassDH( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256 SHA256 ) ( ED: P-384 SHA384 ) ( EE: P-521 (SHA512, HMAC_SHA512) ) ) ]
+[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256 SHA256 HMAC ) ( ED: P-384 SHA384 HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ]
+
+SHS #1903 ECDSA Val#341 DRBG #258

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #36

KAS (SP 800–56A)

+

key agreement

+

key establishment methodology provides 80 to 256 bits of encryption strength

Windows 7 and SP1, vendor-affirmed

+

Windows Server 2008 R2 and SP1, vendor-affirmed

+ + +SP 800-108 Key-Based Key Derivation Functions (KBKDF) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modes / States / Key SizesAlgorithm Implementation and Certificate #
    +
  • Counter:
  • +
    • +
    • MACs: HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384
    • +
  • +
+

MAC prerequisite: HMAC #3271

+
+
    +
  • Counter Location: Before Fixed Data
  • +
  • R Length: 32 (bits)
  • +
  • SPs used to generate K: SP 800-56A, SP 800-90A
  • +
+
+

K prerequisite: DRBG #1734, KAS #150

Microsoft Surface Hub Virtual TPM Implementations #161

+

Version 10.0.15063.674

    +
  • Counter:
  • +
    • +
    • MACs: HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384
    • +
  • +
+

MAC prerequisite: HMAC #3270

+
+
    +
  • Counter Location: Before Fixed Data
  • +
  • R Length: 32 (bits)
  • +
  • SPs used to generate K: SP 800-56A, SP 800-90A
  • +
+
+

K prerequisite: DRBG #1733, KAS #149

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #160

+

Version 10.0.16299

    +
  • Counter:
  • +
    • +
    • MACs: CMAC-AES-128, CMAC-AES-192, CMAC-AES-256, HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512
    • +
  • +
+

MAC prerequisite: AES #4902, HMAC #3269

+
+
    +
  • Counter Location: Before Fixed Data
  • +
  • R Length: 32 (bits)
  • +
  • SPs used to generate K: SP 800-56A, SP 800-90A
  • +
  • K prerequisite: KAS #148
  • +
+

Microsoft Surface Hub Cryptography Next Generation (CNG) Implementations #159

+

Version 10.0.15063.674

    +
  • Counter:
  • +
    • +
    • MACs: CMAC-AES-128, CMAC-AES-192, CMAC-AES-256, HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512
    • +
  • +
+

MAC prerequisite: AES #4901, HMAC #3268

+
+
    +
  • Counter Location: Before Fixed Data
  • +
  • R Length: 32 (bits)
  • +
  • SPs used to generate K: SP 800-56A, SP 800-90A
  • +
+
+

K prerequisite: KAS #147

Windows 10 Mobile (version 1709) Cryptography Next Generation (CNG) Implementations #158

+

Version 10.0.15254

    +
  • Counter:
  • +
    • +
    • MACs: CMAC-AES-128, CMAC-AES-192, CMAC-AES-256, HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512
    • +
  • +
+

MAC prerequisite: AES #4897, HMAC #3267

+
+
    +
  • Counter Location: Before Fixed Data
  • +
  • R Length: 32 (bits)
  • +
  • SPs used to generate K: SP 800-56A, SP 800-90A
  • +
+
+

K prerequisite: KAS #146

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Cryptography Next Generation (CNG) Implementations #157

+

Version 10.0.16299

CTR_Mode: ( Llength( Min0 Max0 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA384] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )
+
+KAS Val#128
+DRBG Val#1556
+MAC Val#3062

Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #141

+

Version 10.0.15063

CTR_Mode: ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )
+
+KAS Val#127
+AES Val#4624
+DRBG Val#1555
+MAC Val#3061

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile Cryptography Next Generation (CNG) Implementations #140

+

Version 10.0.15063

CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA384] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

+

KAS Val#93 DRBG Val#1222 MAC Val#2661

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #102

+

Version 10.0.14393

CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

+

KAS Val#92 AES Val#4064 DRBG Val#1217 MAC Val#2651

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #101

+

Version 10.0.14393

CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

+

KAS Val#72 AES Val#3629 DRBG Val#955 MAC Val#2381

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” Cryptography Next Generation (CNG) Implementations #72

+

Version 10.0.10586

CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

+

KAS Val#64 AES Val#3497 RBG Val#868 MAC Val#2233

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 Cryptography Next Generation (CNG) Implementations #66

+

Version 10.0.10240

CTR_Mode:  ( Llength( Min0 Max0 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

+

DRBG Val#489 MAC Val#1773

Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 Cryptography Next Generation Cryptographic Implementations #30

+

Version 6.3.9600

CTR_Mode: ( Llength( Min0 Max4 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

+

DRBG #258 HMAC Val#1345

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #3
+ + +Random Number Generator (RNG) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modes / States / Key SizesAlgorithm Implementation and Certificate #

FIPS 186-2 General Purpose

+

[ (x-Original); (SHA-1) ]

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #1110
FIPS 186-2
+[ (x-Original); (SHA-1) ]

Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1060

+

Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #292

+

Windows CE and Windows Mobile 6.0 and Windows Mobile 6.5 Enhanced Cryptographic Provider (RSAENH) #286

+

Windows CE 5.00 and Window CE 5.01 Enhanced Cryptographic Provider (RSAENH) #66

FIPS 186-2
+[ (x-Change Notice); (SHA-1) ]

+

FIPS 186-2 General Purpose
+[ (x-Change Notice); (SHA-1) ]

Windows 7 and SP1 and Windows Server 2008 R2 and SP1 RNG Library #649

+

Windows Vista Ultimate SP1 and Windows Server 2008 RNG Implementation #435

+

Windows Vista RNG implementation #321

FIPS 186-2 General Purpose
+[ (x-Change Notice); (SHA-1) ]

Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #470

+

Windows XP Professional SP3 Kernel Mode Cryptographic Module (fips.sys) #449

+

Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #447

+

Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #316

+

Windows Server 2003 SP2 Kernel Mode Cryptographic Module (fips.sys) #313

FIPS 186-2
+[ (x-Change Notice); (SHA-1) ]

Windows XP Professional SP3 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #448

+

Windows Server 2003 SP2 Enhanced DSS and Diffie-Hellman Cryptographic Provider #314

+ + +#### RSA + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modes / States / Key SizesAlgorithm Implementation and Certificate #

RSA:

+
    +
  • 186-4:
  • +
    • +
    • Signature Generation PKCS1.5:
    • +
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384
      • +
    • +
    • Signature Generation PSS:
    • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
      • +
    • +
    • Signature Verification PKCS1.5:
    • +
      • +
      • Mod 1024 SHA: SHA-1, SHA-256, SHA-384
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384
      • +
    • +
    • Signature Verification PSS:
    • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, DRBG #1734

Microsoft Surface Hub Virtual TPM Implementations #2677

+

Version 10.0.15063.674

RSA:

+
    +
  • 186-4:
  • +
    • +
    • Signature Generation PKCS1.5:
    • +
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384
      • +
    • +
    • Signature Generation PSS:
    • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 240 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
      • +
    • +
    • Signature Verification PKCS1.5:
    • +
      • +
      • Mod 1024 SHA: SHA-1, SHA-256, SHA-384
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384
      • +
    • +
    • Signature Verification PSS:
    • +
      • +
      • Mod 1024:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, DRBG #1733

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #2676

+

Version 10.0.16299

RSA:

+
    +
  • 186-4:
  • +
    • +
    • Key Generation:
    • +
    • Signature Verification PKCS1.5:
    • +
      • +
      • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
  • +
+

Prerequisite: SHS #4011, DRBG #1732

Microsoft Surface Hub RSA32 Algorithm Implementations #2675

+

Version 10.0.15063.674

RSA:

+
    +
  • 186-4:
  • +
    • +
    • Signature Verification PKCS1.5:
    • +
      • +
      • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
  • +
+

Prerequisite: SHS #4009, DRBG #1730

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); RSA32 Algorithm Implementations #2674

+

Version 10.0.16299

RSA:

+
    +
  • 186-4:
  • +
    • +
    • Signature Verification PKCS1.5:
    • +
      • +
      • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
  • +
+

Prerequisite: SHS #4010, DRBG #1731

Windows 10 Mobile (version 1709) RSA32 Algorithm Implementations #2673

+

Version 10.0.15254

RSA:

+
    +
  • 186-4:
  • +
    • +
    • Key Generation:
    • +
      • +
      • Public Key Exponent: Fixed (10001)
      • +
      • Provable Primes with Conditions:
      • +
        • +
        • Mod lengths: 2048, 3072 (bits)
        • +
        • Primality Tests: C.3
        • +
      • +
    • +
    • Signature Generation PKCS1.5:
    • +
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Generation PSS:
    • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
    • Signature Verification PKCS1.5:
    • +
      • +
      • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Verification PSS:
    • +
      • +
      • Mod 1024:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 496 (bits)
        • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, DRBG #1732

Microsoft Surface Hub MsBignum Cryptographic Implementations #2672

+

Version 10.0.15063.674

RSA:

+
    +
  • 186-4:
  • +
    • +
    • Key Generation:
    • +
      • +
      • Probable Random Primes:
      • +
        • +
        • Mod lengths: 2048, 3072 (bits)
        • +
        • Primality Tests: C.2
        • +
      • +
    • +
    • Signature Generation PKCS1.5:
    • +
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Generation PSS:
    • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
    • Signature Verification PKCS1.5:
    • +
      • +
      • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Verification PSS:
    • +
      • +
      • Mod 1024:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 496 (bits)
        • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, DRBG #1732

Microsoft Surface Hub SymCrypt Cryptographic Implementations #2671

+

Version 10.0.15063.674

RSA:

+
    +
  • 186-4:
  • +
    • +
    • Key Generation:
    • +
      • +
      • Probable Random Primes:
      • +
        • +
        • Mod lengths: 2048, 3072 (bits)
        • +
        • Primality Tests: C.2
        • +
      • +
    • +
    • Signature Generation PKCS1.5:
    • +
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Generation PSS:
    • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
    • Signature Verification PKCS1.5:
    • +
      • +
      • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Verification PSS:
    • +
      • +
      • Mod 1024:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 496 (bits)
        • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4010, DRBG #1731

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #2670

+

Version 10.0.15254

RSA:

+
    +
  • 186-4:
  • +
    • +
    • Key Generation:
    • +
      • +
      • Public Key Exponent: Fixed (10001)
      • +
      • Provable Primes with Conditions:
      • +
        • +
        • Mod lengths: 2048, 3072 (bits)
        • +
        • Primality Tests: C.3
        • +
      • +
    • +
    • Signature Generation PKCS1.5:
    • +
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Generation PSS:
    • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
    • Signature Verification PKCS1.5:
    • +
      • +
      • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Verification PSS:
    • +
      • +
      • Mod 1024:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 496 (bits)
        • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4010, DRBG #1731

Windows 10 Mobile (version 1709) MsBignum Cryptographic Implementations #2669

+

Version 10.0.15254

    +
  • 186-4:
  • +
    • +
    • Key Generation:
    • +
      • +
      • Public Key Exponent: Fixed (10001)
      • +
      • Provable Primes with Conditions:
      • +
        • +
        • Mod lengths: 2048, 3072 (bits)
        • +
        • Primality Tests: C.3
        • +
      • +
    • +
    • Signature Generation PKCS1.5:
    • +
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Generation PSS:
    • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
    • Signature Verification PKCS1.5:
    • +
      • +
      • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Verification PSS:
    • +
      • +
      • Mod 1024:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 496 (bits)
        • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, DRBG #1730

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #2668

+

Version 10.0.16299

    +
  • 186-4:
  • +
    • +
    • Key Generation:
    • +
      • +
      • Probable Random Primes:
      • +
        • +
        • Mod lengths: 2048, 3072 (bits)
        • +
        • Primality Tests: C.2
        • +
      • +
    • +
    • Signature Generation PKCS1.5:
    • +
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Generation PSS:
    • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
    • Signature Verification PKCS1.5:
    • +
      • +
      • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
      • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
      • +
    • +
    • Signature Verification PSS:
    • +
      • +
      • Mod 1024:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 496 (bits)
        • +
      • +
      • Mod 2048:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
      • Mod 3072:
      • +
        • +
        • SHA-1: Salt Length: 160 (bits)
        • +
        • SHA-256: Salt Length: 256 (bits)
        • +
        • SHA-384: Salt Length: 384 (bits)
        • +
        • SHA-512: Salt Length: 512 (bits)
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, DRBG #1730

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #2667

+

Version 10.0.16299

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5]
SIG(gen) (2048 SHA( 1 , 256 , 384 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+
SIG(Ver) (1024 SHA( 1 , 256 , 384 )) (2048 SHA( 1 , 256 , 384 ))
+[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+
Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) ))
+SHA Val#3790

Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #2524

+

Version 10.0.15063

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5]
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
+SHA Val#3790

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile RSA32 Algorithm Implementations #2523

+

Version 10.0.15063

FIPS186-4:
+186-4KEY(gen):
FIPS186-4_Fixed_e ( 10001 ) ;
+PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )
+ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
+[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+
Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
+SHA Val#3790
+DRBG: Val# 1555

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #2522

+

Version 10.0.15063

FIPS186-4:
+186-4KEY(gen):
+PGM(ProbRandom:
( 2048 , 3072 ) PPTT:( C.2 )
+ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
+[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+
Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
+SHA Val#3790

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #2521

+

Version 10.0.15063

FIPS186-2:
+ALG[ANSIX9.31]:

+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3652
+ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 4096 , SHS: SHA-256Val#3652, SHA-384Val#3652, SHA-512Val#3652
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3652, SHA-256Val#3652, SHA-384Val#3652, SHA-512Val#3652

+

FIPS186-4:
+ALG[ANSIX9.31]
Sig(Gen): (2048 SHA( 1 )) (3072 SHA( 1 ))
+SIG(gen) with SHA-1 affirmed for use with protocols only.
Sig(Ver): (1024 SHA( 1 )) (2048 SHA( 1 )) (3072 SHA( 1 ))
+ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
+SHA Val#3652

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2415

+

Version 7.00.2872

FIPS186-2:
+ALG[ANSIX9.31]:

+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3651
+ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 4096 , SHS: SHA-256Val#3651, SHA-384Val#3651, SHA-512Val#3651
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3651, SHA-256Val#3651, SHA-384Val#3651, SHA-512Val#3651

+

FIPS186-4:
+ALG[ANSIX9.31]
Sig(Gen): (2048 SHA( 1 )) (3072 SHA( 1 ))
+SIG(gen) with SHA-1 affirmed for use with protocols only.
Sig(Ver): (1024 SHA( 1 )) (2048 SHA( 1 )) (3072 SHA( 1 ))
+ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
+SHA Val#3651

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2414

+

Version 8.00.6246

FIPS186-2:
+ALG[RSASSA-PKCS1_V1_5]:
SIG(gen) 4096 , SHS: SHA-256Val# 3649 , SHA-384Val# 3649 , SHA-512Val# 3649
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val# 3649 , SHA-256Val# 3649 , SHA-384Val# 3649 , SHA-512Val# 3649

+

FIPS186-4:
+186-4KEY(gen):
FIPS186-4_Fixed_e (10001) ;
+PGM(ProbRandom: ( 2048 , 3072 ) PPTT:( C.2 )
+ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
+SHA Val# 3649
+DRBG: Val# 1430

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2412

+

Version 7.00.2872

FIPS186-2:
+ALG[RSASSA-PKCS1_V1_5]:
SIG(gen) 4096 , SHS: SHA-256Val#3648, SHA-384Val#3648, SHA-512Val#3648
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3648, SHA-256Val#3648, SHA-384Val#3648, SHA-512Val#3648

+

FIPS186-4:
+186-4KEY(gen):
FIPS186-4_Fixed_e (10001) ;
+PGM(ProbRandom: ( 2048 , 3072 ) PPTT:( C.2 )
+ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
+SHA Val#3648
+DRBG: Val# 1429

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2411

+

Version 8.00.6246

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5]
SIG(gen) (2048 SHA( 1 , 256 , 384 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+SIG(Ver) (1024 SHA( 1 , 256 , 384 )) (2048 SHA( 1 , 256 , 384 ))
+[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
+Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) ))

+

SHA Val# 3347

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #2206

+

Version 10.0.14393

FIPS186-4:
+186-4KEY(gen):
FIPS186-4_Fixed_e ( 10001 ) ;
+PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

+

SHA Val# 3347 DRBG: Val# 1217

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update RSA Key Generation Implementation #2195

+

Version 10.0.14393

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5]
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

+

SHA Val#3346

soft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update RSA32 Algorithm Implementations #2194

+

Version 10.0.14393

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5]
SIG(gen) (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
+SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

+

SHA Val# 3347 DRBG: Val# 1217

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #2193

+

Version 10.0.14393

FIPS186-4:
+[RSASSA-PSS]: Sig(Gen):
(2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

+

Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

+

SHA Val# 3347 DRBG: Val# 1217

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #2192

+

Version 10.0.14393

FIPS186-4:
+186-4KEY(gen)
:  FIPS186-4_Fixed_e ( 10001 ) ;
+PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

+

SHA Val# 3047 DRBG: Val# 955

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” RSA Key Generation Implementation #1889

+

Version 10.0.10586

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5]
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

+

SHA Val#3048

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub RSA32 Algorithm Implementations #1871

+

Version 10.0.10586

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5]
SIG(gen) (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
+SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

+

SHA Val# 3047

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub MsBignum Cryptographic Implementations #1888

+

Version 10.0.10586

FIPS186-4:
+[RSASSA-PSS]: Sig(Gen)
: (2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
+Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

+

SHA Val# 3047

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub Cryptography Next Generation (CNG) Implementations #1887

+

Version 10.0.10586

FIPS186-4:
+186-4KEY(gen):
FIPS186-4_Fixed_e ( 10001 ) ;
+PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

+

SHA Val# 2886 DRBG: Val# 868

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 RSA Key Generation Implementation #1798

+

Version 10.0.10240

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5]
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

+

SHA Val#2871

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 RSA32 Algorithm Implementations #1784

+

Version 10.0.10240

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5]
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

+

SHA Val#2871

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 MsBignum Cryptographic Implementations #1783

+

Version 10.0.10240

FIPS186-4:
+[RSASSA-PSS]:
Sig(Gen): (2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
+Sig(Ver): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

+

SHA Val# 2886

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 Cryptography Next Generation (CNG) Implementations #1802

+

Version 10.0.10240

FIPS186-4:
+186-4KEY(gen):
FIPS186-4_Fixed_e ;
+PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

+

SHA Val#2373 DRBG: Val# 489

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 RSA Key Generation Implementation #1487

+

Version 6.3.9600

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5]
SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

+

SHA Val#2373

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry RSA32 Algorithm Implementations #1494

+

Version 6.3.9600

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5
] SIG(gen) (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
+SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

+

SHA Val#2373

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #1493

+

Version 6.3.9600

FIPS186-4:
+[RSASSA-PSS]:
Sig(Gen): (2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
+ Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

+

SHA Val#2373

Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 Cryptography Next Generation Cryptographic Implementations #1519

+

Version 6.3.9600

FIPS186-4:
+ALG[RSASSA-PKCS1_V1_5]
SIG(gen) (2048 SHA( 256 , 384 , 512-256 )) (3072 SHA( 256 , 384 , 512-256 ))
+SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512-256 )) (2048 SHA( 1 , 256 , 384 , 512-256 )) (3072 SHA( 1 , 256 , 384 , 512-256 ))
+[RSASSA-PSS]: Sig(Gen): (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
+Sig(Ver): (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 , 512 ))
+SHA #1903

+

Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1134.

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #1134
FIPS186-4:
+186-4KEY(gen):
FIPS186-4_Fixed_e , FIPS186-4_Fixed_e_Value
+PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )
+SHA #1903 DRBG: #258
Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 RSA Key Generation Implementation #1133
FIPS186-2:
+ALG[ANSIX9.31]:
Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 DRBG: #258
+ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256#1902, SHA-384#1902, SHA-512#1902,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1#1902, SHA-256#1902, SHA-#1902, SHA-512#1902,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1132.
Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Enhanced Cryptographic Provider (RSAENH) #1132
FIPS186-2:
+ALG[ANSIX9.31]:

+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1774
+ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1774, SHA-384Val#1774, SHA-512Val#1774,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1774, SHA-256Val#1774, SHA-384Val#1774, SHA-512Val#1774,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1052.
Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1052
FIPS186-2:
+ALG[ANSIX9.31]:
Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 DRBG: Val# 193
+ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1773, SHA-384Val#1773, SHA-512Val#1773,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1773, SHA-256Val#1773, SHA-384Val#1773, SHA-512Val#1773,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1051.
Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1051
FIPS186-2:
+ALG[RSASSA-PKCS1_V1_5]:
SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#568.
Windows Server 2008 R2 and SP1 Enhanced Cryptographic Provider (RSAENH) #568
FIPS186-2:
+ALG[RSASSA-PKCS1_V1_5]:
SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
+ALG[RSASSA-PSS]: SIG(gen); 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081
+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#567. See Historical RSA List Val#560.

Windows Server 2008 R2 and SP1 CNG algorithms #567

+

Windows 7 and SP1 CNG algorithms #560

FIPS186-2:
+ALG[ANSIX9.31]:
Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 DRBG: Val# 23
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#559.
Windows 7 and SP1 and Server 2008 R2 and SP1 RSA Key Generation Implementation #559
FIPS186-2:
+ALG[RSASSA-PKCS1_V1_5]:
SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#557.
Windows 7 and SP1 Enhanced Cryptographic Provider (RSAENH) #557
FIPS186-2:
+ALG[ANSIX9.31]:
+ALG[RSASSA-PKCS1_V1_5]:
SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#816, SHA-384Val#816, SHA-512Val#816,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#816, SHA-256Val#816, SHA-384Val#816, SHA-512Val#816,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#395.
Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #395
FIPS186-2:
+ALG[ANSIX9.31]:

+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#783
+ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#783, SHA-384Val#783, SHA-512Val#783,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#371.
Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #371
FIPS186-2:
+ALG[RSASSA-PKCS1_V1_5]:
SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
+ALG[RSASSA-PSS]: SIG(gen); 2048 , 3072 , 4096 , SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753
+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#358. See Historical RSA List Val#357.

Windows Server 2008 CNG algorithms #358

+

Windows Vista SP1 CNG algorithms #357

FIPS186-2:
+ALG[ANSIX9.31]:

+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753
+ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#355. See Historical RSA List Val#354.

Windows Server 2008 Enhanced Cryptographic Provider (RSAENH) #355

+

Windows Vista SP1 Enhanced Cryptographic Provider (RSAENH) #354

FIPS186-2:
+ALG[ANSIX9.31]:
Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#353.
Windows Vista SP1 and Windows Server 2008 RSA Key Generation Implementation #353
FIPS186-2:
+ALG[ANSIX9.31]:
Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 RNG: Val# 321
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#258.
Windows Vista RSA key generation implementation #258
FIPS186-2:
+ALG[RSASSA-PKCS1_V1_5]:
SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
+ALG[RSASSA-PSS]: SIG(gen); 2048 , 3072 , 4096 , SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618
+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#257.
Windows Vista CNG algorithms #257
FIPS186-2:
+ALG[RSASSA-PKCS1_V1_5]:
SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#255.
Windows Vista Enhanced Cryptographic Provider (RSAENH) #255
FIPS186-2:
+ALG[ANSIX9.31]:

+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#613
+ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#613, SHA-384Val#613, SHA-512Val#613,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#613, SHA-256Val#613, SHA-384Val#613, SHA-512Val#613,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#245.
Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #245
FIPS186-2:
+ALG[ANSIX9.31]:

+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#589
+ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#589, SHA-384Val#589, SHA-512Val#589,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#589, SHA-256Val#589, SHA-384Val#589, SHA-512Val#589,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#230.
Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #230
FIPS186-2:
+ALG[ANSIX9.31]:

+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#578
+ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#578, SHA-384Val#578, SHA-512Val#578,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#578, SHA-256Val#578, SHA-384Val#578, SHA-512Val#578,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#222.
Windows CE and Windows Mobile 6 and Windows Mobile 6.1 Enhanced Cryptographic Provider (RSAENH) #222
FIPS186-2:
+ALG[RSASSA-PKCS1_V1_5]:

+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#364
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#81.
Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #81
FIPS186-2:
+ALG[ANSIX9.31]:

+SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#305
+ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#305, SHA-384Val#305, SHA-512Val#305,
+SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#305, SHA-256Val#305, SHA-384Val#305, SHA-512Val#305,
+Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#52.
Windows CE 5.00 and Windows CE 5.01 Enhanced Cryptographic Provider (RSAENH) #52

FIPS186-2:

+

– PKCS#1 v1.5, signature generation and verification

+

– Mod sizes: 1024, 1536, 2048, 3072, 4096

+

– SHS: SHA–1/256/384/512

Windows XP, vendor-affirmed

+

Windows 2000, vendor-affirmed

+ + +#### Secure Hash Standard (SHS) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modes / States / Key SizesAlgorithm Implementation and Certificate #
    +
  • SHA-1:
  • +
    • +
    • Supports Empty Message
    • +
  • +
  • SHA-256:
  • +
    • +
    • Supports Empty Message
    • +
  • +
  • SHA-384:
  • +
    • +
    • Supports Empty Message
    • +
  • +
  • SHA-512:
  • +
    • +
    • Supports Empty Message
    • +
  • +

Microsoft Surface Hub SymCrypt Cryptographic Implementations #4011

+

Version 10.0.15063.674

    +
  • SHA-1:
  • +
    • +
    • Supports Empty Message
    • +
  • +
  • SHA-256:
  • +
    • +
    • Supports Empty Message
    • +
  • +
  • SHA-384:
  • +
    • +
    • Supports Empty Message
    • +
  • +
  • SHA-512:
  • +
    • +
    • Supports Empty Message
    • +
  • +

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #4010

+

Version 10.0.15254

    +
  • SHA-1:
  • +
    • +
    • Supports Empty Message
    • +
  • +
  • SHA-256:
  • +
    • +
    • Supports Empty Message
    • +
  • +
  • SHA-384:
  • +
    • +
    • Supports Empty Message
    • +
  • +
  • SHA-512:
  • +
    • +
    • Supports Empty Message
    • +
  • +

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #4009

+

Version 10.0.16299

SHA-1      (BYTE-only)
+SHA-256  (BYTE-only)
+SHA-384  (BYTE-only)
+SHA-512  (BYTE-only)

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #3790

+

Version 10.0.15063

SHA-1      (BYTE-only)
+SHA-256  (BYTE-only)
+SHA-384  (BYTE-only)
+SHA-512  (BYTE-only)

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #3652

+

Version 7.00.2872

SHA-1      (BYTE-only)
+SHA-256  (BYTE-only)
+SHA-384  (BYTE-only)
+SHA-512  (BYTE-only)

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #3651

+

Version 8.00.6246

SHA-1      (BYTE-only)
+SHA-256  (BYTE-only)
+SHA-384  (BYTE-only)
+SHA-512  (BYTE-only)

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #3649

+

Version 7.00.2872

SHA-1      (BYTE-only)
+SHA-256  (BYTE-only)
+SHA-384  (BYTE-only)
+SHA-512  (BYTE-only)

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #3648

+

Version 8.00.6246

SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)
Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #3347
+Version 10.0.14393
SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)
Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update RSA32 Algorithm Implementations #3346
+Version 10.0.14393
SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)
Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub RSA32 Algorithm Implementations #3048
+Version 10.0.10586
SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)
Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub SymCrypt Cryptographic Implementations #3047
+Version 10.0.10586
SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)
Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #2886
+Version 10.0.10240
SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)
Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 RSA32 Algorithm Implementations #2871
+Version 10.0.10240
SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)
Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry RSA32 Algorithm Implementations #2396
+Version 6.3.9600
SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)
Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #2373
+Version 6.3.9600

SHA-1 (BYTE-only)

+

SHA-256 (BYTE-only)

+

SHA-384 (BYTE-only)

+

SHA-512 (BYTE-only)

+

Implementation does not support zero-length (null) messages.

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #1903

+

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Symmetric Algorithm Implementations (RSA32) #1902

SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)

Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1774

+

Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #1773

SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)

Windows 7and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #1081

+

Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #816

SHA-1 (BYTE-only)

Windows XP Professional SP3 Kernel Mode Cryptographic Module (fips.sys) #785

+

Windows XP Professional SP3 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #784

SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)
Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #783
SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)

Windows Vista SP1 and Windows Server 2008 Symmetric Algorithm Implementation #753

+

Windows Vista Symmetric Algorithm Implementation #618

SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)

Windows Vista BitLocker Drive Encryption #737

+

Windows Vista Beta 2 BitLocker Drive Encryption #495

SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)

Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #613

+

Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #364

SHA-1 (BYTE-only)

Windows Server 2003 SP2 Enhanced DSS and Diffie-Hellman Cryptographic Provider #611

+

Windows Server 2003 SP2 Kernel Mode Cryptographic Module (fips.sys) #610

+

Windows Server 2003 SP1 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #385

+

Windows Server 2003 SP1 Kernel Mode Cryptographic Module (fips.sys) #371

+

Windows Server 2003 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #181

+

Windows Server 2003 Kernel Mode Cryptographic Module (fips.sys) #177

+

Windows Server 2003 Enhanced Cryptographic Provider (RSAENH) #176

SHA-1 (BYTE-only)
+SHA-256 (BYTE-only)
+SHA-384 (BYTE-only)
+SHA-512 (BYTE-only)

Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #589

+

Windows CE and Windows Mobile 6 and Windows Mobile 6.5 Enhanced Cryptographic Provider (RSAENH) #578

+

Windows CE 5.00 and Windows CE 5.01 Enhanced Cryptographic Provider (RSAENH) #305

SHA-1 (BYTE-only)

Windows XP Microsoft Enhanced Cryptographic Provider #83

+

Crypto Driver for Windows 2000 (fips.sys) #35

+

Windows 2000 Microsoft Outlook Cryptographic Provider (EXCHCSP.DLL) SR-1A (3821) #32

+

Windows 2000 RSAENH.DLL #24

+

Windows 2000 RSABASE.DLL #23

+

Windows NT 4 SP6 RSAENH.DLL #21

+

Windows NT 4 SP6 RSABASE.DLL #20

+ + +#### Triple DES + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Modes / States / Key SizesAlgorithm Implementation and Certificate #
    +
  • TDES-CBC:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +
  • TDES-CFB64:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +
  • TDES-CFB8:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +
  • TDES-ECB:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +

Microsoft Surface Hub SymCrypt Cryptographic Implementations #2558

+

Version 10.0.15063.674

    +
  • TDES-CBC:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +
  • TDES-CFB64:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +
  • TDES-CFB8:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +
  • TDES-ECB:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #2557

+

Version 10.0.15254

    +
  • TDES-CBC:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +
  • TDES-CFB64:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +
  • TDES-CFB8:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +
  • TDES-ECB:
  • +
    • +
    • Modes: Decrypt, Encrypt
    • +
    • Keying Option: 1
    • +
  • +

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #2556

+

Version 10.0.16299

TECB( KO 1 e/d, ) ; TCBC( KO 1 e/d, ) ; TCFB8( KO 1 e/d, ) ; TCFB64( KO 1 e/d, )

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #2459

+

Version 10.0.15063

TECB( KO 1 e/d, ) ;

+

TCBC( KO 1 e/d, )

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2384

+

Version 8.00.6246

TECB( KO 1 e/d, ) ;

+

TCBC( KO 1 e/d, )

Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2383

+

Version 8.00.6246

TECB( KO 1 e/d, ) ;

+

TCBC( KO 1 e/d, ) ;

+

CTR ( int only )

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2382

+

Version 7.00.2872

TECB( KO 1 e/d, ) ;

+

TCBC( KO 1 e/d, )

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2381

+

Version 8.00.6246

TECB( KO 1 e/d, ) ;

+

TCBC( KO 1 e/d, ) ;

+

TCFB8( KO 1 e/d, ) ;

+

TCFB64( KO 1 e/d, )

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #2227
+
+

+

Version 10.0.14393

TECB( KO 1 e/d, ) ;

+

TCBC( KO 1 e/d, ) ;

+

TCFB8( KO 1 e/d, ) ;

+

TCFB64( KO 1 e/d, )

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub SymCrypt Cryptographic Implementations #2024
+
+

+

Version 10.0.10586

TECB( KO 1 e/d, ) ;

+

TCBC( KO 1 e/d, ) ;

+

TCFB8( KO 1 e/d, ) ;

+

TCFB64( KO 1 e/d, )

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #1969
+
+

+

Version 10.0.10240

TECB( KO 1 e/d, ) ;

+

TCBC( KO 1 e/d, ) ;

+

TCFB8( KO 1 e/d, ) ;

+

TCFB64( KO 1 e/d, )

Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #1692

+

Version 6.3.9600

TECB( e/d; KO 1,2 ) ;

+

TCBC( e/d; KO 1,2 ) ;

+

TCFB8( e/d; KO 1,2 ) ;

+

TCFB64( e/d; KO 1,2 )

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #1387

TECB( e/d; KO 1,2 ) ;

+

TCBC( e/d; KO 1,2 ) ;

+

TCFB8( e/d; KO 1,2 )

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Symmetric Algorithm Implementations (RSA32) #1386

TECB( e/d; KO 1,2 ) ;

+

TCBC( e/d; KO 1,2 ) ;

+

TCFB8( e/d; KO 1,2 )

Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #846

TECB( e/d; KO 1,2 ) ;

+

TCBC( e/d; KO 1,2 ) ;

+

TCFB8( e/d; KO 1,2 )

Windows Vista SP1 and Windows Server 2008 Symmetric Algorithm Implementation #656

TECB( e/d; KO 1,2 ) ;

+

TCBC( e/d; KO 1,2 ) ;

+

TCFB8( e/d; KO 1,2 )

Windows Vista Symmetric Algorithm Implementation #549
Triple DES MAC

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 #1386, vendor-affirmed

+

Windows 7 and SP1 and Windows Server 2008 R2 and SP1 #846, vendor-affirmed

TECB( e/d; KO 1,2 ) ;

+

TCBC( e/d; KO 1,2 )

Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1308

+

Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #1307

+

Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #691

+

Windows XP Professional SP3 Kernel Mode Cryptographic Module (fips.sys) #677

+

Windows XP Professional SP3 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #676

+

Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #675

+

Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #544

+

Windows Server 2003 SP2 Enhanced DSS and Diffie-Hellman Cryptographic Provider #543

+

Windows Server 2003 SP2 Kernel Mode Cryptographic Module (fips.sys) #542

+

Windows CE 6.0 and Window CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #526

+

Windows CE and Windows Mobile 6 and Windows Mobile 6.1 and Windows Mobile 6.5 Enhanced Cryptographic Provider (RSAENH) #517

+

Windows Server 2003 SP1 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #381

+

Windows Server 2003 SP1 Kernel Mode Cryptographic Module (fips.sys) #370

+

Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #365

+

Windows CE 5.00 and Windows CE 5.01 Enhanced Cryptographic Provider (RSAENH) #315

+

Windows Server 2003 Kernel Mode Cryptographic Module (fips.sys) #201

+

Windows Server 2003 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #199

+

Windows Server 2003 Enhanced Cryptographic Provider (RSAENH) #192

+

Windows XP Microsoft Enhanced Cryptographic Provider #81

+

Windows 2000 Microsoft Outlook Cryptographic Provider (EXCHCSP.DLL) SR-1A (3821) #18

+

Crypto Driver for Windows 2000 (fips.sys) #16

+ + +#### SP 800-132 Password Based Key Derivation Function (PBKDF) + + + + + + + + + + + + + + +
+ Modes / States / Key Sizes + + Algorithm Implementation and Certificate # +
+ PBKDF (vendor affirmed) +

 Kernel Mode Cryptographic Primitives Library (cng.sys) Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll) in Microsoft Windows 10, Windows 10 Pro, Windows 10 Enterprise, Windows 10 Enterprise LTSB, Windows 10 Mobile, Windows Server 2016 Standard, Windows Server 2016 Datacenter, Windows Storage Server 2016 #2937
(Software Version: 10.0.14393)

+

Microsoft Windows 10, Windows 10 Pro, Windows 10 Enterprise, Windows 10 Enterprise LTSB, Windows 10 Mobile, Windows Server 2016 Standard, Windows Server 2016 Datacenter, Windows Storage Server 2016 #2936
(Software Version: 10.0.14393)

+

Code Integrity (ci.dll) in Microsoft Windows 10, Windows 10 Pro, Windows 10 Enterprise, Windows 10 Enterprise LTSB, Windows 10 Mobile, Windows Server 2016 Standard, Windows Server 2016 Datacenter, Windows Storage Server 2016 #2935
(Software Version: 10.0.14393)

+

Boot Manager in Microsoft Windows 10, Windows 10 Pro, Windows 10 Enterprise, Windows 10 Enterprise LTSB, Windows 10 Mobile, Windows Server 2016 Standard, Windows Server 2016 Datacenter, Windows Storage Server 2016 #2931
(Software Version: 10.0.14393)

+
+ PBKDF (vendor affirmed) +

Kernel Mode Cryptographic Primitives Library (cng.sys) in Microsoft Windows 10, Windows 10 Pro, Windows 10 Enterprise, Windows 10 Enterprise LTSB, Windows 10 Mobile, Windows Server 2016 Standard, Windows Server 2016 Datacenter, Windows Storage Server 2016 #2936
(Software Version: 10.0.14393)

+

Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG), vendor-affirmed

+
+ + +#### Component Validation List + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Publication / Component Validated / DescriptionImplementation and Certificate #
    +
  • ECDSA SigGen:
  • +
    • +
    • P-256 SHA: SHA-256
    • +
    • P-384 SHA: SHA-384
    • +
    • P-521 SHA: SHA-512
    • +
  • +
+

Prerequisite: DRBG #489

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #1540

+

Version 6.3.9600

    +
  • RSASP1:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
    • Padding Algorithms: PKCS 1.5
    • +
  • +

Microsoft Surface Hub Virtual TPM Implementations #1519

+

Version 10.0.15063.674

    +
  • RSASP1:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
    • Padding Algorithms: PKCS 1.5
    • +
  • +

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1518

+

Version 10.0.16299

    +
  • RSADP:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
  • +

Microsoft Surface Hub MsBignum Cryptographic Implementations #1517

+

Version 10.0.15063.674

    +
  • RSASP1:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
    • Padding Algorithms: PKCS 1.5
    • +
  • +

Microsoft Surface Hub MsBignum Cryptographic Implementations #1516

+

Version 10.0.15063.674

    +
  • ECDSA SigGen:
  • +
    • +
    • P-256 SHA: SHA-256
    • +
    • P-384 SHA: SHA-384
    • +
    • P-521 SHA: SHA-512
    • +
  • +
+

 Prerequisite: DRBG #1732

Microsoft Surface Hub MsBignum Cryptographic Implementations #1515

+

Version 10.0.15063.674

    +
  • ECDSA SigGen:
  • +
    • +
    • P-256 SHA: SHA-256
    • +
    • P-384 SHA: SHA-384
    • +
    • P-521 SHA: SHA-512
    • +
  • +
+

Prerequisite: DRBG #1732

Microsoft Surface Hub SymCrypt Cryptographic Implementations #1514

+

Version 10.0.15063.674

    +
  • RSADP:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
  • +

Microsoft Surface Hub SymCrypt Cryptographic Implementations #1513

+

Version 10.0.15063.674

    +
  • RSASP1:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
    • Padding Algorithms: PKCS 1.5
    • +
  • +

Microsoft Surface Hub SymCrypt Cryptographic Implementations #1512

+

Version 10.0.15063.674

    +
  • IKEv1:
  • +
    • +
    • Methods: Digital Signature, Pre-shared Key, Public Key Encryption
    • +
    • Pre-shared Key Length: 64-2048
    • +
    • Diffie-Hellman shared secrets:
    • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 2048 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 256 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 384 (bits)
        • +
        • SHA Functions: SHA-384
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, HMAC #3269

+
    +
  • IKEv2:
  • +
    • +
    • Derived Keying Material length: 192-1792
    • +
    • Diffie-Hellman shared secrets:
    • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 2048 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 256 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 384 (bits)
        • +
        • SHA Functions: SHA-384
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4011, HMAC #3269

+
    +
  • TLS:
  • +
    • +
    • Supports TLS 1.0/1.1
    • +
    • Supports TLS 1.2:
    • +
      • +
      • SHA Functions: SHA-256, SHA-384
      • +
    • +
  • +
+

Prerequisite: SHS #4011, HMAC #3269

Microsoft Surface Hub SymCrypt Cryptographic Implementations #1511

+

Version 10.0.15063.674

    +
  • ECDSA SigGen:
  • +
    • +
    • P-256 SHA: SHA-256
    • +
    • P-384 SHA: SHA-384
    • +
    • P-521 SHA: SHA-512
    • +
  • +
+

Prerequisite: DRBG #1731

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1510

+

Version 10.0.15254

    +
  • RSADP:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
  • +

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1509

+

Version 10.0.15254

    +
  • RSASP1:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
    • Padding Algorithms: PKCS 1.5
    • +
  • +

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1508

+

Version 10.0.15254

    +
  • IKEv1:
  • +
    • +
    • Methods: Digital Signature, Pre-shared Key, Public Key Encryption
    • +
    • Pre-shared Key Length: 64-2048
    • +
    • Diffie-Hellman shared secrets:
    • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 2048 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 256 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 384 (bits)
        • +
        • SHA Functions: SHA-384
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4010, HMAC #3268

+
    +
  • IKEv2:
  • +
    • +
    • Derived Keying Material length: 192-1792
    • +
    • Diffie-Hellman shared secrets:
    • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 2048 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 256 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 384 (bits)
        • +
        • SHA Functions: SHA-384
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4010, HMAC #3268

+
    +
  • TLS:
  • +
    • +
    • Supports TLS 1.0/1.1
    • +
    • Supports TLS 1.2:
    • +
      • +
      • SHA Functions: SHA-256, SHA-384
      • +
    • +
  • +
+

Prerequisite: SHS #4010, HMAC #3268

Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1507

+

Version 10.0.15254

    +
  • ECDSA SigGen:
  • +
    • +
    • P-256 SHA: SHA-256
    • +
    • P-384 SHA: SHA-384
    • +
    • P-521 SHA: SHA-512
    • +
  • +
+

Prerequisite: DRBG #1731

Windows 10 Mobile (version 1709) MsBignum Cryptographic Implementations #1506

+

Version 10.0.15254

    +
  • RSADP:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
  • +

Windows 10 Mobile (version 1709) MsBignum Cryptographic Implementations #1505

+

Version 10.0.15254

    +
  • RSASP1:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
    • Padding Algorithms: PKCS 1.5
    • +
  • +

Windows 10 Mobile (version 1709) MsBignum Cryptographic Implementations #1504

+

Version 10.0.15254

    +
  • ECDSA SigGen:
  • +
    • +
    • P-256 SHA: SHA-256
    • +
    • P-384 SHA: SHA-384
    • +
    • P-521 SHA: SHA-512
    • +
  • +
+

Prerequisite: DRBG #1730

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1503

+

Version 10.0.16299

    +
  • RSADP:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
  • +

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1502

+

Version 10.0.16299

    +
  • RSASP1:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
    • Padding Algorithms: PKCS 1.5
    • +
  • +

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1501

+

Version 10.0.16299

    +
  • ECDSA SigGen:
  • +
    • +
    • P-256 SHA: SHA-256
    • +
    • P-384 SHA: SHA-384
    • +
    • P-521 SHA: SHA-512
    • +
  • +
+

Prerequisite: DRBG #1730

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1499

+

Version 10.0.16299

    +
  • RSADP:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
  • +

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1498

+

Version 10.0.16299

+

 

    +
  • RSASP1:
  • +
    • +
    • Modulus Size: 2048 (bits)
    • +
    • Padding Algorithms: PKCS 1.5
    • +
  • +

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1497

+

Version 10.0.16299

    +
  • IKEv1:
  • +
    • +
    • Methods: Digital Signature, Pre-shared Key, Public Key Encryption
    • +
    • Pre-shared Key Length: 64-2048
    • +
    • Diffie-Hellman shared secrets:
    • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 2048 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 256 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 384 (bits)
        • +
        • SHA Functions: SHA-384
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, HMAC #3267

+
    +
  • IKEv2:
  • +
    • +
    • Derived Keying Material length: 192-1792
    • +
    • Diffie-Hellman shared secrets:
    • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 2048 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 256 (bits)
        • +
        • SHA Functions: SHA-256
        • +
      • +
      • Diffie-Hellman shared secret:
      • +
        • +
        • Length: 384 (bits)
        • +
        • SHA Functions: SHA-384
        • +
      • +
    • +
  • +
+

Prerequisite: SHS #4009, HMAC #3267

+
    +
  • TLS:
  • +
    • +
    • Supports TLS 1.0/1.1
    • +
    • Supports TLS 1.2:
    • +
      • +
      • SHA Functions: SHA-256, SHA-384
      • +
    • +
  • +
+

Prerequisite: SHS #4009, HMAC #3267

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1496

+

Version 10.0.16299

FIPS186-4 ECDSA

+

Signature Generation of hash sized messages

+

ECDSA SigGen Component: CURVES( P-256 P-384 P-521 )

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #1284
+Version 10.0. 15063

+

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1279
+Version 10.0. 15063

+

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #922
+Version 10.0.14393

+

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #894
+Version 10.0.14393icrosoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” MsBignum Cryptographic Implementations #666
+Version 10.0.10586

+

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #288
+Version 6.3.9600

FIPS186-4 RSA; PKCS#1 v2.1

+

RSASP1 Signature Primitive

+

RSASP1: (Mod2048: PKCS1.5 PKCSPSS)

Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #1285
+Version 10.0.15063

+

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #1282
+Version 10.0.15063

+

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1280
+Version 10.0.15063

+

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #893
+Version 10.0.14393

+

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #888
+Version 10.0.14393

+

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” MsBignum Cryptographic Implementations #665
+Version 10.0.10586

+

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 MsBignum Cryptographic Implementations #572
+Version  10.0.10240

+

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry MsBignum Cryptographic Implementations #289
+Version 6.3.9600

FIPS186-4 RSA; RSADP

+

RSADP Primitive

+

RSADP: (Mod2048)

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #1283
+Version 10.0.15063

+

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1281
+Version 10.0.15063

+

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #895
+Version 10.0.14393

+

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #887
+Version 10.0.14393

+

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” Cryptography Next Generation (CNG) Implementations #663
+Version 10.0.10586

+

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 Cryptography Next Generation (CNG) Implementations #576
+Version  10.0.10240

SP800-135

+

Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS

Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1496

+

Version 10.0.16299

+

Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1278
+Version 10.0.15063

+

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1140
+Version 7.00.2872

+

Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1139
+Version 8.00.6246

+

Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update BcryptPrimitives and NCryptSSLp #886
+Version 10.0.14393

+

Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” BCryptPrimitives and NCryptSSLp #664
+Version 10.0.10586

+

Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 BCryptPrimitives and NCryptSSLp #575
+Version  10.0.10240

+

Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 BCryptPrimitives and NCryptSSLp #323
+Version 6.3.9600

+ + +## References + +\[[FIPS 140](http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf)\] - FIPS 140-2, Security Requirements for Cryptographic Modules + +\[[FIPS FAQ](http://csrc.nist.gov/groups/stm/cmvp/documents/cmvpfaq.pdf)\] - Cryptographic Module Validation Program (CMVP) FAQ + +\[[SP 800-57](http://csrc.nist.gov/publications/pubssps.html#800-57-part1)\] - Recommendation for Key Management – Part 1: General (Revised) + +\[[SP 800-131A](http://csrc.nist.gov/publications/nistpubs/800-131a/sp800-131a.pdf)\] - Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths + +## Additional Microsoft References + +Enabling FIPS mode - + +Cipher Suites in Schannel - [http://msdn.microsoft.com/en-us/library/aa374757(VS.85).aspx](https://msdn.microsoft.com/en-us/library/aa374757\(vs.85\).aspx) + diff --git a/windows/security/threat-protection/mbsa-removal-and-guidance.md b/windows/security/threat-protection/mbsa-removal-and-guidance.md new file mode 100644 index 0000000000..1c121d6b6a --- /dev/null +++ b/windows/security/threat-protection/mbsa-removal-and-guidance.md @@ -0,0 +1,39 @@ +--- +title: Microsoft Baseline Security Analyzer (MBSA) removal and guidance on alternative solutions +description: This article documents the removal of MBSA and alternative solutions +keywords: MBSA, security, removal +ms.prod: w10 +ms.mktglfcycl: deploy +ms.localizationpriority: medium +ms.author: astoica +author: andreiztm +ms.date: 10/04/2018 +--- + +### What is Microsoft Baseline Security Analyzer and its uses? + +Microsoft Baseline Security Analyzer (MBSA) is used to verify patch compliance. MBSA also performed several other security checks for Windows, IIS, and SQL Server. Unfortunately, the logic behind these additional checks had not been actively maintained since Windows XP and Windows Server 2003. Changes in the products since then rendered many of these security checks obsolete and some of their recommendations counterproductive. + +MBSA was largely used in situations where neither Microsoft Update nor a local WSUS/SCCM server was available, or as a compliance tool to ensure that all security updates were deployed to a managed environment. While MBSA version 2.3 support for Windows Server 2012 R2 and Windows 8.1 was added, it has since been deprecated and no longer developed. MBSA 2.3 is not updated to fully support Windows 10 and Windows Server 2016. + +### The Solution +A script can help you with an alternative to MBSA’s patch-compliance checking: + +- [Using WUA to Scan for Updates Offline](https://docs.microsoft.com/previous-versions/windows/desktop/aa387290(v=vs.85)), which includes a sample .vbs script. +For a PowerShell alternative, see [Using WUA to Scan for Updates Offline with PowerShell](https://gallery.technet.microsoft.com/Using-WUA-to-Scan-for-f7e5e0be). + +For example: + +[![VBS script](images/vbs-example.png)](https://docs.microsoft.com/previous-versions/windows/desktop/aa387290(v=vs.85)) +[![PowerShell script](images/powershell-example.png)](https://gallery.technet.microsoft.com/Using-WUA-to-Scan-for-f7e5e0be) + +The preceding scripts leverage the [WSUS offline scan file](https://support.microsoft.com/help/927745/detailed-information-for-developers-who-use-the-windows-update-offline) (wsusscn2.cab) to perform a scan and get the same information on missing updates as MBSA supplied. MBSA also relied on the wsusscn2.cab to determine which updates were missing from a given system without connecting to any online service or server. The wsusscn2.cab file is still available and there are currently no plans to remove or replace it. +The wsusscn2.cab file contains the metadata of only security updates, update rollups and service packs available from Microsoft Update; it does not contain any information on non-security updates, tools or drivers. + +### More Information + +For security compliance and for desktop/server hardening, we recommend the Microsoft Security Baselines and the Security Compliance Toolkit. + +- [Windows security baselines](windows-security-baselines.md) +- [Download Microsoft Security Compliance Toolkit 1.0 ](https://www.microsoft.com/download/details.aspx?id=55319) +- [Microsoft Security Guidance blog](https://blogs.technet.microsoft.com/secguide/) diff --git a/windows/security/threat-protection/windows-defender-atp/threat-analytics-dashboard-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/threat-analytics-dashboard-windows-defender-advanced-threat-protection.md index affe0ea030..4320d8ddca 100644 --- a/windows/security/threat-protection/windows-defender-atp/threat-analytics-dashboard-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/threat-analytics-dashboard-windows-defender-advanced-threat-protection.md @@ -45,7 +45,7 @@ To access Threat analytics, from the navigation pane select **Dashboards** > **T Click a section of each chart to get a list of the machines in the corresponding mitigation status. ## Related topics -- [Threat analtyics](threat-analytics-windows-defender-advanced-threat-protection.md) +- [Threat analytics](threat-analytics.md) - [Overview of Secure Score in Windows Defender Security Center](overview-secure-score-windows-defender-advanced-threat-protection.md) - [Configure the security controls in Secure score](secure-score-dashboard-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-platform-common-criteria.md b/windows/security/threat-protection/windows-platform-common-criteria.md new file mode 100644 index 0000000000..86b6688059 --- /dev/null +++ b/windows/security/threat-protection/windows-platform-common-criteria.md @@ -0,0 +1,165 @@ +--- +title: Windows Platform Common Criteria Certification +description: This topic details how Microsoft supports the Common Criteria certification program. +ms.prod: w10 +ms.localizationpriority: medium +ms.author: daniha +author: danihalfin +ms.date: 04/03/2018 +--- + +# Windows Platform Common Criteria Certification + +Microsoft is committed to optimizing the security of its products and services. As part of that commitment, Microsoft supports the Common Criteria certification program, continues to ensure that products incorporate the features and functions required by relevant Common Criteria protection profiles, and completes Common Criteria certifications of Microsoft Windows products. + +## Common Criteria Security Targets + +### Information for Systems Integrators and Accreditors + +The Security Target describes security functionality and assurance measures used to evaluate Windows. + + - [Microsoft Window 10 (Creators Update)](http://download.microsoft.com/download/e/8/b/e8b8c42a-a0b6-4ba1-9bdc-e704e8289697/windows%2010%20version%201703%20gp%20os%20security%20target%20-%20public%20\(january%2016,%202018\)\(final\)\(clean\).pdf) + - [Microsoft Windows Server 2016, Microsoft Windows Server 2012 R2, and Microsoft Windows 10 Hyper-V](http://download.microsoft.com/download/1/c/3/1c3b5ab0-e064-4350-a31f-48312180d9b5/st_vid10823-st.pdf) + - [Microsoft Windows 10 (Anniversary Update) and Windows 10 Mobile (Anniversary Update)](http://download.microsoft.com/download/1/5/e/15eee6d3-f2a8-4441-8cb1-ce8c2ab91c24/windows%2010%20anniversary%20update%20mdf%20security%20target%20-%20public%20\(april%203%202017\).docx) + - [Microsoft Windows 10 (Anniversary Update) and Windows Server 2016](http://download.microsoft.com/download/f/8/c/f8c1c2a4-719c-48ae-942f-9fd3ce5b238f/windows%2010%20au%20and%20server%202016%20gp%20os%20security%20target%20-%20public%20\(december%202%202016\)%20\(clean\).docx) + - [Windows 10 (Anniversary Update) and Windows Server 2016 IPsec VPN Client](http://download.microsoft.com/download/b/f/5/bf59e430-e57b-462d-8dca-8ac3c93cfcff/windows%2010%20anniversary%20update%20ipsec%20vpn%20client%20security%20target%20-%20public%20\(december%2029%202016\)%20\(clean\).docx) + - [Microsoft Windows 10 IPsec VPN Client](http://download.microsoft.com/download/3/7/2/372beb03-b1ed-4bb6-9b9b-b8f43afc570d/st_vid10746-st.pdf) + - [Microsoft Windows 10 November 2015 Update with Surface Book](http://download.microsoft.com/download/a/c/2/ac2a6ed8-4d2f-4f48-a9bf-f059d6c9af38/windows%2010%20mdf3%20security%20target%20-%20public%20\(june%2022%202016\)\(final\).docx) + - [Microsoft Windows 10 Mobile with Lumia 950, 950 XL, 550, 635, and Windows 10 with Surface Pro 4](https://www.niap-ccevs.org/st/st_vid10677-st.pdf) + - [Windows 10 and Windows Server 2012 R2](http://www.commoncriteriaportal.org/files/epfiles/st_windows10.pdf) + - [Windows 10](https://www.niap-ccevs.org/st/st_vid10677-st.pdf) + - [Windows 8.1 with Surface 3 and Windows Phone 8.1 with Lumia 635 and Lumia 830](https://www.niap-ccevs.org/st/st_vid10635-st.pdf) + - [Microsoft Surface Pro 3 and Windows 8.1](https://www.niap-ccevs.org/st/st_vid10632-st.pdf) + - [Windows 8.1 and Windows Phone 8.1](https://www.niap-ccevs.org/st/st_vid10592-st.pdf) + - [Windows 8 and Windows Server 2012](https://www.niap-ccevs.org/st/st_vid10520-st.pdf) + - [Windows 8 and Windows RT](https://www.niap-ccevs.org/st/st_vid10620-st.pdf) + - [Windows 8 and Windows Server 2012 BitLocker](http://www.commoncriteriaportal.org/files/epfiles/st_vid10540-st.pdf) + - [Windows 8, Windows RT, and Windows Server 2012 IPsec VPN Client](http://www.commoncriteriaportal.org/files/epfiles/st_vid10529-st.pdf) + - [Windows 7 and Windows Server 2008 R2](http://www.commoncriteriaportal.org/files/epfiles/st_vid10390-st.pdf) + - [Microsoft Windows Server 2008 R2 Hyper-V Role](http://www.microsoft.com/download/en/details.aspx?id=29305) + - [Windows Vista and Windows Server 2008 at EAL4+](http://www.commoncriteriaportal.org/files/epfiles/st_vid10291-st.pdf) + - [Microsoft Windows Server 2008 Hyper-V Role](http://www.commoncriteriaportal.org/files/epfiles/0570b_pdf.pdf) + - [Windows Vista and Windows Server 2008 at EAL1](http://www.commoncriteriaportal.org/files/epfiles/efs-t005_msvista_msserver2008_eal1_st_v1.0.pdf) + - [Windows Server 2003 SP2 including R2, x64, and IA64; Windows XP Professional SP2 and x64 SP2; and Windows XP Embedded SP2](http://www.commoncriteriaportal.org/files/epfiles/st_vid10184-st.pdf) + - [Windows Server 2003 Certificate Server](http://www.commoncriteriaportal.org/files/epfiles/st_vid9507-st.pdf) + - [Windows Rights Management Services (RMS) 1.0 SP2](http://www.commoncriteriaportal.org/files/epfiles/st_vid10224-st.pdf) + +## Common Criteria Deployment and Administration + +### Information for IT Administrators + +These documents describe how to configure Windows to replicate the configuration used during the Common Criteria evaluation. + +**Windows 10, Windows 10 Mobile, Windows Server 2016, Windows Server 2012 R2** + + - [Microsoft Window 10 (Creators Update)](http://download.microsoft.com/download/e/9/7/e97f0c7f-e741-4657-8f79-2c0a7ca928e3/windows%2010%20cu%20gp%20os%20operational%20guidance%20\(jan%208%202017%20-%20public\).pdf) + - [Microsoft Windows Server 2016, Microsoft Windows Server 2012 R2, and Microsoft Windows 10 Hyper-V](http://download.microsoft.com/download/d/c/4/dc40b5c8-49c2-4587-8a04-ab3b81eb6fc4/st_vid10823-agd.pdf) + - [Microsoft Windows 10 (Anniversary Update) and Windows 10 Mobile (Anniversary Update)](http://download.microsoft.com/download/4/c/1/4c1f4ea4-2d66-4232-a0f5-925b2bc763bc/windows%2010%20au%20operational%20guidance%20\(16%20mar%202017\)\(clean\).docx) + - [Microsoft Windows 10 (Anniversary Update) and Windows Server 2016](http://download.microsoft.com/download/b/5/2/b52e9081-05c6-4895-91a3-732bfa0eb4da/windows%2010%20au%20and%20server%202016%20gp%20os%20operational%20guidance%20\(final\).docx) + - [Windows 10 (Anniversary Update) and Windows Server 2016 IPsec VPN Client Operational Guidance](http://download.microsoft.com/download/2/c/c/2cc8f929-233e-4a40-b673-57b449680984/windows%2010%20au%20and%20server%202016%20ipsec%20vpn%20client%20operational%20guidance%20\(21%20dec%202016\)%20\(public\).docx) + - [Microsoft Windows 10 IPsec VPN Client](http://download.microsoft.com/download/3/3/f/33fa01dd-b380-46e1-833f-fd85854b4022/st_vid10746-agd.pdf) + - [Microsoft Windows 10 November 2015 Update with Surface Book Administrative Guide](http://download.microsoft.com/download/3/2/c/32c6fa02-b194-478f-a0f6-0215b47d0f40/windows%2010%20mdf3%20mobile%20device%20pp%20operational%20guidance%20\(may%2027,%202016\)\(public\).docx) + - [Microsoft Windows 10 Mobile and Windows 10 Administrative Guide](http://download.microsoft.com/download/2/d/c/2dce3435-9328-48e2-9813-c2559a8d39fa/microsoft%20windows%2010%20and%20windows%2010%20mobile%20guidance.pdf) + - [Windows 10 and Windows Server 2012 R2 Administrative Guide](http://download.microsoft.com/download/0/f/d/0fd33c9a-98ac-499e-882f-274f80f3d4f0/microsoft%20windows%2010%20and%20server%202012%20r2%20gp%20os%20guidance.pdf) + - [Windows 10 Common Criteria Operational Guidance](http://download.microsoft.com/download/d/6/f/d6fb4cec-f0f2-4d00-ab2e-63bde3713f44/windows%2010%20mobile%20device%20operational%20guidance.pdf) + +**Windows 8.1 and Windows Phone 8.1** + + - [Microsoft Surface Pro 3 Common Criteria Mobile Operational Guidance](http://download.microsoft.com/download/b/e/3/be365594-daa5-4af3-a6b5-9533d61eae32/surface%20pro%203%20mobile%20operational%20guidance.docx) + - [Windows 8.1 and Windows Phone 8.1 CC Supplemental Admin Guide](http://download.microsoft.com/download/b/0/e/b0e30225-5017-4241-ac0a-6c40bc8e6714/mobile%20operational%20guidance.docx) + +**Windows 8, Windows RT, and Windows Server 2012** + + - [Windows 8 and Windows Server 2012](http://download.microsoft.com/download/6/0/b/60b27ded-705a-4751-8e9f-642e635c3cf3/microsoft%20windows%208%20windows%20server%202012%20common%20criteria%20supplemental%20admin%20guidance.docx) + - [Windows 8 and Windows RT](http://download.microsoft.com/download/8/6/e/86e8c001-8556-4949-90cf-f5beac918026/microsoft%20windows%208%20microsoft%20windows%20rt%20common%20criteria%20supplemental%20admin.docx) + - [Windows 8 and Windows Server 2012 BitLocker](http://download.microsoft.com/download/0/8/4/08468080-540b-4326-91bf-f2a33b7e1764/administrative%20guidance%20for%20software%20full%20disk%20encryption%20clients.pdf) + - [Windows 8, Windows RT, and Windows Server 2012 IPsec VPN Client](http://download.microsoft.com/download/a/9/f/a9fd7e2d-023b-4925-a62f-58a7f1a6bd47/microsoft%20windows%208%20windows%20server%202012%20supplemental%20admin%20guidance%20ipsec%20vpn%20client.docx) + +**Windows 7 and Windows Server 2008 R2** + + - [Windows 7 and Windows Server 2008 R2 Supplemental CC Guide](https://www.microsoft.com/downloads/en/details.aspx?familyid=ee05b6d0-9939-4765-9217-63083bb94a00) + - [Windows Server 2008 R2 Hyper-V Common Criteria Configuration Guide](http://www.microsoft.com/download/en/details.aspx?id=29308) + +**Windows Vista and Windows Server 2008** + + - [Windows Vista and Windows Server 2008 Supplemental CC Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=06166288-24c4-4c42-9daa-2b2473ddf567) + - [Windows Server 2008 Hyper-V Role Common Criteria Administrator Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=cb19538d-9e13-4ab6-af38-8f48abfdad08) + +**Windows Server 2003 SP2 including R2, x64, and Itanium** + + - [Windows Server 2003 SP2 R2 Common Criteria Administrator Guide 3.0](http://www.microsoft.com/downloads/details.aspx?familyid=39598841-e693-4891-9234-cfd1550f3949) + - [Windows Server 2003 SP2 R2 Common Criteria Configuration Guide 3.0](http://www.microsoft.com/downloads/details.aspx?familyid=4f7b6a93-0307-480f-a5af-a20268cbd7cc) + +**Windows Server 2003 SP1(x86), x64, and IA64** + + - [Windows Server 2003 with x64 Hardware Administrator's Guide](http://www.microsoft.com/downloads/details.aspx?familyid=8a26829f-c177-4b79-913a-4135fb7b96ef) + - [Windows Server 2003 with x64 Hardware Configuration Guide](http://www.microsoft.com/downloads/details.aspx?familyid=3f9ecd0a-74dd-4d23-a4e5-d7b63fed70e8) + +**Windows Server 2003 SP1** + + - [Windows Server 2003 Administrator's Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=75736009-59e9-4a71-879e-cf581817b8cc) + - [Windows Server 2003 Configuration Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=a0ad1856-beb7-4285-b47c-381e8a210c38) + +**Windows XP Professional SP2 (x86) and x64 Edition** + + - [Windows XP Common Criteria Administrator Guide 3.0](http://www.microsoft.com/downloads/details.aspx?familyid=9a7f0b16-72ce-4675-aec8-58785c4e37ee) + - [Windows XP Common Criteria Configuration Guide 3.0](http://www.microsoft.com/downloads/details.aspx?familyid=165da57d-f066-4ddf-9462-cbecfcd68694) + - [Windows XP Common Criteria User Guide 3.0](http://www.microsoft.com/downloads/details.aspx?familyid=7c1a4761-9b9e-429c-84eb-cd7b034c5779) + - [Windows XP Professional with x64 Hardware Administrator's Guide](http://www.microsoft.com/downloads/details.aspx?familyid=346f041e-d641-4af7-bdea-c5a3246d0431) + - [Windows XP Professional with x64 Hardware Configuration Guide](http://www.microsoft.com/downloads/details.aspx?familyid=a7075319-cc3d-4420-a00b-8c9a7068ad54) + - [Windows XP Professional with x64 Hardware User’s Guide](http://www.microsoft.com/downloads/details.aspx?familyid=26c49cf5-6159-4197-97ce-bf1fdfc54569) + +**Windows XP Professional SP2, and XP Embedded SP2** + + - [Windows XP Professional Administrator's Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=9bcac470-a0b3-4d34-a561-fa8308c0ff60) + - [Windows XP Professional Configuration Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=9f04915e-571a-422d-8ffa-5797051e81de) + - [Windows XP Professional User's Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=d39d0028-7093-495c-80da-2b5b29a54bd8) + +**Windows Server 2003 Certificate Server** + + - [Windows Server 2003 Certificate Server Administrator's Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=445093d8-45e2-4cf6-884c-8802c1e6cb2d) + - [Windows Server 2003 Certificate Server Configuration Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=46abc8b5-11be-4e3d-85c2-63226c3688d2) + - [Windows Server 2003 Certificate Server User's Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=74f66d84-2654-48d0-b9b5-b383d383425e) + +## Common Criteria Evaluation Technical Reports and Certification / Validation Reports + +### Information for Systems Integrators and Accreditors + +An Evaluation Technical Report (ETR) is a report submitted to the Common Criteria certification authority for how Windows complies with the claims made in the Security Target. A Certification / Validation Report provides the results of the evaluation by the validation team. + + - [Microsoft Window 10 (Creators Update)](http://download.microsoft.com/download/3/2/c/32cdf627-dd23-4266-90ff-2f9685fd15c0/2017-49%20inf-2218%20cr.pdf) + - [Microsoft Windows Server 2016, Microsoft Windows Server 2012 R2, and Microsoft Windows 10 Hyper-V](http://download.microsoft.com/download/a/3/3/a336f881-4ac9-4c79-8202-95289f86bb7a/st_vid10823-vr.pdf) + - [Microsoft Windows 10 (Anniversary Update) and Windows 10 Mobile (Anniversary Update)](http://download.microsoft.com/download/f/2/f/f2f7176e-34f4-4ab0-993c-6606d207bb3c/st_vid10752-vr.pdf) + - [Microsoft Windows 10 (Anniversary Update) and Windows Server 2016](http://download.microsoft.com/download/5/4/8/548cc06e-c671-4502-bebf-20d38e49b731/2016-36-inf-1779.pdf) + - [Windows 10 (Anniversary Update) and Windows Server 2016 IPsec VPN Client](http://download.microsoft.com/download/2/0/a/20a8e686-3cd9-43c4-a22a-54b552a9788a/st_vid10753-vr.pdf) + - [Microsoft Windows 10 IPsec VPN Client](http://download.microsoft.com/download/9/b/6/9b633763-6078-48aa-b9ba-960da2172a11/st_vid10746-vr.pdf) + - [Microsoft Windows 10 November 2015 Update with Surface Book](http://download.microsoft.com/download/d/c/b/dcb7097d-1b9f-4786-bb07-3c169fefb579/st_vid10715-vr.pdf) + - [Microsoft Windows 10 Mobile with Lumia 950, 950 XL, 550, 635, and Windows 10 with Surface Pro 4](https://www.niap-ccevs.org/st/st_vid10694-vr.pdf) + - [Windows 10 and Windows Server 2012 R2](https://www.commoncriteriaportal.org/files/epfiles/cr_windows10.pdf) + - [Windows 10](https://www.niap-ccevs.org/st/st_vid10677-vr.pdf) + - [Windows 8.1 with Surface 3 and Windows Phone 8.1 with Lumia 635 and Lumia 830](https://www.niap-ccevs.org/st/st_vid10635-vr.pdf) + - [Microsoft Surface Pro 3 and Windows 8.1](https://www.niap-ccevs.org/st/st_vid10632-vr.pdf) + - [Windows 8.1 and Windows Phone 8.1](https://www.niap-ccevs.org/st/st_vid10592-vr.pdf) + - [Windows 8 and Windows Server 2012](https://www.niap-ccevs.org/st/st_vid10520-vr.pdf) + - [Windows 8 and Windows RT](https://www.niap-ccevs.org/st/st_vid10620-vr.pdf) + - [Windows 8 and Windows Server 2012 BitLocker](http://www.commoncriteriaportal.org/files/epfiles/st_vid10540-vr.pdf) + - [Windows 8, Windows RT, and Windows Server 2012 IPsec VPN Client](http://www.commoncriteriaportal.org/files/epfiles/st_vid10529-vr.pdf) + - [Windows 7 and Windows Server 2008 R2 Validation Report](http://www.commoncriteriaportal.org/files/epfiles/st_vid10390-vr.pdf) + - [Windows Vista and Windows Server 2008 Validation Report at EAL4+](http://www.commoncriteriaportal.org/files/epfiles/st_vid10291-vr.pdf) + - [Windows Server 2008 Hyper-V Role Certification Report](http://www.commoncriteriaportal.org/files/epfiles/0570a_pdf.pdf) + - [Windows Vista and Windows Server 2008 Certification Report at EAL1](http://www.commoncriteriaportal.org/files/epfiles/efs-t005_msvista_msserver2008_eal1_cr_v1.0.pdf) + - [Windows XP / Windows Server 2003 with x64 Hardware ETR](http://www.microsoft.com/downloads/details.aspx?familyid=6e8d98f9-25b9-4c85-9bd9-24d91ea3c9ef) + - [Windows XP / Windows Server 2003 with x64 Hardware ETR, Part II](http://www.microsoft.com/downloads/details.aspx?familyid=0c35e7d8-9c56-4686-b902-d5ffb9915658) + - [Windows Server 2003 SP2 including R2, Standard, Enterprise, Datacenter, x64, and Itanium Editions Validation Report](http://www.commoncriteriaportal.org/files/epfiles/20080303_st_vid10184-vr.pdf) + - [Windows XP Professional SP2 and x64 SP2 Validation Report](http://www.commoncriteriaportal.org/files/epfiles/20080303_st_vid10184-vr.pdf) + - [Windows XP Embedded SP2 Validation Report](http://www.commoncriteriaportal.org/files/epfiles/20080303_st_vid10184-vr.pdf) + - [Windows XP and Windows Server 2003 ETR](http://www.microsoft.com/downloads/details.aspx?familyid=63cf2a1e-f578-4bb5-9245-d411f0f64265) + - [Windows XP and Windows Server 2003 Validation Report](http://www.commoncriteriaportal.org/files/epfiles/st_vid9506-vr.pdf) + - [Windows Server 2003 Certificate Server ETR](http://www.microsoft.com/downloads/details.aspx?familyid=a594e77f-dcbb-4787-9d68-e4689e60a314) + - [Windows Server 2003 Certificate Server Validation Report](http://www.commoncriteriaportal.org/files/epfiles/st_vid9507-vr.pdf) + - [Microsoft Windows Rights Management Services (RMS) 1.0 SP2 Validation Report](http://www.commoncriteriaportal.org/files/epfiles/st_vid10224-vr.pdf) + +## Other Common Criteria Related Documents + + - [Identifying Windows XP and Windows Server 2003 Common Criteria Certified Requirements for the NIST Special Publication 800-53](http://download.microsoft.com/download/a/9/6/a96d1dfc-2bd4-408d-8d93-e0ede7529691/xpws03_ccto800-53.doc) + From 4cc084e5ca5d9af37708581104420a6f6d245649 Mon Sep 17 00:00:00 2001 From: Liza Poggemeyer Date: Thu, 25 Oct 2018 20:00:35 +0000 Subject: [PATCH 03/34] Initialize open publishing repository: https://cpubwin.visualstudio.com/DefaultCollection/it-client/_git/it-client of branch live --- .openpublishing.publish.config.json | 16 ++++++++++ windows/eulas/docfx.json | 47 +++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 windows/eulas/docfx.json diff --git a/.openpublishing.publish.config.json b/.openpublishing.publish.config.json index d9934af08a..224abb8ddd 100644 --- a/.openpublishing.publish.config.json +++ b/.openpublishing.publish.config.json @@ -34,6 +34,22 @@ "moniker_groups": [], "version": 0 }, + { + "docset_name": "eula-vsts", + "build_source_folder": "windows/eulas", + "build_output_subfolder": "eula-vsts", + "locale": "en-us", + "monikers": [], + "moniker_ranges": [], + "open_to_public_contributors": false, + "type_mapping": { + "Conceptual": "Content", + "ManagedReference": "Content", + "RestApi": "Content" + }, + "build_entry_point": "docs", + "template_folder": "_themes" + }, { "docset_name": "gdpr", "build_source_folder": "gdpr", diff --git a/windows/eulas/docfx.json b/windows/eulas/docfx.json new file mode 100644 index 0000000000..ff3ab96c92 --- /dev/null +++ b/windows/eulas/docfx.json @@ -0,0 +1,47 @@ +{ + "build": { + "content": [ + { + "files": [ + "**/*.md", + "**/*.yml" + ], + "exclude": [ + "**/obj/**", + "**/includes/**", + "_themes/**", + "_themes.pdf/**", + "README.md", + "LICENSE", + "LICENSE-CODE", + "ThirdPartyNotices" + ] + } + ], + "resource": [ + { + "files": [ + "**/*.png", + "**/*.jpg" + ], + "exclude": [ + "**/obj/**", + "**/includes/**", + "_themes/**", + "_themes.pdf/**" + ] + } + ], + "overwrite": [], + "externalReference": [], + "globalMetadata": { + "breadcrumb_path": "/windows/eulas/breadcrumb/toc.json", + "extendBreadcrumb": true, + "feedback_system": "None" + }, + "fileMetadata": {}, + "template": [], + "dest": "eula-vsts", + "markdownEngineName": "markdig" + } +} \ No newline at end of file From d9a525d22d74cc23115560609393805bbd8a718f Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 5 Nov 2018 11:01:47 -0800 Subject: [PATCH 04/34] update win10 version req --- windows/security/threat-protection/TOC.md | 2 +- ...ard-configure-windows-defender-advanced-threat-protection.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 3145f56988..a328d38a24 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -186,7 +186,7 @@ ### [Configure and manage capabilities](windows-defender-atp/onboard.md) #### [Configure attack surface reduction](windows-defender-atp/configure-attack-surface-reduction.md) ##### [Hardware-based isolation](windows-defender-application-guard/install-wd-app-guard.md) -###### [Confguration settings](windows-defender-application-guard/configure-wd-app-guard.md) +###### [Configuration settings](windows-defender-application-guard/configure-wd-app-guard.md) ##### [Application control](windows-defender-application-control/windows-defender-application-control.md) ##### [Device control](device-guard/introduction-to-device-guard-virtualization-based-security-and-windows-defender-application-control.md) ###### [Memory integrity](windows-defender-exploit-guard/memory-integrity.md) diff --git a/windows/security/threat-protection/windows-defender-atp/onboard-configure-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/onboard-configure-windows-defender-advanced-threat-protection.md index b2004cfea5..5c48e4903e 100644 --- a/windows/security/threat-protection/windows-defender-atp/onboard-configure-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/onboard-configure-windows-defender-advanced-threat-protection.md @@ -42,7 +42,7 @@ For more information, see [Windows 10 Licensing](https://www.microsoft.com/en-us - Windows 7 SP1 Pro - Windows 8.1 Enterprise - Windows 8.1 Pro -- Windows 10 +- Windows 10, version 1607 or later - Windows 10 Enterprise - Windows 10 Education - Windows 10 Pro From 23b75b71fd96b857af51a79bf89d10217b7f6e76 Mon Sep 17 00:00:00 2001 From: jaimeo Date: Mon, 5 Nov 2018 11:04:33 -0800 Subject: [PATCH 05/34] initial import of text and images from blog post --- .../images/UR-driver-issue-detail.png | Bin 0 -> 87943 bytes .../deployment/images/UR-example-feedback.png | Bin 0 -> 126533 bytes windows/deployment/images/UR-monitor-main.png | Bin 0 -> 177680 bytes .../UR-update-progress-failed-detail.png | Bin 0 -> 100226 bytes .../upgrade-readiness-deploy-windows.md | 4 +- .../upgrade-readiness-monitor-deployment.md | 48 ++++++++++++++++++ 6 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 windows/deployment/images/UR-driver-issue-detail.png create mode 100644 windows/deployment/images/UR-example-feedback.png create mode 100644 windows/deployment/images/UR-monitor-main.png create mode 100644 windows/deployment/images/UR-update-progress-failed-detail.png create mode 100644 windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md diff --git a/windows/deployment/images/UR-driver-issue-detail.png b/windows/deployment/images/UR-driver-issue-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..933b2e2346d2422e693d2c852f051c1dfd3eb1b7 GIT binary patch literal 87943 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
~~B#e*Je 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 yM-ljU^ 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 literal 0 HcmV?d00001 diff --git a/windows/deployment/images/UR-example-feedback.png b/windows/deployment/images/UR-example-feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..5a05bb54e154d81650b4cf4b65c940c2a6753979 GIT binary patch literal 126533 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 {{s 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 literal 0 HcmV?d00001 diff --git a/windows/deployment/images/UR-monitor-main.png b/windows/deployment/images/UR-monitor-main.png new file mode 100644 index 0000000000000000000000000000000000000000..83904d3be2de80b1860b56a97e83a7bf1b71921b GIT binary patch literal 177680 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%0Ap^Tk#62*8Tu&%FL3djk>l42A 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

4xmiF(Yo?o233=gm5 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 z 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 literal 0 HcmV?d00001 diff --git a/windows/deployment/upgrade/upgrade-readiness-deploy-windows.md b/windows/deployment/upgrade/upgrade-readiness-deploy-windows.md index b5f0b2b68b..3aabb7b13b 100644 --- a/windows/deployment/upgrade/upgrade-readiness-deploy-windows.md +++ b/windows/deployment/upgrade/upgrade-readiness-deploy-windows.md @@ -1,8 +1,8 @@ --- -title: Upgrade Readiness - Get a list of computers that are upgrade-ready (Windows 10) +title: Upgrade Readiness - Get a list of computers that are upgrade ready (Windows 10) description: Describes how to get a list of computers that are ready to be upgraded in Upgrade Readiness. ms.prod: w10 -author: greg-lindsay +author: jaimeo ms.date: 04/19/2017 --- diff --git a/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md b/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md new file mode 100644 index 0000000000..0f5b9e3730 --- /dev/null +++ b/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md @@ -0,0 +1,48 @@ +--- +title: Monitor deployment with Upgrade Readiness +description: Describes how to use Upgrade Readiness to monitor the deployment after Windows upgrades. +keywords: windows analytics, oms, operations management suite, prerequisites, requirements, upgrades, log analytics, +ms.localizationpriority: medium +ms.prod: w10 +author: jaimeo +ms.author: jaimeo +ms.date: 11/05/2018 +--- + +# Upgrade Readiness - Step 4: Monitor + +Now that you have started deploying an update with Upgrade Readiness, you can use it to monitor important elements. + +![Upgrade Readiness dialog showing "STEP 4: Monitor" and blades for "Update progress," "Driver issues," and "User feedback"](../images/UR-monitor-main.png) + + +## Update progress + +The **Update progress** blade allows you to monitor the progress and status of your deployment. Any device that has attepted to upgrade in the last 30 days displays the **DeploymentStatus**. You'll be able to see the number of computers that have successfully upgraded, failed to upgrade, are stalled, etc. {what does "uninstalled" mean? Should we have some more detailed explication of each of the states and what admin actions are recommended for each?} + + +Selecting this blade allows you to view device-level details about the deployment. For example, select **Failed**, to view the original operating system version, the target operating system version, and the reason the update failed for each of the devices that failed to upgrade. In the case of the device illustrated in the following image, an attempt was made to upgrade from Windows 10, version 1703 to 1709, but the operation timed out.' + +!["Update progress" blade showing detailed information after selecting the "failed" item](../images/UR-update-progress-failed-detail.png) + + +## Driver issues + +The **Driver issues** blade allows you to see Device Manager errors for your upgraded devices. We include data for all compatibility-related device errors, such as "driver not found" and "driver not started". The blade summarizes errors by error type, but you can select a particular error type to see device-level details about which device(s) are failing and where to obtain a driver. + + +For example, by selecting error code **28 - driver not installed**, you would see that the device below is missing the driver for a network controller. Upgrade Readiness also notifies that a suitable driver is available online through Windows Update. If this device is configured to automatically receive updates from Windows Update, this issue would likely resolve itself following the device's next Windows Update scan. If this device does not automatically receive updates from Windows Update, you would need to deliver the driver manually. + +!["Driver issue" blade showing detailed information after selecting a specific driver error](../images/UR-driver-issue-detail.png) + +## User Feedback + +The **User Feedback** blade focuses on gathering subjective feedback from your end users. If a user submits feedback through Feedback Hub app on a device in your workspace, we will make that feedback visible to you in this blade. The Feedback Hub app is built into Windows 10 and can be accessed by typing "Feedback Hub" in the Cortana search bar. + + +We recommend that you encourage your end users to submit any feedback they have through Feedback Hub. Not only will this feedback be sent directly to Microsoft for review, but you'll also be able to see it by using Upgrade Readiness. You should be aware that **feedback submitted through Feedback Hub will be publicly visible**, so it's best to avoid submitting feedback about internal line-of-business applications. + +When viewing user feedback in Upgrade Readiness, you'll be able to see the raw "Title" and "Feedback" text from the user's submission in Feedback Hub, as well as the number of upvotes the submission has received. (Since feedback is publicly visible, the number of upvotes is a global value and not specific to your company.) If a Microsoft engineer has responded to the submission in Feedback Hub, we'll pull in the Microsoft response for you to see as well. + +![Example user feedback item](../images/UR-example-feedback.png) + \ No newline at end of file From 126402c462f01a51c838375e366ec7d4f9a4b796 Mon Sep 17 00:00:00 2001 From: Justin Hall Date: Tue, 6 Nov 2018 13:56:41 -0800 Subject: [PATCH 06/34] edit --- .../protect-enterprise-data-using-wip.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md b/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md index 8ce020a25f..ed41a8ef23 100644 --- a/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md +++ b/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md @@ -8,7 +8,7 @@ ms.mktglfcycl: explore ms.sitesec: library ms.pagetype: security ms.author: justinha -ms.date: 06/18/2018 +ms.date: 11/06/2018 ms.localizationpriority: medium --- @@ -24,6 +24,10 @@ With the increase of employee-owned devices in the enterprise, there’s also an Windows Information Protection (WIP), previously known as enterprise data protection (EDP), helps to protect against this potential data leakage without otherwise interfering with the employee experience. WIP also helps to protect enterprise apps and data against accidental data leak on enterprise-owned devices and personal devices that employees bring to work without requiring changes to your environment or other apps. Finally, another data protection technology, Azure Rights Management also works alongside WIP to extend data protection for data that leaves the device, such as when email attachments are sent from an enterprise aware version of a rights management mail client. +## Video: Protect enterprise data from being accidentally copied to the wrong place + +> [!Video https://www.youtube.com/embed/1s09SrwxccM] + ## Prerequisites You’ll need this software to run WIP in your enterprise: From a94397275a6917bad14c86e207fe0c041d0f29d0 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Tue, 6 Nov 2018 14:11:52 -0800 Subject: [PATCH 07/34] add link to PDF --- ...uirements-windows-defender-advanced-threat-protection.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/minimum-requirements-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/minimum-requirements-windows-defender-advanced-threat-protection.md index db250caeda..97ff492e3b 100644 --- a/windows/security/threat-protection/windows-defender-atp/minimum-requirements-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/minimum-requirements-windows-defender-advanced-threat-protection.md @@ -11,7 +11,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 07/01/2018 +ms.date: 11/06/2018 --- # Minimum requirements for Windows Defender ATP @@ -30,7 +30,9 @@ Windows Defender Advanced Threat Protection requires one of the following Micros - Windows 10 Education E5 - Microsoft 365 E5 (M365 E5) which includes Windows 10 Enterprise E5 -For more information, see [Windows 10 Licensing](https://www.microsoft.com/en-us/Licensing/product-licensing/windows10.aspx#tab=2). +For more information on the array of features in Windows 10 editions, see [Compare Windows 10 editions](https://www.microsoft.com/en-us/windowsforbusiness/compare). + +For a detailed comparison table of Windows 10 commercial edition comparison, see the [comparison PDF](https://wincom.blob.core.windows.net/documents/Windows10_Commercial_Comparison.pdf). ## Related topic From 200b733f9117d10fc0682e1b8703a2f978df257b Mon Sep 17 00:00:00 2001 From: "Andrea Bichsel (Aquent LLC)" Date: Wed, 7 Nov 2018 17:13:23 +0000 Subject: [PATCH 08/34] Lsass rule does honor exclusions. --- .../customize-attack-surface-reduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-exploit-guard/customize-attack-surface-reduction.md b/windows/security/threat-protection/windows-defender-exploit-guard/customize-attack-surface-reduction.md index a948e7db7e..8bbe633287 100644 --- a/windows/security/threat-protection/windows-defender-exploit-guard/customize-attack-surface-reduction.md +++ b/windows/security/threat-protection/windows-defender-exploit-guard/customize-attack-surface-reduction.md @@ -58,7 +58,7 @@ Block JavaScript or VBScript from launching downloaded executable content | [!in Block executable content from email client and webmail | [!include[Check mark no](images/svg/check-no.svg)] | BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550 Block executable files from running unless they meet a prevalence, age, or trusted list criteria | [!include[Check mark yes](images/svg/check-yes.svg)] | 01443614-cd74-433a-b99e-2ecdc07bfc25 Use advanced protection against ransomware | [!include[Check mark yes](images/svg/check-yes.svg)] | c1db55ab-c21a-4637-bb3f-a12568109d35 -Block credential stealing from the Windows local security authority subsystem (lsass.exe) | [!include[Check mark no](images/svg/check-no.svg)] | 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 +Block credential stealing from the Windows local security authority subsystem (lsass.exe) | [!include[Check mark yes](images/svg/check-yes.svg)] | 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 Block process creations originating from PSExec and WMI commands | [!include[Check mark yes](images/svg/check-yes.svg)] | d1e49aac-8f56-4280-b9ba-993a6d77406c Block untrusted and unsigned processes that run from USB | [!include[Check mark yes](images/svg/check-yes.svg)] | b2b3f03d-6a65-4f7b-a9c7-1c7ef74a9ba4 Block Office communication applications from creating child processes | [!include[Check mark yes](images/svg/check-yes.svg)] | 26190899-1602-49e8-8b27-eb1d0a1ce869 From f66ed3b32c9ae5d1792e3dd36571709f540829df Mon Sep 17 00:00:00 2001 From: jaimeo Date: Wed, 7 Nov 2018 09:59:20 -0800 Subject: [PATCH 09/34] fixed some typos and yooked up TOC --- windows/deployment/TOC.md | 1 + .../upgrade-readiness-monitor-deployment.md | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/windows/deployment/TOC.md b/windows/deployment/TOC.md index ce9e1629c5..aa375d690f 100644 --- a/windows/deployment/TOC.md +++ b/windows/deployment/TOC.md @@ -260,6 +260,7 @@ ##### [Step 1: Identify apps](upgrade/upgrade-readiness-identify-apps.md) ##### [Step 2: Resolve issues](upgrade/upgrade-readiness-resolve-issues.md) ##### [Step 3: Deploy Windows](upgrade/upgrade-readiness-deploy-windows.md) +##### [Step 4: Monitor deployment](upgrade/upgrade-readiness-monitor-deployment.md) ##### [Additional insights](upgrade/upgrade-readiness-additional-insights.md) ##### [Targeting a new operating system version](upgrade/upgrade-readiness-target-new-OS.md) ### [Monitor Windows Updates with Update Compliance](update/update-compliance-monitor.md) diff --git a/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md b/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md index 0f5b9e3730..be3d2aee32 100644 --- a/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md +++ b/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md @@ -6,7 +6,7 @@ ms.localizationpriority: medium ms.prod: w10 author: jaimeo ms.author: jaimeo -ms.date: 11/05/2018 +ms.date: 11/07/2018 --- # Upgrade Readiness - Step 4: Monitor @@ -18,26 +18,26 @@ Now that you have started deploying an update with Upgrade Readiness, you can us ## Update progress -The **Update progress** blade allows you to monitor the progress and status of your deployment. Any device that has attepted to upgrade in the last 30 days displays the **DeploymentStatus**. You'll be able to see the number of computers that have successfully upgraded, failed to upgrade, are stalled, etc. {what does "uninstalled" mean? Should we have some more detailed explication of each of the states and what admin actions are recommended for each?} +The **Update progress** blade allows you to monitor the progress and status of your deployment. Any device that has attepted to upgrade in the last 30 days displays the **DeploymentStatus** attribute. You'll be able to see the number of computers that have successfully upgraded, failed to upgrade, are stalled, etc. -Selecting this blade allows you to view device-level details about the deployment. For example, select **Failed**, to view the original operating system version, the target operating system version, and the reason the update failed for each of the devices that failed to upgrade. In the case of the device illustrated in the following image, an attempt was made to upgrade from Windows 10, version 1703 to 1709, but the operation timed out.' +Selecting this blade allows you to view device-level details about the deployment. For example, select **Failed** to view the original operating system version, the target operating system version, and the reason the update failed for each of the devices that failed to upgrade. In the case of the device illustrated in the following image, an attempt was made to upgrade from Windows 10, version 1703 to 1709, but the operation timed out. !["Update progress" blade showing detailed information after selecting the "failed" item](../images/UR-update-progress-failed-detail.png) ## Driver issues -The **Driver issues** blade allows you to see Device Manager errors for your upgraded devices. We include data for all compatibility-related device errors, such as "driver not found" and "driver not started". The blade summarizes errors by error type, but you can select a particular error type to see device-level details about which device(s) are failing and where to obtain a driver. +The **Driver issues** blade allows you to see Device Manager errors for your upgraded devices. We include data for all compatibility-related device errors, such as "driver not found" and "driver not started." The blade summarizes errors by error type, but you can select a particular error type to see device-level details about which device(s) are failing and where to obtain a driver. -For example, by selecting error code **28 - driver not installed**, you would see that the device below is missing the driver for a network controller. Upgrade Readiness also notifies that a suitable driver is available online through Windows Update. If this device is configured to automatically receive updates from Windows Update, this issue would likely resolve itself following the device's next Windows Update scan. If this device does not automatically receive updates from Windows Update, you would need to deliver the driver manually. +For example, by selecting error code **28 - driver not installed**, you would see that the device in the following image is missing the driver for a network controller. Upgrade Readiness also notifies that a suitable driver is available online through Windows Update. If this device is configured to automatically receive updates from Windows Update, this issue would likely resolve itself following the device's next Windows Update scan. If this device does not automatically receive updates from Windows Update, you would need to deliver the driver manually. !["Driver issue" blade showing detailed information after selecting a specific driver error](../images/UR-driver-issue-detail.png) -## User Feedback +## User feedback -The **User Feedback** blade focuses on gathering subjective feedback from your end users. If a user submits feedback through Feedback Hub app on a device in your workspace, we will make that feedback visible to you in this blade. The Feedback Hub app is built into Windows 10 and can be accessed by typing "Feedback Hub" in the Cortana search bar. +The **User Feedback** blade focuses on gathering subjective feedback from your end users. If a user submits feedback through the Feedback Hub app on a device in your workspace, we will make that feedback visible to you in this blade. The Feedback Hub app is built into Windows 10 and can be accessed by typing "Feedback Hub" in the Cortana search bar. We recommend that you encourage your end users to submit any feedback they have through Feedback Hub. Not only will this feedback be sent directly to Microsoft for review, but you'll also be able to see it by using Upgrade Readiness. You should be aware that **feedback submitted through Feedback Hub will be publicly visible**, so it's best to avoid submitting feedback about internal line-of-business applications. From 3f6444634a5f7df460d3f5603ed5d6d76839d3d7 Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Wed, 7 Nov 2018 11:25:05 -0800 Subject: [PATCH 10/34] added note --- .../intelligence/top-scoring-industry-antivirus-tests.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md index 43bef2e93e..34ca3bda7a 100644 --- a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md +++ b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md @@ -18,16 +18,14 @@ ms.date: 09/05/2018 We want to be transparent and have gathered top industry reports that demonstrate our enterprise antivirus capabilities. Note that these tests only provide results for antivirus and do not test for additional security protections. In the real world, millions of devices are protected from cyberattacks every day, sometimes [milliseconds after a campaign starts](https://cloudblogs.microsoft.com/microsoftsecure/2018/03/07/behavior-monitoring-combined-with-machine-learning-spoils-a-massive-dofoil-coin-mining-campaign?ocid=cx-docs-avreports). Windows Defender Antivirus is part of the [next generation](https://www.youtube.com/watch?v=Xy3MOxkX_o4) Windows Defender Advanced Threat Protection ([Windows Defender ATP](https://www.microsoft.com/WindowsForBusiness/windows-atp?ocid=cx-docs-avreports)) security stack which addresses the latest and most sophisticated threats today. In many cases, customers might not even know they were protected. That's because Windows Defender Antivirus detects and stops malware at first sight by using [machine learning](https://cloudblogs.microsoft.com/microsoftsecure/2018/06/07/machine-learning-vs-social-engineering?ocid=cx-docs-avreports), [artificial intelligence](https://cloudblogs.microsoft.com/microsoftsecure/2018/02/14/how-artificial-intelligence-stopped-an-emotet-outbreak?ocid=cx-docs-avreports), behavioral analysis, and other advanced technologies. - -> [!TIP] -> Learn why [Windows Defender Antivirus is the most deployed in the enterprise](https://cloudblogs.microsoft.com/microsoftsecure/2018/03/22/why-windows-defender-antivirus-is-the-most-deployed-in-the-enterprise?ocid=cx-docs-avreports). -



![AV-TEST logo](./images/av-test-logo.png) ## AV-TEST: Perfect protection score of 6.0/6.0 in the latest test The AV-TEST Product Review and Certification Report tests on three categories: protection, performance, and usability. The scores listed below are for the Protection category which has two scores: Real-World Testing and the AV-TEST reference set (known as "Prevalent Malware"). +> [!NOTE] +> [Download our analysis of the latest results](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) ### July-August 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/august-2018/microsoft-windows-defender-antivirus-4.12--4.18-183212/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) **Latest** From 0cb68bbfe0e8808c561315e1f2aa164dfb8c8e2c Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Wed, 7 Nov 2018 12:00:39 -0800 Subject: [PATCH 11/34] updated text --- .../intelligence/top-scoring-industry-antivirus-tests.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md index 34ca3bda7a..ed1a13c200 100644 --- a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md +++ b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md @@ -25,9 +25,9 @@ In the real world, millions of devices are protected from cyberattacks every day The AV-TEST Product Review and Certification Report tests on three categories: protection, performance, and usability. The scores listed below are for the Protection category which has two scores: Real-World Testing and the AV-TEST reference set (known as "Prevalent Malware"). > [!NOTE] -> [Download our analysis of the latest results](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) +> [Download our latest analysis: Examining the AV-TEST July-August results](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) -### July-August 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/august-2018/microsoft-windows-defender-antivirus-4.12--4.18-183212/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) **Latest** +### July-August 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/august-2018/microsoft-windows-defender-antivirus-4.12--4.18-183212/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) Windows Defender Antivirus achieved an overall Protection score of 6.0/6.0, detecting 100% of 20,022 malware samples. With the latest results, Windows Defender Antivirus has achieved 100% on 14 of the 16 most recent antivirus tests (combined "Real-World" and "Prevalent malware"). From de2ca4f5e542e167cf943a8f1329afa53f4259bb Mon Sep 17 00:00:00 2001 From: Brian Lich Date: Wed, 7 Nov 2018 21:36:06 +0000 Subject: [PATCH 12/34] Additional diagnostic data events --- ...ndows-diagnostic-events-and-fields-1703.md | 497 +++++- ...ndows-diagnostic-events-and-fields-1709.md | 1092 +++++++++--- ...ndows-diagnostic-events-and-fields-1803.md | 1331 ++++++++++++++- ...ndows-diagnostic-events-and-fields-1809.md | 1504 ++++++++++++++++- 4 files changed, 4075 insertions(+), 349 deletions(-) diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md index dce0c91085..ada643a31a 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md @@ -9,7 +9,7 @@ ms.pagetype: security localizationpriority: high author: brianlic-msft ms.author: brianlic -ms.date: 09/10/2018 +ms.date: 11/07/2018 --- @@ -28,6 +28,7 @@ Use this article to learn about diagnostic events, grouped by event area, and th You can learn more about Windows functional and diagnostic data through these articles: + - [Windows 10, version 1809 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1809.md) - [Windows 10, version 1803 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1803.md) - [Windows 10, version 1709 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1709.md) @@ -60,15 +61,15 @@ The following fields are available: - **DecisionMatchingInfoPostUpgrade_RS3** The total DecisionMatchingInfoPostUpgrade objects targeting the next release of Windows on this device. - **DecisionMediaCenter_RS3** The total DecisionMediaCenter objects targeting the next release of Windows on this device. - **DecisionSystemBios_RS3** The total DecisionSystemBios objects targeting the next release of Windows on this device. -- **InventoryLanguagePack** The count of DecisionApplicationFile objects present on this machine targeting the next release of Windows -- **InventorySystemBios** The count of DecisionDevicePnp objects present on this machine targeting the next release of Windows -- **PCFP** The count of DecisionDriverPackage objects present on this machine targeting the next release of Windows -- **SystemProcessorCompareExchange** The count of DecisionMatchingInfoBlock objects present on this machine targeting the next release of Windows -- **SystemProcessorNx** The count of DataSourceMatchingInfoPostUpgrade objects present on this machine targeting the next release of Windows -- **SystemProcessorSse2** The count of DecisionMatchingInfoPostUpgrade objects present on this machine targeting the next release of Windows -- **SystemWim** The count of DecisionMediaCenter objects present on this machine targeting the next release of Windows -- **SystemWindowsActivationStatus** The count of DecisionSystemBios objects present on this machine targeting the next release of Windows -- **SystemWlan** The count of InventoryApplicationFile objects present on this machine. +- **InventoryLanguagePack** The total InventoryLanguagePack objects that are present on this device. +- **InventorySystemBios** The total InventorySystemBios objects that are present on this device. +- **PCFP** An ID for the system that is calculated by hashing hardware identifiers. +- **SystemProcessorCompareExchange** The total SystemProcessorCompareExchange objects that are present on this device. +- **SystemProcessorNx** The total SystemProcessorNx objects that are present on this device. +- **SystemProcessorSse2** The total SystemProcessorSse2 objects that are present on this device. +- **SystemWim** The total SystemWim objects that are present on this device +- **SystemWindowsActivationStatus** The total SystemWindowsActivationStatus objects that are present on this device. +- **SystemWlan** The total SystemWlan objects that are present on this device. - **Wmdrm_RS3** The total Wmdrm objects targeting the next release of Windows on this device. @@ -334,7 +335,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove -This event indicates that the DecisionApplicationFile object is no longer present. +This event indicates Indicates that the DecisionApplicationFile object is no longer present. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -670,7 +671,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. +This event indicates indicates that a new set of InventoryApplicationFileAdd events will be sent. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -1472,6 +1473,12 @@ The following fields are available: - **SocketCount** Number of physical CPU sockets of the machine. +### Census.Security + +Provides information on several important data points about security settings. + + + ### Census.Speech This event is used to gather basic speech settings on the device. @@ -2058,6 +2065,23 @@ The following fields are available: - **devinv.dll** The file version of the Device inventory component. +### Microsoft.Windows.Inventory.Core.FileSigningInfoAdd + +This event enumerates the signatures of files, either driver packages or application executables. For driver packages, this data is collected on demand via Telecommand to limit it only to unrecognized driver packages, saving time for the client and space on the server. For applications, this data is collected for up to 10 random executables on a system. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **CatalogSigners** Signers from catalog. Each signer starts with Chain. +- **DriverPackageStrongName** Optional. Available only if FileSigningInfo is collected on a driver package. +- **EmbeddedSigners** Embedded signers. Each signer starts with Chain. +- **FileName** The file name of the file whose signatures are listed. +- **FileType** Either exe or sys, depending on if a driver package or application executable. +- **InventoryVersion** The version of the inventory file generating the events. +- **Thumbprint** Comma separated hash of the leaf node of each signer. Semicolon is used to separate CatalogSigners from EmbeddedSigners. There will always be a trailing comma. + + ### Microsoft.Windows.Inventory.Core.InventoryApplicationAdd This event sends basic metadata about an application on the system to help keep Windows up to date. @@ -2251,7 +2275,7 @@ The following fields are available: - **Enumerator** The bus that enumerated the device - **HWID** A JSON array that provides the value and order of the HWID tree for the device. See [HWID](#hwid). - **Inf** The INF file name. -- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/library/windows/hardware/ff543130.aspx +- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/en-us/library/windows/hardware/ff543130.aspx - **InventoryVersion** The version of the inventory file generating the events. - **LowerClassFilters** Lower filter class drivers IDs installed for the device. - **LowerFilters** Lower filter drivers IDs installed for the device @@ -2379,6 +2403,90 @@ The following fields are available: - **InventoryVersion** The version of the inventory file generating the events. +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeAddInAdd + +Invalid variant - Provides data on the installed Office Add-ins + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeAddInRemove + +Indicates that this particular data object represented by the objectInstanceId is no longer present. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeAddInStartSync + +This event indicates that a new sync is being generated for this object type. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeIdentifiersAdd + +Provides data on the Office identifiers. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeIdentifiersStartSync + +Diagnostic event to indicate a new sync is being generated for this object type. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeIESettingsAdd + +Provides data on Office-related Internet Explorer features. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeIESettingsStartSync + +Diagnostic event to indicate a new sync is being generated for this object type. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeInsightsAdd + +This event provides insight data on the installed Office products + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeProductsAdd + +Describes Office Products installed. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeProductsStartSync + +Diagnostic event to indicate a new sync is being generated for this object type. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeSettingsAdd + +This event describes various Office settings + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeSettingsStartSync + +Indicates a new sync is being generated for this object type. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoAdd + +Provides data on Unified Update Platform (UUP) products and what version they are at. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoStartSync + +Diagnostic event to indicate a new sync is being generated for this object type. + + + ### Microsoft.Windows.Inventory.Indicators.Checksum This event summarizes the counts for the InventoryMiscellaneousUexIndicatorAdd events. @@ -2546,14 +2654,14 @@ The following fields are available: - **AppVersion** The version of the app. - **BuildArch** Is the architecture x86 or x64? - **Environment** Is the device on the production or int service? -- **IsMSFTInternal** Is this an internal Microsoft device? -- **MachineGuid** The CEIP machine ID. +- **IsMSFTInternal** TRUE if the device is an internal Microsoft device. +- **MachineGuid** The GUID (Globally Unique ID) that identifies the machine for the CEIP (Customer Experience Improvement Program). - **Market** Which market is this in? - **OfficeVersion** The version of Office that is installed. - **OneDriveDeviceId** The OneDrive device ID. - **OSDeviceName** Only if the device is internal to Microsoft, the device name. - **OSUserName** Only if the device is internal to Microsoft, the user name. -- **UserGuid** A unique global user identifier. +- **UserGuid** The GUID (Globally Unique ID) of the user currently logged in. ### Microsoft.OneDrive.Sync.Updater.ComponentInstallState @@ -2605,12 +2713,12 @@ The following fields are available: ### Microsoft.OneDrive.Sync.Updater.UpdateOverallResult -This event determines the outcome of the operation. +This event sends information describing the result of the update. The following fields are available: - **hr** The HResult of the operation. -- **IsLoggingEnabled** Is logging enabled? +- **IsLoggingEnabled** Indicates whether logging is enabled for the updater. - **UpdaterVersion** The version of the updater. @@ -2642,6 +2750,43 @@ The following fields are available: - **winInetError** The HResult of the operation. +## Other events + +### Microsoft.Xbox.XamTelemetry.AppActivationError + +This event indicates whether the system detected an activation error in the app. + +The following fields are available: + +- **ActivationUri** Activation URI (Uniform Resource Identifier) used in the attempt to activate the app. +- **AppId** The Xbox LIVE Title ID. +- **AppUserModelId** The AUMID (Application User Model ID) of the app to activate. +- **Result** The HResult error. +- **UserId** The Xbox LIVE User ID (XUID). + + +### Microsoft.Xbox.XamTelemetry.AppActivity + +This event is triggered whenever the current app state is changed by: launch, switch, terminate, snap, etc. + +The following fields are available: + +- **AppActionId** The ID of the application action. +- **AppCurrentVisibilityState** The ID of the current application visibility state. +- **AppId** The Xbox LIVE Title ID of the app. +- **AppPackageFullName** The full name of the application package. +- **AppPreviousVisibilityState** The ID of the previous application visibility state. +- **AppSessionId** The application session ID. +- **AppType** The type ID of the application (AppType_NotKnown, AppType_Era, AppType_Sra, AppType_Uwa). +- **BCACode** The BCA (Burst Cutting Area) mark code of the optical disc used to launch the application. +- **DurationMs** The amount of time (in milliseconds) since the last application state transition. +- **IsTrialLicense** This boolean value is TRUE if the application is on a trial license. +- **LicenseType** The type of licensed used to authorize the app (0 - Unknown, 1 - User, 2 - Subscription, 3 - Offline, 4 - Disc). +- **LicenseXuid** If the license type is 1 (User), this field contains the XUID (Xbox User ID) of the registered owner of the license. +- **ProductGuid** The Xbox product GUID (Globally-Unique ID) of the application. +- **UserId** The XUID (Xbox User ID) of the current user. + + ## Remediation events ### Microsoft.Windows.Remediation.Applicable @@ -2807,7 +2952,7 @@ The following fields are available: - **usoScanIsNoAutoUpdateKeyPresent** TRUE if no Auto Update registry key is set/present. - **usoScanIsUserLoggedOn** TRUE if the user is logged on. - **usoScanPastThreshold** TRUE if the most recent USO (Update Session Orchestrator) scan is past the threshold (late). -- **usoScanType** The type of USO (Update Session Orchestrator) scan (Interactive or Background). +- **usoScanType** The type of USO (Update Session Orchestrator) scan: "Interactive" or "Background". - **WindowsHyberFilSysSizeInMegabytes** The size of the Windows Hibernation file, measured in Megabytes. - **WindowsInstallerFolderSizeInMegabytes** The size of the Windows Installer folder, measured in Megabytes. - **WindowsOldFolderSizeInMegabytes** The size of the Windows.OLD folder, measured in Megabytes. @@ -2939,11 +3084,11 @@ This event reports whether a plug-in started, to help ensure Windows is up to da The following fields are available: -- **CV** The Correlation Vector. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **PackageVersion** The version number of the current remediation package. -- **PluginName** The name of the plug-in specified for each generic plug-in event. -- **Result** The HRESULT for Detection or Perform Action phases of the plug-in. +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. ### Microsoft.Windows.Remediation.wilResult @@ -3821,7 +3966,7 @@ The following fields are available: - **RelatedCV** The previous Correlation Vector that was used before swapping with a new one - **RepeatFailFlag** Indicates whether this specific piece of content had previously failed to download. - **RevisionNumber** Identifies the revision number of this specific piece of content. -- **ServiceGuid** An ID which represents which service the software distribution client is installing content for (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** An ID which represents which service the software distribution client is installing content for (Windows Update, Windows Store, etc.). - **Setup360Phase** If the download is for an operating system upgrade, this datapoint indicates which phase of the upgrade is underway. - **ShippingMobileOperator** The mobile operator that a device shipped on. - **StatusCode** Indicates the result of a Download event (success, cancellation, failure code HResult). @@ -4118,6 +4263,22 @@ The following fields are available: - **UpdateId** Unique ID for each update. +### Update360Telemetry.UpdateAgent_FellBackToCanonical + +This event collects information when Express could not be used, and the update had to fall back to “canonical” during the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **PackageCount** The number of packages that fell back to “canonical”. +- **PackageList** PackageIDs which fell back to “canonical”. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + ### Update360Telemetry.UpdateAgent_Initialize This event sends data during the initialize phase of updating Windows. @@ -4152,6 +4313,22 @@ The following fields are available: - **UpdateId** Unique ID for each update. +### Update360Telemetry.UpdateAgent_Merge + +This event sends data on the merge phase when updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current reboot. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + ### Update360Telemetry.UpdateAgent_ModeStart This event sends data for the start of each mode during the process of updating Windows. @@ -4184,6 +4361,130 @@ The following fields are available: - **UpdateId** Unique ID for each update. +### Update360Telemetry.UpdateAgentDownloadRequest + +This event sends data for the download request phase of updating Windows via the new Unified Update Platform (UUP) scenario. Applicable to PC and Mobile. + +The following fields are available: + +- **DeletedCorruptFiles** Boolean indicating whether corrupt payload was deleted. +- **DownloadRequests** Number of times a download was retried. +- **ErrorCode** The error code returned for the current download request phase. +- **ExtensionName** Indicates whether the payload is related to Operating System content or a plugin. +- **FlightId** Unique ID for each flight. +- **InternalFailureResult** Indicates a non-fatal error from a plugin. +- **ObjectId** Unique value for each Update Agent mode (same concept as InstanceId for Setup360). +- **PackageCountOptional** # of optional packages requested. +- **PackageCountRequired** # of required packages requested. +- **PackageCountTotal** Total # of packages needed. +- **PackageCountTotalCanonical** Total number of canonical packages. +- **PackageCountTotalDiff** Total number of diff packages. +- **PackageCountTotalExpress** Total number of express packages. +- **PackageExpressType** Type of express package. +- **PackageSizeCanonical** Size of canonical packages in bytes. +- **PackageSizeDiff** Size of diff packages in bytes. +- **PackageSizeExpress** Size of express packages in bytes. +- **RangeRequestState** Indicates the range request type used. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the download request phase of update. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each attempt (same value for initialize, download, install commit phases). +- **UpdateId** Unique ID for each Update. + + +### Update360Telemetry.UpdateAgentInitialize + +This event sends data for the initialize phase of updating Windows via the new Unified Update Platform (UUP) scenario, which is applicable to both PCs and Mobile. + +The following fields are available: + +- **ErrorCode** The error code returned for the current install phase. +- **FlightId** Unique ID for each flight. +- **FlightMetadata** Contains the FlightId and the build being flighted. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the install phase of the update. +- **ScenarioId** Indicates the update scenario. +- **SessionData** String containing instructions to update agent for processing FODs and DUICs (Null for other scenarios). +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentMitigationResult + +This event sends data indicating the result of each update agent mitigation. + +The following fields are available: + +- **Applicable** Indicates whether the mitigation is applicable for the current update. +- **CommandCount** The number of command operations in the mitigation entry. +- **CustomCount** The number of custom operations in the mitigation entry. +- **FileCount** The number of file operations in the mitigation entry. +- **FlightId** Unique identifier for each flight. +- **Index** The mitigation index of this particular mitigation. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **Name** The friendly name of the mitigation. +- **ObjectId** Unique value for each Update Agent mode. +- **OperationIndex** The mitigation operation index (in the event of a failure). +- **OperationName** The friendly name of the mitigation operation (in the event of failure). +- **RegistryCount** The number of registry operations in the mitigation entry. +- **RelatedCV** The correlation vector value generated from the latest USO scan. +- **Result** The HResult of this operation. +- **ScenarioId** The update agent scenario ID. +- **SessionId** Unique value for each update attempt. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). +- **UpdateId** Unique ID for each Update. + + +### Update360Telemetry.UpdateAgentMitigationSummary + +This event sends a summary of all the update agent mitigations available for an this update. + + + +### Update360Telemetry.UpdateAgentModeStart + +This event sends data for the start of each mode during the process of updating Windows via the new Unified Update Platform (UUP) scenario. Applicable to both PCs and Mobile. + +The following fields are available: + +- **FlightId** Unique ID for each flight. +- **Mode** Indicates the mode that has started. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. +- **Version** Version of update + + +### Update360Telemetry.UpdateAgentOneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + + + +### Update360Telemetry.UpdateAgentSetupBoxLaunch + +The UpdateAgent_SetupBoxLaunch event sends data for the launching of the setup box when updating Windows via the new Unified Update Platform (UUP) scenario. This event is only applicable to PCs. + +The following fields are available: + +- **ContainsExpressPackage** Indicates whether the download package is express. +- **FlightId** Unique ID for each flight. +- **FreeSpace** Free space on OS partition. +- **InstallCount** Number of install attempts using the same sandbox. +- **ObjectId** Unique value for each Update Agent mode. +- **Quiet** Indicates whether setup is running in quiet mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **SandboxSize** Size of the sandbox. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **SetupMode** Mode of setup to be launched. +- **UpdateId** Unique ID for each Update. +- **UserSession** Indicates whether install was invoked by user actions. + + ## Upgrade events ### Setup360Telemetry.Downlevel @@ -4242,9 +4543,9 @@ The following fields are available: - **Setup360Extended** Detailed information about the phase or action when the potential failure occurred. - **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. - **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. -- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. - **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). -- **State** Exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **State** Exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled - **TestId** ID that uniquely identifies a group of events. - **WuId** Windows Update client ID. @@ -4375,6 +4676,24 @@ This event helps determine whether the device received supplemental content duri +### Setup360Telemetry.Setup360MitigationResult + +This event sends data indicating the result of each setup mitigation. + + + +### Setup360Telemetry.Setup360MitigationSummary + +This event sends a summary of all the setup mitigations available for this update. + + + +### Setup360Telemetry.Setup360OneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + + + ### Setup360Telemetry.UnexpectedEvent This event sends data indicating that the device has invoked the unexpected event phase of the upgrade, to help keep Windows up to date. @@ -4388,7 +4707,7 @@ The following fields are available: - **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. - **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. - **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. -- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used to diagnose errors. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used used to diagnose errors. - **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. - **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). - **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. @@ -4819,11 +5138,11 @@ The following fields are available: - **errorCode** The error code that was returned. - **experimentId** When running a test, this is used to correlate events that are part of the same test. - **fileID** The ID of the file being downloaded. -- **isVpn** Is the device connected to a Virtual Private Network? +- **isVpn** Indicates whether the device is connected to a VPN (Virtual Private Network). - **scenarioID** The ID of the scenario. - **sessionID** The ID of the file download session. - **updateID** The ID of the update being downloaded. -- **usedMemoryStream** Did the download use memory streaming? +- **usedMemoryStream** TRUE if the download is using memory streaming for App downloads. ### Microsoft.OSG.DU.DeliveryOptClient.DownloadCompleted @@ -4862,7 +5181,7 @@ The following fields are available: - **updateID** The ID of the update being downloaded. - **uplinkBps** The maximum measured available upload bandwidth (in bytes per second). - **uplinkUsageBps** The upload speed (in bytes per second). -- **usedMemoryStream** Did the download use memory streaming? +- **usedMemoryStream** TRUE if the download is using memory streaming for App downloads. ### Microsoft.OSG.DU.DeliveryOptClient.DownloadPaused @@ -5146,6 +5465,17 @@ The following fields are available: - **wuDeviceid** The Windows Update device GUID. +### Microsoft.Windows.Update.Orchestrator.DeferRestart + +This event indicates that a restart required for installing updates was postponed. + +The following fields are available: + +- **filteredDeferReason** Applicable filtered reasons why reboot was postponed (such as user active, or low battery). +- **raisedDeferReason** Indicates all potential reasons for postponing restart (such as user active, or low battery). +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.Detection This event indicates that a scan for a Windows Update occurred. @@ -5192,7 +5522,7 @@ The following fields are available: - **EventPublishedTime** Time when this event was generated. - **flightID** The specific ID of the Windows Insider build. - **revisionNumber** Update revision number. -- **updateId** Unique Windows Update ID. +- **updateId** Unique Update ID. - **updateScenarioType** Update session type. - **UpdateStatus** Last status of update. - **wuDeviceid** Unique Device ID. @@ -5240,6 +5570,30 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.LowUptimes + +This event is sent if a device is identified as not having sufficient uptime to reliably process updates in order to keep secure. + +The following fields are available: + +- **lowUptimeMinHours** Current setting for the minimum number of hours needed to not be considered low uptime. +- **lowUptimeQueryDays** Current setting for the number of recent days to check for uptime. +- **uptimeMinutes** Number of minutes of uptime measured. +- **wuDeviceid** Unique device ID for Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.OneshotUpdateDetection + +This event returns data about scans initiated through settings UI, or background scans that are urgent; to help keep Windows up to date. + +The following fields are available: + +- **externalOneshotupdate** The last time a task-triggered scan was completed. +- **interactiveOneshotupdate** The last time an interactive scan was completed. +- **oldlastscanOneshotupdate** The last time a scan completed successfully. +- **wuDeviceid** The Windows Update Device GUID (Globally-Unique ID). + + ### Microsoft.Windows.Update.Orchestrator.PostInstall This event is sent after a Windows update install completes. @@ -5256,6 +5610,15 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.PreShutdownStart + +This event is generated before the shutdown and commit operations. + +The following fields are available: + +- **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. + + ### Microsoft.Windows.Update.Orchestrator.RebootFailed This event sends information about whether an update required a reboot and reasons for failure, to help keep Windows up to date. @@ -5276,6 +5639,18 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.RefreshSettings + +This event sends basic data about the version of upgrade settings applied to the system to help keep Windows up to date. + +The following fields are available: + +- **errorCode** Hex code for the error message, to allow lookup of the specific error. +- **settingsDownloadTime** Timestamp of the last attempt to acquire settings. +- **settingsETag** Version identifier for the settings. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.RestoreRebootTask This event sends data indicating that a reboot task is missing unexpectedly on a device and the task is restored because a reboot is still required, to help keep Windows up to date. @@ -5332,6 +5707,32 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.updateSettingsFlushFailed + +This event sends information about an update that encountered problems and was not able to complete. + +The following fields are available: + +- **errorCode** The error code encountered. +- **wuDeviceid** The ID of the device in which the error occurred. + + +### Microsoft.Windows.Update.Orchestrator.UsoSession + +This event represents the state of the USO service at start and completion. + +The following fields are available: + +- **activeSessionid** A unique session GUID. +- **eventScenario** The state of the update action. +- **interactive** Is the USO session interactive? +- **lastErrorcode** The last error that was encountered. +- **lastErrorstate** The state of the update when the last error was encountered. +- **sessionType** A GUID that refers to the update session type. +- **updateScenarioType** A descriptive update session type. +- **wuDeviceid** The Windows Update device GUID. + + ### Microsoft.Windows.Update.UpdateStackServicing.CheckForUpdates This event sends data about the UpdateStackServicing check for updates, to help keep Windows up to date. @@ -5352,6 +5753,28 @@ The following fields are available: - **WUDeviceID** The Windows Update device ID. +### Microsoft.Windows.Update.Ux.MusNotification.EnhancedEngagedRebootUxState + +This event sends information about the configuration of Enhanced Direct-to-Engaged (eDTE), which includes values for the timing of how eDTE will progress through each phase of the reboot. + +The following fields are available: + +- **AcceptAutoModeLimit** The maximum number of days for a device to automatically enter Auto Reboot mode. +- **AutoToAutoFailedLimit** The maximum number of days for Auto Reboot mode to fail before a Reboot Failed dialog will be shown. +- **DeviceLocalTime** The date and time (based on the device date/time settings) the reboot mode changed. +- **EngagedModeLimit** The number of days to switch between DTE (Direct-to-Engaged) dialogs. +- **EnterAutoModeLimit** The maximum number of days a device can enter Auto Reboot mode. +- **ETag** The Entity Tag that represents the OneSettings version. +- **IsForcedEnabled** Identifies whether Forced Reboot mode is enabled for the device. +- **IsUltimateForcedEnabled** Identifies whether Ultimate Forced Reboot mode is enabled for the device. +- **OldestUpdateLocalTime** The date and time (based on the device date/time settings) this update’s reboot began pending. +- **RebootUxState** Identifies the reboot state: Engaged, Auto, Forced, UltimateForced. +- **RebootVersion** The version of the DTE (Direct-to-Engaged). +- **SkipToAutoModeLimit** The maximum number of days to switch to start while in Auto Reboot mode. +- **UpdateId** The ID of the update that is waiting for reboot to finish installation. +- **UpdateRevision** The revision of the update that is waiting for reboot to finish installation. + + ### Microsoft.Windows.Update.Ux.MusNotification.RebootNoLongerNeeded This event is sent when a security update has successfully completed. @@ -5390,7 +5813,7 @@ The following fields are available: ### Microsoft.Windows.Update.Ux.MusUpdateSettings.RebootScheduled -This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up-to-date. +This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up to date. The following fields are available: @@ -5406,6 +5829,14 @@ The following fields are available: - **wuDeviceid** The Windows Update device GUID. +## Windows Update mitigation events + +### Mitigation360Telemetry.MitigationCustom.FixupEditionId + +This event sends data specific to the FixupEditionId mitigation used for OS Updates. + + + ## Winlogon events ### Microsoft.Windows.Security.Winlogon.SetupCompleteLogon diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md index f1ca2eae5e..e6b7d5cbc6 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md @@ -9,7 +9,7 @@ ms.pagetype: security localizationpriority: high author: brianlic-msft ms.author: brianlic -ms.date: 10/10/2018 +ms.date: 11/07/2018 --- @@ -65,20 +65,20 @@ The following fields are available: - **DecisionSystemBios_RS4** The total DecisionSystemBios objects targeting Windows 10 version, 1803 present on this device. - **DecisionTest_RS1** An ID for the system, calculated by hashing hardware identifiers. - **InventoryApplicationFile** The count of the number of this particular object type present on this device. -- **InventoryLanguagePack** The count of InventoryLanguagePack objects present on this machine. +- **InventoryLanguagePack** The count of the number of this particular object type present on this device. - **InventoryMediaCenter** The count of the number of this particular object type present on this device. - **InventorySystemBios** The count of the number of this particular object type present on this device. - **InventoryTest** The count of the number of this particular object type present on this device. - **InventoryUplevelDriverPackage** The count of the number of this particular object type present on this device. -- **PCFP** An ID for the system, calculated by hashing hardware identifiers. +- **PCFP** The count of the number of this particular object type present on this device. - **SystemMemory** The count of the number of this particular object type present on this device. - **SystemProcessorCompareExchange** The count of the number of this particular object type present on this device. - **SystemProcessorLahfSahf** The count of the number of this particular object type present on this device. - **SystemProcessorNx** The count of the number of this particular object type present on this device. -- **SystemProcessorPrefetchW** The count of SystemProcessorPrefetchW objects present on this machine. -- **SystemProcessorSse2** The count of SystemProcessorSse2 objects present on this machine. +- **SystemProcessorPrefetchW** The count of the number of this particular object type present on this device. +- **SystemProcessorSse2** The count of the number of this particular object type present on this device. - **SystemTouch** The count of the number of this particular object type present on this device. -- **SystemWim** The count of SystemWim objects present on this machine. +- **SystemWim** The count of the number of this particular object type present on this device. - **SystemWindowsActivationStatus** The count of the number of this particular object type present on this device. - **SystemWlan** The count of the number of this particular object type present on this device. - **Wmdrm_RS1** An ID for the system, calculated by hashing hardware identifiers. @@ -359,7 +359,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove -This event indicates that the DecisionApplicationFile object is no longer present. +This event indicates Indicates that the DecisionApplicationFile object is no longer present. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -706,7 +706,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. +This event indicates indicates that a new set of InventoryApplicationFileAdd events will be sent. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -1209,6 +1209,23 @@ The following fields are available: - **AppraiserVersion** The version of the Appraiser file that is generating the events. +### Microsoft.Windows.Appraiser.General.SystemWlanAdd + +This event sends data indicating whether the system has WLAN, and if so, whether it uses an emulated driver that could block an upgrade, to help keep Windows up-to-date. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **AppraiserVersion** The version of the Appraiser file that is generating the events. +- **Blocking** Is the upgrade blocked because of an emulated WLAN driver? +- **HasWlanBlock** Does the emulated WLAN driver have an upgrade block? +- **WlanEmulatedDriver** Does the device have an emulated WLAN driver? +- **WlanExists** Does the device support WLAN at all? +- **WlanModulePresent** Are any WLAN modules present? +- **WlanNativeDriver** Does the device have a non-emulated WLAN driver? + + ### Microsoft.Windows.Appraiser.General.SystemWlanRemove This event indicates that the SystemWlan object is no longer present. @@ -1525,16 +1542,16 @@ The following fields are available: - **KvaShadow** Microcode info of the processor. - **MMSettingOverride** Microcode setting of the processor. - **MMSettingOverrideMask** Microcode setting override of the processor. -- **ProcessorArchitecture** Retrieves the processor architecture of the installed operating system. -- **ProcessorClockSpeed** Clock speed of the processor in MHz. -- **ProcessorCores** Number of logical cores in the processor. -- **ProcessorIdentifier** Processor Identifier of a manufacturer. -- **ProcessorManufacturer** Name of the processor manufacturer. -- **ProcessorModel** Name of the processor model. +- **ProcessorArchitecture** Retrieves the processor architecture of the installed operating system. The complete list of values can be found in DimProcessorArchitecture. +- **ProcessorClockSpeed** Retrieves the clock speed of the processor in MHz. +- **ProcessorCores** Retrieves the number of cores in the processor. +- **ProcessorIdentifier** The processor identifier of a manufacturer. +- **ProcessorManufacturer** Retrieves the name of the processor's manufacturer. +- **ProcessorModel** Retrieves the name of the processor model. - **ProcessorPhysicalCores** Number of physical cores in the processor. -- **ProcessorUpdateRevision** Microcode revision +- **ProcessorUpdateRevision** Retrieves the processor architecture of the installed operating system. - **ProcessorUpdateStatus** Enum value that represents the processor microcode load status -- **SocketCount** Count of CPU sockets. +- **SocketCount** Number of physical CPU sockets of the machine. - **SpeculationControl** If the system has enabled protections needed to validate the speculation control vulnerability. @@ -1545,14 +1562,14 @@ This event provides information on about security settings used to help keep Win The following fields are available: - **AvailableSecurityProperties** This field helps to enumerate and report state on the relevant security properties for Device Guard. -- **CGRunning** Is Credential Guard running? +- **CGRunning** Credential Guard isolates and hardens key system and user secrets against compromise, helping to minimize the impact and breadth of a Pass the Hash style attack in the event that malicious code is already running via a local or network based vector. This field tells if Credential Guard is running. - **DGState** This field summarizes the Device Guard state. -- **HVCIRunning** Is HVCI running? +- **HVCIRunning** Hypervisor Code Integrity (HVCI) enables Device Guard to help protect kernel mode processes and drivers from vulnerability exploits and zero days. HVCI uses the processor’s functionality to force all software running in kernel mode to safely allocate memory. This field tells if HVCI is running. - **IsSawGuest** Indicates whether the device is running as a Secure Admin Workstation Guest. - **IsSawHost** Indicates whether the device is running as a Secure Admin Workstation Host. - **RequiredSecurityProperties** Describes the required security properties to enable virtualization-based security. -- **SecureBootCapable** Is this device capable of running Secure Boot? -- **VBSState** Is virtualization-based security enabled, disabled, or running? +- **SecureBootCapable** Systems that support Secure Boot can have the feature turned off via BIOS. This field tells if the system is capable of running Secure Boot, regardless of the BIOS setting. +- **VBSState** Virtualization-based security (VBS) uses the hypervisor to help protect the kernel and other parts of the operating system. Credential Guard and Hypervisor Code Integrity (HVCI) both depend on VBS to isolate/protect secrets, and kernel-mode code integrity validation. VBS has a tri-state that can be Disabled, Enabled, or Running. ### Census.Speech @@ -1889,6 +1906,82 @@ The following fields are available: - **VortexHttpResponsesWithDroppedEvents** Number of Vortex responses containing at least 1 dropped event. +## DxgKernelTelemetry events + +### DxgKrnlTelemetry.GPUAdapterInventoryV2 + +This event sends basic GPU and display driver information to keep Windows and display drivers up-to-date. + +The following fields are available: + +- **AdapterTypeValue** The numeric value indicating the type of Graphics adapter. +- **aiSeqId** The event sequence ID. +- **bootId** The system boot ID. +- **ComputePreemptionLevel** The maximum preemption level supported by GPU for compute payload. +- **DedicatedSystemMemoryB** The amount of system memory dedicated for GPU use (in bytes). +- **DedicatedVideoMemoryB** The amount of dedicated VRAM of the GPU (in bytes). +- **DisplayAdapterLuid** The display adapter LUID. +- **DriverDate** The date of the display driver. +- **DriverRank** The rank of the display driver. +- **DriverVersion** The display driver version. +- **GPUDeviceID** The GPU device ID. +- **GPUPreemptionLevel** The maximum preemption level supported by GPU for graphics payload. +- **GPURevisionID** The GPU revision ID. +- **GPUVendorID** The GPU vendor ID. +- **InterfaceId** The GPU interface ID. +- **IsDisplayDevice** Does the GPU have displaying capabilities? +- **IsHybridDiscrete** Does the GPU have discrete GPU capabilities in a hybrid device? +- **IsHybridIntegrated** Does the GPU have integrated GPU capabilities in a hybrid device? +- **IsLDA** Is the GPU comprised of Linked Display Adapters? +- **IsMiracastSupported** Does the GPU support Miracast? +- **IsMismatchLDA** Is at least one device in the Linked Display Adapters chain from a different vendor? +- **IsMPOSupported** Does the GPU support Multi-Plane Overlays? +- **IsMsMiracastSupported** Are the GPU Miracast capabilities driven by a Microsoft solution? +- **IsPostAdapter** Is this GPU the POST GPU in the device? +- **IsRemovable** TRUE if the adapter supports being disabled or removed. +- **IsRenderDevice** Does the GPU have rendering capabilities? +- **IsSoftwareDevice** Is this a software implementation of the GPU? +- **MeasureEnabled** Is the device listening to MICROSOFT_KEYWORD_MEASURES? +- **NumVidPnSources** The number of supported display output sources. +- **NumVidPnTargets** The number of supported display output targets. +- **SharedSystemMemoryB** The amount of system memory shared by GPU and CPU (in bytes). +- **SubSystemID** The subsystem ID. +- **SubVendorID** The GPU sub vendor ID. +- **TelemetryEnabled** Is the device listening to MICROSOFT_KEYWORD_TELEMETRY? +- **TelInvEvntTrigger** What triggered this event to be logged? Example: 0 (GPU enumeration) or 1 (DxgKrnlTelemetry provider toggling) +- **version** The event version. +- **WDDMVersion** The Windows Display Driver Model version. + + +## Fault Reporting events + +### Microsoft.Windows.FaultReporting.AppCrashEvent + +This event sends data about crashes for both native and managed applications, to help keep Windows up to date. The data includes information about the crashing process and a summary of its exception record. It does not contain any Watson bucketing information. The bucketing information is recorded in a Windows Error Reporting (WER) event that is generated when the WER client reports the crash to the Watson service, and the WER event will contain the same ReportID (see field 14 of crash event, field 19 of WER event) as the crash event for the crash being reported. AppCrash is emitted once for each crash handled by WER (e.g. from an unhandled exception or FailFast or ReportException). Note that Generic Watson event types (e.g. from PLM) that may be considered crashes\" by a user DO NOT emit this event. + +The following fields are available: + +- **AppName** The name of the app that has crashed. +- **AppSessionGuid** GUID made up of process ID and is used as a correlation vector for process instances in the telemetry backend. +- **AppTimeStamp** The date/time stamp of the app. +- **AppVersion** The version of the app that has crashed. +- **ExceptionCode** The exception code returned by the process that has crashed. +- **ExceptionOffset** The address where the exception had occurred. +- **Flags** Flags indicating how reporting is done. For example, queue the report, do not offer JIT debugging, or do not terminate the process after reporting. +- **ModName** Exception module name (e.g. bar.dll). +- **ModTimeStamp** The date/time stamp of the module. +- **ModVersion** The version of the module that has crashed. +- **PackageFullName** Store application identity. +- **PackageRelativeAppId** Store application identity. +- **ProcessArchitecture** Architecture of the crashing process, as one of the PROCESSOR_ARCHITECTURE_* constants: 0: PROCESSOR_ARCHITECTURE_INTEL. 5: PROCESSOR_ARCHITECTURE_ARM. 9: PROCESSOR_ARCHITECTURE_AMD64. 12: PROCESSOR_ARCHITECTURE_ARM64. +- **ProcessCreateTime** The time of creation of the process that has crashed. +- **ProcessId** The ID of the process that has crashed. +- **ReportId** A GUID used to identify the report. This can used to track the report across Watson. +- **TargetAppId** The kernel reported AppId of the application being reported. +- **TargetAppVer** The specific version of the application being reported +- **TargetAsId** The sequence number for the hanging process. + + ## Feature update events ### Microsoft.Windows.Upgrade.Uninstall.UninstallFailed @@ -1916,6 +2009,33 @@ This event sends basic metadata about the starting point of uninstalling a featu +## Hang Reporting events + +### Microsoft.Windows.HangReporting.AppHangEvent + +This event sends data about hangs for both native and managed applications, to help keep Windows up to date. It does not contain any Watson bucketing information. The bucketing information is recorded in a Windows Error Reporting (WER) event that is generated when the WER client reports the hang to the Watson service, and the WER event will contain the same ReportID (see field 13 of hang event, field 19 of WER event) as the hang event for the hang being reported. AppHang is reported only on PC devices. It handles classic Win32 hangs and is emitted only once per report. Some behaviors that may be perceived by a user as a hang are reported by app managers (e.g. PLM/RM/EM) as Watson Generics and will not produce AppHang events. + +The following fields are available: + +- **AppName** The name of the app that has hung. +- **AppSessionGuid** GUID made up of process id used as a correlation vector for process instances in the telemetry backend. +- **AppVersion** The version of the app that has hung. +- **PackageFullName** Store application identity. +- **PackageRelativeAppId** Store application identity. +- **ProcessArchitecture** Architecture of the hung process, as one of the PROCESSOR_ARCHITECTURE_* constants: 0: PROCESSOR_ARCHITECTURE_INTEL. 5: PROCESSOR_ARCHITECTURE_ARM. 9: PROCESSOR_ARCHITECTURE_AMD64. 12: PROCESSOR_ARCHITECTURE_ARM64. +- **ProcessCreateTime** The time of creation of the process that has hung. +- **ProcessId** The ID of the process that has hung. +- **ReportId** A GUID used to identify the report. This can used to track the report across Watson. +- **TargetAppId** The kernel reported AppId of the application being reported. +- **TargetAppVer** The specific version of the application being reported. +- **TargetAsId** The sequence number for the hanging process. +- **TypeCode** Bitmap describing the hang type. +- **WaitingOnAppName** If this is a cross process hang waiting for an application, this has the name of the application. +- **WaitingOnAppVersion** If this is a cross process hang, this has the version of the application for which it is waiting. +- **WaitingOnPackageFullName** If this is a cross process hang waiting for a package, this has the full name of the package for which it is waiting. +- **WaitingOnPackageRelativeAppId** If this is a cross process hang waiting for a package, this has the relative application id of the package. + + ## Inventory events ### Microsoft.Windows.Inventory.Core.AmiTelCacheChecksum @@ -1992,13 +2112,13 @@ This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedevic The following fields are available: -- **InventoryVersion** The version of the inventory component +- **InventoryVersion** The version of the inventory component. - **ProgramIds** The unique program identifier the driver is associated with. ### Microsoft.Windows.Inventory.Core.InventoryApplicationDriverStartSync -The InventoryApplicationDriverStartSync event indicates that a new set of InventoryApplicationDriverStartAdd events will be sent. +This event indicates that a new set of InventoryApplicationDriverStartAdd events will be sent. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -2185,12 +2305,12 @@ This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedevic The following fields are available: - **BusReportedDescription** System-supplied GUID that uniquely groups the functional devices associated with a single-function or multifunction device installed in the computer. -- **Class** System-supplied GUID that uniquely groups the functional devices associated with a single-function or multifunction device installed in the computer. -- **ClassGuid** A unique identifier for the driver installed. -- **COMPID** Name of the .sys image file (or wudfrd.sys if using user mode driver framework). -- **ContainerId** INF file name (the name could be renamed by OS, such as oemXX.inf) -- **Description** The version of the inventory binary generating the events. -- **DeviceState** The current error code for the device. +- **Class** The device setup class of the driver loaded for the device. +- **ClassGuid** The device setup class guid of the driver loaded for the device. +- **COMPID** The list of compat ids for the device. +- **ContainerId** System-supplied GUID that uniquely groups the functional devices associated with a single-function or multifunction device installed in the computer. +- **Description** The device description. +- **DeviceState** DeviceState is a bitmask of the following: DEVICE_IS_CONNECTED 0x0001 (currently only for container). DEVICE_IS_NETWORK_DEVICE 0x0002 (currently only for container). DEVICE_IS_PAIRED 0x0004 (currently only for container). DEVICE_IS_ACTIVE 0x0008 (currently never set). DEVICE_IS_MACHINE 0x0010 (currently only for container). DEVICE_IS_PRESENT 0x0020 (currently always set). DEVICE_IS_HIDDEN 0x0040. DEVICE_IS_PRINTER 0x0080 (currently only for container). DEVICE_IS_WIRELESS 0x0100. DEVICE_IS_WIRELESS_FAT 0x0200. The most common values are therefore: 32 (0x20)= device is present. 96 (0x60)= device is present but hidden. 288 (0x120)= device is a wireless device that is present - **DriverId** A unique identifier for the driver installed. - **DriverName** Name of the .sys image file (or wudfrd.sys if using user mode driver framework). - **DriverPackageStrongName** The immediate parent directory name in the Directory field of InventoryDriverPackage. @@ -2703,6 +2823,183 @@ The following fields are available: - **UserInputTime** The amount of time the loader application spent waiting for user input. +## OneDrive events + +### Microsoft.OneDrive.Sync.Setup.APIOperation + +This event includes basic data about install and uninstall OneDrive API operations. + +The following fields are available: + +- **APIName** The name of the API. +- **Duration** How long the operation took. +- **IsSuccess** Was the operation successful? +- **ResultCode** The result code. +- **ScenarioName** The name of the scenario. + + +### Microsoft.OneDrive.Sync.Setup.EndExperience + +This event includes a success or failure summary of the installation. + +The following fields are available: + +- **APIName** The name of the API. +- **HResult** The result code of the last action performed before this operation +- **IsSuccess** Was the operation successful? +- **ScenarioName** The name of the scenario. + + +### Microsoft.OneDrive.Sync.Setup.OSUpgradeInstallationOperation + +This event is related to the OS version when the OS is upgraded with OneDrive installed. + +The following fields are available: + +- **CurrentOneDriveVersion** The current version of OneDrive. +- **CurrentOSBuildBranch** The current branch of the operating system. +- **CurrentOSBuildNumber** The current build number of the operating system. +- **CurrentOSVersion** The current version of the operating system. +- **HResult** The HResult of the operation. +- **SourceOSBuildBranch** The source branch of the operating system. +- **SourceOSBuildNumber** The source build number of the operating system. +- **SourceOSVersion** The source version of the operating system. + + +### Microsoft.OneDrive.Sync.Setup.RegisterStandaloneUpdaterAPIOperation + +This event is related to registering or unregistering the OneDrive update task. + +The following fields are available: + +- **APIName** The name of the API. +- **IsSuccess** Was the operation successful? +- **RegisterNewTaskResult** The HResult of the RegisterNewTask operation. +- **ScenarioName** The name of the scenario. +- **UnregisterOldTaskResult** The HResult of the UnregisterOldTask operation. + + +### Microsoft.OneDrive.Sync.Updater.ComponentInstallState + +This event includes basic data about the installation state of dependent OneDrive components. + +The following fields are available: + +- **ComponentName** The name of the dependent component. +- **isInstalled** Is the dependent component installed? + + +### Microsoft.OneDrive.Sync.Updater.OverlayIconStatus + +This event indicates if the OneDrive overlay icon is working correctly. 0 = healthy; 1 = can be fixed; 2 = broken + +The following fields are available: + +- **32bit** The status of the OneDrive overlay icon on a 32-bit operating system. +- **64bit** The status of the OneDrive overlay icon on a 64-bit operating system. + + +### Microsoft.OneDrive.Sync.Updater.UpdateOverallResult + +This event sends information describing the result of the update. + +The following fields are available: + +- **hr** The HResult of the operation. +- **IsLoggingEnabled** Indicates whether logging is enabled for the updater. +- **UpdaterVersion** The version of the updater. + + +### Microsoft.OneDrive.Sync.Updater.UpdateXmlDownloadHResult + +This event determines the status when downloading the OneDrive update configuration file. + +The following fields are available: + +- **hr** The HResult of the operation. + + +### Microsoft.OneDrive.Sync.Updater.WebConnectionStatus + +This event determines the error code that was returned when verifying Internet connectivity. + +The following fields are available: + +- **winInetError** The HResult of the operation. + + +## Other events + +### CbsServicingProvider.CbsCapabilityEnumeration + +This event reports on the results of scanning for optional Windows content on Windows Update. + +The following fields are available: + +- **architecture** Indicates the scan was limited to the specified architecture. +- **capabilityCount** The number of optional content packages found during the scan. +- **clientId** The name of the application requesting the optional content. +- **duration** The amount of time it took to complete the scan. +- **hrStatus** The HReturn code of the scan. +- **language** Indicates the scan was limited to the specified language. +- **majorVersion** Indicates the scan was limited to the specified major version. +- **minorVersion** Indicates the scan was limited to the specified minor version. +- **namespace** Indicates the scan was limited to packages in the specified namespace. +- **sourceFilter** A bitmask indicating the scan checked for locally available optional content. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionFinalize + +This event provides information about the results of installing or uninstalling optional Windows content from Windows Update. + +The following fields are available: + +- **capabilities** The names of the optional content packages that were installed. +- **clientId** The name of the application requesting the optional content. +- **highestState** The highest final install state of the optional content. +- **hrStatus** The HReturn code of the install operation. +- **rebootCount** The number of reboots required to complete the install. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionPended + +This event provides information about the results of installing optional Windows content that requires a reboot to keep Windows up to date. + +The following fields are available: + +- **clientId** The name of the application requesting the optional content. +- **pendingDecision** Indicates the cause of reboot, if applicable. + + +### Microsoft.Windows.WaaSAssessment.Error + +This event returns the name of the missing setting needed to determine the Operating System build age. + +The following fields are available: + +- **m** The WaaS (“Workspace as a Service”—cloud-based “workspace”) Assessment Error String. + + +### Microsoft.Xbox.XamTelemetry.AppActivationError + +This event indicates whether the system detected an activation error in the app. + + + +### Microsoft.Xbox.XamTelemetry.AppActivity + +This event is triggered whenever the current app state is changed by: launch, switch, terminate, snap, etc. + + + ## Remediation events ### Microsoft.Windows.Remediation.Applicable @@ -2716,7 +3013,6 @@ The following fields are available: - **AppraiserDetectCondition** Indicates whether the plug-in passed the appraiser's check. - **AppraiserRegistryValidResult** Indicates whether the registry entry checks out as valid. - **AppraiserTaskDisabled** Indicates the appraiser task is disabled. -- **AppraiserTaskValidFailed** Indicates the Appraiser task did not function and requires intervention. - **CV** Correlation vector - **DateTimeDifference** The difference between local and reference clock times. - **DateTimeSyncEnabled** Indicates whether the datetime sync plug-in is enabled. @@ -2911,7 +3207,7 @@ The following fields are available: - **usoScanIsNoAutoUpdateKeyPresent** TRUE if no Auto Update registry key is set/present. - **usoScanIsUserLoggedOn** TRUE if the user is logged on. - **usoScanPastThreshold** TRUE if the most recent USO (Update Session Orchestrator) scan is past the threshold (late). -- **usoScanType** The type of USO (Update Session Orchestrator) scan (Interactive or Background). +- **usoScanType** The type of USO (Update Session Orchestrator) scan: "Interactive" or "Background". - **windows10UpgraderBlockWuUpdates** Event to report the value of Windows 10 Upgrader BlockWuUpdates Key. - **windowsEditionId** Event to report the value of Windows Edition ID. - **WindowsHyberFilSysSizeInMegabytes** The size of the Windows Hibernation file, measured in Megabytes. @@ -2970,6 +3266,41 @@ The following fields are available: - **Time** The time the event was fired. +### Microsoft.Windows.Sediment.Info.Error + +This event indicates an error in the updater payload. This information assists in keeping Windows up to date. + + + +### Microsoft.Windows.Sediment.OSRSS.CheckingOneSettings + +This event indicates the parameters that the Operating System Remediation System Service (OSRSS) uses for a secure ping to Microsoft to help ensure Windows is up to date. + +The following fields are available: + +- **CustomVer** The registry value for targeting. +- **IsMetered** TRUE if the machine is on a metered network. +- **LastVer** The version of the last successful run. +- **ServiceVersionMajor** The Major version information of the component. +- **ServiceVersionMinor** The Minor version information of the component. +- **Time** The system time at which the event occurred. + + +### Microsoft.Windows.Sediment.OSRSS.Error + +This event indicates an error occurred in the Operating System Remediation System Service (OSRSS). The information provided helps ensure future upgrade/update attempts are more successful. + +The following fields are available: + +- **FailureType** The type of error encountered. +- **FileName** The code file in which the error occurred. +- **HResult** The failure error code. +- **LineNumber** The line number in the code file at which the error occurred. +- **ServiceVersionMajor** The Major version information of the component. +- **ServiceVersionMinor** The Minor version information of the component. +- **Time** The system time at which the event occurred. + + ### Microsoft.Windows.Sediment.OSRSS.UrlState This event indicates the state the Operating System Remediation System Service (OSRSS) is in while attempting a download from the URL. @@ -3195,6 +3526,32 @@ The following fields are available: ## Setup events +### SetupPlatformTel.SetupPlatformTelActivityEvent + +This event sends basic metadata about the SetupPlatform update installation process, to help keep Windows up to date. + +The following fields are available: + +- **FieldName** Retrieves the event name/data point. Examples: InstallStartTime, InstallEndtime, OverallResult etc. +- **GroupName** Retrieves the groupname the event belongs to. Example: Install Information, DU Information, Disk Space Information etc. +- **Value** Value associated with the corresponding event name. For example, time-related events will include the system time + + +### SetupPlatformTel.SetupPlatformTelActivityStarted + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + +The following fields are available: + +- **Name** The name of the dynamic update type. Example: GDR driver + + +### SetupPlatformTel.SetupPlatformTelActivityStopped + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + + + ### SetupPlatformTel.SetupPlatformTelEvent This service retrieves events generated by SetupPlatform, the engine that drives the various deployment scenarios. @@ -3780,6 +4137,131 @@ The following fields are available: ## Update events +### Update360Telemetry.UpdateAgent_DownloadRequest + +This event sends data during the download request phase of updating Windows. + +The following fields are available: + +- **DeletedCorruptFiles** Boolean indicating whether corrupt payload was deleted. +- **ErrorCode** The error code returned for the current download request phase. +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode (same concept as InstanceId for Setup360). +- **PackageCountOptional** # of optional packages requested. +- **PackageCountRequired** # of required packages requested. +- **PackageCountTotal** Total # of packages needed. +- **PackageCountTotalCanonical** Total number of canonical packages. +- **PackageCountTotalDiff** Total number of diff packages. +- **PackageCountTotalExpress** Total number of express packages. +- **PackageSizeCanonical** Size of canonical packages in bytes. +- **PackageSizeDiff** Size of diff packages in bytes. +- **PackageSizeExpress** Size of express packages in bytes. +- **RangeRequestState** Indicates the range request type used. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the download request phase of update. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each attempt (same value for initialize, download, install commit phases) +- **UpdateId** Unique ID for each Update. + + +### Update360Telemetry.UpdateAgent_FellBackToCanonical + +This event collects information when Express could not be used, and the update had to fall back to “canonical” during the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **PackageCount** The number of packages that fell back to “canonical”. +- **PackageList** PackageIDs which fell back to “canonical”. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + +### Update360Telemetry.UpdateAgent_Initialize + +This event sends data during the initialize phase of updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current initialize phase. +- **FlightId** Unique ID for each flight. +- **FlightMetadata** Contains the FlightId and the build being flighted. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Result of the initialize phase of update. 0 = Succeeded, 1 = Failed, 2 = Cancelled, 3 = Blocked, 4 = BlockCancelled +- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate +- **SessionData** Contains instructions to update agent for processing FODs and DUICs (Null for other scenarios). +- **SessionId** Unique value for each Update Agent mode attempt . +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgent_Install + +This event sends data during the install phase of updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current install phase. +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest scan. +- **Result** Result of the install phase of update. 0 = Succeeded 1 = Failed, 2 = Cancelled, 3 = Blocked, 4 = BlockCancelled +- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate +- **SessionId** Unique value for each Update Agent mode attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgent_Merge + +This event sends data on the merge phase when updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current reboot. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + +### Update360Telemetry.UpdateAgent_ModeStart + +This event sends data for the start of each mode during the process of updating Windows. + +The following fields are available: + +- **FlightId** Unique ID for each flight. +- **Mode** Indicates that the Update Agent mode that has started. 1 = Initialize, 2 = DownloadRequest, 3 = Install, 4 = Commit +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest scan. +- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate +- **SessionId** Unique value for each Update Agent mode attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgent_SetupBoxLaunch + +This event sends data during the launching of the setup box when updating Windows. + +The following fields are available: + +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode. +- **Quiet** Indicates whether setup is running in quiet mode. 0 = false 1 = true +- **RelatedCV** Correlation vector value generated from the latest scan. +- **SandboxSize** The size of the sandbox folder on the device. +- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate +- **SessionId** Unique value for each Update Agent mode attempt. +- **SetupMode** Setup mode 1 = predownload, 2 = install, 3 = finalize +- **UpdateId** Unique ID for each update. + + ### Update360Telemetry.UpdateAgentCommit This event collects information regarding the commit phase of the new Unified Update Platform (UUP) update scenario, which is leveraged by both Mobile and Desktop. @@ -3975,6 +4457,24 @@ The following fields are available: - **Version** Version of update +### Update360Telemetry.UpdateAgentOneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **Count** The count of applicable OneSettings for the device. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **Parameters** The set of name value pair parameters sent to OneSettings to determine if there are any applicable OneSettings. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. +- **Values** The values sent back to the device, if applicable. + + ### Update360Telemetry.UpdateAgentPostRebootResult This event collects information for both Mobile and Desktop regarding the post reboot phase of the new Unified Update Platform (UUP) update scenario. @@ -4028,7 +4528,7 @@ The following fields are available: - **CV** Correlation vector. - **DetectorVersion** Most recently run detector version for the current campaign. - **GlobalEventCounter** Client side counter that indicates the ordering of events sent by this user. -- **key1** UI interaction data +- **key1** Interaction data for the UI - **key10** UI interaction data - **key11** UI interaction data - **key12** UI interaction data @@ -4039,9 +4539,9 @@ The following fields are available: - **key17** UI interaction data - **key18** UI interaction data - **key19** UI interaction data -- **key2** UI interaction data +- **key2** Interaction data for the UI - **key20** UI interaction data -- **key21** Interaction data for the UI +- **key21** UI interaction data - **key22** UI interaction data - **key23** UI interaction data - **key24** UI interaction data @@ -4050,12 +4550,12 @@ The following fields are available: - **key27** UI interaction data - **key28** UI interaction data - **key29** UI interaction data -- **key3** UI interaction data +- **key3** Interaction data for the UI - **key30** UI interaction data -- **key4** UI interaction data -- **key5** UI interaction data -- **key6** UI interaction data -- **key7** UI interaction data +- **key4** Interaction data for the UI +- **key5** UI interaction type +- **key6** Current package version of UNP +- **key7** UI interaction type - **key8** UI interaction data - **key9** UI interaction data - **PackageVersion** Current package version of the update notification. @@ -4353,6 +4853,12 @@ This event sends a summary of all the setup mitigations available for this updat +### Setup360Telemetry.Setup360OneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + + + ### Setup360Telemetry.UnexpectedEvent This event sends data indicating that the device has invoked the unexpected event phase of the upgrade, to help keep Windows up to date. @@ -4366,7 +4872,7 @@ The following fields are available: - **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. - **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. - **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. -- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used to diagnose errors. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used used to diagnose errors. - **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. - **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). - **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. @@ -4402,17 +4908,37 @@ This event provides the results from the WaaSMedic engine The following fields are available: - **detectionSummary** Result of each applicable detection that was run. -- **featureAssessmentImpact** Windows as a Service (WaaS) Assessment impact on feature updates +- **featureAssessmentImpact** WaaS Assessment impact for feature updates. - **hrEngineResult** Indicates the WaaSMedic engine operation error codes -- **insufficientSessions** True, if the device has enough activity to be eligible for update diagnostics. False, if otherwise -- **isManaged** Indicates the device is managed for updates -- **isWUConnected** Indicates the device is connected to Windows Update -- **noMoreActions** All available WaaSMedic diagnostics have run. There are no pending diagnostics and corresponding actions -- **qualityAssessmentImpact** Windows as a Service (WaaS) Assessment impact for quality updates +- **insufficientSessions** Device not eligible for diagnostics. +- **isManaged** Device is managed for updates. +- **isWUConnected** Device is connected to Windows Update. +- **noMoreActions** No more applicable diagnostics. +- **qualityAssessmentImpact** WaaS Assessment impact for quality updates. - **remediationSummary** Result of each operation performed on a device to fix an invalid state or configuration that's preventing the device from getting updates. For example, if Windows Update service is turned off, the fix is to turn the it back on. -- **usingBackupFeatureAssessment** The WaaSMedic engine contacts Windows as a Service (WaaS) Assessment to determine whether the device is up-to-date. If WaaS Assessment isn't available, the engine falls back to backup feature assessments, which are determined programmatically on the client -- **usingBackupQualityAssessment** The WaaSMedic engine contacts Windows as a Service (WaaS) Assessment to determine whether the device is up-to-date. If WaaS Assessment isn't available, the engine falls back to backup quality assessments, which are determined programmatically on the client -- **versionString** Installed version of the WaaSMedic engine +- **usingBackupFeatureAssessment** Relying on backup feature assessment. +- **usingBackupQualityAssessment** Relying on backup quality assessment. +- **versionString** Version of the WaaSMedic engine. + + +## Windows Error Reporting events + +### Microsoft.Windows.WERVertical.OSCrash + +This event sends binary data from the collected dump file wheneveer a bug check occurs, to help keep Windows up to date. The is the OneCore version of this event. + +The following fields are available: + +- **BootId** Uint32 identifying the boot number for this device. +- **BugCheckCode** Uint64 "bugcheck code" that identifies a proximate cause of the bug check. +- **BugCheckParameter1** Uint64 parameter providing additional information. +- **BugCheckParameter2** Uint64 parameter providing additional information. +- **BugCheckParameter3** Uint64 parameter providing additional information. +- **BugCheckParameter4** Uint64 parameter providing additional information. +- **DumpFileAttributes** Codes that identify the type of data contained in the dump file +- **DumpFileSize** Size of the dump file +- **IsValidDumpFile** True if the dump file is valid for the debugger, false otherwise +- **ReportId** WER Report Id associated with this bug check (used for finding the corresponding report archive in Watson). ## Windows Store events @@ -4798,144 +5324,6 @@ The following fields are available: ## Windows Update Delivery Optimization events -### Microsoft.OSG.DU.DeliveryOptClient.DownloadCanceled - -This event describes when a download was canceled with Delivery Optimization. It's used to understand and address problems regarding downloads. - -The following fields are available: - -- **background** Is the download being done in the background? -- **bytesFromCacheServer** Bytes received from a cache host. -- **bytesFromCDN** The number of bytes received from a CDN source. -- **bytesFromGroupPeers** The number of bytes received from a peer in the same group. -- **bytesFromIntPeers** The number of bytes received from peers not in the same LAN or in the same group. -- **bytesFromLocalCache** Bytes copied over from local (on disk) cache. -- **bytesFromPeers** The number of bytes received from a peer in the same LAN. -- **callerName** Name of the API caller. -- **cdnErrorCodes** A list of CDN connection errors since the last FailureCDNCommunication event. -- **cdnErrorCounts** The number of times each error in cdnErrorCodes was encountered. -- **clientTelId** A random number used for device sampling. -- **dataSourcesTotal** Bytes received per source type, accumulated for the whole session. -- **doErrorCode** The Delivery Optimization error code that was returned. -- **errorCode** The error code that was returned. -- **experimentId** When running a test, this is used to correlate events that are part of the same test. -- **fileID** The ID of the file being downloaded. -- **gCurMemoryStreamBytes** Current usage for memory streaming. -- **gMaxMemoryStreamBytes** Maximum usage for memory streaming. -- **isVpn** Is the device connected to a Virtual Private Network? -- **jobID** Identifier for the Windows Update job. -- **reasonCode** Reason the action or event occurred. -- **scenarioID** The ID of the scenario. -- **sessionID** The ID of the file download session. -- **updateID** The ID of the update being downloaded. -- **usedMemoryStream** Did the download use memory streaming? - - -### Microsoft.OSG.DU.DeliveryOptClient.DownloadCompleted - -This event describes when a download has completed with Delivery Optimization. It's used to understand and address problems regarding downloads. - -The following fields are available: - -- **background** Is the download a background download? -- **bytesFromCacheServer** Bytes received from a cache host. -- **bytesFromCDN** The number of bytes received from a CDN source. -- **bytesFromGroupPeers** The number of bytes received from a peer in the same domain group. -- **bytesFromIntPeers** The number of bytes received from peers not in the same LAN or in the same domain group. -- **bytesFromLocalCache** Bytes copied over from local (on disk) cache. -- **bytesFromPeers** The number of bytes received from a peer in the same LAN. -- **bytesRequested** The total number of bytes requested for download. -- **cacheServerConnectionCount** Number of connections made to cache hosts. -- **callerName** Name of the API caller. -- **cdnConnectionCount** The total number of connections made to the CDN. -- **cdnErrorCodes** A list of CDN connection errors since the last FailureCDNCommunication event. -- **cdnErrorCounts** The number of times each error in cdnErrorCodes was encountered. -- **cdnIp** The IP address of the source CDN. -- **clientTelId** A random number used for device sampling. -- **dataSourcesTotal** Bytes received per source type, accumulated for the whole session. -- **doErrorCode** The Delivery Optimization error code that was returned. -- **downlinkBps** The maximum measured available download bandwidth (in bytes per second). -- **downlinkUsageBps** The download speed (in bytes per second). -- **downloadMode** The download mode used for this file download session. -- **downloadModeSrc** Source of the DownloadMode setting (KvsProvider = 0, GeoProvider = 1, GeoVerProvider = 2, CpProvider = 3, DiscoveryProvider = 4, RegistryProvider = 5, GroupPolicyProvider = 6, MdmProvider = 7, SettingsProvider = 8, InvalidProviderType = 9). -- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. -- **fileID** The ID of the file being downloaded. -- **fileSize** The size of the file being downloaded. -- **gCurMemoryStreamBytes** Current usage for memory streaming. -- **gMaxMemoryStreamBytes** Maximum usage for memory streaming. -- **groupConnectionCount** The total number of connections made to peers in the same group. -- **internetConnectionCount** The total number of connections made to peers not in the same LAN or the same group. -- **isVpn** Is the device connected to a Virtual Private Network? -- **jobID** Identifier for the Windows Update job. -- **lanConnectionCount** The total number of connections made to peers in the same LAN. -- **numPeers** The total number of peers used for this download. -- **restrictedUpload** Is the upload restricted? -- **scenarioID** The ID of the scenario. -- **sessionID** The ID of the download session. -- **totalTimeMs** Duration of the download (in seconds). -- **updateID** The ID of the update being downloaded. -- **uplinkBps** The maximum measured available upload bandwidth (in bytes per second). -- **uplinkUsageBps** The upload speed (in bytes per second). -- **usedMemoryStream** Did the download use memory streaming? - - -### Microsoft.OSG.DU.DeliveryOptClient.DownloadPaused - -This event represents a temporary suspension of a download with Delivery Optimization. It's used to understand and address problems regarding downloads. - -The following fields are available: - -- **background** Is the download a background download? -- **callerName** The name of the API caller. -- **clientTelId** A random number used for device sampling. -- **errorCode** The error code that was returned. -- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. -- **fileID** The ID of the file being paused. -- **isVpn** Is the device connected to a Virtual Private Network? -- **jobID** Identifier for the Windows Update job. -- **reasonCode** The reason for pausing the download. -- **scenarioID** The ID of the scenario. -- **sessionID** The ID of the download session. -- **updateID** The ID of the update being paused. - - -### Microsoft.OSG.DU.DeliveryOptClient.DownloadStarted - -This event sends data describing the start of a new download to enable Delivery Optimization. It's used to understand and address problems regarding downloads. - -The following fields are available: - -- **background** Indicates whether the download is happening in the background. -- **bytesRequested** Number of bytes requested for the download. -- **callerName** Name of the API caller. -- **cdnUrl** The URL of the source CDN. -- **clientTelId** Random number used for device selection -- **costFlags** A set of flags representing network cost. -- **deviceProfile** Identifies the usage or form factor (such as Desktop, Xbox, or VM). -- **diceRoll** Random number used for determining if a client will use peering. -- **doClientVersion** The version of the Delivery Optimization client. -- **doErrorCode** The Delivery Optimization error code that was returned. -- **downloadMode** The download mode used for this file download session (CdnOnly = 0, Lan = 1, Group = 2, Internet = 3, Simple = 99, Bypass = 100). -- **downloadModeSrc** Source of the DownloadMode setting (KvsProvider = 0, GeoProvider = 1, GeoVerProvider = 2, CpProvider = 3, DiscoveryProvider = 4, RegistryProvider = 5, GroupPolicyProvider = 6, MdmProvider = 7, SettingsProvider = 8, InvalidProviderType = 9). -- **errorCode** The error code that was returned. -- **experimentId** ID used to correlate client/services calls that are part of the same test during A/B testing. -- **fileID** The ID of the file being downloaded. -- **filePath** The path to where the downloaded file will be written. -- **fileSize** Total file size of the file that was downloaded. -- **fileSizeCaller** Value for total file size provided by our caller. -- **groupID** ID for the group. -- **isVpn** Indicates whether the device is connected to a Virtual Private Network. -- **jobID** The ID of the Windows Update job. -- **minDiskSizeGB** The minimum disk size (in GB) policy set for the device to allow peering with delivery optimization. -- **minDiskSizePolicyEnforced** Indicates whether there is an enforced minimum disk size requirement for peering. -- **minFileSizePolicy** The minimum content file size policy to allow the download using peering with delivery optimization. -- **peerID** The ID for this delivery optimization client. -- **scenarioID** The ID of the scenario. -- **sessionID** The ID for the file download session. -- **updateID** The ID of the update being downloaded. -- **usedMemoryStream** Indicates whether the download used memory streaming. - - ### Microsoft.OSG.DU.DeliveryOptClient.FailureCdnCommunication This event represents a failure to download from a CDN with Delivery Optimization. It's used to understand and address problems regarding downloads. @@ -4959,20 +5347,6 @@ The following fields are available: - **sessionID** The ID of the download session. -### Microsoft.OSG.DU.DeliveryOptClient.JobError - -This event represents a Windows Update job error. It allows for investigation of top errors. - -The following fields are available: - -- **clientTelId** A random number used for device sampling. -- **doErrorCode** Error code returned for delivery optimization. -- **errorCode** The error code returned. -- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. -- **fileID** The ID of the file being downloaded. -- **jobID** The Windows Update job ID. - - ## Windows Update events ### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentCommit @@ -5067,6 +5441,24 @@ The following fields are available: - **updateId** Unique ID for each Update. +### Microsoft.Windows.Update.NotificationUx.DialogNotificationToBeDisplayed + +This event indicates that a notification dialog box is about to be displayed to user. + + + +### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootFailedDialog + +This event indicates that the Enhanced Engaged restart "restart failed" dialog box was displayed. + + + +### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootImminentDialog + +This event indicates that the Enhanced Engaged restart "restart imminent" dialog box was displayed. + + + ### Microsoft.Windows.Update.NotificationUx.RebootScheduled Indicates when a reboot is scheduled by the system or a user for a security, quality, or feature update. @@ -5085,6 +5477,18 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.ActivityRestrictedByActiveHoursPolicy + +This event indicates a policy is present that may restrict update activity to outside of active hours. + + + +### Microsoft.Windows.Update.Orchestrator.BlockedByActiveHours + +This event indicates that update activity was blocked because it is within the active hours window. + + + ### Microsoft.Windows.Update.Orchestrator.CommitFailed This event indicates that a device was unable to restart after an update. @@ -5114,16 +5518,16 @@ This event indicates that a scan for a Windows Update occurred. The following fields are available: - **deferReason** Reason why the device could not check for updates. -- **detectionBlockreason** Reason for detection not completing. +- **detectionBlockreason** Reason for blocking detection - **detectionRetryMode** Indicates whether we will try to scan again. -- **errorCode** The returned error code. -- **eventScenario** End-to-end update session ID, or indicates the purpose of sending this event - whether because the software distribution just started installing content, or whether it was cancelled, succeeded, or failed. +- **errorCode** Error value +- **eventScenario** End to end update session ID, or indicates the purpose of sending this event - whether because the software distribution just started installing content, or whether it was cancelled, succeeded, or failed. - **flightID** The specific ID of the Windows Insider build the device is getting. - **interactive** Indicates whether the session was user initiated. - **revisionNumber** Update revision number. - **updateId** Update ID. -- **updateScenarioType** Update Session type -- **wuDeviceid** Device ID +- **updateScenarioType** The update session type. +- **wuDeviceid** Unique device ID used by Windows Update. ### Microsoft.Windows.Update.Orchestrator.DisplayNeeded @@ -5142,6 +5546,23 @@ The following fields are available: - **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue +### Microsoft.Windows.Update.Orchestrator.Download + +This event sends launch data for a Windows Update download to help keep Windows up to date. + +The following fields are available: + +- **deferReason** Reason for download not completing. +- **errorCode** An error code represented as a hexadecimal value. +- **eventScenario** End-to-end update session ID. +- **flightID** The specific ID of the Windows Insider build the device is getting. +- **interactive** Indicates whether the session is user initiated. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.FlightInapplicable This event indicates that the update is no longer applicable to this device. @@ -5169,6 +5590,48 @@ The following fields are available: - **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. +### Microsoft.Windows.Update.Orchestrator.InitiatingReboot + +This event sends data about an Orchestrator requesting a reboot from power management to help keep Windows up to date. + +The following fields are available: + +- **EventPublishedTime** Time of the event. +- **flightID** Unique update ID +- **interactive** Indicates whether the reboot initiation stage of the update process was entered as a result of user action. +- **rebootOutsideOfActiveHours** Indicates whether the reboot was to occur outside of active hours. +- **revisionNumber** Revision number of the update. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.Install + +This event sends launch data for a Windows Update install to help keep Windows up to date. + +The following fields are available: + +- **batteryLevel** Current battery capacity in mWh or percentage left. +- **deferReason** Reason for install not completing. +- **errorCode** The error code reppresented by a hexadecimal value. +- **eventScenario** End-to-end update session ID. +- **flightID** The specific ID of the Windows Insider build the device is getting. +- **flightUpdate** Indicates whether the update is a Windows Insider build. +- **ForcedRebootReminderSet** A boolean value that indicates if a forced reboot will happen for updates. +- **installCommitfailedtime** The time it took for a reboot to happen but the upgrade failed to progress. +- **installRebootinitiatetime** The time it took for a reboot to be attempted. +- **interactive** Identifies if session is user initiated. +- **minutesToCommit** The time it took to install updates. +- **rebootOutsideOfActiveHours** Indicates whether a reboot is scheduled outside of active hours. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.LowUptimes This event is sent if a device is identified as not having sufficient uptime to reliably process updates in order to keep secure. @@ -5182,6 +5645,18 @@ The following fields are available: - **wuDeviceid** Unique device ID for Windows Update. +### Microsoft.Windows.Update.Orchestrator.OneshotUpdateDetection + +This event returns data about scans initiated through settings UI, or background scans that are urgent; to help keep Windows up to date. + +The following fields are available: + +- **externalOneshotupdate** The last time a task-triggered scan was completed. +- **interactiveOneshotupdate** The last time an interactive scan was completed. +- **oldlastscanOneshotupdate** The last time a scan completed successfully. +- **wuDeviceid** The Windows Update Device GUID (Globally-Unique ID). + + ### Microsoft.Windows.Update.Orchestrator.PreShutdownStart This event is generated before the shutdown and commit operations. @@ -5191,6 +5666,166 @@ The following fields are available: - **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. +### Microsoft.Windows.Update.Orchestrator.RebootFailed + +This event sends information about whether an update required a reboot and reasons for failure, to help keep Windows up to date. + +The following fields are available: + +- **batteryLevel** Current battery capacity in mWh or percentage left. +- **deferReason** Reason for install not completing. +- **EventPublishedTime** The time that the reboot failure occurred. +- **flightID** Unique update ID. +- **rebootOutsideOfActiveHours** Indicates whether a reboot was scheduled outside of active hours. +- **RebootResults** Hex code indicating failure reason. Typically, we expect this to be a specific USO generated hex code. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.RefreshSettings + +This event sends basic data about the version of upgrade settings applied to the system to help keep Windows up to date. + +The following fields are available: + +- **errorCode** Hex code for the error message, to allow lookup of the specific error. +- **settingsDownloadTime** Timestamp of the last attempt to acquire settings. +- **settingsETag** Version identifier for the settings. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.RestoreRebootTask + +This event sends data indicating that a reboot task is missing unexpectedly on a device and the task is restored because a reboot is still required, to help keep Windows up to date. + +The following fields are available: + +- **RebootTaskRestoredTime** Time at which this reboot task was restored. +- **wuDeviceid** Device ID for the device on which the reboot is restored. + + +### Microsoft.Windows.Update.Orchestrator.SystemNeeded + +This event sends data about why a device is unable to reboot, to help keep Windows up to date. + +The following fields are available: + +- **eventScenario** End-to-end update session ID. +- **rebootOutsideOfActiveHours** Indicates whether a reboot is scheduled outside of active hours. +- **revisionNumber** Update revision number. +- **systemNeededReason** List of apps or tasks that are preventing the system from restarting. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.UpdatePolicyCacheRefresh + +This event sends data on whether Update Management Policies were enabled on a device, to help keep Windows up to date. + +The following fields are available: + +- **configuredPoliciescount** Number of policies on the device. +- **policiesNamevaluesource** Policy name and source of policy (group policy, MDM or flight). +- **policyCacherefreshtime** Time when policy cache was refreshed. +- **updateInstalluxsetting** Indicates whether a user has set policies via a user experience option. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.updateSettingsFlushFailed + +This event sends information about an update that encountered problems and was not able to complete. + +The following fields are available: + +- **errorCode** The error code encountered. +- **wuDeviceid** The ID of the device in which the error occurred. + + +### Microsoft.Windows.Update.Orchestrator.USODiagnostics + +This event sends data on whether the state of the update attempt, to help keep Windows up to date. + +The following fields are available: + +- **errorCode** result showing success or failure of current update +- **LastApplicableUpdateFoundTime** The time when the last applicable update was found. +- **LastDownloadDeferredReason** The last reason download was deferred. +- **LastDownloadDeferredTime** The time of the download deferral. +- **LastDownloadFailureError** The last download failure. +- **LastDownloadFailureTime** The time of the last download failure. +- **LastInstallCompletedTime** The time when the last successful install completed. +- **LastInstallDeferredReason** The reason the last install was deferred. +- **LastInstallDeferredTime** The time when the last install was deferred. +- **LastInstallFailureError** The error code associated with the last install failure. +- **LastInstallFailureTime** The time when the last install failed to complete. +- **LastRebootDeferredReason** The reason the last reboot was deferred. +- **LastRebootDeferredTime** The time when the last reboot was deferred. +- **LastRebootPendingTime** The time when the last reboot state was set to “Pending”. +- **LastScanDeferredReason** The reason the last scan was deferred. +- **LastScanDeferredTime** The time when the last scan was deferred. +- **LastScanFailureError** The error code for the last scan failure. +- **LastScanFailureTime** The time when the last scan failed. +- **LastUpdateCheckTime** The time of the last update check. +- **LastUpdateDownloadTime** The time when the last update was downloaded. +- **LastUpgradeInstallFailureError** The error code for the last upgrade install failure. +- **LastUpgradeInstallFailureTime** The time of the last upgrade install failure. +- **LowUpTimeDetectTime** The last time “low up-time” was detected. +- **NoLowUpTimeDetectTime** The last time no “low up-time” was detected. +- **RebootRequired** Indicates reboot is required. +- **revisionNumber** Unique revision number of the Update +- **updateId** Unique ID for Update +- **updateState** Progress within an update state +- **UpgradeInProgressTime** The amount of time a feature update has been in progress. +- **WaaSFeatureAssessmentDays** The number of days Feature Update Assessment has been out of date. +- **WaaSFeatureAssessmentImpact** The impact of the Feature Update Assessment. +- **WaaSUpToDateAssessmentDays** The number of days Quality Update Assessment has been out of date. +- **WaaSUpToDateAssessmentImpact** The impact of Quality Update Assessment. +- **wuDeviceid** Unique ID for Device + + +### Microsoft.Windows.Update.Orchestrator.UsoSession + +This event represents the state of the USO service at start and completion. + +The following fields are available: + +- **activeSessionid** A unique session GUID. +- **eventScenario** The state of the update action. +- **interactive** Is the USO session interactive? +- **lastErrorcode** The last error that was encountered. +- **lastErrorstate** The state of the update when the last error was encountered. +- **sessionType** A GUID that refers to the update session type. +- **updateScenarioType** A descriptive update session type. +- **wuDeviceid** The Windows Update device GUID. + + +### Microsoft.Windows.Update.Ux.MusNotification.EnhancedEngagedRebootUxState + +This event sends information about the configuration of Enhanced Direct-to-Engaged (eDTE), which includes values for the timing of how eDTE will progress through each phase of the reboot. + +The following fields are available: + +- **AcceptAutoModeLimit** The maximum number of days for a device to automatically enter Auto Reboot mode. +- **AutoToAutoFailedLimit** The maximum number of days for Auto Reboot mode to fail before a Reboot Failed dialog will be shown. +- **DeviceLocalTime** The date and time (based on the device date/time settings) the reboot mode changed. +- **EngagedModeLimit** The number of days to switch between DTE (Direct-to-Engaged) dialogs. +- **EnterAutoModeLimit** The maximum number of days a device can enter Auto Reboot mode. +- **ETag** The Entity Tag that represents the OneSettings version. +- **IsForcedEnabled** Identifies whether Forced Reboot mode is enabled for the device. +- **IsUltimateForcedEnabled** Identifies whether Ultimate Forced Reboot mode is enabled for the device. +- **OldestUpdateLocalTime** The date and time (based on the device date/time settings) this update’s reboot began pending. +- **RebootUxState** Identifies the reboot state: Engaged, Auto, Forced, UltimateForced. +- **RebootVersion** The version of the DTE (Direct-to-Engaged). +- **SkipToAutoModeLimit** The maximum number of days to switch to start while in Auto Reboot mode. +- **UpdateId** The ID of the update that is waiting for reboot to finish installation. +- **UpdateRevision** The revision of the update that is waiting for reboot to finish installation. + + ### Microsoft.Windows.Update.Ux.MusNotification.RebootNoLongerNeeded This event is sent when a security update has successfully completed. @@ -5209,6 +5844,25 @@ The following fields are available: - **Reason** The reason sent which will cause the reboot to defer. +### Microsoft.Windows.Update.Ux.MusNotification.RebootScheduled + +This event sends basic information about scheduling an update-related reboot, to get security updates and to help keep Windows up-to-date. + +The following fields are available: + +- **activeHoursApplicable** Indicates whether Active Hours applies on this device. +- **forcedReboot** True, if a reboot is forced on the device. Otherwise, this is False +- **rebootArgument** Argument for the reboot task. It also represents specific reboot related action. +- **rebootOutsideOfActiveHours** True, if a reboot is scheduled outside of active hours. False, otherwise. +- **rebootScheduledByUser** True, if a reboot is scheduled by user. False, if a reboot is scheduled automatically. +- **rebootState** Current state of the reboot. +- **revisionNumber** Revision number of the update that is getting installed with this reboot. +- **scheduledRebootTime** Time scheduled for the reboot. +- **scheduledRebootTimeInUTC** Time scheduled for the reboot, in UTC. +- **updateId** Identifies which update is being scheduled. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Ux.MusNotification.UxBrokerFirstReadyToReboot This event is fired the first time when the reboot is required. @@ -5227,7 +5881,7 @@ The following fields are available: ### Microsoft.Windows.Update.Ux.MusUpdateSettings.RebootScheduled -This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up-to-date +This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up to date. The following fields are available: @@ -5244,6 +5898,32 @@ The following fields are available: - **wuDeviceid** The Windows Update device GUID. +## Windows Update mitigation events + +### Mitigation360Telemetry.MitigationCustom.CleanupSafeOsImages + +This event sends data specific to the CleanupSafeOsImages mitigation used for OS Updates. + +The following fields are available: + +- **ClientId** In the WU scenario, this will be the WU client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightId** Unique identifier for each flight. +- **InstanceId** Unique GUID that identifies each instances of setuphost.exe. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **MountedImageCount** Number of mounted images. +- **MountedImageMatches** Number of mounted images that were under %systemdrive%\$Windows.~BT. +- **MountedImagesFailed** Number of mounted images under %systemdrive%\$Windows.~BT that could not be removed. +- **MountedImagesRemoved** Number of mounted images under %systemdrive%\$Windows.~BT that were successfully removed. +- **MountedImagesSkipped** Number of mounted images that were not under %systemdrive%\$Windows.~BT. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** HResult of this operation. +- **ScenarioId** ID indicating the mitigation scenario. +- **ScenarioSupported** Indicates whether the scenario was supported. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each Update. +- **WuId** Unique ID for the Windows Update client. + + ## Winlogon events ### Microsoft.Windows.Security.Winlogon.SetupCompleteLogon diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md index 9af3127db4..945ae68322 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md @@ -9,7 +9,7 @@ ms.pagetype: security localizationpriority: high author: brianlic-msft ms.author: brianlic -ms.date: 09/10/2018 +ms.date: 11/07/2018 --- @@ -28,6 +28,7 @@ Use this article to learn about diagnostic events, grouped by event area, and th You can learn more about Windows functional and diagnostic data through these articles: + - [Windows 10, version 1809 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1809.md) - [Windows 10, version 1709 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1709.md) - [Windows 10, version 1703 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1703.md) @@ -35,6 +36,8 @@ You can learn more about Windows functional and diagnostic data through these ar - [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) + + ## Appraiser events ### Microsoft.Windows.Appraiser.General.ChecksumTotalPictureCount @@ -75,7 +78,7 @@ The following fields are available: - **DecisionSystemBios_RS3** The total DecisionSystemBios objects targeting the next release of Windows on this device. - **DecisionTest_RS1** An ID for the system, calculated by hashing hardware identifiers. - **InventoryApplicationFile** The count of the number of this particular object type present on this device. -- **InventoryLanguagePack** The count of the number of this particular object type present on this device. +- **InventoryLanguagePack** The count of InventoryLanguagePack objects present on this machine. - **InventoryMediaCenter** The count of the number of this particular object type present on this device. - **InventorySystemBios** The count of the number of this particular object type present on this device. - **InventoryTest** The count of the number of this particular object type present on this device. @@ -369,7 +372,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove -This event indicates that the DecisionApplicationFile object is no longer present. +This event indicates Indicates that the DecisionApplicationFile object is no longer present. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -575,6 +578,17 @@ The following fields are available: - **AppraiserVersion** The version of the Appraiser file that is generating the events. +### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeStartSync + +This event indicates that a new set of DecisionMatchingInfoPostUpgradeAdd events will be sent. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **AppraiserVersion** The version of the Appraiser file that is generating the events. + + ### Microsoft.Windows.Appraiser.General.DecisionMediaCenterAdd This event sends decision data about the presence of Windows Media Center, to help keep Windows up to date. @@ -701,7 +715,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. +This event indicates indicates that a new set of InventoryApplicationFileAdd events will be sent. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -822,6 +836,31 @@ The following fields are available: - **AppraiserVersion** The version of the Appraiser file that is generating the events. +### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageAdd + +This event is only runs during setup. It provides a listing of the uplevel driver packages that were downloaded before the upgrade. Is critical to understanding if failures in setup can be traced to not having sufficient uplevel drivers before the upgrade. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **AppraiserVersion** The version of the Appraiser file that is generating the events. +- **BootCritical** Is the driver package marked as boot critical? +- **Build** The build value from the driver package. +- **CatalogFile** The name of the catalog file within the driver package. +- **Class** The device class from the driver package. +- **ClassGuid** The device class unique ID from the driver package. +- **Date** The date from the driver package. +- **Inbox** Is the driver package of a driver that is included with Windows? +- **OriginalName** The original name of the INF file before it was renamed. Generally a path under $WINDOWS.~BT\Drivers\DU. +- **Provider** The provider of the driver package. +- **PublishedName** The name of the INF file after it was renamed. +- **Revision** The revision of the driver package. +- **SignatureStatus** Indicates if the driver package is signed. Unknown = 0, Unsigned = 1, Signed = 2. +- **VersionMajor** The major version of the driver package. +- **VersionMinor** The minor version of the driver package. + + ### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageRemove This event indicates that the InventoryUplevelDriverPackage object is no longer present. @@ -1179,6 +1218,23 @@ The following fields are available: - **AppraiserVersion** The version of the Appraiser file that is generating the events. +### Microsoft.Windows.Appraiser.General.SystemWlanAdd + +This event sends data indicating whether the system has WLAN, and if so, whether it uses an emulated driver that could block an upgrade, to help keep Windows up-to-date. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **AppraiserVersion** The version of the Appraiser file that is generating the events. +- **Blocking** Is the upgrade blocked because of an emulated WLAN driver? +- **HasWlanBlock** Does the emulated WLAN driver have an upgrade block? +- **WlanEmulatedDriver** Does the device have an emulated WLAN driver? +- **WlanExists** Does the device support WLAN at all? +- **WlanModulePresent** Are any WLAN modules present? +- **WlanNativeDriver** Does the device have a non-emulated WLAN driver? + + ### Microsoft.Windows.Appraiser.General.SystemWlanRemove This event indicates that the SystemWlan object is no longer present. @@ -1292,7 +1348,7 @@ The following fields are available: - **AppraiserTaskExitCode** The Appraiser task exist code. - **AppraiserTaskLastRun** The last runtime for the Appraiser task. - **CensusVersion** The version of Census that generated the current data for this device. -- **IEVersion** Retrieves which version of Internet Explorer is running on this device. +- **IEVersion** IE version running on the device. ### Census.Battery @@ -2594,6 +2650,91 @@ The following fields are available: - **CV** Correlation vector. +## DxgKernelTelemetry events + +### DxgKrnlTelemetry.GPUAdapterInventoryV2 + +This event sends basic GPU and display driver information to keep Windows and display drivers up-to-date. + +The following fields are available: + +- **AdapterTypeValue** The numeric value indicating the type of Graphics adapter. +- **aiSeqId** The event sequence ID. +- **bootId** The system boot ID. +- **BrightnessVersionViaDDI** The version of the Display Brightness Interface. +- **ComputePreemptionLevel** The maximum preemption level supported by GPU for compute payload. +- **DedicatedSystemMemoryB** The amount of system memory dedicated for GPU use (in bytes). +- **DedicatedVideoMemoryB** The amount of dedicated VRAM of the GPU (in bytes). +- **DisplayAdapterLuid** The display adapter LUID. +- **DriverDate** The date of the display driver. +- **DriverRank** The rank of the display driver. +- **DriverVersion** The display driver version. +- **DX10UMDFilePath** The file path to the location of the DirectX 10 Display User Mode Driver in the Driver Store. +- **DX11UMDFilePath** The file path to the location of the DirectX 11 Display User Mode Driver in the Driver Store. +- **DX12UMDFilePath** The file path to the location of the DirectX 12 Display User Mode Driver in the Driver Store. +- **DX9UMDFilePath** The file path to the location of the DirectX 9 Display User Mode Driver in the Driver Store. +- **GPUDeviceID** The GPU device ID. +- **GPUPreemptionLevel** The maximum preemption level supported by GPU for graphics payload. +- **GPURevisionID** The GPU revision ID. +- **GPUVendorID** The GPU vendor ID. +- **InterfaceId** The GPU interface ID. +- **IsDisplayDevice** Does the GPU have displaying capabilities? +- **IsHybridDiscrete** Does the GPU have discrete GPU capabilities in a hybrid device? +- **IsHybridIntegrated** Does the GPU have integrated GPU capabilities in a hybrid device? +- **IsLDA** Is the GPU comprised of Linked Display Adapters? +- **IsMiracastSupported** Does the GPU support Miracast? +- **IsMismatchLDA** Is at least one device in the Linked Display Adapters chain from a different vendor? +- **IsMPOSupported** Does the GPU support Multi-Plane Overlays? +- **IsMsMiracastSupported** Are the GPU Miracast capabilities driven by a Microsoft solution? +- **IsPostAdapter** Is this GPU the POST GPU in the device? +- **IsRemovable** TRUE if the adapter supports being disabled or removed. +- **IsRenderDevice** Does the GPU have rendering capabilities? +- **IsSoftwareDevice** Is this a software implementation of the GPU? +- **KMDFilePath** The file path to the location of the Display Kernel Mode Driver in the Driver Store. +- **MeasureEnabled** Is the device listening to MICROSOFT_KEYWORD_MEASURES? +- **NumVidPnSources** The number of supported display output sources. +- **NumVidPnTargets** The number of supported display output targets. +- **SharedSystemMemoryB** The amount of system memory shared by GPU and CPU (in bytes). +- **SubSystemID** The subsystem ID. +- **SubVendorID** The GPU sub vendor ID. +- **TelemetryEnabled** Is the device listening to MICROSOFT_KEYWORD_TELEMETRY? +- **TelInvEvntTrigger** What triggered this event to be logged? Example: 0 (GPU enumeration) or 1 (DxgKrnlTelemetry provider toggling) +- **version** The event version. +- **WDDMVersion** The Windows Display Driver Model version. + + +## Fault Reporting events + +### Microsoft.Windows.FaultReporting.AppCrashEvent + +This event sends data about crashes for both native and managed applications, to help keep Windows up to date. The data includes information about the crashing process and a summary of its exception record. It does not contain any Watson bucketing information. The bucketing information is recorded in a Windows Error Reporting (WER) event that is generated when the WER client reports the crash to the Watson service, and the WER event will contain the same ReportID (see field 14 of crash event, field 19 of WER event) as the crash event for the crash being reported. AppCrash is emitted once for each crash handled by WER (e.g. from an unhandled exception or FailFast or ReportException). Note that Generic Watson event types (e.g. from PLM) that may be considered crashes\" by a user DO NOT emit this event. + +The following fields are available: + +- **AppName** The name of the app that has crashed. +- **AppSessionGuid** GUID made up of process ID and is used as a correlation vector for process instances in the telemetry backend. +- **AppTimeStamp** The date/time stamp of the app. +- **AppVersion** The version of the app that has crashed. +- **ExceptionCode** The exception code returned by the process that has crashed. +- **ExceptionOffset** The address where the exception had occurred. +- **Flags** Flags indicating how reporting is done. For example, queue the report, do not offer JIT debugging, or do not terminate the process after reporting. +- **FriendlyAppName** The description of the app that has crashed, if different from the AppName. Otherwise, the process name. +- **IsCrashFatal** (Deprecated) True/False to indicate whether the crash resulted in process termination. +- **IsFatal** True/False to indicate whether the crash resulted in process termination. +- **ModName** Exception module name (e.g. bar.dll). +- **ModTimeStamp** The date/time stamp of the module. +- **ModVersion** The version of the module that has crashed. +- **PackageFullName** Store application identity. +- **PackageRelativeAppId** Store application identity. +- **ProcessArchitecture** Architecture of the crashing process, as one of the PROCESSOR_ARCHITECTURE_* constants: 0: PROCESSOR_ARCHITECTURE_INTEL. 5: PROCESSOR_ARCHITECTURE_ARM. 9: PROCESSOR_ARCHITECTURE_AMD64. 12: PROCESSOR_ARCHITECTURE_ARM64. +- **ProcessCreateTime** The time of creation of the process that has crashed. +- **ProcessId** The ID of the process that has crashed. +- **ReportId** A GUID used to identify the report. This can used to track the report across Watson. +- **TargetAppId** The kernel reported AppId of the application being reported. +- **TargetAppVer** The specific version of the application being reported +- **TargetAsId** The sequence number for the hanging process. + + ## Feature update events ### Microsoft.Windows.Upgrade.Uninstall.UninstallFailed @@ -2618,6 +2759,34 @@ This event sends basic metadata about the starting point of uninstalling a featu +## Hang Reporting events + +### Microsoft.Windows.HangReporting.AppHangEvent + +This event sends data about hangs for both native and managed applications, to help keep Windows up to date. It does not contain any Watson bucketing information. The bucketing information is recorded in a Windows Error Reporting (WER) event that is generated when the WER client reports the hang to the Watson service, and the WER event will contain the same ReportID (see field 13 of hang event, field 19 of WER event) as the hang event for the hang being reported. AppHang is reported only on PC devices. It handles classic Win32 hangs and is emitted only once per report. Some behaviors that may be perceived by a user as a hang are reported by app managers (e.g. PLM/RM/EM) as Watson Generics and will not produce AppHang events. + +The following fields are available: + +- **AppName** The name of the app that has hung. +- **AppSessionGuid** GUID made up of process id used as a correlation vector for process instances in the telemetry backend. +- **AppVersion** The version of the app that has hung. +- **IsFatal** True/False based on whether the hung application caused the creation of a Fatal Hang Report. +- **PackageFullName** Store application identity. +- **PackageRelativeAppId** Store application identity. +- **ProcessArchitecture** Architecture of the hung process, as one of the PROCESSOR_ARCHITECTURE_* constants: 0: PROCESSOR_ARCHITECTURE_INTEL. 5: PROCESSOR_ARCHITECTURE_ARM. 9: PROCESSOR_ARCHITECTURE_AMD64. 12: PROCESSOR_ARCHITECTURE_ARM64. +- **ProcessCreateTime** The time of creation of the process that has hung. +- **ProcessId** The ID of the process that has hung. +- **ReportId** A GUID used to identify the report. This can used to track the report across Watson. +- **TargetAppId** The kernel reported AppId of the application being reported. +- **TargetAppVer** The specific version of the application being reported. +- **TargetAsId** The sequence number for the hanging process. +- **TypeCode** Bitmap describing the hang type. +- **WaitingOnAppName** If this is a cross process hang waiting for an application, this has the name of the application. +- **WaitingOnAppVersion** If this is a cross process hang, this has the version of the application for which it is waiting. +- **WaitingOnPackageFullName** If this is a cross process hang waiting for a package, this has the full name of the package for which it is waiting. +- **WaitingOnPackageRelativeAppId** If this is a cross process hang waiting for a package, this has the relative application id of the package. + + ## Inventory events ### Microsoft.Windows.Inventory.Core.AmiTelCacheChecksum @@ -2693,6 +2862,18 @@ The following fields are available: - **Version** The version number of the program. +### Microsoft.Windows.Inventory.Core.InventoryApplicationDriverAdd + +This event represents what drivers an application installs. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **InventoryVersion** The version of the inventory component. +- **ProgramIds** The unique program identifier the driver is associated with. + + ### Microsoft.Windows.Inventory.Core.InventoryApplicationFrameworkAdd This event provides the basic metadata about the frameworks an application may depend on. @@ -2839,6 +3020,17 @@ The following fields are available: - **InventoryVersion** The version of the inventory file generating the events. +### Microsoft.Windows.Inventory.Core.InventoryDeviceMediaClassRemove + +This event indicates that the InventoryDeviceMediaClassRemove object is no longer present. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **InventoryVersion** The version of the inventory file generating the events. + + ### Microsoft.Windows.Inventory.Core.InventoryDeviceMediaClassStartSync This event indicates that a new set of InventoryDeviceMediaClassSAdd events will be sent. @@ -2873,7 +3065,7 @@ The following fields are available: - **Enumerator** The date of the driver loaded for the device. - **HWID** The version of the driver loaded for the device. - **Inf** The bus that enumerated the device. -- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/library/windows/hardware/ff543130.aspx +- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/en-us/library/windows/hardware/ff543130.aspx - **InventoryVersion** List of hardware ids for the device. - **LowerClassFilters** Lower filter class drivers IDs installed for the device - **LowerFilters** Lower filter drivers IDs installed for the device @@ -3438,6 +3630,557 @@ The following fields are available: - **UptimeDeltaMS** Total time (in milliseconds) added to Uptime since the last event +## OneDrive events + +### Microsoft.OneDrive.Sync.Setup.APIOperation + +This event includes basic data about install and uninstall OneDrive API operations. + +The following fields are available: + +- **APIName** The name of the API. +- **Duration** How long the operation took. +- **IsSuccess** Was the operation successful? +- **ResultCode** The result code. +- **ScenarioName** The name of the scenario. + + +### Microsoft.OneDrive.Sync.Setup.EndExperience + +This event includes a success or failure summary of the installation. + +The following fields are available: + +- **APIName** The name of the API. +- **HResult** HResult of the operation +- **IsSuccess** Whether the operation is successful or not +- **ScenarioName** The name of the scenario. + + +### Microsoft.OneDrive.Sync.Setup.OSUpgradeInstallationOperation + +This event is related to the OS version when the OS is upgraded with OneDrive installed. + +The following fields are available: + +- **CurrentOneDriveVersion** The current version of OneDrive. +- **CurrentOSBuildBranch** The current branch of the operating system. +- **CurrentOSBuildNumber** The current build number of the operating system. +- **CurrentOSVersion** The current version of the operating system. +- **HResult** The HResult of the operation. +- **SourceOSBuildBranch** The source branch of the operating system. +- **SourceOSBuildNumber** The source build number of the operating system. +- **SourceOSVersion** The source version of the operating system. + + +### Microsoft.OneDrive.Sync.Setup.RegisterStandaloneUpdaterAPIOperation + +This event is related to registering or unregistering the OneDrive update task. + +The following fields are available: + +- **APIName** The name of the API. +- **IsSuccess** Was the operation successful? +- **RegisterNewTaskResult** The HResult of the RegisterNewTask operation. +- **ScenarioName** The name of the scenario. +- **UnregisterOldTaskResult** The HResult of the UnregisterOldTask operation. + + +### Microsoft.OneDrive.Sync.Updater.ComponentInstallState + +This event includes basic data about the installation state of dependent OneDrive components. + +The following fields are available: + +- **ComponentName** The name of the dependent component. +- **isInstalled** Is the dependent component installed? + + +### Microsoft.OneDrive.Sync.Updater.OverlayIconStatus + +This event indicates if the OneDrive overlay icon is working correctly. 0 = healthy; 1 = can be fixed; 2 = broken + +The following fields are available: + +- **32bit** The status of the OneDrive overlay icon on a 32-bit operating system. +- **64bit** The status of the OneDrive overlay icon on a 64-bit operating system. + + +### Microsoft.OneDrive.Sync.Updater.UpdateOverallResult + +This event sends information describing the result of the update. + +The following fields are available: + +- **hr** The HResult of the operation. +- **IsLoggingEnabled** Indicates whether logging is enabled for the updater. +- **UpdaterVersion** The version of the updater. + + +### Microsoft.OneDrive.Sync.Updater.UpdateXmlDownloadHResult + +This event determines the status when downloading the OneDrive update configuration file. + +The following fields are available: + +- **hr** The HResult of the operation. + + +### Microsoft.OneDrive.Sync.Updater.WebConnectionStatus + +This event determines the error code that was returned when verifying Internet connectivity. + +The following fields are available: + +- **winInetError** The HResult of the operation. + + +## Other events + +### CbsServicingProvider.CbsCapabilityEnumeration + +This event reports on the results of scanning for optional Windows content on Windows Update. + +The following fields are available: + +- **architecture** Indicates the scan was limited to the specified architecture. +- **capabilityCount** The number of optional content packages found during the scan. +- **clientId** The name of the application requesting the optional content. +- **duration** The amount of time it took to complete the scan. +- **hrStatus** The HReturn code of the scan. +- **language** Indicates the scan was limited to the specified language. +- **majorVersion** Indicates the scan was limited to the specified major version. +- **minorVersion** Indicates the scan was limited to the specified minor version. +- **namespace** Indicates the scan was limited to packages in the specified namespace. +- **sourceFilter** A bitmask indicating the scan checked for locally available optional content. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionFinalize + +This event provides information about the results of installing or uninstalling optional Windows content from Windows Update. + +The following fields are available: + +- **capabilities** The names of the optional content packages that were installed. +- **clientId** The name of the application requesting the optional content. +- **currentID** The ID of the current install session. +- **highestState** The highest final install state of the optional content. +- **hrStatus** The HReturn code of the install operation. +- **rebootCount** The number of reboots required to complete the install. +- **retryID** The session ID that will be used to retry a failed operation. +- **retryStatus** Indicates whether the install will be retried in the event of failure. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionPended + +This event provides information about the results of installing optional Windows content that requires a reboot to keep Windows up to date. + +The following fields are available: + +- **clientId** The name of the application requesting the optional content. +- **pendingDecision** Indicates the cause of reboot, if applicable. + + +### CbsServicingProvider.CbsPackageRemoval + +This event provides information about the results of uninstalling a Windows Cumulative Security Update to help keep Windows up to date. + +The following fields are available: + +- **buildVersion** The build number of the security update being uninstalled. +- **clientId** The name of the application requesting the uninstall. +- **currentStateEnd** The final state of the update after the operation. +- **failureDetails** Information about the cause of a failure, if applicable. +- **failureSourceEnd** The stage during the uninstall where the failure occurred. +- **hrStatusEnd** The overall exit code of the operation. +- **initiatedOffline** Indicates if the uninstall was initiated for a mounted Windows image. +- **majorVersion** The major version number of the security update being uninstalled. +- **minorVersion** The minor version number of the security update being uninstalled. +- **originalState** The starting state of the update before the operation. +- **pendingDecision** Indicates the cause of reboot, if applicable. +- **primitiveExecutionContext** The state during system startup when the uninstall was completed. +- **revisionVersion** The revision number of the security update being uninstalled. +- **transactionCanceled** Indicates whether the uninstall was cancelled. + + +### Microsoft.Windows.Remediation.Applicable + +This event indicates a remedial plug-in is applicable if/when such a plug-in is detected. This is used to ensure Windows is up to date. + +The following fields are available: + +- **ActionName** The name of the action to be taken by the plug-in. +- **AppraiserBinariesValidResult** Indicates whether plug-in was appraised as valid. +- **AppraiserDetectCondition** Indicates whether the plug-in passed the appraiser's check. +- **AppraiserRegistryValidResult** Indicates whether the registry entry checks out as valid. +- **AppraiserTaskDisabled** Indicates the appraiser task is disabled. +- **AppraiserTaskValidFailed** Indicates the Appraiser task did not function and requires intervention. +- **CV** Correlation vector +- **DateTimeDifference** The difference between local and reference clock times. +- **DateTimeSyncEnabled** Indicates whether the datetime sync plug-in is enabled. +- **DaysSinceLastSIH** The number of days since the most recent SIH executed. +- **DaysToNextSIH** The number of days until the next scheduled SIH execution. +- **DetectedCondition** Indicates whether detect condition is true and the perform action will be run. +- **EvalAndReportAppraiserBinariesFailed** Indicates the EvalAndReportAppraiserBinaries event failed. +- **EvalAndReportAppraiserRegEntries** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. +- **EvalAndReportAppraiserRegEntriesFailed** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. +- **GlobalEventCounter** Client side counter that indicates ordering of events sent by the remediation system. +- **HResult** The HRESULT for detection or perform action phases of the plugin. +- **IsAppraiserLatestResult** The HRESULT from the appraiser task. +- **IsConfigurationCorrected** Indicates whether the configuration of SIH task was successfully corrected. +- **LastHresult** The HRESULT for detection or perform action phases of the plugin. +- **LastRun** The date of the most recent SIH run. +- **NextRun** Date of the next scheduled SIH run. +- **PackageVersion** The version of the current remediation package. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Reload** True if SIH reload is required. +- **RemediationNoisyHammerAcLineStatus** Event that indicates the AC Line Status of the machine. +- **RemediationNoisyHammerAutoStartCount** The number of times hammer auto-started. +- **RemediationNoisyHammerCalendarTaskEnabled** Event that indicates Update Assistant Calendar Task is enabled. +- **RemediationNoisyHammerCalendarTaskExists** Event that indicates an Update Assistant Calendar Task exists. +- **RemediationNoisyHammerCalendarTaskTriggerEnabledCount** Event that indicates calendar triggers are enabled in the task. +- **RemediationNoisyHammerDaysSinceLastTaskRunTime** The number of days since the most recent hammer task ran. +- **RemediationNoisyHammerGetCurrentSize** Size in MB of the $GetCurrent folder. +- **RemediationNoisyHammerIsInstalled** TRUE if the noisy hammer is installed. +- **RemediationNoisyHammerLastTaskRunResult** The result of the last hammer task run. +- **RemediationNoisyHammerMeteredNetwork** TRUE if the machine is on a metered network. +- **RemediationNoisyHammerTaskEnabled** Indicates whether the Update Assistant Task (Noisy Hammer) is enabled. +- **RemediationNoisyHammerTaskExists** Indicates whether the Update Assistant Task (Noisy Hammer) exists. +- **RemediationNoisyHammerTaskTriggerEnabledCount** Indicates whether counting is enabled for the Update Assistant (Noisy Hammer) task trigger. +- **RemediationNoisyHammerUAExitCode** The exit code of the Update Assistant (Noisy Hammer) task. +- **RemediationNoisyHammerUAExitState** The code for the exit state of the Update Assistant (Noisy Hammer) task. +- **RemediationNoisyHammerUserLoggedIn** TRUE if there is a user logged in. +- **RemediationNoisyHammerUserLoggedInAdmin** TRUE if there is the user currently logged in is an Admin. +- **RemediationShellDeviceManaged** TRUE if the device is WSUS managed or Windows Updated disabled. +- **RemediationShellDeviceNewOS** TRUE if the device has a recently installed OS. +- **RemediationShellDeviceSccm** TRUE if the device is managed by SCCM (Microsoft System Center Configuration Manager). +- **RemediationShellDeviceZeroExhaust** TRUE if the device has opted out of Windows Updates completely. +- **RemediationTargetMachine** Indicates whether the device is a target of the specified fix. +- **RemediationTaskHealthAutochkProxy** True/False based on the health of the AutochkProxy task. +- **RemediationTaskHealthChkdskProactiveScan** True/False based on the health of the Check Disk task. +- **RemediationTaskHealthDiskCleanup_SilentCleanup** True/False based on the health of the Disk Cleanup task. +- **RemediationTaskHealthMaintenance_WinSAT** True/False based on the health of the Health Maintenance task. +- **RemediationTaskHealthServicing_ComponentCleanupTask** True/False based on the health of the Health Servicing Component task. +- **RemediationTaskHealthUSO_ScheduleScanTask** True/False based on the health of the USO (Update Session Orchestrator) Schedule task. +- **RemediationTaskHealthWindowsUpdate_ScheduledStartTask** True/False based on the health of the Windows Update Scheduled Start task. +- **RemediationTaskHealthWindowsUpdate_SihbootTask** True/False based on the health of the Sihboot task. +- **RemediationUHServiceBitsServiceEnabled** Indicates whether BITS service is enabled. +- **RemediationUHServiceDeviceInstallEnabled** Indicates whether Device Install service is enabled. +- **RemediationUHServiceDoSvcServiceEnabled** Indicates whether DO service is enabled. +- **RemediationUHServiceDsmsvcEnabled** Indicates whether DSMSVC service is enabled. +- **RemediationUHServiceLicensemanagerEnabled** Indicates whether License Manager service is enabled. +- **RemediationUHServiceMpssvcEnabled** Indicates whether MPSSVC service is enabled. +- **RemediationUHServiceTokenBrokerEnabled** Indicates whether Token Broker service is enabled. +- **RemediationUHServiceTrustedInstallerServiceEnabled** Indicates whether Trusted Installer service is enabled. +- **RemediationUHServiceUsoServiceEnabled** Indicates whether USO (Update Session Orchestrator) service is enabled. +- **RemediationUHServicew32timeServiceEnabled** Indicates whether W32 Time service is enabled. +- **RemediationUHServiceWecsvcEnabled** Indicates whether WECSVC service is enabled. +- **RemediationUHServiceWinmgmtEnabled** Indicates whether WMI service is enabled. +- **RemediationUHServiceWpnServiceEnabled** Indicates whether WPN service is enabled. +- **RemediationUHServiceWuauservServiceEnabled** Indicates whether WUAUSERV service is enabled. +- **Result** This is the HRESULT for Detection or Perform Action phases of the plugin. +- **RunAppraiserFailed** Indicates RunAppraiser failed to run correctly. +- **RunTask** TRUE if SIH task should be run by the plug-in. +- **TimeServiceNTPServer** The URL for the NTP time server used by device. +- **TimeServiceStartType** The startup type for the NTP time service. +- **TimeServiceSyncDomainJoined** True if device domain joined and hence uses DC for clock. +- **TimeServiceSyncType** Type of sync behavior for Date & Time service on device. + + +### Microsoft.Windows.Remediation.ChangePowerProfileDetection + +Indicates whether the remediation system can put in a request to defer a system-initiated sleep to enable installation of security or quality updates. + +The following fields are available: + +- **ActionName** A descriptive name for the plugin action +- **CurrentPowerPlanGUID** The ID of the current power plan configured on the device +- **CV** Correlation vector +- **GlobalEventCounter** Counter that indicates the ordering of events on the device +- **PackageVersion** Current package version of remediation service +- **RemediationBatteryPowerBatteryLevel** Integer between 0 and 100 indicating % battery power remaining (if not on battery, expect 0) +- **RemediationFUInProcess** Result that shows whether the device is currently installing a feature update +- **RemediationFURebootRequred** Indicates that a feature update reboot required was detected so the plugin will exit. +- **RemediationScanInProcess** Result that shows whether the device is currently scanning for updates +- **RemediationTargetMachine** Result that shows whether this device is a candidate for remediation(s) that will fix update issues +- **SetupMutexAvailable** Result that shows whether setup mutex is available or not +- **SysPowerStatusAC** Result that shows whether system is on AC power or not + + +### Microsoft.Windows.Remediation.Completed + +This event enables completion tracking of a process that remediates issues preventing security and quality updates. + +The following fields are available: + +- **ActionName** Name of the action to be completed by the plug-in. +- **AppraiserTaskCreationFailed** TRUE if the appraiser task creation failed to complete successfully. +- **AppraiserTaskDeleteFailed** TRUE if deletion of appraiser task failed to complete successfully. +- **AppraiserTaskExistFailed** TRUE if detection of the appraiser task failed to complete successfully. +- **AppraiserTaskLoadXmlFailed** TRUE if the Appraiser XML Loader failed to complete successfully. +- **AppraiserTaskMissing** TRUE if the Appraiser task is missing. +- **AppraiserTaskTimeTriggerUpdateFailedId** TRUE if the Appraiser Task Time Trigger failed to update successfully. +- **AppraiserTaskValidateTaskXmlFailed** TRUE if the Appraiser Task XML failed to complete successfully. +- **branchReadinessLevel** Branch readiness level policy. +- **cloudControlState** Value indicating whether the shell is enabled on the cloud control settings. +- **CrossedDiskSpaceThreshold** Indicates if cleanup resulted in hard drive usage threshold required for feature update to be exceeded. +- **CV** The Correlation Vector. +- **DateTimeDifference** The difference between the local and reference clocks. +- **DaysSinceOsInstallation** The number of days since the installation of the Operating System. +- **DiskMbCleaned** The amount of space cleaned on the hard disk, measured in Megabytes. +- **DiskMbFreeAfterCleanup** The amount of free hard disk space after cleanup, measured in Megabytes. +- **DiskMbFreeBeforeCleanup** The amount of free hard disk space before cleanup, measured in Megabytes. +- **ForcedAppraiserTaskTriggered** TRUE if Appraiser task ran from the plug-in. +- **GlobalEventCounter** Client-side counter that indicates ordering of events sent by the active user. +- **HandlerCleanupFreeDiskInMegabytes** The amount of hard disk space cleaned by the storage sense handlers, measured in Megabytes. +- **hasRolledBack** Indicates whether the client machine has rolled back. +- **hasUninstalled** Indicates whether the client machine has uninstalled a later version of the OS. +- **hResult** The result of the event execution. +- **HResult** The result of the event execution. +- **installDate** The value of installDate registry key. Indicates the install date. +- **isNetworkMetered** Indicates whether the client machine has uninstalled a later version of the OS. +- **LatestState** The final state of the plug-in component. +- **MicrosoftCompatibilityAppraiser** The name of the component targeted by the Appraiser plug-in. +- **PackageVersion** The package version for the current Remediation. +- **PageFileCount** The number of Windows Page files. +- **PageFileCurrentSize** The size of the Windows Page file, measured in Megabytes. +- **PageFileLocation** The storage location (directory path) of the Windows Page file. +- **PageFilePeakSize** The maximum amount of hard disk space used by the Windows Page file, measured in Megabytes. +- **PluginName** The name of the plug-in specified for each generic plug-in event. +- **RanCleanup** TRUE if the plug-in ran disk cleanup. +- **RemediationBatteryPowerBatteryLevel** Indicates the battery level at which it is acceptable to continue operation. +- **RemediationBatteryPowerExitDueToLowBattery** True when we exit due to low battery power. +- **RemediationBatteryPowerOnBattery** True if we allow execution on battery. +- **RemediationConfigurationTroubleshooterExecuted** True/False based on whether the Remediation Configuration Troubleshooter executed successfully. +- **RemediationConfigurationTroubleshooterIpconfigFix** TRUE if IPConfig Fix completed successfully. +- **RemediationConfigurationTroubleshooterNetShFix** TRUE if network card cache reset ran successfully. +- **RemediationDiskCleanSizeBtWindowsFolderInMegabytes** The size of the Windows BT folder (used to store Windows upgrade files), measured in Megabytes. +- **RemediationDiskCleanupBTFolderEsdSizeInMB** The size of the Windows BT folder (used to store Windows upgrade files) ESD (Electronic Software Delivery), measured in Megabytes. +- **RemediationDiskCleanupGetCurrentEsdSizeInMB** The size of any existing ESD (Electronic Software Delivery) folder, measured in Megabytes. +- **RemediationDiskCleanupSearchFileSizeInMegabytes** The size of the Cleanup Search index file, measured in Megabytes. +- **RemediationDiskCleanupUpdateAssistantSizeInMB** The size of the Update Assistant folder, measured in Megabytes. +- **RemediationDoorstopChangeSucceeded** TRUE if Doorstop registry key was successfully modified. +- **RemediationDoorstopExists** TRUE if there is a One Settings Doorstop value. +- **RemediationDoorstopRegkeyError** TRUE if an error occurred accessing the Doorstop registry key. +- **RemediationDRFKeyDeleteSucceeded** TRUE if the RecoveredFrom (Doorstop) registry key was successfully deleted. +- **RemediationDUABuildNumber** The build number of the DUA. +- **RemediationDUAKeyDeleteSucceeded** TRUE if the UninstallActive registry key was successfully deleted. +- **RemediationDuplicateTokenSucceeded** TRUE if the user token was successfully duplicated. +- **remediationExecution** Remediation shell is in "applying remediation" state. +- **RemediationHibernationMigrated** TRUE if hibernation was migrated. +- **RemediationHibernationMigrationSucceeded** TRUE if hibernation migration succeeded. +- **RemediationImpersonateUserSucceeded** TRUE if the user was successfully impersonated. +- **RemediationNoisyHammerTaskKickOffIsSuccess** TRUE if the NoisyHammer task started successfully. +- **RemediationQueryTokenSucceeded** TRUE if the user token was successfully queried. +- **RemediationRanHibernation** TRUE if the system entered Hibernation. +- **RemediationRevertToSystemSucceeded** TRUE if reversion to the system context succeeded. +- **RemediationShellHasUpgraded** TRUE if the device upgraded. +- **RemediationShellMinimumTimeBetweenShellRuns** Indicates the time between shell runs exceeded the minimum required to execute plugins. +- **RemediationShellRunFromService** TRUE if the shell driver was run from the service. +- **RemediationShellSessionIdentifier** Unique identifier tracking a shell session. +- **RemediationShellSessionTimeInSeconds** Indicates the time the shell session took in seconds. +- **RemediationShellTaskDeleted** Indicates that the shell task has been deleted so no additional sediment pack runs occur for this installation. +- **RemediationUpdateServiceHealthRemediationResult** The result of the Update Service Health plug-in. +- **RemediationUpdateTaskHealthRemediationResult** The result of the Update Task Health plug-in. +- **RemediationUpdateTaskHealthTaskList** A list of tasks fixed by the Update Task Health plug-in. +- **RemediationWindowsLogSpaceFound** The size of the Windows log files found, measured in Megabytes. +- **RemediationWindowsLogSpaceFreed** The amount of disk space freed by deleting the Windows log files, measured in Megabytes. +- **RemediationWindowsSecondaryDriveFreeSpace** The amount of free space on the secondary drive, measured in Megabytes. +- **RemediationWindowsSecondaryDriveLetter** The letter designation of the first secondary drive with a total capacity of 10GB or more. +- **RemediationWindowsSecondaryDriveTotalSpace** The total storage capacity of the secondary drive, measured in Megabytes. +- **RemediationWindowsTotalSystemDiskSize** The total storage capacity of the System Disk Drive, measured in Megabytes. +- **Result** The HRESULT for Detection or Perform Action phases of the plug-in. +- **RunResult** The HRESULT for Detection or Perform Action phases of the plug-in. +- **ServiceHealthPlugin** The nae of the Service Health plug-in. +- **StartComponentCleanupTask** TRUE if the Component Cleanup task started successfully. +- **systemDriveFreeDiskSpace** Indicates the free disk space on system drive in MBs. +- **systemUptimeInHours** Indicates the amount of time the system in hours has been on since the last boot. +- **TotalSizeofOrphanedInstallerFilesInMegabytes** The size of any orphaned Windows Installer files, measured in Megabytes. +- **TotalSizeofStoreCacheAfterCleanupInMegabytes** The size of the Windows Store cache after cleanup, measured in Megabytes. +- **TotalSizeofStoreCacheBeforeCleanupInMegabytes** The size of the Windows Store cache (prior to cleanup), measured in Megabytes. +- **uninstallActive** TRUE if previous uninstall has occurred for current OS +- **usoScanDaysSinceLastScan** The number of days since the last USO (Update Session Orchestrator) scan. +- **usoScanInProgress** TRUE if a USO (Update Session Orchestrator) scan is in progress, to prevent multiple simultaneous scans. +- **usoScanIsAllowAutoUpdateKeyPresent** TRUE if the AllowAutoUpdate registry key is set. +- **usoScanIsAllowAutoUpdateProviderSetKeyPresent** TRUE if AllowAutoUpdateProviderSet registry key is set. +- **usoScanIsAuOptionsPresent** TRUE if Auto Update Options registry key is set. +- **usoScanIsFeatureUpdateInProgress** TRUE if a USO (Update Session Orchestrator) scan is in progress, to prevent multiple simultaneous scans. +- **usoScanIsNetworkMetered** TRUE if the device is currently connected to a metered network. +- **usoScanIsNoAutoUpdateKeyPresent** TRUE if no Auto Update registry key is set/present. +- **usoScanIsUserLoggedOn** TRUE if the user is logged on. +- **usoScanPastThreshold** TRUE if the most recent USO (Update Session Orchestrator) scan is past the threshold (late). +- **usoScanType** The type of USO (Update Session Orchestrator) scan: "Interactive" or "Background". +- **windows10UpgraderBlockWuUpdates** Event to report the value of Windows 10 Upgrader BlockWuUpdates Key. +- **windowsEditionId** Event to report the value of Windows Edition ID. +- **WindowsHyberFilSysSizeInMegabytes** The size of the Windows Hibernation file, measured in Megabytes. +- **WindowsInstallerFolderSizeInMegabytes** The size of the Windows Installer folder, measured in Megabytes. +- **WindowsOldFolderSizeInMegabytes** The size of the Windows.OLD folder, measured in Megabytes. +- **WindowsOldSpaceCleanedInMB** The amount of disk space freed by removing the Windows.OLD folder, measured in Megabytes. +- **WindowsPageFileSysSizeInMegabytes** The size of the Windows Page file, measured in Megabytes. +- **WindowsSoftwareDistributionFolderSizeInMegabytes** The size of the SoftwareDistribution folder, measured in Megabytes. +- **WindowsSwapFileSysSizeInMegabytes** The size of the Windows Swap file, measured in Megabytes. +- **WindowsSxsFolderSizeInMegabytes** The size of the WinSxS (Windows Side-by-Side) folder, measured in Megabytes. +- **WindowsSxsTempFolderSizeInMegabytes** The size of the WinSxS (Windows Side-by-Side) Temp folder, measured in Megabytes. +- **windowsUpgradeRecoveredFromRs4** Event to report the value of the Windows Upgrade Recovered key. + + +### Microsoft.Windows.Remediation.RemediationShellMainExeEventId + +Enables tracking of completion of process that remediates issues preventing security and quality updates. + +The following fields are available: + +- **CV** Client side counter which indicates ordering of events sent by the remediation system. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by the remediation system. +- **PackageVersion** Current package version of Remediation. +- **RemediationShellCanAcquireSedimentMutex** True if the remediation was able to acquire the sediment mutex. False if it is already running. +- **RemediationShellExecuteShellResult** Indicates if the remediation system completed without errors. +- **RemediationShellFoundDriverDll** Result whether the remediation system found its component files to run properly. +- **RemediationShellLoadedShellDriver** Result whether the remediation system loaded its component files to run properly. +- **RemediationShellLoadedShellFunction** Result whether the remediation system loaded the functions from its component files to run properly. + + +### Microsoft.Windows.Remediation.Started + +This event reports whether a plug-in started, to help ensure Windows is up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentLauncher.Applicable + +Indicates whether a given plugin is applicable. + +The following fields are available: + +- **CV** Correlation vector. +- **DetectedCondition** Boolean true if detect condition is true and perform action will be run. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **IsSelfUpdateEnabledInOneSettings** True if self update enabled in Settings. +- **IsSelfUpdateNeeded** True if self update needed by device. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentLauncher.Completed + +Indicates whether a given plugin has completed its work. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. +- **SedLauncherExecutionResult** HRESULT for one execution of the Sediment Launcher. + + +### Microsoft.Windows.SedimentLauncher.Started + +This event indicates that a given plug-in has started. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentService.Applicable + +This event indicates whether a given plug-in is applicable. + +The following fields are available: + +- **CV** Correlation vector. +- **DetectedCondition** Determine whether action needs to run based on device properties. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentService.Completed + +This event indicates whether a given plug-in has completed its work. + +The following fields are available: + +- **CV** Correlation vector. +- **FailedReasons** List of reasons when the plugin action failed. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. +- **SedimentServiceCheckTaskFunctional** True/False if scheduled task check succeeded. +- **SedimentServiceCurrentBytes** Number of current private bytes of memory consumed by sedsvc.exe. +- **SedimentServiceKillService** True/False if service is marked for kill (Shell.KillService). +- **SedimentServiceMaximumBytes** Maximum bytes allowed for the service. +- **SedimentServiceRetrievedKillService** True/False if result of One Settings check for kill succeeded - we only send back one of these indicators (not for each call). +- **SedimentServiceStopping** True/False indicating whether the service is stopping. +- **SedimentServiceTaskFunctional** True/False if scheduled task is functional. If task is not functional this indicates plugins will be run. +- **SedimentServiceTotalIterations** Number of 5 second iterations service will wait before running again. + + +### Microsoft.Windows.SedimentService.Started + +This event indicates a specified plug-in has started. This information helps ensure Windows is up to date. + +The following fields are available: + +- **CV** The Correlation Vector. +- **GlobalEventCounter** The client-side counter that indicates ordering of events. +- **PackageVersion** The version number of the current remediation package. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for Detection or Perform Action phases of the plugin. + + +### Microsoft.Xbox.XamTelemetry.AppActivationError + +This event indicates whether the system detected an activation error in the app. + + + +### Microsoft.Xbox.XamTelemetry.AppActivity + +This event is triggered whenever the current app state is changed by: launch, switch, terminate, snap, etc. + +The following fields are available: + +- **AppActionId** The ID of the application action. +- **AppCurrentVisibilityState** The ID of the current application visibility state. +- **AppId** The Xbox LIVE Title ID of the app. +- **AppPackageFullName** The full name of the application package. +- **AppPreviousVisibilityState** The ID of the previous application visibility state. +- **AppSessionId** The application session ID. +- **AppType** The type ID of the application (AppType_NotKnown, AppType_Era, AppType_Sra, AppType_Uwa). +- **BCACode** The BCA (Burst Cutting Area) mark code of the optical disc used to launch the application. +- **DurationMs** The amount of time (in milliseconds) since the last application state transition. +- **IsTrialLicense** This boolean value is TRUE if the application is on a trial license. +- **LicenseType** The type of licensed used to authorize the app (0 - Unknown, 1 - User, 2 - Subscription, 3 - Offline, 4 - Disc). +- **LicenseXuid** If the license type is 1 (User), this field contains the XUID (Xbox User ID) of the registered owner of the license. +- **ProductGuid** The Xbox product GUID (Globally-Unique ID) of the application. +- **UserId** The XUID (Xbox User ID) of the current user. + + ## Privacy consent logging events ### Microsoft.Windows.Shell.PrivacyConsentLogging.PrivacyConsentCompleted @@ -3467,6 +4210,54 @@ The following fields are available: ## Sediment events +### Microsoft.Windows.Sediment.Info.DetailedState + +This event is sent when detailed state information is needed from an update trial run. + +The following fields are available: + +- **Data** Data relevant to the state, such as what percent of disk space the directory takes up. +- **Id** Identifies the trial being run, such as a disk related trial. +- **ReleaseVer** The version of the component. +- **State** The state of the reporting data from the trial, such as the top-level directory analysis. +- **Time** The time the event was fired. + + +### Microsoft.Windows.Sediment.Info.Error + +This event indicates an error in the updater payload. This information assists in keeping Windows up to date. + + + +### Microsoft.Windows.Sediment.OSRSS.CheckingOneSettings + +This event indicates the parameters that the Operating System Remediation System Service (OSRSS) uses for a secure ping to Microsoft to help ensure Windows is up to date. + +The following fields are available: + +- **CustomVer** The registry value for targeting. +- **IsMetered** TRUE if the machine is on a metered network. +- **LastVer** The version of the last successful run. +- **ServiceVersionMajor** The Major version information of the component. +- **ServiceVersionMinor** The Minor version information of the component. +- **Time** The system time at which the event occurred. + + +### Microsoft.Windows.Sediment.OSRSS.Error + +This event indicates an error occurred in the Operating System Remediation System Service (OSRSS). The information provided helps ensure future upgrade/update attempts are more successful. + +The following fields are available: + +- **FailureType** The type of error encountered. +- **FileName** The code file in which the error occurred. +- **HResult** The failure error code. +- **LineNumber** The line number in the code file at which the error occurred. +- **ServiceVersionMajor** The Major version information of the component. +- **ServiceVersionMinor** The Minor version information of the component. +- **Time** The system time at which the event occurred. + + ### Microsoft.Windows.Sediment.OSRSS.UrlState This event indicates the state the Operating System Remediation System Service (OSRSS) is in while attempting a download from the URL. @@ -3483,6 +4274,32 @@ The following fields are available: ## Setup events +### SetupPlatformTel.SetupPlatformTelActivityEvent + +This event sends basic metadata about the SetupPlatform update installation process, to help keep Windows up to date. + +The following fields are available: + +- **FieldName** Retrieves the event name/data point. Examples: InstallStartTime, InstallEndtime, OverallResult etc. +- **GroupName** Retrieves the groupname the event belongs to. Example: Install Information, DU Information, Disk Space Information etc. +- **Value** Value associated with the corresponding event name. For example, time-related events will include the system time + + +### SetupPlatformTel.SetupPlatformTelActivityStarted + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + +The following fields are available: + +- **Name** The name of the dynamic update type. Example: GDR driver + + +### SetupPlatformTel.SetupPlatformTelActivityStopped + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + + + ### SetupPlatformTel.SetupPlatformTelEvent This service retrieves events generated by SetupPlatform, the engine that drives the various deployment scenarios. @@ -3961,14 +4778,31 @@ The following fields are available: - **SignatureAlgorithm** Hash algorithm for the metadata signature - **SLSPrograms** A test program a machine may be opted in. Examples include "Canary" and "Insider Fast". - **StatusCode** Result code of the event (success, cancellation, failure code HResult) -- **TimestampTokenCertThumbprint** The thumbprint of the encoded timestamp token. +- **TimestampTokenCertThumbprint** Thumbprint of the encoded timestamp token. - **TimestampTokenId** Created time encoded in the timestamp blob. This will be zeroed if the token is itself malformed and decoding failed. - **UpdateId** Identifier associated with the specific piece of content -- **ValidityWindowInDays** The validity window that's in effect when verifying the timestamp. +- **ValidityWindowInDays** Validity window in effect when verifying the timestamp ## Update events +### Update360Telemetry.Revert + +This event sends data relating to the Revert phase of updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the Revert phase. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **RebootRequired** Indicates reboot is required. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + ### Update360Telemetry.UpdateAgentCommit This event collects information regarding the commit phase of the new Unified Update Platform (UUP) update scenario, which is leveraged by both Mobile and Desktop. @@ -4104,6 +4938,52 @@ The following fields are available: - **UpdateId** Unique ID for each update. +### Update360Telemetry.UpdateAgentMitigationResult + +This event sends data indicating the result of each update agent mitigation. + +The following fields are available: + +- **Applicable** Indicates whether the mitigation is applicable for the current update. +- **CommandCount** The number of command operations in the mitigation entry. +- **CustomCount** The number of custom operations in the mitigation entry. +- **FileCount** The number of file operations in the mitigation entry. +- **FlightId** Unique identifier for each flight. +- **Index** The mitigation index of this particular mitigation. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **Name** The friendly name of the mitigation. +- **ObjectId** Unique value for each Update Agent mode. +- **OperationIndex** The mitigation operation index (in the event of a failure). +- **OperationName** The friendly name of the mitigation operation (in the event of failure). +- **RegistryCount** The number of registry operations in the mitigation entry. +- **RelatedCV** The correlation vector value generated from the latest USO scan. +- **Result** The HResult of this operation. +- **ScenarioId** The update agent scenario ID. +- **SessionId** Unique value for each update attempt. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). +- **UpdateId** Unique ID for each Update. + + +### Update360Telemetry.UpdateAgentMitigationSummary + +This event sends a summary of all the update agent mitigations available for an this update. + +The following fields are available: + +- **Applicable** The count of mitigations that were applicable to the system and scenario. +- **Failed** The count of mitigations that failed. +- **FlightId** Unique identifier for each flight. +- **MitigationScenario** The update scenario in which the mitigations were attempted. +- **ObjectId** The unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest USO scan. +- **Result** The HResult of this operation. +- **ScenarioId** The update agent scenario ID. +- **SessionId** Unique value for each update attempt. +- **TimeDiff** The amount of time spent performing all mitigations (in 100-nanosecond increments). +- **Total** Total number of mitigations that were available. +- **UpdateId** Unique ID for each update. + + ### Update360Telemetry.UpdateAgentModeStart This event sends data for the start of each mode during the process of updating Windows via the new Unified Update Platform (UUP) scenario. Applicable to both PCs and Mobile. @@ -4120,6 +5000,24 @@ The following fields are available: - **Version** Version of update +### Update360Telemetry.UpdateAgentOneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **Count** The count of applicable OneSettings for the device. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **Parameters** The set of name value pair parameters sent to OneSettings to determine if there are any applicable OneSettings. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. +- **Values** The values sent back to the device, if applicable. + + ### Update360Telemetry.UpdateAgentPostRebootResult This event collects information for both Mobile and Desktop regarding the post reboot phase of the new Unified Update Platform (UUP) update scenario. @@ -4136,6 +5034,12 @@ The following fields are available: - **UpdateId** Unique ID for each update. +### Update360Telemetry.UpdateAgentReboot + +This event sends information indicating that a request has been sent to suspend an update. + + + ### Update360Telemetry.UpdateAgentSetupBoxLaunch The UpdateAgent_SetupBoxLaunch event sends data for the launching of the setup box when updating Windows via the new Unified Update Platform (UUP) scenario. This event is only applicable to PCs. @@ -4185,7 +5089,7 @@ The following fields are available: - **key19** UI interaction data - **key2** Interaction data for the UI - **key20** UI interaction data -- **key21** Interaction data for the UI +- **key21** UI interaction data - **key22** UI interaction data - **key23** UI interaction data - **key24** UI interaction data @@ -4197,10 +5101,10 @@ The following fields are available: - **key3** Interaction data for the UI - **key30** UI interaction data - **key4** Interaction data for the UI -- **key5** UI interaction data -- **key6** UI interaction data -- **key7** Interaction data for the UI -- **key8** Interaction data for the UI +- **key5** UI interaction type +- **key6** Current package version of UNP +- **key7** UI interaction type +- **key8** UI interaction data - **key9** UI interaction data - **PackageVersion** Current package version of the update notification. - **schema** UI interaction type. @@ -4314,6 +5218,7 @@ The following fields are available: - **DownloadRequestAttributes** The attributes we send to DCAT. - **ResultCode** The result returned from the initialization of Facilitator with the URL/attributes. - **Scenario** Dynamic Update scenario (Image DU, or Setup DU). +- **Url** The Delivery Catalog (DCAT) URL we send the request to. - **Version** Version of Facilitator. @@ -4376,9 +5281,9 @@ The following fields are available: - **Setup360Extended** Detailed information about the phase or action when the potential failure occurred. - **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. - **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. -- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. - **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). -- **State** Exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **State** Exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled - **TestId** ID that uniquely identifies a group of events. - **WuId** Windows Update client ID. @@ -4524,6 +5429,67 @@ The following fields are available: - **TargetBuild** Build of the target OS. +### Setup360Telemetry.Setup360MitigationResult + +This event sends data indicating the result of each setup mitigation. + +The following fields are available: + +- **Applicable** TRUE if the mitigation is applicable for the current update. +- **ClientId** In the Windows Update scenario, this is the client ID passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **CommandCount** The number of command operations in the mitigation entry. +- **CustomCount** The number of custom operations in the mitigation entry. +- **FileCount** The number of file operations in the mitigation entry. +- **FlightData** The unique identifier for each flight (test release). +- **Index** The mitigation index of this particular mitigation. +- **InstanceId** The GUID (Globally Unique ID) that identifies each instance of SetupHost.EXE. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **Name** The friendly (descriptive) name of the mitigation. +- **OperationIndex** The mitigation operation index (in the event of a failure). +- **OperationName** The friendly (descriptive) name of the mitigation operation (in the event of failure). +- **RegistryCount** The number of registry operations in the mitigation entry. +- **ReportId** In the Windows Update scenario, the Update ID that is passed to Setup. In media setup, this is the GUID for the INSTALL.WIM. +- **Result** HResult of this operation. +- **ScenarioId** Setup360 flow type. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). + + +### Setup360Telemetry.Setup360MitigationSummary + +This event sends a summary of all the setup mitigations available for this update. + +The following fields are available: + +- **Applicable** The count of mitigations that were applicable to the system and scenario. +- **ClientId** The Windows Update client ID passed to Setup. +- **Failed** The count of mitigations that failed. +- **FlightData** The unique identifier for each flight (test release). +- **InstanceId** The GUID (Globally Unique ID) that identifies each instance of SetupHost.EXE. +- **MitigationScenario** The update scenario in which the mitigations were attempted. +- **ReportId** In the Windows Update scenario, the Update ID that is passed to Setup. In media setup, this is the GUID for the INSTALL.WIM. +- **Result** HResult of this operation. +- **ScenarioId** Setup360 flow type. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). +- **Total** The total number of mitigations that were available. + + +### Setup360Telemetry.Setup360OneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **ClientId** The Windows Update client ID passed to Setup. +- **Count** The count of applicable OneSettings for the device. +- **FlightData** The ID for the flight (test instance version). +- **InstanceId** The GUID (Globally-Unique ID) that identifies each instance of setuphost.exe. +- **Parameters** The set of name value pair parameters sent to OneSettings to determine if there are any applicable OneSettings. +- **ReportId** The Update ID passed to Setup. +- **Result** The HResult of the event error. +- **ScenarioId** The update scenario ID. +- **Values** Values sent back to the device, if applicable. + + ### Setup360Telemetry.UnexpectedEvent This event sends data indicating that the device has invoked the unexpected event phase of the upgrade, to help keep Windows up to date. @@ -4538,7 +5504,7 @@ The following fields are available: - **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. - **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. - **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. -- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used to diagnose errors. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used used to diagnose errors. - **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. - **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). - **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. @@ -4570,6 +5536,26 @@ The following fields are available: - **versionString** Version of the WaaSMedic engine. +## Windows Error Reporting events + +### Microsoft.Windows.WERVertical.OSCrash + +This event sends binary data from the collected dump file wheneveer a bug check occurs, to help keep Windows up to date. The is the OneCore version of this event. + +The following fields are available: + +- **BootId** Uint32 identifying the boot number for this device. +- **BugCheckCode** Uint64 "bugcheck code" that identifies a proximate cause of the bug check. +- **BugCheckParameter1** Uint64 parameter providing additional information. +- **BugCheckParameter2** Uint64 parameter providing additional information. +- **BugCheckParameter3** Uint64 parameter providing additional information. +- **BugCheckParameter4** Uint64 parameter providing additional information. +- **DumpFileAttributes** Codes that identify the type of data contained in the dump file +- **DumpFileSize** Size of the dump file +- **IsValidDumpFile** True if the dump file is valid for the debugger, false otherwise +- **ReportId** WER Report Id associated with this bug check (used for finding the corresponding report archive in Watson). + + ## Windows Error Reporting MTT events ### Microsoft.Windows.WER.MTT.Denominator @@ -4982,7 +5968,7 @@ The following fields are available: - **current** Result of currency check. - **dismOperationSucceeded** Dism uninstall operation status. -- **hResult** Failure error code. +- **hResult** Failure Error code. - **oSVersion** Build number of the device. - **paused** Indicates whether the device is paused. - **rebootRequestSucceeded** Reboot Configuration Service Provider (CSP) call success status. @@ -5023,7 +6009,7 @@ The following fields are available: - **current** Result of currency check. - **dismOperationSucceeded** Dism uninstall operation status. -- **hResult** Failure error code. +- **hResult** Failure Error code. - **oSVersion** Build number of the device. - **paused** Indicates whether the device is paused. - **rebootRequestSucceeded** Reboot Configuration Service Provider (CSP) call success status. @@ -5058,45 +6044,128 @@ This event sends basic telemetry on the success of the rollback of the Quality/L ## Windows Update Delivery Optimization events -### Microsoft.OSG.DU.DeliveryOptClient.DownloadStarted +### Microsoft.OSG.DU.DeliveryOptClient.DownloadCanceled -This event sends data describing the start of a new download to enable Delivery Optimization. It's used to understand and address problems regarding downloads. +This event describes when a download was canceled with Delivery Optimization. It's used to understand and address problems regarding downloads. The following fields are available: -- **background** Indicates whether the download is happening in the background. -- **bytesRequested** Number of bytes requested for the download. +- **background** Is the download being done in the background? +- **bytesFromCacheServer** Bytes received from a cache host. +- **bytesFromCDN** The number of bytes received from a CDN source. +- **bytesFromGroupPeers** The number of bytes received from a peer in the same group. +- **bytesFromIntPeers** The number of bytes received from peers not in the same LAN or in the same group. +- **bytesFromLocalCache** Bytes copied over from local (on disk) cache. +- **bytesFromPeers** The number of bytes received from a peer in the same LAN. - **callerName** Name of the API caller. -- **cdnUrl** The URL of the source CDN -- **costFlags** A set of flags representing network cost. -- **deviceProfile** Identifies the usage or form factor (such as Desktop, Xbox, or VM). -- **diceRoll** Random number used for determining if a client will use peering. -- **doClientVersion** The version of the Delivery Optimization client. -- **doErrorCode** The Delivery Optimization error code that was returned. -- **downloadMode** The download mode used for this file download session (CdnOnly = 0, Lan = 1, Group = 2, Internet = 3, Simple = 99, Bypass = 100). -- **downloadModeSrc** Source of the DownloadMode setting (KvsProvider = 0, GeoProvider = 1, GeoVerProvider = 2, CpProvider = 3, DiscoveryProvider = 4, RegistryProvider = 5, GroupPolicyProvider = 6, MdmProvider = 7, SettingsProvider = 8, InvalidProviderType = 9). +- **cdnErrorCodes** A list of CDN connection errors since the last FailureCDNCommunication event. +- **cdnErrorCounts** The number of times each error in cdnErrorCodes was encountered. +- **dataSourcesTotal** Bytes received per source type, accumulated for the whole session. - **errorCode** The error code that was returned. -- **experimentId** ID used to correlate client/services calls that are part of the same test during A/B testing. +- **experimentId** When running a test, this is used to correlate events that are part of the same test. - **fileID** The ID of the file being downloaded. -- **filePath** The path to where the downloaded file will be written. -- **fileSize** Total file size of the file that was downloaded. -- **fileSizeCaller** Value for total file size provided by our caller. -- **groupID** ID for the group. -- **isEncrypted** Indicates whether the download is encrypted. -- **isVpn** Indicates whether the device is connected to a Virtual Private Network. -- **jobID** The ID of the Windows Update job. -- **minDiskSizeGB** The minimum disk size (in GB) policy set for the device to allow peering with delivery optimization. -- **minDiskSizePolicyEnforced** Indicates whether there is an enforced minimum disk size requirement for peering. -- **minFileSizePolicy** The minimum content file size policy to allow the download using peering with delivery optimization. -- **peerID** The ID for this delivery optimization client. -- **predefinedCallerName** Name of the API caller. +- **gCurMemoryStreamBytes** Current usage for memory streaming. +- **gMaxMemoryStreamBytes** Maximum usage for memory streaming. +- **isVpn** Indicates whether the device is connected to a VPN (Virtual Private Network). +- **jobID** Identifier for the Windows Update job. +- **predefinedCallerName** The name of the API Caller. +- **reasonCode** Reason the action or event occurred. - **scenarioID** The ID of the scenario. -- **sessionID** The ID for the file download session. -- **setConfigs** A JSON representation of the configurations that have been set, and their sources. +- **sessionID** The ID of the file download session. - **updateID** The ID of the update being downloaded. -- **usedMemoryStream** Indicates whether the download used memory streaming. +- **usedMemoryStream** TRUE if the download is using memory streaming for App downloads. +### Microsoft.OSG.DU.DeliveryOptClient.DownloadCompleted + +This event describes when a download has completed with Delivery Optimization. It's used to understand and address problems regarding downloads. + +The following fields are available: + +- **background** Is the download a background download? +- **bytesFromCacheServer** Bytes received from a cache host. +- **bytesFromCDN** The number of bytes received from a CDN source. +- **bytesFromGroupPeers** The number of bytes received from a peer in the same domain group. +- **bytesFromIntPeers** The number of bytes received from peers not in the same LAN or in the same domain group. +- **bytesFromLocalCache** Bytes copied over from local (on disk) cache. +- **bytesFromPeers** The number of bytes received from a peer in the same LAN. +- **bytesRequested** The total number of bytes requested for download. +- **cacheServerConnectionCount** Number of connections made to cache hosts. +- **callerName** Name of the API caller. +- **cdnConnectionCount** The total number of connections made to the CDN. +- **cdnErrorCodes** A list of CDN connection errors since the last FailureCDNCommunication event. +- **cdnErrorCounts** The number of times each error in cdnErrorCodes was encountered. +- **cdnIp** The IP address of the source CDN. +- **dataSourcesTotal** Bytes received per source type, accumulated for the whole session. +- **doErrorCode** The Delivery Optimization error code that was returned. +- **downlinkBps** The maximum measured available download bandwidth (in bytes per second). +- **downlinkUsageBps** The download speed (in bytes per second). +- **downloadMode** The download mode used for this file download session. +- **downloadModeSrc** Source of the DownloadMode setting (KvsProvider = 0, GeoProvider = 1, GeoVerProvider = 2, CpProvider = 3, DiscoveryProvider = 4, RegistryProvider = 5, GroupPolicyProvider = 6, MdmProvider = 7, SettingsProvider = 8, InvalidProviderType = 9). +- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. +- **fileID** The ID of the file being downloaded. +- **fileSize** The size of the file being downloaded. +- **gCurMemoryStreamBytes** Current usage for memory streaming. +- **gMaxMemoryStreamBytes** Maximum usage for memory streaming. +- **groupConnectionCount** The total number of connections made to peers in the same group. +- **internetConnectionCount** The total number of connections made to peers not in the same LAN or the same group. +- **isEncrypted** TRUE if the file is encrypted and will be decrypted after download. +- **isVpn** Is the device connected to a Virtual Private Network? +- **jobID** Identifier for the Windows Update job. +- **lanConnectionCount** The total number of connections made to peers in the same LAN. +- **numPeers** The total number of peers used for this download. +- **predefinedCallerName** The name of the API Caller. +- **restrictedUpload** Is the upload restricted? +- **scenarioID** The ID of the scenario. +- **sessionID** The ID of the download session. +- **totalTimeMs** Duration of the download (in seconds). +- **updateID** The ID of the update being downloaded. +- **uplinkBps** The maximum measured available upload bandwidth (in bytes per second). +- **uplinkUsageBps** The upload speed (in bytes per second). +- **usedMemoryStream** TRUE if the download is using memory streaming for App downloads. + + +### Microsoft.OSG.DU.DeliveryOptClient.DownloadPaused + +This event represents a temporary suspension of a download with Delivery Optimization. It's used to understand and address problems regarding downloads. + +The following fields are available: + +- **background** Is the download a background download? +- **callerName** The name of the API caller. +- **errorCode** The error code that was returned. +- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. +- **fileID** The ID of the file being paused. +- **isVpn** Is the device connected to a Virtual Private Network? +- **jobID** Identifier for the Windows Update job. +- **predefinedCallerName** The name of the API Caller object. +- **reasonCode** The reason for pausing the download. +- **scenarioID** The ID of the scenario. +- **sessionID** The ID of the download session. +- **updateID** The ID of the update being paused. + +### Microsoft.OSG.DU.DeliveryOptClient.FailureCdnCommunication + +This event represents a failure to download from a CDN with Delivery Optimization. It's used to understand and address problems regarding downloads. + +The following fields are available: + +- **cdnHeaders** The HTTP headers returned by the CDN. +- **cdnIp** The IP address of the CDN. +- **cdnUrl** The URL of the CDN. +- **clientTelId** A random number used for device sampling. +- **errorCode** The error code that was returned. +- **errorCount** The total number of times this error code was seen since the last FailureCdnCommunication event was encountered. +- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. +- **fileID** The ID of the file being downloaded. +- **httpStatusCode** The HTTP status code returned by the CDN. +- **isHeadRequest** The type of HTTP request that was sent to the CDN. Example: HEAD or GET +- **peerType** The type of peer (LAN, Group, Internet, CDN, Cache Host, etc.). +- **requestOffset** The byte offset within the file in the sent request. +- **requestSize** The size of the range requested from the CDN. +- **responseSize** The size of the range response received from the CDN. +- **sessionID** The ID of the download session. + ## Windows Update events ### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentAnalysisSummary @@ -5443,7 +6512,7 @@ The following fields are available: - **displayNeededReason** List of reasons for needing display. - **eventScenario** Indicates the purpose of the event (scan started, succeeded, failed, etc.). -- **filteredDeferReason** Applicable filtered reasons why reboot was postponed (such as user active, or low battery). +- **filteredDeferReason** Applicable filtered reasons why reboot was postponed (such as user active, or low battery).. - **gameModeReason** Name of the executable that caused the game mode state check to start. - **ignoredReason** List of reasons that were intentionally ignored. - **raisedDeferReason** Indicates all potential reasons for postponing restart (such as user active, or low battery). @@ -5462,9 +6531,9 @@ The following fields are available: - **deferReason** Reason why the device could not check for updates. - **detectionBlockingPolicy** State of update action. -- **detectionBlockreason** Reason for blocking detection +- **detectionBlockreason** If we retry to scan - **detectionRetryMode** Indicates whether we will try to scan again. -- **errorCode** Error info +- **errorCode** State of update action - **eventScenario** End-to-end update session ID, or indicates the purpose of sending this event - whether because the software distribution just started installing content, or whether it was cancelled, succeeded, or failed. - **flightID** The specific ID of the Windows Insider build the device is getting. - **interactive** Indicates whether the session was user initiated. @@ -5472,7 +6541,7 @@ The following fields are available: - **revisionNumber** Update revision number. - **scanTriggerSource** Source of the triggered scan. - **updateId** Update ID. -- **updateScenarioType** Source of the triggered scan +- **updateScenarioType** Update Session type - **wuDeviceid** Device ID @@ -5557,7 +6626,7 @@ This event is sent during update scan, download, or install, and indicates that The following fields are available: -- **configVersion** Escalation config version on device . +- **configVersion** Escalation config version on device. - **downloadElapsedTime** Indicates how long since the download is required on device. - **downloadRiskLevel** At-risk level of download phase. - **installElapsedTime** Indicates how long since the install is required on device. @@ -5585,7 +6654,7 @@ This event indicates that the update is no longer applicable to this device. The following fields are available: -- **EventPublishedTime** Time when this event was generated +- **EventPublishedTime** Time when this event was generated. - **flightID** The specific ID of the Windows Insider build. - **revisionNumber** Update revision number. - **updateId** Unique Windows Update ID. @@ -5633,7 +6702,7 @@ The following fields are available: - **deferReason** Reason for install not completing. - **errorCode** The error code reppresented by a hexadecimal value. - **eventScenario** End-to-end update session ID. -- **flightID** The specific ID of the Windows Insider build the device is getting. +- **flightID** Unique update ID - **flightUpdate** Indicates whether the update is a Windows Insider build. - **ForcedRebootReminderSet** A boolean value that indicates if a forced reboot will happen for updates. - **installCommitfailedtime** The time it took for a reboot to happen but the upgrade failed to progress. @@ -5648,6 +6717,31 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.LowUptimes + +This event is sent if a device is identified as not having sufficient uptime to reliably process updates in order to keep secure. + +The following fields are available: + +- **isLowUptimeMachine** Is the machine considered low uptime or not. +- **lowUptimeMinHours** Current setting for the minimum number of hours needed to not be considered low uptime. +- **lowUptimeQueryDays** Current setting for the number of recent days to check for uptime. +- **uptimeMinutes** Number of minutes of uptime measured. +- **wuDeviceid** Unique device ID for Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.OneshotUpdateDetection + +This event returns data about scans initiated through settings UI, or background scans that are urgent; to help keep Windows up to date. + +The following fields are available: + +- **externalOneshotupdate** The last time a task-triggered scan was completed. +- **interactiveOneshotupdate** The last time an interactive scan was completed. +- **oldlastscanOneshotupdate** The last time a scan completed successfully. +- **wuDeviceid** The Windows Update Device GUID (Globally-Unique ID). + + ### Microsoft.Windows.Update.Orchestrator.PostInstall This event is sent after a Windows update install completes. @@ -5723,6 +6817,18 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.RefreshSettings + +This event sends basic data about the version of upgrade settings applied to the system to help keep Windows up to date. + +The following fields are available: + +- **errorCode** Hex code for the error message, to allow lookup of the specific error. +- **settingsDownloadTime** Timestamp of the last attempt to acquire settings. +- **settingsETag** Version identifier for the settings. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.RestoreRebootTask This event sends data indicating that a reboot task is missing unexpectedly on a device and the task is restored because a reboot is still required, to help keep Windows up to date. @@ -5819,6 +6925,76 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.updateSettingsFlushFailed + +This event sends information about an update that encountered problems and was not able to complete. + +The following fields are available: + +- **errorCode** The error code encountered. +- **wuDeviceid** The ID of the device in which the error occurred. + + +### Microsoft.Windows.Update.Orchestrator.USODiagnostics + +This event sends data on whether the state of the update attempt, to help keep Windows up to date. + +The following fields are available: + +- **LastApplicableUpdateFoundTime** The time when the last applicable update was found. +- **LastDownloadDeferredReason** The last reason download was deferred. +- **LastDownloadDeferredTime** The time of the download deferral. +- **LastDownloadFailureError** The last download failure. +- **LastDownloadFailureTime** The time of the last download failure. +- **LastInstallCompletedTime** The time when the last successful install completed. +- **LastInstallDeferredReason** The reason the last install was deferred. +- **LastInstallDeferredTime** The time when the last install was deferred. +- **LastInstallFailureError** The error code associated with the last install failure. +- **LastInstallFailureTime** The time when the last install failed to complete. +- **LastRebootDeferredReason** The reason the last reboot was deferred. +- **LastRebootDeferredTime** The time when the last reboot was deferred. +- **LastRebootPendingTime** The time when the last reboot state was set to “Pending”. +- **LastScanDeferredReason** The reason the last scan was deferred. +- **LastScanDeferredTime** The time when the last scan was deferred. +- **LastScanFailureError** The error code for the last scan failure. +- **LastScanFailureTime** The time when the last scan failed. +- **LastUpdateCheckTime** The time of the last update check. +- **LastUpdateDownloadTime** The time when the last update was downloaded. +- **LastUpgradeInstallFailureError** The error code for the last upgrade install failure. +- **LastUpgradeInstallFailureTime** The time of the last upgrade install failure. +- **LowUpTimeDetectTime** The last time “low up-time” was detected. +- **NoLowUpTimeDetectTime** The last time no “low up-time” was detected. +- **RebootRequired** Indicates reboot is required. +- **UpgradeInProgressTime** The amount of time a feature update has been in progress. +- **WaaSFeatureAssessmentDays** The number of days Feature Update Assessment has been out of date. +- **WaaSFeatureAssessmentImpact** The impact of the Feature Update Assessment. +- **WaaSUpToDateAssessmentDays** The number of days Quality Update Assessment has been out of date. +- **WaaSUpToDateAssessmentImpact** The impact of Quality Update Assessment. +- **wuDeviceid** Unique ID for Device + + +### Microsoft.Windows.Update.Ux.MusNotification.EnhancedEngagedRebootUxState + +This event sends information about the configuration of Enhanced Direct-to-Engaged (eDTE), which includes values for the timing of how eDTE will progress through each phase of the reboot. + +The following fields are available: + +- **AcceptAutoModeLimit** The maximum number of days for a device to automatically enter Auto Reboot mode. +- **AutoToAutoFailedLimit** The maximum number of days for Auto Reboot mode to fail before a Reboot Failed dialog will be shown. +- **DeviceLocalTime** The date and time (based on the device date/time settings) the reboot mode changed. +- **EngagedModeLimit** The number of days to switch between DTE (Direct-to-Engaged) dialogs. +- **EnterAutoModeLimit** The maximum number of days a device can enter Auto Reboot mode. +- **ETag** The Entity Tag that represents the OneSettings version. +- **IsForcedEnabled** Identifies whether Forced Reboot mode is enabled for the device. +- **IsUltimateForcedEnabled** Identifies whether Ultimate Forced Reboot mode is enabled for the device. +- **OldestUpdateLocalTime** The date and time (based on the device date/time settings) this update’s reboot began pending. +- **RebootUxState** Identifies the reboot state: Engaged, Auto, Forced, UltimateForced. +- **RebootVersion** The version of the DTE (Direct-to-Engaged). +- **SkipToAutoModeLimit** The maximum number of days to switch to start while in Auto Reboot mode. +- **UpdateId** The ID of the update that is waiting for reboot to finish installation. +- **UpdateRevision** The revision of the update that is waiting for reboot to finish installation. + + ### Microsoft.Windows.Update.Ux.MusNotification.RebootNoLongerNeeded This event is sent when a security update has successfully completed. @@ -5872,6 +7048,25 @@ The following fields are available: - **TaskName** Name of the task +### Microsoft.Windows.Update.Ux.MusUpdateSettings.RebootScheduled + +This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up to date. + +The following fields are available: + +- **activeHoursApplicable** Is the restart respecting Active Hours? +- **IsEnhancedEngagedReboot** TRUE if the reboot path is Enhanced Engaged. Otherwise, FALSE. +- **rebootArgument** The arguments that are passed to the OS for the restarted. +- **rebootOutsideOfActiveHours** Was the restart scheduled outside of Active Hours? +- **rebootScheduledByUser** Was the restart scheduled by the user? If the value is false, the restart was scheduled by the device. +- **rebootState** The state of the restart. +- **revisionNumber** The revision number of the OS being updated. +- **scheduledRebootTime** Time of the scheduled reboot +- **scheduledRebootTimeInUTC** Time of the scheduled restart, in Coordinated Universal Time. +- **updateId** The Windows Update device GUID. +- **wuDeviceid** The Windows Update device GUID. + + ## Windows Update mitigation events ### Mitigation360Telemetry.MitigationCustom.CleanupSafeOsImages @@ -5880,21 +7075,21 @@ This event sends data specific to the CleanupSafeOsImages mitigation used for OS The following fields are available: -- **ClientId** Unique identifier for each flight. -- **FlightId** Unique GUID that identifies each instances of setuphost.exe. -- **InstanceId** The update scenario in which the mitigation was executed. -- **MitigationScenario** Number of mounted images. -- **MountedImageCount** Number of mounted images that were under %systemdrive%\$Windows.~BT. -- **MountedImageMatches** Number of mounted images under %systemdrive%\$Windows.~BT that could not be removed. -- **MountedImagesFailed** Number of mounted images under %systemdrive%\$Windows.~BT that were successfully removed. -- **MountedImagesRemoved** Number of mounted images that were not under %systemdrive%\$Windows.~BT. -- **MountedImagesSkipped** Correlation vector value generated from the latest USO scan. -- **RelatedCV** HResult of this operation. -- **Result** ID indicating the mitigation scenario. -- **ScenarioId** Indicates whether the scenario was supported. -- **ScenarioSupported** Unique value for each update attempt. -- **SessionId** Unique ID for each Update. -- **UpdateId** Unique ID for the Windows Update client. +- **ClientId** In the WU scenario, this will be the WU client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightId** Unique identifier for each flight. +- **InstanceId** Unique GUID that identifies each instances of setuphost.exe. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **MountedImageCount** Number of mounted images. +- **MountedImageMatches** Number of mounted images that were under %systemdrive%\$Windows.~BT. +- **MountedImagesFailed** Number of mounted images under %systemdrive%\$Windows.~BT that could not be removed. +- **MountedImagesRemoved** Number of mounted images under %systemdrive%\$Windows.~BT that were successfully removed. +- **MountedImagesSkipped** Number of mounted images that were not under %systemdrive%\$Windows.~BT. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** HResult of this operation. +- **ScenarioId** ID indicating the mitigation scenario. +- **ScenarioSupported** Indicates whether the scenario was supported. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each Update. - **WuId** Unique ID for the Windows Update client. diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1809.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1809.md index 0755ce1e09..b83547ea2a 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1809.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1809.md @@ -9,7 +9,7 @@ ms.pagetype: security localizationpriority: high author: brianlic-msft ms.author: brianlic -ms.date: 10/03/2018 +ms.date: 11/07/2018 --- @@ -20,7 +20,7 @@ ms.date: 10/03/2018 - Windows 10, version 1809 -The Basic level gathers a limited set of information that is critical for understanding the device and its configuration including: basic device information, quality-related information, app compatibility, and Microsoft Store. When the level is set to Basic, it also includes the Security level information. +The Basic level gathers a limited set of information that is critical for understanding the device and its configuration including: basic device information, quality-related information, app compatibility, and Windows Store. When the level is set to Basic, it also includes the Security level information. The Basic level helps to identify problems that can occur on a particular device hardware or software configuration. For example, it can help determine if crashes are more frequent on devices with a specific amount of memory or that are running a particular driver version. This helps Microsoft fix operating system or app problems. @@ -281,7 +281,7 @@ The following fields are available: - **DatasourceApplicationFile_TH1** The count of the number of this particular object type present on this device. - **DatasourceApplicationFile_TH2** The count of the number of this particular object type present on this device. - **DatasourceDevicePnp_RS1** The total DataSourceDevicePnp objects targeting Windows 10 version 1607 on this device. -- **DatasourceDevicePnp_RS2** The count of DatasourceApplicationFile objects present on this machine targeting the next release of Windows +- **DatasourceDevicePnp_RS2** The total DatasourceDevicePnp objects targeting Windows 10 version 1703 present on this device. - **DatasourceDevicePnp_RS3** The total DatasourceDevicePnp objects targeting the next release of Windows on this device. - **DatasourceDevicePnp_RS4** The count of the number of this particular object type present on this device. - **DatasourceDevicePnp_RS4Setup** The count of the number of this particular object type present on this device. @@ -295,7 +295,7 @@ The following fields are available: - **DatasourceDriverPackage_TH1** The count of the number of this particular object type present on this device. - **DatasourceDriverPackage_TH2** The count of the number of this particular object type present on this device. - **DataSourceMatchingInfoBlock_RS1** The total DataSourceMatchingInfoBlock objects targeting Windows 10 version 1607 on this device. -- **DataSourceMatchingInfoBlock_RS2** The count of DatasourceDevicePnp objects present on this machine targeting the next release of Windows +- **DataSourceMatchingInfoBlock_RS2** The total DataSourceMatchingInfoBlock objects targeting Windows 10 version 1703 present on this device. - **DataSourceMatchingInfoBlock_RS3** The total DataSourceMatchingInfoBlock objects targeting the next release of Windows on this device. - **DataSourceMatchingInfoBlock_RS4** The count of the number of this particular object type present on this device. - **DataSourceMatchingInfoBlock_RS4Setup** The count of the number of this particular object type present on this device. @@ -309,7 +309,7 @@ The following fields are available: - **DataSourceMatchingInfoPassive_TH1** The count of the number of this particular object type present on this device. - **DataSourceMatchingInfoPassive_TH2** The count of the number of this particular object type present on this device. - **DataSourceMatchingInfoPostUpgrade_RS1** The total DataSourceMatchingInfoPostUpgrade objects targeting Windows 10 version 1607 on this device. -- **DataSourceMatchingInfoPostUpgrade_RS2** The count of DatasourceDriverPackage objects present on this machine targeting the next release of Windows +- **DataSourceMatchingInfoPostUpgrade_RS2** The total DataSourceMatchingInfoPostUpgrade objects targeting Windows 10 version 1703 present on this device. - **DataSourceMatchingInfoPostUpgrade_RS3** The total DataSourceMatchingInfoPostUpgrade objects targeting the next release of Windows on this device. - **DataSourceMatchingInfoPostUpgrade_RS4** The count of the number of this particular object type present on this device. - **DataSourceMatchingInfoPostUpgrade_RS4Setup** The count of the number of this particular object type present on this device. @@ -330,7 +330,7 @@ The following fields are available: - **DecisionApplicationFile_TH1** The count of the number of this particular object type present on this device. - **DecisionApplicationFile_TH2** The count of the number of this particular object type present on this device. - **DecisionDevicePnp_RS1** The total DecisionDevicePnp objects targeting Windows 10 version 1607 on this device. -- **DecisionDevicePnp_RS2** The count of DataSourceMatchingInfoBlock objects present on this machine targeting the next release of Windows +- **DecisionDevicePnp_RS2** The total DecisionDevicePnp objects targeting Windows 10 version 1703 present on this device. - **DecisionDevicePnp_RS3** The total DecisionDevicePnp objects targeting the next release of Windows on this device. - **DecisionDevicePnp_RS4** The count of the number of this particular object type present on this device. - **DecisionDevicePnp_RS4Setup** The count of the number of this particular object type present on this device. @@ -344,7 +344,7 @@ The following fields are available: - **DecisionDriverPackage_TH1** The count of the number of this particular object type present on this device. - **DecisionDriverPackage_TH2** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoBlock_RS1** The total DecisionMatchingInfoBlock objects targeting Windows 10 version 1607 present on this device. -- **DecisionMatchingInfoBlock_RS2** The count of DataSourceMatchingInfoPassive objects present on this machine targeting the next release of Windows +- **DecisionMatchingInfoBlock_RS2** The total DecisionMatchingInfoBlock objects targeting Windows 10 version 1703 present on this device. - **DecisionMatchingInfoBlock_RS3** The total DecisionMatchingInfoBlock objects targeting the next release of Windows on this device. - **DecisionMatchingInfoBlock_RS4** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoBlock_RS4Setup** The count of the number of this particular object type present on this device. @@ -358,14 +358,14 @@ The following fields are available: - **DecisionMatchingInfoPassive_TH1** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoPassive_TH2** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoPostUpgrade_RS1** The total DecisionMatchingInfoPostUpgrade objects targeting Windows 10 version 1607 on this device. -- **DecisionMatchingInfoPostUpgrade_RS2** The count of DataSourceMatchingInfoPostUpgrade objects present on this machine targeting the next release of Windows +- **DecisionMatchingInfoPostUpgrade_RS2** The total DecisionMatchingInfoPostUpgrade objects targeting Windows 10 version 1703 present on this device. - **DecisionMatchingInfoPostUpgrade_RS3** The total DecisionMatchingInfoPostUpgrade objects targeting the next release of Windows on this device. - **DecisionMatchingInfoPostUpgrade_RS4** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoPostUpgrade_RS4Setup** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoPostUpgrade_TH1** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoPostUpgrade_TH2** The count of the number of this particular object type present on this device. - **DecisionMediaCenter_RS1** The total DecisionMediaCenter objects targeting Windows 10 version 1607 present on this device. -- **DecisionMediaCenter_RS2** The count of DatasourceSystemBios objects present on this machine targeting the next release of Windows +- **DecisionMediaCenter_RS2** The total DecisionMediaCenter objects targeting Windows 10 version 1703 present on this device. - **DecisionMediaCenter_RS3** The total DecisionMediaCenter objects targeting the next release of Windows on this device. - **DecisionMediaCenter_RS4** The count of the number of this particular object type present on this device. - **DecisionMediaCenter_RS4Setup** The count of the number of this particular object type present on this device. @@ -395,7 +395,7 @@ The following fields are available: - **SystemWindowsActivationStatus** The count of the number of this particular object type present on this device. - **SystemWlan** The count of the number of this particular object type present on this device. - **Wmdrm_RS1** An ID for the system, calculated by hashing hardware identifiers. -- **Wmdrm_RS2** The count of InventoryLanguagePack objects present on this machine. +- **Wmdrm_RS2** The total Wmdrm objects targeting Windows 10 version 1703 present on this device. - **Wmdrm_RS3** The total Wmdrm objects targeting the next release of Windows on this device. - **Wmdrm_RS4** The total Wmdrm objects targeting Windows 10, version 1803 present on this device. - **Wmdrm_RS4Setup** The count of the number of this particular object type present on this device. @@ -666,7 +666,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove -This event indicates that the DecisionApplicationFile object is no longer present. +This event indicates Indicates that the DecisionApplicationFile object is no longer present. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -1013,7 +1013,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. +This event indicates indicates that a new set of InventoryApplicationFileAdd events will be sent. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -1818,14 +1818,18 @@ The following fields are available: - **AdvertisingId** Current state of the advertising ID setting. - **AppDiagnostics** Current state of the app diagnostics setting. - **Appointments** Current state of the calendar setting. +- **AppointmentsSystem** Current state of the calendar setting. - **Bluetooth** Current state of the Bluetooth capability setting. - **BluetoothSync** Current state of the Bluetooth sync capability setting. - **BroadFileSystemAccess** Current state of the broad file system access setting. - **CellularData** Current state of the cellular data capability setting. - **Chat** Current state of the chat setting. +- **ChatSystem** Current state of the chat setting. - **Contacts** Current state of the contacts setting. +- **ContactsSystem** Current state of the Contacts setting. - **DocumentsLibrary** Current state of the documents library setting. - **Email** Current state of the email setting. +- **EmailSystem** Current state of the email setting. - **FindMyDevice** Current state of the "find my device" setting. - **GazeInput** Current state of the gaze input setting. - **HumanInterfaceDevice** Current state of the human interface device setting. @@ -1837,6 +1841,7 @@ The following fields are available: - **Microphone** Current state of the microphone setting. - **PhoneCall** Current state of the phone call setting. - **PhoneCallHistory** Current state of the call history setting. +- **PhoneCallHistorySystem** Current state of the call history setting. - **PicturesLibrary** Current state of the pictures library setting. - **Radios** Current state of the radios setting. - **SensorsCustom** Current state of the custom sensor setting. @@ -1846,6 +1851,7 @@ The following fields are available: - **USB** Current state of the USB setting. - **UserAccountInformation** Current state of the account information setting. - **UserDataTasks** Current state of the tasks setting. +- **UserDataTasksSystem** Current state of the tasks setting. - **UserNotificationListener** Current state of the notifications setting. - **VideosLibrary** Current state of the videos library setting. - **Webcam** Current state of the camera setting. @@ -1979,14 +1985,18 @@ The following fields are available: - **AdvertisingId** Current state of the advertising ID setting. - **AppDiagnostics** Current state of the app diagnostics setting. - **Appointments** Current state of the calendar setting. +- **AppointmentsSystem** Current state of the calendar setting. - **Bluetooth** Current state of the Bluetooth capability setting. - **BluetoothSync** Current state of the Bluetooth sync capability setting. - **BroadFileSystemAccess** Current state of the broad file system access setting. - **CellularData** Current state of the cellular data capability setting. - **Chat** Current state of the chat setting. +- **ChatSystem** Current state of the chat setting. - **Contacts** Current state of the contacts setting. +- **ContactsSystem** Current state of the contacts setting. - **DocumentsLibrary** Current state of the documents library setting. - **Email** Current state of the email setting. +- **EmailSystem** Current state of the email setting. - **GazeInput** Current state of the gaze input setting. - **HumanInterfaceDevice** Current state of the human interface device setting. - **InkTypeImprovement** Current state of the improve inking and typing setting. @@ -1998,6 +2008,7 @@ The following fields are available: - **Microphone** Current state of the microphone setting. - **PhoneCall** Current state of the phone call setting. - **PhoneCallHistory** Current state of the call history setting. +- **PhoneCallHistorySystem** Current state of the call history setting. - **PicturesLibrary** Current state of the pictures library setting. - **Radios** Current state of the radios setting. - **SensorsCustom** Current state of the custom sensor setting. @@ -2007,6 +2018,7 @@ The following fields are available: - **USB** Current state of the USB setting. - **UserAccountInformation** Current state of the account information setting. - **UserDataTasks** Current state of the tasks setting. +- **UserDataTasksSystem** Current state of the tasks setting. - **UserNotificationListener** Current state of the notifications setting. - **VideosLibrary** Current state of the videos library setting. - **Webcam** Current state of the camera setting. @@ -2256,6 +2268,59 @@ The following fields are available: ## Component-based servicing events +### CbsServicingProvider.CbsCapabilityEnumeration + +This event reports on the results of scanning for optional Windows content on Windows Update. + +The following fields are available: + +- **architecture** Indicates the scan was limited to the specified architecture. +- **capabilityCount** The number of optional content packages found during the scan. +- **clientId** The name of the application requesting the optional content. +- **duration** The amount of time it took to complete the scan. +- **hrStatus** The HReturn code of the scan. +- **language** Indicates the scan was limited to the specified language. +- **majorVersion** Indicates the scan was limited to the specified major version. +- **minorVersion** Indicates the scan was limited to the specified minor version. +- **namespace** Indicates the scan was limited to packages in the specified namespace. +- **sourceFilter** A bitmask indicating the scan checked for locally available optional content. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionFinalize + +This event provides information about the results of installing or uninstalling optional Windows content from Windows Update. + +The following fields are available: + +- **capabilities** The names of the optional content packages that were installed. +- **clientId** The name of the application requesting the optional content. +- **currentID** The ID of the current install session. +- **highestState** The highest final install state of the optional content. +- **hrLCUReservicingStatus** Indicates whether the optional content was updated to the latest available version. +- **hrStatus** The HReturn code of the install operation. +- **rebootCount** The number of reboots required to complete the install. +- **retryID** The session ID that will be used to retry a failed operation. +- **retryStatus** Indicates whether the install will be retried in the event of failure. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionPended + +This event provides information about the results of installing optional Windows content that requires a reboot to keep Windows up to date. + +The following fields are available: + +- **clientId** The name of the application requesting the optional content. +- **pendingDecision** Indicates the cause of reboot, if applicable. + + ### CbsServicingProvider.CbsLateAcquisition This event sends data to indicate if some Operating System packages could not be updated as part of an upgrade, to help keep Windows up to date. @@ -2266,6 +2331,28 @@ The following fields are available: - **RetryID** The ID identifying the retry attempt to update the listed packages. +### CbsServicingProvider.CbsPackageRemoval + +This event provides information about the results of uninstalling a Windows Cumulative Security Update to help keep Windows up to date. + +The following fields are available: + +- **buildVersion** The build number of the security update being uninstalled. +- **clientId** The name of the application requesting the uninstall. +- **currentStateEnd** The final state of the update after the operation. +- **failureDetails** Information about the cause of a failure, if applicable. +- **failureSourceEnd** The stage during the uninstall where the failure occurred. +- **hrStatusEnd** The overall exit code of the operation. +- **initiatedOffline** Indicates if the uninstall was initiated for a mounted Windows image. +- **majorVersion** The major version number of the security update being uninstalled. +- **minorVersion** The minor version number of the security update being uninstalled. +- **originalState** The starting state of the update before the operation. +- **pendingDecision** Indicates the cause of reboot, if applicable. +- **primitiveExecutionContext** The state during system startup when the uninstall was completed. +- **revisionVersion** The revision number of the security update being uninstalled. +- **transactionCanceled** Indicates whether the uninstall was cancelled. + + ## Deployment extensions ### DeploymentTelemetry.Deployment_End @@ -3009,6 +3096,87 @@ The following fields are available: - **CV** Correlation vector. +## DxgKernelTelemetry events + +### DxgKrnlTelemetry.GPUAdapterInventoryV2 + +This event sends basic GPU and display driver information to keep Windows and display drivers up-to-date. + +The following fields are available: + +- **AdapterTypeValue** The numeric value indicating the type of Graphics adapter. +- **aiSeqId** The event sequence ID. +- **bootId** The system boot ID. +- **BrightnessVersionViaDDI** The version of the Display Brightness Interface. +- **ComputePreemptionLevel** The maximum preemption level supported by GPU for compute payload. +- **DedicatedSystemMemoryB** The amount of system memory dedicated for GPU use (in bytes). +- **DedicatedVideoMemoryB** The amount of dedicated VRAM of the GPU (in bytes). +- **DisplayAdapterLuid** The display adapter LUID. +- **DriverDate** The date of the display driver. +- **DriverRank** The rank of the display driver. +- **DriverVersion** The display driver version. +- **DX10UMDFilePath** The file path to the location of the DirectX 10 Display User Mode Driver in the Driver Store. +- **DX11UMDFilePath** The file path to the location of the DirectX 11 Display User Mode Driver in the Driver Store. +- **DX12UMDFilePath** The file path to the location of the DirectX 12 Display User Mode Driver in the Driver Store. +- **DX9UMDFilePath** The file path to the location of the DirectX 9 Display User Mode Driver in the Driver Store. +- **GPUDeviceID** The GPU device ID. +- **GPUPreemptionLevel** The maximum preemption level supported by GPU for graphics payload. +- **GPURevisionID** The GPU revision ID. +- **GPUVendorID** The GPU vendor ID. +- **InterfaceId** The GPU interface ID. +- **IsDisplayDevice** Does the GPU have displaying capabilities? +- **IsHybridDiscrete** Does the GPU have discrete GPU capabilities in a hybrid device? +- **IsHybridIntegrated** Does the GPU have integrated GPU capabilities in a hybrid device? +- **IsLDA** Is the GPU comprised of Linked Display Adapters? +- **IsMiracastSupported** Does the GPU support Miracast? +- **IsMismatchLDA** Is at least one device in the Linked Display Adapters chain from a different vendor? +- **IsMPOSupported** Does the GPU support Multi-Plane Overlays? +- **IsMsMiracastSupported** Are the GPU Miracast capabilities driven by a Microsoft solution? +- **IsPostAdapter** Is this GPU the POST GPU in the device? +- **IsRemovable** TRUE if the adapter supports being disabled or removed. +- **IsRenderDevice** Does the GPU have rendering capabilities? +- **IsSoftwareDevice** Is this a software implementation of the GPU? +- **KMDFilePath** The file path to the location of the Display Kernel Mode Driver in the Driver Store. +- **MeasureEnabled** Is the device listening to MICROSOFT_KEYWORD_MEASURES? +- **NumVidPnSources** The number of supported display output sources. +- **NumVidPnTargets** The number of supported display output targets. +- **SharedSystemMemoryB** The amount of system memory shared by GPU and CPU (in bytes). +- **SubSystemID** The subsystem ID. +- **SubVendorID** The GPU sub vendor ID. +- **TelemetryEnabled** Is the device listening to MICROSOFT_KEYWORD_TELEMETRY? +- **TelInvEvntTrigger** What triggered this event to be logged? Example: 0 (GPU enumeration) or 1 (DxgKrnlTelemetry provider toggling) +- **version** The event version. +- **WDDMVersion** The Windows Display Driver Model version. + + +## Hang Reporting events + +### Microsoft.Windows.HangReporting.AppHangEvent + +This event sends data about hangs for both native and managed applications, to help keep Windows up to date. It does not contain any Watson bucketing information. The bucketing information is recorded in a Windows Error Reporting (WER) event that is generated when the WER client reports the hang to the Watson service, and the WER event will contain the same ReportID (see field 13 of hang event, field 19 of WER event) as the hang event for the hang being reported. AppHang is reported only on PC devices. It handles classic Win32 hangs and is emitted only once per report. Some behaviors that may be perceived by a user as a hang are reported by app managers (e.g. PLM/RM/EM) as Watson Generics and will not produce AppHang events. + +The following fields are available: + +- **AppName** The name of the app that has hung. +- **AppSessionGuid** GUID made up of process id used as a correlation vector for process instances in the telemetry backend. +- **AppVersion** The version of the app that has hung. +- **IsFatal** True/False based on whether the hung application caused the creation of a Fatal Hang Report. +- **PackageFullName** Store application identity. +- **PackageRelativeAppId** Store application identity. +- **ProcessArchitecture** Architecture of the hung process, as one of the PROCESSOR_ARCHITECTURE_* constants: 0: PROCESSOR_ARCHITECTURE_INTEL. 5: PROCESSOR_ARCHITECTURE_ARM. 9: PROCESSOR_ARCHITECTURE_AMD64. 12: PROCESSOR_ARCHITECTURE_ARM64. +- **ProcessCreateTime** The time of creation of the process that has hung. +- **ProcessId** The ID of the process that has hung. +- **ReportId** A GUID used to identify the report. This can used to track the report across Watson. +- **TargetAppId** The kernel reported AppId of the application being reported. +- **TargetAppVer** The specific version of the application being reported. +- **TargetAsId** The sequence number for the hanging process. +- **TypeCode** Bitmap describing the hang type. +- **WaitingOnAppName** If this is a cross process hang waiting for an application, this has the name of the application. +- **WaitingOnAppVersion** If this is a cross process hang, this has the version of the application for which it is waiting. +- **WaitingOnPackageFullName** If this is a cross process hang waiting for a package, this has the full name of the package for which it is waiting. +- **WaitingOnPackageRelativeAppId** If this is a cross process hang waiting for a package, this has the relative application id of the package. + + ## Inventory events ### Microsoft.Windows.Inventory.Core.AmiTelCacheChecksum @@ -3104,8 +3272,8 @@ This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedevic The following fields are available: -- **InventoryVersion** The version of the inventory component -- **ProgramIds** The unique program identifier the driver is associated with +- **InventoryVersion** The version of the inventory component. +- **ProgramIds** The unique program identifier the driver is associated with. ### Microsoft.Windows.Inventory.Core.InventoryApplicationDriverStartSync @@ -3308,9 +3476,10 @@ The following fields are available: - **DriverVerDate** Name of the .sys image file (or wudfrd.sys if using user mode driver framework). - **DriverVerVersion** The immediate parent directory name in the Directory field of InventoryDriverPackage. - **Enumerator** The date of the driver loaded for the device. +- **ExtendedInfs** The extended INF file names. - **HWID** The version of the driver loaded for the device. - **Inf** The bus that enumerated the device. -- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/library/windows/hardware/ff543130.aspx +- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/en-us/library/windows/hardware/ff543130.aspx - **InventoryVersion** List of hardware ids for the device. - **LowerClassFilters** Lower filter class drivers IDs installed for the device - **LowerFilters** Lower filter drivers IDs installed for the device @@ -3463,6 +3632,18 @@ The following fields are available: - **InventoryVersion** The version of the inventory file generating the events. +### Microsoft.Windows.Inventory.Core.StartUtcJsonTrace + +This event collects traces of all other Core events, not used in typical customer scenarios. This event signals the beginning of the event download, and that tracing should begin. + + + +### Microsoft.Windows.Inventory.Core.StopUtcJsonTrace + +This event collects traces of all other Core events, not used in typical customer scenarios. This event signals the end of the event download, and that tracing should end. + + + ### Microsoft.Windows.Inventory.General.AppHealthStaticAdd This event sends details collected for a specific application on the source device. @@ -3510,27 +3691,27 @@ This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedevic The following fields are available: -- **AddinCLSID** The CLSID for the Office add-in. -- **AddInId** Office add-in ID. -- **AddinType** Office add-in Type. -- **BinFileTimestamp** Timestamp of the Office add-in. -- **BinFileVersion** Version of the Office add-in. -- **Description** Office add-in description. -- **FileId** FileId of the Office add-in. -- **FileSize** File size of the Office add-in. -- **FriendlyName** Friendly name for office add-in. -- **FullPath** Unexpanded path to the office add-in. +- **AddinCLSID** The CLSID for the Office addin +- **AddInId** Office addin ID +- **AddinType** The type of the Office addin. +- **BinFileTimestamp** Timestamp of the Office addin +- **BinFileVersion** Version of the Office addin +- **Description** Office addin description +- **FileId** FileId of the Office addin +- **FileSize** File size of the Office addin +- **FriendlyName** Friendly name for office addin +- **FullPath** Unexpanded path to the office addin - **InventoryVersion** The version of the inventory binary generating the events. -- **LoadBehavior** Uint32 that describes the load behavior. -- **OfficeApplication** The office application for this add-in. -- **OfficeArchitecture** Architecture of the add-in. -- **OfficeVersion** The office version for this add-in. -- **OutlookCrashingAddin** Boolean that indicates if crashes have been found for this add-in. -- **ProductCompany** The name of the company associated with the Office add-in. -- **ProductName** The product name associated with the Office add-in. -- **ProductVersion** The version associated with the Office add-in. -- **ProgramId** The unique program identifier of the Office add-in. -- **Provider** Name of the provider for this add-in. +- **LoadBehavior** Uint32 that describes the load behavior +- **OfficeApplication** The office application for this addin +- **OfficeArchitecture** Architecture of the addin +- **OfficeVersion** The office version for this addin +- **OutlookCrashingAddin** Boolean that indicates if crashes have been found for this addin +- **ProductCompany** The name of the company associated with the Office addin +- **ProductName** The product name associated with the Office addin +- **ProductVersion** The version associated with the Office addin +- **ProgramId** The unique program identifier of the Office addin +- **Provider** Name of the provider for this addin ### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeAddInRemove @@ -3908,6 +4089,153 @@ The following fields are available: - **UserInputTime** The amount of time the loader application spent waiting for user input. +## OneDrive events + +### Microsoft.OneDrive.Sync.Updater.ComponentInstallState + +This event includes basic data about the installation state of dependent OneDrive components. + +The following fields are available: + +- **ComponentName** The name of the dependent component. +- **isInstalled** Is the dependent component installed? + + +### Microsoft.OneDrive.Sync.Updater.OverlayIconStatus + +This event indicates if the OneDrive overlay icon is working correctly. 0 = healthy; 1 = can be fixed; 2 = broken + +The following fields are available: + +- **32bit** The status of the OneDrive overlay icon on a 32-bit operating system. +- **64bit** The status of the OneDrive overlay icon on a 64-bit operating system. + + +### Microsoft.OneDrive.Sync.Updater.UpdateOverallResult + +This event sends information describing the result of the update. + +The following fields are available: + +- **hr** The HResult of the operation. +- **IsLoggingEnabled** Indicates whether logging is enabled for the updater. +- **UpdaterVersion** The version of the updater. + + +### Microsoft.OneDrive.Sync.Updater.UpdateXmlDownloadHResult + +This event determines the status when downloading the OneDrive update configuration file. + +The following fields are available: + +- **hr** The HResult of the operation. + + +### Microsoft.OneDrive.Sync.Updater.WebConnectionStatus + +This event determines the error code that was returned when verifying Internet connectivity. + +The following fields are available: + +- **winInetError** The HResult of the operation. + + +## Other events + +### Microsoft.Windows.Kits.WSK.WskImageCreate + +This event sends simple Product and Service usage data when a user is using the Windows System Kit to create new OS “images”. The data includes the version of the Windows System Kit and the state of the event and is used to help investigate “image” creation failures. + +The following fields are available: + +- **Phase** The image creation phase. Values are “Start” or “End”. +- **WskVersion** The version of the Windows System Kit being used. + + +### Microsoft.Windows.Kits.WSK.WskImageCustomization + +This event sends simple Product and Service usage data when a user is using the Windows System Kit to create/modify configuration files allowing the customization of a new OS image with Apps or Drivers. The data includes the version of the Windows System Kit, the state of the event, the customization type (drivers or apps) and the mode (new or updating) and is used to help investigate configuration file creation failures. + +The following fields are available: + +- **Mode** The mode of update to image configuration files. Values are “New” or “Update”. +- **Phase** The image creation phase. Values are “Start” or “End”. +- **Type** The type of update to image configuration files. Values are “Apps” or “Drivers”. +- **WskVersion** The version of the Windows System Kit being used. + + +### Microsoft.Windows.Kits.WSK.WskWorkspaceCreate + +This event sends simple Product and Service usage data when a user is using the Windows System Kit to create new workspace for generating OS “images”. The data includes the version of the Windows System Kit and the state of the event and is used to help investigate workspace creation failures. + +The following fields are available: + +- **Architecture** The OS architecture that the workspace will target. Values are one of: “AMD64”, “ARM64”, “x86”, or “ARM”. +- **OsEdition** The Operating System Edition that the workspace will target. +- **Phase** The image creation phase. Values are “Start” or “End”. +- **WskVersion** The version of the Windows System Kit being used. + + +### Microsoft.Windows.Mitigation.AccountTraceLoggingProvider.General + +This event provides information about application properties to indicate the successful execution. + +The following fields are available: + +- **AppMode** Indicates the mode the app is being currently run around privileges. +- **ExitCode** Indicates the exit code of the app. +- **Help** Indicates if the app needs to be launched in the help mode. +- **ParseError** Indicates if there was a parse error during the execution. +- **RightsAcquired** Indicates if the right privileges were acquired for successful execution. +- **RightsWereEnabled** Indicates if the right privileges were enabled for successful execution. +- **TestMode** Indicates whether the app is being run in test mode. + + +### Microsoft.Windows.Mitigation.AccountTraceLoggingProvider.GetCount + +This event provides information about the properties of user accounts in the Administrator group. + +The following fields are available: + +- **Internal** Indicates the internal property associated with the count group. +- **LastError** The error code (if applicable) for the cause of the failure to get the count of the user account. + + +### Microsoft.Xbox.XamTelemetry.AppActivationError + +This event indicates whether the system detected an activation error in the app. + +The following fields are available: + +- **ActivationUri** Activation URI (Uniform Resource Identifier) used in the attempt to activate the app. +- **AppId** The Xbox LIVE Title ID. +- **AppUserModelId** The AUMID (Application User Model ID) of the app to activate. +- **Result** The HResult error. +- **UserId** The Xbox LIVE User ID (XUID). + + +### Microsoft.Xbox.XamTelemetry.AppActivity + +This event is triggered whenever the current app state is changed by: launch, switch, terminate, snap, etc. + +The following fields are available: + +- **AppActionId** The ID of the application action. +- **AppCurrentVisibilityState** The ID of the current application visibility state. +- **AppId** The Xbox LIVE Title ID of the app. +- **AppPackageFullName** The full name of the application package. +- **AppPreviousVisibilityState** The ID of the previous application visibility state. +- **AppSessionId** The application session ID. +- **AppType** The type ID of the application (AppType_NotKnown, AppType_Era, AppType_Sra, AppType_Uwa). +- **BCACode** The BCA (Burst Cutting Area) mark code of the optical disc used to launch the application. +- **DurationMs** The amount of time (in milliseconds) since the last application state transition. +- **IsTrialLicense** This boolean value is TRUE if the application is on a trial license. +- **LicenseType** The type of licensed used to authorize the app (0 - Unknown, 1 - User, 2 - Subscription, 3 - Offline, 4 - Disc). +- **LicenseXuid** If the license type is 1 (User), this field contains the XUID (Xbox User ID) of the registered owner of the license. +- **ProductGuid** The Xbox product GUID (Globally-Unique ID) of the application. +- **UserId** The XUID (Xbox User ID) of the current user. + + ## Privacy consent logging events ### Microsoft.Windows.Shell.PrivacyConsentLogging.PrivacyConsentCompleted @@ -3936,6 +4264,43 @@ The following fields are available: - **userRegionCode** The current user's region setting +## Setup events + +### SetupPlatformTel.SetupPlatformTelActivityEvent + +This event sends basic metadata about the SetupPlatform update installation process, to help keep Windows up to date. + +The following fields are available: + +- **FieldName** Retrieves the event name/data point. Examples: InstallStartTime, InstallEndtime, OverallResult etc. +- **GroupName** Retrieves the groupname the event belongs to. Example: Install Information, DU Information, Disk Space Information etc. +- **Value** Value associated with the corresponding event name. For example, time-related events will include the system time + + +### SetupPlatformTel.SetupPlatformTelActivityStarted + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + +The following fields are available: + +- **Name** The name of the dynamic update type. Example: GDR driver + + +### SetupPlatformTel.SetupPlatformTelActivityStopped + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + + + +### SetupPlatformTel.SetupPlatfOrmTelEvent + +This service retrieves events generated by SetupPlatform, the engine that drives the various deployment scenarios. + +The following fields are available: + +- **GroupName** Retrieves the groupname the event belongs to. Example: Install Information, DU Information, Disk Space Information etc. + + ## Software update events ### SoftwareUpdateClientTelemetry.CheckForUpdates @@ -4010,7 +4375,7 @@ The following fields are available: - **ScanDurationInSeconds** The number of seconds a scan took - **ScanEnqueueTime** The number of seconds it took to initialize a scan - **ScanProps** This is a 32-bit integer containing Boolean properties for a given Windows Update scan. The following bits are used; all remaining bits are reserved and set to zero. Bit 0 (0x1): IsInteractive - is set to 1 if the scan is requested by a user, or 0 if the scan is requested by Automatic Updates. Bit 1 (0x2): IsSeeker - is set to 1 if the Windows Update client's Seeker functionality is enabled. Seeker functionality is enabled on certain interactive scans, and results in the scans returning certain updates that are in the initial stages of release (not yet released for full adoption via Automatic Updates). -- **ServiceGuid** An ID which represents which service the software distribution client is checking for content (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** An ID which represents which service the software distribution client is checking for content (Windows Update, Windows Store, etc.). - **ServiceUrl** The environment URL a device is configured to scan with - **ShippingMobileOperator** The mobile operator that a device shipped on. - **StatusCode** Indicates the result of a CheckForUpdates event (success, cancellation, failure code HResult). @@ -4092,7 +4457,7 @@ The following fields are available: - **RepeatFailCount** Indicates whether this specific piece of content has previously failed. - **RepeatFailFlag** Indicates whether this specific piece of content had previously failed to download. - **RevisionNumber** Identifies the revision number of this specific piece of content. -- **ServiceGuid** An ID that represents which service the software distribution client is installing content for (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** An ID that represents which service the software distribution client is installing content for (Windows Update, Windows Store, etc.). - **Setup360Phase** If the download is for an operating system upgrade, this datapoint indicates which phase of the upgrade is underway. - **ShippingMobileOperator** The mobile operator that a device shipped on. - **SizeCalcTime** Time taken (in seconds) to calculate the total download size of the payload. @@ -4169,7 +4534,7 @@ The following fields are available: - **RepeatFailCount** Indicates whether this specific piece of content has previously failed. - **RepeatFailFlag** Indicates whether this specific piece of content previously failed to install. - **RevisionNumber** The revision number of this specific piece of content. -- **ServiceGuid** An ID which represents which service the software distribution client is installing content for (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** An ID which represents which service the software distribution client is installing content for (Windows Update, Windows Store, etc.). - **Setup360Phase** If the install is for an operating system upgrade, indicates which phase of the upgrade is underway. - **ShippingMobileOperator** The mobile operator that a device shipped on. - **StatusCode** Indicates the result of an installation event (success, cancellation, failure code HResult). @@ -4219,7 +4584,7 @@ The following fields are available: - **RelatedCV** The previous correlation vector that was used by the client before swapping with a new one. - **RepeatFailCount** Indicates whether this specific piece of content has previously failed. - **RevisionNumber** Identifies the revision number of this specific piece of content. -- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Windows Store, etc.). - **StatusCode** Result code of the event (success, cancellation, failure code HResult). - **TargetGroupId** For drivers targeted to a specific device model, this ID indicates the distribution group of devices receiving that driver. - **TargetingVersion** For drivers targeted to a specific device model, this is the version number of the drivers being distributed to the device. @@ -4240,7 +4605,7 @@ The following fields are available: - **CmdLineArgs** Command line arguments passed in by the caller. - **EventInstanceID** A globally unique identifier for the event instance. - **EventScenario** Indicates the purpose of the event (scan started, succeeded, failed, etc.). -- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Windows Store, etc.). - **StatusCode** Result code of the event (success, cancellation, failure code HResult). - **WUDeviceID** Unique device ID controlled by the software distribution client. @@ -4279,7 +4644,7 @@ The following fields are available: - **RelatedCV** The previous correlation vector that was used by the client before swapping with a new one. - **RepeatFailCount** Indicates whether this specific piece of content previously failed. - **RevisionNumber** Identifies the revision number of this specific piece of content. -- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Windows Store, etc.). - **StatusCode** Result code of the event (success, cancellation, failure code HResult). - **TargetGroupId** For drivers targeted to a specific device model, this ID indicates the distribution group of devices receiving that driver. - **TargetingVersion** For drivers targeted to a specific device model, this is the version number of the drivers being distributed to the device. @@ -4300,7 +4665,7 @@ The following fields are available: - **IntentPFNs** Intended application-set metadata for atomic update scenarios. - **NumberOfApplicableUpdates** The number of updates ultimately deemed applicable to the system after the detection process is complete. - **RelatedCV** The previous Correlation Vector that was used before swapping with a new one. -- **ServiceGuid** An ID that represents which service the software distribution client is connecting to (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** An ID that represents which service the software distribution client is connecting to (Windows Update, Windows Store, etc.). - **WUDeviceID** The unique device ID controlled by the software distribution client. @@ -4334,6 +4699,296 @@ The following fields are available: - **LinkSpeed** The adapter link speed. +## Update events + +### Update360Telemetry.Revert + +This event sends data relating to the Revert phase of updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the Revert phase. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **RebootRequired** Indicates reboot is required. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **RevertResult** The result code returned for the Revert operation. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + +### Update360Telemetry.UpdateAgentCommit + +This event collects information regarding the commit phase of the new Unified Update Platform (UUP) update scenario, which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **ErrorCode** The error code returned for the current install phase. +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the install phase of the update. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentDownloadRequest + +This event sends data for the download request phase of updating Windows via the new Unified Update Platform (UUP) scenario. Applicable to PC and Mobile. + +The following fields are available: + +- **DeletedCorruptFiles** Boolean indicating whether corrupt payload was deleted. +- **DownloadRequests** Number of times a download was retried. +- **ErrorCode** The error code returned for the current download request phase. +- **ExtensionName** Indicates whether the payload is related to Operating System content or a plugin. +- **FlightId** Unique ID for each flight. +- **InternalFailureResult** Indicates a non-fatal error from a plugin. +- **ObjectId** Unique value for each Update Agent mode (same concept as InstanceId for Setup360). +- **PackageCategoriesSkipped** Indicates package categories that were skipped, if applicable. +- **PackageCountOptional** Number of optional packages requested. +- **PackageCountRequired** Number of required packages requested. +- **PackageCountTotal** Total number of packages needed. +- **PackageCountTotalCanonical** Total number of canonical packages. +- **PackageCountTotalDiff** Total number of diff packages. +- **PackageCountTotalExpress** Total number of express packages. +- **PackageExpressType** Type of express package. +- **PackageSizeCanonical** Size of canonical packages in bytes. +- **PackageSizeDiff** Size of diff packages in bytes. +- **PackageSizeExpress** Size of express packages in bytes. +- **RangeRequestState** Indicates the range request type used. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the download request phase of update. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each attempt (same value for initialize, download, install commit phases). +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentExpand + +This event collects information regarding the expansion phase of the new Unified Update Platform (UUP) update scenario, which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **ElapsedTickCount** Time taken for expand phase. +- **EndFreeSpace** Free space after expand phase. +- **EndSandboxSize** Sandbox size after expand phase. +- **ErrorCode** The error code returned for the current install phase. +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **StartFreeSpace** Free space before expand phase. +- **StartSandboxSize** Sandbox size after expand phase. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentFellBackToCanonical + +This event collects information when express could not be used and we fall back to canonical during the new Unified Update Platform (UUP) update scenario, which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode. +- **PackageCount** Number of packages that feel back to canonical. +- **PackageList** PackageIds which fell back to canonical. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentInitialize + +This event sends data for the initialize phase of updating Windows via the new Unified Update Platform (UUP) scenario, which is applicable to both PCs and Mobile. + +The following fields are available: + +- **ErrorCode** The error code returned for the current install phase. +- **FlightId** Unique ID for each flight. +- **FlightMetadata** Contains the FlightId and the build being flighted. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the install phase of the update. +- **ScenarioId** Indicates the update scenario. +- **SessionData** String containing instructions to update agent for processing FODs and DUICs (Null for other scenarios). +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentInstall + +This event sends data for the install phase of updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current install phase. +- **ExtensionName** Indicates whether the payload is related to Operating System content or a plugin. +- **FlightId** Unique value for each Update Agent mode (same concept as InstanceId for Setup360). +- **InternalFailureResult** Indicates a non-fatal error from a plugin. +- **ObjectId** Correlation vector value generated from the latest USO scan. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** The result for the current install phase. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentMerge + +The UpdateAgentMerge event sends data on the merge phase when updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current merge phase. +- **FlightId** Unique ID for each flight. +- **MergeId** The unique ID to join two update sessions being merged. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Related correlation vector value. +- **Result** Outcome of the merge phase of the update. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentMitigationResult + +This event sends data indicating the result of each update agent mitigation. + +The following fields are available: + +- **Applicable** Indicates whether the mitigation is applicable for the current update. +- **CommandCount** The number of command operations in the mitigation entry. +- **CustomCount** The number of custom operations in the mitigation entry. +- **FileCount** The number of file operations in the mitigation entry. +- **FlightId** Unique identifier for each flight. +- **Index** The mitigation index of this particular mitigation. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **Name** The friendly name of the mitigation. +- **ObjectId** Unique value for each Update Agent mode. +- **OperationIndex** The mitigation operation index (in the event of a failure). +- **OperationName** The friendly name of the mitigation operation (in the event of failure). +- **RegistryCount** The number of registry operations in the mitigation entry. +- **RelatedCV** The correlation vector value generated from the latest USO scan. +- **Result** The HResult of this operation. +- **ScenarioId** The update agent scenario ID. +- **SessionId** Unique value for each update attempt. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). +- **UpdateId** Unique ID for each Update. + + +### Update360Telemetry.UpdateAgentMitigationSummary + +This event sends a summary of all the update agent mitigations available for an this update. + +The following fields are available: + +- **Applicable** The count of mitigations that were applicable to the system and scenario. +- **Failed** The count of mitigations that failed. +- **FlightId** Unique identifier for each flight. +- **MitigationScenario** The update scenario in which the mitigations were attempted. +- **ObjectId** The unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest USO scan. +- **Result** The HResult of this operation. +- **ScenarioId** The update agent scenario ID. +- **SessionId** Unique value for each update attempt. +- **TimeDiff** The amount of time spent performing all mitigations (in 100-nanosecond increments). +- **Total** Total number of mitigations that were available. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentModeStart + +This event sends data for the start of each mode during the process of updating Windows via the new Unified Update Platform (UUP) scenario. Applicable to both PCs and Mobile. + +The following fields are available: + +- **FlightId** Unique ID for each flight. +- **Mode** Indicates the mode that has started. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. +- **Version** Version of update + + +### Update360Telemetry.UpdateAgentOneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **Count** The count of applicable OneSettings for the device. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **Parameters** The set of name value pair parameters sent to OneSettings to determine if there are any applicable OneSettings. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. +- **Values** The values sent back to the device, if applicable. + + +### Update360Telemetry.UpdateAgentPostRebootResult + +This event collects information for both Mobile and Desktop regarding the post reboot phase of the new Unified Update Platform (UUP) update scenario. + +The following fields are available: + +- **ErrorCode** The error code returned for the current post reboot phase. +- **FlightId** The specific ID of the Windows Insider build the device is getting. +- **ObjectId** Unique value for each Update Agent mode. +- **PostRebootResult** Indicates the Hresult. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentReboot + +This event sends information indicating that a request has been sent to suspend an update. + +The following fields are available: + +- **ErrorCode** The error code returned for the current reboot. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + +### Update360Telemetry.UpdateAgentSetupBoxLaunch + +The UpdateAgent_SetupBoxLaunch event sends data for the launching of the setup box when updating Windows via the new Unified Update Platform (UUP) scenario. This event is only applicable to PCs. + +The following fields are available: + +- **ContainsExpressPackage** Indicates whether the download package is express. +- **FlightId** Unique ID for each flight. +- **FreeSpace** Free space on OS partition. +- **InstallCount** Number of install attempts using the same sandbox. +- **ObjectId** Unique value for each Update Agent mode. +- **Quiet** Indicates whether setup is running in quiet mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **SandboxSize** Size of the sandbox. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **SetupMode** Mode of setup to be launched. +- **UpdateId** Unique ID for each Update. +- **UserSession** Indicates whether install was invoked by user actions. + + ## Upgrade events ### FacilitatorTelemetry.DCATDownload @@ -4364,6 +5019,197 @@ The following fields are available: - **Version** Version of Facilitator. +### Setup360Telemetry.Downlevel + +This event sends data indicating that the device has started the downlevel phase of the upgrade, to help keep Windows up-to-date and secure. + +The following fields are available: + +- **ClientId** If using Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, the default value is Media360, but it can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the downlevel OS. +- **HostOsSkuName** The operating system edition which is running Setup360 instance (downlevel OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe. +- **ReportId** In the Windows Update scenario, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** More detailed information about phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360 (for example, Predownload, Install, Finalize, Rollback). +- **Setup360Result** The result of Setup360 (HRESULT used to diagnose errors). +- **Setup360Scenario** The Setup360 flow type (for example, Boot, Media, Update, MCT). +- **SetupVersionBuildNumber** The build number of Setup360 (build number of the target OS). +- **State** Exit state of given Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** An ID that uniquely identifies a group of events. +- **WuId** This is the Windows Update Client ID. In the Windows Update scenario, this is the same as the clientId. + + +### Setup360Telemetry.Finalize + +This event sends data indicating that the device has started the phase of finalizing the upgrade, to help keep Windows up-to-date and secure. + +The following fields are available: + +- **ClientId** With Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe +- **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** More detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** ID that uniquely identifies a group of events. +- **WuId** This is the Windows Update Client ID. With Windows Update, this is the same as the clientId. + + +### Setup360Telemetry.OsUninstall + +This event sends data regarding OS updates and upgrades from Windows 7, Windows 8, and Windows 10. Specifically, it indicates the outcome of an OS uninstall. + +The following fields are available: + +- **ClientId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running the Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe. +- **ReportId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase or action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** Exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled +- **TestId** ID that uniquely identifies a group of events. +- **WuId** Windows Update client ID. + + +### Setup360Telemetry.PostRebootInstall + +This event sends data indicating that the device has invoked the post reboot install phase of the upgrade, to help keep Windows up-to-date. + +The following fields are available: + +- **ClientId** With Windows Update, this is the Windows Update client ID that is passed to Setup. In Media setup, the default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe. +- **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** Extension of result - more granular information about phase/action when the potential failure happened +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback +- **Setup360Result** The result of Setup360. This is an HRESULT error code that's used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled +- **TestId** A string to uniquely identify a group of events. +- **WuId** This is the Windows Update Client ID. With Windows Update, this is the same as ClientId. + + +### Setup360Telemetry.PreDownloadQuiet + +This event sends data indicating that the device has invoked the predownload quiet phase of the upgrade, to help keep Windows up to date. + +The following fields are available: + +- **ClientId** Using Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running Setup360 instance (previous operating system). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe. +- **ReportId** Using Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, canceled. +- **TestId** ID that uniquely identifies a group of events. +- **WuId** This is the Windows Update Client ID. Using Windows Update, this is the same as the clientId. + + +### Setup360Telemetry.PreDownloadUX + +This event sends data regarding OS Updates and Upgrades from Windows 7.X, Windows 8.X, Windows 10 and RS, to help keep Windows up-to-date and secure. Specifically, it indicates the outcome of the PredownloadUX portion of the update process. + +The following fields are available: + +- **ClientId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** In the WU scenario, this will be the WU client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **HostOSBuildNumber** The build number of the previous operating system. +- **HostOsSkuName** The OS edition which is running the Setup360 instance (previous operating system). +- **InstanceId** Unique GUID that identifies each instance of setuphost.exe. +- **ReportId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of the target OS). +- **State** The exit state of the Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** ID that uniquely identifies a group of events. +- **WuId** Windows Update client ID. + + +### Setup360Telemetry.PreInstallQuiet + +This event sends data indicating that the device has invoked the preinstall quiet phase of the upgrade, to help keep Windows up-to-date. + +The following fields are available: + +- **ClientId** With Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe +- **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used to diagnose errors. +- **Setup360Scenario** Setup360 flow type (Boot, Media, Update, MCT). +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** A string to uniquely identify a group of events. +- **WuId** This is the Windows Update Client ID. With Windows Update, this is the same as the clientId. + + +### Setup360Telemetry.PreInstallUX + +This event sends data regarding OS updates and upgrades from Windows 7, Windows 8, and Windows 10, to help keep Windows up-to-date. Specifically, it indicates the outcome of the PreinstallUX portion of the update process. + +The following fields are available: + +- **ClientId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running the Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe. +- **ReportId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type, Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** A string to uniquely identify a group of events. +- **WuId** Windows Update client ID. + + +### Setup360Telemetry.Setup360 + +This event sends data about OS deployment scenarios, to help keep Windows up-to-date. + +The following fields are available: + +- **ClientId** Retrieves the upgrade ID. In the Windows Update scenario, this will be the Windows Update client ID. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FieldName** Retrieves the data point. +- **FlightData** Specifies a unique identifier for each group of Windows Insider builds. +- **InstanceId** Retrieves a unique identifier for each instance of a setup session. +- **ReportId** Retrieves the report ID. +- **ScenarioId** Retrieves the deployment scenario. +- **Value** Retrieves the value associated with the corresponding FieldName. + + ### Setup360Telemetry.Setup360DynamicUpdate This event helps determine whether the device received supplemental content during an operating system upgrade, to help keep Windows up-to-date. @@ -4381,6 +5227,89 @@ The following fields are available: - **TargetBuild** Build of the target OS. +### Setup360Telemetry.Setup360MitigationResult + +This event sends data indicating the result of each setup mitigation. + +The following fields are available: + +- **Applicable** TRUE if the mitigation is applicable for the current update. +- **ClientId** In the Windows Update scenario, this is the client ID passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **CommandCount** The number of command operations in the mitigation entry. +- **CustomCount** The number of custom operations in the mitigation entry. +- **FileCount** The number of file operations in the mitigation entry. +- **FlightData** The unique identifier for each flight (test release). +- **Index** The mitigation index of this particular mitigation. +- **InstanceId** The GUID (Globally Unique ID) that identifies each instance of SetupHost.EXE. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **Name** The friendly (descriptive) name of the mitigation. +- **OperationIndex** The mitigation operation index (in the event of a failure). +- **OperationName** The friendly (descriptive) name of the mitigation operation (in the event of failure). +- **RegistryCount** The number of registry operations in the mitigation entry. +- **ReportId** In the Windows Update scenario, the Update ID that is passed to Setup. In media setup, this is the GUID for the INSTALL.WIM. +- **Result** HResult of this operation. +- **ScenarioId** Setup360 flow type. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). + + +### Setup360Telemetry.Setup360MitigationSummary + +This event sends a summary of all the setup mitigations available for this update. + +The following fields are available: + +- **Applicable** The count of mitigations that were applicable to the system and scenario. +- **ClientId** The Windows Update client ID passed to Setup. +- **Failed** The count of mitigations that failed. +- **FlightData** The unique identifier for each flight (test release). +- **InstanceId** The GUID (Globally Unique ID) that identifies each instance of SetupHost.EXE. +- **MitigationScenario** The update scenario in which the mitigations were attempted. +- **ReportId** In the Windows Update scenario, the Update ID that is passed to Setup. In media setup, this is the GUID for the INSTALL.WIM. +- **Result** HResult of this operation. +- **ScenarioId** Setup360 flow type. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). +- **Total** The total number of mitigations that were available. + + +### Setup360Telemetry.Setup360OneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **ClientId** The Windows Update client ID passed to Setup. +- **Count** The count of applicable OneSettings for the device. +- **FlightData** The ID for the flight (test instance version). +- **InstanceId** The GUID (Globally-Unique ID) that identifies each instance of setuphost.exe. +- **Parameters** The set of name value pair parameters sent to OneSettings to determine if there are any applicable OneSettings. +- **ReportId** The Update ID passed to Setup. +- **Result** The HResult of the event error. +- **ScenarioId** The update scenario ID. +- **Values** Values sent back to the device, if applicable. + + +### Setup360Telemetry.UnexpectedEvent + +This event sends data indicating that the device has invoked the unexpected event phase of the upgrade, to help keep Windows up to date. + +The following fields are available: + +- **ClientId** With Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe +- **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** A string to uniquely identify a group of events. +- **WuId** This is the Windows Update Client ID. With Windows Update, this is the same as the clientId. + + ## Windows as a Service diagnostic events ### Microsoft.Windows.WaaSMedic.SummaryEvent @@ -4407,6 +5336,50 @@ The following fields are available: - **waasMedicRunMode** Indicates whether this was a background regular run of the medic or whether it was triggered by a user launching Windows Update Troubleshooter. +## Windows Error Reporting events + +### Microsoft.Windows.WERVertical.OSCrash + +This event sends binary data from the collected dump file wheneveer a bug check occurs, to help keep Windows up to date. The is the OneCore version of this event. + +The following fields are available: + +- **BootId** Uint32 identifying the boot number for this device. +- **BugCheckCode** Uint64 "bugcheck code" that identifies a proximate cause of the bug check. +- **BugCheckParameter1** Uint64 parameter providing additional information. +- **BugCheckParameter2** Uint64 parameter providing additional information. +- **BugCheckParameter3** Uint64 parameter providing additional information. +- **BugCheckParameter4** Uint64 parameter providing additional information. +- **DumpFileAttributes** Codes that identify the type of data contained in the dump file +- **DumpFileSize** Size of the dump file +- **IsValidDumpFile** True if the dump file is valid for the debugger, false otherwise +- **ReportId** WER Report Id associated with this bug check (used for finding the corresponding report archive in Watson). + + +## Windows Update Delivery Optimization events + +### Microsoft.OSG.DU.DeliveryOptClient.FailureCdnCommunication + +This event represents a failure to download from a CDN with Delivery Optimization. It's used to understand and address problems regarding downloads. + +The following fields are available: + +- **cdnHeaders** The HTTP headers returned by the CDN. +- **cdnIp** The IP address of the CDN. +- **cdnUrl** The URL of the CDN. +- **errorCode** The error code that was returned. +- **errorCount** The total number of times this error code was seen since the last FailureCdnCommunication event was encountered. +- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. +- **fileID** The ID of the file being downloaded. +- **httpStatusCode** The HTTP status code returned by the CDN. +- **isHeadRequest** The type of HTTP request that was sent to the CDN. Example: HEAD or GET +- **peerType** The type of peer (LAN, Group, Internet, CDN, Cache Host, etc.). +- **requestOffset** The byte offset within the file in the sent request. +- **requestSize** The size of the range requested from the CDN. +- **responseSize** The size of the range response received from the CDN. +- **sessionID** The ID of the download session. + + ## Windows Update events ### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentAnalysisSummary @@ -4525,6 +5498,32 @@ The following fields are available: - **updateId** Unique identifier for each update. +### Microsoft.Windows.Update.NotificationUx.DialogNotificationToBeDisplayed + +This event indicates that a notification dialog box is about to be displayed to user. + +The following fields are available: + +- **AcceptAutoModeLimit** The maximum number of days for a device to automatically enter Auto Reboot mode. +- **AutoToAutoFailedLimit** The maximum number of days for Auto Reboot mode to fail before the RebootFailed dialog box is shown. +- **DaysSinceRebootRequired** Number of days since restart was required. +- **DeviceLocalTime** The local time on the device sending the event. +- **EngagedModeLimit** The number of days to switch between DTE dialog boxes. +- **EnterAutoModeLimit** The maximum number of days for a device to enter Auto Reboot mode. +- **ETag** OneSettings versioning value. +- **IsForcedEnabled** Indicates whether Forced Reboot mode is enabled for this device. +- **IsUltimateForcedEnabled** Indicates whether Ultimate Forced Reboot mode is enabled for this device. +- **NotificationUxState** Indicates which dialog box is shown. +- **NotificationUxStateString** Indicates which dialog box is shown. +- **RebootUxState** Indicates the state of the restart (Engaged, Auto, Forced, or UltimateForced). +- **RebootUxStateString** Indicates the state of the restart (Engaged, Auto, Forced, or UltimateForced). +- **RebootVersion** Version of DTE. +- **SkipToAutoModeLimit** The minimum length of time to pass in restart pending before a device can be put into auto mode. +- **UpdateId** The ID of the update that is pending restart to finish installation. +- **UpdateRevision** The revision of the update that is pending restart to finish installation. +- **UtcTime** The time the dialog box notification will be displayed, in Coordinated Universal Time. + + ### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootFirstReminderDialog This event indicates that the Enhanced Engaged restart "first reminder" dialog box was displayed.. @@ -4541,6 +5540,65 @@ The following fields are available: - **UtcTime** The time that the dialog box was displayed, in Coordinated Universal Time. +### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootFailedDialog + +This event indicates that the Enhanced Engaged restart "restart failed" dialog box was displayed. + +The following fields are available: + +- **DeviceLocalTime** The local time of the device sending the event. +- **ETag** OneSettings versioning value. +- **ExitCode** Indicates how users exited the dialog box. +- **RebootVersion** Version of DTE. +- **UpdateId** The ID of the update that is pending restart to finish installation. +- **UpdateRevision** The revision of the update that is pending restart to finish installation. +- **UserResponseString** The option that the user chose in this dialog box. +- **UtcTime** The time that the dialog box was displayed, in Coordinated Universal Time. + + +### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootImminentDialog + +This event indicates that the Enhanced Engaged restart "restart imminent" dialog box was displayed. + +The following fields are available: + +- **DeviceLocalTime** Time the dialog box was shown on the local device. +- **ETag** OneSettings versioning value. +- **ExitCode** Indicates how users exited the dialog box. +- **RebootVersion** Version of DTE. +- **UpdateId** The ID of the update that is pending restart to finish installation. +- **UpdateRevision** The revision of the update that is pending restart to finish installation. +- **UserResponseString** The option that user chose in this dialog box. +- **UtcTime** The time that dialog box was displayed, in Coordinated Universal Time. + + +### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootReminderDialog + +This event returns information relating to the Enhanced Engaged reboot reminder dialog that was displayed. + +The following fields are available: + +- **DeviceLocalTime** The time at which the reboot reminder dialog was shown (based on the local device time settings). +- **ETag** The OneSettings versioning value. +- **ExitCode** Indicates how users exited the reboot reminder dialog box. +- **RebootVersion** The version of the DTE (Direct-to-Engaged). +- **UpdateId** The ID of the update that is waiting for reboot to finish installation. +- **UpdateRevision** The revision of the update that is waiting for reboot to finish installation. +- **UserResponseString** The option chosen by the user on the reboot dialog box. +- **UtcTime** The time at which the reboot reminder dialog was shown (in UTC). + + +### Microsoft.Windows.Update.Orchestrator.ActivityRestrictedByActiveHoursPolicy + +This event indicates a policy is present that may restrict update activity to outside of active hours. + +The following fields are available: + +- **activeHoursEnd** The end of the active hours window. +- **activeHoursStart** The start of the active hours window. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.BlockedByBatteryLevel This event indicates that Windows Update activity was blocked due to low battery level. @@ -4553,6 +5611,22 @@ The following fields are available: - **wuDeviceid** Device ID. +### Microsoft.Windows.Update.Orchestrator.DisplayNeeded + +This event indicates the reboot was postponed due to needing a display. + +The following fields are available: + +- **displayNeededReason** Reason the display is needed. +- **eventScenario** Indicates the purpose of sending this event - whether because the software distribution just started checking for content, or whether it was cancelled, succeeded, or failed. +- **rebootOutsideOfActiveHours** Indicates whether the reboot was to occur outside of active hours. +- **revisionNumber** Revision number of the update. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated. +- **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue + + ### Microsoft.Windows.Update.Orchestrator.DTUCompletedWhenWuFlightPendingCommit This event indicates that DTU completed installation of the electronic software delivery (ESD), when Windows Update was already in Pending Commit phase of the feature update. @@ -4592,6 +5666,162 @@ The following fields are available: - **wuDeviceid** The Windows Update device ID. +### Microsoft.Windows.Update.Orchestrator.FlightInapplicable + +This event indicates that the update is no longer applicable to this device. + +The following fields are available: + +- **EventPublishedTime** Time when this event was generated. +- **flightID** The specific ID of the Windows Insider build. +- **revisionNumber** Update revision number. +- **updateId** Unique Windows Update ID. +- **updateScenarioType** Update session type. +- **UpdateStatus** Last status of update. +- **UUPFallBackConfigured** Indicates whether UUP fallback is configured. +- **wuDeviceid** Unique Device ID. + + +### Microsoft.Windows.Update.Orchestrator.InitiatingReboot + +This event sends data about an Orchestrator requesting a reboot from power management to help keep Windows up to date. + +The following fields are available: + +- **EventPublishedTime** Time of the event. +- **flightID** Unique update ID +- **interactive** Indicates whether the reboot initiation stage of the update process was entered as a result of user action. +- **rebootOutsideOfActiveHours** Indicates whether the reboot was to occur outside of active hours. +- **revisionNumber** Revision number of the update. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.Install + +This event sends launch data for a Windows Update install to help keep Windows up to date. + +The following fields are available: + +- **batteryLevel** Current battery capacity in mWh or percentage left. +- **deferReason** Reason for install not completing. +- **errorCode** The error code reppresented by a hexadecimal value. +- **eventScenario** End-to-end update session ID. +- **flightID** Unique update ID +- **flightUpdate** Indicates whether the update is a Windows Insider build. +- **ForcedRebootReminderSet** A boolean value that indicates if a forced reboot will happen for updates. +- **IgnoreReasonsForRestart** The reason(s) a Postpone Restart command was ignored. +- **installCommitfailedtime** The time it took for a reboot to happen but the upgrade failed to progress. +- **installRebootinitiatetime** The time it took for a reboot to be attempted. +- **interactive** Identifies if session is user initiated. +- **minutesToCommit** The time it took to install updates. +- **rebootOutsideOfActiveHours** Indicates whether a reboot is scheduled outside of active hours. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.LowUptimes + +This event is sent if a device is identified as not having sufficient uptime to reliably process updates in order to keep secure. + +The following fields are available: + +- **availableHistoryMinutes** The number of minutes available from the local machine activity history. +- **isLowUptimeMachine** Is the machine considered low uptime or not. +- **lowUptimeMinHours** Current setting for the minimum number of hours needed to not be considered low uptime. +- **lowUptimeQueryDays** Current setting for the number of recent days to check for uptime. +- **uptimeMinutes** Number of minutes of uptime measured. +- **wuDeviceid** Unique device ID for Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.OneshotUpdateDetection + +This event returns data about scans initiated through settings UI, or background scans that are urgent; to help keep Windows up to date. + +The following fields are available: + +- **externalOneshotupdate** The last time a task-triggered scan was completed. +- **interactiveOneshotupdate** The last time an interactive scan was completed. +- **oldlastscanOneshotupdate** The last time a scan completed successfully. +- **wuDeviceid** The Windows Update Device GUID (Globally-Unique ID). + + +### Microsoft.Windows.Update.Orchestrator.PreShutdownStart + +This event is generated before the shutdown and commit operations. + +The following fields are available: + +- **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. + + +### Microsoft.Windows.Update.Orchestrator.RebootFailed + +This event sends information about whether an update required a reboot and reasons for failure, to help keep Windows up to date. + +The following fields are available: + +- **batteryLevel** Current battery capacity in mWh or percentage left. +- **deferReason** Reason for install not completing. +- **EventPublishedTime** The time that the reboot failure occurred. +- **flightID** Unique update ID. +- **rebootOutsideOfActiveHours** Indicates whether a reboot was scheduled outside of active hours. +- **RebootResults** Hex code indicating failure reason. Typically, we expect this to be a specific USO generated hex code. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.RefreshSettings + +This event sends basic data about the version of upgrade settings applied to the system to help keep Windows up to date. + +The following fields are available: + +- **errorCode** Hex code for the error message, to allow lookup of the specific error. +- **settingsDownloadTime** Timestamp of the last attempt to acquire settings. +- **settingsETag** Version identifier for the settings. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.RestoreRebootTask + +This event sends data indicating that a reboot task is missing unexpectedly on a device and the task is restored because a reboot is still required, to help keep Windows up to date. + +The following fields are available: + +- **RebootTaskMissedTimeUTC** The time when the reboot task was scheduled to run, but did not. +- **RebootTaskNextTimeUTC** The time when the reboot task was rescheduled for. +- **RebootTaskRestoredTime** Time at which this reboot task was restored. +- **wuDeviceid** Device ID for the device on which the reboot is restored. + + +### Microsoft.Windows.Update.Orchestrator.ScanTriggered + +This event indicates that Update Orchestrator has started a scan operation. + +The following fields are available: + +- **errorCode** The error code returned for the current scan operation. +- **eventScenario** Indicates the purpose of sending this event. +- **interactive** Indicates whether the scan is interactive. +- **isDTUEnabled** Indicates whether DTU (internal abbreviation for Direct Feature Update) channel is enabled on the client system. +- **isScanPastSla** Indicates whether the SLA has elapsed for scanning. +- **isScanPastTriggerSla** Indicates whether the SLA has elapsed for triggering a scan. +- **minutesOverScanSla** Indicates how many minutes the scan exceeded the scan SLA. +- **minutesOverScanTriggerSla** Indicates how many minutes the scan exceeded the scan trigger SLA. +- **scanTriggerSource** Indicates what caused the scan. +- **updateScenarioType** The update session type. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.StickUpdate This event is sent when the update service orchestrator (USO) indicates the update cannot be superseded by a newer update. @@ -4602,6 +5832,22 @@ The following fields are available: - **wuDeviceid** Unique device ID controlled by the software distribution client. +### Microsoft.Windows.Update.Orchestrator.SystemNeeded + +This event sends data about why a device is unable to reboot, to help keep Windows up to date. + +The following fields are available: + +- **eventScenario** End-to-end update session ID. +- **rebootOutsideOfActiveHours** Indicates whether a reboot is scheduled outside of active hours. +- **revisionNumber** Update revision number. +- **systemNeededReason** List of apps or tasks that are preventing the system from restarting. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.TerminatedByActiveHours This event indicates that update activity was stopped due to active hours starting. @@ -4636,6 +5882,111 @@ The following fields are available: - **wuDeviceid** Unique device ID controlled by the software distribution client. +### Microsoft.Windows.Update.Orchestrator.UpdatePolicyCacheRefresh + +This event sends data on whether Update Management Policies were enabled on a device, to help keep Windows up to date. + +The following fields are available: + +- **configuredPoliciescount** Number of policies on the device. +- **policiesNamevaluesource** Policy name and source of policy (group policy, MDM or flight). +- **policyCacherefreshtime** Time when policy cache was refreshed. +- **updateInstalluxsetting** Indicates whether a user has set policies via a user experience option. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.UpdateRebootRequired + +This event sends data about whether an update required a reboot to help keep Windows up to date. + +The following fields are available: + +- **flightID** The specific ID of the Windows Insider build the device is getting. +- **interactive** Indicates whether the reboot initiation stage of the update process was entered as a result of user action. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.updateSettingsFlushFailed + +This event sends information about an update that encountered problems and was not able to complete. + +The following fields are available: + +- **errorCode** The error code encountered. +- **wuDeviceid** The ID of the device in which the error occurred. + + +### Microsoft.Windows.Update.Orchestrator.UsoSession + +This event represents the state of the USO service at start and completion. + +The following fields are available: + +- **activeSessionid** A unique session GUID. +- **eventScenario** The state of the update action. +- **interactive** Is the USO session interactive? +- **lastErrorcode** The last error that was encountered. +- **lastErrorstate** The state of the update when the last error was encountered. +- **sessionType** A GUID that refers to the update session type. +- **updateScenarioType** A descriptive update session type. +- **wuDeviceid** The Windows Update device GUID. + + +### Microsoft.Windows.Update.Ux.MusNotification.EnhancedEngagedRebootUxState + +This event sends information about the configuration of Enhanced Direct-to-Engaged (eDTE), which includes values for the timing of how eDTE will progress through each phase of the reboot. + +The following fields are available: + +- **AcceptAutoModeLimit** The maximum number of days for a device to automatically enter Auto Reboot mode. +- **AutoToAutoFailedLimit** The maximum number of days for Auto Reboot mode to fail before a Reboot Failed dialog will be shown. +- **DeviceLocalTime** The date and time (based on the device date/time settings) the reboot mode changed. +- **EngagedModeLimit** The number of days to switch between DTE (Direct-to-Engaged) dialogs. +- **EnterAutoModeLimit** The maximum number of days a device can enter Auto Reboot mode. +- **ETag** The Entity Tag that represents the OneSettings version. +- **IsForcedEnabled** Identifies whether Forced Reboot mode is enabled for the device. +- **IsUltimateForcedEnabled** Identifies whether Ultimate Forced Reboot mode is enabled for the device. +- **OldestUpdateLocalTime** The date and time (based on the device date/time settings) this update’s reboot began pending. +- **RebootUxState** Identifies the reboot state: Engaged, Auto, Forced, UltimateForced. +- **RebootVersion** The version of the DTE (Direct-to-Engaged). +- **SkipToAutoModeLimit** The maximum number of days to switch to start while in Auto Reboot mode. +- **UpdateId** The ID of the update that is waiting for reboot to finish installation. +- **UpdateRevision** The revision of the update that is waiting for reboot to finish installation. + + +### Microsoft.Windows.Update.Ux.MusNotification.RebootNoLongerNeeded + +This event is sent when a security update has successfully completed. + +The following fields are available: + +- **UtcTime** The Coordinated Universal Time that the restart was no longer needed. + + +### Microsoft.Windows.Update.Ux.MusNotification.RebootScheduled + +This event sends basic information about scheduling an update-related reboot, to get security updates and to help keep Windows up-to-date. + +The following fields are available: + +- **activeHoursApplicable** Indicates whether Active Hours applies on this device. +- **IsEnhancedEngagedReboot** Indicates whether Enhanced reboot was enabled. +- **rebootArgument** Argument for the reboot task. It also represents specific reboot related action. +- **rebootOutsideOfActiveHours** True, if a reboot is scheduled outside of active hours. False, otherwise. +- **rebootScheduledByUser** True, if a reboot is scheduled by user. False, if a reboot is scheduled automatically. +- **rebootState** Current state of the reboot. +- **rebootUsingSmartScheduler** Indicates that the reboot is scheduled by SmartScheduler. +- **revisionNumber** Revision number of the OS. +- **scheduledRebootTime** Time scheduled for the reboot. +- **scheduledRebootTimeInUTC** Time scheduled for the reboot, in UTC. +- **updateId** Identifies which update is being scheduled. +- **wuDeviceid** Unique DeviceID + + ### Microsoft.Windows.Update.Ux.MusNotification.UxBrokerScheduledTask This event is sent when MUSE broker schedules a task. @@ -4646,4 +5997,73 @@ The following fields are available: - **TaskName** Name of the task. +### Microsoft.Windows.Update.Ux.MusUpdateSettings.RebootScheduled + +This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up to date. + +The following fields are available: + +- **activeHoursApplicable** Is the restart respecting Active Hours? +- **IsEnhancedEngagedReboot** TRUE if the reboot path is Enhanced Engaged. Otherwise, FALSE. +- **rebootArgument** The arguments that are passed to the OS for the restarted. +- **rebootOutsideOfActiveHours** Was the restart scheduled outside of Active Hours? +- **rebootScheduledByUser** Was the restart scheduled by the user? If the value is false, the restart was scheduled by the device. +- **rebootState** The state of the restart. +- **rebootUsingSmartScheduler** TRUE if the reboot should be performed by the Smart Scheduler. Otherwise, FALSE. +- **revisionNumber** The revision number of the OS being updated. +- **scheduledRebootTime** Time of the scheduled reboot +- **scheduledRebootTimeInUTC** Time of the scheduled restart, in Coordinated Universal Time. +- **updateId** The Windows Update device GUID. +- **wuDeviceid** The Windows Update device GUID. + + +## Windows Update mitigation events + +### Mitigation360Telemetry.MitigationCustom.CleanupSafeOsImages + +This event sends data specific to the CleanupSafeOsImages mitigation used for OS Updates. + +The following fields are available: + +- **ClientId** Unique identifier for each flight. +- **FlightId** Unique GUID that identifies each instances of setuphost.exe. +- **InstanceId** The update scenario in which the mitigation was executed. +- **MitigationScenario** Number of mounted images. +- **MountedImageCount** Number of mounted images that were under %systemdrive%\$Windows.~BT. +- **MountedImageMatches** Number of mounted images under %systemdrive%\$Windows.~BT that could not be removed. +- **MountedImagesFailed** Number of mounted images under %systemdrive%\$Windows.~BT that were successfully removed. +- **MountedImagesRemoved** Number of mounted images that were not under %systemdrive%\$Windows.~BT. +- **MountedImagesSkipped** Correlation vector value generated from the latest USO scan. +- **RelatedCV** HResult of this operation. +- **Result** ID indicating the mitigation scenario. +- **ScenarioId** Indicates whether the scenario was supported. +- **ScenarioSupported** Unique value for each update attempt. +- **SessionId** Unique ID for each Update. +- **UpdateId** Unique ID for the Windows Update client. +- **WuId** Unique ID for the Windows Update client. + + +### Mitigation360Telemetry.MitigationCustom.FixupEditionId + +This event sends data specific to the FixupEditionId mitigation used for OS updates. + +The following fields are available: + +- **ClientId** In the WU scenario, this will be the WU client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **EditionIdUpdated** Determine whether EditionId was changed. +- **FlightId** Unique identifier for each flight. +- **InstanceId** Unique GUID that identifies each instances of setuphost.exe. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **ProductEditionId** Expected EditionId value based on GetProductInfo. +- **ProductType** Value returned by GetProductInfo. +- **RegistryEditionId** EditionId value in the registry. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** HResult of this operation. +- **ScenarioId** ID indicating the mitigation scenario. +- **ScenarioSupported** Indicates whether the scenario was supported. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. +- **WuId** Unique ID for the Windows Update client. + + From 958aa64dbe0b7ab20c74e166962681a83802ca9e Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Wed, 7 Nov 2018 15:45:54 -0800 Subject: [PATCH 13/34] detection --- windows/security/threat-protection/index.md | 4 ++-- .../windows-defender-advanced-threat-protection.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/index.md b/windows/security/threat-protection/index.md index a83dc7afac..028116204e 100644 --- a/windows/security/threat-protection/index.md +++ b/windows/security/threat-protection/index.md @@ -63,8 +63,8 @@ To further reinforce the security perimeter of your network, Windows Defender AT
-**[Endpoint protection and response](windows-defender-atp/overview-endpoint-detection-response.md)**
-Endpoint protection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. +**[Endpoint detection and response](windows-defender-atp/overview-endpoint-detection-response.md)**
+Endpoint detection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. - [Alerts](windows-defender-atp/alerts-queue-windows-defender-advanced-threat-protection.md) - [Historical endpoint data](windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md#machine-timeline) diff --git a/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md index abe99e8194..6d9b834f75 100644 --- a/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md @@ -11,7 +11,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 10/26/2018 +ms.date: 11/07/2018 --- # Windows Defender Advanced Threat Protection @@ -76,8 +76,8 @@ To further reinforce the security perimeter of your network, Windows Defender AT -**[Endpoint protection and response](overview-endpoint-detection-response.md)**
-Endpoint protection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. +**[Endpoint detection and response](overview-endpoint-detection-response.md)**
+Endpoint detection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. From 9a85f729b1272874335ba14559dc8d0879dfb639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=20Halfin=20=F0=9F=93=AC=F0=9F=94=A8?= Date: Thu, 8 Nov 2018 00:24:20 +0000 Subject: [PATCH 14/34] Merged PR 12677: Updates for zero exhaust --- ...system-components-to-microsoft-services.md | 143 ++++++++++++++---- windows/privacy/manage-windows-endpoints.md | 8 +- 2 files changed, 116 insertions(+), 35 deletions(-) diff --git a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md index 865d98939f..3ac0a072a3 100644 --- a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md +++ b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md @@ -18,6 +18,7 @@ ms.date: 06/05/2018 - Windows 10 Enterprise, version 1607 and newer - Windows Server 2016 +- Windows Server 2019 If you're looking for content on what each diagnostic data level means and how to configure it in your organization, see [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). @@ -43,6 +44,12 @@ Note that **Get Help** and **Give us Feedback** links no longer work after the W We are always striving to improve our documentation and welcome your feedback. You can provide feedback by contacting telmhelp@microsoft.com. +## What's new in Windows 10, version 1809 Enterprise edition + +Here's a list of changes that were made to this article for Windows 10, version 1809: + +- Added a policy to disable Windows Defender SmartScreen + ## What's new in Windows 10, version 1803 Enterprise edition Here's a list of changes that were made to this article for Windows 10, version 1803: @@ -99,19 +106,19 @@ The following table lists management options for each setting, beginning with Wi | Setting | UI | Group Policy | MDM policy | Registry | Command line | | - | :-: | :-: | :-: | :-: | :-: | -| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | | | +| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [2. Cortana and Search](#bkmk-cortana) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [3. Date & Time](#bkmk-datetime) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | -| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | -| [5. Find My Device](#find-my-device) | | ![Check mark](images/checkmark.png) | | | | -| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [5. Find My Device](#find-my-device) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [7. Insider Preview builds](#bkmk-previewbuilds) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [8. Internet Explorer](#bkmk-ie) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [9. Live Tiles](#live-tiles) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [10. Mail synchronization](#bkmk-mailsync) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [11. Microsoft Account](#bkmk-microsoft-account) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [12. Microsoft Edge](#bkmk-edge) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | -| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [14. Offline maps](#bkmk-offlinemaps) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [15. OneDrive](#bkmk-onedrive) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [16. Preinstalled apps](#bkmk-preinstalledapps) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | @@ -142,6 +149,7 @@ The following table lists management options for each setting, beginning with Wi | [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | [22. Wi-Fi Sense](#bkmk-wifisense) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [23. Windows Defender](#bkmk-defender) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [23.1 Windows Defender Smartscreen](#bkmk-defender-smartscreen) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [24. Windows Media Player](#bkmk-wmp) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | | [25. Windows Spotlight](#bkmk-spotlight) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [26. Microsoft Store](#bkmk-windowsstore) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | @@ -202,6 +210,63 @@ See the following table for a summary of the management settings for Windows Ser | [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | [28. Windows Update](#bkmk-wu) | ![Check mark](images/checkmark.png) | | +### Settings for Windows Server 2019 + +See the following table for a summary of the management settings for Windows Server 2019. + +| Setting | UI | Group Policy | MDM policy | Registry | Command line | +| - | :-: | :-: | :-: | :-: | :-: | +| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [2. Cortana and Search](#bkmk-cortana) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [3. Date & Time](#bkmk-datetime) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [5. Find My Device](#find-my-device) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [7. Insider Preview builds](#bkmk-previewbuilds) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [8. Internet Explorer](#bkmk-ie) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [9. Live Tiles](#live-tiles) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [10. Mail synchronization](#bkmk-mailsync) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [11. Microsoft Account](#bkmk-microsoft-account) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [12. Microsoft Edge](#bkmk-edge) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [14. Offline maps](#bkmk-offlinemaps) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [15. OneDrive](#bkmk-onedrive) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [16. Preinstalled apps](#bkmk-preinstalledapps) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | +| [17. Settings > Privacy](#bkmk-settingssection) | | | | | | +|     [17.1 General](#bkmk-general) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.2 Location](#bkmk-priv-location) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.3 Camera](#bkmk-priv-camera) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.4 Microphone](#bkmk-priv-microphone) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.5 Notifications](#bkmk-priv-notifications) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png)| ![Check mark](images/checkmark.png) | | +|     [17.6 Speech, inking, & typing](#bkmk-priv-speech) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.7 Account info](#bkmk-priv-accounts) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.8 Contacts](#bkmk-priv-contacts) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.9 Calendar](#bkmk-priv-calendar) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.10 Call history](#bkmk-priv-callhistory) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.11 Email](#bkmk-priv-email) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.12 Messaging](#bkmk-priv-messaging) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.13 Phone calls](#bkmk-priv-phone-calls) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.14 Radios](#bkmk-priv-radios) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.15 Other devices](#bkmk-priv-other-devices) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.16 Feedback & diagnostics](#bkmk-priv-feedback) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.17 Background apps](#bkmk-priv-background) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | +|     [17.18 Motion](#bkmk-priv-motion) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.19 Tasks](#bkmk-priv-tasks) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.20 App Diagnostics](#bkmk-priv-diag) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [18. Software Protection Platform](#bkmk-spp) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [19. Storage Health](#bkmk-storage-health) | | ![Check mark](images/checkmark.png) | | | | +| [20. Sync your settings](#bkmk-syncsettings) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | +| [22. Wi-Fi Sense](#bkmk-wifisense) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [23. Windows Defender](#bkmk-defender) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [23.1 Windows Defender Smartscreen](#bkmk-defender-smartscreen) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [24. Windows Media Player](#bkmk-wmp) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | +| [25. Windows Spotlight](#bkmk-spotlight) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [26. Microsoft Store](#bkmk-windowsstore) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +|     [26.1 Apps for websites](#bkmk-apps-for-websites) | | ![Check mark](images/checkmark.png) | | | +| [27. Windows Update Delivery Optimization](#bkmk-updates) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [28. Windows Update](#bkmk-wu) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | + ## How to configure each setting Use the following sections for more information about how to configure each setting. @@ -336,9 +401,17 @@ After that, configure the following: ### 4. Device metadata retrieval -To prevent Windows from retrieving device metadata from the Internet, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Device Installation** > **Prevent device metadata retrieval from the Internet**. +To prevent Windows from retrieving device metadata from the Internet: -You can also create a new REG\_DWORD registry setting named **PreventDeviceMetadataFromNetwork** in **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\Device Metadata** and set it to 1 (one). +- Apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Device Installation** > **Prevent device metadata retrieval from the Internet**. + + -or - + +- Create a new REG\_DWORD registry setting named **PreventDeviceMetadataFromNetwork** in **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\Device Metadata** and set it to 1 (one). + + -or - + +- Apply the DeviceInstallation/PreventDeviceMetadataFromNetwork MDM policy from the [Policy CSP](https://docs.microsoft.com/windows/client-management/mdm/policy-csp-deviceinstallation#deviceinstallation-preventdevicemetadatafromnetwork). ### 5. Find My Device @@ -608,7 +681,7 @@ You can turn off NCSI by doing one of the following: - Enable the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Internet Communication Management** > **Internet Communication Settings** > **Turn off Windows Network Connectivity Status Indicator active tests** -- In Windows 10, version 1703 and later, apply the Connectivity/DisallowNetworkConnectivityActiveTests MDM policy. +- In Windows 10, version 1703 and later, apply the Connectivity/DisallowNetworkConnectivityActiveTests MDM policy from the [Policy CSP](https://docs.microsoft.com/windows/client-management/mdm/policy-csp-connectivity#connectivity-disallownetworkconnectivityactivetests) with a value of 1. > [!NOTE] > After you apply this policy, you must restart the device for the policy setting to take effect. @@ -879,31 +952,13 @@ To turn off **Turn on SmartScreen Filter to check web content (URLs) that Micros -or- -- In Windows Server 2016, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Microsoft Edge** > **Configure SmartScreen Filter**. - In Windows 10, version 1703, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Microsoft Edge** > **Configure Windows Defender SmartScreen Filter**. - - In Windows Server 2016, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **File Explorer** > **Configure Windows SmartScreen**. - In Windows 10, version 1703 , apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **File Explorer** > **Configure Windows Defender SmartScreen**. - - -or- - -- Apply the Browser/AllowSmartScreen MDM policy from the [Policy CSP](https://msdn.microsoft.com/library/windows/hardware/dn904962.aspx) where 0 is turned off and 1 is turned on. - - -or- - - Create a provisioning package, using: - - - For Internet Explorer: **Runtime settings** > **Policies** > **Browser** > **AllowSmartScreen** - - - For Microsoft Edge: **Runtime settings** > **Policies** > **MicrosoftEdge** > **AllowSmartScreen** + - For Internet Explorer: **Runtime settings > Policies > Browser > AllowSmartScreen** + - For Microsoft Edge: **Runtime settings > Policies > MicrosoftEdge > AllowSmartScreen** -or- -- Create a REG\_DWORD registry setting named **EnableWebContentEvaluation** in **HKEY\_CURRENT\_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\AppHost** with a value of 0 (zero). - - -or- - -- Create a REG\_DWORD registry setting named **EnableSmartScreen** in **HKEY\_LOCAL\_MACHINE\\Sofware\\Policies\\Microsoft\\Windows\\System** with a value of 0 (zero). +- Create a REG_DWORD registry setting named **EnableWebContentEvaluation** in **HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost** with a value of 0 (zero). To turn off **Send Microsoft info about how I write to help us improve typing and writing in the future**: @@ -1793,6 +1848,36 @@ For Windows 10 only, you can stop Enhanced Notifications: You can also use the registry to turn off Malicious Software Reporting Tool diagnostic data by setting the REG\_DWORD value **HKEY\_LOCAL\_MACHINE\\Software\\Policies\\Microsoft\\MRT\\DontReportInfectionInformation** to 1. +### 23.1 Windows Defender SmartScreen + +To disable Windows Defender Smartscreen: + +- In Group Policy, configure - **Computer Configuration > Administrative Templates > Windows Components > Windows Defender SmartScreen > Explorer > Configure Windows Defender SmartScreen** : **Disable** + + -or- + +- **Computer Configuration > Administrative Templates > Windows Components > File Explorer > Configure Windows Defender SmartScreen** : **Disable** + + -and- + +- **Computer Configuration > Administrative Templates > Windows Components > Windows Defender SmartScreen > Explorer > Configure app install control** : **Enable** + + -or- + +- Create a REG_DWORD registry setting named **EnableSmartScreen** in **HKEY_LOCAL_MACHINE\Sofware\Policies\Microsoft\Windows\System** with a value of 0 (zero). + + -and- + +- Create a REG_DWORD registry setting named **ConfigureAppInstallControlEnabled** in **HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\SmartScreen** with a value of 1. + + -and- + +- Create a SZ registry setting named **ConfigureAppInstallControl** in **HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\SmartScreen** with a value of **Anywhere**. + + -or- + +- Apply the Browser/AllowSmartScreen MDM policy from the [Policy CSP](https://msdn.microsoft.com/library/windows/hardware/dn904962.aspx) where 0 is turned off and 1 is turned on. + ### 24. Windows Media Player To remove Windows Media Player on Windows 10: diff --git a/windows/privacy/manage-windows-endpoints.md b/windows/privacy/manage-windows-endpoints.md index 721814aabe..c324f877dd 100644 --- a/windows/privacy/manage-windows-endpoints.md +++ b/windows/privacy/manage-windows-endpoints.md @@ -145,13 +145,9 @@ If you [turn off traffic for this endpoint](manage-connections-from-windows-oper ## Certificates -The following endpoint is used by the Automatic Root Certificates Update component to automatically check the list of trusted authorities on Windows Update to see if an update is available. It is possible to [turn off traffic to this endpoint](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update), but that is not recommended because when root certificates are updated over time, applications and websites may stop working because they did not receive an updated root certificate the application uses. +The following endpoint is used by the Automatic Root Certificates Update component to automatically check the list of trusted authorities on Windows Update to see if an update is available. It is possible to [turn off traffic to this endpoint](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update), but that is not recommended because when root certificates are updated over time, applications and websites may stop working because they did not receive an updated root certificate the application uses. -| Source process | Protocol | Destination | Applies from Windows 10 version | -|----------------|----------|------------|----------------------------------| -| svchost | HTTP | ctldl.windowsupdate.com | 1709 | - -The following endpoints are used to download certificates that are publicly known to be fraudulent. +Additionally, it is used to download certificates that are publicly known to be fraudulent. These settings are critical for both Windows security and the overall security of the Internet. We do not recommend blocking this endpoint. If traffic to this endpoint is turned off, Windows no longer automatically downloads certificates known to be fraudulent, which increases the attack vector on the device. From a675e587ef27e741cf6f4fd61f1dcab201d77af8 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 8 Nov 2018 00:25:07 +0000 Subject: [PATCH 15/34] Merged PR 12668: Hybrid AD join for Autopilot New content --- windows/deployment/windows-autopilot/TOC.md | 2 + .../windows-autopilot/user-driven-aad.md | 54 ++++++++++++------- .../windows-autopilot/user-driven-hybrid.md | 25 +++++++-- .../windows-autopilot/user-driven.md | 23 +++----- 4 files changed, 67 insertions(+), 37 deletions(-) diff --git a/windows/deployment/windows-autopilot/TOC.md b/windows/deployment/windows-autopilot/TOC.md index 315115e706..19d3896e66 100644 --- a/windows/deployment/windows-autopilot/TOC.md +++ b/windows/deployment/windows-autopilot/TOC.md @@ -6,6 +6,8 @@ ## [Scenarios and Capabilities](windows-autopilot-scenarios.md) ### [Support for existing devices](existing-devices.md) ### [User-driven mode](user-driven.md) +#### [User-driven mode for AAD](user-driven-aad.md) +#### [User-driven mode for hybrid AAD](user-driven-hybrid.md) ### [Self-deploying mode](self-deploying.md) ### [Enrollment status page](enrollment-status.md) ### [Windows Autopilot Reset](windows-autopilot-reset.md) diff --git a/windows/deployment/windows-autopilot/user-driven-aad.md b/windows/deployment/windows-autopilot/user-driven-aad.md index 6da9e99b33..b63517060d 100644 --- a/windows/deployment/windows-autopilot/user-driven-aad.md +++ b/windows/deployment/windows-autopilot/user-driven-aad.md @@ -1,19 +1,35 @@ ---- -title: User-driven mode for AAD -description: Listing of Autopilot scenarios -keywords: mdm, setup, windows, windows 10, oobe, manage, deploy, autopilot, ztd, zero-touch, partner, msfb, intune -ms.prod: w10 -ms.mktglfcycl: deploy -ms.localizationpriority: low -ms.sitesec: library -ms.pagetype: deploy -author: greg-lindsay -ms.author: greg-lindsay -ms.date: 10/02/2018 ---- - -# Windows Autopilot user-driven mode for Azure Active Directory - -**Applies to: Windows 10** - -PLACEHOLDER. This topic is a placeholder for the AAD-specific instuctions currently in user-driven.md. +--- +title: User-driven mode for AAD +description: Listing of Autopilot scenarios +keywords: mdm, setup, windows, windows 10, oobe, manage, deploy, autopilot, ztd, zero-touch, partner, msfb, intune +ms.prod: w10 +ms.mktglfcycl: deploy +ms.localizationpriority: low +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +ms.author: greg-lindsay +ms.date: 11/07/2018 +--- + +# Windows Autopilot user-driven mode for Azure Active Directory join + +**Applies to: Windows 10** + +## Procedures + +In order to perform a user-driven deployment using Windows Autopilot, the following preparation steps need to be completed: + +- Ensure that the users who will be performing user-driven mode deployments are able to join devices to Azure Active Directory. See [Configure device settings](https://docs.microsoft.com/azure/active-directory/device-management-azure-portal#configure-device-settings) in the Azure Active Directory documentation for more information. +- Create an Autopilot profile for user-driven mode with the desired settings. In Microsoft Intune, this mode is explicitly chosen when creating the profile. With Microsoft Store for Business and Partner Center, user-driven mode is the default and does not need to be selected. +- If using Intune, create a device group in Azure Active Directory and assign the Autopilot profile to that group. + +For each device that will be deployed using user-driven deployment, these additional steps are needed: + +- Ensure that the device has been added to Windows Autopilot. This can be done automatically by an OEM or partner at the time the device is purchased, or it can be done through a manual harvesting process later. See [Adding devices to Windows Autopilot](add-devices.md) for more information. +- Ensure an Autopilot profile has been assigned to the device: + - If using Intune and Azure Active Directory dynamic device groups, this can be done automatically. + - If using Intune and Azure Active Directory static device groups, manually add the device to the device group. + - If using other methods (e.g. Microsoft Store for Business or Partner Center), manually assign an Autopilot profile to the device. + +Also see the **Validation** section in the [Windows Autopilot user-driven mode](user-driven.md) topic. diff --git a/windows/deployment/windows-autopilot/user-driven-hybrid.md b/windows/deployment/windows-autopilot/user-driven-hybrid.md index 6f4a760dcc..88e4a87f15 100644 --- a/windows/deployment/windows-autopilot/user-driven-hybrid.md +++ b/windows/deployment/windows-autopilot/user-driven-hybrid.md @@ -9,12 +9,31 @@ ms.sitesec: library ms.pagetype: deploy author: greg-lindsay ms.author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 --- -# Windows Autopilot user-driven mode for Hybrid Azure Active Directory Join +# Windows Autopilot user-driven mode for hybrid Azure Active Directory join **Applies to: Windows 10** -PLACEHOLDER. This topic is a placeholder for the AD-specific (hybrid) instuctions. +Windows Autopilot requires that devices be Azure Active Directory joined. If you have an on-premises Active Directory environment and want to also join devices to your on-premises domain, you can accomplish this by configuring Autopilot devices to be [hybrid Azure Active Directory (AAD) joined](https://docs.microsoft.com/azure/active-directory/devices/hybrid-azuread-join-plan). + +## Requirements + +To perform a user-driven hybrid AAD joined deployment using Windows Autopilot: + +- Users must be able to join devices to Azure Active Directory. +- A Windows Autopilot profile for user-driven mode must be created and + - **Hybrid Azure AD joined** must be specified as the selected option under **Join to Azure AD as** in the Autopilot profile. +- If using Intune, a device group in Azure Active Directory must exist with the Windows Autopilot profile assigned to that group. +- The device must be running Windows 10, version 1809 or later. +- The device must be connected to the Internet and have access to an Active Directory domain controller. +- The Intune Connector for Active Directory must be installed. + - Note: The Intune Connector will perform an on-prem AD join, therefore users do not need on-prem AD-join permission, assuming the Connector is [configured to perform this action](https://docs.microsoft.com/intune/windows-autopilot-hybrid#increase-the-computer-account-limit-in-the-organizational-unit) on the user's behalf. + +## Step by step instructions + +See [Deploy hybrid Azure AD joined devices using Intune and Windows Autopilot](https://docs.microsoft.com/intune/windows-autopilot-hybrid). + +Also see the **Validation** section in the [Windows Autopilot user-driven mode](user-driven.md) topic. \ No newline at end of file diff --git a/windows/deployment/windows-autopilot/user-driven.md b/windows/deployment/windows-autopilot/user-driven.md index 1aa1ad5321..4fd86ef3b5 100644 --- a/windows/deployment/windows-autopilot/user-driven.md +++ b/windows/deployment/windows-autopilot/user-driven.md @@ -8,11 +8,13 @@ ms.localizationpriority: medium ms.sitesec: library ms.pagetype: deploy author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 ms.author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 --- +# Windows Autopilot user-driven mode + Windows Autopilot user-driven mode is designed to enable new Windows 10 devices to be transformed from their initial state, directly from the factory, into a ready-to-use state without requiring that IT personnel ever touch the device. The process is designed to be simple so that anyone can complete it, enabling devices to be shipped or distributed to the end user directly with simple instructions: - Unbox the device, plug it in, and turn it on. @@ -24,21 +26,12 @@ After completing those simple steps, the remainder of the process is completely Today, Windows Autopilot user-driven mode supports joining devices to Azure Active Directory. Support for Hybrid Azure Active Directory Join (with devices joined to an on-premises Active Directory domain) will be available in a future Windows 10 release. See [Introduction to device management in Azure Active Directory](https://docs.microsoft.com/azure/active-directory/device-management-introduction) for more information about the differences between these two join options. -## Step by step +## Available user-driven modes -In order to perform a user-driven deployment using Windows Autopilot, the following preparation steps need to be completed: +The following options are available for user-driven deployment: -- Ensure that the users who will be performing user-driven mode deployments are able to join devices to Azure Active Directory. See [Configure device settings](https://docs.microsoft.com/azure/active-directory/device-management-azure-portal#configure-device-settings) in the Azure Active Directory documentation for more information. -- Create an Autopilot profile for user-driven mode with the desired settings. In Microsoft Intune, this mode is explicitly chosen when creating the profile. With Microsoft Store for Business and Partner Center, user-driven mode is the default and does not need to be selected. -- If using Intune, create a device group in Azure Active Directory and assign the Autopilot profile to that group. - -For each machine that will be deployed using user-driven deployment, these additional steps are needed: - -- Ensure that the device has been added to Windows Autopilot. This can be done automatically by an OEM or partner at the time the device is purchased, or it can be done through a manual harvesting process later. See [Adding devices to Windows Autopilot](add-devices.md) for more information. -- Ensure an Autopilot profile has been assigned to the device: - - If using Intune and Azure Active Directory dynamic device groups, this can be done automatically. - - If using Intune and Azure Active Directory static device groups, manually add the device to the device group. - - If using other methods (e.g. Microsoft Store for Business or Partner Center), manually assign an Autopilot profile to the device. +- [Azure Active Directory join](user-driven-aad.md) is available if devices do not need to be joined to an on-prem Active Directory domain. +- [Hybrid Azure Active Directory join](user-driven-hybrid.md) is available for devices that must be joined to both Azure Active Directory and your on-prem Active Directory domain. ## Validation From 2e17ac9c1505777ca66362f1929813299424f4e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=20Halfin=20=F0=9F=93=AC=F0=9F=94=A8?= Date: Thu, 8 Nov 2018 00:26:43 +0000 Subject: [PATCH 16/34] Merged PR 12678: push to live --- windows/deployment/windows-autopilot/TOC.md | 2 + .../windows-autopilot/user-driven-aad.md | 54 ++++--- .../windows-autopilot/user-driven-hybrid.md | 25 ++- .../windows-autopilot/user-driven.md | 23 +-- ...system-components-to-microsoft-services.md | 143 ++++++++++++++---- windows/privacy/manage-windows-endpoints.md | 8 +- windows/security/threat-protection/index.md | 4 +- ...ows-defender-advanced-threat-protection.md | 6 +- 8 files changed, 188 insertions(+), 77 deletions(-) diff --git a/windows/deployment/windows-autopilot/TOC.md b/windows/deployment/windows-autopilot/TOC.md index 315115e706..19d3896e66 100644 --- a/windows/deployment/windows-autopilot/TOC.md +++ b/windows/deployment/windows-autopilot/TOC.md @@ -6,6 +6,8 @@ ## [Scenarios and Capabilities](windows-autopilot-scenarios.md) ### [Support for existing devices](existing-devices.md) ### [User-driven mode](user-driven.md) +#### [User-driven mode for AAD](user-driven-aad.md) +#### [User-driven mode for hybrid AAD](user-driven-hybrid.md) ### [Self-deploying mode](self-deploying.md) ### [Enrollment status page](enrollment-status.md) ### [Windows Autopilot Reset](windows-autopilot-reset.md) diff --git a/windows/deployment/windows-autopilot/user-driven-aad.md b/windows/deployment/windows-autopilot/user-driven-aad.md index 6da9e99b33..b63517060d 100644 --- a/windows/deployment/windows-autopilot/user-driven-aad.md +++ b/windows/deployment/windows-autopilot/user-driven-aad.md @@ -1,19 +1,35 @@ ---- -title: User-driven mode for AAD -description: Listing of Autopilot scenarios -keywords: mdm, setup, windows, windows 10, oobe, manage, deploy, autopilot, ztd, zero-touch, partner, msfb, intune -ms.prod: w10 -ms.mktglfcycl: deploy -ms.localizationpriority: low -ms.sitesec: library -ms.pagetype: deploy -author: greg-lindsay -ms.author: greg-lindsay -ms.date: 10/02/2018 ---- - -# Windows Autopilot user-driven mode for Azure Active Directory - -**Applies to: Windows 10** - -PLACEHOLDER. This topic is a placeholder for the AAD-specific instuctions currently in user-driven.md. +--- +title: User-driven mode for AAD +description: Listing of Autopilot scenarios +keywords: mdm, setup, windows, windows 10, oobe, manage, deploy, autopilot, ztd, zero-touch, partner, msfb, intune +ms.prod: w10 +ms.mktglfcycl: deploy +ms.localizationpriority: low +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +ms.author: greg-lindsay +ms.date: 11/07/2018 +--- + +# Windows Autopilot user-driven mode for Azure Active Directory join + +**Applies to: Windows 10** + +## Procedures + +In order to perform a user-driven deployment using Windows Autopilot, the following preparation steps need to be completed: + +- Ensure that the users who will be performing user-driven mode deployments are able to join devices to Azure Active Directory. See [Configure device settings](https://docs.microsoft.com/azure/active-directory/device-management-azure-portal#configure-device-settings) in the Azure Active Directory documentation for more information. +- Create an Autopilot profile for user-driven mode with the desired settings. In Microsoft Intune, this mode is explicitly chosen when creating the profile. With Microsoft Store for Business and Partner Center, user-driven mode is the default and does not need to be selected. +- If using Intune, create a device group in Azure Active Directory and assign the Autopilot profile to that group. + +For each device that will be deployed using user-driven deployment, these additional steps are needed: + +- Ensure that the device has been added to Windows Autopilot. This can be done automatically by an OEM or partner at the time the device is purchased, or it can be done through a manual harvesting process later. See [Adding devices to Windows Autopilot](add-devices.md) for more information. +- Ensure an Autopilot profile has been assigned to the device: + - If using Intune and Azure Active Directory dynamic device groups, this can be done automatically. + - If using Intune and Azure Active Directory static device groups, manually add the device to the device group. + - If using other methods (e.g. Microsoft Store for Business or Partner Center), manually assign an Autopilot profile to the device. + +Also see the **Validation** section in the [Windows Autopilot user-driven mode](user-driven.md) topic. diff --git a/windows/deployment/windows-autopilot/user-driven-hybrid.md b/windows/deployment/windows-autopilot/user-driven-hybrid.md index 6f4a760dcc..88e4a87f15 100644 --- a/windows/deployment/windows-autopilot/user-driven-hybrid.md +++ b/windows/deployment/windows-autopilot/user-driven-hybrid.md @@ -9,12 +9,31 @@ ms.sitesec: library ms.pagetype: deploy author: greg-lindsay ms.author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 --- -# Windows Autopilot user-driven mode for Hybrid Azure Active Directory Join +# Windows Autopilot user-driven mode for hybrid Azure Active Directory join **Applies to: Windows 10** -PLACEHOLDER. This topic is a placeholder for the AD-specific (hybrid) instuctions. +Windows Autopilot requires that devices be Azure Active Directory joined. If you have an on-premises Active Directory environment and want to also join devices to your on-premises domain, you can accomplish this by configuring Autopilot devices to be [hybrid Azure Active Directory (AAD) joined](https://docs.microsoft.com/azure/active-directory/devices/hybrid-azuread-join-plan). + +## Requirements + +To perform a user-driven hybrid AAD joined deployment using Windows Autopilot: + +- Users must be able to join devices to Azure Active Directory. +- A Windows Autopilot profile for user-driven mode must be created and + - **Hybrid Azure AD joined** must be specified as the selected option under **Join to Azure AD as** in the Autopilot profile. +- If using Intune, a device group in Azure Active Directory must exist with the Windows Autopilot profile assigned to that group. +- The device must be running Windows 10, version 1809 or later. +- The device must be connected to the Internet and have access to an Active Directory domain controller. +- The Intune Connector for Active Directory must be installed. + - Note: The Intune Connector will perform an on-prem AD join, therefore users do not need on-prem AD-join permission, assuming the Connector is [configured to perform this action](https://docs.microsoft.com/intune/windows-autopilot-hybrid#increase-the-computer-account-limit-in-the-organizational-unit) on the user's behalf. + +## Step by step instructions + +See [Deploy hybrid Azure AD joined devices using Intune and Windows Autopilot](https://docs.microsoft.com/intune/windows-autopilot-hybrid). + +Also see the **Validation** section in the [Windows Autopilot user-driven mode](user-driven.md) topic. \ No newline at end of file diff --git a/windows/deployment/windows-autopilot/user-driven.md b/windows/deployment/windows-autopilot/user-driven.md index 1aa1ad5321..4fd86ef3b5 100644 --- a/windows/deployment/windows-autopilot/user-driven.md +++ b/windows/deployment/windows-autopilot/user-driven.md @@ -8,11 +8,13 @@ ms.localizationpriority: medium ms.sitesec: library ms.pagetype: deploy author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 ms.author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 --- +# Windows Autopilot user-driven mode + Windows Autopilot user-driven mode is designed to enable new Windows 10 devices to be transformed from their initial state, directly from the factory, into a ready-to-use state without requiring that IT personnel ever touch the device. The process is designed to be simple so that anyone can complete it, enabling devices to be shipped or distributed to the end user directly with simple instructions: - Unbox the device, plug it in, and turn it on. @@ -24,21 +26,12 @@ After completing those simple steps, the remainder of the process is completely Today, Windows Autopilot user-driven mode supports joining devices to Azure Active Directory. Support for Hybrid Azure Active Directory Join (with devices joined to an on-premises Active Directory domain) will be available in a future Windows 10 release. See [Introduction to device management in Azure Active Directory](https://docs.microsoft.com/azure/active-directory/device-management-introduction) for more information about the differences between these two join options. -## Step by step +## Available user-driven modes -In order to perform a user-driven deployment using Windows Autopilot, the following preparation steps need to be completed: +The following options are available for user-driven deployment: -- Ensure that the users who will be performing user-driven mode deployments are able to join devices to Azure Active Directory. See [Configure device settings](https://docs.microsoft.com/azure/active-directory/device-management-azure-portal#configure-device-settings) in the Azure Active Directory documentation for more information. -- Create an Autopilot profile for user-driven mode with the desired settings. In Microsoft Intune, this mode is explicitly chosen when creating the profile. With Microsoft Store for Business and Partner Center, user-driven mode is the default and does not need to be selected. -- If using Intune, create a device group in Azure Active Directory and assign the Autopilot profile to that group. - -For each machine that will be deployed using user-driven deployment, these additional steps are needed: - -- Ensure that the device has been added to Windows Autopilot. This can be done automatically by an OEM or partner at the time the device is purchased, or it can be done through a manual harvesting process later. See [Adding devices to Windows Autopilot](add-devices.md) for more information. -- Ensure an Autopilot profile has been assigned to the device: - - If using Intune and Azure Active Directory dynamic device groups, this can be done automatically. - - If using Intune and Azure Active Directory static device groups, manually add the device to the device group. - - If using other methods (e.g. Microsoft Store for Business or Partner Center), manually assign an Autopilot profile to the device. +- [Azure Active Directory join](user-driven-aad.md) is available if devices do not need to be joined to an on-prem Active Directory domain. +- [Hybrid Azure Active Directory join](user-driven-hybrid.md) is available for devices that must be joined to both Azure Active Directory and your on-prem Active Directory domain. ## Validation diff --git a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md index 865d98939f..3ac0a072a3 100644 --- a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md +++ b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md @@ -18,6 +18,7 @@ ms.date: 06/05/2018 - Windows 10 Enterprise, version 1607 and newer - Windows Server 2016 +- Windows Server 2019 If you're looking for content on what each diagnostic data level means and how to configure it in your organization, see [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). @@ -43,6 +44,12 @@ Note that **Get Help** and **Give us Feedback** links no longer work after the W We are always striving to improve our documentation and welcome your feedback. You can provide feedback by contacting telmhelp@microsoft.com. +## What's new in Windows 10, version 1809 Enterprise edition + +Here's a list of changes that were made to this article for Windows 10, version 1809: + +- Added a policy to disable Windows Defender SmartScreen + ## What's new in Windows 10, version 1803 Enterprise edition Here's a list of changes that were made to this article for Windows 10, version 1803: @@ -99,19 +106,19 @@ The following table lists management options for each setting, beginning with Wi | Setting | UI | Group Policy | MDM policy | Registry | Command line | | - | :-: | :-: | :-: | :-: | :-: | -| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | | | +| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [2. Cortana and Search](#bkmk-cortana) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [3. Date & Time](#bkmk-datetime) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | -| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | -| [5. Find My Device](#find-my-device) | | ![Check mark](images/checkmark.png) | | | | -| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [5. Find My Device](#find-my-device) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [7. Insider Preview builds](#bkmk-previewbuilds) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [8. Internet Explorer](#bkmk-ie) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [9. Live Tiles](#live-tiles) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [10. Mail synchronization](#bkmk-mailsync) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [11. Microsoft Account](#bkmk-microsoft-account) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [12. Microsoft Edge](#bkmk-edge) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | -| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [14. Offline maps](#bkmk-offlinemaps) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [15. OneDrive](#bkmk-onedrive) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [16. Preinstalled apps](#bkmk-preinstalledapps) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | @@ -142,6 +149,7 @@ The following table lists management options for each setting, beginning with Wi | [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | [22. Wi-Fi Sense](#bkmk-wifisense) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [23. Windows Defender](#bkmk-defender) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [23.1 Windows Defender Smartscreen](#bkmk-defender-smartscreen) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [24. Windows Media Player](#bkmk-wmp) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | | [25. Windows Spotlight](#bkmk-spotlight) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [26. Microsoft Store](#bkmk-windowsstore) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | @@ -202,6 +210,63 @@ See the following table for a summary of the management settings for Windows Ser | [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | [28. Windows Update](#bkmk-wu) | ![Check mark](images/checkmark.png) | | +### Settings for Windows Server 2019 + +See the following table for a summary of the management settings for Windows Server 2019. + +| Setting | UI | Group Policy | MDM policy | Registry | Command line | +| - | :-: | :-: | :-: | :-: | :-: | +| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [2. Cortana and Search](#bkmk-cortana) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [3. Date & Time](#bkmk-datetime) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [5. Find My Device](#find-my-device) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [7. Insider Preview builds](#bkmk-previewbuilds) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [8. Internet Explorer](#bkmk-ie) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [9. Live Tiles](#live-tiles) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [10. Mail synchronization](#bkmk-mailsync) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [11. Microsoft Account](#bkmk-microsoft-account) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [12. Microsoft Edge](#bkmk-edge) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [14. Offline maps](#bkmk-offlinemaps) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [15. OneDrive](#bkmk-onedrive) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [16. Preinstalled apps](#bkmk-preinstalledapps) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | +| [17. Settings > Privacy](#bkmk-settingssection) | | | | | | +|     [17.1 General](#bkmk-general) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.2 Location](#bkmk-priv-location) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.3 Camera](#bkmk-priv-camera) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.4 Microphone](#bkmk-priv-microphone) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.5 Notifications](#bkmk-priv-notifications) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png)| ![Check mark](images/checkmark.png) | | +|     [17.6 Speech, inking, & typing](#bkmk-priv-speech) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.7 Account info](#bkmk-priv-accounts) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.8 Contacts](#bkmk-priv-contacts) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.9 Calendar](#bkmk-priv-calendar) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.10 Call history](#bkmk-priv-callhistory) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.11 Email](#bkmk-priv-email) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.12 Messaging](#bkmk-priv-messaging) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.13 Phone calls](#bkmk-priv-phone-calls) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.14 Radios](#bkmk-priv-radios) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.15 Other devices](#bkmk-priv-other-devices) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.16 Feedback & diagnostics](#bkmk-priv-feedback) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.17 Background apps](#bkmk-priv-background) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | +|     [17.18 Motion](#bkmk-priv-motion) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.19 Tasks](#bkmk-priv-tasks) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.20 App Diagnostics](#bkmk-priv-diag) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [18. Software Protection Platform](#bkmk-spp) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [19. Storage Health](#bkmk-storage-health) | | ![Check mark](images/checkmark.png) | | | | +| [20. Sync your settings](#bkmk-syncsettings) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | +| [22. Wi-Fi Sense](#bkmk-wifisense) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [23. Windows Defender](#bkmk-defender) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [23.1 Windows Defender Smartscreen](#bkmk-defender-smartscreen) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [24. Windows Media Player](#bkmk-wmp) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | +| [25. Windows Spotlight](#bkmk-spotlight) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [26. Microsoft Store](#bkmk-windowsstore) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +|     [26.1 Apps for websites](#bkmk-apps-for-websites) | | ![Check mark](images/checkmark.png) | | | +| [27. Windows Update Delivery Optimization](#bkmk-updates) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [28. Windows Update](#bkmk-wu) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | + ## How to configure each setting Use the following sections for more information about how to configure each setting. @@ -336,9 +401,17 @@ After that, configure the following: ### 4. Device metadata retrieval -To prevent Windows from retrieving device metadata from the Internet, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Device Installation** > **Prevent device metadata retrieval from the Internet**. +To prevent Windows from retrieving device metadata from the Internet: -You can also create a new REG\_DWORD registry setting named **PreventDeviceMetadataFromNetwork** in **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\Device Metadata** and set it to 1 (one). +- Apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Device Installation** > **Prevent device metadata retrieval from the Internet**. + + -or - + +- Create a new REG\_DWORD registry setting named **PreventDeviceMetadataFromNetwork** in **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\Device Metadata** and set it to 1 (one). + + -or - + +- Apply the DeviceInstallation/PreventDeviceMetadataFromNetwork MDM policy from the [Policy CSP](https://docs.microsoft.com/windows/client-management/mdm/policy-csp-deviceinstallation#deviceinstallation-preventdevicemetadatafromnetwork). ### 5. Find My Device @@ -608,7 +681,7 @@ You can turn off NCSI by doing one of the following: - Enable the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Internet Communication Management** > **Internet Communication Settings** > **Turn off Windows Network Connectivity Status Indicator active tests** -- In Windows 10, version 1703 and later, apply the Connectivity/DisallowNetworkConnectivityActiveTests MDM policy. +- In Windows 10, version 1703 and later, apply the Connectivity/DisallowNetworkConnectivityActiveTests MDM policy from the [Policy CSP](https://docs.microsoft.com/windows/client-management/mdm/policy-csp-connectivity#connectivity-disallownetworkconnectivityactivetests) with a value of 1. > [!NOTE] > After you apply this policy, you must restart the device for the policy setting to take effect. @@ -879,31 +952,13 @@ To turn off **Turn on SmartScreen Filter to check web content (URLs) that Micros -or- -- In Windows Server 2016, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Microsoft Edge** > **Configure SmartScreen Filter**. - In Windows 10, version 1703, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Microsoft Edge** > **Configure Windows Defender SmartScreen Filter**. - - In Windows Server 2016, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **File Explorer** > **Configure Windows SmartScreen**. - In Windows 10, version 1703 , apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **File Explorer** > **Configure Windows Defender SmartScreen**. - - -or- - -- Apply the Browser/AllowSmartScreen MDM policy from the [Policy CSP](https://msdn.microsoft.com/library/windows/hardware/dn904962.aspx) where 0 is turned off and 1 is turned on. - - -or- - - Create a provisioning package, using: - - - For Internet Explorer: **Runtime settings** > **Policies** > **Browser** > **AllowSmartScreen** - - - For Microsoft Edge: **Runtime settings** > **Policies** > **MicrosoftEdge** > **AllowSmartScreen** + - For Internet Explorer: **Runtime settings > Policies > Browser > AllowSmartScreen** + - For Microsoft Edge: **Runtime settings > Policies > MicrosoftEdge > AllowSmartScreen** -or- -- Create a REG\_DWORD registry setting named **EnableWebContentEvaluation** in **HKEY\_CURRENT\_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\AppHost** with a value of 0 (zero). - - -or- - -- Create a REG\_DWORD registry setting named **EnableSmartScreen** in **HKEY\_LOCAL\_MACHINE\\Sofware\\Policies\\Microsoft\\Windows\\System** with a value of 0 (zero). +- Create a REG_DWORD registry setting named **EnableWebContentEvaluation** in **HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost** with a value of 0 (zero). To turn off **Send Microsoft info about how I write to help us improve typing and writing in the future**: @@ -1793,6 +1848,36 @@ For Windows 10 only, you can stop Enhanced Notifications: You can also use the registry to turn off Malicious Software Reporting Tool diagnostic data by setting the REG\_DWORD value **HKEY\_LOCAL\_MACHINE\\Software\\Policies\\Microsoft\\MRT\\DontReportInfectionInformation** to 1. +### 23.1 Windows Defender SmartScreen + +To disable Windows Defender Smartscreen: + +- In Group Policy, configure - **Computer Configuration > Administrative Templates > Windows Components > Windows Defender SmartScreen > Explorer > Configure Windows Defender SmartScreen** : **Disable** + + -or- + +- **Computer Configuration > Administrative Templates > Windows Components > File Explorer > Configure Windows Defender SmartScreen** : **Disable** + + -and- + +- **Computer Configuration > Administrative Templates > Windows Components > Windows Defender SmartScreen > Explorer > Configure app install control** : **Enable** + + -or- + +- Create a REG_DWORD registry setting named **EnableSmartScreen** in **HKEY_LOCAL_MACHINE\Sofware\Policies\Microsoft\Windows\System** with a value of 0 (zero). + + -and- + +- Create a REG_DWORD registry setting named **ConfigureAppInstallControlEnabled** in **HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\SmartScreen** with a value of 1. + + -and- + +- Create a SZ registry setting named **ConfigureAppInstallControl** in **HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\SmartScreen** with a value of **Anywhere**. + + -or- + +- Apply the Browser/AllowSmartScreen MDM policy from the [Policy CSP](https://msdn.microsoft.com/library/windows/hardware/dn904962.aspx) where 0 is turned off and 1 is turned on. + ### 24. Windows Media Player To remove Windows Media Player on Windows 10: diff --git a/windows/privacy/manage-windows-endpoints.md b/windows/privacy/manage-windows-endpoints.md index 721814aabe..c324f877dd 100644 --- a/windows/privacy/manage-windows-endpoints.md +++ b/windows/privacy/manage-windows-endpoints.md @@ -145,13 +145,9 @@ If you [turn off traffic for this endpoint](manage-connections-from-windows-oper ## Certificates -The following endpoint is used by the Automatic Root Certificates Update component to automatically check the list of trusted authorities on Windows Update to see if an update is available. It is possible to [turn off traffic to this endpoint](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update), but that is not recommended because when root certificates are updated over time, applications and websites may stop working because they did not receive an updated root certificate the application uses. +The following endpoint is used by the Automatic Root Certificates Update component to automatically check the list of trusted authorities on Windows Update to see if an update is available. It is possible to [turn off traffic to this endpoint](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update), but that is not recommended because when root certificates are updated over time, applications and websites may stop working because they did not receive an updated root certificate the application uses. -| Source process | Protocol | Destination | Applies from Windows 10 version | -|----------------|----------|------------|----------------------------------| -| svchost | HTTP | ctldl.windowsupdate.com | 1709 | - -The following endpoints are used to download certificates that are publicly known to be fraudulent. +Additionally, it is used to download certificates that are publicly known to be fraudulent. These settings are critical for both Windows security and the overall security of the Internet. We do not recommend blocking this endpoint. If traffic to this endpoint is turned off, Windows no longer automatically downloads certificates known to be fraudulent, which increases the attack vector on the device. diff --git a/windows/security/threat-protection/index.md b/windows/security/threat-protection/index.md index a83dc7afac..028116204e 100644 --- a/windows/security/threat-protection/index.md +++ b/windows/security/threat-protection/index.md @@ -63,8 +63,8 @@ To further reinforce the security perimeter of your network, Windows Defender AT -**[Endpoint protection and response](windows-defender-atp/overview-endpoint-detection-response.md)**
-Endpoint protection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. +**[Endpoint detection and response](windows-defender-atp/overview-endpoint-detection-response.md)**
+Endpoint detection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. - [Alerts](windows-defender-atp/alerts-queue-windows-defender-advanced-threat-protection.md) - [Historical endpoint data](windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md#machine-timeline) diff --git a/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md index abe99e8194..6d9b834f75 100644 --- a/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md @@ -11,7 +11,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 10/26/2018 +ms.date: 11/07/2018 --- # Windows Defender Advanced Threat Protection @@ -76,8 +76,8 @@ To further reinforce the security perimeter of your network, Windows Defender AT -**[Endpoint protection and response](overview-endpoint-detection-response.md)**
-Endpoint protection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. +**[Endpoint detection and response](overview-endpoint-detection-response.md)**
+Endpoint detection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. From a1938d0e7ab01c9eafc8af33ab05e426356952aa Mon Sep 17 00:00:00 2001 From: Adam Gross Date: Wed, 7 Nov 2018 18:52:27 -0600 Subject: [PATCH 17/34] Update upgrade-readiness-deployment-script.md Fixed a typo --- .../deployment/upgrade/upgrade-readiness-deployment-script.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/upgrade/upgrade-readiness-deployment-script.md b/windows/deployment/upgrade/upgrade-readiness-deployment-script.md index 76e0198780..e295b3fa32 100644 --- a/windows/deployment/upgrade/upgrade-readiness-deployment-script.md +++ b/windows/deployment/upgrade/upgrade-readiness-deployment-script.md @@ -93,7 +93,7 @@ The deployment script displays the following exit codes to let you know if it wa N/A - 1 - Unexpected error occurred while executiEng the script. + 1 - Unexpected error occurred while executing the script. The files in the deployment script are likely corrupted. Download the [latest script](https://go.microsoft.com/fwlink/?LinkID=822966) from the download center and try again. From a5494b4014c21faded15a3cd69406bf3a69fa2e3 Mon Sep 17 00:00:00 2001 From: James Pearson Date: Thu, 8 Nov 2018 10:20:50 +0000 Subject: [PATCH 18/34] Fix a minor typo Replaced "Nullsoft Scriptable Install System" with "Nullsoft Sciptable Install System" in the Bondat section, and also put commas in the list to make it consistent with the other lists --- .../security/threat-protection/intelligence/worms-malware.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/intelligence/worms-malware.md b/windows/security/threat-protection/intelligence/worms-malware.md index b76c90029c..c9e7ce8541 100644 --- a/windows/security/threat-protection/intelligence/worms-malware.md +++ b/windows/security/threat-protection/intelligence/worms-malware.md @@ -25,7 +25,7 @@ Jenxcus (also known as Dunihi), Gamarue (also known as Androm), and Bondat have * **Gamarue** typically arrives through spam campaigns, exploits, downloaders, social networking sites, and removable drives. When Gamarue infects a device, it becomes a distribution channel for other malware. We’ve seen it distribute other malware such as infostealers, spammers, clickers, downloaders, and rogues. -* **Bondat** typically arrives through fictitious Nullsoft Sciptable Install System (NSIS) Java installers and removable drives. When Bondat infects a system, it gathers information about the machine such as device name, Globally Unique Identifier (GUID), and OS build. It then sends that information to a remote server. +* **Bondat** typically arrives through fictitious Nullsoft Scriptable Install System (NSIS), Java installers, and removable drives. When Bondat infects a system, it gathers information about the machine such as device name, Globally Unique Identifier (GUID), and OS build. It then sends that information to a remote server. Both Bondat and Gamarue have clever ways of obscuring themselves to evade detection. By hiding what they are doing, they try to avoid detection by security software. @@ -45,4 +45,4 @@ Download [Microsoft Security Essentials](https://www.microsoft.com/download/deta In case threat removal is unsuccessful, read about [troubleshooting malware detection and removal problems](https://www.microsoft.com/wdsi/help/troubleshooting-infection). -For more general tips, see [prevent malware infection](prevent-malware-infection.md). \ No newline at end of file +For more general tips, see [prevent malware infection](prevent-malware-infection.md). From 84b86cc5907bc150b48f9b847c05c0a038ed45f7 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 8 Nov 2018 13:41:55 +0000 Subject: [PATCH 19/34] Merged PR 12682: Change toc Change toc --- windows/deployment/windows-autopilot/TOC.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/windows-autopilot/TOC.md b/windows/deployment/windows-autopilot/TOC.md index 19d3896e66..dab69519b0 100644 --- a/windows/deployment/windows-autopilot/TOC.md +++ b/windows/deployment/windows-autopilot/TOC.md @@ -6,8 +6,8 @@ ## [Scenarios and Capabilities](windows-autopilot-scenarios.md) ### [Support for existing devices](existing-devices.md) ### [User-driven mode](user-driven.md) -#### [User-driven mode for AAD](user-driven-aad.md) -#### [User-driven mode for hybrid AAD](user-driven-hybrid.md) +#### [Azure Active Directory joined](user-driven-aad.md) +#### [Hybrid Azure Active Directory joined](user-driven-hybrid.md) ### [Self-deploying mode](self-deploying.md) ### [Enrollment status page](enrollment-status.md) ### [Windows Autopilot Reset](windows-autopilot-reset.md) From 78c4b52b311ce3dd29b27cac41136b0be08a928f Mon Sep 17 00:00:00 2001 From: Louie Mayor Date: Thu, 8 Nov 2018 14:41:34 +0000 Subject: [PATCH 20/34] Updated investigate-alerts-windows-defender-advanced-threat-protection.md --- ...e-alerts-windows-defender-advanced-threat-protection.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md index 87f2d65c02..31561fac5b 100644 --- a/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md @@ -54,14 +54,11 @@ Some actor profiles include a link to download a more comprehensive threat intel The detailed alert profile helps you understand who the attackers are, who they target, what techniques, tools, and procedures (TTPs) they use, which geolocations they are active in, and finally, what recommended actions you may take. In many cases, you can download a more detailed Threat Intelligence report about this attacker or campaign for offline reading. ## Alert process tree -The **Alert process tree** takes alert triage and investigation to the next level, displaying the alert and related evidence, together with other events that occurred within the same execution context and time. This rich triage context of the alert and surrounding events is available on the alert page. +The **Alert process tree** takes alert triage and investigation to the next level, displaying the aggregated alert and surrounding evidence that occurred within the same execution context and time period. This rich triage and investigation context is available on the alert page. ![Image of the alert process tree](images/atp-alert-process-tree.png) -The **Alert process tree** expands to display the execution path of the alert, its evidence, and related events that occurred in the minutes - before and after - the alert. - -The alert and related events or evidence have circles with thunderbolt icons inside them. - +The **Alert process tree** expands to display the execution path of the alert and related evidence that occurred around the same period. Evidence items that are marked with a thunderbolt icon should be given priority during investigation. >[!NOTE] >The alert process tree might not be available in some alerts. From f1cfa3c9576b81975897b5d873db139330261b78 Mon Sep 17 00:00:00 2001 From: Louie Mayor Date: Thu, 8 Nov 2018 15:04:17 +0000 Subject: [PATCH 21/34] Updated investigate-alerts-windows-defender-advanced-threat-protection.md --- ...tigate-alerts-windows-defender-advanced-threat-protection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md index 31561fac5b..55f697cb46 100644 --- a/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md @@ -58,7 +58,7 @@ The **Alert process tree** takes alert triage and investigation to the next leve ![Image of the alert process tree](images/atp-alert-process-tree.png) -The **Alert process tree** expands to display the execution path of the alert and related evidence that occurred around the same period. Evidence items that are marked with a thunderbolt icon should be given priority during investigation. +The **Alert process tree** expands to display the execution path of the alert and related evidence that occurred around the same period. Items marked with a thunderbolt icon should be given priority during investigation. >[!NOTE] >The alert process tree might not be available in some alerts. From 9e947c97eaa6873f650df3461bfbd3e82f341a96 Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Thu, 8 Nov 2018 09:20:10 -0800 Subject: [PATCH 22/34] updated date --- .../intelligence/top-scoring-industry-antivirus-tests.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md index ed1a13c200..34297ac109 100644 --- a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md +++ b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md @@ -1,14 +1,14 @@ --- title: Top scoring in industry antivirus tests description: Windows Defender Antivirus consistently achieves high scores in independent tests. View the latest scores and analysis. -keywords: security, malware, av-comparatives, av-test, av, antivirus +keywords: security, malware, av-comparatives, av-test, av, antivirus, windows, defender, scores ms.prod: w10 ms.mktglfcycl: secure ms.sitesec: library ms.localizationpriority: medium ms.author: ellevin author: levinec -ms.date: 09/05/2018 +ms.date: 11/07/2018 --- # Top scoring in industry antivirus tests From b66d9b7d3c6c965fbb08fd611b84de112d455333 Mon Sep 17 00:00:00 2001 From: Daniel Niccoli Date: Thu, 8 Nov 2018 22:45:46 +0100 Subject: [PATCH 23/34] Update windows/application-management/apps-in-windows-10.md --- .../apps-in-windows-10.md | 115 +++++++++--------- 1 file changed, 60 insertions(+), 55 deletions(-) diff --git a/windows/application-management/apps-in-windows-10.md b/windows/application-management/apps-in-windows-10.md index 5ee9f992a3..c333ae5b64 100644 --- a/windows/application-management/apps-in-windows-10.md +++ b/windows/application-management/apps-in-windows-10.md @@ -18,8 +18,8 @@ The following types of apps run on Windows 10: - "Win32" apps - traditional Windows applications. Digging into the Windows apps, there are two categories: -- System apps - Apps that are installed in the c:\Windows\* directory. These apps are integral to the OS. -- Apps - All other apps, installed in c:\Program Files\WindowsApps. There are two classes of apps: +- System apps - Apps that are installed in the C:\Windows\* directory. These apps are integral to the OS. +- Apps - All other apps, installed in C:\Program Files\WindowsApps. There are two classes of apps: - Provisioned: Installed in user account the first time you sign in with a new user account. - Installed: Installed as part of the OS. @@ -38,57 +38,62 @@ Some of the apps show up in multiple tables - that's because their status change System apps are integral to the operating system. Here are the typical system apps in Windows 10 versions 1703, 1709, and 1803. -| Name | Full name |1703 | 1709 | 1803 |Uninstall through UI? | -|------------------|-------------------------------------------|:------:|:------:|:------:|-------------------------------------------------------| -| Cortana UI | CortanaListenUIApp | x | | |No | -| | Desktop Learning | x | | |No | -| | DesktopView | x | | |No | -| | EnvironmentsApp | x | | |No | -| Mixed Reality + | HoloCamera | x | | |No | -| Mixed Reality + | HoloItemPlayerApp | x | | |No | -| Mixed Reality + | HoloShell | x | | |No | -| | InputApp | | x | x |No | -| | Microsoft.AAD.Broker.Plugin | x | x | x |No | -| | Microsoft.AccountsControl | x | x | x |No | -| Hello setup UI | Microsoft.BioEnrollment | x | x | x |No | -| | Microsoft.CredDialogHost | x | x | x |No | -| | Microsoft.ECApp | | x | x |No | -| | Microsoft.LockApp | x | x | x |No | -| Microsoft Edge | Microsoft.Microsoft.Edge | x | x | x |No | -| | Microsoft.PPIProjection | x | x | x |No | -| | Microsoft.Windows. Apprep.ChxApp | x | x | x |No | -| | Microsoft.Windows. AssignedAccessLockApp | x | x | x |No | -| | Microsoft.Windows. CloudExperienceHost | x | x | x |No | -| | Microsoft.Windows. ContentDeliveryManager | x | x | x |No | -| Cortana | Microsoft.Windows.Cortana | x | x | x |No | -| | Microsoft.Windows. Holographic.FirstRun | x | x | x |No | -| | Microsoft.Windows. ModalSharePickerHost | x | | |No | -| | Microsoft.Windows. OOBENetworkCaptivePort | x | x | x |No | -| | Microsoft.Windows. OOBENetworkConnectionFlow | x | x | x |No | -| | Microsoft.Windows. ParentalControls | x | x | x |No | -| People Hub | Microsoft.Windows. PeopleExperienceHost | | x | x |No | -| | Microsoft.Windows. PinningConfirmationDialog | | x | x |No | -| | Microsoft.Windows. SecHealthUI | x | x | x |No | -| | Microsoft.Windows. SecondaryTileExperience | x | x | |No | -| | Microsoft.Windows. SecureAssessmentBrowser | x | x | x |No | -| Start | Microsoft.Windows. ShellExperienceHost | x | x | x |No | -| Windows Feedback | Microsoft.WindowsFeedback | * | * | |No | -| | Microsoft.XboxGameCallableUI | x | x | x |No | -| Contact Support* | Windows.ContactSupport | x | * | |Via Optional Features app | -| Settings | Windows.ImmersiveControlPanel | x | x | |No | -| Connect | Windows.MiracastView | x | | |No | -| Print 3D | Windows.Print3D | | x | |Yes | -| Print UI | Windows.PrintDialog | x | x | x |No | -| Purchase UI | Windows.PurchaseDialog | | | x |No | -| | Microsoft.AsyncTextService | | | x |No | -| | Microsoft.MicrosoftEdgeDevToolsClient | | | x |No | -| | Microsoft.Win32WebViewHost | | | x |No | -| | Microsoft.Windows.CapturePicker | | | x |No | -| | Windows.CBSPreview | | | x |No | -|File Picker | 1527c705-839a-4832-9118-54d4Bd6a0c89 | | | x |No | -|File Explorer | c5e2524a-ea46-4f67-841f-6a9465d9d515 | | | x |No | -|App Resolver | E2A4F912-2574-4A75-9BB0-0D023378592B | | | x |No | -|Add Suggested folder Dialog box| F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE|| | x |No | +``` +> Get-AppxPackage -PackageTypeFilter Main | ? { $_.SignatureKind -eq "System" } | Sort Name | Format-Table Name, InstallLocation +``` + +| Name | Package Name | 1703 | 1709 | 1803 | Uninstall through UI? | +|----------------------------------|---------------------------------------------|:-----:|:----:|:----:|-----------------------| +| File Picker | 1527c705-839a-4832-9118-54d4Bd6a0c89 | | | x | No | +| File Explorer | c5e2524a-ea46-4f67-841f-6a9465d9d515 | | | x | No | +| App Resolver UX | E2A4F912-2574-4A75-9BB0-0D023378592B | | | x | No | +| Add Suggested Folders To Library | F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE | | | x | No | +| | InputApp | | x | x | No | +| Cortana UI | CortanaListenUIApp | x | | | No | +| | Desktop Learning | x | | | No | +| | DesktopView | x | | | No | +| | EnvironmentsApp | x | | | No | +| Mixed Reality + | HoloCamera | x | | | No | +| Mixed Reality + | HoloItemPlayerApp | x | | | No | +| Mixed Reality + | HoloShell | x | | | No | +| | Microsoft.AAD.Broker.Plugin | x | x | x | No | +| | Microsoft.AccountsControl | x | x | x | No | +| | Microsoft.AsyncTextService | | | x | No | +| Hello setup UI | Microsoft.BioEnrollment | x | x | x | No | +| | Microsoft.CredDialogHost | x | x | x | No | +| | Microsoft.ECApp | | x | x | No | +| | Microsoft.LockApp | x | x | x | No | +| Microsoft Edge | Microsoft.MicrosoftEdge | x | x | x | No | +| | Microsoft.MicrosoftEdgeDevToolsClient | | | x | No | +| | Microsoft.PPIProjection | x | x | | No | +| | Microsoft.Win32WebViewHost | | | x | No | +| | Microsoft.Windows.Apprep.ChxApp | x | x | x | No | +| | Microsoft.Windows.AssignedAccessLockApp | x | x | x | No | +| | Microsoft.Windows.CapturePicker | | | x | No | +| | Microsoft.Windows.CloudExperienceHost | x | x | x | No | +| | Microsoft.Windows.ContentDeliveryManager | x | x | x | No | +| Cortana | Microsoft.Windows.Cortana | x | x | x | No | +| | Microsoft.Windows.Holographic.FirstRun | x | x | | No | +| | Microsoft.Windows.ModalSharePickerHost | x | | | No | +| | Microsoft.Windows.OOBENetworkCaptivePort | x | x | x | No | +| | Microsoft.Windows.OOBENetworkConnectionFlow | x | x | x | No | +| | Microsoft.Windows.ParentalControls | x | x | x | No | +| People Hub | Microsoft.Windows.PeopleExperienceHost | | x | x | No | +| | Microsoft.Windows.PinningConfirmationDialog | | x | x | No | +| | Microsoft.Windows.SecHealthUI | x | x | x | No | +| | Microsoft.Windows.SecondaryTileExperience | x | x | | No | +| | Microsoft.Windows.SecureAssessmentBrowser | x | x | x | No | +| Start | Microsoft.Windows.ShellExperienceHost | x | x | x | No | +| Windows Feedback | Microsoft.WindowsFeedback | * | * | | No | +| | Microsoft.XboxGameCallableUI | x | x | x | No | +| | Windows.CBSPreview | | | x | No | +| Contact Support* | Windows.ContactSupport | x | * | | Via Settings App | +| Settings | Windows.immersivecontrolpanel | x | x | x | No | +| Connect | Windows.MiracastView | x | | | No | +| Print 3D | Windows.Print3D | | x | | Yes | +| Print UI | Windows.PrintDialog | x | x | x | No | +| Purchase UI | Windows.PurchaseDialog | | | | No | + > [!NOTE] > - The Contact Support app changed to Get Help in version 1709. Get Help is a provisioned app (instead of system app like Contact Support). @@ -98,7 +103,7 @@ System apps are integral to the operating system. Here are the typical system ap Here are the typical installed Windows apps in Windows 10 versions 1703, 1709, and 1803. | Name | Full name | 1703 | 1709 | 1803 |Uninstall through UI? | -|--------------------|------------------------------------------|:----:|:----:|:----:|:----------------------:| +|--------------------|------------------------------------------|:----:|:----:|:----:|:---------------------:| | Remote Desktop | Microsoft.RemoteDesktop | x | x | | Yes | | PowerBI | Microsoft.Microsoft PowerBIforWindows | x | | | Yes | | Code Writer | ActiproSoftwareLLC.562882FEEB491 | x | x | x | Yes | @@ -152,7 +157,7 @@ Here are the provisioned Windows apps in Windows 10 versions 1703, 1709, 1803 an | Microsoft.MicrosoftStickyNotes | [Microsoft Sticky Notes](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe) | x | x | x | x | No | | Microsoft.MixedReality.Portal | [Mixed Reality Portal](ms-windows-store://pdp/?PFN=Microsoft.MixedReality.Portal_8wekyb3d8bbwe) | | | | x | No | | Microsoft.MSPaint | [Paint 3D](ms-windows-store://pdp/?PFN=Microsoft.MSPaint_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.Office.OneNote | [OneNote](ms-windows-store://pdp/?PFN=Microsoft.Office.OneNote_8wekyb3d8bbwe) | x | x | x | x | Yes | +| Microsoft.Office.OneNote | [OneNote](ms-windows-store://pdp/?PFN=Microsoft.Office.OneNote_8wekyb3d8bbwe) | x | x | x | x | Yes | | Microsoft.OneConnect | [Paid Wi-Fi & Cellular](ms-windows-store://pdp/?PFN=Microsoft.OneConnect_8wekyb3d8bbwe) | x | x | x | x | No | | Microsoft.People | [Microsoft People](ms-windows-store://pdp/?PFN=Microsoft.People_8wekyb3d8bbwe) | x | x | x | x | No | | Microsoft.Print3D | [Print 3D](ms-windows-store://pdp/?PFN=Microsoft.Print3D_8wekyb3d8bbwe) | | x | x | x | No | From 350b732b00d8b8758ad64f5d85b3694f4c8ed37a Mon Sep 17 00:00:00 2001 From: Daniel Niccoli Date: Thu, 8 Nov 2018 22:57:50 +0100 Subject: [PATCH 24/34] Update windows/application-management/apps-in-windows-10.md --- .../apps-in-windows-10.md | 128 +++++++++--------- 1 file changed, 63 insertions(+), 65 deletions(-) diff --git a/windows/application-management/apps-in-windows-10.md b/windows/application-management/apps-in-windows-10.md index c333ae5b64..02aa19ebf0 100644 --- a/windows/application-management/apps-in-windows-10.md +++ b/windows/application-management/apps-in-windows-10.md @@ -18,29 +18,85 @@ The following types of apps run on Windows 10: - "Win32" apps - traditional Windows applications. Digging into the Windows apps, there are two categories: -- System apps - Apps that are installed in the C:\Windows\* directory. These apps are integral to the OS. - Apps - All other apps, installed in C:\Program Files\WindowsApps. There are two classes of apps: - Provisioned: Installed in user account the first time you sign in with a new user account. - Installed: Installed as part of the OS. +- System apps - Apps that are installed in the C:\Windows\* directory. These apps are integral to the OS. The following tables list the system apps, installed Windows apps, and provisioned Windows apps in a standard Windows 10 Enterprise installation. (If you have a custom image, your specific apps might differ.) The tables list the app, the full name, show the app's status in Windows 10 version 1607, 1703, and 1709, and indicate whether an app can be uninstalled through the UI. Some of the apps show up in multiple tables - that's because their status changed between versions. Make sure to check the version column for the version you are currently running. + +## Provisioned Windows apps + +Here are the provisioned Windows apps in Windows 10 versions 1703, 1709, 1803 and 1809. + > [!TIP] -> Want to see a list of the apps installed on your specific image? You can run the following PowerShell cmdlet: -> ```powershell -> Get-AppxPackage | select Name,PackageFamilyName -> Get-AppxProvisionedPackage -Online | select DisplayName,PackageName +> You can list all provisioned Windows apps with this PowerShell command: > ``` +> Get-AppxProvisionedPackage -Online | Format-Table DisplayName, PackageName +> ``` + +| Package name | App name | 1703 | 1709 | 1803 | 1809 | Uninstall through UI? | +|----------------------------------------|--------------------------------------------------------------------------------------------------------------------|:----:|:----:|:----:|:----:|:---------------------:| +| Microsoft.3DBuilder | [3D Builder](ms-windows-store://pdp/?PFN=Microsoft.3DBuilder_8wekyb3d8bbwe) | x | | | | Yes | +| Microsoft.BingWeather | [MSN Weather](ms-windows-store://pdp/?PFN=Microsoft.BingWeather_8wekyb3d8bbwe) | x | x | x | x | Yes | +| Microsoft.DesktopAppInstaller | [App Installer](ms-windows-store://pdp/?PFN=Microsoft.DesktopAppInstaller_8wekyb3d8bbwe) | x | x | x | x | Via Settings App | +| Microsoft.GetHelp | [Get Help](ms-windows-store://pdp/?PFN=Microsoft.Gethelp_8wekyb3d8bbwe) | | x | x | x | No | +| Microsoft.Getstarted | [Microsoft Tips](ms-windows-store://pdp/?PFN=Microsoft.Getstarted_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.HEIFImageExtension | [HEIF Image Extensions](ms-windows-store://pdp/?PFN=Microsoft.HEIFImageExtension_8wekyb3d8bbwe) | | | | x | No | +| Microsoft.Messaging | [Microsoft Messaging](ms-windows-store://pdp/?PFN=Microsoft.Messaging_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.Microsoft3DViewer | [Mixed Reality Viewer](ms-windows-store://pdp/?PFN=Microsoft.Microsoft3DViewer_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.MicrosoftOfficeHub | [My Office](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftOfficeHub_8wekyb3d8bbwe) | x | x | x | x | Yes | +| Microsoft.MicrosoftSolitaireCollection | [Microsoft Solitaire Collection](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftSolitaireCollection_8wekyb3d8bbwe) | x | x | x | x | Yes | +| Microsoft.MicrosoftStickyNotes | [Microsoft Sticky Notes](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.MixedReality.Portal | [Mixed Reality Portal](ms-windows-store://pdp/?PFN=Microsoft.MixedReality.Portal_8wekyb3d8bbwe) | | | | x | No | +| Microsoft.MSPaint | [Paint 3D](ms-windows-store://pdp/?PFN=Microsoft.MSPaint_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.Office.OneNote | [OneNote](ms-windows-store://pdp/?PFN=Microsoft.Office.OneNote_8wekyb3d8bbwe) | x | x | x | x | Yes | +| Microsoft.OneConnect | [Paid Wi-Fi & Cellular](ms-windows-store://pdp/?PFN=Microsoft.OneConnect_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.People | [Microsoft People](ms-windows-store://pdp/?PFN=Microsoft.People_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.Print3D | [Print 3D](ms-windows-store://pdp/?PFN=Microsoft.Print3D_8wekyb3d8bbwe) | | x | x | x | No | +| Microsoft.SkreenSketch | [Snip & Sketch](ms-windows-store://pdp/?PFN=Microsoft.ScreenSketch_8wekyb3d8bbwe) | | | | x | No | +| Microsoft.SkypeApp | [Skype](ms-windows-store://pdp/?PFN=Microsoft.SkypeApp_kzf8qxf38zg5c) | x | x | x | x | No | +| Microsoft.StorePurchaseApp | [Store Purchase App](ms-windows-store://pdp/?PFN=Microsoft.StorePurchaseApp_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.VP9VideoExtensions | | | | | x | No | +| Microsoft.Wallet | [Microsoft Pay](ms-windows-store://pdp/?PFN=Microsoft.Wallet_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WebMediaExtensions | [Web Media Extensions](ms-windows-store://pdp/?PFN=Microsoft.WebMediaExtensions_8wekyb3d8bbwe) | | | x | x | No | +| Microsoft.WebpImageExtension | [Webp Image Extension](ms-windows-store://pdp/?PFN=Microsoft.WebpImageExtension_8wekyb3d8bbwe) | | | | x | No | +| Microsoft.Windows.Photos | [Microsoft Photos](ms-windows-store://pdp/?PFN=Microsoft.Windows.Photos_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsAlarms | [Windows Alarms & Clock](ms-windows-store://pdp/?PFN=Microsoft.WindowsAlarms_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsCalculator | [Windows Calculator](ms-windows-store://pdp/?PFN=Microsoft.WindowsCalculator_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsCamera | [Windows Camera](ms-windows-store://pdp/?PFN=Microsoft.WindowsCamera_8wekyb3d8bbwe) | x | x | x | x | No | +| microsoft.windowscommunicationsapps | [Mail and Calendar](ms-windows-store://pdp/?PFN=microsoft.windowscommunicationsapps_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsFeedbackHub | [Feedback Hub](ms-windows-store://pdp/?PFN=Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsMaps | [Windows Maps](ms-windows-store://pdp/?PFN=Microsoft.WindowsMaps_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsSoundRecorder | [Windows Voice Recorder](ms-windows-store://pdp/?PFN=Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsStore | [Microsoft Store](ms-windows-store://pdp/?PFN=Microsoft.WindowsStore_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.Xbox.TCUI | [Xbox TCUI](ms-windows-store://pdp/?PFN=Microsoft.Xbox.TCUI_8wekyb3d8bbwe) | | x | x | x | No | +| Microsoft.XboxApp | [Xbox](ms-windows-store://pdp/?PFN=Microsoft.XboxApp_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.XboxGameOverlay | [Xbox Game Bar](ms-windows-store://pdp/?PFN=Microsoft.XboxGameOverlay_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.XboxGamingOverlay | [Xbox Gaming Overlay](ms-windows-store://pdp/?PFN=Microsoft.XboxGamingOverlay_8wekyb3d8bbwe) | | | x | x | No | +| Microsoft.XboxIdentityProvider | [Xbox Identity Provider](ms-windows-store://pdp/?PFN=Microsoft.XboxIdentityProvider_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.XboxSpeechToTextOverlay | | x | x | x | x | No | +| Microsoft.YourPhone | [Your Phone](ms-windows-store://pdp/?PFN=Microsoft.YourPhone_8wekyb3d8bbwe) | | | | x | No | +| Microsoft.ZuneMusic | [Groove Music](ms-windows-store://pdp/?PFN=Microsoft.ZuneMusic_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.ZuneVideo | [Movies & TV](ms-windows-store://pdp/?PFN=Microsoft.ZuneVideo_8wekyb3d8bbwe) | x | x | x | x | No | + +--- +>[!NOTE] +>The Store app can't be removed. If you want to remove and reinstall the Store app, you can only bring Store back by either restoring your system from a backup or resetting your system. Instead of removing the Store app, you should use group policies to hide or disable it. +--- ## System apps System apps are integral to the operating system. Here are the typical system apps in Windows 10 versions 1703, 1709, and 1803. -``` +> [!TIP] +> You can list all system apps with this PowerShell command: +> ``` > Get-AppxPackage -PackageTypeFilter Main | ? { $_.SignatureKind -eq "System" } | Sort Name | Format-Table Name, InstallLocation -``` +> ``` | Name | Package Name | 1703 | 1709 | 1803 | Uninstall through UI? | |----------------------------------|---------------------------------------------|:-----:|:----:|:----:|-----------------------| @@ -132,62 +188,4 @@ Here are the typical installed Windows apps in Windows 10 versions 1703, 1709, a | | Microsoft.VCLibs.120.00.Universal | | x | | Yes | | | Microsoft.VCLibs.140.00.UWPDesktop | | | x | Yes | | | Microsoft.WinJS.2.0 | x | | | Yes | ---- - -## Provisioned Windows apps - -Here are the provisioned Windows apps in Windows 10 versions 1703, 1709, 1803 and 1809. - -``` -> Get-AppxProvisionedPackage -Online | Select-Object DisplayName, PackageName -``` - -| Package name | App name | 1703 | 1709 | 1803 | 1809 | Uninstall through UI? | -|----------------------------------------|--------------------------------------------------------------------------------------------------------------------|:----:|:----:|:----:|:----:|:---------------------:| -| Microsoft.3DBuilder | [3D Builder](ms-windows-store://pdp/?PFN=Microsoft.3DBuilder_8wekyb3d8bbwe) | x | | | | Yes | -| Microsoft.BingWeather | [MSN Weather](ms-windows-store://pdp/?PFN=Microsoft.BingWeather_8wekyb3d8bbwe) | x | x | x | x | Yes | -| Microsoft.DesktopAppInstaller | [App Installer](ms-windows-store://pdp/?PFN=Microsoft.DesktopAppInstaller_8wekyb3d8bbwe) | x | x | x | x | Via Settings App | -| Microsoft.GetHelp | [Get Help](ms-windows-store://pdp/?PFN=Microsoft.Gethelp_8wekyb3d8bbwe) | | x | x | x | No | -| Microsoft.Getstarted | [Microsoft Tips](ms-windows-store://pdp/?PFN=Microsoft.Getstarted_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.HEIFImageExtension | [HEIF Image Extensions](ms-windows-store://pdp/?PFN=Microsoft.HEIFImageExtension_8wekyb3d8bbwe) | | | | x | No | -| Microsoft.Messaging | [Microsoft Messaging](ms-windows-store://pdp/?PFN=Microsoft.Messaging_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.Microsoft3DViewer | [Mixed Reality Viewer](ms-windows-store://pdp/?PFN=Microsoft.Microsoft3DViewer_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.MicrosoftOfficeHub | [My Office](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftOfficeHub_8wekyb3d8bbwe) | x | x | x | x | Yes | -| Microsoft.MicrosoftSolitaireCollection | [Microsoft Solitaire Collection](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftSolitaireCollection_8wekyb3d8bbwe) | x | x | x | x | Yes | -| Microsoft.MicrosoftStickyNotes | [Microsoft Sticky Notes](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.MixedReality.Portal | [Mixed Reality Portal](ms-windows-store://pdp/?PFN=Microsoft.MixedReality.Portal_8wekyb3d8bbwe) | | | | x | No | -| Microsoft.MSPaint | [Paint 3D](ms-windows-store://pdp/?PFN=Microsoft.MSPaint_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.Office.OneNote | [OneNote](ms-windows-store://pdp/?PFN=Microsoft.Office.OneNote_8wekyb3d8bbwe) | x | x | x | x | Yes | -| Microsoft.OneConnect | [Paid Wi-Fi & Cellular](ms-windows-store://pdp/?PFN=Microsoft.OneConnect_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.People | [Microsoft People](ms-windows-store://pdp/?PFN=Microsoft.People_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.Print3D | [Print 3D](ms-windows-store://pdp/?PFN=Microsoft.Print3D_8wekyb3d8bbwe) | | x | x | x | No | -| Microsoft.SkreenSketch | [Snip & Sketch](ms-windows-store://pdp/?PFN=Microsoft.ScreenSketch_8wekyb3d8bbwe) | | | | x | No | -| Microsoft.SkypeApp | [Skype](ms-windows-store://pdp/?PFN=Microsoft.SkypeApp_kzf8qxf38zg5c) | x | x | x | x | No | -| Microsoft.StorePurchaseApp | [Store Purchase App](ms-windows-store://pdp/?PFN=Microsoft.StorePurchaseApp_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.VP9VideoExtensions | | | | | x | No | -| Microsoft.Wallet | [Microsoft Pay](ms-windows-store://pdp/?PFN=Microsoft.Wallet_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WebMediaExtensions | [Web Media Extensions](ms-windows-store://pdp/?PFN=Microsoft.WebMediaExtensions_8wekyb3d8bbwe) | | | x | x | No | -| Microsoft.WebpImageExtension | [Webp Image Extension](ms-windows-store://pdp/?PFN=Microsoft.WebpImageExtension_8wekyb3d8bbwe) | | | | x | No | -| Microsoft.Windows.Photos | [Microsoft Photos](ms-windows-store://pdp/?PFN=Microsoft.Windows.Photos_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsAlarms | [Windows Alarms & Clock](ms-windows-store://pdp/?PFN=Microsoft.WindowsAlarms_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsCalculator | [Windows Calculator](ms-windows-store://pdp/?PFN=Microsoft.WindowsCalculator_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsCamera | [Windows Camera](ms-windows-store://pdp/?PFN=Microsoft.WindowsCamera_8wekyb3d8bbwe) | x | x | x | x | No | -| microsoft.windowscommunicationsapps | [Mail and Calendar](ms-windows-store://pdp/?PFN=microsoft.windowscommunicationsapps_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsFeedbackHub | [Feedback Hub](ms-windows-store://pdp/?PFN=Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsMaps | [Windows Maps](ms-windows-store://pdp/?PFN=Microsoft.WindowsMaps_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsSoundRecorder | [Windows Voice Recorder](ms-windows-store://pdp/?PFN=Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsStore | [Microsoft Store](ms-windows-store://pdp/?PFN=Microsoft.WindowsStore_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.Xbox.TCUI | [Xbox TCUI](ms-windows-store://pdp/?PFN=Microsoft.Xbox.TCUI_8wekyb3d8bbwe) | | x | x | x | No | -| Microsoft.XboxApp | [Xbox](ms-windows-store://pdp/?PFN=Microsoft.XboxApp_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.XboxGameOverlay | [Xbox Game Bar](ms-windows-store://pdp/?PFN=Microsoft.XboxGameOverlay_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.XboxGamingOverlay | [Xbox Gaming Overlay](ms-windows-store://pdp/?PFN=Microsoft.XboxGamingOverlay_8wekyb3d8bbwe) | | | x | x | No | -| Microsoft.XboxIdentityProvider | [Xbox Identity Provider](ms-windows-store://pdp/?PFN=Microsoft.XboxIdentityProvider_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.XboxSpeechToTextOverlay | | x | x | x | x | No | -| Microsoft.YourPhone | [Your Phone](ms-windows-store://pdp/?PFN=Microsoft.YourPhone_8wekyb3d8bbwe) | | | | x | No | -| Microsoft.ZuneMusic | [Groove Music](ms-windows-store://pdp/?PFN=Microsoft.ZuneMusic_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.ZuneVideo | [Movies & TV](ms-windows-store://pdp/?PFN=Microsoft.ZuneVideo_8wekyb3d8bbwe) | x | x | x | x | No | - ---- ->[!NOTE] ->The Store app can't be removed. If you want to remove and reinstall the Store app, you can only bring Store back by either restoring your system from a backup or resetting your system. Instead of removing the Store app, you should use group policies to hide or disable it. --- \ No newline at end of file From 90f10fedbe9bb132885d83e3b3ff03a048611fad Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Thu, 8 Nov 2018 14:44:44 -0800 Subject: [PATCH 25/34] add troubleshooting for pop-up blocker --- ...ot-siem-windows-defender-advanced-threat-protection.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/troubleshoot-siem-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/troubleshoot-siem-windows-defender-advanced-threat-protection.md index ec2722306c..8c7c0f5e5f 100644 --- a/windows/security/threat-protection/windows-defender-atp/troubleshoot-siem-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/troubleshoot-siem-windows-defender-advanced-threat-protection.md @@ -11,7 +11,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 02/13/2018 +ms.date: 11/08/2018 --- # Troubleshoot SIEM tool integration issues @@ -67,6 +67,12 @@ If you encounter an error when trying to get a refresh token when using the thre 6. Click **Save**. +## Error while enabling the SIEM connector application +If you encounter an error when trying to enable the SIEM connector application, check the pop-up blocker settings of your browser. It might be blocking the new window being opened when you enable the capability. + + + + >Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-troubleshootsiem-belowfoldlink) ## Related topics From 7c414418c39e1307299925e5abcf88072890fb7e Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 9 Nov 2018 00:41:00 -0500 Subject: [PATCH 26/34] typo: Dyanamic -> Dynamic Also added code fence language --- windows/client-management/mdm/passportforwork-ddf.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/client-management/mdm/passportforwork-ddf.md b/windows/client-management/mdm/passportforwork-ddf.md index 6f65055513..79bf2a8409 100644 --- a/windows/client-management/mdm/passportforwork-ddf.md +++ b/windows/client-management/mdm/passportforwork-ddf.md @@ -21,7 +21,7 @@ Looking for the DDF XML files? See [CSP DDF files download](configuration-servic The XML below is for Windows 10, version 1809. -``` syntax +```xml False - Enables/Disables Dyanamic Lock + Enables/Disables Dynamic Lock @@ -1304,4 +1304,4 @@ Note that enhanced anti-spoofing for Windows Hello face authentication is not re -``` \ No newline at end of file +``` From af31678826a3be5ef17f00ebdb6f341523236154 Mon Sep 17 00:00:00 2001 From: Justin Hall Date: Fri, 9 Nov 2018 09:30:21 -0800 Subject: [PATCH 27/34] edit --- .../protect-enterprise-data-using-wip.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md b/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md index ed41a8ef23..33ec5598fe 100644 --- a/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md +++ b/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md @@ -8,7 +8,7 @@ ms.mktglfcycl: explore ms.sitesec: library ms.pagetype: security ms.author: justinha -ms.date: 11/06/2018 +ms.date: 11/08/2018 ms.localizationpriority: medium --- @@ -26,7 +26,7 @@ Windows Information Protection (WIP), previously known as enterprise data protec ## Video: Protect enterprise data from being accidentally copied to the wrong place -> [!Video https://www.youtube.com/embed/1s09SrwxccM] +> [!Video https://www.microsoft.com/en-us/videoplayer/embed/RE2IGhh] ## Prerequisites You’ll need this software to run WIP in your enterprise: From 851ab5ff05ef995e86326fe51f1ab4b5724e0cd3 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Fri, 9 Nov 2018 10:34:43 -0800 Subject: [PATCH 28/34] fix link --- ...ing-reference-windows-defender-advanced-threat-protection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/advanced-hunting-reference-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/advanced-hunting-reference-windows-defender-advanced-threat-protection.md index dcda5f43d8..9366ed298f 100644 --- a/windows/security/threat-protection/windows-defender-atp/advanced-hunting-reference-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/advanced-hunting-reference-windows-defender-advanced-threat-protection.md @@ -113,4 +113,4 @@ To effectively build queries that span multiple tables, you need to understand t ## Related topic - [Query data using Advanced hunting](advanced-hunting-windows-defender-advanced-threat-protection.md) -- [Advanced hunting query language best practices](/advanced-hunting-best-practices-windows-defender-advanced-threat-protection.md) \ No newline at end of file +- [Advanced hunting query language best practices](advanced-hunting-best-practices-windows-defender-advanced-threat-protection.md) \ No newline at end of file From d1b4f83c1b26cd5105e7812387884f1274146193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=20Halfin=20=F0=9F=93=AC=F0=9F=94=A8?= Date: Fri, 9 Nov 2018 19:40:18 +0000 Subject: [PATCH 29/34] Merged PR 12726: Sediment updates --- ...ndows-diagnostic-events-and-fields-1703.md | 283 ++--------------- ...ndows-diagnostic-events-and-fields-1709.md | 186 ++--------- ...ndows-diagnostic-events-and-fields-1803.md | 298 ++++++++++++++++++ 3 files changed, 336 insertions(+), 431 deletions(-) diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md index ada643a31a..c0acd3cd73 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md @@ -2791,7 +2791,7 @@ The following fields are available: ### Microsoft.Windows.Remediation.Applicable -This event indicates a remedial plug-in is applicable if/when such a plug-in is detected. This is used to ensure Windows is up to date. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: @@ -2814,7 +2814,7 @@ The following fields are available: - **HResult** The HRESULT for detection or perform action phases of the plugin. - **IsAppraiserLatestResult** The HRESULT from the appraiser task. - **IsConfigurationCorrected** Indicates whether the configuration of SIH task was successfully corrected. -- **LastHresult** The HRESULT for detection or perform action phases of the plugin. +- **LastHresult** The HResult of the operation. - **LastRun** The date of the most recent SIH run. - **NextRun** Date of the next scheduled SIH run. - **PackageVersion** The version of the current remediation package. @@ -2875,7 +2875,7 @@ The following fields are available: ### Microsoft.Windows.Remediation.Completed -This event enables completion tracking of a process that remediates issues preventing security and quality updates. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: @@ -2964,123 +2964,9 @@ The following fields are available: - **WindowsSxsTempFolderSizeInMegabytes** The size of the WinSxS (Windows Side-by-Side) Temp folder, measured in Megabytes. -### Microsoft.Windows.Remediation.DiskCleanUnExpectedErrorEvent - -This event indicates that an unexpected error occurred during an update and provides information to help address the issue. - -The following fields are available: - -- **CV** The Correlation vector. -- **ErrorMessage** A description of any errors encountered while the plug-in was running. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **Hresult** The result of the event execution. -- **PackageVersion** The version number of the current remediation package. -- **SessionGuid** GUID associated with a given execution of sediment pack. - - -### Microsoft.Windows.Remediation.Error - -This event indicates a Sediment Pack error (update stack failure) has been detected and provides information to help address the issue. - -The following fields are available: - -- **HResult** The result of the event execution. -- **Message** A message containing information about the error that occurred. -- **PackageVersion** The version number of the current remediation package. - - -### Microsoft.Windows.Remediation.FallbackError - -This event indicates an error when Self Update results in a Fallback and provides information to help address the issue. - -The following fields are available: - -- **s0** Indicates the Fallback error level. See [Microsoft.Windows.Remediation.wilResult](#microsoftwindowsremediationwilresult). -- **wilResult** The result of the Windows Installer Logging. See [wilResult](#wilresult). - - -### Microsoft.Windows.Remediation.RemediationNotifyUserFixIssuesInvokeUIEvent - -This event occurs when the Notify User task executes and provides information about the cause of the notification. - -The following fields are available: - -- **CV** The Correlation vector. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **PackageVersion** The version number of the current remediation package. -- **RemediationNotifyUserFixIssuesCallResult** The result of calling the USO (Update Session Orchestrator) sequence steps. -- **RemediationNotifyUserFixIssuesUsoDownloadCalledHr** The error code from the USO (Update Session Orchestrator) download call. -- **RemediationNotifyUserFixIssuesUsoInitializedHr** The error code from the USO (Update Session Orchestrator) initialize call. -- **RemediationNotifyUserFixIssuesUsoProxyBlanketHr** The error code from the USO (Update Session Orchestrator) proxy blanket call. -- **RemediationNotifyUserFixIssuesUsoSetSessionHr** The error code from the USO (Update Session Orchestrator) session call. - - -### Microsoft.Windows.Remediation.RemediationShellFailedAutomaticAppUpdateModifyEventId - -This event provides the modification of the date on which an Automatic App Update scheduled task failed and provides information about the failure. - -The following fields are available: - -- **CV** The Correlation Vector. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **hResult** The result of the event execution. -- **PackageVersion** The version number of the current remediation package. - - -### Microsoft.Windows.Remediation.RemediationShellUnexpectedExceptionId - -This event identifies the remediation plug-in that returned an unexpected exception and provides information about the exception. - -The following fields are available: - -- **CV** The Correlation Vector. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **PackageVersion** The version number of the current remediation package. -- **RemediationShellUnexpectedExceptionId** The ID of the remediation plug-in that caused the exception. - - -### Microsoft.Windows.Remediation.RemediationUHEnableServiceFailed - -This event tracks the health of key update (Remediation) services and whether they are enabled. - -The following fields are available: - -- **CV** The Correlation Vector. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **hResult** The result of the event execution. -- **PackageVersion** The version number of the current remediation package. -- **serviceName** The name associated with the operation. - - -### Microsoft.Windows.Remediation.RemediationUpgradeSucceededDataEventId - -This event returns information about the upgrade upon success to help ensure Windows is up to date. - -The following fields are available: - -- **AppraiserPlugin** TRUE / FALSE depending on whether the Appraiser plug-in task fix was successful. -- **ClearAUOptionsPlugin** TRUE / FALSE depending on whether the AU (Auto Updater) Options registry keys were successfully deleted. -- **CV** The Correlation Vector. -- **DatetimeSyncPlugin** TRUE / FALSE depending on whether the DateTimeSync plug-in ran successfully. -- **DiskCleanupPlugin** TRUE / FALSE depending on whether the DiskCleanup plug-in ran successfully. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **NoisyHammerPlugin** TRUE / FALSE depending on whether the NoisyHammer plug-in ran successfully. -- **PackageVersion** The version number of the current remediation package. -- **RebootRequiredPlugin** TRUE / FALSE depending on whether the Reboot plug-in ran successfully. -- **RemediationNotifyUserFixIssuesPlugin** TRUE / FALSE depending on whether the User Fix Issues plug-in ran successfully -- **RemediationPostUpgradeDiskSpace** The amount of disk space available after the upgrade. -- **RemediationPostUpgradeHibernationSize** The size of the Hibernation file after the upgrade. -- **ServiceHealthPlugin** A list of services updated by the plug-in. -- **SIHHealthPlugin** TRUE / FALSE depending on whether the SIH Health plug-in ran successfully. -- **StackDataResetPlugin** TRUE / FALSE depending on whether the update stack completed successfully. -- **TaskHealthPlugin** A list of tasks updated by the plug-in. -- **UpdateApplicabilityFixerPlugin** TRUE / FALSE depending on whether the update applicability fixer plug-in completed successfully. -- **WindowsUpdateEndpointPlugin** TRUE / FALSE depending on whether the Windows Update Endpoint was successful. - - ### Microsoft.Windows.Remediation.Started -This event reports whether a plug-in started, to help ensure Windows is up to date. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: @@ -3091,31 +2977,6 @@ The following fields are available: - **Result** This is the HRESULT for detection or perform action phases of the plugin. -### Microsoft.Windows.Remediation.wilResult - -This event provides Self Update information to help keep Windows up to date. - -The following fields are available: - -- **callContext** A list of diagnostic activities containing this error. -- **currentContextId** An identifier for the newest diagnostic activity containing this error. -- **currentContextMessage** A message associated with the most recent diagnostic activity containing this error (if any). -- **currentContextName** Name of the most recent diagnostic activity containing this error. -- **failureCount** Number of failures seen within the binary where the error occurred. -- **failureId** The identifier assigned to this failure. -- **failureType** Indicates the type of failure observed (exception, returned, error, logged error, or fail fast). -- **fileName** The source code file name where the error occurred. -- **function** The name of the function where the error occurred. -- **hresult** The failure error code. -- **lineNumber** The Line Number within the source code file where the error occurred. -- **message** A message associated with the failure (if any). -- **module** The name of the binary module in which the error occurred. -- **originatingContextId** The identifier for the oldest diagnostic activity containing this error. -- **originatingContextMessage** A message associated with the oldest diagnostic activity containing this error (if any). -- **originatingContextName** The name of the oldest diagnostic activity containing this error. -- **threadId** The identifier of the thread the error occurred on. - - ## Sediment events ### Microsoft.Windows.Sediment.Info.AppraiserData @@ -3465,15 +3326,17 @@ The following fields are available: - **Time** The system time at which the event occurred. +## Sediment Launcher events + ### Microsoft.Windows.SedimentLauncher.Applicable -Indicates whether a given plugin is applicable. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. - **DetectedCondition** Boolean true if detect condition is true and perform action will be run. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **IsSelfUpdateEnabledInOneSettings** True if self update enabled in Settings. - **IsSelfUpdateNeeded** True if self update needed by device. - **PackageVersion** Current package version of Remediation. @@ -3483,97 +3346,43 @@ The following fields are available: ### Microsoft.Windows.SedimentLauncher.Completed -Indicates whether a given plugin has completed its work. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. - **FailedReasons** Concatenated list of failure reasons. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. - **SedLauncherExecutionResult** HRESULT for one execution of the Sediment Launcher. -### Microsoft.Windows.SedimentLauncher.Error - -This event indicates an error occurred during the execution of the plug-in. The information provided helps ensure future upgrade/update attempts are more successful. - -The following fields are available: - -- **HResult** The result for the Detection or Perform Action phases of the plug-in. -- **Message** A message containing information about the error that occurred (if any). -- **PackageVersion** The version number of the current remediation package. - - -### Microsoft.Windows.SedimentLauncher.FallbackError - -This event indicates that an error occurred during execution of the plug-in fallback. - -The following fields are available: - -- **s0** Error occurred during execution of the plugin fallback. See [Microsoft.Windows.SedimentLauncher.wilResult](#microsoftwindowssedimentlauncherwilresult). - - -### Microsoft.Windows.SedimentLauncher.Information - -This event provides general information returned from the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Information message returned from a plugin containing only information internal to the plugins execution. -- **PackageVersion** Current package version of Remediation. - - ### Microsoft.Windows.SedimentLauncher.Started -This event indicates that a given plug-in has started. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. -### Microsoft.Windows.SedimentLauncher.wilResult - -This event provides the result from the Windows internal library. - -The following fields are available: - -- **callContext** List of telemetry activities containing this error. -- **currentContextId** Identifier for the newest telemetry activity containing this error. -- **currentContextMessage** Custom message associated with the newest telemetry activity containing this error (if any). -- **currentContextName** Name of the newest telemetry activity containing this error. -- **failureCount** Number of failures seen within the binary where the error occurred. -- **failureId** Identifier assigned to this failure. -- **failureType** Indicates what type of failure was observed (exception, returned error, logged error or fail fast). -- **fileName** Source code file name where the error occurred. -- **function** Name of the function where the error occurred. -- **hresult** Failure error code. -- **lineNumber** Line number within the source code file where the error occurred. -- **message** Custom message associated with the failure (if any). -- **module** Name of the binary where the error occurred. -- **originatingContextId** Identifier for the oldest telemetry activity containing this error. -- **originatingContextMessage** Custom message associated with the oldest telemetry activity containing this error (if any). -- **originatingContextName** Name of the oldest telemetry activity containing this error. -- **threadId** Identifier of the thread the error occurred on. - +## Sediment Service events ### Microsoft.Windows.SedimentService.Applicable -This event indicates whether a given plug-in is applicable. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: - **CV** Correlation vector. - **DetectedCondition** Determine whether action needs to run based on device properties. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **IsSelfUpdateEnabledInOneSettings** Indicates if self update is enabled in One Settings. - **IsSelfUpdateNeeded** Indicates if self update is needed. - **PackageVersion** Current package version of Remediation. @@ -3583,13 +3392,13 @@ The following fields are available: ### Microsoft.Windows.SedimentService.Completed -This event indicates whether a given plug-in has completed its work. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: - **CV** Correlation vector. - **FailedReasons** List of reasons when the plugin action failed. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. @@ -3603,40 +3412,9 @@ The following fields are available: - **SedimentServiceTotalIterations** Number of 5 second iterations service will wait before running again. -### Microsoft.Windows.SedimentService.Error - -This event indicates whether an error condition occurred in the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Custom message associated with the failure (if any). -- **PackageVersion** Current package version of Remediation. - - -### Microsoft.Windows.SedimentService.FallbackError - -This event indicates whether an error occurred for a fallback in the plug-in. - -The following fields are available: - -- **s0** Event returned when an error occurs for a fallback in the plugin. See [Microsoft.Windows.SedimentService.wilResult](#microsoftwindowssedimentservicewilresult). - - -### Microsoft.Windows.SedimentService.Information - -This event provides general information returned from the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Custom message associated with the failure (if any). -- **PackageVersion** Current package version of Remediation. - - ### Microsoft.Windows.SedimentService.Started -This event indicates a specified plug-in has started. This information helps ensure Windows is up to date. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: @@ -3647,31 +3425,6 @@ The following fields are available: - **Result** This is the HRESULT for Detection or Perform Action phases of the plugin. -### Microsoft.Windows.SedimentService.wilResult - -This event provides the result from the Windows internal library. - -The following fields are available: - -- **callContext** List of telemetry activities containing this error. -- **currentContextId** Identifier for the newest telemetry activity containing this error. -- **currentContextMessage** Custom message associated with the newest telemetry activity containing this error (if any). -- **currentContextName** Name of the newest telemetry activity containing this error. -- **failureCount** Number of failures seen within the binary where the error occurred. -- **failureId** Identifier assigned to this failure. -- **failureType** Indicates what type of failure was observed (exception, returned error, logged error or fail fast). -- **fileName** Source code file name where the error occurred. -- **function** Name of the function where the error occurred. -- **hresult** Failure error code. -- **lineNumber** Line number within the source code file where the error occurred. -- **message** Custom message associated with the failure (if any). -- **module** Name of the binary where the error occurred. -- **originatingContextId** Identifier for the oldest telemetry activity containing this error. -- **originatingContextMessage** Custom message associated with the oldest telemetry activity containing this error (if any). -- **originatingContextName** Name of the oldest telemetry activity containing this error. -- **threadId** Identifier of the thread the error occurred on. - - ## Setup events ### SetupPlatformTel.SetupPlatformTelActivityEvent diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md index e6b7d5cbc6..7ed5621811 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md @@ -3004,7 +3004,7 @@ This event is triggered whenever the current app state is changed by: launch, sw ### Microsoft.Windows.Remediation.Applicable -This event indicates a remedial plug-in is applicable if/when such a plug-in is detected. This is used to ensure Windows is up to date. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: @@ -3022,7 +3022,7 @@ The following fields are available: - **EvalAndReportAppraiserBinariesFailed** Indicates the EvalAndReportAppraiserBinaries event failed. - **EvalAndReportAppraiserRegEntries** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. - **EvalAndReportAppraiserRegEntriesFailed** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. -- **GlobalEventCounter** Client side counter that indicates ordering of events sent by the remediation system. +- **GlobalEventCounter** Client side counter that indicates ordering of events. - **HResult** The HRESULT for detection or perform action phases of the plugin. - **IsAppraiserLatestResult** The HRESULT from the appraiser task. - **IsConfigurationCorrected** Indicates whether the configuration of SIH task was successfully corrected. @@ -3085,29 +3085,9 @@ The following fields are available: - **TimeServiceSyncType** Type of sync behavior for Date & Time service on device. -### Microsoft.Windows.Remediation.ChangePowerProfileDetection - -Indicates whether the remediation system can put in a request to defer a system-initiated sleep to enable installation of security or quality updates. - -The following fields are available: - -- **ActionName** A descriptive name for the plugin action -- **CurrentPowerPlanGUID** The ID of the current power plan configured on the device -- **CV** Correlation vector -- **GlobalEventCounter** Counter that indicates the ordering of events on the device -- **PackageVersion** Current package version of remediation service -- **RemediationBatteryPowerBatteryLevel** Integer between 0 and 100 indicating % battery power remaining (if not on battery, expect 0) -- **RemediationFUInProcess** Result that shows whether the device is currently installing a feature update -- **RemediationFURebootRequred** Indicates that a feature update reboot required was detected so the plugin will exit. -- **RemediationScanInProcess** Result that shows whether the device is currently scanning for updates -- **RemediationTargetMachine** Result that shows whether this device is a candidate for remediation(s) that will fix update issues -- **SetupMutexAvailable** Result that shows whether setup mutex is available or not -- **SysPowerStatusAC** Result that shows whether system is on AC power or not - - ### Microsoft.Windows.Remediation.Completed -This event enables completion tracking of a process that remediates issues preventing security and quality updates. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: @@ -3129,7 +3109,7 @@ The following fields are available: - **DiskMbFreeAfterCleanup** The amount of free hard disk space after cleanup, measured in Megabytes. - **DiskMbFreeBeforeCleanup** The amount of free hard disk space before cleanup, measured in Megabytes. - **ForcedAppraiserTaskTriggered** TRUE if Appraiser task ran from the plug-in. -- **GlobalEventCounter** Client-side counter that indicates ordering of events sent by the active user. +- **GlobalEventCounter** Client-side counter that indicates ordering of events. - **HandlerCleanupFreeDiskInMegabytes** The amount of hard disk space cleaned by the storage sense handlers, measured in Megabytes. - **hasRolledBack** Indicates whether the client machine has rolled back. - **hasUninstalled** Indicates whether the client machine has uninstalled a later version of the OS. @@ -3222,30 +3202,14 @@ The following fields are available: - **windowsUpgradeRecoveredFromRs4** Event to report the value of the Windows Upgrade Recovered key. -### Microsoft.Windows.Remediation.RemediationShellMainExeEventId - -Enables tracking of completion of process that remediates issues preventing security and quality updates. - -The following fields are available: - -- **CV** Client side counter which indicates ordering of events sent by the remediation system. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by the remediation system. -- **PackageVersion** Current package version of Remediation. -- **RemediationShellCanAcquireSedimentMutex** True if the remediation was able to acquire the sediment mutex. False if it is already running. -- **RemediationShellExecuteShellResult** Indicates if the remediation system completed without errors. -- **RemediationShellFoundDriverDll** Result whether the remediation system found its component files to run properly. -- **RemediationShellLoadedShellDriver** Result whether the remediation system loaded its component files to run properly. -- **RemediationShellLoadedShellFunction** Result whether the remediation system loaded the functions from its component files to run properly. - - ### Microsoft.Windows.Remediation.Started -This event reports whether a plug-in started, to help ensure Windows is up to date. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. @@ -3315,15 +3279,17 @@ The following fields are available: - **Time** System timestamp the event was fired +## Sediment Launcher events + ### Microsoft.Windows.SedimentLauncher.Applicable -Indicates whether a given plugin is applicable. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. - **DetectedCondition** Boolean true if detect condition is true and perform action will be run. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **IsSelfUpdateEnabledInOneSettings** True if self update enabled in Settings. - **IsSelfUpdateNeeded** True if self update needed by device. - **PackageVersion** Current package version of Remediation. @@ -3333,98 +3299,43 @@ The following fields are available: ### Microsoft.Windows.SedimentLauncher.Completed -Indicates whether a given plugin has completed its work. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. - **FailedReasons** Concatenated list of failure reasons. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. - **SedLauncherExecutionResult** HRESULT for one execution of the Sediment Launcher. -### Microsoft.Windows.SedimentLauncher.Error - -Error occurred during execution of the plugin. - -The following fields are available: - -- **HResult** The result for the Detection or Perform Action phases of the plug-in. -- **Message** A message containing information about the error that occurred (if any). -- **PackageVersion** The version number of the current remediation package. - - -### Microsoft.Windows.SedimentLauncher.FallbackError - -This event indicates that an error occurred during execution of the plug-in fallback. - -The following fields are available: - -- **s0** Error occurred during execution of the plugin fallback. See [Microsoft.Windows.SedimentLauncher.wilResult](#microsoftwindowssedimentlauncherwilresult). -- **wilResult** Result from executing wil based function. See [wilResult](#wilresult). - - -### Microsoft.Windows.SedimentLauncher.Information - -This event provides general information returned from the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Information message returned from a plugin containing only information internal to the plugins execution. -- **PackageVersion** Current package version of Remediation. - - ### Microsoft.Windows.SedimentLauncher.Started -This event indicates that a given plug-in has started. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep Windows up to date. The following fields are available: - **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. -### Microsoft.Windows.SedimentLauncher.wilResult - -This event provides the result from the Windows internal library. - -The following fields are available: - -- **callContext** List of telemetry activities containing this error. -- **currentContextId** Identifier for the newest telemetry activity containing this error. -- **currentContextMessage** Custom message associated with the newest telemetry activity containing this error (if any). -- **currentContextName** Name of the newest telemetry activity containing this error. -- **failureCount** Number of failures seen within the binary where the error occurred. -- **failureId** Identifier assigned to this failure. -- **failureType** Indicates what type of failure was observed (exception, returned error, logged error or fail fast). -- **fileName** Source code file name where the error occurred. -- **function** Name of the function where the error occurred. -- **hresult** Failure error code. -- **lineNumber** Line number within the source code file where the error occurred. -- **message** Custom message associated with the failure (if any). -- **module** Name of the binary where the error occurred. -- **originatingContextId** Identifier for the oldest telemetry activity containing this error. -- **originatingContextMessage** Custom message associated with the oldest telemetry activity containing this error (if any). -- **originatingContextName** Name of the oldest telemetry activity containing this error. -- **threadId** Identifier of the thread the error occurred on. - +## Sediment Service events ### Microsoft.Windows.SedimentService.Applicable -This event indicates whether a given plug-in is applicable. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: - **CV** Correlation vector. - **DetectedCondition** Determine whether action needs to run based on device properties. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **IsSelfUpdateEnabledInOneSettings** Indicates if self update is enabled in One Settings. - **IsSelfUpdateNeeded** Indicates if self update is needed. - **PackageVersion** Current package version of Remediation. @@ -3434,13 +3345,13 @@ The following fields are available: ### Microsoft.Windows.SedimentService.Completed -This event indicates whether a given plug-in has completed its work. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: - **CV** Correlation vector. - **FailedReasons** List of reasons when the plugin action failed. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. @@ -3454,41 +3365,9 @@ The following fields are available: - **SedimentServiceTotalIterations** Number of 5 second iterations service will wait before running again. -### Microsoft.Windows.SedimentService.Error - -This event indicates whether an error condition occurred in the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Custom message associated with the failure (if any). -- **PackageVersion** Current package version of Remediation. - - -### Microsoft.Windows.SedimentService.FallbackError - -This event indicates whether an error occurred for a fallback in the plug-in. - -The following fields are available: - -- **s0** Event returned when an error occurs for a fallback in the plugin. See [Microsoft.Windows.SedimentService.wilResult](#microsoftwindowssedimentservicewilresult). -- **wilResult** Result for wil based function. See [wilResult](#wilresult). - - -### Microsoft.Windows.SedimentService.Information - -This event provides general information returned from the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Custom message associated with the failure (if any). -- **PackageVersion** Current package version of Remediation. - - ### Microsoft.Windows.SedimentService.Started -This event indicates a specified plug-in has started. This information helps ensure Windows is up to date. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: @@ -3499,31 +3378,6 @@ The following fields are available: - **Result** This is the HRESULT for Detection or Perform Action phases of the plugin. -### Microsoft.Windows.SedimentService.wilResult - -This event provides the result from the Windows internal library. - -The following fields are available: - -- **callContext** List of telemetry activities containing this error. -- **currentContextId** Identifier for the newest telemetry activity containing this error. -- **currentContextMessage** Custom message associated with the newest telemetry activity containing this error (if any). -- **currentContextName** Name of the newest telemetry activity containing this error. -- **failureCount** Number of failures seen within the binary where the error occurred. -- **failureId** Identifier assigned to this failure. -- **failureType** Indicates what type of failure was observed (exception, returned error, logged error or fail fast). -- **fileName** Source code file name where the error occurred. -- **function** Name of the function where the error occurred. -- **hresult** Failure error code. -- **lineNumber** Line number within the source code file where the error occurred. -- **message** Custom message associated with the failure (if any). -- **module** Name of the binary where the error occurred. -- **originatingContextId** Identifier for the oldest telemetry activity containing this error. -- **originatingContextMessage** Custom message associated with the oldest telemetry activity containing this error (if any). -- **originatingContextName** Name of the oldest telemetry activity containing this error. -- **threadId** Identifier of the thread the error occurred on. - - ## Setup events ### SetupPlatformTel.SetupPlatformTelActivityEvent diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md index 945ae68322..1a5a1aa9c7 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md @@ -4208,6 +4208,222 @@ The following fields are available: - **userRegionCode** The current user's region setting +## Remediation events + +### Microsoft.Windows.Remediation.Applicable + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. + +The following fields are available: + +- **ActionName** The name of the action to be taken by the plug-in. +- **AppraiserBinariesValidResult** Indicates whether plug-in was appraised as valid. +- **AppraiserDetectCondition** Indicates whether the plug-in passed the appraiser's check. +- **AppraiserRegistryValidResult** Indicates whether the registry entry checks out as valid. +- **AppraiserTaskDisabled** Indicates the appraiser task is disabled. +- **AppraiserTaskValidFailed** Indicates the Appraiser task did not function and requires intervention. +- **CV** Correlation vector +- **DateTimeDifference** The difference between local and reference clock times. +- **DateTimeSyncEnabled** Indicates whether the datetime sync plug-in is enabled. +- **DaysSinceLastSIH** The number of days since the most recent SIH executed. +- **DaysToNextSIH** The number of days until the next scheduled SIH execution. +- **DetectedCondition** Indicates whether detect condition is true and the perform action will be run. +- **EvalAndReportAppraiserBinariesFailed** Indicates the EvalAndReportAppraiserBinaries event failed. +- **EvalAndReportAppraiserRegEntries** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. +- **EvalAndReportAppraiserRegEntriesFailed** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. +- **GlobalEventCounter** Client side counter that indicates ordering of events. +- **HResult** The HRESULT for detection or perform action phases of the plugin. +- **IsAppraiserLatestResult** The HRESULT from the appraiser task. +- **IsConfigurationCorrected** Indicates whether the configuration of SIH task was successfully corrected. +- **LastHresult** The HRESULT for detection or perform action phases of the plugin. +- **LastRun** The date of the most recent SIH run. +- **NextRun** Date of the next scheduled SIH run. +- **PackageVersion** The version of the current remediation package. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Reload** True if SIH reload is required. +- **RemediationNoisyHammerAcLineStatus** Event that indicates the AC Line Status of the machine. +- **RemediationNoisyHammerAutoStartCount** The number of times hammer auto-started. +- **RemediationNoisyHammerCalendarTaskEnabled** Event that indicates Update Assistant Calendar Task is enabled. +- **RemediationNoisyHammerCalendarTaskExists** Event that indicates an Update Assistant Calendar Task exists. +- **RemediationNoisyHammerCalendarTaskTriggerEnabledCount** Event that indicates calendar triggers are enabled in the task. +- **RemediationNoisyHammerDaysSinceLastTaskRunTime** The number of days since the most recent hammer task ran. +- **RemediationNoisyHammerGetCurrentSize** Size in MB of the $GetCurrent folder. +- **RemediationNoisyHammerIsInstalled** TRUE if the noisy hammer is installed. +- **RemediationNoisyHammerLastTaskRunResult** The result of the last hammer task run. +- **RemediationNoisyHammerMeteredNetwork** TRUE if the machine is on a metered network. +- **RemediationNoisyHammerTaskEnabled** Indicates whether the Update Assistant Task (Noisy Hammer) is enabled. +- **RemediationNoisyHammerTaskExists** Indicates whether the Update Assistant Task (Noisy Hammer) exists. +- **RemediationNoisyHammerTaskTriggerEnabledCount** Indicates whether counting is enabled for the Update Assistant (Noisy Hammer) task trigger. +- **RemediationNoisyHammerUAExitCode** The exit code of the Update Assistant (Noisy Hammer) task. +- **RemediationNoisyHammerUAExitState** The code for the exit state of the Update Assistant (Noisy Hammer) task. +- **RemediationNoisyHammerUserLoggedIn** TRUE if there is a user logged in. +- **RemediationNoisyHammerUserLoggedInAdmin** TRUE if there is the user currently logged in is an Admin. +- **RemediationShellDeviceManaged** TRUE if the device is WSUS managed or Windows Updated disabled. +- **RemediationShellDeviceNewOS** TRUE if the device has a recently installed OS. +- **RemediationShellDeviceSccm** TRUE if the device is managed by SCCM (Microsoft System Center Configuration Manager). +- **RemediationShellDeviceZeroExhaust** TRUE if the device has opted out of Windows Updates completely. +- **RemediationTargetMachine** Indicates whether the device is a target of the specified fix. +- **RemediationTaskHealthAutochkProxy** True/False based on the health of the AutochkProxy task. +- **RemediationTaskHealthChkdskProactiveScan** True/False based on the health of the Check Disk task. +- **RemediationTaskHealthDiskCleanup_SilentCleanup** True/False based on the health of the Disk Cleanup task. +- **RemediationTaskHealthMaintenance_WinSAT** True/False based on the health of the Health Maintenance task. +- **RemediationTaskHealthServicing_ComponentCleanupTask** True/False based on the health of the Health Servicing Component task. +- **RemediationTaskHealthUSO_ScheduleScanTask** True/False based on the health of the USO (Update Session Orchestrator) Schedule task. +- **RemediationTaskHealthWindowsUpdate_ScheduledStartTask** True/False based on the health of the Windows Update Scheduled Start task. +- **RemediationTaskHealthWindowsUpdate_SihbootTask** True/False based on the health of the Sihboot task. +- **RemediationUHServiceBitsServiceEnabled** Indicates whether BITS service is enabled. +- **RemediationUHServiceDeviceInstallEnabled** Indicates whether Device Install service is enabled. +- **RemediationUHServiceDoSvcServiceEnabled** Indicates whether DO service is enabled. +- **RemediationUHServiceDsmsvcEnabled** Indicates whether DSMSVC service is enabled. +- **RemediationUHServiceLicensemanagerEnabled** Indicates whether License Manager service is enabled. +- **RemediationUHServiceMpssvcEnabled** Indicates whether MPSSVC service is enabled. +- **RemediationUHServiceTokenBrokerEnabled** Indicates whether Token Broker service is enabled. +- **RemediationUHServiceTrustedInstallerServiceEnabled** Indicates whether Trusted Installer service is enabled. +- **RemediationUHServiceUsoServiceEnabled** Indicates whether USO (Update Session Orchestrator) service is enabled. +- **RemediationUHServicew32timeServiceEnabled** Indicates whether W32 Time service is enabled. +- **RemediationUHServiceWecsvcEnabled** Indicates whether WECSVC service is enabled. +- **RemediationUHServiceWinmgmtEnabled** Indicates whether WMI service is enabled. +- **RemediationUHServiceWpnServiceEnabled** Indicates whether WPN service is enabled. +- **RemediationUHServiceWuauservServiceEnabled** Indicates whether WUAUSERV service is enabled. +- **Result** This is the HRESULT for Detection or Perform Action phases of the plugin. +- **RunAppraiserFailed** Indicates RunAppraiser failed to run correctly. +- **RunTask** TRUE if SIH task should be run by the plug-in. +- **TimeServiceNTPServer** The URL for the NTP time server used by device. +- **TimeServiceStartType** The startup type for the NTP time service. +- **TimeServiceSyncDomainJoined** True if device domain joined and hence uses DC for clock. +- **TimeServiceSyncType** Type of sync behavior for Date & Time service on device. + + +### Microsoft.Windows.Remediation.Completed + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. + +The following fields are available: + +- **ActionName** Name of the action to be completed by the plug-in. +- **AppraiserTaskCreationFailed** TRUE if the appraiser task creation failed to complete successfully. +- **AppraiserTaskDeleteFailed** TRUE if deletion of appraiser task failed to complete successfully. +- **AppraiserTaskExistFailed** TRUE if detection of the appraiser task failed to complete successfully. +- **AppraiserTaskLoadXmlFailed** TRUE if the Appraiser XML Loader failed to complete successfully. +- **AppraiserTaskMissing** TRUE if the Appraiser task is missing. +- **AppraiserTaskTimeTriggerUpdateFailedId** TRUE if the Appraiser Task Time Trigger failed to update successfully. +- **AppraiserTaskValidateTaskXmlFailed** TRUE if the Appraiser Task XML failed to complete successfully. +- **branchReadinessLevel** Branch readiness level policy. +- **cloudControlState** Value indicating whether the shell is enabled on the cloud control settings. +- **CrossedDiskSpaceThreshold** Indicates if cleanup resulted in hard drive usage threshold required for feature update to be exceeded. +- **CV** The Correlation Vector. +- **DateTimeDifference** The difference between the local and reference clocks. +- **DaysSinceOsInstallation** The number of days since the installation of the Operating System. +- **DiskMbCleaned** The amount of space cleaned on the hard disk, measured in Megabytes. +- **DiskMbFreeAfterCleanup** The amount of free hard disk space after cleanup, measured in Megabytes. +- **DiskMbFreeBeforeCleanup** The amount of free hard disk space before cleanup, measured in Megabytes. +- **ForcedAppraiserTaskTriggered** TRUE if Appraiser task ran from the plug-in. +- **GlobalEventCounter** Client-side counter that indicates ordering of events. +- **HandlerCleanupFreeDiskInMegabytes** The amount of hard disk space cleaned by the storage sense handlers, measured in Megabytes. +- **hasRolledBack** Indicates whether the client machine has rolled back. +- **hasUninstalled** Indicates whether the client machine has uninstalled a later version of the OS. +- **hResult** The result of the event execution. +- **HResult** The result of the event execution. +- **installDate** The value of installDate registry key. Indicates the install date. +- **isNetworkMetered** Indicates whether the client machine has uninstalled a later version of the OS. +- **LatestState** The final state of the plug-in component. +- **MicrosoftCompatibilityAppraiser** The name of the component targeted by the Appraiser plug-in. +- **PackageVersion** The package version for the current Remediation. +- **PageFileCount** The number of Windows Page files. +- **PageFileCurrentSize** The size of the Windows Page file, measured in Megabytes. +- **PageFileLocation** The storage location (directory path) of the Windows Page file. +- **PageFilePeakSize** The maximum amount of hard disk space used by the Windows Page file, measured in Megabytes. +- **PluginName** The name of the plug-in specified for each generic plug-in event. +- **RanCleanup** TRUE if the plug-in ran disk cleanup. +- **RemediationBatteryPowerBatteryLevel** Indicates the battery level at which it is acceptable to continue operation. +- **RemediationBatteryPowerExitDueToLowBattery** True when we exit due to low battery power. +- **RemediationBatteryPowerOnBattery** True if we allow execution on battery. +- **RemediationConfigurationTroubleshooterExecuted** True/False based on whether the Remediation Configuration Troubleshooter executed successfully. +- **RemediationConfigurationTroubleshooterIpconfigFix** TRUE if IPConfig Fix completed successfully. +- **RemediationConfigurationTroubleshooterNetShFix** TRUE if network card cache reset ran successfully. +- **RemediationDiskCleanSizeBtWindowsFolderInMegabytes** The size of the Windows BT folder (used to store Windows upgrade files), measured in Megabytes. +- **RemediationDiskCleanupBTFolderEsdSizeInMB** The size of the Windows BT folder (used to store Windows upgrade files) ESD (Electronic Software Delivery), measured in Megabytes. +- **RemediationDiskCleanupGetCurrentEsdSizeInMB** The size of any existing ESD (Electronic Software Delivery) folder, measured in Megabytes. +- **RemediationDiskCleanupSearchFileSizeInMegabytes** The size of the Cleanup Search index file, measured in Megabytes. +- **RemediationDiskCleanupUpdateAssistantSizeInMB** The size of the Update Assistant folder, measured in Megabytes. +- **RemediationDoorstopChangeSucceeded** TRUE if Doorstop registry key was successfully modified. +- **RemediationDoorstopExists** TRUE if there is a One Settings Doorstop value. +- **RemediationDoorstopRegkeyError** TRUE if an error occurred accessing the Doorstop registry key. +- **RemediationDRFKeyDeleteSucceeded** TRUE if the RecoveredFrom (Doorstop) registry key was successfully deleted. +- **RemediationDUABuildNumber** The build number of the DUA. +- **RemediationDUAKeyDeleteSucceeded** TRUE if the UninstallActive registry key was successfully deleted. +- **RemediationDuplicateTokenSucceeded** TRUE if the user token was successfully duplicated. +- **remediationExecution** Remediation shell is in "applying remediation" state. +- **RemediationHibernationMigrated** TRUE if hibernation was migrated. +- **RemediationHibernationMigrationSucceeded** TRUE if hibernation migration succeeded. +- **RemediationImpersonateUserSucceeded** TRUE if the user was successfully impersonated. +- **RemediationNoisyHammerTaskKickOffIsSuccess** TRUE if the NoisyHammer task started successfully. +- **RemediationQueryTokenSucceeded** TRUE if the user token was successfully queried. +- **RemediationRanHibernation** TRUE if the system entered Hibernation. +- **RemediationRevertToSystemSucceeded** TRUE if reversion to the system context succeeded. +- **RemediationShellHasUpgraded** TRUE if the device upgraded. +- **RemediationShellMinimumTimeBetweenShellRuns** Indicates the time between shell runs exceeded the minimum required to execute plugins. +- **RemediationShellRunFromService** TRUE if the shell driver was run from the service. +- **RemediationShellSessionIdentifier** Unique identifier tracking a shell session. +- **RemediationShellSessionTimeInSeconds** Indicates the time the shell session took in seconds. +- **RemediationShellTaskDeleted** Indicates that the shell task has been deleted so no additional sediment pack runs occur for this installation. +- **RemediationUpdateServiceHealthRemediationResult** The result of the Update Service Health plug-in. +- **RemediationUpdateTaskHealthRemediationResult** The result of the Update Task Health plug-in. +- **RemediationUpdateTaskHealthTaskList** A list of tasks fixed by the Update Task Health plug-in. +- **RemediationWindowsLogSpaceFound** The size of the Windows log files found, measured in Megabytes. +- **RemediationWindowsLogSpaceFreed** The amount of disk space freed by deleting the Windows log files, measured in Megabytes. +- **RemediationWindowsSecondaryDriveFreeSpace** The amount of free space on the secondary drive, measured in Megabytes. +- **RemediationWindowsSecondaryDriveLetter** The letter designation of the first secondary drive with a total capacity of 10GB or more. +- **RemediationWindowsSecondaryDriveTotalSpace** The total storage capacity of the secondary drive, measured in Megabytes. +- **RemediationWindowsTotalSystemDiskSize** The total storage capacity of the System Disk Drive, measured in Megabytes. +- **Result** The HRESULT for Detection or Perform Action phases of the plug-in. +- **RunResult** The HRESULT for Detection or Perform Action phases of the plug-in. +- **ServiceHealthPlugin** The nae of the Service Health plug-in. +- **StartComponentCleanupTask** TRUE if the Component Cleanup task started successfully. +- **systemDriveFreeDiskSpace** Indicates the free disk space on system drive in MBs. +- **systemUptimeInHours** Indicates the amount of time the system in hours has been on since the last boot. +- **TotalSizeofOrphanedInstallerFilesInMegabytes** The size of any orphaned Windows Installer files, measured in Megabytes. +- **TotalSizeofStoreCacheAfterCleanupInMegabytes** The size of the Windows Store cache after cleanup, measured in Megabytes. +- **TotalSizeofStoreCacheBeforeCleanupInMegabytes** The size of the Windows Store cache (prior to cleanup), measured in Megabytes. +- **uninstallActive** TRUE if previous uninstall has occurred for current OS +- **usoScanDaysSinceLastScan** The number of days since the last USO (Update Session Orchestrator) scan. +- **usoScanInProgress** TRUE if a USO (Update Session Orchestrator) scan is in progress, to prevent multiple simultaneous scans. +- **usoScanIsAllowAutoUpdateKeyPresent** TRUE if the AllowAutoUpdate registry key is set. +- **usoScanIsAllowAutoUpdateProviderSetKeyPresent** TRUE if AllowAutoUpdateProviderSet registry key is set. +- **usoScanIsAuOptionsPresent** TRUE if Auto Update Options registry key is set. +- **usoScanIsFeatureUpdateInProgress** TRUE if a USO (Update Session Orchestrator) scan is in progress, to prevent multiple simultaneous scans. +- **usoScanIsNetworkMetered** TRUE if the device is currently connected to a metered network. +- **usoScanIsNoAutoUpdateKeyPresent** TRUE if no Auto Update registry key is set/present. +- **usoScanIsUserLoggedOn** TRUE if the user is logged on. +- **usoScanPastThreshold** TRUE if the most recent USO (Update Session Orchestrator) scan is past the threshold (late). +- **usoScanType** The type of USO (Update Session Orchestrator) scan (Interactive or Background). +- **windows10UpgraderBlockWuUpdates** Event to report the value of Windows 10 Upgrader BlockWuUpdates Key. +- **windowsEditionId** Event to report the value of Windows Edition ID. +- **WindowsHyberFilSysSizeInMegabytes** The size of the Windows Hibernation file, measured in Megabytes. +- **WindowsInstallerFolderSizeInMegabytes** The size of the Windows Installer folder, measured in Megabytes. +- **WindowsOldFolderSizeInMegabytes** The size of the Windows.OLD folder, measured in Megabytes. +- **WindowsOldSpaceCleanedInMB** The amount of disk space freed by removing the Windows.OLD folder, measured in Megabytes. +- **WindowsPageFileSysSizeInMegabytes** The size of the Windows Page file, measured in Megabytes. +- **WindowsSoftwareDistributionFolderSizeInMegabytes** The size of the SoftwareDistribution folder, measured in Megabytes. +- **WindowsSwapFileSysSizeInMegabytes** The size of the Windows Swap file, measured in Megabytes. +- **WindowsSxsFolderSizeInMegabytes** The size of the WinSxS (Windows Side-by-Side) folder, measured in Megabytes. +- **WindowsSxsTempFolderSizeInMegabytes** The size of the WinSxS (Windows Side-by-Side) Temp folder, measured in Megabytes. +- **windowsUpgradeRecoveredFromRs4** Event to report the value of the Windows Upgrade Recovered key. + + +### Microsoft.Windows.Remediation.Started + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + ## Sediment events ### Microsoft.Windows.Sediment.Info.DetailedState @@ -4272,6 +4488,88 @@ The following fields are available: - **Time** System timestamp when the event was started. +## Sediment Service events + +### Microsoft.Windows.SedimentService.Applicable + +This event sends simple device connectivity and configuration data about a service installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentService.Completed + +This event sends simple device connectivity and configuration data about a service installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentService.Started + +This event sends simple device connectivity and configuration data about a service installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +## Sediment Launcher events + +### Microsoft.Windows.SedimentLauncher.Applicable + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentLauncher.Completed + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentLauncher.Started + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + ## Setup events ### SetupPlatformTel.SetupPlatformTelActivityEvent From e5308a70cf1f24846d5d2100682168f870f8afdd Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Fri, 9 Nov 2018 12:58:48 -0800 Subject: [PATCH 30/34] update azure image and steps --- ...dows-defender-advanced-threat-protection.md | 7 ++++--- .../images/atp-azure-assign-role.png | Bin 0 -> 105224 bytes 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/images/atp-azure-assign-role.png diff --git a/windows/security/threat-protection/windows-defender-atp/basic-permissions-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/basic-permissions-windows-defender-advanced-threat-protection.md index 11611c7741..f5f0d320e5 100644 --- a/windows/security/threat-protection/windows-defender-atp/basic-permissions-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/basic-permissions-windows-defender-advanced-threat-protection.md @@ -11,7 +11,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 09/13/2018 +ms.date: 11/09/2018 --- # Use basic permissions to access the portal @@ -79,9 +79,10 @@ For more information see, [Manage Azure AD group and role membership](https://te 6. Select **Manage** > **Directory role**. -7. Under **Directory role**, select **Limited administrator**, then **Security Reader** or **Security Administrator**. +7. Select **Add role** and choose the role you'd like to assign, then click **Select**. - ![Image of Microsoft Azure portal](images/atp-azure-ui-user-access.png) + + ![Image of Microsoft Azure portal](images/atp-azure-assign-role.png) ## Related topic - [Manage portal access using RBAC](rbac-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/images/atp-azure-assign-role.png b/windows/security/threat-protection/windows-defender-atp/images/atp-azure-assign-role.png new file mode 100644 index 0000000000000000000000000000000000000000..93e294ec2ba894b9798f36df8b06138d8c6c2195 GIT binary patch literal 105224 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

!WWVHdF7}x|nbuE!e6S)~hle=(;1Xl& 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Ξ; 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 literal 0 HcmV?d00001 From 0a4a0f8a78b1cca36767a9580a854704bbb3599c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=20Halfin=20=F0=9F=93=AC=F0=9F=94=A8?= Date: Fri, 9 Nov 2018 21:44:11 +0000 Subject: [PATCH 31/34] Merged PR 12735: Update to ITDM --- windows/privacy/TOC.md | 2 +- windows/privacy/gdpr-it-guidance.md | 81 +++++++++++++++++++++++------ 2 files changed, 66 insertions(+), 17 deletions(-) diff --git a/windows/privacy/TOC.md b/windows/privacy/TOC.md index a229e2df1a..6148d1201c 100644 --- a/windows/privacy/TOC.md +++ b/windows/privacy/TOC.md @@ -1,6 +1,6 @@ # [Privacy](index.yml) ## [Beginning your General Data Protection Regulation (GDPR) journey for Windows 10](gdpr-win10-whitepaper.md) -## [Windows 10 and the GDPR for IT Decision Makers](gdpr-it-guidance.md) +## [Windows and the GDPR: Information for IT Administrators and Decision Makers](gdpr-it-guidance.md) ## [Windows 10 personal data services configuration](windows-personal-data-services-configuration.md) ## [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) ## [Diagnostic Data Viewer Overview](diagnostic-data-viewer-overview.md) diff --git a/windows/privacy/gdpr-it-guidance.md b/windows/privacy/gdpr-it-guidance.md index dd46e67249..d7673c5f3d 100644 --- a/windows/privacy/gdpr-it-guidance.md +++ b/windows/privacy/gdpr-it-guidance.md @@ -1,5 +1,5 @@ --- -title: Windows 10 and the GDPR for IT Decision Makers +title: Windows and the GDPR-Information for IT Administrators and Decision Makers description: Use this topic to understand the relationship between users in your organization and Microsoft in the context of the GDPR (General Data Protection Regulation). keywords: privacy, GDPR, windows, IT ms.prod: w10 @@ -11,12 +11,17 @@ author: danihalfin ms.author: daniha ms.date: 05/11/2018 --- -# Windows 10 and the GDPR for IT Decision Makers +# Windows and the GDPR: Information for IT Administrators and Decision Makers Applies to: +- Windows 10, version 1809 - Windows 10, version 1803 - Windows 10, version 1709 - Windows 10, version 1703 +- Windows 10 Team Edition, version 1703 for Surface Hub +- Windows Server 2019 +- Windows Server 2016 +- Windows Analytics This topic provides IT Decision Makers with a basic understanding of the relationship between users in an organization and Microsoft in the context of the GDPR (General Data Protection Regulation). You will also learn what role an IT organization plays for that relationship. @@ -35,7 +40,7 @@ Here are some GDPR fundamentals: * The European law establishes strict global data privacy requirements governing how organizations manage and protect personal data while respecting individual choice – no matter where data is sent, processed, or stored. * A request by an individual to an organization to take an action on their personal data is referred to here as a *data subject request*, or *DSR*. -Microsoft believes data privacy is a fundamental right, and that the GDPR is an important step forward for clarifying and enabling individual privacy rights. We also recognize that the GDPR requires significant changes by organizations all over the world with regard to the discovery, management, protection, and reporting of personal data that is collected, processed, and stored within an organization. +Microsoft believes data privacy is a fundamental right, and that the GDPR is an important step forward for clarifying and enabling individual privacy rights. We also recognize that the GDPR required significant changes by organizations all over the world with regard to the discovery, management, protection, and reporting of personal data that is collected, processed, and stored within an organization. ### What is personal data under the GDPR? @@ -87,7 +92,7 @@ It is important to differentiate between two distinct types of data Windows serv A user action, such as performing a Skype call, usually triggers the collection and transmission of Windows *functional data*. Some Windows components and applications connecting to Microsoft services also exchange Windows functional data to provide user functionality. Some other examples of Windows functional data: -* The Weather app which uses the device’s location to retrieve local weather or community news. +* The Weather app which can use the device’s location to retrieve local weather or community news. * Wallpaper and desktop settings that are synchronized across multiple devices. For more info on how IT Professionals can manage Windows functional data sent from an organization to Microsoft, see [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md). @@ -100,10 +105,10 @@ Some examples of diagnostic data include: * The type of hardware being used, information about installed apps and usage details, and reliability data on drivers running on the device. * For users who have turned on “Tailored experiences”, it can be used to offer personalized tips, ads, and recommendations to enhance Microsoft products and services for the needs of the user. -To find more about what information is collected, how it is handled, and the available Windows diagnostic data levels, see [Understanding Windows diagnostic data](configure-windows-diagnostic-data-in-your-organization.md#understanding-windows-diagnostic-data) and [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). +Diagnostic data is categorized into the levels "Security", "Basic", "Enhanced", and "Full". For a detailed discussion about these diagnostic data levels please see [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). To find more about what information is collected and how it is handled, see [Understanding Windows diagnostic data](configure-windows-diagnostic-data-in-your-organization.md#understanding-windows-diagnostic-data). >[!IMPORTANT] ->Other Microsoft services as well as 3rd party applications and drivers running on Windows devices may implement their own functionality, independently from Windows, to transport their diagnostic data to the respective publisher. Please contact them for further guidance on how to control the diagnostic data collection level and transmission of these publishers. +>Other Microsoft services as well as 3rd party applications and drivers running on Windows devices may implement their own functionality, independently from Windows, to transport their diagnostic data. Please contact the publisher for further guidance on how to control the diagnostic data collection level and transmission of these applications and services. ### Windows services where Microsoft is the processor under the GDPR @@ -123,7 +128,7 @@ As a result, in terms of the GDPR, the organization that has subscribed to Windo >The IT organization must explicitly enable Windows Analytics for a device after the organization subscribes. >[!IMPORTANT] ->Windows Analytics does not collect Windows Diagnostic data by itself. Instead, Windows Analytics only uses a subset of Windows Diagnostic data that is collected by Windows for a particular device. The Windows Diagnostic data collection is controlled by the IT department of an organization or the user of a device. +>Windows Analytics does not collect Windows Diagnostic data by itself. Instead, Windows Analytics only uses a subset of Windows Diagnostic data that is collected by Windows for an enrolled device. The Windows Diagnostic data collection is controlled by the IT department of an organization or the user of a device. #### Windows Defender ATP @@ -140,27 +145,43 @@ The following table lists in what GDPR mode – controller or processor – Wind | Service | Microsoft GDPR mode of operation | | --- | --- | -| Windows Functional data | Controller | +| Windows Functional data | Controller or Processor* | | Windows Diagnostic data | Controller | | Windows Analytics | Processor | | Windows Defender Advanced Threat Detection (ATP) | Processor | *Table 1: Windows 10 GDPR modes of operations for different Windows 10 services* -## Recommended diagnostic data level settings +*/*Depending on which application/feature this is referring to.* -Windows diagnostic data collection level can be set by a user in Windows (*Start > Settings > Privacy > Diagnostics & feedback*) or by the IT department of an organization, using Group Policy or Mobile Device Management (MDM) techniques. +## Windows diagnostic data and Windows 10 -* For Windows 10, version 1803, Microsoft recommends setting the Windows diagnostic level to “Enhanced”. This enables organizations to get the full functionality of [Windows Analytics](#windows-analytics). Those organizations who wish to share the smallest set of events for Windows Analytics can use the “Limit Enhanced diagnostic data to the minimum required by Windows Analytics” filtering mechanism that Microsoft introduced in Windows 10, version 1709. When enabled, this feature limits the operating system diagnostic data events included in the Enhanced level to the smallest set of data required by Windows Analytics. + +### Recommended Windows 10 settings + +Windows diagnostic data collection level for Windows 10 can be set by a user in Windows (*Start > Settings > Privacy > Diagnostics & feedback*) or by the IT department of an organization, using Group Policy or Mobile Device Management (MDM) techniques. + +* For Windows 10, version 1803 and version 1809, Microsoft recommends setting the Windows diagnostic level to “Enhanced”. This enables organizations to get the full functionality of [Windows Analytics](#windows-analytics). >[!NOTE] >For more information on the Enhanced level, see [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). * For Windows 10, version 1709, and Windows 10, version 1703, the recommended Windows diagnostic level configuration for EEA and Switzerland commercial users is “Basic”. -* For Windows 7, Microsoft recommends configuring enterprise devices for Windows Analytics to facilitate upgrade planning to Windows 10. +>[!NOTE] +>For Windows 7, Microsoft recommends [configuring enterprise devices for Windows Analytics](/windows/deployment/update/windows-analytics-get-started) to facilitate upgrade planning to Windows 10. -## Controlling the data collection and notification about it +### Additional information for Windows Analytics + +Some Windows Analytics solutions and functionality, such as Update Compliance, works with “Basic” as minimum Windows diagnostic level. Other solutions and functionality of Windows Analytics, such as Device Health, require “Enhanced”. + +Those organizations who wish to share the smallest set of events for Windows Analytics and have set the Windows diagnostic level to “Enhanced” can use the “Limit Enhanced diagnostic data to the minimum required by Windows Analytics” setting. This filtering mechanism was that Microsoft introduced in Windows 10, version 1709. When enabled, this feature limits the operating system diagnostic data events included in the Enhanced level to the smallest set of data required by Windows Analytics. + +>[!NOTE] +>Additional information can be found at [Windows Analytics and privacy](/windows/deployment/update/windows-analytics-privacy +). + +## Controlling Windows 10 data collection and notification about it Windows 10 sends diagnostic data to Microsoft services, and some of that data can contain personal data. Both the user and the IT organization have the ability to control the transmission of that data to Microsoft. @@ -200,10 +221,38 @@ IT Professionals that are interested in this configuration, see [Windows 10 pers To find out more about the network connections that Windows components make to Microsoft as well as the privacy settings that affect data shared with either Microsoft or apps, see [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) and [Manage Windows 10 connection endpoints](manage-windows-endpoints.md). These articles describe how these settings can be managed by an IT Professional. -## At-a-glance: the relationship between an IT organization and the GDPR +### At-a-glance: the relationship between an IT organization and the GDPR Because Microsoft is a controller for data collected by Windows 10, the user can work with Microsoft to satisfy GDPR requirements. While this relationship between Microsoft and a user is evident in a consumer scenario, an IT organization can influence that relationship in an enterprise scenario. For example, the IT organization has the ability to centrally configure the Windows diagnostic data level by using Group Policy or MDM settings. +## Windows Server + +Windows Server follows the same mechanisms as Windows 10 for handling of personal data – for example, when collecting Windows diagnostic data. + +More detailed information about Windows Server and the GDPR is available at Beginning your General Data Protection Regulation (GDPR) journey for Windows Server. + +### Windows diagnostic data and Windows Server + +The lowest diagnostic data setting level supported on Windows Server 2016 and Windows Server 2019 through management policies is “Security”. The lowest diagnostic data setting supported through the Settings UI is “Basic”. The default diagnostic data level for all Windows Server 2016 and Windows Server 2019 editions is “Enhanced”. + +IT administrators can configure the Windows Server diagnostic data settings using familiar management tools, such as Group Policy, MDM, or Windows Provisioning. IT administrators can also manually change settings using Registry Editor. Setting the Windows Server diagnostic data levels through a management policy overrides any device-level settings. + +### Backups and Windows Server + +Backups, including live backups and backups that are stored locally within an organization or in the cloud, can contain personal data. + +- Backups an organizations creates, for example by using Windows Server Backup (WSB), are under its control. For example, for exporting personal data contained in a backup, the organization needs to restore the appropriate backup sets to facilitate the respective data subject request (DSR). +- The GDPR also applies when storing backups in the cloud. For example, an organization can use Microsoft Azure Backup to backup files and folders from physical or virtual Windows Server machines (located on-premises or in Azure) to the cloud. The organization that is subscribed to this backup service also has the obligation to restore the data in order to exercise the respective DSR. + +## Windows 10 Team Edition, Version 1703 for Surface Hub + +Surface Hub is a shared device used within an organization. The device identifier collected as part of diagnostic data is not connected to a user. For removing Windows diagnostic data sent to Microsoft for a Surface Hub, Microsoft created the Surface Hub Delete Diagnostic Data tool available in the Microsoft Store. + +>[!NOTE] +>Additional apps running on the device, that are not delivered as part of the in-box experience of Surface Hub, may implement their own diagnostic data collection and transmission functionality independently to collect and process personal data. Please contact the app publisher for further guidance on how to control this. + +An IT administrator can configure privacy- related settings, such as setting the Windows diagnostic data level to Basic. Surface Hub does not support group policy for centralized management; however, IT administrators can use MDM to apply these settings to Surface Hub. For more information about Surface Hub and MDM, please see [Manage settings with an MDM provider](https://docs.microsoft.com/surface-hub/manage-settings-with-mdm-for-surface-hub). + ## Further reading ### Optional settings / features that further improve the protection of personal data @@ -215,11 +264,11 @@ Personal data protection is one of the goals of the GDPR. One way of improving p ### Windows Security Baselines -Microsoft has created Windows Security Baselines to efficiently configure Windows 10. For more information, please visit [Windows Security Baselines](/windows/security/threat-protection/windows-security-baselines). +Microsoft has created Windows Security Baselines to efficiently configure Windows 10 and Windows Server. For more information, please visit [Windows Security Baselines](/windows/security/threat-protection/windows-security-baselines). ### Windows Restricted Traffic Limited Functionality Baseline -To make it easier to deploy settings that restrict connections from Windows 10 to Microsoft, IT Professionals can apply the Windows Restricted Traffic Limited Functionality Baseline, available [here](https://go.microsoft.com/fwlink/?linkid=828887). +To make it easier to deploy settings that restrict connections from Windows 10 and Windows Server to Microsoft, IT Professionals can apply the Windows Restricted Traffic Limited Functionality Baseline, available [here](https://go.microsoft.com/fwlink/?linkid=828887). >[!IMPORTANT] >Some of the settings of the Windows Restricted Traffic Limited Functionality Baseline will reduce the functionality and security configuration of a device in the organization and are therefore not recommended. From ec1d8ca0e63ed5c664710a2d839da635ee294d79 Mon Sep 17 00:00:00 2001 From: Liza Poggemeyer Date: Sat, 10 Nov 2018 00:06:25 +0000 Subject: [PATCH 32/34] Merged PR 12741: WaaS servicing white paper from marcom --- windows/deployment/TOC.md | 1 + .../update/images/servicing-cadence.png | Bin 0 -> 54411 bytes .../update/images/servicing-previews.png | Bin 0 -> 78290 bytes .../update/waas-servicing-differences.md | 106 ++++++++++++++++++ 4 files changed, 107 insertions(+) create mode 100644 windows/deployment/update/images/servicing-cadence.png create mode 100644 windows/deployment/update/images/servicing-previews.png create mode 100644 windows/deployment/update/waas-servicing-differences.md diff --git a/windows/deployment/TOC.md b/windows/deployment/TOC.md index aa375d690f..00acdc9318 100644 --- a/windows/deployment/TOC.md +++ b/windows/deployment/TOC.md @@ -215,6 +215,7 @@ ### [Quick guide to Windows as a service](update/waas-quick-start.md) #### [Servicing stack updates](update/servicing-stack-updates.md) ### [Overview of Windows as a service](update/waas-overview.md) +### [Understand how servicing differs in Windows 10](update/waas-servicing-differences.md) ### [Prepare servicing strategy for Windows 10 updates](update/waas-servicing-strategy-windows-10-updates.md) ### [Build deployment rings for Windows 10 updates](update/waas-deployment-rings-windows-10-updates.md) ### [Assign devices to servicing channels for Windows 10 updates](update/waas-servicing-channels-windows-10-updates.md) diff --git a/windows/deployment/update/images/servicing-cadence.png b/windows/deployment/update/images/servicing-cadence.png new file mode 100644 index 0000000000000000000000000000000000000000..cb79ff70be87615b9d11ac3e3b2b69c9f5209705 GIT binary patch literal 54411 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 Ht%6$|j(^(?xrFa#||x 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 z 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 to: Windows 10 + +Today, many enterprise customers have a mix of modern and legacy client and server operating systems. Managing the servicing and updating differences between those legacy operating systems and Windows 10 versions adds a level of complexity that is not well understood. This can be confusing. With the end of support for legacy [Windows 7 SP1](https://support.microsoft.com/help/4057281/windows-7-support-will-end-on-january-14-2020) and Windows Server 2008 R2 variants on January 14, 2020, System Administrators have a critical need critical to understand how best to leverage a modern workplace to support system updates. + +The following provides an initial overview of how updating client and server differs between the Windows 10-era operating systems (such as Windows 10 version 1709, Windows Server 2016) and legacy operating systems (such as Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012 R2). + +>[!NOTE] +> A note on naming convention in this article: For brevity, "Windows 10" refers to all operating systems across client, server and IoT released since July 2015, while "legacy" refers to all operating systems prior to that period for client and server, including Windows 7, Window 8.1, Windows Server 2008 R2, Windows Server 2012 R2, etc. + +## Infinite fragmentation +Prior to Windows 10, all updates to operating system (OS) components were published individually. On "Update Tuesday," customers would pick and choose individual updates they wanted to apply. Most chose to update security fixes, while far fewer selected non-security fixes, updated drivers, or installed .NET Framework updates. + +As a result, each environment with the global Windows ecosystem that had only a subset of security and non-security fixes installed had a different set of binaries and behaviors than those that consistently installed every available update as tested by Microsoft. + +This resulted in a fragmented ecosystem that created diverse challenges in predictively testing interoperability, resulting in high update failure rates - which were subsequently mitigated by customers removing individual updates that were causing issues. Each customer that selectively removed individual updates amplified this fragmentation by creating more diverse environment permutations across the ecosystem. As an IT Administrator once quipped, "If you’ve seen one Windows 7 PC, you have seen one Windows 7 PC," suggesting no consistency or predictability across more than 250M commercial devices at the time. + +## Windows 10 – Next generation +Windows 10 provided an opportunity to end the era of infinite fragmentation. With Windows 10 and the Windows as a service model, updates came rolled together in the "latest cumulative update" (LCU) packages for both client and server. Every new update published includes all changes from previous updates, as well as new fixes. Since Windows client and server share the same code base, these LCUs This helps simplify servicing. Devices with the original Release to Market (RTM) version of a feature release installed could get up to date by installing the most recent LCU. + +Windows publishes the new LCU packages for each Windows 10 version (1607, 1709, etc.) on the second Tuesday of each month. This package is classified as a required security update and contains contents from the previous LCU as well as new security, non-security and Internet Explorer 11 (IE11) fixes. The security classification, by definition, requires a reboot of the device to complete installation of the update. + +![Servicing cadence](images/servicing-cadence.png) + +Another benefit of the LCU model is fewer steps. Devices that have the original Release to Market (RTM) version of a release can install the most recent LCU to get up to date in one step, rather than having to install multiple updates with reboots after each. + +This cumulative update model for Windows 10 has helped provide the Windows ecosystem with consistent update experiences that can be predicted by baseline testing before release. Even with highly complex updates with hundreds of fixes, the number of incidents with monthly security updates for Windows 10 have fallen month over month since the initial release of Windows 10. + +### Points to consider + +- Windows 10 does not have the concept of a Security-Only or Monthly Rollup for updates. All updates are an LCU package, which includes the last release plus anything new. +- Windows 10 no longer has the concept of a "hotfix" since all individual updates must be rolled into the cumulative packages. (Note: Any private fix is offered for customer validation only, and then rolled into an LCU.) +- [Updates for the .NET Framework](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) are NOT included in the Windows 10 LCU. They are separate packages with different behaviors depending on the version of .NET Framework being updated, and on which OS. As of October 2018, .NET Framework updates for Windows 10 will be separate and have their own cumulative update model. +- For Windows 10, available update types vary by publishing channel: + - For customers using Windows Server Update Services (WSUS) and for the Update Catalog, several different updates types for Windows 10 are rolled together for the core OS in a single LCU package, with exception of Servicing Stack Updates. + - Servicing Stack Updates (SSU) are available for download from the Update Catalog and can be imported through WSUS, but will not be automatically synced. (See this [example](https://support.microsoft.com/help/4132650/servicing-stack-update-for-windows-10-version-1709-may-21-2018) for Windows 10, version 1709). For more information on Servicing Stack Updates, please see this [blog](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-7-servicing-stack-updates-managing-change-and/ba-p/260434). + - For customers connecting to Windows Update, the new cloud update architecture uses a database of updates which break out all the different update types, including Servicing Stack Updates (SSU) and Dynamic Updates (DU). The update scanning in the Windows 10 servicing stack on the client automatically takes only the updates that are needed by the device to be completely up to date. +- Windows 7 and other legacy operating systems have cumulative updates that operate differently than in Windows 10 (see next section). + +## Windows 7 and legacy OS versions +While Windows 10 updates could have been controlled as cumulative from "Day 1," the legacy OS ecosystem for both client and server was highly fragmented. Recognizing the challenges of update quality in aa fragmented environment, we moved Windows 7 to a cumulative update model in October 2016. + +Customers saw the LCU model used for Windows 10 as having packages that were too large and represented too much of a change for legacy operating systems, so a different model was implemented. Windows instead offered two cumulative package types for all legacy operating systems: Monthly Rollups and Security-only updates. + +The Monthly Rollup includes new non-security, security updates, Internet Explorer (IE) updates, and all updates from the previous month, similar to the Windows 10 model. The Security-only package includes new security updates and all security updates from the previous month. Additionally, a cumulative package is offered for IE, which can be tested and installed separately, reducing the total update package size. The IE cumulative update includes both security and non-security fixes following the same model as Windows 10. + +Moving to the cumulative model for legacy OS versions continues to improve predictability of update quality. The Windows legacy environments have fully updated machines, which means that the baseline against which all legacy OS version updates are tested include all of the updates (security and non-security) prior to and after October 2016. Many customer environments do not have all updates prior to this change installed, which leaves some continued fragmentation in the ecosystem. This remaining fragmentation results in issues like those seen when the September 2016 Servicing Stack Update (SSU) was needed for smooth installation of the August 2018 security update. These environments did not have the SSU applied previously. + +### Points to consider +- Windows 7 and Windows 8 legacy operating system updates [moved from individual to cumulative in October 2016](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/More-on-Windows-7-and-Windows-8-1-servicing-changes/ba-p/166783). Devices with updates missing prior to that point are still missing those updates, as they were not included in the subsequent cumulative packages. +- "Hotfixes" are no longer published for legacy OS versions. All updates are rolled into the appropriate package depending on their classification as either non-security, security, or Internet Explorer updates. (Note: any private fix is offered for customer validation only. Once validated they are then rolled into a Monthly Rollup or IE cumulative update, as appropriate.) +- Both Monthly Rollups and Security-only updates released on Update Tuesday for legacy OS versions are identified as "security, critical" updates, because both have the full set of security updates in them. The Monthly Rollup has additional non-security updates that are not included in the Security Only update. The "security" classification requires the device be rebooted so the update can be fully installed. +- Despite the cumulative nature of both Monthly Rollups and Security-only updates, switching between these update types is not advised. Small differences in the baselines of these packages may result in installation errors and conflicts. Choosing one and staying on that update type – Monthly Rollup or Security-only – is recommended. +- In [February 2017](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplified-servicing-for-Windows-7-and-Windows-8-1-the-latest/ba-p/166798), Windows pulled IE updates out of the legacy OS versions Security-only updates, while leaving them in the Monthly Rollup updates. This was done specifically to reduce package size based on customer feedback. +- The IE cumulative update includes both security and non-security updates and is also needed for to help secure the entire environment. This update can be installed separately or as part of the Monthly Rollup. +- [Updates for the .NET Framework](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) are NOT included in legacy Monthly Rollup or Security Only packages. They are separate packages with different behaviors depending on the version of the .NET Framework, and which legacy OS, being updated. +- For [Windows Server 2008 SP2](https://cloudblogs.microsoft.com/windowsserver/2018/06/12/windows-server-2008-sp2-servicing-changes/), cumulative updates began in October 2018, and follow the same model as Windows 7. Updates for IE9 are included in those packages, as the last supported version of Internet Explorer for that Legacy OS version. + +## Public preview releases +Lastly, the cumulative update model directly impacts the public Preview releases offered in the 3rd and/or 4th weeks of the month. Update Tuesday, also referred to as the "B" week release occurs on the second Tuesday of the month. It is always a required security update across all operating systems. In addition to this monthly release, Windows also releases non-security update "previews" targeting the 3rd (C) and the 4th (D) weeks of the month. These preview releases include that month’s B-release plus a set of non-security updates for testing and validation as a cumulative package. We recommend IT Administrators uses the C/D previews to test the update in their environments. Any issues identified with the updates in the C/D releases are identified and then fixed or removed, prior to being rolled up in to the next month’s B release package together with new security updates. + +### Examples +Windows 10 version 1709: + +- (9B) September 11, 2018 Update Tuesday / B release - includes security, non-security and IE update. This update is categorized as "Required, Security" it requires a system reboot. +- (9C) September 26, 2018 Preview C release - includes everything from 9B PLUS some non-security updates for testing/validation. This update is qualified as not required, non-security. No system reboot is required. +- (10B) October 9, 2018 Update Tuesday / B release includes all fixes included in 9B, all fixes in 9C and introduces new security fixes and IE updates. This update is qualified as "Required, Security" and requires a system reboot. + +All of these updates are cumulative and build on each other for Windows 10. This is in contrast to legacy OS versions, where the 9C release becomes part of the "Monthly Rollup," but not the "Security Only" update. In other words, a Window 7 SP1 9C update is part of the cumulative "Monthly Rollup" but not included in the "Security Only" update because the fixes are qualified as "non-security". This is an important variation to note on the two models. + +![Servicing preview releases](images/servicing-previews.png) + +### Previews vs. on-demand releases +In 2018, we experienced incidents that required urgent remediation that didn’t map to the monthly update release cadence. These incidents were situations that required an immediate fix to an Update Tuesday release. While Windows engineering worked aggressively to respond within a week of the B-release, these "on-demand" releases created confusion with the C Preview releases. + +#### Points to consider: +- When Windows identifies an issue with a Update Tuesday release, engineering teams work to remediate or fix the issue as quickly as possible. The outcome is often a new update which may be released at any time, including during the 3rd or 4th week of the month. Such updates are independent of the regularly scheduled "C" and "D" update previews. These updates are created on-demand to remediate a customer impacting issue. In most cases they are qualified as a "non-security" update, and do not require a system reboot. +- Rarely do incidents with Update Tuesday releases impact more than .1% of the total population. With the new Windows Update (WU) architecture, updates can be targeted to affected devices. This targeting is not available through the Update Catalog or WSUS channels, however. +- On-demand releases address a specific issue with an Update Tuesday release and are often qualified as "non-security" for one of two reasons. First, the fix may not be an additional security fix, but a non-security change to the update. Second, the "non-security" designation allows individuals or companies to choose when and how to reboot the devices, rather than forcing a system reboot on all Windows devices receiving the update globally. This trade-off is rarely a difficult choice as it has the potential to impact customer experience across client and server, across consumer and commercial customers for more than one billion devices. +- Because the cumulative model is used across Window 10 and legacy Windows OS versions, despite variations between these OS versions, an out of band release will include all of the changes from the Update Tuesday release plus the fix that addresses the issue. And since Windows no longer releases hotfixes, everything is cumulative in some way. + +In closing, I hope this overview of the update model across current and legacy Windows OS versions highlights the benefits of the Windows 10 cumulative update model to help defragment the Windows ecosystem environments, simplify servicing and help make systems more secure. + + +## Resources +- [Simplifying updates for Windows 7 and 8.1](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplifying-updates-for-Windows-7-and-8-1/ba-p/166530) +- [Further simplifying servicing models for Windows 7 and Windows 8.1](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Further-simplifying-servicing-models-for-Windows-7-and-Windows-8/ba-p/166772) +- [More on Windows 7 and Windows 8.1 servicing changes](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/More-on-Windows-7-and-Windows-8-1-servicing-changes/ba-p/166783) +- [.NET Framework Monthly Rollups Explained](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) +- [Simplified servicing for Windows 7 and Windows 8.1: the latest improvements](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplified-servicing-for-Windows-7-and-Windows-8-1-the-latest/ba-p/166798) +- [Windows Server 2008 SP2 servicing changes](https://cloudblogs.microsoft.com/windowsserver/2018/06/12/windows-server-2008-sp2-servicing-changes/) +- [Windows 10 update servicing cadence](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-10-update-servicing-cadence/ba-p/222376) +- [Windows 7 servicing stack updates: managing change and appreciating cumulative updates](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-7-servicing-stack-updates-managing-change-and/ba-p/260434) \ No newline at end of file From 1fc74c4f1984b747f57503f6461c73b9f749528a Mon Sep 17 00:00:00 2001 From: Liza Poggemeyer Date: Sat, 10 Nov 2018 00:07:33 +0000 Subject: [PATCH 33/34] Merged PR 12745: Late 11/09/18 PM publish Merged PR 12741: WaaS servicing white paper from marcom --- windows/deployment/TOC.md | 1 + .../update/images/servicing-cadence.png | Bin 0 -> 54411 bytes .../update/images/servicing-previews.png | Bin 0 -> 78290 bytes .../update/waas-servicing-differences.md | 106 ++++++++++++++++++ 4 files changed, 107 insertions(+) create mode 100644 windows/deployment/update/images/servicing-cadence.png create mode 100644 windows/deployment/update/images/servicing-previews.png create mode 100644 windows/deployment/update/waas-servicing-differences.md diff --git a/windows/deployment/TOC.md b/windows/deployment/TOC.md index aa375d690f..00acdc9318 100644 --- a/windows/deployment/TOC.md +++ b/windows/deployment/TOC.md @@ -215,6 +215,7 @@ ### [Quick guide to Windows as a service](update/waas-quick-start.md) #### [Servicing stack updates](update/servicing-stack-updates.md) ### [Overview of Windows as a service](update/waas-overview.md) +### [Understand how servicing differs in Windows 10](update/waas-servicing-differences.md) ### [Prepare servicing strategy for Windows 10 updates](update/waas-servicing-strategy-windows-10-updates.md) ### [Build deployment rings for Windows 10 updates](update/waas-deployment-rings-windows-10-updates.md) ### [Assign devices to servicing channels for Windows 10 updates](update/waas-servicing-channels-windows-10-updates.md) diff --git a/windows/deployment/update/images/servicing-cadence.png b/windows/deployment/update/images/servicing-cadence.png new file mode 100644 index 0000000000000000000000000000000000000000..cb79ff70be87615b9d11ac3e3b2b69c9f5209705 GIT binary patch literal 54411 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 Ht%6$|j(^(?xrFa#||x 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 z z2Tc#1(jt9_n&%%qFOsLpz)XMx-ZNtA$WlQI?|QQ4n0QT49rkJ09bWKNJl z+&RhWNuTNW|8{1Q4)lP%W{dQA1#i_jU{KhzK8~7+Iu$k^)`!1jN-5HkqZM|58f8US z>H1z^o-QiJbwpn0<&40(=zxpYa?_r6~%f0}j1gaI!L`AU#>V0(sMA1$Ygraiu zK)nyQ*ClSG@2J(6Io&c9@Q%UC=^gP!g&`IO$6=3Ig+7)h#IU_2ZcQ%>ZM=w>#LpdX ztmQ1dNtHSs7xHh&`A+IErIkLD+x^i0imitY`g|Rqwo{#a0W;r56;g^68CAp)ybf^j zk}=iGuK8%gB%A>$NM3j&NTsd-jWHN1Wo^u+qY(~XJfJ}Hb?3ZIRjoZmii~q7Jr31{ z*ejAsRty-Hj2VOethN#l6G2WFmjh?|8XUyK-{R?T1_o^vJ5rPs*rc*Fr#(3-|0PI1 zv2{n;uou$mdlGliSd zA5?IN{$!5-yKJ>}s0UkEL(+jZd5UC7_vnWb3KF!p4oO7Lyt#BsOd|XJ!?xX^<*tHH z8XO4Ya_xEc^KINt-!%|DKr{zq!n4ifK-bWI*1wEs%Ke4s&nnVtvC{SGw=xE#ze3i* zx4$QzOoNwY9Q&*L;q}n zkY!9rhcPJRk@HKVv7^D87y~0o!v; zv@zUzH&kMn;Zgl53wB~3M4kPmki1dk-Wl8dcOwe@aAPf5uHaE903O8QBmVqRAgfJ| z)b48eej%6TV+=4p;I~>OY`2#+zh3NDU1o@aKfdq`ao3PG`czKwlx^#|9+$r6CtV^z z@ANxq<-ajW#M%Tg9`K6iJQVlpWHD%o42F3>Okb$=nOXZ`*Yjf*6#dv))VK$J@!Bav z0I6^^2e!WX&nSSt1RLmb{o6b_qkhkn_WbM;nrL|GZ~WfeusFvFm~ER9dYR4+iEfjB zsjZ5^&Qg(SLw0W}z0u5640 z2vB$)K`kuWp=@fI(wA;QOVjG7lU77&{z@{LF-H{q_D>_r`5Qr@XdTBMw4X|C3yhB2 zu)n}4$e(rtM4d2rTt4EQt*Ld1>)CZMy#i3(u)`WCSAk3|h=wzxJ(2xw zl4v?AL7rRSixLWm$iR+qD-tf4uxe%~F-pqAU?!M;+?7;C(Ld@(b;7hoXTnJ4f~C*GrF#&q_tlcyc?hTH7wz|Ngg;(J@BHN0!!#7vyO6rK%a> zCrj01dpbK5U*&-Vm9nf<)}dJJbDYf7XUg)H2$9xH{0)w98!X#>Cv3vSCMA`Yg?JKt z5X`2%1~!d37rV_-olDL)z5XxC3l?J0oveNg9Siox9wg3wJ#5{P5-n9sWc*axW<$C`uf8GeOz#jq!1pulESby9s8A@OX%K8?5Mu;}4nK zWhB`@6$)8z1kv4Z!P*+|3Lc}G=dp?*{VPo2K*{$akbLrrkN7wA+lZ+oS5@^sSs^Dd! zDc9@@99Y2lPMFYXeCYu@0fLY)xhn{%fi295Z>-ng%aG*h$Dg5Ya39^5VU7@2X^bUq zkkju}C+iH`s&UFM{}CK(3%ZTm*^g)~kXO3UZ7j;h9dL%JDjG$4S+CF1M&PskL;RdG{@DC_zKWeLp)8}8ozVi(P>~OQa&*ONZaXBnnNhR2s zzXx49Wcezu$aIhiKw;Y+H%`ba=$w|Hs`nf70*A*+tObAx1}fgKWj`pvArgA|+QE-? zChVow$Go@8<^uOkM&Bsb$)m-7*-5=+rirg;`cGTUm-Q{vlam(w~1*FE&Tf35F5nvwR9OU4M{w>MZ%FCUqdGr9;-}T*d zlx7CC9kT}Kc92Ez+$8EC(EJEud%BF{@l!GXar>VTMO7ewbCl~Bs3F{0PLFB5F95$) zMutxjg8E>nF*cxrw2#BbstK$rcz;Pjuk@7UzFK+7zFN;ddZpen`r4`ISzypP7Ngu` zvGq;zM;-ouj9|%A^9H$1rYQ@OV(u5_3^tak1B0BnxP=?n2=9+M3!c{!igz$&uu282 z`KD_l$V?6DJAGR7+Wf;nVdt+UAzJjX_2!eHD0!Z1-T!btfmy9#aZiIv(<}m_x4Uo4O z6^w(=i9ONyE!c!Si}PAV&fcUsZ%-#>drXd1G@&4D&?V zX*ZLk&=;QT12i*0G(-1Qef0>4pPY&1!8=;z>ZqBv`Rojo8nphpVtKrSqxv6J;~m-o z*%oH?(TAyVo(fWx!#9f2yc}<^dP?>qxYnQUJQ=E!`K#vZ)2Lj%d2OHX^pfPLTx7MlH$8UGwFi39Uz``?81E5({{Z3W` zuYg2Z$g&>4cL@5*RI%`K@xW>Xf260uP<6$Lm;5j4s}o-~Hcud@r{#Q9Ni~KR3?Xlz z&!Rhy-I$~kd;k=Ro$KLu!r+BRd=1=BN+hkHy)C3by78XaArN%GM|%|yVO##53e>0z z@mhvj-BLuoDp6t}2Ygk#uUfCAt)pzP;YAaK!);E*e9|E?wZwSKx_VO^aBgf2i?1#tAyt0W|4pC12M&o2K2l8wC08>bFSee zzk;4uyk_xxQv-g?qT(Tt|4MP<5CTCnA+>j4yuicmKjqYYwv(NR{&%%BLptIFyU4yO z&MN9*vwE4EeE+Pde58e76T3S5aRN~214ks}glWrwocGbO@%Cnp77NW+O%t1aK^ux1$U)Isg!tu0gV~{7s;<;U?O>Y>>@AG$OQ09 z>7A`(7Gn2w2*^spwBG9xwYozdvq*LDK=xN7`3Z>mq++ZKRKmDZi^}Yn%{Et~&>@LIA%J@7@bviy zncqNF>#I5z=FS8XNaK+cb{k|aXDjTTXak`4u&2xNbiA8u;5GO=dOdASM4OAxxKM~? zns~R9`=~$1H{y=S;=kPDQb;iT^UV-cmsfFTo^`y>+6{M?;n1MPLP(lew)0yBSV&^x>*A0}&BDV_j03Bt-sVQ1! zA@dO${Kefv(T!ZiwgnUIG?*}Ze4*$=Z5KWvL;*(GFt5krB;i;F3! zg4msf!*<$8la=fras}C#4vMshsFiJ0#AvLLCJ>|$)zuZtpUrch*kx=C9ufHE<7AfP zXj27{52m*l>R%Hk7)Y)Qq2?NDPQBIGV45WzrSLUVBLn*2|l ztA8ek5$Fe%a>?U%Zhe4XReI-rc#N!znvU4&lG0J|~2<>CKc|_35u`R*cY> zbA%ij|EjWjFd1zF;F%pq+{z8e{CbAPUB0?@5!VefaflXh*(&*A?D4R_zWmZ5R9im- z!&JB36Y&H6SuocXEUNa#KGGV3T&2zrMvAJD=gs+GKkkv_?f^>z0#gX);#&Mb=zZqO zhShM=3At&UEko{`)1}|HWZ8Wni^9_mA$Vbb-mQ7)h@1bDgL|$@z($v|8EP86ymV!- zRKdx*A6XsK8vZO*s5@MJ@6b&IBJTo5L@eoohUuZquE&vm+{zmj5#E#d~}h7V2iR0FRUYaObs7|)2;Ya z!b~rwGL8gKRhui)-c*?PerL3vo}_0khHr?CNm^rk1!>d)_$P?jNXMVoyoms_03G;7 z87gRVe6G+JJZ(7V=mGMTY2in%MA|z9&|8Iz8I)xxlgcELs$6M(FJ9N~`ZMoXZ_#x9 z5{RPPt_CYGFmLiAY+M(8GXX{3bZ67iJB4b)FJMOJ%*uKhu9VBVVbig)YVCeWn>`VJ zGK$Ko358oZUs|J0YQa*b8fI($0N{u#JQ2>A;};LtV{&2zMdZ2q<~Bnf-Q%=o?Eg|N zOgGvdfi%~5IREQZq0a{FamX@^?_7}fLRHhPLpsPq`_RfbX$TNyz29iVkY1Y%(|W$) zF}>BBS|{W;8?<9*y&U8`PW6-*2a`#Kfnz8SvaTC|!;{reDEhQ#c2`Am$Ht}3NhhDK z^9}>8E!lv>5f72gGWIXBT>=Fj^NmPiH~3g@U?=vI`BK^U&{v?tqW1K0U&iGzHr<*I zOv)H{5U5GW`RfBA-KL;JtBdv~3Dx8;I{3(nHd1p@bbjf;_TkDFTE{7|@+2Lf4{hc^HZzZ^<@HH?;VPX`)SVwK zj|lx`E`b?(`rWhcpW+0zxgroOn#+9;myl(xBBG)&M-Dk!XeEc0gMo;QQJ7n<;{R4O zTyy6fP=;Dz=MWbc3M_J}h_$V|X9r^u@X-Rv4IW&H|Hr@JX&4JUZmHDz0IQGx@yI@_ zHfhYN{@j=FPwL*8{%h3>>6>nxd(}sL;fCxCR1!aJ&&r1EGf3YA=7Z&h5s_|gO1@dX zUw%qy9wKHx^i^F=Yd~IRb5VoEa2XpGlsRd==bmBx zc?ls|Umnb!&Wq1rbn{Rw;4>ZSVs*GhKnBD5*7tudzk{KUOf-fFvNrK34xUQ{<+=9p zy}Hxcf}v4<9J@gmJE``2dKe?NyTkp%S4Vv%fz4B;r?b07)3LeM0)teY0G^=J?|2h zHS4wB1`9}y2h0#l7YXSYYomhDu$8FSwk+>$svB zn~E@kY?@nmeCLz#k2wKTsTCr@)~hb9?J0_=g6E*J&n(5632aG>Wf*X1^HGhUKUBsT z!)Vbqvhk%w2%CT%cL1*ajP^OZ6Zn-)C4&H!UJw6nKD!eUSCxlD*&1} zPO6KIPc5^}Q`0J|cg}i+fzhnJ$#lhfscM#I@qV2-C`if zph`7Pqh?UiRtj@-0po*ziabf@E@i6fpptC7A-zD)$lIr2Nhqa-2_ZLTkNWq=hq?)I zHDrKY@+(pffAIi{yN}R%8+M68my^ooNJ_{A82g~O zH9i2`@qFF|Wv~9pT@cAq+ngr^9K&dKv=l63Rj}7104*9sQ zCG^_&9-%KCj4e+;0kP-fXMa4i0E*e(uqZ;58tZvj$0JsRYonwRWi<-b%dkkLU+U)S*#b#cQXmUDXs!d#RScf9~?Bu5iuBg!!J+*k70 z`K6$8YEqGA3Q&Pf`pZ&cmDq1rdsDHL!PQ_519E^dI4^(>%Yv7nY->*as>;Sxz#(8A z_-powhi5r~ssKGSFYg`9^(R+1UF_e@=E=9tlF`p;dS!-qbcufx6y<5DUxO4vi9S9c zJ1?YOVLK*#n@&hQ{`Y!886W57&?8~vW<#|{2ia|#MY)d&kP;P#Pn ztT(o+LnWOV>^k+FtggbbE4l9$_?9T`o+A7sI-1V)l$}3nHjiW~l7NRpoN9uO)aHK} z$Tw=CT!fk&+&6*QeZ*-|nc#-dcox`Yf<1wymMaw>`3LJi*H66HxtZGA#0U~8Roh}M zAlWoxC$A9Wi^;DTnEcjYa42m3)>>0nqVcvn?FG5Xw8~mj1NPq&nW`ig2{`jrta-aa zpt`A%7o>0MOR?WT^cqQU4sq!PyKFnxY-?o5Mng3>LLmlNHL(fGw!NnR0ugtIQKfo+ zAmwA2`KfP(qpn-d-vXb}mMfTs?(3)JK6bbNq!X>$vQjx|bq7JFpevuG^@Ns2a+$^z zYVn>)^LZUi7|@L$AP--AxMn>gX30T)>)s9l#XWc*a<4VHu0Y0bRGs-@AKvlU!#*v$ zE-N4e<+_gqIlfq1nJI+BpLIC|3PYx{eO?n^?NleFzIiA80c0hX3Jw)#bY!bL8hj&{ zzBG(s`CX6UHE{=`A3+E)`f_P%i1S@X0hc94nADIM*ye-x7ch{|N$+&TsiQ58|KR0g zYozBuAJVlwZIvTC!p|WJalm4N9k1|39ZqOJg5Eu>PqW$A@4ZI#^CTNGPSWO5%uu7e zcR1A?ua?HZ&Im(sIPQ(#1|;8Ry3#<^M301pe2Q7l3Tr0W zGo;YH1shH2oO2Z`*5}h}z%hQdA9U60zJjk-eRMM*=LNk)gOkA_NI0BY&>GQ)Qm`#FFcWoa^%rs20;48gZi2eC2~LT z002MM?*Y>&_`q8fEn_0VbrnFbe5zA(m;Z%Y<9f*LbSmY>9e?u&D$z9UrAMepJeM9bd z0X{$L>D!{LTv2_DW3;uam(gGq@D@>wduE7p1&!bGy1LE}&ulN4^h_0+N9P2nyr#~g zr7@CDavWM=BuHbC*VeET$kLCrB0YRMfxoZoVBJ`~FaBA^<+9S(yytx)jfNC)}>>v1X73eL2k9ZB2_B{g&*!Dk-|TCT)l z3s8Ho;nq#?sZh(_8GQw@Od|+2L|Q=Y-fYY|dNF{A)L=j%a0Oh;V5=rkdjW&Sl3N5& zYTHTiG@(F-+5Dg=0JqPxlZxHh}=E=8V zhXH9aG`egCJC#Y_Rjbe;2A6Pt5HCDDA0#)j<_|c&Gy?{R#g? zl1=(lju`^X?zZRDwD`~c&dVAUI4JmWRF0_BG20A)P^ek(22}2-8VSL}^)n$9FU>+z z(2)YM#2&Ns(3lQ3BzF}oT7Ys$tQ}Nr4(Jj!4f!YVf)7v)+k#yBEk4y= z_%6s;T-P}Y)!uxl>P-9%&*7EhLuIDE+G*|;>r3@4J;%u1?V)!$od0lgK>I%j${&de>N9j}7Vu|7&sdnpxkx5&h58nG0433B}shY>SZ2EeBJXj@mMq|K;ACnHNo^_>{yI zI=6dxc?^_azCtX@jc1jJEpJLcd<$Cuw+0{MNmYKb-*A5iG`)4d;;S^eXd7`x(Tf3orTrd4{80E>1LhUn{e+3r zzs>HKY&Yl`ER6`l^+?e@FsIEYpbP`BUDa`Evk52*9PR2!4-f3r?D(f$un(*L3h>mQ zK7Yaf&&7WgrJc!s7acKc#|Dgs*X# zHHt)glTp-S-@uF(C^C|&{vUezZ{GIcj(rX{?O6orzF;^H7qP|vq9n|mv(D1Bb?au~4+th2CYV1E3!x#QMmxNy zMl%pnKkBTX_Kqy;u*OvGj$|AtNq;6}jKkpR3qUJ2O$gLx_ltxZXF$ZtHP{U#xyoYH z@#-HGj5YowC%zX;jmiUcpNZpQ^SAne_232EW*x;g1P&L`U_{cPu!|7FZ=bm1A#H{n zLx?mO_6dpw-c)7bHQ626|DBgsQ{A_1ft)r8gqBgft|L=t_d!tu}$UpO)J=c3# zoarc|Q~5m=d+^}~YU(okeqwKezU!li0HTi%(QCcJ0p^`&g^H;wJ)xWsUYx~o9ZIBk zbT?Uk(_dxRj3_(m+DENw6Yaah*Rg$QNoD38%TwXJUnuPmO|hM93h%NPHEyH|eO&Rg z=wH>T8Kh1ay)7|5H<7!*xOHz3^KcXzPBREpLCeYt!y2YhPOzX_lB27OMIpF$DW znI3cb1sw;s7$~hZXv_eh&lK5a>LE`nz+g5P>N_o*ELpY`;qrs zZ{^q1(Euih{%eUniMR2Y9Gq(!jo8eya|0GbB>4euROzti@YRU6iiYORo* z0GZuJJ#RJNv(RTS!TF=R>L0NL{h1sH5$pp54_OoVNC1_$0M7$j7#6R()~Eb>RXsJh zP%o^xInQfri6{G~wGCbC1v|vq*yjXi^YVOrc9r^OsdHHr;RkFTw2P@fty83g7Mt zIzKcyjH;ETB3L~9MW(SMkf3AmF7#jhueq)>a#JPf@bz-dp@VwaH{>%Aofi}q4p{6~ zGl7h@sZ0gI&ph#X~j+YW>gOWhJR9x?{DO&-K<~z%>b89VvW(-j+id#^$ z7f%Jrv)e#GN+BP@<}WM7kmq!ltm*A+p1F-S}Qr7t4+*3f1U8id;xcQa% zZah1dH%E%|+ znXqqUcfPY$MCAH4^67^axbJx`z)u=-+T;OXpkS=Sd(N~6TH;#*!5I6K7s_LJ(}!4H z^%aXZ?d|?iV?IK4%Y~?YA>w>td0E=1HYe&~rdE(I`2y#g~kF6DM;`&c;#0ZONX>}GMy`2=NhkOfO4rX zo6)~twdf5z{eSN%B|&!Jj|~i_u{Q?+D9XYb(62k&Dscc^4?mYF6IdNWkE3u>$?@dwehC1l^wMiD8kopEq}G~ zDTf;U&mAC}6(%uV14nzEj44szBN$d1jEr~r#;JtMhu#mMUbqLmZ+@;KxaQ23(&>6f za;+J55^5`d^I)>6+Hf${JMvMyORH%e7Ml0!VH~9j-auvUBTOfTk3@wWWq$IT z(nW&&8&J2x=%VROp}|d_0~J+ih8IbU`_$ltbPwAr(tsksR|tFrk#Xb-2Y|;|$ovaz zsCGHdd^#HH)Yc}^dl`)EuL0iq7Wx7C?oOffgW9s=MriiAklr;&vUT>R=U$U%Q=!0&P`xK#nZLbJ{I3z*Bs{auHbL+-GRhir&sB(?^G*l_>Ecjdo@lMLZkO0=7v=8;slEht_=}kNn7Hp2k3sjpd*$zNilGCA zKu98Q>v087QUIz0tH?tt4zv!h3#>V4q--3@=aV%LT9@rf-YfUNbx%Z~u-KUnT; z(t+5ei`RA_`l4%e`D~myC*r>S)E{gAM0y`Sxb0~y$> zPKR_Dw1;UfmhohoDvj5J&TBE+bc)6KKp)r;TEmy|XPG0CF$y@)X;4iB533qhL>J99 za+7q(^`dhOUBb|)qQc`{$5`N<_Y)b`fd zW6+`v%Ywos^0ut9?997qwz-=q9gneX#5Oj1mavM&Isk(|8(^BgZYM&Lz^Q~TzDKCE!rzN36>00}#qc%SkKlT=My5>!`^akpKr&F-kKQV|3)Gp8@!Z6XV|DejRQ z)`5bO?Of@HE41E|&xdloN#AmhPH^#AgQhkC{ObjoE)1S!Y%n*wJxM^gV97=aNLSfp zMd^$%NKIj6svNf7kY+&*^<9OYwG$&7`(`|?03AOd7Nj0j5$)yLYVTUq*&@_PhPxbM zj*ZH|XwsHhr4OS)VTtIgfH?wES3)W=&6M-twS7BpYHu5aXaI{f!_6V_YQ!oUl}8?t zx8vFKHuUpUhe6peN+VF;Oe`VP4PY9tFO0hMU2tE{;~+0!>Yh+Aeuiv(+@(TI;~nY~ z0!4+u=b0(6$iH`tOt?J498?B)i0SGanZfgoZOo8!V_OPnR=lz0>>cxFQll{8<(R&I zl9S=#V`fZ_{oxu;?#!`u+JO2muO8H;txiy-s44qndwiI%=w4B;KxWL`ZG~dZ+=bZF50eh3nmoD@pnWI=;dXO)4vDh%Z;vVBRnV1un;T)7^R_)bg8mQW%+cN=)q zulKXk0T5}^Cu8AVtjK!k9;OxfV|sd;mg4Lo1ZiQX03S2bPxNE1ZAE8E!_85|#IhI9 z{})Gbc7o{yg|9eNO2kEk=)D)rT(wf8AyWz4eWLzar|8|JqXPGEiQn*>18owP;NYLA z7aF+|*)Hts!2T~>{-Te7Fb9`D{Ksem$o2QjwU=P*$Tru7K1x`RFjGeU1$CPOkH4`d zBjp2>@g%gZCu!RA^x~%l4|$n;*s#L|iN;$vB#^af{x!kuXWx790JowV1C8OoVH0R} z7q54k?;^Xl0H*^S(D=(ye7pqU(>#>9I)RbjORL>VSJoV?jSS&qaxN&8SPnt7vKHXk zD*+KVAIrWp-=bAudR&a+Bo|i~H@^8ggk0MOWeET4&T~rD5rYr9vbmR}>I5}hxgeAZ zD(Z^%_*BQ&1k?TXmNMbUrlXZ9Nwe1M?_R|gXM1okt-`RZ?d=9z`0o(xVopuvbf4W+ zF8y|x#V*eqYye^_z3T~?$eV%8Ar6OdJAkn7`bIRe=jK7M8r2a$PXgQ+XeZYcXlT@d zXD5y66?TU@DZGUvKp$)+@1o*Jl~cgxLQ zHMTu}Rj;QggG{kIx`SVHz4^ym)}-~*+||cARl9n$&MQCs-6V44MyEL|XOeb9gsf?Q zLU*$7;l1rxK>bxXb5+?{64pWdWgFz}HZi=`F938f2bae%vp!bVDEh8RQ1M>!_O%8r z=DpLCDid33KL2u9U|!AVrpNI72uDgZ=tr4vax=Q?c|G#j0GKKrybISCxpq%=R}ipl zn&nI+LzVT{=UzC)yrm{}59$&ZGO3 z>8H0xf&a4d87N~=2n4~uR5faB&U;hi`^`?A`svp6PbG{EA?L-KyTvr8Vq-R2I~|zC zOvFDYt=UzPwi^lysKSVt&@%)K8-F5ZU;i;<0bs;sszb(J{*5%e^Q2Ap=^^fy*V!Jt z9wXsbtV};D71Z>9DQa;8<0oqq3=(;``K0aPH0S%OT0||aDb=p}qU^YD*Kr^x=Jw*G zp*rXeq_v8ACpn&c+W_&df&K6;Mo_wQU>C=*7}pH%{~IBa zC=z&7Ke(QdN<<$al7$(&Y~>t6`co`)2c8JYXeFpLR){`4FRH=WP%qpqWVR1g8XDE) zW1P{`28ob+-?whlC1Cam4Cl6#4sj!`;?dQZZ-fYkTy1zKuy)*tdag+hzpT&>HWwwM zek^pjL_8vw!0j$V9M}4li0rar_RuXL+3YhNl{)O&-#d|8(Oht|G8_(k)`%RDarc*% z&0CKDOBA;yF7-kDGHLMzvuvPRi_I1d4d{koJDB`w1m+n>xkbh4n`w<%M zFVG7ID?lH{@Oy4FlU>!8kKRATjEO~M_2LbvQFym}UPYCHW%f%rG@pFFmK~0+>wxwK zm9xBEgssD@;0IiT5MGdfJmoaFuV!p|5)X<3V5RVO-?F`$9zUOO>G#J5+QoH`oj(+x zjF-p-hQho|AI}TA9K=pvOk%*-?_aDpSJK#NIO(LwJR!8e){qc8V%3rjs<5aV!6v+s z5fQ_`#>0F@!(os-rGV)a#)qtsBMNY!l!QyGoJ?Qjf5Y(?*@h!dhm*^W8G8B|`ah5w zA1zz#t%qSkwGl>J51ZX>YiWGH3BHQj69STS?@-<)hffj{zzJ4MC3mwzLGr1Xj`vs@ z7jR)*oD`10Y69?JngS&{rt?T2Zp8-ADIMh3Lw%+l@6fO=+AJ*1R0KZ8?R{|kH2IVQ zbc9GP$QshjduP)rZasL<9~55M8sFc8>GwU_?#`Dm@VqNwe4zaE$7m`gGStO>^BUu)Pv+FQ*bVJDhJTP_&ThROeki^3g9*ci0a5@|!Gi~HazlU9?Ap&!kLXE%Cpaq*42RvVM?H_2=iHda zXd|Bs?yv92MuT}S#q8v&MeQD9h&3Z@xZ5aYqu(<&E6b+biLE`hNL{y8CqrtrtR0Nn zgv*a4NrFqy4!TU;i6kB>HNPU`nFb0NjNrPb4~wTl+f%L5wpn=8p8Dm{I4IcMx!K-D zme=;*Ij*zlOqYo#=9D)Odm8zOAFf3c7I>+U2jn8~bxaGKaSl>`p@08>Iy11`@XWXDXQ+}advpEsEGs2uni0+wT$|;C3sBtZBGX;B*&B|wiPkG;AK>66Lv}v-mWmLV zj+VU|y5(1Ou$L*}Z%t?6O=`y_WYCk3=t=Jj($TF>o!hVlm^qu8nkx_@zaE=LJ4ozU**5dAM_k#a^LM$&|n z-QT0yVSH-wo^w=CKOc;FJ91yGgesl{{ovQyAZTcmANiT`vhh(ziAKd#0dD+FN&ZmH<3*!}U(#um z{&mTF*|$%OQj+fH7VfuOZX<(jeFmmusr_~oCT)b8h&tGGaZ9vC5g!*Cu%lvbU>Ki^ zMF!j7a!!%()Ii>QHX2%39K5a(COT|2uzF^bfVuIj7$e?+e5HT1)%|T--M>X$NeK%J zzvUfP)K%LtIOkq66hRS6g!m;|owAp>25!EzcRy^lYSN#g_UGzr38F7(F_JZm1jj$; z_=F1WXQnqM1T|#LnEG=~253{pw6#>0BoU|`@plW0Cx@dJ7DwJmQ)Iqccrzi>$Zb4X4xTNsoN6&wmLSdt1Y&Bg_dgeOY6y!>Mxu105d0q~ z3&gvbzSO$*FP4QAfD0P4W_f-U_vy`t0y-M4P{zO<=Wusu`@SUgvyRbdmpZaLZqui+ ztAweES}*vZ=Pk*NF|^?l@9`rH_OzTJ*L4obpfjP~TI0Q4K9}Cp83cAB5#hfmk8vkR z5@j*JEbe74w-+n6n}5eKwppe1jju}xt58%=bARF@)mwY!_)EDZK#|HUq-?t*e=x_{ z>^Dpm31eWS!p>pVOO)nV6Y)bwiyNor#0ha4qh!Oo*ZWlj2@C49avu9~_>1!FvkC1S z-~#p!sEWpH_}uJ4RQ4rqecYahlZ{RT3IJ@-kINf1*SnOvJkP8K~_BO8&DaSi?)D-!IUM4UuLHzxJ8uGL_RApPEzb=sz`ga-K*`ieZ*ZA z^TG*W6Ov&3|N2HmF;*N47oXnhqp%M^BuM?>eoUPOoy?}>G_P%LH(;TM-c#5SoMmRPP!KRH&z$St*%YYZU|V3zxdo_5+-T3Jy$67=QNC2Oa>CK0y+P|vJq>QF zy!Eum8_}gL9699GPE*ZOp`YuRA-N%cZA&C4B`qXwALzwcP4waO%_AaXFx=PYv%Xi# zX1!3h-sBDB9uo6e{@zBm5m*aQj;xj9G8wS(D0rRaE2m(d8F08`TOP6{#Z`b{A5y8P z`{rl!_o55gfN<4=v8XRo6z6}Yk%vP{Uuvb?+JB*m3>G=;A*vqq*xb$cPwaLLdWSS3 zzd655{$w39n?!%8$1K(bC)A4y$Y8yZ)CpJ6_1#(C`Y$G7A;eYWcD0I%XISit0>u@@ zsP-cZ8)%swYiRwjvx5*L+(db~DSNv){oIO$EXNv*1*oH!SbjP*#AnI3H}OwHXTO;r zfAiBwg`ocb^XY>deX7MX=Q=Nb6jtDp!FRq&?NKEUi>%bhNolD^c8BP1$iyYoe2|MT!4cnB@icf}Zv$2jKU_U~Fk8aLS>`3LpiiN_GO z0vRGq#c^Z6YM{6YH}>Usx0Fw}m`U^MK&hPiyX34BPR~c1orE0Bo!%iH#Tg|1uF69t znaQpw^DmqVUC73X+DzYFkV6~6+oM``8eV)|Ak6iEedtm0TclvxW8w1Gu*l}mMIoy{ z(?fiCEKk1qrrBa1(o4$g*m&1kzg>U}m%Gn~Of#f+qi<h;b!h=bH^BhnlXDoqn;Ut^{d+-~kc9m77#qc6X72go&LysT6VvXN-2@OT5270! z9Dbzn!2{+8HhFQb0D=$LD&{8b<#&cUOtDJKd9RyeD= z0tQmrjgwt(UgNr@)v__JtQgS<>lcZjrYhxOO*XO!YwD*!1df!A zgmr0qid2F=EP1LTyE5Q z*g@E`Mz&yQl6P^K@wUQ$0bd=*|2yb8wM_YE#$Avo-4BJ)K@A8`2GJM($^L6ZMs!))%JNJMP4?)I&!G6tynq2@JvSeiiP+a-3iy3bG9q( z#70J#PTDkEr2O;FO@10Afk9l&K5k6w`aZaEl+jUO8)+?KG`V1r>t)V0rZV=#NzqEk zUI9~rz1A?G{Og2Pw67{2N%3ooiRq>;#4t7NlO)>P=$x}Tp1W_T$o2`e>{jFpnRsi`jB|78GM3mb%(1cOQoT#icz}j=M|v01fR$Kj*y}DX6bZ!!xgy| z59j^7=c}mf-!fJMOtfh4mmIF#BEtJls1#O(I;w65C`U2WdvB!sQ2~Nf>h1E?M0@zx zpuN1kjR^<+XQwB+*CnuR$4m9w2QhOfctFI~hXt6q2Z-Qz^L(K{`e<>H#cUz{Cv;hi zGvxB__1*BfFIAYVV|#)QBw_i$t0kIj5*JC#=G&iAETJi*qq7e!2$%uaUKI79#1e{E zGgCj1_(s{`-`?{0P7F1xZ|5rBX&ZED*fZ1*u&M29Vdm&LY3a25PNSkS2fjk4$2*PI zO>aFi>2lGFIztsO=D_}zz}s6cq6lHI(P&lURc2q9W!1r5TZP{eCL`-!cQunGyD%TBwL_kYcP$FCFT z-C|2%n~Kd7Pgwjx$M|5&gSTJy!`(D{)+bvW;Uncj_x&ZcKZSZ}UD4lC2gXf-PcHfU zIPy5|45n8bR^L(d=g#%;nL`*b4vmbig>`PUFzmXH9YG%EbHl@Qmc&E{qc@8#5CrBJv_Cx&}*Pi2=%nIjVE@dp{5oNS}vq&?iT` z!{gukb?CuW{%kJ&YDKcLvG*uCf2T7i)SChK?|H&iIs3Wx(9||t&7j2NZ%so_!sa5* z{zg#IgnskQM|v3gh_>Pp=^H%6F}JnPt>d5w6VH%p#lMYUUV;sg_XcOqvoNh#fVNV& zNzwPulqW5MPmv|2vwcD+suZ7g-#(44>i2TcT!<2)5}v3C$7z=g@+}7zG@^qe#S#Y! zcIIVmTILO+1}4K&iSFhaPAGZ@H0GnL!gjR)f*+f&l6|qZovv#k!YWd1{vHe((?+Ao zdZS#=-BPKW-mfpevV@c-dQC_sPTfIa+`ELNb+d)@P3R%vdhi`G3_Tu^2sY*mRS$Um zq$oPHO%ENy2v4ry#Eova2CX_|@mW^O+RlbHcg(b)@$0id8REz&gqhC~nUKn zet^8fY%MVWr6~$KaDNhx{oU|gDw)!C%DlL{E&`m>QjZOv4^(!*AbMqhgP~`kbRkA8 z$`!(JRNEilkxH$vMLEUT^foI`!{2)Gn?8J01T70<59UU6;Y>Cfblincf*wDIM2&!w zR(_R0E2NU6P5)mp*RWASzjqp!<_js>2gfFMw@4H&MU`Jm(kv6*Oi3IT1(Py2KV|bS zB|_v)7Z(5rl@T1N7+|O0=F?jRTf2AI{iJ;p^QvAMsy`N2JYVjChr!v?n}wj^=g))< zYJ+MvZy8%bo;N2u=+h$P4g3!ePNlC}PW$q<245#d#Sl{9-+C6f4EBfZOVg1e2Q@C^ z>7;C{51u5Dch2qIJPcSH)gaY2 zE_Zb&?U@&9k+hmv92ia@H>~8%jd z{}UJ2e=Jj*9R53pi7wfbVzXpR#gV*Iq54JM#5kGsS#IgV2s}^?{~jm-gvOU@)j8Kq zyP5ozFW{C=8T-MlvBg=-i4Xk{y5p~3?N=(B&1i?mIT&sQsEvC9o~#_q;;Wy_2mk7Q z-d>SsHC`Hxx~=?%DG~#zm5)cljz!4(aS4bb;Qbs@jh0evxr+jsc_|+y=wHJQIPCj@A)p#N9`fGkSW#pkF z7Y_5Md;PWN08Doj@i`e>6zzF+*SmSMH;(>I4BTOr6=31j)G|&U4a==#eg~xv(x8aw z(ce;3c)SZ*zu3;FK`gCAd5^SR_sPC$!s24Z!?fdUNY!9wcuoxViBP?618x1`CEbwM zHI#R!rK6eY5k!^8Y1xE?WpusAFAT0%;p{y;;S$82Uh8!o=sQX>WVAWjC+}v{Zfl-< z1x|$*zRI|$N%D$jnuaF9jgX0tH_3Bu%LKaX__>}fN9ehhZrk_}TsH<$L1 z^lL7)0VAa$JKYHWA@-6170nrdRaeq9aS)q)sT1P|{Y3`X_7V%{I?E-sY*$a|b)Cfi zgqm#ZaT7EbblMY>bkUY?COzEOA~JP}tP75Fs|-B>W{b`b8ew>GcvfvoeX(=vpLx=S zzWsJ9`L0%Rv}w7ze`@%Kt(;#kIP)au0=4_>G#`wt>%<=+b)7cGaPLa z|K4njVA1o))&IwKM~^^3 zHgf!Gb=kic6#rvh;j|TH3wFx4p06*Ew71%P@Te#-j%RpB!T6rxeZWv5SZyFfvsq^} zKW~tZi7$cZpP5myf?1go_({INRMX@cK=BL= z?*ka$GmHpyxPr zJ1#U_D>b*;!UMf%rfG4XxZAW~N7a;6vL`Qii1qWo4#QnVUNt5`FgaE9$BwF#_nPaP zT=Xg6-xh24RiSC~In9w<29e6n58MF3U?0`}6!^KR&6_VUF3(Zn=}%oDp1x9?c1V5h zL5p15Wp_Tw_9&Q+XL!%R_@3c?#-JhF-}_jlcc1^un0cx$agSo|X4#Sh)o1UwRMtBp zC4LlK-MtEJ*DbNRL}^p#x-9l^_drh|B&qA%ov)j>wQ_uta12)!fXwV;-2W1WyN7#- zJBdVUT%r*7c2}OZqOOy#vS70Ls<{$_aBJhLj`fLhtBM~FR|{s(g+&JJf%5wLl2o~b@)BL z;Gjo2y}i|q&KiRY`9Y(}!wblEhadC<;zt4j#+sN+3bv0MY^Q%_L)oWGN^!@yN=l?y z{hTc6&WjDjRW^Rs1vEPDc|~m}QZA*=$q%wb0uK$(4u_N|?YYa9h`m;uzpSS7PFdTjd(D>xCYi?3)aJEx`1sZQk#Kr?y}n?F zE6~>AkL)+52?5TKlB=4PDS=2O3%Wr3O!NINRn{JmgT5U+-X*5oqSz9 zAk^1q?(iY00+$a;^N{`~yRXICtFkCu8^|Pt!Z)FyLyba?zRpe-=91X$O#5A2-1Z+WtQwqy0~mP1S?;ijrRFRG2aL= z5IpUxr?+BUBH5@0_h(PO?rwP-KLw8m?kaBkQ0(jvgpiQo=^z!TZE~v&9*bkhK^eyJ z3?mtg?->|k0yv~6NS5zIzFQrBs`x=40~uscPU&#<)HS*C1;%y9>*j2deZ8g(^glXY z00ZZZ1n!53AI}x4gW=b&SC{|1QMUR>4YYWz!4)~3p2xr&$=~pvK&Y+L@AUKrLu5k6 zpab!PKM4kgkqXB53=D4?z8+G;wV;Ab8b~{+p1WBF?jOZfY#pCOR`-GaY3KjDxXcgV z8Q&b=AO8!of-Xt;aU!Wii$BiJlBFF|@4wo3r@XDM+3ocWDa2nGOu;iS3Yh}_t<;K&RllPh*O08-=sbuHz^}Y&< ze>K?^1H(uL<9h~%SB!zo^pafVa0fIkZjs6km3;W7VcYqJ)kkZV<*0t$ESr@n0V|K^ zCIEtl@dGS85AJCr8wU?-QSGVG6Vk*2KYX_Q(aa19uDd)}h3~NaLc^gO`pW{-BbB|b zdGIm#*b#M?7{N0zyjn26XJB~k7?iqRhR^(gkh?qB?(m!KKAp)^+vE}|ZFkGt&J?s9 zx@pKbS-19B?YiS(TYsW1agTCNmTd0kA#HY+Z1G+t4&;x*8Sv|oTZYpG&37x>gi1TE zf@_)V;YD%y4&iU}LSS^x!0?8__@05`tpMe}fh>r>4E*C;h+)2DDD+a90RscWD*@ws z28Op9!;?Li47`DC;MtdWBVU7of#Jo$_@04*fq{YHeaGX+{}1+e6`9T?^@bI&`m zW9_x}iBSC{i-Jgq2mt|sA}=SU4gmoTf`EYh0uKfJXC2)b75D?`qAn`|Q8h_?419q3 zDy}RJ0r4vi>CN;5@EO5T?z0O71WDMxU&y%qYjX&Qzs2%W;+mdDXB}ZWn(|$j?|--- zg)ciivRy8{a?;fxF-S;Uh`$ocl3?*G!q&l?P4YAHA0m?+(H>^GOir)620!YzW#H-$ zvFA_EJNV&MEVsFzE3}=|F`obZ8cM)vF`g2j>{9Z6c)INSG!hN`18EeWiQ~(l?aXq) zA*XQv8=Dgcsrg{^@*_8F)OZ^ED=zF#y66$O;%m~JRQYi_#)zv;Zb8T27y;O%iH@7M z6?UfuOZ)q!q*80_jm8}oXovM*mB!yq$l16w5o36=jMpv8d+YylegTFQ!Vi+R7*F%# zezmpkF^6D?@b#7`AxJJQU!|>Bp;aIp#B_O0ynUs57Jf9-yBw_FxeWTf$e15<@mL{5 zX1VX%*1O|eMzfGS+w~UZFQ|33dd&Os?%GpLcl*r=r_v3h^0hoL>?&o$?1Ch}>n#!; z->#G;l`_5+!e_0zm3YNdG({?GkWpbeF=-PGhdWxU;nRG*N~}_OJhmJ<_1IzYv8@qX zEC`rrD&c<AE8_(by+NNss=F_Z z*;S>S3*~eTFnUzzT)=ue(FjdX>_(YVW6cW_+47U}?c zl^JvoOh(m9b=V_kbHSX9B9{NXffLBis|mli#zuuGkQ$Ch*?gdjdKZ-mk0E;phL?-X zrn{-EN}_OzU9S?8plGp|;ej)Eh5hO_2=C*}5O!-L3$8JcrIkNnWnUBqj<>Fh^M9x4 zn^zccG<9&aSh~L|8Ox6uB3o+StgdZ0@V=6`p4{~!67H8F-m9$H zuCAehVsr9_)-6E|)QXjWhmqN%hLOhLM-q>5`4DI@KO2QgDfdO;7^~no049G6DNjmb z2D`8<3?yX+CCTd*4sM5gj{>IKx?Ul4U3B0qMMD0>*MbyVKGeTkJq{!p zy5;eT1Wx|DLjbp^F6ggidPmmjE%e$}I6a(L9;L8_*^2~)Jh(>AD3-PX<~him2c}=j z{ig>OMureL%vQpJVhq?uzQ45>roN1|2|7Hw3j#CjHd9KN7ITl)VD0eMZN z@zHvad)8@XqW0_0>q0X1#8%+hJ9* z=<^bx8Uz?D$TJ%Xdr>?~_3MegAmR~jI787Yi1gQ?bcxIg^NqN2@bR!WHUxH1@5}W8 z>GKtJI`4CwOccRsG-z;~Jf??|(*oAqvQl)-M1}q<>`>DF1eR3@boHzN3k*;5MrD1g zdh1``8Ndm6o1>ISLW*prBb%~__F;4b7>2{I*1&U3Ex}e!5#w=L6AB)R`-)7Q&d!PdrDixf z-IS2<#B}yEpO!9fM$*!wP|LZQW6*77WXB;QZ)?<2TLc731#!q0w7~sDus&WORYi7) zOHZJc72*Iy$oD%+7e+TriXM!t0?AdMDcnGE=s?1pAN7R+IE%47k4h*i)=`^bF;3K+ z7ExpW*#Z0+8Iex1MM<%Pf+{;^#)2Pb?eX}nzz=<#Z_hXmx08}SD*E1E>_1ew59>BL z?vW^%n0Z&LY93AV0JBFwkEX_=;ZKs9kua46yL1{l9eABj3?In($JIC&eNnyM4&nZ{ zH2tSR6EH#Dz}MZ{^c2$1{u6R?7Ki)OGLGB1hln1eQ~H;*5?FrPk~$cKS=h4FT=R=(XRvYd7Y9WeYG82-ao zWZZQ2*FO*2lgU5?Rc_;Ib3Jm?8)~SbZSqM5ykx00{D|;Ft7A`pZ06@-Sa3RSv?{h5 z`G^>gj+9k3&!6`JE!Xbq;a%|sz-PC{C&zbsR#2Bq_sHMFlHx4;!{^Ybdtd#!^%l^ z6x{Y(#mmLmN? zQSL^nwv_m(^dsE7ngu!~MI~1h6hpBfxbH&PYmfeoUWcEJnFX(#VdIqaw#D2sK_{2X z;O|tN7RKxUtm&cQJiF0aNnm}NKRsdd8(qo3vGza?XUMAG%_83+Q{BOPzaK5WGS#02 z8@}|kG;$$APqFA`H%?E`V(Xsm?d1EeZT{H$sNl@RaR{{XdICcF!)Ko{i(IMDI3T0t zv+Dx;b9)XQqw3Qop(;Y0w&8SPzApaPtlo?9*bMvPl>o#ZiFL{cGJE0L2KNL74aqiH z!a|9VB7E!#dSIxORAry%f9k=o`IjGC{~Imwyd#>Azqsr&sXx;D-Dqjmh;h}W1j24L zE@kg^*k!43-0nFoEv-}PF1@$!1E@dfp%CZTW6h-z0?kCs#82sygWW4NsnR)>z>uyn zun)PQ|7;NMwas0cTX=4bbAXY=H{tiebInQ9+=o*`>5A+T&t*i20^wu9d7D*W=mRa! zqpPEBNUp}+UDLM#<-6B(sJK@xmBf_~`;yAS9Q&KTM;Y6|&}3}?vP{S3pQ>xi3-CaM zH){wN-`dAbH_C4jZ>^Fy`leO)zxn>Mj4QMsCq$#)*m2JpuIn=Lr!QjX`GJR4 z`vA58lCLPiKP$Ua%Eh3$Nk6ccR}kME*b1eBq*?WK))7P+p;NbgvJAr~D?*SV7oLQPqiV@Ur^9El1wmsGQg@PY-PUMHgYW zfmZRDMK9J@)0<-J7aEGA&URdsaI_*$=(Z%LyF7 z7%7qT+?-!F07}2gmju`45ML9(z(%MAWy|XW@aw|s?vD{Vs56kbiel~Hat3q zAGQ3vx5f0UmEJ!MQJ&g>EIff2n*M!tt2sl5=ZU=P{&%**{7ozU`5BTAu(!DknuMhS z^$X$I5SLjj9*ksk^$3iiVRZLP18mkH3$}kRLlT~xJ^U#HqVrN;xu_qK+Q45+Y4^{Z zyNhMxl`nuprirMODji`T=Kl0NHE?-&#`PBd8H@4Yit=e9L@G3T9Jw3ta!z86sqrM< zH~*FciK6@D^&ZSmZZwz!s|*1^sG zvkknw^KTz|YwEqXB!6wpb4u)m6KE*17M>WyzZx*Qs6jH*+K{hsuawcxU_? z;U|nnYfGZ#U65#nG8RaSz>@VHA2tYG9F@|uHoxsSO*s6xi8&vRc5bxd!NQu`!7OLe zG`MS1{g%Zn^rxA&($U0ohuIo5JZua3&!&-908B_Q0R5->^qX+H!yvPe6wMeuI3mJI z&8ER6cH}G&U(^22_xtn#Xvxc;VWwNdw%`9@c%xHOaiC_vBw=a---`7F59%ms+V5sM&0E&}-V2Q6653pFWG#PIzU_}a)SHCDA zBFDQ;xc?-(ent9xC3Bhe9x2iHd^+OWcDmn{&Cu=8QD>}Jk?q3c9qyF+ei-GLDmsa~ z_2`}}MEnDFBa)SFz2T{&#}MRGdB!U0e17?3q(LyYtHr(Qu4>` zM`&}s7`2$JgQa(iEeCI2Rafecl13B5!+UF;GU{5joiY}i1OKLo`e5&;qs!|qSpK{f zV%82S95k?+;*m8#mv9GgfAskV{ND_Lah*k`rfowc2MI4v^d)Q1*plFDL-0pp)Q>%e z98qv7`nM7sg4eH4yM+CyUv&h#u*?Oe(z61!1>k`R^>&mx!&CTX{0`kbG@75WIYhJ* zefz#KVDt2_>>y6A`H{X0?UB37AdpUa3Uba2uUrJgSS~K)2gi!N9%;?;lSI;;^M5#@ z&H*GKmZccE9;9Jeer})S;EFdVzxneAXdB)n*tZ3LUUh?SagomMGq;7Cu+J%!{-BjaYip6b)|m$*Y8ju+ida=)W=J2@~X1i zJL0Wwengu*J0r}Zyf0bQ#iOco_=mXskmgPmh!ZVq6=D617Xip9T^A|i(RocL;LV{!kBtf5 z(U7PSHty~K*@q}O_u&`oWgsYkerDY-vVO{c+j0_HUOh=ZeXV7waCKA~l>;yH{;SqI z%e3m10-$4IlJe3GdMdv>$wiyIq)61=t(FB2R>^~w$L3?1javS4OhM_`-A|%Sob>i& zJRlIy$H)drM4t^G^tsYw9yx}fpw;kkl^l_Psj7RlTz(Bk+q{MQ5Q+F732Yqn?r<=Y z`WB+zX**Aorh2f3IpTT4+=bRTmIxMOg$&S#2n24vJ4BtGZYw({4_YnON(+T=257a1eLsdCs;E%e)TnoW=gb1yetRSc&B-T*b*f;|wao2d|Ryz9&t#Cfckq;~&VtR^3Uu+`Hd`}tGY)YVDF5%?J6a`}c+39MV zoAy$kkj(E>&kD1|ANY2p{rFBj))T*oLDPxU97L@AT@KI0dj+Ln4gP42rQXbsWqHR? zZzLVMJDzoG58lf%XbA&d*`tqMnscI*mjpRbiu`L#qFXvroFoA^Q5C}{3iNBc&CkV{ z-8Ay|J0eqq+Fiocnp zO8Ce)y5i0PrOFxG_I6}~h2+jp3l8eRQ#Dy%IC>G!qo}4-U4`!8Va6&X9ElH895V^+ z&yI|J{W2$Shvk-;BecoPv%9p>MEF872T874&$4VUCA!^II#i~OdGiu28pn#<9L!|* z4%cW&tb~E3Q+iR_ee$du3xBr(3_=aOWAI@(hM58uOhn^4U0io=onzFG-w%2OfCtC2 zhVf8(#PfxJIOK;kHV9E92a!Pq5dF$O31QV^qQJ%ndDqwca51^K;sRj!CJ-kxW#`7n zug1cre_n`a1(c(Ve-Dkpgq{mrV4$P8swlPBtjuw5HT>0kP`PbVvwQrtVc38iUJP!p zY1h*zt5m0Wwvz&TG3Jb4-;pX%=^)c)izo@Q`R`m)ys^wx2;neOWzDzCWr-T35a}2T z0iGXpb)I5}pa2J7!)hL1n%dYg*&2F#k94XH2^<7aBZn!Cm-49hN@ z2+%@S3uw*Y5F8flp&0qNp*H* zYAYdWeEc=cgsq0XVn}zZHc?Bz=D&0O zaeZcEqbCzO1 zedLUUYxLZ2-Kabv1ACw;_jKGZaC9evv$vKsJ~W(z&X{E6*4j2I$E#_Ble9P>uAnvz z5Ur&6)on^D^y%8kwAMLFCP?&;Ss1#P0I`KC^B2N2_VDtlgzfv%2`g#g_Fy-`cSICED z+SwLx%`Ym`cjhcuKF~`a*jJA{_FCvWHISN~iK4-tV1-$vLJVWUhPK1Vv4kYZjKy}< zH>PiBRaf}ymondZ;&(O%rCWMY?k^PmW7T5{#KR>-i9iXfnv9Q<>2Zaq? zX#UBi`kX2`%;x%O|B4o^R_xCv?y@XPiV{6nrQhsCj@dL3M18p%l+pVXGyys>2pdI- zegVJ%e@)U!7*C|Z(R&`yV|TO){?QOolTD14tl3Ic+T~nDN>k(1`}dVDINK%O7k@uB zU()qZ+Jm)!cP-L{$t+)MhbV9w&IrL$zuy{c7ili=llO7nv)(clQDZ`OqfnQ);5y-S zT#2H6{qqfuBjxigK4-SzeTbtB&uefU8Y z%w35kw`#Z1;>|xEl&x^Q7QJD$sSzNzY-k!DB`UU z110RzA{`Na@@_0$i@2j08zv%x9Bk+Lhj0;8b=}}Y+6Sm8#p3VB*&|+l)7_i(6%t6I6c6DlMSU^}0isN1EA=cr$F$YWLkSzB z?bAk_b^Ij+_tje6p8H!Tx^9;(YF2)WH!IVQru{v<>e=uBrU`-5$ho&CXP_%D6v5xq za9rG;ygYTj?hwG=0&6MAw>IiN*guvhl^@Hem$&H8u29*X(@3aB5y`~CB)x%(L!?s$ zlf@_r(^N1+q#L{mxgK)EIR4s!--DzdXwiPvn8D|_Vr&FYpTOpclC!Nj{6G|d1qFS% z@$kVNNbchZ$*|4lgu{IgIyt^mn@L`awlFgnVk zr;-@~`I$b{b{*>J2ErWqzg0w%pG9=*w>Kkc5kxrhZBJ6Ro{Q<1r};-1iProWzTx1> zl?<>1M)L?Ir2ra)aZw{x6!^FfAg`By{NovN9RhDCx|Z(s+nr~s3YQB}DCW$TtnI&K z06`CQon2}HF=tJ8POkySvCdqVc83ZJ!@D(4f+|Q#Q$L#{Jw2`fS4%(!%n;anRhkr&<*9&eVh`wgMpt*Wt?hk*2zW+ z>wEOb%tdIBt7pGqPSPq|Ej7_8AN-TKq@C9g2GKzlum@Nmhvb2fIWw*o;YmhV(c zMJdXVyb?7ifR~g7Sp?Ou{5|&HD+(gra`mcy0w@xfO)m)DX97i zh6%V84V3jf)dt4#)H!YNFcR zjs#`qGI`-a$y0vCMI-OQn4@ojMfmf23{`}7G`*v4by-6!g`_KmOFrs&=2`b9iV7lE z?uKzA)<3;x0%(svqG6o$gh1Vu@~Nz1b+F0%aMnQb3Vj#|{2k$J1ktJ+s(Onpk!Mw@ zL-0N_bYD}a>TuY`MSB0$sW3JtDI%Y2*Ih~iI?HPZ7(*Exp)*oa%SeV@%M9KHI(7kS zR zb|1~x=}`%)pRmAyO_u@eGq45gNDYO{cmip4&X)rhuP}KEoPpt`zX((78cmJvve3n2 zxd?gbhG-3`_yEc23SIXQ+28LXLR6mW4En>AL2Kovp8JojIS=p;s466U#xQV>u)4nJ zn~@(2N9>QmMyOUm{mi0c336^2TUVgc?{&x4s?ZyJH(nA|wk68cR94VJOg=a&R(H%1 zl}&kWprXrN%<(glP34YOObU>urdLOfj-vX|KoveV5nd8QY9@sx78exaMm5acj!&-D zQ-aXa5rA;DzXlvb!j)!$T$%v<-#cbs@a)XS6ptn7K@H%#mN!?{w3xW<5-pbieZkmX zvXiWPupHT_qS>!zsuD5S^Hs0V4V&)dJ^8hp zWHe$SS-n*a^~_0v2>%1h!sS=QZl%%XkU`~j%mC~)XkqbBA1x$zM+3HC1(eYjx%u4K zo56gJw5#^JIQwrEt*xjMStd+xc1Kw-(vT|K{1>RL!tSq}rWmf~ehs!JcN4U+HS+0* z&7p%h%0F{n(JYz8RXAMOvzB7W)vEUp-KcZDiU9q0TiZht?j zyiJSK9eE-HB&VLTQv+vvS?-`=r+CSQ+r^1B{Pxbs}kpJ6O_7cf1Ue_7s_mm!0JWN$FAi| zbgS5a8SGHBCyx#ydE&R?uiN-TkI%T27pDf&!yIp7Qj6q42E$D1#6==h4OXLD4Ag=N zrz$K2+x#5x{IBdmXG*YCNh+FWo`Jr`i^)8(GuF8TbsqnyW?r7hZ1u8qc}8N#Hl2t@ z0%dr+syhZk+914X$j@lu;)PHXG-)jo6#4d7ITSDIFYr6uE{Zma*xVn*^J4(3y zmL%{-t{-7>drLY#JgSKZeC+s=j)C+a%#@?iL^QnXN2ARfXwO)XrY`@ za0kAyq4yjdbN>j+7akTZ*{in7>Xd?OU5km=1oza4h~vIqs)xu-B5#_XPA&I`$l09i zemL7Pf!a@tI%5EFPYYUU!5UBN0pgv{7b;9QzUo)jzdOlm?$o7%ch*<{OJB{1<@4uy zi2GRjJ+^67r`C#8X;Z)SA?ECl{i2k831;2nsE%c!c@PqHBn@Z44qRC z_4nWHQ@S9Ye-PCJzhhkMUov6MdCXXUAD#s3$GriqcYPm1>613v*t_@RA}xJ4I}@r)pG{DFhR$iREh#0g>9Kqgpz zpK~UVG)j>M6#9DRtoh#?wAs^Kc`Dmj!hX$NGMk ztd=n``}cTPPlF%`bodb~t5RqW?nkg!QbN*ui2i*|*@ySWrBO?V9qYx+;eOz`JJvgA z;%dZ7`+aLyoobG2BP!TGUK7(((6h3JI?&sy*5spQ@u?Swr(5d(-;kEjs15Wb7a6)0 z*Rl$_IAtwbPhWju<3#>aW4X0BO@HlU*fl8)0*yT=1KI(C9x^vsr2RJ|E@KWC?1Fr87Z=vX;%}OQi5M{$+%K$k z(ssZr(?vJw@J363R@B}yE+|~92Fj6fNuu|Z;QG! z_qXO0MIcv+MXcT($Z-T@((Cd)3~xf)#5>H^y^?EpV89Gm zckaG++;1bs!il(zx#9l$y!wM|dr^2H(C9Up>InQBsL$A9BFMjf?|qe$s8`(k+}q<{ z3xr4Z_}_Ea9stqGLMg-=F*&trZ9D%+7=3mh0NkCIGQ&ZJXZJG3@rLSSAt%odR@xtU zk+^r%2M;(4F+jjf<{D4k;{1cIF+DZ!I?OB=)3*VdS9rK!9J5ksO%xg7VF?sBdd1hYjfqR_Wt=xLwl3L z<`^8OJgGElQKYf*wTBIPM!blYnsZ`ZBb+u#pF6TylKj&aE#@B3@`8D2ZMoZ$>c--M zU{3kpoD*^coQ{7gx@REqLGca~g3xOb(u-65l$17&EZe7p^C{Y}*QU8Gb>r%{fw=R* zZf&^kA(@fB+TpULcb`W{^WA%j6l=~GDNEc3Mr~~FqMM9a-k7`@2D^4cxqexr{S*cO z*N6H*C&TYu|Awi;j0#ibILsBJA0D)akLI{&np|;94Jz(;j4!g9R9Kvd`_T&WijQzg z!kmTa>1qt~SkCuPN#4Gii=x!W1St>dZgJc?j|V#U2U=MByVcFy^mQU!6(Y!^_V6l| zD9H4kgu1TurAIeH2syjB$8J5JQMT_o;RBj!zK6npto zLoNu27n^74QOFVx6m@_!Azq(|`B`2qL7aN72@i1tk!WM1E(8FEt^U%B1I;Et#DHpO znNpJNI$Mj<hXKOw z(N`4!x1>x@91T=5zZrkx(^ru>T;>uIYD~Sk*rBl{C?*B<)lP0i3=a0}4E7|f{CNv} zs9#&$YhO&-%h36S6Su>d8;ou2!zA*~^?3G9oEzY(_}A6t?_DA3uhlH7C9-cf)7I1@og!qy0vlA&q?A3y1=l8q#XEw~m>3J!!u93zD| zhunm6xIakS`E)7iJEk+s0Rd~8nZ4;Ujx%Jea#;emq`HuM5~P~2MZP54Jf86tG&Iy@ z64=1Pf4VLOROM)fAKg3j3DD=SsLPm{Dx!1*(sYFN))}l$wUFafR3J4s9JZv2z4b)O z@GnRmtjWsgFLALwKo-2gbPMg_3~jH}kK?;*bG*+iOSReE@?R6th*h4}X}l9{#x2-# zrNhBq(;T;3`zaJMDHMb8TBQ+grDbkM3Yn@J(`h7huUEM}rVcje2K<UTA%{N+x*Yj zaagM?Fx)`D*vnY8XJVLVP#e576gOIASYzq$8#UW2)<|^31fv-s;Ueb;FxMUY^=~ET z?^4khNM{xTHo3;uKFsWI_!}ViGR)==d!<*5P=qJmliQ|bfV*8_{=uf4f8-j_~*UCNT``<^J9)CeLx2ooDDml$G zfZs9|+&x4=b+t)M-Ij&*d=t6u@*2Fj3SYm#Y{1BaW~)UqMj?fI*M+HuK>H45*W3NA z!f`F9kG9z<@-5`pufVTZ%6*%BOiNClnmhp`0%6;jn#u%Q9_2=+mg+i=?kzO>N`+Up zq@CdkuI%f4Shzl>%?qM_D8nnQzU&Wg?2PMlf)JiBhxoNd0^FP&`4XmL;Bbrwpi+MH z(fW4wsdztG9h(T76q^FO2GYy0{M3-mTR5hn_1|1?Jt9>!`oOiu)Sci8NO3sgq{5Gz; zpj3Z0i-?-!PGrsK&VGQ0$s&o|@4tTl=j#e1o4p_wWM{PIC}!LYLuKG`8OMuLXY!5q z(^oeeeoa6#n5dNv6`2skGxA3IJnj(5bS7s*%tR1hpATUf)w^1vxkIBJ(;Gw?9C*jk z039-VYnlwSyi{(i1!guaE$5-nZrft3bx4f$7tysl{H)pDwS$?+ZR}qzdx6 z8DybX$ZS$qqNbuqhtnsSa54D3w)bKDu665bHWN*Hh}A+jS4G&D;~FjQw;coq#L&$0 zjHykPY^>NZxPC7oD*A(f5kCWPpCdSKp{+esIgj zUowqvWXyGH25OdSt^|S{@7bynszUZsTroWjRf70?~i$M4aUZbjnK-gLwP#oj^&t%KiXs+k!W`|86}s6`p{)q zzarhNs%zLl_bJ$mj0n4MuWoD38rgpzW<|xYfkfYuSb6S`!AQg*Ld6gjl=+zrO{@gV zXrHh@^T*YVd|2o&fIifWO1eV2?J$x5IOit#{mF|>jzs8n( z^^FC{Mb|yG*}Az?Qh-N(Y|=oZf=fd(p{n(dgp-Y#??U3?^Wi1@8uTo)3hkfogBu*b z!zT&rQ4OuelnHz}m59ZCa_$HMt>}@Y%_hxAI3BSFU_*u??_>+e34pW}t`i$Yu;>9p zT8+q(H@x3eJdcKrrs&gx!}CJ2(ziS3Mxu_r8NLxht1m_fkfC76Lp5xJ(qZP&D&rud80WqosQ=j(%i0>xB6QH71&)o~FFzpRqh_P2#bSQR z8lgLtK*~8`-2kWkVS3R!uh&puR8`S@dja%vP=b4lx01duzedGZ+Tx59()1cLKDNR! z(V7jQx6$~|K-;IiLXNkY1m78qIN0oaxw}cpeo!}u8+Brhicr~ciH`@T?wkLh$#q-$ z1&zEed;L_ZZERm-fi9w+vQELYgRLVY#Pmn|>+yyb?a-7PX$2pk?aMFB7G%(+Xkj74 zNqzqFlog$4NG5sRFXhmOzVAS4hjeA`OQE58?>VdF0ru=4iA9a!JLM2cIA3ZP%03+% zj}JSGi_;<8bXboDBemahzKOK%be7VPhInZ%zS>{zPN%gt8fNIRU2zomUAlD)?9VFa zn6+9U#YM9}niC31c_!VFve5R;S%1BeK8E&}-eEY8=Q=feV*ys-lOe(V&h^UU{62UL=KA1$(!buCTNl^IbQFB`=bt6~dhsl_D$17>^q z=rT`F(VtK4rH z&s5hV&7-oQL^`+t%B1SvZ+{-byfin4pY}f`C_9L$xvPlkrF`5Z*-E4g$D-tuaZ~t^`!_nQ}l( zRF%y>L>0ytmO_6N-gP$`bML2$*Cx_j8E_!0RBNw`Q~4XtP;G%7H(Q(s`(h_4{@PYY_!V=7iXLiS7J3#OC@gth|!5+y;ty$ z&Q_k+)y-!XkRUb(GmaCZ)i4JkiFgKFbqx~lZS1BSd*6%rs3!s1k^w=iP2%vi!Xp(Af;MhBr0`^w2B0G4@&hvGuif0<8>Ob40k~|#s2vpE6i)$WyztcFd5OK$rcEylUaxXnz}tX0_erSTd3U4~@ys z`JVJ^i8S@z0dQYrY#w!A)R!cCd5H@)YIFWY76;h-=~TlGxB#o|sM-9Hvmf;F5dh)Q zvRU1VH;2i3!R(NQpX+oF{Vnx6JY z-gTdwlt75jbv;_E6d^WCncq?6h(OI-f0}rXN4+w`-{$7>_nxctEez?@s@epgIyJrS zr3*Nc3GC#UjmCP%@z3?*ofvTy{>WWIjj4-i>jJauW_irv>;M83fceIjr*F;XtnIx< zRo1kB10DwiTGtN!XO7~IX8(F0)v7GcXVo$=vb=Y>w=-5nt|&Umqq6WGP7{`0rq`8o z1v*w68|R|aaQ_|7KK?JCqhg_Uz*9nS}8L+Y-!dM8^G(8Z4VeXwt7xel?;^Ha|Bsqc#E zV_IcO&k9MzdCTSQFH$MmlFN@m0iMX`ecuMDBH*x`qn3A4-S3QIb!_(wPc{t7%xo|I z#J*FNCxrf*{#m6lW&Myv|1_WlI`{}Qj>U=F<>{!gF@M}n_OJVD-`=c~nL2(jgwHft zO|Llz+|AM!1RHAJMe@yg;JpVR;$s9nCE}n3cpgbyr+;lQT{Z;7jl|lPic}mwtjdLs z=LoGS`)k9F-EVFY8CG9s~<7S?2)GS!s;!KbI%E2+@r+5hDfvtxwL|Isl2tMh$S zc}_c|{LuJ#W>XJBdP%uCC12rfe_{p@@c|vVl=!L~%~#5;M+CSeWNxN{+YS^O8g<`~ zynx$Ix0Zca3h{7;fj@Mb(>n{b1rsSOur37AOU)af_W-c%mAnYn5$51|UVPw@OqlF_ zxI4Oe_4q(Kgyp}>BgnN-rM&$RJZBT1*7^Miy=(Uk?P6*p+?OMhXxX6haH~%OUd^N# zFXDc_!ahAm}7;RR8kp0FHWLEf+cUJrm`>OkVCvYTqU?#sG^G2 zkG{GM1B^?-t3zN^tvaWZ4>Vl0mezpw6!*!xC0E(>trbWDj6{eZnG2N-F<*)HZTZJ~ zF*tgEf4WMW%RKac*z#8Y|JGfPG@2kLB@il#Ro>NS1=EwA6$Q9f|Zb)E_^q09dbTtJZ?g zD||19|JWj6bso4UPVG*>)i|c6gLHlbp!|R8s6v~%sJe_Fuau#V%r7T(vOYh3<=@D0 z53^uo+oTrroFaBA_;rU z|D@L&v*qO^+o;am6>slE=@h3>$Z|X`g4^&t1+EBRx#KfI-}~AULZ<2*<7fAedT%B8 zQSmsvC48EwO;1%krl7j+7AOTuqzxiG;(qmAr3Jgun;vlR73o!~K%?WO5O^r1&Q~^nl;;;#-lFb4_1YFoV~6&GP)kRt zy{qHdgoMR?eSyzU`U;92`3r)-^@Wpar@#s2dCAl%XqV#Kt01Qx7>xFug@zA)zbWat zsb%RIgZdUQkcxIjIRnAlt=h3`tcZ<^B*-yOxPX!~<^y?J5#DPi52sSB27%kL<1U|! zwQnfVO(`4P6`Z{G^9+L*If(~Fn+r8%=?+IKWnCCtGsLnMOX7|<(R}F zGbjCm(8ijmiX;)G?8idWhYJ9ad&i2(2OwWfC~y2aUH&u)K0OR-q-XLE%8`c8LCW|t zSOTj;^XC}IXrckG;dts1r@zJ|O(i%eAy;KjXiH?SE`QHYkNJvbs?I9gU^R}4P8d`r z(Jr*}5!N%c926VSbo98$JRNQf(7NsqAS+JPTbLBgaeLQQq3?w0kEe8AyQe$fxZdQF zYp&Cfm8qP3E=vE0lB%YW9?jcJ=|FI!&G1cj=T^{!)q zoUQGo+Lyxm;SBIN80A!&3bww-t7E@E1%&FVib%PHEvEwVM75RtvtL(pgsSopjzP&Y z7K2$U1tkfrz@D)$b31*pN#55h6bgphw|aE;t+V5E@F#S;9;ewMrqWIufeWi;S}Fm4c(cqcd7UjtP>vMq1_k(+ z_+{VlaK#JyW;-?HeXJCASmh&!-QaJ13I`2KV^V33Hw~-dq6{Xj6GNz9&(7n=u38H8 zg9Du?P2&Jq!&mqt4~_aj9SakkK0-?D4<&cJ_M>zA4nwZyedM7(e~FJOSWnD?_s_nu zQd6(khY;&XwcVzqUmYfiVSF7|l@r|QevRz9Z`Qayr$#bKr7p)TylO##ve=Y03j`+4`ZlIfE(?eX@IYmoXbzG8#>;7~bvfFs&MCdZz9DJFp=clKrem-pVg34;+YoG3!1*P#CP^78TJT)i@xC46*LHFp;{R`C{uftLLk z#xGkb%NAe^&*s0yH2WQ?$Y1YsSh`HgI;1E?u&P%R+pm*nV%>3Y1?XR%657&ylO}}4 zF%a=H0`9w1k*Ql@!um7mPUBs%bcYku*P5mmct~P0gedr{k$&M$dbsOV zZVOH`6big}g*qK@I92i%?6p94I~m+qD-2?CbT8%P4(kSrqihi}R8Y9;lO(N?TwUoo zBg}e2rKAQL6<&P86{L>%n$}B1OMi%2P?1lL)(MjQRg0?x9XxG8`Pf2K~easjX7zPEr zfDS^Hj#-`q$@FuB^c$RWw%i((wLA>h^!!=wk#B}iiejG@M7aF3rHr4h?lE(jS)f4a zDJ!a66BNUMworkrYsxx0Jor^XKStD_g8p6xb+wySr)l&yT-g%btQhQ6don0#iC+$0jqGZ*IZr)^2o)n)tNt^oeVV$G~V+Uy~{>uT^HVo9T4EuAp-S% z@xI1lfK}yKOmIz0RrJ5bx*hzPAAtbRGS-7-bYl5eQy-?&=GKj@uRW z?Pj;;K~DEJz|p5}-v@t$hEfYZy7)pU9jc=Ss|*Tq(HJ7H@r6V)Yg9I08bw^ z=4o7?P@^!mC1eVGi_H0B=ezi{f-lX|e>=7*rVS?RTjI&%(WXqEV}j9~eZWFmR>oC_ z2ql|N^|fIW7c)dyhOQiVIJw^iYRv@-)hf>zC1FC%LaY}#G?}s9XMTR<85fH+qi#mY zYbLp4XrM1upFZQfK+QtN6`29zXkrB?heu(y*auIUMaFzZLzXW0Y(9k8HrBrmH`7Ay zox9d*Urp0BD&|YyicRV(X<57OmooSN>dTBWRG|+*2^oFiDb%qOaJ>k9of^m!CJFV81J?e}Gk`(lDWHZ^K^s z67xreb5bTaO{{>LXB!Ce;)X|jJ09*5`vuEy|L%t0{`_5eL&79Xdu)kcq`a(U%MLUb zt&N!1vzo&gRc2=Phl@rxP&HvB-MgH_L8D{(S0s#p>lLedt^bQS-t36tAJ$Y|(nr#1 zSTpVS1_58et0~;@E#UQC1SJ7=6k8uf#4K>&zxHcp zO-t`-q%JZ?ZA3+GhiPIIm7((o-zNXm2iLtxVcwm*oe{LUNb(0PLmibrbj-4MD-&~t zW#kW$Mz01SGF0E=GE~Whx{rm*b1f`V`{u4+x`K|7B}=P0rGGQlna%4T-H8XT>L$GW z-}#X<=NvKpyGI$9KcS1;2Eu#=@6V!RxYiP9s=y8(h!M=rKat&B6!jt0yP-Oo?2|KA zdEh5>C6a%ICnlds$S8|3F9Lx#i*hXHEsv9|>@uSZOB9)fb?spMRa)&K8WoYq$$Kypmeze7wXXYFGFXB-@jK&MQ0fchxvYWk=7L=?Do zX1TGStb8Jd2Tci`5Nb~C{vGY&LYj+-!w1{CX9=lb-T4yBP{;K%YV8NiqO-^d+$9!6 z-n*;W`+2@-E%pm0@tEyiw{khrFls?-!fJ@z9~y!ork8^;Gfth0S$#2oKFnq)@|_U0 zLiH^QEzJuoof32oro{*+FZON4rUZwRJkDNDQS2zH{A5J4`8A^CI7nM#Yb7{-!D}NAO$_if+hru9G;biJ z_)#VeOWWDK=T5l+kzbPI)3>{_59KH~n5Oc8?f1^fH4?!wg@MLV{p$I1-uQ}w`Y6&q zP5N_jmiV9W)OB(fxt|U+Gbx-gy|NdMZ8|+mp+4=Xnq+6b&!@TvvV_G$9Z$`;RD;wK_x_kwzO#R4($FoOx_6ezMa z4l&tLeaA`48@Xq6WpCWAzC!ymVqV_lE`Qn8WvbAorCiXu^v?L<3cu zvca#xZJJoS3!Lx#eX(|J1SWF=n_<8BWL_~p|AT0atMP>QhRr{=%Lyj(8hK-|m&;0s zj~NR~z$St9Dj!-b6Sj^rDswveNpp>*%`gqH zK*HmXFmN*agIsgi(`aHg!PBz$c3|jASx8^!Eh+SpYEkh8n%UR$gn27P;?ZmivEf$` zmqs2fr`LWa4hX&?}a$6(W`8}yW*PnWSHsUt~wIO`= z;yz&AmtEFw9MltvmcF`Yx)f8hocyQ;O|mNuh6~-W%ESlndQW~ZykiKHvtm}|?InTZ z_lkz*@6^4QxT<6v`AT9ESbGY`ue2VcaK2n@N6Jg}oICP083R9`Qb0K5H1Xp0uO^6{ zNe+_qUzN&Do$rAp%aL|O;OZ)D~hD3CP(jCrE+nH?ezga!5Pf4i8o}ltwV%O-C#JJ^B zcwirdzavE8uQ(~Y{CZwCE+*BOt?l-J*zGvp>zaIWk}+-oTZsjw`o-(VKiJ9z2qAQ@6Yh-gA&kOwMh^r-k(44Mo#Mtt-(Z% zC-#v!vD%wZyzi<*idJW!_q?1v^QSb3i1<3W1l~IKIl4rnIE(QNCGb=xl3M%ZLE9oO zEPdPsjHc~3t_Bh*cDySV@b#ldhfKGGMUDj^0aDMNgT`PLCFM@8e%;wpH_PSCf#*~- zq2q3(66q5o$?bzeXIP>d$conW$_o8rwoCRm`EzhmZhJkiP)&P=u`lm6T$TqolCQCD zoZ;Ve(lhiCZ8M0FN@s9%#6n%AEBR$=&_?T{=sFiTwQFC*fwzFExm!`jwbpf~NYbXP z_Wd%F6;}<@AF#BnC^%j~Nap#w^dY^oI*vNxpXClKB;ti5>sXG=th;0!heny&yNf7* zl&S5f&zi2Eo`by}KS0)N8n@z_3wnpNSz(zetb;uaX2?5T_1weUZrb}Ox^5vFqIVP! zSb^_I+17~QCK6#F>auLV<5QgbDNv`*VujKi!ZFos z<4MuU@{uG^V46ZHxaDv{C z((ujoCpDHZ!F4xF2xgXR{Vh9bDmxkU=nBC$AK2aEEA?JTb*|t;nW^Q10IW1$Z689k+*bR^+>A#iUt z8-#mfZ9#tX191{t{V~PU&9U+$ZemAu@5)I=VKr{JVeiXFAr!yHPn@CPmyg{5% z+pz6H+^bx0NG}Kp?qn;!I$Wc??P3RoM*!y__QwFNAJ2O!JM7VLMe+o!*msv_q>VW1 zP;fw%#-QBNz@$I@*Vu$Q8B0FbDRDguH746b@|vk`-5&&@R80GTJ{DaD0cS~KWsITW zEwqNgQo(_`(2Nm&y~gEz7wYPA3WW)|9y8<`xhXsC{NWV{!2dHhM3T9)rK zdZhZmU8k>6S*}aK?iV(ja&S|j*>TppRt&l;?+AMx;4ZXXbd7vMq|Y*UNS z-3Sc!Pz~w4(3f==DmT92E(xn8YyTx?PKNTzgpEr;n>zWKp=kISg3t(Z8%n%N1n)9JfUw;`xrJvGwcOix6)dgrn#EkH2Mz9>uvcn?cnYvo3cP6mpy+ zgROa?JoTQ+$8MaS1a8v59pX5|@fWc$W$f9o{{3v9+XyO_8=7hRw)e~74i$0UD8*l8W5fC6Dqe*U19(7O7(v3AFrPFGTRf8 z(d4EBGVWXd@tX9^>>`L*GunE3OU0gCh44>|qSkc!Y>?)u=11&OP5*qj&}OL|D$itO9? zDaYD6f+@5gDL`rzai)zVeux&B6{Q-wLj;8C=Bdb_0k^sTUOLsrY{F8ZOvC^f0cq(9 zFVg#*Y?*&^fKqCi{ITMOn5EUC_*qq4D0Fpv$lyBN|0Xu#@N|iX?BI;hPO-xGAlrMC z%_K)NVr+ervJ{4;^O}nm)1UQZ@?#Ck{trhTvg_7G{yuNdlPO?DPGoWign1BuV8$s} zZ9?R7iqQTl{NQNvaQBFD%dC_k&9U%{x*c!LnJPboDF>Flp-##t1W?8DokVVmr7J83 zXUPB|$lpdkkAhwZgwU_IYmBeHyiwWTAbM4}b!lSIUJk#oD9KGVb(K@zN%iDut+Qyj z0KvA}@C#cMxv-AOz+sgySs>m`)Uc4i*~3RRX08JKe2U?_W75tGr^}O|N6u8~&M$WQ zg>v-A9=%$j{41kz%DDYq>RKFAID{UQdjJ0Z`jizgxoLxpyXDZ)UYpoO%0b%@TV`-$ zl2w(8y5Go{E#wj}Qj4pFGO@q9NR)B@u@0&In{n{!6#J0Xr6e6_%_!q#*Yw|~osaS3 zQ;v)pzME$TBk_G)u;=JU7{mibqyM}6$rOJ6LpD;pbM52Tt;MtZX;Ar9wXUn*Y5d;sG(MWvJJVWT zl*efqgZB{AU)VE8!Ooz%vPEY}bkOx*>*9dBi))%Mu9cw>S_n(+;xx4VY48lKN#^2wue@Q}QnCyaj&0Z&uf6yD zdrgPKmn%^Sdr(p2%!%@a)nKdvi*qDb;rGO2V~^Qj({(7GV5egP-8ikEhvQtT#ic^- zhggd+E$(Bd-Y?BqD^}<@od%k{DN=ZyfD55wtv$1=2mWJ1xcyf@D2Mn@-Ne=Y!|m-d z+-xLAN69pt(dJBta?3YCn(hQ>6vX_CXix zji)3PJ~B0!MEY1dOr7lerV8y2RazSIGQ>_O(_GS@?3ew7E#UnQc^RK*x~~gHi(%%- z(Uc>vqm%O{q?1D~-%z0Kjq*T=d9fc8@7Z{q*QFOQ5LpT8G1^HRsD` z*RpOJ)z;wgzLmRx<-y1jQD4#;P%;2HAo|R#9Q)>dur=yE(tS^@-JE6QQINNY8!+d7 z1t2|0F_cv1)eXnuaaC1?UGSAQsV%KPLEWE{(@5aR?rMrbjQ2(R_!C`LjRU1INB$p{ z3`3_BoZ;J<)pk6vW~bNr5sadgGAe-Q#&8+Ci_-Qhtfm3pKumeg3+b?bqHE7z(?$c# zk}~i7x4U$ux`UvEMy?jT*WXQxet$Lwk-lB`TE8lv-D>j)3?ZZ~ba6t4b@+o!Qn5QZ zd%PxO|2L{HT2j1$HnZpmkgS_yR^~a3d z+@2(B8MXt>{^2N6aJmRFT};?0iJ7`+9V0x8u0e6OQ##@`Q(-ri?JX{>H|A5nz&8*G z5QESr+!S_G2||_$i@EmR=$+u!ElYuX5pgm~KiP5OF%?~SwuWW$20p^bz+qdJ&Li=C z7Y;W$;U&JdCw&deD6R2Rw2z4QLSLam?OgW7Abm+qBPy3rY7d-MRFiF)g(89bd!cl`>= z&c1=2H7KEcHf{M8hIPL$?Kc(R+NJ=+(@zpZAVJ1mP=&q%vLyP%B)sVn*eg%aVDtUv zh`;B$;4ge&#q;ZVM3!fmT6OT0$xK&QqxnOIvkp;^!)VZ?)6^H&&9XB0?NOB`NN)+@KC6GA3k7 z(C}_C=v|QpBh5h(FP&;k6;~w?j;)fb#kDqPZW0-2%*My2=YHH&6#R=sC08(-J9sb0 zDyvbODOOSzR2(4L~!0AOl~v3#$-Qk>?~OrAvY%{EWYr zem(z0MJbM{?}IZ3O+fizCOp*D1x=h!)SV;j+L z@WGbr(-=Cv(nXI70zuW10fD*l&9B}qSmrXN)O3O}bRXS~t8N4lvrVWGFV^o1|EPl6 zlFheJ07g-8Z?X$z-g;F#Ii^~Z3-70}B%GQA-GR$QZD$8nz(J;Y3`%_*0OK*tL2-BB z*w12~Ii3e}U2IP0Y96OC#E>1FRu>KKS$+-R><0VQV;DIJUwj}hYD$jZayK^XrF!+$ z*^VDbUQRnDZtfTK(~3f(mCdBYd$f+3co;T(0>1gqn;b{4A|_O#=h^;b^Ml>??VdK?|%tmU*_tT&=8 z#VC8esT+6>bEft5sCi4PF*ja#`kttWUm=-77S>+O;pA_npX039;ljm4;A%1zMj8c)LYB#`O(SWVmhx={WKA(gRkEr$(Knz)ljF zw9nA7!msn>JX9l`fL7a0uZ{kGMCbLZ-nR6MRbo7-FFHbRqo#bzZc$WFr{kv6r3=(* zB#9PiC@qtV&ywUO0dU`AaW+CE(@yHv$Kgpic=>4->R?QT73~=cf&k%TLuA`|Mv5?I zb+~?Kn_KH5fS`_y@$n?xkD;SSW+0(UD6esK}U`jEfAV=7tRNGNKqA@$6(#%PPy;Fb2Ho7P7x2nCZE%a zVboCPo#)h!t3q7m;9SVc?lOgkz)N}vFr{LJi&ow_hpLBH%hQP2k>*~tk&70_!^Jow z613DGu!(sGAM{C1Q9@QxlhE9n7LCbMaHlnJtTrwYmYmfJ6E$Iar=)c>Hp-C_Hd;}) z;KKsVcI|9cODj4xGyppE%AY;&+3v90{9_m?35}6w^2+wOOde|4G_DnJvM6=RKexWr;WVSZD5 z%8%KN*g}J)>eCOHm4`o!>TSx_r8+)ZQ-^-K1cDhLq_v7QpH1ogp@x$#und;5?Bs8-sSTLb_8rilkYDu%YX;)k4NwynOtjQM)xo9&9 zK2(?XNOWG;Sa!iE(G#fbWtFt2!eC()^gSDnlu7@gSrz-puMOQ+z8KZO@;(lt{v2M! z4)(f&i-C9T?N($eI4$sJ9Q41ow*!ACa&c*?_Y(;?V7lAm6CD2nKT^?14_6!&+40W= zTf`Hl2l7m11h=0tPRarNEa69j4z=wQ{!C?0iVPHj$-P63s!I49>h=I+(0xb3IW(1R z)B=h`FW!H_)S#-#;C2)b3!a01Unk1fe4^R)nVV0QIG;^pL6rIU!~N%ikRgEo*{YFHOyV^eG>uS?!w}gM=V!i6HoBpC!)Mvy zksgfoeYPdDE4S7jLm`$S1Ub5Q2M8`R-tV;c69Z39WD1jQrzsY`hVF(p?2vY%#A9BZ zhyQF*F2sOjV#)Et#roPGx96p_vFh%EunOp9v0=zv44MnHd5cVqyC*nEgA0WA>t0|? zxRtlIxPed#F_z=WLT`$&vZaImz;=R=BJoKgesLlN6R5TUn8Zy;dcG_N+bL>@LH7|G zalwvIeu(t%%|89g-N9_0V;_Rg-^1)a0r7vJ<6g3@ft8FTehbA);Q5ash(~R+gY1je z&iV7=bwtw^?GBG)jNUzNlcJ*!g)y2NGTAo1ZHU?*x%!9?&t)W1ypTo8&dNno!QomB z=iVc0r71~gD{+17uP+|;$G{(bJGC$CJdv1-RLJCp{|!ftS596##)UYwF3G0{p=m?29jZae(q6o0g#CV- z81e7zQyz`)ZE{D&KsE%JN5sS#=jX(BKAMjG?4B^%W#yE~0>5B-D$W=|QkXRDesi1T zE@BO}f%w~b0S;FTLvK7KSY+(l{t{wvx67Aiej2=cOyqxsbigk((p;w5{-#aZHRY=Q7|W*ekz z(Va$C;xHO0m4O@nfs6%@dt{fXzRs-{u)`*D%u4b z9A*_O^P$6XnSl6NVO)2SMdC5dch}WYp#GAn!1-SS+lr{IG@aSq;!i?=A$LKk>t6@8 z2c)$R9K`)j?=%s5cT%A~X#Gs~;9I~gQz`#e#4R`@Vz`mKHEXE5Wr&>L-tSU+$y%&; z*g`WXBv0PUw#sur4uk#eHfk;PCwid5mp_R1W&%((U=WVd#Vj}du+;f-C<-45LLs1p zR+971{>&Pan;4Q7((DReaGS#lq05tPL3cd~y32-;36G0*c6K+#?$?*C#o)fF@`kSv zV(^Ox1f3F#Nf{sykK2gzcDjMB^}b2&=gip)M$7y>OF!@o?L+hizxxgmlDj!sa)12! zl%C>x8xYJgM^rI03--(Azfu9cg>g)T$j_0z!U(e*1wAcYxs)Licq- z(BprGs){o06(DN$LttfxVjI>RPY2SvGSGh3%3V&2!j>opU69gTz0fR>-wQ|$FYczb z6uCfwR0GvE4MKA#nKV1P6}fOyOOrqK)q|s}Z=K@GDV(dNi_OZp-nxyea%=0yToPea zlma~$&FmFE^tG-!9re#l6)44RtBwkf@^FFQNw#*?5FFg6-V%xhy6)2y?rECHtOD;V zA!tgU#%Wwr9Zm}ne$!n?P%_w!i3J1O(S*RnjKCyj>pt6g`~5XaoJv1rLTC{DhftRp z692D$-Hm($GrrT>VgP%v2_Uw53x_4uD0 zq0;^c_ziSBej?(wS0JQ95(*va@8x}d)Uk`ga7K~Zoi)Oz)acMl82Y9J2@U(U3x{We zNv{v{)b@@4P*NBZo@YIyfqQod%h_Fn3muqXsf=EwpB710>I-=y-B49NsP2 zB4?ebhZIIw4sm(AX#Cz#)e*5X1OWHh^@NLG$Q~#V0gxETW9Nmc25K!}vZ&Cz1#Eh( zuY*hro~?SugIni`FQBF>F25O=@+C8${!#H(Sa7F9IwkVN6uJwddY^NoiZg0LXVs6X zRO&r>k;`Hj_^C`z-j^WTeBOj)i* zhlg?|YXDIQ_3s#|-uS8FbsExs;kLvKv_9%Wxc`~iWt{0MlE6r}_>Ab`n8&WN>MlLt zIWXvVL_)UjZb$w9?xEP=O|2*Qp6ZnGYt zq`ah>?&*p$#suT{I^vq5dTBsjL4l$!?#|4lw;}ZC&=kY%!9RA70TxYbQMR>N`m}s{ z2~0Gnp#W^zf0xp*w_O$09SZNZ1G<`*^9xn$%wvcTZ{dBM!oBoTABS(IisurDbLvkw z9sFR^(a|M#j?q5D>V5HxiwE)Y%Lwj0$5)N{JdaQV@B(auJmX0R?di(dw){w^=oMle zcgrBZBK=aY-1(kig&3N#>qGAvSM*E4#N|z8emnvu!UjOb=WfBm*QRZ+2u4qI?$8Nr z$J_COfWhuWOt}jwqoZl`P(IJ5&8>T^qh>oEF%PG)yVQ=+x-Ss3!o#* zmdO&+?n{74`CHMFzfqF#f7mFj1ug8%En3BGA#1s&2@1Wh<;;FJ3VOCSKhFzcqAv5HqtjF|qnTuiDWM9XQLx z6Kvo2_C|uAKV^RFT8U9Y2}$1^X#B$Q;-pPeN==RZ((b(Nj-AKIX=?b{yR}d0A*cXP zmIeUjqJ*;EzruqpCJbRJS);a{Y`J4eYR#4)05o)gl?Y$Hy*+SkXWhSB)r8u$4$*k; z>^o=OoQz(_^>qg4cB1Jk-6z-R*M<09-)Z4*N?Mleih+YFUHz6o;%zam8odlIph++X zpp|RH*JdQ1g)uPf{}sV)?$@b$7%AlL7_kRE=pBsCzl_#!f+4Nf-!@@dDfO7AQKU06 z0iQ(*{Iik*sd@}g;v?Y1A4*64B;30~U1b z%(yiYItTolOQ(O{Ae5o&2PSO?KIw$lF53CnVITtWh?#Is*WOm&V(v`r_Slxjbkb=7i#QM_$92i%(b-6w|cJ$T?bZm zg-&SjN0tMa;iEqBRQ`#l!+y;)zjgOL@U85=yheR&^Ok4PJTg3`nM4vF1gs*s?{X|-JRpqB_oNO>PR+9C$ z4Ci@OxIe6L(VgU`#9NngMO(S^i6a3)2j1t+%yPlVOX#<@No^Z7#&?Ap6wuno*L1(q z*=(n6w@iRPT0ng%BYB8fiyRWeEZC58J}D_?9!XhEF@qj!A`iW_CNXhVJ`RONLK{di z`2&s}(7QGvJJ!2Ud_0cBdzyz^ueYl}mZ;)d0HkfER-K_n>Q4el82=>x4Fj4Er&{Pm zW?9m|CS*2~Sm=c(9C>opA%5oZgqej*K&JssE@aW*J#ZYw(Z2ez9MlE4PJo2}%&kw+ z_?0FfM z;bz|1t=xe+if)U=$8*BlW4FmY3jV_N#7Xqna9r{(+I$L&Xni=kb!!duSLY2JK`?Lz z{deVjiZey!d9KU8H__t-SE&P?{bEKOUR@~`7|_M+|Bx?Fm>&{!?%CcN0#$@G>LWC+ z0az9@bjZ@S(mpL~tqUy)z9%c0+1px4QDab-1!3<_>1>d41kdkyXJ}#CP)tWc%%9oO zhE5Qx-MRQ2I6@Nma-g`zG4?Y1+9qiSU63TECzObO8VUVub5^7G`dJo~V{_y-;~@;k zo5Z%S5QPl!3=rvi!erlnIdOZxyF|s(!x!QCWW@oXp%Kt?G*d6gqI}$3i)`~M8+r+A zS>HYpVSjeN(iH3aOMJzc*;1DD_>RIFj_Mc2N-+|1(2$$-zZe>Q*67TPLuI-U&##g6 zy{uYtDggp7Wgmqr*jlidHcM9~<=QrtG?v8*O@Fm$7~MFDpRu0}uhv+Z$Q6Mw_n4Rujf|o zqq>h&Yq@oOp=Fnw1~<7@_uF6vL$i2g27cNj7uu&Z_gfexw(mG-hB&Ygx%NowwPq`y zWm~V6IYd&QN5IMqR&Qq{nI*mOEK-y|k@uNSRoWJo4~ga!*u!-9T{2C*E^+rJPnyLZ zNEF>hj^gCjRv5O>q^jE%bV<#u5vxG9oQpDgSjuC28iRhTMur= zqWTA>e(J73uM*{>xPVitG47LL_u;3P)^5%5SFxuns zVg||_I#+y&VQN9*ksv>kj*UF2ibj?T&)W97BDND1)1-Zkh0II=rAh=$>`U2EM>P~}m-lon}(4~zM){}5r!-i->2((Bl*Q2CBjm7jkFZY9+Eqn?Y4IohkBXkybf zD~>(9%`J*f$bZM|ZRdQC)&pJ-pwL8%`4mu37O5PHYp7i7Mg8R?L<0|+=7Um`^0*8a z;pM?CiMox(_Gs9@`SrBop;OD5+vyG5Hn?KFT-jexy3OzgaXvBz`S_0A@vE9#F2UnN z_tfH%4TxMfk#8ue2+YZ2zkRd2hkmp~H%P!`*!WdQR&ZZ)u_(O5l}a51OZ3((W8Ov#EYg&r} zn=G1&vohATW10;hc?TAjfw;-Zu=?_b&N{?*r2EhM6Ylp40=p!=YxK_DAQs##K4^q; zx${HRNgY*ev--k(;Y3)i(Kl`NVNX`NHczed7fd8_eiPz*MrFuE$P-*phuI$OE1YN& z!Q9>y)Zk+}$?+pQP}tuSGOYnRG}u$Or-6H2XD;CRW*0Cr{31rJg)j2olRGFNOt&($z2b#-t$r_=lceQo*PWZXZt}9 zf0dtHveNgU$D4bQ(}=(&rBw4Y%Esm!0-q50VfI(>=45dCUhCJ%7I4gn;Q$TBl#vv- z+0r$J8;nog0uA(J4aYfD8t|j2(nxfW~%BOK<`a z`48qzRH%h6B+*E-JaYkixbgghZCPU1$kk&o+ei*v0TW<-w-X5MAFEIpY-c1((d50& z#^vlRX0p_3@KaG*(3U9|_NsCN1fb??KyWae_7THoGB`~q6u*eqseLjc?}Vc%7khD5 zvt0T3%<60JIk>cq)2Av2S7!zl|H^r zq`>0K?}rMREuY?(->e`BEyzU1S?~TFNJF+t;-V{_q5q;T+HqidQvtv@;F)^(OI^f% zaUa&sEzE_?0_1LmDkMb4?i=!vBa;psbVx3N4fCu&2s`i>G_F+C$vXq@aAXo}E-ZOI z6ncd#QuPkX8P}-{#;=fJo5hXbFgPN7bJqU0(9%Bh_ zm-Ug!a0k6M=)9uKEs69yr=>VMSzi^+puP0H_J0>s{;4WO0%~g{35?tN1j1=61$#!ucLhPDomj$gM~fmr^EC zg{N64jERlN=WB-Nlw`>}Npu{$r@?Q)R~>a@n@?m$Bu|$}dx`q^;FIMUim~#jOkgTC zN!QTn5t`(PGWFj`3Ylf9Ik~j!-#IVrY$r%12e!9?t3Be_49ymYQt~gl>EER8VNe<- zhr{wR)@1UKf;k7nhZ|W>{Tg;p%rAm)WSttzc$@3ac524s3m90X7@2bXs<` zOlMqD*mBZ}nAuWnw`6EF?OrfoCny?`A%=lheEPAHQU97xD<~YSpkM$T2vl;8e6zS- zJ+FFYS%-8s;u;5-jW#B3dJ-&lz=#USUqtoXjmsZ3%vp&PuP_+Mx~%s(X=fW!QkGjc zKQ~2$fug}RxV2@Wk7z&33MzaUBl1sx;hc$=7~6MBq`XiZ3HWvk-B85zJqV8O@F;8g z2{vaE>(O?%2CLz@KZRl4V;+%Aos{-+w#0OK2{uo*W!yp>8zL(R{EC%cV(!j|e1WKe z!JesQpTmgpPIaA@5;#ueI*Vb;!wU!8M3Yi)pMCkQw;pWE!1)50G^rj(0VK`l_DkSk z$cANb)=Q$4cQBlCc8p(<{>rB6+MjX=X7x|SuR$Ib?7sxeN!0VD zr~}}Nx?;rnhiN0H8y(|~@`_-iDHHr)1E3W6GW6!BHQfUn+HHqgW84-!JQA^nYt@>c z?i>`XSRY0u=Hxi%fBM2uHvDVf2$ydz^e=4e;1Ox&zShaDb2xpU_iXsNhzAP2eL_i= za?0Byqern%xND@4GYgJYW(?$N_etKWz*imZ^VZa1RJ--v#{RoT`2jGLx|)g?d;9>a zN%*1Oavc@GHoW3Zij3(0k$UV#%gxc%FO=dAp?D@8GKyRgnA-Zm@L={j`8K^U#6na0U26{2TQI8a~fw9=UL%p;OfAWRY_Z`QeKLS-Z78wh-}8e>!8;BIPmWEHF{ad@esZnH>I6brbBiRK=4W-IL@wxOn-*FVkV#+k@ZyUa~= z$;H1*(!;P9=I_GAc@Eikrd{BFzR7Rn=(MTU;rM%~z;SA=c_a%}$98Ic$p`ZPW`-UO zO=QE_wlhPU{%LUu8=l5(wD+XRD1}CxuJT}?tkwRtH%H_C>e~}Kn0)o-Ja57?7$U{r z&Dm+|Sc8-)m!DpQBr{R-dr51&1GWr(b@OJaY6Uf|TG`1OzJ0Pef4!Cy!$#1gbqmM4 zbg`@Ya;l7Vf&Yxe0k4%NG)=#^-{mpx4Tp8z%GIsN4H-QXH&I33?T)c}^xs7(aQb@3 zToCAcXzb;R1ujl(eZJtwOE^ze0h-C`hSeZ*-TN!4>LmSl;?`op5#A0)4M+zC9@_SP z70|Jz1{@uZfS2?-tVvZ(PLx8pNr)$LsnbRB)7GrhQLA;E`eZaTsl|XkXq98r`~3zn ztC}reW&ecmt7XSjtmS!J^vS2d&~&8Lh47N@(-qd=A7>Pwlw4EXZX^`!^(X6rDt$0| zA;G=IHYg9D92n8VUSL$@xyKXb4N90%zB=jk{)G~)Wt2~BXFY|FlUgv4c=MBxah^WM zme%)zX6zpdG_*r&k!4%YNo~aBtWJ|&544&FEOstKpOSH|JD3#8N@O~AIhG-f%`;eD+^Sc4*p2}_Zee(mn?SK6IRbcQYe&dcyQyOV{TpveIQyHc5liR`!J@xCO+=oT zD-M()X-I>+84E$!r8DpYwpcBQ+W@;qTf`UV-E0JM8Im2`{K`I!fAf zPQd0Gh!@LRs)r`up$c)jN(*kf)viA)3M2*?%|+NYm$>%>6c_(4NK^sfr0s)NEB@Mz zM;-&61EB;j_#@mt z5n*$0u^P-PF#CfaV~Y~_J^;P@A0kQQkSlWgZEQ#c?Db(=U^@nH;uDa*HiZ?nrd|DKc+(AE#tZ>A&%{WG*L%56VOX>vpge_av0fbC2^y*@4D?Bs*^@zl zCa+Bs!pyW#0nZerpq1x3E)p?^ZxlT1<~CpK=;#px;+eF^^L_!rPaAE#|K9`pf{UWu z^H4xJ_#rrS`1WutmUI{9*;fu&kGQN(_9!dLPHMv53fmSKw)fMG{Y~1T?s1Qa5HIJH zOTgyy1&8cb8b7zxqiz{D4N>Je#)zhHN7}_PVdKjCZ`A>%$=~mNvT5HZ0Ikg`aw<4o z0={yCV&#QIZXc(&%Cf83tqoR`+y8HLTcXT*+^*Mds_mmA z90bC8V6wp9QO?Pwun56L%gRDto_vtP+_5{APx~zXbK!LJwLPyEoEwMDG`*uwcM3w{ zWJ0gzNG8Z~qw<1=PcB{N^6bR4mBgFp^acT29y%A2rOe#!$t&it7T{-|NgWJ=2BF-> z7alSsfI^wR}ECq*;};B4@@^p>$xkf1kH^{{kB z(4Z)hp9Fo|MH5$NMv0<|8P=j5)OBoxWAGq)4e|(3Fn#Qcymibl zm+doYw!;F(c7{8h^$|Wm*?eDn>tt_p3wXcRj*q-2T3^#VYV(;<{+)q~YOQcbGz2B_ zb0cPakePN_^wS@MNG1=sQMO^1ZnpC?ewUC87o{v`v5(iJmB0ouUF?IDw@7jqSsdiL zC)EmkvoZWks9QNgE>e3`zP7X9mabM}#o)jx+B;|bH3aAbhYnceAIR?0K&y=leU!6O zm)QZ4b2+bly*>G6;;a7h91_Zv{IOkJLW|mTd%o31z-|Uz=%xEZ1)NpiSMa4xCrXQ{ zPj(YK^u)@{@0sx2_(3z%h1no?}z@XR-}Z$EiWw@_iFc^*&9glqk+N zYcsb>i7LfILJSx&J^uznSjq(ZjhCZkYQ+35{XYne>ZIRh@OyczH(i)sUo!AiQ<5h# zTUv~DizV3KJv_&%@}kNfTs|LG#$$v^k{btf7F_hEIf8qa_I;()Hx^@fG-6`E&(k&elN_UHt zNH<8Aba$6@OLv#FAl=>FaOU@4oqgq%;%2QG;~nD}>hudz2x&(YiQ|pU$r2D$hX#B6 zHWh+p*y8|Wdz!speELU*6?j=nxJU3GUi*aaJYrO?kl2BY*_pOuL}C_(?+Yx>c6tl( z0DQ&R&I%LM&AWr);A2-?mLm*(mzhp@jmHOsU#QKt6yqQ)@n|X`dPaa2J127w^t6u> zNw{1@?hZALM9?M&W<(WqJbS!@oK}rwTC~`2EdG&Q-FDAhXT%(66se=?EoFG(kaO76 z7`fuUv9Q1!5~D|OlRJdd7er{V1Z)V<$ZXk)tI7>Pqf{!7^H?74TG>n+D^gQ1whwD;Y+lQ4{BsMmF!P4i8I`>LxMDi^_LKhEcY zlk;@1${1b#Q{v_<(u;@{$U7WYdS)nub&7ik^V~1WM9$SaIL)N>Fu?b|jAo8$eafuO zzcB*a3#|bQ6_YRNVlRnF zHp$zOYQQlqQF`QqmosqR+>086pt`Q5%8YfPB@|f<{^~_5AcpqZOD=pjCAJClor*Qw zhN=|k)$iZA(Ge6+wNRK!O(!(HT~%|ewkC2(v*^S z_jP#dNdZ}G$O31#;1GXEqtM|Ia3yzmyp+-m(x2L4w49n%KgwtR_xs*#vi3Mz=n1+y zN!n@f0w98y{B2}SV92izoA-oB!E2C}wkoBW>Lc_T9MH!9zl*MDh$+@$_4>X+| z7wM-*p*KJ=yA?X~vieS*Ni0;DVEQ-2(fUGOJ2}PxDm`ni_}Aa%LnQ2bcka>LS~^Wn z8?&M&D&)Q|MAFYFEX@?Ea+IT|+rQ)7y{jvyioPvG?Ww#no{kmCfFG^WY>Db)Y=dwA z>+pEgRPcHp(+})|GSXm(Y(@SqNP5{Roc9ScSXED4vRg(EiOimoeu30W26-tE?S2*q z3v`<^IX?PGW4P~dn1kT)=ut4725hIT_*S zRwZ(vWiIk}^fY6x42zzZnJ8Ly5nICYoPHD@Mxu3YX`p3XhA!C`>=5rSr8>w8$L2QDfHA*ZToKF>3ccdhUa%Si-Vn}HtS7<9&c>Bx333uzabyta zz+fcY5@-1fnp>DcrCt!D-*=b!RY0ba&1xd>O*XQ#6{8TA^}zNyCu<*ZP=pjOdpGlM zQCsMTzdb zahMt2Dh9?6AP=BR(cLSuw}?T!GoZjK&DNLYbq&>%8Gd&$eHCcgjg*L6im!$|G;+Cn zQL);LY-(R$5@7dq(N>wuYbe5t!l|G&Rz;$HLLGSRaIq9V-u{P~K(rVF54_TI1xzN8 zXq)d3kRv0x=kc8>jVG?2uM&k#RucLEY7Ni~M*WeCD~_AlYMJvWSYYn8t_Oe!RBx_U zlyFW+^#jW#-xNxaK2`ru?c3JF+w#-1&x!jhS&lR@Wc|y{;oFBT=~R%5_fkazij4^I zeQ!U?5ksP>QSFsmk1a?)-4&t`@yV7U27dY8_;tHwbKE*n8d78F>iKO6{8g_Hn?5v- z*stL1`FeBMDIs6E<+>%x@8uf;2HsL6F#Uv&^6gvR!oV{~UNQX%GD`0cM~T^MlAu{rQq-hUu?pX`EETq zUMo2YC>Q;zxX2v^_azuH{6Gqto_FoXG?RsMVf(r^mV3WuanZTe>unD1j5tmj5*JIs zFN)=3l_Eu}KSv!u(R3<}BB8%tBu0aJgOcZo}jBnm@L4)>Bx`F^4#U3W| zacX@>*1#=J13!=ow93#kJ2>JI>E$<)BV&-j(6$}p5mRdjHzIPwPAYusTdDn(KZrGDsoGaWF8P8-{Vn6il|rdK>N&TJn+y6`*QJ$!S4&vBFzs-MFsU zC>H7KFzYhPLzF^WiVcC`4a`s9eWhL^1OqydRQpDD0;tIO_I}9RDD!V8A&>C{GYpQRMvZU5~)OV};Suv*`uM<_fjgVPqijDS8EA~{|ykT zMdNgiUU}8>D$UbnR<>v*1EW6}MRu?-S=ji|S}>sIJVA0rG`S6)Fdl4EMS-Iy@a^41 zG+GsLtMmt|v5&vd5GJAqCN1+3-$MuW7g+U}o&r3>L9SVN$Ea;g#h3sRtXdTfai8C%9!&~?I#NQ|i(hg@d6HbGTW#MF z&)?uHPAH7x!~;w$iOkmk%irChY(f3c4Qf#8*{?#IjC(_VHG9Xu$O@|cj{L;@D zd3ff5M;0125!64Mrb%2FTSzCHs%P{3q7n?^wM2jFON)5d*fW@urHi^k_{(xXa!|rQ z(FrzN)AT6DqPgCm%C@^2V}3se7izHn7$gi0HgQq^ zx<+&?+~?Tm2o-I1gBPQl#)6+dliA8XL+r6|zY`=vZ5#vPAp{cZ8$HVjM1AkUgm)d7 zG(kY>82GFC9fV_cq+Z>dBFen1hkv+)E~%UAe>cqa&~awy1+f(Z=iGH6q;O#0i5`Lr zrf&al&z7>Cy}~}n*O24+o{AiZ)cCEk^02yzJzq62GFO_je~;XCM30S za9CBsGXCBz*;|~#6$b?0+S9(C5&wo{$nL*sSjB9E4gY*KK6MU_2aK)u1+_BA#1G-$ zuJQB-a*f`NNfNF|`~bx{^GlCr0uJ+9j!q8&;G(|{!5=j{*P3MMhp-S5RtP|kdf)al zmUlBl1~jYqUz0$;`ah~q%ks!^-6`NOJ+tisf;X;#{eQ_qgo*(Jb*sz=Oh5H# zoUjlZfEGWv(M1Mf3@l-ocBs#ggHGldEw7Y7a>t{P-W3}K!K7jJ>B<^fa0ak*Pd|f$ z2lL4Dq#~kIb*VYA&tOc$_x!k4=N+e=b&f6a0UFN}nBUc=TgBO)k=J6lzv`Q+Y*Ae> zz%bN=F{`67bfC#Xbvn3icf1Wm+WSy2i@PO(ARq>26{x)ptiW@-^-fGiR>jH}u%nZqJ`M}?QAdyN^Hys~50rzJ zAY#PFSW^DjCUdQ6nO(_&H#uZzn=n-YKAv|JbxJ}pmqwd_c;t4z!$_b44WvJ;-_&}; z^)mdD%Nq)3Iz>U`kNZ=n8`a0G*n-`zdaGe`WWcO_S|l}OH1^*3!bV~AE~p=u$Lmby zFVarEna)*h7unw!gAKFCQ*ojQp1(lo49M65)bJpWFubhFsolOqd=S!S80kt~4GPx@ zRd(wCfgx?(-%BL4cO>)+oPV4eag5etyRson<$im4S#5(MglJ1Yu;?Vi;)5iquZN$= zI{AyN^q$3505MtU=>V3#_ge5$_A*dtTFP`}%^N)pyDT;kC?0;3zozHNoeSBj5S zW;!G~4kV3D36{{I+qeG&QL&(yt+)>T8|o*5rC4LkfUL7WCj^Y!v3v+b7DV@2Gn)Iv zzc;9UBE5njA`(oX2v7_~8=16aGe+Ytr$A=!SM#>~51biHH;+~@Di6uS27(MQDV^Jb z&CN!hT(u?rGoUMhknK2#3sL;EgQ-Rk0DQfHvqwJ_@+V+FHTZ&asmv*?7?S(FN28m7 zn4Fr|Z4jaetTPqjk@?LL0NvX$>?kI;sYA`Dg=EZAz2_fRh8+>R?p-1SxE!|;-&_gf z%8KM#@99q}*-aZs0wSLB@P0_|Q|lL6ExvgFb$zCWH^RKX;JEpt;0p9)f2n%+>%qiH z>G(7FaFACu{Jh(E9S6DJbBiLdqgQ3e`Gbu=?uN-s^gk#|cfaO=9IVyX74fbZ-7yWW zc8h*gj(O`IFlQI`^H}6_)R;*}x7*f=w3daew<0K=%c5c_xXak}gPXwvo}5p+`q ziwU3_{W6DKuyht1%;R-9{*7jhulWFDAv@vk4dEp_22Admj<+rGjC6sD_H>z^BfP)A2IpC56c&09bizuZ}sfLTn%LvNVXu60_pyx5? zmyw;u0#!$f%~#U4W5Nkc8IZUFFsWgLTK$v-pgE7Y&x*Q*&H{b^gJln5PlUYWA4JBR z^md*!I403R1PU7%USj4f*eyI~Q}vr|WnQC4U@`lmOua*qpu0?xNG`1VH(e(FLVJ}z z!R0<47$r z(o*&^`Zy>Gp@bZ;Q+HuY4;*Vgr>D8atiG23L2HNi7Xhhl^|!*BylFfs568o*ckE9F1cBJXTe0AtB@Vfx2!&IL0Dxh_;udCyODClXt~G|N*v zl6~cPa!m(!i!YyAB16B9e6*LJR$OKOReV#hMBdZYiYf{R9W+Rh{%!2bNe-cp0 z1vJ9VE5tdjN3Oyo zZ?}s$(b#wd$UOHkfIZ0$P6U!2*qI>IAr){U)=4|X zR%ymRnXuilB5uI>!C8)sRjdv0X-Y&uCLKd|v0sV=0`DNBzbS06i7gJw65%e?pLORT zTAqN1OAMey$VcoBNZy!ODN0Dp@PJ!(wrSWAvdFXlq(^(ADN~QK3jXmw4%^7O!+(7X zu}Ai2(99>17;1Xr`iFs|Yhn2fbk@R^J+aNE4>Xj1 z^E9*g<*|F4;vMD^IHhki0wl~ub8T>vn}&RzAfe~d0^^6yRaA#b=Tz1TI~`BU!J4YL zeY3o~%0&r5{#`O=F-O9Kcol2?m1D@jX%h)6D>nOOh8ai#%9eJCgJZ=`?7_J_(lo^yLp9$f7Txh*jRY-LJsq`_ykfbj*6+{cn?+dU?I`>rX`U|Gw((d}4aE z3z$fi9X$WK)1)Y7*DZRcdNSpf)Ae2)>{J8~+>C0OTAp7)pPJs2IZv`>%IhZ$3hAom zzwa!6i;>H=*C|}l6+DLv`5&Y@=h9CY{-YbYCJ@KdQ)<0U@}uq}NsJ07^^f&cA!pbB6|aE{J5a59AZqf2)&+tbGe>i{& zc4ji}6H(O70)LBr!O-FL85Kt#o|OaTMRY-0vXjRL6mIYn{;)NoTtN!i8UHovXD!<- zXB(4nKonZ|+=E$)rbaF*eRjX1{Pk`>7^2$P(op4Q6v#?S550b?>I!Sp%NB7AFT1Mp z(N5`~S4(Y|nwthvtwS6F{%GsrxbPQX?%zggN)Rnw8vcr}L43^A6TJ0)5DuKfVY>qu zI?!=-V1|FA=mcsFZ-2i1!Acow>FZD+Hsu_DMKfXOoHWIkb}-YcH#;zWC7^Lt6k^MvBwYiRdwdrm8rMhr4FlrV1D2dfD?&~5gY>>Qt zd!wdkh#9L)M1y*tVbCl5864C**0IK^!WjsdS)Gta4_}k2Ev)IPTMa7JaNsdi=g*Xa{=>Ln0~f-4~MJ{-&O^h09aHYNUSnMN%kuyx(k|M#nGxYJ%Is(X@|L zD@v(K)}r+M=XM{CdDGUU(xtNPzYBzke-pmN+xJy!-vauegCNtI@A^Km;DzJ)yt5Q~ z%D6|+N|k$f5a<1bD) z@H(yhY|3;7iX%&Yi~WkfW%qw*5s%8b6q^J6LHXItA&NsGUzo_62W=!0`)^gBc*MJ1 zq8H|P^a8G~I<>Z_Jz?k#L zVolT3T`^PI7>T~c!De#->3Tt&dKC4Qi3DB6*b;L2bZ3Fc6CD~FL3S?Nk-=pebfh!QWj++>*ihdNJ zeTVs!`)Gnb#T)arTG?(&y})a&+T?6OoNLbG&z+Y=V!mBKD_^5of*Ei*f$voLgcT5t9be=!Hb%=$inc z?j$WIHieBfl|WyW0#KGd-KCD_&~n1R zFd2aF_XtWnU_xRcE^+_T0Itc|G4Xc|2bPhbkO&MPqw)>r94D^TO|h*Gv&~qQBa&T^ zVuqqHO);)Os4VE@!04KdII$sGD_~Kmk((a?iY}8;?R+ALspg^ZfNuwkx07KZyU->{ z@AC`d@wMC#x!%}^5$1dVjssoU?t)wT@QU&DW$xbVkRrjcWz$%J=bh#Qf;xc;X}`gQ z@Qh}HbLdCuAN130EzTyK4>_Z4uB@AQpcS|!WGHI%fB!jb)ft~hJnsOLnx5d#B9Qza zxSe<&AfC$mpAr91FwTLy)Z;5w+9->Jx@%BYaj3Q`ZxvK1cwr^{I~ftGH$GUnP@n$- zr8WQE>AlWxe8>==F=>2UGGQJ%@&MjHKSNfR&%6nB{6FV1-|O@$^VRxS&?;%?kQb`4kz5#0wl01i8Nv zIfIB+PF`z%eXk7ByYR%8XfWo5XC?9c`zIzcZ-t6wC&YAY72_t;|o3Sb=0F&{iNZv2Q=Jc zjNzEC22w88UFo1JBYQ5_O2y~T7#B){{-}$j&FdHUFOSx_8HTcrYNfwo)|Xv<_cD<* z7Lfq~kR#{oqz+K|X2-_dgi`J%B+~hjeC%;?=i*o^Gj`n?_3jtaH<~DC58RVMUIJXe&cl}LDK;%v7r^Y+ z2^Jc?2$&Oq!?tZemd`gkG!!t}H({TlZh#}MqucRA?71fvqOK{h(Ks@|i%fb4Yy-Zo zRKkj%Ey6iy8tKBbfY_)()IUgfcwh5K@Tt2DT*EQ24srR38jxx}RZ=j-Xx%(JO@9bP z?O54tE&2-!Vlo?glqw=yyiouN)~lWH1`a2fUmHKuoJKOXhJ4H3%a*}*)7*#sJYMu1 z6xzm$LVvKmF||+p9hkQzih(S%HhLi~4eX86{jkG9eZ$4bVv9NiAXzQKUkK29#u}Vl_(g})^>-e?~j0FmSO-d zmpPNC!xTpC5BiQsUwn(_){P;6_KlYV7Tl z)hhVcWqKEBy+>}d7E}KCUYFy2J01mS#QY@k4dz~2W3vYcv_T$+I!Vw!P>mkpdcJ_z zH*t)O`T~ozK^GzX2%Gsr?k5S-1Aend2MS{#LVupH7@#@KPnO&DOhta~#GF!aoQoMV zGG>3Dza_(zWx(pK4=GL66v+UKY{ph7H16?{H`*j@o!*#CoXT|0Z14K{u7qAK`FosCG~_4?{$82BDs2dE=bL zSzBHZ53d5#vcc=dRP^jew%|4X4_r6h${MN=&f$HA#`=exfeoPP99(ya!7VX@wUaEy zCRfImn7I-tYj$71&^O&PR!Zd~yQvo!HD#Ve*ni)%$T!mg!oV?zCWM4Ke|DHq7?SBW zfILW&2}sr-uZ3NiHp>3EdPdw#(MkdJ2FO+it|?tsq4}q5r=djMV&EXFf<`sp&f0V@ z>x8AYm;K4i#U;8iL!Li$Ur@4qhg-VmtHr^ee6i8-UnHq1gaq-Zz}qb$2~z*kUEo$_ z&)9Lvp3%55v0&SL?%ihPSzf_;4 ziXF(y=S2CIj1(E*d_=);KAR!8EN{>vu5gOfZe~`5yg0oM*Bw9yICV{j+F5Mrwl6F} z4naKuPz2f@_ymE>F++n&L;vaGo>V4}4humQ1K(7R>~N&aA%}Q2`)z#VoNtz?JWpvjOx{8Z1*7RCRy{2{gA^ z9BD>v z?Bd!op|?PA6d2S)zO*YE(=&quXX)%nnJIZ94*GwPtsrDE9nrDvwB&8qDcpLzYeu2c z#(Nt+tyKnK-LvPPfvZkgic_HSM*xmq(zt7v2p*sS_2mmwo{%M@QV0N%*S~=a;L3ze zTqmpK05}g8-%t=BaE^oKfI$x#o~}sR4skhJ?&%=Maa3vNZEaQ8tv|8eF#m0${m6Um z^XgsZM_;3lv;wI^W2RoT{#=o;{;->;r#AKLr}d&+;18%LBP-5m2gU+{piHLVb}?Kk zyYj=YPs6IM#|&*c#xer+E2yz#n?Ef?(>H(0ew1d8ldv|&40p>Ar!$9R))tf)C@cz> zYP;c%W%H)A3KKW|XYXo8&pv6vf#+%lZrnktHCDL+rV*3$F(d?vYy8g^7HF8j#McMH()_aTX z+i9u}dR;~}Nf4b;QQueTMK~#@$am}E6i4mUm5yB+AnQW=Yi-zPNty5@z*8`)>jbCh@`ajO zM{Z?wwk3J^H(O3%rP-5PTszxs6K)5gk`sk_E>twl+wMr6aX%$afo32l6P_4X(mhYj zuH~AfAQXsAVwGG^eC?j;-*l$z87g>Bg;%vjR~61C&RpAz$c8-8+JPB9slwa$+N8C> z@;kJ@=hjJW^{1hM}}3BK3nY4Y|&%!b6i)mSb_&@vOv=>{&bu6cs2KV=NVGW9rjjNjargenToE) zGBDs*wxAe`S2ILdxSPv3Ahvtv>WD@mD!G74OMq!4>;N;>D@BSMZkSN4F{G5R0Y+J- zAyWl1{bH^?rCqAtT*f|7CLJUxsgS@G|1> z2a>_ta=>S*N=2nectQl&sBy`GbYN(5oY1qkm2oMk@QtJ8kvyD zgW7Ucv={*CYV`g$-{>X;Zs-k@_lN&trPy*gxoD`pUqlg|h}5=hC*IHl37hWz`gnW3 z`VdgmlKN0Q>bsW(Y`GNu4WaUxIdZQQYTaV!l=xFk6>cET(S%UZ3+IApNP^Qy)f}vF zCJra2qj;9suFD)Z#Sz;7vQc(lIG+L^wB>W#_+;=Bas!jF6jyzAqj}5)3Xj?OqRQJ$ z4FhR(XY4T_QFtXCU%B22rcC$WRoq3d_Ov**GTgpB9K4MNuRT4Mtra zw$wzb?Jd~JB4s|CCGYC&I$1v7p>yb}@=2g--*S8K1{%j;eMoI~6SsDH>ai zr0|d{>FgUhV);|12W)ESn9SWy}EG0uozyDI7DtK0k+Y$6?eQGv7-p-e<0#K+(!YGYNM(UkCYPC$p&E16gP5OJ_*PWIl-~0k@RgAGM~2gnJ6v0c-0GyUrwgS z1%StD^W@d-0*C`^4E2{CKV7nmQ8lGLNN>KcCB7tdm4-lD+YqOPw+w2k8Rbn6X6(W8 ze!kjydzAW~RNp6;_T?P6GvWA0lvRfN`{U=ZQV&7M^H znD!->ZC(nV4{ADPgOXZb-v^V`C1RErElHS(5B2*tSzTdivKzD?A=9BO+X>ch6m@Yo zv0*VcRQeW>Bo7nh9Brk^FZDB4eEb4@7{f|X0W_~Fnf zR09|to_4>G*4#+Yl)!pA)Q5dhgt^nG=ibnvOoS{jea_+y24NwMoGI56$P=3(7|9h8 z`DURG&yu=`L;h}ed_x$8Bs^mOl z1iR2rNzTL&OM4t_f1Mkv*hKNfictjrrGfGl8e4y|>Ntgc2cIsCIIK_cqiA#nv!j24 zjJ6be5yAD(z^{C9_u+cNp=!dn_1+Xo#r*fOyl~sQoWI2Ds5C|qN41%w7*o*tyt218 z`yz}6cds`vr<1feT%}uoWQ*4Ocu%F*63|hJN_`%mDlkkP#uvDG-a#z!LovD2rB)M> z&JSX0iYhv?m}Uziv7F>(=>@7>yK(risnhk`dE974?_ZGqRT7#Ea&-{TiJycq7{6pZ zN^*+i-lPK+MSH9F3j>-MOto{=dbUI*Qk*}RJ7b0!4o1wNCE~S-HFPQAC~2GCY2H*< zcHZl?5K(p+xRVPm@@aYV?qLLyl+tZ_sc$1IBK`=5YbxM8YWat*EcLrz^ViI+_|1T( zut`59wHnwzLuWIR0)7A4Uf4fki!Hxrz8EZ*hAd#o(-cv<6m?1YYij!E>-Hm9TYkR; zh4L7XVMnlGdz{g-Kh=2& zDLY;?7ITsu5Kx>NAn=Yg=nYrVg%2c1^UNm^B-LrbpsiM<-Ju1>SIsW){wn`@?1+<~ zZ=PO!5ESPSCE1coBbafIeI$+MYkCc~h6o;Q_@ZZ(z*4@NI*jAjx*Nc2;{7X4OqLeP$MxU88Ul?BKR1ER z^WE1z=LQeQO_=TlZTg_v+y$saNtg|5)^xDo-`2-DrN8JP zm3Mzm(KL$pw}vp^vPB$=bHCu8G0afpy4_7WiXmyFhNP`io+g&Zlk4~>oqYaxgGN*7 zz#v(#=kvetgz%6d$!mP1oj`AF|n^_*seyJHpgvVk`84eph}E8P0)> z)f-_FWVPn}X$M1_SkP>BqXQDh&l(-xNF?ory8f4s(!=ZeE2ZGFQzYS;55fd{Ra!o?`&A9lkxhp^5uMqrerEc^p%ABtuXwOpL2c;<`kOyI7#O-IkmmkX(&ImT1S3-n0To(7h*20 zAD!%_4FCE86*a?a>OH7&_t~NKh*Kbj)x4GcLCLFyN3A>_^xkVS2;Ed>)&q9B+P(PF zZG@~z{AQ4nF5aHUiTKAbCfo>(*Ub_Ed}QcR(%0C8@KmJ-8!y3qPnY>NJx(v)kbA$z zVxN&_4Cyh6eJv5C2(C7~g-f#e2OPLEzC3xaO;r*tZ)7~b9cH`*l<+?%x?413G1J_~Fmd^m5y>R}1s<47HH zF{0f|tXRoi3^wTWj;qYec1Z`R#CXm~hq3`4xFO=*Vbr<`_|yQ>1R}e=ov zLhzt$sSU5nw+M4}R_b%}TY6`>W@sPV>Ju}p(bgRgoPO;7sKJor{1cp}^Hz0W^9#Ty z13Z^M?4HMw2BO=?bKKK>;>KiD+xd7MV9-9N&U|1>$6XS?+?8S$;Jk`FCcduC@HMNU z>@yKNNr|6$M&YZvNO*Ruul|i6CNo$`Si=~eU^^oiSFS4QP?E}7o`Zuv;3c>MjZ6bR zJH&|nTV(BpZMsm7rPGSbNpQ^<`;d>0l#7|3{JHV*MY}dPO=d9e z%JYWA#EsCIU&`M9_ig_7b)I1mx8{52z(}iC5_Dwj^jl-sqe)vzq5ExdPx%dh{IOQ; zeOHs`uALp6-ekbY$*P;k7lg}Riy)+UdT;gNR&vRq|A{SO1UH_r_um5wZ-P)+t*oUK zZ^z1m(>w*Nz4{`Lo+tGIerYuW_=v<#hReizTauLoSdysSW_()OlQwTzm8qOO&}%81 zDksoP@fOw=Vynda-n2PSpdT@*HLk^AQq!T@%*{8kdZcQe_npt=^tVH%w}UvZo6rvW z|NcGx%*mj^__uvRs&Iafo$qw2uTJ@c>dLIt;5GL|$`o_B&Fu2a7?pYLkm_h>nz-HC zAE@h}sIcXea>$H?2p!UrijH$2MRfFFbVgTTLb2Y{+5#J~rKXol4>Pg+tGcZUK}5Vy zCdj zI6?RsQD={67&$=x{kM zNv>;?{<}?IK9aQzt(>kDQ{JPbgYbkw+^AYX*RiC>nzZ2NRZ4xosE_klos=11Fwm;& zn@EZ0NB^;^J-Kh{E*=hFnM0fuqp=t|49&p{?`G%)%>!{hj{=8RilSoHqu+T7vJ{8m zSNvc9>J`an_F7x3$xrKDxB|6b9Kh-CCBISBS?t-*d`7>@)Kh=_)+537+WDeCS!(YK z)0sIB!t|lRs1Ej&ioY|ol>X&oWzFO2g;}AuYzdj!>uY?ASfugw9~GzP7jh`t-^P89 zSt#m{#z8jK=52`f`^05sM{MOrCW$k|A+lyX=lM*hl#5m2tRG@XnlpCXX_oe^A7B4F zxVb>qES=YaALo2?74s-1!QN<)L;L5)gu=<6>hVdY1$rB%4d{!@v2fo|t#JO-Kic8o z;$W2-B{1g}D9=l){g7o^(@o6gLp|B1at3}^JXZ6&FuZc|8opefSNEcAZ2Wq0X1LXg zft6q!eKGr`60M9_i-VO17ysHLS^E6p^OpNKqHLQvU2Ri%gavl-cNQ+pF(hwGWF1J7 zEBqM0FO;6|La==V;v3#fXzz;d*I$<38!tpQl|J#a*!O1=C-i891?8SVdG8v zyZey^p?P5T;7+t8Eko%OqZ+4DWyeEeQYiwYak-|0oD=3 zJjhmx3(dpOqswyX+>ox=Tc>39T;-U~>K@aG80{ALlOD7Hc3e~8?e#?Kv!%E${2=q7 zue|Z!vcuCT!M&>V$)R=N@DZ2A>V=*P(j1y`C1#nA%Z&IPw;C7INII=hH*z+B5FgRshr zS0Uc&x3{U%!W_Gf>fdD5>D1Jfcd>d;lzGRyb-dyR0_*Hz7qt5Ob~ znjP+64k8h1!@%vd7=FT8_|Y@OIfAzc{o72Xgp5D40X_I%DYHsmqCncU{2C1ZhyU7h zMLdx6-<1a_vnq=_zHgcA&a~a@LBZbiSt~~Mt6A#7a?O@~fNnY0?mlQL4Vg}AT72!v zx=3PI>|8BK$(XJFJBb7bO%P8MOVkR-9jPCdQ5w7L?{_|SD#-rb+<=F;O||_^JoTus zR(MZN*}XeE8vi@;@EZ@c?Kits0g>9SF`P z!NR&zKA@Y*0pX@2mdL0)Mtg{32*H#<5X&;LIYB;oXf3CS*Ht9f1+XT}sW7f~5e_>u=YfrWw#&bLg zW%Q50)_uPM`aiw0+NPf2aelmpUlb+qxGRJ4KEFtoY2?miU6K(AI0A!qFr1qP63qjm zyDtQd?W)3`N%yibl2&AG5!enDYzY}jly6e#oUNtO(corWtO(@$@>WDgg)+!F+=+o`_qC0pV%M?H<}!BpUC|XmP6!ZdZ1~q zk5lBUkmNPSXP#1pv5(IzRbQ?qT>HYeZWc5p{MYwHvgsE+D{&B=w-E^{yfD`ASWXm2 zjwZ?o$}BX0_ltCO)o*zt+j9>3$0hi&(y=_!03L z`BN@~2NTN9CQUt*B(xm&Wvn)B=c(vyk?+6ngR0&>^nzHb?jnsex!yTV=56+ROXgYi z2ASqOpRJrHgC0kcevZZE&J(O?!u-ia|JGiq`Rv?adRNoKB3A1>*0bi*YE~EEQ!ef= zP%LGoU8(>+)kW1ZzC&%%L#4Yn@{C_imvIOeg9-y47PQq4x*Ml zc>Yo*(P|JJtrK4yDavo}WRTKYxr-z29DDYw7o74)Nk2VX8s%aC)SHdnpeb15!Dm}Q zr5_@%oW$Jp%~ZPmxr~u^-n-zGtUKKWq?gU2;{VQlHdi#P++pf%= zcUW=6hQlq@&f4LmOXx-W-A8NFCIK7V<5@RMA+V%iVS{aQw8u>QULM0viA}BMwNz!F zS+~>FQxX->{d%DnjIUD;7uCUPK9!^Ux1@P;n0Iha0)@g)l84iXaf)M54kw%h+A2jk zB$|=t{_os++X$Y+z(t)ur_C(M7*VbKf`iUxEC0nt(uB``@_&CGYQ6i%6yeu3hnhGgwltVXEPn`DL2b^B1Y0-{9tkD2wp4Y)Nix;KQ2QOu_6TKf`xfN6oK8A( zp6A*p1T6ixFkTa;r%_1c|$?sUEQh6nUE@c8xqOm`W+0Du=g} znYWC0Ow1M3;o>HYXRR^a?~XQ`I1WbY+LMXQ-V;pz@lf~jOMT7hMK{b^jXj#mqY~8X z(ac{!2wiYtKA2CB^99dwe`ad?rA821^9AwhSEsw=ftrn?)sXxy@)THT0XsD`~1;4#Xx3PTubP>m6R^lSjs2}g$asD4b#Ya2mk zeSLsRCK&9`Zu(B-ZTBi>(4EFPvR}x5;cFSaSGYwv2tOK(M}8#hYs_>rICH3Rl8=cX z$@H)G6@|G#|Da;oG$tEN@r$*`oX7(4;+%4RBWXlrb9)$xpJNRe`d++oVJ#d zoPNeIe^wPpt*9hp#+&MVd~m}QEN^m1psW_}r^LuwfW=1CwN%Gh9sNI!uEDL(uMe*+ zF5AX(E!%F{#&RuNL$+<#GM2fpY}>Zodw%a9@V&0@^*rbKocr85Y6KTI{aDL6mQ`#d zX88OUV`+`+`rUL*zt|@B6R=s9FD7Uac79Fr8fO4-#$Ss=3_v}R!t0CD>cn*O+)SH? z4|;i_WtviW;XsUokI~9}*mOmAlofwP;+toU`_~^fn3C5CX%>HiaBki^{>%_7JhT^& z8F6qW!|(k;&+S6~WXVA={BojN{j_uWRpBVJ&^dT0=t;u)@%yN5l=Wj;5N$p~^#)~< ze8GwM8LD^;d6i^Tz^K2k?_XGh;q85d9)p>ZO)f5i;k2^vHFGmmGos|)%~~7s@ie?b{w4x%VoN~Lb4!NN;z;pNlxoIn-T>J zSOZ+phQ7`GbPY{3#XP>@A5d^NeH;HrF{o!MC)$RgIraoy-?1s1zd&-ejGbC(GUZa9 znaAk&H;sIZ+q|qTpFCqP3xU+{Fm^P~@0#aahiB1$!_%1OUqNgRqXj?`!eQWeF%5XW zErVU+X*4O*YlRx)24g0|1#v&TujDWEzTDw!h%1J;??FQ8LOXT3Zcd!+y_H$mi*~d4 zE-T7kSj)_z#sgdYlAEZ7LmJ(KQrQX3tS>Ltx>H3{3Pg=srri(gv&1W(Dy=bjxtHzn9jb`!^q4)dXFKPxB#%OLN z0>(5x+S`w0yCxAyXBz3xSUeM`{{r%OzmGg1G{7+|R8rBm2ot6>T^!p=e;AHyZa3-% zl(i9D`QYubNr8y(3AIj{2A+DICZs%H<=c1$BlTxM5^8%6cnC*bMOB{DXh?N~@r_6~ z&~yx^78Qf%JZ!jnKv+%WW9%9vqqux~g?k#a(=gal;1_C}_i*;G6XPK2a^#-hxaaMj z2XO2eGIrV3(95FUbwUel#AA?aC^gNVl)1sC3Ru<8#GEm4QO=SUubH)!|FUM_#rbEx zp;ITSKsh_2^|}a6XicV2Qn&b$#-S55po^!{%p*DT7?bYz8N^L=N)Eb3u?O{>iCF1C zX(}xfw;#Gpi04blwY<;RLuL=z$IkGX>BQJh_@f=uJBS%(W7cqkYA)+aJlSoyvMoa! z{PkB)>ZdPz?g6RX`yy`bdS7;YD8%2y_Hz7*)f+#jO6DqhuoN-0T%0KO0X_4kZr#Mp zFWafi_VM|$aZ-1ZBuI$wCiitNPW($P{~v>&dY)1lc*?%=e>p_Ba__6H@fF`I(T}xS z389J$i#ue{HX?u_q?DhvoyC`O`AI`6l;Xxhoml z^4a|9HZkSk!JzEtve46Ge{ON6;_|gc$c+nJW$_dcQ>ZP3Z6k$lLPqG9Gv+&)iG66SjIS48n_&c1-j+Hb zeKnMOMOXXS3w!DQxCp@uWKaM0V>`V;dCh0DL^%ro}8$TG$hgPlnj zW%iT;*33{=k!zqp*~^9n>7ur?s;0TSv)9KRG|EuMkIbQ;2U+j0LUPHYj=-@xfg{qo zh%j`5(hh}P9MCv$p-UHqsfyTq#9wM&_#E|UwsfoVS*=YANww)(8>^0~&~pB0v{CMV z7_}uO^>HFWOIB`j6z<)`sF18L+YH|2`VR9IM)n_%&Y-odRtjSom-mybRwiECpb5un zB6N$gpgysPLQXCG81#1_9JHo6NzJBmjVeR*rJf64^_l zNy1giH10zY9KH|p?h?2JD__TE=fh!_wX3IinYdjhx&4oUb}Al{Z;>Z4oYe(LICxV40ulS_ z!bb%6O|k?_v6Jn5qzL72VSvVj_bB`%pcO|^X!CI5W#tH`ZYe3HORZ#(E?fK|Yt z_+00(j2XE-!vd_XpyH-NJxY05dmH}PtyY)iRep(`CJd|fzYG<+C?aqnm6rGwm(HO& zSFt8V)p59Q%B|im}n0aGPm>uR1 zG?Rw%M*qq_L7?|dV7l>29*xAQWK6G;>Zu>Bmtf!Uc7Gh_iH%cjbk0qQy|k+_!&3Wz zx&1^QP-MVnl7w`NAje=MrUqoGh>AuSbbs1iH2GPVvbxW;+-Ovf&G+xnFAp}v3Vo!R7qudFlJZeWxfKtB$58d2AgdIuCwR=At9g}}@t~UvZ z(mTo%X7Z;5onwGJAPxiL`K2lVw`-KD9;rhH%RD^^xAm^8h^;k-mPerPF`^swYn115fFX)AkGxVm@QTjeJF|G(DN8- zOQX;C=X6HKRrZyG6dkNnz}zsJ*w^3%l(|4VKMp*~_h!t`w(ZHxJ;ktBQh#+Oh=~QJ z65856m0yQ`GIe{p2QT;a%}4>SBcV0I;u_j7M^3o5%)J%E&@82gO~xUwt!~?%TGnLB zB~|>0o}K{+U7PF^Y*(_C8@*nVb!)^l$wLAbIOhH~N1yiUl&Z3g9iV%L9u+fJy|7Sf zKWPt+k>O*2e6u$>XGJswheD2u#os7&JV&uzxr?rZyjb%bPA98cfU}ryTZ*8H2Ag}a zutQe-7GWL6e(EF~JqII_eL7Pb3yzP^l29dcX`mR^+5RKRQUSliD}Z+;S?U{$nQx z@{Oq(TUmD*K`x<4yB91$6va!r;!C5G&7f@V1e?|ji*Lx<_0>i043Tj(zkcs;SS4j; zUpA$j@rv4;qdjzSjewCqCm-WN%74WX=G{zS-u*>$^@1f-lGeC~gjHVm4ouUo9LJkZ zs%=Y_Z+A)Fk#uW+X-gj;kgk=mUj3eP+@_0mQm!-&^mz^pSGsJ-QkK=18At>xQB2c$<}KXUs*(%9P`X zA+Sd}9oRDKhMVZ-ZuYhqwuo9qsu(7AWDUU zDZuu0i&mlYvqguGeAW@ij&M$_-QydLm0vmoD+B-UAh;7iC+5Cc4PkaOE2T(DKP&_v z?g|wa^}1%pzU;{oQ`R@!SfM9a zb2W8{MB)hogMNFBqko8j1LRTG8f|vg@TpJW)A0%_8bs)I1`7pW2Jc@z^xlYXa6W(; zPCv@Z6(Y_D{)_=iVTXUAtC_U;IAOyFC^%=|+nyOlojoPX{M03|46q*(TtZwVYThr} zq?TD_a9#a2ddhj8A*eBmvl5dT1Q(+Vu|1b^Z4w$mnH#XHvqjZ9O%+!a*8`tu)z{*F zy7IiEzqQhp$dWu5bwwT@Gm`F(ShZ}Dbgu}`bml7NaY)j9h~M+z06}&zt;q8gLmkXN zeyPDTH)DC0KeU=tmO}~4!4&@>BCG==DPC$?^)$PBAbU^tiO2;CvUana;S6X_8;vw4 z&^wRT;tA*vhkuBfeC*G!bEG&{I`Qn#Ws|qw5Ag;VE3i0x|1i(kcPk73u}WR}^K;=W zo-9wTt@QiWevF?lgE8UzdmW7J!FS+ZA*7I{rdACU2S}tM<-73T{Q?O~6Xms8i^gY^ zF1HDVSn}Vja%3^rpfSVF{`vWHB;!j-lx~`m9#2G$|8h06|6D691dW|^c4|1?32cCU z?A<(hw^sFIGMbbpgu>7&6BWAPvAW4dm@%*{TBM6Dq1!j4(g(X@D@lfcf0`I6plku9 zI_cL?+OyLQy~%4gX)>GWCR-8qGX6mf%AikTNd)M;2{v|q1I)lKlz9mg-lX=!R21i1 zYeqgd7VgS&`QxeLD?Pb@ynsp1o~0uU4VEfR`v+C}QRw>deZ<{7g+mh9Rdx&iqf+k8 zQq&QuDGDd$mKOZAQE&|~zQ{*|;p_4J1oTv;;y%+3OuSu8#DN884K3^3fiKTZ!c@De zNW`rw5oMC?DuP_`@v^^6*4QMEy-D^uPkt}|MpZR=mw*?$sd{K|+R8rUTS=s`?#}bA zQljz~gkW6#cU-p{qdF!NdsQAs<+T(I#C_V~N$;(tJcT1?=;jhr4zO51Aq=>r5A86s zsqYMnTx$a|q1-l2XnlFM$F!9Ik_QLeZ~IvI`*mxegX!zlU?itM<*|IZSHW~dHKnjB z2Z59XdI1N~=7L72qOvlhNbcgIz4Q*hdl7Am&7fabqZxC-t*OOdIFb}cAPqU%u2Bis$$#e|4-2J2Wmr1%A|vDS-s{6T62F-rwCMh|IQ zKd4tBXtCCiUA?Q@oi>ZM0_x9hC+ikPy)VW2|Kg22mXZ2dk z-Jd+{Z~W1hEmiJCi1yZozpzm6{rJp02b0U;I+S)1iEJvFw8K^hqzubfn%3-9!(ILI zs-02hM!(&qK)O}b)F@~|QkvcO;E&>fyByNqo3du&`4fe=C9$P&tJLVMzF(+*zWpvl zFF;442CVR}K%p=t$Kr>K+>iY`cr91=`GHSMk$133*>)&h&^loPxHpEvx0hWNLhf!t z|MIZ#LIUq2|1j?$CJzI?okh6j@-*jaWJ60Ddd+iT4w%m5(jCB(y9xEx>G8OYk`;+A z_hA(;J*Y5!z&w=uXJ~Jfu;)Z4=W7!y&rx90!-Koh8uLX3nQiE=94)gV*``Yy;%%b7 zrJKkGsNNGz=&5mi)FVSSa5NgWlukBzuDU_6WV%SxoC`Ty6qS^gZW`X-mW@nVwP(K5 z7Q5=CZrSRhwv6PCKL>Ez7FW|zVMF^Zx!myvMgKUp-z{at$3vp*2CZVmPN8eb<+{|3 zkg+PwQWF*N4uBn2S?H8!b`?o(CrHdN;*j}e0doVENDDQTF2GM(?!FVslYSF&g;ekR z{e{U=L}MiuGWpYpUub4kPgY{1=JGrCv5lp*n852notX0eKmM)0{XTWL&K}?mf25#& z1(2sfrC0jlr40S-Hs%pns+lolR~|kLvwQY_L`?B&i|^Gln;JhIhOAq#VZr;48JNdIJ2p%i z!hWX*1Ji;@*N}*-y-c36Rx5OVA>ojB2$ngQF>bDz*Cbdng9);#-+3z_cVCW6`+UuU zmF!eMsR{xofTc8V%`FBGAht!zRrbSEoenC7r0K~FBB|bZ@{c9VdUvnOFH()(r+zC7 zSfD@bO>gEOAJ z0SInL-=$OKfs4=9y9KNk)thM1il4_dIco}--{r=PbMo^|f_=AWBlpKxdnY-=mH<)( z-h^L$+PRS~jqm?m;o2&OqAyOU(0C<|z%gc`TJr~tLVYuN-`phGbkvW4K5kKX(w0A_ zQWR;KbFTD5E=dbM)P&VoS)M|qUy^@Dcwik*Mzfno_=BkBgM_UG(QgVSea~;-?`ccl zg#jj(mEH`nTnX}#8WtyN536Omy*YFk!1H8Y=$AB|NXPA7)a>-*3l>dX9#iOO^(%VW z@DSN2He2Ujy;c!9gZA&&SYyFE>y+4tM@`NeO{q4TAp-|`TQm-r50bala>SiwLwsIJlvF@kY4kSh6l}|s@E5c+N%&C z&QyqrXv0Tc%Y$r>DY@-YZmer5^v=?WJ}DiyZ5x}Z`C_g|U7!tOEdr`tBL)pE&K9r_El7s+DX}Xly>0P1FXcR3jnFsFH+<~ zW)Zb^NO)@o3K(h)ky|=HB56k9i#5~Dt9EKYgTq);?93EWSnZCCFOUB8qHMD;SoU2G zyj$^cx%{wUbk4t&HvMFupP^52@N?4p*nLh(S?bWb#yzGZ4s4)gKc*s&&>76}}+~ zeao?owz0B2R)4jx8?U(zQwk+Z0vB)&w=0Kwfc@zTLH1Ljwc^(ImXCS_VQfELubY&( z3&*#XLQm6yDY&SM%Y#2Rg;rcfX7GV5 z54(4cEG+{3soFHM30}Q)9UT7P@5^g-(CnKYa?Xa*^fkat#s)sjxogbmS#y!GHg%(g z{QY%?KR3~kYn2E1q@Ns>hM9^rb%m&>`@&iaf%MMUGI1bWEpXAQUqI=r^O1MbCy&E3 zI>TAk&KtFUS89?;bWr~){~-rNvvlbqd|5rm{???SoJ*Z7eP-x~1$I6fn!Oli8gRHw zo9Jm1?4)a|;nJHF`r1a%7leaE+bp{2#+X33tlpz@|Idcu2yIIo!%B2s)bSk~-mHrW zDa``Dz1n=4S*k{;2MlHyeB@q9MimV+_5IN{d4RtEFE(aYY;J~&;rP=@-t^1}SJK)h zt|IPHJ;O7?>c(SmCO%E1P%PIV2?U$%JZiIi3>X%xaNX~(kjOu%fIG0t+wW;J7rfaz%W!z2`Ui%iPmWpt<}vr6NsOFjcvu z)w#~~q=>vy2|RP_b!*~Adxka4r>~Ukl9r|4Wy6o{dTeO5{?g?KrLGD{Ypb-K*c4<= zAd+#b`0$)Mfe7PNl0*RB92D7OZrZAi5hz21le;%kI$;Nzfqcr>;~23*~*?D zYnl0e*8@pQ<$06TRx%s?5mesKG840+t>kqirOtyXWI}Fr^pGGX`i0sO=V|N91?{!} z>a|!Fg+hkKXgcKje$#ZiOP&`V&Xe96mq%ECjZT<(FPlxMM$h9UBP!YKY|-O|W==wp zv&?^MsURZgelD(e#c!Lh6R;u`KZ5b;rmhS22W#cZJVJwA!Z{#&Y_D{!oU}5x!`1)A zFJikxt?TRJw>+k=+&}N7#D?ycM2um;!_Z=36C~=(|NF7{B(YDiEM5s{8ytFJTREU~6QKT>WAVPFOWWYB#7o%n|^Vb2K#A zze<;TgNWy>Zm9f}?x@d_>FkugNQjyR^qd{W#Hl5~%|z+BbErdLaZk_#8ZnrA6PZu$ zpz4mQbWC{u765#`a3PreADh1b#XJTfOPZ;O3*0A~TQo+lZBoEl?!djhO`WGjtZ@@v zjwx%=5f;?B;k>Ay@pF3SsVNBC?@G$zlzgD0st7}D?|N}UjseVrtN>bGTosTC|x~=pG*`3w0ut2<j zJq%Cw;UyJlf8N?&@hy=URZl=p1cvDkCw#qvgmlNaWG{Q+o&v)YNqXrY;(}qpl~AMt z9^VEsx0!b+Yyb3$?)yW3Zp-AlhPq!^k#AQ9GP2cf&z_V6vKL`C*bO06>3!8T2c5O1 z<};lNz?9cvTzFvW&!oN6ia>224$e^fqgCg;wE(n_g9x7UNVfT#uu%v5{}UI*&L%H| z)#fgx%Wn><)c@^>B2HlcAd5=3EtrhTl3BVkg~48Vus+>}#FvAPTd8eZ(rl5aDdR^3V39s`X*_CFRSz6|31>)=ifQ~gu3_1_SO zA7s~$E${MhA?&eCDy9k5O20CN#x@Fl$>rokjER#UZ0^|}oSc_vf=DFzJZ3E`F)UX& zAQ^IUs~-yv;(k%r$47lJ4vtk&z2<<7F~E5qt^ih~%4M-KLBh75y7UKVP<`JF5Mhs%)kK8(6WiN#{zBOV9g~@3l8oQqjU||WCx&ez+VZO+=uPa@Ofn)!euejBfV&Fo zVxiPqq+WAtzh0|YVEznvay&wi?f6u%qXdU(cQ_m*cN#aevwN0~f_uyJ*r zHx}||+eHY*i`KAWqh8w*po(;fblph)P3R2XR+hD=8pOgpNWE=Q)m+5`@w(bbn_joe zr8L@Z>QYAxt)q9X>CKhMa!Yvg_<7gg6J(QN>;`}m@)esqldJv^V)%Yfu=WR?^T*%^ z&{p!%0o>c`dodH|ln-_^#pjC9Oad{Ta(2CKcApc**Fn9yH)Aai)(p?rSO9yJ3=LJ? zp0!rMaZ9iw7k%t-M~0;nitbA8fg^{M#6Yv=^ji`n>QY7!e57EhTZ?La_5>C3M>-*&$b2C2Hroe|_s#^x>X?EM#qyiI(d$@FB~dYxnP>6$7=AKlz{?>3h7kL*3@3O#_%Hvrz!7 zczgu$1jM{VOt~I%Ukw-+ICKXVG!VPdoev-2{X%A(wNIL)dL2(GmU}b{Ztbe2oN2>-bPM`fTBTih-LO&A(j~IxUcIPX?o6k0fZ>6rYSdm6>nk1>PBkAlvqYv9H$Q5SHY*6Z1+PRDtmEj z#g8(TIrU7AZ<8ntfVH`xp zXGfS+wGZOjdm6U6untiY*4M4-wnLP@%59Yz^|!Q=pRT2Z>`g?HlvrSWIuFHlD&|j= zQwB^TQC!~s$zAjPQL$rwSgWW>-3bg^U}TeY z&6ukkcmn|6|?F$nBxldM5&&x-iy<7RW1`3!= zU=^C9hoN|bs2vHUU2mO;IGp&3V}TKf{$VhCyKHLlqg7SQb`2fxn!1RdYMygU6)(fnmyS6*UA{|fer212r zaom@FJ-Mt?O+1hJr@|sj^`aiCOujrB$Wlh#XFYW>A}pGt0Y9F;l!nZX=U&qqW6*@fp5&4f6Slx%)9ljpJ%=`4h*`GH~kXw!+%en zlz4`8-E!O+)T%}LC^>Oz9R5-JT}$@8z`OXfu}f0jYoiiiEJ0hcbL+l8=ub;7;q6_R zkexpB?@GD0A%|RiP1Xk9j)y#xg%YhER)0Ugy$%XV4N;%9oWgDL;G=Pxe^}pj#}X6V zG;8_`oymxW`bxK}^X#L8T)iYSZ^wY%6a1-%06)`bnRawoN9eqKseq+*Xr;0KZ6)i5 zw#{1P+x?64XWM|vNdEF}jk_(Kw=6-HS8F@0)5M-(_O(#k-WSw&2O;&RS~7cY$77z+ z;}x^Gq-^E4dZhEKP6b;sqM}8c->Nm21SSN3zg*y;hE1su-I-58(%3z~1v3ZtX`F7; z73=udp@sF6Jo~?tQ_A&c@DF5|hOe#=rM|6sv1%yrQlLjwJ%^514{5~Lo?CM&o%_^; zdTP!PqIF!=+B_|FZd7uoJkBM1qKsjJ8YL2@P0BN|IdGtA_vijcyl(E2X9HY;I2oF^ zAA2_e;T#5!5{A`At%1h~pK6#o)^2O~qzPi+d#uZP9daoi-DDO{I)g6k%C zBMDuF+Zr|O`S|n?OuiAaHR^hQT(g~Dk*(C}0eQf?0A1dfSU#kQd7rXqAE;Ks3gYkD z9WRQnzI>;qqWv#;uzwoZquUy;pU9y;PwJok`6xzpZS*a^4o1TsCQQ>ibMfar$*!W3 z6qatt$cfV}X&81+b1p?&Fs+zq=Zck-4u-sXofel{bub+;W=L`NpiBR>sHN#xWtw9- z4aQz3py0i1M1uPjErp`A5d9dTDaINu3AtKsR{QSaZ9^)j9402s9nx2MPQZvQ^{l5p zmkHIm63-*lYtezy-G4{Jx8b+_#HHAvR`BqOQ-!n1vI%oZMF>(OJXR~XkZt1_x4J%l zLZAO~H~L;L%$4P%Tr#j-=r+@}WQZ4h2E2h7jd&bq-|<<#rph{T17*HTf-k(;Lzd|?=~z(l{fNt@+f>MI3S^(pq;75<#ZC6gqM$QRe&IL#0z24(~6{r<1M z-uPaHxDc%UFkO(SQxlbDl__7$sG~+9*fHQvqr5|gPE;%-jvIvZM_|Pe$Uf{SDe{K? zBkk;OjC{f34AS>VpZ|PohD~vb@JGyeh}2lgoOy39QiiT**7BYBOlSjZPK7S|7hSO78S>1Px;5*Fuv&_S>$bKfXv%enhf57u3yZHiN!Wl zveJ`P(F!#zDt7VJ%K)naY)j69k;B}p!B*A5hPwZjHX80_eV-DEGV(NgWEbpvOT<5X zm5II7`=Ann0IUckC|V5nTN7liE)ZdtR33BLcy=%!-ZO*|0KI4qKe>dTN)E3D!~GHL zkJ(=AG9#+9By(R12cA=7{tQboU$S+WVKfc+S~I5te1VU&tNjsSrzQA{a8&W{0QWt! z#2xx$XXau0@NcTUgtZI#?8VqukZgEN$T?eAe{1usb_q^|BhE%>oeL;1ziXI>_CkYD z^*d;ZKayF~CxQl#g_O)8X~w^{Tz%`se-ew$(^rhsL~xI*lxqOzTO)%#pAi{)zw}j{ zrMTZwa^UQsm5ThQN%OX~H7^8}kB{6*Lk<~)?tbGQi86Jnb#-naoND_7&p(}x&2q#;$FmBiN0FnkSXm96j50-5mCU}vfj{wguR{_Eu&<- zDR-wPfnB#1IsQE4?MQ^@T*OMA9PJQI4(J1UnLV-oxcYfg+2()N60@3EI|T ze5hGqe*4fh&-6(3_p}NGlQzhjt_6C}i}0({Z(_mKw1YiZ)G>hnH(}yY=;6O}S9Pb6 z+H=1iWB+0p8To?Go2IDWqUd%Q_F2c|?8zyUwq;9UI>&SK-+8mo zf7b^4d?@UVUq{mnV`D>OPT>hp{V@44mL>+%4G_dSxD^kSJ=Eb0CS*iO%1^(Jf4t^? zy6Nyc0$oSK4!mM=F&6zOGnP{La~ zu$0lcwY`(5@eS%^J@Nm z)+$m{RiJDF_dB;1!o`0W5yJE5oIkAh4%H%t5CPs6O_4swIyo%j#}ZEJIUoG=peU5E z`}$n*c1o#0iyw;G4E(g^qdgU^{_=P@QzA#tcdKP!TY0rsz``#D9*eiL%;BZaCRhSZ z*~Fx%aZ%&^DCQQc2ojTvDakoJSf9Du@R0}4XVo{>dXdq>l)~FPvd-NGVV27SU82>Z z)&&GOrBb)&A}g-^GO2vSNp+SURkvtA@FGUI^$f)p1W^dH%suU~xzV*i&*=QRI(PE2 zlU5%ffqcA^gpZbkje7qMD*TgxjLlnRn^wOk#R@p>?ft-Op!5r?)3_CgtFj0jBy<^$x zeqgpl`(cXtb*yUlchv)0C0rjKv0Af(@Bw?@zl~g-WN`W=mVPeKkk{S;SwcX)W81DS zN0@7jXNJPG4epDO%fRsMihLq=gdN-^S-2>=!5rC=YD=w$gT=5w%2;J99LJuGNMIk7 z#owVs{OSmmQi0g019gIvv;upxgQSTHv z#?`31L>={vR;W+4CP|pSMbpigtj0MN5KL0E*hrOpJ{2_h$o>KDGUB_f{0{RqrPj|u z%2yK9u|-#?_$hS>`WkDjfLvRS7U6!H`hkmfrRpb~i5A6NAVLQVYA!R+@_wNjsT5}u zy<0Z&-vXXLMb$*e2a?U1{{GyBbal3MkGA)lH{;!@!)RpiJ(%57rfbJNKDQZ68H%`v zycqbeG*}Mk+x^bfuqn1IDHrq{J25OB>C||MN7`Nqu;0mJ-OHPa*KYr$^`{UT+>OMj zMw_H-*X~pP{3xjp{K12%;I|a0J)4nL-uog_Uz8S5dN!Fpg=toYHS)`y_V62hi+1=T zP15lf6L$P0$K-?xUuVz_wK<(XM}86QXs}itIpFQi*$*p@99$XWc*@|jZAyk->ITs=%!qKFYHhMLwyM?UPD!3bXwq{m5Aqy z9kb~Cj(XJgO!)3x`1V}5NOJ+k?VCd(x8H}uvB{|(0Zjc+Y+N*5lrIPWW_Y}%g3ouXew0` z_d<${r>U@u6A$hxD*;}U=n$_ct;&~rY}nY=^98PhA(67^j<9NG=YEpH2LgH zFAXXd?z!7nK!y}8|F;XluMcj%@lrjTT`g*g`10*0SB~fWj_Wd38=Y@=8oM1StUq&3 zE8e~PTrVvqtU6wF+LYy%}LX2Lf}*r3Y$Q;>!5?+v%8Dz~#$5M{Dqmf*D2VQGGODut-7Qe|DD{ zJA&EuHeYTfFkKpMO6no^NTKMBFV-_?Id(Lh#H5H5`oI|p!ow|7%dh_t*?fl8H^5u$ zuZRj6&3uf;HERqkIITNH6gAeEdK-QLa9_$PxHn54W7C!zf4s#F7s69~{`u`W^Mbf< z1JyQCSJZeD)kc+OO`HPt@^eN?pnR#p^4m?Y5m230s_N)PJ5 zMehh13Bqd@`6$u_i}A|iS=2`w7KMGN2R}BI!I?=G2b5DtKcKX*PZ~}Z%w36Wy2TDe zif?HS(HS!Y*=4Cdg-6%}$vLvqX!Ye)h@NVeulGd-K4eR1=p11u+*u&{YHlGG2>znz z&u6|hSSLYw0qozkI3U4`81*qDI@iGJVSNj#q|le8HAU5%=HD1W58!K)vzw zT?{)hEtZd+x(L09EEL$-e*KKT>Ci*$`e+Gt0(B6lC9`~&?yimu5oG?e5l-Le>$`a1@DKdq+;0?*FOEm#Pm|1^>9X3V_c{$^< zA(<~+bKo>^1~KrPAY%5$0uzEPQH0*$tw2JIgZG4hvYQSbWL&koIwvSJ;U`ZQk5CHE z?8^VH=j^a*K5Xmg z)tSh`d82$etH|OeCdfLPV<59R%m0VRQhEm$hJF<)poSg8G5$G02kAxq0=HigD?QRO zRuk{ovf`p{6jsG8Sc>Ndv1+iYYQ&LtU~0^Hu%{zyxwFSs;Q}I< z@85vuCm4A$V&-CmUq+0k)LF6ob7c5YU&13X?i}|qk~4J&(AE3zR#9uz%gmF5#Vzob z-$+?0!jnmKVvNTxP-0+1!qm#Q?y&^LVu~%Zgua|}@icPr#yF(;nP85XATJzk%2x2< z({L$s2O(#_ALW&WsS~NeP)15t z#BT|j-U??@$xw=0ATcC3njfvCda|e)Ojz;DWwjvMC3M+X7~VQB3hKNlr1;@7*!INb zu)?`wqN0uZO|x_5_wu1pLf^Zc9L{7s9!zt6b|Hc)M%tV)Z}5qc93m9LB|y-Z;rA+> zV@|8JmMN5S>TR+YV#hHI<7Fr*e{MbFyCq9+dD(KC9driK$G4-U<$M5 zpAYPT_A=OK)Se--kY<>fMpnA@PQV#b`l4S$klA4Rx^CJk+Mw(NV|vlGu3!pJ75*sE zsW$#Bu~^EPd=WhT7s6k7P}HP_`5!VFf^@-p>l|)|V*t^bh!~Nt?h{EnBLBcy6c!1B zGITTUrBcCX5oysu^8_T}W55QjP3VMX*&z;w4V|c2h2L{$29%i)egT0@ScuSnG^)`1 zF8)7*i^BLJa$fO#jf7!$JjijFY9kha(*&p~}X| z#&%dq;T{iwgpL0O7fXusYCa8Z`8LlU7HwV1WqiAri2tiBOO_h>wiE!5<9qZLXr#ff zS7}}%?=~`z8^-M$f7vah4ZE9u{efWeW^g9C8MwA7+!*|ZO5~7SVW{chU)jI)exSS` zlj_}SQbZc%xg-i_9R-Oj2dwTeJgzMTvs`L2_P+~;uiMIcEV|pH<9|qIMmk& zh6DEhi9e5-(Op9QynyZ3dKNdl#hhOwL#U{tk?`G=B$9EAyU6j=_{wTazV$h%jdkZ( ztO1gc0;k}!+;`2trw@3y8WChGK=J^-kc94X(ULRqg(|RaPOKrt>~Wz$*_=D zOGI?~p_3UWG;3H+Pbyd2i*|S_zC?9TCvXxAi=mmkNlJ0>Js~%3gjWhhI;MCMz@3jB z*#*6kXcK+g2zN;4Em|8tR1aI3kvFN4ERo8+gK53`rBx33g26kL z#1POpC~P&%{DjOY=m_d~Hk*mx6zP${^Y~&o^K}ZpNWe9M9T;eA;SyarI` zgD9W-A3sdt{sHZx%_IM~=NdnJ!E7PrDRS)jU6Pm1gf_5AI%?Po2fbFQe`9vUxFdp2 z)3GR;uFdr$Uhujqu<&{Flj@CU2Z0v*!g>5e=N$@%f{(u^e!g75s?8 zmM3H8<7alo?mI^jUWoxqg?D%)JpPTtLcNAQG% zvHaFHPVR{(Eg6_lPPvC(h2-px(RhnGDx3m*W5Fne+t?Et3a>2kLEF?}lg5fVI((Un zFl2~qVTZk?4Cxh(`OLv)soK9wC#bz>KvSZF`g+(kKllWSQb&gjSBs)&!c6tZdOij+ z)f^{+Bs|@Z&=o^W$J6bPgvh;Thlz17nVfk#?T%0Vaop7Adpu_L7i;04QV-xi(qN~u z?IiuzeRP*XKH9P!q3Dt|FB{|m1R_vbRU`AcgTEIP^EiDO`nNQ!K%vDmQ0qq-Rnp3& z5f||=CCt8g34p>7`q}T&2)~^>M?@2uqgvsRbWx}kzrckH3rpZ zjCnt!S}VfOE zsK0<0{!o0D`OX>W7Y_+Wys4>lQ(67M5yBtK64tXWdtY*8TAcS(9VC^TN z>H2{qPOJJW;XNx#J>CUeDm+6k6X8B5U zKv^ToT>A>zw&Osfn4R0o_gBTHKXTQ_)Z8N zq$+&{PzXEp8t`F;i2IScshRUUv%JpWxf?>w-2}SZeEbROOWBLT(puk?#L)u67jWsq z^G@1l1GVXsgFjT9=wgFD&+`J5DhASDmo`#rV_t?hctqma6*)Q zhI23^S6Pn1#e4GurUB6ta!JGQv@U1Kso^St=B`>uC)wa3=qmo5?pzm>_B8YkOlSj% zvzKuqCIlv}{N#HT2Xm^gumcbbU|ARu3Dzo$eaY4W5$%Tjp9yVEHYU{SEXA7n_xL=1 zh1vW!B2+=sv!LWo`AEO!loYf++XcTYySozeP$F8>QMU#1S~ybydUV?F z^MB@+sTA%trhVT(+SdM1URutp3Fg+Osb-(HYVAi5FS>}hx$k-{Sn_Av0;Qjwi6e-` z`o-LS@@wq7lXkZiv#OYrzz@;@AeUbis9o7_vkq#rrXtMYXDm!*u;Qx}tHO~Tk!$H( z*r3$_U0#Wt9(xNSBKUuDnmLi(imf$l;B(^sGxx*G;-u&W!Q-{WGxHYc8EcY`53-Gj zBy*kh+kqmMYL&6>&`jVZV-C#P&%XH3L^Scgmd=8qs^{y%7N|%HDBX=ncX#(C1VkF7 zQ_=$I?vn2AkXE`&kWkP|N_wRvl>g@UzV{Q%J!j6IJu_=P>y3$MMx)+mf`Zw2&zd(G zp+3HZ_`MjgCnUJ#MCxy<^UQ2?nl`kv>jiF6M3x;JZQZ-cV~e3@4KD-jRWKH(ap*7J zgu9*4kNsH8Qd{hIOjEq_PDQaaa_wCSY!0MS9&X$eB<@|M8!@$H_gNtOXw=>(rTwXy zT=lG>nKhi#E1tI#Daj!p_&)7n8THl$qXn@m21G@_zq3pqGe1_|4F!WPH$9 zAmY@^bkIlcUGU$2QuEY|>*(UigG-LQP;9b~SB2-fM-^i|tv!#vMyi4-8jN8*3{R)C znR&}T?VjFd&yPImHlWk)V6DyrKt;5QEih7g-;1;^q2J|k84*lyC@9LQ(#46kD>X$& z7Jido7QSk0fwS_Ksfw-8Z2(mRk5XV3hzHF9rzL78*<`?a}pVkQmC7Mm&xJw zF0sOM)w;TDTi}8>q${=l<`c8(X(A`WW- zVBmobXBOdmQ)^oltN3QYGXcLsXjd9`m(+B#W z-F`mKEmTO1BIA~p_Q&Xw0%tCeE0MH_sC^W2Cg3RtHIzpnRN17@5mJz(TBx zD5kRNvsVCx(wAag;m$C&5E%!<4TJGu;@eQQz6jMJgZMda)I*qzvdR~qZG1<^SkK=`1MUdIT-xp6g?n`MqRD<qNx|c=SzY8bQGjfs3DVX3}X@TgLF z`PGj$2bjJnBlm@9x_|Ex2la+aBVsTrZ3!4v(WeoUt?t#;W-FP`1Rk8z-NLTWA_YAe zvvC*`%K)Y3#4`}p#6EL%(4QX`YiX?d-bgnQ{&Q%2b7MsM`*+HA`YN_itSqYS^DBcv zK<4eME`p*G8PXWM4v>YqS?PuQ8xPyP>3CsNBo=}xhVy_r=yVzOcz;$^o=3&P;Xrm(8M zPvyV{x$XJmgxUJo-R?p~X|qvnkjy((O$B{4O=bjwzD351>p}qxd6|?->lt4j$!yGP zH$P|`%W#5^>c9h40GB=^?B_NQbo)~Mk+fIO@Kdf+n`p(qBk-&MDAGc9<%UWJ?)D@1 zwzysG$#`?Fc=`?7c3^(IWI1BjEiwoUZePE%^X$P>4coOlUxmx>`Xaz;aKnK2K9qOX z_rRSeVILf{K9Y7N9|<(#hN{kEKekvKtz!=+f&2XO-M6SYe5z$LQXg^;GPE^eO%}zo zIzyI*L}R9^r)rt+sEI7BY>Ge^qv#QH5!%e>?v;82gB*YNlR?E?1DM#9Ls7WF^&-M4pS^dy;{zl7 zT4VlXa4bs?l~BKxl=VdPW^~`x&WlLuBI~$G@wa7lD#ho{$9kWGvct-K?6s;~=?Hka zacW{ya1JE=>G!ijkJ^7OaymD`2=%dAqU?#v?U6eXim-MThqXG5Rb{>V7+TW&kf4d2 z!RB8QV`XrpzZ{)(C`!D`{*#w&B+GH=H9Lb6xqN-_kSU-}e>Dnj$2M8;-f;@K@T1{( zzGboMWPJRQ17BLL`U`k;)QWxV=O2F)U&7Nn;z%H-_>Ms~zsv5GOS*iF*vc$j65-Q# zIKTCzcay$hO=)xf4UF|&@lNq?+;9*mJV7TIZjoWs9@w%zp0FmuO2PJfNBowvCV~N* z^&DA7L8*8a7#n)2fB1Xy-E$h+<`-t%~3JzZ0S&f zEK0;9Ek8y5dEs_N?S;g@ZNGLV^RuXbgSF;xeIC^r%}_THT+WK2d~sFG-H3xQ=dCTc`-9EeP? zAJ$kSJ}?<@QWs4Cuih6rkEvIOGnMYX_AO3WkQ&an;3A0#=3JkvYPTtAe_EnX+RD zOx5Jiou3ye^pkC4cG7uB^{gOi)BkAV4W z_B`9Wn5N-)#v^w5ZL#W3{Qci^F~A| z`h=?y;i;7Bzti8ZQ6YA@H)kxWc!*yU>5;5hzI^;piM(x4i&1DuLGc4!Na@g?p4(fM zgrgi9?wN1;GqkO7yD+y-x7RwUzCX6|QAjgqyN9pS0ui&T+qpNzVo7oP!sqe-;#pwd zs16(i$^5ZWqn^P_uYQ{V7uPgy2cdD5nvkoht0lXw;NdruXGil4YX5{EXi;A-G4>IS^J~gq+Wzi{PI{NT@6_0_Ny;{{`fvaIc=lbNvE%+#XeVmxHP|B;_Qtnc{Q?o-<%E#j6{B`VM;6|yBrPaY_8Rum$Un|i| zm9tls6L%T>Ju(g?0a(!QW$o^Kx9M%FR2DaYz!z<>d|$Ip=!6o46GMG?MBLV$l9m?C zqP1l#!AlWwIvY<`*$_nQ{6}MElU!0w-sJ1jtIP6VDiAa{X<g0@;XmY*g zEYcvppue_KmP#YrC(Q<9*aiY#+Jo?bLqb@dckd{#7_-Ui$Oc;4Ij)%e{QFgdNsvF2 z4Tjy^8%W(__Vo2+c&;0Gj$K#qoCGL^R(1#_&$2jVs-+}r7M+y+xkzt~N+)vY?$F*L zGM7VxM|-vXRVJ*in^vvxo|>!L9Iz#j8X>>(@VGAkWBm;0_$(la56Ngl4PbL&G~B-1chjnG@xUh&s3MHFOYfC4-fOZb_WZozKccC zP`nsuB=QqUY}s&GLILzw)8jIM!|x^wE^`tM93kij5lv$gxaa>?uF8O{1Y$|-pJx0$ z9Kt0P6&Dc}<7&0Lsb>@vFjlm*R01N59Z(Po~SS+kKx}I2#?)7>^)@3Ql7+9h{VI^r&*? zm0mw)y+%kjbD{rxe{baOZ?`O$AjKaTq2AZqX*)k8^a7#EaF$J%xUa}jRkG&MRZCdw zuT%9jht!UwG^D~0x+GdS=!NP||K8r?Fzq0dh>M@x5g+$pmp9hwh50+nd0}X#aG$)| z_6s^^d!Aj)Y*3kL>$`CNd0b2AB$L(SnBJTed+G2R5jg9L+LLe1U|j;h=6>e)WgJ_)^4onn!(O}!RBq)9U_z#j zjjR(6^Z@^O8GSfPtYr8Rh0KikB%9NlAYVauD6ZEq?uq1=-}KgtUiAvV8rG%6H^k;)yQ2mh}R+mEK?)> zeLt82YHQ-Y7l*t;-p7=e^uisocGnX_J0WBN!2FHadWOep(71#Naf9asjwBX?$~@%g zecKzKqNqClo=o?aQwk)E-mC{-zWnQD9j zmR@re(E($59S4$f+yrB5et}k$y=LsP;o7|H2nXIDFQy;C5PSvrI5?TMUHKf!u5Hpo zJrhDOObA7!+$O>U$uf04`2&6~WV-B|khL9L;V z$*nnhRyeLU9{epeUR|nJIH6kc=7O~N7(t~~e(h=zM@kfiSk>-lm>+#$y9*N_Lvb;> z@!ivUY%ba;ZXPxpgh(hpFW0YYGhT)y3C5I;E?w6#Rook~zZ|N&AF9`@cc3~JC#$0F zpZr;_G}w?2l9TXd7n)U26eQJ@)KJ|CQP&=XixW7Fj71tF=o{5k)kw}579bsRQO*`X zg4$m+^5jXO_5$W2*M}=FAcA!^Rp{-A7$M^rBGI!a5qhzUsj}MHo;}oh$)cu4xyjY2 zT|X-IHF@MoiO=$B(K?3t7&vc1^9y{iOew~Pu2zR6JbcrOMEBZLx=nzD2!{yExaZdV za+pj)^R20)42h0rQo;~i$eW54A8$b*Q^7mq!32>BEzg)2$r73tq}#%13tNkrnJYq+ zYSN_TkWJ_t-bT!?lcqG6OC*j=w~{7prlO0_7p%!-Rchq^%EOrRR?__t-hmoF>d-_{ z<+OvGCrx8IopF?;eX7=s=&~N`OD^!P(a+_b)-dKBSfg}j;=kqlZ~Yvr3sAufUG(5x z4AyfMETXSeUJ_`}G?18~Mni+*h}LVAll8ei^7DEFeQ>goVDjDz4lC9)nirmQtu+fs z&wzQ1y4lDG+qql)`)$<6;blHxkt^V~E!yktQjsGrN}~Y*(gM@#)Y+dN?Pl895#$<@ zzKSOr+5izPUUa2rI%c{s^tad)LvghZrLSU)BF4j*_^nKqZd6E4iy(-#z4y~LC7{5- ziGq-;#=9g3)*S=9JMsuE8~Nn{ryJ&-0TL0F&Dvj6=joleRK+t={r!>T&;j}*|9bhl ze>9oJW)gx6gFwqKaE+s0c=4069c^lY{=L_#X*w$pf=X}mUC_|g;Yi(@{ldSHT0`EK zfwV*aN=Vz$BFE-ti^6bE$b2*orcqKn@1K1Lod`ivw$#VErpA7&_D4oaMZE^?mHVco zLqdL&n?%KosxaAp7MvREo~+3yEJM!1!=tF(>YUu1COH=Jm4-L8RIhNqdA-mGhGf2P zN$CB$qQyI-62j*w|Jl|JBG0OU>1a-^$fm`5TDH=)T=%fA>bKS?pb@*lFC&-_Fv zguH|$1XkzG0mXFl^q`>`2A@m}v|dJls$zsizm@&bUU7J6b@V2;u2e6{=o}=MIe;kU z?pLgGyZa29P17d5m3<(!{bA(!5v-h=sk!Ef`wGFE&EMg|bfKfmEh)DdOf=?Akl_tq&~HDK%-QhZx7ahGCe zA#EX_CUI^$>*qHnop<1LFHLhr;mYEn-S530h%fs&h*i!-Hm9BR3quK!9A_rWgwyrF z&dN@vI>|p0FX-qTAL@NyReM0bP~FfMX}!@`cNEPKE<`aDC6lxq*Vy9`1>d6$_gghq zZ4E!6|7L)7wo6*UOOh{GO_86I+^zcc#C_hszCa8;vpI%S1Ft(|C!PP!s`M_;ARLt| zIP`<)pg3GP+K^UGl6+2jnl+unodVKZP-x-cFM{vT{%%}OU?bRQks%Hr%zT|#$e25? zQRD75ThMZcAzN+=0*R!pN>4<|CSDgiuXziLJHa9z+_|iVL1kQ|Xpl>hG3+di+ki)S zedaA@7k3m6PM^IfG=iE-HDD~ae2ScnB?&Zj-#Xd9mKX{T`|8esse|s2VHD;^n|zwq zIT9!h5C{wLnIg3BFChZ9Q}nX4@&}(->~=K6-!p+rnFnqIb0N0t8Jr{;B~FNR9U(8) zLf-FcM*yW>M&FR+txY%Aeu&dAUSq#n zt}M%Y1Sjyr^JV%d*{l1ww?xCFTR)U)IwXEu__msOpv(8y+9ECzh-4&_z1 z^Ep^c%PCoI3#9%~S+7ZvKJ6ZJ zPq}uC-4oa#+Uz8sxLaLWfkBDH?vn)v6fy{TbJ6svL=^2deLAtQ%-i_~aVNu}G|QxkfI^=NM^9@_>|POy zA8f(QLqyxj3CWSV8s3L&T=#!31thuFOcO?+iLAkhp1cpQc7_)0T1n+*L)6_KYFqtSWIjzJ*{q=*on8z z+#Iev%b$~~#~ghNvBhpP{M-K%2|*`1WRtd51uG=$<+e;WTlB0f<1)0Z`g1giH0U%q zy1>T?0;pSGOFACe0FyL$ZZzDykxSvBKY(0CMg;+}cKl<5}_- zjMjMk?WG-h75G9WPfvfBXogfpR61?p_^!+8#CAmGy*35_Rs%qi^oHw~)3tIG4Xq+B z#?B_~Ow@4PfUd>kS|Z}eoglfM-pK18n9#uo2c~-VDWQVIZh*6MSBUXE$5cWSJZZz} zRiC=g`luC^`|DBXVOsW~0U*=~6pZ#WY;=gN#cWgG3`t>x$>Lmnkx3LwtTb5h3og6P zow<1~#clbl!mXOn+l<&LJCZ!wCwGF7OG@3NlEc}$SIv34)+Bl)rH1{}VIkbV!2SXD zrPqR*JrQDImn&(i^|WNfJe zeTIOM_hm@aDfEnf*zwUQj2;cGm*(oGjbIqd{=j}lVSLIeo#ANb2G>FUlM20JcYO3| z;V<#T5$ksoO-&GsOGPZt$&^R7U%&tCvaS>G>qm(^Lpk?iU#_sU zPx^=tEmLAKWN7h6ed>B8gOZ>&z0AUMW49+DAW;6VT4;>m9HMLQR~P1bi_}@fB+tAQ ztzG+5=L2$A-?79!A*1T0Xfn+^lIAOtHpBGF)J2hAit|r-)kgYACY0`1FsZ2$pU2#i ztd04x$WPm>z(Yqa*cdGMVZ+W7&;7?(^$oh(<=xVFkdDbV{i4!b>^-XBZOE%fo9 zj0PKgMN?N_5n3?)5f2Me>vTXbiU-pn$6m zxD03&NpD&JVpxG@#iB>~o}dg-Tu6wrRXU$C4J$EWgA5vd?r0w+yO}pc6RlXHhP+(b z#O`0Gj-^sax{B%vICv$jv+B}7b7;CNYm9$igK0~Rl_X&%0#P5q@5vfFz_L4X@2=RL z0nf5>YjK08`Ptd}npfSVznPi|;?~E{8|pzHZDu!BFd8H)Cz_5+SqxT*=>tZF2BJt~ z+2Hsc?Q03rh}pB%sBz!#=bm|>I0gOJ9-ARhEjAjV{tF9BgRn3f)+edGEXp*G+e4Pp z0!Pp@qG`Byh3`@S8~9Gi{jXoi7&lf1foE!T(U)b<2N?46x8AgE3t+8xOdb-cOt`&N z)(7!cS#+K~>&KRf*g6f7V72H^^eO0jvnrLVO25o#{>m*L22Bi?HyF^W-DVZgS9xmI z^@=A|%mW)y!OOxEGa`gSQk`luw`uu6yg6|D^-Z#vw$M^$w8Dk zYW+^xqip!4u*3dOQWACARXl|Dna8I)UrrwVkvzj;fO!k`=?EFobi+xBfv=9kOG>%_ zj|a4&roea}e#hp>>YKe|kvO{jlApplies to: Windows 10 + +Today, many enterprise customers have a mix of modern and legacy client and server operating systems. Managing the servicing and updating differences between those legacy operating systems and Windows 10 versions adds a level of complexity that is not well understood. This can be confusing. With the end of support for legacy [Windows 7 SP1](https://support.microsoft.com/help/4057281/windows-7-support-will-end-on-january-14-2020) and Windows Server 2008 R2 variants on January 14, 2020, System Administrators have a critical need critical to understand how best to leverage a modern workplace to support system updates. + +The following provides an initial overview of how updating client and server differs between the Windows 10-era operating systems (such as Windows 10 version 1709, Windows Server 2016) and legacy operating systems (such as Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012 R2). + +>[!NOTE] +> A note on naming convention in this article: For brevity, "Windows 10" refers to all operating systems across client, server and IoT released since July 2015, while "legacy" refers to all operating systems prior to that period for client and server, including Windows 7, Window 8.1, Windows Server 2008 R2, Windows Server 2012 R2, etc. + +## Infinite fragmentation +Prior to Windows 10, all updates to operating system (OS) components were published individually. On "Update Tuesday," customers would pick and choose individual updates they wanted to apply. Most chose to update security fixes, while far fewer selected non-security fixes, updated drivers, or installed .NET Framework updates. + +As a result, each environment with the global Windows ecosystem that had only a subset of security and non-security fixes installed had a different set of binaries and behaviors than those that consistently installed every available update as tested by Microsoft. + +This resulted in a fragmented ecosystem that created diverse challenges in predictively testing interoperability, resulting in high update failure rates - which were subsequently mitigated by customers removing individual updates that were causing issues. Each customer that selectively removed individual updates amplified this fragmentation by creating more diverse environment permutations across the ecosystem. As an IT Administrator once quipped, "If you’ve seen one Windows 7 PC, you have seen one Windows 7 PC," suggesting no consistency or predictability across more than 250M commercial devices at the time. + +## Windows 10 – Next generation +Windows 10 provided an opportunity to end the era of infinite fragmentation. With Windows 10 and the Windows as a service model, updates came rolled together in the "latest cumulative update" (LCU) packages for both client and server. Every new update published includes all changes from previous updates, as well as new fixes. Since Windows client and server share the same code base, these LCUs This helps simplify servicing. Devices with the original Release to Market (RTM) version of a feature release installed could get up to date by installing the most recent LCU. + +Windows publishes the new LCU packages for each Windows 10 version (1607, 1709, etc.) on the second Tuesday of each month. This package is classified as a required security update and contains contents from the previous LCU as well as new security, non-security and Internet Explorer 11 (IE11) fixes. The security classification, by definition, requires a reboot of the device to complete installation of the update. + +![Servicing cadence](images/servicing-cadence.png) + +Another benefit of the LCU model is fewer steps. Devices that have the original Release to Market (RTM) version of a release can install the most recent LCU to get up to date in one step, rather than having to install multiple updates with reboots after each. + +This cumulative update model for Windows 10 has helped provide the Windows ecosystem with consistent update experiences that can be predicted by baseline testing before release. Even with highly complex updates with hundreds of fixes, the number of incidents with monthly security updates for Windows 10 have fallen month over month since the initial release of Windows 10. + +### Points to consider + +- Windows 10 does not have the concept of a Security-Only or Monthly Rollup for updates. All updates are an LCU package, which includes the last release plus anything new. +- Windows 10 no longer has the concept of a "hotfix" since all individual updates must be rolled into the cumulative packages. (Note: Any private fix is offered for customer validation only, and then rolled into an LCU.) +- [Updates for the .NET Framework](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) are NOT included in the Windows 10 LCU. They are separate packages with different behaviors depending on the version of .NET Framework being updated, and on which OS. As of October 2018, .NET Framework updates for Windows 10 will be separate and have their own cumulative update model. +- For Windows 10, available update types vary by publishing channel: + - For customers using Windows Server Update Services (WSUS) and for the Update Catalog, several different updates types for Windows 10 are rolled together for the core OS in a single LCU package, with exception of Servicing Stack Updates. + - Servicing Stack Updates (SSU) are available for download from the Update Catalog and can be imported through WSUS, but will not be automatically synced. (See this [example](https://support.microsoft.com/help/4132650/servicing-stack-update-for-windows-10-version-1709-may-21-2018) for Windows 10, version 1709). For more information on Servicing Stack Updates, please see this [blog](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-7-servicing-stack-updates-managing-change-and/ba-p/260434). + - For customers connecting to Windows Update, the new cloud update architecture uses a database of updates which break out all the different update types, including Servicing Stack Updates (SSU) and Dynamic Updates (DU). The update scanning in the Windows 10 servicing stack on the client automatically takes only the updates that are needed by the device to be completely up to date. +- Windows 7 and other legacy operating systems have cumulative updates that operate differently than in Windows 10 (see next section). + +## Windows 7 and legacy OS versions +While Windows 10 updates could have been controlled as cumulative from "Day 1," the legacy OS ecosystem for both client and server was highly fragmented. Recognizing the challenges of update quality in aa fragmented environment, we moved Windows 7 to a cumulative update model in October 2016. + +Customers saw the LCU model used for Windows 10 as having packages that were too large and represented too much of a change for legacy operating systems, so a different model was implemented. Windows instead offered two cumulative package types for all legacy operating systems: Monthly Rollups and Security-only updates. + +The Monthly Rollup includes new non-security, security updates, Internet Explorer (IE) updates, and all updates from the previous month, similar to the Windows 10 model. The Security-only package includes new security updates and all security updates from the previous month. Additionally, a cumulative package is offered for IE, which can be tested and installed separately, reducing the total update package size. The IE cumulative update includes both security and non-security fixes following the same model as Windows 10. + +Moving to the cumulative model for legacy OS versions continues to improve predictability of update quality. The Windows legacy environments have fully updated machines, which means that the baseline against which all legacy OS version updates are tested include all of the updates (security and non-security) prior to and after October 2016. Many customer environments do not have all updates prior to this change installed, which leaves some continued fragmentation in the ecosystem. This remaining fragmentation results in issues like those seen when the September 2016 Servicing Stack Update (SSU) was needed for smooth installation of the August 2018 security update. These environments did not have the SSU applied previously. + +### Points to consider +- Windows 7 and Windows 8 legacy operating system updates [moved from individual to cumulative in October 2016](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/More-on-Windows-7-and-Windows-8-1-servicing-changes/ba-p/166783). Devices with updates missing prior to that point are still missing those updates, as they were not included in the subsequent cumulative packages. +- "Hotfixes" are no longer published for legacy OS versions. All updates are rolled into the appropriate package depending on their classification as either non-security, security, or Internet Explorer updates. (Note: any private fix is offered for customer validation only. Once validated they are then rolled into a Monthly Rollup or IE cumulative update, as appropriate.) +- Both Monthly Rollups and Security-only updates released on Update Tuesday for legacy OS versions are identified as "security, critical" updates, because both have the full set of security updates in them. The Monthly Rollup has additional non-security updates that are not included in the Security Only update. The "security" classification requires the device be rebooted so the update can be fully installed. +- Despite the cumulative nature of both Monthly Rollups and Security-only updates, switching between these update types is not advised. Small differences in the baselines of these packages may result in installation errors and conflicts. Choosing one and staying on that update type – Monthly Rollup or Security-only – is recommended. +- In [February 2017](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplified-servicing-for-Windows-7-and-Windows-8-1-the-latest/ba-p/166798), Windows pulled IE updates out of the legacy OS versions Security-only updates, while leaving them in the Monthly Rollup updates. This was done specifically to reduce package size based on customer feedback. +- The IE cumulative update includes both security and non-security updates and is also needed for to help secure the entire environment. This update can be installed separately or as part of the Monthly Rollup. +- [Updates for the .NET Framework](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) are NOT included in legacy Monthly Rollup or Security Only packages. They are separate packages with different behaviors depending on the version of the .NET Framework, and which legacy OS, being updated. +- For [Windows Server 2008 SP2](https://cloudblogs.microsoft.com/windowsserver/2018/06/12/windows-server-2008-sp2-servicing-changes/), cumulative updates began in October 2018, and follow the same model as Windows 7. Updates for IE9 are included in those packages, as the last supported version of Internet Explorer for that Legacy OS version. + +## Public preview releases +Lastly, the cumulative update model directly impacts the public Preview releases offered in the 3rd and/or 4th weeks of the month. Update Tuesday, also referred to as the "B" week release occurs on the second Tuesday of the month. It is always a required security update across all operating systems. In addition to this monthly release, Windows also releases non-security update "previews" targeting the 3rd (C) and the 4th (D) weeks of the month. These preview releases include that month’s B-release plus a set of non-security updates for testing and validation as a cumulative package. We recommend IT Administrators uses the C/D previews to test the update in their environments. Any issues identified with the updates in the C/D releases are identified and then fixed or removed, prior to being rolled up in to the next month’s B release package together with new security updates. + +### Examples +Windows 10 version 1709: + +- (9B) September 11, 2018 Update Tuesday / B release - includes security, non-security and IE update. This update is categorized as "Required, Security" it requires a system reboot. +- (9C) September 26, 2018 Preview C release - includes everything from 9B PLUS some non-security updates for testing/validation. This update is qualified as not required, non-security. No system reboot is required. +- (10B) October 9, 2018 Update Tuesday / B release includes all fixes included in 9B, all fixes in 9C and introduces new security fixes and IE updates. This update is qualified as "Required, Security" and requires a system reboot. + +All of these updates are cumulative and build on each other for Windows 10. This is in contrast to legacy OS versions, where the 9C release becomes part of the "Monthly Rollup," but not the "Security Only" update. In other words, a Window 7 SP1 9C update is part of the cumulative "Monthly Rollup" but not included in the "Security Only" update because the fixes are qualified as "non-security". This is an important variation to note on the two models. + +![Servicing preview releases](images/servicing-previews.png) + +### Previews vs. on-demand releases +In 2018, we experienced incidents that required urgent remediation that didn’t map to the monthly update release cadence. These incidents were situations that required an immediate fix to an Update Tuesday release. While Windows engineering worked aggressively to respond within a week of the B-release, these "on-demand" releases created confusion with the C Preview releases. + +#### Points to consider: +- When Windows identifies an issue with a Update Tuesday release, engineering teams work to remediate or fix the issue as quickly as possible. The outcome is often a new update which may be released at any time, including during the 3rd or 4th week of the month. Such updates are independent of the regularly scheduled "C" and "D" update previews. These updates are created on-demand to remediate a customer impacting issue. In most cases they are qualified as a "non-security" update, and do not require a system reboot. +- Rarely do incidents with Update Tuesday releases impact more than .1% of the total population. With the new Windows Update (WU) architecture, updates can be targeted to affected devices. This targeting is not available through the Update Catalog or WSUS channels, however. +- On-demand releases address a specific issue with an Update Tuesday release and are often qualified as "non-security" for one of two reasons. First, the fix may not be an additional security fix, but a non-security change to the update. Second, the "non-security" designation allows individuals or companies to choose when and how to reboot the devices, rather than forcing a system reboot on all Windows devices receiving the update globally. This trade-off is rarely a difficult choice as it has the potential to impact customer experience across client and server, across consumer and commercial customers for more than one billion devices. +- Because the cumulative model is used across Window 10 and legacy Windows OS versions, despite variations between these OS versions, an out of band release will include all of the changes from the Update Tuesday release plus the fix that addresses the issue. And since Windows no longer releases hotfixes, everything is cumulative in some way. + +In closing, I hope this overview of the update model across current and legacy Windows OS versions highlights the benefits of the Windows 10 cumulative update model to help defragment the Windows ecosystem environments, simplify servicing and help make systems more secure. + + +## Resources +- [Simplifying updates for Windows 7 and 8.1](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplifying-updates-for-Windows-7-and-8-1/ba-p/166530) +- [Further simplifying servicing models for Windows 7 and Windows 8.1](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Further-simplifying-servicing-models-for-Windows-7-and-Windows-8/ba-p/166772) +- [More on Windows 7 and Windows 8.1 servicing changes](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/More-on-Windows-7-and-Windows-8-1-servicing-changes/ba-p/166783) +- [.NET Framework Monthly Rollups Explained](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) +- [Simplified servicing for Windows 7 and Windows 8.1: the latest improvements](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplified-servicing-for-Windows-7-and-Windows-8-1-the-latest/ba-p/166798) +- [Windows Server 2008 SP2 servicing changes](https://cloudblogs.microsoft.com/windowsserver/2018/06/12/windows-server-2008-sp2-servicing-changes/) +- [Windows 10 update servicing cadence](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-10-update-servicing-cadence/ba-p/222376) +- [Windows 7 servicing stack updates: managing change and appreciating cumulative updates](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-7-servicing-stack-updates-managing-change-and/ba-p/260434) \ No newline at end of file From a4da9500d3579f1c072114d3c75bb980dcfb0166 Mon Sep 17 00:00:00 2001 From: Liza Poggemeyer Date: Sat, 10 Nov 2018 00:22:25 +0000 Subject: [PATCH 34/34] Updated waas-servicing-differences.md - removed statement --- windows/deployment/update/waas-servicing-differences.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/update/waas-servicing-differences.md b/windows/deployment/update/waas-servicing-differences.md index d4f38b30a4..91ff222523 100644 --- a/windows/deployment/update/waas-servicing-differences.md +++ b/windows/deployment/update/waas-servicing-differences.md @@ -88,7 +88,7 @@ In 2018, we experienced incidents that required urgent remediation that didn’t #### Points to consider: - When Windows identifies an issue with a Update Tuesday release, engineering teams work to remediate or fix the issue as quickly as possible. The outcome is often a new update which may be released at any time, including during the 3rd or 4th week of the month. Such updates are independent of the regularly scheduled "C" and "D" update previews. These updates are created on-demand to remediate a customer impacting issue. In most cases they are qualified as a "non-security" update, and do not require a system reboot. -- Rarely do incidents with Update Tuesday releases impact more than .1% of the total population. With the new Windows Update (WU) architecture, updates can be targeted to affected devices. This targeting is not available through the Update Catalog or WSUS channels, however. +- With the new Windows Update (WU) architecture, updates can be targeted to affected devices. This targeting is not available through the Update Catalog or WSUS channels, however. - On-demand releases address a specific issue with an Update Tuesday release and are often qualified as "non-security" for one of two reasons. First, the fix may not be an additional security fix, but a non-security change to the update. Second, the "non-security" designation allows individuals or companies to choose when and how to reboot the devices, rather than forcing a system reboot on all Windows devices receiving the update globally. This trade-off is rarely a difficult choice as it has the potential to impact customer experience across client and server, across consumer and commercial customers for more than one billion devices. - Because the cumulative model is used across Window 10 and legacy Windows OS versions, despite variations between these OS versions, an out of band release will include all of the changes from the Update Tuesday release plus the fix that addresses the issue. And since Windows no longer releases hotfixes, everything is cumulative in some way.