From 371b3816efe2eecf63bdc151e6b6e86407963804 Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Tue, 11 Jun 2024 14:26:48 -0700 Subject: [PATCH 001/108] Remove EOS versions from TOC --- windows/privacy/toc.yml | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/windows/privacy/toc.yml b/windows/privacy/toc.yml index b6ad626c23..08dc42f79d 100644 --- a/windows/privacy/toc.yml +++ b/windows/privacy/toc.yml @@ -21,22 +21,12 @@ href: required-windows-11-diagnostic-events-and-fields.md - name: Windows 10, versions 22H2, 21H2, 21H1, 20H2, and 2004 href: required-windows-diagnostic-data-events-and-fields-2004.md - - name: Windows 10, versions 1909 and 1903 - href: basic-level-windows-diagnostic-events-and-fields-1903.md - name: Windows 10, version 1809 href: basic-level-windows-diagnostic-events-and-fields-1809.md - - name: Windows 10, version 1803 - href: basic-level-windows-diagnostic-events-and-fields-1803.md - - name: Windows 10, version 1709 - href: basic-level-windows-diagnostic-events-and-fields-1709.md - - name: Windows 10, version 1703 - href: basic-level-windows-diagnostic-events-and-fields-1703.md - name: Optional Windows diagnostic data events and fields items: - name: Windows 10, version 1709 and later and Windows 11 optional diagnostic data href: windows-diagnostic-data.md - - name: Windows 10, version 1703 optional diagnostic data - href: windows-diagnostic-data-1703.md - name: Windows 10 diagnostic data events and fields collected through the limit enhanced diagnostic data policy href: enhanced-diagnostic-data-windows-analytics-events-and-fields.md - name: Manage Windows connected experiences @@ -51,29 +41,10 @@ href: manage-windows-11-endpoints.md - name: Connection endpoints for Windows 10, version 21H2 href: manage-windows-21h2-endpoints.md - - name: Connection endpoints for Windows 10, version 21H1 - href: manage-windows-21H1-endpoints.md - - name: Connection endpoints for Windows 10, version 20H2 - href: manage-windows-20H2-endpoints.md - - name: Connection endpoints for Windows 10, version 2004 - href: manage-windows-2004-endpoints.md - - name: Connection endpoints for Windows 10, version 1909 - href: manage-windows-1909-endpoints.md - - name: Connection endpoints for Windows 10, version 1903 - href: manage-windows-1903-endpoints.md - name: Connection endpoints for Windows 10, version 1809 href: manage-windows-1809-endpoints.md - name: Connection endpoints for non-Enterprise editions of Windows 11 href: windows-11-endpoints-non-enterprise-editions.md - - name: Connection endpoints for non-Enterprise editions of Windows 10, version 21H1 - href: windows-endpoints-21H1-non-enterprise-editions.md - - name: Connection endpoints for non-Enterprise editions of Windows 10, version 20H2 - href: windows-endpoints-20H2-non-enterprise-editions.md - - name: Connection endpoints for non-Enterprise editions of Windows 10, version 2004 - href: windows-endpoints-2004-non-enterprise-editions.md - - name: Connection endpoints for non-Enterprise editions of Windows 10, version 1909 - href: windows-endpoints-1909-non-enterprise-editions.md - - name: Connection endpoints for non-Enterprise editions of Windows 10, version 1903 href: windows-endpoints-1903-non-enterprise-editions.md - name: Connection endpoints for non-Enterprise editions of Windows 10, version 1809 href: windows-endpoints-1809-non-enterprise-editions.md From 77e641b0873edcd767318d698f4730ecb84dcccb Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Tue, 11 Jun 2024 14:38:13 -0700 Subject: [PATCH 002/108] Fix error --- windows/privacy/toc.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/windows/privacy/toc.yml b/windows/privacy/toc.yml index 08dc42f79d..b8331db606 100644 --- a/windows/privacy/toc.yml +++ b/windows/privacy/toc.yml @@ -45,6 +45,5 @@ href: manage-windows-1809-endpoints.md - name: Connection endpoints for non-Enterprise editions of Windows 11 href: windows-11-endpoints-non-enterprise-editions.md - href: windows-endpoints-1903-non-enterprise-editions.md - name: Connection endpoints for non-Enterprise editions of Windows 10, version 1809 href: windows-endpoints-1809-non-enterprise-editions.md From eb3a60abc2108655df2eeca29cbb627845a864b1 Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Tue, 11 Jun 2024 17:28:06 -0700 Subject: [PATCH 003/108] Remove crosslinks to EOS articles --- ...-level-windows-diagnostic-events-and-fields-1809.md | 4 ---- .../essential-services-and-connected-experiences.md | 9 --------- windows/privacy/manage-windows-1809-endpoints.md | 5 ----- windows/privacy/manage-windows-21h2-endpoints.md | 10 ---------- ...equired-diagnostic-events-fields-windows-11-22H2.md | 3 --- ...required-windows-11-diagnostic-events-and-fields.md | 3 --- windows/privacy/toc.yml | 2 -- 7 files changed, 36 deletions(-) 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 ef87c4289b..dcc02b4101 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 @@ -30,10 +30,6 @@ You can learn more about Windows functional and diagnostic data through these ar - [Required diagnostic events and fields for Windows 11, versions 23H2 and 22H2](required-diagnostic-events-fields-windows-11-22H2.md) - [Required diagnostic events and fields for Windows 11, version 21H2](required-windows-11-diagnostic-events-and-fields.md) - [Required diagnostic events and fields for Windows 10: versions 22H2, 21H2, 21H1, 20H2, and 2004](required-windows-diagnostic-data-events-and-fields-2004.md) -- [Windows 10, version 1903 and Windows 10, version 1909 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1903.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) -- [Windows 10, version 1703 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1703.md) - [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) - [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) diff --git a/windows/privacy/essential-services-and-connected-experiences.md b/windows/privacy/essential-services-and-connected-experiences.md index 21beba4c56..799d80a554 100644 --- a/windows/privacy/essential-services-and-connected-experiences.md +++ b/windows/privacy/essential-services-and-connected-experiences.md @@ -102,21 +102,12 @@ Internet Explorer shares many of the Windows essential services listed above. Th To view endpoints for Windows Enterprise, see: - [Manage connection endpoints for Windows 11](manage-windows-11-endpoints.md) -- [Manage connection endpoints for Windows 10, version 21H1](manage-windows-21H1-endpoints.md) - [Manage connection endpoints for Windows 10, version 21H2](manage-windows-21H2-endpoints.md) -- [Manage connection endpoints for Windows 10, version 20H2](manage-windows-20h2-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1909](manage-windows-1909-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1903](manage-windows-1903-endpoints.md) - [Manage connection endpoints for Windows 10, version 1809](manage-windows-1809-endpoints.md) To view endpoints for non-Enterprise Windows editions, see: - [Windows 11 connection endpoints for non-Enterprise editions](windows-11-endpoints-non-enterprise-editions.md) -- [Windows 10, version 21H1, connection endpoints for non-Enterprise editions](windows-endpoints-21H1-non-enterprise-editions.md) -- [Windows 10, version 20H2, connection endpoints for non-Enterprise editions](windows-endpoints-20H2-non-enterprise-editions.md) -- [Windows 10, version 1909, connection endpoints for non-Enterprise editions](windows-endpoints-1909-non-enterprise-editions.md) -- [Windows 10, version 1903, connection endpoints for non-Enterprise editions](windows-endpoints-1903-non-enterprise-editions.md) -- [Windows 10, version 1809, connection endpoints for non-Enterprise editions](windows-endpoints-1809-non-enterprise-editions.md) > [!IMPORTANT] > To inquire about Windows data access or interoperability related to the Digital Markets Act (DMA), [submit this form](https://go.microsoft.com/fwlink/p/?linkid=2271128). \ No newline at end of file diff --git a/windows/privacy/manage-windows-1809-endpoints.md b/windows/privacy/manage-windows-1809-endpoints.md index 1bebf8277d..8e55fa3f0b 100644 --- a/windows/privacy/manage-windows-1809-endpoints.md +++ b/windows/privacy/manage-windows-1809-endpoints.md @@ -486,11 +486,6 @@ To view endpoints for other versions of Windows 10 Enterprise, see: - [Manage connection endpoints for Windows 10, version 21H2](manage-windows-21H2-endpoints.md) -To view endpoints for non-Enterprise Windows 10 editions, see: - -- [Windows 10, version 1809, connection endpoints for non-Enterprise editions](windows-endpoints-1809-non-enterprise-editions.md) -- [Windows 10, version 21H1, connection endpoints for non-Enterprise editions](windows-endpoints-21H1-non-enterprise-editions.md) - ## Related links diff --git a/windows/privacy/manage-windows-21h2-endpoints.md b/windows/privacy/manage-windows-21h2-endpoints.md index 458536998a..6c1dcfce86 100644 --- a/windows/privacy/manage-windows-21h2-endpoints.md +++ b/windows/privacy/manage-windows-21h2-endpoints.md @@ -129,18 +129,8 @@ The following methodology was used to derive these network endpoints: To view endpoints for other versions of Windows 10 Enterprise, see: -- [Manage connection endpoints for Windows 10, version 2004](manage-windows-2004-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1909](manage-windows-1909-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1903](manage-windows-1903-endpoints.md) - [Manage connection endpoints for Windows 10, version 1809](manage-windows-1809-endpoints.md) -To view endpoints for non-Enterprise Windows 10 editions, see: - -- [Windows 10, version 21H1, connection endpoints for non-Enterprise editions](windows-endpoints-21H1-non-enterprise-editions.md) -- [Windows 10, version 2004, connection endpoints for non-Enterprise editions](windows-endpoints-2004-non-enterprise-editions.md) -- [Windows 10, version 1909, connection endpoints for non-Enterprise editions](windows-endpoints-1909-non-enterprise-editions.md) -- [Windows 10, version 1903, connection endpoints for non-Enterprise editions](windows-endpoints-1903-non-enterprise-editions.md) -- [Windows 10, version 1809, connection endpoints for non-Enterprise editions](windows-endpoints-1809-non-enterprise-editions.md) ## Related links diff --git a/windows/privacy/required-diagnostic-events-fields-windows-11-22H2.md b/windows/privacy/required-diagnostic-events-fields-windows-11-22H2.md index 99496ee032..59e5b2137c 100644 --- a/windows/privacy/required-diagnostic-events-fields-windows-11-22H2.md +++ b/windows/privacy/required-diagnostic-events-fields-windows-11-22H2.md @@ -31,9 +31,6 @@ You can learn more about Windows functional and diagnostic data through these ar - [Required diagnostic events and fields for Windows 11, version 21H2](required-windows-11-diagnostic-events-and-fields.md) - [Required diagnostic events and fields for Windows 10: versions 22H2, 21H2, 21H1, 20H2, and 2004](required-windows-diagnostic-data-events-and-fields-2004.md) - [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) -- [Windows 10, version 1703 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1703.md) - [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) - [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) diff --git a/windows/privacy/required-windows-11-diagnostic-events-and-fields.md b/windows/privacy/required-windows-11-diagnostic-events-and-fields.md index 7969cc1cca..533c2d7770 100644 --- a/windows/privacy/required-windows-11-diagnostic-events-and-fields.md +++ b/windows/privacy/required-windows-11-diagnostic-events-and-fields.md @@ -31,9 +31,6 @@ You can learn more about Windows functional and diagnostic data through these ar - [Required diagnostic events and fields for Windows 11, versions 23H2 and 22H2](required-diagnostic-events-fields-windows-11-22H2.md) - [Required diagnostic events and fields for Windows 10: versions 22H2, 21H2, 21H1, 20H2, and 2004](required-windows-diagnostic-data-events-and-fields-2004.md) - [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) -- [Windows 10, version 1703 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1703.md) - [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) - [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) diff --git a/windows/privacy/toc.yml b/windows/privacy/toc.yml index b8331db606..ab8ba5cf43 100644 --- a/windows/privacy/toc.yml +++ b/windows/privacy/toc.yml @@ -45,5 +45,3 @@ href: manage-windows-1809-endpoints.md - name: Connection endpoints for non-Enterprise editions of Windows 11 href: windows-11-endpoints-non-enterprise-editions.md - - name: Connection endpoints for non-Enterprise editions of Windows 10, version 1809 - href: windows-endpoints-1809-non-enterprise-editions.md From 14838a32118914a85ab72ab17c055e0d0153ba14 Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Thu, 13 Jun 2024 15:38:24 -0700 Subject: [PATCH 004/108] Remove crosslinks to articles being archived --- .../essential-services-and-connected-experiences.md | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/windows/privacy/essential-services-and-connected-experiences.md b/windows/privacy/essential-services-and-connected-experiences.md index a1a6c53040..d59b42605f 100644 --- a/windows/privacy/essential-services-and-connected-experiences.md +++ b/windows/privacy/essential-services-and-connected-experiences.md @@ -109,22 +109,12 @@ To view endpoints for Windows Enterprise, see: - [Manage connection endpoints for Windows 11](manage-windows-11-endpoints.md) - [Manage connection endpoints for Windows 10, version 21H2](manage-windows-21H2-endpoints.md) -- [Manage connection endpoints for Windows 10, version 21H1](manage-windows-21H1-endpoints.md) -- [Manage connection endpoints for Windows 10, version 20H2](manage-windows-20h2-endpoints.md) -- [Manage connection endpoints for Windows 10 version 2004](manage-windows-2004-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1909](manage-windows-1909-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1903](manage-windows-1903-endpoints.md) - [Manage connection endpoints for Windows 10, version 1809](manage-windows-1809-endpoints.md) To view endpoints for non-Enterprise Windows editions, see: - [Windows 11 connection endpoints for non-Enterprise editions](windows-11-endpoints-non-enterprise-editions.md) -- [Windows 10, version 21H1, connection endpoints for non-Enterprise editions](windows-endpoints-21H1-non-enterprise-editions.md) -- [Windows 10, version 20H2, connection endpoints for non-Enterprise editions](windows-endpoints-20H2-non-enterprise-editions.md) -- [Windows 10, version 2004, connection endpoints for non-Enterprise editions](windows-endpoints-2004-non-enterprise-editions.md) -- [Windows 10, version 1909, connection endpoints for non-Enterprise editions](windows-endpoints-1909-non-enterprise-editions.md) -- [Windows 10, version 1903, connection endpoints for non-Enterprise editions](windows-endpoints-1903-non-enterprise-editions.md) -- [Windows 10, version 1809, connection endpoints for non-Enterprise editions](windows-endpoints-1809-non-enterprise-editions.md) + > [!IMPORTANT] > To inquire about Windows data access or interoperability related to the Digital Markets Act (DMA), [submit this form](https://go.microsoft.com/fwlink/p/?linkid=2271128). \ No newline at end of file From 2244b3d426097c32e86e79f3d607e32f46cc7f26 Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Thu, 20 Jun 2024 13:26:03 -0700 Subject: [PATCH 005/108] Update TOC Remove enhanced-diagnostic-data-windows-analytics-events-and-fields --- windows/privacy/toc.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/windows/privacy/toc.yml b/windows/privacy/toc.yml index ab8ba5cf43..8d18cdd2dc 100644 --- a/windows/privacy/toc.yml +++ b/windows/privacy/toc.yml @@ -27,8 +27,6 @@ items: - name: Windows 10, version 1709 and later and Windows 11 optional diagnostic data href: windows-diagnostic-data.md - - name: Windows 10 diagnostic data events and fields collected through the limit enhanced diagnostic data policy - href: enhanced-diagnostic-data-windows-analytics-events-and-fields.md - name: Manage Windows connected experiences items: - name: Manage connections from Windows operating system components to Microsoft services From 46f4ff201412d40177864afcdbd0ccca09d937f1 Mon Sep 17 00:00:00 2001 From: Kavya N <168478594+kavyamsft@users.noreply.github.com> Date: Tue, 25 Jun 2024 14:50:01 -0700 Subject: [PATCH 006/108] Learn Editor: Update windows-sandbox-overview.md --- .../windows-sandbox/windows-sandbox-overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview.md b/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview.md index adf405569f..a59d65972c 100644 --- a/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview.md +++ b/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview.md @@ -35,8 +35,8 @@ Windows Sandbox has the following properties: - At least two CPU cores (four cores with hyper-threading recommended) > [!NOTE] -> Windows Sandbox is currently not supported on Windows Home edition - +> Windows Sandbox is currently not supported on Windows Home edition. +> Beginning in Windows 11 24H2, or build version 26100, all inbox store apps like calculator, photos, notepad and terminal will not be available inside Windows Sandbox. Ability to use the apps will be added soon. ## Installation 1. Ensure that your machine is using Windows 10 Pro or Enterprise, build version 18305 or Windows 11. From 4f1c020710a726a13b0af0663a3386fc6b81569b Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Thu, 27 Jun 2024 16:16:12 -0600 Subject: [PATCH 008/108] Add new layout for DO configuration considerations --- .../do/delivery-optimization-endpoints.md | 2 +- .../images/do-setup-allow-communication.png | Bin 0 -> 45549 bytes .../do/images/do-setup-connected-cache.png | Bin 0 -> 17078 bytes .../do/images/do-setup-device-counts.png | Bin 0 -> 38723 bytes .../deployment/do/images/do-setup-full.png | Bin 0 -> 133468 bytes .../images/do-setup-improve-efficiencies.png | Bin 0 -> 13944 bytes .../do/images/do-setup-network-topology.png | Bin 0 -> 64370 bytes .../do/images/do-setup-presence.png | Bin 0 -> 29520 bytes .../do/images/do-setup-system-resources.png | Bin 0 -> 30121 bytes .../waas-delivery-optimization-configure.md | 237 ++++++++++++++++++ 10 files changed, 238 insertions(+), 1 deletion(-) create mode 100644 windows/deployment/do/images/do-setup-allow-communication.png create mode 100644 windows/deployment/do/images/do-setup-connected-cache.png create mode 100644 windows/deployment/do/images/do-setup-device-counts.png create mode 100644 windows/deployment/do/images/do-setup-full.png create mode 100644 windows/deployment/do/images/do-setup-improve-efficiencies.png create mode 100644 windows/deployment/do/images/do-setup-network-topology.png create mode 100644 windows/deployment/do/images/do-setup-presence.png create mode 100644 windows/deployment/do/images/do-setup-system-resources.png create mode 100644 windows/deployment/do/waas-delivery-optimization-configure.md diff --git a/windows/deployment/do/delivery-optimization-endpoints.md b/windows/deployment/do/delivery-optimization-endpoints.md index 782b1650f6..aa1c2a6abf 100644 --- a/windows/deployment/do/delivery-optimization-endpoints.md +++ b/windows/deployment/do/delivery-optimization-endpoints.md @@ -31,7 +31,7 @@ Use the table below to reference any particular content types or services endpoi | *.delivery.mp.microsoft.com | HTTP / 80 | Edge Browser | [Complete list](/deployedge/microsoft-edge-security-endpoints) of endpoints for Edge Browser. | Both | | *.officecdn.microsoft.com.edgesuite.net, *.officecdn.microsoft.com, *.cdn.office.net | HTTP / 80 | Office CDN updates | [Complete list](/office365/enterprise/office-365-endpoints) of endpoints for Office CDN updates. | Both | | *.manage.microsoft.com, *.swda01.manage.microsoft.com, *.swda02.manage.microsoft.com, *.swdb01.manage.microsoft.com, *.swdb02.manage.microsoft.com, *.swdc01.manage.microsoft.com, *.swdc02.manage.microsoft.com, *.swdd01.manage.microsoft.com, *.swdd02.manage.microsoft.com, *.swda01-mscdn.manage.microsoft.com, *.swda02-mscdn.manage.microsoft.com, *.swdb01-mscdn.manage.microsoft.com, *.swdb02-mscdn.manage.microsoft.com, *.swdc01-mscdn.manage.microsoft.com, *.swdc02-mscdn.manage.microsoft.com, *.swdd01-mscdn.manage.microsoft.com, *.swdd02-mscdn.manage.microsoft.com | HTTP / 80
HTTPs / 443 | Intune Win32 Apps | [Complete list](/mem/intune/fundamentals/intune-endpoints) of endpoints for Intune Win32 Apps updates. | Both | -| *.statics.teams.cdn.office.net | HTTP / 80
HTTPs / 443 | Teams | | Both | +| *.statics.teams.cdn.office.net | HTTP / 80
HTTPs / 443 | Teams | Future support is planned for peering and Connected Cache | TBD | | *.assets1.xboxlive.com, *.assets2.xboxlive.com, *.dlassets.xboxlive.com, *.dlassets2.xboxlive.com, *.d1.xboxlive.com, *.d2.xboxlive.com, *.assets.xbox.com, *.xbl-dlassets-origin.xboxlive.com, *.assets-origin.xboxlive.com, *.xvcb1.xboxlive.com, *.xvcb2.xboxlive.com, *.xvcf1.xboxlive.com, *.xvcf2.xboxlive.com | HTTP / 80 | Xbox | | Both | | *.tlu.dl.adu.microsoft.com, *.nlu.dl.adu.microsoft.com, *.dcsfe.prod.adu.microsoft.com | HTTP / 80 | Device Update | [Complete list](/azure/iot-hub-device-update/) of endpoints for Device Update updates. | Both | | *.do.dsp.mp.microsoft.com | HTTP / 80
HTTPs / 443 | Microsoft Connected Cache -> Delivery Optimization Services communication | [Complete list](../do/waas-delivery-optimization-faq.yml) of endpoints for Delivery Optimization only. | Connected Cache Managed in Azure | diff --git a/windows/deployment/do/images/do-setup-allow-communication.png b/windows/deployment/do/images/do-setup-allow-communication.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9a61ec798e441e6190a4ef80300bf89493faad GIT binary patch literal 45549 zcmaI81z1$w_clC;fD(g2GcW?ujdX{Ibax7ZbaxBVsg!_9Nh95jbayul-5_1x8F+kt zzyJUJ-k0n0@;Wo;?6daXYp->$weB@Rax!8Vs064W5C}v3?P~=P2nh@VAv8Wh20mF1 zK3)d?L$Fg269(n?K{kMkhaZHbg+QR92(+trNWk@D>$mE5AP~3-{tuz@v)K;trH}Y) zAth&>?b*j#N-GyA`zTN3p1f|vKzjP*HC=C64|y*=TPwYMiMfOL<^1%jG;MC;T<+-3 z+>GXqQEJua1nPu%SNe(}g(pa_kzN}r%BerRIjXgrJ77ZZU`Kn^V3l;lwZ^yB6OYei zw93(cS?@?r!2B7JierbfY@I#C-L01l5bXZ1&=dExKTT3BPN5m+d$z~x(qh$a9d*RN zUxU_Pa6bHd;mz_|b!9oJG}DJrwIlo8tKOwF$b-LMg3MGRqf)z(c=((oCUes;fvLBqkqdij9u+OQ*%WXV}yUq7221X61#GaHX}(OxhdOcm|I2ky^k zP7+10V>tML4a&L%hF2^6^ywi1uQO9jbab?a^5P@cZ{K zdw=i|#!Q1idbS4#2UvJ`YMV!>UjB<7C}41e+Lm&hhZ5(`~Pga;z+f7E<*A2lN#gkQw-+9mtf07Rg9UW19h2c1t-T z`EMS2S7X2jY+nw@s>$dqDyUp~9sW5>06Fz$BFLREsJ&y!<6;&SHbH)Irg1T@s+)*= ze2f5U#LDj!ww_`<8*1v;-X7m#v*jUoLB(Dd?VIb*7J zV^zkBX7diavof*z*beprr`;K9fBP?&qXj~nM=nCx{DQqCoDT~XcrzY3VGQhb^)M!1 zHOYqy{5E(m{gp}R)Q87$Tdj!Sc|TcA^6EkF$VbwKCr2TUw>Q_Knx5X#x?^}zJAibbGaYRkB)Z0EnT z!OzY`ph?}no3DsDKI;aqpvX~(2zY+hDKQG0Fbcqg;+WyHAC{eoYV5?Q>O3{Oe(?+h zGR16Q*xy2u{gN7S>)4H{{4A*-I+mK27Q?4;c)aL~$^XQx+;o(tXm$LFC*K05;Z;h6 zF5|>ezW`%?`i;+96)Kr;obq|VmX&ujMmD_vk|7nZu*w#sD|uEHqTBoj4dd)p(8Y;U z^E+}~-KBmCJT&6uRk*TpdLBg0Cv=M5A|{jg^XDC)ygm-ehVAV!jurp@B=GPsq{7^8 zy?v2XH7`rx{qA&yY;AHkW(2mlgoHvl2$aljO`dWk9Mo{NxG!^yM%D%$`Ew8_vT}XB zI{x^0-t`>mIf}n~(gpMa7ALmJ7|Ur6+d8rUq`WvVi>w|HI9Ov> zd7|)f*|{%Z)JFJsebR3fvRQPO-p+`sd(}1vud9Y;9bDUf?I?KstYJ*)7!f$(BidI# zbgvVB>TXa{?j9Z;JvTF0U@WU7)wy;N^Rz_p-W0KZq-TJx%+w|7xejA%II|NaS;p19 zp@^gva~41eE~fp6j*ssoy=;ngZ6gT+H6AJ%W=L|4AT=Oowev*32VRC)oLGDT93YVQ zhAd2Znv++_3t8wX;=T5h@QytS@Q!JUA)QeULlpLGib)~W^{q*^QGIaiN#WbpWuFeX zm!rjol}%LJpy?~_6ylyAzJmD_Fy^e0WuhD#ToX^}h2`4)IHk>T6cDJ;!gd|?m~(T; zAA_(Z!Hr`S#}i{oAK5=g#5+LIt&>kHXoE+cRRllI% zoEi$kgr9(YF(>p=SvYXvqKYoyxvKg|JC)1g#*);X#OS+^ z77>JAGF;0=7Zd~$tTJiO7OhZ+O`H9=cQ(m~XTAigl$&1oaQ_U7-CDYFvENu%Fr7$! zRTdGba$=gYbmvJ-rDTGAEW6-0js4?kM!tUI^!u;~tT_m@<$dpPOhenh{5HS84e8z? zjo``V_!MCP+YibM`3hN?P!OP@sia00vNuzAja7m_efL)=!_|44Hd8v^3AoeEKQq*Z z1+mW{7Yg!C^oF>A?(7^`zL(t?4~_x0W+FH>^?|LmwSorlX!%xt6G_s-$bcBv`&m?5 zg{*}(>_pc-U~kkAFU?@ujPXNg9vdn_HO0U%dD@G=(7Wnf6SQhYIwo5+C((fWG%XEV zJ7+!O;rS-H^b|6ED?m0`uWJ;}4kXyRi~K-CbkdN&Dl;eV#b{umoB^1tt5 z7e@}jTmGN#lCuGpLXP?GyAz|C!B61;1@GT^efeI;&iV6;{?6Uf0mu1n9_*buj>-(e zt?;!Y`MY-PDR87D==TrA@s|D)m4@}dmW1vpaV!=!Jurye-!)(l@fERG26mbW{qKr1 z@Sxm@wDK26v3K|V_=fH2>)(Bg{O<<%-EF|i z|KsI!_pknYM|pQ20{o4FTz`k{EiQ3-K|`$qKMBeIE>tXEH4P#N6pi**JcheTQQ`jG zB6VIa3Ff;C-+xD1T8NYgjs}hwDC=JdTboGkM*7bl;NETae~sjLa<}GPzJJvr)-kkM zKOJsRO#kkN(WF5rpd8+|e+Qm6Toe4?Dk3?pToouGArZ|7Jo@7Aor&Z=A}R_$wSnn) zgZ~wug|medu26=5ZvzH=p>i+CzdG05r$Y!)5HE6sgB$Mu$dY!a8vofDVO7KbmMxK- zQjGcyT)E`_L6M+BbrwMHNbmH{{@(@r^3UQ#`~98z|FJk(@RLCW{a0?slc``48tSop z;JgZ={M{WoHzl~D|Fd0cpHh9a4ADT1pP2qjg}f(Mba`YmIX)@g9HVsspm%s6%tlS& z{sD1{jCx__i#O5AQS=C1R6i4A)h zRhJf$#Tz=!8Jw>>kqaPmz4zThvR z`mllEq6}>CUyF>VEic6IeG($H!MydFM{hu1-a_rO3g7J;Pt0E2X_JP6pPz_^TiHQ^ z7GDe?ICqBQpAZWVyFc39RfN-!a)$y%3>Os~@p7;5ao1olTZ0u15?Gy~{FVN=;>_wJ z8k$<_Dd4?A$N@_KLxGtR{%fDU&0bTzH^*`*#m|ELf)otckeb5=4m5@=gMn=U+*x!Q z2*l>A9s}%P7l0&yr3xkGVNQ@KfQln=b;72$`B8~*MKKbcRKis-0>VfPIHIC7CA;eE zrIeWFYF!n$P(gBtccwO33kZJO?_<%C)M>iI9X46OWisq0iN%F8lx44>%f;nsT@)1~ zsr2@RXY_qdXYI*kazR@mN_cbZ<}Mum%b(UQg>4DvL=g%>B#k=YDt}B#ILQ5n`uzNgUa|Ix&&WeJ}w?E{i5RZAFHRRV;g`v z+NY58CumKlkSt3yI~uTm{xJPH_51#HiTz51vOXawIR|d)1=Bf4>|SOfV-%@PE-kG8 zyz)mt7ilG-0VB|T$>X$lv`xL}b7n4KcR4?g)|Cqk7NNaU*$8#Yau2r#dLI!3$%_MQ zZR3fYHOS${!583wWaVw)-imqUC5Y?ksc4P}Qi`=yS@}X*1o${_ zo;y<}SO!=YMkCHXnJH;-I0F`hSbXl?^XRmUrWk)ukJ8z+VNXq&ARg)G8V|f329N^o zO~k!v%!>WLs50BHRc)j7Hbtojb;%F)iEmpgjzodA5_SaZ-&xD#d(S3kI2kl(?|S`~ zrbC=!+~`z(y^_jwqPE0#gx48)ZQ-+7NBxhIlLL!KnLaa;UGe||yGIH9QsF+G@*uir z6kwTP!_n>2RNgCru>Y zqQch3vriyn+V>hbb?~t2x2z*(Ijf8M!JYci^7(JF?WdMEH@v7&!K4vuQd_l}k)%zF zprS8S8Afrc$XQ@wJfb7IEG0WXxgtD2_LKw;!!sX|Ex>Q%8NpG9H$hF|9=*14M+t?d zsd2|92RL=0D6z9{)Ytw}1-UgJGqa~eGbT;X{N(ss){j+03Y;yCvs2TU|8^9O+T^?L zABV!}pHJ7<&Etfm!_{^;P08*;X)55>mhJDx!dMCTEJqUt$G_wJ?**vO9*x_nqMo*k?0MjJ6oF3+{S$Y!&5?0!!}&46VADwHl>dZK-2TJQY` zHzecxxg{y~d>bt3r21zMP`jvacU5)q1G)K1Cktm4bNbdZpOCUB$x z;|h|y$D8a7Hfw0nj^^H@xKJ5TUrx2-n;mN%Vyh{%@ zzQM+Z4aN69jV3OUDFw_0&ZvKR+hF?RGD1SpFvNi1;ItCWAIZ6ts&FwcCWCCi@^=^) z=MHQTMtkklX61MPFQZW&KpQ?4e#XeQv0rJNG<}R)ZU4Rq&=EqtJLlE-s{FD9rhM56n*X-pM$N|KEpj2_b!jE z?Wtn8k4A_kqe9|GXwXhBWkW`ZW>QPbV~~mzPaDY%6bNz$?&U}RNqqkG&d|*5kWq2E z(@*kL2eRXh{cL`ZN>CsC9H}e#_Qw)?XzFwY3*fr-q_^+Rrnk@?{LGv2^RSXHW>JCm zCqUrf#=qvsoadWx`y2T>WF33H^B1j_k1}g}O5pp2qaP}wgbj!B_xlz6pL5OYm}K-Z z$Hr__F%)UCv4nnBA_9Byoy;c53Kd8V@lG}L?!z%!C8bEo5A0%cu07m?V7yW_B|_n2 z)_v4;M}xGE-b@tixk@P;!Z(U4zrnz>BMx_BqTj_EdWMGu-!q2^e^c|AaBy)}%UL_W zbP14_3m10as%B4%EK2Mk(__NMT^XLFk5F`#`e};=+GM?pgY+UNeVRi<(KSkqpJL#% zv@EbV?P{$^0p=kq@BiX3{1S?ttTPrq&#(JTw0tkI*KR^c-dze7`Hgpn^S{z_eq%Lx z24sp8!BGCZZ2%5=Cv?b!W(;qMDG151RI%5{hIWs`k2}=}#o%#GH+oTTRKFJQ{*MV{ z@9NIJAGG(;xYjfX&eYGATAt8y7tc^NZg@Jv>7RS{|dVT!_ zK;ZxnyNUc10_Y8}IxIcUAg(ShgFvc%BkA@kbG;m1M^KIfkn(H` zE5ZU;3F1R9QTwn9{!7;BhV%bBHv-ebxqu|HSiQ~m+w~Z`7iRcJ`6H7R{WhJ?>l@va> zld5khJ8Lg1XE#;1t)6bkop#|Dbh+XO_4OodB=}0s8I6odEHzu>qzVs$tvSxe`$F;y zC&gejXG!~THU8PoQQ|uo49(No(en`9Rk3x{Px9X`{hF$TgOx2tjWU$ zGqw{yFfnHO^N+}!&+gNWe@LZR&k;drWU;Y+3jlocfoqaqtrvnlT(0Lw^jJm4Y()Ha zLfg3(vh{U34^6$U$Jqy0Ep&dkSw&eUHaGZseH$+$Kd%3ATF&si&Eb)`j9WNG;Ld)) zRLJFmU4N!w9GBDBrKW_o?vL)v+^*Ttc!hi&MGeDg_t{>7?+O}azP`f8{bZ%minDg^ zA2tQGt*h*>8J9kM>=MhOE>VGdLcx{yly8PNj>)oLP{wN|&WfdIjgA4>uJokC2Hizo z7WCVh>gh2*v6EbQREGg|*YttDv6L{EPRh;i@n6)(%d4WdMUuAW?T39)1|m6eo1q29 zx&`%F$j7K2Ql+iV(G3Mpra^ix+uK#SEIuNIeD%`2(e%HXKQIn_!mLkGt)Gy%lvQ6< ztD{!Um+z(si;gYt3bzr=gnp?j(^rl0;i)c1E|7~RAxau9HX(C;H-o6J z+0c8YamakIGcrEtmFG`Gvf{8yaij0Q>nd44DkI$8e|Zt+zB$b$Sc;I-o!3Otz!eb~ z_(E1z_Mq*X0B4?76+G-3^GDIE_k1O5f*@#^es5B!a>jY5(31yj=08W(BmoOy9oUBE zB(}P8zLv!3WQ$$)_&J4~g2I5 zo9(?JGX-t^eo)%^3SO&$WTEP{j;+%P62M`{HCaSY{Rh<_1Hu|u?EGCjdxC}kN+^%5)Cn^R-*0y5WVQ=NX|;fqID&UX}LN>!bCd!E_3b zK2UkMZ*$6?r%XTkwoE_9rqC|KaSWN^FSSFcMuia@5X;GXe4sRB%<`za;kjt%u~O*i z6o}??5YzGGU%|yv0HVr)5&V+qx>d!mwSI?S>9h+zev)>TvP}j~K z*V}(qWmZ7#wij8@{Q2|eB}v{kAx)RHS2sQp?OZTF8*<_R)8S0n zOvCQd5}sEs^G-G8=rpvbV8ey4k&%K32!;*JswiJf4~w$*qM*Jv26cqzc1wjtss%dw zNjLo|EDD$&S!fuEbC+1>0$24Dn)!xek|MA1l^m;-rvzvO= zPrh{E_V-k6LeKzbh>y7ciMWm zV*#CfV_5k`(b4kalhWF?{zEpeaWu=70oYT_p&oHeTDPXLme=6qnbPHvLeUSV(5Jt) zM_DvmNg4*%IR0D-Ep&V)TM`j5GNR~>e-$wHOY_4YAPpiFfugrdye$d!sEGKDo0p22 z=9%#-+pu9JFUU~WU0R;U>shxQV{O* z1+P<90@~%=ke@%VnXREn^X8I7(`3m9)toN5-uZdmNtU|xb>oA|W1EhSy;mpOlVnp6 zqhfxKi$Diua!N{C&C%uIWkb_h-AlW=!}hr7!fUP~3{WgWRGJzTjFEZeMxXv(D-9RA zBiaw%l%X{WZAz`^AwG&cd`_Dyp5~vBq=`u|&HQOI-o=vj_^apUlh9_C{G4G-4E%ry z2!W&7yuzd+-^DUAfuvy#4X}KLQO)Au$6Ot(tnbk6?0)Iya6eDx2HgB%qEkK{Y*+AN z6p@!2wP7$KI9TBXWekqYL8G4!y2(4aH2bf*p*6jNn}ZNpI} zP1AN|VFX=Op4z9JE|WNA;#~R~QSD(rW#c^aN*lifG9QGS&@Q_JS&G=4{euJfa+=Xwy;9_+xVcwZy5ah2j|nXGTCMbx{vJg8%@ zhSu@DW5U=QBMzB+HZY@k9yGhC)c>*Vbn`7#fJ5QPj_`HwEFp~;9cI6N54OV>NR%9^ z$qs$nc`h}6{lT>|N`z2{c3zc6A#co1PLFo>=rWFNqD^GSv@M0j_iogSw}jRSwJaLowF4DHeUnA&~{j)j76&QDVNx#{JjeiMU7)_#DM|3 zk>AS+aLK~}OUo&nr(JGGeFn%b&e338pc-t0osuFHHyV1Db{oyIRhjNto~E^(l8A6z+i9Gi2TdOtEEUSQdd$r`oSt76ku4FJ0t^kMz@{77UWyC11?w2{C%c{h?CXFO78CfEi)7gbZJVSY$c9k@o zIxe^88ybwA_U5$nPIsm$$NW1i`)%n&3~WxfBzM|G(cQu& zsdm-C^w2Rhsk!cZ_4)(3V}litTm!cvi~YQROHx?cJF+)1go47OD;Y#-6USs5Z7a*L z?OibvAbw2?TRbqO*$U&BV^U-5C@6!J+c;C%jK8}+I)nUhs4U+%Yp5n`#d{qFRF&3o0+Jp-Ix0lOrmXSJ11{-2u6&GUvh_6&&L^u zHjWqV>9e=z2|!F3JV2dBBQ0MD8&me(mh;kYJ5`nqs4RMV9a_e4WFJY_=jxB`3^R7D zLM8~_MPGmA9=3%MwkFI^91%KrHupncoMG_w7xMzF9vcXVPE#4>N4_!02xq4F@wLNy zD8c-g9|X;c+ATL6v1KIsy>?;iG)va9UqoDh@9%*^@Kj-6Z=J+4rpk)vCJUJK{2Zwa z<0*-W3j&#vjH5p5cO8K*sJ353BeA#{f(h8i`@X0?*WzlA0Wew?c&oBF{4|$#tMVeE zneEs`%R@B=Kd`&`w7G=vC^erG#@>LLWh~6fbr75~@VRrX<73hVUcje|(Jxn8&I0q9 zyb+YLpBG7;hE?V6Y*@q=!3Ly=-0e6v5l(>rMfpDiJZCt5WU9INyRJ6s(&kO;$5?wY4q$ph9zH zBIl_AP>&R{Kj13UTk=cE`OS0vWkKl>}6FeR|q+az1|~d1-XJ zg7h>NdBpk|hGwj%DaQYi@zc3x5caqB&H!(BZF%-IC0y`&@~JGBUz9^w4_#QCquzg| zJhfx$FhJQ%qMXKdfUeq&M2OdAZ9r)m_iLx^MsC$R*HU*?e%;z-Jw_2zMa3@*uN5iN z{Yr7g6gK2}``TO+HUDjP*yB79UHo=VXs}2j`AsixXIXvJ&;t-tPo6IAJ_^_qvEQn3 zk8eSkHr??AJrqF~}q7VI>`2BrbyUsRCVp81-w`qE`ZMh!8_Cwp3 zHTM_2?A!lPVh*-{Bnj}ACoFxgw0;R7-{Ab}Lsv+T@`~q(cEZZep3y9a?#6Bu?KNki z;6wbWoLhw}&9WX0*U{xrb>o{yGIM;+>jasaQ?V<+ZS8@%qspRHp*ud3hT60mRm zp)1=xl`XQcRDcv->*j(*Dls4Op?m76%YgtDF-{aF}Ri!-N_?s@BBQD+#tn}v_ zFRxE=cNT7Cd7nsGp>GKTnjTMo`D;--OLZEDbv@1E&yLcL*`xt&H~4o!+j#tB0iuJh z^_o?FZQr-v0OQ^g#OS*8R^6&MLekwgTH(4f*2@OS;F$pFTrEvx<^iR z3o2k~;)56Pa$GU4xwI4v)FsU$gQ01kaq={sQk7M`H6=4MGe5CE=s9IefM0NImEBsf z9YW)wvg3lu?ye*EN^lm_)$z4@>hA$L<41Zs&z$O$(J;7}N>>LWZPf7a@u`1{aCyF9 zEY@TaZsyULyG>xAt98G6B{6YRJHcLYDWVZ_jBofLcmG^>EC{vbXDGz=MPbztDS>Cf ziHmgyrGxQ?_+!eGTC3#|1#1<-|=9 zP!3F4r@vbuqiuD3GeZ$PeT9c@cC+&}$|`Ee;G3-;)q@tK+}GaD6l~gD`sy+n?-lf- zc$S+k+^T|JL^KNroqBk_P%&rps*O;?3kcEr*r6Pv^|-@Kamw@XflDPPEj<(aeUkKR zr;o^u^@|VEups%7WdZ_?)&3;LKBO!R7xf^ZzHZ#r5c_i*!EOQJ>r*_RUtJB3KV+;P zWp4kRg)OWLH!XgK5vf#bl6u2NEz$i#FJd9z2!_gj@?qtkSCqKS^8+D%8=a(n!lIs> z$_p9Ia-oNT@l~Tq81r~@vyM^^eYLL>1O4cyT(q_gW>x^yLsS`6z|pH#qN@Zlnx~;s z&hAJdMhUicx$@j8Gwps=Cro{5R6q2oYUL5g+hpdRgg`##=y=>waC-?Puxyuoe0EG>^GO;&RC~s8)CxT|8H*DbE;S_V zEvB2PRCQ7E?*ttLG*gPQWs@)Nc8Tzu1^HDNzU@dMaWdd{Ot~@@&zFf_vvXR-AO*ekl3XM0Jb+wGq?L3-Tzz1;FOHi@0-8+A$wwuube9^do7 z7jOn5RC>M>_&$GB4M_f{uEMxe(Zi%Ql-Wq#D8l6}Ao;;hYF^JBvRNLbGva;-_*>n} zYKo)Z+Hvua%g7q$+b@w6C+etNZ6u6(+>ZC$rxzi4oUjEZAkS)oproy%!V8o{gyLYK z>9aaN`-YcW>87@UN*BC5+UxQ-6$7Ma-naXU+TI+C&Gb6*>=~Kmu$q#fNLBGt!}t{; ze%g7(7wO&lI_md--k|Oc2lzXgS;dkkyG-Io$D^aG_TbUB6&#yS2y*FjIp+!PCiI|L zl~{Ov!%ZRCi+aW2Yaw!XQkta*Ahvjw#)G6907cjMsQl)4j6VQzThK$~Ebucq0vS5F zI#IH9uG>Z&&v0SWTl6+P72~|9kdyc<{@Nc`0ya8r8(~X$AnzhB&Kkvzbqp9jgkeex z!Q;FISD#Q&0$zWy^!Oqn5u9x^U~S4_6y-e2k{O~}5<^cqERq8s#r|8tDth%Y0FGP!GUz$HF^RUN0O~JCT z3%=3TjG;tqu4WhEkHF>xtUAD*uX!L)ZW}i=lu+-Qq=qM(m&%{d-`13NbLQ(_f8()# zesM~2aJ?nlrEd)V`skit^?qof5J>-&0-Sh_B7MKR`5>Aeq4)3}u?QN@c7>)*SOu8z zTbtZkoZH{h`i1Jq_JwJLl=IK^D+|z9UndzKp|I6o|B|v-eE=FZp7nZq{>NF}oDzD4 z@_qi&f1>>L1p>sO+?w5-5e=`3}SjD7)Ky9NrYg;21DW@$bEAy&yOMSR4 z<>a3Yz_LmF+PJ?DzC=d8c<@@X%%DA7VUL!Sl+<{Cp()kLmz=x737md)Q9ofhdSnF~ zKi$)xR(Qem&@AANi-`WJ8^|AczSCZ3co@5PC0h`JIn^q94jVKAl_mWlV*?Xp0OXqf z@`zxDUg8@}MS#yFF~cn4?u`gy@-sS>PV;V(Y-RU)`V5y%=%|WKx0D`V^@v$Ae_?pM z!ON?N-+IAYO%v6VsOIXDQoqKb!7EZWLbatlecx&|sPRc2F+lSGfzSbCL-k9ms(7S@ zY7?o6R0*cyir$*%@reO?t5m8vcZ&*VLw%@FN!3>F+pWjqH6=Q?_YyBXN7U-6PO+yY zQz-?AO`SE@&Zxvy{@ajm8&g%ko@V z7zd^zz>I*cPelW@+5`>$eU265-cnak}7{Qmy zUJHwh&79<>zSRPcy#8g8QZZTyL4;d}0oq}lmo43E2Ztor2CWfYtggq>XM8>cx>2V` zHvDbV7ch(S?)Jlu$l+)HZ>VeIg)%upGqziZ-tR5EZX#xT~ z2a1VwV;&cOo|>7QAFljqBeYs?69#GlD6YI*;-b%E_vI+Aet6H5bqId;6|1M%TU%Dl zka~J~>_%ZeQ7DuLR1Rs!F3#NR!4adzmgkdeRF=bdUE=4Wp+$teu4$`m7KMOq=@A-N z#=kGU>jMQoHa6uvU7#DINM(64`dpgN$pAUhQio4GlN4nz=DBX5WA~-*^Vy3^mUg^v z1Q&8|&op|kYiXubW!&?tZkv{D0G^McZ<`PnH+%4m2lOXU_@lO5rs@iw&w!MnUm?9f z@w`fh%5tYNa&v1;4lNy3i6I1dT>x`2NGg-ZVAV2DDzL4CYevm-DK33tpga#0fW<<_qb`UM;Ke#yt7C8YgplrLgJ(3x3{HO& zMj-#@jsFno;pr(Zlm#>~8l^i7Ac5hq()rhN9UtFyqjdTAwGAA8oJ_s^nr8N@_Zpg} zXohS|+;0lhoV{&E%ofB+4A>QylNXf~6r?^>$fVGE-KcVz5^Mcx2dowZX7i~174Ft6 zthvt3mLGg>!DR_~YD!Kfu_-U+ar@`;ps#HwI+TMB>mJO<_D78dUc4_r7SUBp7&=B1 z2pM3yy%4pva0G}Xv#%MXf5UZ6 zERV=fr68gRaU9x>TOaxy(OS-Btwvdcr^@!J#(L35?egp_@Oai*IdxmXoGS1er%kF_ z_iiT&CNY+o$Y?|?>CrY0cbyG79F)BI1x%z^kdrSb)qrIy$Ku z?|Kv1QhR5k&V8E--!*qkPirb+^nBw|1f&KkhmX0Bdz%50TEXi?N`c43RT@(M`d}c) zi3tEOY5rAFus$iuP#CROAUoizOYzU1maU(pPSiUuX!jn5PvnQdIs6gKX zIT+_0&ug&5ncnw}WJ}Bu!1cqK{?SARfDL3@Yuo1lnFjri7^e4ivYN)OB287NO0n#? zmt%e)7@PL>I3+RX>@y?Yher#A`y&Yf8*MSqVX(0;K4J%IzOnL)?FPii0R`9wFIF?I z8Hh8hYA}J-JlZ)1Sol8xst}Pn9Zk~Kvq@2P737>w%g)X5>$y6&5Js%!LVkQZmZv)Cg& zI1t+kGKX=peBp204ms-=p9Tir#9)PBs?PAm!@b51>9&AiDZL+@DU#u$1<+zliS2^c z`8&|85J7m7A^9a)y^UTW7Q|-9+hde$UXGh>C|aJ{YcC=xh2$d)J5r#kScltP&t#2$ z!(LLbs6}6rPtwO1bS~<<>=6Nov_&mwHS($f$=;@cecxixf#MwV>@85KTPYH|f*_1Ik4*ejLLwX|Z9sHiaJ#;WVGRAMVv=H4f_B zNyLmM#CsJ9?K`w>JiORka!2ms-7ML-m3t_a0yt4QRKP!<0i;J~Ne@j1 z$f1ge{pI$we6jifPkT4Lxl4Y!DJoTIM0#>WA{ceO$LTpWpJN@src)QXV>BZ){+{Ft z#GY#a;6t=gd9cXp?ry$$Ow9N1zsx_f0VLi}GQaQzH!@3KnH@FW3N<$*yB-sUIBF{v z)Mu_9cxAf~TLrU62(%-qst+X=Wq>AsAid?4GXOeGs zS9y&GUKmEWV9(V`WO9U$U4c_O=bGa0I1=`GaOMTk9SxDG2cWVT8)vC8su#b`8wI-Q zNRTD=hSEcTrRiOn7fAnF7BSG9o7qwIS)h!tBuK;FO`c1m0nBvTM%KaiRRQ$zvSYA91y~e8R^B~iUTl}Lg0k%Vms?pfM*oxd^61bJ}`zyQ7U12$Fa8gFCvpfBdgpmWD-L0HIH; z#y@j05(PhVac@rYyvXkPNiA1lgN@wJO-K6<;0cKcHS?3BtR2?mjvIpe!dUzFUd_@a zsLG1cXvbMtp|gOP!T`{jp+Mw{3~==sln!jU-)IXhP{grm+7pA z{del>r(>s&o{Ulfn_}uooCFXTL8fuKNlw|y{apGy#{&&i8||ts>?8G|mAzOM=gdIZ zBm|^)aZ*wMPBuVB%QD-B^P@qHFG`RD^k#!mtrV8RH|#z4v<6R1Io{YWI+z_N8&9JG zoE|Lp4YA%MDE-vhY2V+0x8o|sTu34CX1 zY5C?CZ*8R)u{L-0NLK%3thOxw+chuucuT_{*cJ`-UYV=kGeayiV^5}StM^MBS67gK zG{FQGbYTF;axg!noH#sXqnl%>3*W#*jbrDhSeaq#m)n7Aw%pFi&Y(>m9%{EH4cN+> zqNfmvDDTZf>F>;vlV<#Wotjj81FSjo%g=4i*|a7#D-3@G0X5~YtBc_HEf+kbtawQ= zT(dcmTC(!QnWL9w`1>gn$iL1BPlvkJ$&~tA!#1my<`c`RJeCP&>*GZLu5jkK*s1b~ zMu5*ZEbihw`g41?&r^SHGmFPv=_bxfiVX>u6blsoSQW8W+PR_rIZ!##5a8iq>AFn} zQQgZJ)x`WF!bfRq-EwJbrl_PQC|ZGLd>DvgvidV1rcTcc@cVK=rS3mXe(`jirNdX) z%Liyxw1*!NQL=z4R@c*JSXGstRM_4!=Mlz1Jkz6Cl zVziv?^R3m?m!;I{_j}3qLKRQjF1!@sn)L)S#UAnq46r^VcXxNQI7{_`Bn_Nt7j5Gj zW$YHfPa!OF>3S?mxVvCE10l|6&&RdcZJYJ?QVGvb)mD9RFC#Zc!Ie0mVxlgS;y|&8 zmIhNhaW)g;*CjD^M5E1hkPd{AThfOcCtmu5KntGnY#tXUU2VKf0PdxHNS`9L-hx<{ z&KAk-d~Ja=+UDSxDnPbh8h?em;XFjXj1(}xty12YFlllFJX%9X%2~?#2yCX>*NSLw zc`BKJnGuvady#@PvR%K{${rm-8UEQo@UVp$LOhnv{NgD@*nxzT_1D!FuIS2QSa(AR zBNZp_pZ#{i<}TnQ@EW$5G+-?skR{IXh?vFo0xfC#h-b8u7eA-XG}H5_&24E1*JSy`;Do%ad^<* z!XDka{QdhJQ$jxZ4$dozqn=J)Ulx!WrJJG3%Co!QL68fEqf5?8yEPfpnM!7dJso!A z&7pL(-XsBClTm(q<^1?9Tu&VBsH1}KxE8lJXxS$1A6nRz=HXuJ$W0e_x-aZXbllLX zfj`wE2!PW$XxcHoTUWAP!+!qsQ0FjsW*Rt~n)o&Vr(ZET&c**5L3wiWqAu{G5ZW7*%Pq%dl&gMbd4oL{gru7(l?Sv(A1?^#H~4w+!y+cl zn&Tg3QBsh))f|be6=|362rP*H4s`6MIJ|PT&Pr6Clqrc0^w9HQ$}P4isbmJ*+1j?a zuJ*+1V>mSL)Jh$^lkoSK=H|_}m(JHQ?oiHjbi7(JP?M93RHF$IF|H?e`dH9SP`*y# znGdvxh+ZyzbZY&H3@GPoptpnFI-NxJeJfDm`t;26D@C~lzLO+>iAm@q43~*8AdDel zeOQPMa8u!Q*(`4nJ~3O9X(4LS~!v3(Aw?_2ps^I&rIFLOtMU;Jyeb#|m z^xei45#HU^>c=5EJ+}Xliub96{35;Sh>`ar3?l6W8i3M{vwx`p@XA;0tnDd2;5yN% zlmjh1DxS?Ce?XQ$hliP<~Je`C)&FdodwsLh%zM$S1(R=5KZeZNP z@ne8e*$ZSx0{noc|CGEuy3O$d-R#Ne6(9AO-hzE2?(egQ56Ph;j)rEg{m=DJbjMdu zgV?{mXX9|moLIY!whktzj8zBUR)IL2B_$t zf&Q`T&nJZ6=bp#_z+EX^qhh4_HUm&l>}hEpe(8@9c~}7N((S$zCw7uTES}G;e24|T zgeFn-q-r+0^pd={Aw;RS;Tg}N*O|yu$QT7U(8b6i{~7D+a4S40lyNMyo%tKnJD(xa z;LuR482|0YkBB2RPJ0TMXZ#bzhTT+5OmgP0@|{Nuq<}v&t8)KPr*SDpHZV zew9#p*shv@S;-h;apS!wupn~qab7Ewi>s?E9SXGejIw&^GI0g309|R6ZN)1Cg+RI* zi}ec4_H^eLq>LZ;v?0xfu~5zY5=f<%xjxa=7{h`$5~=WU1-BL4S_)axS1U|7?+oyc zJp{O19E#H6OCyb8-`Kq7o2p@EH~F|TT}?15_P!+}!i7#TTXmwJc1E=0#JELVys!A@@Op#{f4z9|}&V`b;r zvu9K;)RlL*fes+P`PX##mUQ{ppcVe8_{Z&wQGBoJlEuL~dNPUZ)bV zZrdHA6H}M}>g4L3AIt?ZCh+dZL=F4aPZnheaJPH1u)p74pKw}xDyP=sXc%!Uc-O)t zEDiK>8`+f5_!=&$zwCGC5CdNrl~1DeoM#Dy@a`Mq}Ku{aj5qk2vXIk=CO* z%3Z{%7=-MBW!0!QUD4F~y&vDZoM~(V)xF4$yChm!Z<)FnYT}=?)zhP&#+g@#vb}pd zHobd$!9WN)@=%qaoUle67pKkZHZ;qzoC5I9xo8;E=x2{oNI;JOgNk?8h$F!)Y5n!{ zXOiDvgK?x1^fe}fcs5`h*8q!x^&qtK2Gc7U$Z_$xonV>ev*ZOIRznFB(YeF?Y9cCt z1V%&m=+&I#KsFnu*;sl509UgZ@>zj)yZtAR$C#KE<%ROUzNa~oiZ({Uxc!zelSU+f z0|MRWp4=e~q08H_L0lB9je2r?y9U2^BGjM2#!0T2~(LiPl_2KY-xrtBTVM9NC zjT2EL7}bcctv`$K?mG6M1-SC6kf>&jMQ{IqguQiG)Zh00je&d&Ktw@c00AXLq&sy$ z6zLWOly0OORFshrR8qP@VhHIJ5RmTf?(Y7r!E?^Hp6hz}SH+q4?Ad#-weHt_D>uE% zyN31Mja%0h!O^gOV|sGJy)Nl@MP}CJc5N=%U^r_C?pS^K2TN8#;Podc5o+uPvh{2p z!r((AWT@d&Vj*sPjc>a^wqgkYAj7K|`B6Y(*7zO5eN#1&I-u+#zgndD`^nF)8?}v>;w!Dnv zIPgM5wmDbXJO&I;%Cpjvdp=nzJ@>vMI@mFta02zNZ<6|p^{!tff|!z(lxsB|fvv;v z@K5q!QE!%Ne^rHwiRT%QulHhTik_U`E}_x`r_=p3jXW1&thI4U)YhLNBMU@TS6ec_ zt;3P{23~j!f|DH2d*41oi}TN|Pea2Y{vg#`$xjzr9jo-v9>(~%pnrgVJ7mGC>1ykj zmjvifQ*RYCIE@<64F{#wwDPED!f>$|{;kVkP#{SZkPL<_iiFLhA!A?DpfZ2v3&MLh zCRcgdlN%oyard`dGNzBIInqb_1SUrY!X^f>0Sm)`B-b!zZSB9gk*SriDO~=z|CzA2-Ot0Qw`1DbuL;tq||D-Z>R0? zM07^aeJH`U#;WI0oNAMHRmVFiw34lGlJ$#B8EJh)r9zszE>zy?or=FNWVbT(BRALI zixOBzmDUbZ<5_p7NX+oV)H#<#B!lwgZN#vemz`O^6OU&S^XOAX1K-5g!;gc?uxw>s zZxA)`b9`Rd-TQ!0$5q*RPsPhnA%CeBC{z7Zv*xiY#@KQ$*{C8II*jlvVR;se2@@IatkYlwy+~> zxUYGjf{8n`V;*-r(2PnaHHqRt_Dmmxc#OnK;h>nz`qw_5UHBphhBgn2={GOlmt_Yi zM`0)_+XimGq9u;A^EVIrxQt`=f8p5wk^RDWwYzYU9Y#q3NnLul0?6O1Wsb8(agk1Y zG;ooyoER0CB7fc{E$Ly5#2Ty)@{9%TAI%y8D{bF*rhxf{9~Ob}GnTJM)dOADD78zb zk27T#-3Fk3UiFot`yqC2!LiP^_TylrNsSxt^jC*scQkRQ`G? zQMW&)y>cx5t=E_yuU3<}>Kx{d!^m+;@si{8ph6u_$U@Q7j>%OXaY#`61{Q4a475;$|4BKcK#3GXv9Gk(ROtx!i2 zEfa;|TQ1kSif@yJM0wpdRX@f|oXmY@M(eJ%OY?8ALT@%~`wqc+(wj>89CO6j+DwqR%n^91E(CM?~#~m%+EU>($cfY$+;MsFbPZ~q%pOLq+ z!2k?C3!wF4oyP1UOYg$|2yBwqh~gzI67L3Rc#*@t{@I0-assPia&T6|*lkqtJ{A8# zqm0zNPg(ZXd_-?YzAzBAbfFoFcP{V0VsZE&XRWw%21H(57L zlpHSkCxDiqKBL=1F>arEx$laEP@xF#6ecdE zH&=}JL$}UfyPXCWxEKWl(DbkywA?gFA#b5D!|=()*^%=2$37Er)G2p%zZqW0dLN+( z)jO5GivH1RB79x9RswX4G=IlPFk$50)LKzbg`!q+wd(N2KotADt<{#Y6oYt@KL4_Umi=vxZvPrSJ5cWzBpPc!n$YWZwOZA`0 zxRX3^@b5dvaIKqugMswdNDo2{{sMKI*DXQ?&v~!pKj3FoYf5rqGUA4PF>~KOr*z<_ z8Mjf_7rtC`X$F#BjHhAX_{!k(4^G>H=jUd+18kgJd8Re_QV|(Z=^rRX4IK`ZJwuOt zGFONGXhAzv7HNlfCZG}V@2}-~nQ!|2_T-!8fjppGq%>pwz0i%&d;rHq4n9K8ck+0y zDTt3@d~e3E`uqEX4tDue5S*ia9yZ*34bhtVLd-`XBwVp*u?J;+8Lch`YQM- z`)dW%YDY%6Nr91Em#ElSA^mh7eGuS}V*RsrjN)mug8EF6!)z~HQY;W0iXS{*w!@uC zy>LQyQ`}R61AL{h3}Fm^4Hx&85{i&klAbVqt%{uy*<9#Qki0{{5BR2nDF5`BFgKAZ08U_ z`iG#)SF4Er>Ez2S)S+odW2; zc;fRLri(xN__;8e(JAtSP(!+v&_^LPQ<9)%T|BgTz4|hHc&YqHmwuZzursoQONd;s z)nUAVg*EgVCNw3ER)&SzHCNiZH}iTm8Gnk3iqab(&Bk6ltfpO|4xxPw7`i}>8A8ga zE|)5}X#K$e;;vPj{_-C0rAwFOZESLL>Kwoeq5CMR?$c<2NvE@D?{?Czq%w?}LN(z8 zr9RSuK6PTC7LoVz#>>5ZDGB8kBgaz{kf`j#>H3R4P(mM?1h1}Wl?nRUF*^qnRq#FT zzwqiitp4JnA}?E2)lgLrqe8%sKZrw5MD(ngKaMg|bm5oDt>n9TYozN)Guha!VpDXG z-!$%aYg^t6xUgWc(BYk`39+b~CLbLLMUKV~_t?W7TjJ2HsBdTSFlvS?6I2~oI@v!% z&Rm8<8&cd}Qwu0Cvr{hqK$Pip9tNyB`6UR2WNL*QFNW=2Ym%YrwI1%+#QX z)ulVaG7R^KeI{1eOz4wB zM=a-mHAUEty5OFWj63Dzg7QeFFqMBP{`U5Cp^sI2g|gJ$yLW*#^axa5ZjchZtKZ(j zQznzZ5zli9DUR&@Oprpw1c2qA}$4(DEw>cz~TDF-pSQQ3$DFap=n9{-&Da%am#|L>V-}g8*MEd z2i=)Lf_KkXo(!L_5kl6H;C#pkcWwhG4wW6ldh-g;)V;l81P>b?<22{K+UH?XS;O!o z?bG@X9PPoqV}rJUuniHTLV+QS6Q1l8?H&_n9(Eip1X7q<@xiLwT{mfFUuO}c;UaQ- z4fFoouYGmn$u8zDWnX$mCe~T;m`xN;ni2O4gOCB@0#DiL1k;zW|Cd?Nd~7#-6&uM@kBU`JemmOToe&EU^#9g%KyywB@x-e=XRvGK|4;@nAcudM& zScRY^N>E*Kw?3QD1BUV1^frp9_nvrN{Cs|?{OLsW%YC^AUAC33bW}XKmc1>fqGtn=_lTU#-nZTsqj65S z0za15m@(Ieh8OU`*qgVSN(knJ7Ps&`Z!u>ID(k6~_oxnHRPolnkq6X>&j>G^^Xc2n z0~tYi*eGC)-b#8p9XxvF_>OvV<+tP|E8o`H1>`Y{UuNTO`{qbbv555P0Ah~Z>sjo* zQHlq*5F0zagYJw*rik%(F)-W#l3lIEQ3^$LV=)X4H|IjYc^jOK>+qB>f0!_)ztdB*kJ>XxX&wz=B#W&-h+X zeSN*QAjYP4ra`%O_zQ1VK#(Wm=tr-hbFlCe&jewll@hR%tz}%uYO)ZSwr9<&&pkcM z%Vy=qXre>!a&X+Dqr)-oYP$?=;FhpaMyxZ7C2oxEOUARJkOk*G1-PLB0r9rJK2`%d zdh;(!?4+RT7j{3H{8$mFRbU>u_f6CN6P3=`V;tbG6R~^VUJ%hNO!co8wA1?JpE47m zLuqw=c4gs#Up64`D)}jjeSh}s5TvP=h4o#rR3(GQfhdd3`WgOel-MysVZknY7Jd63 z$HkOue^oZrdp`_W^||%v)5Hph8Fae}K(+z^7cW&+by{+{oSzy6dQ5@&;8r@K#ZqY! z#7UxuYva{%Oa`1n4zhX?*Y;>2_%w5n(EBk@r*c zzvQ?5C+)Q>^q@K3h`#y9er-zX@*~Rjf{@i@>vxoxJ6Hn&SiZG?zWkXLPs$I4o){4> zT_Zkz`LwD~93S6W&lJRQ4MeK%%Ofv{=8>0tb42#Ks(ik{x6-0cV2e#PxhCc5UHZpZ z7+F|i1%?E11O65&x0H$~-xmLZjB;f26w|fW6AHQTxS#xcFM@u<4SiS9USXy| zbO(C2pKQ(A@j25Lm7gGL&}2_QnfGwu$Qh%(3Bw=K1f@3obn7M`8!E~J-t+udS=Y63 z=7XXeUrUG^Tm6oNoDX-F8%XTe3TIs+gq>TU`ZC>IE@bkre|*7_$+kcbZ8x>)kZ$c5 zA)LISlSNc^k{?)pGJkvc;eF+uPzszkIVQ~hW`A@DQ%f#ccT?be+&}={GJs{rqT%np9v6hsqEnYI?^~a9H=kN3 zD0=#;FYEQRpV!{f&(@Cj*jIm>@!oE#uP3Ov;Nsl>^Qjx&ah>o9)xgq6V$JJ>53Sz( zse_3YO|77el$26S%HUDBqrCVj(bj=`LFeSD8gdaYBIf;I((!KVqwr#NW@gX#e8<)e zWUDf#P77GyJb1QQNt)INWS`b)_-@l_jpvtI93Ou3FDX5go3!38VcE=^HtP!bv1Z*C z{Sy0EAm;FqU_O~_4AA|v{-Eo*nWDj?<~JeJP)K;aTlBeVAz!sKJ3nz!5Cl(*xd*}1 zXmRW?PV9nS=&T$5q9>A3Yr*0m+}f8^OGPcCU1f27D(`!&mzw1KM7d*Np-xz+S+1N( zeXI&U%C_5w>garH-Ijr6@UGFE5KpeMR!Hl(m>{TTUX1B1yj9m!h!*H=a~+mC z+1|u3F2y#cKMV^n!l6+d8SPGa7~+A#F}Tl&Zsq=yH-=UMuc_=WgVXtWnNXH@q}=9` zWZdS8Ep5tVR#<-?MY(;wjPf}W6GnNHahb~Qj8q1_?`D!5Hwn{zA3Sh9+9@cX+>7A3 z-agm5Y<@0YbeRaD(4ME}zBc2su%4hs4w!0Vidag!6S&NLyVpRGWm8@@689@M`kRLW zve?dzIZ}=N3*Z$he(zazYb*$bXMu7ta$7NYVB{HfM(p0Q*WemGVXdZ3xJMpuHby%6xi(~yF`flcnJlXkF z7dK{QwNjj3vBoX&>P6|}CteS8%rhurKn^?yT11BFkdF;=DN^+~r?LC{((OkP?3}`@ zQ4_N*!tR(?&4NdQF$(G&1Y;3&0X`0DNC8#HsKS2ppVW^ZgQAA>x!&~ZQfM-=vnwb* z$~PNSRuogC=EuPy9l95&+;ki1!H;Td-_zCjq}rbIW>Rzdik?PU@bhRf$~fFQna<^o z>iP?Baaq;h{OMe%Eor1n{kmaIJ224d8X(v>1~K? zzBy8uzV9fV(1oPLbflAv-A2?ogzcAOnlUf=6(WTveehdAKv2d&4U*FG%^#h+8^7-# z@pj8sSKo=IZ}Lq?-PZE7CKaI7q)vvF+A1-re_Y}bWD0>Hd)E5V8b?#dE^X6lm z`SW!Vca-%n8?IywP2eRv;c=9!h#%|~ecjsm@ThC3EY|8Gmg!e`U1%=dG?h%EpUU+w zGP-=61g>UDjx5v3qM+fF*Y6q_9q`yPyiQ?Z+?`Q8_P#v6d&2&{nC$D7dsb#6-v?wq z^&Gjd{^Ws|1r>LH;}}@mF%h^wnW`d;nh!_1WA9_+o5 z>BFU%PJc=oIlPlQGnxqxi$>0;UDPK2b z-80(S`*mvb%X72S2&|P_xa8p5G`fe*HixSiB;}*LL1;_7zw54LY7pfW2Ws@TZJ$#@ zGnS=;nhO)Nfwszrm+DT(@i~0#Offn{EEXo-+Sjbb_tn#5ktpxi8GAnyBD}sE@Xx#m zbw8M=lM7N+Y8BY@H77DC*R;#eKkx6O!NUXo{wLU1i9YS@j=D2bpg5lbS2K&&?GTQ- zE#XWonM@Ul45Uf=3Dpp$aMwPrD#Qsa%hTDEN&cNDHJ@>-|JSk&2Mg~3GMb%ZD4SDe%Q9;Aecc~!aJfkT=k12P!?|?HTet=3d5vIn z48D6fqzl1GYBdg${(7oUb$2oENTLq+w+!)`4<3@N&C@u*%82wY_ap;pY4VkIH!=;nb2o=2dmg z06{3GvV(QE<4&sl3j`3FR&#W%MoT?!)ws+Q?>hwUom5d8Gw)a`QLB*W1WS>6iw#{TF^Zn zmcGLN;R5%I>|N)VsViZ|_Gx$0z46{PGc3&BPE53Aqmm-#v)YcmCaSl`;C^YymgJXw zXaNODx*CQU8}6e|U2XRSenpJ+tH*o;W&Vq2PSd|bZvM3UXSm^0_mRMPc*Lt5!qG<1 zWygGzF!~=B-fai>g#|&p?kP9Tu3K*x2G^*oe=QvB7l>-e)_1!J_{9j}?dYoh&}_I$ zTI9_-`$Y5O@VB2<<^c6$1w~&yz2?xYdoMuW>+k0ci zzuLH@f|QMhwhP>QMG}?x9hM%g6u*?a{-PV*a9o1z{jl43NGdGt`n{2vHCa#pg@?W7 z=h$6#<=V<30?aTo z&*=@?5MuzycZ>HEJUoVh9`ESUADkEF8=_BdEi2=fKLP=9=aIk=nEJub15}wg*s6mA zdDD9&AKpe+kgL^=z!$3)4BelE3yb;{oVQzpSw+)O>HxfzJ8t%)6na-^nf zw;F{{XK!!MXS;B-?Brl^f=4E-iv0!2e|l)HEh08>GTvJ`V7xV>New6C2IU&_hB;*{ zB9CI8_3MPA{JNQyoe4vf0nI5YD85H$ar|~zxeHB31Z%LT?Nz0n9>0LWkdA)WuT$d- zl2PWjaXJQcXQt$KKA*p`!tYf@@f}G0|HJNME3nOs62dgC(9Kf#xJaJ`8}ERdvtrdz zFVi-(!jd_|SLpG7^t12tSaw$J*B6F!ofaQi8IL__d1wy0&PsNAYulJ>2RsQ=UXnZs zx!C*M)+zrX;B{T2U&LDdUyW?y1P0V4Cf(@T6-X4631zcgP$ammucy}z<6U$FZcoD3 zQ>+CROK#A)$4$hYml)y=Xj$!6rdIRWbe=Vg>U}^!>U8m15)=k6^b9f41+SDK;=l)V z)xVO~F48VsRw+DaQ+|wmdp7C`3%lO~HS0|iPBa?=0+h)4^#|G4)Y!#)^=}GT;qGs> z`Pn+`?*@V2`^9O!d!OtyfN43($4R4&NaJFueHE(hX2;pEBkSZPsC|`wN z`>gd3mOZ!(vV-M4HLT#Vw2L~cVzd)D9F+XX0@n>P=UI< z*PUSL|MD_-1SyK_a-Z1q;0FXIoKbq;OIYpaJH+}g^rQpV3z`|9q2mKtxkq^SOx^t+ zQtXvj<(d})T(n;3bH(b1+#>4trV)Ze^6xLUJ$DA=G=MG5-1M}V^-NQ&?P8DDGx;90 z2BW^bCisYMFZRkrZ2qC~|HP>(Y_Qvd!O@J{r?K11ZKi~87R4q zQwMZOUEFZoq9i~kk2YP7{%-6G*Y$k=n)TXa{8^6nH^m(Obbo~TObh@;olE@#=tv-A zwR3J}F_pWH#J;6s{8O%Z0ZIY?xr6YaEF>UiPOa|4MgwoioNl zLxZ#tpUER_jce-uX!T55nrIRMjQ!ZH$FY+Y$#C2gEC*`wrZ~U9Vi9ywpks`(tmG_FPDH-S5H6j=@q#$ItiAfJuW;vWHRkmJiQ4OrCBQzviiRv7hmv0FlQTuH= zx(ER#Ru2pIER>^JdZ8{)QfHRg|M4bRy0TbXi_CI7W_I;>U&6on3`1$^t(T?}q z!rnTot|jWZj?H!Z0z#BnzvjT9TI|f9_HF<+sxgE)dA>8*$4l=1MicwM{ht_d8fRZV zEjdLpe8s*#?{xkFT1`Od9smuX%4WjGKPvqmSo_%B)CdUwAO*IcSR%Fp1A@Nq z)w$%3Vg#04ck3?X{bSy226-@UWpD=_0W$%Tq#jW&;0qv`=+G&(obp5FPh z%k5}a`+N}exEOW@$8Glak{j9wzG5cUwv>sb=?=}uxt&9!cFo7eC2jEAmw%)zT<`V- zEcb7?L*v~_s@906VgJ+pR`(Ix+9@yqkylnG`iMd?I%7$g%ylAto#(pEeGQ{e=WQi? z-Lh*fHYB{Sa`t`~!vrvxfs8?{cgj;}7;~N(N5`fj70J%O)@nY`I@(sM3v*)uUVIlc~i9Gh0i-7BlZ0I)&B~V*LuerbHe$a2>1Z+!@cK z2jl|)G&IYj7108Mf<_=P0~so2;S%~36wDy2vtH+d)SQ5Hr7s&h9GLBaC4-J)EmnVflVdUXEP8}+{Pn-&e$XVxs_n?BW5gUvyu}=eL(j#37otF< z6%?;Vl06E*eNl+tH-+jM$QAfeG~C!A$C9-7eBNeT4c+m6phN$+y7sx0GzX%?=fVQg zt9#<|11)q6%>2)I&ttt(Lm=WXZVzL47g4Wl1>^DqOYQnGJeO)!T1TRa%eE-Pift|&TNT@RoLiNq`7x=Lzer@>`@y6U z?=2P&-Z7<1 zqSN4@OqgSR76cRnsQ~HU0>be>`l>w_8a};0U{t}BtkZbDCJdYxydGEe!kZ?F!{z+B zsyHn)cF4V%fHQd5xht+?G*ksz8Jy8JgLc&1(6r>V@4|Rn+B8yu!R^?@W?~ds)3J1N z8P0+bH|?|)%V^E*^qk&Yc{erbWaU>}&MX;ZDkm|8QvPx$d7D!M=`KXz%AKG&R?nT8Xj=h0htv@s` z;Ok}X*bSMz81WqW;GruJ!EIB?b{7z$j1N;LDXR+TBEE0#52Zi5+Vlz(Olw#o zVyH1k!b*LCh29tSG#q-&EUNFov*4Clb+%4a$8!HP&^*=olSxm;^XJNx7W6f{gSxO390(xmB* z0UD1tD~6?_R|G^mgUue;zbH5@v}(+`VouzSUnkw!7;O=&vO6PdC+9l-blWl|$Z70q zq8RlxYr`>g?$Zz2Ir6N+o9B6pI0*(11l~I@-p6qqN4Mi`gIy=1J2|pTBdF8gJ$Z@g zG^{1cEztTTv`-&_mHNXXaa9GdmK~>fkuSsL)>3Sz21?l>->4I^i-1!daEHU?$;UIN z5D8YJH-E-oy?S*AqYwZ$S#j{T>0*MbSrTBSULve;p@L=Ag)M_WCyf$55+2x@Vb9gB z4ZRZb!(&y&Tu=2)Bkfl2SJ%1EQRY+QUy_$HZmVorW*L|wlIq|36Z>9HsS!pcWUP9L zC}}ibj#*Xf@Q>@r0;XzXjZ%avzT%!U7$~-PAT&yARP#Wm6c2(e%Mvn`HEbHJ+rcm^hoM)GL6itVYn_MY3&LOjWqgB?&D@ui``7;YN7nDUBRJK!#Ue3Q{2Z0(lNpE~0#O8^C5sK_zf0eQ=+;hNu~N|}imu~NZ{l%5e6UQZEf~Mg zXKo#$9knE?na0*_d(g`&Dp>nkulQ(Va@M?KgX^fUt1vCcCE{pky3hN_dg8j=h#&m> zmIo~x2Z)wbI$uzvZOr1u1l!s%0#{SmH)E;qA&w>*45|!J$3}^Nb54s=bYR!;bqsZ$ z{{(mRm|zI<5GnG$vdM5dV+)hqwbffO)c;$f0+CCK&JIhDS3FBW)f5J%133jQQBhIU zFEKi{|0dARoxO(TDRr<$cCfD-m%@VR;S8i$rqE}3AW-DW5IIczi~`*4Nb~WD726w|xl^ky^fSKpp&2M> z)|>1D=F~bUAn7U=6G=3@yRymzd5e?3Q*lyK#xB{qo#5;F+hX9FGaQr6`OTl7cb%P` zeb%q8_8b@9pY6H$9*NcHc_z)yH3wbPquJe3+Wc@km$0Kl<{N`~NeQYSP@pUP>MCep z<}ioCm%x&>rYm0%`&hvCV=?zO{Q57I9j<0-vi|wy4Vqa*6;VYZbpajl=tT0q3-ag+ z=u@?ZHnHE|v~$E{I74+r{PV%)2L>Q`um8#cRf;*lfxTe4)UjV?U1JBGyFVas)*igw z;>PWjbHg5@72|JjW_@*c2lFa$lfl zK1A3$Q$6a}Aty3DdeNVQyZ%Fk;h;d3bf`!Wn>6%8t6G2mSIhUv;VJqs{+Jut`04n- zbD0qlAlUHmi{jqQwnR2W<-k-J$y~N|1NIsQXJ5#J`Om9~21rkC<8;Qy416i%(xR+? z=QBhM^L@;jDDX0iVyTI5zJn1bD$&uP+M2gi7lal|b8r^oGEh2(2OFPrt!hnm8*a>7ka-(I_sI;ICt(`+_x`jSBe@pAeO`Ss=bsn zZ0L|YLMF%oL4j`v0yY|{LDRMHuAdec_r;*N%2$K6r`fKw#?*S2*wj$0_VLO-TQ^Gt z)Dh3GWol`{ucmO3rx`%3)#&(d&4??fL0 z!+&Aj8&_>$j)CcQL_1W3kfe{gsP;L?GkRO0& zjYzv9eD1$;V$*VL!76U?jb-#q-d3M{_Hr)>vPbkh`?!)nP$tQP`r4Wfvh)Sso)9ui%c}Lpj;J=q*auFKsV$KkwIpo#EUAva{f2U82(BAEC# z?n$EIrWT;%*S2OZ2U^;Z3GS)+!NLOgHxKqG*pmKfqJCcur8Y+PU4+GEXjf&)D65^N7x8|MpZ@DxzKFIiIeDxi14otFrIRyo%~YLwTL<@cj&CWFl5p^q z02_}f(cCkp$7SFKz$CBJIWO@zNeKsKIVzR3)k!vA+0Pv$C`(MmlMVzjygTG8BGxoE zdzl&ZpXraD=^!fIY8R)JgX-T5Jg_hkx>&(?Ab~3JJR${BDP>1$OwaLuJ4- zCbC~3Du)m@Qx8J$dV>rxkHC0ag+&yR>}JbAy#v(lAJGweFCm8S>0h@q`kI8w@m!-$ zjN^j61}wPLA&eqMGNW*fw#LlKHz&aD?wN(~HWTN@Y9=CM@aW(qQq9KoktrSc@r1a8 zoA3p!fBqA=dokc5N?^PmXxX$}MUF#=z{R>7jOi5H^<_bSHJd}9zVfxra7=(S?3VesXOTvMo{-ZATN^}KGMI1jfUWEk zX%O{MhLWnXuQp6Alue?ouQI$OOhq%YTuf#Iu!_C0D?v4X@gvp;02{ z(#Ud+D18e>K5uOnxc{Y`Ij8J{et)`G43y%gK4oR;JfPi!Re1L5`(mI@zaHcX;?`C$TZqD1w?V8NeicdU=TClIJdMlW9Z1zZ~wd+?8urdoW( zA08g1lb>G4O27R#>aB*FR{WWyWCG}EJFYU9-buwJym2GtdC0@FCVh%m`Ui4qjt2}6 z@A|)`0vpEV$Q1|KSp8i=@r*+g16AomGv3HikmOx>YkQU|{TG%JK;m5nkuad?Uq;+d zUE8G`;V_EZ_>y)V1P?L#IW6XiKh-IS2cyiyW!L_6Ym?p2gwWA?I1XwsR+k<7(VE1t zv|V99a0>!q(=mz0eLV1B1>C6o4GLZMtw@F41jvQmA|Re;@XEB>oW64QN8fls}f_9gx`L5-QM9L?Pit)?PK&` zWH=1ki?+)HK|~K!MRaO?3A#}NudmpvV=^bhp80EtpP3F|Vs6&H25FO}Wz07-J1Dsg5#TtT4603xej|Vvt`>a(Ahu%5| z3W`G3Rn%F~)Ayk zBcl(O#Yj5jA7fz!)dam^Ycg)o*~D$L%j~WTI*>gDdjgD=PmL2<$qWX!mAs!tk`9w$xaHsei4%E{xG zYy1#9ZT2&kzY&cC18#qq6E;752W9hIvzo9o!^!xPbdO-YIAIh{V zMNS(UyjVdrv@5c;BkCJJh4UQuTnXChKi1twKi4h%QK4G3xrRqB4tE`bK};WfqUAem zNDDlPm{=^3R2Ml(UG!-6UqCN0WT+no-?SIfP{hv}!22_#5h;c}k-l3Hm?}HKb>^##c)A$+h*x<%)Up&IJ$`&%3cOvp4ro`w6*h30)n~cxR1zqd`?Cs4R@*midaIwVF|v0~@!~&RGIdWWD&4fEP?D zf%E$nA7X&yN>kx5 z+J-$Z)ZQ884=7D7k&c#WB${17MNbdYy-ftaf!kzcjI?6ombfbEs#K4WD@jemLHu@0 zDG}J1=l&Ha)Z)TZv+UymKAH7Ig!|=We-Cc-T4p0inP{U%$t+4^mspuw$KDw8A3e{G zq$ttkrozSQl7g-CSFXcRr3%GrMsBXIEFF?_rK9OweDveZL>XJ+2a!Kja8ZlVgUEa4~kdZ7{pZkC(ep^SY1jxJ2_{o zLSany^95e?SU_P8v$2KmL&bo~u#@!0yl0o}5x*_BWA0Xq;K4eOo2b|53dmQyB(qet zOT+k}u|x(5RX|fc=&58rQCC-CWYw&A#7t_6v$dM%u_jBD9KzYGHUX%&O1n<^$M^z{ zCqu=<8-p1XE*^0*fuELFhH?Fg6-kbqTnbpRr+KHBLo|Hv9cN$J_E!mtUEExwE7cmo z5hi+8ruEQ;j58|b<8E4JbF2UEdR~Kbi|?v)RZ~ru-EZUe76C#rg95>O`R8K%;LLu7 z{Pxg5UcW^uQBTO(Z)l%Qwjw;|cPzQTv*9%m-H6estXYO=<6(F2mG84=j2!X>WBu4-51Z}3l8rQJiY@O#d`4|H>Fo2^z zn&?$p`R2lnh+xtxFYPL_qEy+eXWrvs2^VzcIzxzf8(jf1V%~OQ+D)@y&SYqve&ts} z`V-?&0Lg*B^Qoo023W9bkyLOww9G{hd_~FZ^nPo|lJWqr!ZF62*o)r0FSzzH9 zQKve!(($dd{Agb{dQc2P1daUyWdS}fmJn6XUJy2+UsyEjde9c2_Q46FxzrMBlRASw zNRl4^j^Fz2Ll{`rGks8V+8%9kNgkqnzsV5$s;jA(2_lf4Ar=Wi?6n;ag@gj z9goQhV<~i2nCp2UN%DUn`Ds_v_$p(E4Co^`w)%LFCdE$O9IS#MiZ9R!Z{f=pRO)(B z@v(LBr`Ec?-`o<|N2PAudJc%y+xh{IM4Yhl zZaf!0Gj%jNl&K8;t#Uk}Jkn@9@O6VGi*5&Mw5^qnuzomE2zMUw*kk1?XechCdT=YL zSbVPHH6Hdv)$4!?f*>IA_Ep%#vA!(GzX{EqRVuc6%uj+kt)`UibWZ+crcd8@-`{Oa zFGWqZLs+?gtWA~&!m4mdsiXZ#E5zIIpWuG9PcI$&7G&>>eByQ_c^c{>wD9&@G%9wN z9UAC~>~aAZ2LcEsOn??zSee~`hjKa>#1ecjDJ=Z7OzF1w4v(DgZhm8Dyf{8V43lQ5 zYQF;i13{h$P7@+>A(uV0aP)xg)ymf^i8?kD6=n4mqvwtLkC~y*Xkt!GtWZaMD#j!@ zJRcrHCm-+xH;5)?m6B|ytz-2xIXAbsU^{*mHI#YvIsrnB`y%QWq_8)`9mCi-RaGY9 zkA@?p-H;wVnt-4p%+wL<)vVpI7%^!+$=<4bELFfeN|d%zP+;KQo`cxfdt)N94}*Rr z1x_8}3JVKoqkW+`WKb7{VpS}OUv^?YeF}z*VzOQMu>BdP+D`5 zdF{E&Pp=V`-8(+Ooldr^8~;f>hfyvRe$?v3O!m|?YuHa9F`fN+P3%&fZp!(0mLJch zrCf`3m-1AXDch%H z=v_^wBGa+XT&%Dtw3*U<;b%~ptcq*)Axp;III%=?DSGMMg5gk%5U<_{b;toY0X_jG zg1)6j(7x2yf`S4E!aB(Er`B8f{Bep=n*eTUi8O zuSGw)BzdbR`5ou;MhWE&r(3izvc(!_U4NGQO~ubj+)plO1ZCWO56zoirGAVfkH?Wd zO8Dj)&UH-a(%ixJB3+A|yAH_MU!_6UBoWM*go;zEz|iS>?Yj@x4!d|nJ5Q^mC*Js0 zU&p)Htr5v9Il1_wWUb-Oa@p<(p$RQgh!by$CwKC#l%|5GXHr!qh44cXQdYNXN1+a; zk4Z>3gz#|pUGM~X1HTI6!@M_|uyeJ=^b;Vj40m0ay3X@s=5Z7$Yhp(+9{7A`|mbK#LT+Rc$V~t^rZ+>=u3hH6}kHh z3L+xffg_7<=?{zaP<{+*|~`kVrQ_guL>lQ5K-7#MAW2HW4`W=M%wcQ^O6dU1= zZZtKN)KlSa+;rkc6Ty$|SI=5g>34$y?_d6Oy@m*zUE`;2$ALliF8te7vD#u9p+#|D zsyXnQrp$EjMV~CPp}dYrAGR)n`n~eidq`d~4CtNebuOn^Wyi*g+H>4=zP1kuOlvwy zGKOq=4L8?s>&e#Wsy2-OAdPO^<9!pOM1t#Dtneo#Z)$GhUNLi>83ptG>#;6~ELM^h zOBPxWZcSrnw!qY}x{jX)GV6!4=B@VCt?x<%8tYmLLJIl5?pi7(9PQSP-(8(dmC#H> zim^Q8KXlRtsIXG`WlIZel@8j0d6`1eltS$9olq}E3hSmxx|w~;otz^&a?Ha=q9u1P z4)1HH2m}e@kC_851`YOo51fkFkVXj3WIU3Es`k|~2!F(s)a)jt&%AcmY$1r@i&d@_ z&&8>?(q$>t!g$RN(LzO9Ww)!|c^x3|1opPW3%21o;djqAxZbi=(BH7LR~WJWsvDZB zxixCC*804{xu7)i#J65R8ZnubdmrqyU=)L(;360fnT(^Jv(pT=>axO+gp1spfx(uR z#F`}E*2C)7CohW>YAc-#;mWB{Hl*^C@ZceMWYfEK?=eJI@5Z8UD>AN@LNY>ti>qr* zmCpUt`oqb()}W8c(vdgJ(5ivg1c}k!L6bxhi2DmFc>k}h>keo8Yu}+m2cbo+Xz4&H zttKjJH(DJORa+>k_K2-!tyrbYYzbPWV((R2BU)P->m6v zhh*`}+u)h8Z1c@rliHPqd~q)?SDl5aTIC-_Tb-vyS+U+bcXSyME%lGz$K^m45#Z0 zba(0)QD%!iGl)-lPS;asW4ASxPN~yHFSGrVw~&laHflzns&jE&nP0Eh6RgN6!^6>) zDo#gDpiF=TKvg@Sz_Ks!2Kf^yiST%9Z+vxR%4sQlwY2ck7Ql+1uxft{q;qhsyz(QW zcfgg!ef-M6z(6W^>)*$37*LRtudW!|y#ow8Np5!5v)p#J8wr40t9HxfiB@qL+}WZl zOF2E5!n=7~6`WA!8;t%CNjly7NO5~pyU%0v%8??=TmLA1@%5z4jq?@=iv{O=IaCs> ztYmv0Gm)_;$JKwltRXQVpq*Dc3c<>sB8~j7dt8Qk; zlu39mkq>`KQP7bdEbUz`pDTJUjg8uQky11AOub3)xrM*e z2c3Ip4@#>2sOz$k3y|opFL}*NtyF@`;`Wt-o}XyGPm10aE-vXxaTRcG1)F$7+>R8o z{IT@WJ=e5m5x{&1f&UrjgR!q@-cm!4yI{c*tT18eS?P5AuS9N|yYqLvLRwm=moM^D zGJ;wD%-Wfq<{?Np0KIY!v&xWRkCB%v!yWJYN!)#Dui=+9Wa=49y`CL^^+O@|Hh_e!5CD2qi2jW*LNbbe;s-(OL+gzKeQn>mhO`eZ56e);g!nO3d zsyueE#qROhXVZ}g19I%I0kg`9v+IH-`^0e%&euskR!Vw=rYpa787c7wWU9AQq!f;; zf(z}_2lB;Lkm!gAaTRIGlWv2viO(`L}>R1bygxv&= zR%E-FcB;5498XHS`STdA8Bi|N|EVX1`aWE@w;mio`FXDBLbcvMFP+W2&^%EvZ`~}8o{e5yDT*o@?7;#?*$P|7V=-L{F?+cW1y-e1gPg76B z_@2|rNsE^pwo3kksch1EpY?BFo^e*2RL&~T>~s&sAM5PqUouh_PF|l}iC}x}0vTi+uhR=G{ zDE~$QJfkch9d~W=1#$MK0)9K`p74c4pb zJf$1wghV#tVUhAu{xNphSxM0dnf*U>apJb&jVQMcs$qkxp1%|tT%>f+QF%I%|;Z*@(L9H21q zZA+5?JDK3XKxOR$ddhkJ-Derdawk27Ks$jkM5hf*?)!*EY6T4;Dd$q3*C9p`^3hSb z0<&^5^<$XN?Ogxg*#MaXtr!k0?+;ITB`*vYf#5A|`3{K(;g1?8)KW!0x0E8K$$lwM z_+!oNzEg)}de<2|;Gv<;l(vcI6(9Ni5WUUE%QnLGunp%T*QjjEcP{E8FIt!hc75H* z=sM&vS=Y6VX-{mWIGniJUP-^+T%LrBVFxSDXLL|k22A|ir!;W$uKmKo`p*~fGy-Yqc_IO&rW^q15UpjR7U>(P;VAr!l3?-V-iHD0 zeb^w#VO%NRU70+l^5R%mMy6lD+-Rqz@q-4i{iaB-2FJqv^`MIaw@?<3IT*jlppE36 zHlWdJYzbi_E!WCz+>(!kn)pp-jzL6>*M4W00zrgCOK_5@Da|W-jw0_#L6kFo{ty%^ zQ`A;4wjk3;3$Bmn=H?tu7ByxF`3GFt*@PPk9;((K#$BRDS)*!QjxK=neg2FU#pr9Y zSDsMKfh(g95nVG=Q+F910y>e-k%lIfKjZ{d?8*mmXQ3lUj8kgmzc#RVZRl$IfO`v4QRab%gokvC1gA}&l z$1E!xE<=-|t1uX_SWOIo%)b?O;1}-!okT#`Ny9u;tbkD&yDT~{3S4E|L+EssP|qot z8TwkLx!7N%l&+YZ84$47DDg+vpBw8*9C{RBJv1~_x)fGYS{h7}CN3RvoNkfreXvH! zK=E*&10*f=L*iiTSCezKlK9Ba9k!5@694?Zv$z!49d~S|5W+$3B4N>MY;?4yst%l@ z$Wf%zKw4GE4WIzH0dlYRwYshWpdT9>+vt0by-D1mDsW`p+WJx6jJUO&PXUNYd6cH! z93P{Md#0WTy^8BJfH{?Vz~h?kC?*VaTmUKF7PIE2ni}BFFnH-9$ivgqGkond-*>4C z)=~n_aIBy^)SO^qgSg#?-W zJL#y134FkTML)CFz+{4Ektb^k_!p49VuSY0i|dDD7jaK zFIppC8SIO18KF!~&*oAq3prYSko7Dl78^$x0cGP3DUcntPtbb|AO`?h`8z=hD|ax4 zwj?*Z+{O?DqfEn4>uo=vMZD7n?zsW=oh(4f^2sZPV_7IUpw>yJ7KB?U)Y4Q&R=;1p zs+0&B5B|Kd z+WAU)75xTH2KHEbtknQo3ysl?36@;A^J@&YvK?A>`p=k=#Aj|?!{AFc4bl4kpUcpR zocfzCO9{td+w8DgX}rz`xdMo2$UZb;y2oq?83iLF-kq?^dK6-v_XEg0PQ1b_acnnB zlXV@mCPj&%!{0=$2Q=Mv@O#$`fj({XM*!=J9Tz(U@irFtZ{%S^HF~N^PBF>iUfItI zJr8qn3eFIm&I2ls2IMOvSSiLo@p+^nP*3W{K<8Y#dRJ_tM&rbtBRP67>s(_eZV_a0 z>9hz3j*7E5f##@=h~U{4pju3F5B;f*s#YUwp;Yv3K0bR9-*LV}r`LjWYgn|>E5n@2 zRPg}f!t>H|ROR_-Z7y?6*Juy#<}1MQFpH>l?;M0gKK<_`!R#~tkrenpWO1Dk zYB9s<%|Lvhyj9whh-{33%RBIn1U=e1+2J); z+te00Y-u_H&2A*MWZi;dw zKUXN53ti@o>x=X4KG%qL+p4n-K_{6*ogU`BDSq1j6; z7KZu4_YFI3SC1aEYoDg3Ua;PjSaj|672?Zn7!||OudeKEd{8r?*>kOwYPQd{YN%ao zI176%Hk0``p8YAWuSD@UM^mL);n^Z|Hmx@l0ubb8OCXTonF2nK2n!hF()h78-uN7 z_U%1Ur9g7a?d~M!}D1fW!0r=V27ITwDbW(JL5-7hwt1Vl3FXrySP z_ywKT&7F*|z1_9E{3f}(X!LNTrJBJ8sa6A%Y=9;W>$p2QS{s}>9x|MlVX8@XE#0x1 zrv>%OBM*B&tm1~e`&Rtci=mo+8;`hJI{!B3+1?zY-ChpGci99+{p}2;L=8{}4*ts9 zt==J6G4?@owT^rrKBxqGU9S!cfFBr_AP2oU5BlX`ZH8=d4+X(Asm$O!m;3S(=oiqHC~$@o9J$7VV$>92W9R6t4_1S=cNs6+?pP) zsyd??@Oz6ph}Dgt0A)I}S_3@D-FgL_k?@J|VQHQfv&Gv^T$99wM1+$rHqIei8PYEJ zqk!cy=fQ8#OR>G&p3Ok}HsY_ZEVcD@nTl|mIMZXDqd;Klz$VTumf^tHs!fWk@J&xC z^}Ri;*<>SVOO{TNv$8f4{Casf&7J> zVt`Nzg|>R_MVLyh_#mWrL$1~a%U9r@4c$ff&8A_ivq3HsrOcbwI+8s?iKH8gD_b1Z zT>hbE_W3QSr>iB}N)0*%tNN2~J;ch5w+!fJao# z3br!pnH-8Mi8~GxO$m?0)b#?z95Ymi#!tOooPebg$_?wikxMgK@IwGe~Kn>&$@5dZPVDa;t{?uu96LMuSbSO$A%SS)zKZys@ybevqbG z(n!u>3<^|lWiZ7r;CPBI#IwJiVf$$R*tGRZu?7^9t^9?jw#n^H5*<~*fg;fESwNLWc@ zhr%1qmS2e^P39uPZ%#JosGnDVY1$*{S8a#Ck96NL(GQ#wm*Q2BB!8I}HGS&I45_zp z8)*T7m6}Z&-mGPH{1w$!zV;%kZk66cyix5uJGD-4u39e}7Q#hw-@NnMl+juaON#5v zA#$nl5kuy{fNy^~acNfoU!~`bMY4Hp6nR5DXIw-7 zo_!2xXaj-hkUC#bqy<*5;Bm^10O1yLNP1}CK(iUbO`?@2aZm3Zzbu^Zxbe^orl^w`|1fX{0@2lbQ(omz}%Ga|2u zn|T@xc@f~!1P! z632il9kq<>aV#2)eJUf=d7y7Q�Ai>XYl@Pm>y1UUbal5D)uCrbSjUH;ykaAWYvF zip8I;6h1Ss@g>`rQB6`9eRm9)!x4lyA_=j1 zrj=nDipLSne&KePkxzHhS*1pNx78qgS@ZrVdLY#{6lpLf%|wIS`G_#-kNP9P;O1+3 z%;7y4zsWE4l<a*;DlaWTU) zVoBUBjDN$tMR0>%T#$hCG}>t)jgE>Neit;Ea4yA}9$R}i=jHvhuOF0zj4(i^Z=eVt z7#MRSu!^M7PL`RvK-nRkIAQ%uCdiHYiE@)S)HHF;b z;`)=6^E;BQwa^vqxtT$!@=L|&HA}Ul`(4rU-4N&JQNS^K(9niQMG#K-56EG{F7^ zECnc297K8QpBFV);3mVN9AGY*ri46%>603EK4V)0qKpPrL1bjlKr;@)4)Vl;P7!?O z0D=YrIl<16XKQ-UeF)?T#ZY!iD+ydDu~vorhxS{^X8vcv0P1x~yAJ69zWR^C-#~Pw zf<*@e68r&7i9!3Owe<8bwGKsk9f5RS+BfN`PQ>5Xha~&}E>#BaZcwGz7z5<=L8Cet z)_=G9MMnMKLcJg`{?_}>|L@>K_-qN>f9=siTIPW@Ch!5oI|KQzN)rmzN(B4F^&rZ| z2d+4QWt)OgD`O7+l7#hT(#mumr*!Eyo#Kol@^HfJejPppf;RG3lh|Qze(>-EUs0kM zc*ncm!e%gwVh#A+i@zYJRKKjThC=Mgiyi_IQ0}V=}ZetG8&abvd*0>B6J*IAZhx z2$8Rn&SEm`d3B>=u>XHD=8{o$!E|5$!6<p7{J9M7I&@ literal 0 HcmV?d00001 diff --git a/windows/deployment/do/images/do-setup-connected-cache.png b/windows/deployment/do/images/do-setup-connected-cache.png new file mode 100644 index 0000000000000000000000000000000000000000..0be545ead164efa5d39c846b46a2a366f8f05566 GIT binary patch literal 17078 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 XDeb+fA|5OHmy^d&AItge;!(+35U4VNhV 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

FToXuttYr@K@UcKNk?Cm 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�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

}Oy=Drr;E>h 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 literal 0 HcmV?d00001 diff --git a/windows/deployment/do/images/do-setup-improve-efficiencies.png b/windows/deployment/do/images/do-setup-improve-efficiencies.png new file mode 100644 index 0000000000000000000000000000000000000000..cacd46e6a2e7b7006d911a0ad80f760f72092b51 GIT binary patch literal 13944 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≀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

FToXuttYr@K@UcKNk?Cm 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�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

}Oy=Drr;E>h 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 From 926e67415c8cbb72c66348198fbf34c4c989bc16 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Sat, 29 Jun 2024 22:40:41 -0600 Subject: [PATCH 013/108] fix file name --- windows/deployment/do/delivery-optimization-configure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 3695c13b12..4822341196 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -169,7 +169,7 @@ Whether you opt for the default Delivery Optimization configurations or tailor t ## Troubleshoot Delivery Optimization -There could be many different reasons why Delivery Optimization is not working in your environment. [Learn more](elivery-optimization-troubleshoot.md) about the DO Troubleshooter and common problems and solutions to help improve the experience of using Delivery Optimization. +There could be many different reasons why Delivery Optimization is not working in your environment. [Learn more](delivery-optimization-troubleshoot.md) about the DO Troubleshooter and common problems and solutions to help improve the experience of using Delivery Optimization. ## Test Delivery Optimization From 8990cdbccbfc7dd304bf0f2bddbff28e5bc1986e Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Sat, 29 Jun 2024 22:57:04 -0600 Subject: [PATCH 014/108] Fix links --- .../deployment/do/deliver-optimization-troubleshoot.md | 6 +++--- windows/deployment/do/delivery-optimization-configure.md | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/windows/deployment/do/deliver-optimization-troubleshoot.md b/windows/deployment/do/deliver-optimization-troubleshoot.md index b47e1eca95..3c91b43d83 100644 --- a/windows/deployment/do/deliver-optimization-troubleshoot.md +++ b/windows/deployment/do/deliver-optimization-troubleshoot.md @@ -25,9 +25,9 @@ ms.date: 07/01/2024 [Check out](https://aka.ms/do-fix) the new Delivery Optimization Troubleshooter. This tool provides a device health check to verify the device is set up properly to use Delivery Optimization. To scope the output more specifically, use one of the available switches: -* -HealthCheck: Provides an overall check of the device setup to ensure Delivery Optimization communication is possible on the device. -* -P2P: Provides output specific to P2P settings, efficiency, and errors. -* -MCC: Provides output specific to MCC settings and verifies the client can access the cache server. +- -HealthCheck: Provides an overall check of the device setup to ensure Delivery Optimization communication is possible on the device. +- -P2P: Provides output specific to P2P settings, efficiency, and errors. +- -MCC: Provides output specific to MCC settings and verifies the client can access the cache server. ### Testing Delivery Optimization diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 4822341196..21efa3ba70 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -64,9 +64,11 @@ Use Group Policy or MDM Policies to locate Delivery Optimization settings. Delivery Optimization is increasingly found throughout Microsoft products. Learn more about the areas where there's integration to see how you can optimize the results in your environment. -* [Microsoft Endpoint Manager (MEM)](https://learn.microsoft.com/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) -* [Microsoft Endpoint Configuration Manager (MECM)](https://learn.microsoft.com/mem/intune/configuration/delivery-optimization-windows) -* [Autopilot](https://learn.microsoft.com/windows/deployment/windows-deployment-scenarios#modern-deployment-methods)/[Autopatch](https://learn.microsoft.com/windows/deployment/windows-autopatch/overview/windows-autopatch-overview) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies are applied. +* [Microsoft Endpoint Manager (MEM)](/mem/intune/configuration/delivery-optimization-windows) +* [Microsoft Endpoint Configuration Manager (MECM)](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) +* [Autopilot](/windows-deployment-scenarios.md#modern-deployment-methods)/[Autopatch](/windows-autopatch/overview/windows-autopatch-overview) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies are applied. + + ## 3. Network topology From 0bceeffa3143bf5f8f69d88a444a62ee768980e5 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Sat, 29 Jun 2024 23:06:34 -0600 Subject: [PATCH 015/108] Fix more links --- windows/deployment/do/delivery-optimization-configure.md | 2 +- ...on-troubleshoot.md => delivery-optimization-troubleshoot.md} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename windows/deployment/do/{deliver-optimization-troubleshoot.md => delivery-optimization-troubleshoot.md} (100%) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 21efa3ba70..8b06ab4d19 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -66,7 +66,7 @@ Delivery Optimization is increasingly found throughout Microsoft products. Learn * [Microsoft Endpoint Manager (MEM)](/mem/intune/configuration/delivery-optimization-windows) * [Microsoft Endpoint Configuration Manager (MECM)](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) -* [Autopilot](/windows-deployment-scenarios.md#modern-deployment-methods)/[Autopatch](/windows-autopatch/overview/windows-autopatch-overview) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies are applied. +* [Autopilot](../windows-deployment-scenarios#modern-deployment-methods)/[Autopatch](../windows-autopatch/overview/windows-autopatch-overview) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies are applied. diff --git a/windows/deployment/do/deliver-optimization-troubleshoot.md b/windows/deployment/do/delivery-optimization-troubleshoot.md similarity index 100% rename from windows/deployment/do/deliver-optimization-troubleshoot.md rename to windows/deployment/do/delivery-optimization-troubleshoot.md From b03de0333ef92dc6775799617fcffe153ed82d3e Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Sat, 29 Jun 2024 23:12:37 -0600 Subject: [PATCH 016/108] Add file extension to remove warning. --- windows/deployment/do/delivery-optimization-configure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 8b06ab4d19..c071770b24 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -66,7 +66,7 @@ Delivery Optimization is increasingly found throughout Microsoft products. Learn * [Microsoft Endpoint Manager (MEM)](/mem/intune/configuration/delivery-optimization-windows) * [Microsoft Endpoint Configuration Manager (MECM)](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) -* [Autopilot](../windows-deployment-scenarios#modern-deployment-methods)/[Autopatch](../windows-autopatch/overview/windows-autopatch-overview) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies are applied. +* [Autopilot](../windows-deployment-scenarios.md#modern-deployment-methods)/[Autopatch](../windows-autopatch/overview/windows-autopatch-overview.md) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies are applied. From 7bbeebebd2211cb9578b050bfdeac5b2b2c4bda5 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Sat, 29 Jun 2024 23:17:58 -0600 Subject: [PATCH 017/108] Remove testing duplication blurb --- windows/deployment/do/delivery-optimization-troubleshoot.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/windows/deployment/do/delivery-optimization-troubleshoot.md b/windows/deployment/do/delivery-optimization-troubleshoot.md index 3c91b43d83..fa0bbb4b01 100644 --- a/windows/deployment/do/delivery-optimization-troubleshoot.md +++ b/windows/deployment/do/delivery-optimization-troubleshoot.md @@ -29,10 +29,6 @@ ms.date: 07/01/2024 - -P2P: Provides output specific to P2P settings, efficiency, and errors. - -MCC: Provides output specific to MCC settings and verifies the client can access the cache server. -### Testing Delivery Optimization - -[Learn more](delivery-optimization-test.md) for guidance on basic testing scenarios to see how Delivery Optimization works. - ### Common problems and solutions This section summarizes common problems and some solutions to try. From c35af955e9651d4d1989def1cf0b2de06abf10c8 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Sat, 29 Jun 2024 23:20:40 -0600 Subject: [PATCH 018/108] Syntax --- .../do/delivery-optimization-troubleshoot.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/windows/deployment/do/delivery-optimization-troubleshoot.md b/windows/deployment/do/delivery-optimization-troubleshoot.md index fa0bbb4b01..1c9186808c 100644 --- a/windows/deployment/do/delivery-optimization-troubleshoot.md +++ b/windows/deployment/do/delivery-optimization-troubleshoot.md @@ -21,7 +21,7 @@ ms.date: 07/01/2024 # Troubleshoot Delivery Optimization -#### DO Troubleshooter +## DO Troubleshooter [Check out](https://aka.ms/do-fix) the new Delivery Optimization Troubleshooter. This tool provides a device health check to verify the device is set up properly to use Delivery Optimization. To scope the output more specifically, use one of the available switches: @@ -29,55 +29,55 @@ ms.date: 07/01/2024 - -P2P: Provides output specific to P2P settings, efficiency, and errors. - -MCC: Provides output specific to MCC settings and verifies the client can access the cache server. -### Common problems and solutions +## Common problems and solutions This section summarizes common problems and some solutions to try. -#### If you don't see any bytes from peers +### If you don't see any bytes from peers If you don't see any bytes coming from peers the cause might be one of the following issues: -* Clients aren't able to reach the Delivery Optimization cloud services. -* The cloud service doesn't see other peers on the network. -* Clients aren't able to connect to peers that are offered back from the cloud service. -* None of the computers on the network are getting updates from peers. +- Clients aren't able to reach the Delivery Optimization cloud services. +- The cloud service doesn't see other peers on the network. +- Clients aren't able to connect to peers that are offered back from the cloud service. +- None of the computers on the network are getting updates from peers. -#### Clients aren't able to reach the Delivery Optimization cloud services +### Clients aren't able to reach the Delivery Optimization cloud services Try these steps: 1. Start a download of an app that is larger than 50 MB from the Store (for example "Candy Crush Saga"). -2. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and observe the [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) setting. For peering to work, download mode should be 1, 2, or 3. -3. If the download mode is 99, it could indicate your device is unable to reach the Delivery Optimization cloud services. Ensure that the Delivery Optimization host names are allowed access: most importantly **\*.prod.do.dsp.mp.microsoft.com**. +1. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and observe the [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) setting. For peering to work, download mode should be 1, 2, or 3. +1. If the download mode is 99, it could indicate your device is unable to reach the Delivery Optimization cloud services. Ensure that the Delivery Optimization host names are allowed access: most importantly **\*.prod.do.dsp.mp.microsoft.com**. #### The cloud service doesn't see other peers on the network Try these steps: 1. Download the same app on two different devices on the same network, waiting 10 - 15 minutes between downloads. -2. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and ensure that **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1 or 2 on both devices. -3. Run `Get-DeliveryOptimizationPerfSnap` from an elevated PowerShell window on the second device. The **NumberOfPeers** field should be nonzero. -4. If the number of peers is zero and **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1, ensure that both devices are using the same public IP address to reach the internet (you can easily do this by opening a browser window and do a search for "what is my IP"). In the case where devices aren't reporting the same public IP address, configure **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** to 2 (Group) and use a custom **[DOGroupID (Guid)](waas-delivery-optimization-reference.md#group-id)**. +1. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and ensure that **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1 or 2 on both devices. +1. Run `Get-DeliveryOptimizationPerfSnap` from an elevated PowerShell window on the second device. The **NumberOfPeers** field should be nonzero. +1. If the number of peers is zero and **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1, ensure that both devices are using the same public IP address to reach the internet (you can easily do this by opening a browser window and do a search for "what is my IP"). In the case where devices aren't reporting the same public IP address, configure **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** to 2 (Group) and use a custom **[DOGroupID (Guid)](waas-delivery-optimization-reference.md#group-id)**. > [!NOTE] > Starting in Windows 10, version 2004, `Get-DeliveryOptimizationStatus` has a new option `-PeerInfo` which returns a real-time list of potential peers per file, including which peers are successfully connected and the total bytes sent or received from each peer. -#### Clients aren't able to connect to peers offered by the cloud service +### Clients aren't able to connect to peers offered by the cloud service Try a Telnet test between two devices on the network to ensure they can connect using port 7680. Follow these steps: 1. Install Telnet by running `dism /online /Enable-Feature /FeatureName:TelnetClient` from an elevated command prompt. -2. Run the test. For example, if you're on device with IP 192.168.8.12 and you're trying to test the connection to 192.168.9.17 run `telnet 192.168.9.17 7680` (the syntax is *telnet [destination IP] [port]*. When you see a connection error or a blinking cursor like this /_. The blinking cursor means success. +1. Run the test. For example, if you're on device with IP 192.168.8.12 and you're trying to test the connection to 192.168.9.17 run `telnet 192.168.9.17 7680` (the syntax is *telnet [destination IP] [port]*. When you see a connection error or a blinking cursor like this /_. The blinking cursor means success. > [!NOTE] > You can also use [Test-NetConnection](/powershell/module/nettcpip/test-netconnection) instead of Telnet to run the test. > **Test-NetConnection -ComputerName 192.168.9.17 -Port 7680** -#### None of the computers on the network are getting updates from peers +### None of the computers on the network are getting updates from peers Check Delivery Optimization settings that could limit participation in peer caching. Check whether the following settings in assigned group policies, local group policies, or MDM policies are too restrictive: -* Minimum RAM (inclusive) allowed to use peer caching -* Minimum disk size allowed to use peer caching -* Enable peer caching while the device connects using VPN. -* Allow uploads when the device is on battery while under the set battery level +- Minimum RAM (inclusive) allowed to use peer caching +- Minimum disk size allowed to use peer caching +- Enable peer caching while the device connects using VPN. +- Allow uploads when the device is on battery while under the set battery level From 7959a30e81b5defc2b6500fd247545008b969893 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Sat, 29 Jun 2024 23:35:09 -0600 Subject: [PATCH 019/108] Add links for index and TOC --- windows/deployment/do/TOC.yml | 8 ++++---- windows/deployment/do/index.yml | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/windows/deployment/do/TOC.yml b/windows/deployment/do/TOC.yml index f0d64329cb..ed877121e8 100644 --- a/windows/deployment/do/TOC.yml +++ b/windows/deployment/do/TOC.yml @@ -11,8 +11,8 @@ href: waas-delivery-optimization-faq.yml - name: Configure Delivery Optimization for Windows items: - - name: Set up Delivery Optimization for Windows - href: waas-delivery-optimization-setup.md + - name: Delivery Optimization configuration considerations + href: delivery-optimization-configure.md - name: Monitor Delivery Optimization for Windows href: waas-delivery-optimization-monitor.md - name: Configure Delivery Optimization settings using Microsoft Intune @@ -27,8 +27,8 @@ href: delivery-optimization-proxy.md - name: Testing Delivery Optimization href: delivery-optimization-test.md - - name: Delivery Optimization Troubleshooter - href: https://aka.ms/do-fix + - name: Troubleshoot Delivery Optimization + href: delivery-optimization-troubleshoot.md - name: Microsoft Connected Cache items: - name: What is Microsoft Connected Cache? diff --git a/windows/deployment/do/index.yml b/windows/deployment/do/index.yml index d4f3409ae7..96efd3ca0f 100644 --- a/windows/deployment/do/index.yml +++ b/windows/deployment/do/index.yml @@ -42,12 +42,12 @@ landingContent: linkLists: - linkListType: how-to-guide links: - - text: Delivery Optimization recommended settings - url: waas-delivery-optimization-setup.md#recommended-delivery-optimization-settings + - text: Delivery Optimization configuration considerations + url: delivery-optimization-configure.md - text: Monitor Delivery Optimization for Windows url: waas-delivery-optimization-monitor.md - text: Troubleshoot Delivery Optimization - url: waas-delivery-optimization-setup.md#troubleshooting + url: delivery-optimization-troubleshoot.md - text: Delivery Optimization Frequently Asked Questions url: ../do/waas-delivery-optimization-faq.yml - text: Submit feedback From 33b23d0a13e854be2c2bc45bc8ea97384790e26e Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Sat, 29 Jun 2024 23:44:15 -0600 Subject: [PATCH 020/108] More TOC updates --- windows/deployment/do/TOC.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/do/TOC.yml b/windows/deployment/do/TOC.yml index ed877121e8..fe1b2a0cf3 100644 --- a/windows/deployment/do/TOC.yml +++ b/windows/deployment/do/TOC.yml @@ -15,6 +15,8 @@ href: delivery-optimization-configure.md - name: Monitor Delivery Optimization for Windows href: waas-delivery-optimization-monitor.md + - name: Troubleshoot Delivery Optimization + href: delivery-optimization-troubleshoot.md - name: Configure Delivery Optimization settings using Microsoft Intune href: /mem/intune/configuration/delivery-optimization-windows - name: Resources for Delivery Optimization @@ -27,8 +29,6 @@ href: delivery-optimization-proxy.md - name: Testing Delivery Optimization href: delivery-optimization-test.md - - name: Troubleshoot Delivery Optimization - href: delivery-optimization-troubleshoot.md - name: Microsoft Connected Cache items: - name: What is Microsoft Connected Cache? From 7760a21d17e8e35ed55f2e68133ddad6bcab4189 Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Mon, 1 Jul 2024 15:57:58 -0700 Subject: [PATCH 021/108] Adjust titles & applies to --- ...ndows-diagnostic-data-events-and-fields-2004.md | 9 ++++----- windows/privacy/toc.yml | 6 +++--- windows/privacy/windows-diagnostic-data.md | 14 +++++--------- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/windows/privacy/required-windows-diagnostic-data-events-and-fields-2004.md b/windows/privacy/required-windows-diagnostic-data-events-and-fields-2004.md index c336dba245..a2da4f8863 100644 --- a/windows/privacy/required-windows-diagnostic-data-events-and-fields-2004.md +++ b/windows/privacy/required-windows-diagnostic-data-events-and-fields-2004.md @@ -1,6 +1,6 @@ --- description: Learn more about the required Windows 10 diagnostic data gathered. -title: Required diagnostic events and fields for Windows 10 (versions 22H2, 21H2, 21H1, 20H2, and 2004) +title: Required diagnostic events and fields for Windows 10, versions 22H2 and 21H2 ms.service: windows-client ms.subservice: itpro-privacy ms.localizationpriority: high @@ -13,16 +13,15 @@ ms.topic: reference --- -# Required diagnostic events and fields for Windows 10: versions 22H2, 21H2, 21H1, 20H2, and 2004 +# Required diagnostic events and fields for Windows 10, versions 22H2 and 21H2 **Applies to** - Windows 10, version 22H2 - Windows 10, version 21H2 -- Windows 10, version 21H1 -- Windows 10, version 20H2 -- Windows 10, version 2004 +> [!NOTE] +> The information in this article also applies to these versions of Windows 10: 21H1, 20H2, and 2004. But those versions have reached their end of servicing date. For more information, see [Microsoft Product Lifecycle](/lifecycle/products). Required diagnostic data 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. diff --git a/windows/privacy/toc.yml b/windows/privacy/toc.yml index 8d18cdd2dc..5ec34034d8 100644 --- a/windows/privacy/toc.yml +++ b/windows/privacy/toc.yml @@ -19,13 +19,13 @@ href: required-diagnostic-events-fields-windows-11-22H2.md - name: Windows 11, version 21H2 href: required-windows-11-diagnostic-events-and-fields.md - - name: Windows 10, versions 22H2, 21H2, 21H1, 20H2, and 2004 + - name: Windows 10, versions 22H2 and 21H2 href: required-windows-diagnostic-data-events-and-fields-2004.md - name: Windows 10, version 1809 href: basic-level-windows-diagnostic-events-and-fields-1809.md - - name: Optional Windows diagnostic data events and fields + - name: Optional Windows diagnostic data items: - - name: Windows 10, version 1709 and later and Windows 11 optional diagnostic data + - name: Optional diagnostic data for Windows 11 and Windows 10 href: windows-diagnostic-data.md - name: Manage Windows connected experiences items: diff --git a/windows/privacy/windows-diagnostic-data.md b/windows/privacy/windows-diagnostic-data.md index 44ea57dcd1..6b1643a86d 100644 --- a/windows/privacy/windows-diagnostic-data.md +++ b/windows/privacy/windows-diagnostic-data.md @@ -1,5 +1,5 @@ --- -title: Windows 10, version 1709 and Windows 11 and later optional diagnostic data (Windows 10) +title: Optional diagnostic data for Windows 11 and Windows 10 description: Use this article to learn about the types of optional diagnostic data that is collected. ms.service: windows-client ms.subservice: itpro-privacy @@ -12,7 +12,7 @@ ms.collection: highpri ms.topic: reference --- -# Windows 10, version 1709 and later and Windows 11 optional diagnostic data +# Optional diagnostic data for Windows 11 and Windows 10 Applies to: - Windows 11, version 23H2 @@ -20,14 +20,10 @@ Applies to: - Windows 11, version 21H2 - Windows 10, version 22H2 - Windows 10, version 21H2 -- Windows 10, version 21H1 -- Windows 10, version 20H2 -- Windows 10, version 2004 -- Windows 10, version 1909 -- Windows 10, version 1903 - Windows 10, version 1809 -- Windows 10, version 1803 -- Windows 10, version 1709 + +> [!NOTE] +> The information in this article also applies to these versions of Windows 10: 21H1, 20H2, 2004, 1909, 1903, 1803, and 1709. But those versions have reached their end of servicing date. For more information, see [Microsoft Product Lifecycle](/lifecycle/products). Microsoft uses Windows diagnostic data to keep Windows secure and up-to-date, troubleshoot problems, and make product improvements. For users who have turned on "Tailored experiences", it can also be used to offer you personalized tips, ads, and recommendations to enhance Microsoft products and services for your needs. This article describes all types of optional diagnostic data collected by Windows, with comprehensive examples of data we collect per each type. For additional, detailed technical descriptions of Basic data items, see [Windows 11 required diagnostic events and fields](/windows/privacy/required-windows-11-diagnostic-events-and-fields). From cc05e23bdbfa569e536f5bdbdc99200cbb104580 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Wed, 3 Jul 2024 18:44:07 -0600 Subject: [PATCH 022/108] Feedback from review --- .../do/delivery-optimization-configure.md | 99 ++++++++++++------ .../do/images/do-setup-device-counts.png | Bin 38723 -> 0 bytes .../do/images/do-setup-network-topology.png | Bin 64370 -> 64030 bytes .../do/images/do-setup-org-size.png | Bin 0 -> 34454 bytes .../do/images/do-setup-presence.png | Bin 29520 -> 33727 bytes .../waas-delivery-optimization-reference.md | 2 +- 6 files changed, 70 insertions(+), 31 deletions(-) delete mode 100644 windows/deployment/do/images/do-setup-device-counts.png create mode 100644 windows/deployment/do/images/do-setup-org-size.png diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index c071770b24..e76d94965e 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -1,6 +1,6 @@ --- title: Configure Delivery Optimization for Windows -description: In this article, learn about the different configuration considerations to optimize Delivery Optimization in your environment. +description: In this article, learn about the different configuration considerations to optimize Delivery Optimization (DO) in your environment. ms.service: windows-client ms.subservice: itpro-updates ms.topic: how-to @@ -19,27 +19,31 @@ appliesto: ms.date: 07/01/2024 --- -# Configure Delivery Optimization for Windows +# Configure Delivery Optimization (DO) for Windows ## Delivery Optimization set up considerations checklist +Use this checklist to guide you through different aspects when modifying Delivery Optimization configurations for your environment. + 1. Allow Delivery Optimization communication -1. Find Delivery Optimization -1. Network topology -1. Device count -1. System resources -1. Improve efficiencies -1. Connected Cache +2. Options to apply Delivery Optimization settings +3. Network topology +4. Optimize P2P usage for your organization size +5. System resources +6. Improve efficiencies +7. Connected Cache ## 1. Allow DO communication :::image type="content" source="images/do-setup-allow-communication.png" alt-text="Screenshot of the considerations to allow Delivery Optimization communication." lightbox="images/do-setup-allow-communication.png"::: -Learn more about Firewall, Proxy, and Port requirements for Delivery Optimization communication. +Delivery Optimization is used to download Microsoft content from different sources (HTTP source, peers, and/or dedicated cache solution). It requires communication between the DO client and the service to find the best and most reliable source of content. For this technology to work, the DO client running on the Windows device must be able to reach the DO cloud service. + +Find out more about the requirements for Firewall, Proxy, and Port settings to enable Delivery Optimization communication. ### Firewall -There are some host names that you need to permit through your Firewall for Delivery Optimization to communicate. Check the [full list](waas-delivery-optimization-faq.yml#what-hostnames-should-i-allow-through-my-firewall-to-support-delivery-optimization) of host names to permit. +There are service endpoints that you need to permit through your Firewall to communicate with the Delivery Optimization service. Check the [full list](waas-delivery-optimization-faq.yml#what-hostnames-should-i-allow-through-my-firewall-to-support-delivery-optimization) of endpoints to permit. ### Local proxy @@ -47,29 +51,40 @@ When using a proxy, you want to bypass calls from the Delivery Optimization serv ### Cloud proxy -If you're using a cloud proxy, you should configure it to allow Delivery Optimization traffic to [bypass the proxy](waas-delivery-optimization-faq.yml#what-is-the-recommended-configuration-for-delivery-optimization-used-with-cloud-proxies). Otherwise, you may experience reduced performance and increased bandwidth consumption. +To allow peer-to-peer (P2P) to work properly you need to allow direct calls to the Delivery Optimization service from your devices (bypass the *.prod.do.dsp.mp.microsoft.com in your proxy). If the calls to the DO service are funneled through your proxy, it will alter the public IP Address of the devices, preventing P2P from working properly. If you're using a cloud proxy, you should configure it to allow Delivery Optimization traffic to [bypass the proxy](waas-delivery-optimization-faq.yml#what-is-the-recommended-configuration-for-delivery-optimization-used-with-cloud-proxies). Otherwise, you may experience reduced performance and increased bandwidth consumption. ### Ports Delivery Optimization requires the use of certain ports to deliver content. Make sure all the [required ports](waas-delivery-optimization-faq.yml#which-ports-does-delivery-optimization-use) are open to make Delivery Optimization work seamlessly. +| Port | Function | +|---------|-------------------| +| 7680 | Listen for P2P using TCP/IP | +| 3544 | Uses Teredo to discover and connect to peers across NATs | +| 443 | Used to communicate Delivery Optimization client and service | + ## 2. DO presence :::image type="content" source="images/do-setup-presence.png" alt-text="Screenshot of different product areas where you find Delivery Optimization." lightbox="images/do-setup-presence.png"::: -Use Group Policy or MDM Policies to locate Delivery Optimization settings. +### Group Policies -**Group Policies:** Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization. -**MDM Policies:** You can use an MDM solution like Intune to configure Delivery Optimization. +To use Group Policy to manage Delivery Optimization settings you can find them here, -Delivery Optimization is increasingly found throughout Microsoft products. Learn more about the areas where there's integration to see how you can optimize the results in your environment. +```Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization. or MDM Policies to locate Delivery Optimization settings.``` + +### MDM Policies + +Similarly, in MDM, the Delivery Optimization settings are under, + +```.Vendor/MSFT/Policy/Config/DeliveryOptimization/.``` + +Delivery Optimization can be used with other Microsoft products. Learn more about the areas where there's integration to see how you can optimize the results in your environment. * [Microsoft Endpoint Manager (MEM)](/mem/intune/configuration/delivery-optimization-windows) * [Microsoft Endpoint Configuration Manager (MECM)](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) * [Autopilot](../windows-deployment-scenarios.md#modern-deployment-methods)/[Autopatch](../windows-autopatch/overview/windows-autopatch-overview.md) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies are applied. - - ## 3. Network topology :::image type="content" source="images/do-setup-network-topology.png" alt-text="Screenshot of Delivery Optimization network topology considerations." lightbox="images/do-setup-network-topology.png"::: @@ -84,9 +99,12 @@ Peer groups can be defined in Delivery Optimization using a combination of setti To limit a peer group to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This Download Mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. +> [!NOTE] +> If your network topology is a hub and spoke - consider using Group download mode mode and/or restrict peer selection to the subnet. + ##### Wide area network (WAN) -To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use Download Mode ‘2’, Group-mode. Group download mode allows you to define a unique GUID Group ID or use existing “boundaries” in your enterprise with the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. +To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use Download Mode ‘2’, Group-mode. Group download mode allows you to define a unique GUID Group ID or use existing logical groupings (e.g. AD Site) in your enterprise with the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. ##### GroupIDSource default behavior @@ -94,6 +112,9 @@ There are several options for identifying your Group ID using the [DOGroupIDSour > [!NOTE] > If your peer group spans across NATs, the Teredo service will be used on port 3544. +> +> > [!NOTE] +> For Configuration Manager users, we recommend to leverage existing [MECM boundary groups](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) to define the peer groups. ##### Restrict peer selection @@ -101,19 +122,19 @@ If your environment requires a more granular approach, you can use the Restrict ### Non-peering options -There are two valid Download Modes that don't use the peer-to-peer functionality to deliver content; Download Modes (0) and (99). Download Mode (0) provides hash checks of the requested content and allows for quick detection and recovery of corrupted data due to the use of piece level hash checks. Download Mode (99) will provide a reliable download experience over HTTP from the download's original source or Microsoft, with no other checks. +There are two valid Download Modes that don't use the peer-to-peer functionality to deliver content; Download Modes (0) and (99). Download Mode (0) uses additional metadata provided by the Delivery Optimization cloud services for a peerless, reliable and efficient download experience. Download Mode (99) will provide a reliable download experience over HTTP from the download's original source or Microsoft, with no other checks. ### Peering with VPN -By default, if Delivery Optimization detects a VPN, peering is not used. To enable this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization Client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN. Also related, there's a [DODisallowCacheServerDownloadsOnVPN*](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) policy to prevent downloads from a cache server while on a VPN connection. +By default, if Delivery Optimization detects a VPN, peering is not used. To enable this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization Client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN. -## 4. Device counts +## 4. Optimize P2P usage for your organization size -:::image type="content" source="images/do-setup-device-counts.png" alt-text="Screenshot of Delivery Optimization device count considerations." lightbox="images/do-setup-device-counts.png"::: +:::image type="content" source="images/do-setup-org-size.png" alt-text="Screenshot of optimizing P2P usage for your organization." lightbox="images/do-setup-org-size.png"::: Delivery Optimization is designed to perform best in a large-scale environment with many devices. Depending on the size of the environment, you should evaluate the value of the [DOMinFileSizeToCache](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to optimize peering. -### Cache file size +### Minimum file size to cache Content peering has a limited number of slots available at any given time. By default, only content files that are 50 MB or larger can be used for peering. In an environment with more than 30 devices, change the [DOMinFileSizeToCache](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to a lower value (10 MB), to have more content available for peering, which can be distributed among many devices. For an even larger number of devices (>100), you can raise this setting to (1 MB). @@ -129,15 +150,19 @@ There are some Delivery Optimization configurations that can make an impact when ### Disk size -Alter the minimum disk size a device must have to use peering with the [DOMinDiskSizeAllowedToPeer](waas-delivery-optimization-reference.md#minimum-disk-size-allowed-to-use-peer-caching) setting. You can also manage the amount of space the Delivery Optimization cache uses with the following settings: [DOMaxCacheSize](waas-delivery-optimization-reference.md#max-cache-size)/[DOAbsoluteMaxCacheSize](waas-delivery-optimization-reference.md#absolute-max-cache-size). +Alter the minimum disk size (default is 32 GB) a device must have to use peering with the [DOMinDiskSizeAllowedToPeer](waas-delivery-optimization-reference.md#minimum-disk-size-allowed-to-use-peer-caching) setting. + +### Optimize cache size + +You can also manage the amount of space the Delivery Optimization cache uses with the following settings: [DOMaxCacheSize](waas-delivery-optimization-reference.md#max-cache-size) (default is 20%) and [DOAbsoluteMaxCacheSize](waas-delivery-optimization-reference.md#absolute-max-cache-size) (default is not configured). ### RAM size -Control the minimum amount of RAM (inclusive) allowed to use peer caching, [DOMinRAMAllowedToPeer](waas-delivery-optimization-reference.md#minimum-ram-inclusive-allowed-to-use-peer-caching). +Control the minimum amount of RAM (inclusive) allowed to use peer caching (default is 4 GB), [DOMinRAMAllowedToPeer](waas-delivery-optimization-reference.md#minimum-ram-inclusive-allowed-to-use-peer-caching). -### Large # of devices with healthy system resources +### Large # of devices with idle system resources -In a lab situation, there's typically a set number of devices that are plugged in and have ample free disk space. By increasing the content expiration interval of [DOMaxCacheAge](waas-delivery-optimization-reference.md#max-cache-age) to 7 or more (up to 30 days), you can take advantage of these devices, using them as excellent upload sources to upload more content over a longer period. +In an environment with a set number of devices that are plugged in and have ample free disk space try increasing the content expiration interval of [DOMaxCacheAge](waas-delivery-optimization-reference.md#max-cache-age) seven or more (up to 30 days). You can take advantage of these devices, using them as excellent upload sources to upload more content over a longer period. ## 6. Improve efficiencies @@ -146,12 +171,15 @@ In a lab situation, there's typically a set number of devices that are plugged i Looking to improve efficiency? Some of the most powerful settings you can change that could have a significant impact within your environment include: * Help optimize peer connection over HTTP connections using the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy. A good value for the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy is something lower than the average download speed seen in your network. For example, if your average speed is 1000 KB/s, set this policy to 500 KB/s. -* Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of policies include: [DODelayBackgroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs), [DODelayForegroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs), [DelayCacheServerFallbackBackground*](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs), [DelayCacheServerFallbackForeground*](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs). For applicable scenarios (improving efficiency from peers or cache server) a good starting point is ’60 - 90’ seconds for the background settings and ’30 – 60’ for foreground settings. -* Reduce any disruptions and help to manage the timing of network usage by utilizing the business hours policies, [DOSetHoursToLimitForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth) and [DOSetHoursToLimitBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth). +* Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of policies include: [DODelayBackgroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs), [DODelayForegroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs). For applicable scenarios (improving efficiency from peers or cache server) a good starting point is 60 seconds for the background settings and 30 seconds for foreground settings. + +### Bandwidth throttling options + +* Reduce disruptions by throttling differently at different times of day, using the business hours policies, [DOSetHoursToLimitForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth) and [DOSetHoursToLimitBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth). * Manage network usage as a percentage or absolute value (Note: The absolute policies are recommended in low bandwidth environments). These policies include: [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth)/[DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). > [!NOTE] -> Not all content types aren't eligible for P2P. Refer the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. +> Not all content types are eligible for P2P. Refer the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. ## 7. Connected cache @@ -165,6 +193,17 @@ Looking to improve efficiency? Some of the most powerful settings you can change * [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in ‘Improving Efficiencies’ section). * [DODisallowCacheServerDownloadsOnVPN](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cache host server to supply content, when device is on a VPN connection. +## Summary of basic configuration recommendations + +| Use case | Policy | Recommended value | +| --- | --- | ------------------------- | +| Use P2P | DownloadMode | 1 or 2 | +| Do not use P2P | DownloadMode | 0 | +| Number of devices in the organization | MinFileSizeToCache | 1 MB for peer group > 100 devices | +| Idle system resources | MaxCacheAge | 7 days (604800 seconds) | +| Improve efficiencies | MinBackgroundQoS and DelayBackgroundDownloadFromHttp / DelayForegroundDownloadFromHttp | 500 KB/s and 60/30 seconds | +| Using Connected Cache? | DelayCacheServerFallbackBackground / DelayCacheServerFallbackForeground | 60/30 seconds | + ## Monitor Delivery Optimization Whether you opt for the default Delivery Optimization configurations or tailor them to suit your environment, you will want to track the outcomes to see how they improve your efficiency. [Learn more](waas-delivery-optimization-monitor.md) about the monitoring options for Delivery Optimization. diff --git a/windows/deployment/do/images/do-setup-device-counts.png b/windows/deployment/do/images/do-setup-device-counts.png deleted file mode 100644 index 211195a6358481eae0bc12a3c2e9d3f4683b7ab2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38723 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 Jmfy9B_ Date: Wed, 3 Jul 2024 20:20:57 -0600 Subject: [PATCH 023/108] Fix spelling, grammar --- .gitignore | 1 + .../do/delivery-optimization-configure.md | 14 +++++--------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 23057defcc..f770083f1d 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ settings.json wdav-pm-sln.csproj wdav-pm-sln.csproj.user wdav-pm-sln.sln +windows/deployment/do/delivery-optimization-configure.md diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index e76d94965e..2b594f19f7 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -71,13 +71,13 @@ Delivery Optimization requires the use of certain ports to deliver content. Make To use Group Policy to manage Delivery Optimization settings you can find them here, -```Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization. or MDM Policies to locate Delivery Optimization settings.``` + `Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization` ### MDM Policies Similarly, in MDM, the Delivery Optimization settings are under, -```.Vendor/MSFT/Policy/Config/DeliveryOptimization/.``` + `.Vendor/MSFT/Policy/Config/DeliveryOptimization/` Delivery Optimization can be used with other Microsoft products. Learn more about the areas where there's integration to see how you can optimize the results in your environment. @@ -100,7 +100,7 @@ Peer groups can be defined in Delivery Optimization using a combination of setti To limit a peer group to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This Download Mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. > [!NOTE] -> If your network topology is a hub and spoke - consider using Group download mode mode and/or restrict peer selection to the subnet. +> If your network topology is a hub and spoke - consider using Group download mode and/or restrict peer selection to the subnet. ##### Wide area network (WAN) @@ -113,8 +113,7 @@ There are several options for identifying your Group ID using the [DOGroupIDSour > [!NOTE] > If your peer group spans across NATs, the Teredo service will be used on port 3544. > -> > [!NOTE] -> For Configuration Manager users, we recommend to leverage existing [MECM boundary groups](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) to define the peer groups. +> For Configuration Manager users, we recommend leveraging existing [MECM boundary groups](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) to define the peer groups. ##### Restrict peer selection @@ -179,15 +178,12 @@ Looking to improve efficiency? Some of the most powerful settings you can change * Manage network usage as a percentage or absolute value (Note: The absolute policies are recommended in low bandwidth environments). These policies include: [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth)/[DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). > [!NOTE] -> Not all content types are eligible for P2P. Refer the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. +> Not all content types are eligible for P2P. Refer to the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. ## 7. Connected cache :::image type="content" source="images/do-setup-connected-cache.png" alt-text="Screenshot of Delivery Optimization options when using Connected Cache." lightbox="images/do-setup-connected-cache.png"::: -> [!NOTE] -> When using the Connected Cache dedicated cache solution for your environment there are a handful of policies you should be aware of, some of which have been mentioned throughout this page (denoted with *). - * [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed. * [DOCacheHostSource](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cache host servers on the network, using DHCP. * [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in ‘Improving Efficiencies’ section). From 96d1f4bb42e22c21575e6aa7717cbf2c8b953f37 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Wed, 3 Jul 2024 20:27:46 -0600 Subject: [PATCH 024/108] remove protected file --- .gitignore | 24 ------------------------ .vscode/settings.json | 5 +++++ 2 files changed, 5 insertions(+), 24 deletions(-) delete mode 100644 .gitignore create mode 100644 .vscode/settings.json diff --git a/.gitignore b/.gitignore deleted file mode 100644 index f770083f1d..0000000000 --- a/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -log/ -xhtml/ -packages/ -obj/ -_site/ -Tools/NuGet/ -.optemp/ -*.db -.DS_Store -*.ini -_themes*/ -common/ -.vscode/ -.openpublishing.build.mdproj -.openpublishing.buildcore.ps1 -packages.config -settings.json - -# User-specific files -.vs/ -wdav-pm-sln.csproj -wdav-pm-sln.csproj.user -wdav-pm-sln.sln -windows/deployment/do/delivery-optimization-configure.md diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..96f70ba055 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "cSpell.words": [ + "cachehost" + ] +} \ No newline at end of file From 752a1f2553b807a8b81c73f9691534fa8d8d772e Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Wed, 3 Jul 2024 20:39:02 -0600 Subject: [PATCH 025/108] test --- windows/deployment/do/delivery-optimization-configure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 2b594f19f7..fc8064d809 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -91,7 +91,7 @@ Delivery Optimization can be used with other Microsoft products. Learn more abou Peer groups can be defined in Delivery Optimization using a combination of settings such as [DODownloadMode](waas-delivery-optimization-reference.md#download-mode), [DOGroupID](waas-delivery-optimization-reference.md#group-id), [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings in use will depend on your desired peer group(s) and your network topology.* -### Peering setup +### P2P setup #### Define peer groups From 38d40772b632d58dce6f3b90ef83f2193aae896b Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Wed, 3 Jul 2024 20:45:45 -0600 Subject: [PATCH 026/108] Revert "Fix spelling, grammar" This reverts commit f859fbbd5c6295d280106aa39b04af7faf409799. --- .gitignore | 23 +++++++++++++++++++ .../do/delivery-optimization-configure.md | 14 +++++++---- 2 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..23057defcc --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +log/ +xhtml/ +packages/ +obj/ +_site/ +Tools/NuGet/ +.optemp/ +*.db +.DS_Store +*.ini +_themes*/ +common/ +.vscode/ +.openpublishing.build.mdproj +.openpublishing.buildcore.ps1 +packages.config +settings.json + +# User-specific files +.vs/ +wdav-pm-sln.csproj +wdav-pm-sln.csproj.user +wdav-pm-sln.sln diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index fc8064d809..23180eee37 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -71,13 +71,13 @@ Delivery Optimization requires the use of certain ports to deliver content. Make To use Group Policy to manage Delivery Optimization settings you can find them here, - `Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization` +```Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization. or MDM Policies to locate Delivery Optimization settings.``` ### MDM Policies Similarly, in MDM, the Delivery Optimization settings are under, - `.Vendor/MSFT/Policy/Config/DeliveryOptimization/` +```.Vendor/MSFT/Policy/Config/DeliveryOptimization/.``` Delivery Optimization can be used with other Microsoft products. Learn more about the areas where there's integration to see how you can optimize the results in your environment. @@ -100,7 +100,7 @@ Peer groups can be defined in Delivery Optimization using a combination of setti To limit a peer group to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This Download Mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. > [!NOTE] -> If your network topology is a hub and spoke - consider using Group download mode and/or restrict peer selection to the subnet. +> If your network topology is a hub and spoke - consider using Group download mode mode and/or restrict peer selection to the subnet. ##### Wide area network (WAN) @@ -113,7 +113,8 @@ There are several options for identifying your Group ID using the [DOGroupIDSour > [!NOTE] > If your peer group spans across NATs, the Teredo service will be used on port 3544. > -> For Configuration Manager users, we recommend leveraging existing [MECM boundary groups](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) to define the peer groups. +> > [!NOTE] +> For Configuration Manager users, we recommend to leverage existing [MECM boundary groups](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) to define the peer groups. ##### Restrict peer selection @@ -178,12 +179,15 @@ Looking to improve efficiency? Some of the most powerful settings you can change * Manage network usage as a percentage or absolute value (Note: The absolute policies are recommended in low bandwidth environments). These policies include: [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth)/[DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). > [!NOTE] -> Not all content types are eligible for P2P. Refer to the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. +> Not all content types are eligible for P2P. Refer the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. ## 7. Connected cache :::image type="content" source="images/do-setup-connected-cache.png" alt-text="Screenshot of Delivery Optimization options when using Connected Cache." lightbox="images/do-setup-connected-cache.png"::: +> [!NOTE] +> When using the Connected Cache dedicated cache solution for your environment there are a handful of policies you should be aware of, some of which have been mentioned throughout this page (denoted with *). + * [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed. * [DOCacheHostSource](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cache host servers on the network, using DHCP. * [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in ‘Improving Efficiencies’ section). From 566e0f74582047e933b79939103377fd30a7b4a2 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Wed, 3 Jul 2024 20:50:17 -0600 Subject: [PATCH 027/108] Remove json file from PR --- .vscode/settings.json | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 96f70ba055..0000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "cSpell.words": [ - "cachehost" - ] -} \ No newline at end of file From 1a90c2051d7adc7c9268a1ce48b9b106d08dc0b5 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Wed, 3 Jul 2024 20:53:39 -0600 Subject: [PATCH 028/108] Add title back --- windows/deployment/do/delivery-optimization-configure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 23180eee37..e76d94965e 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -91,7 +91,7 @@ Delivery Optimization can be used with other Microsoft products. Learn more abou Peer groups can be defined in Delivery Optimization using a combination of settings such as [DODownloadMode](waas-delivery-optimization-reference.md#download-mode), [DOGroupID](waas-delivery-optimization-reference.md#group-id), [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings in use will depend on your desired peer group(s) and your network topology.* -### P2P setup +### Peering setup #### Define peer groups From 0e555a611b83fcc720dab042320cecb735359e4b Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Wed, 3 Jul 2024 21:08:33 -0600 Subject: [PATCH 029/108] More spelling errors --- .../deployment/do/delivery-optimization-configure.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index e76d94965e..3b1fa6d16c 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -71,13 +71,13 @@ Delivery Optimization requires the use of certain ports to deliver content. Make To use Group Policy to manage Delivery Optimization settings you can find them here, -```Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization. or MDM Policies to locate Delivery Optimization settings.``` + `Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization` ### MDM Policies Similarly, in MDM, the Delivery Optimization settings are under, -```.Vendor/MSFT/Policy/Config/DeliveryOptimization/.``` + `.Vendor/MSFT/Policy/Config/DeliveryOptimization/` Delivery Optimization can be used with other Microsoft products. Learn more about the areas where there's integration to see how you can optimize the results in your environment. @@ -100,7 +100,7 @@ Peer groups can be defined in Delivery Optimization using a combination of setti To limit a peer group to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This Download Mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. > [!NOTE] -> If your network topology is a hub and spoke - consider using Group download mode mode and/or restrict peer selection to the subnet. +> If your network topology is a hub and spoke - consider using Group download mode and/or restrict peer selection to the subnet. ##### Wide area network (WAN) @@ -113,8 +113,7 @@ There are several options for identifying your Group ID using the [DOGroupIDSour > [!NOTE] > If your peer group spans across NATs, the Teredo service will be used on port 3544. > -> > [!NOTE] -> For Configuration Manager users, we recommend to leverage existing [MECM boundary groups](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) to define the peer groups. +> For Configuration Manager users, we recommend to leverage existing [MECM boundary groups](/mem/configmgr/core/plan-design/hierarchy/fundamental-concepts-for-content-management.md##delivery-optimization) to define the peer groups. ##### Restrict peer selection @@ -179,7 +178,7 @@ Looking to improve efficiency? Some of the most powerful settings you can change * Manage network usage as a percentage or absolute value (Note: The absolute policies are recommended in low bandwidth environments). These policies include: [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth)/[DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). > [!NOTE] -> Not all content types are eligible for P2P. Refer the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. +> Not all content types are eligible for P2P. Refer to the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. ## 7. Connected cache From 5c2aac47e91cb7f83e42540b682e8cac315435eb Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Wed, 3 Jul 2024 21:15:42 -0600 Subject: [PATCH 030/108] Fix link --- windows/deployment/do/delivery-optimization-configure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 3b1fa6d16c..68dfb06058 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -113,7 +113,7 @@ There are several options for identifying your Group ID using the [DOGroupIDSour > [!NOTE] > If your peer group spans across NATs, the Teredo service will be used on port 3544. > -> For Configuration Manager users, we recommend to leverage existing [MECM boundary groups](/mem/configmgr/core/plan-design/hierarchy/fundamental-concepts-for-content-management.md##delivery-optimization) to define the peer groups. +> For Configuration Manager users, we recommend to leverage existing [boundary groups](/mem/configmgr/core/plan-design/hierarchy/fundamental-concepts-for-content-management#delivery-optimization) to define the peer groups. ##### Restrict peer selection From d6c0375c4c233b970d50a073c8c6ab662b21d292 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Wed, 3 Jul 2024 21:26:23 -0600 Subject: [PATCH 031/108] Remove MCC note --- windows/deployment/do/delivery-optimization-configure.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 68dfb06058..d0a52cd38d 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -184,9 +184,6 @@ Looking to improve efficiency? Some of the most powerful settings you can change :::image type="content" source="images/do-setup-connected-cache.png" alt-text="Screenshot of Delivery Optimization options when using Connected Cache." lightbox="images/do-setup-connected-cache.png"::: -> [!NOTE] -> When using the Connected Cache dedicated cache solution for your environment there are a handful of policies you should be aware of, some of which have been mentioned throughout this page (denoted with *). - * [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed. * [DOCacheHostSource](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cache host servers on the network, using DHCP. * [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in ‘Improving Efficiencies’ section). From f818cdc842024f0f075f551156e42888f7fab31e Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Sat, 6 Jul 2024 20:33:00 -0600 Subject: [PATCH 032/108] Clean up proxy section, minor grammar updates --- .../do/delivery-optimization-configure.md | 65 ++++++++++-------- .../do/images/do-setup-presence.png | Bin 33727 -> 21663 bytes 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index d0a52cd38d..78bf119824 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -45,13 +45,17 @@ Find out more about the requirements for Firewall, Proxy, and Port settings to e There are service endpoints that you need to permit through your Firewall to communicate with the Delivery Optimization service. Check the [full list](waas-delivery-optimization-faq.yml#what-hostnames-should-i-allow-through-my-firewall-to-support-delivery-optimization) of endpoints to permit. -### Local proxy +### Proxy -When using a proxy, you want to bypass calls from the Delivery Optimization service (*.prod.do.dsp.mp.microsoft.com), as any altering of the public IP address prevents peering from working properly. For downloads from HTTP sources, Delivery Optimization can use the automatic proxy discovery capability of WinHttp to handle communication with the proxy server. It’s important to know, Delivery Optimization uses byte range requests, so you’ll want to make sure your proxy allows this capability. [Learn more](delivery-optimization-proxy.md) about Delivery Optimization with a proxy server. +To allow peer-to-peer (P2P) to work properly you need to allow direct calls to the Delivery Optimization service from your devices. When using a proxy, you want to bypass calls from the Delivery Optimization service (*.prod.do.dsp.mp.microsoft.com). If the calls to the DO service are funneled through your proxy, it will alter the public IP address of the devices, preventing P2P from working properly. -### Cloud proxy +#### Local proxy -To allow peer-to-peer (P2P) to work properly you need to allow direct calls to the Delivery Optimization service from your devices (bypass the *.prod.do.dsp.mp.microsoft.com in your proxy). If the calls to the DO service are funneled through your proxy, it will alter the public IP Address of the devices, preventing P2P from working properly. If you're using a cloud proxy, you should configure it to allow Delivery Optimization traffic to [bypass the proxy](waas-delivery-optimization-faq.yml#what-is-the-recommended-configuration-for-delivery-optimization-used-with-cloud-proxies). Otherwise, you may experience reduced performance and increased bandwidth consumption. +For downloads from HTTP sources, Delivery Optimization can use the automatic proxy discovery capability of WinHttp to handle communication with the proxy server. It’s important to know, Delivery Optimization uses byte range requests, so you’ll want to make sure your proxy allows this capability. [Learn more](delivery-optimization-proxy.md) about using Delivery Optimization with a proxy server. + +#### Cloud proxy + + If you're using a cloud proxy, you should configure it to allow Delivery Optimization traffic to [bypass the proxy](waas-delivery-optimization-faq.yml#what-is-the-recommended-configuration-for-delivery-optimization-used-with-cloud-proxies). Otherwise, you may experience reduced performance and increased bandwidth consumption. ### Ports @@ -60,8 +64,8 @@ Delivery Optimization requires the use of certain ports to deliver content. Make | Port | Function | |---------|-------------------| | 7680 | Listen for P2P using TCP/IP | -| 3544 | Uses Teredo to discover and connect to peers across NATs | -| 443 | Used to communicate Delivery Optimization client and service | +| 3544 | Use Teredo to discover and connect to peers across NATs | +| 443 | Use to communicate Delivery Optimization client and service | ## 2. DO presence @@ -69,27 +73,26 @@ Delivery Optimization requires the use of certain ports to deliver content. Make ### Group Policies -To use Group Policy to manage Delivery Optimization settings you can find them here, +Use Group Policy to manage Delivery Optimization settings here, `Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization` ### MDM Policies -Similarly, in MDM, the Delivery Optimization settings are under, +Use MDM to manage Delivery Optimization settings here, `.Vendor/MSFT/Policy/Config/DeliveryOptimization/` -Delivery Optimization can be used with other Microsoft products. Learn more about the areas where there's integration to see how you can optimize the results in your environment. +Delivery Optimization is integrated with both Microsoft Endpoint Manager and Configuration Manager. * [Microsoft Endpoint Manager (MEM)](/mem/intune/configuration/delivery-optimization-windows) * [Microsoft Endpoint Configuration Manager (MECM)](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) -* [Autopilot](../windows-deployment-scenarios.md#modern-deployment-methods)/[Autopatch](../windows-autopatch/overview/windows-autopatch-overview.md) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies are applied. ## 3. Network topology :::image type="content" source="images/do-setup-network-topology.png" alt-text="Screenshot of Delivery Optimization network topology considerations." lightbox="images/do-setup-network-topology.png"::: -Peer groups can be defined in Delivery Optimization using a combination of settings such as [DODownloadMode](waas-delivery-optimization-reference.md#download-mode), [DOGroupID](waas-delivery-optimization-reference.md#group-id), [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings in use will depend on your desired peer group(s) and your network topology.* +Peer groups can be defined in Delivery Optimization using a combination of settings such as [DODownloadMode](waas-delivery-optimization-reference.md#download-mode), [DOGroupID](waas-delivery-optimization-reference.md#group-id), [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings used will depend on your desired peer group(s) and your network topology.* ### Peering setup @@ -97,35 +100,35 @@ Peer groups can be defined in Delivery Optimization using a combination of setti ##### Local area network (LAN) -To limit a peer group to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This Download Mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. +To define a peer group limited to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This download mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. > [!NOTE] > If your network topology is a hub and spoke - consider using Group download mode and/or restrict peer selection to the subnet. ##### Wide area network (WAN) -To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use Download Mode ‘2’, Group-mode. Group download mode allows you to define a unique GUID Group ID or use existing logical groupings (e.g. AD Site) in your enterprise with the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. +To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use download mode ‘2’, Group-mode. Group download mode allows you to define a unique GUID Group ID or use existing logical groupings (e.g. AD Site) in your enterprise with the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. ##### GroupIDSource default behavior -There are several options for identifying your Group ID using the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids). The default behavior, when the [DOGroupID](waas-delivery-optimization-reference.md#group-id) or [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) policies aren't set, is to determine the Group ID using AD Site (1), Authenticated domain SID (2), or Microsoft Entra tenant ID (5). More information on all [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting options available. +There are several options for identifying your Group ID using the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids). The default behavior, when the [DOGroupID](waas-delivery-optimization-reference.md#group-id) or [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) policies aren't set, is to determine the Group ID using AD Site (1), Authenticated domain SID (2), or Microsoft Entra tenant ID (5). [Learn more](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) about all DOGroupIDSource available options. > [!NOTE] > If your peer group spans across NATs, the Teredo service will be used on port 3544. > -> For Configuration Manager users, we recommend to leverage existing [boundary groups](/mem/configmgr/core/plan-design/hierarchy/fundamental-concepts-for-content-management#delivery-optimization) to define the peer groups. +> For Configuration Manager users, we recommend leveraging existing [boundary groups](/mem/configmgr/core/plan-design/hierarchy/fundamental-concepts-for-content-management#delivery-optimization) to define the peer groups. ##### Restrict peer selection -If your environment requires a more granular approach, you can use the Restrict Peer Discovery setting alongside the Download Mode to achieve more control. For example, if you have several different subnets behind the same NAT but want to limit your peer groups to a single subnet, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1) and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection)(Subnet). This setting can be used with any of the peer-related Download Modes (1, 2, or 3). +If your environment requires a more granular approach, you can use the restrict peer discovery setting alongside the download mode to achieve more control. For example, if you have several different subnets behind the same NAT but want to limit your peer groups to a single subnet, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1) and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection) (Subnet). This setting can be used with any of the peer-related download modes (1, 2, or 3). ### Non-peering options -There are two valid Download Modes that don't use the peer-to-peer functionality to deliver content; Download Modes (0) and (99). Download Mode (0) uses additional metadata provided by the Delivery Optimization cloud services for a peerless, reliable and efficient download experience. Download Mode (99) will provide a reliable download experience over HTTP from the download's original source or Microsoft, with no other checks. +There are two valid download modes that don't use P2P functionality to deliver content; download modes (0) and (99). download mode (0) uses additional metadata provided by the Delivery Optimization services for a peerless, reliable, and efficient download experience. Download mode (99) will provide a reliable download experience over HTTP from the download's original source or Microsoft, with no other checks. ### Peering with VPN -By default, if Delivery Optimization detects a VPN, peering is not used. To enable this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization Client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN. +By default, if Delivery Optimization detects a VPN, peering is not used. To enable this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN. ## 4. Optimize P2P usage for your organization size @@ -139,13 +142,13 @@ Content peering has a limited number of slots available at any given time. By de ### Mobile devices -By default, peer-to-peer capabilities aren't enabled for devices using a battery. If there are many mobile devices in your environment, consider enabling the [DOMinBatteryPercentageAllowedToUpload](waas-delivery-optimization-reference.md#allow-uploads-while-the-device-is-on-battery-while-under-set-battery-level) policy to 60%, to use peering while on battery. +By default, P2P capabilities aren't enabled for devices using a battery. If there are many mobile devices in your environment, consider enabling the [DOMinBatteryPercentageAllowedToUpload](waas-delivery-optimization-reference.md#allow-uploads-while-the-device-is-on-battery-while-under-set-battery-level) policy to 60%, to use peering while on battery. ## 5. System resources :::image type="content" source="images/do-setup-system-resources.png" alt-text="Screenshot of Delivery Optimization system resources considerations." lightbox="images/do-setup-system-resources.png"::: -There are some Delivery Optimization configurations that can make an impact when ample system resources are available. +There are some Delivery Optimization configurations that can make an impact when various system resources are available. ### Disk size @@ -157,11 +160,11 @@ You can also manage the amount of space the Delivery Optimization cache uses wit ### RAM size -Control the minimum amount of RAM (inclusive) allowed to use peer caching (default is 4 GB), [DOMinRAMAllowedToPeer](waas-delivery-optimization-reference.md#minimum-ram-inclusive-allowed-to-use-peer-caching). +Control the minimum amount of RAM (inclusive) allowed to use peer caching (default is 4 GB), with [DOMinRAMAllowedToPeer](waas-delivery-optimization-reference.md#minimum-ram-inclusive-allowed-to-use-peer-caching). -### Large # of devices with idle system resources +### Large number of devices with idle system resources -In an environment with a set number of devices that are plugged in and have ample free disk space try increasing the content expiration interval of [DOMaxCacheAge](waas-delivery-optimization-reference.md#max-cache-age) seven or more (up to 30 days). You can take advantage of these devices, using them as excellent upload sources to upload more content over a longer period. +In an environment with devices that are plugged in and have ample free disk space try increasing the content expiration interval of [DOMaxCacheAge](waas-delivery-optimization-reference.md#max-cache-age) to seven or more (up to 30 days). You can take advantage of these devices, using them as excellent upload sources to upload more content over a longer period. ## 6. Improve efficiencies @@ -170,29 +173,31 @@ In an environment with a set number of devices that are plugged in and have ampl Looking to improve efficiency? Some of the most powerful settings you can change that could have a significant impact within your environment include: * Help optimize peer connection over HTTP connections using the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy. A good value for the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy is something lower than the average download speed seen in your network. For example, if your average speed is 1000 KB/s, set this policy to 500 KB/s. -* Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of policies include: [DODelayBackgroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs), [DODelayForegroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs). For applicable scenarios (improving efficiency from peers or cache server) a good starting point is 60 seconds for the background settings and 30 seconds for foreground settings. +* Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of delay-related policies include: [DODelayBackgroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs), [DODelayForegroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs). To improve efficiencies from peers or a dedicated cache server, a good starting point is 60 seconds for background settings and 30 seconds for foreground settings. ### Bandwidth throttling options -* Reduce disruptions by throttling differently at different times of day, using the business hours policies, [DOSetHoursToLimitForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth) and [DOSetHoursToLimitBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth). -* Manage network usage as a percentage or absolute value (Note: The absolute policies are recommended in low bandwidth environments). These policies include: [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth)/[DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). +* Reduce disruptions by throttling differently at different times of day, using the business hours policies, [DOSetHoursToLimitBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth) and [DOSetHoursToLimitForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth). +* Manage network usage as a percentage or absolute value. These policies include: [DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth), [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). > [!NOTE] +> The absolute policies are recommended in low bandwidth environments. +> > Not all content types are eligible for P2P. Refer to the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. ## 7. Connected cache :::image type="content" source="images/do-setup-connected-cache.png" alt-text="Screenshot of Delivery Optimization options when using Connected Cache." lightbox="images/do-setup-connected-cache.png"::: -* [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed. +* [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. *Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed.* * [DOCacheHostSource](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cache host servers on the network, using DHCP. -* [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in ‘Improving Efficiencies’ section). +* [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in [Improve Efficiencies](#6-improve-efficiencies) section above). * [DODisallowCacheServerDownloadsOnVPN](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cache host server to supply content, when device is on a VPN connection. ## Summary of basic configuration recommendations | Use case | Policy | Recommended value | -| --- | --- | ------------------------- | +| ----- | ----- | ----------------- | | Use P2P | DownloadMode | 1 or 2 | | Do not use P2P | DownloadMode | 0 | | Number of devices in the organization | MinFileSizeToCache | 1 MB for peer group > 100 devices | @@ -210,4 +215,4 @@ There could be many different reasons why Delivery Optimization is not working i ## Test Delivery Optimization -[Learn more](delivery-optimization-test.md) for guidance on basic testing scenarios to see how Delivery Optimization works. +[Learn more](delivery-optimization-test.md) about guidance on basic testing scenarios to see how Delivery Optimization works. diff --git a/windows/deployment/do/images/do-setup-presence.png b/windows/deployment/do/images/do-setup-presence.png index 85fbf3a7c3565f986e68a4001f4727bbe86e740c..28886ece6e1097edc20da4651fcbd1947670bd8f 100644 GIT binary patch literal 21663 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 Sk{y(PWn=ln(Gv3u5&r-d7Z{8H literal 33727 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 Date: Sat, 6 Jul 2024 22:38:15 -0600 Subject: [PATCH 033/108] Update note --- windows/deployment/do/delivery-optimization-configure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 78bf119824..b1cc42ba09 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -103,7 +103,7 @@ Peer groups can be defined in Delivery Optimization using a combination of setti To define a peer group limited to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This download mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. > [!NOTE] -> If your network topology is a hub and spoke - consider using Group download mode and/or restrict peer selection to the subnet. +> Consider using Group download mode and/or limiting peer selection to the subnet if your network topology is a hub and spoke. ##### Wide area network (WAN) From 15ba2a8464cdc4d9de07a5d6f1c3de8ca39191bf Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Wed, 10 Jul 2024 07:34:35 -0400 Subject: [PATCH 034/108] Windows 11 ui update --- .../configuration/start/includes/hide-lock.md | 2 +- .../configuration/start/policy-settings.md | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/windows/configuration/start/includes/hide-lock.md b/windows/configuration/start/includes/hide-lock.md index e43dff0cfa..52a8be809e 100644 --- a/windows/configuration/start/includes/hide-lock.md +++ b/windows/configuration/start/includes/hide-lock.md @@ -9,5 +9,5 @@ ms.topic: include | | Path | |--|--| -| **CSP** | `./Device/Vendor/MSFT/Policy/Config/Start/`[HideSignOut](/windows/client-management/mdm/policy-csp-start#hidelock) | +| **CSP** | `./Device/Vendor/MSFT/Policy/Config/Start/`[HideLock](/windows/client-management/mdm/policy-csp-start#hidelock) | | **GPO** | Not available. | diff --git a/windows/configuration/start/policy-settings.md b/windows/configuration/start/policy-settings.md index 9dd5437ffc..4000e5d049 100644 --- a/windows/configuration/start/policy-settings.md +++ b/windows/configuration/start/policy-settings.md @@ -132,6 +132,16 @@ Select one of the tabs to see the list of available settings: #### [:::image type="icon" source="../images/icons/user.svg"::: **Account options**](#tab/user) +::: zone pivot="windows-11" +|Policy name| CSP | GPO | +|-|-|-| +|[Hide **Change account settings**](#hide-change-account-settings)|✅|❌| +|[Hide **Sign out**](#hide-sign-out)|✅|✅| +|[Hide **Switch account**](#hide-switch-account)|✅|❌| +|[Hide user tile](#hide-user-tile)|✅|❌| +::: zone-end + +::: zone pivot="windows-10" |Policy name| CSP | GPO | |-|-|-| |[Hide **Change account settings**](#hide-change-account-settings)|✅|❌| @@ -139,9 +149,14 @@ Select one of the tabs to see the list of available settings: |[Hide **Sign out**](#hide-sign-out)|✅|✅| |[Hide **Switch account**](#hide-switch-account)|✅|❌| |[Hide user tile](#hide-user-tile)|✅|❌| +::: zone-end [!INCLUDE [hide-change-account-settings](includes/hide-change-account-settings.md)] + +::: zone pivot="windows-10" [!INCLUDE [hide-lock](includes/hide-lock.md)] +::: zone-end + [!INCLUDE [hide-signout](includes/hide-signout.md)] [!INCLUDE [hide-switch-user](includes/hide-switch-account.md)] [!INCLUDE [hide-switch-user](includes/hide-user-tile.md)] @@ -174,6 +189,21 @@ Select one of the tabs to see the list of available settings: #### [:::image type="icon" source="../images/icons/power.svg"::: **Power options**](#tab/power) + +::: zone pivot="windows-11" +|Policy name| CSP | GPO | +|-|-|-| +|[Hide **Hibernate** ](#hide-hibernate)|✅|❌| +|[Hide **Lock**](#hide-lock)|✅|❌| +|[Hide **Power** button](#hide-power-button)|✅|❌| +|[Hide **Restart**](#hide-restart)|✅|❌| +|[Hide **Shut down**](#hide-shut-down)|✅|❌| +|[Hide **Sleep**](#hide-sleep)|✅|❌| +|[Remove and prevent access to the shut down restart sleep and hibernate commands](#remove-and-prevent-access-to-the-shut-down-restart-sleep-and-hibernate-commands)|❌|✅| +::: zone-end + +::: zone pivot="windows-10" + |Policy name| CSP | GPO | |-|-|-| |[Hide **Hibernate** ](#hide-hibernate)|✅|❌| @@ -183,7 +213,12 @@ Select one of the tabs to see the list of available settings: |[Hide **Sleep**](#hide-sleep)|✅|❌| |[Remove and prevent access to the shut down restart sleep and hibernate commands](#remove-and-prevent-access-to-the-shut-down-restart-sleep-and-hibernate-commands)|❌|✅| +::: zone-end + [!INCLUDE [hide-hibernate](includes/hide-hibernate.md)] +::: zone pivot="windows-11" +[!INCLUDE [hide-lock](includes/hide-lock.md)] +::: zone-end [!INCLUDE [hide-power-button](includes/hide-power-button.md)] [!INCLUDE [hide-restart](includes/hide-restart.md)] [!INCLUDE [hide-shut-down](includes/hide-shut-down.md)] From 52ac86059f6d975c533da6f7c3723cb9e4fd3da6 Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Wed, 10 Jul 2024 07:34:59 -0400 Subject: [PATCH 035/108] date update --- windows/configuration/start/policy-settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/configuration/start/policy-settings.md b/windows/configuration/start/policy-settings.md index 4000e5d049..b9a8351ca5 100644 --- a/windows/configuration/start/policy-settings.md +++ b/windows/configuration/start/policy-settings.md @@ -2,7 +2,7 @@ title: Start policy settings description: Learn about the policy settings to configure the Windows Start menu. ms.topic: reference -ms.date: 04/10/2024 +ms.date: 07/10/2024 appliesto: zone_pivot_groups: windows-versions-11-10 --- From 3d0d4e9a8fec339ed77e3709aa57ee891d6e9b21 Mon Sep 17 00:00:00 2001 From: "Vinay Pamnani (from Dev Box)" Date: Thu, 11 Jul 2024 10:51:49 -0600 Subject: [PATCH 036/108] MDAG Fix links/update --- ...blishing.redirection.windows-security.json | 7 +- .../TOC.yml | 9 +- .../configure-md-app-guard.md | 10 +-- .../faq-md-app-guard.yml | 8 +- .../install-md-app-guard.md | 6 +- .../md-app-guard-browser-extension.md | 89 ------------------- .../md-app-guard-overview.md | 7 +- .../reqs-md-app-guard.md | 8 +- .../test-scenarios-md-app-guard.md | 10 +-- .../includes/mdag-edge-deprecation-notice.md | 4 +- 10 files changed, 34 insertions(+), 124 deletions(-) delete mode 100644 windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-browser-extension.md diff --git a/.openpublishing.redirection.windows-security.json b/.openpublishing.redirection.windows-security.json index 471c829ed5..93967da44e 100644 --- a/.openpublishing.redirection.windows-security.json +++ b/.openpublishing.redirection.windows-security.json @@ -52,7 +52,12 @@ }, { "source_path": "windows/security//threat-protection/microsoft-defender-application-guard/md-app-guard-browser-extension.md", - "redirect_url": "/windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-browser-extension", + "redirect_url": "/windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-overview", + "redirect_document_id": false + }, + { + "source_path": "windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-browser-extension.md", + "redirect_url": "/windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-overview", "redirect_document_id": false }, { diff --git a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/TOC.yml b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/TOC.yml index e235cf65ec..74c7012d07 100644 --- a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/TOC.yml +++ b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/TOC.yml @@ -1,6 +1,6 @@ - name: Microsoft Defender Application Guard href: md-app-guard-overview.md - items: + items: - name: System requirements href: reqs-md-app-guard.md - name: Install Application Guard @@ -9,10 +9,5 @@ href: configure-md-app-guard.md - name: Test scenarios href: test-scenarios-md-app-guard.md - - name: Microsoft Defender Application Guard Extension - href: md-app-guard-browser-extension.md - name: Application Guard FAQ - href: faq-md-app-guard.yml -- name: Windows security - href: /windows/security/ - + href: faq-md-app-guard.yml \ No newline at end of file diff --git a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/configure-md-app-guard.md b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/configure-md-app-guard.md index 2a40f36ead..e5279d14fa 100644 --- a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/configure-md-app-guard.md +++ b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/configure-md-app-guard.md @@ -2,7 +2,7 @@ title: Configure the Group Policy settings for Microsoft Defender Application Guard description: Learn about the available Group Policy settings for Microsoft Defender Application Guard. ms.localizationpriority: medium -ms.date: 12/12/2023 +ms.date: 07/11/2024 ms.topic: how-to --- @@ -17,11 +17,11 @@ Application Guard uses both network isolation and application-specific settings. [!INCLUDE [microsoft-defender-application-guard-mdag-for-edge-enterprise-mode-and-enterprise-management](../../../../../includes/licensing/microsoft-defender-application-guard-mdag-for-edge-enterprise-mode-and-enterprise-management.md)] -For more information about Microsoft Defender Application Guard (MDAG) for Edge in stand-alone mode, see [Microsoft Defender Application Guard overview](md-app-guard-overview.md). +For more information about Microsoft Defender Application Guard (MDAG) for Microsoft Edge in stand-alone mode, see [Microsoft Defender Application Guard overview](md-app-guard-overview.md). ## Network isolation settings -These settings, located at `Computer Configuration\Administrative Templates\Network\Network Isolation`, help you define and manage your organization's network boundaries. Application Guard uses this information to automatically transfer any requests to access the non-corporate resources into the Application Guard container. +These settings, located at `Computer Configuration\Administrative Templates\Network\Network Isolation`, help you define and manage your organization's network boundaries. Application Guard uses this information to automatically transfer any requests to access the noncorporate resources into the Application Guard container. > [!NOTE] > For Windows 10, if you have KB5014666 installed, and for Windows 11, if you have KB5014668 installed, you don't need to configure network isolation policy to enable Application Guard for Microsoft Edge in managed mode. @@ -33,7 +33,7 @@ These settings, located at `Computer Configuration\Administrative Templates\Netw |-----------|------------------|-----------| |Private network ranges for apps | At least Windows Server 2012, Windows 8, or Windows RT| A comma-separated list of IP address ranges that are in your corporate network. Included endpoints or endpoints that are included within a specified IP address range, are rendered using Microsoft Edge and won't be accessible from the Application Guard environment.| |Enterprise resource domains hosted in the cloud| At least Windows Server 2012, Windows 8, or Windows RT|A pipe-separated (`|`) list of your domain cloud resources. Included endpoints are rendered using Microsoft Edge and won't be accessible from the Application Guard environment.

This list supports the wildcards detailed in the [Network isolation settings wildcards](#network-isolation-settings-wildcards) table.| -|Domains categorized as both work and personal| At least Windows Server 2012, Windows 8, or Windows RT|A comma-separated list of domain names used as both work or personal resources. Included endpoints are rendered using Microsoft Edge and will be accessible from the Application Guard and regular Edge environment.

This list supports the wildcards detailed in the [Network isolation settings wildcards](#network-isolation-settings-wildcards) table.| +|Domains categorized as both work and personal| At least Windows Server 2012, Windows 8, or Windows RT|A comma-separated list of domain names used as both work or personal resources. Included endpoints are rendered using Microsoft Edge and will be accessible from the Application Guard and regular Microsoft Edge environment.

This list supports the wildcards detailed in the [Network isolation settings wildcards](#network-isolation-settings-wildcards) table.| ## Network isolation settings wildcards @@ -52,7 +52,7 @@ These settings, located at `Computer Configuration\Administrative Templates\Wind |Configure Microsoft Defender Application Guard clipboard settings|Windows 10 Enterprise, 1709 or higher

Windows 10 Education, 1809 or higher

Windows 11 Enterprise and Education|Determines whether Application Guard can use the clipboard functionality.|**Enabled.** This is effective only in managed mode. Turns on the clipboard functionality and lets you choose whether to additionally:
- Disable the clipboard functionality completely when Virtualization Security is enabled.
- Enable copying of certain content from Application Guard into Microsoft Edge.
- Enable copying of certain content from Microsoft Edge into Application Guard. **Important:** Allowing copied content to go from Microsoft Edge into Application Guard can cause potential security risks and isn't recommended.

**Disabled or not configured.** Completely turns off the clipboard functionality for Application Guard.| |Configure Microsoft Defender Application Guard print settings|Windows 10 Enterprise, 1709 or higher

Windows 10 Education, 1809 or higher

Windows 11 Enterprise and Education|Determines whether Application Guard can use the print functionality.|**Enabled.** This is effective only in managed mode. Turns on the print functionality and lets you choose whether to additionally:
- Enable Application Guard to print into the XPS format.
- Enable Application Guard to print into the PDF format.
- Enable Application Guard to print to locally attached printers.
- Enable Application Guard to print from previously connected network printers. Employees can't search for other printers.

**Disabled or not configured.** Completely turns Off the print functionality for Application Guard.| |Allow Persistence|Windows 10 Enterprise, 1709 or higher

Windows 10 Education, 1809 or higher

Windows 11 Enterprise and Education|Determines whether data persists across different sessions in Microsoft Defender Application Guard.|**Enabled.** This is effective only in managed mode. Application Guard saves user-downloaded files and other items (such as, cookies, Favorites, and so on) for use in future Application Guard sessions.

**Disabled or not configured.** All user data within Application Guard is reset between sessions.

**NOTE**: If you later decide to stop supporting data persistence for your employees, you can use our Windows-provided utility to reset the container and to discard any personal data.

**To reset the container:**
1. Open a command-line program and navigate to `Windows/System32`.
2. Type `wdagtool.exe cleanup`. The container environment is reset, retaining only the employee-generated data.
3. Type `wdagtool.exe cleanup RESET_PERSISTENCE_LAYER`. The container environment is reset, including discarding all employee-generated data.| -|Turn on Microsoft Defender Application Guard in Managed Mode|Windows 10 Enterprise, 1709 or higher

Windows 10 Education, 1809 or higher

Windows 11 Enterprise and Education|Determines whether to turn on Application Guard for Microsoft Edge and Microsoft Office.|**Enabled.** Turns on Application Guard for Microsoft Edge and/or Microsoft Office, honoring the network isolation settings, rendering untrusted content in the Application Guard container. Application Guard won't actually be turned on unless the required prerequisites and network isolation settings are already set on the device. Available options:
- Enable Microsoft Defender Application Guard only for Microsoft Edge
- Enable Microsoft Defender Application Guard only for Microsoft Office
- Enable Microsoft Defender Application Guard for both Microsoft Edge and Microsoft Office

**Disabled.** Turns off Application Guard, allowing all apps to run in Microsoft Edge and Microsoft Office.

**Note:** For Windows 10, if you have KB5014666 installed, and for Windows 11, if you have KB5014668 installed, you are no longer required to configure network isolation policy to enable Application Guard for Edge.| +|Turn on Microsoft Defender Application Guard in Managed Mode|Windows 10 Enterprise, 1709 or higher

Windows 10 Education, 1809 or higher

Windows 11 Enterprise and Education|Determines whether to turn on Application Guard for Microsoft Edge and Microsoft Office.|**Enabled.** Turns on Application Guard for Microsoft Edge and/or Microsoft Office, honoring the network isolation settings, rendering untrusted content in the Application Guard container. Application Guard won't actually be turned on unless the required prerequisites and network isolation settings are already set on the device. Available options:
- Enable Microsoft Defender Application Guard only for Microsoft Edge
- Enable Microsoft Defender Application Guard only for Microsoft Office
- Enable Microsoft Defender Application Guard for both Microsoft Edge and Microsoft Office

**Disabled.** Turns off Application Guard, allowing all apps to run in Microsoft Edge and Microsoft Office.

**Note:** For Windows 10, if you have KB5014666 installed, and for Windows 11, if you have KB5014668 installed, you're no longer required to configure network isolation policy to enable Application Guard for Microsoft Edge.| |Allow files to download to host operating system|Windows 10 Enterprise or Pro, 1803 or higher

Windows 10 Education, 1809 or higher

Windows 11 Enterprise or Pro or Education|Determines whether to save downloaded files to the host operating system from the Microsoft Defender Application Guard container.|**Enabled.** Allows users to save downloaded files from the Microsoft Defender Application Guard container to the host operating system. This action creates a share between the host and container that also allows for uploads from the host to the Application Guard container.

**Disabled or not configured.** Users aren't able to save downloaded files from Application Guard to the host operating system.| |Allow hardware-accelerated rendering for Microsoft Defender Application Guard|Windows 10 Enterprise, 1709 or higher

Windows 10 Education, 1809 or higher

Windows 11 Enterprise and Education|Determines whether Microsoft Defender Application Guard renders graphics using hardware or software acceleration.|**Enabled.** This is effective only in managed mode. Microsoft Defender Application Guard uses Hyper-V to access supported, high-security rendering graphics hardware (GPUs). These GPUs improve rendering performance and battery life while using Microsoft Defender Application Guard, particularly for video playback and other graphics-intensive use cases. If this setting is enabled without connecting any high-security rendering graphics hardware, Microsoft Defender Application Guard will automatically revert to software-based (CPU) rendering. **Important:** Enabling this setting with potentially compromised graphics devices or drivers might pose a risk to the host device.

**Disabled or not configured.** Microsoft Defender Application Guard uses software-based (CPU) rendering and won't load any third-party graphics drivers or interact with any connected graphics hardware.| |Allow camera and microphone access in Microsoft Defender Application Guard|Windows 10 Enterprise, 1709 or higher

Windows 10 Education, 1809 or higher

Windows 11 Enterprise and Education|Determines whether to allow camera and microphone access inside Microsoft Defender Application Guard.|**Enabled.** This is effective only in managed mode. Applications inside Microsoft Defender Application Guard are able to access the camera and microphone on the user's device. **Important:** Enabling this policy with a potentially compromised container could bypass camera and microphone permissions and access the camera and microphone without the user's knowledge.

**Disabled or not configured.** Applications inside Microsoft Defender Application Guard are unable to access the camera and microphone on the user's device.| diff --git a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/faq-md-app-guard.yml b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/faq-md-app-guard.yml index 43f2f31197..b539097c6d 100644 --- a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/faq-md-app-guard.yml +++ b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/faq-md-app-guard.yml @@ -4,7 +4,7 @@ metadata: description: Learn about the commonly asked questions and answers for Microsoft Defender Application Guard. ms.localizationpriority: medium ms.topic: faq - ms.date: 12/12/2023 + ms.date: 07/11/2024 title: Frequently asked questions - Microsoft Defender Application Guard summary: | @@ -211,7 +211,7 @@ sections: - question: | What does the _Allow users to trust files that open in Microsoft Defender Application Guard_ option in the Group policy do? answer: | - This policy was present in Windows 10 prior to version 2004. It was removed from later versions of Windows as it doesn't enforce anything for either Edge or Office. + This policy was present in Windows 10 prior to version 2004. It was removed from later versions of Windows as it doesn't enforce anything for either Microsoft Edge or Office. - question: | How do I open a support ticket for Microsoft Defender Application Guard? @@ -220,9 +220,9 @@ sections: - Under the Product Family, select Windows. Select the product and the product version you need help with. For the category that best describes the issue, select, **Windows Security Technologies**. In the final option, select **Windows Defender Application Guard**. - question: | - Is there a way to enable or disable the behavior where the host Edge tab auto-closes when navigating to an untrusted site? + Is there a way to enable or disable the behavior where the host Microsoft Edge tab auto-closes when navigating to an untrusted site? answer: | - Yes. Use this Edge flag to enable or disable this behavior: `--disable-features="msWdagAutoCloseNavigatedTabs"` + Yes. Use this Microsoft Edge flag to enable or disable this behavior: `--disable-features="msWdagAutoCloseNavigatedTabs"` additionalContent: | diff --git a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/install-md-app-guard.md b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/install-md-app-guard.md index 33375dd2a1..beefaa14bb 100644 --- a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/install-md-app-guard.md +++ b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/install-md-app-guard.md @@ -1,7 +1,7 @@ --- title: Enable hardware-based isolation for Microsoft Edge description: Learn about the Microsoft Defender Application Guard modes (Standalone or Enterprise-managed), and how to install Application Guard in your enterprise. -ms.date: 12/12/2023 +ms.date: 07/11/2024 ms.topic: how-to --- @@ -31,7 +31,7 @@ Standalone mode is applicable for: ## Enterprise-managed mode -You and your security department can define your corporate boundaries by explicitly adding trusted domains and by customizing the Application Guard experience to meet and enforce your needs on employee devices. Enterprise-managed mode also automatically redirects any browser requests to add non-enterprise domain(s) in the container. +You and your security department can define your corporate boundaries by explicitly adding trusted domains and by customizing the Application Guard experience to meet and enforce your needs on employee devices. Enterprise-managed mode also automatically redirects any browser requests to add nonenterprise domain(s) in the container. Enterprise-managed mode is applicable for: @@ -93,7 +93,7 @@ Application Guard functionality is turned off by default. However, you can quick To learn more about scope tags, see [Use role-based access control (RBAC) and scope tags for distributed IT](/mem/intune/fundamentals/scope-tags). -1. In the **Assignments** page, select the users or groups that will receive the policy. Select **Next**. +1. In the **Assignments** page, select the users or groups that receive the policy. Select **Next**. To learn more about assigning policies, see [Assign policies in Microsoft Intune](/mem/intune/configuration/device-profile-assign). diff --git a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-browser-extension.md b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-browser-extension.md deleted file mode 100644 index f841705678..0000000000 --- a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-browser-extension.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Microsoft Defender Application Guard Extension -description: Learn about the Microsoft Defender Application Guard browser extension, which extends Application Guard's protection to more web browsers. -ms.localizationpriority: medium -ms.date: 12/12/2023 -ms.topic: conceptual ---- - -# Microsoft Defender Application Guard Extension - -[!INCLUDE [mdag-edge-deprecation-notice](../../../includes/mdag-edge-deprecation-notice.md)] - -[Microsoft Defender Application Guard Extension](https://www.microsoft.com/security/blog/2019/05/23/new-browser-extensions-for-integrating-microsofts-hardware-based-isolation/) is a web browser add-on available for [Chrome](https://chrome.google.com/webstore/detail/application-guard-extensi/mfjnknhkkiafjajicegabkbimfhplplj/) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/application-guard-extension/). - -[Microsoft Defender Application Guard](md-app-guard-overview.md) provides Hyper-V isolation on Windows 10 and Windows 11, to protect users from potentially harmful content on the web. The extension helps Application Guard protect users running other web browsers. - -> [!TIP] -> Application Guard, by default, offers [native support](/deployedge/microsoft-edge-security-windows-defender-application-guard) to both Microsoft Edge and Internet Explorer. These browsers do not need the extension described here for Application Guard to protect them. - -Microsoft Defender Application Guard Extension defends devices in your organization from advanced attacks, by redirecting untrusted websites to an isolated version of [Microsoft Edge](https://www.microsoft.com/edge). If an untrusted website turns out to be malicious, it remains within Application Guard's secure container, keeping the device protected. - -## Prerequisites - -Microsoft Defender Application Guard Extension works with the following editions of Windows 10, version 1809 or later: - -- Windows 10 Professional -- Windows 10 Enterprise -- Windows 10 Education -- Windows 11 - -Application Guard itself is required for the extension to work. It has its own set of [requirements](reqs-md-app-guard.md). Check the Application Guard [installation guide](install-md-app-guard.md) for further steps, if you don't have it installed already. - -## Installing the extension - -Application Guard can be run under [managed mode](install-md-app-guard.md#enterprise-managed-mode) or [standalone mode](install-md-app-guard.md#standalone-mode). The main difference between the two modes is whether policies have been set to define the organization's boundaries. - -Enterprise administrators running Application Guard under managed mode should first define Application Guard's [network isolation settings](configure-md-app-guard.md#network-isolation-settings), so a set of enterprise sites is already in place. - -From there, the steps for installing the extension are similar whether Application Guard is running in managed or standalone mode. - -1. On the local device, download and install the Application Guard extension for Google [Chrome](https://chrome.google.com/webstore/detail/application-guard-extensi/mfjnknhkkiafjajicegabkbimfhplplj/) and/or Mozilla [Firefox](https://addons.mozilla.org/en-US/firefox/addon/application-guard-extension/). -1. Install the [Microsoft Defender Application Guard companion app](https://www.microsoft.com/p/windows-defender-application-guard-companion/9n8gnlc8z9c8#activetab=pivot:overviewtab) from the Microsoft Store. This companion app enables Application Guard to work with web browsers other than Microsoft Edge or Internet Explorer. -1. Restart the device. - -### Recommended browser group policies - -Both Chrome and Firefox have their own browser-specific group policies. We recommend that admins use the following policy settings. - -#### Chrome policies - -These policies can be found along the filepath, `Software\Policies\Google\Chrome\`, with each policy name corresponding to the file name. For example, `IncognitoModeAvailability` is located at `Software\Policies\Google\Chrome\IncognitoModeAvailability`. - -Policy name | Values | Recommended setting | Reason --|-|-|- -[IncognitoModeAvailability](https://cloud.google.com/docs/chrome-enterprise/policies/?policy=IncognitoModeAvailability) | `0` = Enabled
`1` = Disabled
`2` = Forces pages to only open in Incognito mode | Disabled | This policy allows users to start Chrome in Incognito mode. In this mode, all extensions are turned off by default. -[BrowserGuestModeEnabled](https://cloud.google.com/docs/chrome-enterprise/policies/?policy=BrowserGuestModeEnabled) | `false` or `0` = Disabled
`true`, `1`, or not configured = Enabled | Disabled | This policy allows users to sign in as *Guest*, which opens a session in Incognito mode. In this mode, all extensions are turned off by default. -[BackgroundModeEnabled](https://cloud.google.com/docs/chrome-enterprise/policies/?policy=BackgroundModeEnabled) | `false` or `0` = Disabled
`true` or `1` = Enabled

**Note:** If this policy isn't set, the user can enable or disable background mode through local browser settings. | Enabled | This policy keeps Chrome running in the background, ensuring that navigation is always passed to the extension. -[ExtensionSettings](https://cloud.google.com/docs/chrome-enterprise/policies/?policy=ExtensionSettings) | This policy accepts a dictionary that configures multiple other management settings for Chrome. See the [Google Cloud documentation](https://cloud.google.com/docs/chrome-enterprise/policies/?policy=ExtensionSettings) for complete schema. | Include an entry for `force_installed` | This policy prevents users from manually removing the extension. - -#### Firefox policies - -These policies can be found along the filepath, `Software\Policies\Mozilla\Firefox\`, with each policy name corresponding to the file name. Foe example, `DisableSafeMode` is located at `Software\Policies\Mozilla\Firefox\DisableSafeMode`. - -Policy name | Values | Recommended setting | Reason --|-|-|- -[DisableSafeMode](https://github.com/mozilla/policy-templates/blob/master/README.md#DisableSafeMode) | `false` or `0` = Safe mode is enabled
`true` or `1` = Safe mode is disabled | The policy is enabled and Safe mode isn't allowed to run. | Safe mode can allow users to circumvent Application Guard -[BlockAboutConfig](https://github.com/mozilla/policy-templates/blob/master/README.md#BlockAboutConfig) | `false` or `0` = User access to `about:config` is allowed
`true` or `1` = User access to `about:config` isn't allowed | The policy is enabled and access to `about:config` isn't allowed. | `About:config` is a special page within Firefox that offers control over many settings that may compromise security -[Extensions - Locked](https://github.com/mozilla/policy-templates/blob/master/README.md#Extensions) | This setting accepts a list of UUIDs for extensions. You can find these extensions by searching `extensions.webextensions.uuids` within the `about:config` page) | Software\Policies\Mozilla\Firefox\Extensions\Locked\1 = "`ApplicationGuardRel@microsoft.com`" | This setting allows you to lock the extension, so the user can't disable or uninstall it. - -## Troubleshooting guide - - - -Error message | Cause | Actions --|-|- -Application Guard undetermined state | The extension was unable to communicate with the companion app during the last information request. | 1. Install the [companion app](https://www.microsoft.com/p/windows-defender-application-guard-companion/9n8gnlc8z9c8?activetab=pivot:overviewtab) and reboot
2. If the companion app is already installed, reboot and see if that resolves the error
3. If you still see the error after rebooting, uninstall and reinstall the companion app
4. Check for updates in both the Microsoft store and the respective web store for the affected browser -ExceptionThrown | An unexpected exception was thrown. | 1. [File a bug](https://aka.ms/wdag-fb)
2. Retry the operation -Failed to determine if Application Guard is enabled | The extension was able to communicate with the companion app, but the information request failed in the app. | 1. Restart the browser
2. Check for updates in both the Microsoft store and the respective web store for the affected browser -Launch in WDAG failed with a companion communication error | The extension couldn't talk to the companion app, but was able to at the beginning of the session. This error can be caused by the companion app being uninstalled while Chrome was running. | 1. Make sure the companion app is installed
2. If the companion app is installed, reboot and see if that resolves the error
3. If you still see the error after rebooting, uninstall and reinstall the companion app
4. Check for updates in both the Microsoft store and the respective web store for the affected browser -Main page navigation caught an unexpected error | An unexpected exception was thrown during the main page navigation. | 1. [File a bug](https://aka.ms/wdag-fb)
2. Retry the operation -Process trust response failed with a companion communication error | The extension couldn't talk to the companion app, but was able to at the beginning of the session. This error can be caused by the companion app being uninstalled while Chrome was running.| 1. Make sure the companion app is installed.
2. If the companion app is installed, reboot and see if that resolves the error
3. If you still see the error after rebooting, uninstall and reinstall the companion app
4. Check for updates in both the Microsoft store and the respective web store for the affected browser -Protocol out of sync | The extension and native app can't communicate with each other. This error is likely caused by one being updated without supporting the protocol of the other. | Check for updates in both the Microsoft store, and the web store for the affected browser -Security patch level doesn't match | Microsoft determined that there was a security issue with either the extension or the companion app, and has issued a mandatory update. | Check for updates in both the Microsoft store, and the web store for the affected browser -Unexpected response while processing trusted state | The extension was able to communicate with the companion app, but the API failed and a failure response code was sent back to the extension. | 1. [File a bug](https://aka.ms/wdag-fb)
2. Check if Microsoft Edge is working
3. Retry the operation - -## Related articles - -- [Microsoft Defender Application Guard overview](md-app-guard-overview.md) -- [Testing scenarios using Microsoft Defender Application Guard in your business or organization](test-scenarios-md-app-guard.md) diff --git a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-overview.md b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-overview.md index 109331df35..cc5f471678 100644 --- a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-overview.md +++ b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-overview.md @@ -1,7 +1,7 @@ --- title: Microsoft Defender Application Guard description: Learn about Microsoft Defender Application Guard and how it helps combat malicious content and malware out on the Internet. -ms.date: 12/12/2023 +ms.date: 07/11/2024 ms.topic: conceptual --- @@ -15,7 +15,7 @@ Microsoft Defender Application Guard (MDAG) is designed to help prevent old and For Microsoft Edge, Application Guard helps to isolate enterprise-defined untrusted sites, protecting your company while your employees browse the Internet. As an enterprise administrator, you define what is among trusted web sites, cloud resources, and internal networks. Everything not on your list is considered untrusted. If an employee goes to an untrusted site through either Microsoft Edge or Internet Explorer, Microsoft Edge opens the site in an isolated Hyper-V-enabled container. -For Microsoft Office, Application Guard helps prevents untrusted Word, PowerPoint and Excel files from accessing trusted resources. Application Guard opens untrusted files in an isolated Hyper-V-enabled container. The isolated Hyper-V container is separate from the host operating system. This container isolation means that if the untrusted site or file turns out to be malicious, the host device is protected, and the attacker can't get to your enterprise data. For example, this approach makes the isolated container anonymous, so an attacker can't get to your employee's enterprise credentials. +For Microsoft Office, Application Guard helps prevents untrusted Word, PowerPoint, and Excel files from accessing trusted resources. Application Guard opens untrusted files in an isolated Hyper-V-enabled container. The isolated Hyper-V container is separate from the host operating system. This container isolation means that if the untrusted site or file turns out to be malicious, the host device is protected, and the attacker can't get to your enterprise data. For example, this approach makes the isolated container anonymous, so an attacker can't get to your employee's enterprise credentials. ![Hardware isolation diagram.](images/appguard-hardware-isolation.png) @@ -33,7 +33,7 @@ Application Guard has been created to target several types of devices: [!INCLUDE [microsoft-defender-application-guard-mdag-for-edge-standalone-mode](../../../../../includes/licensing/microsoft-defender-application-guard-mdag-for-edge-standalone-mode.md)] -For more information about Microsoft Defender Application Guard (MDAG) for Edge enterprise mode, [Configure Microsoft Defender Application Guard policy settings.](configure-md-app-guard.md) +For more information about Microsoft Defender Application Guard (MDAG) for Microsoft Edge enterprise mode, [Configure Microsoft Defender Application Guard policy settings.](configure-md-app-guard.md) ## Related articles @@ -43,7 +43,6 @@ For more information about Microsoft Defender Application Guard (MDAG) for Edge |[Prepare and install Microsoft Defender Application Guard](install-md-app-guard.md) |Provides instructions about determining which mode to use, either Standalone or Enterprise-managed, and how to install Application Guard in your organization.| |[Configure the Group Policy settings for Microsoft Defender Application Guard](configure-md-app-guard.md) |Provides info about the available Group Policy and MDM settings.| |[Testing scenarios using Microsoft Defender Application Guard in your business or organization](test-scenarios-md-app-guard.md)|Provides a list of suggested testing scenarios that you can use to test Application Guard in your organization.| -| [Microsoft Defender Application Guard Extension for web browsers](md-app-guard-browser-extension.md) | Describes the Application Guard extension for Chrome and Firefox, including known issues, and a troubleshooting guide | | [Microsoft Defender Application Guard for Microsoft Office](/microsoft-365/security/office-365-security/install-app-guard) | Describes Application Guard for Microsoft Office, including minimum hardware requirements, configuration, and a troubleshooting guide | |[Frequently asked questions - Microsoft Defender Application Guard](faq-md-app-guard.yml)|Provides answers to frequently asked questions about Application Guard features, integration with the Windows operating system, and general configuration.| |[Use a network boundary to add trusted sites on Windows devices in Microsoft Intune](/mem/intune/configuration/network-boundary-windows)|Network boundary, a feature that helps you protect your environment from sites that aren't trusted by your organization.| diff --git a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/reqs-md-app-guard.md b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/reqs-md-app-guard.md index ff5414fd19..f8e31a69f9 100644 --- a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/reqs-md-app-guard.md +++ b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/reqs-md-app-guard.md @@ -3,7 +3,7 @@ title: System requirements for Microsoft Defender Application Guard description: Learn about the system requirements for installing and running Microsoft Defender Application Guard. ms.topic: overview ms.localizationpriority: medium -ms.date: 12/12/2023 +ms.date: 07/11/2024 --- # System requirements for Microsoft Defender Application Guard @@ -24,8 +24,8 @@ Your environment must have the following hardware to run Microsoft Defender Appl | Hardware | Description | |--------|-----------| -| 64-bit CPU|A 64-bit computer with minimum four cores (logical processors) is required for hypervisor and virtualization-based security (VBS). For more info about Hyper-V, see [Hyper-V on Windows Server 2016](/windows-server/virtualization/hyper-v/hyper-v-on-windows-server) or [Introduction to Hyper-V on Windows 10](/virtualization/hyper-v-on-windows/about/). For more info about hypervisor, see [Hypervisor Specifications](/virtualization/hyper-v-on-windows/reference/tlfs).| -| CPU virtualization extensions|Extended page tables, also called _Second Level Address Translation (SLAT)_

**AND**

One of the following virtualization extensions for VBS:
VT-x (Intel)
**OR**
AMD-V | +| 64-bit CPU|A 64-bit computer with minimum four cores (logical processors) is required for hypervisor and Virtualization-based security (VBS). For more info about Hyper-V, see [Hyper-V on Windows Server 2016](/windows-server/virtualization/hyper-v/hyper-v-on-windows-server) or [Introduction to Hyper-V on Windows 10](/virtualization/hyper-v-on-windows/about/). For more info about hypervisor, see [Hypervisor Specifications](/virtualization/hyper-v-on-windows/reference/tlfs).| +| CPU virtualization extensions|Extended page tables, also called _Second Level Address Translation (SLAT)_

**AND**

One of the following virtualization extensions for VBS:
VT-x (Intel)
**OR**
AMD-V | | Hardware memory | Microsoft requires a minimum of 8-GB RAM | | Hard disk | 5-GB free space, solid state disk (SSD) recommended | | Input/Output Memory Management Unit (IOMMU) support| Not required, but recommended | @@ -38,4 +38,4 @@ Your environment must have the following hardware to run Microsoft Defender Appl |--------|-----------| | Operating system | Windows 10 Enterprise or Education editions, version 1809 or later
Windows 10 Professional edition, version 1809 or later (only [standalone mode](/windows/security/application-security/application-isolation/microsoft-defender-application-guard/install-md-app-guard#standalone-mode) is supported)
Windows 11 Education or Enterprise editions
Windows 11 Professional edition (only [Standalone mode](/windows/security/application-security/application-isolation/microsoft-defender-application-guard/install-md-app-guard#standalone-mode) is supported) | | Browser | Microsoft Edge | -| Management system
(only for managed devices)| [Microsoft Intune](/intune/)

**OR**

[Microsoft Configuration Manager](/configmgr/)

**OR**

[Group Policy](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc753298(v=ws.11))

**OR**

Your current, company-wide, non-Microsoft mobile device management (MDM) solution. For info about non-Microsoft MDM solutions, see the documentation that came with your product. | +| Management system
(only for managed devices)| [Microsoft Intune](/intune/)

**OR**

[Microsoft Configuration Manager](/configmgr/)

**OR**

[Group Policy](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc753298(v=ws.11))

**OR**

Your current, company-wide, non-Microsoft mobile device management (MDM) solution. For info about non-Microsoft MDM solutions, see the documentation that came with your product. | diff --git a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md index f63bfb9f1f..8e457f7603 100644 --- a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md +++ b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md @@ -2,7 +2,7 @@ title: Testing scenarios with Microsoft Defender Application Guard description: Suggested testing scenarios for Microsoft Defender Application Guard, showing how it works in both Standalone and Enterprise-managed mode. ms.localizationpriority: medium -ms.date: 12/12/2023 +ms.date: 07/11/2024 ms.topic: conceptual --- @@ -39,7 +39,7 @@ How to install, set up, turn on, and configure Application Guard for Enterprise- ### Install, set up, and turn on Application Guard -Before you can use Application Guard in managed mode, you must install Windows 10 Enterprise edition, version 1709, and Windows 11 which includes the functionality. Then, you must use Group Policy to set up the required settings. +Before you can use Application Guard in managed mode, you must install Windows 10 Enterprise edition, version 1709, and Windows 11, which includes the functionality. Then, you must use Group Policy to set up the required settings. 1. [Install Application Guard](install-md-app-guard.md#install-application-guard). @@ -207,7 +207,7 @@ You have the option to change each of these settings to work with your enterpris 3. Sign out and back in to your device, opening Microsoft Edge in Application Guard again. -4. Open an application with video or audio capability in Edge. +4. Open an application with video or audio capability in Microsoft Edge. 5. Check that the camera and microphone work as expected. @@ -223,7 +223,7 @@ You have the option to change each of these settings to work with your enterpris ## Application Guard Extension for third-party web browsers -The [Application Guard Extension](md-app-guard-browser-extension.md) available for Chrome and Firefox allows Application Guard to protect users even when they are running a web browser other than Microsoft Edge or Internet Explorer. +The [Application Guard Extension](md-app-guard-browser-extension.md) available for Chrome and Firefox allows Application Guard to protect users even when they're running a web browser other than Microsoft Edge or Internet Explorer. Once a user has the extension and its companion app installed on their enterprise device, you can run through the following scenarios. @@ -232,7 +232,7 @@ Once a user has the extension and its companion app installed on their enterpris 2. Navigate to an organizational website. In other words, an internal website maintained by your organization. You might see this evaluation page for an instant before the site is fully loaded. ![The evaluation page displayed while the page is being loaded, explaining that the user must wait.](images/app-guard-chrome-extension-evaluation-page.png) -3. Navigate to a non-enterprise, external website site, such as [www.bing.com](https://www.bing.com). The site should be redirected to Microsoft Defender Application Guard Edge. +3. Navigate to a nonenterprise, external website site, such as [www.bing.com](https://www.bing.com). The site should be redirected to Microsoft Defender Application Guard Edge. ![A non-enterprise website being redirected to an Application Guard container -- the text displayed explains that the page is being opened in Application Guard for Microsoft Edge.](images/app-guard-chrome-extension-launchIng-edge.png) 4. Open a new Application Guard window, by selecting the Microsoft Defender Application Guard icon, then **New Application Guard Window** diff --git a/windows/security/includes/mdag-edge-deprecation-notice.md b/windows/security/includes/mdag-edge-deprecation-notice.md index cf4028ac1c..c4e5f409eb 100644 --- a/windows/security/includes/mdag-edge-deprecation-notice.md +++ b/windows/security/includes/mdag-edge-deprecation-notice.md @@ -1,10 +1,10 @@ --- author: vinaypamnani-msft ms.author: vinpa -ms.date: 04/23/2024 +ms.date: 07/11/2024 ms.topic: include --- > [!NOTE] > - Microsoft Defender Application Guard, including the [Windows Isolated App Launcher APIs](/windows/win32/api/isolatedapplauncher/), will be deprecated for Microsoft Edge for Business and [will no longer be updated](/windows/whats-new/feature-lifecycle). Please download the [Microsoft Edge For Business Security Whitepaper](https://edgestatic.azureedge.net/shared/cms/pdfs/Microsoft_Edge_Security_Whitepaper_v2.pdf) to learn more about Edge for Business security capabilities. -> - Because Application Guard is deprecated there will not be a migration to Edge Manifest V3. The corresponding extensions and associated [Windows Store app](https://apps.microsoft.com/detail/9N8GNLC8Z9C8) will not be available after May 2024. This affects the following browsers: [*Application Guard Extension - Chrome*](https://chromewebstore.google.com/detail/application-guard-extensi/mfjnknhkkiafjajicegabkbimfhplplj) and [*Application Guard Extension - Firefox*](https://addons.mozilla.org/firefox/addon/application-guard-extension/). If you want to block unprotected browsers until you are ready to retire MDAG usage in your enterprise, we recommend using AppLocker policies or [Microsoft Edge management service](/deployedge/microsoft-edge-management-service). For more information, see [Microsoft Edge and Microsoft Defender Application Guard](/deployedge/microsoft-edge-security-windows-defender-application-guard). \ No newline at end of file +> - Because Application Guard is deprecated there will not be a migration to Edge Manifest V3. The corresponding browser extensions and associated [Windows Store app](https://apps.microsoft.com/detail/9N8GNLC8Z9C8) will not be available after May 2024. If you want to block unprotected browsers until you are ready to retire MDAG usage in your enterprise, we recommend using AppLocker policies or [Microsoft Edge management service](/deployedge/microsoft-edge-management-service). For more information, see [Microsoft Edge and Microsoft Defender Application Guard](/deployedge/microsoft-edge-security-windows-defender-application-guard). \ No newline at end of file From fb135f390739b2e68b904006018be7e6954f9e7d Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Thu, 11 Jul 2024 13:01:17 -0400 Subject: [PATCH 037/108] updates --- ...ide-entry-points-for-fast-user-switching.md | 18 ++++++++++++++++++ windows/configuration/start/policy-settings.md | 6 +++++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md diff --git a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md new file mode 100644 index 0000000000..32369ab006 --- /dev/null +++ b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md @@ -0,0 +1,18 @@ +--- +author: paolomatarazzo +ms.author: paoloma +ms.date: 07/11/2024 +ms.topic: include +--- + +### Hide entry points for Fast User Switching + +With this policy setting you can hide the **Switch User** interface in the Logon UI, the Start menu and the Task Manager: + +- If you enable this policy setting, the Switch User interface is hidden from the user who is attempting to log on or is logged on to the computer that has this policy applied +- If you disable or do not configure this policy setting, the Switch User interface is accessible to the user in the three locations + +| | Path | +|--|--| +| **CSP** | `./Device/Vendor/MSFT/Policy/Config/WindowsLogon/`[HideFastUserSwitching](/windows/client-management/mdm/policy-csp-windowslogon#hidefastuserswitching) | +| **GPO** | **User Configuration** > **Administrative Templates** > **Logon** > **Hide entry points for Fast User Switching** | diff --git a/windows/configuration/start/policy-settings.md b/windows/configuration/start/policy-settings.md index b9a8351ca5..7a84522c4a 100644 --- a/windows/configuration/start/policy-settings.md +++ b/windows/configuration/start/policy-settings.md @@ -148,6 +148,7 @@ Select one of the tabs to see the list of available settings: |[Hide **Lock**](#hide-lock)|✅|❌| |[Hide **Sign out**](#hide-sign-out)|✅|✅| |[Hide **Switch account**](#hide-switch-account)|✅|❌| +|[Hide entry points for Fast User Switching](#hide-entry-points-for-fast-user-switching)|✅|✅| |[Hide user tile](#hide-user-tile)|✅|❌| ::: zone-end @@ -159,7 +160,10 @@ Select one of the tabs to see the list of available settings: [!INCLUDE [hide-signout](includes/hide-signout.md)] [!INCLUDE [hide-switch-user](includes/hide-switch-account.md)] -[!INCLUDE [hide-switch-user](includes/hide-user-tile.md)] +::: zone pivot="windows-10" +[!INCLUDE [hide-lock](includes/hide-entry-points-for-fast-user-switching.md)] +::: zone-end +[!INCLUDE [hide-user-tile](includes/hide-user-tile.md)] #### [:::image type="icon" source="../images/icons/folder.svg"::: **Pinned folders**](#tab/folders) From 1a80e0696441b0de85b5a783965bd28211f171f3 Mon Sep 17 00:00:00 2001 From: "Vinay Pamnani (from Dev Box)" Date: Thu, 11 Jul 2024 11:07:13 -0600 Subject: [PATCH 038/108] Update note --- windows/security/includes/mdag-edge-deprecation-notice.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/includes/mdag-edge-deprecation-notice.md b/windows/security/includes/mdag-edge-deprecation-notice.md index c4e5f409eb..150cffe43f 100644 --- a/windows/security/includes/mdag-edge-deprecation-notice.md +++ b/windows/security/includes/mdag-edge-deprecation-notice.md @@ -7,4 +7,4 @@ ms.topic: include > [!NOTE] > - Microsoft Defender Application Guard, including the [Windows Isolated App Launcher APIs](/windows/win32/api/isolatedapplauncher/), will be deprecated for Microsoft Edge for Business and [will no longer be updated](/windows/whats-new/feature-lifecycle). Please download the [Microsoft Edge For Business Security Whitepaper](https://edgestatic.azureedge.net/shared/cms/pdfs/Microsoft_Edge_Security_Whitepaper_v2.pdf) to learn more about Edge for Business security capabilities. -> - Because Application Guard is deprecated there will not be a migration to Edge Manifest V3. The corresponding browser extensions and associated [Windows Store app](https://apps.microsoft.com/detail/9N8GNLC8Z9C8) will not be available after May 2024. If you want to block unprotected browsers until you are ready to retire MDAG usage in your enterprise, we recommend using AppLocker policies or [Microsoft Edge management service](/deployedge/microsoft-edge-management-service). For more information, see [Microsoft Edge and Microsoft Defender Application Guard](/deployedge/microsoft-edge-security-windows-defender-application-guard). \ No newline at end of file +> - Because Application Guard is deprecated there will not be a migration to Edge Manifest V3. The corresponding browser extensions and associated Windows Store app are no longer available. If you want to block unprotected browsers until you are ready to retire MDAG usage in your enterprise, we recommend using AppLocker policies or [Microsoft Edge management service](/deployedge/microsoft-edge-management-service). For more information, see [Microsoft Edge and Microsoft Defender Application Guard](/deployedge/microsoft-edge-security-windows-defender-application-guard). \ No newline at end of file From abd0adf750c465154092a350ac03994f606dbce4 Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Thu, 11 Jul 2024 13:09:31 -0400 Subject: [PATCH 039/108] chore: Update wording in hide-entry-points-for-fast-user-switching.md --- .../includes/hide-entry-points-for-fast-user-switching.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md index 32369ab006..720fd5d721 100644 --- a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md +++ b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md @@ -7,10 +7,10 @@ ms.topic: include ### Hide entry points for Fast User Switching -With this policy setting you can hide the **Switch User** interface in the Logon UI, the Start menu and the Task Manager: +With this policy setting you can hide the **Switch User** interface from the sign in screen, the Start menu, and the Task Manager: -- If you enable this policy setting, the Switch User interface is hidden from the user who is attempting to log on or is logged on to the computer that has this policy applied -- If you disable or do not configure this policy setting, the Switch User interface is accessible to the user in the three locations +- If enabled, the **Switch User** option is hidden +- If disabled or not configured, the **Switch User** option is available to the user in the three locations | | Path | |--|--| From 91ae797ae8c766f1ab0e3f51f28a8dc992147f9e Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Thu, 11 Jul 2024 13:45:28 -0400 Subject: [PATCH 040/108] chore: Update wording in hide-entry-points-for-fast-user-switching.md --- .../includes/hide-entry-points-for-fast-user-switching.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md index 720fd5d721..807451ecc4 100644 --- a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md +++ b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md @@ -10,9 +10,11 @@ ms.topic: include With this policy setting you can hide the **Switch User** interface from the sign in screen, the Start menu, and the Task Manager: - If enabled, the **Switch User** option is hidden -- If disabled or not configured, the **Switch User** option is available to the user in the three locations +- If disabled or not configured, the **Switch User** option is available to the user in the sign in screen, the Start menu, and the Task Manager | | Path | |--|--| | **CSP** | `./Device/Vendor/MSFT/Policy/Config/WindowsLogon/`[HideFastUserSwitching](/windows/client-management/mdm/policy-csp-windowslogon#hidefastuserswitching) | | **GPO** | **User Configuration** > **Administrative Templates** > **Logon** > **Hide entry points for Fast User Switching** | + +To learn more, see [Fast User Switching](/windows/win32/shell/fast-user-switching). From 730760c67cc48be893f6bfa7e1e2ca89b3ced41e Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Thu, 11 Jul 2024 17:21:55 -0400 Subject: [PATCH 041/108] update --- .../includes/hide-entry-points-for-fast-user-switching.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md index 807451ecc4..412516a39f 100644 --- a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md +++ b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md @@ -7,10 +7,10 @@ ms.topic: include ### Hide entry points for Fast User Switching -With this policy setting you can hide the **Switch User** interface from the sign in screen, the Start menu, and the Task Manager: +With this policy setting you can hide the list of user accounts from the sign in screen, the Start menu, and the Task Manager: -- If enabled, the **Switch User** option is hidden -- If disabled or not configured, the **Switch User** option is available to the user in the sign in screen, the Start menu, and the Task Manager +- If enabled, the list of signed in users is hidden +- If disabled or not configured, the list of currently signed in users is available in the sign in screen, the Start menu, and the Task Manager | | Path | |--|--| From 3103b7c5beca03e347afd82b52cde2a1b9142e1f Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Fri, 12 Jul 2024 10:50:44 -0400 Subject: [PATCH 042/108] chore: Update wording in hide-entry-points-for-fast-user-switching.md --- .../includes/hide-entry-points-for-fast-user-switching.md | 8 ++++---- .../{hide-switch-account.md => hide-switch-user.md} | 7 ++++++- windows/configuration/start/policy-settings.md | 6 +++--- 3 files changed, 13 insertions(+), 8 deletions(-) rename windows/configuration/start/includes/{hide-switch-account.md => hide-switch-user.md} (53%) diff --git a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md index 412516a39f..7510bc272f 100644 --- a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md +++ b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md @@ -7,14 +7,14 @@ ms.topic: include ### Hide entry points for Fast User Switching -With this policy setting you can hide the list of user accounts from the sign in screen, the Start menu, and the Task Manager: +With this policy setting you can prevent multiple users to sign in at the same time, using the Fast User Switching feature. -- If enabled, the list of signed in users is hidden -- If disabled or not configured, the list of currently signed in users is available in the sign in screen, the Start menu, and the Task Manager +- If enabled, only one user can sign in at a time. The list of local users and currently signed in users is hidden from the sign in screen, the Start menu, and the Task Manager. If multiple users want to sign in, the current user must sign out first +- If disabled or not configured, multiple users can sign in at the same time. The list of local users and currently signed in users is available in the sign in screen, the Start menu, and the Task Manager. The current user doesn't have to sign out to allow another user to sign in | | Path | |--|--| | **CSP** | `./Device/Vendor/MSFT/Policy/Config/WindowsLogon/`[HideFastUserSwitching](/windows/client-management/mdm/policy-csp-windowslogon#hidefastuserswitching) | -| **GPO** | **User Configuration** > **Administrative Templates** > **Logon** > **Hide entry points for Fast User Switching** | +| **GPO** | **Computer Configuration** > **Administrative Templates** > **System** > **Logon** > **Hide entry points for Fast User Switching** | To learn more, see [Fast User Switching](/windows/win32/shell/fast-user-switching). diff --git a/windows/configuration/start/includes/hide-switch-account.md b/windows/configuration/start/includes/hide-switch-user.md similarity index 53% rename from windows/configuration/start/includes/hide-switch-account.md rename to windows/configuration/start/includes/hide-switch-user.md index 5bbe1c5e7a..49188235e2 100644 --- a/windows/configuration/start/includes/hide-switch-account.md +++ b/windows/configuration/start/includes/hide-switch-user.md @@ -5,7 +5,12 @@ ms.date: 04/10/2024 ms.topic: include --- -### Hide Switch account +### Hide Switch user + +With this policy setting you can hide the **Switch user** option from the user tile in the start menu: + +- If enabled, the **Switch user** option is hidden +- If disabled or not configured, the **Switch user** option is available | | Path | |--|--| diff --git a/windows/configuration/start/policy-settings.md b/windows/configuration/start/policy-settings.md index 7a84522c4a..fb6ea5fa62 100644 --- a/windows/configuration/start/policy-settings.md +++ b/windows/configuration/start/policy-settings.md @@ -137,7 +137,7 @@ Select one of the tabs to see the list of available settings: |-|-|-| |[Hide **Change account settings**](#hide-change-account-settings)|✅|❌| |[Hide **Sign out**](#hide-sign-out)|✅|✅| -|[Hide **Switch account**](#hide-switch-account)|✅|❌| +|[Hide **Switch user**](#hide-switch-user)|✅|❌| |[Hide user tile](#hide-user-tile)|✅|❌| ::: zone-end @@ -147,7 +147,7 @@ Select one of the tabs to see the list of available settings: |[Hide **Change account settings**](#hide-change-account-settings)|✅|❌| |[Hide **Lock**](#hide-lock)|✅|❌| |[Hide **Sign out**](#hide-sign-out)|✅|✅| -|[Hide **Switch account**](#hide-switch-account)|✅|❌| +|[Hide **Switch user**](#hide-switch-user)|✅|❌| |[Hide entry points for Fast User Switching](#hide-entry-points-for-fast-user-switching)|✅|✅| |[Hide user tile](#hide-user-tile)|✅|❌| ::: zone-end @@ -159,7 +159,7 @@ Select one of the tabs to see the list of available settings: ::: zone-end [!INCLUDE [hide-signout](includes/hide-signout.md)] -[!INCLUDE [hide-switch-user](includes/hide-switch-account.md)] +[!INCLUDE [hide-switch-user](includes/hide-switch-user.md)] ::: zone pivot="windows-10" [!INCLUDE [hide-lock](includes/hide-entry-points-for-fast-user-switching.md)] ::: zone-end From 767d4a34f13c414fd7aa92f720f99a3632c87c6a Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Fri, 12 Jul 2024 10:53:08 -0400 Subject: [PATCH 043/108] chore: Hide entry points for Fast User Switching --- windows/configuration/start/policy-settings.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/windows/configuration/start/policy-settings.md b/windows/configuration/start/policy-settings.md index fb6ea5fa62..5d0b4b6bf0 100644 --- a/windows/configuration/start/policy-settings.md +++ b/windows/configuration/start/policy-settings.md @@ -138,6 +138,7 @@ Select one of the tabs to see the list of available settings: |[Hide **Change account settings**](#hide-change-account-settings)|✅|❌| |[Hide **Sign out**](#hide-sign-out)|✅|✅| |[Hide **Switch user**](#hide-switch-user)|✅|❌| +|[Hide entry points for Fast User Switching](#hide-entry-points-for-fast-user-switching)|✅|✅| |[Hide user tile](#hide-user-tile)|✅|❌| ::: zone-end @@ -160,9 +161,7 @@ Select one of the tabs to see the list of available settings: [!INCLUDE [hide-signout](includes/hide-signout.md)] [!INCLUDE [hide-switch-user](includes/hide-switch-user.md)] -::: zone pivot="windows-10" [!INCLUDE [hide-lock](includes/hide-entry-points-for-fast-user-switching.md)] -::: zone-end [!INCLUDE [hide-user-tile](includes/hide-user-tile.md)] #### [:::image type="icon" source="../images/icons/folder.svg"::: **Pinned folders**](#tab/folders) From 0ca30a77ba9ac50a56d56d129c35aceb3a220262 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Sun, 14 Jul 2024 22:31:35 -0400 Subject: [PATCH 044/108] Add PR feedback --- .../do/delivery-optimization-configure.md | 48 ++++++++++-------- .../images/do-setup-improve-efficiencies.png | Bin 13944 -> 0 bytes .../do/images/do-setup-improve-efficiency.png | Bin 0 -> 15132 bytes 3 files changed, 27 insertions(+), 21 deletions(-) delete mode 100644 windows/deployment/do/images/do-setup-improve-efficiencies.png create mode 100644 windows/deployment/do/images/do-setup-improve-efficiency.png diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index b1cc42ba09..258bb90b68 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -21,23 +21,23 @@ ms.date: 07/01/2024 # Configure Delivery Optimization (DO) for Windows -## Delivery Optimization set up considerations checklist +## Delivery Optimization set up considerations Use this checklist to guide you through different aspects when modifying Delivery Optimization configurations for your environment. 1. Allow Delivery Optimization communication -2. Options to apply Delivery Optimization settings +2. Choose where to set Delivery Optimization policies 3. Network topology 4. Optimize P2P usage for your organization size 5. System resources 6. Improve efficiencies 7. Connected Cache -## 1. Allow DO communication +## 1. Allow Delivery Optimization communication :::image type="content" source="images/do-setup-allow-communication.png" alt-text="Screenshot of the considerations to allow Delivery Optimization communication." lightbox="images/do-setup-allow-communication.png"::: -Delivery Optimization is used to download Microsoft content from different sources (HTTP source, peers, and/or dedicated cache solution). It requires communication between the DO client and the service to find the best and most reliable source of content. For this technology to work, the DO client running on the Windows device must be able to reach the DO cloud service. +Delivery Optimization (DO) is used to download Microsoft content from different sources (HTTP source, peers, and/or dedicated cache solution). It requires communication between the DO client and services to find the best and most reliable sources of content. For this technology to work, the DO client running on the Windows device must be able to reach the DO cloud service. Find out more about the requirements for Firewall, Proxy, and Port settings to enable Delivery Optimization communication. @@ -47,7 +47,7 @@ There are service endpoints that you need to permit through your Firewall to com ### Proxy -To allow peer-to-peer (P2P) to work properly you need to allow direct calls to the Delivery Optimization service from your devices. When using a proxy, you want to bypass calls from the Delivery Optimization service (*.prod.do.dsp.mp.microsoft.com). If the calls to the DO service are funneled through your proxy, it will alter the public IP address of the devices, preventing P2P from working properly. +To allow peer-to-peer (P2P) to work properly you need to allow direct calls to the Delivery Optimization service from your devices. When using a proxy, you want to bypass calls from the Delivery Optimization service (*.prod.do.dsp.mp.microsoft.com). #### Local proxy @@ -55,17 +55,17 @@ For downloads from HTTP sources, Delivery Optimization can use the automatic pro #### Cloud proxy - If you're using a cloud proxy, you should configure it to allow Delivery Optimization traffic to [bypass the proxy](waas-delivery-optimization-faq.yml#what-is-the-recommended-configuration-for-delivery-optimization-used-with-cloud-proxies). Otherwise, you may experience reduced performance and increased bandwidth consumption. + If you're using a cloud proxy, the calls to the DO service are funneled through your cloud proxy and the public IP address of the devices is altered, preventing P2P from working properly. To avoid any issues, you should configure it to allow Delivery Optimization traffic to [bypass the proxy](waas-delivery-optimization-faq.yml#what-is-the-recommended-configuration-for-delivery-optimization-used-with-cloud-proxies). Otherwise, you may experience reduced performance and increased bandwidth consumption. ### Ports Delivery Optimization requires the use of certain ports to deliver content. Make sure all the [required ports](waas-delivery-optimization-faq.yml#which-ports-does-delivery-optimization-use) are open to make Delivery Optimization work seamlessly. -| Port | Function | -|---------|-------------------| -| 7680 | Listen for P2P using TCP/IP | -| 3544 | Use Teredo to discover and connect to peers across NATs | -| 443 | Use to communicate Delivery Optimization client and service | +| Port | Protocol | Function | +|---------|-------------------|----------| +| 7680 | TCP/IP | Listen for P2P using TCP/IP | +| 3544 | TCP/IP | Use Teredo to discover and connect to peers across NATs | +| 443 | HTTPS / TLS 1.2 | Use to communicate Delivery Optimization client and service | ## 2. DO presence @@ -103,7 +103,7 @@ Peer groups can be defined in Delivery Optimization using a combination of setti To define a peer group limited to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This download mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. > [!NOTE] -> Consider using Group download mode and/or limiting peer selection to the subnet if your network topology is a hub and spoke. +> Consider using Group download mode and/or limiting peer selection to the subnet if your network topology is a Hub and Spoke. ##### Wide area network (WAN) @@ -128,7 +128,10 @@ There are two valid download modes that don't use P2P functionality to deliver c ### Peering with VPN -By default, if Delivery Optimization detects a VPN, peering is not used. To enable this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN. +By default, if Delivery Optimization detects a VPN, peering is not used. To change this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN you use in your organization. + +> [!NOTE] +> The default keyword list is “VPN”, “Secure”, and “Virtual Private Network”. For example, “MYVPN” matches the “VPN” keyword and would be detected as a VPN connection. ## 4. Optimize P2P usage for your organization size @@ -166,24 +169,27 @@ Control the minimum amount of RAM (inclusive) allowed to use peer caching (defau In an environment with devices that are plugged in and have ample free disk space try increasing the content expiration interval of [DOMaxCacheAge](waas-delivery-optimization-reference.md#max-cache-age) to seven or more (up to 30 days). You can take advantage of these devices, using them as excellent upload sources to upload more content over a longer period. -## 6. Improve efficiencies +## 6. Improve P2P efficiency -:::image type="content" source="images/do-setup-improve-efficiencies.png" alt-text="Screenshot of Delivery Optimization improve efficiency considerations." lightbox="images/do-setup-improve-efficiencies.png"::: +:::image type="content" source="images/do-setup-improve-efficiency.png" alt-text="Screenshot of Delivery Optimization improve efficiency considerations." lightbox="images/do-setup-improve-efficiency.png"::: -Looking to improve efficiency? Some of the most powerful settings you can change that could have a significant impact within your environment include: +Looking to improve P2P efficiency? Some of the most powerful settings you can change that could have a significant impact within your environment include: * Help optimize peer connection over HTTP connections using the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy. A good value for the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy is something lower than the average download speed seen in your network. For example, if your average speed is 1000 KB/s, set this policy to 500 KB/s. * Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of delay-related policies include: [DODelayBackgroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs), [DODelayForegroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs). To improve efficiencies from peers or a dedicated cache server, a good starting point is 60 seconds for background settings and 30 seconds for foreground settings. +> [!NOTE] +> Not all content types are eligible for P2P. Refer to the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. + ### Bandwidth throttling options -* Reduce disruptions by throttling differently at different times of day, using the business hours policies, [DOSetHoursToLimitBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth) and [DOSetHoursToLimitForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth). +Regardless of P2P, consider setting the following policies to avoid network disruption. + * Manage network usage as a percentage or absolute value. These policies include: [DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth), [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). +* Reduce disruptions by throttling differently at different times of day, using the business hours policies, [DOSetHoursToLimitBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth) and [DOSetHoursToLimitForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth). > [!NOTE] > The absolute policies are recommended in low bandwidth environments. -> -> Not all content types are eligible for P2P. Refer to the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. ## 7. Connected cache @@ -191,7 +197,7 @@ Looking to improve efficiency? Some of the most powerful settings you can change * [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. *Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed.* * [DOCacheHostSource](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cache host servers on the network, using DHCP. -* [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in [Improve Efficiencies](#6-improve-efficiencies) section above). +* [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in [Improve P2P efficiency](#6-improve-p2p-efficiency) section above). * [DODisallowCacheServerDownloadsOnVPN](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cache host server to supply content, when device is on a VPN connection. ## Summary of basic configuration recommendations @@ -202,7 +208,7 @@ Looking to improve efficiency? Some of the most powerful settings you can change | Do not use P2P | DownloadMode | 0 | | Number of devices in the organization | MinFileSizeToCache | 1 MB for peer group > 100 devices | | Idle system resources | MaxCacheAge | 7 days (604800 seconds) | -| Improve efficiencies | MinBackgroundQoS and DelayBackgroundDownloadFromHttp / DelayForegroundDownloadFromHttp | 500 KB/s and 60/30 seconds | +| Improve P2P efficiency | MinBackgroundQoS and DelayBackgroundDownloadFromHttp / DelayForegroundDownloadFromHttp | 500 KB/s and 60/30 seconds | | Using Connected Cache? | DelayCacheServerFallbackBackground / DelayCacheServerFallbackForeground | 60/30 seconds | ## Monitor Delivery Optimization diff --git a/windows/deployment/do/images/do-setup-improve-efficiencies.png b/windows/deployment/do/images/do-setup-improve-efficiencies.png deleted file mode 100644 index cacd46e6a2e7b7006d911a0ad80f760f72092b51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13944 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 Date: Mon, 15 Jul 2024 17:44:46 -0400 Subject: [PATCH 045/108] Update Fast User Switching entry points description --- .../includes/hide-entry-points-for-fast-user-switching.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md index 7510bc272f..ec07566ed5 100644 --- a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md +++ b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md @@ -9,8 +9,8 @@ ms.topic: include With this policy setting you can prevent multiple users to sign in at the same time, using the Fast User Switching feature. -- If enabled, only one user can sign in at a time. The list of local users and currently signed in users is hidden from the sign in screen, the Start menu, and the Task Manager. If multiple users want to sign in, the current user must sign out first -- If disabled or not configured, multiple users can sign in at the same time. The list of local users and currently signed in users is available in the sign in screen, the Start menu, and the Task Manager. The current user doesn't have to sign out to allow another user to sign in +- If enabled, only one user can sign in at a time. The Fast User Switching entry points are hidden from the sign-in screen, the Start menu, and the Task Manager. If multiple users want to sign in, the current user must sign out first +- If disabled or not configured, multiple users can sign in at the same time. The Fast User Switching entry points are availabe from the sign-in screen, the Start menu, and the Task Manager. The current user doesn't have to sign out to allow another user to sign in | | Path | |--|--| From dd6380539ee59498f13878de0706200306489171 Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Tue, 16 Jul 2024 14:36:32 -0700 Subject: [PATCH 046/108] Remove references to "changes" article --- windows/privacy/toc.yml | 2 -- windows/privacy/windows-10-and-privacy-compliance.md | 1 - 2 files changed, 3 deletions(-) diff --git a/windows/privacy/toc.yml b/windows/privacy/toc.yml index 5ec34034d8..19445df42a 100644 --- a/windows/privacy/toc.yml +++ b/windows/privacy/toc.yml @@ -5,8 +5,6 @@ href: windows-10-and-privacy-compliance.md - name: Configure Windows diagnostic data in your organization href: configure-windows-diagnostic-data-in-your-organization.md - - name: Changes to Windows diagnostic data collection - href: changes-to-windows-diagnostic-data-collection.md - name: Diagnostic Data Viewer items: - name: Diagnostic Data Viewer Overview diff --git a/windows/privacy/windows-10-and-privacy-compliance.md b/windows/privacy/windows-10-and-privacy-compliance.md index ab86dc703a..1a5a044ae4 100644 --- a/windows/privacy/windows-10-and-privacy-compliance.md +++ b/windows/privacy/windows-10-and-privacy-compliance.md @@ -246,5 +246,4 @@ Microsoft Intune is a cloud-based endpoint management solution. It manages user * [Microsoft Privacy Statement](https://privacy.microsoft.com/privacystatement) * [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) * [Privacy at Microsoft](https://privacy.microsoft.com/privacy-report) -* [Changes to Windows diagnostic data](changes-to-windows-diagnostic-data-collection.md) * [Microsoft Service Trust Portal](https://servicetrust.microsoft.com/) From 8c7dcfd22a18eafc7bc4b395a49dbfd640742297 Mon Sep 17 00:00:00 2001 From: Paul Huijbregts <30799281+pahuijbr@users.noreply.github.com> Date: Wed, 17 Jul 2024 15:21:00 -0700 Subject: [PATCH 047/108] Update windowsadvancedthreatprotection-csp.md --- .../mdm/windowsadvancedthreatprotection-csp.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/windows/client-management/mdm/windowsadvancedthreatprotection-csp.md b/windows/client-management/mdm/windowsadvancedthreatprotection-csp.md index 040365664e..171a60f503 100644 --- a/windows/client-management/mdm/windowsadvancedthreatprotection-csp.md +++ b/windows/client-management/mdm/windowsadvancedthreatprotection-csp.md @@ -17,6 +17,11 @@ The table below shows the applicability of Windows: |Enterprise|Yes|Yes| |Education|Yes|Yes| +> [!IMPORTANT] +> Windows 11 Home devices that have been upgraded to one of the below mentioned applicable editions might require you to run the following command before onboarding: +> `DISM /online /Add-Capability /CapabilityName:Microsoft.Windows.Sense.Client~~~~`. +> For more information about edition upgrades and features, see [Features](/windows-hardware/manufacture/desktop/windows-features?view=windows-11&preserve-view=true)) + The Windows Defender Advanced Threat Protection (WDATP) configuration service provider (CSP) allows IT Admins to onboard, determine configuration and health status, and offboard endpoints for WDATP. The following example shows the WDATP configuration service provider in tree format as used by the Open Mobile Alliance (OMA) Device Management (DM). From c7e9f009b809ac8d6e903a655a34e9ac17ce76f7 Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Thu, 18 Jul 2024 10:02:07 -0400 Subject: [PATCH 048/108] Addition of PCR 4 --- .../bitlocker/countermeasures.md | 18 ++++++++++++++++-- ...low-secure-boot-for-integrity-validation.md | 5 ++++- ...-for-native-uefi-firmware-configurations.md | 2 ++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/windows/security/operating-system-security/data-protection/bitlocker/countermeasures.md b/windows/security/operating-system-security/data-protection/bitlocker/countermeasures.md index 13b8fb7c50..2b7377479e 100644 --- a/windows/security/operating-system-security/data-protection/bitlocker/countermeasures.md +++ b/windows/security/operating-system-security/data-protection/bitlocker/countermeasures.md @@ -92,9 +92,23 @@ Therefore, organizations that use BitLocker might want to use Hibernate instead ### Tricking BitLocker to pass the key to a rogue operating system -An attacker might modify the boot manager configuration database (BCD), which is stored on a nonencrypted partition and add an entry point to a rogue operating system on a different partition. During the boot process, BitLocker code makes sure that the operating system that the encryption key obtained from the TPM is given to, is cryptographically verified to be the intended recipient. Because this strong cryptographic verification already exists, we don't recommend storing a hash of a disk partition table in Platform Configuration Register (PCR) 5. +An attacker might modify the boot manager configuration database (BCD), which is stored on a nonencrypted partition and add an entry point to a rogue operating system on a different partition. During the boot process, BitLocker code makes sure that the operating system that the encryption key obtained from the TPM is given to, is cryptographically verified to be the intended recipient. Because this strong cryptographic verification already exists, we don't recommend storing a hash of a disk partition table in PCR 5. -An attacker might also replace the entire operating system disk while preserving the platform hardware and firmware and could then extract a protected BitLocker key blob from the metadata of the victim OS partition. The attacker could then attempt to unseal that BitLocker key blob by calling the TPM API from an operating system under their control. This can't succeed because when Windows seals the BitLocker key to the TPM, it does it with a PCR 11 value of 0. To successfully unseal the blob, PCR 11 in the TPM must have a value of 0. However, when the boot manager passes the control to any boot loader (legitimate or rogue) it always changes PCR 11 to a value of 1. Since the PCR 11 value is guaranteed to be different after exiting the boot manager, the attacker can't unlock the BitLocker key. +An attacker might also replace the entire operating system disk while preserving the platform hardware and firmware, and could then extract a protected BitLocker key blob from the metadata of the victim OS partition. The attacker could then attempt to unseal that BitLocker key blob by calling the TPM API from an operating system under their control. This can't succeed because when Windows seals the BitLocker key to the TPM, it does it with a PCR 11 value of 0. To successfully unseal the blob, PCR 11 in the TPM must have a value of 0. However, when the boot manager passes the control to any boot loader (legitimate or rogue), it always changes PCR 11 to a value of 1. Since the PCR 11 value is guaranteed to be different after exiting the boot manager, the attacker can't unlock the BitLocker key. + +To prevent boot manger roll-back attacks, Windows updates released on and after July 2024 changed the default PCR Validation Profile for **UEFI with Secure Boot** from `7, 11` to `4, 7, 11`. + +The PCR values map to: + +- `PCR 4: Boot Manager` +- `PCR 7: Secure Boot State` +- `PCR 11: BitLocker access control` + +> [!TIP] +> To check what PCRs are in use, execute the following command: +> ```cmd +> manage-bde.exe -protectors -get c: +> ``` ## Attacker countermeasures diff --git a/windows/security/operating-system-security/data-protection/bitlocker/includes/allow-secure-boot-for-integrity-validation.md b/windows/security/operating-system-security/data-protection/bitlocker/includes/allow-secure-boot-for-integrity-validation.md index 853270403b..fbcf599ccc 100644 --- a/windows/security/operating-system-security/data-protection/bitlocker/includes/allow-secure-boot-for-integrity-validation.md +++ b/windows/security/operating-system-security/data-protection/bitlocker/includes/allow-secure-boot-for-integrity-validation.md @@ -1,7 +1,7 @@ --- author: paolomatarazzo ms.author: paoloma -ms.date: 10/30/2023 +ms.date: 07/18/2024 ms.topic: include --- @@ -26,3 +26,6 @@ When this policy is enabled and the hardware is capable of using Secure Boot for |--|--| | **CSP** | Not available | | **GPO** | **Computer Configuration** > **Administrative Templates** > **Windows Components** > **BitLocker Drive Encryption** > **Operating System Drives** | + +> [!NOTE] +> To prevent boot manger roll-back attacks, Windows updates released on and after July 2024 changed the default PCR Validation Profile for **UEFI with Secure Boot** from `7, 11` to `4, 7, 11`. diff --git a/windows/security/operating-system-security/data-protection/bitlocker/includes/configure-tpm-platform-validation-profile-for-native-uefi-firmware-configurations.md b/windows/security/operating-system-security/data-protection/bitlocker/includes/configure-tpm-platform-validation-profile-for-native-uefi-firmware-configurations.md index cb43d10a8c..fd61b353fa 100644 --- a/windows/security/operating-system-security/data-protection/bitlocker/includes/configure-tpm-platform-validation-profile-for-native-uefi-firmware-configurations.md +++ b/windows/security/operating-system-security/data-protection/bitlocker/includes/configure-tpm-platform-validation-profile-for-native-uefi-firmware-configurations.md @@ -26,6 +26,8 @@ A platform validation profile consists of a set of PCR indices ranging from 0 to > [!NOTE] > When Secure Boot State (PCR7) support is available, the default platform validation profile secures the encryption key using Secure Boot State (PCR 7) and the BitLocker access control (PCR 11). +> +> To prevent boot manger roll-back attacks, Windows updates released on and after July 2024 changed the default PCR Validation Profile for **UEFI with Secure Boot** from `7, 11` to `4, 7, 11`. The following list identifies all of the available PCRs: From ea7233f0100a4ff848f7fbeafe825d468b9fb877 Mon Sep 17 00:00:00 2001 From: Sandeep Deo <38295759+SanDeo-MSFT@users.noreply.github.com> Date: Thu, 18 Jul 2024 09:48:00 -0700 Subject: [PATCH 049/108] Update recovery-process.md --- .../data-protection/bitlocker/recovery-process.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/operating-system-security/data-protection/bitlocker/recovery-process.md b/windows/security/operating-system-security/data-protection/bitlocker/recovery-process.md index 28cbcd8d4a..b2d83e651b 100644 --- a/windows/security/operating-system-security/data-protection/bitlocker/recovery-process.md +++ b/windows/security/operating-system-security/data-protection/bitlocker/recovery-process.md @@ -2,7 +2,7 @@ title: BitLocker recovery process description: Learn how to obtain BitLocker recovery information for Microsoft Entra joined, Microsoft Entra hybrid joined, and Active Directory joined devices, and how to restore access to a locked drive. ms.topic: how-to -ms.date: 07/08/2024 +ms.date: 07/18/2024 --- # BitLocker recovery process @@ -72,7 +72,7 @@ The following list can be used as a template for creating a recovery process for There are a few Microsoft Entra ID roles that allow a delegated administrator to read BitLocker recovery passwords from the devices in the tenant. While it's common for organizations to use the existing Microsoft Entra ID *[Cloud Device Administrator][ENTRA-2]* or *[Helpdesk Administrator][ENTRA-3]* built-in roles, you can also [create a custom role][ENTRA-5], delegating access to BitLocker keys using the `microsoft.directory/bitlockerKeys/key/read` permission. Roles can be delegated to access BitLocker recovery passwords for devices in specific Administrative Units. > [!NOTE] -> When devices including [Windows Autopilot](/mem/autopilot/windows-autopilot) are reused to join to Entra, **and there is a new device owner**, that new device owner must contact an administrator to acquire the BitLocker recovery key for that device. Custom role or administrative unit scoped administrators will lose access to BitLocker recovery keys for those devices that have undergone device ownership changes. These scoped administrators will need to contact a non-scoped administrator for the recovery keys. For more information, see the article [Find the primary user of an Intune device](/mem/intune/remote-actions/find-primary-user#change-a-devices-primary-user). +> When devices that utilize [Windows Autopilot](/mem/autopilot/windows-autopilot) are reused to join to Entra, **and there is a new device owner**, that new device owner must contact an administrator to acquire the BitLocker recovery key for that device. Custom role or administrative unit scoped administrators will lose access to BitLocker recovery keys for those devices that have undergone device ownership changes. These scoped administrators will need to contact a non-scoped administrator for the recovery keys. For more information, see the article [Find the primary user of an Intune device](/mem/intune/remote-actions/find-primary-user#change-a-devices-primary-user). The [Microsoft Entra admin center][ENTRA] allows administrators to retrieve BitLocker recovery passwords. To learn more about the process, see [View or copy BitLocker keys][ENTRA-4]. Another option to access BitLocker recovery passwords is to use the Microsoft Graph API, which might be useful for integrated or scripted solutions. For more information about this option, see [Get bitlockerRecoveryKey][GRAPH-1]. From 699d28803a6d5031c13bc90b14358f24ccbd4f6c Mon Sep 17 00:00:00 2001 From: Aaron Czechowski Date: Thu, 18 Jul 2024 10:28:50 -0700 Subject: [PATCH 050/108] editorial revision --- .../mdm/windowsadvancedthreatprotection-csp.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/windows/client-management/mdm/windowsadvancedthreatprotection-csp.md b/windows/client-management/mdm/windowsadvancedthreatprotection-csp.md index 171a60f503..c0d23cc517 100644 --- a/windows/client-management/mdm/windowsadvancedthreatprotection-csp.md +++ b/windows/client-management/mdm/windowsadvancedthreatprotection-csp.md @@ -18,9 +18,11 @@ The table below shows the applicability of Windows: |Education|Yes|Yes| > [!IMPORTANT] -> Windows 11 Home devices that have been upgraded to one of the below mentioned applicable editions might require you to run the following command before onboarding: -> `DISM /online /Add-Capability /CapabilityName:Microsoft.Windows.Sense.Client~~~~`. -> For more information about edition upgrades and features, see [Features](/windows-hardware/manufacture/desktop/windows-features?view=windows-11&preserve-view=true)) +> Windows 11 Home devices that have been upgraded to one of the below mentioned applicable editions might require you to run the following command before onboarding: +> +> `DISM /online /Add-Capability /CapabilityName:Microsoft.Windows.Sense.Client~~~~` +> +> For more information about edition upgrades and features, see [Customize Windows features](/windows-hardware/manufacture/desktop/windows-features?view=windows-11&preserve-view=true). The Windows Defender Advanced Threat Protection (WDATP) configuration service provider (CSP) allows IT Admins to onboard, determine configuration and health status, and offboard endpoints for WDATP. From 1b4a528d9c382ce185c8e3fa151ee990ca9462e4 Mon Sep 17 00:00:00 2001 From: Zoe Liu <89218764+xinpli@users.noreply.github.com> Date: Thu, 18 Jul 2024 15:59:17 -0700 Subject: [PATCH 051/108] Learn Editor: Update wds-boot-support.md --- windows/deployment/wds-boot-support.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/windows/deployment/wds-boot-support.md b/windows/deployment/wds-boot-support.md index 0b09a07b84..61403f154f 100644 --- a/windows/deployment/wds-boot-support.md +++ b/windows/deployment/wds-boot-support.md @@ -35,17 +35,16 @@ The following table provides support details for specific deployment scenarios. |--- |--- |--- |--- |--- |--- | |**Windows 11**|Not supported, blocked.|Not supported, blocked.|Not supported, blocked.|Not supported, blocked.|Not supported, blocked.| |**Windows 10**|Supported, using a boot image from matching or newer version.|Supported, using a boot image from Windows 10, version 1607 or later.|Supported, using a boot image from Windows 10, version 1809 or later.|Not supported.|Not supported.| +|**Windows Server 2025**|Not supported.|Not supported.|Not supported.|Not supported.|Not supported.| |**Windows Server 2022**|Deprecated, with a warning message.|Deprecated, with a warning message.|Deprecated, with a warning message.|Deprecated, with a warning message.|Not supported.| |**Windows Server 2019**|Supported, using a boot image from Windows 10, version 1809 or later.|Supported.|Supported.|Not supported.|Not supported.| |**Windows Server 2016**|Supported, using a boot image from Windows 10, version 1607 or later.|Supported.|Not supported.|Not supported.|Not supported.| +> [!NOTE] +> Since WS2025 does not support WDS **boot.wim** deployment scenarios anymore, you will see error message "A media driver your computer needs is missing. This could be a DVD, USB or Hard disk driver. If you have a CD, DVD, or USB flash drive with the driver on it, please insert it now.". ## Reason for the change -Alternatives to WDS, such as [Microsoft Configuration Manager](/mem/configmgr/) and [Microsoft Deployment Toolkit](/mem/configmgr/mdt/) (MDT) provide a better, more flexible, and feature-rich experience for deploying Windows images. - -> [!NOTE] -> -> [Microsoft Deployment Toolkit](/mem/configmgr/mdt/) (MDT) only supports deployment of Windows 10. It doesn't support deployment of Windows 11. For more information, see [Supported platforms](/mem/configmgr/mdt/release-notes#supported-platforms). +Alternatives to WDS, [Microsoft Configuration Manager](/mem/configmgr/) provide a better, more flexible, and feature-rich experience for deploying Windows images. ## Not affected From 4a0a64d760558014826e36e9df31244e09b55221 Mon Sep 17 00:00:00 2001 From: Frank Rojas <45807133+frankroj@users.noreply.github.com> Date: Fri, 19 Jul 2024 10:39:48 -0400 Subject: [PATCH 053/108] Style changes Minor style and grammar corrections. Also took the opportunity to perform additional improvements to the article including running it through Acrolinx. --- windows/deployment/wds-boot-support.md | 49 +++++++++++++++----------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/windows/deployment/wds-boot-support.md b/windows/deployment/wds-boot-support.md index 61403f154f..a305d1969b 100644 --- a/windows/deployment/wds-boot-support.md +++ b/windows/deployment/wds-boot-support.md @@ -7,7 +7,7 @@ author: frankroj ms.author: frankroj manager: aaroncz ms.topic: conceptual -ms.date: 04/25/2024 +ms.date: 07/19/2024 ms.subservice: itpro-deploy appliesto: - ✅
Windows 11 @@ -21,47 +21,56 @@ appliesto: The operating system deployment functionality of [Windows Deployment Services](/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh831764(v=ws.11)) (WDS) is being partially deprecated. Starting with Windows 11, workflows that rely on **boot.wim** from installation media or on running Windows Setup in WDS mode is no longer supported. -When you PXE-boot from a WDS server that uses the **boot.wim** file from installation media as its boot image, Windows Setup automatically launches in WDS mode. This workflow is deprecated for Windows 11 and newer boot images. The following deprecation message is displayed: +When PXE booting from a WDS server that uses the **boot.wim** file from installation media as its boot image, Windows Setup automatically launches in WDS mode. This workflow is deprecated for Windows 11 and newer boot images. The following deprecation message is displayed: > Windows Setup > -> Windows Deployment Services client functionality is being partly deprecated. Please visit https://aka.ms/WDSSupport for more details on what is deprecated and what will continue to be supported. +> Windows Deployment Services client functionality is being partly deprecated. Please visit https://aka.ms/WDSSupport for more details on what is deprecated and what is still supported. ## Deployment scenarios affected The following table provides support details for specific deployment scenarios. Boot.wim is the `boot.wim` file obtained from the Windows source files for each specified version of Windows. -|Windows Version being deployed |Boot.wim from Windows 10|Boot.wim from Windows Server 2016|Boot.wim from Windows Server 2019|Boot.wim from Windows Server 2022|Boot.wim from Windows 11| -|--- |--- |--- |--- |--- |--- | -|**Windows 11**|Not supported, blocked.|Not supported, blocked.|Not supported, blocked.|Not supported, blocked.|Not supported, blocked.| -|**Windows 10**|Supported, using a boot image from matching or newer version.|Supported, using a boot image from Windows 10, version 1607 or later.|Supported, using a boot image from Windows 10, version 1809 or later.|Not supported.|Not supported.| -|**Windows Server 2025**|Not supported.|Not supported.|Not supported.|Not supported.|Not supported.| -|**Windows Server 2022**|Deprecated, with a warning message.|Deprecated, with a warning message.|Deprecated, with a warning message.|Deprecated, with a warning message.|Not supported.| -|**Windows Server 2019**|Supported, using a boot image from Windows 10, version 1809 or later.|Supported.|Supported.|Not supported.|Not supported.| -|**Windows Server 2016**|Supported, using a boot image from Windows 10, version 1607 or later.|Supported.|Not supported.|Not supported.|Not supported.| +| Windows Version being deployed | Boot.wim from Windows 10 | Boot.wim from Windows Server 2016 | Boot.wim from Windows Server 2019 | Boot.wim from Windows Server 2022 | Boot.wim from Windows 11 | +| --- | --- | --- | --- | --- | --- | +| **Windows 11** | Not supported, blocked. | Not supported, blocked. | Not supported, blocked. |Not supported, blocked. | Not supported, blocked. | +| **Windows 10** | Supported, using a boot image from matching or newer version. | Supported, using a boot image from a [currently supported version of Windows 10](/windows/release-health/supported-versions-windows-client#windows-10-supported-versions). | Supported, using a boot image from a [currently supported version of Windows 10](/windows/release-health/supported-versions-windows-client#windows-10-supported-versions).| Not supported. | Not supported. | +| **Windows Server 2025** | Not supported. | Not supported. | Not supported. | Not supported. | Not supported. | +| **Windows Server 2022** | Deprecated, with a warning message. | Deprecated, with a warning message. | Deprecated, with a warning message. | Deprecated, with a warning message. | Not supported. | +| **Windows Server 2019** | Supported, using a boot image from a [currently supported version of Windows 10](/windows/release-health/supported-versions-windows-client#windows-10-supported-versions). | Supported. | Supported. | Not supported. | Not supported. | +| **Windows Server 2016** | Supported, using a boot image from a [currently supported version of Windows 10](/windows/release-health/supported-versions-windows-client#windows-10-supported-versions). |Supported. | Not supported. | Not supported. | Not supported. | > [!NOTE] -> Since WS2025 does not support WDS **boot.wim** deployment scenarios anymore, you will see error message "A media driver your computer needs is missing. This could be a DVD, USB or Hard disk driver. If you have a CD, DVD, or USB flash drive with the driver on it, please insert it now.". +> +> The following error message might be displayed when attempting to use **boot.wim** on WDS running on Windows Server 2025: +> +> `A media driver your computer needs is missing. This could be a DVD, USB or Hard disk driver. If you have a CD, DVD, or USB flash drive with the driver on it, please insert it now.` +> +> An error message is expected since using **boot.wim** on WDS running on Windows Server 2025 isn't supported. + ## Reason for the change -Alternatives to WDS, [Microsoft Configuration Manager](/mem/configmgr/) provide a better, more flexible, and feature-rich experience for deploying Windows images. +Alternatives to WDS, [Microsoft Configuration Manager](/mem/configmgr/) provides a better, more flexible, and feature-rich experience for deploying Windows images. ## Not affected -This change doesn’t affect WDS PXE boot. You can still use WDS to PXE boot devices with custom boot images, but you can't use **boot.wim** as the boot image and run Windows Setup in WDS mode. +This change doesn't affect WDS PXE boot. WDS can still be used to PXE boot devices with custom boot images, but **boot.wim** can't be used as the boot image and run Windows Setup in WDS mode. -You can still run Windows Setup from a network share. This change doesn't change Workflows that use a custom boot.wim, such as MDT or Configuration Manager. +Windows Setup can still run from a network share. This change doesn't change Workflows that use a custom boot.wim, such as MDT or Configuration Manager. ## Summary -- Windows 11 workflows that rely on **boot.wim** from installation media are blocked. You can't perform an end to end deployment of Windows 11 using only WDS. +- Windows 11 workflows that rely on **boot.wim** from installation media are blocked. An end to end deployment of Windows 11 using only WDS can't be performed. + - This change doesn't affect Windows 10, Windows Server 2019, and previous operating system versions. + - Windows Server 2022 workflows that rely on **boot.wim** from installation media show a non-blocking deprecation notice. The notice can be dismissed, and currently the workflow isn't blocked. + - Windows Server workflows after Windows Server 2022 that rely on **boot.wim** from installation media are blocked. -If you currently use WDS with **boot.wim** from installation media for end-to-end operating system deployment, and your OS version isn't supported, deprecated, or blocked, it's recommended that you use deployment tools such as MDT, Configuration Manager, or a non-Microsoft solution with a custom boot.wim image. +If WDS is being used with **boot.wim** from installation media for end-to-end operating system deployment, and the OS version isn't supported, deprecated, or blocked, Microsoft recommends using deployment tools such as Microsoft Configuration Manager, or a non-Microsoft solution that uses a custom boot.wim image. -## Also see +## Related content -- [Features removed or no longer developed starting with Windows Server 2022](/windows-server/get-started/removed-deprecated-features-windows-server-2022#features-were-no-longer-developing) -- [Create a custom Windows PE boot image with Configuration Manager](deploy-windows-cm/create-a-custom-windows-pe-boot-image-with-configuration-manager.md) +- [Features removed or no longer developed starting with Windows Server 2022](/windows-server/get-started/removed-deprecated-features-windows-server-2022#features-were-no-longer-developing). +- [Create a custom Windows PE boot image with Configuration Manager](deploy-windows-cm/create-a-custom-windows-pe-boot-image-with-configuration-manager.md). From f8f1ed36c771b66219f12fb7d2fe5c267152e75b Mon Sep 17 00:00:00 2001 From: Frank Rojas <45807133+frankroj@users.noreply.github.com> Date: Fri, 19 Jul 2024 10:43:46 -0400 Subject: [PATCH 054/108] Additional updates Additional corrections and updates --- windows/deployment/wds-boot-support.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/deployment/wds-boot-support.md b/windows/deployment/wds-boot-support.md index a305d1969b..1bd67de045 100644 --- a/windows/deployment/wds-boot-support.md +++ b/windows/deployment/wds-boot-support.md @@ -50,13 +50,13 @@ The following table provides support details for specific deployment scenarios. ## Reason for the change -Alternatives to WDS, [Microsoft Configuration Manager](/mem/configmgr/) provides a better, more flexible, and feature-rich experience for deploying Windows images. +Alternatives to WDS, such as [Microsoft Configuration Manager](/mem/configmgr/), provide a better, more flexible, and feature-rich experience for deploying Windows images. ## Not affected This change doesn't affect WDS PXE boot. WDS can still be used to PXE boot devices with custom boot images, but **boot.wim** can't be used as the boot image and run Windows Setup in WDS mode. -Windows Setup can still run from a network share. This change doesn't change Workflows that use a custom boot.wim, such as MDT or Configuration Manager. +Windows Setup can still run from a network share. This change doesn't change Workflows that use a custom boot.wim, such as Microsoft Deployment Toolkit (MDT) or Microsoft Configuration Manager. ## Summary @@ -73,4 +73,4 @@ If WDS is being used with **boot.wim** from installation media for end-to-end op ## Related content - [Features removed or no longer developed starting with Windows Server 2022](/windows-server/get-started/removed-deprecated-features-windows-server-2022#features-were-no-longer-developing). -- [Create a custom Windows PE boot image with Configuration Manager](deploy-windows-cm/create-a-custom-windows-pe-boot-image-with-configuration-manager.md). +- [Create a custom Windows PE boot image with ](deploy-windows-cm/create-a-custom-windows-pe-boot-image-with-configuration-manager.md). From a75c91823d123629f3ab24248e35f5ec1a973ee1 Mon Sep 17 00:00:00 2001 From: Frank Rojas <45807133+frankroj@users.noreply.github.com> Date: Fri, 19 Jul 2024 10:49:38 -0400 Subject: [PATCH 055/108] Update related link Removed related link that is going to be taken down soon and replaced with a more relevant link from the Configuration Manager docs. --- windows/deployment/wds-boot-support.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/wds-boot-support.md b/windows/deployment/wds-boot-support.md index 1bd67de045..182f55c874 100644 --- a/windows/deployment/wds-boot-support.md +++ b/windows/deployment/wds-boot-support.md @@ -50,7 +50,7 @@ The following table provides support details for specific deployment scenarios. ## Reason for the change -Alternatives to WDS, such as [Microsoft Configuration Manager](/mem/configmgr/), provide a better, more flexible, and feature-rich experience for deploying Windows images. +Alternatives to WDS, such as [Microsoft Configuration Manager](/mem/configmgr/osd/understand/introduction-to-operating-system-deployment), provide a better, more flexible, and feature-rich experience for deploying Windows images. ## Not affected @@ -73,4 +73,4 @@ If WDS is being used with **boot.wim** from installation media for end-to-end op ## Related content - [Features removed or no longer developed starting with Windows Server 2022](/windows-server/get-started/removed-deprecated-features-windows-server-2022#features-were-no-longer-developing). -- [Create a custom Windows PE boot image with ](deploy-windows-cm/create-a-custom-windows-pe-boot-image-with-configuration-manager.md). +- [Customize boot images with Configuration Manager](/mem/configmgr/osd/get-started/customize-boot-images). From ff6ccaca876c4a1037db7a7f04a741b89437083e Mon Sep 17 00:00:00 2001 From: Vinay Pamnani <37223378+vinaypamnani-msft@users.noreply.github.com> Date: Fri, 19 Jul 2024 09:11:48 -0600 Subject: [PATCH 056/108] Update windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview.md --- .../windows-sandbox/windows-sandbox-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview.md b/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview.md index a59d65972c..8d8f873a38 100644 --- a/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview.md +++ b/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview.md @@ -36,7 +36,7 @@ Windows Sandbox has the following properties: > [!NOTE] > Windows Sandbox is currently not supported on Windows Home edition. -> Beginning in Windows 11 24H2, or build version 26100, all inbox store apps like calculator, photos, notepad and terminal will not be available inside Windows Sandbox. Ability to use the apps will be added soon. +> Beginning in Windows 11, version 24H2, all inbox store apps like calculator, photos, notepad and terminal are not available inside Windows Sandbox. Ability to use these apps will be added soon. ## Installation 1. Ensure that your machine is using Windows 10 Pro or Enterprise, build version 18305 or Windows 11. From 5cd9a01edf5481197cf82b34dbc4208047132c30 Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Fri, 19 Jul 2024 14:39:38 -0700 Subject: [PATCH 057/108] Retire "Enhanced diagnostic data" article --- ...ing.redirection.windows-configuration.json | 2 +- ...ublishing.redirection.windows-privacy.json | 5 + windows/configuration/wcd/wcd-policies.md | 2 +- ...ata-windows-analytics-events-and-fields.md | 424 ------------------ windows/privacy/toc.yml | 2 - 5 files changed, 7 insertions(+), 428 deletions(-) delete mode 100644 windows/privacy/enhanced-diagnostic-data-windows-analytics-events-and-fields.md diff --git a/.openpublishing.redirection.windows-configuration.json b/.openpublishing.redirection.windows-configuration.json index b5f046f434..abeb93b128 100644 --- a/.openpublishing.redirection.windows-configuration.json +++ b/.openpublishing.redirection.windows-configuration.json @@ -37,7 +37,7 @@ }, { "source_path": "windows/configuration/enhanced-diagnostic-data-windows-analytics-events-and-fields.md", - "redirect_url": "/windows/privacy/enhanced-diagnostic-data-windows-analytics-events-and-fields", + "redirect_url": "https://techcommunity.microsoft.com/t5/windows-it-pro-blog/preview-app-and-driver-compatibility-insights-in-endpoint/ba-p/3482136", "redirect_document_id": false }, { diff --git a/.openpublishing.redirection.windows-privacy.json b/.openpublishing.redirection.windows-privacy.json index 3bbff994f7..53cc97b7c2 100644 --- a/.openpublishing.redirection.windows-privacy.json +++ b/.openpublishing.redirection.windows-privacy.json @@ -54,6 +54,11 @@ "source_path": "windows/privacy/windows-personal-data-services-configuration.md", "redirect_url": "/windows/privacy/windows-10-and-privacy-compliance", "redirect_document_id": false + }, + { + "source_path": "/windows/privacy/enhanced-diagnostic-data-windows-analytics-events-and-fields.md", + "redirect_url": "https://techcommunity.microsoft.com/t5/windows-it-pro-blog/preview-app-and-driver-compatibility-insights-in-endpoint/ba-p/3482136", + "redirect_document_id": false } ] } diff --git a/windows/configuration/wcd/wcd-policies.md b/windows/configuration/wcd/wcd-policies.md index 68c83b8121..dda5503d8b 100644 --- a/windows/configuration/wcd/wcd-policies.md +++ b/windows/configuration/wcd/wcd-policies.md @@ -455,7 +455,7 @@ ConfigureTelemetryOptInSettingsUx | This policy setting determines whether peopl | DisableDeviceDelete | Specify whether the delete diagnostic data is enabled in the Diagnostic & Feedback Settings page. | ✅ | | | | | DisableDataDiagnosticViewer | Configure whether users can enable and launch the Diagnostic Data Viewer from the Diagnostic & Feedback Settings page. | ✅ | | | | | [DisableOneDriveFileSync](/windows/client-management/mdm/policy-configuration-service-provider#system-disableonedrivefilesync) | Prevent apps and features from working with files on OneDrive. | ✅ | | | | -| [LimitEnhancedDiagnosticDataWindowsAnalytics](/windows/client-management/mdm/policy-csp-system#system-limitenhanceddiagnosticdatawindowsanalytics) | This policy setting, in combination with the System/AllowTelemetry policy setting, enables organizations to send Microsoft a specific set of diagnostic data for IT insights via Windows Analytics services. To enable this behavior you must enable this policy setting, and set Allow Telemetry to level 2 (Enhanced). When you configure these policy settings, a basic level of diagnostic data plus other events that are required for Windows Analytics are sent to Microsoft. These events are documented in [Windows 10, version 1703 basic level Windows diagnostic events and fields](/windows/privacy/enhanced-diagnostic-data-windows-analytics-events-and-fields). Enabling enhanced diagnostic data in the System/AllowTelemetry policy in combination with not configuring this policy will also send the required events for Windows Analytics, plus other enhanced level diagnostic data. This setting has no effect on computers configured to send full, basic or security level diagnostic data to Microsoft. If you disable or don't configure this policy setting, then the level of diagnostic data sent to Microsoft is determined by the System/AllowTelemetry policy. | ✅ | | | | +| [LimitEnhancedDiagnosticDataWindowsAnalytics](/windows/client-management/mdm/policy-csp-system#limitenhanceddiagnosticdatawindowsanalytics) | This policy setting, in combination with the System/AllowTelemetry policy setting, enables organizations to send Microsoft a specific set of diagnostic data for IT insights via Windows Analytics services. To enable this behavior you must enable this policy setting, and set Allow Telemetry to level 2 (Enhanced). When you configure these policy settings, a basic level of diagnostic data plus other events that are required for Windows Analytics are sent to Microsoft. Enabling enhanced diagnostic data in the System/AllowTelemetry policy in combination with not configuring this policy will also send the required events for Windows Analytics, plus other enhanced level diagnostic data. This setting has no effect on computers configured to send full, basic or security level diagnostic data to Microsoft. If you disable or don't configure this policy setting, then the level of diagnostic data sent to Microsoft is determined by the System/AllowTelemetry policy. | ✅ | | | | ## TextInput diff --git a/windows/privacy/enhanced-diagnostic-data-windows-analytics-events-and-fields.md b/windows/privacy/enhanced-diagnostic-data-windows-analytics-events-and-fields.md deleted file mode 100644 index c31afd7cdc..0000000000 --- a/windows/privacy/enhanced-diagnostic-data-windows-analytics-events-and-fields.md +++ /dev/null @@ -1,424 +0,0 @@ ---- -title: Enhanced diagnostic data required by Windows Analytics (Windows 10) -description: Use this article to learn more about the limit enhanced diagnostic data events policy used by Desktop Analytics -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 10/12/2017 -ms.topic: reference ---- - - -# Windows 10 diagnostic data events and fields collected through the limit enhanced diagnostic data policy - - **Applies to** - -- Windows 10, version 1709 and newer - -> [!IMPORTANT] -> - The Upgrade Readiness and Device Health solutions of Windows Analytics were retired on January 31, 2020. -> - Desktop Analytics is deprecated and was retired on November 30, 2022. - -Desktop Analytics reports are powered by diagnostic data not included in the Basic level. - -In Windows 10, version 1709, we introduced a new feature: "Limit Enhanced diagnostic data to the minimum required by Windows Analytics". When enabled, this feature limits the operating system diagnostic data events included in the Enhanced level to only the events described below. The Enhanced level also includes limited crash reports, which are not described below. For more information on the Enhanced level, see [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). - -With the retirement of Windows Analytics, this policy will continue to be supported by Desktop Analytics, but will not include Office related diagnostic data. - -## KernelProcess.AppStateChangeSummary -This event summarizes application usage and performance characteristics to help Microsoft improve performance and reliability. Organizations can use this event with Desktop Analytics to gain insights into application reliability. - -The following fields are available: - -- **CommitChargeAtExit_Sum:** Total memory commit charge for a process when it exits -- **CommitChargePeakAtExit_Sum**: Total peak memory commit charge for a process when it exits -- **ContainerId:** Server Silo Container ID -- **CrashCount:** Number of crashes for a process instance -- **CycleCountAtExit_Sum:** Total processor cycles for a process when it exited -- **ExtraInfoFlags:** Flags indicating internal states of the logging -- **GhostCount_Sum:** Total number of instances where the application stopped responding -- **HandleCountAtExit_Sum:** Total handle count for a process when it exits -- **HangCount_Max:** Maximum number of hangs detected -- **HangCount_Sum:** Total number of application hangs that are detected -- **HardFaultCountAtExit_Sum:** Total number of hard page faults detected for a process when it exits -- **HeartbeatCount:** Heartbeats logged for this summary -- **HeartbeatSuspendedCount:** Heartbeats logged for this summary where the process was suspended -- **LaunchCount:** Number of process instances started -- **LicenseType:** Reserved for future use -- **ProcessDurationMS_Sum:** Total duration of wall clock process instances -- **ReadCountAtExit_Sum:** Total IO reads for a process when it exited -- **ReadSizeInKBAtExit_Sum:** Total IO read size for a process when it exited -- **ResumeCount:** Number of times a process instance has resumed -- **RunningDurationMS_Sum:** Total uptime -- **SuspendCount:** Number of times a process instance was suspended -- **TargetAppId:** Application identifier -- **TargetAppType:** Application type -- **TargetAppVer:** Application version -- **TerminateCount:** Number of times a process terminated -- **WriteCountAtExit_Sum:** Total number of IO writes for a process when it exited -- **WriteSizeInKBAtExit_Sum:** Total size of IO writes for a process when it exited - -## Microsoft.Office.TelemetryEngine.IsPreLaunch -Applicable for Office UWP applications. This event is fired when an Office application is initiated for the first-time post upgrade/install from the store. It's part of basic diagnostic data. It's used to track whether a particular session is a launch session or not. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **SessionID:** ID of the session - -## Microsoft.Office.SessionIdProvider.OfficeProcessSessionStart -This event sends basic information upon the start of a new Office session. It's used to count the number of unique sessions seen on a given device. The event is used as a heartbeat event to ensure that the application is running on a device. In addition, it serves as a critical signal for overall application reliability. - -- **AppSessionGuid:** ID of the session that maps to the process of the application -- **processSessionId:** ID of the session that maps to the process of the application - -## Microsoft.Office.TelemetryEngine.SessionHandOff -Applicable to Win32 Office applications. This event helps us understand whether there was a new session created to handle a user-initiated file open event. It is a critical diagnostic information that is used to derive reliability signal and ensure that the application is working as expected. - -- **appVersionBuild:** Third part Build version of the application *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **childSessionID:** ID of the session that was created to handle the user initiated file open -- **parentSessionId:** ID of the session that was already running - -## Microsoft.Office.CorrelationMetadata.UTCCorrelationMetadata -Collects Office metadata through UTC to compare with equivalent data collected through the Office telemetry pipeline to check correctness and completeness of data. - -- **abConfigs:** List of features enabled for this session -- **abFlights:** List of features enabled for this session -- **AppSessionGuid:** ID of the session -- **appVersionBuild:** Third part Build version of the application *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRevision:** Fourth part of the version *.*.*.XXXXX -- **audienceGroup:** Is this group part of the insiders or production? -- **audienceId:** ID of the audience setting -- **channel:** Are you part of Semi annual channel or Semi annual channel-Targeted? -- **deviceClass:** Is this device a desktop device or a mobile device? -- **impressionId:** What features were available to you in this session -- **languageTag:** Language of the app -- **officeUserID:** A unique identifier tied to the office installation on a particular device. -- **osArchitecture:** Is the machine 32 bit or 64 bit? -- **osEnvironment:** Is this app a win32 app or a UWP app? -- **osVersionString:** Version of the OS -- **sessionID:** ID of the session - -## Microsoft.Office.ClickToRun.UpdateStatus -Applicable to all Win32 applications. Helps us understand the status of the update process of the office suite (Success or failure with error details). - -- **build:** App version -- **channel:** Is this part of GA Channel? -- **errorCode:** What error occurred during the upgrade process? -- **errorMessage:** what was the error message during the upgrade process? -- **status:** Was the upgrade successful or not? -- **targetBuild:** What app version were we trying to upgrade to? - -## Microsoft.Office.TelemetryEngine.FirstIdle -This event is fired when the telemetry engine within an office application is ready to send telemetry. Used for understanding whether there are issues in telemetry. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **officeUserID:** ID of the installation tied to the device. It does not map to a particular user -- **SessionID:** ID of the session - -## Microsoft.Office.TelemetryEngine.FirstProcessed -This event is fired when the telemetry engine within an office application has processed the rules or the list of events that we need to collect. Used for understanding whether there are issues in telemetry. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **officeUserID:** ID of the installation tied to the device. It does not map to a particular user -- **SessionID:** ID of the session - -## Microsoft.Office.TelemetryEngine.FirstRuleRequest -This event is fired when the telemetry engine within an office application has received the first rule or list of events that need to be sent by the app. Used for understanding whether there are issues in telemetry. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **officeUserID:** ID of the installation tied to the device. It does not map to a particular user -- **SessionID:** ID of the session - -## Microsoft.Office.TelemetryEngine.Init -This event is fired when the telemetry engine within an office application has been initialized or not. Used for understanding whether there are issues in telemetry. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **officeUserID:** ID of the installation tied to the device. It does not map to a particular user -- **SessionID:** ID of the session - -## Microsoft.Office.TelemetryEngine.Resume -This event is fired when the application resumes from sleep state. Used for understanding whether there are issues in the application life cycle. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **maxSequenceIdSeen:** How many events from this session have seen so far? -- **officeUserID:** ID of the installation tied to the device. It does not map to a particular user -- **rulesSubmittedBeforeResume:** How many events were submitted before the process was resumed? -- **SessionID:** ID of the session - -## Microsoft.Office.TelemetryEngine.RuleRequestFailed -This event is fired when the telemetry engine within an office application fails to retrieve the rules containing the list of telemetry events. Used for understanding whether there are issues in telemetry. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **officeUserID:** ID of the installation tied to the device. It does not map to a particular user -- **SessionID:** ID of the session - -## Microsoft.Office.TelemetryEngine.RuleRequestFailedDueToClientOffline -This event is fired when the telemetry engine within an office application fails to retrieve the rules containing the list of telemetry events, when the device is offline. Used for understanding whether there are issues in telemetry. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **officeUserID:** ID of the installation tied to the device. It does not map to a particular user -- **SessionID:** ID of the session - -## Microsoft.Office.TelemetryEngine.ShutdownComplete -This event is fired when the telemetry engine within an office application has processed the rules or the list of events that we need to collect. Useful for understanding whether a particular crash is happening during an app-shutdown, and could potentially lead in data loss or not. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **maxSequenceIdSeen:** How many events from this session have seen so far? -- **officeUserID:** ID of the installation tied to the device. It does not map to a particular user -- **rulesSubmittedBeforeResume:** How many events were submitted before the process was resumed? -- **SessionID:** ID of the session - -## Microsoft.Office.TelemetryEngine.ShutdownStart -This event is fired when the telemetry engine within an office application has been uninitialized, and the application is shutting down. Useful for understanding whether a particular crash is happening during an app-shutdown, and could potentially lead in data loss or not. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **officeUserID:** ID of the installation tied to the device. It does not map to a particular user -- **rulesSubmittedBeforeResume:** How many events were submitted before the process was resumed? -- **SessionID:** ID of the session - -## Microsoft.Office.TelemetryEngine.SuspendComplete -This event is fired when the telemetry engine within an office application has processed the rules or the list of events that we need to collect. Used for understanding whether there are issues in telemetry. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **maxSequenceIdSeen:** How many events from this session have seen so far? -- **officeUserID:** ID of the installation tied to the device. It does not map to a particular user -- **rulesSubmittedBeforeResume:** How many events were submitted before the process was resumed? -- **SessionID:** ID of the session -- **SuspendType:** Type of suspend - -## Microsoft.Office.TelemetryEngine.SuspendStart -This event is fired when the office application suspends as per app life-cycle change. Used for understanding whether there are issues in the application life cycle. - -- **appVersionBuild:** Third part of the version *.*.XXXXX.* -- **appVersionMajor:** First part of the version X.*.*.* -- **appVersionMinor:** Second part of the version *.X.*.* -- **appVersionRev:** Fourth part of the version *.*.*.XXXXX -- **maxSequenceIdSeen:** How many events from this session have seen so far? -- **officeUserID:** ID of the installation tied to the device. It does not map to a particular user -- **rulesSubmittedBeforeResume:** How many events were submitted before the process was resumed? -- **SessionID:** ID of the session -- **SuspendType:** Type of suspend - -## Microsoft.OSG.OSS.CredProvFramework.ReportResultStop -This event indicates the result of an attempt to authenticate a user with a credential provider. It helps Microsoft to improve sign-in reliability. Using this event with Desktop Analytics can help organizations monitor and improve sign-in success for different methods (for example, biometric) on managed devices. - -The following fields are available: - -- **CredTileProviderId:** ID of the Credential Provider -- **IsConnectedUser:** Flag indicating whether a user is connected or not -- **IsPLAPTile:** Flag indicating whether this credential tile is a pre-logon access provider or not -- **IsRemoteSession:** Flag indicating whether the session is remote or not -- **IsV2CredProv:** Flag indicating whether the credential provider of V2 or not -- **OpitonalStatusText:** Status text -- **ProcessImage:** Image path to the process -- **ProviderId:** Credential provider ID -- **ProviderStatusIcon:** Indicates which status icon should be displayed -- **ReturnCode:** Output of the ReportResult function -- **SessionId:** Session identifier -- **Sign-in error status:** The sign-in error status -- **SubStatus:** Sign-in error substatus -- **UserTag:** Count of the number of times a user has selected a provider - -## Microsoft.Windows.Kernel.Power.OSStateChange -This event denotes the transition between operating system states (On, Off, Sleep, etc.). By using this event with Desktop Analytics, organizations can monitor reliability and performance of managed devices. - -The following fields are available: - -- **AcPowerOnline:** If "TRUE," the device is using AC power. If "FALSE," the device is using battery power. -- **ActualTransitions:** The number of transitions between operating system states since the last system boot -- **BatteryCapacity:** Maximum battery capacity in mWh -- **BatteryCharge:** Current battery charge as a percentage of total capacity -- **BatteryDischarging:** Flag indicating whether the battery is discharging or charging -- **BootId:** Total boot count since the operating system was installed -- **BootTimeUTC:** Date and time of a particular boot event (identified by BootId) -- **EnergyChangeV2:** A snapshot value in mWh reflecting a change in power usage -- **EnergyChangeV2Flags:** Flags for disambiguating EnergyChangeV2 context -- **EventSequence:** A sequential number used to evaluate the completeness of the data -- **LastStateTransition:** ID of the last operating system state transition -- **LastStateTransitionSub:** ID of the last operating system substate transition -- **StateDurationMS:** Number of milliseconds spent in the last operating system state -- **StateTransition:** ID of the operating system state the system is transitioning to -- **StateTransitionSub:** ID of the operating system substate the system is transitioning to -- **TotalDurationMS:** Total time (in milliseconds) spent in all states since the last boot -- **TotalUptimeMS:** Total time (in milliseconds) the device was in Up or Running states since the last boot -- **TransitionsToOn:** Number of transitions to the Powered On state since the last boot -- **UptimeDeltaMS:** Total time (in milliseconds) added to Uptime since the last event - -## Microsoft.Windows.LogonController.LogonAndUnlockSubmit -Sends details of the user attempting to sign into or unlock the device. - -The following fields are available: - -- **isSystemManagedAccount:** Indicates if the user's account is System Managed -- **isUnlockScenario:** Flag indicating whether the event is a Logon or an Unlock -- **userType:** Indicates the user type: 0 = unknown; 1 = local; 2 = Active Directory domain user; 3 = Microsoft Account; 4 = Azure Active Directory user - -## Microsoft.Windows.LogonController.SignInFailure -Sends details about any error codes detected during a failed sign-in. - -The following fields are available: - -- **ntsStatus:** The NTSTATUS error code status returned from an attempted sign-in -- **ntsSubstatus:** The NTSTATUS error code substatus returned from an attempted sign-in - -## Microsoft.Windows.Security.Biometrics.Service.BioServiceActivityCapture -Indicates that a biometric capture was compared to known templates - -The following fields are available: - -- **captureDetail:** Result of biometric capture, either matched to an enrollment or an error -- **captureSuccessful:** Indicates whether a biometric capture was successfully matched or not -- **hardwareId:** ID of the sensor that collected the biometric capture -- **isSecureSensor:** Flag indicating whether a biometric sensor was in enhanced security mode -- **isTrustletRunning:** Indicates whether an enhanced security component is currently running -- **isVsmCfg:** Flag indicating whether virtual secure mode is configured or not - -## Microsoft.Windows.Security.Winlogon.SystemBootStop -System boot has completed. - -The following field is available: - -- **ticksSinceBoot:** Duration of boot event (milliseconds) - -## Microsoft.Windows.Shell.Desktop.LogonFramework.AllLogonTasks -This event summarizes the logon procedure to help Microsoft improve performance and reliability. By using this event with Desktop Analytics, organizations can help identify logon problems on managed devices. - -The following fields are available: - -- **isAadUser:** Indicates whether the current logon is for an Azure Active Directory account -- **isDomainUser:** Indicates whether the current logon is for a domain account -- **isMSA:** Indicates whether the current logon is for a Microsoft Account -- **logonOptimizationFlags:** Flags indicating optimization settings for this logon session -- **logonTypeFlags:** Flags indicating logon type (first logon vs. a later logon) -- **systemManufacturer:** Device manufacturer -- **systemProductName:** Device product name -- **wilActivity:** Indicates errors in the task to help Microsoft improve reliability. - -## Microsoft.Windows.Shell.Desktop.LogonFramework.LogonTask -This event describes system tasks that are part of the user logon sequence and helps Microsoft to improve reliability. - -The following fields are available: - -- **isStartWaitTask:** Flag indicating whether the task starts a background task -- **isWaitMethod:** Flag indicating the task is waiting on a background task -- **logonTask:** Indicates which logon step is currently occurring -- **wilActivity:** Indicates errors in the task to help Microsoft improve reliability. - -## Microsoft.Windows.Shell.Explorer.DesktopReady -Initialization of Explorer is complete. - -## Microsoft-Windows-Security-EFS-EDPAudit-ApplicationLearning.EdpAuditLogApplicationLearning -For a device subject to Windows Information Protection policy, learning events are generated when an app encounters a policy boundary (for example, trying to open a work document from a personal app). These events help the Windows Information Protection administrator tune policy rules and prevent unnecessary user disruption. - -The following fields are available: - -- **actiontype:** Indicates what type of resource access the app was attempting (for example, opening a local document vs. a network resource) when it encountered a policy boundary. Useful for Windows Information Protection administrators to tune policy rules. -- **appIdType:** Based on the type of application, this field indicates what type of app rule a Windows Information Protection administrator would need to create for this app. -- **appname:** App that triggered the event -- **status:** Indicates whether errors occurred during Windows Information Protection learning events - -## Win32kTraceLogging.AppInteractivitySummary -Summarizes which app windows are being used (for example, have focus) to help Microsoft improve compatibility and user experience. Also helps organizations (by using Desktop Analytics) to understand and improve application reliability on managed devices. - -The following fields are available: - -- **AggregationDurationMS:** Actual duration of aggregation period (in milliseconds) -- **AggregationFlags:** Flags denoting aggregation settings -- **AggregationPeriodMS:** Intended duration of aggregation period (in milliseconds) -- **AggregationStartTime:** Start date and time of AppInteractivity aggregation -- **AppId:** Application ID for usage -- **AppSessionId:** GUID identifying the application's usage session -- **AppVersion:** Version of the application that produced this event -- **AudioInMS:** Audio capture duration (in milliseconds) -- **AudioOutMS:** Audio playback duration (in milliseconds) -- **BackgroundMouseSec:** Indicates that there was a mouse hover event while the app was in the background -- **BitPeriodMS:** Length of the period represented by InFocusBitmap -- **CommandLineHash:** A hash of the command line -- **CompositionDirtyGeneratedSec:** Represents the amount of time (in seconds) during which the active app reported that it had an update -- **CompositionDirtyPropagatedSec:** Total time (in seconds) that a separate process with visuals hosted in an app signaled updates -- **CompositionRenderedSec:** Time (in seconds) that an app's contents were rendered -- **EventSequence:** [need more info] -- **FocusLostCount:** Number of times that an app lost focus during the aggregation period -- **GameInputSec:** Time (in seconds) there was user input using a game controller -- **HidInputSec:** Time (in seconds) there was user input using devices other than a game controller -- **InFocusBitmap:** Series of bits representing application having and losing focus -- **InFocusDurationMS:** Total time (in milliseconds) the application had focus -- **InputSec:** Total number of seconds during which there was any user input -- **InteractiveTimeoutPeriodMS:** Total time (in milliseconds) that inactivity expired interactivity sessions -- **KeyboardInputSec:** Total number of seconds during which there was keyboard input -- **MonitorFlags:** Flags indicating app use of individual monitor(s) -- **MonitorHeight:** Number of vertical pixels in the application host monitor resolution -- **MonitorWidth:** Number of horizontal pixels in the application host monitor resolution -- **MouseInputSec:** Total number of seconds during which there was mouse input -- **NewProcessCount:** Number of new processes contributing to the aggregate -- **PartATransform_AppSessionGuidToUserSid:** Flag that influences how other parts of the event are constructed -- **PenInputSec:** Total number of seconds during which there was pen input -- **SpeechRecognitionSec:** Total number of seconds of speech recognition -- **SummaryRound:** Incrementing number indicating the round (batch) being summarized -- **TargetAsId:** Flag that influences how other parts of the event are constructed -- **TotalUserOrDisplayActiveDurationMS:** Total time the user or the display was active (in milliseconds) -- **TouchInputSec:** Total number of seconds during which there was touch input -- **UserActiveDurationMS:** Total time that the user was active including all input methods -- **UserActiveTransitionCount:** Number of transitions in and out of user activity -- **UserOrDisplayActiveDurationMS:** Total time the user was using the display -- **ViewFlags:** Flags denoting  properties of an app view (for example, special VR view or not) -- **WindowFlags:** Flags denoting runtime properties of an app window -- **WindowHeight:** Number of vertical pixels in the application window -- **WindowWidth:** Number of horizontal pixels in the application window - -## Revisions - -### PartA_UserSid removed -A previous revision of this list stated that a field named PartA_UserSid was a member of the event Microsoft.Windows.LogonController.LogonAndUnlockSubmit. This statement was incorrect. The list has been updated to reflect that no such field is present in the event. - -### Office events added -In Windows 10, version 1809 (also applies to versions 1709 and 1803 starting with [KB 4462932](https://support.microsoft.com/help/4462932/windows-10-update-kb4462932) and [KB 4462933](https://support.microsoft.com/help/4462933/windows-10-update-kb4462933) respectively), 16 events were added, describing Office app launch and availability. These events were added to improve the precision of Office data in Windows Analytics. - -> [!NOTE] -> Office data will no longer be provided through this policy in Desktop Analytics. - -### CertAnalytics events removed -In Windows 10, version 1809 (also applies to versions 1709 and 1803 starting with [KB 4462932](https://support.microsoft.com/help/4462932/windows-10-update-kb4462932) and [KB 4462933](https://support.microsoft.com/help/4462933/windows-10-update-kb4462933) respectively), 3 "CertAnalytics" events were removed, as they are no longer required for Desktop Analytics. - ->[!NOTE] ->You can use the Windows Diagnostic Data Viewer to observe and review events and their fields as described in this topic. diff --git a/windows/privacy/toc.yml b/windows/privacy/toc.yml index b6ad626c23..a90650c92d 100644 --- a/windows/privacy/toc.yml +++ b/windows/privacy/toc.yml @@ -37,8 +37,6 @@ href: windows-diagnostic-data.md - name: Windows 10, version 1703 optional diagnostic data href: windows-diagnostic-data-1703.md - - name: Windows 10 diagnostic data events and fields collected through the limit enhanced diagnostic data policy - href: enhanced-diagnostic-data-windows-analytics-events-and-fields.md - name: Manage Windows connected experiences items: - name: Manage connections from Windows operating system components to Microsoft services From fe428d42fef36a9f8d9f7ac3f42369dc1d3fea40 Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Fri, 19 Jul 2024 14:44:50 -0700 Subject: [PATCH 058/108] Fix formatting error in privacy redirection file --- .openpublishing.redirection.windows-privacy.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.openpublishing.redirection.windows-privacy.json b/.openpublishing.redirection.windows-privacy.json index 53cc97b7c2..e280e5a7ba 100644 --- a/.openpublishing.redirection.windows-privacy.json +++ b/.openpublishing.redirection.windows-privacy.json @@ -56,7 +56,7 @@ "redirect_document_id": false }, { - "source_path": "/windows/privacy/enhanced-diagnostic-data-windows-analytics-events-and-fields.md", + "source_path": "windows/privacy/enhanced-diagnostic-data-windows-analytics-events-and-fields.md", "redirect_url": "https://techcommunity.microsoft.com/t5/windows-it-pro-blog/preview-app-and-driver-compatibility-insights-in-endpoint/ba-p/3482136", "redirect_document_id": false } From add1d6dbb1d2de05c7638a7f8e3e270fb5b2f42d Mon Sep 17 00:00:00 2001 From: Gary Moore Date: Mon, 22 Jul 2024 08:16:40 -0700 Subject: [PATCH 059/108] Replace second-level enumerators (a, b, c) with automatic numbering Second-level list items don't get proper hanging indentation unless they rely on automatic numbering (1, 1, 1). If we instead have a, b, c, etc. in Markdown, indentation is not correct. --- .../test-scenarios-md-app-guard.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md index 8e457f7603..db694768cc 100644 --- a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md +++ b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md @@ -47,17 +47,17 @@ Before you can use Application Guard in managed mode, you must install Windows 1 3. Set up the Network Isolation settings in Group Policy: - a. Select the **Windows** icon, type `Group Policy`, and then select **Edit Group Policy**. + 1. Select the **Windows** icon, type `Group Policy`, and then select **Edit Group Policy**. - b. Go to the **Administrative Templates\Network\Network Isolation\Enterprise resource domains hosted in the cloud** setting. + 1. Go to the **Administrative Templates\Network\Network Isolation\Enterprise resource domains hosted in the cloud** setting. - c. For the purposes of this scenario, type `.microsoft.com` into the **Enterprise cloud resources** box. + 1. For the purposes of this scenario, type `.microsoft.com` into the **Enterprise cloud resources** box. ![Group Policy editor with Enterprise cloud resources setting.](images/appguard-gp-network-isolation.png) - d. Go to the **Administrative Templates\Network\Network Isolation\Domains categorized as both work and personal** setting. + 1. Go to the **Administrative Templates\Network\Network Isolation\Domains categorized as both work and personal** setting. - e. For the purposes of this scenario, type `bing.com` into the **Neutral resources** box. + 1. For the purposes of this scenario, type `bing.com` into the **Neutral resources** box. ![Group Policy editor with Neutral resources setting.](images/appguard-gp-network-isolation-neutral.png) From 846d3b88d20892ccb014806f09813c520bd81c6f Mon Sep 17 00:00:00 2001 From: Gary Moore Date: Mon, 22 Jul 2024 08:18:37 -0700 Subject: [PATCH 060/108] Correct indentation of images in list items --- .../test-scenarios-md-app-guard.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md index db694768cc..37a32b008c 100644 --- a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md +++ b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md @@ -26,8 +26,8 @@ You can see how an employee would use standalone mode with Application Guard. 3. Wait for Application Guard to set up the isolated environment. - >[!NOTE] - >Starting Application Guard too quickly after restarting the device might cause it to take a bit longer to load. However, subsequent starts should occur without any perceivable delays. + > [!NOTE] + > Starting Application Guard too quickly after restarting the device might cause it to take a bit longer to load. However, subsequent starts should occur without any perceivable delays. 4. Go to an untrusted, but safe URL (for this example, we used msn.com) and view the new Microsoft Edge window, making sure you see the Application Guard visual cues. @@ -53,13 +53,13 @@ Before you can use Application Guard in managed mode, you must install Windows 1 1. For the purposes of this scenario, type `.microsoft.com` into the **Enterprise cloud resources** box. - ![Group Policy editor with Enterprise cloud resources setting.](images/appguard-gp-network-isolation.png) + ![Group Policy editor with Enterprise cloud resources setting.](images/appguard-gp-network-isolation.png) 1. Go to the **Administrative Templates\Network\Network Isolation\Domains categorized as both work and personal** setting. 1. For the purposes of this scenario, type `bing.com` into the **Neutral resources** box. - ![Group Policy editor with Neutral resources setting.](images/appguard-gp-network-isolation-neutral.png) + ![Group Policy editor with Neutral resources setting.](images/appguard-gp-network-isolation-neutral.png) 4. Go to the **Computer Configuration\Administrative Templates\Windows Components\Microsoft Defender Application Guard\Turn on Microsoft Defender Application Guard in Managed Mode** setting. @@ -67,8 +67,8 @@ Before you can use Application Guard in managed mode, you must install Windows 1 ![Group Policy editor with Turn On/Off setting.](images/appguard-gp-turn-on.png) - >[!NOTE] - >Enabling this setting verifies that all the necessary settings are properly configured on your employee devices, including the network isolation settings set earlier in this scenario. + > [!NOTE] + > Enabling this setting verifies that all the necessary settings are properly configured on your employee devices, including the network isolation settings set earlier in this scenario. 6. Start Microsoft Edge and type `https://www.microsoft.com`. From deebe1925534a39de0686438eea3d607f4f5cb69 Mon Sep 17 00:00:00 2001 From: Gary Moore Date: Mon, 22 Jul 2024 08:20:58 -0700 Subject: [PATCH 061/108] Add blank lines between elements for consistent layout --- .../test-scenarios-md-app-guard.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md index 37a32b008c..275a28dd9e 100644 --- a/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md +++ b/windows/security/application-security/application-isolation/microsoft-defender-application-guard/test-scenarios-md-app-guard.md @@ -230,10 +230,13 @@ Once a user has the extension and its companion app installed on their enterpris 1. Open either Firefox or Chrome, whichever browser you have the extension installed on. 2. Navigate to an organizational website. In other words, an internal website maintained by your organization. You might see this evaluation page for an instant before the site is fully loaded. + ![The evaluation page displayed while the page is being loaded, explaining that the user must wait.](images/app-guard-chrome-extension-evaluation-page.png) 3. Navigate to a nonenterprise, external website site, such as [www.bing.com](https://www.bing.com). The site should be redirected to Microsoft Defender Application Guard Edge. + ![A non-enterprise website being redirected to an Application Guard container -- the text displayed explains that the page is being opened in Application Guard for Microsoft Edge.](images/app-guard-chrome-extension-launchIng-edge.png) -4. Open a new Application Guard window, by selecting the Microsoft Defender Application Guard icon, then **New Application Guard Window** +4. Open a new Application Guard window, by selecting the Microsoft Defender Application Guard icon, then **New Application Guard Window**. + ![The "New Application Guard Window" option is highlighted in red](images/app-guard-chrome-extension-new-app-guard-page.png) From 5cb22dcc7a2ab5b14bd7ca11517d0067678e47fb Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 22 Jul 2024 12:37:55 -0400 Subject: [PATCH 062/108] Update Universal Print data handling link --- .../book/cloud-services-protect-your-work-information.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/book/cloud-services-protect-your-work-information.md b/windows/security/book/cloud-services-protect-your-work-information.md index 789ac396b8..97aafdbec1 100644 --- a/windows/security/book/cloud-services-protect-your-work-information.md +++ b/windows/security/book/cloud-services-protect-your-work-information.md @@ -232,7 +232,7 @@ Universal Print has integrated with Administrative Units in Microsoft Entra ID t :::image type="icon" source="images/learn-more.svg" border="false"::: **Learn more:** - [Universal Print](https://www.microsoft.com/microsoft-365/windows/universal-print) -- [Data storage in Universal Print](/universal-print/fundamentals/universal-print-encryption) +- [Data handling in Universal Print](/universal-print/data-handling) - [Delegate Printer Administration with Administrative Units](/universal-print/portal/delegated-admin) For customers who want to stay on Print Servers, we recommend using the Microsoft IPP Print driver. For features beyond what's covered in the standard IPP driver, use Print Support Applications (PSA) for Windows from the respective printer OEM. From 6877f31032f768a55178bf889ccfc1fafa7ee15c Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Mon, 22 Jul 2024 10:45:38 -0700 Subject: [PATCH 063/108] Fix broken link to ESC content --- ...windows-operating-system-components-to-microsoft-services.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 3566b7a050..ce375a294b 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 @@ -425,7 +425,7 @@ To turn off Insider Preview builds for Windows 10 and Windows 11: ### 8. Internet Explorer > [!NOTE] -> When attempting to use Internet Explorer on any edition of Windows Server be aware there are restrictions enforced by [Enhanced Security Configuration (ESC)](/troubleshoot/browsers/enhanced-security-configuration-faq). The following Group Policies and Registry Keys are for user interactive scenarios rather than the typical idle traffic scenario. Find the Internet Explorer Group Policy objects under **Computer Configuration > Administrative Templates > Windows Components > Internet Explorer** and make these settings: +> When attempting to use Internet Explorer on any edition of Windows Server be aware there are restrictions enforced by [Enhanced Security Configuration (ESC)](/previous-versions/troubleshoot/browsers/security-privacy/enhanced-security-configuration-faq). The following Group Policies and Registry Keys are for user interactive scenarios rather than the typical idle traffic scenario. Find the Internet Explorer Group Policy objects under **Computer Configuration > Administrative Templates > Windows Components > Internet Explorer** and make these settings: | Policy | Description | |------------------------------------------------------|-----------------------------------------------------------------------------------------------------| From e403e0bd0e351f63f9a83a993e03a5f22b72eb01 Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:50:07 -0400 Subject: [PATCH 064/108] Update Windows security introduction --- windows/security/introduction.md | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/windows/security/introduction.md b/windows/security/introduction.md index 073a4309b9..53edc2cc2c 100644 --- a/windows/security/introduction.md +++ b/windows/security/introduction.md @@ -1,24 +1,17 @@ --- title: Introduction to Windows security description: System security book. -ms.date: 09/01/2023 -ms.topic: tutorial +ms.date: 07/22/2024 +ms.topic: overview ms.author: paoloma -ms.collection: - - essentials-security -content_well_notification: - - AI-contribution author: paolomatarazzo -appliesto: - - ✅ Windows 11 -ai-usage: ai-assisted --- # Introduction to Windows security The acceleration of digital transformation and the expansion of both remote and hybrid work brings new opportunities to organizations, communities, and individuals. This expansion introduces new threats and risks. -Organizations worldwide are adopting a **Zero Trust** security model based on the premise that no person or device anywhere can have access until safety and integrity is proven. Windows 11 is built on Zero Trust principles to enable hybrid productivity and new experiences anywhere, without compromising security. Windows 11 raises the [security baselines](operating-system-security/device-management/windows-security-configuration-framework/windows-security-baselines.md) with new requirements for advanced hardware and software protection that extends from chip to cloud. +Organizations worldwide are adopting a **Zero Trust** security model based on the premise that no person or device anywhere can have access until safety and integrity is proven. Windows 11 is built on Zero Trust principles to enable hybrid productivity and new experiences anywhere, without compromising security. Windows 11 raises the security baselines with new requirements for advanced hardware and software protection that extends from chip to cloud. ## How Windows 11 enables Zero Trust protection @@ -44,11 +37,11 @@ In Windows 11, hardware and software work together to protect the operating syst To help keep personal and business information protected and private, Windows 11 has multiple layers of application security that safeguard critical data and code integrity. Application isolation and controls, code integrity, privacy controls, and least-privilege principles enable developers to build in security and privacy from the ground up. This integrated security protects against breaches and malware, helps keep data private, and gives IT administrators the controls they need. -In Windows 11, [Microsoft Defender Application Guard](/windows-hardware/design/device-experiences/oem-app-guard) uses Hyper-V virtualization technology to isolate untrusted websites and Microsoft Office files in containers, separate from and unable to access the host operating system and enterprise data. To protect privacy, Windows 11 also provides more controls over which apps and features can collect and use data such as the device's location, or access resources like camera and microphone. +In Windows 11, [Microsoft Defender Application Guard](application-security/application-isolation/microsoft-defender-application-guard/md-app-guard-overview.md) uses Hyper-V virtualization technology to isolate untrusted websites and Microsoft Office files in containers, separate from and unable to access the host operating system and enterprise data. To protect privacy, Windows 11 also provides more controls over which apps and features can collect and use data such as the device's location, or access resources like camera and microphone. ### Secured identities -Passwords have been an important part of digital security for a long time, and they're also a top target for cybercriminals. Windows 11 provides powerful protection against credential theft with chip-level hardware security. Credentials are protected by layers of hardware and software security such as [TPM 2.0](information-protection/tpm/trusted-platform-module-overview.md), [VBS](/windows-hardware/design/device-experiences/oem-vbs), and/or [Credential Guard](identity-protection/credential-guard/index.md), making it harder for attackers to steal credentials from a device. With [Windows Hello for Business](identity-protection/hello-for-business/index.md), users can quickly sign in with face, fingerprint, or PIN for passwordless protection. Windows 11 also supports [FIDO2 security keys](/azure/active-directory/authentication/howto-authentication-passwordless-security-key) for passwordless authentication. +Passwords have been an important part of digital security for a long time, and they're also a top target for cybercriminals. Windows 11 provides powerful protection against credential theft with chip-level hardware security. Credentials are protected by layers of hardware and software security such as [TPM 2.0](information-protection/tpm/trusted-platform-module-overview.md), [VBS](/windows-hardware/design/device-experiences/oem-vbs), and/or [Credential Guard](identity-protection/credential-guard/index.md), making it harder for attackers to steal credentials from a device. With [Windows Hello for Business](identity-protection/hello-for-business/index.md), users can quickly sign in with face, fingerprint, or PIN for passwordless protection. Windows 11 also supports [FIDO2 security keys](/azure/active-directory/authentication/howto-authentication-passwordless-security-key) and [passkeys](identity-protection/passkeys/index.md) for passwordless authentication. ### Connecting to cloud services @@ -58,4 +51,4 @@ Microsoft offers comprehensive cloud services for identity, storage, and access To learn more about the security features included in Windows 11, read the [Windows 11 Security Book](book/index.md). - + From e2e86743558a5a846d2cfc68d77a2ca735d38b92 Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:53:53 -0400 Subject: [PATCH 065/108] Update Windows 11 version in education/windows/index.yml and fix date in windows/security/operating-system-security/data-protection/encrypted-hard-drive.md --- education/windows/index.yml | 6 +++--- .../data-protection/encrypted-hard-drive.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/education/windows/index.yml b/education/windows/index.yml index 0cd20e659d..1c2008d3c9 100644 --- a/education/windows/index.yml +++ b/education/windows/index.yml @@ -12,16 +12,16 @@ metadata: author: paolomatarazzo ms.author: paoloma manager: aaroncz - ms.date: 10/30/2023 + ms.date: 07/22/2024 highlightedContent: items: - title: Get started with Windows 11 SE itemType: get-started url: windows-11-se-overview.md - - title: Windows 11, version 22H2 + - title: Windows 11, version 23H2 itemType: whats-new - url: /windows/whats-new/whats-new-windows-11-version-22H2 + url: /windows/whats-new/whats-new-windows-11-version-23h2 - title: Explore all Windows trainings and learning paths for IT pros itemType: learn url: https://learn.microsoft.com/en-us/training/browse/?products=windows&roles=administrator diff --git a/windows/security/operating-system-security/data-protection/encrypted-hard-drive.md b/windows/security/operating-system-security/data-protection/encrypted-hard-drive.md index 368b0d1c10..61a6b9a820 100644 --- a/windows/security/operating-system-security/data-protection/encrypted-hard-drive.md +++ b/windows/security/operating-system-security/data-protection/encrypted-hard-drive.md @@ -1,7 +1,7 @@ --- title: Encrypted hard drives description: Learn how encrypted hard drives use the rapid encryption that is provided by BitLocker to enhance data security and management. -ms.date: 10/18/2023 +ms.date: 07/22/2024 ms.topic: concept-article --- @@ -75,7 +75,7 @@ To configure encrypted hard drives as startup drives, use the same methods as st There are three policy settings to manage how BitLocker uses hardware-based encryption and which encryption algorithms to use. If these settings aren't configured or disabled on systems that are equipped with encrypted drives, BitLocker uses software-based encryption: -- [Configure use of hardware-based encryption for fixed data drives](bitlocker/configure.md?tabs=fixed#configure-use-of-hardware-based-encryption-for-fixed-data-drives) +- [Configure use of hardware-based encryption for fixed data drives](bitlocker/configure.md?tabs=fixed#configure-use-of-hardware-based-encryption-for-fixed-data-drives) - [Configure use of hardware-based encryption for removable data drives](bitlocker/configure.md?tabs=removable#configure-use-of-hardware-based-encryption-for-removable-data-drives) - [Configure use of hardware-based encryption for operating system drives](bitlocker/configure.md?tabs=os#configure-use-of-hardware-based-encryption-for-operating-system-drives) From 883b3902f6ae9db6fc4c7bd0f504a780dce3dd29 Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:55:25 -0400 Subject: [PATCH 066/108] Update education index.yml with new date --- education/index.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/education/index.yml b/education/index.yml index adc8d30041..1da8d77fdb 100644 --- a/education/index.yml +++ b/education/index.yml @@ -8,7 +8,7 @@ metadata: title: Microsoft 365 Education Documentation description: Learn about product documentation and resources available for school IT administrators, teachers, students, and education app developers. ms.topic: hub-page - ms.date: 11/06/2023 + ms.date: 07/22/2024 productDirectory: title: For IT admins From dacc49244b1c9d603d7469c6444de6541a03a245 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Mon, 22 Jul 2024 13:37:40 -0600 Subject: [PATCH 067/108] PR feedback, re-organize and updates png --- .../do/delivery-optimization-configure.md | 249 +++++++++--------- .../images/do-setup-allow-communication.png | Bin 45549 -> 62330 bytes .../do/images/do-setup-connected-cache.png | Bin 17078 -> 24287 bytes .../do/images/do-setup-improve-efficiency.png | Bin 15132 -> 13029 bytes .../do/images/do-setup-network-topology.png | Bin 64030 -> 70538 bytes .../do/images/do-setup-org-size.png | Bin 34454 -> 33071 bytes .../do/images/do-setup-presence.png | Bin 21663 -> 27141 bytes .../do/images/do-setup-system-resources.png | Bin 30121 -> 31857 bytes 8 files changed, 128 insertions(+), 121 deletions(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 258bb90b68..8e359b9c3a 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -25,15 +25,18 @@ ms.date: 07/01/2024 Use this checklist to guide you through different aspects when modifying Delivery Optimization configurations for your environment. -1. Allow Delivery Optimization communication -2. Choose where to set Delivery Optimization policies -3. Network topology -4. Optimize P2P usage for your organization size -5. System resources -6. Improve efficiencies -7. Connected Cache +1. Pre-requisites to allow Delivery Optimization communication +1. Evaluate Delivery Optimization policies based on the following: -## 1. Allow Delivery Optimization communication + * Network topology + * Organization size + * System resources + * Improve P2P efficiencies + +1. Using Connected Cache? +1. Choose where to set Delivery Optimization policies + +## 1. Pre-requisites to allow Delivery Optimization communication :::image type="content" source="images/do-setup-allow-communication.png" alt-text="Screenshot of the considerations to allow Delivery Optimization communication." lightbox="images/do-setup-allow-communication.png"::: @@ -67,7 +70,123 @@ Delivery Optimization requires the use of certain ports to deliver content. Make | 3544 | TCP/IP | Use Teredo to discover and connect to peers across NATs | | 443 | HTTPS / TLS 1.2 | Use to communicate Delivery Optimization client and service | -## 2. DO presence +## 2. Evaluate Delivery Optimization policies + +There are a range of [Delivery Optimization settings](waas-delivery-optimization-reference.md) available to meet the needs of your environment. To fully leverage Delivery Optimization, you should focus on key areas to determine the most suitable settings for your unique environment. + +### 2a. Network topology + +:::image type="content" source="images/do-setup-network-topology.png" alt-text="Screenshot of Delivery Optimization network topology considerations." lightbox="images/do-setup-network-topology.png"::: + +Peer groups can be defined in Delivery Optimization using a combination of settings such as [DODownloadMode](waas-delivery-optimization-reference.md#download-mode), [DOGroupID](waas-delivery-optimization-reference.md#group-id), [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings used will depend on your desired peer group(s) and your network topology.* + +#### Peering setup + +##### Define peer groups + +###### Local area network (LAN) + +To define a peer group limited to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This download mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. + +> [!NOTE] +> Consider using Group download mode and/or limiting peer selection to the subnet if your network topology is a Hub and Spoke. + +###### Wide area network (WAN) + +To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use download mode ‘2’, Group-mode. Group download mode allows you to define a unique GUID Group ID or use existing logical groupings (e.g. AD Site) in your enterprise with the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. + +###### GroupIDSource default behavior + +There are several options for identifying your Group ID using the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids). The default behavior, when the [DOGroupID](waas-delivery-optimization-reference.md#group-id) or [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) policies aren't set, is to determine the Group ID using AD Site (1), Authenticated domain SID (2), or Microsoft Entra tenant ID (5). [Learn more](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) about all DOGroupIDSource available options. + +> [!NOTE] +> If your peer group spans across NATs, the Teredo service will be used on port 3544. +> +> For Configuration Manager users, we recommend leveraging existing [boundary groups](/mem/configmgr/core/plan-design/hierarchy/fundamental-concepts-for-content-management#delivery-optimization) to define the peer groups. + +###### Restrict peer selection + +If your environment requires a more granular approach, you can use the restrict peer discovery setting alongside the download mode to achieve more control. For example, if you have several different subnets behind the same NAT but want to limit your peer groups to a single subnet, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1) and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection) (Subnet). This setting can be used with any of the peer-related download modes (1, 2, or 3). + +#### Non-peering options + +There are two valid download modes that don't use P2P functionality to deliver content; download modes (0) and (99). download mode (0) uses additional metadata provided by the Delivery Optimization services for a peerless, reliable, and efficient download experience. Download mode (99) will provide a reliable download experience over HTTP from the download's original source or Microsoft, with no other checks. + +#### Peering with VPN + +By default, if Delivery Optimization detects a VPN, peering is not used. To change this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN you use in your organization. + +> [!NOTE] +> The default keyword list is “VPN”, “Secure”, and “Virtual Private Network”. For example, “MYVPN” matches the “VPN” keyword and would be detected as a VPN connection. + +### 2b. Organization size + +:::image type="content" source="images/do-setup-org-size.png" alt-text="Screenshot of optimizing P2P usage for your organization." lightbox="images/do-setup-org-size.png"::: + +Delivery Optimization is designed to perform best in a large-scale environment with many devices. Depending on the size of the environment, you should evaluate the value of the [DOMinFileSizeToCache](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to optimize peering. + +#### Minimum file size to cache + +Content peering has a limited number of slots available at any given time. By default, only content files that are 50 MB or larger can be used for peering. In an environment with more than 30 devices, change the [DOMinFileSizeToCache](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to a lower value (10 MB), to have more content available for peering, which can be distributed among many devices. For an even larger number of devices (>100), you can raise this setting to (1 MB). + +#### Mobile devices + +By default, P2P capabilities aren't enabled for devices using a battery. If there are many mobile devices in your environment, consider enabling the [DOMinBatteryPercentageAllowedToUpload](waas-delivery-optimization-reference.md#allow-uploads-while-the-device-is-on-battery-while-under-set-battery-level) policy to 60%, to use peering while on battery. + +### 2c. System resources + +:::image type="content" source="images/do-setup-system-resources.png" alt-text="Screenshot of Delivery Optimization system resources considerations." lightbox="images/do-setup-system-resources.png"::: + +There are some Delivery Optimization configurations that can make an impact when various system resources are available. + +#### Disk size + +Alter the minimum disk size (default is 32 GB) a device must have to use peering with the [DOMinDiskSizeAllowedToPeer](waas-delivery-optimization-reference.md#minimum-disk-size-allowed-to-use-peer-caching) setting. + +#### Optimize cache size + +You can also manage the amount of space the Delivery Optimization cache uses with the following settings: [DOMaxCacheSize](waas-delivery-optimization-reference.md#max-cache-size) (default is 20%) and [DOAbsoluteMaxCacheSize](waas-delivery-optimization-reference.md#absolute-max-cache-size) (default is not configured). + +#### RAM size + +Control the minimum amount of RAM (inclusive) allowed to use peer caching (default is 4 GB), with [DOMinRAMAllowedToPeer](waas-delivery-optimization-reference.md#minimum-ram-inclusive-allowed-to-use-peer-caching). + +#### Large number of devices with idle system resources + +In an environment with devices that are plugged in and have ample free disk space try increasing the content expiration interval of [DOMaxCacheAge](waas-delivery-optimization-reference.md#max-cache-age) to seven or more (up to 30 days). You can take advantage of these devices, using them as excellent upload sources to upload more content over a longer period. + +### 2d. Improve P2P efficiency + +:::image type="content" source="images/do-setup-improve-efficiency.png" alt-text="Screenshot of Delivery Optimization improve efficiency considerations." lightbox="images/do-setup-improve-efficiency.png"::: + +Looking to improve P2P efficiency? Some of the most powerful settings you can change that could have a significant impact within your environment include: + +* Help optimize peer connection over HTTP connections using the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy. A good value for the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy is something lower than the average download speed seen in your network. For example, if your average speed is 1000 KB/s, set this policy to 500 KB/s. +* Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of delay-related policies include: [DODelayBackgroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs), [DODelayForegroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs). To improve efficiencies from peers or a dedicated cache server, a good starting point is 60 seconds for background settings and 30 seconds for foreground settings. + +> [!NOTE] +> Not all content types are eligible for P2P. Refer to the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. + +#### Bandwidth throttling options + +Regardless of P2P, consider setting the following policies to avoid network disruption. + +* Manage network usage as a percentage or absolute value. These policies include: [DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth), [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). +* Reduce disruptions by throttling differently at different times of day, using the business hours policies, [DOSetHoursToLimitBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth) and [DOSetHoursToLimitForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth). + +> [!NOTE] +> The absolute policies are recommended in low bandwidth environments. + +## 3. Using Connected cache? + +:::image type="content" source="images/do-setup-connected-cache.png" alt-text="Screenshot of Delivery Optimization options when using Connected Cache." lightbox="images/do-setup-connected-cache.png"::: + +* [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. *Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed.* +* [DOCacheHostSource](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cache host servers on the network, using DHCP. +* [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in [Improve P2P efficiency](#6-improve-p2p-efficiency) section above). +* [DODisallowCacheServerDownloadsOnVPN](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cache host server to supply content, when device is on a VPN connection. + +## 4. Choose where to set Delivery Optimization policies :::image type="content" source="images/do-setup-presence.png" alt-text="Screenshot of different product areas where you find Delivery Optimization." lightbox="images/do-setup-presence.png"::: @@ -88,118 +207,6 @@ Delivery Optimization is integrated with both Microsoft Endpoint Manager and Con * [Microsoft Endpoint Manager (MEM)](/mem/intune/configuration/delivery-optimization-windows) * [Microsoft Endpoint Configuration Manager (MECM)](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) -## 3. Network topology - -:::image type="content" source="images/do-setup-network-topology.png" alt-text="Screenshot of Delivery Optimization network topology considerations." lightbox="images/do-setup-network-topology.png"::: - -Peer groups can be defined in Delivery Optimization using a combination of settings such as [DODownloadMode](waas-delivery-optimization-reference.md#download-mode), [DOGroupID](waas-delivery-optimization-reference.md#group-id), [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings used will depend on your desired peer group(s) and your network topology.* - -### Peering setup - -#### Define peer groups - -##### Local area network (LAN) - -To define a peer group limited to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This download mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. - -> [!NOTE] -> Consider using Group download mode and/or limiting peer selection to the subnet if your network topology is a Hub and Spoke. - -##### Wide area network (WAN) - -To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use download mode ‘2’, Group-mode. Group download mode allows you to define a unique GUID Group ID or use existing logical groupings (e.g. AD Site) in your enterprise with the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. - -##### GroupIDSource default behavior - -There are several options for identifying your Group ID using the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids). The default behavior, when the [DOGroupID](waas-delivery-optimization-reference.md#group-id) or [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) policies aren't set, is to determine the Group ID using AD Site (1), Authenticated domain SID (2), or Microsoft Entra tenant ID (5). [Learn more](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) about all DOGroupIDSource available options. - -> [!NOTE] -> If your peer group spans across NATs, the Teredo service will be used on port 3544. -> -> For Configuration Manager users, we recommend leveraging existing [boundary groups](/mem/configmgr/core/plan-design/hierarchy/fundamental-concepts-for-content-management#delivery-optimization) to define the peer groups. - -##### Restrict peer selection - -If your environment requires a more granular approach, you can use the restrict peer discovery setting alongside the download mode to achieve more control. For example, if you have several different subnets behind the same NAT but want to limit your peer groups to a single subnet, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1) and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection) (Subnet). This setting can be used with any of the peer-related download modes (1, 2, or 3). - -### Non-peering options - -There are two valid download modes that don't use P2P functionality to deliver content; download modes (0) and (99). download mode (0) uses additional metadata provided by the Delivery Optimization services for a peerless, reliable, and efficient download experience. Download mode (99) will provide a reliable download experience over HTTP from the download's original source or Microsoft, with no other checks. - -### Peering with VPN - -By default, if Delivery Optimization detects a VPN, peering is not used. To change this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN you use in your organization. - -> [!NOTE] -> The default keyword list is “VPN”, “Secure”, and “Virtual Private Network”. For example, “MYVPN” matches the “VPN” keyword and would be detected as a VPN connection. - -## 4. Optimize P2P usage for your organization size - -:::image type="content" source="images/do-setup-org-size.png" alt-text="Screenshot of optimizing P2P usage for your organization." lightbox="images/do-setup-org-size.png"::: - -Delivery Optimization is designed to perform best in a large-scale environment with many devices. Depending on the size of the environment, you should evaluate the value of the [DOMinFileSizeToCache](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to optimize peering. - -### Minimum file size to cache - -Content peering has a limited number of slots available at any given time. By default, only content files that are 50 MB or larger can be used for peering. In an environment with more than 30 devices, change the [DOMinFileSizeToCache](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to a lower value (10 MB), to have more content available for peering, which can be distributed among many devices. For an even larger number of devices (>100), you can raise this setting to (1 MB). - -### Mobile devices - -By default, P2P capabilities aren't enabled for devices using a battery. If there are many mobile devices in your environment, consider enabling the [DOMinBatteryPercentageAllowedToUpload](waas-delivery-optimization-reference.md#allow-uploads-while-the-device-is-on-battery-while-under-set-battery-level) policy to 60%, to use peering while on battery. - -## 5. System resources - -:::image type="content" source="images/do-setup-system-resources.png" alt-text="Screenshot of Delivery Optimization system resources considerations." lightbox="images/do-setup-system-resources.png"::: - -There are some Delivery Optimization configurations that can make an impact when various system resources are available. - -### Disk size - -Alter the minimum disk size (default is 32 GB) a device must have to use peering with the [DOMinDiskSizeAllowedToPeer](waas-delivery-optimization-reference.md#minimum-disk-size-allowed-to-use-peer-caching) setting. - -### Optimize cache size - -You can also manage the amount of space the Delivery Optimization cache uses with the following settings: [DOMaxCacheSize](waas-delivery-optimization-reference.md#max-cache-size) (default is 20%) and [DOAbsoluteMaxCacheSize](waas-delivery-optimization-reference.md#absolute-max-cache-size) (default is not configured). - -### RAM size - -Control the minimum amount of RAM (inclusive) allowed to use peer caching (default is 4 GB), with [DOMinRAMAllowedToPeer](waas-delivery-optimization-reference.md#minimum-ram-inclusive-allowed-to-use-peer-caching). - -### Large number of devices with idle system resources - -In an environment with devices that are plugged in and have ample free disk space try increasing the content expiration interval of [DOMaxCacheAge](waas-delivery-optimization-reference.md#max-cache-age) to seven or more (up to 30 days). You can take advantage of these devices, using them as excellent upload sources to upload more content over a longer period. - -## 6. Improve P2P efficiency - -:::image type="content" source="images/do-setup-improve-efficiency.png" alt-text="Screenshot of Delivery Optimization improve efficiency considerations." lightbox="images/do-setup-improve-efficiency.png"::: - -Looking to improve P2P efficiency? Some of the most powerful settings you can change that could have a significant impact within your environment include: - -* Help optimize peer connection over HTTP connections using the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy. A good value for the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy is something lower than the average download speed seen in your network. For example, if your average speed is 1000 KB/s, set this policy to 500 KB/s. -* Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of delay-related policies include: [DODelayBackgroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs), [DODelayForegroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs). To improve efficiencies from peers or a dedicated cache server, a good starting point is 60 seconds for background settings and 30 seconds for foreground settings. - -> [!NOTE] -> Not all content types are eligible for P2P. Refer to the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. - -### Bandwidth throttling options - -Regardless of P2P, consider setting the following policies to avoid network disruption. - -* Manage network usage as a percentage or absolute value. These policies include: [DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth), [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). -* Reduce disruptions by throttling differently at different times of day, using the business hours policies, [DOSetHoursToLimitBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth) and [DOSetHoursToLimitForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth). - -> [!NOTE] -> The absolute policies are recommended in low bandwidth environments. - -## 7. Connected cache - -:::image type="content" source="images/do-setup-connected-cache.png" alt-text="Screenshot of Delivery Optimization options when using Connected Cache." lightbox="images/do-setup-connected-cache.png"::: - -* [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. *Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed.* -* [DOCacheHostSource](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cache host servers on the network, using DHCP. -* [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in [Improve P2P efficiency](#6-improve-p2p-efficiency) section above). -* [DODisallowCacheServerDownloadsOnVPN](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cache host server to supply content, when device is on a VPN connection. - ## Summary of basic configuration recommendations | Use case | Policy | Recommended value | diff --git a/windows/deployment/do/images/do-setup-allow-communication.png b/windows/deployment/do/images/do-setup-allow-communication.png index ae9a61ec798e441e6190a4ef80300bf89493faad..6a8d97ba812f8cb6a7db5c252aec76f4e3c6ed82 100644 GIT binary patch literal 62330 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 literal 45549 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�Ai>XYl@Pm>y1UUbal5D)uCrbSjUH;ykaAWYvF zip8I;6h1Ss@g>`rQB6`9eRm9)!x4lyA_=j1 zrj=nDipLSne&KePkxzHhS*1pNx78qgS@ZrVdLY#{6lpLf%|wIS`G_#-kNP9P;O1+3 z%;7y4zsWE4l<a*;DlaWTU) zVoBUBjDN$tMR0>%T#$hCG}>t)jgE>Neit;Ea4yA}9$R}i=jHvhuOF0zj4(i^Z=eVt z7#MRSu!^M7PL`RvK-nRkIAQ%uCdiHYiE@)S)HHF;b z;`)=6^E;BQwa^vqxtT$!@=L|&HA}Ul`(4rU-4N&JQNS^K(9niQMG#K-56EG{F7^ zECnc297K8QpBFV);3mVN9AGY*ri46%>603EK4V)0qKpPrL1bjlKr;@)4)Vl;P7!?O z0D=YrIl<16XKQ-UeF)?T#ZY!iD+ydDu~vorhxS{^X8vcv0P1x~yAJ69zWR^C-#~Pw zf<*@e68r&7i9!3Owe<8bwGKsk9f5RS+BfN`PQ>5Xha~&}E>#BaZcwGz7z5<=L8Cet z)_=G9MMnMKLcJg`{?_}>|L@>K_-qN>f9=siTIPW@Ch!5oI|KQzN)rmzN(B4F^&rZ| z2d+4QWt)OgD`O7+l7#hT(#mumr*!Eyo#Kol@^HfJejPppf;RG3lh|Qze(>-EUs0kM zc*ncm!e%gwVh#A+i@zYJRKKjThC=Mgiyi_IQ0}V=}ZetG8&abvd*0>B6J*IAZhx z2$8Rn&SEm`d3B>=u>XHD=8{o$!E|5$!6<p7{J9M7I&@ diff --git a/windows/deployment/do/images/do-setup-connected-cache.png b/windows/deployment/do/images/do-setup-connected-cache.png index 0be545ead164efa5d39c846b46a2a366f8f05566..a2182de0b4fce5206462a817e8fa6fa771ccf7b0 100644 GIT binary patch literal 24287 zcmdSBgYLNh zfY^Yqr-1Tnj0Y6G(CEsHJzGwEoX&XpG!_i6o zP22bail?D*47#PSclVJaeug=ld$fr{ai?K$J?E^zba5&=79o1^3KEL!j#qCkS}857ezAzlWC-vh+I zM@>ieWVA=QzjQzS zf4)9NU9Ep!|L0@=|9^P|kF@ji^z^$G)Q$A#)s=9cfh}xr<#foc+qZ+K(Ea7@esgUb zSN{9CMC7gVlCi#?9t~Gzf$0ab8&RKea?L(d^|qvaJjB#_d*O4&%a;p2S2X?SqY3L1 zBOF2+4>sE=QAnR{-`!-`_=_ArL%i01t7vLBW@3!CxU5)dzVra9Dl&ImW2P?NYTTYbzxpJ6%`d0R)w9n#}+oMTQ(LfgyOJH@R^YH@q2II zzRk$aUeDN=!7STysptAcZF6YW?BYMP-c*m?x$ zKs3=cYi$V|L}A*`is2t?XD?Adq1z(89o_jQMG(I-RA|*277QJEpMrh&h6y+(JyHy8 zR`7!uEM3z3Ps-Rce|B^9sWWoUTm%77jn}9Ybgben+GlD^1Gcd~)@G2*Ydesu4e7Z^ zL&IhG@@2)f;v^ZF)3VLJfBNQn{f9fhhgFP-D9}`b&rI{^@W=>${avFD1IyZv(nS`L zG(pvVf;gQUzo^}v^F|F)X!BNHnsgoblNb=Z{BHRgfi6C9VLU)Ha7{_^&v_Edt+^5plG+O!ZvWw>G1KS0D5~2Dgmq1V1@3iH5dXJxJfUsmQ;lqtoZi z4~}Xv4nEaYE+j2nyJrx$zSqz_ZRhjv>?iVFDZMw?7~ryLw#Uw|&{3&u+-VYAL>SD! z4&k~#+Y;)l$t8d1{Pg|2lO>g@T3@@6giM^R4*{zA?*r27fo*4QVc~OpL~xXDS?bNi zEE{-D)%(b)A+S;kgLR%3SQMeobHt(Vai&w$1cAZRDwfxrH@`^eV9$VbFaW`?AYl;9 zm!+Kb9?Z$YSV5EzcK6?hBb0!h_&g)y_b|g!a7p`7ri|@EE??;k28IdtfShu|A|W&3 zBs6=vz%2p?bxkuU2Wgb8T;{G>KFXuL7sN;l(VW z{d~;mf>@R%q8_w87qQ!y9dzx*%8$}ltST)B_Yd}Dv&;}#AiJ>&TbIQzDS@9eiJNnN zf-2sKHro5Xl*_x`BiZ)&@eLvbbK}#yN(XW2M?oh5Q;H$8-C*U`qi#H9TFdwn=2pIx?gzwZv(owp5E%{DCy8cIktNL_+aKM zl%f}2tYuEKu+u9~42vEn^qrWjzX}D{wTh5u(bATsu6_wr8K2QkjFtrD}zrbD%5AE6AFR8X@vGQJx+zCfTX>WcF_WrX{`ciAO^rKP|5`?r| zMbBX|6wkRn-Yt4AUC*g@&(uirGB7dLPzQU46#F^SlTqI&4AjsFSOm1lP!t;8%1M*1 z?5CqT!0vA%bWW!u%qMxw7sIRlPk5~60m7*l&-!@vC+L#T$H&aGmqf3)%80m5WtfWIa!iGC#@ZkbS=| zN~u?1danv<_|N1N5JyOB$Fzuw@h#hsN#)`r=HTF3UiGOzi=ewMUYTpBDlLsmANBBm zg>EGApfs;a=|>!F-6Ps4QV(UNZLJ$p$f%Q!=eqA)TWh85tDG;z61=i@4^XZ9S+bDk zA9$2#SbJTa66u>slzEXI%R8r*PpRt>7@KA0r+#zY6rXc`TF$oacQ7Fj7ws!=HGB)X zM*ty(Sm%UiJf|{K>b^fybTbbX36@Rs*MSB zvp*nN_tE7D=IOYvxJxr%P8DiUEV*N!07arF&gK%rUWgojzi<+u4P1MO3VX2Z=$)MJ zbw;mWRnAncU)ld~itXjgmo0|zh0!0KC`Z^t#tr3H^Q9%Z4;7hX6}ibY@kuhOzSHA4 zW&5^>CVT0`(?#>0Ute5;APTFP_;us-dP}hI-QRH^<)f zm*w!aSRNWvhhiZGn^w<4!Gn{D@uB*tT|@OLr7cvRy~aqWQ)hI%2`T65!i((1eMZXh z;(px4{BAs>Jb94?bdD^_NE>&sO!Yrh2G4UxR8W|O^3#yFwyq2E1cs+rm&oee}t?=)mPcQWuf-S6|GY@T7~O`J8^EGO~_rKK8oGtxZ$ zoBkII8+q=8@_SO?JQe|85yg1;YdzvSxja?>>$}*NCl`d2UcBi_nJF?@yxSo6Y(5$T z!tro5Dv6U|eo?Wt{Q7z{%tZA%C$Np^$+pzN1r}!sHN^7M{rr0QN*DJAj$Bp-!RO8| zUpgRC#iMv5sR@d1DDUg&7!XA>c~TrJ?&e(3a*l^+W9(>l$x51#fP@V1wS~cj5>^_6A~f#M z+>SsS%HmGF^Qf=j(3CgI8W&Pky46mbZS*^eKULrZUDyJSX!k7BA82DhnGR{-=5cR-u&bS|88 z@&(G|QDs*FW?MNCsdwDs23qMSiBfz|K2B!8@U?ZPu)b$!;Wgd2pgXM7et8b0;Vaa> zc2;6=zC?h9Cu`v=Sa@z9qWMrLlTPx4jm@k~Tqu*G!5|UK@cd7Zl}G~88^=dK83eV% z>RjF2!nBu1LbOpIxcyD@m)-S}oIUQdo7 z*Ca#Dt9TyEVybr!NL^U6UUM0BqdFsag8GxaI6c}=mK)1F zcO4YZU2DMJLB5r~{Yobxb&7Ic!?7>v&x9k?{xA3{bRySyQwciuokLh_C8OnoNA((G zg>CH@+|y?iVf%XTfYo@Gf{u^RFI@NDm~JwV3u-z1thxTRzo9TBm&>W9KfC6c>m{GL z_uz2t<~VpAWNcdx#X|{cB^KesU&cnWv3cHBOBMx z;AYy2XU6hhL(JM!8we3Z?V$F`lP!AdEerJ)Gp(%G2+Xl^bRPEar!~L2sux3k|M0~5 z_n}n)0N^OU^J&0=ybuQ5+Pa}NQFdiH8gD&cOI^0d+*?J;uPL$t`FSM}mmHL zmDr?bZpGGCC*A7!m2e}9p@{38GRG+)l2@fq)`;w78~=Ogqma)zyJw_qL^T|R z8d9D1Lid{X4r$Wm8|pnb#_~2N-7TDK@4-?@F4y|iZr+s&$#$|6PnUg~{fE$?xdvo+ zq720+l6SliCg9^Al~ZWw@>qO+?6(?U$gCuXsSbW-t0nR(swA>iKHRj#%1a&^y!o(v zqUas;vH-QgyzA5k_ta_AMJfedu`1i13L^|0Uj`n=#0|hUiS?qq=~pG&>x?AA&nUCM z@wo9U??|fggWQehYpx%_cO8#wqZHM#CwCJ*5q}5nKJ*zma}-5gb|XXJm;rzyxR!B8 zDy#)SKMk$Gw~m~qJN?-@!0kQj=hSle9P2VR|NhDtd4D3L^K)nk{^lu-s7Q`T;XIuZ z9h8o0bPdX}QUEz-A_4!>`P`G0>3o+d=A_j@_Eb7&3T~{Pqfg%C0FiC(u{t?gaKvAh zeER&aw8wOG%H@}r*G-HUk205~HY&5upQyC^G6B7c9_9nE7zB@UY6+(1qsd6Nc3dA zyrAdY`ao`_dDE9AIV}8PArcA6co0=RJ?f?w`pX#G_Ti2(^x=N3Re2_SQbBZb_DF4} zO(W>X$x(m8*mlniNBR4!hsB#yLw-A)XO5IPW^D;IK1UDO4}X}6{fbZ}ZK`4?Q0{q{ z-nK8FExnzI9Q(USqOt@9rmf9<+UNYB(O`)>C%q^2){d?aMq+I(<*R>W zKDVi_dtou; zGJ0ja>fZG`&H3aN8}1KpfV+}iSZf@Y!bTfcb8nMzV1kdL23wBA|8B4?w9l(ym6LMN zex|=Sqsq9RtSVd;XMeImc%yvO`KUY`FN$L5>L=yltLEfve4!0)jFnt@a%GRcyxd3D z7~PsXqoCWx@2pI6o|41hx51Ap19zmfa+zr9nK>5tRGjA->2Lfk4E_0uVVRLFJ@uv{ z8x>*G(1@3J(SZuy(xBQ;nlTusGyqYru5s+Gj&x_K_^fG{d${#ydtQISR&9s&nkYxL zdF5yX@6>1e0c3+p*q#T`M(;^Mn<{Nw7jUwfdu>!c?!%AxP~Gc0chc-yaTF9*iqvMe zt4Vq|y6D(jai=%WX3^II0Oq@!5vK}%whpva>6~@Lbj!-4pm=ln+D&omK%XvQMK)7& zU@%jGD<2@>9a!kBnTUYe&GcwJf9E+)wqKt)`MKTR>w0v|o4AxTPKxArCJuKH07M?W zQ>0H1s{TD7z%_ckk+gxS491OF72aUaJOOAKotnelWsGPHw=%=av}nBrjb@zoRGatX z9JPZcsP!%12PwXmECnKsA)zl1KZAi4xH0+kySxL&2rpf6t3lH0xF!|Ju0JAVLLM3` z-VBmVSdu{J&)Mb@3$~XBuI}nI-pm=tEG3)Z5 z=>C)AU*o57S3j)4P161X7!ev836q|?9lF9%2loU4V2@=nspWcq`<+#Va}1Zl&A-FP zOd5pzwAaw-u`3+bD1`azEJu^Wz_qS>*4X*^j6iI_Cwt)rdo1gi7_TLVCWMGqOq!>=b z&@)c6MFV_;y}9{Id(vHQThG`6y6%h=Gt!>v`V)ri#=+M)TmZ{}q^SZq^_|a` zDjk)be*1?EtP43HMP-lD^UJ#Td?u^0QTyvo4pj(8yujGzZ)l}U@{NsUQ7dCYvQ+qH zt}4ZSJ1Z-p^5d#s%j`jsZnR9KU$H&k7?ANph8AlnOj}{p4K4N(xZ$~FJZ4*(jQM`? zX>;&`kxuPx<&p@EQ$vWXQ&JCF9&Il;B(unugT;&2d20{)dNai#e(+L@20TcW}skJI7dW4CMjSU0N9Ce$~F^t^`I;=(iSQ+hQqDi23OhYp8A z&*Z4)fO8BHYIhrGiZ8ir>e;t08LO%t?!2M(^{)|gjV;yTBCycdu8X zBRtLh#o9YfeK1SSsdD(_{*JBoDj1wh^5<^ne`7V&pwr%Z!v&;4nPbS z^X_}DpEa}l(dE^{SX&m}6#-eV9#P1ma+y^hk7)1sv1?l}J9Ur%CrV*8irY0}EW(g> z3+O%@XUJ>=f!4GjaJj!ejNpa346k+TdpIEP9Zmamd9T4xHgagdr#q>;MY#5fY8v{7 zV|zmqpA|98C~wWvLpR@|Ig8_;lrI(t+j}?7P^~S&4qSxuaxDG3xuwWVFphH z^0x^^pX1-_6XFG(otlQ^@6gwNneQDISTIL0C{#$^z_B+=72MO0v2Aes*5_~ZOUXHq zul?oOU#xQZimZFP6(^>l1enmYJoY5ElMzDNwrQu1Mwcx~Sb8SOjpvzwau517(m*mX z76ysOB|rAM=rPf(Op@D)l}H={=v`IZg?8N=Q4(S2+fyT&hJm~C-epdAKIIDY^0&%u z!8N0eYs;0Z?oXZ!^C+*X#Gezm_u;0@ zPCeenvRBP_jb9N;3e?3>D}5!gEVD~u6i%401ehV?n&ktEKT{5@DVu}?znOy ze8DKbfYzX0v^@5-9qAgQL>wt&KBQRKJSlx}-k|YhNpab(Zw&ys(%*I)y;_bQn9P)hFQUJ% z)vddv_~v-?$V;4n+mZzo1__k{!a6*^t)%3(;liY$-e2~QmEo-GB#m2 zfLA5jii=0*WFh5+y0WM~!^=yRv}R+6aoS&}zLk|)9X{F@QDKsI1QjJ|K6;Cdj(86G zq^ySL^o2Ux(~tMS-K*!)VWTqlM{Jc^3 ze7oG<8?s&$+|+TiHWHg!1-p^J@gw1^R_b6()DjGv#~2z3$`LWk;-~cc38nQX!&{=b zIyjXc=Z?(p9xwA=Hl3H=q@^#W#VPMI2#&YL9c$sATh z81b=DAwTxjyCdZ{Wy?ID0fK*~IbiXNFNFW3Lq_sxPpZXbj;S#$=r;?mQp-{RbTaV9 z-B<>LB}P_m(UAf@N=wpTjFL=F)L*1**Xf!4Q>mb zJ$+H~8~Z_3cDqB+)l1%BV*}Vsx~c#ZC&zQBv!fnpJCKt0=HUi06;vH3X~wO! zcG&kUhq1wMZgut_xX54`feP#AdeiP7thd}vJH#K|nLYN0Aa!p7eAKtYzmK$7K&J*g zS9Zl8IhqBD=lp{O?u!E=3zY%_$mC2p$okI&k$Ng49>pF~RvC5pSw8CLm~PS4_Jf4T ztIJlJjpE_+rPO3$$;7eNcxnmaT~p){-ENpB44etJn9s?4;gv0`%AL#FTOIVito^1gz0Wg>ZtFc%z@?Fg@=ifiG zX~``frVg+clJQCh8q~lF9f*mXy%ea(C1z8ltYlz%FJAM>cbD#pkcYR44NfrnaNXBnU^O0 zoS8_q2O!7DIy4Sy3xlH~?gY5ZoU5#lWd_2n?86~!hOB)vAz8j{Wh}nh!)#wE3Xb4; ziYr%cuN^oU>%Q|K>gQyz-AR|-9A>)AX>15>Y)@tQmFH^RO;9EN3xrAPNJm3?sUwZ# zq?xyG^;`^veM%UnY20|u34^t-5Dco-FNN2?2F)Kwl8pUtT)+2N6U1{X{1>z`{XJXcEH_TO?doyI^ z6cpUP^TYV+#-ubVl%&c6Oz%ocN{+QfhT8)$(>U@j|A5x+GkYqd@0-%K3#8-TI4H%< z38|53mp{b$#eO7r1ju2>r$?>F^&&=vw@Nc&)=o=!ARKLD9^O zuXA}`5-X8EM2t1sH3l^1bRs#AboN?lqCus~{`j5chQ>);U)wGubobNDQ<3a@^K+75 z*RDce+0a(GbkMA_!b$lFWrM(-0%rqo;Y6iDH;V475hr(#$aBtN$Z_btz+p>A3hxVhb z`47{#w1d~~Hdw{j6l-Ysi;@w=Agkb#29PCmw9FOIW&p(cf(pcR-j4Kf_#R@QPIpU+ zA;AL|%fo%V8G9lb*bh`a20OyjZ|lW5r_l0Y!Hu zIb&%V3n31GRjyoSNPW15OO0SpgoebJFC0wmO^ePz;Jd-9zr3w;V&@?Thi0wxqgS?^ z%0HtxxtN8n_6|U^|XwvB5!8cdOLW0U8K#CZctAU=D`u zJWkp>$6aAIe+}r9^L5hb3H;@Lp#$mePgm-0pxJr(f9afG-*068)hA~Ph#0~bDvA`5F%`{k?4(O?*=(Ejvv+Kjx2{5%WipS6 z;U~_p@+LY(Gy<}OFMb4FiTm5LAwu8>b{_uRjbTL~#VUoaPio6T=+O9{MW8`)e|sBa zq=-(W$x+*0D=kg*wVs}boxB+bwtG3$HCeKy>a&ANva+(5g^Z(iFp8RI0Hz>_Hcqrp zX=S|HGSfBG}X zrnV<$HfM#3(;T7GJ~iT&AAS+iO{DxQCKx((<4kHr>ONTA^!%z3*mE@_r7rT_$vWW; zWdC?5#I~EU)oP-PMmi}jnzrZ6A52E`{Ed;A_={MEvU6J}q)p7lZWfkbXqq;^v`w@u z>ckl7thb0Xv3pfF_nPD!)3V#IIa|0J&w4Rk44_qW_aYDXwAV;Kh<~Cuu=H2Dik|2t za0tnWi+_e1HywCWdt|tG8r10_q1}#(Ge(=S%_=pLqgX(EfaEVZce!LcJ z#l(jIaeO9cpjkQ$AT{n~zEyM&8%X^d5Hn`%^qBkZ^D8(H) ziDNi^5e!3rnsS2S%Yvuu%1`{p#jWR-CnW^;BG;S+#Zw#}W6^fqx(TtWx;b`F0El*}T z99uv~;cqP~r@o-g>Q{gU$~SHIfCjL^|Fi&164g84@`df4TEP97t%N{>q9 z0JZnYNO}lov)sSW?@A~dwZOT#y5`gfu>02V!rB*tFXsZDiwVU6Ef)ZZ1^6&<0@jBI zz#IqAK3SL~F9?M^Se{~r=Nf(LltoSO^%_pXoZR_7BEvj2Gv`i#ql;1LNkb7My#eX5 zYB78av(La+VpE8GRT;7?(iC#B>EAGD6K}**X@o9wls8rTe~Ede_O^Ou$%_+NR) zOMC*jP?wC?JgV5;Uzu|?rKpOkpRj4~OPej9aev%HkL~`4-WPd1}Qxy7gdye*Q%s}4D>$aZlT|3auf za^hw$dEquN@%}N!#ug=(aI73F_ha+E)TY4YW(4=eTKLF$SjvN(!+!KD!QcSw*LY=t z=8zVbC$veIgx&dRhC2T7irqZ_(~ZAN%(*IH@y0v#!1vPES^(B7o0fzCIJ+iWnrgr> zGgxTIsmhu!!Nku!3#^6RmzozLYh4$xNUO~-RjvrLoN@=vF>Y@2E9;`8&HTz<>DZ)H zn^SCe;FDRNH6J#ztReEchh6hv=k@*f;i`MDaTJ{{-;;dbw_Ah)a>*e3ttSDj+< zuq^-HJ?zMEmmn#oElC5pVo=giI&o?+q?~`d^3{PXx(myu&dQ*An zKtsEq!BIZp;Dc5`Y=s@m;{nbwv~t{{1A!gq`;Xye;Zc)7(Z-ct5~=+|>4L75zgGj$ zPxUJaT6$~MQvu0y1Hg(&a2gdo>D>DHX~u39uHrpD57ODSD=?^K4zfNZV4eH`=U5*z z?}v;|s#YqK&>6?br*0D+oAdp9RUiB~;7%3dT5-=HEcN8@{9ns(nl!EX#@0T<2<;RT_v(DyuCp=z|$Xo zoNb`qoA>3;c73{>Q11%u_0}=ty{!R~M~sD?SM)&SqdP!1qjzNff?x6l ztXf0~6~L^J4pr#{;`p1}rbZzZ2PVc&dx4tA_|sTqINljkws{RBQ5+A=26 z9-#6C8m;Z#_{X7!5Vj0dCtWS`WP{)4PPgJa#IGE+bl-P;)1KjD$8aPhf7l>nGO!sS z=hd)so|+-+{x~4`H3mm1HB!3Hn*1_KD}F0!7rUp`=U^t<19!Bu%ffN)u*xtJc{H3+ z9dS;Z9q`;JD*P6+qWakpc&gj|mBzim!utBB?X5}{YO5NaCPq_Ew+^F60aoFt7$$!TF)#*pFFm%g;{!l>4a`wPu zZgrC{s?xGNBY0)76DOOEgkX4^Y-9}52GqAE=44zZn1B_#f<;D65CId3q*ZZ9h*9P+ zLNB6NjK#Vgp`hfy!N^GNcm?jr#dd@`8YEttu=Z$o+EW8}5=Ufc`q&0(;LoEt2#PCU ztlzRVLLC+P`u$nPhVlJc?Boz+vpM85YxxAlD)g(Ik>~2<&^~#Xh+k2?+-mj6+9BjA z!FO)>UwtQ~7goUy+WytI{CncbfX+9VN(^ZDSjj-(4R-#BTnuk`TKgWOM{M(KnCPf3 zT#xG$!O+6co9DL`Gly3IlTUN>V>g+^eF7lPKAe@WtBltBU42Ofpc0yK##6fsBG*^0 zJdG8wR)xL@oSqzbRqH-E{kaK#nS>&wfrZWX_!D#VrNYjq!JnkV$WecUO!JEdX?!v^ z^BW(>*rEk}8#~#fpV;pR)XCf=tc}jtc_u1V34E)GIDAO76tugWJ%w2=3U^~nB;Y)T&lnk8sXd#w%^ zj{%V#6`UIT*JJ~{kL1H}m3#0ecQZ05a#iCM7(UVCR?*Y82!drJeiyLy^JiAb z`}_NBiTb}do0CDK$_Th;k2n%PV7kRPr7VhajxiY^#4*&k4EUDkIE-jpRq0K|btb{U z4$GjUIBupbsPuvHAnJ&MnL>%kJg1rjD&rJE8g)rNmFNHLrsy3pz}q#mqz(8Oi8iqC z1i?n^0{F7IR8h;lPaxGt0;}d(l2$!Qy_%HF;{C9GDaYrLs?*!rg5JAMl(d}haV!qVo$y@m#E2IyZcyhhL_BVuOlV=#|Oa7Nfn zq+(M;XSYhxi1-F_$VO&VzHEK=GC1oVV%gDRx5`rOI0Y-{bTv(=_gu$-v4=+9FE8a5 z*$ECe;eBDAziH|6VmT(Q{pYfBOt}H{DAHjX2{L=GS1Yt9oMj2%*0-^xopY@xFRhK5 zOrzRQQn`vIAf3ky$;Z({3+5AmD?q>N`chi-;+xe?Idl;QYh;gXIZ%$xN(u)91 zf<^NUYMJMCEXas(X4O3XuCkg_&uehK)p4dRp;x1M|Amm>#AU!eHaHfKgb0xL?n+x# z_~XbDgj72FW{zVF@pakd?2jN(mPlK$2L@hPmv*jLn$ zSAe^Xow-Dx(8zsu$Z?~!I7dixyD}W*PuA^xb}w>zx7%9}3WitPOg#|=e|~Ph ze*hyUaP;$W`+w~PoE_6`V*v`~8DB)2z_>U1Fu^EiM{}izpyE<@@0>g}H`?ZL>V{{TuWLVjy zPR*IHekKEMjOdl5unt63++mpT8S9X;H`of_sXWX+Z0>xOESyq`4|9)&W-2knrDqwc zAFvAO5=RbJG`<^)(I&kY5dkK&mOgV}eC61X}4xn9Ma`-56P zUnPuMC!{_W8suQ-cAy#*#G^d7^yBvPVKcZpx7h^_VJjrE-ub+|YZ7XS7UP`<#haBu zBo?9hr#}{8vk$w^O{WcWuLj1C$#4-8K-zXn{gAKcX?g^UgDnPiYpcm~tMN;W=VB#S z_3_TljiO)(q!CPiZDi_@{@7DU6GLEp2do1nEv~R~M2g(w&|KNdYZbGzP#d$S< z(XzOAlXCzW)5@DvW|lbzKstAs(re<_S;C3M{-N|S9brcW3Wfq1s<2N(5>W4 zxHoaN%zJOI)3c-qs)pd^mt{SheS?lyG|oV*o7;kNK2IL)L1qiRpYlsE4I`2_nmOP5 zaIp`1AiCRG?;baQQhbDMtH*KNfn&znLpMDApeITlg_vvTf%$N0o6}jpFMcO(f z^H>fR-2uk~)nxA|0pPeqFWj`#M*CV>jY*ad&Hn`rARfYec;i8fPJnSIe4}ak;gSd7 z_HRu&uU>PLAx$~4RL^wAOxwAG1~=P^DK08{WY6k1RA8__2}L#O+07U@jt43HN8FSx zm&zQ5&2`9~E!$2DQ67)q`O{9o69KPkit;FQ`&d8()XY3gl zi*;XV3pzf;K7-$W(sl!zLB|zJV2sx>q^GdBJ;sd8z}p80F6Pr$vxGbzTi+t$rB~E{ z&R)*o@Pp3)h`-7&EplnnQoeO8E9jjUpVOHMp%(_q^Q)ot-iy3^5-b0hXe`_GV*jVv zvKP5Z%RTngr5pdfbY$#j7Sw0|v3si{&5!~>{5S-JF+}ogr5IKpDC&2bF&OdGS+m((Z+W z=|LCPW0|NVu{<}?AV8^FNQWK%BvOlddS3mHDwtkj=@ftr>7--V0Fr_+oVrtEOi!#w zdz#LX2eQ+iL3DU{czvxL)h~GmR{|dr`hkIM)?YGA9q$%_d*iSuSg8k4YVoTcw}Erd z4gC^EkU9`iy4Hd4SDGgcq`8I5*7o{^jjsjsZ=j>M+U&GP+akiVu~$j6qr|3Yi(B8u z!w17sB0E7Lo6cYpOsAKF!{@1&s&pU;4p33__yuRv#%R42MBAJQpuD>g9-v-pM~nO| zozB-MH@J=_?{9()6=!c`Yj5~pppBI4d(V3N-QDy5Ufh4`3exqnY!S{epj|#Whn17g zpYmQ%gpPw(My!WQOe`CTxY+>Y)Q!iu$S-Lkn;Vm3Ias@(5;SjX+MmJ;2H)j@yvb3=%9}cGAs-o6K&4 zGFZ;a0A$CD6=VcYaoS@iFhaERVplvfZ=wj(S9$(?L_%)ikDKn4hns}ozp)sqp^Zx$ zu)DV$EF}9@(jE=chN1znqP@ABDuUu}O8P52+H$t9bxSdpEKHZ9x;RVkbL%si=kXR> znf07wkmdd$YRY9lhjEJr_}u%L5B(GH`J7G)P)$f>HI`5Bpr5Vtn(_ z*Ew1(eQ0?j&wICmO?pDa^t973OEH%K!( z&pmqTeu+|&Fz5fbXODdDO#46Z9I(#-?-Wq_%EK20cnROiqX;M8j)rlkZ> zygkv$4UK9XK`VQZzmXm5VT-KDl$zUfwQYW28w5@ld%Xa}N<+icjJ_S%a1w#l;j3s2 zoEBMh`|`(ssechr)BvN2U8Nn``)F@<3_z-U{BM*zU)n?WV~)_rF^s}njxjq0_m>35 zDu}xwp(Tc`!nN`lY4vy%rKhH*|B<$Y@jv9?`UnvPGzcuGs~+w~W*F69GEc|2=-$-P zxr`x(+f%3Z4|Rx8(vSM-(kJ!?3~x&j)}E{!85xmPRvw)N1RkyAi-qd|eLz721p$2J z4y`fJP0|4zD9!Ky)l8v3dBgCU|{(2%!EKeQwMAP)KaEaN2CZ_dc1*-=hTM zi;7qPS0y*5h|u1sawaqO)VbapzrLR@eSLHtI_y(s*{rr1(f{-bc|?Na;RE{Wvv!}H zKh;C(BRBP?LPDMvFK4#-8MdphqCf6J&$raBxlZkU6F6aedi}q62DsDyrU$t))5eWY z5H`f72(w}+SE~lRF7$_M0rr|$*#5fb9|y&6wsM=L2BLXPf?wnsIfIE1UkMIwItJQd-y)N;8MZf#p!iZ?ED^}w#l1nxIg!RNYCUBmvGP=It2SsRn@z?s1JaJu7LF* zTRr$AK>WdiY4ccHHF#W4)6#P@(wpn9AJEd@s?59(hyR+Z1iXw6npXSgHN3ECWJoR? zzD3W_5bWV<{R8zW??S+{f5OKZdY4+e(@qWX~E8&rk z`7{Oa96sO1N=!toqp6e^F^nrssWD;+0Mfbz-bM@HbrOT zDsCexq!Hu~?bAx+p^6V==a@EdWSXnG4Gm4AlR!&mnWdb}3+EV*{cDZwUOHbr2ebnLXmnfEYW$uSP-vA5nmLWk##3)A#q;S#f9=^QF;x(Old9S( z+*J$85&qA`1H+^KaWK`qdV3BjB-nAXvpGw$}Bn`oFt=T2P~(Y63k;3fE+!v(wm_* zZCIkz3EJwIcAa?o7bRkvDkuxd9trP7u7scdPX{y2;t=Z1-40prYVd`evGVO{W4>TU z&wyK&(eOK`?fjvE2bd_`Q1f*GkU-Us84_U8+zw+2IVNB+VRS<`j~ABnof`e~0d}F6 z;3;ZJ7626x?+%KN^D%qzr{@Cp!TaH316y`()S@Sls`ffM$uJHdg->ot62gTI%Vf+G z%5XY1mp`E*MLV;Y3YMSj9}aMiok)Bq9bhrs?|l;;<%bSzckw_XhIiB+g}#MM`X(y3 zEHR@jqn^VBKA-keuL;(sAL8P~2Ieu>;;E+2RBM$Q2F{sf!k0S$FFXcaXH}^RXC#GA zvd3qQa{0lZNa!lSSLb|yDj>knXuwVlpy`*dNQSL*KJ*$yD=@?##|+<$V*^f{$6Q-v z;Kl+6JO4pkMZE0y^BlBs!)VH@!;EUcx~U#HOg$vE?`KLT8AjKdLIPIgPF6<-j_K9; z)wYsB381srNXIz4-myyiR(IE3qR9C=qSGd2ntMNz3{~gXXX0U#daRjSaI`UQU5_XH z%y?V<9W8yg!aD_XyIRAV5RBh>0tCQI!t|i#+?a*LOk9%^9SB|Sbl&Xf65u9Ej;3C0 zJ+IzyYq#N$>)c`jRbZf|I6PZqRNy&atZ7IE;R8>|ham&n#Kul@p#)y-v1lB=VQwS0 zWTE@!-va5rqmr5?1nOTERX6v~&dLB=`*=c}MI1fsdX$I8L6U>paUV2Ffm zOs|f$>BWIU)B0EE+S~1Mc6)tU%DwDIB)$5ZbM76{w6ldRlKiIu+f9FMe}jn3AQ7=y z*aBjWzA6nEZ=7qY^lMg{B?kcZ8FC+e#;6xan+6miFNE6|6n`8liL!-bdx1 z!)gzY^HJ0Rnl>j1DezM(V`LHB*Hx$e;{>_c`P8U&$;PZjF~?MUFpw>@%6?Y8-^HYQ zP!bG2SdSeHN7I={jlws_PN>GBS-INGNe78J5)YVZmP(iids(0Yia{bYLnC& zF-Pk{uV5T@m!sjfUTniyYi8~3YxI8vQzOH>C-EgeBv=GiQr*}Gv85K>OHZu5L>ZWs zwk9wzKh;E(bLTt1wsWJM;q3q@pvziCblRG6=`}4XGgVA5N(c(f9iE-NA1bncY*m>K_mE7%Sua~GTP|Zu0JlV1 zAfRF`4)az0Su5J;M+Ks~TSyAjzAl8G%r0N)M@8V9wr+sSaDk2%aJ+1sq;BrgGZbJ) zD{{R}1`gw}E+N>jc^ItJ;PcS+MD{$bv8ns}8wt4eH8G=Gh4MvER6Yu|=Sr>x8ZqGN_ z9oTIDn~&m;FW8}HfM7y`alouhR33917%Y{18jeyL(FL>W4TXse5s!HxG!?94q#M))Mrc~R0r?%2*HE(dQCv1jBSIdl@o{|ce74be9pSs^9oD3o>mm@^; zQLl_GaRWm-eq|vb$ zS#XC<>%IExb`9|4Wl}ad0=-X}pz^dp;2SP$e`ovrZvIOwy;-NxFQ2LEvW$S1GG%1g zbe5Io2H|4%BdM^8h&`h#^!gwBvebFN2KSAdR|3q$jD}qLxF2n`b*lKUe{hJS7+Dk{ zI-@D)J*n;-_5)IByci1m)Qx|yWt$f;i2rgo;l0rUp-NM_GV#)3=U+wZd2ZA5yi@V1 z`TqTH6fql!XZ9$^<&!ICnSm(eGXNA5q{1KY{m4k?1=oL>d2jcbb?3ye5zH@Aq-2%# z_KZ>7an_Zy+`i7>_UIV5b_v(a+)V2$3$Xx4K^sT)azAtZgzxy>9;)re4p*3!YuzVb z>(|x$tDT&2JJL0ty?xP5FmzegQGS7knuyTGeHAzA(7oHJwmV*(oqjz^K^M(N=Dwa! zOK-*=Cr^xW1xI>6h7KI{J+R-|V3`7nx8$`{BnODnK7alz3e()jto-RurGiR+w%w%lS+Z=bN!gGvSpx-qxRq_9yYlrmeu(HSukjx!@wY{;%0pV|vkQ0gch9i#t^jWG(|^(; z;2}MEk2(1dKEDS3D~AVwIc?*LDe72$y+=g8iWRC9|>ToNQik=mW0-sp|Y9ym6Hgya$vR&!cKfyw=GfKML) zqkmpE|298!`;9{9WW5g*sAmaC7UmRG`99?(mq;z>R#ij*j3Uyb`iKSavi9d_<~8hX z%uL};l7$n(Q#0nTAjqW?N_}<&C%11Yn5O-0ZJdKw?s49C7{10R&m_+x&wB4LSU5-r z*gLC$t?OBiT1d8dD(`<)r>}sj(~a=Gm3!2>{bXTj*XRGMnlq1wa{c@GWGqFZkfkiA zIL6vy35C&#ELoGXYqLhS?7KQir%||+pzV}q;{C>~x z`Qv##|2_AArN(t%_dVD3y*}U1=WW9I_OXJC)c_)h=%#gbnFfw$Bz`RU-i5avAm(N2 zfm4#Gnp#<&Vxd|wpXYBzs&gl+fnUtka$dM(IQOJgMNa!@$7ts$H!{&rSWs9ua*3ns zh16PJ_x_)1obJz?KB86%U{Iq!( zA2q}Tvk)pL=2vkl9v_OcL4rWE&NI##3LN_?Vkf4g?B0!cH?>H5Kai8TR6myNAgUOWOr5o@$yaP8Mzq2e4Lt3-k-NK z|I`>L>d%4Rb6)PK>p*ecpN2w{eQHc>Hhx#`HQTQFCMmg;PoCzqt8>65f3s>2S^QXb zyKu8AWpw&O;dci@Y*u|dP%9qT>_vXp|kddA$#H{dpqQd)beAN%n0%dsVi+MyX0gkof%aSu_Mca^KJ>xb1jBFo_iAW;zL@LOI&PL~!bAQ<9PwT5)l<*E8Z+%p^?Nbg zH8)YJiTeY0632#mR}uN>CM7I1GyAb30SwKRW+fF`8y}mM{9Gu3vg~p8niEU966qU* z_sCNW>cMfFm5?@AE}?(hIR}t949E?XQw;2bQd?6rBbU+`8j-p+@EG(Z&yulAY)EF^ z$;l~C-Go(J+Pt8CZJFvqcTsrlfkM}Eb7m73O!QEflRu$&g7iMCduFij5q}f?6o^r+ z!tW8p-96nX^&?-2`f3O#9Ut&U*svWA92&6F70K8+zclH8vtnVB!a?>|Eu$*GI^eKe zGoio78bBKoQR-5^MbSNmpla@fj*zZyv}9xlMeoVB)JO=Vw;{|A zPzJD5H>TL9^y(PexR0lyE49UO_kB^>n)aU0#FZ(~%EQ zK+C;|%4h7{`m&@3k_x5Vnvym-qZ8m>XGC+V5fkls$Cfr0DXlTih#C$H zx&>@I)+wo&c>7FHG!(&U4KB`Pa#B)gd`s2b0PsmdrYQQ1Ow+#qz4o$SMEvn&XAvRMW>UgJzXhDfyfs`+TPM0q0qlWpT~DzY#Nt|;+4#ITwy zLxP;PHLJyu@-8r94}`Pr{R{V%fdx0yVsMc;UZG;grKi>fE{0Z=FW--o>5uGt1E^c! zNITIS@_teQIq@2)dQgZF9e4*ajh|WR?qgy%Z{A@~G78#hs-&rO{oAgtelSa8UX?2%?}UNF>?q_ zE&Z;>z&s0>p4t-9hSbql{^5|}o=p&+>hS3eFL3ND4EdAlH@OpkIiVvhCh3e3ESz|j zsH^?Udy70m&F%HnR^Cr)94pWK%&*s1@lH}KSg#tj^K|v#xg{T;k=iNKOBv&VZ@aHd zw7L;2VX;T%G+Y;+J@;1N9}yH>di+!`qqm^1uQ^lX*F769LQc2kOmMCT;iXyX=NmSL z;3TKzLSg5&uKs8ST+1N~=dyh%2k}gz3GDqo=C9Q`%FJ0X{9v8dk)ZN3dtRog^gP!I zUe|Hx;6zpj?D+@U)hVz_<+*9-uxvNALgYmPa*7!Z0*`SKbaWeCG(lvkRi6K zWoSFZy<5)ojz>%s`%=@Cmb?3=icYSpdr;pg?7>k+O|xMGB{PRbOeuSJD6q0( z?T7#r&6#-Jc4I!#O%>KiaP6kC2|2c3l##5;x%gPo^>LsOr#`R*i|p0cBCSI@>uh4o zU+>{K_qqTQ0`7}J#FiH{CsLm}>coZMHQ5>Cl6!Dq!6}n_TFv7N7h&HaWGs&Hc}qi8 zNL{+rl&${Q=IMM;-U59n*kiW?ss}#>&Rm;>UBw)}_SX85?zc^NH6tT-NfzW(S3_Nj zfS~eb3qY`%hmLN!IS2GLmTj0$*b;ZtQKOHJ_T2!%ZCPFYv1`(Z4*`6vUqYp%E2Fw!G{E6V|X8LNgc$tfzXuy#kt$F zr2+g}zQM=~imK0s9-=%3U$c78b8*a=P&M~@4@D&zR_ii;W-!Lg284ac>`kvg_GM>9 zeJ|>8pxP^aukzk1eJ`t{@oUA_tz5(w;>J`6jNk`_am4|G%%^=}NrfnciXJA4&-jK%2=Jbr3%H;sw^hK#VqiCEAz@uk?Z7jZ?adFK zipyKK=M0=`>3v?#lo~M}T!c?)3%==gAg7IXy+vSa;sxzsq&jy{k$;VU@mQ#3=>k&JqA*Bk7~_N>2^Cmv z0;viRLV*yPtbUxWpSjcR1i-T~Y{Tl5O})NJKjX2<>UvO#dqS=PJ?>;eS@0vvY?;2i z(eYK_838;(HXj>~M_@gllH;a(h8&I7vz|A5bu3gCPpc;8y?GHnr?n*8)LS)FXz0nK z(i2u`vgVl70|clhek*cSw~&%ge1BeXU+R`yyh2Iwaz=S#D;vAYg=LT&Fuyx_*)IAw z8BavTYkk(sI5By6Oo)u{Wn>jtnc1To9Pos6K()tfzy46y!fQ)UB0jWoBjnn46(8d} z+cuSo$2=Ud^f%uqL@Wpb_ptFMsRaiZgrykb)MTUD%DfyVdkbG=XNbUY^o1o_EW@nu zlg}AahS{?rnY>_ca^Ui6)3?&%Oj`)upfF9xJLhsf6}9KmYCI^n@cgV*L-!lY8(!2b zmfg1Xh)Jv>bmY>o4G0Lx_1kG-r`&LN_H-5|^cD+5ne4x(-^ww4GNH1fwt4TYM6;17 zdQG679C(X?F@zn>^oM+`@b|wqhKue#p_ISUI^|y*= zXvrcGlK;ZC1DP2<*b#GVMhYxKBg zkVVGZ;I^dI?Ca3YwuN*t`K|P>E(RCPbI=i>2MFbgLYzqgh=+c%Qhv2&tJF4tVIXqc zkv$9;SBbM5A3z@%=|LGK9Q#Hno1R{k*e|pcP%tj*LovpO&!)6_YY4kilCurbb2o^Q zq3d~qZnIUTrbjf^w>=*npQ9yF@^8$ue2CNtYeR*p1;(o3B2WQTAT@c7imvd}8d-JU z)V!~oPF~~o-liIpT69(LzVo4#BHJg18Qvzw6WaD#^l5#Uhy*pB(g?#p?Nh!!Zi9X= z;xn#zt zLe-i@XI(fLS=to#V=n6M6SRpqDFqlg*acSl zA5_@B^o^Ji8(MRq*%w%MR%QfBv+iDz=ue%B~%6{{gjgr(HJuWG|;jV)_~%<>WR3|GOtvL1Uw zzn&i%kNS##_beH>CdF=v)JCJS5>vRf>ETsDG#yAPX|V+zZ}=9Y9|c zgI3(}5A-FjoARwfz6dEZpj^d)`#n%4=={sJf+81kOD@|p{Uk*vUB2H)hH?zQpL%Hb^5si6`>+J0#R5^AVFX+Ek6)YT{6g7G5khaCZI1Y@wTK-xoilP#?89WUjN^JRZ1@!kq?@t;!X;A1S4_J08bX~ zeHmeq_EPV0>gwX0Mw~pV39{DZr3$}(?;9C#aUe_0b3@#;Gyfv+b2CIb{)(^*|7?d% z#Rvt>Y7op&B39vFMY;{!=Cltw(wAQ3zqj0ix?`?Un6OOkuh0m{5bPM)WO@#&79IdSfej~?ULd$qTt-@+Oxlb88dTT< zOkBz%M%Jx4R%IPB0eh3JMSKT>3AFh{(xQc?oNJ%_9y$BJ0xRKB@bZmODhO;Mix9bj zg$H-q&b)@9`4>YJg&Jx|AItZi=z1$NglJw!Jg7L@4FGYn7$jkJ7U_4y9>JxB9@$Qn9!!g0|YU>gwjShD)=_Ua%}_c32Xj< z>mVvRoZk3Ei6%T`+`i9auzCx!f98TGkVn+)PWTCpYG@joN!X!Iz}W)1d+og$LI-0J z1hcbq*3wve9gnyH_di(b%bHM>-x8NJYrmKwI^W6lYgWTL&PqOD=gJ-Yo9%qr`X%Fb z@Od~FJ9p1pARmofDMb(bs_kIYOL+R!4OAT)#CT1=Fs@>|4;tkU1D>uIS`1d}yrh*I zmcPD4@cC0=8bDc=k&t*S4!xF2h1#VVwi< zj`oHhR}O~>hnp=g*q1puGB(_P@w@+@1yy}JhRy5@gWQ&@@38y2a@%doTfcm25UjXA zkhfg(m%Ay7i$e^@%)R&DShoB{uk}<`fK6%7BUAdTGiO2@O?|MuLh7z3?T`Q34FjsN;V~fp^Mx&-teRNs&g_Q~a{(9N^x@r)jR1+~} zA}g|#PziN!tvjCZv2Bf2c`=t~66taO{`7^FoAh_(@v$K|tn~xfFU9em>MqD#OY64( z>+37LtQXP2hC&fTN0mti%>lIm3xAGmikb<19>-Vxc{#mLb^YiM*4Sx0tiuup0 z?~B-$8{=RofGf^ob*mXQ|BzqwX_F>A{@xI!k!z8K z|1TeSVu;V|>>SQ8_E>$))zvl95B0BcE3YDHR#GwgJn45Q>F1hN zk7b`;Wn220!mW@FEtks={bL-1K#`z+10iqE-ydD=e1WicoUkLwK3KQ)@?LYpf0iKe zKuqOjXXkVs^I-R76_PgQOpS5t4ppzgML|`_9RC!$`l3$fb@wdWl`S>-*%SAR%|Pd`GNgC~K3-Tc9V2 zFJFEHhEjrL>Yx@}aRH;a9(__IeQ)b^HCOb*t7>B9^Up|LyUvoiW3}3jO(D2kGep88 zA`&ve=G0L*VWLH%cy>yY_wK0OU%Uh5Tn zmuitTEg+I|lU<*$HxI_njr~cphA}drfIuPOEk3GK%wJs#8&nxfRg$e2X)3fF5M9}- zI=3|YHf;T#3H5IiR$S|Ix3{;CJR(_6+VO|P5WO5}7dW{~;n@v-l^N-;c_)8=J(bx$Ey*2H=LrLigm`m-^JDzM?6g9SShUBLNRytn_sxqC)W}7e%wGY z?-gJxHY771Nel}U?T=2DqTL4&^zi8Xl76{0cTVdb+g$rIC~D@dfiK)D@`hzq zz>&zXwO}L>I9wrT(Yvev{t0kG25Gta$lA*mUA>0}FD3C+hsWH9+M8xCX}l#^!^=5Q zWJ{|@$Ee{s9`^KCWkyCXwL*-VwS!i!(oSuc0bZ}-#}SJ}jx8tYqKy1KgTjW>rMG<^(dGiMX8 zW$z`if@1tHYP_aPo_FdpCXPmiMTS{>u!0>3MGU3uz)AHF*3-ShiE3kTZBLtZqH}Cv zQ=(6miZRjmOQqj&YDQ|X1W(8l-=?KW5X^=m*FUUt1b>;I5)TXV&U<04kv%ui;A8gq zMtHy-D`G3XRwUD%_FNxO|JW|T0#ayc;yPaeOngHzj6YbC#46TYn-7u26=V0M=J zFcWrCOV?1$=Qoe{)<6-iEHx=8@qozAi0csn)hIMoa+Phhy7wD12Q99GC>%b8;bR|c zOD}Zi8Q;?7ak;8#;@V2jgQ87yPRREdFeN_qh=YSe%_t214`Cj=ES0>jWp*P%2sv*Gn21;KaTQE~+xbifq={xTx@(C6P4y{I#TD#`B>N zY=@vO!U^USX{nyKm~;WLg(QUJD8-7)7VE{yIwW8H7qbpJi)_d|+Lz5Uo||i2j!6b` z3%mEpUFE*5;E4^o#MAKy2qniO&;_Tl(6;JTIFiHx~ zJlW8v^aF%ETwZbf)%rll9;*G0j*H(D#=h(cC#7dDwYf9btHMG>psTHYdX*o|$cn z*oe`+QDKFQ+4lt}uX;kn6Jt!2Atk?4zCXAnL)V7K7x)HFEoH@&jj4UT>5Z@VXPsa( z($q9bMsDI)OIR_Zo;we{pnLO&-Bnm!T?MB^0@uWV#jI&>wq+6I;OB28v@LUc+;2;m zs7ak7>mSb0_^37`$Wp;47hjj# z#z9`Ex(JK|A;XWQcd(2XSLzA6u7`0Nq;On(u*97U<`H<(V^Bn3W5!qq2r*acg&hY) zIN98Ry<;|)m3Y%~T!Yhk-wu4~ddR+u{L(kBpQ~qbz2w5+)4H+uAD!7w2a9|}?KJ%A z=$r6!r$l(`njkfvf1NO;$TOTt6$@7oOx{k`5weR6g4dBA@v(i%^a2J)MmdU}y@Sow zY&W{Xcs1T4xqqM{CyP7o5p5+wAUV>o$JV5Yc)o{h&fBdGieJhC-l{g!brYAz#o!?y zm4Wpm$%sS*XT12({wT?)NkyO7HNk$u7UO`S=@sb_^dQ$SI*Ul(#H~!3TXjpe&91N) zui+xRW`|a8_&KX99G~nBRkK6m-e(el9ZH}Y55u8aq^bV&2u76$)1{ovpiCtM6`a5} z+_UpK@2627o+S}_B{TCH%456L`n8C*^tO`oiimizLnzq78<2GLT+lcS1<{mL7SdgD zZGVT$Y`gZk5#jOU$7^{;x11jDX*Tkx+Fk9!T~4AV;2NE(+Jvax${({+NP|s+)8vu2 zdXu8bJ=`6faZZ$i0saWQF?7(=qTVA~9B4jRZ#u>l_NZZ&W`v9M0`gb72WO?1Y)@TD zf~!t=9bZP`K;}IBGwfA1)a(4qH}W{`*&_UQv52VoPLrbf5rhY064QjGQSaUOG)<{) zL;Vvf2NGkguTbBHKOb)?dKwaDYU;tEuu!)DcbH*%-&WiwR2Y<<(lZKVM!a z?15K#Opv>|dhTT{*?U{bZsau-xFk^?@~@X^8Y2y_8it8`*~HS)T@}afS{cUidiO?M z%3@4*Y&^NWXZv6=GwEhgU4DHY6-$NDY-tWOwSD8;Jc*b0iSW~ftDGw8VS&2K-YsEm z&=>c9dX3k8N!@)>l#xM#80wFRcZChpt`HNw+_`CIM6T*_ycxCmGoqsovhv(AJU#(( z|Gjr4b~!2KB?n7oj)-m6#P{l^6o>mDQX~-kq-e@&)M9vgIBKCmM!2QgFU`h!B-25Z zFhW>&j#lYv&Rx22k33qYt|sNWk!n$*k(bT6StdQZTaB0%8@gc3%tXFKe7_+Ujr!J_ z!_TeElR3DSZWrV|ZI|glb4c{Aj%kXI&LXgF-M4m<1+PyuMaN%|O zencO-ofvGL@VCu4DMo!omF2kva(R+K&~71(FetYZ8RvL7#H^{m(8%CiiMRjotF^vt zdU$%FAGAEEIIHriqVvtliI01kF_7pVd5;&r3c;P`2S$f&a6xrrzF=0$p zTh4ASk*_N)rznSz1KI9of@2IwM-s%pDsFskGcgWh_DW}aP1;Snc1&m6sj@aZWna^l zo{#R$T_q_>;#{%jWcaaWOMOChNT$iGbppCFlUN6)+xW8#jx=1*lAx5aMi7TtjtVdj!(3x5P2picVx{w@M zm+yU=HPJdzHu!q5n7&};7F!rJX?ALuTl+iq>=iq6nGKwM$B;x0VQizf!^gfurKy_0 zwjTpTF`=~m!gqP}6%d(U;~0R5&JTYI z!FE(+A)RxpUlxOi*3hgB3ktnxSX+8X)I?@F1mEuEeHzvegB9oM>iI2=CPnuMRu4@n z*!30%i_R>&jmw(qzK&gZ2N&WM{Iaqa7d1vO!Cv#A%2qyZ&;u#qN2th?QOS}trtaGM z>+tK%;9z8a6?z^2Lxm;n*CM5N==HQ68jTdSzxvS<(;FBLO4jQo-pAr$`I_u=8<2x^ zghy8Q2Yb>QMV9%XG~04qP{sH4Zk}kLAkYsKr+Df=aVx@emt1`95~W@fP!v>~yq}He z)eY@#(Aj&_q-?T(2a;eio6U(4`j(NmJCi>;i##hLO2x2r^lD^|jFoHiebez=y6~J= zPKBFg>U4Lw@buErT#^8{gV>9B!RN}%t9zQEbE)*cF6HHXbkBiFmXs=4&Eqe5A~;mEtgRu=r-prfAgU-UV%u=bv62)ex#u;El(t z0z8+E+Dz40-fWvPdCf30h|JneAsi@|<=|L?4C0&5W=q;W`_>7YB#4_Py+r<7DaUYT zSVg>vHIx4qy65z+2@18{on2BRnkic3i3ve$)V}aTgCt`Ymfj?PspOVu&-65ONzK21 zf7yzw9MxmBcJwizw!B8`5h6eB@Eqn<+F=TI2~0Vt=|qkT&^^*J`tu%=UiyMD$g^EPo8uw9^8l|SHuv-{5EGM zWOnlDF+Hl_Ca(g63>|qg#N64JbiTh*rmYjD%E}f;5c8>+N?O8xVi#X>fJLi8(P$7D za1h=1+8SDrZB8hkG!x% zj}Uy2;c@#?f0QRhsNO(VVvEx@XM9DL6UxZdW)%>X9xrl04&q|{%(n@>%uK#6I&>q&HRUG-R^+=B`kdXk;=Bu%6-yLLG>eJebl^M%@+=gygy=GexdIm zdZaM5Xq%n3)N@6W53aXd)k#Lt&?m-<{iS0~+dtbAmg^B#`PUPePNy^ozCoCE$sHH& zxQN=le|U@7-u6d}4@N>^liB(7V+1TKGgk1;TZ?4Bx;p5`3KDs$fqFB@aZHBkPa3xf za_zP-uOQRB(7A|^>4aqA!$dxF=;v9St7_?9SOHe=h^YOtSrzHXUh>PATlP?;1+l43 zsjZb#3$wcEiIa{!f`c>_MO%s5xYJ~6%w=f{YEqw^6B)Gu6PtI@r{=a9Qd}GLqU1Vu zBB;EAY@2+%g}XJG;Xf{Y!zBBkIoS^JOtbZ2=8!4SK5DSUvw4rS`&DNjG<1*q$1$a= z@!YkO2zpyo0d>c^@kp8Sk5koS!^26G3K>FI6yy zVNDXEK}Rt1d&5`_?l`--StnS8zY{cxP-*RNqF(H*63F~HYdYX>x!VibHa(s#l zJY8!@sh=srY4xM~<1WlL59TeW5V#A*TBm^<#z8@Lw9HkRakDN`Hq~cHlH3U%d|y|} z#ON0nsj|$fREZ?)P+E}&NkR=OPSLMTUq-U`q5qv|%LhIhdUS5rxrOMHh*eb}$?S_A z9vWI~V&rt;wUFFA`GQ&V{R97Sbb=0PDzuUuwndvH88Q+S zYi)Z#MQ1!~Xvw2Ddpg&UqO*1G$HOizPTw7KVw=B6&mRMece6HEsm%8n=O*$*$uRUQ zRn~nMB;#^KrQ$FAp2#^U1)nA#QO+<3hHjH%fLhYH$K_t9SGjf_BX#OHWnpc|Zl5 z;c{_vJuigK@cL*Jk;AlWXG15WN5aeLXNw7*Lc4f3K^(-y}IK_D5|h&dnBS|sa;vnVlo`4di8 zGOs0EtbcH}svl(S%bbf7Mf6nOI9H8rX$g``49ao7{&QGIA)G~)oiv!F#uA=aR#pbC zDF$|qNYi&`2x}z_gFl0#!(tJ|0ilt*QFW@UJlZpqo`f8?%1@+~J;=(yN#b9qli>`ba6XiNn;5$LyPqitWFFFc9ZELX5 zAE6Y4$h-c6= z&7W|g$;-Yrywy9iBHbPzZ(n)=nkf?dL6-?P;Eg9XM9e-0Q)#9hNxvM}%E8fDJt{RO z(dZ955Z%A>_1+iQ>WZpuhQsMSUD0NpOzl@#F@4N~#Lu20`D%~yqUkUuXh zn`_a(R~u!bTvWspzuwy453Pdhk2Pjgp!1Lo#%6Nj+P1scx12F6j zp;sGk8{G4kV?S20>s!S`jT>!7YO{=M3;V?}b`O>qE2^T@tggx0h@(b#jD5O2RdV;Ci1!BM{@ z$I54gG6wnP)Y+BKyMJP+_W*`!8x+qwdJ;+v`wf8{w5PpM>`TWWO=|uP4pozMC z-(RB1QzVAZzFZ}61NnM9vWn*gJjd_+eCOw48hi)?py^htpg7)-G;UNqR(w2E!^#|D z+6*vYh?QHQL#DB+O~5%A*7+`v#F#Rbzin zoe&_A&b?k5+ovAxvi70C<+EN{Nr~r8PYfzOEh#7{2%K#%dF}l>+p_b<8KK=>=Tg`- zmwh*I$iZ>y9Dnn1KY+}SZh9H^+IP}|57C}^eCaaHk~!AOA~#3|rs-m7;?x&IeVr{x zI2rL3B)hBNwU@Ow>iPT%ivJg$J$1rqZB#8Pk4Gz&9@{mQh0Y0)lNbsLFAV^*;P&~e zO;7R-w@z#`FYD2xSZ~16usZ<*rS^3qhQJVXx1H>8x131F5koITmI(q)B2g|#L4Tp& zDit=vQ{6gq+wjB_T0F{bGOBrSlM1VncMaZj-?}$=WE=CD z*{@yd#W*;Ch&JA0Ju;DeUmzTTTGr(+0u`ATszL4MpCd~Bex;0V+)c5)X2KFyoj%HV zF>7CV@-ouIBx}Y_N6h;RW4t6XOJ*d8<9nfG`cYQ&T4d&^mxXomgGVUCvBj86K6`d_ zHBD_!k~l2XNqH|tO`}(-d-(}OP6wM!V|n20ZuuK+0BH}y9k0uaLASWzuQZ1HD= zM=)ns0e#=Zhef#|_HZkGy~YgNo~P0khng)&Tdn*GB4>9pagx!*P-bz5nW1tENyPmf zTc#(^?#7hN>jRk>k1Im&5-5g-VNAJ?b6W>(b9KZ^hbNxV&KNzm3jZLfFDI|mmopT`xGQYVwcistj8g!tH)})C}k8v$5ihP>lpIP^q?9o zOdH9~dsRok^~qlMX;p;lFqaUXUZ^)ef&81Vx`U@Az_0?BH>GVoa-wFr_G}K;@oj6( zgd*4(UXisSr&x)@YV79GGs)D0N%o;Bl>YTq@vxL0JIuN*Aykb}rgVIgq~W?O`7_av-x zDXZYyW2BW$4AMozgy3dHYD+p$reDx^fk8IXg;<`)MnZ_ZXN(7eFOu4c$}hqBJfT*< z1VpNOdH9|u_xubmiCj9`wV`f{zlzu=@0xJ9t5=&Md0x{g2B-YZAmeK6yEChfi_(-v zo(3E0Jxo;$Q2{ADG5fr$S4#Ue&LoV(RNtLotFOJ zeApaXYFMdRV+x4rlV2z5;8vbjo}R2DtTEyz!^E%OQ`J~UYP(MBkb)fUJp&^()-Ek) zCZ*{h9-HC0N#D01H)BO4;uS*@Pj6X8-^6eL?-MtfC(`iuL^#9$)|ynwL-B(pOXTkz9{q`t7vWY6+qSL|gXRp=)iev3dlHAwVWcqf8> zYIA2$0f$QRDPgWk^`Izrvd^Qtt>;ulHh{TVca~$_MZenf&?MOrf+*F9eQsmaQr2pfE}ImJ)`!&I6#dl9*KT@x*A`uzI>ELa zw$b;P47>_p3th4*Bs##fipCl_M1avJOp1leKoBsE7PTA1Km^t6r{Z2w;9DGpb|qa9 z+9o~HpmF3YUPO_~*Ky8__l4Qgbg7N#;T%w$w*@E~$knGH;=9nhJ7dlP)J3ezEPo$v z6}ewy2f+&U&=S>qB67EmR%qWi!&qD8qgFZh0s7&4m_2pd14ej)GHV4{x7nKyDXasf z0QKqk%`BHNu`r({J_&_zB1ZQ{+f+GbpgnKfXwM)!e1O+O#rOw}IRtc9dh(?oCL@Gj z19T`LxR@e$O|PVwpRfia_hyo6Kw68zH2NkwY7%`+E%j>PjZArCVmi?7CX@OFgJ{utx}iY**v(`#wO*R znbung-$-f^k+XC&GG%=^+H$9c&~Dk7 z%yeI32S9Swf8mjP_x!AD|RC?M_CFnP;|B<w=)pR*UkpnU)k#5y z>Cet$y=Qh_M10o52h|hCsOY6LQFVgG=809@dG-;1AdzRa4(U4hZN$r#?OY1)3}P?8 zeK|T;BJ{|;nFoqCP%NmPHfiA32(yFfvnFt&k~TK1uxTaMlS3AO-YSCHZ1&QqCV?NRe=utcj>u}f76eQ z2TNIQ;~-8Y0CxP)h10-vSoU&_hduT(RGZlS^uKOK&>s!apT2??;la?!%sg}aQqeAl zzZqcs0dTNk7roARe*LO(C`fGK7v^3HR7!j;c}*3<8-udjX;P%d5p&43mzGgsK9L%> zdBWqo+?vd2uPLe4s`()MB>G$;FTJp-LIu4YbwbqsSjc2B!%K6*8_e#zTvz{xwp<2a zpD0($z7MGlVdVsXeH98nA0eRjJ7^rEfA$Rl$^~6LTd?z5#8-Gv<@T}tnPn6H}p5lC60N*gAa)Cm2&#Gk(<)}EVui+&3+M%^K*OcAX4G&i&?{a$|A04 zIGQ3nD=n;IpO%%CEfuM(m2hsoKJd6_vkcWL-sAF9v-8S_E&gC3V}Fo|7lB}K&pXU| zppR8mFPYxx^_@Hw4iqV%;*dKCW>1e^pwB(?INszM7P$qRD~UJABTb21yTwdPN`CoM z;4Pag4o`~u(8e}`5=@&Fs6d;=-n{!g<~3;VC4ZSsi)3WxRPCK6o|%lo1=ap|-`3^# z8SqVoy~#W$FNC%sDHMcJ@X)y&W-q8PP2Oy?Uw%R^CCbK?S{J$x=J9OzhfksO!#%Qc zmjVF``e9xN)+<$d`G(60?T7V9SyaIhUSf|n0y7yijM4!~^_;+{ZK6&{h?%b741@IH z>xYldg&v`u)}+D`D!l2hGXuCbHQrIf5a0oCh60KPmwHfF&F;dPQgMG4Wy5gu(cwHS zAD1BgF}O%ywC^~D(4!;+v)t_>uN*-g`pUfjZvEInSLO)mYF%;n!<;TVSZ54hS9llZ zsH;%}y<)}I!ZEGB(YCRP(w}fND5T|*sn-|Viu*e(+{PaP2#))BPeoVIg9-Y{OH9Bq z11VP!0BfB^?Sq#Mlt1nTF|{EmzC5OFhs2W*gn&^ykA})ZSF;K&^|0ZH)x_Z085@L^ zAIRRvq9xp#FXB9*&$hoDChUiaJ|N)3i^N$vK9^RI7+#(n8)P_IB%Se?=vFsuSMqwj z%Ko1NvqRjUvDbd^3ZO-yJ_uR`pq*1=Ie>y5t?G%kvf8^>>#iYo27hZ5{k+$(p1USh zKdV8}*EU!-Gp>*uW^Gy6;%(a12OWH_**6)@2`32mfyK!znXBQe<3K(lN0hc7bi@+0 zU%saZ@52c`Klb1%LW8fObIBmqegC1FRLl6j4#~0!`0#{&86=8hyIkGxMM}@=%x_OS zxhmCC2UeV=8SmPN+X(p$b2|-%3+xRnD5tqxhd#ic(1kc@yy`e-~6?8N4C1x1t`E)M%O?p@VuL1!pS)1W{9WbMKoLR}L5&|CT0+>EB6+VL*cc zf?JDD(L+cr=*a1Mc90-Z26D}2kE@-wwc$O(HfucH+|GIOzTxOObE(*F%^wX$Q~mdo z5y^ijvy+jlB|Ve^Quo`UBExDs?sC$ub|GX05Y0CY{=`)Y*U-y{oB7{{wit6lpPgZj z*VObm%PSr~52{*6%vGn=>6b9G6LEr8j9ouN0U~dOBgt;3P zFM&d#qM>BSeavgM!CAwr44#Bh%D4XGHHF}5k2pRxGZG$rT8nhB zMAbEeZcQ=|WUYBW)PyS79%NW;8emRd^?`Fr)DwO_SA1K$(d%%Hdq{033Ph!u;5$7oXUX>6g#pCd~jAZ!s>|D;(%1rySq{u6neG)1{%Oy9$C# z(Z@Ed+KOasg{ce!Rz@RI51HCfY%f zo?DMA(hv!$5_S5T5;i3>UENOslB%dGXd9BMYaMfYZl!k=d|_KU0XBmGSm)GOE=M@4 zEo}M_#lHKg*YKIqF~glYDy`!$xYUuS6atzk4boBMMt*hKCcG&=!6tV1y-x5nsRXis>$<>03+wZ%uMI#IymdM5I%%ht#7+;F0%y7~AtFTR@QC#r^a ze;P(>)idPmvDK*@#Q^j@yy=m>G_R-Dr$t)voTGys*Rn)gC*0y;HI9Nu!&9xC#lJ_L zXDb7o#o3(^tBD(rK+;U+Q?!GIBcNPE!%vBfnV#VQKb!|!4?{215rT9s+<1e<8d>#r zgG|W2tT%i&(4vh~A=SfXP2y7;AyWvCgxW~#cK0|Qa{XNXWnEUC2utn7liszQ{et&C zQbaU*kVSKx5f61(G85|@9FB^U=q7RMb1V@40KhY1%fAH~Uh4DGcwtiUc?H`NeYW1c z^RNqb(ZB9#700vt%UOV6+T6T6E*Lw4Hz~QD2($E&&Q7y8mfMS(HVd$hW-XF03n*}# z`H-Tw`ah9EvqH06Qga_9_xFs8Hd5d*HT3e2L4eOYIfM!wV^so@PX%M9Weu}NBa9}i zhNc$0vIV#OX{mp)gupl$eyabdXNb23($!J+1c8u@@(+7|nP{89)AtoC{o5qF|09Ot zI2dY{X99t|=gvJL0V(Q0+^+4uf|T+!pfx|Zt)_rhdzi=v)NbTPtjN*T_+Twua0wFr65um&5J)L^pus)cjR|3`Nwm}=K{H8VH2 zXJm_jaC7*9@dV-EOOVB1tEQKC21SP*(1>Nta#>YKambPABRr8GsNi(-T_KrtB%HEiGFPdi{~qZ$greTo27MA@3Ql&ijpx@cq9_ zEq#mBAz=)I>pqqBN$Zf>&VV-}0;$}dLWpFaEmDj4IQ;g4fbZ@k2ePm#n54hfGQFET^zoZWk z>Dxhb4PpZ(#nIro^p6`D-Os7UNe9LgEYMuXHSW54Mq1Xv)-edfCJ#~_jEN7yTii5;(X|OY((Ht z*X%PWie;Z4*<6^+uUww4em(E?G7>dSNQ74q^khdh?$K$|SW6Q6 za^!BW$%;wQXvxSm&iJBoIhELSFp-&*-X<$xoL$P|Uiee6fv|oGpx`U=%g7iw62lW! zO5bmFRr2jfkL}kn~Bl&NbEiF5J?-L-eMIU@eqxuI73<7?`X0OuwsAR1t8y_BD z2!QXV1d33Rl{+S-_ue0yeE4(`8$4%q3Tu;IjV4wCELNnhJ3-jDqyIpK{sj6ZE{(nuVHjRRywFDF~>nA!EOKSo80?DplE~>e*Vb!MGZ-(_Kfb3TWlfV8f!3> zp}60XJ{MX*o>z$~o+=>FB0@dg`+8733IEUY-T(p_KGs7Kwh67~J3&r_&Nq1I5gqlI z!)B0cej1N}v8oYpRx;lgA4aZ1Beq4mM|)>*Ad~ZY46Eb=Q1o4wz#Nu;FsKCAc8wH2T!M`13=d_6f6rrh*j z74)B7JbI7{rL6#xW$ml81cZbZ1#&MOEo#El(@tI%s*~A@ddS-4zLuJ%_QFrAxOWfdO65lsyNDvN* z$gM(K|MtX_6v8;Tzj|iao9xpDSH*%l3}vtm8PFsiZYm&TKQ7k%E7*T(Ek!Q?6H^3HJA2&A*&6KG)VkyjG14#4vt*cgvdEE>U$PJae+WT#*A_NkqxcUy(0EV)EIK4;JqeG zI;654=I1qvs~Fw{#t^X$X)bGZiZ#io9?7xanI+?N5xX}_htv4G5Jg!t9TTqwa`x&@ z5@l@MqY+38myvX6fSa@3?-qJ>su&bDU%1nRV)3FM7aIkrF`&PYIcQM3 zT$p1>GIb*1Z+w%xhqa;c-FxN0)ey5 z^$*Tt4MwJ}-KI2&puiNz5$WFy?d+4Mo&ZJa&ybJy4hWl|>!X7(D=;`4@Z0MubE{Lj z**q^Vg3^;~G2d!%(sLXjPFTr{7GEqQ4)AK9PYfO zx~ySaU%m@#izN_LaaGWRRV?ehLpw&h$@H4C z=y;&&YqmC1{ATHm!Fo5?!Of7Wle1a&)3X!vm9s+X3((h9Q^QOJjPbaNk>uoT6ByY5 zVBCTmS~G3e5&LRYx|=;50PHy&qDu%3xAxHA=go*3dL!;2pa)`h!tXM!@vlbuMdhoq zTJ@?Ri%Ec>GE=Tqrf~>0{l;tR{kiModD>oR(+Wrmb7E#pcGs46dt`d>@?ShRICU+Q z2nUCTCue%3Z+dm6%3$@nC%?4I={KuWdAX9lz4{7=*kV4hKte3q(Zxr7KMP-$Zm8&= z?R|8AHN=Ws;Xi%-ev4L-CP}k(jx)=Oj4a-S^a`H{ua!JtDhbsp(wfZonniuW{QB5L z`5OlxygJMSJ$V*rYcRUkkmRs@Ch+1c-WzT+yDuyT5F#3H zfLbPo-+m1-8j)3{Ru8vsH^&Dq)k|dN#I%R59&Z2H_?P3Zd!)sm$OelNmB zY3T6+5nJ4BD}nwYk`rA9Vn)7bo4;#mFO+Sm_bezJuXs6y)tfj5@&-FYDz{`SQb{<> zbV7gDixL?VlEJ5bwxzyu{nLc71`<;p5F8uh776NAUz(tjC5^HU6hoacmO2LJ>x z7^(qKMLkwO1>_7c#5S}1&OQdqfw76S!hNv5co3G9CoZA-%T-!I7c5C$ggktW9r*CD zSrMb}UjqODpXpqq*{=#;8+_{sA7b(2{lCx5dFc69dyl2qq?v$Sfv*~u3z|pwbOQ+KjWHAU>3-7k51hh$7>17 zAWgQ2pbtko$N=j&L@;kz<~XnUkQ+d*`MBTRc3Tef%3CV^;$T-s=NT$_&!ZkIO5U#e zRpoCkQX%!$e4FqS&%c>%p!orbMc1cGATZw)Oa%kYFiBxo0KonB)%;I4A%nqCdOtQW zFtA`bQr>;ClD1;*xqoxY3cK@wC(w|ws3yA-}J$tvQsjXoZFdZl#y^t^01_Q}^E|9AIkD=sld#)Wfne}%&?$?xf z-o)lVdd=%Z`837(3^RYr|1{?wWc#k|{P37@X zjbB|7R)ze0#}>%{NMCl6a^V(xeR|&~)yhTb@KC%j624f-O6 zW&x)1cMCU=YRXH%Q5IHGT~rVnuIuri)?=WK47!$g%la|aVOs`4F01}ed-HZSVowpl z2+66MYyF*jwGpvI_@u&XXcnvmW_4k7J<=nZLaQAxnMnOs z4(OABeAfT`QUV~mIwPDNd_qt2tvBBlIjOzyNap{3q_gQwow;+&J!!&?|NhQ{gpV<= ze*5dUD=28_{=Jd5KcCOtZd!ss{6fHI^e_Ct@0M*hYv9kmAWOsRpsIfH1z?BIL*Gmv1p1hGXy^Vx zU?1#nWFG_q3AOWn_BAHMs34F^xbaPW>qk&3A#w#0k|V!)^ew;1lZU_H2Chy}j+}ct zA@|EZv}%UZ=I27=MDwvexd7BX*pjSpJz_`)Eb;i<*8w?4>35-$Z;J8vVP->j`WHnn zwg3KpVcPW2-M`CY4;rH(^O|n*m-Z=U?2pc3c5h9I`_h)TrerYAP~=Ey5cYEmd6K2Y zj0n=rTmGEz_FZlxxxm|Vp0v30f_N7aHEj2Lc*NY3FgwFs?o%u{M&ZZtXr|%lc|ErB zsJ-8#2nH&8%cVvX)Y0z;2DPnkP+ta>r8{dnTU@kZW!Bk*TnJbhJ5>Jmf;ii* zPo45z)cneN&mh+8JtwFyL5IKX+ufDn^(hDx zGxP5Uq4)#4-{jx;x%(G1pQOI`LG%ByL$(p>>i*N$>h6Dj>OELsz^Dyg81n9XCDCWQ z`#dhc&zt;|Hja}ygsZT(qK?;<=hpiXp^DJvMu$3Yo0{XhNBN^DCO@ZJS+w$vr7^3% zOx5ynR0ymtf=TmcZ!;Kc#b#Nx+Pg=_C=@8i#|cP2%For?o_`l|+<;ETB5jdSNF<}& zxe`x|=CT>$yN9Z`Fk}OgaQyVSzVf;LoQVnzIq;tvL37r^dOQ9#y!izJspl|!{Ab5% zJk%1Q)FBh)N+Ai&kqdjBR#GE&!%!yxYcM)6&^x+y9Pl&pABFSDOWic ztKgNb#!4Hb_JLe9w>LU8MthYds`_<3+(Q^;k$vO3azaD0gNhB4Llqjdsfgvu4eErQ zFk;eY?pwy_8mTv{XgKdndqC4_^p2LrRg;UC@Q^K>m1tuiTgCprua4Ti`pHK>T?&dV zP59#DW;E3}hTILLM!BC3G~nsx=y^;}I(I~%$_Zl{LrE|F#^|*UEkinkKyP00XR3d% zb~6dtT>0VdwN$JA2G#SD3+vY{52rRE{cxYY@2q{zv%`dMrCCYxZu_7AzHRH?ZIuEB z(#xP=4iefDJ~?cC`{b^v+cK`50;U+S<o_)>&75%4p5> z{_WLlji55YQ&+D<{L_KxRv950Fsi(}~N)CH0I!^3~Z%a;+*VR-PLGQSO-xu4V>7s=Wf zHGWgpASI>E9`3)5dy~d9t_M4{rV%>P_mS~d+s%9~|iCx$S@yF=Oj>%amXKZK;{~gAYGCB_k?w zMZW3TLjl8^+udAvdM@savU6**U;IA<%xb-^yr5SJUE%P-MPH`~oex8{Y!u2I8S>5# zHYhx}H&9HSfPvz5|HH$v>TuI1!AEQTe|$n6Y|GV&D5D@Tt-kRWJ&o@?{QlvsZaTDD z(N%h{wV!#8?vV55bsY;k{RKHsa(~Wf4OZ7tSw6#`NeIJF2zUYRj}bftC#%As)Mt7- z_jUL``N#7@Juq`D;^Ur4MK$`~PpXQ24!AA5u*m>JwmNVY&vI1|beXIP!WtN~KDbtg z4(-2@kyO~f?(i@0D&?xrxV3P~WN##sV24FE&1Ht~ z1-k6_e(`Y$moBl#DNqmY3JT@VM?ct>xw#hx&*1Ja6Fr_4#ihYiG!f zAr#zViiwg}?q0tH^DI2w9tU{sfyNSTWFD^4ac`DvGbrVNc}5OgMmjZBk2k}E7)v!+ zTa$DppMNG^c!q7<*-qXJ#R)8w?RE}t{*ijq?P@%*z8kv+06o1-71;~>ZC}jFzqA8h ziqf8>_VD|iFq2gMWOT{Hz2F|6bu~UtLMzmo7l8zBKzVKqa2(-xW@!t+B>3+J^A6MF z%;;4C!N*$o?`GhEyqPqDPRZfy!@GA}zp5xAkf^h9Pu?qOU-GcoAYlCnb1`kP-T%(} zIJ^w-|179>C2@B@CjNxy&wQPG0dsMIUw^Z+u5s^E0UR@LGaYIZ5il10mT|e{GVuSe z^*$42Vwc^mfk5knGwoj*t0|xGMORAhs3QgUPWX0BL;&zi?_VD@7JqQ@XM)ZE;?gfe z*Ylk#j|hpY-)Uh}{g88gS$2w!^%W@g#suYy0aAgy7hKn`CVgp_*IkX*^jhiji>h&G z2@k=36iCs2wE5#%R#7*6d!eNK;2}}#h>fMv^ku+>YX%I$wkOHDcFPA`SE_qb+1 zx0)*?)WQ+FvS3BAPJ7*cjrSlm$TupF8t#+Ks@(557k6JZi zoI2j}k^C}H54Of7`>`WK7!iIICEA=YHD$m00TZxGtzLuamg7q`qZBqbkDR;Ee2X(T z{5Fk0dtnWd3#V=AV6X}|ETIqb^tU?mb~bHDR)v$6r}Fe8xFxojMby!o!1(OHc>w6M ziYL5e$$pW_%O#ku;aWRCUxci93{FHN?Sm$lp>Q+Ch;S?Mf}65NOzB@UU4(m;o== z3n=;a2I5Mx3YPGGz(`a*vgS31i6T3W`ZBt{UNp~nBArpUJi~hL<__nsN%pYLL6qxYt6_O2XgOCVE3x?&Yl}qp z%nM>=7epq|MET%UKK)QmI(HJtvbx{p*~iLY;N5P0nKR31ojOttE$zhq;?~ro3gr`S zmXal=7_v$9aD_${x_Mqnd7@W=b?ZD9O=8NBhjF^l;=rnwo?&q$WDY_1NuO|o77x}k z`+^xH4B?@MTqn%WkHTr5+R{3dshD8L3R-Hdx;1_^(}}`ec^CZ<@v5$x!s+Xy%%K#* zC6JMo2GFw;;~0EPf91pT6CU5*3_gT2xDb`!sQ7Oqx()F?EJ>OwX0sb@uFhPW3alr! zq;rqDJ*O=@Fv-9wGTQ;LZJ|kit=#uoFRPFre;vogi5U8ZR%bKDI26oy-#Z6U*#1TzFICj#<#+)@8jVoerag zT$%A@bhh7AkS@8P*0KvlYuk6Ru1MP?!=L_>c?DLs9Uzim5n6ZH1fE=7m--vQ&8jE) zf(ItmN`W=>+(kQZvI};zCx=$GXzA`2p}`Ej7&X^K#&s%IE3#^PskL3GIpT#XXXQ?l zCY%tio}tNcj(!|T-m$DNF|ZwjLXllf_0fi+92(|f{YA;G?1?;A7HS*E-5Mz8+`2UG z=gU#rnm`aywA(^w#TJ}UFE_YZG|G9A!oAX zvQ37h@xJhu$LYhevyYC7m`rUUHHnp7VU=v|i`B>dAW+-1;KPJC`P@eZk_nIcvt9Lj z{s0zDqdjToc`J=q>W|hQ5r9ZL3akjqfn;_=n+B{0D7He*+--c8YPM<9s$$(xkky35 zq?B>2<^rdY}aI)fAwJLXS6jZk$?_z8>pB zWx$~DL|2`sjZDr#P$sVI{+1_ti1)m8hBW>ei7XUI*YO#()q zia$>t@NHW4$b;au|7Z?pznW{9@4`Ai8YRBBJKyC?&5wxEqoZw8^j$CEi0jFm=+{BZ zt*t1m4mVwl*4!~3UX(L?&Z_^NIwD`4YeUX}X_7+;etkZ;1T#+FomNK!^j~K|ApdZ& zdq1Uz)~1`tx#gUNJWlC&OGKEC-lG+lx`3IERyo0;=hOXK%N2+V_LlN8fs?gLo>^L9 zzB#6wXbcPOE+{|D7LIIcT{X=w9I=%s<)1VPtkF#2Lk6DRQI2A(WvU{5|HzB6Y53ty zG}Lmz;aa_vz<=k7Z+f+8r)&tqXEkJ#FWseLWss`l9>J;o`1!VhZ6Bt^m6nVzTlv_0s2-4x`&mRy}VM-VG}vAt{YT87l7r>n-MT#4lwiPOhSmmQneyEYLz)HFh%Scp?{^+V>N)JM$Ch{15h3xe%_*MW znEB0mK+?Fb0t9{Dy3Mdt#`t11XQx%}(0Fdt_Ck0Ry-y8K{~?nx5b2vO-jv+;GI)QF zUCWkQ1kP3>b@B@NdyyOj=}`6g;NV$SNyq(6Qkcn+b86_O0IaSn_|Fi5$)n=u)JSJ# zFLspS1*05|zps}m+!K+eB94KbYSYGF62M76r+?(BCdMqB0k@A#E~~zeOfJ0M^TiV9 zzKB>;N2Uc9@o9FR?et66X>m9(TW8XyL4x#r;q#+U&{v4dRVCWc@L)*2*_C*ScM^KW zl%1=o*ms0&Sffhn%$gX9zEox79J@&^G}*tgl|awRAyTyEqo3`(>?IR(<;v`;-#a3M z#E>7eBRJS(lFYAbgx;`=YfY(CD*CK(` z%v_4+wcVp**B$F0YLq_NrepJ*Dt-9NuYAM`&foOTd}ZT15R{#gJukGB>U+LG=E`{8 zrpUM7)rbb(;_jG0t1Q>q$kbDGQ!0(`>FZN7wDDI>W6Dn&Mfeoh@nrRxN{Nh&SWTS}lxieuy8zty%gp))vUl(1z_dfn%kaP21t>@i3pNaY>f~JpwBzT0ryAoZbmq|V}7ShT$ybnp9HNhNnEHu?DS^#`dF^gtDc~V9?&ze z$gEt;dcI$M9=qMXOe@k9!@A_qXHS^7$R~F1#Ydy%I-^^ zTuKM&$6kf|MqnN)v)`oWo3m8cIBU8Y*)pZK(7F9rnv@J#rXr0!A?mp?SKgf`G9F{B zI1EdXilPffL=xP5b~!n)Fx5aIuG%jmf7@39)&p~UF5}g^df7q)r^KbJvue`{4PV*K zu6h!Vy>xG!@mRqZL_~xY6hyGN;hjExqR)4xYNOv>CWY0owT5Z0E~@U(n{IJ#MX!~r z%J1M_+8)5{M7b}v76(r9_4RI8Tb{$i4~Hquqy_nfX;>Er(lQ$G7V0@ORT1JT+DiL=;R6hQQ*a`T;P|>K=PP>$~+LZdL`_C2`jpQ$Fz=DGE zB&kMRj1DM=3DF+_DI~n&ui&gJ|G{dn&=$Ms#CZz&iVflMgg|*GhW>z&S%WQuM$jl( zbsn!qYAvqiOPHRcjH?Y>*_4h=NB{ztbL%F3(M}m-2?--Pmb3KeTkh2E%Uu+;Cse*` z<097H!Y8#v!Md_t>SHk$%HW}6;Els)?!BgCVa&_%sdUL+W;q{@KdmjZAFn)|2MA_M z*3K9Z=%Peq#7y=gDP73UBkytzDtvU+cSPW-dLaKlqTZPr-D3H&M?U~ zOwILkH>;baEg_=HyN}hNv9b8g4z(_I0q4z6#}^TxL5b3i&q#T7(|tdfjV_v&Ki7Tl~Ca?`+rjo@YTL zxBLLtVR9($@UL3gw3*aP2Ya@S(w*Sht|bRQr=>#%7r3ay$1>sQ->%n(U_ucSCNsZdAP(E8yxr~f(hq^d_cyGGB3xR&CfR{GL#4lVK4 zN#(Z*`%>6zQ8i97-Ts?jk5hayL^iRy8n=w=XLWuv_N-+tOWrs$p>j>0*Wej7AgsD3 z>eyB~)RjpNOV5bO*eBr*F5H@b`%JRT5mZPi2)=*iuEs5gOCVEK@Si38Y@VaGx3XdC zt&{Gf@x}wK5=qgU%VBtW%AZC9x{$47a4L5@$8S`z3RPrdx}OT>cwj;+IWppF4jRxw z_W0}MKMlRo=$p(996jaOIkJN-cepApc^Fl;1{eM^g!7UWxMjG!{CpJood0T z@$Q-A!do1FR`IDqzQLn^TKqf>{(G=P@too>DJRZBj+5X;y>C_A;73reL0+d~5XVppJ&^N@}Q$_-cjrkoNle*mN~&3k#P0-%0taDR#D zWADlIeE33riB27ib$kIKAOEDs z;l?g45l(U1B?%HMY&I5$RVD}sme?KFe=RsdR-K4XJ**2&rM-Mg$$T&K$9Uxl_uL5D z--@EVmYkTnCSa)KDsjP~_Wfl-6pK2_OTu*IlnzM2zJjt}iQH6HC0|a%?Wf}S#J;If zCRl=M>Ve>bbauEg{-%bnh)9cr;!T`K1nZ6Q$y7WR_CP!~^!V+JaRR6)B7cPDhvYIH zxy=5E1#{B`8{~}K56fBY35Xa;-3_CS)QP$-BDHm)NB!5swpA1QA-|>JC1??M3k~`` zS*FLgv^&-$PR$bkEImz{ZfISuZ!?OBBcMAJ!w?!e#9J4X+U3iA@jUrEyL_q6}mPs!)Ofg1#9Hy%Rwwe!3vodb7Aj{R$2(L zZb$I9`zg$-t(?}@(0;AT7q?gyhTD^=m>Db1D+7hs+oh@YR2Bc~z$vdvoNvph3381Y z{BKF7wI#ruv1anDyatt5Qv*Lm>bFyd4mXT7AHx87H-lz5{X_&NKU^Tzmk?uQjJ@O!8Eoz`rGLR}ib_v1P_ctAXPy=BCDPuZIXO4lU)^(jyD<5 z2SSW&-HYKI3k;I*`gC2G6{R^?CshI5GP0z&EKip?(4nGqv%{;AC-hv%84EO%iFu5= z-Snv1v1^uoZYKO@4{6Zb&Elq5Gum0D-k8;Fn6hlLK~0$z`PYIYv_HeUpw8c z`UX}c?ooaF41A&rc@=gGf$+vekW_hft~Q>xSORLGLOI18+qAfy}1U$`q3ZX*b6OmX6vIDWEhXv$N>8 z>!ktr=G?qZ%mz2=RZ8`5D}x_%c-otNX87%-I-QU(ffS}X0_3N6z~2gza_%3!$+&OR zGPf4CoUT%Wc3M;l8pkeI!Sh0>INPyYHcxP>(Ad~nYu=dY3hISYq!i=>Oo(J&I5UhFU*=V8KlG}hFh3hU&NQQf-3MstZt z82hdMG>mgo)p#^9P~sSYm}aWs?!L8&R{N6s+YNp$x)iKQKuI~~$PTgK9(%R#;;QZt|c~199{{_P_C`!9WFaoY^=`$V- zzmuCa{uX@USQv485G5K~Ulj4DC%%n;o`lqEZ9OWU5Gt11_Omi98f8V>N#yR}&Cf9{ zJJP6Lq~z-N=iIEva&kH3$&+ObB-NnFKqxpi6oWj|U6MLT3R*;j6fN}~1J4^Gf_AD~WNHHY;e8uH z;oZx|9p}1q6|gngObPHT6h8J_4!+AH!!_-JJ<3k=(WVDuri;EdVY7i9;Y4<|!iA2e zBS2ePsn0#%u(fmxy#4L~u>1qDf8t1u{xJ3j+Z)!DnSM2&-z+^0GcsyQ=Z$^YEzU7AB4$ z%18+~UVv}w&K|pcd|%TKHSU2!C|=>00aF43^7uzrLyse~EfGxHQ&%6p2a-4&Wel@r zxsp7fs5TE4nsrA9LsCK4O1=MF_DREJv*0Wc-@Bk)op49WTSb#u0gA zWohVOG%mBCfyX5-(6)0fS{WL zlT8#Tid3A9NTZ)4c3Wn=wYy%`RR{guFm)CvF0>f|<(5sl9+w{8`p4Jjnn`(lpLpph z_Gp_kP@rpJTX5GcC~&>WfKCZUIYSzZjFk?n(e@vs zX3_aVM67!R!y>%#wgZkp~H6t+sozU2m!j36O3si_3mLrin_9P4OvJ&CBc) z`=C`fM{lMB^5^y@IDxrXd~Teul5I-8X(ZC9z?>jOW|%(>9XeAfi0V`{{^Ok@229#X z+3^g+jz;hA<&nlW_RegQbnSKv2>x^XBq)r z{_>O>j*@SbR3zc4@T8IteP&+~ALf>oH@nVE&hvF9iqKvj8vO+XC?yT4QiS$)R5Pn? zH6$9L@)2@Cuf3B7a_hkc(-GCR!EaN@MY48t)M?nn3~|CyuO#7FQs4(WA8z-?MBX)+ zW6x%4g9b9&uk@~N3X~wt_;uu!p@UoP(a|Ez_L=snWR!DHglB^j#pBSc%cIdKirxtR z{@tnnVr> zVE?p}xuq@XZD!!162BQfRL_P=+9}S+@832oDaZ;7sp%q>M};>K{o#-+Q*cuxPTQB%q#;oJDDV(Xh|EIWVds%`1MJZV=rd!3tCU8YF#03#6BW{0^ePLQ)e zUHo|gYe(hLpx+RxNs851kGjr_ghc z{;kNexVhcK%_D9J0KRpEW+|5k0k3or45J;#S#!$+<`+GP$+~{Gn5Ep6Wi7mGvD5J; z-JXyfN-;aKYlM?Upci2l9xAKu1m%vlHC5+ zqyK~73@IBQDHMH(?(o9NdfttVu^Ll$-hng9)16DJ&})^WJlLpa1AvWG#HyV6Pwykk z`4D|)Agz{lh_v!p|{{B^SVl8(MH|0(-q@hX0K#7@MPy05)PsXKP4#YTjW`uxaQ zFK3Suv{fW~Kd3Eu{eRJSohY}LPiob>T)v1+xZL3tfu+tKkUB1QyKjx}g`wXG*n3L;FCDqvix(-5&D z*>=yA2R%XD#Ah5U9-TG)hNtMA2#96H1rj5fqn%yHjDLA>_^*$qV%cKmVMRD+H0(*R z#t?z53L3uQAW)0`+MQaJHLlt*eCGaz8QKml4L`zC(J8XgUl96eI_Uc($v0&xa3RZ( z`s>2n*X7dJhb=g5o4}pg$^{F{3l1qY=I5%kwn;C2|M<=U0BLwxwKoA35^_HFqa2@a zLh47toJKsW^g$K`gwsT_BH98ecX>hT^fHUp?9vBZ3Qty?c*PHd)z z$It<6MBmV*g{nPx9SOAD<gv8$~HLrZ~1}aP;VMdod`YWO~ zKTF{h#jAIU)mlo&Y8o1vNs5dU;G_5bXJ-!kc0D+e{d$)Zo7;B#{j$0W2((T#mJo+0 zxnpx7J_J;qCZGU>kaNOt5Xm&(WR+!_P-(ahKB!mjSGg9L zVM&SZ&(;XJeqV(LLv5cZw?kG(>NhD9Es1$pCzN)bxioM5d#>Ag8`Z;|$Z_89CdVSEa9Dp)L6%Wi| z^PI72zLWO^wq~l(v@-I{$FSuo9*Q!WeAX~i)rPS{$KoqbsqFC~a=t+7bl9mGK!dz# zlTCe@b|xbCr<&oT040>E>dO3dNO^=#$Le8n4ejmbb|1Fw3$XA>y2M-kdJd%xK5AKg z=~qFP+Uhba15lC?h-l<;1hE|NmP<-5?iTvC2Z#)h0pqD*GSGyODg9&{Iz+frUqUHZ z?aA*FlRu4h1_m?1;4Vt(`L`PFp<3_JvTy+O1GZ@%Ay5HrLD8PiLzctwVAY*rksrd` z6=4dM2NuiG>r^vt7*g}mxr1U;dP1G%)1XM3=^Vmxsl#mP$c%g#v9$S*%0CX#F^#c}stbJFE z=>njhIjg(65-28K46y$HP&|HT042adx(}B{iunFDcj0>9}56L&Q3>Xt?O(bt_<4B*``>WsMw=t)O~?bIkIALC}w15 zS=G%EQ^6D1f;C(vmZn3O9}{hO zxsiKcrcEUPCHWp4fbqa2dP4WsYGSk#Hk!+f#^egicmK&V;6JeBfDbUN05N$K;A(}h z0;92E|GcUqK(N7YMT=_$7Q#my9j@;h0`&RR_Y(qmNEn2mGtiw>75|gNT1Jvvv;p!m z93GA0Ma@bLWwnnHv^2^_TzeA zLimt_{_d%5)>i-*#RILLB$^zG0ieypS_~6@-KnM^j~sD;NCY_D5z1@RE>IsjY`F@% zhra*hExZ6B&49A;Ar=shXzHpggRVp2M5)WeqJn6SqTIZ49Z=@z{aVOOpsHOHy!~2Ty((x%__cq}0lSOfe>mTa zFTe~~#~Pc7o7#y8bdoxxwtrY3tjd=HSYkKcF+8??UN}BZ_aCO+1$9CxAV0`{*I@bY z0Dk-MQ|-Zj4GrL_7lE#v8{9Nq--};uF2HyGE7R@Xo}QkQR=In=G+Q@e4<7~v8|?w! zAc=o4ylc;RO#-%o)BoQca>;f6y}WM3ebv;z-f_#sJR~MQ#Xp5=Y-NR<)+ks?S30qLTYKq%5f34(xvG^O`mB}kDTnhGer zgiZhv0)!4B)a0J{zW9B=@2WhhGwr-=c|%i~AmM!kAo^du(Wr*MsB&>K%~h&~uX4-TaY zh)*`!@YQbUVT?|#cPD3-FGW@7Of9 zV%x25iLYmNH>jh;4cvS`o}>eT(vNn3B^bCDoIXWf_diX>`u|^(C*uD+4>oi>SMEDDbtZ~*oMDp~ zjQ#N8Lb=_jpabVW69@uX)Ae7_*U*q{e)Hqwoun9Uy|FTnjpstozn#{8`gFdSY&d_~ zv$~2?%&9&*2IV#bw?D?kS((5WZ6b|t*C;2<@nvdLeIebV<}1$b$y@4ijBRS&ylyt9VAJ@T@ceX?cAUXqCd3rk+qT?-Kpye-09;ftRL3 zetMW)Gk`4?nxCZ0d&Ek09dWRH)~2I6(Cyc6>>d1kkGI+DEtbcQScg^$x~NG@_l4;$ z%9f4c#>@0P8l>wq2}B}!Vk;DZ`_2@};Va^=z9rGBLzr8`*>I{~d`~f}Inh&$TDb_A zE_lR>v7E*Z%yJ}syz`*PgFNt$-R<2wQCoyZ!05@1N?^|t2pBCLLa+)^q& z_3!vHTiLfhf41(s?p5cqs8#O0_sUSze!_YPX>1!nODjP(DDUk)MK_erc$Gt%Dk^(W zdFfV$&J*RYI);Y0;^Qq2)S{$fCL6Z9lp)}~>*%1C(i}jYM9(TZQlUi4x4k?%aCR&i zI@WWzw*^zDVGGr|$Jr#{I4x7|IMc$s!h1Z5jMs-_E5PeMeVRx~#~lAPm?6o*2WQB8 z!RRh0XDQ?sqrS!(C8Y#o=UrZ25#w5y(vCP@!}((R;|crq7?1=)IVhBok$M6;LZD`G zTN#_8Ui-q+uAbEBSPRnoc_P?wJ1eE$~jYf8L=Mz0xu z2_3d`(hcRe6U1u2 zUio*3erA1Zt{hIS$AKs>LLwc1eed?-K%0)P?kI+aZ{gC5R?mD6gaw6jUROk9b#ph4P2zN@yi!>EPcScb|6o7~A9zzxy66!X+W|%E_tpM@L6_ zzztJZv~J}cIhCJ1Jz|q}?p19W6-pb~bu54PW0)qe8tM=BvQcb+-j9Bj8LB|1=p5K!BwfvZgvL zF;cQbGe72xdiDXA<2V~8ra-|e%QyWQisteD&x~#$4{rPsMwliR904+IQ`<) zejFIe-!OvdP7>=O8`O?(uRkT-GAx1}vdnw@L_R<4bs!V>)A;4(Ww`v-EsS7}vN9!1 zkwS58w7e}>>RF|oflK6kVj@_`c8EvFyyX;Y`y~-*bPB`q2umt}@>7UejlI7tv^?Df z?lJ%N_Iz%7dQ*5+Z=Jh?5U>+So_*ub5J1ha!+xywAb;`}8Jfaeq&R*h9C0{dWTfM`#$xKOUOnbq+V z=ca5f>gN{}+yjOb_SxUQCoeDWmTpNuCiU`Xbo}OjnvQIqs@Y8CxV=!4C`{1P(^EA6 z+;YM6&xO7$l;ZJ#e(3|(Kc{18X}K5~8RJtV-4lQQRMs{zVXumgj`oQ7E1YbeyxGi1 zsl|>PVCcCjaeO-uj)$E!|wmaE2^Ks>A8@V9RkKOM#)RVAzJ)(f^V3G%yocnTe;Y6(gLS{$3 z_@AHqLP6mq9dw#Q{8jdko*u&dpnEeVOFYDD$3wd->mGB^SvGLtH@a8pFQo_$5%FDH zaidf#kHQ3su)Gzx>Q=8w=(8|x^BUOQ)9IN9SwY5Yyzlc$cjkA+jYS)fMRcvf`^Hm?k-aSo;Z3zc8sI}J^vhmwE zLU5u|+o!WD>aNC6{|RBTtT4IOR{i#_F4b{{3pqycl`q2&negc{`&Yz$2fb@-#k92! z*&Mn#3zlit>z44jBoe#%zI@2)l+VB=-*aLz^sLZ)!}7hb1zhecVqCXK(LA4Zzil4A zYQ=MWn}oGp5k1Qx`TVEDWh^gc@6!Te_e%Ul!qF#*-~LGKsOz(zrVl1qiuH7a)jlrq zBIgxV>RjP9i;~c4-b@8IvUv9=U)=nhUV7HVcW-XNtZPH+XnVj7QsJN&&QTR6C)eoo z64km?Vv6ap^Ept*=%gg{=#Fx18oJqS%?nQkRV`6bt_=uzmjn-Vt%ya(ORr+gZ+EAf zAFlO3j(A}9O2Q4QWhO%(ff%df-uLA=8hE_3b~=4U8p+A+7l0( z4=l&xC26kQfNirWq&ateG21IyCa_MD4MfH;GODR1OblZ^aLq<4;OKy$$a=-K$fipV ze6u(XI@UJ!#TG`B`wV)w_jT-6uvk&o%Rm-SZC95sMR36heEW8MW2g$#wAQtn(i72V zuia(~G6qM+ykt#c{MM^mVTeJ}saYGt+8`$5YhD`#+$Q)-t_KmLzR3#QNe2>TMs3%h zwLuiV=cx8NJNC$-1S>l6CwreB^~iruvu}cQBjk~lGwO<&7HCnIWc$X%9gcDY$4)86 zyKk#~CE6mEM0CevE&@{~gxE7ntI2K)>|3dczG&}No3=7OJkxGlJZ!Xe*ajlci<56Q z(#^GOpfa?XlX-9>vC>SP=#6 zzT_I|ds3lFWB%5N`Z#)T_S<+GafpbopywSZModoc&BxZv`AVc6bxc|qa|!7kw#D-J zL_DrgO_^=BaG%l@ZcD{(;aWeviWsh4gC0X3LQyiOYk^3a! zIo5rlw^>b3S2w};Xg|Tw0fp{XkEwCSj>#s6hJ@H92$=gl_b&4C`zOw9Ze7m3|CQQ2ZoeJXm zswd8~W)_XB;@p&|qk8kWe60#~MYyCO><#EyRUo%7Ed0^Zx1^w{bH&aM;0@!g;YJ^` z%7&xZ>pPf<+WlWq?+6OGDznM#eeHoI)m*r;E8cyL{bF&^*IisN$B5zZ4cGvp0sOIl zrLkx@$!aypCZK$Eq@>~bXJfrrl5X#5TugV+^a)ou^X?7=LbKM!#|Tdh)W~k zzFHng)~%Fzj1SZjbzTj7`@Btw$kqI;G{tGOpNYGJnddFAjn@l#RP_X`0^44$Fz9Qw zcS<`j7k1&1T|Edh)Eg+jgJJP0S(H@Gv>5hUSXN6}_MDByp|S}xF-J&&D%G?rDN`E! zG$@V=4uZEX-+h9VgAE%c({`%+LBG2{qQ=wiBL(w~lD)PCQI}8f5*x$S`zzmXV`|A8 zjv&8<1&`fCbzf()_yBMudN?luUTwn0Y#VEsdvEV_w`xv$OSRMNGDFO-U(f3}8ddmF zgH#f+yhR65Z@2d+=f&)9)Ga8ky<`~@AqHmzts3U4Zs#ubUswpP-VoVd2zHlV3odwd z13^l(&C+9B3N9qI6@onv>9M8{s*;Y(ai_HRT)L#&L(Gw0k)SC{yVP{DTTR{sXm{8Hm7mKNHB1WYf1m94J3Bq-c?>g9zT9~Z2d#kNliN3w<{ zsI!31?Dv@SXiA<$p6mJ6rp7fUdjB^WYc%$(;f=vJfhF`Cx@Ga2QnM!z@Sn%G6_r)9 z#{tid?AMH!UyaFCOM!YlUY@8K;4y8OICJHGuc4L|;OvTytncGWyqqJ|`1yRk|4v5# z5Y3+WRAelDnBL620M6w2MXxzK#NoaoUC3J@! zgx{rJ+j`W!21lY?Z4NX{Ez$~**c31peRmC6?XK64TTAbGBxZUG$`(^K&<+T|mWJGqf+`x!+X zV^GJ{$*l|HpFi>`OJ)@57#GqY)=uSNDIxVsDM#tCDPQ*pn^kn-1{icW_)#|O%?47~<-`R97bnZMvxR zDbnxL+T(-_ZQ$FNj@Y&n78=1*F)zN;-KP958Jnx6QB-Q7=O{a{WUe{5Myt*4$q-_~ zg19d3KH1<+lf2LOsm|kUs4gh!zT%-&* z!&?Br7#K)}0*+KYYQk2?k^jS}037Sv#Et$yXL5?wcTiw%#IKF|;5qW74xCOTa&Iw2 zK8MOt8vcdBcyvvjV_Ll``Yjk+!B1ka%3&&{cRgPjb+argNnvnKXxP^UZLYl#Vub4E zgZQV0lDG_pW56pG=Uh}QcS+{ziIwv6!BU1DL!jfOMZ`|L?XU9NxjcDyA_`n zzE>)i7fwvwmkMk1AuguAGdtjx_8;jg3SDDzU9R4N=3Zj9B72OI^q zUp_lr=YE|8{cwcD9yZgkeeAzcQ!68T4o$!66^x;7b^?R5rXR(plfe|f?H@{J<_oyn+elSjg!`1K1v}zv_V@~u z&$HZ3^j3F-DD58M6Mp-?u~QMphHc^0TYK&AIoHn>W2b_%iY_swuS=`xm2>e|Wl@O{ zytj>nE9D#wH!4>aJaIo8^VW(!k8`+qn%1e3EGoiZu^~uHwpnc%nN$~ZZaLDQh7M|i znj2HW3=?L9&yZ3bL~Iu38qugTk5!~@;R_w0tLHj$DwV#>vm0LGErroP8ym6BG)wOO z+Q1U*@LAzX6rqF!S;pWB8!zOnYC`5qrlKW{BhItl3>&#$~gxYw2u$p?!eW>dzHITU$LGZUWRf6 zx|}#CB3adD$6tL|dHExb?d#&Ip@s4?<;nf`uJWkUc+aIzsZ|2CPavnZYeR?%wTY&$ zPm^Yo1U<@6n$>zV_4zV=a_n$DAMijjD_3a3&=#j(Mj7n_pRA(O+6a$n=t~t9Y_kV|C}u;r&WvDgxSTZ48=eup)<;)@)_h zO?z37f*LkTkx~4ccb=#b91=tApYW~uXsD`&8Pt1}8dO+Ejh5%}Q6pRL18Cj7VH2-n zwymo%gK`gN#Xddz@^gE2a-2%&(JZeL0BHe8X4#3eY;uBb_1-Ds`xqRjPs&(fQr=;^ zoriPij|W)+dk@>n>ud5Dj0;MrC=e7MlJXSJh@7r?x%zY3jKa9k8-8fvy!j1lIX&mo zxy1nKdmc9aZbA@$c1xjao>?5>nq&Dn_$@faNZ>XPCG+5E8|nc3d`<{Bc)}J*H56;z z*|(7=(Vjiq;L{pyZSnLvpTLmT38Z=i;(|CrJ^n--UX)+wkY@$Ewou@nh!;WU!Hz=b z0hn0=F|gu70s!kD$AIvdk%6_Ex7$dvlO=M|uu@VmZ`I4KmC9iiT@>dz{hAuUVhpS7 zMWpwBs6WAWr@&^3Z_nSbyJ|M{$pACfMVN5z8Fgab-(Iu`pj}DC<_j32H&8$C+ zb;9(we)nRBwh!x8@QyZR6*)5HpBCy}*>QJMocb4V1h5QB=EFnTpf9$=iGYJQ9%{b% z`v(TxmDil{1x9)PDbmR1EXM=8&{b~Uk0;NRpmq|gM0=%>q(CY)e1^ISM(l51^{=rc3xL9{n^^&UQVOZvy1KQQLvkJJR zlD0`8>i04|c*<~^o*9|xshpMLx;_Sn?b0-Qz`gr>YF$Ig@wc23q~{oNQ795bI;Q%Du;iu;Fh0CX0n{`g!Ri>b$UH$!QTuBZ4n#}v3$l*uXA@r zJ^&|;7R86g^FLI@o`S9p3~CVPoa+)6)urw8(AC6W{d#r*h{qf5%Tm%JOSThqeYM=f zC1EsL`I;nL93fP+-`4xJbiDyvRkwCYqHmT$JP-ri!y*=qSk2-EYdiV0)u~{%Ga;tq zumWo-DpF;V+==sI>zhGU(B)!W^LZ)Du)K3;&eR{Rnyi^TdI5nbsLZk%I-dDAxAG<~ zs_CJoW)vHbK>(+%6lKn>u^Q*R0stunat?$cE@t)YfRAKIJ=H2)eD$W?Gf z01RrWUErp?&Aq7}HoHm`B6Pja-Sl)Dt3?Tg^25KM?9g=5mUa!GB_fINLb;_n0}2YK?Vm2ZA2~Z>_#U(F332v5Ve;2 z7x}(<=f-PF%8NjH&9+Tc!$Rk?@NjVz25Q-zY!iyKN8hJaZe+~OA3g=D5RS`KoU2(Z zhh^>6>oJc=Xe_=Bzaj};y@C%|kU)ML5Wh2wsfA&Lf7RWCFh8<+11HpfTeaF-L$FjK zfoT;(`g5Zi-Aeb$#oU_Hc2>(El+lGh8r35GuQcx=uSsL}&GXy7!-Q^+rw4^lDY`GG zFGS^Kxn3b{jLN9~-dh^_u`*KH%+8>c@`5yPE>h{k3tP0XR&9|Q9$3Wxnd*x7@6TfD z?I$Gwc>PVh&Ld^h>_Pdi3=9J}epFf^z@N^XmO`Au+6MZd`c=MF3WjAJ&H6g>CR2piehbe&)DD#_b+g%;VTZr&)L>EgY8@c!&P9b3=le5I;#+9tnP1U~ouo-rPt z^!!!~{fGV6q|S;2vbWdOiM`Osuf~$bP8vy;+Nc4N!5mwMa_ZSA+1c0v_joa=XjSOe zuzFY#;P&Jl9>Q!^kDLy+Is2MZChLPu;lnao^ zBIoVcdtOse*Ne+cGAz|Ouv;(}AC_1@*fTM$8`%!;WRRox{7KDmXkHXl3D*nFt?Z(G zo8hdfx7hf3J4V#K5MQ4j?1QlL@k;XHFR=Er?Q&iWGkGt?k8khws=T)}+8gb3dyJJd z!UomYCLCJB65+_g(!rc9g$8U7GWbr6#@0hN)%*=3wr z;o(dB;;zUPI)KXSPj)R`4T$J^AcSPp(HuX*X0?$-1Z*wQ7mwCkiC7~a_Q*I|CMG6w z>Iz6@wI*G(ZGC@vetqVv<&O`yFjtyJT01_qH%@($X8PUFlv+^xyti*>@U6T9Wd$Ss z*`r|wX#vA2-;SgKw|sLw&e+4nESI^Xul(Ji4J@ujX3Z%%uCrRgk7gf9Js@E@VS})u z=!b<_cyh#XUW z4`Ip$@{XdB=X!u21UqLo_cI2QJg?akEEjw>A?k)A+Pe+k&qm(WEkyjR_Nhufv; zGn3vTBhlzU; zGlEMmZMTHz?yC0Lgmy@r*fzf3rRT7R6W4@XuK!>f;f~KFH7t}8eGUrp{Iuv63w>7Z zR8MXiw#su1Ym`ulFydSn2ZT1zhe$OBdzG!2hmZA2^%P@kxchadxcz3?^YD|-P7$sU zwhBlUjO5IM=X2^Xa@t#K99!}BTJ~+mA0fDl0cC6W6qSq;w=QI0@P0u;5}hU5Ndz4y z7vCi*?LP0~yvC{n%=FOkK{pC(#BlM*c(P`0Xuzj&+DraB>JHVRPYE2W3^^+^AGwl0whJvYOVza28v#aRIaJ1>El?JUG*5WJ>ginJYvaQyvy$uSng{*uE0Je zp1sI@V0<37Fc?$pJ|#6o+|`rIf5jWBQZS>%W#eb$-k4G36r{Ma8NPD(`hm%Adqd9UN86{RLqxzUu#EEO!SN&W+i6#h9+ecC_uoREg;czfvS= z(ud1+;?N;L4ab7P@X0OW7WLYAsYiv;Yd$8na`3B3;zi0v#>m~TNoY4VpH%Bwmj%3A z0vOI;xBhEEbbAa}Q;T7&VUtV@P`o~6UJt|JYbUB2LP%S(xTSkasqhO6$!;vP3nB#V z&oUFZlC6hf2bo*i5xRYXl)iYMCLagKh(1E32V-RKlm>1Am2SgwruSgsVA#mEDrZiD z^ewEQPkggM>eXR&3U&eYdq{7CknRHU0Mk~IL(uz2K#D99AZEF(4aqRP6RE7{taUA_ z`w2xC>e3)O>o%@*KRB@SqPq{B(ER!yd}>)YpPx6(1YfYhEIeJ7RdG@=ob8@i#IF4W zRZ(uD@WJZ^@uH#-;~SAMZ(Ov6iP1jY_-<|xwaBxS9;QGLI73!nH?JW7nh9sFQ3~@D zd@j}Z?wY6`dDE}8U=Cwc#Zk&+Wglj5Gp_dgZ_iQ|)q~t`ou+G)J#jQsN(v7$pxBXuw%!#n5Ikib!4%SP(Oxvr~$sc~Lc@Ul- ztxWr_u_wyCz9I4rm#o#>MR|5xytwF)1jAUkJ!2FYIJkAmPbp|8Z%bps9h75v0TmI> zF3qg!nte}X@SvaL(&-)j$k$N>{d)H|IMg4f)AuqB50Drq=W=geQ8EaSwDpuL2u;jX zj9|~Lt{%xXOB67Fh&qwTq*IMU)-5ya;z~;D1kauBk9h-?(zubJ5|&MM(mf}WTiJQ= z!l2pjk)XzQ2XC?XOfYAKsk`nq(3^}@-TmdQ;akN0CpJFdUnS0ik%dox1T9@NrYt@x zC^bCLIwu=e%y+9Ny<>j}$WMQ(`zc|t0oI+>bd=Te;&x0|Fc6t2#JF>Y>1n09P<`%Z3FAp8percWcJl%3733;y%TOw z=T=NF932yr0Qg9C7zV_yoL3U9kX5%ZKr9f|)zu{v2Sm{yc8Wdag3jDSqtTX4ekVj1 zPTb!&U^}$&`8}&GjX^JzkEnFa@GpYxbPDJOn_L0Z*KSr%04oI&{$|?9Dd0%xvUuK~ zak%%DfXWGTKB0~Xcv0W_*f^$yJ1f|CR(UHARku9*s#}5^9_U^#tn_@~Fk5y#9<5X~ z+s8D{ab>rC=m7c#KfK398((pgO;@c=%@RmwL2*9#ryBcrNWM(F>l~;D7biA2bJC=b zKGxN;6v z^oK~c`w~c9v!5zy*e`?)>hYhXyc7}=(h1~_?7lYEZ}+RvP`j%s0IZ|V)-cwr*A)1- zy$vGa0a`-3Iy&(HM%2YeafP0z@RzSzT@b%W&^vH45T)m!rXoE&-z5#?XL0+)glCbY zO>J3E>KyJxp1As6vEIod+V{?g$HG!wu0~3}U!HBG_uPyp9`3{$sJ@mOHv%JB9zBy( zkEko(rluLV`lD4EWy3M6b&${ge%LU*W|k^{2E$==7l@!$o3m&8Hwv9hDP+ZNnk43U z(ATJL#MooU2fdKp?t7bT#-$hy_#MhehXo&miSmVTzhtCvkbk#aTbNV&pd25hFGBH% z0|@>eVFOoAMBk)bWo&YOeKIC~LnNHtX5A-q_NkK*q*o*2&k2;5_8y?i03^9`XRKPe zS@TI&eT~BFIS;hfC`I<`Oy~--{QxuN_yxd4Ur;wIO33+~&CN{(>gd)*MF@j%xW5)f zwJ;TQ#3^j|=Vu?@E}Ou8~PN*IopiS++PbY-e=niYFH1Y5u>%nJMZ zOLFKkE@&}O4m-)Bb0=pWyY9|&DrarMq5VktUp=uE0WKV4VfFl zABN9>pARf9-m^xyn2g+e>^)U3(nDgCE%?B<=wzNnzef9T&h6(te!e65B8ETN8Ksi< zrM-_gUkmlR3gP^Al7+LUze` zTD>l-3<$_9W7k5Q@zxp+qCROh?Z8%_IM+yGOJi9X#9wp}lJ_Zjo9m?0CqA>*yuRz7 zmZU=G)yhWkb1nD$)ECaaOQvMMKt=plVRdhrda@~zW4sQBZaWHmj}h!joTeN zD&BcF0waSo)PbSZA^2!EVFL*5vlf6C)|Dt?+xb!bfei&E3XT`Nqn>(3SGZb;+?(9q z@&gCP>SSFKkVsD|EaW0n=p^SK)@Md5{BVru=;^7d`lllZbX5c(eBI^Z5+vg~C>k>2 z3Q#mIRNdX})d8!UPgFb2FZ5|s4A$IZuC$+A>iWy{`q2*HZV)CeE-op0X|FX{ifHGmPHB3w})_rhQbg`kBm)Eedd&0|(*aUz(mQaO(cXSUF=dyB< zS;4qt0-WDIAk}(Nad8-D7y6j1R#emlAl99c*W~P=H#MQRRK;|*^^bqYIa37+x}|H5 zYbZh@fRf3FQo-!)OJ3)t!hd$ANl#H-2nh`(^VU|pC!w_&uh6=BqprulMaBp4GsygX zz}FaIKS^db8yJTXm-N@(W zByB6e{p7s-^{*%c27t~04C1oc%iBxnj--n!vQ%NgpMjzR2Q`m_ot5$`GTpTbK$XjX z$NqilH<|u*k5Rb$p#`wt*L%&lE)D*`K-cF1lGV5gEi%u)Zc6{SH)sPmaRmU<x+npxYcOg5Q%}y=2yw->c#+sALl1-Zk3!|TxA`|`b}lYNexb3-v6=Aclr6N z!bpHt7@GmqF?#|QrL<&JuTZ4FGe0Z7QTxA zR5ksYS1+|Fgzl)!@>zej79$?(AxMb~5>PX+zaKYDFU@SbB{$1=7oxR>L81QP9s&|w zy$onig>cwF`nF>81}m7%S^ZP|L9U_t(@uTqXlmJ68CM06UW2k1@5HdtLH^X>^}Tm@ zQr7{F<3A19K`7{eDXh#u04W)#(AXSs^D&Jd^Z@{0TZl&oU4ADhmgA`bLZ^^+?vrULFg2wE@^{6~eFBh}w;qoxO5@y36J=IPaRI zq-5@0zt7LVhrqWc1&=#N>H{y-&QlX1)7hmDXBbf81?U3pJ8LEbDLy-+7|3zQbI|}4 z4)|xw_vrwNxhR?EJKvc=qas-0g9ypWjRtTlxZz*jlLh7+;E2bk9sa&kc@5E*DKGj` zGxP7VJ&OQDWQQ+YOQJ0R;F}#~{W>>T%YS}7sB(>;zvq)_BL=9TNCJul?(iJTl8z^D zZd7NlSZ@O5Fr3F9_c8wCzyzurs@aqNfX=#H=Q)lYyBgnNji8@x@P>Zf*mMr0@5URjE@&e1{W0@dr)651!&pLgZsxH_X_s^Lo%NbRt#f; z{4FM^VE+yNs~Z{T|DGwJ|9}0@)crrt!*Q{gHA_}Z*>%#Br@^%e`6WAB?KmA<)4a1* z^BzLSrflu?fV6CFoa8=q*|I4@`fcZrvaKY>|5}5*I7>?A?)yT+|Gl&k$aBA8KQ4Lj z6D{$CFtg*JP+Rr*frqHH7edDR18T@g|4yFx*Kq{hXu=mNq-&9Z3%-kW6vu(s5 zlDfB!>ktUxqq;K8@R{}6B+YxK!DIr#E=WL#g@iUjDdu&Mx5_p{n~|QW)+t)$R#a9a zU)F_5h_C>wcGxlFnd$G$r{?Z-!rPRt)RE|)3%qhIBqR%_R4*7&N!=lu_4!9&OWx{_ z0m(`Cb~#r2}%QiH)sqe1P%z1;yHowmO4pAp5T&9~V`XH?U(Qq`t8(+QIYfzAEY z5riTOzfuT9Y2lJr2Z`L8+>3+3TF$yTGVf$& zW;56agx3M`RV+m}hm*CTVI7LKS{@}!`%L=rohGSIn90hSn6`iSHexM;Mqfss8tXqnKjzaZRiCVS4?}7OYo@`I@->YED1?Q0b=Z`1i_H8 zW>v23$J6Ie=2kjj7V$0j(bt~|a2(k2Ta}z1&A7Nd^kc)WQCfUPo&<9D(fAm2Jog26 zv35`RQ1M&>OgKh%cp~66Gcz-}W`~`W4<{27)5so%lR6QMsK-VNSZo3KWt?YiRfL)j z%U~|3aqY1do(ODhNJHG=!GE{@AN(%f%eoUwk)YfMfy8K}vY>3!#nRbDk}r+hzN=nQ zlr|;3ds{v9qp-;-O{IP11xldcAbqcLV2|cC`hs?pArPCGu5&=pwUYPs^rjz~8)I57 ztxib9-2JwB9k<;R-(%1$q>JCB0C0rrQ6S^1_F~3#S(|=4^9z~fU{;@=JPeUI z*);Ys#q9bxzV!(=33J{0zq>I;ln3xeEz?vctL5oJST2WQRQ{EZ3lXe!wq4988!bqS zi@2(Y_(bmGA`3B5)jjT7OQQ-m6>xP#BuY3zk)H1 z>e=;G1WZnyJp6YlgYix5y$LQdga2;lcjT6gI}bw-$TgJ)iIioq_8EbdEF=jFxj7SG z48nSCl+cYnmnoY!+_|?`ePb*l@6Y)Aa3qcSgI`M?m5!VPjjq4%t|U`M^I7KA*z_|# zY*PqU!H^`pqWX7<9q!I4H>yi7nUChwzb--fM>o#5VJuos58WC6 zrO;Tse@)bqH1moEUzK9bi{?g`$bCh^XNmBj>y(Fr$$Rh0L;@!pPIV7YNPUios9P$P zKOr|qD~Y@C^g_f5rQv%wOF~nTgwDl^`LkY@cQQJ&{)W@ zb%nv0H?{d&>XQ+k|9rjqOG73rA|C#iyD`x^4*ptCgzt2QST6fqeK1>QwR5kpqp`T@ z%B?(a`QEAVt>B-gSBLlcE_nW=ZDSo^A_}8R-#lvRe(n1bH)UpZ%hG)DziZ;6yEKUo zn>IFUS!|LP=((m~f4v?^K5j}`^rk|zX`Rm9506P0QVguLRj zu(|5oePDI4d@u>4>04I1|5jlK>v*t#0~4C~Rp;i$J@`{I6C_D$YzdXTASfx#b z7#io1REXcQdDVqMw?(Ne1ZE92X2{pK5Y%X6De|d^mYItg-++iy*h}KAnQxAS(PS-^ zH@q+|_Y5BtM)OIilOc<3f*D9>a@xS|ZS;}f*SnyYx#kLwrRaPsnSVK!VsNqNgDmA+ zS%}c9o|Lr$ZIhM72f9=_=hevuPN|d4zrI{Mxkk#^aV8;h`Z{?BXCPtgI@=QhV~sEB zhL=;^ORwI7OHOk`&R*7eo8%T;R%h7-s#MQ6xxfQc8x?46dIv7nIBr@y`fI(8%?USb)_e5gCEcpmrJNV4zQ#zZMdiR~!EzJ>H&!lcn;TzJ zz_RiqVP0L#3pf4}-NB;4D&o6Xa*t~HyB&25T&(3`L{V~}QEmTva3C&tFmuZ9yAys^ zQ*Lu;KD}1aZ0k!Y|0tDcl+cml8}q)_q)QCxlFuG}&IT)UY5Y@qu5@yD{G~6?Y4y-~ zHP!)o_0W~M36g|%WYSu}`huT;Nqo8*YX+YhD;GSThnAYUSZA^UCVaPKtChs0Cb5T! zE3nv<5N;LF6KJuT9bGm29mQUC#UQZ^GjcqI!Q3k_^s8)r?a-$b&x4+-XiwlFON7ew z;L)>ir-?a(5K)Z+yU%}0(i7DM03*cA`Z9E`QbM@Imo>1!e@i?y;K>`%sMzmdrDWBf zJ=eD#9%a&AGDiu4e1k@<4pkh}p0(5H&)KEnLN;MHWN#2$=0;rUZHC6#YERWZh!?pq zRokc_QH+dS^S+<_9A+p$l@WV;+m@{C!jZx7hA*8!L5#qCE*82=9(r`A5`_D1QjY3e zm}h9ICV}{9E`%8?3})weM0cJ0Ac_8HZqcCH{&BAVX+)God)e-Z&RPDwo>S8%YSUL# zBwgnt#zRA|KvXL}>I;aW9%PFRmNa2?c_7fGgpixs-cW5XT0!VUyC?S z_4$Rc!k2%CfdqlqGmNv?_4oDus>2}c9boeHiu9rcr2g3srGP8Mp`-*<qnO5xfA|Xa{}$Dqyr}O`p<-8 zkwg;mz=W*-nQ;BY?YJ(W$|OphkSp+KGFmQGaz{+~bRr2vX&pxNN*KY%+Qg6Ni+YEr z9t)?Xz#rYEzXVjoFwwv%gO#}5-f>d_ZU-Q`^Ex9(b&(h@)9Qv-{0Esj-A)fgJEODS zW=orK@7~vua2LQKwU@-DR02XRh=xoZ7&4`jEDj2k+`-MHtIr&NqC$t>fm8hW`uQI~ zT>)|#iRAF;M+w{@8f(3AqE`3yo=gd4pa}n(bhWQ?u?#&tKg_>ELf?Y?er{_Z8|I9c z0b2CBDWmV&7Ea#TT?3=za@QBVZD=m&myYIO92+XrtV#zK`he&cgfVrU8$3&N7#bG( z05Ow*nEFCsJlC3OIZtVJ3cf32xC6Z?HPG|Fviw&S9UpN5XSyWROd;Fg{5@e2Y~;*SK=zLqofYZ}4= z*2W=9?X&jjRhxiWURUgc%w5N8oTZ;kD|y>S=5EimQ#wMFsTRT<@^-qJnd_y2xWYr0 z`D@ncMUorM;U=h}Jf(M}`wfUdAAwB0-oYce!>{{ME0bbhT5ZJz;oW&BRj{gFm!yOxox|aaEJg z<|3tCCT@<`yXQF$?>;UpEilMyzzxc?Njr^9A3*Wg{f)`-KRx0l7Ob|2$XB#%#((@X z#t}HXUm_))5o3{V%14=1milWN?WXlv0Vn(XeeH0I_wPY`xBy8;(Qe}@UVm&(8YCf; ztC@jm26J2>&sxicZJOaA?OgI1=;y-w3}h<_29yBhc@&yMQt5y@HZ50c^MhI;mOqMh zph_%mu*e(h2B-Xf_`!3?OxkD1hE2*Le$scdxh-X)#=>JKV&%O1I`)tV_WynJg@W zu*n|7LPVi`|Im8PDkmm{7ov0}8C`71Wd-xFirjR>^Ji5mZ3q!anb8FeEY^X8tWu9n zAH50fI(^oGUn2pAs=I@+- zTfx3Rzmy@ZlP+F=WcvC%mOebi-POP27zI_}?F{u3Q_ZoK(qGoj?upUbpjn7;xI>`e z|KY>y8cP{Xa0n@4PSc@2enH9mlZl+fQ|fBaK=)U>j}%Np%-HBjsg|7g(Jqcb_aiB} zG{hdW(LP$ME$Fg~`hN2_SJ$>}=q%-}s65!4FSc(7u3uSe%fpY8W2=7!ez*2LR7<*W z8XC=)&a~ak?bk?gYp8-0oV$X1qoF@vM^GPHWG60KI7fc z-%?0JT<}=>-Dag-#&Zjth)}77JmEo4Dc>^dW~a6ga+u?~-c&`wtCtL7yMKOuQuOcI zYL2V7c!j6{GBt$V$3Y9s#3_c`$4(H!tV8{-Z{8{dj6|^kZJq&|b-zgzVA1 zzOdLSav_s`;DNq56#Kmx9cyrW7^~%zt{-59U5wLsZf~aEWFxdYk(`y&rf@hBm*B5Y z7phI88qX6oK$fW;9scH_ev~8UdwUv_fP4Jx-c?p!#&($d!*OfR&#RI<(s}({uN~=2 z5H8kfZZJl+orA5m@kKVRW~2-^L>R*=obL8bcf5?WYTokD-_j(JCO=|gH~6jVXCY6H zVQwv2KI)xYDxB0xdq|Mwm#cY(IasUyjH4_Dxq_3Z*gSZtXvJN_j8xPok8xgsd)O3R}D|qwEkFc@BnTXDHC&I8?$=_ts$A!>k`=E}ySIri@ zY!22&T{f1f5rdx(rEpTiZguf*Nxi9cx_5h^n>GFOWi7+U=xekCx$5HrL4P*0$AwKw z&(uWdZ&|F)c0&rZLq#2Nqju@*iHz&%dCp&?a9<2OHP3wT`IGF@;g_kvlWvV_VqR{;T1D8@RTO$Sv#94)!Uzyh2lSBAd-#F8u zo7)OvU2M@;dNH?p*2h1WCH)EKxV}-bvCaV(t+b!+HQYIYq{_cdNhH9ta@*58hA;SgiO!K4siw?htuTS z%?V+h`s>xCM;@2$HZ<;oyd7gZ|I45;jr4@rs2&Xn#G&ys*$c7qpYdtxi#J$eB$aY- zyHLWXRB`jFj-M)Rz6sU(^gVPg#ZT#TwUTE^Tc)aqtu10bP7mW;C+aF38TTKA)w)c| z9->`aj&jHGg+--qChLSHRVa0hKsQ}6yR_qwNK(0;o@I3A;xHaJ%Yr;z6Q&PA>@D?* zp^MkCcxn5-ucGO`F8cu!Wu_IMf9lFE^W0$hAif?471IV99@$0yLhy9qHF7LI`r`HP zAA}VbpO4j?Xe!)eU6tw!SoYk(ZZB_F)0uCgSjNQO?`@Zv zWew{vG>Z@9P7`p4sLd%x#MuP>yBG7H%qlIaE~<}Xc16mX4^mPW8(d(0t^Les4Gxb+ z-2Ei^XEW<`AySmx)o#ksP<$PRy&iwOI=QagOk1U+-Z>V_)b$cru**}OC^^15=4{A2 zny|^kI-0O%TaoL8sgTF>jK%Pqxkp^EAUEqWO! zxabC_FupoYd6Nd&97{K|yLf2P$pTdbdQHRdIef7&?AY#SW2$0xAb#-Sw^{~5s~izFV&xb_-coaJAj>R4!G7ZiBW~R^!drwz(loyk0-WfS77u`9eLFSx()K>5 zvn-S_@(SXfE~8qj?E5Q?(*!scB7_b`qb7&;q4<7k8b$)!8}V=Y2|LQH0@qs%qeA9u z&t6;!`B_*Z+VDU@9=*^nj*TX|HR|^1PnOvRCx`B(&g|S;X`bGk(TyevL0YSY_0@)Jrc{f^I-0f*yadEfa!K3wEEf|HXJgV$$XU+XEUqS$4ou5xT_jc7S%^yF zWqSK2l7S?YlFrLHt&4nFQStKZp+OJlMgiBCS9IPA%%4e~UJA92zA^Rei>L`tuVd-( zenmS|Sd@MbL-W~i(#-Jh_IeUZZNq5yWx;FN!UUYVF<1bnA2YI9_X(OurP9A3jBvQ~ z!vwdU&zSA*xtS;DHJV#e!Er%zIKXtqvry6J>Jrl@>C}w~8+y~tZ#L>=&3_P_$ARtC zRjVj7EYfol3EZ3wRAyjt7a#3c{#C5+2(mr?>e5uRZ)eN$H5Ck_&f}$)`}pP+6cX?L z*|n%$-|Y+kO}__MMtwS7Dy!!%uAm;hl3HC$ynoQhk~p?e)^awHVV9(0IPph?(Pp#$ zdJfF*ic*`ycCdZAA#gc34G-JgpuabP(_7ctjGChS;txSl9{9JS%A$2y<*(1^A8zuG z?yllz)8WB>zww>PkSlECUNxSI4_-?>4oLZM z6aDd?_Q7&-vR~7lzA?jP@AUs2dLcdgyeTpLTZGXJ#>av24SH;fkNg zOi=yiI(@q2Z?|Uzzp`-QJNN;Bhz77YDQBo0OuX`lCG>1833&mGB^$s?14tnVTQ@OztiLy(%pA^?AbM z%sJYUfJec`raG@1Q~nwLGoSbT!ha>_;&B*C zi*EwqF^}c6J2{XNlD~qQ(6g^ytj7h;Wu1y(xIq1RW#2Gpn7>kJuJDiMI$YLo7GK`= zXMlh;SpU5_;E5SPZykF%_22PwY2U1uyrnYGuQaZM)n}8dS9faFBM%z>v9Vgp6D`3z zAAheefk0j9c(+f@**qzXbjQ3bu>HRIL3Cz8(_wJP;r$uR@{s~B&u2_t51n`bQmQ~3 z8#FCyQRA_j--o%q$=D2^UokFPdr1?egXZ`-TrhM0RfD?$hm}H+v#!F9W|8}JQAYKO zY<2iPwfU!lJ(Tm!d*XoTn_~ToxY0@DC&zv6jrG=)G}gY~be!0PO>$f78BTXTPv=kG zNrMlhDzyb@&$uatM}54)+CS4|&{#Jvq>yv!7WM_XHFnMgM9bR&Qcr3V1oY`%*;>Hv5{D8H@Eu zDuRnQUDMZyE_F7vO&j+YijlSPmm|?)Y!CQp13D9U84})`?HkgWG%6MvRtmp=vl|z( zYo7E5QTjX-lVx)YeXXl81v>E>Ms-Rd4VmupYPorBcsT%%Tkz#Vdj|9c%zw7ao?<}+ zqWhE)s3n~HqUQ}Bzvw@69{Vrs#-_@UPZ#;maYB4;Oap8ELpRw^4;e<6J~z=*WY0Ib z#id2!>&!i-U?T{2WfoOW!qjsI5SYZNUikx)&ba!g{6n*>iKTOdPhqFgC?r`bfiQ zUB7t;)02KsZI=CVB&>yH=o#w-PHX&A*-mcBW>G04sZ0jHGbh(WyJmT~orf4QbR z`8UI3-d<*8;pApnZe+t?kx8S3!iq}fjxzPyQ5tDy*MVV@Luohg_0q5EmC0h$R`OqW zC4BAoFLL|lcZE7dh^uJ$AUD-TqYf(Py>Z6HC`wmIkcyG;Oji2C;*;{B=)sJX{re3< zO-+4Tto@g7ovdYJQ6$)io@DRV3#w5&2x z_dFUFqcX?hu>u{AT4$hfa`X$`-z}^C`TAjXd-k2pY{#-@X;Yz(fki-)q`Uat0*L|c z)ixk4$A9O?i6Utc%G5ZAI;#_xrDMtqiPr~Z}%jKBA`qDGwsOV7?n*n z3YeJY+-oM@3#VihA-TZ{jv60>nby(|7B9M(wKJ~*W6E$_*mpFY=!Zi$X;_(L&ZP_Vwsxj5 zu*rG{f+sDEca$+Q<--duW|&JGEyxViEkf zthKD7Fp!-CcPvHNDRM_#&UERDoA6d{(Z(EQoIiHEebRCt>*-m7L=ht_3e04)Z>()G;9G8MuLoa* zuVRk|6_;Dw|NNk;DQ@9U_v=%5g@|3cw*P)+xHsvY!$^5%s)=%Y-uzwcwjfvGZjqaA z;qFF3?Q^<~<37C<;exx?LGU&s0y;$uDSsY&wC<{@+BiIiZr_V8`WiCTU9SwSSxDD$ zvGZJw4=@t3G($)=#V3h`4Hsfe9f$2w*hY*MtrTTe7b0dgkI+v~`(=s#pxo=$e9x;< z!<)@Pfl} z=WrH3_~21$o0PqOb?}pN=2a+_%eNc}NUrd~mya$j-fK@cR`$0NHVTnt)3vBO56^rZ zo-hf&;+(D2kf$6Hvb2!ES9m6pN^fe{vDH=~8eXc%T9$J$cf-590~;r^vzZTXAX2D6dfrW++6ahLVkMm(+$H# z-9&fcYAfvu+XmI!wP(V&5A_*7Bcrkwdlhl$cBt5OuUpt7P37nt_dh?6^&i?69AQQF zWN{TT(6*dPjDmGC5?ZK{lvsDi_aR8^f;g{9sw13VJH_yiLY}jyQC%P$f`68Og=3lK`S+tWAFWWBCO1a%Z~?WZ<&Wohc^@lDCS<6@9{$uc|LlAWQ3U=PerC zUJMqPB(*8%+nzCx@K8VSzEfzp|H-Yx`Nnvq_f*%I-2%v|i8r@Wrh(epgsGih)q}aQ zv_`k;Z1Q3pMe;L+tVGGvgr|qYMr_X0&-vHiGnzLxd})^|8Xch*Qk^RkV@b%KS=qt9 zMeh@gwoAIsRDVeKuyskVh#vJ!@~BR?Mnp-;HU*UP0XR=S6{(+Ek_W}x!d z7gG1=n@+McW7Y4>GSc0DV(X}fS@IlQUDY&L_8eZ-wJ+?l?{5<9B!%QFmHHVMCIx@L z*2_!?r*PKchu(RO0A&sc&#gX42Lmm>C|FNwy3k?12ph@QoAHgcoT>NjXmGN=R3RKy zK(I7PyJLt7z+qRdj#vjc5DNPZ$J;b}2=5i>t8E%kz*;7{P(IJNjs{7pSKB@>pT<;WXT`Fk1l9cP+35YDl*t#1Z0EcMrwWdO`UC^wCgSbmYPX9uP6 zASWUoAnZ&R^PpITo3etS>M4j4d!#K_i*igUemLk`isT=qkzWcG)`;-T#__R04O3CUN+P0+C)KV&L$I1pp3?6gI0Sx7(}FCTbLDuNFFV z*jCK@OKWhGK!PTe`XCT`^?2bf?S&+6;Fe8QL3_$U^}o`NPoA}kr)Ij^WCBf=UDkZ< z@ilJ?XLA$gxI0s}#QHpK>lr{X5oe)fqhBge`xQV$!h}_;V%z|hg(pK82fz}&=Tze_ z_9(&pd70#$4?*GEYw#mfWb{sL8Jk?;-DdJxPKzFyjcvg;bHIeqe>JEGx7+qIS*FgQ zc%!^dEZ(TC&1Qybe80YB;3v__f8lf7ci3q*P$ReUz_o&?{s9+WF$IWK2#A$f<1zs? zE+Q$!#5a+z9T($;BN74X!#a!oZ%Iw&&ENW2sQ_zi61T%5sE~n6$%R<7>mV}YY}dJy zTY8PeHO-53G24O?An_qcKJH)9E&>$o0HxsiTeLF|c2ik~5xEbp9U3BEN?`R_1OJ(n z7&?N&A&{1XUepOnB?wC_+UW`Fm*yh`fXKo1uLfByU}7lsj|j*~1(FpcPhS0-Pl>pK z9nysehU|X?ojxgvvc(Gvz5e$M7YA_x)?l_Df4+Ge{GAZO{_qnvTrkL~#@V?;4lK3sbM9a*vH(_BArD5EzQ*Mr)DmsJ7rsPq}r1K}ed`{Fz|#l42+J}@7r zAe=ULZ)ZFtNY{~PNCP=2bE=23Ua{Bnm-RM|w=h9M^ncs8PD~sB*>1NgejiPtdSLjA zKZ%0o*FH|w0XWdw;HP2B`_9j&XG!Ks6^nwFxb5|B1EJ3|;_F^_eiPmoRDBNQLj-fE zvEYB@%lx_=WZ7!ROz+d_=T4-OAYf8w@XE~UVD)K z{A4Rb@?W!Za`i2G3q?>_f4^WT=uKX>wcXcxgI+fx5%A&lCRjd%heN}eZRs}u>V(y+gq z+3lMNyjbiyWsDqgj1xf|f>VAATrF8yr@&z?WO#x36_iU_Z^Gt{2%^Z48lxDH4~HqXw$qfo|PK zDu2&${e$ro=x8Co@5n~%J(hdH_uO-eA zp?NtcObzPLG>lrBFJdw4=Rv|#yqZ3jxQ<91U<8ay^Z6Gdf=(0l8xhOL{4-qG!~+Lg zh|uUhx9-*bSJTiNb%MexHX@; z>x>z*bGp6l&P*}aB<1AOatY-gGU(dZCQ7E(%p5m93Xs?40R26l{AGx;1muSSTqDTu zGhOeGX?Zfp&N)<|RJ+Wn7%CyvD*Ks}nxLu&mN(8}0wA|AEfe?H;D)ge!YxWMAO2xg z`=ci$f(A4aB{Ssz8Zbx@gAkp^6PYX-d+iHqvu-N40hnMfgIwYTaoe9Qe zNiGucFeg{XZGAyi!*k$XvdVwmyRI+%@80eIy2q_A`tP28`C8i_6_pp568-MolKvpO z&_`b_t~aKypTPUL#I@e-Mrfxrj=Vfvcj3lZU8uS;c(Vr*_icJ&w`oq)6uhf*n?~q%yXVf}>j{7u^Bs&+nDBw7%WIUIE6Y2n$dk;4motJfZ!z zQ2%()zmNU{22Jp6`04t-K#8nO78czl!XISK#hwIl0=MU2&L{AZhJ#-m&mLGKC8XvV!C|Am$Bj}9@;VGXn!U|*!~fC{D0`Lcv{ zo$GDn@{~p%Yhw0(5~ve@L@i7FF!$zU6Ir0d<(mEPaPtT7|ACwT?>>bNek{E<^5?g} zy+CuUDuEEt-_hdRAtqOYj_xz|IZ(BCo+Y$WI9w5evhNuAUFG8pB~Sj0x=7TfJFgI} z;M`Xd&;4@My3E@ta{F@PvA;j_L>S8_t)u)UadCY6+hRjN+<{9yKqJLmtdISB*e-%L z0tC=8WttZ{yy+&_|Ck%g*|C-^Ln~7z`p}8c!U!dY3`4bwcb{}!BSm@D9jr_TVJ3v zDZ5d~&X-%Lg+Ou1X@p)YtG6Y8C~GB?I`$nBRE&ANJz0aV&-9ueZ+0;Quzb3Aj{DJ0 ztBG$pWRV{ze+Vj~pzhtWgw^!MwtclzJ5)$LU^gM)Xh8`GIeHIIBbh86+@ks1rq%o( z^YbOcUSk}P7{$(zYmpZ4C2%K%9H9Cm_JdX((?tVEM2pz;T6X^d|@yN9DuSWwIK+1$xxWau9|OZeSk?l+q;oPw@M=6n6D#~wZbaxWZHKZO8xcKu)SFvvJ&oIjXYi{+6V|>gP&I)aOY}~ z*RT5;lLq&&po;9xR!yoh$vsrcnmW5uG0h1#XhQGLEcWiaxp-Y;$mrt@as~Rg;wM^& zbnu@AR@yhLCAK9{(!68<(lpetrJOG-Z40GrbW=?G&h~8P1&ifx%easQjZ@D;DQMlO zNRR>3t-&sLlex(Uq)dDP<|M@T>xTPuE6H$L7z0I;rJH)^LzjuV-b4|zS(n3=!J?eK z7zF*2jL=Rh3j6(MHGH;Poca9uhW6e$LHo?{Sb((bEMxh=AL!&fZj5s!LvUq*^9pn* zEsvP0WJ%Y*o{s$YhD4{szC0t-g3lC$Dr$wktv-{D-s1HR_)h+G5y3@ngIukOcFsU~ zQz6=>SDLt{19PW9Ax-s{Hf;gCluU0pW!!9jKRB3h?-?a$`HEOJO5BXh=;T-MuxKV7 zu(pxxr_Po;omp~WDp7iX!~}E;M}gH(tBDG z75CaSH++b&;~<+pv#1Wb=f%P+Wi7`mv2Jn!rPid1kWI4Xw2eiwy=~r?4q3S*M_WoA zGusR`PNTDbTAX5YpY(*=tnS}jR;s@;U`#wj`7b?)q#i9q^zFX73YiZ%`BTJH4_mKQ z4-mJc%VMfb(hdUxEL?{Rety%6mH{2QE$zW*>4dHAkNyr_{33TtR9>HV+0dkU!OyEI zWS%azr=;vmbijgyIt&36nn%oJpl6*EG9RY}raIk53h8i$`l59YemHKP(kytp%<*Jr z6;2pS;MsxsMqYl>qi|R^&a5AMx#d+5(hXT@_);zWH5DV@Dbb3j%%497OFNG-O%%$m zr|Z5EI7eTWwZCjQMs}^mQvZ)Hm&;hg9uj)j?!D>7Y9bjm_d<$jU+Gs_?F{`eUUjYX+ob+f$8hSoR09{Iw;BU{p zZ=7FDr-*Ll@R@%b+itWq6>a}y@q>3_F+h@<6a3ECSn%9GJ3VmXtCP-tX7<&9k?{5zfY0#Lk#owjc z+=A)FVqG1fZzdsn4+)sHJX#9!u4x$MENj#a7GeZJV>u`t&uo;pR z&Y?G@J$KJ*v(?K44cyFenVdGRxbn$l3fF3Gl(`5SK(tCE%EqTPOQYo##h=k|DkH*&K+Ik7Su(?a&{^H;DZz9m-yuI>i4M1xN+|){o#q} zA;D`~jg8;yF-HvQB`KV%v1A$!9vA(RiIu_5;~B;*BP*_c>O_T+ru_UTNGS)O7EjhK zr{8a$IX*i4WR;rqBn>i8j+@DVUiq&u=?`VX?tdVtheQZ!$AOqYG~$92G4HmW$#L2l zq4maZmYd~&wmoufb1o`L{4Y?@8NmymD$t*P9E#~(&2{ckmoZzpPYjB`e4a7B;3sxN z1n>ORZ`)f7wDti9cK=R0S&4 zb499rk*;y_tX$zI3!RT-FH{aXcFRVGQEPPO401Dd+3S^`WXByf|BMtKPN`vBS@+Lw zDV!z3^b-W`>V{sIO?%8@#mUxT;U^yCxXH2nJyWj|MuK}9t^0I6Yl_OX%)f^mUF|K499iKC|K%Rp>UFE_1RO5C7EiC`Y+!b{Q#FV|8_(kmX27O8+ zzu1kj#?E>?vFJVFwd*-@j7QtOP8E z0goc@9^{w2QXlZJT_#-)<(q$}1v)zaCgqCr_^|g)8&#cZE>_7MB{QkRy7%BWb-e4~ zo3xt4Pqof}hTPYpEqZ9pKdt_sy1clN_G!sm`5@ro3h<1haOcDSk`CC>@5>2Jd)S}& z(*-w&Ou3imb@QgoC-)w)SPCB6LQsbZ@{5gz{xND%4W;xI+GMP5i*n4W;e^-xTf5eR zuU`SBzE65St(PTZD!h4I(f_)1M+>_Fwtk|)Hz2-}%RUC->Wcm02w-BVe9tgaR6&9EEYlb_ zjdg7qGSXO=Oc&-Cc{w8|7{R#*S|8&NB>}pKVP7&#wJ#_KmhhL!%k6%OR^ht!S$mi5 zgHpKc^^Bc`K*Z)JY66sae#;O+dWiZp^~7L(5$8o)+Osk|rlE%D=ypQ;qm~`7@_6Oo z(HH#Q<@~B&LsIv+Zrk#1z|64Cfi{SMXy<<&V}TaOHf?l`X*T>-H-$=&_VG+NE1W5b zePXcJqdWYIqqEGKR!ZhwNcMSF5UxTyCYB0!9+!9a0* z&3|W5e6Z_z@KT*l3*xQZe?4Q3^i4m_K=CM*fYD)~u-_WOq@Su~(5sw|Kl^PF&%#SZ z)|o`IY4_{Bz2^%3onoDdPJoFT@KMUPOS_xg~pggK?mKc|aC* z?5JK#mn;Ke4)=~`KL0)BHzxtl;u19=i_be8t^J1TwEem-BA_d_$F=%9Gql8__SdA# zaH&=2dW3-e)n{ANvxoP1DI-d=01&b9$h}8l5z#kresm3XH1fK8Z6hy@F7fP!8GSTL zG8v`|Vw@{#AXEEe!y@)7DEfN&=Pp>aHW?kl>*t2HU;ldb>-8@>h)ryOR#}>-4-gGB zcl^*tvW$TuYi2!qRJvA>%&^?d^P;7wR=YZC*x&}7!~@oL#g zfZ=$35kOli?|*qou32qTOljLwyr1FcIY@D%=S~mlJTU^qTe223KR z<*nM)ACq9SZp!Zc=1~Gp#AcGUP|zQD)$T_%4~?EJ(XI4>0n&**c=Y!Y=9UML=;#`G z&Qqo*&3Bh&p|ZNNa7c_!XP{QCXZKMdc5DO^}sfO2MJfN>?6)Ud#W|$yW_p(}YwPi7itS!EVY4AbSGoC?+&4 zs|u>0f38wOnT(8u#{rBrq?r^CLV#KmxPNtyU+;P?YU8_vnsOV0mkV3d00+T|)0dZ~ z>hA;bi-BJ5$QI}EnvIHqaTrwyn`={VHUFyBG$Vxdb{iBwXacw5d%E?RMtlSy&NR|) zcaI9x&LHJAUff|J zg6TON8PJ?c^fwu70#^$1)?Tu?l+%dSwTiwb#Q^yFvvR|s>}W-EzMwLUebe*NPj-!8 z+dwCTtM`O-Z8*_}*2&{E8qJBO&Px3l4xwbm&r# z@n`3J$$*7+IhECvpBFVhRa>ZvxtMEWB+=}r`FD_IHGrGG5L79MP) z;j8yOi95?q&h4bJu>@qZ20#HIC`AMN5OEHyJRGb%22*KNsz!2%etIVD*({YwpQ>b9 z8+Ww)-Hin7{UmFIee%xj`_yZzPdDoq(=vFaDQ-RUd%ly_o+R5hLKzU~-+5)@vSAJ*E12~`(zVtKCHtH8AGTK}Gd$Uw{AF{q-m+9k$43v^Ye+fUMdpIb~ z>J1yWk6AFW_WAbnQ@ERQ2MbXgGN3Un83s0N0yE~CzYH|DUqqw2f&?-c*F-t$RQujR z=u%E_408@0{~3AmeVi=xND29;!S&sD`7o5CrJ`DJAc`YE%$d=}Cuv1#l1{=`7u4HT*+UIP{i-93JIEJYOlUYAEX708H$`^HQv z(N%^WffN%EsP##4Ts@u}l)J&sed(q=3IoqMP$FVf3_u0`)ue=iz~AhE8#PGjfciG1 z36#+}7TP^to^v7%nlKp)T_dg4qN`j3^{btWAP=MTD}!CX3WUN+J8sG*b+$IfJNNq2 zK|3ke@dJg9Kfgmox&>69`O!HX$g_5C?ums(`33sFobdW2>bofVw|oDI z@^5OxU;o$c{h_7)XnT|qeD7h(6nSsO(O~0x{|!xe`ojoll7;HLdwp)8U2*bY8Jb{A zId>{6vsIS%9ovLX^U(0*!xt}9jPrDY{r5&bz=Rz>tvjYy(9*oJxUUymeZPBm9i7Hl zLQEuHEXdK1oik>3L)=L zL;zAVjp5lm?QKqHKo`gU)sdwn=K$q%>GWc?bT6%9&I^q6Z3 z;Zx-2mxafsCF07{hG zbKrUpE{zJol25s?out*3Iz^7n?K~4pQBA~e9PtRLhkk`UCYQUgcC&Cts`Kxx8m#k} z=w(YL8fjYb`Ueu!ZMlZLv@4hTI?l=+f6ZX-NGof3)&o4<*EuA8LR|_S4rB>Gup3lb#@X&&DH@>sJKS$>@pj^sBi@x?@Jd4Rm!>BLg{%iN*hp3C-OIQ>f7tdBs zS|oyRI2r@qR&HAJr3r~bv8QxhSkSLbw9{{e)yXJsQ9zU8sYv@ri+TEUUJi)o& z7*Tz_>DHakzMo-9nD`wV`&u>~WO6^wU!gzgS3Z^S$qY(3Ce}rM=s0i8Hv9i}O zy}`P_c~x~`j?_j#Z5ey!*8@wh)!f9=dW_AXdzOb!xAh5At9qq04y zNMl}5!T4iP9rV52TToI+IzVc5*1yA-DiuL7d1ZoE+>;%Olw7Y)g3q|EYL6fhRsx4b z`)KB_B2{Q{AC4hl(fsNfToncdRMGELA4pk$JLa`+{c)hGOg7V4{#~XyETt(ll7WwE z<%Oc}qxfdz&#~>knRXx+K@<`M5*pw|f7}?ts-dLx0E#R}wDYBL!Al;E;dZxYMs|V~ zqSoa`E>a>Wj7x9sj#4&DR^bp>3aNbb24W;n&r;de{{-(kfH(#Q=TUw_iF=?5cm$2< zbVN48@-bgI(4;^2VQ;ku@DjoXU9n4ym%~+JmZ+zFasI{F1uD^(gHL`$oxEK8%C0OC zmS*ifiY$xHp>Ms*)eU+Qo4ecwht16&w|*Th8*_Q8BB8S!>V9o!kX}Aed?0V3a%(-5 ztF9s3-$Sv-?FRLfA1u}r`sU)SJC#33;xG5il+unUimPwh>y9$6Vm-i>;ailqG361I zX~2v-{#ub8H?_qPE;}+=o9t*M7`|7$c}swKVEHcrQi7yAre)_{gO7@`d(R^)==Uh7 zw$O<@%{}(@nJ-s)R`E~2<&=|k|V(`L5t3S$@Z{V#Z)yc{m{v8&Muamah{l+AZC zM^t80-i@CRl=Oe*kUr;jV^};HcK>re=zZ+|o&g}FIHR*`_I7+j3X~Ju+-q`nvP+?y zOihCO;_x1EDMMj4qHOs&Z8Fc5?1uHAEDsCVYs=L*!$Sz)lq!RTP_gXgtE)doM;z@5 zB<5j;zXT&!@K?fN;FQ2OcOhRZaMtJ8BO+gLFZ^h^T|#4VlDJ3&g&u8)xn>-&+knEq z+?elae%uzvSQzn%rGK{Lqc5x49jJBY&rB{eQV#_v6Yw*NQcfl=kPb#xIQPy|2{l$$ zZHfw4P59TUq@9b@GiCND{^qpg@1Z|Q#(J#s?6K)`LpYLMPL1ce;ga)syx|vYZ!BP2 zO6tKMNOz;@l49V7g*jaY489Cf?&@@?pPf)xy{i(zvCJi+>3nXSmtUO5tFo zIxxX9TzjcXI@M+?1v@m-P|o2ee5z>8Jdtlygz5k^n!eIZKCNF%6IhL zkG{{{x_T6U=Fk%-p-+>=@wl|}^SdWTM#O7qd5V%|C|{wnw+z>l+i(Rp%-Y*6nVlX+ z+GFNu_t@@p%D2&YE^gs=^6$JW4Dx@r9B)B?6#N^U!h5$SNXU_@l<%issjY4|RK=4$ zy!4LxtZlWOw_Fwv64ATO%wu_K&%I~2kVjYhd*tfsud}HQM^L9VX0B_;@2`&1K9svW z3TLlcm1%ZcmbooF4>|ugu}IaE7AkdPLpuA-VxwgZuCW~*ttM`|xg-R^6x$kz+$T-> z-$Z7=``1Yd#Z4z!6Cczx-FaG`MJ44w*mHVwYa$4(h}uzgu7FlewusbC8JgsTw?5M9 zRrBku!poOA1V3Dpsiu9#{xD&8ZNaf9gID?kOH8)K#sZ&w==&O=RXu`zK16{lAhLVV81fGt=U-&|)R^q!l#;Plg=FpC+{)I-01JS#h194I#+Uw4^*)Hy09KLgnTP`5=^4sig%9?m%VB=Vg z?oOC7|I*#lWsk}Uk?4EFIMut4iJh_%1VOl5zCM#@%$Diavw+aJLAI*oW{s@l+MLA? z+fI^J(Q>^@-_h6G>^plFcQuy%s1DPH+)BK3Vw<4eZ4@+YLYzFRHEzu2G_=o@FXgmZ zi{5dR+hMm2o-G(gG0)=8(f`ug>yTz9mQSNO#?Q@3ZLx#fclIB~RiyFTwvNjw5-r7B z2`I)G(gsF9s@Pi%@5xeqU`X=ICg>=EOwO8HaQLncS0rFQo(Jqd<{UzKaVQ|xS@!=S z*)g@L|GQ>M9C6BsZluJmh?GOk|(5$3=h2LQ?|&uHw#N z?yF>BIM*#QcP_$&{M!%7oVaANlO(rn9Yzh`F=CdkKN=V1IgztL7G-abBRZ= zb*mwKWz)YkNAbv3gObmAcdJlQD+SY1!SekB?lQ=H>b&wrWW;q%c& zr)F}UIO_)Ndy|crq{aU?MT`(Eo4XJ*OP_(gw7o9;ARmHA4l0Y_JiE9F*#LaCl6n#*Kj zn@f*+RWiY-mXY`aA6Ax#IH!(?*Bl4S*Tv(9ImRY^@9(YFx#ud>dEeZ)q%_9f;UOZr z1Wm@pC29&X+-JSS1hwQ;hK}UOJ7K@>DVHVw<8!?}=gfP#XxPAm@iMDZovk$5_=#ij zAGa$aYR%H5A* zvK7fKDOumGF&Fnvi8j=?@9_~XsAnb0)`vu;qYh0D&Pd4yt%Z<)%35>kWyvc=y04^o zR`+{faI?=tNd^VN#pEt3cS`t&NOh~8!!xWFDpKv!U79H8SQdXET~zfsdv?1`(tJvN zs%mg|RxxV~gU-CNrF-v5?q`(ei&1I)n^DW+Zd9z~<7oU$ER!lW<6fr(uE?Y#krS%2 zq7hrWiVn<}9M__4TXMWTn>?L~uxO1z;J&`>ukH61C{Jk07vZBxZ9FB`qqO6lIN?IbyDgFOev?CvFGEpDDjTb#qjo`)FW| z5mnVOFHV`?3ON?bknkAgYv<_0&M4*HAxwV7TYb~yhCs2mbszu3@DpYx)nla3lYQn)+x(upXN9{kkD=^UYnx+paFTRZ zELxeElk;RH{X)`;v z2+A>Yob6JW@_bcEXXY)k40eemE@f)s7a_{yb+{I5&j}xCvZV~RzoIC0S;vV?X<8ywXuXRKe!6LDO%!ET82%JKuAg7BrH1-ceoSUmf9YH9p=6Am2SQ`a|l zrIc`fE&-SE#B1v+MbkvQYS2f0YX8}?jd#x)nA`1VJ@RJ{}i5@K+oxLNA^dxhdd}a=F;N`-)V-ss(r)ysXXF)Kh!f5;cD+9mtWs?hD5A1yG@DP{56r@ z2ZOWaL9TqW_TmFQ_`T}}XjWHI5in+#9(Q#|>4p!pbzI%H*BL%6=R(!@f@e=x?3&vs z4S`p;EF4%3`o3IlDn!vm8Q{1EQH(DG8#>kOPJWk0%1mcF{4X&FxWuW64Nuvqc*)epNjWeRS8~b&2I+EVl2-)p+oWA(2^sGzS*mvD z@TFuT+c?wC;=MD!&d5D`*2k4Fm4@{>r0y9TDBksJXTf6(aXKEjkn>Hy?I`-_Tur-s zn%yreU%*qP-GJzn+x)o|aC`7?V>3n&=a-bf1*OC1bwevN_)S zfsXJ&=fa01sja*lta61(atb3E(ML|F>b?`xv8vhKycU0Z2mhLPomz2$CN)PjY5>tPIpN)e5uWRO1M{ObC7LnM`y zVS<(*ts#me{A(0avSlewte;;MP8U?SY=?DhpSL;YuZxUsuBrE5gAUR4M+62ODu z^zMuxaVTDlE#YM7B9QqSWZDi=P>Y>iO5&_=)gG+b`J%L9+e)K}6D)bUY2Lv1q~;-j@OqbO)tMl)+_QF(;`HR^%r#lxCV7U}{*RY^(l3!mRN?OB9#(4` zV2cMexXZsf!n)mExl`Lt?uvTds)IU$T~y@XM~i1Jy3!JG)Jc2?50gJYT8;F<1(0YT z-o8LNv`F>%26^3~xripL83+?1E0`BjtJabklqJ2va~I^FCI_NC2{C`|vh&~q7(jF^ z!8iWX8%DFQT+Yv*%3(%}l!ZJ@IjfdjcRy;pOIKJ=zIZH{x^q>(rD(98rsL+}U)N-K zPQRXeOIsTy--M%3YYUIHbJ?b<`#r$ISZWhHp}b+r5y z5`wXdOWvt*Kj$#sXBG(i1Y{|1y6zK1Ba-?PN1;a+Yxjxaq?a!kg`7CW&p^E;?Jid0 zGR(dU(RT&Uv$!FL(DTq7DUt_;YTI{kas}&Ja%qMwgRtzm@6}g!m(F~wt#L-=!-omJ zKkH=j0}bKaymwS7!%5MxKlZazU_S$Fo}W|26rgv<#dpAlHu?T8@v&h2Mo{8AHkXYL z=`iQBiQVkoWV*>`LP%irSB6#1U3to{Uq#1~JBTR0Uqi}IGKsp%R-85PhIJ#d9}sqO zoqk|a$|NCOGwS_+klIURD&Y#`nqDtd%IsVNe5xq z3Zo_EIf{a+H|rm8IMy{>eKNibDpc)<$`&UET^)~1u?UA?CEjBqGB{lX&%0hC8mJc_ zM@WR4VLFed{9M0+*iT0Ae8Oq4Kv{7d_zeIQ999wEj1*Mvd>yFFiQavvCttDVEk5|Q zrqZgSdPk^OG7x&02r3W}&HO^tGri|-VP4;3Bh^W&PkMV};bhX`TZxmm`V-TxFG5pS zE^w-OSU4jrN-6Q2`q9wAY?d>W^Af=#1o`J|DZkRE4-vhE)v*v+9f7X++u1f2v=?&V zZ1Wm~udM7taoB|b=QV5~_=wrHR>mqnIZatVE}N9h{v~qrlLwm)Z2D?L23C&dF}d90 zk=Ofc22->=@LaEzJfbtj*7wfl$O}pz)&dYOm`*UoQ(Zo%?zA+l+1d4(jnc~^-3p{? zCkYP--7IWM+3fG2WH-s%L~~np{K1cpMVHRlTZG=x2p-d1#OV~5P1fd)wgkDaeKt_v zuUp6|FT-{`(aAKOxZwLqWuE&4&pvfr)A~!7Ht-@==;ple@tKsIhBjptqeBe>ij*hY za`c}Sbd5(n%yqb8z|*K$jrFyr-NLPrYYZ>_ zfS+Ba>cGcqb1DgZyysbM@&RT2hyOd}hwy(ReHkhLi{zd9{tw0+5#9fuY0C^pBk3(B zUVV{2MBrFsFSTf2hWIY7N!OmimN9@O_{uaWP^P4oefs)5O>(mKuH5Gw?RI%(vAkDa ztMZ7g(B!d4tBG~aE{1n=WS-{jj=M&#uH+gb>nZ8Qi^2xedPZ4J|;lhpO^vL9+n7*tW?H_67i&e?Qq5Djnovp25v z>rD(>vWjH`ot29$+YgIdgN2sguvWJ(!i2eQ;p4^4ZCw*-W>ob?Me37w*IY~UeItYA zy?zSI?!iEztJ`Ji=`~pcMh$$HM)D(QllbMK3H=LG$0#^F#jT$@yhfAw1+?Vsb&7ec z*T7R{Sbn^q_ro#&ZlYGU!rP)_vw8$ZqyLBNMr#cAh(CReP?ET&pIaH|+fz2B<)ZdC z_l*&;$fRrMXY@Zy6DcXoD9qf|XfYjq*FAgIGwajkL6$#$ZEucDXGzMNF=}AFXe@R! z5Iiw&C$HRM~#tH0HL^O!o^p4=(-<^G8w4@A6E z!N@yw;oJ@=V)~UW+X}dN$}gIT_S2d_MhjGk=iQ<&%Kvze?o?s&9rScdW{Y!7|D0t| zL9uvM8%UVF{9bKHbYnZIN-{^Tdd@EC&J&VOzIrc1C$jsiYsm?CRYPm-A8ug^yYAUr z4uE|}LaZ@7$@|3DR)!Ehz(B*DCc~ZbX!6y*bDUp}cq>$<8z|#CyqlV}GkaaQNa0wF zGuAPjZg8W3u_9{$C1UdYx#TT|_{&?8k<^RN3}Xh1oJSuwk9e@D#J5$yS1gqZ`WlHz z%ic=zW`CN)wWq_}m3X(4C0vxe(*IkK+ntqCf9M`JKToQKt;8e6*Nn7~Mbb#9l}FGf;;Pg8|+4X)LH*=*PsZSceof9f4yd_f;dmv2MYdKzEtcUv` zf9Ac-PzQfa$WfwghXx)lx!^0HznO`QH4H^{Hr&CF=|*1hr3-F^4+E5 zA!l*3DD4cxK=O!3NUfHOI%#HeW^}n>i;cdMi{JfK9ui7IIGIq7@U1`fznxexNc`-0fPt+ zoG^o0%Oh38J0N`^#)1*%&c-kFM)b5Ro!>kr2mGBIQW6_;_&E`9yE}L~#+?;EBysx` zgURTOvL?u{w|>rRMON4erHaLh$4ZNPdbj4Z+Gi6RMr4jmPQRhZS)L9rdbG<{n-!%i zclz0Oh(vjlerOXVE9Z?cPC2zoTg67}BdSKvdevpG6<39r z5>M^U0tu{U4)I3j5$lgk$KyyI^*(4>#SqwyK5P*Rk0$!g_?G#I)=?i?1NV+gccUI4 zd_(i*JKN`*s0qKbm8l(|=2XD694-wkHz`Xl#Z$c1#kQHc%Fv)oVJn5PR;OOE z>m4Roft>~&JZr(65IkT%-b6$GNmrR>&V9;GFj1`^HqhL-2L-$GFS(rzDzx~Mb{hn{ z3c%yT5-A0wIN*TZO0tvUluufd;#76$)p}Bvf1A_b7cl%v9nD7bSv7dU=@(>oyXO`- zQRhM`bvuw2UwFiY01uuSGq{4wu6GRP9Yy@$Nyi!rZFu2ev$t||KjOtlUy##3mS%Je z1HSC{IMkj?7U+z38ZpUtEykBvW9M(^jldvL=6?rtTJ%Ul>&M- zAY(9wmzO98A8ger&Fs`IdqKr!FfFsc2?)pp`v0Y5P6gLd_&|gHTVea&g>LIUl=npF zF1i52bjb-CI@co}-2ZJ*ytpuPl;GOKy7!t$=aIkC+L?Y}xh|o|Nm-ByBM)?J2=va%;~?4)A!>5za1WP|ozX4wbq@&`&y zv;UM3qj4a!fF`4G>C_;I^!QJsXu(a%DcxN>lcYUb!J-PZ4Qe?0z*2kwBw>LC z#8T+Cnp++mDPf=noDb(yqLPsHwVkLho2#d{c98YS$f+L8LScuUhjl-_UaG?Cm+Z}@ z#5-AnPv#|3{1WdApE>z=plP;(Ke70gHAK}p&8=N%V-L=IR!wB|9+9wA*Uo0&EMwr(Olq4l ziTvZKw^J|*A(1-`Fj{g8cYvs(0nurUOiA<%T8+;N+QiW00h#ET_x6Ern8imBk}egQ zCECuBf`Dbi?)Ssd?F6^@$}U+~8BW)V2h;(U6e+X2zQo5)_k)va5kc!7eTMYzS&!Dg zK0850LU&4Qp@-k~mr1137RDNy6ZBBQ;{r)W*f&3u-=7;T+GdbA4o9CghO$-YAI6Tj<$!B#AXWL}kSi;>zQ=~Tz;aiLqKzWVXDJ|7 zy`6vXiB4vG1u{UJE3~JZ4*(_|v}H+>#_VrxYKdu;B90IQD=Tvy5DK<=K$u7sdBGJ_ zYH-o-9B<|6z_C%!%ML%$gC*9>^;cGiScnLMxk2*rqHM|n>dCr+CKNDMCSy~>xa9N$ z{o0J-PbVW}Sjmwk2l0YU&_3I~dK@MSg>j^E!MPv$<^aIJX=4e~DM|a?0^7!PoJ4qU{1xxeO_Fybo;XW^EBPTuYqq}e`alR#uwL|Ur~y1Zc!>G()$> zfBR)yMZ%d}VQlHO`4}ygPEb@VSK}5z0P09|?n&n#q=}ZeB0=y`a0fjKo#rY2=~03H z?nz6MmFnku=)gmfn-fO>9*Rum2L>=#Rq_3?pwA&z)RWgIi(@PYgsrt=T^+MLeJ}WE zB-jB<#r!#r@_wIcTkafI{8Zt2nm_F?tLL>dc3;M8rh<6)j%SS~Rq13?01u_qCJD25 zbF(b-07Q`JEJ@QdY5nF#K>#Yoqw*_V@y!OI&DfKLmz*%eC0fc4*G8ixKAnmJ2a|5D zO>U7r>A(`VJh%uL@j4!{s6|g_jzcL$@K;y^bsd=d5|IYqpQ}5;I zOs*Kcu|#M=ov*}~(s^xzQJ^i`g4`vVIhns$M1SX>B=!C2*+d@RUH~J*{k0<18)A`t zc#h37JVw6+-g$$83Owq|KAg=)oeu^oz*{D<@!n&N<0842*_boy0o3FzhhlfJrH(*f zKS^UILY{_w`s_4}4Fv>skfD3<7zNX%acZi8wmISoXbuB8*mIEpvpUHpH~2=x&pV5w$UChs~^)nxPsq0l_uEo|st4mL*2VJ36kz zJPRx-J2mCEG)v;2zp8zbU8XluglokF7z7-ODcjIJczX~L(_QXlVvO2Kc>YF9{Bv@S zx#=>hT=afS#c74uhrEh0XD@&1O&Ia8{HD5Y32HJe$n$Eao9O$d_{2d-u>X7>1gqSC z?8faT6v$S8?|4M88Sa>&?DVY~)wUKw0-4DFW+tUXlHAlUG*Qk~a|~ruEH1XZj%&dE znRCvH!kokXUvrL35u#RM(poDUwyEuKf==Y&tnasBD=An?-2DSdu(LWxzvN;8+s3v1 z(>)NppmsnUG8x&=!3f&c79 z-;fZ`FjtsYR#bs2sA6`fJ91)!5RcHo;$Jgba`jd&MBJA3)p>cm=ueevxQK($2Ap_> znh`ZtU)UIQIXgyYyysLA_g}WfP9WpUE){LrGfRJ2P+S$_-Ld~vn%MxuIR#F*TT0mLRi*Kji zT@i!cx%)UvwI04464;JvH%WtC3u>=V*mf5QopCF-DD$w)XE9bp%Jo>zgLzGhLoq4t z5E)+6`O#|_rm*gcH}IPp5g+yZR$XHpBYM+1jT|@Z9CHso;m`I>9QO=|k= zx>Vm4%@pqtdTu;W8r!#CzU=Jp-*g7MbqWN0`SNX;(}iIwA-5pxp}A$k6y?55f*HjI zinc;1O?E|=lfik}k}nO)%CbrBDbH#tmpK$7K&?~UeG2B3i10X)GCxQITsx}y%!p*> zEJ5P)wy7US;}>2jT3XYWSd}Q~I3G4|7H}LnkFKb($_w0d6m(3aKuU?fT|HE}u99pzZZbZBrCH4krQ_t&xgiIC%QuqRUs z(~Ofj>f75;nEUD_giLliwGAVWX8J@-1RmAh zryWB%57W^uYASlCw{MYk?TLJ0J^q!AF-*iSF(=5xoPNLK^Q9Iy(K$YkVOym7VzEQo zaLK(*!+8fiNNL%+fO0q6pX^3z_>-g9-IJ9o6^*W=Z!^SGtADcSSYqAxI|7_QZs@IJ-|;UyT@btE%o*%B)KjhryKuD>BlhT9bDxQ z#@5Nw48F_d1c3e1jQOtjoIN7=)`sI_6Z}R@ky$v8>LrbKW3M zM)bIQokXKItV!X=-SKerxDQoLi>5FReoy!D3@T)_5p-aCUnpAaMp(`pJ@74$)t`Ij z?OtveNy93020Ab6&8>Nj;&X-8NWRhQ>#BR* zSol;9+ubuJB0e@}&x!WEC8tN{t8@8A_};K|H-cD1T*8b@F(vFkaj?ye5_Kz%38EKh z-MBQ{l@i1yon$)O{$X=E#=87#EfRWBd@vJC#wqBOG+3QFHSl3HjkZEhma7*diHf78!7j66Y=)Urs(l; zH}w5sYK;&qwQ+91z{eXGnH9MH=SRr)wl%je~C%#9We#k=ysg-r^O}t;y0vZOL z0gGok2Qhx5-!tLom2lQhd$2fWAN$oHUXmOjN99U44U|>H4OE^A(iL6;j7_3s|a$_eOvv= zbMU5RBEKJhmZ^UjNsP)es2SPdlraKfxRox^8+(xCMSq2UG8h##jQ^R+R%W#N-Up@D zm1%S)n11T9h^9jBN@>-1IHfqB`1;ai{-P4uZA!fv@c!MS+JH$RGV(+)D+tbd$c_c zVxlT!>DdX2vC7HW4i--&WI2Dt%IFSQZ$}QaagY>91jFRU7p$3;GHio|t%>DjO0rYp zPR=Ds8Z}X;rASsdVRWs1H!*1R*6M^MNb7mLZ5kMzOP_hyUoXWJqmi>wr*ZvwKQmba zDw1b^&H=I(twxFkVFrhv6NJRX5L_$zo6N+bVn~OdQ$*z#v||2^=w47yviOPZtK{cn z_}ZV6=+CsqW@!~HlBgkbnRJHOpqYT8Tm8uXe8l>Af<4aSDL|=4D5uBhoEO6~Y zsH`ul3g^Vd*?FDt#`;!2&R2&N#QqoS;rl%Yq#^KAKZIDR%~uBaIw&zv!D=0yD7;+R z#Zx-wlfYVlT;>UkcnjVdot-J~`3~l$Hatd8xY|WkI5q^XBKZ3%f9hSURqu3U=!{5Y zeK}R?5^lYuu=;Fh+L`3G&`rsm;`oqjH`Vk2#7Mt?WWu3rSh@8~vi}>c!QwQC&77cM z^ZO@Q2+BRWw%=&1s*M_{1Qd5 zhmIw_;>q7w=+l8&11WE^5-}pv6f%`ZiYW2IT>JYc*!6$ZJ}Mz*Z;)JIXpHKxzw0S> ztpuhca_pHpB|IiA@BakE=X=H>FObym-zc$`_?g6U^o4ZW?7knIdzPE4RObET3=93v zciP|eBVE7S&s{GikdXa|J0r|<|7QPSnXd&l;uD0MV}b5hCTTwJ$izS5gxV;&A+o5X zBkH2oP9{Y=no(x_hohbUPxkm+N*oDf1et*d-q<>8+pYbbC#PcJ+HMcOdtHA5>-GOC zs61}_&sOzb>aTJ1|R+#-0zsx#R|%Fo-SEm zp_D%OrlC<(S>l}l=bFQke14YCSeXYInH&Iu5cNxzCD!C)O{MSp6 zY$(ShD!Y?n2+38TwnBm9*HolIxrqlTsr|bYiok2p<>%SWfQmFPQ*n?1q1hwRQ2 z%Y_|5?Cjj7%r8(Ab`Cm?%i}l z{bbr94=BtyG$6-It-s>o)mT8c8+$4IK=o3ZJt~*kGJPs=0PQ{veP-t~dHN zEYTUL$jOA7xF34+WUTqPX^eRFN@PeL8J{NQA(TN&!#$j0$vxlm2K`gII!q!XO<2te zC$)Q%cQ#DX#aT!w<|b?`N(G)@VmEvxxi<;9@IJIx9&9dCtH;J|+&o%d=FxwT z`oE67wXp-o-pAX%v>EP7_(?qo1&ZEW8LPkcsILFof@Y>mUr~ej(#kl7r`$6^hs{;D z=v*FruNv99bIEIJj}KVFshNOpyn@iZd-{r97RSM)5y4IE`(xHtn^XX`AKGTv=<9}x zR~4lU)`R)oguqB)Dq6@fJr>f|U}`8%I2a3Nmz04)2D>Vy>z38%uPxvN>u_4yZ5qBa z{f9#oLR{9qPSA0pY)xv)v@7{dOpd++IZ`ttNPC-FLWs~KQ=_}kOi!xX77@jbVdUs~ zDQ2jdW+~diVd8?1j`4OJsleShg*5_Mn#*pvF3QS3Jpbrd>O7+R z`1M+qsrL}dY85$#4MWUMB&k@g11RRc`tFy6u;? zpU%8bU&s^%Ex-E^)AGtgkSN*KLxwd+lngac?v8K7G=b+*?ptYypL>3 zv@UEL1#_eFy`ZTX0a$^+15k0;vV-PHi4=>tHF~S7&_w;W z=Ga^v6|<|_oU{0@wgi2&fuFpWDHEbb5&0ztMwnRsF+!!{M|k`yX0NL^?^J+)bP#cy zLde$&#|`vL z^uS|-P9QraV>OiU7NVvH7Z$hIH=`XrvR3?ORe-OUma zS=w{ci4Ey;IY&3xmB+{GcxIACl*1^5v7W{_pW3?%#EnD*>}|i(-8-W%x6jP3rA(LU zTm0k@i_T#3lzWkpayIdeH7JGw05kLPn=^W6=Eb15HMV@pu&uli;f?+wg=QJ-50PiP zpUhu|LsceAZB9S7#KOMO_hC(p!PKPp3{eBKhX()magOgNnU8lQ5y<3^H3TUt zvCF-Tb;Ax!Va2STf5UOU?9PCGic*}WrlrmL-ObBN1Hz*p!Tw@{`RLeZ;Ea-={VhwC8`yrJRL96Ur?i; zoBU|sZXnz$ZqaN5V$JVU9XYBve>>r`{dp)7ckDqq##u-6TZvfm?N2#onhz?Q$C`C1 ziSt*(+d!>sbk48n-p zkjn-pU01zyx$&?jYt$V*dtbE1Q6kY~RAs=Xa-rv7{1Y`ZH{y>DV&S?<66xg*oD8hJamRlKks&7o~Xv>q3Es;^rD(R=MivP z{|6dKi{n<(vZ{y1LdC-eIn8=8)z>#X-YvROcOU`su%PJ6{Ee6o)GVEPYSy>&f}7W- z85+V>Pa?DOnfG>TFcGHq7UM&joHsDT2CM45VlFF7t;rhqvAGF11c{S*7wrO%sig$? zOwY4k+4Gkk%J*R-Q_8?fa;C=BDB4u6>||)D;SEywF++Ayfmya+?idFueDbbyjqMwT zG&LWC)0LY6$C_TwUDbe1z_7+OsRnz@@P*<0r3@(_%FpJbbyF{!(9*nnQ5Od`2V2=_ zPX(*2u~Z+w!|CoJrGwrIBH=e30i*8RLSR7(m_ED2Z}R_iD=zOE?e#RV*Wa)3s5Z~p z5Gwe{*p>7!SCc>~uaCKOfb|$qw8c#tMfO1;m((>BB{d&=nn&@}Qr78x!R%+b)_opz zd{LfTp4Cs@Rj+r;^X}n3V;`^AVac(sUAy=R)1~DUw7+X-c;t~b$AiNLLANU>Zy2C& zcQ2sJfm&O=?j;BxW9UY_RlzdTz~^j{sSk^nkAZh(%teSU7v+N+`f+6HlFF{ zcvGSiOJqQt)i@Wh{jE8&-0nu>v*zh%DMrS$Aiw?)^RoF6hkwEdY1*{Ut}M@>T6@J(PZ_hu?}j#TsIyjh|DWnd&f4p7h?-6s3j8@=plk}tv}OQFSsM^@OiQwyR@Ga^k%EJtT#d5Vyu6S{pre5`3?R@<2k+&U(>bYWHf6QIJZ`cIe&iq z{JiFn9YSgpiS4z}Ud~?0k#YBD8f_lSD(X4r$6mT#Wf;U|zZgCcG~XGXss4!|)JLjX z^VYQn=IVwQ22NI;rZPCiMF@_xlzFL0U2ScCP0x0z(P?ni*v*|l!qTp>ERQMn;SPm* zkbw2qXL;FD@zvrR!`GY!Q6%P%s?MJJEDn%4Z1mnv1=rB7DDl>YDDTctANDy@GwMRx zjP6snvsYK+u8m^KQBQTxdr0rB`4*`|(b9Ry_GOlC*|qy}$Qh^i!!6Q-0*lw0S`k9| zjpUjKxNtZYa(VOUztwyrbri0W)BMX5DT~vP96Pt#=z}!FGCATE&x8r^NIJ5!pIa5B zb-11AL$gOFqxUoWvoEi8f`ps9EDJ}?wCDDa{nCi>zSx$5Z$$qY(udYHHG_JXvpfX} z9={|b=4~{?U!-1ERd=Nelb#XqWFR7TM?i$RYF9;HWZ!+m+kBWnhWpLiiI7R#(Sn^t z^}n_oBKJOfFgH+sUUsWwrHXIwbt)!{n~Bs0OQ}@wjPDke!TVx5B|FO^n`&xnUE0ksF-Q)1lTabbvsf& z*T0PS9GAn+meH65QFe2+fAFgA#d&0>zYSd~0-)z*!FuWVXsziccfH!QnGM_rS)4(r zQ9w-&s#2}f{Pn(CZzf*ey7QO#5T zeVAB(4D3J9>f~Qic-P;|TVrvMSgk3T7-Lo580WcTT4J>}*~o7*CQ-r@3S7J=75u!7 zJ1)rXCiwlovK5X(wnEzAzp@p|$ZGuc1V?kXO6pcc+3xRN0)`LO0&3sE%>(n2=joM1 zYi9u&L*xIo6OD{vFWp>1TYwnk{(sA3`u~Rlyn7ATYbtU1N;t&~zQGz3YAK8@^)<)a zT^tw*jQ!N;luqF_bA(x4dvvV&MygnSF}N8hkNC&wR57^w+{dLI&Tk^E$C8{viL-`> zw;$;e1I)zX+goMnO{fxwe{`Fhng2loEfzC*qohd0dIqk2mKZ)gLDLgsF6L(iWT__AeMvwLrJVYuLWO6r#zwa=*MQ#wa^W1)e|Gu8M65M zL~_?m2#jm))w(ioY1VyEUpJKR{l<1&s-)+mgeY$B%5rowbf!IPuS z3PHl_+k+@c7b91?r*t`EYt6ir5kFW@W|z-%xLOg zk*Yi9PQ3dszoF{p#kcdDd`kbL(_%d^h+mxrp=Sa@f>a5OBia6o^|<}SiJ&;^>-X6FMPGh*}CGc|nCORD?nV8(6CP|#>TJIIS$iMe)QyN!f z-2m$78-1|yaFV}+&oP+O)BVNV`kpT4nIuo6T<3#5{5C%zb&|RetRCQ5(h%f~C3B7b z1Osw~@7B>gzw<}n)OfE7a$$fdGnJ4>VV043k=zr99vuWMO>-WL)Je>GGQ)c5}#ybkqf0P|u3y1Uue2 z0+zlNOvb@nNTY)7B001YBxy|F9|~ujA1brINGf^>4%}%|p(Gm=rbaIrdjw60y#hQo zzL}x-TL35Pa%ai||DYjpO+2f7H-Ae*GV|Oxe~oL2$IkQ@sFPmRd!eb7VJ_?ZuBEmpnFsS(S&LYq(q`6=Kw zWLF)*1(IT2*t1HAA^jIXtbT8j`0j7fpIh7VG3pBP)djnNd1JmY4$K?j7lgLwZwp3W zIRSZD1`X$gvegwgZ5ogYiqvgbL&0c}7o!*})B_S8P(1R&2aVP52c zRZ;_Q>Tyg>;H`!Wbn%i6X%jb`F`~#tkh;=qKn@}0#EPFU=w%L`Hy61nKaIBXN+bNC z@C#<(tT69U*w{CxWDE+FZ(tJ|LBwSfNZ~P`101#xt@<%Z>Ma#1R1IZQ5Lqk+enrsD zgk%MdH=V2sD>#6LCjQ_MQJOV70_Ig?BxmWj2oCXm9HbB+e=~`sF}Mxe0p8CEQZP7c zbWf@zr+z0F`u?w0+yB>uN09XWotB4XUjwS>1$S#+pvRNLS+GU^qb_{4&x7+^9W}Q1 z)tKZApBN~$k&<0L6uw}JwpYo*=qbhh&C&ZQkY~$4cY1&GX7!9z#(~0-duLR9Sl zgpTm@6lca0&tzG$J+6e*k@K zr*36wEufUjCI9j1oFzc|x!-N!VRh}D+8kJGL{dQpu`b<^*AcFB=k)=jHfYv;u5u2K zJf3r>(vrNXh#>jEwxmsH;qpN<_CRDSTMZrS-w&W5@&Jksd^~sn;o*;5v%~u|wYvzy zI9L+#2hT@*>jikRU>#C=^M^74HEnO1>~q!_p|0+yrI!=QFH6n0w7MF6k| zrR!iWBvQ-~(n0(N%ZxAHDLW4@BKw?_OmEmD`PW@Y31WdK`r9koitQxX&`e9T??TiF zREl{%BryFy>fSS|$*o%(1{FaRu_0TKq9|2Cks=+Gj&zXTM5Tj3s3C-+pdh^|2t2J=a`wUe`6Ld9BHnDj*d( z_xeC5GB<>*E=nPo0qk?IJ3fuv(CB{)X!MemPX%VUX-t4ZxtV4#P<|acDys_L`~QV6 z0b@^k3Y$UQzs2|;j>KaM2Fw6XY4`B->DA8$62Xc2K9)1Vp5rWD4M4#Q)s_a`?OXHY z9g-?6n|wj=*j zSvZ$Q2%N2%Y)608!AU3?rU1=IBS1fzGwml4F}nw2^y)2#iratMSea<6I6P+{iQv6Y z!5^{<3hp#Pdf|t|(xcS_kq*N@6N&SQ2nGtB+2rv(({GhrYb2)^eE-KjRnf+I%1keV z)7ctpP-Cp%o;1Kj!DuFB2}Ck>JscSRdYm9Un1dWY4t{*QkXq3~xlk$XPhwr*~I zS3A8DwAFVyF`sj^`Cy@kN<3HzMu>`|YI=z`drbk}v$asi{kxwwoj_Pww} zVoHrI@(b{)`%VL)Y*aNrI3*4D&omwDqx~Q)OlUFtHKa-F#``nx=}SiQlCLjq8(uWf zPq_T7{npdAe5f}`v3iOt)%?Qm2>7F$kJ8c-8iK8gEm~T~s-&8K+{Ikw<3WtbQLdH3 zn-5iMG{*N<6S!$x%(>A&WO_ZfAe?6c0L{G{Kupy+tfHTQnJE?soC1JJI4C0&H>`<^ zvVpw2+?(SORtQhJ_=y68l9$$?4!fBYv`5Q{N5Fh8Jsqj0{bC`EaO9yjV<_s>xzj8d zmEcSpTY@e{QhmEf<-;HpB@<$rb0Z*9?c2*2SlT95fyTYqWwY~Z+8HCa417&~OWX{K zFMYWB$&K7_&58``y320X3pIAyD-O5Ga&x-|v1tZ9m2eGE;%}pBcjR!0NdWGzp z08rBT8Ob8y*pH9{!i&FDFOzwVk>X3-WMw^J0QChJ491D$6anw#4Cr2LeLrynzR_*b z5G(SnxRP~$%g_KTBXzH{r$WJCl#4cYA)Mq72}{A7pD>Xo4EAW>(^d}oxT_8AqJ6!<@zfOFJv&?yHKbDy zNH;5>+*v)KA<=XDIK{83`@4oC4`tvnL15hFGwKFZvLy zmps+?vm)Uvhi=cHfqSrxIJ9P8didTfZgqNg#Hs2Hym6gyA$4RAHn=;zv(cCGw%2RV z-&jM0s0(DR#t%mNqOMKXoNA$#Nb^%vY525pk(0{d$>A)QMD^1z%PbKod>h;;qRILYjpYU0oJJxD@l>Qe}4OVlG&86+?FN~Iq z=)K=6KGFK?8tL(T*^sVc=LLaLciaA_+9(C5CjM1SB0cdado5(1n9$&d`;24@CFK0$oG#f`p+8tmvGy3#` z0C&oCa&YU7XV+qv^1DTQzd&lJB)G#xE8}5hpEz;vb3<=TES+>N){d=8Q}|TSa_x-8 zy_IdmJ|3#V&fRQ#z|>So+*|Ma-%BnqR$@u!+xQ_b%U*W>C@NMhyn(63&&-;JCz5_Uo|0y*#h(jXj3;y{^s{XTGp}i1mu+>RiXm(b z$!A!f-s;Sl-BvjkVRz@*685YwQGVQ)`0h|l#WV7PR0z6rZy_B1NCl#y|ImWc&rB*^ zxqRf>k92qR@oPk%wry|URpN5%scP4O&{G!O^7u8h?na41hSTi6d;Ft}5&7>>$Aqh> zpC^co26JLF*k#PVUNevM#|zS=Z&Pt^rl^Ugp?yvn)l0?_UeT*l<&}Hbax5dsOhnXH zfiw3<59nQ|3gnKjB7xj7V9LDwyK6}8DnGF|p&l*v1uzdSd&GCVx<~(=jnnV{&!T9S z4*a1h6zB9<&#>v~U9F7ID{snXgI@hFv8Q^W5Eli7aM^zZmWGawR&PKzg9sypTojwn z@AKqntO16G;YI;`%9*U452E|F`Mz{EM>-1GC(@tuQT!W+2|wrP+zNly#)}%daY9;t z;hl*&HuJSUyndBF?l1Vn=y=U^kDN3glSGCj(W7?PqS$lm>EZJ4bX^hHp7smAI{7#6 zmhyjW@gUM{RpamE7RyJKD7qs~LXZFN~zW77}qu#65nHYIIYVy$;wcHxo7;p~3dnfSMF=tDyHTg&+}8yB|x zHn~Rex38oRDsLxa2+WTs7uFA#g=f$%o?H36*gb6t(4EP%3-6}To=yPKzx5x&2w10c zqmEz00U-xY%``_gzxBX~EB898us{-^+A+`H$(%xVH75Y>tu=BdK@lmQF!qMN{6I%^ zE`l+d)|WNGK99R=xqEk!cYV*vMpBBeR$ojtYw@R^edmBRFV9E$FwI-shDEVL_BcPE zw5MMdbWWXhD(K8z8#)vhRXx~?eV75$+W&Cp=CSy{P-Q+X#5sWpn7&}=fHWQJri*j> z7Znix<@(HXh? zX{5xe`}9P)xj|F2Z>mGXf9f5PmyDw>vUDMmpz~D4 z5btik^Ih3v+RC>op(sIX7&L?)-`l8+@+Zar(z?^!=t|QFRy*|p6>wG=Ocl~PB<}1O zobLYBDGf@07TsEd*S(=&PV018=sfuv&Bao4;S^|Cs)thTGhy(RPHo%UV)Ey2LT^j@ zH*reYDD-8|qWqWd69|w-`|zX{vF6DJj-S`XSb|x%NT&F>SbY9U9IL>ilF&36Kj$6n zEhOx6SGYiJM6+KTiuZ z{^}4~7wTwbFfg@RNP{{LpHz6x{**$wNbk(cw=1eb6#UVr&b<6!&TCNN`lrpW&A^f9 z)!>8i5ov4Y%V%r8xa`)>g|xSLfQGcKOQM)xi32wWj$adi;#mF{VS5SuZ{5FWu7Hm5 z3jXZB$r#57qdU*OUlI)o>=1l+*E)oGT-N%kZDFwEO>!{(#w}^-;5I^Ya z0z52`O%!Yf8>k{Nu~OI*vi_f9XN|xNd{@ z0usFoav9G!BMdH6`J)dl(QkJ3b+1qFG(nSC{3J&(JHyN7M+9Xob(6q0QMpP#rKY~F z*G*sbV%7hNp=BcR0f~8PvN3oViyNv87-+p#}Q5J0hU zGu;4d@ux{AFFcn#&R&z9c{L^oQ@^KV9glJGl>rLRlU$2mItm^i6a8 z?yA`-{T6iq|Lra;p(D4u4g;d>9CLGFk&+qyFS=LWw=^+NR*NGbfllj0D5>J7f8(Shk30| zn$6#Zf->pJoi%1ht6e~~(JfzV)09!MyM6F zH0E7BkdM6eo-E4%K$U;p8e+xp8&vLZrS5JpW}mXzVa*MTYw>ynC=uU+s26Tm@xkwP z-=ueIT4+@mp|2#XA{p`$y$(h%J4_(7OXGdpxZZla2?k11R{c6Ys?Tjn#ZAzs{TJLf z`sGBdu(Sb9naLfY zXfmqKm@F4erdZ@A15)%&{%&0(&~l}=fk{T%>YQeF7-**p$1aEY_efP0^l09D{)1-t z>sk()+N!>!g#>ub6EG0>9R4+gneK0a!$om8{n0@(a(hw(2>Z_Bbe*QtPK}L-do0z~ z?ai)tvhgom@}GFoAY(4`s?SOSQs<+xl6T*rpJ~LG2F52Z#rIm zg&vo`si;uL$+%7Z?ytM{joOGB&y_vFaPy4ZWh!lw;!Da)kazoiI7sUI z6lL{j#2ihsTbxLF&SXg|}5r5(W%rNvY-#v&$`_d^5Vq@0|qH`B}{n zLPC?hX>pa`B8OfSDH6kce-%vQL8m1*$`JfoLtm4|p(G`lEDqIs*yxLs+5KtlobH>7 zx@tEVw7~p*Xv+e3$$o+n9gRVENBL{DH7TCEbm>wpZl`;LNxChas}T#-25R>HQs@+e zENUg04@G_Iw?Vo(k5ztK{_IsuLk*b2R(bH9AyvbVFdnV-b*Gzw z*Rprt?{^Veb$Ym|ViYfNt82y2v+iw$Yu4d(?mXEGXl+eK?XGmYbDYvxgEdO@HY`X* zzt9VOiQ`KqA=H7at-J!~{Zf|}hTn`oVF5Xi*QS}T~zailH0(;hBEI%AJTl*VU zJ>phlgy%3G<0JjFPk*U%fo=`<_I9$kv>_0MI2i6-wc4k~8OD7oDk6RDk#l0AqJwA` zef*Jjj4D$p$}^Cx&Oud`_pqOWA~qaB8L)KSR!d4%U{;AydFw3K_=dH`E#Jo#NGdC2 z$i|{@vx{ET$R3t?Dl;#lnXu{tdh|@1Y9Y$yf?v!wy^JcTmpk4^Em+xPk<*uFJ$%=j zxV32L@dycPKh2cOfAuXl_9uj&oP4#1!u|aa*WV8d{AGog@g3lY;X8Nrt>&{7_kCv{ zChlzT4c}PqeoMn7f7{10aBdatlF4PkFsNstA9RunCtdugt+}MczMuWDCKsakZSR(c zf?TjbvS(F^aXhP7Jnh0R)`<-}<>2BxssbJ?TIfyCNxQf-+s^@%#W_gej8^%>JOT?( zFF|OI3R>@ryGt?IsGeL(@3t?FNyXeogZG<(yoM!@$P?L-UD^|RkMCQu8$Y)8Ro^>* zOn(|(0aQ%akh*ssP*P7eaGS-r^pnAe&}~1}p;QU4`pzX)$O@3vNju$@D>uv-k*h3{ z-m3~1D1Y%e^AluAo!&tYgQ|5+gf(HTJPj{S`d_}>)EooD{ve9@Y?s<6%&R})G5($z zb5e#yxJ$#fshf%A;CgP4B)!x|tp}zb86o>x^|9~u8f>9qu>Z5B^FJC8)&no)S9;#+Dc@}LGr%0z^*nvCz%ZL5u7?ZI=U3+@H8zFw(+= z)E8h%y(*ymu~IfoXIEK&jboc>XUstS8WO+1e_1k{QXI&iOl*PXy|rKly9v6E) zTV}J3*wJ)Hf8w!-lezg4tc{%!Lf*e4jpWqd>hS7&=m1=Lv^f};(&s%)2HywjJsd<; zHcecb7zV+t4nmdQhgj}}V&yHC8ysdazV!|>=4_H$NcZe5l|cvefI}OP*Wg|Y1cRCx z!D!>Pn}!R{n`0TWJN#SdWlp&Ph#?U)#=u4F`dSDRLu<4%TNG87>#7G__hxm@XWMM{ zRXOcdV15$nHy3|;fTcG2V7O+YZ1J6t*TX$2{V$XuOY4}|hlh*@_Ij;rae^c&zO%2DS%B%qPZsj-hLE(=tNiFG^b?A}Qc^!3&<5xcnN zGhy!Q5a;2%n@2Fo5m*W9hMPMhEWcFdRUfQ+fQe}K?FX7GdD(BGPjAwX+7UELm2#5k zw0u2w8X(`^`c%8kLLa?6L!q2p`GLl$$@0=IEu$viDn5TPV+~Nyo%z@a!|!@Tk>92L zr$dN>Ew?J_eEYGJH!-hcneXJj0iLydD5ZKF2VJeS*fF%7g|2li#*mTu7~X8T;G1fR zwb$x-(_y>s$)_}j6FeklUUN)n&5~ytK$4`WQgAr7!WvvH9NuQMfi3~s!aq%-b3 zRW59(d%eEJI!Z>&P*>2PHHu{I_FnQA^3(@{r}kJnx<=KTl(w{O%;FN)HeS2>xbeWa z^m1;?Ob%atX$K}OdTQx9i?(1s7s&uTJ9aC6*gs_~}t!^Ucp>Y0R@)m|}t zq2PGLkI3u?8{@Vuw72$TU!rbeJOr96zupd&+Fs{yHuK?0fE)tKTFqgf7h_9kNz}n) zF#UK@4Jij!MY>lrdF5gAl|ss;n(8Kja{t-H+Df5vug-#Mf1(k;lRBqXF`SA)MO{zq zzu=uUzsy2J)3QMbJF4NjT3+c)1ugoo_h>2nqQfSZE`^JO`~7=B{vnPP}q}i zB>vO(Pk5QCD1=UA@#UvK!MrZN$H}5ye(5Uji?}fzZhfAE21*LVHPsY^+|R_@CXRry zSPZ_|LAAkvVj)FU>}+^q!F49n*S(ntynZGsF$~h1qJ&MZigMI)zha>Zx-q2TpPCe5hv$i&uw_e zbw*xvqb#THOnh=zNyA*CiB4=jw-?g3d%XGj?cR$NgVc4WD{i}V@(q{IvM;ALvF9q} z^QcFq=de$76{ittX@2a@vGBjr%2>_FDA|fPUqmbVjT4u9$HSMQIEnVD$;NE&VoGh} zYgA{yU}r7xEdo-@iXyfoH4FdZ!N%jX_h0H>w=>G5j!)xOb?37!KHkD#|8~3Lu1(?U zWL^GZ{mOR6a`^|u{h$pZu%&Dd3y;`5PI|HHxf z)SV7r>+vki9Tfgb|B2A}~-ZvL?HL)7en+V zrTnQ94X46Mb;KS^^+!Usi1TNXnXg@qK1UM!(y7$XPB<^5oNC6LUV2+Vy*x+&S2vfa zFw!xp_@nx{(l)5z$*3w-?qq*!k7MCu(Z*$93!Sh(Z*1jhCCME}@Sg(&j;HzZa>11< znw21UVZ38lY8iN%7Kkcv8S2iEg~b9-P=TOPc2zroT~ehiF#(Up&5vaIt`$u6iT=uK zl{Pjw&vuTc?=}J#m6WD@>5li}w9-n9Om7XFnb@^l^+y*4!h@)%S#xOrT6BMPoPpv3 zhne&-qHR-B&HynZbqp{g zKeF!A(r{D!(#6X|w+gtLeYYHL1fn&vGvXEA*pis&e&I6DpJ4iSuFs2~X?32bf7jRi zJeAn?`$`yao|jreBV`WiDB??uQr3pO9!0WvENM<`ek|D?pSLM-#kfREZ^IU$NF0Z% zQWjPn4Kj@Y#$TCCQ)iRF_<_x_gVrB>6nwcp_J0s_K19#6o`f?r#GQf8s)e z+7R9erfuD7Oy_1#n6%%$Dz%vZU-iT==7M!pFgjqlj5yflU z4~U8QIRUsG>0qSAaes481TdBvx%;=w8a(TeG+;LhlmVEiM`DY)zx{cPvDn9Q$2D7n z@AckqBO{%_-bY05_rVZ_Dh_|~jL^RySEU<4zJY)r2H@b~Q@LPBEI_kIPFHcDr635l zM4#a~%_OlYrHtgee9!J$pP}x2Wg{VrBY8Pde-RXY)Ks>Cb<~}wP7!f(YbD1C6z_{} zm}xs+a#g9%@S1dcs2~ooG89?HV^nlPa&CQTQj-%@w3oSskwC$CvMZPz&X^qCBLrMT zKncZ=I%GM(5EDs$BN%q@{U%TBHE#7*kkumDTR~r32Ouz0Q|G>5j9WX?N)DKoI8Y4j z(SHuOJ|{=+$oKQ>n~P3lK@yPPq4tUa|Rb-jRF|LYhy-VDJmDcD}LS ziOYN_va%riOkkar0zT$$DAL>-towoT(`OcU9hb zJ>QI;$CZbU#v|K;$G&%)8A4pDtzT8G-0$+W5umXT92|XjZ+LgjRDZceE$PQQ8$Quy zn_wuLb@-=9dV5MhNUd^*8WLNjhO_J(mStSswNkzy0u>o2;3UG@KA`D30)Z}#WwFyV z08Qz(4=h=aQ7-rZ%z1XZ)5|!(pJO@ssFJ_!6KHFx2^Iy5$F#*WdLOz7_$D$GfcAJy zh~{gyz{d3K7=`)|sZ^EpSjf`FsSuP(tIi}l*z_$MoOJLK`J^KqT#nspaYetno1E*O zA*;M=&Q}zTo|l?*$U+0A>h>Px;JT=vK+7fCR>G-l~t9h8TFBK$_il`#7BN}#X#lh)>6`& zIvxuq<^FKU(X-^S$bzY z8?Ry`-b{B|;1+PHoh5xA`v%U<3xI=U=gCh_0op-wW8p2XYNp0)$VQ6gh4eWTF^hv` z?H<^V%>6!1_-?oRvcpD%J3yaMuG_csO@%-(H6 z6y|csZjb`SCP((i6jyjAfvIaMZ43U{U;FR<4Kcv)0B6JMe1xjI^!G&?^|JY{vylD! z67!#jTY6QmVIY6>MGh+c*=vy5Bcb>;L>}ywTk_|8xnA~sX4xZ|GBlD$K@yn;E~3#e|w~ZFz{x8PxLLR$Arz~aQH_5xkk;O zYuKL4PcG&LKJ=ynzV7FdoB8Kdbc(=rq}R^LW5O=va4fBnna%d%DpPyv`5_=SB%F*L2PlCK={=Rqh=B*z{-G2PWa2a|XEMUHg-{+<1Q=ie$` zzbd?fZ72j!{d>eV=tXyPe8 zd0^VuCG~xZrQ~uEn_T^M_T&F`LZ@knyxU-&Om(xhTcJnN^qO|}1F*-v|Jvi(QM8c5 zVZU8YT)%PCsJlH{;_-Tit@9-YOBE6$nNz)gvk>p zsKrWR=Gbm?t}UTkVLWv@(Haxhd)@4ObjTn31V`jn%41$9S7Fu?FCq_sr-&=2QFi}h zQDCbc*?2?0XK~~!19QFXTn8q7&YCmqRsSB(Z7>5Okh;12uxvi#3n~UeK@bI5CbC03 z`mujp`oxh>g9!`Rmj8Ezu6zUjGbR?IaGM-b0od+8dn4kX=73AxGDCK|0xNI7eLPpf zr~qqcVQ3ibQY21SCT*Q|CjWdwgKg!UlSQk~v49&_WOfdIU5WOe@2M5_K1rcmZ4{m~ z_Tj@b5gzC}^(#`6xkZf=uM}|4B_11gM+O&q?FJz(E2lPjWIQ9`D?+*#&hG~KDlToTWOno0ryl#^Uk;zH7 z{6zwJ2I=GwmuAU{WRzWO?{FAcTl2(=3XW0r36I62+f zrcVWrq?!{eg@!x9Tw_-!H^NMu{S4ig#h+AHEpM^Zy!}2PAYGM`*VER@fHs zX84)m^N2KMVR%$zeGES?6;vy-xX807_$_@rAde%M28?TgAq>erP87CBz0^@tSP=a$ zN49h&o5NTJ{u11HKG_J!33QNVa_ioSkTw9*`^3T}*cv%mzd)HVlIzOhFg)`@^)^E) z`jPBEA8@V`Fp8~;kxP9R2#7qa^H%k9C*Rt+1J$j2+bnUj(j`}cfl1JdvpxU4Ow9|P z^3VNg(F?`@Z4~$Z@h|~rM*30b^(K4>x*#iue$}j&pM|2=L zx5Mlwo)HFN^@V|tKBo%CP?lXx2_TL4ekb@tV9}E94JQFgSJEFHbiL+s9BST06)K7aB zgP89Bu}2-(u$+!i;hJKO=SB_ENdTep61rU<i|hFn(sbb?Mm(SZSDl5gCgTyft zn7@T+{x)3Y^0I|zTupZmVIJL)~X(f|AGX`EKeLPZO#ONF2FukkA@uWd4N1 zwIWhyqI&U2i>d4Q(-crAU-Que!;Zce~g<~r;NVVd#EEsM1>2Rz3F zhoA*WkQjgf<2A~J98l1Sn<2k-?s`!Ej)StZ(&!arCKM={ zuK!AJRaZ9~h^ir7YjHb>SPN~uCc?k`W#MHSZ00Q1pd`AH01eLmf#};R=4rWaGu(+NyPhEvt{ zwMf^{{g~*CzP#lNESc2<;!?b3F-tq9`1Pg-I}KQg(=VA{Rm!BM=)Em|l>LzEl?VnW zR?W5e!F}+2cJS@4M_C--AN^S+FzeJ`ComVm;S55L`*G#&0%wK?rKnCe`^*Fgwoo6W z`m7CQx9S+d{Wo}U4HrMLH<%kF^ksf-hqC$q@@HJ;170;C>;7_<`PxQ0o8N`gtcRQQ zJZwG)b9>sWi^mX+=AJt-zH*E6{)f5cP4R<#S^U1zoN>~j(wenOnM@Bd82v!HB$?@J z4gB!qZEt?AT$M*Yhp;=6ri1Ld4ASkIl@*_}j0PrWSH9JBsB_%)*-b5;R^m9vxAasy z!6|cFZ0PeW)NZMEJNG2x(6SF?FsOLeum55Eg-nm|%WD&R$g>_C-PNlu&)n0D6G{&^ zCVO{tqNv9k)s@Cq+Ph;PcYq9n=;1UE^LB;B_!om=qk*>M6P+&~U6x@%J_Mt5=b)L% zxc<6uG#<@N7&jY5R4g3-(fkswCS;@OJxU$fCbhqV&u6cka&H^Dq$`B#(US%0m4hc<$=bfC$w>ryXfJ31+|8aFo)pe zP0UuM-Dv%uAGaj}%|ja9Ht}iOa}Yc*PXO~7JCD#KadW+?D9KvSwTyTwdPv!{`+P@( zp*B4w`b7yFL7tJ%e4|}emQk%?cf}Kr@~`@^$XTC(W1M`6_dpUb+M>jI8l>-}WJ5^6 z{dp;Z0j{nsV!b{ZRi=brz&znhCMq%NieJ_gU8$$pTCOT7U9=gP_39IoaXu&8BtY=b z$QG2k2ZZC5WSR~`*Kk`A5eePjO3;r9!-{GOEax%~tHPOfGY3n{p;*?D@O$S;4W{qY zGWADAuB>^lvwBHoIz;Q4atKYfjMj_vRj4e`s~R?=-5bot{IeslJAvw~Qn&KvNW}GH z&=s3m$5uLYg$CM|xaG*$`Ml+4%4Rx|HQlXFwAsn?(}hV(uN3_Ajq*j&-R4CT2+!+tL`Ppg zQd{brxi=++R{EmX<5vIdb?wZcWB3EYpgY{@d}86YJi|`0UfbKqZm$ew`BZjZzD6e> zteI{F7kZ}H2I4%M+E(Acx(*Yu8~pY1nO`6M3Tn5&(XWKw$!&K%E3rEy&9N;qM_VlJ zpPaOw%n%NuaFB|0c};@pYWLqCiz$>;J$`8(F5wq;jbKuOH(NCz%`Z|)0>$|k^GJWEGimo zgol894)4Gg9Ur|*B`8)V*^uc;A%;NiLoh%9R#N<{4Cs{XaPRWdi z!5ynI$EwTA+BC{qVUcBEIru$3(ZYqPk+;k`N*d(^eUdUcyx7ku=d`-Pc>jCd;>||G zQ%v6o?P1Q|Fbd1%-c>M=`T32w5on0+VeU)jt%3`8qSs56ckT?@sNER5_{HKdPY%&& z8JOdq-4U~{5Ubia6)Rr6=-IrdeaY(J3{leOc$CbyAuie=P#0sv;O<;?WF+{9KqWi2 z78uiM)7tkOUamK9r?9zXOovquxs(-C`U$A1b6#OhHDr-q|Fv*ei(ZQ*IEb+-^};FT z5L}Wv2&zK>jCE_GMU;#@yJ;9_NG|D|z=YWkBg`1arKjfRuRJ8UE0g>Lrdm?!uX4wBQXNG2DXaD}h^ zFD{SMK##`LjP&cG^NCikzWd)EPr;fd3Bg-VNcCAKu(HnnUOP>2LI(;28zjsHQ?;ac zzZq}#i957ZUqw>A+1y^Hp1`f?2E(_XwBtVGX3Po?n}Wgq9)mhPb{HdJ7 z<)KVXJYN*N&zsRVjXr*lH3-xu0l4Q(zx$96QstdTF|T;y5^4h@`7%lqt3N;i_}En{ zQfGt@*o`L}J_ z1zmqVdl}+i9+T7Qp(SRO==F``m|T!HgE`mbV_s*_4e^r2{f9q^3g<6-Gu~1rX3YVu zhoqgA(R*uf(zJ&!s}wwc>+o*Ayd9hWI0GM0$6A}5l-4JM>!p0RbGKV$$f=AGyZQ_e z2rug#9})6K;4LS0J2UZy5t0S3LCX=Rv0rO_uyr4NCtE!_U|np82(iew3|tgNxZ^V? zw!Bl@iHpamUajrL4!tjIjP!i7h%@3iIJDWi>4#3YBYT4j#tlB9YFvZ+%ubHG35>?G zif`Z|(ucPM)~NJ^3|}~Qx}0#Z55-P@n&H}|LnD?#9y4B_4rf5?^52?j4|C}+`PQxs zTmkdSx-Tqkoyr)}6k_#wFs_eU?7M^I$ijgCmj%sq(TRR?=*4e2JyNice(Y45bc*kl zgPmsXb#2{^NKGt*(>d~bOy{N%<~5mi%Lh78ITx}@`*~;k){WRCnYz7^ptk=J<-6WW zy}DFT!hiO}UI&bU%G9|Y^GPu9jMF{WnXi_4h2+}fd~Zb0!)s)A64dW-1I3c_T{pIP z5mIBCgbAy!c5yfk_3+FKR3a^%XO!Gq=!H``6e!{bkoaes5p%?}yH{z3rM3dPl@e$V z6_2AgcJu0OKYM?!)y`g1Ydgft2ct4zwia^{Uk93D)DJbgk+XnDfIWX%pftTuR+0C= zRm6BCj7~iHuSGx8B{Rdt>$8LAsg4^xGBozH(7pB{k=3$=;A~LxAIyWT1_gF@(p`F+ z?%Pykjtc=g~ZvKB{CO!9? zjJO`9*cYJ9J9kdzw_7lO7{;C;rv(tz|1B+WsGa&vYk=gb)e!IBq3L-`Rdc{+aaEx& zKT$)CgKn^m(2QT>b3TCuwM)XHk_@kNt#j@_7+h81dA?`_#buAhAQkm}Tlmu_P2hSo|Qj=5qO;t_;G96kn(2{KW0losj_P@_E7bK)94R#SgDV8w@tsUIR zv@RvQ7H(0pt!ST1udC^ky^8eBp3dWC(Y;RAp@S*8DO=bYS)bYy{7ewLBh`$|P$ zoZ9gE7v+VcwK}bOY@wxGqg5n%*tOERS&#tKQTEWHoyk7M>;C9Lq>*FKn4Y9+!*v`Q z4tK>ug&(ttLvm}+n=KR9LuG0gW}wXl*UY4rhGDUviWIU0Vj7@ ziAvH@UXa~Vn($dj<+qLLsv0q0o`08%5xYo$ku!`$^WSCkku`XWeUhVRFN!IlyB znhd_kjP!YCM)u2W_f+{O3x}C0t~A?qOSu1x6LOtgRvCQ9X>{EXJSj@Q_2aRmhwmQb zsUp#I(aK3y1Hq7cw(~Y05C+k(g1wViGGJRtxDoH+ zo96f(fZr&IQu%^n>vub^UX%={qI?RJiPn(Rlz>t4J8>5InvzQ6H@Op?-0Q{Mm+Ra# z37brK_-;jdovfO^^h5PM$m0WOOt(Zy&2sO36lWCc<5joS8tN3{vF5!cHRzMM@%F%% z7NkBwiM?md(Dco{|BCXAg&=n*f~-aOSAXLm_K&v$eis zq0H_2LNf^P={h$tO=T_@pwyZjMv7Z2zFxZD?++93mwG$`DE@0f^h^wQ;6y*%J7w>u zuQ(+ipZmxO(O}4`1JeA#$*65HVYi2!2D)XC#~jx&h33^3randLy{zV|Zrxse)iN4P z4kP~fl{k{vJ(-CYK2R2*Bp*L5q^sHLc?5{^Q+9$plf2dzq0q~dZqCz zIy_-tDv3%m2Qdz3H09|w?Yq#Gc5z@C*hmD3|0>c!3CRr;`$gzLZrs-VxXhR7vQAd_ zz!R%VQB10GmC}Okq9_dSUaA#L+#y#uS&LRF3r*CRnG}^%##jKLXoY0NeHeeA!RGAv9 z4vc3cr+QSnqjzUfO5D-PK$eF z@&})kH3LOFm%pJ5g}=H%c=Qb58l3ewodB zoVM)KI4w;-B+ZE?jn3S7=`>F3T@DJ!j|4g<<@*%B_D8rfEQ6U2Jxq~XdXtDi^PB+X z^5Bzy1MM{Pb&mdnZxRp;E)4HhslftGod*pyAhuN zgq+kv@DzUivT(mpQu@Up3 zLTo*qZA&&80k90S^q)^#xIZGk+^(6>$(Ngoa??Uw8vtqP>ZDIUKbH8N!$6ijcO4yu zIrq07ecf6QFK`;OzS)`zB4+`8++x(k-ENJQAyGp?llte`>S@AFiehTKv`iC1)8Y-= zA5O32V?;;CCTfDm>gD#pM!E*5zm1g_^&Px;X14)@r2 zq>g3t(lF_nXCNpqUOU27P*A93ot#PIU~|LR%F}fn!RUtAJ8~#de#dB;a=8_v6 z;tcOYJQlv+B~Jg>(+gn4kAAYTJT9;!xCoQBIsS2)=B}wZ-_gVsmZTtQ0{;Fei^yf&6myZkdg#kt811j-KU#9gHS-rg=8u3BE-V z`#+m^=R4qf?-V5(Eh5-yNU)cbHFeg*nP~HFDX^`zedZ+1N|MWI&8AvPapUwc$r-@DL zG410A3tVR933gSsuK!XL(@#O6mSOYZFvs*gUiZx@rD9Ms)0y6#i#~ zf$8$_E8R18gvl+|((z(q)XZnuq_ZrOnUOpPW8Rgp@nNU1s4@`po1T-qw70h=w$Om< zua{|BmnkOxD6qa5F!DEk1q2$#S=&MYodzePOztQv4c^J!@b7DuOp(OPgde9UDKeR5 z!n6(kGS|097zD^ob-_BDG($a=>g6@jlCA+w1n1(WvJI9R|5kS~5s+nXA8#QcduOa^ zTSU$mrQdN$=y=l2kW_W<#8K08+DOkN-igzW8kFh8CsrWwsO*asuq$e=qt66Z8z zvMxAxF^XPbZ(Vk1Ypa=@3t}XRSe8l@AG`%gr=y=%DDa1=5QQrM=<|$6KgxGHNz_7C zQk5!eMC$JHN1Zrk2P2L%haXO)1<_2$oRp?Q@ibXCk%Vd4B`Mtn=_H9al4yCZo-<0p zdzM!F{|ibOECYoifVj+J1l)$4OH#?Uh8L+qbx%o&!#qnBp4j`j3^n@X4JwX%I@dI? z{(tSAcT^Ky+wMUGlq#ZvL5hO(VxdS0MXD$r1q1?$NQr<72!s-vf+$3!s31j(G$9~O zkRl?YAcP>jMVjPrYv(`C(owd&V;aU<%CNq0x?tNds>)I8Bn@0}I zbWnE6UKAkGS)>)}zHd;hi{E-zYf)c9FLpP$!vwxVt?f@=b~ycWaPF{w%sl{&r)4^y zhL11zr=7@w-Q~DxiNLF5=SS?Eo;xcjdu?AJxqYto**`G{y{IJh*k8e5V0sO*|Z$sauM z)4Ws_BV}Lbjd&{T;!B-+`}AtSvaC~=5tFsdt?r8fq z7Kgf7Xn4dOmRdI3M-FxIae8{#uL37gJ}dnREFt645;Zv$AMLmMC=+P_kFuz2U%b5A zzI4WS+E}g^XR@f(LUe&=(tj`b93UiRKrmG{mnXNh`Sx0+?f&fK?;A-#WEXL_B^~MC z7`f4Jxw?=nt^B6KllydYAF<+-1i#O&^(W?$His~`QF-yiJ3KElHJDz70H+ajFm&iG zfD!cq`)_?UH!eeLqsUUw+GtMaWmNXHy-b0^zi!ZhsC=VQt*$o>!@sp!4?LiY0A-{u zX&vQPaV%pNW6msMd*}yl=q?wZ-VC9PNlN{cX7D!VV)>`i{N$YYIKI@_PzhJyCr9 zF!RfHwskx$V1ph@3hR+30ccR?c2i=dRsu8-PD=c93f-b60frR+?;(ZMfmHUkQ*6?z zuYq`fX_qD%&-{92aU4-T@D`NZve)Bf6w{trx`u;cgv84)?G92yQ5oGJ>72`jKCYa;1POvlsh4?m;Pk79!Bw(_SfCUwU~C57tAom#SI}R+PfKdjgif^W5zpG*AWQ$XVuJ)x4~% zazLD#N)*zy0Kl!o6HKR5VPXL9j5;^6FY&aURz6A9ARby!KF$WDjg&ceiq7EE!?vL% z{2F=DN~kGbR|y)}um zL)D7jSK^gxTSHo*T+wL^q_1OK6`Iy~onakRR88Lvf9;ASv@3u$?*(C4)>5m$XDO52 za!g@|%k^Cy9KAVLK4_<&nTpXmD72bVcJT&yS<+uU#RUnB}znN{I5 zRuOoTQl>%eNVjIUW`kltXJ-4XNO_$6>)ZGV8bi{-EHPBKgo9{1+esTR{Z=e=Q^|~v zXmt|=gS8|zdD2SIXx5}(d3$E*M;g7Yr#;&ljGBKo| z5M*964&@rTyM#NQIj_OxmvTW_g>1jbl$}flz-LpBhbACN`2ojr>;C;KPtd~ZxEX`E2HJ%41XInQp8XW_y$5g-Nq(D{`bbYq0XB!_w<>-{xnbGB@#MC>Qgp4mcx+ zq{qai$aPdCYrBTFS2nfv3Y+6tSlRdW&M(yXm8H?f_Y+Ix=p#ZeZwLEcy7A@7@%cL- z@qQlv-B;B7mFZ4LR0hUG5!O(@nKIbBO`kQyL74W{eUZ_Mw8)=TR-ah6+DxRBy6 zbY!36bodqM45q$rReBYMBvZUeHRhU!R~28YFN$l`1^Xr=>^Ufe`;y*<-=pbEhg%{k zg#aYs5Rc6CeTV-@w`y2? z=Z80+tqJ>PNv|F(EUr0gD6fyjSf?)%C_7$eW^4o+?e%3iH!f8zWI&iEZhp{C#n8FK zrW)n>(as7O+>llAxwrCo=A2Wnq*wej316GUB%3TXat|4h-%*HI^x*~Vna)!@JK{?< zVcx6q(tAFj(GSVn_c7nmlK#BI9a=l!63e0ro*;;AS$hZA4394Mhv9-uOVG4OVvWD9 zOiVzwoM?XSN(EZR)s3bd?zpTf3Szo%EG(r&1?%11dafW59#BsTz6xeV35qjagx=5G zDLs%lHNR6w+x5<9-1Vi(#w{%KRxkX@6Wbe4s`7f|8H?9A6=MS!xY%KOYJb0%Ep7L4S`_MXxKfBX$`x zU7|cWY1~84?m0> z(?~PzuhM-BNbr^EPw7t@QfTJnrU5_J`>=Y0?&8VDlc*G+bh-^j%^Pn8!2C};b$O7i zwrZ*u*Zr?|sh7D-ti8jMCQgc1y5TaTfu@i}RD3n**TUr7-1plXgX~@mV_=wbploMI z_}M3M`>sZpjkO{}WK>)JRIEpl-fq24;htQl`xCg0p0@A}g064ZGeHiFBp~VL`G20O zObtr-W66oWQjzfAvq7FRiS7j@bE+Eg@=3=7E|;RZ>(P^c2}yySeHWaAkI!oi3V} z>T5W%i3(<+$inw!$lx}mb0QEzm#{kO3E_Y z&#;#~ift+z;rdh`*>w%jt#}0^)^(fhX)}9RH;4zJyFJH$?D0dPqiP}ESmLJtN{ig1 z5Yd`~Gio%M`;DKRGz$Dezh{K@XxgUPv|!|?eQ3hcp8cKU6yFN}M%KASev_C5Vzq&? zSS6d(?P|)^fa)B$-?o>F4xylKcQ{#6cC^=$j;`DyaM0)1vq{W-V@LG?%UH47n!I4o zi6Z)B#P!V;F8Yg0Ky%N-!tE(Ng=GV&L2jmNBQm$m!rVG|PPxV+Ke5QoZ$9vmsYF^2 z?Nm3+#72CPTNWc4`cOxDH!g7D>LW)L=&ZX%4O8d*pVaeepPL-UD8k;g`HBoaaeHot z;&nNDtuOXn_t*&OFg$B1ioYs}Vuh-Gff=yz)8BIVzSiiuaM{l_cIN^$3k8+*-7ZQ& zVR%Nfkus2Xad1Q9x?0E{#kc(jxcq;H1M$c}Zl{4|e(;)}rDu`bF|z=^Oi@Jh;Lo4S zs*KgxTO9;UhrizaF8R^>a$9)yzoy)`q z2Eh{R?ZINhb$tf|l3)XIS~`&p!-1cmxTf?y2c3_xa?nzL!l4c0TEz1*5gwH@$EC0yh%Sw-wZlhG*#`PDWpU*)qzLK|E-UT0&w+G6 zc)ZY%4`m&Po)13AAV`+y{5XNlb?x2awk*%f%pV{lbeqE7FI#>1fee!=d%@l+WDClk zr}IGenPsH}Sg|p1QE~B!ENyQ}}jg3C2?o_OpJS&@=gS+JK;udc^gbN&ScL7r^kBpG` z`pvG2+}WD6)e4@inc$JpWo8lso%e=S4PqhB#XnGkIBXkXFfoS1YS>8OsV>?dyEQae z7BKYjr&9HqYcELicnE3h1xQ=Nc4EG(PyS?|6~$$;mTkLynb3`X7D)Y6(qz|26|4S% zD*Gg;gzx!@K8MyFgm;~k*_yd7Z8btGl{Ujplr+QLBO)+nhi>o7Ybq=KinB=V(3~#9 z;`b3Yhe%c%Nf#w6KILEhgxTXg9%s&aUnALn&4R?K-w^wCRX$c!HwSY_+OSYtq$GAD zTVZ~7i9@ky4gpNx&tqewTr4d%WhG{tu`IoM7$tkGYtNBmz`v!s>}XmS%vIxn*}nC% zrE>Xvq7uqHQ+Gu$EEq2E`X6aF`Ojg~od>z0 zLxx;YO7z%C4ISTvm-lDRne~woyr00&FRa(9RDIZ%OQT#7J$sNoy8wig6z;Z71IB<0 z!Uc-`VG)j7-GMr&QQ97U3i{kqfqlTj=al73nwP{>p}L`@Dm9n=1Vv?|`jVe?hBW1C zF{0dxpHYR50wG!kpTu^^xo=&p$t`XHqkA|-hw+CJ++L-Paw>Tj`kLk@Yjn^MuqvCg z#e;U5(iTNz_sf?-UF?AgP%#3+jVH!`Gk(l8U(_G1Ym(t{k%33p{&LmV7h=e@ACaz; zcSM_}EhyKJKQG;te?SVj(-yGO5%D7%8r*I@OM`RmX){q@d+Wu-pRvxk*&Gt!arzNL z>yCvv#o%~vNhFNXBc1i({q^t-f1`-wo`SjIDF-alnK~G2-sblAB;C^W%t(!(3|wAk zx)w0BCo*tfiuPfZGpQ#MSk<;>O0az$|Bj#<-5Ko4u##Q9K_cuk z{Ls}zEpkTJEM59y6M;9=Lq*x&_;Oi3qXG*zM$0f%+r;#yX<(TVN`%%=Q2!-oM|>N} z6S%s;>bF_P5eKffXI#jvF-v04yx4yFez_U!WX>hG0Pbf9?6wB32!Z8$&?ST%Q@0N} zJ~cnj`_fIj)Wu$Gr>HZ&#>5L90*>TEKe9#g;mObC&(Vp^=PCI_7A8Guf&-le5^(8HYsaHl28P9$=vQ0+-^^M_^ zsWxcUUL{6RW!LHgv?6kKLm+ zo+)3H=1p73GN?Lcq!FW?hyvW*c_Og^9@Ru)IGH__ii2% z=ng&6MarQMC_T#2FZ{3)6m&b{n9NOW_jRF1Lk64OUxFs9Xp&KVd1^|2mjLZ7E*BRK zTd40hv)8AqPKk18*~%J3vg3=8u|cqn?aj$|;HoxHirL!SFt*^(TaQjm`B3W$dd+nS zO(s9IVuY|FsA@rDI>W2Ltd#}4*}&L&4`61Y>w%R||Fi5UvC*gu;x{xW=2z3)%{E5N zBl8p9nTuGbb@W>WQ4v`vg9`x;-Bumk!I`eE_Dbmc)M420Fde4`5-7EqIAi5{&k>7QRD={fspE9`_@@C7NW3Tk3$`Sm| zy5hWLmh+61l{nO^6dsmK$#jUFjNWrr`EUnV!FB-YX_c@lk3YteT=QP@(UD$u1Epat zNpFP*V8Mn)?)@Ve%}w-lPL|bewL^i=&pPP8SQ*!rAkTeFk;2Qj6F$13H~U9cbrc#E z;#0O~9qhH>0vr9|BvOVyc|p(P8(3RR`~HMT^74-Fh5Hw8wid@#Ec9l~UX!)=Afj%A zZi_&3s4q|Xv!T8lNs0c>l&&ep_an5(ED$%=Hf*8Wy@&%b6gKIXzycv-b{rZ=d(p&TRGbjBxbZyGK_ zWPP8wv+djfPdxfIM#ibHZ^J-*s!Fdd^(j!bY$|1fPn@Qe>{to-`R#?P@#LwSYWrT>`B# zJpcyi-m(dJ?@!)v3prWLLL+$f*|l+lNyK4Y?J;eR@OHM-y{ARbCu+6;1NM{TeX6Hb zL{q^+2=k|Jfq>Auv*32XCj((|*7zB98pQ|dsMBF{hKFd=UB*Wz} zL{|4^hjyP^?HwtOYFvZsQPpX%?}nFrw&QqoR%nE^Yujma9EZYZ3f{NMy7ZYk*M#@A zy|r)t0r{mtYgnkI&!Zf)z-RxpO&)ns%Jgs_0{eXi^vz0aeo6ts#3OqccQ|JlzvTC^X7iV~%gink#|lV*b*W0%0N-%sd`gUa3q&?-1Y58vz>{LXev+S1+9& zrLD!Kak`05{?C^xf&woZrXu{>p9A|lJQ$WbEse6hL7UFZY5!!`(X;#I1tJa1I><qHZNYT1Q{vghMj^xMy>&Pep(OGWP4m)tj+u#t_G{yFKyH>-S(yrv93ar-NNS z@L4!y?6+o>-Oa#qxF^VeQzTaO@b)0UT`*c)j;3my=}eI45c=!X05S0rV4D2Z{0A3_ zh*CNDc*mn(WB&8q@>c+ah=NxZN78!`8>HG*bqyqTu)AK+P%~AUS|c?7zI+p7;on|A z<^d2KaC+$fQ*q)VKtu+E6It`%@4TSj#o}kmG7a<> zQ-nGr>RQ1Ad1Oxg=GBw(i-^9DQ8m4*BoyQ!}QGd;);G^J=d)p40m(R9vl zTtMU}q_lzaGMEtt(6_+V&pP14w4hyv6e6ISebxCb)dP7NbaSEihPDrX>ta+?$NrCh z{Pn88!RE)0!G6e2r*PuYl^ceU*#nyC5^kFettK*KlHbazxUo?D=j6jJd zb;$4Lk@CI;2lo2P%>gbj4%+qpISl>?k0lik=mV#J@Kn2I^!rcrRluzjP5(+F{Y&If zcBD#O24~n4x-4(dfwD*rT>TyN1L@t&!E{6>a9Y1tsKZ3WnUeVifwyt`2oOZRFey8> zjUmC8a$98v`?bDh!zE5>hJ2xCV32aQOOa5issn#IGZYm7{Q=eP7&vqE-@jh*NK$kI zt%W-QCsy3J17x8yjQ{Qz!HHuAe1<2#Nibbxu=ehm1pl;s_}l18MfE37LG?V6*Y~q) z!foq9)2rTtyY9oVixg#{cb?0WtGxxTt+60old~E@w6L&n^_lhQwMXQ2hnB0&{TUoO zlXG6~bBRJM`{H%UwsqE+omO~LyNs9%fEM!6M)(=X&tc5G?YlPK3*10+vC7-Q2@zBN zs|g@c*7pAW`)U%-jF5=5yQ!YXRabUY0;}5VSCn`2)mFBA(PFNNv#@oys*%1_EwvE; zwHm;Fz`9!BRRsvXx8(N@(KD*UuhVv zBKTd(f%x#K9IQXBE8unye^0k`%&E5)gO{p1Hovn{1lFUzaC)Tukf%&YG zsGRhaP`+o6%hj?nP}G-tcZ7QVW+am2Zg?Bob>-VRK<>o>cUstv%ZDE$B%`VBbg!Hb zL6gNyoN`V1xPRRx6!1EARceZL+e(EPO!CUfME~S5XJ371Hd+O1AC1&_H(KZW#yu>( ziQ6TWjSd!lfQOb3wp6&C&U%rSe`sss!APps9fi!HB0FyHtqYPmOIq`a4e5e@O#+$b z5p)Mvt*Ghn6ZkLTg_%gRxIV=6cR$8IXJOpf?!DmYDEa$hoze!y%$iP!2M|qNl;A;TqsIaGH zM_87BhI7oB024vLA-|q#FDzrY<6ceB@tOzZ$FYyfJFDy*syVxXE6%q-6(+v0LQ{8e zcW`B6V&7^rFUrv|&x~gZ=03KOB8QYZT1M@h?%n`huMPizTh|^i)L9>tc7T9+6!J zFz>EhEf%STb<;$*it%M*E~k;PD=n6l(M))0U50y(Ny?2~tV43(8CuIRSKN=c9tfat zW(XdvzS4i6c|k>3Bt^v<+Kmo#P}jNGVq0Z}99~53bn;7jFM@PchORCanWoL-;lu3* zxJo+v&!<#Zsh$^1=GBuO$5=KPyd8IvuR`?iUWm>Z*t&l%PbQ1*gRjvSqDJwX&Isxj zsoNHK|9sfCOjuz1kvK1#Y&tZpe5{s8g5ZUjLwtr*=aD4_yj9+IqbQOvY-({Rj5ijQ z0&HAyFJ4ycQWn{5%jjGClTY63x=>^lNZI-kW4`#~89F;An!ZwJvHrj|t$HqMIP2*H zP3ODW-u%Zr@Uc$yf}YA+qDxk0aAbPtXF5RovYUOgKgs7jD~Y`1P_z{=KIL^O?1#nUU|LW4 zWz|)he61TY$#NxZ^wU$X7>|$JJT_)&yu>97f~ChSD#-`^%QqfRFdv9J^zUE?W!Hy=<_y);3SYlTk8-@M zblm7Uug~qd0Zq??N{0MzVK{mow6URyY-D8nx;Ki4=S8Y*NZEc;PdADJgOeH-q_#G^ zn|#p^Utf)2$zrNCTP?j-dBE7t_xXYkwkpPGr+8zzoSv7pD|R0i)BQ+gqj$uGA3ygo z^X-btq;F?oyM{E|m6;UBmB zt0eGUTF6^DaD;^ux^R=iZhxplPyD(Ym|RQq)sKaq>#0_aUQTYTHWX{c(RZ$E!v#u~ zpa*ODVl$bMN~3v5iiHlV`;DHpYtGeL_(5FW^5S7mRxk4ZIu5 zH>t0lJnN*ggt`m`9AC^NvFV9s;&O4bD&^Bk<4H^=2aa#`u5#)hH)U^f&sl--L?3wl z@a-xBNVaB68@CO2?<-WMtl%-KdjG-doHK^72v1b8f4NQIMc9Ifvjz!Rv>{ujVtbiT zS+7eZi$7b3;4{=RQXr6o&q~>gyWY_w?#xMI9#l?>M&v#4N%^V8&$6}lFgq;32aF}W zW3Wc#C?03b#`~nLrqi33<(!5lDe=8avG45n(lD`+nGt-Ele8+i$G?z2S7GYmp-cNQ zI)(?-8dhT5*549CNMc)(zn<^AgGkiHyLSFwZ(9uH=Cc3W%_Y&iTo+8xtNH}6;tK(V zf)yR_5%5+sELtqP=uA4*$LcLj5p+ko4Re2unhoaamFg~zBS$JXriB-_i9F8Uta1Ti zmrL0Oa8s$aVeKU0aDWFU8JsgTL==AbUgVUaM((*Rt;?62JN0k`Kd}z{{lIOWfKvnuj`hNa%B>| ztw@Lh1oKemW&EZ#4Fki8&>S|Um;D6X9YY>UG6PTOch>v)e!ltr2Hrc=nKH(O8j)mC z)V6^XJLMQpykQVb;u1TOO^?QPpM4(Rs=j{)l$Q%8lIXavQx)GF%k*$ zIv?HDcXwu5YLGqG-2$Y_7>3+v`VZASJC(qx;pE1-%yQWZ+q!I%%|2QhjFg<=seg&i zfmR^+JsrvCqdZ|&S~`>{H#!6o{lGR|d+EKlS(|D)xz@9#2bRfRfczg!Uwnqh%?xn8 zeuk)+D{g)BT1Uide9q@*9p8NvfY?)L9;*`po=ywFwD~M=-D1r^_S=$P(48u#yh z8h~5b+zu@EtFZ+w+&@b2^Yg=A8oCHBlp^k#@m zHp|}=qQDZ5z9pgFWPhKApg@R*pbpIr((JdV#Toq_I73C{l;e`uRpvkd6r*yaBwz}k zn{y|45BmYA2>-Qb%q7DfE7mNavMnTkY(##gBgX!03Cr70_4LM8 z$BYZHQZ6FkAqbMOyWXQy9js1!^ZxyRNp}K=D4X(o!u)SBQ=QT@-saurM$@C6BhU>w zRc(}~`pU)E172s^Q=f7I6!mK+f=RXVIvBu!B6u(skwf88Qn&W;`0N(!kQ3vW@r%_2 zFYa#HQojRkp#L@f%|laBo%>T=2SOo^zqkMY<6j5j|KgZfX%_;4o3C;6rGzkG>As|5v z+@X$?78d7{HveBYTG+uaPT$8pv%Vgt?9&P3mH))TTP6%_p=x$kqI>$=W$u5-@&eT3@XQ=_M4rv-sP z^cw0a_dy^k1`vq6iiQffQn*Rg3;aXodSC4}sJMf35%|w3D`jnE5U4bY?&v8c@c+{< z)gQZpKn(SyKV((!?N&jcgD)B?%KBbrD+D@!*4emY=TtJ@3ujMhsi*{Ahd_kGa4pZz zQNGf6bK$MhxT@z3m6jTgt6_T2ZmO7kqbWqwwb>f9a(wd-<$KR_mLTFa$r~2-ikw-s zPesWwOy=tPQA%D;o=wesPjAA~+Iq8o{&G+M!+vdTob>LeoXoPYhmWt#s`m!I_+>nj zfN=?XaVbEDxS9CSui`s2pJ+Gy_2E@E5U8&?EqLY29ZWe^fsh^w!+ZBW5d%g80=2}! zQdi5{@{gg=#GxTY;)qR6?Gu@yWl5lO1 zug@5Le52^6u)@gGUx}3!+!;5ky!jZ|LmJ8cEQ&_D!+T!|eaYzLeBQjr z&89`RIEgu;h&USuz5!_3!pTfM^qw)40(y=N^o~MUyWGRjLV ze5}~*;g^Ftlj7E zdn)sJh@^QtDrLdj2VL>UE4;HI8AJ=xGAq=mT*$Sz)mr)=8Db<4!9%fRoR}*XEB43u zhVB9$#9z|R+9th5x8~1UTC$KlOb?{LN5wtO?d*vHE$5l3L7+_K8YoNu>mJpUYdpQ` zfSGowFN$gFvq9NTMzXZErUo9dGS@%#K zO4w}*UWk5H6U2gl=6T#5d@y>HM$r~1O>I4<(k>}Jw9!@7T5qHtM4BC;7K4A4e5XF2 z5moNk%=P?O+V{Qbo;l;t4n}U>=+aCeSFPu;^QvqW-)+-a-L9IFVskqR^tj*$ZzeMaSSS3c17b&iku+9Q4_$j+Bvx1S60eN_#t zd7k%+Uw22!9IX03U;YrNmH)dEyGCf=-t+FqRS&x19Bg7d!%?96^HI#Hu8 zRHb7pO%zXU^}Ute+o~CKn0tn)q;^cQ^z8WBi4tSN)|alAD1`=bygBYF=Jw2}E8n{z z)ww;Qr}@SteAsgZI1&q|zHki`dfP2u%f~m}VWy^6nc{Jm@dU9)+G#uH^+h>7=Mko4 zMHx_`T5$w5pLe&Eo}Ceg0#*(OW4-!i|D7>YRLPQ#|zQoS7Y|vY_2&lz=DgVkE)O{#w8eud{y>kF&o; zn%(nDB6)amTkgb{o*OhuX}*Lp#?@Mu7sJImdq#&hgGXNHcvNVE9V@qM;i8WyK9(Vl z;kBNVbQQR8@mJEJT)s1B_kMlRDT`}A|C__mfEyH`K=g8G(Vh~^F#D1IDxnwX=tj3B7JMuAf zUEpKTy>f(N9;&}V2@zu(^C_u27*|}`qPzFSoUmM3WD~Q%f1R%1*VuEoTJd20$@j*R5~3ivLWHbjt0lEbE@JF zex2yuc5~_n)Qy5?zUB%rsD!?H8BP%=q)$+H9B!n9UXZvhX)`Q&s}~gZ z<3WkR@xZO6kR>cnOEGGlDDS0TbdZoZbc4`=QXI#Nd$i-kir-6y(DIW{#ZXCD|GeRd zc2Y$)helJSOQ>#&o|P1*)d=(hMhDW}`N!)j{PDW4M5i;Rdo~wusWul)4|rNv!I(20VTcT%}v`PM4HSf{Cj#u}C2fS?1tZG}v z=mHP_$=5l*|EI6LYTS;5Pg7*R1)K{qm(}iHuL<%xxjUdoW%te^?}-yvB8_kZqTP4( z?~#D4I#E;-%98cwucK!b2b{nED;1mc9pvBh;72e?_=IjEqz+;V9NQp}lJg}X9ELz* z1=`O1Jq&c^NWPJlJS(&;@E=hMBvD`0Y|>ZK|B8A|a)LZ1dWjIJe?(340-{{IHe)XNJ>*;+!9sK%m!eP9y-zB$6aR4E~-gx!0J~fm7=slJvDW z@U0LP*ODMP=BT!OtD2f;WV=8 zY+s%Iy_J%3F%`b~`jHS{DC02Wz7M!ktB6ab9fcrDuls%GkLT%!(cBy(kDr|i=alfU#q!gCP4)?gSOaFue|oegm- zPj}E1FY955U}WZJGODzHIDKGSstcZ+w+1hz4|Z34@9dS+iBkNHk9q=RxU3S))FD9~ z$+FGlc)0aQMG@VOxM_{#qXK96P6l}BJENlgWwpriP!_@ANG{n?zq-gb`eUA0m?Ppw z$Lk0VsTx9*B7%bI%x6kEhQ4bN5_QcPcO&vQrMsTh9lOqP=5~iQ+_g!cQUbP|Qks|d z*fRClZfZz0Xj0-1TsPbwuZuL(2-}~x%ZVCZ&WskcddYyvjY#dE~=NPf| ziqF%~+Fr%cd1Y9TF>Od2(~od-L3Ggluluv;P9T)j1vW3webz2qAbBek0`V_I9?!Ji zkUh4g8H*EN9Y(oMe|8wDsJ`@2@o16}$RBzlTs1rw4qbC*S{~@g&(4|quA)k(quBZB z*Q%x&aNL;P0pm4!M$EB~`HRjJ2QHb7XMDCDwUgW&a!+3vG1L4oNmMVgOYh0QJNV9i z4Tz!H)sCsweRdYpHFzLbXJvPOvQiQoxZ+-flLyp@Tu{P4pEk<7_r_iDn4(fUEN-v+ znY&COkxb<@Rnc_9VH$dnbJu%9R-Zvp5$!tTwe6}v0uqk94jrZ9X`aZJJGR;otZoTW;jw?^hT_k_eyEA{lvH7 zBnhh|tP?8sQHA~EhRl1{!ttoNo#PMo;MLJ*!G3vpyO34u%T%A72=^3qrz;io6JPXB zT`M)95;pB!oN9gS^c=Yy#jKCVMQb?>LNHf|_)M3li3YslAMsy3Dj?1;4_7PaEzSFS zp7gRjvuM4HQd#Kplpq-OP37mgu7vhG4TU!Q{ScF1<~tma9$RT-P@~dhym^$pY=0mk z{y64^c9ClP_gB@_NiGBj>alYLwKnH2wDVIoyBQWP1zUxYKcOuX>dFCqBu7lm|9J4t zT={EL3fMu-bN$6O=OIpdsPxB3t#8z7$!{wlUw-rJ(@UMJY$0eZQ<3glCJ+3lGWgbF z4?2G@Y>j&mkTXSzO!PYOP4qUBGMQGC%QSM#Rg2IjLsmxZI~VWR z0(VJTJ8b>{oHWX%6hmX~9&#o(NSkzql$ro=#7%LipKi zoz%5g=<$b!rsp)}f)2^7$7)bXg0{byoCx?`$3qdrVz*^;=O5?R)(GoxTx~u3jf0N( z?{gi=%hBg)-`a8bz*e!H@VzfjB5Y}IM{&sxP$E$&SnN%Q;i|>$4$W0+V*bN|(JH|2 zJ6@479~MNIuH~2Xjed)%UTdL!+r>%!*2obpu5ac=30dV%3ci z9MJXB@yn|TVm&~6h@j3NsqUS zV>o@I2;SY-8WV19H4C;Xu+i=v);19;rm(UaJJlP@B4lS35O7SK|0dx%WHH@Rbsy#! zl51{fHnxL?O|voT%R`TxZt9)R$OS^ZoKA}}7iHV5^v*=0X$XQ-Ok*bX_~-S`s-U=I z&$LcmnC3a5$+;iv;m23JLlt7o_I>n5B=pjIzzIb9pC7JWw#o{d(yPgJ1lwbuTbUnY zHI5yd5@xN{^LX7;E}Gv|3)mthnUtR%+8Mje`&8Ze34|W40t&a}4dw(*s08)$E}<+o zIyaxc+F>^{?bO-BoB0i8ZJ@)=dV5{_%f4Y=>|cnzs`pCiMw@(Hg^X<6{&p5j9_2dt zq|L;1d&3nLdReE0%RC=K{N1;8`ThQ`9Ev%wsPI8LF85~aIc0QPABs8RJCK(t#0s~G z<9$D@I0^RXI0xj$3-ba6CO(Gy2_20AKHJ7)` z8b$T^;fUvOHe-RY#T8>*C7(?og&+CTg}fKZH^D-mxIgUJMKZyCV zk6890O3#0qCUW5&`lXzC6fRCGekWef&Qx9>uX}cw?GUyn_^FRZP@)lGK$ssi7d)yN zj%4OkXq}8kck2A558>cN+SS zffM$ufRy}3Mb2y}GxfaNvf1>f{pZ7jlL=-9&mJEw@4Lgcc;JeJt(S_YH=E;E z4%|nLy-!^*;ZK}Dc-|@#xYs-rm;)yOlBclZ{L1KK!g{U40ztQIZmFO|0rD;BEwS#W zS7`$r_f&sLcNuFvg-G4)F3;>~itG3i!!TkY8nxso$Y{)YrBxohufuxPFrCMb4Xr>? zb6pXQia@}o+&-)5(GC>E46b~}R_va2 zG(BCZ@NWM+!(^lKk%agWe)Gtb2vy;uOFT4S+zh4A4#tUp72jV81|lB zi`;@dxPMPW00q)Tng%kfCFVR2g+NMX@t&O7HW+$(6pVrO8zY^fPRY8E(AjZCQ^l|Q zgaM@Ylfsx8jUdaZ%36o!=7)#OEJDz>*3_n}lRUe)8b19kuE9eXcU^BA}W8 z;p1aq@~&|;M&W*VW{#xYahErzv^w`lN3svsv1Zb{nWqwBq`pu}9!M)JTxE`}#Vs#a zO-H&;-%FO^m$PC&8apN)Qj5eKm~~(l3u_33 z{Uk#fN4w|V3Q#9CQh+_^{-l+Dj2S3a=_uYg<-n7KKunxqc4t!>F4tp|Q(U zLtjh3GuEtSNmw2lodz-;bs%8u@vCMV6Dly;RG7#rC4VMN5wp-?-oJ(O?7ut4;q-M9 zx|e(7HT0ZN)x7Z;K9R{7;r=HHr&$E}&I}ZYVRCAg(tG$fcShfgN~ea9=g@vzsv~qq z!DC+{JXU_6mCFaGKDy5<0QZ%-nLPjU+W>A1$-eirM)qrkg!a<(rLQm;RlkKwYOAI4 zV^l}imf!Y{9f!l>vQw=Al_#-XDzN%R3Fh!=|1sF42BPqELiX}S{6Cu-i z9u}<^t*oJ}7tYN;8{Lhm+rT)W3_=h^Cf)POsdQNI8wGLvXxB9t?IkA_g!t4C>iWJR zt7mzAk>tedaK#aA5&xoz>NZAiVQ}WR8uFDCql*w5{7G!97Tf7=edAy=nhQ$!FB3;I7kFZyXaW6?b&p(`PcKt{J z@A4oR46ouCRBg^V_26hz2$H{D(4&JnniUU3{X!*fkeQhaK%em&*wSr@d|Rq4nH<3q zE0PenG0)mkYgu>_ycR09@a2=vPM|SyF;>EEc;;K`TR{VGm57^=M0396TN4=0f zh}*sq5`8|MV7SHe)g(|yH}^)20uGL5=EGNh&_qkVS71!<3|0`tf1P+zaPuphTz-59 z&xf^9#)LXOq_Jmd@Vb|wJp31KIkz)l-{(NsFw>n?3m2=U%Tre&p}MO#xLm;UqAt?B zc#uBayf`z2d=IsGnu5zvf_M*sF^#)O3z#m59Si_RemfoK(0^1VfBGrQ5@XyPgNWp>v_@A-_F&KG~;0 zE+j1MvZ@&Hba`GWlpXBPzg^IT~P_vnLSUH zLsvpf>d_2xu$u_f(gs%pA^Y%y*@W6i_;*p>Xf7w%f;3cRAE&n?Gn}&yTlc+zzaOHA z2(|Y09CJ6cPj&aBt!i5T0(qBj87Ll{^-P!i2cozkmF#$UsdAzdL3CXyc3oYL6?$On zH&S9 zIv*7pm!XHO>irQ@WSY=EDj60GWpVJa&?<}zfU>wR$$kU?q$=AbPG5^%V=)?!#m9m} zl^u%)b|CwG?ZF`cx-S#>mDn>W$o@7`>%CAb+A32MZ7TBcg?8xo&o8YOp}fMO()i*; zjotmo!RZ_r_2yDM@=J5IAgVsyitL8B~3g4U;(JiJI0UEtxES501XGUL<9P6i;Sv;wtdWd z9<2kCyy?tzkJXwh&YZ3?tnK_i!KrzABUx6MKj-0hFma-3GkFQBZyQOmNx~TnqjO6& zC_*h3c`doKLP^!M-HZZ-fU7{M{lKM2KUH*7gF?^yI`~LOiXW^mBdVuKf&_qwcjm*o z-@{qQsY6@c1I~V~928ml%qz#{9R8BC=s zaSh!(OD&I*KkynYjXb{2es_1JmLX*w+8?qs=Je=lLtL5iWY=LHt{-QG#2K&45-tL? z9X(Q*<6Px>VDBxoAbSaIPNFW6LUsRWYA91~`&q@pN2TfGT#LN2JMe`%jRB$SJph*R zIY^1LmsyC#d`}ghk??eqJC>OgW&q# z1$U`jf65O4PlpH%VqcK3WWi(!3XuO13G`v|jumSYC%qO)bZf>ySx}BcWp|IMXjeq? zCT!|tt;VekcMc8gx#ZD4qY=BdH<&OEb#sl>In&%rA;(WWm6`!OfxJn=p1c7#rCY^@7Z^N%3{jH?GM?t9SFQ^T z1o-$j+y+#8mjE$kr6+Kuk_VMfIo-ss1C1gCt5B>89uL zA5p+Y0O{&NOk*$pBg%^;ij@<}mc{muC^3>K%FrIwMdiPu!T@#%AS%O6&laNn2in>s zjTYh+D`tBE$^wi9kUL5Oh{DLT!k2ZcVPh-z)xC zNq9=S%3`|hUzI?cCvuER%M>y#G8lOwt<(Esgzi6KVwGgaNof zIiO%2-fIg-@K zEmKw8qeAkbC<$Gg^m}YN*>TG6F96h?ilexMLX9uk1L?C*>rIew)|aE^rJWtpt7np= zCsUq?b$RI>rc9Q^9n5|C-d1>!awJmP0@Ogbf8cAGTLcTT_X8_6X2!$Jf7zBuEaR@iht9a#J1QUR90%7UJF*xoF=C!`$&td;c{X6hDJw3Q_HJd={bgb}3*$w?+( zrU2Bqqg0(a zI0)Y-o+(ER>)@}S+zg^u1&rIDD$M9#BXK)rgC&V2;-I*%?FZ+Uu;RgWY_L+hiDNF*k1|AmtQP-Palo&B>rXXxU1jW83`6^i?W z9`q8fT_fSR+X%7BD>YDVT|JQDc9zMMG@KTszUF^4qDc^l&Ni3%*@kvb#ZlQL%qP^J8>FO!zxd|%~%vD*D|~=3=^HC>yJ;0$iQQWp|NgBD zshr9IOj}7>R_GE*rNk4JC^oag=lotqay&?+x%lw0&7sKNwX2fWUGo4Ct#n`X53i{E z!Traoj0Rc`=DSJA|7(IBgw|6YU#|V}_-%yPy2Bvj5(_{X93y_K^H}de{6@)REGo@l z4p-UKQzxZN+2qLCtw_8cHKplI`Han5!JsnLtiW;N^1>q#in#MjZksc)#uxiuEDx*M z0|<~kmd$r`XA;1$ro}&6h(KqA;0L)u-S zkN=^KDs}u}R4DC{=nyBLut)m;TqF78KiBm8{$BI=_nNN0<_SwqX)f;nL?zW_UGv$o zNs>6e$YDA@QVi}B{1EOoEk^+gJBv7Gk8-8qc__TPy=Si0Y;-YqM+YEIs#U}(J5&_I z8gI&9YubaAHfw{&H_2s*(Lw`LA@`*s-c)a8BN(|a8K2OTAf5*Q#g?RZOA@27NoeYyk6)741*yJD@Wz>0Am{6DYQuGC-b zkMcoFIl$EXPGWR^XiHZ4%eCZpU_36PCxxpX&3E>aa?HwatouD70n1m4vTc41lE{#| za->PMF7*3j^v{(vLIFxz?4>(_ai`{`NdX_|9e)vew4oS1!)Z($klpM3NLP5=c|3TJ z*qwaSL3!8o8oQm*Hp*n#1}4u)5_UhUN5$!f0oy|L*j4@FsfU%2z;4M1d~vXc4ZE>y8HIZ4T0KMh~y*`~tu^q#HQ$QPXm z&b$A=Sd;fqsxoY$%FR#aUbiz)ALa)2kpeYP*#dx#4rf^<=fD)4nCi(Rl z_4I$F>6*t1KQ$cbWJrzAUmp2nSudPiqGNEj!XK0sa^8g{R~LfS9Bcc+~h0;V$V%b?=| za{CyH&h*SDTRDDVH2ZX3>mwIzAZq2e8HOf1ED+v%1u@HS*Hf5>vVJ_qOtDz$iQ^vm z6SBNj_rsb0H+t-ZymS(k0D%Gg?Thi+hvr(qd0~Oabs7&DG7j0O8NxOdI?TA(? z_RGSG++lGTF<+B}>%r?6Bbud80a@n!SHfU733o4=W*#kCDKQJoZ zeV3Xj=`gj{@$`vx3$l~mC2&~+#FGyY+z7A0zloimwKj1AGK*V^M&UP;$0Q~0%p1-> zo;P+Q?kX%0Kw*@ad%$VS8~2S=E?cET?-!i93q&?WyMtnG&$Pqi?MQp0g|oOFTd5HBcq{j7pePy4V2H> zRqOInfF%BC2GM2}1&Gz9C!xU`e&K*_he!Qv$6^W9i(bIF9@_%)|2a`}1{9JH_-2RE zs%|J0YI_FY;?Tsu=*-p2D0H3QiPP<=n2OSDP6X1G+t>aC8T=vv-RasNlkVMZ7kWa_RUbKuBlON~Q|~T;RO>LTQ%I5v*?+#e2)CfC^w!BF1g8=aERz zhO3Gw&6MW3*X{I+yQ)!feHUas>?01`HTss6McIz_ZZsA+05q`Xu6G9KNP|6zKiRX4 z{_58E(v%9Mq9+3!SuYm4(u&KYawd+_Rl_ZwBLE_eX~s&_0Aqp-yM$#3$4&cON4=cV zIo!%nuXcFK^q`K4Mj)Jk|1qHV#4MCrehrI36rOqSq@kN&PFON@EF>_ShqXGHkI)H< zEg6Z)P$BHIva;$&@j#SDdy%x#Jv^rTSC?*wo&n{8NfwgZ1_Y&x{RM_AYu@}+4P*z4 zy*VR+j0zXDxM5_+Yp(A*-zr63((2q+#_!i|ab%P#AH1AznIy7Q*bhxLp@X8|yrc`OiO=E43fB$! z6Hb2=4$xzRT7r};OcKaIda;W=Do>@xy)x*c4|^08yuf0rGt}5Er6W0h2EUJ~Obe2CR5QAp@#3(4PLbwvte#&9ET*#~M`J5bd{unCIqm5YGLQa44OS_hh9A(ec>W zsqRLF*6G*!)`!D}7#RJegr>V_XJ&4!*!`Y~uN-TohiszZTI7=?g5d-P%*`$({peNh z$qZ1;HG z+(frroak1p98JPXH;<2*msyoKnI3b!cyCRsnNG>MW0PY!`pL+!?)b@q}!We(|JHXcL%1@&u8S>I4;lGCbS>^Kez^{8y^M5?Ht zd+S&$*A#fQ^64NGAOmolt#Q*Ui79BmR|NMBk2oG<@mMWabBR~dwWD~9eu3g>M_wEJ zz4CfHP)OzU$s3qZ%op6#RH*!K12&sGAf(QD1vc$4vb$)tcFn&@!~vnQvEYvvU~+kw zNYfqP-lJ;ep&;O;FPd;VC}99S*925<;yId0)T=eew$r@x-=37b0rN`2l zmb1}EeyCSn3QMJXd5=hkJo3Dr=pVC&=$j-2P;@}#oAAlb=>)>`n8%t9F=>YEoj?v4 z;kL2xq?MUw=!$mGQCxVBs=0&d*wQt#VrCl8jzYX=H~LP5KkSZBE@HQe!!$30#Iev0 zZs$rKt}bvG*(^0K-j!U9p@TBynnb6}xAWT|VtI5e?)1uftiKfn!wffx9AbI;$|b`8 zRmzb5btn3<@otp&{G64v4k)a_G)lqY!JOi=jCS9V-9Y>)*YH57y1kK{fQM88RLiZ# z%f)j2MN!0>_1I41hez+UJ->P^$x3f2SNKW(H$!a+OrZq(+g3&DFZvU;(nT%1ObX4d zUtBDo3@jR$&*|r{W#z1yn7Ow{+%xrnCzMosn`yXXG9gMBxW(($p~Ke?SB`l<1l}#s zCmiAl88$tcd9cIS@2mND*2>!Qmup_x3v0Og^k!`K3MKfI$4P6=o}ZmkU}f?LGn~HezrrsbYiB5-oxG8j zuiDNDc_DlfVgN2OH9lpd^|go-$8;0)79>}3vwqRhs1G_h>t0gJgBdUkCyP_sYG~hO zZw9-XM9glM6zsAo;M^hx)hlyh|7*;nX&e1Fi_<72BE=j1?_HuCO$W&2Kov&W#Uz1_ zB{XnHZ%fHDLd<9J*AoVR`}-5P^oo+aHtV3gum4LvN~hfFv4#uxDldGJ?zR|UC2 zIBwFresuJIZov@2*l;KNVK_wIrP@v@jd&db^eh2}se}T`+j1xg9%rQ~q#odKAp$@4 z1I_p^`>7?RM>Fd!TYtGmOW1b-iVGxt02fTh2I%8!GwoZk_}!tR)HcL$>UI)@HA)Qe z>n2=xSHUpYtx!c9n$KNxt;Yf}OPtViS-ZEHf4q$EKfh$aCue*jGu$aPXNXP7#9LIm;^UeCBP z#;@qv``V)8lXSVg%_$f+z#r3~fSK)7w^|}DAh4w(UivZ2RF^T%=rP%)T2lXphen`Q zFV_+6lF0r#b*dy29+ZUNEEhZ^2Ght3Czl-Hw2YWChQ#ao^gGwrK(wHo=HhA*Bf zE0ZwB!0UWX*!UUVFmTx_-@3L+b>_lE6F};9o4$S4JTZ4MfuX=rV~A9Pig}?(h#uRR zNDUPFGG}i4;@EHU<6cI9d1XntBKZFRv1dut=}P3YJ4Hp!6{zc6T&8GzSZts23x z)iO(_KiRay)V0LrhLTgx$KBH1F#jHM_Og9Xrbd0w%EcSDu^hC?9{f16*%ix)kM37Z3m zRwE7GKWz}{>C8+V=ii37E9EgWnNoL_;HL~mxhP1vwwr>=yxP3RJRL|PblHUznDIyr zI1szw61j$fMi=_#ZlU-Nn_$I~5nq9N(Mm-1Y_XemaW1Odhyg*UYn!ep<6Tvk` zm#w|MVDgGuqMSz(=3(lGS7CTJsi64+%2$Y$*Qq7Sv(a*O74gBiOT>d}B+hXC%eYhb zVM%9z0^?Bmc1+z~L-JsE14xJz+CXSyzvY5~K(Xa~ar^FfAj2rL8~8nGqj4cfwaD!~ zCc|9WgL30L>&|+AL4xSxGCqSgb&WSKKPzaF`HJF}m%M$5O%eT}XTgoQc1=yqv5LN> zr!y_@9lMS!i_T1?maG;;z1|?o5%;Gn0Pg>9nZ#m|q4yfqV%n?&S<{9Z7kHkNG7QQn z<_q+9fT;UplY8}3AmURZh67b&%HRFcWmNo3en{9r;bXB6*e_N(Qlg1)fZ!UKm-yo6 zho@hxIvKKm%IhSHb|y)6@-wnFl6d!lSuc9CwZ8xz8K)kg9x&hO9CVd)z#xu^djM7Q zlxx1MCqqfbER=8NcCjW4*`f*wgXw|$k|BjEtbEWXnbbha zlu0)@dy;M)h}&j`N6M~MP3XCIjU_PBGPXibFFGPnw?fPnM~AlJMU7vn<%Q}nTg$Mu z23V%+C(@`3lAxGZcTT_ENeAMrrm31wW+baQp3QfA|7vZMz@B^NecPcrKt(jA3mjfs zU|b$7F^{;f@|1SXuC@{j_r01^qZ9P<_!O!xQrtHafYHs-*1tbLt^YI%)Pzq`9wp_p zQ+HngsfSX2m6#RP;Bye<%#fIA<`W{Y!E9sCGh@@02#mRu0pxp=?$Pd%g=k73sx2v~ z7d%yN>K?Q*uXr#MQ>wrKBtEHCeExHX_ufq}R>QgI(bID;!Dp(KYp-QoT4Y11GpwTL_5gB;C`N&YJTB|;c;ORk-~?~bcM^a+heym z?N>)#Myd}Ucd+=UzZ}fa8Tq#lKmiCb?zd7RqzZERC_KO1RV&3P{&#O{p`#f?-{Ak& z+uGgiE12skl-3%N?VkG_@4gpQ;k&QY~L~D$tJSQdfbF*tb6O zA4gUKUuu?pfm=53;Z?7`Zn|&7izO?|mDDSB_y6gXxWePC>wgl+0pXl3`DM(xk;CQ$ zd&#?KK87l>`ASF~ViC&8IX-E!d|yHK1KmtV&A}aq!Fa%Xy>pHggJLWIj}`@-e5AI0 z88x7Q5xw@-M7Bik{AgG5`{xu^OrP4W`(Sp^iv*UsR3GzQB6*8A5EfDZ`>h2*`@-{( zXkmC;jdcaSTFF+;ENgu$St^+X)Oq(Gh&E-C{Q=>ng#$`o7+@bsQ^tK;xLLRq&f)%L zJ9=EI4&ehRLvccJg29gb@F0H1z9e_=Rxb)blb4g!~5oJj?z z0{{%CzhlFTgp)R%OCm4Ih5`x&CJEuB-zdOy4DjUP0Lph# zpjNu4N1idZ{|8bUKjlEifxwpVsfOd-TbGQg(L)vzGhmPEf(h5u2$dE zJ;w`D1?=pT?q|Pzk2af0zmWh?`zFxA!y)aGX>4GOd_fA3F8A@b@k`)6 z6ze0fK-W#b^3X}sO^vxJX5gf?G|~>6HURRuG*aqo)ez5MS^x`fuHnuQV(%t7nhMSv_#D1Gl%e_24}PjR$8lMmX1+5MIQGQdFQ!#;ovs0IgLg zRa=z|X3I|9?M#s$^E%j?b-dzJ=pP=m&bJ#yaQ#ZEz5yjRmSrpk^D9Y8{DW}}`O|03 zk@VTRU_H_I&i^#HB!!-*ahVLcB&KBcR+Q1q3|EspK0EVd$sb_GzW{nnvzETAV3Da_ThncZ*TU)%9kNEJv}{-(xo4_Q}8SA zNIeI7i0VJt`V_x9`gql{g(*R<3!Cg#A=k3w{y4SU3j2G8yP*FJi0673iiFSpflpe( zfGP`Ah3wcW#arNm1g^>)13x`)XZC?ym6k>b#z84&~wZEE=p)KEr(k6 z8NhEpmp>}ouQj{D1$TVp(7wYy`FyewS^)%S-Q5mGTyE%@UlYY^b~(Q^?Z}nM+)#2f zbO~R(k+mB?626}fU(fi46GG1KH^WzgYk~&*C(N;Q38p>E!9OqtN2LH8>aY%=)U*|W z2Y_s2Wl|MEn{C@;_qvkn*u;EFJ#g>Z`;G0GqRW%J4R>INf!1SXSwMlr`D)z7JYcHa zP4|@d_A`~`5TZSJqR-4CP!iO+vyWd&WfP;E(ZqYzP}y=!+C3E>v^G7SJ~j&ys`djK z_NX5WWy}OvPT`Y7m$!;_6u&r)5$z5Sn`?`(7X^neW;LJE1c5&4+LJK;SZ<(Izp}1Y z@#&x6J3|Tl=onODLqrU>ge^F&u*3wt936|G5jM{r{IMnzp-78Vv*v(F1v%-;b0S} z0q^u4^_qJ?r#%A(<`ajqcMcheQke=Y^A%2{)V#l4KY*wL)#Oa<^opaIM0_)v8Aorn zQmzXs+!`yIrkGPeg3+$WpB%@=#@0?cv7gT?m(=TpAL*+0Bc5!2u!o4Hzf*#$Ou~M*(21U_&WdRIO$~Da&-9}+5zjn9s=)lm- ztruv=6KFN^-FKe~?)L2GdNQc6C~t~>;eIv8k;4=0(PdRyoR*f_Kik>SI_xg3$6ImJ zHhH2%Eq(dZS~hN5asfZw^$k;zwp^1^vRqm59_kI|XJj@VAzuog?CQ_?fq8iTs%4C>#@2T5 zGfZV)sD1`5CQZ}9RYj+7Z`e3ub+~Y&n5>z2;(pg>*-ec)AL+D5b(5X32Da8qVpPvn z6?W_Us^N5SS#4o<^y*d`vxn5#mzRgqL<%Vghv%mX=lfiL2pTqy^=WZwH=O3~DmtNi zwIE%$NS?V0;HoVgg|~Pjn2g3+)?aUVS7^&|*mmT1CgdDOOERx)@*SQV zt(4O5R7e9W-w1YA42&0g(L9U#kPg}<>&sxsYO4+v8mazJ#&Pv~#%w)w69#fH+Ky71 zGyL!8K88)$_g%MsKxUbdr zSnBxILM_#XfNH5O+ehpq=G%imR65JFxDtnVEwU>GKAC9M8xmT3_CLDqo;2T^b!~Ln zYc#!VU}F)85VBHpk%U&xm4qv8ow5iu1pomuF<*iL!Itz-{QXi=RZ2s zp-Z*M;YQj?B`%OKpI{#aIpWHA5%ko9g|8n~o32JBWJQV=e<-OIvOC*lzU;xGh)eQz?LyxaemQ3w#q$O>dcTLlawB# zhZ5>)|GDf=Y?gs^g>F!p*p|q9tadnAfh6zQNfTdIr+~zH^T856JNt~uqtATtlzU<+ z&LRe}0g^O|bM8i#@929Mm~ThQZgQ$m)El=?ROyvH35&7~{*%l)0WDY~DPQ#SZ`y%@ z!V|pIFUW`qYb%dD$FBxuG6#q??}`1i)kf3_w?tfGt3+K;f`|F6)Q6th7iC1P1X&eF zKIc_=Zkf$4>@GPiLozJ}^P-Dr@e8#a-81Y1g3E8gc)%h}q3HK=$)u`HNOG4?=Dsg_ z@AS@GZEMslPBKxS2!$;#}6*1u&CH^9d3;o*ex?G>k+8y`# z)r=2pmN9!yD|M{2pLiv5*q8ex);=xmOKs&=j%@bH*Bod`+PKQ)VWxxAXRW3c&9tHk zrrG4-=&N{l1huWdxUs%r*I|+Krz}sOji;8+%+o3xO<47Xrlrdhn?nyWy?bU^S4%xA zDdUf2;s(bf_y|;1qIE~`O&f?3qV}?htmrXBcZVLI&)#g?7Mh5Kc=8hrE zSIul8VN!HVg~w-cbNX@drrW~C#Z&l?L)D7y+jaBzAOF1K#geQTqvdHYpSwId9pJ`7 zAZEX3q7I4R5yeN0_yf(Lw$0jWbLO*0GfUjl%E*9?;K8rd*{-7PkuIa-_&c_wA!m%uJH@yu|F1PZR(20bfVSb8utK!~ZBIYBWU&@NW~SwEy?$!$GVrw|p4w`=^Cd;+cN zyT$Y|7|-de*)t8_EddkT&D1cdmMdCojxCcFSp2kRKcU-&#*r)g8<8A!6r4iGouBwz zM6)EfX|0@iwWD&ptWtM?esQ~I_=czy>8?vvpdJw+3t2nSa$P)Y!Hs*#DYNUY!i0~9 z-Hx@7h&HPdA6a%~Xs^a3T)}>V%E16!gzhncqTgx$6z9X2jH zJh{KD*Z7MTSc_A!I;)j?wag>Yj0=gPeSyO1xR&eFyHj+DAH|Yo+mROT8oylRko%~R zYOna9&bIJIb-$G=jpV!H%>FjKZI*|+}JEe z>8@L$)TYC7gKJM*?-XCJeJ+7S`{k^}`4`R6+7~swB-xMT&|^x>W-pTV-cDm2v?m$X z7fX2%Ai3y6K{;$@A`xOL8TO~_o#xiksOX|0DRQe0+x1NxKhfzEooJ$2@E$`^Q1lcx zUX=c$?UwSaQDORY?|m%;SE``RzIN*eC)mnL6vETDrG}gqnBy~ zdMKiM<83?Gma6jCUD_lG9_^o8>ytNH3Vfk^B0(3UV5+qvVT-p7tsdM`O7q%sm`vsw z@i+{#wreu?uReErdf0PX#TEz%)z6`fL?^+?QLD&x0b0dDuG>m@qb~(AtR=In37&Y$ zNKYDu!m+zPY}V>aXh^{r2LcPEF^TCGOFKN1^dqi|TE5WoDIU|zt1p?ZyaQ!HNA=2) zm*R+!phJ3Zv3T$xDfI5|d_yhqhpn$?dTk%=QMB|j6}l91B;I|OAgk%eMd0myQuZSc ziIAws^0QwF*^!5m15?kzwz&q_V$&Ze@Jz2G{>5MWh<_1v!w<}nOcW1p7tRiCr!#vc zrLQ0>Tir1#QbZVW9WX7$I$^)4+@?i!jXx;|Awz+7ol)UXa$r(CzyqJ0eLVVxWM9`T z*p1h4y<}iF&O%5}OiFBT6~kXA93xQhfX2uraT>J3=?`A z{PyH$%XelSU-2^^PkF59N{&7g=p95LOV*?Ws`U$pEd7fn~9b-qPLyG=|? z60?xN*}fbO`BUCVN6q}~{#}7DvzNMyCBm5QUH(LHRx}fDp>th z=WW9xdqPXH!`)m{Nsz$myw>mEPmTP3?HIB9ZZX`a6z+g5=JQu6NAybWM)?}H9r(Hs&O`NKIQ!5VX-qM153uVqvwMDfb8 zVxhgpGQs@=c(a$rNXSq9wr4X5|4+JMI59$5LU1ij{Il1JCqA0Y1xs^ef`XuHv~UR2 zP315x6p}{;k^H9>T5A6;7c~`mPmY7k*Euh|3y~aAGJKy9i=8aQ90q=-P@IL@n4?~W z;J@VJve^?!8KuRW-TSXy?V5}XyAcb=J(Ta#V3}j-@4$p52WP}m# z?{q0W-v^1{b?)(&oOW_I04uEo5%F z7J_!fQb#7H_@zJVEP4C+QZvt!D#qAV# zYWm)sy!Z@^8KYZC167q`(@;=K^J?`$X;0cwu^$4>{ZAQ>Nt*ECzB2Y?mb#sic^GzS zCGDhGyzesu)YxE(k%7u`52;CKN$&dDhptBz#wZAlEtgiK5BgQoHP1C(FCKY))f8;* zJo*wVoR@nb%p-E$*J|XuG7*9M?f9f)N9_v@$tE$EAX@RpMV`(nng7OV}t0d)*w0hhs{Ej{!h)J0?!VAri+-dgq{MBzjRp z;6&OTBOOoz**Z5q+d!(ThXG}JQQ1=_deUd}s1 zSaw?E!ps|9?cI&N9IsUxA4?*%#&I7X1T3Fx87J>#cSQvCU~^?0+2nj#s2= zexPh{FdfJ7&1BWuyeKP9OjKf1E#5aE14nz0uvWxo?BNL0HARZgU%xiqe{=RRnvkr? z`0~ZW%@+ju7b12W9Fk z4M#%T_-d4r0DEUuOkjB`&u-jI&+Lau#{C)Gob=9%hINT8xr1tnkZ=W*4pkKyD`{)b z$ai9k+lVpZmpt8EcD6iU?u^8a%2V#RuhI-eo%0NBB-xI$_BC@NNb@ggMlcjJ{8D>RFr zv(N?!A(FfhZ#>vf2$!vCM%eun zpN1=<@Jo zqnOcmUAM~&673dfW}owY5KE&#jooG;Iz#VPEVw)DXfD%=s%3P1%d1volk87(tG+kS zY*wBA6$Qary?1TkLFNO?9|?Z5H;C|Nt3JTrpAvv6CD;CVje$$8z_?0J`#eb3$|c2S*GpCbM> zfInTXJfsSwI5&OQC>HnS!6}+AEmEg{j23+og6&&wy}0_J@?&c$~ z5-5Za?>Z!CUP+x!Q_H+CDhXTYK5U^*u!V~hJ=c;WOK*6J!0Q^YPF)C$!%n8z_T{j2vtj48Oy(Hpah43mUiPU-8&G+J)96>1vhtx{QeuhGYTu?Ji zxze^UfqJ2&DgDl4Kl;wKY+a~LP_37(e9@`tMfD8MbJzRw%pzvV3v+U~)$mXv#t#U- z^nLr09)eDisYU`~$%J$=llLZT!YF?^wrzj;blk&cxTv2?Gt6WLVy-3~--S-WE4FaK zyZU6)Drwhvy#_k$usP>KWC(Ex&-hTBMP)%Bb`Np!Lfll0!;;HxPVM$9ehF>3q@3w2 z+LILRaMOv!kH32y$+Mm9)P=NY9aJ^frF2oXr_&pJp@w?1x3f_kVD4wV_2T@G!#vV! zSy;xi-1eMi`wO#YnF^t)prWMoB){KE`dd!X(Q)Vu6pzpFZiAIMzwR9?lK)JiXSrb< zdyK$CbF@g4vTOWg%GVr_R$kjA=}K54!6lC;|IRDrfBSb{sS!VyLE(Z3ZgX+5T8cU8 zoxbh+uWn?(bsSS?aasE%o?fXhXb8QDbe$J6f3k}_laoZKtl@O==)B9T(V4%-OXs0+ z<5l?b9t+d%z$fs8{II!gn91l~M1q;-*VwO@?u>h+Z1QX6n=XffaM4Az^3s19`!rmj zdhJ@iJyGm^U}opwW1S|wJ*R8_M0HSQAf+_v)Q))xMYd11?8!@{|5%RVg$pXdj^}JC z(Xr|8f8cBlB)aq`TUtb8#sA4CE*iH0usbJaH_LW$P%zwt2RazeTf;tDSwlP6gR-l# zIZu9^$TtO#6OYYQ3p(l@5tO)8@1AUXB?<`K7QB8*MOfY54y=lWF|*>S$Ep*4=smH| z27fH%eynesTzq@THsi>@1Rcq+lVv@F+!son(X(b+BP^Fi~w$ zvg}Qp8t>VasV9DWFxMoE_9&`_{D;Z~G+alq0kb!t

>q6=q68Uw-~Ua4Z4K-2)I{ zU%^^q&vIVOzR(gfo6+0XmV@+>>Ry`c+1>kCRnH0cghF(?e zg?ov*FAJuxIM6mfSMwELa})VO*$&?4XowTmwPVbCwHYwh3KLSM6Dt zS3Yd$)C|u)odqx1njwm51~Db0P(9RzRpmqFXy8{irk8H0n*f$G65xAwV{gTa^u7A6 z8rajxj>)EC(ect@y^;2V)4?Y`EMUQHLU$rfjDUp;H6{S36u3|9pw5jcBR<2ft`AF> zO`8-s+gmQ@4b$6Ypn+;K9#>Cq3U*$fF@T2Ow+Qp1I*2fc@KZ_oo`jo*jq31odd&Ii zGZKQI9X=H|a-Tm`QR#(%fYz+n>8mQ;!7S3I!xb;h3xkQk&tfx*G`JifmNWe>gXIRB z=aCo%a8AHmxxpFii|*YLA{DDU#&VLI0L7%d^839~@&A6WPw(*`*5nb~MoOmPHx1?d zq+Pe_OtKjEF%vsW6>+rQH$f9ifX;+}9_to@*iaZPK0>yD-|HC!q z&-?lF-8sQ`$7L~iCyY)32;vtI4B5I~j3_$^vf$+pVh(mN#n(}&Lh?|GbFfl+9GckS zBJ$N78A?u!vKj?XPNn}S2_0_>%jxzDk6{~u@G;8jqUzxngMtMK`C@1|VI2(=-tYED zd``S?83dgQmcg_G-B}OKdb`6vg~l8oY7SuAf&|a^=oQged=S++f@|OOgeE1sh-f{KT`jppZvcpLmY0Zc)#+E)juF(Optsx zM5)8J-e``9_zfJ-}k9fBO|hTrVw)pxd=-OUk9V?%;$YC7XbgfNW+ zpW`_qkHpIyD+xOH8zp`NIS3luwEQ-btBStNbjvW>Dn*dn{0WyWM59HX?4}=!n9i42*-x67mFXoIz$m2{OL1;?e+e8{R6(#u_kl_2>{%K>G^6{6 ziaxm`d|T(KG}1gnoz*|Z2fTtGM^UY1YG_xk8UZ+9$gi{hNM5O0nDWlu$>E07fU zAw=L!K!WRMvIkWmP)9Zlzy{o*B_KnS9^Z^t0J23Pts@n8CF-q0znie%NLn*g)Y17%+Dq(k`~27M|;k(#h1w zDB}tDJ9OtGiR4DWy)GRu1P79{(q8&9k`|3_(j=GpkjtM_xHo$*vG0~^^Yg$_ph~N0 zEcd4VYsWX|W)nI1ZuYK!6d42Y@}hS^&GZ<03u1oy42zVk8S3=1i!HI+20p~sNv z1as5WI^TZT(`!aG2v0VB*zB2m*@5v3y)$*)G{*UBRXL1YNakPE>(8M$V}aR}t1ufs z+I8jYljum$7avYqJ>lBaot+@d)zWxxa7Vjk`s1=nrUfRKcT75OzbwM5P{d}rnBrC0 ze-sMF=m_yc7!0`EUCJ9sn{J}Sz{@x%xvq)HSr**s=z`{~4 zRvV#_*V|t6z9(six_e9*6GYAOCWLLtexmE%k*(*BOv21pM8_`IX1qUnVqX|2R2+PY zjG#9yRPQy-j#odHvZ)Q3wXhy_=w-y#i|*LNd;`P`(Lef}=%OGgqqx@i+t&k!Hif_g zjG94lf-J@EMcBP$FZ7J)uFrIAz+t=#d^kHa2|vO!Ybx7;iE-*Ka)FCP|=JWhakv-f!N((Wb)7epezcKjTS6hUpJ-#(Qz_bYAXy4SscD>I6D;Uzri zo%f{n5_V*$wsm!0fLfcPQLtOwWU^UCLx*N8C(TGuQ=nc`uAnac}Q@^ z*i={Q9D?3+*6Z~*r)R3)Dn22mqaAWZ$LS}3F}wAW*ThP~41^U13~cVsyBoV{^EaS3u2!F6@D>rpWbS zVr{$UQAe26!P?rKc7S=gF+_Q_f4)t}XrR?8%B7?fPOW>5?`ppqzfyl6--jU;6`f__d=JPiN+~F%_7w4z%sOERg^VseKu{q%H6lLuVUi76=pX5g7MKIIjMaCJzqRGH=9^(Tw3F| z$jnzCdC~d9Gs~c_KSX%X2T6hY@IvQm#~DJ!)A3DjUsfGiA#qproNDlEdMgYd_1o#} z=UcvrlieQ7iZ8l*3AvF(+#Dg7!ePX8*C|qaG0rpT;a{=;S7eA$yL`T-$lz+kcK0Im zGm~CczyN`BGW3nCB<)^Iimf8!zBvJtIwsp6JIX(ybIn}EmXbbhh$76PSU7+lmH$UE z1UC<(*=t)bO{1Tf_G=EB!haBD%|u5Bk~4}IA1X-DzqwdU(!XDB;V{IGe=%7DxMvkw#kd zK;IznL99f^=QuB~z2%Jgu#QV^d(T@%B#-DMNK|B;ipp58=xc#ji#-p;VL6&mBZ9}w zbgny-$GDwM1J1h<7|YT7UDsDUjvUp*5+JGsoZJhMGY!gPB9&`n>95INW8@dVZ}W@qMhow*)=y5=!L`Nmi~0?BDHli?#^qw0-d_B` zOPO@~9qOGKK$Ay@U5thH3~`kieDXZJq2;^BjRIv|s<87-yt9W?Ln zFPqQ0-=`M%vKEf$6}2xAfg^A-CG=2X`IbtD(0?4z6Df zo1@D6!J~~_22?zFbnxuMfhs{~-BnkijF_wSsS+LIhq^f}JtFNrzAfMGQYBg(c{=i7 zqKA{^SvX(N3NL*>YECClgdchX4Exr5Fq!A~3o>bvsfXrd#X({a-<@@EV974DUmkW@`2C|M#ed=l=Z<)RuqN4wPNhc_g-Xt{JzkxYO8>Y(#*3}@p*5<;6> z$OI1L-u?{q?ex(xIA{lrAop zxQBj|px{Ti8=-O84Yd<-0{IybLT)zS8Ld`Mkbzd0(k8Fz?$$C#a?E?eD@KQWGWda7 zox6k~eGv7YgNXGp>mU>O2DV6poHypC;X?z4(R{a>)}jE;>c1Znf&UZGVJ*5xn{-R` zn+B0A{0Ty@sAuU*rV)9|sQt!>9ZGR<-#`5y=#GizY`1NH$zjc%|2olz6tO4c$ow~l z3W&}I>n4w_4MuHq&(L zjZIni3kAJNPBOgZT|#6!)s!hg4<`^vz;i2>+_@z}$JkMc-TZ$CeiJ&#n z836Xb+phaYhDAo$3f+y0Z62h*xg47BpXo~`XCFBJdtQ(RfpQWeRNrvhb#R6eD06Vf zS+&iqiWvBgy}p|MEiuZez6b^*Bp`Pk)5Cvodv?(Kox9y_PU^^t)RSwcY-`%xmp3{} zLxhrL%{K1z>V|3|DO%zZss7M+&peQ5cc#7sYO>bSw9}*Oso!$LkD-D{S?zdRVcbca zZi*dzJXi#nii_;75Hmb9>B9lraYw{gQkFGV=wv&i7w5ycnxyDYtfV2w!$Ha8vIW_t z_ppVCycBBseNu<$9d*$4JzQ4*H7{{na@?n#v;0*9^lC{%IGvy_8^}SpFTc7s^^p4T z_6Bn5TRLuA=QuJ{PRN)8tuL@wz#~X&-N;tN1m07SMF=3Bvb+A?UbC8}ZZX;N7{-P5Zv;nzFZ0W^C>ek^(iM)M80w6kYH{{|jR8pbBSUyo*S z+t!^JXj1>bfC;bLKWB2XQZbakw7TT$!u`XUF!B&G=EHDhujWSOjZbGz48xs*yew5| zulgY`$fG@!0hm*P=GFzY7mJ-DHD{_*v4c-W-8Wxo3CzEhU?nG~|NSE|Qh%UCF_rnl0N>z>glMEeVct>n6|1WqV7i|d20m*(Odq2w3_XYjz zW_W!70x$v!LAF~I@`>~ZBQ%6ka7P52k)bQ;x#gu_2;TA52K_B}tf6gW94(676ryMF z*T>u==>JYRMRddUoqIZ?)c9Yk9Nv2N-z=iPmzag}&Yz6N#d+5n97=}b6yIqMtuNh; z=%Z~jKRJQ-D{mQX25f?Z(e!N{!PxlqJJSx%2cwY)p5S4I$D8DTPiM6K$}{+1P`EY+6OrrP(VpiwI z5@#RO#4w!dD-;lMHQr=-y<0xf-(XcvNrZ`_GjeCU2SkFj_MiKw_PXJ!RiLsWXT84zvgRirSj?>fB*^;wll$OjIh21(2U1nDczAM7_uFjxgOolKQYe zr_T+P!H}t|_L4`pjaRi`)-3SV#Kf@+tOd)(&V4-=o%T5m3%ilB`>VuxH(!$8J}qND zkQKUqmZyb89<${|ymXZ*Qf@NZE`iwChmwlqGqYzfS&}5oEi&BSYjaNC%;Axu+FB1~ zZskePbl3RCjr+)xOgheO(%bHTB!{1XYGip2y+cQp=W-8fs+iTF7lG|AtSlD0K zbDLbZ8nscN7%AAG?~hyppB3{F@>pwZcqc)Y%TMFmXUtO1r?IwYiPfQn45Pv}^c647 z!8vArFSbI^yfegE^hmqed@%s?9-8dOKedy^SkDLM?@RYm5)=ibuxRX(N4Gqb7G|kB zWyW`K^(O2+h!PEUDR}gJX%z#9!8h0FMY}c_4GB1Tlf7Kx0kyW+ao8a)ZU&gQ)kBih zH|Tc0sV&h9#ZAs<&+*Dv%SY{nx<{&)siq{Ts1(VWKR|NoOkb1~aq_xoc+{-)hQr5B zttFx3Uj(K*DEl=m9St1F z|9U)nQom-bfq1%v+nZB5v+-eyjpbc+%tr(2TWZ) zP79aj{iWU1^hI=$H&&>$zO3IyXQ>hWgOz+^Zb#``ocW0r>8#>TPP*&NXHF84<*sWy zM`$HT$|lg(zC@j|eRIJMzb4l;_d!eKvJ>4xn}~h=&NfY#%2Ua52Ntefp&C{$s+g|T z%6JzT;peEZ@_mywX1q5_YA?sk^+iOdOQ_yTxf}S$Wih2i8;UtD)r*E*Ca(B#HbSAg z&tw#&Ci7j3Gma_ymhMSPN33)cOZt464a`JbB~Qz2b7Z3qYK;9&wpKxLd!aYE(ZABhv^Q`m^GDcmnx%CibLV|Iw?|w3 zZ5&(>(cZERA^)|!RpmQz^}`T)sW*RVwmmOU+ci)!CrX}+jV=C|7nw|ao1sr=Pl8~Y zX?=7U3%y(RzMAt^<*Mm~Mossac(i2S(k`ugHdgo`1yL$H58iNe?!T%;m*RQ!CdaoD z+iQm{pCPbacHe25?i`R!4OK6ApjgnMzH6%~`B+$ZmyRgEpl#?~CoUp!dJ98X_Ar9l z&74;d@h_<>T>+ecPD{u!LlyCgT)(&XkcU1(=KYu2fcO)T#pa}h5Vs*Qf-MRo2DTmGMM(QqPo~*z>H$-7(+4Y^@}&a;a&t=d?I`_AqOSg1~>K@v}$C_xflQZ;xf}yRkXWPp0-qb9PN0-E;e(erpPsfx_(D zO)YvJ&|W*S;zPNOi=bM7yx+n5*=_ZN&Qtr2!&T__v$iuk`B$(@T}Y`SQl4sYNOfd8 zD%IG_uy5du3wUeS{7RI^V(vLoI;bB;Got6D2S;GyNP^bQmTH&PI|5&)smp`MsNl-l z>!mU9pfGxtd|?1Tqjv!5Jn`gA4dU0P%E+)gMBA8lP`KTGvO^?L=DC|O|Ow9AtH`i`!1Ns;kV zS2bn=MrfD-p#)73$j5BTO zKf@N=uytE!PQGLVjZ(wB@P|rp3SrpBHa9zLxUxAxfQiwJf8#O;&MFt3NnZo zKXBIYw_i(1_UtQ8#~6>lcs?d7_m|5m-&FkE} z(_Wo#tUytc>AUWt@P|8W5gK~BGi4ONbA4sz-ESlActcnp4Cpi%C|0!(KV^q?-R#Nj z(w=3&?5;Erb=AfFsgFs2SJM-pL4;UKpJ=Xrlm@DBTl10jbvu7;66HbS6 z7r;PVt)KzcccCa%9pNhn)bi}4?N%~GTG$#-9eE;D?wOVwEL$BGUW*=Bj9gZiiV0yf z^TtlHl9#Xg$*sxDnRM6`(VZB;4^a(w8M7VakN>OrKhgA`Mp~^wE-QA@^rD$7ePyo2 zS`Nc6Z>ci?ry=P4UCq`Q5R`a8$N3`;i0Kslh70%PBJJeeH2e8z`R*t7AwP46BX8eM zdI`5w?KS)X*9H#8M)^)BSx*N{I>GW0H$m~bBN!mdU}V62avE~aah_9|>SvO22O4Wg zT{x9*FljQ>ku8reQY@zpRIr~t@o-F?uJ#k3wJD^|IYdEivifkg;fH9Zf(c-3oDn$PX%%JfL}2>2)eI!1p0d667rS7Q@vtGWJ^bUv0?mB=13GDB`As zAuhW+@mE-z5GlfX3O<^w#CI`QruGt!7tArOwx>}vev1Y_#N*w0*cm91;E4!0(m!Pb zVOdccjabrIZnsl>28#)wy!n`ViYuMNe*QUEI;OU%QE0t=4n$O0AyTW4;ORkkX-k(r zs_9VGiCk~J2S*yF(p~rkNZtlqgEvJ?mUYv^ZZ#_AG2*^#}-pTP_ z4yHf<4*6WhwSjJ^;|(ev1ius{?B|q=k^o2h@865)$Z`VWa$|w<0O2)4Z&td8Uar$tK(^lEeg0&v}7Ye?0Uj&`C zP6%-ypodUtx}y+(TY$Vx3BNhLFgzvbDyXOZ4x|1&;GHSn=rxf9e+E>1NiDxw-#yvx zST|MW0$v~avr2Spg)pw68_bx`VGvRkQ287cl$3&P)WEr^fsmp_9<#L{vf&lqKTs(O zIPPctzfF=CMoSO64F0qL2$gf4VRlaTAa%t*Oi2oCySD2~q?77lD?Q+&O6vPVN^#-5 zN`B>MHsE6rcKgCKu-m=N3>0W{xw{em;ffghDgO0H&F6LR$|;}rB4cE6qWlTJr#-BD zIT_d5zk;L)?VT%6s>*0Hs^&ghQlfp)2D6K;g~Ek>aPF)OFzV`kzc+(L7XmNiKQj_{ z5CpTbi3rO^^WS41%>O%)%yRQ$81E~7xCDd1W{-+{T_rlq_FlyCF4f%&ED_MEphbGL z$Cyd8E&_}C?bU~ft{vm>kJF4 zIy}$4>HC~NMcls?Nft>R$@pu#6}+}cxqgEs7_zh{@B7mjAOkkx^1I3t5*peA&BG}w zM0T&$yCR!|0AS8B0303wcZwT^3XJ@m{KEY5v8xGyUqM*(`hS62Qi@b2T4+E}2>OO! z0eofttS!M`5Ecu&;g{6Gci>s574mprrMuG?;8K$PPsqZb#ss7#{y+5sVgrDuEqeGu zr$a;Y{s99}`Gr2M+^0Hkaj)9>08p${Fc|({?VOKILOZ5mnp+@ae$^_rgZ|Dx1^g2) zG3g9{3sJ-|9N4W5gS@E>KQnBi0EjErlViztZS2DKfje5QUHdCFYhibcoSvB!+rha| z_&^YB1KNKKFUzIZ$dclk5KkO{g~sGyREUv5%W)|x1jVVcAnE%8_W7n%D|s|)V-9ua z-p~Kg!>a6$i^=Bgb42dEE1oY+6POFPOGBoW35FA+rmsWD{n~Nri^KqQHbv$XB=jH^7-lCP~}7GGm;6I=308 z?o<;dyQ1!Bn;n_lvi_9(-9F^jCCedUY5(mzoiM-VmDKc>3PG%r0Fb?-U4$^qqzcav zj?BtKXvcz^4KCyJJbUwzLvMSulov@EI%LZY@#PJF?&cDg;Y2;<@b82MEmbsxej-n! zj#@--(qae4s)r5SByLGKKgn;?^BmkVyJEDm)GzLJYqc4`G-+SgwrFbNtiM)y3=-lO zR#I_w-9UQvS!}y*pY5_4qh_l=$k3odF4dF5unJfMDPaxdU2VKMpawpHoA&1Gfdi!U z{75S(R-_ECUg)_FEq-rqI^MFX=Kg@L`K%&xR34ozmw0XQ4 z^;2V%k*bk8k%qqE4pBPF)zd2o`Q`w^!w7ECFwHM#4mY*zC*JE0a763ir*q9QxeS|=i(>>AzN{_b!M%fafpBXs#yIzt1HsYi z4>9kL`ARLn*bcsd-D_gHoleFg_n=pzCV9RlOzTAR=3SSpdplGIca}lSc)O-a?>A+; z$Fp9L>GGroL*`agmL|GewpG5EIN5w}cX?-fc(hCJCnby&T&0NY+H!5j4Fj_^;!TtN zmSb*cLdyKD-JQvukfqrd!sy{mg}b|k-z|iDGFd3K7aA0dlIB+fcmFbqeHLSL3O;M= zd1#)$0pl)W*%g2_t3QWddJx!@eha5nH6P0hu7`kGeL(goihM%j#GB~niL|U)PsaVs zUHUU?iY#wjdG`gkQy4e&b>qwDG?I|Be8Xc4nQkbTbBy>#w{+Ogx*VX&ggv)nobFED zxqSTV89cY*ULPA~vJoudy5xEO0R5dg^w#p80-Nq&w`;4Ns}3a$mKK|QxO0xQ*F?uQ zYR`&foo`W!;w0^U#;v@xGdG2{7*)DV*p_1*jm<8)(f{0>G#!p+^#9pql8{P95_#23 zxnfZ|OGUUAhF85lb9jx%WM1gwTlwyJ)a=LW(;MLE?SZARU*XZC>EG=e<}WB`S9SV! z@kftFrA96vr)8)R)!%Mlbk{K);#M4~z!uUoP~h90E(nn4-JK=7Uj#6AVN}`|TUzU; z5M~7~L6>VM_)Xl3;3G}O==(g2w%uJWw~xHYLg%83Z4)w%rlCCEW%&bRDD_}^y#hX4 z@}}CFQ?F{No0@A=F=y)O!HozLZBhpMmhdieSJE}dlkQJhkq)X zi&?%$Gho5)L|}|i7cmN{X=eY(1#B*f^#9Wz|R5 zb4$Vau9g}=t=82rS^TmvX8&Y6(aNnZO})uTd+jlG>aUR+<^s2cBUV?BpiIyfMriBn!A!2Tby=UVSQXf%wBtQTHyNtA48d+K-7Z1>hn(Qt%b|4 zQnI*>dxF@`#h~)=>h{-ZF8<1Vxvlrh5+~;AF1I_&s@}C)GuAAbW!)as<%dmR=1(lM zQHU*`V(Hl-pJ*<$@FhPedfXf3z8G8@=DRWAo-l&-6PvAGon-qUw&>fQH^0^V=&ts~ z9>aEwcFEGV{Kf~FHNNA~CY--Y9{lN1S8ry~Dbz(E{|8sY14_YKw9pvG0cu*phvVV6}kk|Y#U}yK>iftC;7xFgq7QX5A=H?k- zQaIX(P$GK&#c;VDE|&hI{FFG|V{mHcm}Hc8$_ek;bX{ISn%JqTs)Tru3L<0FfA}HH zVLxE5mtRQ5L(_Oxgpbx~^J}{NUM(Yo?Wm2z5?-az_)z|vdhU8H??vX@n{qS>!&+N1_Q zP~j_3qoUcg^z*Kiw6rkHk=olNVNb;dX}O0;D*TLT!#Fe>4}%yWh5?tT{?&Lv~z9WaEfv- z)sN2CcX@L0mvch1g<49+@b+edJ=dT@F1_%Hqw&5c?*0nnxNpTN zdc-6&@s~?;*o@>Q7mm=emZIMKDfa8L{cOvl4P?F>}5;){O>LL24I9{q_UVk!lVxvPMmq;HuNjZx<@{}FBF|Y$cb$` zYzR4V#+Abcn)aDsyU^2p)^h0TqCAEYS*`_>BOxgrl)AFnfc3~Q8QtvY`j{~r;38i~ z#Ue)4zS-BplRLllaW%y#gDFEt-oDfaHjA7s0K^r==x{AjD&Ebrc`P02@U&WVRGcb5xB<;s zW~iuZ3HZgEzOvaR_%+r(H0UcuouWI33d&fCwH^a|S&uoQg3U2 z6SIip3J2%LY@3KHZ6lan)@@^i$l5nW!N7(-oFo)S8SndAxh#}}AMpx&&gbura{YuX%6pZ~d;k1tJ(Bn~nGFdAFF6DOef+B{N~1`D9{F!4Z_cHb?}xigYEhE0XP?+jOnyA~R0p(a1Doup*vO zt%oC=7@D6t!Tl%`#vqpaE#3@{0rR+$Ksn#oE&RHkH(;Q-)vh{K?C@KTh=tL$SWwB2 zKj^s9oAG5Od3gLKG8->|cTU8_Q~1t-@lul8Z}8*)21FFs>6zyu{ampA*r4xln`hA` z`eE}9VG;PNmF4^1E!OsPgOBtgfQ?XtOquB9a)t)-lZL@Hy*`Ar4O2}$9QYFkOPvXo{|$0}d9f|tuRU|tS;L+{xg+g3%}7W_F0@3I zD|Bb{8s@TeenR`w#lrJBa342Xd%L_YTYGMFvTNWgPv6F+TXHx)zlX8Fx1NzFBALg6 zv4LpfLEH64?eGHhkWORxOaSXAHIcm}_dt44Mn-nhWH}}{7!!ecuBwg956R*{dYDm~ zsWx4!*z3?(NOJ+M&k{mLmzIH0#%S(WiCOoIKX8HX*IqBEI%;CaN@Ur7Z`QGBRamBZ zy%}3z`NcUvo##dVTPbNDa0(Y^x~HrEg>{-uTd=&aoN*2l{gGPe3?_rdPngtwcequ~ zEn<0fk7t)$D9}F?Mt@4ttd$sj{C}AH&bTJNwOfjSq7(&0>7q!JqSCtxiXhTOI*Lf| zRUm{SA|OSiNJn}RPU-?ldK500*C;8^LS!kY9-0 z)kbS6!|7DUMi1>x_96$(z8*6_du;rJ;fFhkF_c_X1YwJn@Gyu&oyBR)K6r@_@8>uy zm6rX7FBW$rKL?{u{35V8E*CJU_%Sgto9aHKPauL0ADCa6_@nO^G5&(Y-*>LG=$~{k z5`~FB^pIH}eM%jd=fI}#Y4I7Im|PGzv_=u>H=#z$Er(xlHwGe)dlK@A+VulJ(({5w zi!GEbXb=ObQj=BZiW=|+ptOtqy#P0|eXjjlIv)Wfy9bY{3L+*FD>&Q@2IqS9+)r(r{e>&g!E{hh-Nu}Zsdug{96 zAs_z<26U-}zHAaQ)~+<&g)^>(L$F2E*~_w;%^bf98!Zi!<3q@`cmH<{4Zh!wT`wMg z5~+*5<~3DC+IA`KAaQ?c$E?s2+R%Gl^d*ZCJsF-bb{$^w*!ev^{h zjoHPguQV8ILQfVOR=FX5Q2fOR{?}vx2|w7Pb6m7@svL3alzkQ}94WYz*KcbLU8(=ovW&69W1kZCnY@WS>j{=8OLh zAPRHnUZK{?(z*%!$|__E>r-Xyfbu8XW|K2nw{G2!?SNgyQ$*~(Q9`cS_ErX=0hp`Q z&BVT^*7XWQNxRqc_ARC%J2O#va-pQ1r@61#AjDI{xzl~iS}>tq>U9lrfKGAbR0&xh zWY<@+Fz?9b*?F;X-J%&tGwQd6bQ_e%bZ>Jy)2ic$S4Ln6@`&22@88wEx)5cEC8dqUf1qkFB>vufPw6$7Fm`vZ* z%Hft6a+ULo;kzKA@>ip9(R$DZ4IySmw99DfefQQ>OMF^rp29xhf6zV9t!B~aF>Knz zgyFkNt;q(M?_dWtjzpzBRu)^*&YhFGS{Z*bL2!AXKzk$KAcUHA+^ZvAz#*mZ8Me{7 z|7t?4=Iv%08~wKqjTLcnLR&u)X+{&0;zurZCJp&m^<{^$dMlR~E{HlW1>Q*#{fzIH zPqhY4F?k{^Lm%smRP6_5rdkuyZ1bunpR4Ubn0|K3-}IA55afKwmS=N{blxJX0x`S0 zT0JyDd&Pp&U2nH}t*1nh<-LHb@4yUMdT~EwIu%*YA8GLXtGXAmB^G@j<%FgoA5Hh$ zE8Y77hei>ycJ%i%wQ7R*qB%&jQ4%N z#8_li-YUrtn1``oIiMBPpHs@*x(OUN+_~QL-Li1eamc$q^X^2_UfWB8bYlc_;ib^i zjs%Y;7Kd8e^XWVq9P&T8&-jvDiu)CO1>p&6RJpoTt?i|3X-f(b+&S2=2-~UcU07Jf zI#v==*kK`_Y&G8}>(=wC{94pk!_p>Jx5FR=JZS}F*E7lZ!qsW8&rG*&D9Jq$UQG%R zn@?UCeWC_G8BfpVZnr|ZwRz{x8Tif(@si>>1x^)_6zEuDlg_20iiaVq6}?Cq@uiLK zRAeQ8q<7P+^o_KLiv!ZdUoA}KE1MtzK<3~A2!!U-JriAJmH70;)CIJXX5X?IW@HKV zOQQVyxQlMAGRR1|^15$P7-@pp9KXfDD}2by(=K=1dtKeojRp$gCf#WGRKXPuxF2qOmLS-$8iEw6 z1^#TtW^fT@?|eM5JKO5P!VvJEmnZM_TO9Ypp-ep&t{x^WWp@Y3F*eGdAy|=EKY(6P zOBVUurUykt%5I(X*@i(!03APwYZna!{vIV}v}*#VmTy@Ia@DPnHIQkMDI9lR%YPC% zo$k;mPg+T7l}{KD4OqZ@z(qJODe}VyRsrD1z4#g=Ovf8KIN!0aXt-p$Pe4VkoHwmg z#<6E-xxHQU(z9%o3&^+?HCQJxI)P0~V-|$dA*VmJj70*!Jd#cCVlT>lto?rEThz=j zy1RD*dsH1_qIb%FLyGbcD@Rq4w)b^Cf&3I&KEwTM>-mSA19!2&T%)^wF*AI;(JI}| zp}Dl+Qpz*sU?H_%*snbcchcz~CVg{7_jJHA#Jh4jy;7HX5^!DlU%m{;`{f^VVv{SR z&v=r%0m4N!aQjjm_4`V=_gX<}{m{sK^Fo?~6AA!fw5)GYEThOKx+53XZsfuCR)>%w zVG3G1O3+t}HgSt&QRCxv1F`1n-+|iUYhT||PT-);Z4>s*`=%pQ=6)8Y?iS}?0Vq_d!dwW` zOksiRO6Z{D=x2edF?sjHffAOzeuH;pV1+*Ps9~=V*o=w@NrUNof$J|qqV{k2m^CGP zr)<~L`VS&anB{ZW6Xxld4fi{qt7CIuVg|C;x!(bmIQbizNjwt->UcbSw*wzGU{obsLcr#Us+fW^`jToYxY|MM% z?cfDXkVE@^qUSM6EpLa0;A%NX|uP(LkUNJ$%jEwBmTe>2feOgAIG!X zR}%0CH^qmH_cNt87>tI!r_FGsc+a}id)VCu+j~a#_-*7n;I?DvP}dak6@{CNf|vHv z1XdL-2w+e%W|6heURAL>5NA9hPs+1s+aIFvj`$P|^&5y7e0nL(l$@Sfg^?k|mxo{! z@4phRIHTZsV#$Gn%0?-pNu3+?^9mj*kfB7N;^t>iO#bVDF}~LM(3>?%tH>8 z_8uHOO5!ozTSu%*)d_S>)4ignfH;7}T`};%y&yl{wB5i5N8|2;NpBT(bB$W4w`*mG2*5GghZ?-!hJX zHQ@w4{?VNVR<5r0K+B=ZqT@VTf=__z?;Lf2Fh`yLw>c{3uufSk+K`sI0u>46BD?wq zAI#4kYX|e%?B3R~$yY}bi_RB0o*>(YAW1XN-BDqCY1%4}UiyC8_%wyRY1CI7Ezc6I zU{tnsCFg4)-7DV4yO61b@9LMm|26ZCFQ|xss~YQ!<@T&=30=|j#{UmXWkV>{0k!k7 zxPsD~5zpDU_s2R0&Y$dX#!NC#a$%o9vY1Ii>1adpD+*U)BISwyoY_s3N&JNm=cMlJ z4O9ojQ231&S5GFrdqx82fXYJWD0+XhlrxZNF1gh(fjSJ2&+}%qhgt*2w(QX{AVM(TnQTc&WdaKff|7z= zdn|8L3~5R2JdFLIQ)hjES27J*Ml2S?(d2W=r;0PlvOV# zIrJEaQ4nA{cd+J3UR!q8z%&Y#sTdN;+W?^&!|%_MXh>HIE=qYd^1ENQfdFTnlX{dC zy&uqb*25iHGtsK+%*A&=JJ(1C_&E|VP6^p;gFX>mZB)gc67<_N6pfmopzs12%X2?P8D%~X_9b5Nnt{V9d0*uMh|mWM;;3FCiIvnYO}UW(M`aY1AT9u4yOrO(J&LheMw$Y=vtO*#vG4c&$QpySIb%JDyYW%g&z^J0` zSpb_OqN=k}g>V8b1l;M&?>oH%{F{wfg~ieGya~Xi5Y*3TCH!OyIFR%KpD(ccqe7Yc zcVY;+3S$n%?^>XeRA;&N_|q4l2{kY^4QLyus|crYm}=DVh{j$8VQ&SoIT>dsG#(C< z4tQ5sw|#`SO*+XJo*DT%|0E9&PgvL+=BVBaSz_o_nfGP#ux5|pV&V-*j_mbF1nbyLY(VO<_owt7-5l8^^M09oI0Dl1*ZN0eWO9 zzVCc>?iI7cNjczux6sujO?Zx+mjga<7dCbfSdZk)G<{v8|k_fN-(MQW+O-ek%2Fr zh$vQ03oNb&2$joIkx9j3)$^+ng01^}hF(}BDYMdcxQ^{)2#bsIr}Ko%x+pAXUj2R9 z>pXQ|0?1_=_h-UaLC&RnK%kJ{X87K?Yd1k{t=MyYvdMsOgLciFTtUv`;)mVWy>l6+ zf1{{gRAfLuAK=bg(KAPg zHEMi9ogkWP!FyKX{EY4JchpbLlPGwnAI+&1VeOdF78WWDOQ`gV>B_@dVLK*_T|6Cb zvMOp7M@yTbCgdt=1E|1@7RU}W%psXrxyOfyBFXNnXV}mG>`Z}&ERN4UKbeYAlV%eT~Z2f}Iv%W<$K_Vi7YC8}1A_Q!3%yZEus8vjKgx70| zkZD`yvkn{1eVDqeb%@{z6RjD;~ejM^r(NwwO~Z@bTsM)m%<VcfkyegY7)s&|mOL{SG$p!bkrH7+TMC+rJx zJ5>OXx+@4f%|h?%^o(4F9K4t4NWMXARK9zGuVUPqZTf{-EnMt5U~P|}pmLLwDpffR zrXoZcH4HLN1nDd7ypZ@;cY> zd=|$k;<5386vy8x2eXR0$W*(fQ5d@>CUcm*;Y$t?-(4v|)^zpqY~Tf{*GGWNiFgFS z6N4=_MeDw?q79)7iRA?K12&aMpZ~TYm5bm}z{XWPqQ&_3xL?bO1QiV$XN=ypf^g;I zd6kR86yZk-qdYpxoW~zoMhfk53X#U6t<<{LzuUX`pBtw7=KN`)?Pq^q-J+=Y@73qt z{JwfwJZeDcchj%E4C)_L&dMC0``H3QPpon3cctfF5K#M5cAay-%g(1#^|w?iccuvE zDSU4e`FmdIpYtBKX))SEu=>Bt`tJ(>6CA@~@6Kg7w+e{THyOd`(TwWD(P_(FuT5MB9QEyw$(e%A+KUxDQJH3<9B zzblil`~TC=6_Q7Bn{`vH{#v)Dj>`s0ojlU8TwOI2aC)5Izwcj%yI|YnH1?fz$O=q% zRlS}XDG${@kNWFpN!0LY^0v(i41XZ+P}h!w*AkMSh`vW0zj$zI{}d|~wVfA;#!WKu ziP{BykHa~*OKIkT!NX81>h3H|F>jQyWu-2WWw zv-$fw_J5AWwCn!)9nC+-p3X^$YD#4bl7!v)ZyorhBtyy4mMYOBig3_J*IxJTi)fP0 z*#DX6ZMi{B6m8qTAoMA*^0d8C=L@kX`=87l<`2vD7uYNf;7PSjMj1|z1|!Q>lTB>4 zF@a}+&S$2sBcjKzb>#B9yTA#h>VwX$#)JT#IE@mYi`ivQrl0vhmsZT$S6=tS?eC@f z*b0+z=*4%gnY-6l8(^u8?Keg$9oPbbu7Qg5AJ>{P+brq`;?3|nBYB_$9;oNlNtTRp z(1%KD+GJE82@CdiC=>*F8%tz$dSA@m>TNegVDefGai*SiOI;E8mPlOl1C*DBqc~N@ z?hFYNJa(3RNDpcbFk%` zffhI4ko3)qFnBGfdM>!j1U*>vax;>W>)l+gaX%z-3IE$ZH9mw1{C+`OLH`^J2owE% zY>e&ir<@TOtMdEhR-_iby6av3?2)IfRergkY8|17vI}_FF{%fr>BmY~rR~*?VN{?hlW*>Jff12oIJeu>?4~W_SWVKlUGv71rtzN# zmgQZtT@`+!u0gd5(;o|2EfC_cf%#ps%Yc)wR5V%j0T=oC-qi@|d6GnJm2`LYDAk=C z8tv)kLMfU%urpetl@<}O-5oFRxhaWHIKUqcVVe_&ijl~A>t}1r_wg(ZcN)j#cP*Rh zoAt%&qXt(eZC0h-Dx1uQ>t39oE>oNWYJs3?!U$vD573BtKsT>J8Qb29zCoLV;jJ_w zFR*(oF*<1~CH?+}^vsSULUUn~>A@wsql>Hun%BBhodZa<7ziT@*epI8Y0>4}SN2~)(&m{PAHb>0 zzDnTK3=}cP&A+{s{|znPg3!K8?q_>k{&h^#`p>Z&|2n2o@cUS_?BCB=;nZbO&F7$3 zc=mg|B$Pf=Sq)4=8Hp1KGm7IamP3oK@(k#&c7Bgc;2_t_0Yw1%b8^)F?~R7-zcm^u z51TrDQcCOL$keL5lF3&ozJ;BjQxInSe{~AuUV7?j7aEF;bR+P0P!r-7HX9|ix|P6h zB{yNLq0#KyfMk``AVRDHd42Ckc5joB&bgccee_O^q7Z4$xa3~*#hn{g!N!I|BZlfx zgjeI%zq*Hd1`|rLp1|N>$t720vKH=rmh}`&o@ib6aID;8ts9&AY&#)CLZMH1GqvB< zPW^5`QN9$^@gKbe-jf*2zX{+T#cAh~X?LELP>|z^i(I$hP^r8l6f{2i$*Bwmck>Xo z@c6cbtjg+wiM}s9L%0d=32NnIZZc8+8C~5H&X>2_a(nbizxxj;9)LPE`_n`FhxL@y zrP|8g|L{zEOjnNrdJB-iMSH_2jRh|Gah1>;XmFwEgE#Wk_?bNJC#HHbn+C(qw4;Gv0@tEC>xF zEeO|W`}3y#8xrMb8LL*BxQ#Z`U<;STi}f=4-X`VOMAw~+1GC8E_F?~Q;Jc_~DJ>k@ z{s!bh3l+YJ+KSthdL;~ztMjX~54I?G82D!E@F}Yv{i#XMWG3uqits4R26K2_ug1M% zRU1p=wjH2y+a_}ctWbU~dESEG%*02c;0wLTOR?mjt@@|vJ#f450%w)n3RnN6uZ+fotpv3+Z(s$C8jOp{MiND z0znyioM;tiNYJB)|F2uZ%?x%Go#B+6kYYrA25C81o4jRes zuT8Pl#`?el2&gX>vQwEAox=9&w?gOm^-j3bR=Eyau2l|CPmJ@cuor}aG~e)_50^YM zPjjLwH4Yus$JY_aG~XoY#!t3+<0&V-ixv!bB=rL}79FipoTiSZ^ZYDL>le$)>=o}# zf$7^#Z?B6kFF`X){dGulNc2MNe&axJ|{z9eM5~t_2wne|Gneta; z+66fVdU4`XYoDB=lvDH8RNdYfbXPwfte8i^s-_J?mOYW;7f$M(Q8M&@6edeWB{nS& zwKNO@#21$FQCMaLXlWw4F3X&z_e;KfCV>Zk6wz~1xE08QE0H;v2{bE|#EGFixgP-X zmSFO>=Em)Smk*$KRF79S4~>NvCD51!PkB2^j>G)~vh{$BAsb4z#j6~;w)HOA$rog& zq8fL$%(_f$SYx8jN7rU=_Z+-56f3-O#k-$^NZ~_)mJ$4`Yx+m3`73!1M{*o&f`zed zulBfm$w_B(#dDHsgw_T6bmNMGA?xkeuA#PWG%pZ%bl_Fc=D?e4Ayro_GNpC9Q&%Q{#--1qd^ zuT8Lr?+rGc{SXVPKt|{3GN*0~7RijOmPV+!vOnA7IyB78aPk_Xi253LfMM0(Fc=_x z*nKdKl(jeQepBEFjS~}E#zo1wExZ$ina29PYxdO`PqzDN!RwNF3 zx)_iV@^E52Wu%_>)1}&mC%u@){naH1U%}pbaKgQ6#>PvVt!M8w1z0g^u`48Q?>mm$ zzLy_%3Z)dU8O=C+0$|qSH?_j*{aw9r+lm;_{%`j>_I>JqHCBxN zNjXoSW}vtHer8ebe%zkt&sv1;mqkyBQAbZP)O;Ap84PY17uhwPhWtqt|EqhA6gz@R zHMW~K7vd7YSI+Z*%K9K?x%*bk{HQr4PQKU|!DjU7=Om(RqDyk~agn5}f|Cx9ZuV6^ zp}6=u<%lX@TR+`#%l_A@a7M}#A^qe9GZXTsZR;`in}ST<4&`YM-dA_1rhGq1j%z%W zrOoVqqlppFjOMTz3c@c1&L$p}Sj!f#mxiSER@y@yFvShlJJl+C`farZ*!37TQ%L`SW8f<&eNNSUc9T= zu}hTt@rFVZajItxr-`_>GmOgZ4xJiVHZvbP?|{d8+HeG+vLJMfOg3Xaa_6Gj@e zchNWND0sig-VRAct&EU*jMS)xTouT|Hrkp>A9686#(l&ZpFe)s!HVCv@G)zS+v`y? zt;tMigFJgYGU^T14N5{b+`3Pg^>|jp4GQhv9O`C`b)) zieJc%ouGHxpo{5S_S^*{JhssMHL5muwy#VFZadb9jD)W3wic87Ow$Jg&K^SoaRxnM zxOryZ6y`4GIqkwo^g5p6{I&9jtmxB2c7jX_Bl^Q~k7G>joxf&M=%-UEAO@*!8!;;1 zuZH%1tzn!`lx3w6e(Af%sVmgnr|bkb*&)t4uUH0lt$6%-UYYIxgmQSozdjx zXS6vk`8s$HifwBafR*6&p7oC;M~zQ!H9>HG%MhbEl@cw699xS5A1c-aN9DI~m~KDg zYj7xpR1dw`tggXcG)6q&&vz+m@@B2+Y=Ip7%${S%G@6@A`@W5kTQg>sKWs>e*IY=o z`AWWbDv~S*gb?CBjB7J4dA8uw4rUfCRd@rM4;@1s<4W;E*ayTIM?dW;pAf?m{1K{F zVolPZ0}>>UPhmOlP_dAXn6*mm(u7gWEP8!~4^Er+F6@l6Hp(sexrP(M8wxEZzOFE1 z=T^L}o*MLv17^-#kcd{V3R)+m(F`BlF3#zqOl^>}K-2iRzT#maosJ7M1 zqg3~HjQUO?9~6+7F2t{lWFdA@OWQafQQ1!=M(`n6i)QyJ-RPH5#_17RW{O@gr%==f zP+z>S$w}xnhJoEwNYHj|wn;b!rWVI`A3KD*yYHzFukLjVwYk2uuG-vJj9RDh{oXjF zK6Lp8bK}L9^@F>yOiyAPvnh4xZxROIHw}%`r1g7U zrlZ@A4Hoy@P%{RyRIAW8AbMA-ztjK?nbK}!h5mZtF!7ECGcq;^W%_9^eRTDnxjNHiYjHWAno0u{OW6UJ!_n5lHRJgBQ zJ>G!vL1knb*Deyd=$e#1wB@#QrWl_a5_G2VNpjxmQlbu=%lqhjgl(RiB4#xlCAnUm zZ19rYP`0(&v6Bfdv!Y+s|S{*-TZNW!a1v>9P{H_FJX}lY1jQqj)*i) zCrh{KqB!Fx=kd}I|7EYXHuS!dI9I!6KD#rry|mcj@r^hKd@nP-tVjs|4vs_TXxnBq zZ#8EIebKXg;lM1^k(Wos^p|`VB{6JRMo3DyyhOLo+?tm)z2wgReuYpfGngBwFwias zNAnlvN0EE$+<(lAF}ISIWa5V25FPZl=BFgKl2ZM;F|Y)5wr@ z`X)9z1}|UsXoJduVW@LLLrIC0ycI1W^0-gTS5=%re#CK~xcpCb zdjFsn8a}Y9Wi&1kOk6V9IY=(hiCdA9x99f7xiwC=M{eG9KyW*j8xZlmpIRCp80!&2 zD>X$8g-Oe;s$x$N0on0eC0cY7PG708I*-$V=KRG<4U&9&MEHs+hp z9|&8N1R_o03u!)GS0AQ~Tzmh)y(Q9qnSpj8#kK1*0NMa!li(EN(|MIg>&Ji+BuZj{ zoCQ*YLyhOHY(eXhYnXNUT9cCkXQ{ScSvNwTpDE3=oVVK0>+tp0=WS=Cfrsh+jT1?tomr1Hx78a&j%FCDST-ZNCf>t&G&%Km)#jRPs4LxG<>+0|i8^h7b)>LYEwJ(x zBGoKRia+E3k&VJ;iLIpKk*b&O8*DpDg~8LFUPF^s;TD;Ib`&w$IbeNB_wk9KLdI^I z?^fG44CN1=j465UrIK=Q-k+(`!zDGG*tBQN=O0#~6V_zcEIohzI*XN)2=(U<2m|s-GpH=B&0;l%T7D&sW*t=-|$!q zRTI}LkU@KEpMLL)76$DCOtP#&81F&8i}VAAX}O6=l?w6OA`_bL`C12UCWXRnn@U%0 znV%$4=N#kq0uGd*6lpu4^8! zb2}JXrn<*tjS5XDo*a!Eo)d|_oh>L;y#BVS{%UDMWt-n&QQj(M6z-r)b0Sv$pLLpH z1BR7R_&pwGd-6DP#p45FpplPqud004d(5vJm7j?Pt_~{MGn%LOoz@_x)9VRE7LbZE zKVUo~7#tPP&!t}F_Fya*d9TJD8XL%lp71n%YJ5s>$keS@Y3)MgPYPu>JLdo*C{^=P z;6S|saqu(x3kSG$sN=AatD3N7DM3O*KvneB%P!r3GrJFaoGb5&xW7Ge*g#;mOQ7m^(n*N_K-Gjkt z3J>}34=)_#yUR%U5h3mJbzzP#N-1r13xR8mfVNV@g5j5<8^!`C-Lq^D=jg=6{P~s* z&k3LG_q&lpe=CiItdYXs#NAGgBg0jP_8H(lfFN$ipsE>xY+2R>c_4y`G@)6^1sMXDRAv@iJ)$~UrJ;{Fa zBq!zGZ}hkdA^cX0l08^1Gb!v>q%A)cnHB<;2RC8V>vz9^218#gyX#~0aJv0kx`x5y z9Z%9LbZWBY+qeYRc<-w+5@lfv{NuV8*Z5m>8-Qv=t)6Zp)?#|{WNqekB6{Bq>`64B z_XB%|rutk3|7#`RkKjb)c*V<`+su6`d8QIcBN*j3e?#uLQX$!?WNh74^K z6z`xp_1F&TCY<(=Bl}5Diuo}7qr3X4r#be`n!Ekb4Uk8A>wE9QXgC@ga)3PTBrsY0 z3ruKSWMUducp0a^%p-6OQ%|fFnwvJtmYt?anN>B#{{xcr!AUb5L-72VEA)*L?9Q$9 zt#OgRNJdj(%o?u6o}+?(7b#at^pb>A1s1#f_^a%-*jye#GEFfzHHLi6u}lf6ZYP?^ z<3f6JV(KsM@8+#yhanv;H1egob4PecurYK~AA5qX(RH+TXwx;_6|15|%7xs>fma3? zR~yu0)PrjCpMmI9&4kcYjQ#{O{=;zP!6H7#VXlD*F|<#UjEa>tmL?kIe}x}B0d4D6@Ra`Js z4D}b7WL{rxqYLt6cvH7NRCJ>r+FoIn`ET*C41x8|UT+oSoufV&!_RvuNA}Xo%v4-)o3CThX$*7vNMgoEvF*p z6q()ZXwrJOvq#dT6aFK9pX+@0B+IkVFSj}lY$-Tgzi%NyDCRiI#Ua0SQG#eI;0tj> z)T5)ZA$i%!W&D_kvi(8}Jk%U6+%Ls8;G2Pb)<;IIh*E3?(S{6uiHtB`b%wdd8R>Ul z0$!p&oIl7+JBcxJ!^>%KjGmyr!g6Ax84;f4ALPxwSd%$ikP{H}tm*9#IdyE(VzK-i zLTuWm2ms1ImWamMu9>1sjQ6teXL9$#$j>ymc;5waursK!f^aH!C~$H2qLtvebAsBS z%TyXi%;q%m#Z1s&BHg#98Ap-)g*X}tdL0gc&mJQXBP9a1E5&)Oh`k7*x+M>+d)Xvo zSA_%aXj08wi0phUCyx;?JEI+sE`YJumYf}k>@{sNL6H3IJK~C)*FBqD>X#Z@fe9vc zx~(JL>BxF-Rkf?^Yn=z>{F-jQrJL?n`am^Q*rEyqX_&=f?y&2iR<4@320>OcJ66Vc z#SvR^{DHLxx27`AoRzSWEMbkVeTqecX;0isu=4#y@f)6g{jO+0Y3|w>R-teA0uMv5 zvKqbn1oUS)cS6a7v9BD3wB3u{liShu6Q9k~DUS|r`aOYqyBDa{J0jC~Mme0KYiqs` z2OVn+g5JnpA?_Qb(XCol?Q)@_pQ}lPs&UX&Ij-nF=7UVPTRAKuJ?NtKQ3|RZ9BQ2d zc`FDl=2&iNYHU7i?3OF*-621QhI>D0&$xBzIH-7+A1ykOlyU271r9_SW6&A53ON3T zu`ABbeP(wWyeX&@!PAWcVbpc4k&IApW*%OZnpi$aDaH@yMUI)=#Vwf21m)YOuaqfy zj$7fSmNQ2x6z!jk2B}{O^QQ93+hbpxFNlMi3g+!d_nMgOzVb;A!@mjhKKC-Xx*!u0 z%qwvgJ*vq#yi(pc)PFr>m?k|)5uKCCMmI-5|BttxSFznkFW*Mh>4;|fqCt2zSJfhD z>%+P>vWUG~0a@LM_KmQl9V}fy{t__bC{!FCIbrj?l(SdGFNd5`NRRIWS{~B_Q@@MY zP1iKI6cL<3>3b@Vxo=B)e%xN3Wt+A7LFC%xz*o+-a_0)a>JkdBy*z6q|7~J&Fq!Nr z3rWYMCPRV%Yeq*vTyo9iHY|+RH{g7x?$_qq(yM`Gmg5Cgn%#Tr8a=ou-$wNlkxP7v>w9OVQ`oEar%l z@JdJ{f710TvRj+>7IrTnus6YE%>>eu34pra1t!{h4O-!c5iL4~m_Dk4n2EgoQwciY zdd}1_y%Hy;brkug+kH1>Nw(%D+p6n{T0kJGZkA8)pU5}~hr6aVr>Lf@3Ls@WR)y&+K#cY0`h5qYf1^sgAKBx&QLR{BK(*ouQB>jpK0`umWqDO^> zQG}>i{Cs?iiU!AJ-xR(%sg_&+6H8SimC2}$+qSVYoP}Pfc{n;dMx4lB1r_=q2&%)I z|7#Q}BmVC&OEC<-fmTiRNwLP+%#*tYH0%GJ1FugbwkBDEtN#n48hl&Zh7;ML0N&ZS z_r;AjX(=>;FDcZAWOn^e()>sXed@Dj^nW97JAdC)7*RoZ7+paq2PLf{#nYjN#rLQG z)fhCcC>!e-0TzNfj8cTdMMCZEOCOF{x_{c`*(HFAN(10RkRfvAz%Hct#Z0oGF7?*E zVZ&kLVbdMRqE9b6sGXkef<705UMc70bpZIK9mNwW%KQy!hSP;vz!$rmZq8yP`{L5C~F=}xEM)uxSpW)ZzjNH2XEKEG{rEKl4&b+q+H*)ay%>-N|I1msn%D0{9K&| zSZ?Bti@Au^;WlqmiT=7>tdDraIOxRxK%U3Fx#o4)8LzwDH01Zl2~8~Hv5szS7%e4N z@@-2hdQvUMIS`=phy6il_-@xPdz9>6364>-)-z^3BqI*?+u{&YS1JKY31ctr& z2Bri93V}RS9x5NjOTdZhCKYo21vj3Y8$IqAgClup@W&nF3WrafL!F+BWHlV371KLXrfq1|}>9dTkX$s(pz0HUdAOYpg@gGnUxMRb~L4X^ao( z>VH}I{ciL*>#4!-R$)2ifW>|JA+znh-Y~fU)Vs8_UPgFb3i7AeJk$_?l{T6({}mw2 z+^V0e@lcrO<0XtXd~{%-qy#XtD0?v`q8RGkFi7zNThHQNwOeQQ3J^4+l1mgpgQ(o? zep79~F0y+gf3o!5ZXFOF>RWdaj{xuX*T12J01!T<`--M!>ms8tt!_O0Xo^fQLnG8} zQVPm0(&OH{d&!C@`|cFDF=6AmylmV9RV-Hhet8-4X)pA;psqSs@4<2dWc{=;jd6m? z8ie>6fbPPYFIuKN0defLUBFfYGlboC{?eMcYNVf!aNeiG%~#>`3>}*XD0d*CcEXi% zA(T7KskImI@}3X#t<`sNt?FU>caQIw(Z>UYrmLFYq^+#D| zY!ADe$&eC05e@nyKxpLN^j?Rd>(Ea?;sDJg0|m4JWP`iT`5>`r_M>IrLD1qcecbN% zr@*6y;QV%+0#~BCV_*!H6~)wS`%{El@_oh7h#{)fJ;;DDyc?eYfjZ?s&f(;r=?t7p z5kS@)u+tveZ^tjzx@>of*KdKz>WGQ=5*MmJFG?0zPwe&Fp&_%SZvo`U2eWC6TM`3V zQzi9lE=bh!V3Gaa%4n!<)%w_;kV^ z@sarrWGMt>fRwvF<76JPbM#h(MXWmChjSZwx{me3r@n^N>JirWOYUCc%mA(1GcEEN zK@UY%NZNXjr6Un6*X$Dsv#Sm^->2y=_}Gh0eM5;}om8RrSF<2W=odElfY5HG1f}n+ z@Og&5pQqj>vuf8Y9uoaBttC+BG}l%OkmmIsE7=vAy}JS);0@^va2m(8*%UMa>a&@H zO}9MWm(w^R%w>sR>EX_{fqKWTH&~4uA{!wS6(+8tVoiW2JdPTx#2!s8KX!W{*A16% zsYzoi=rSLWG4vyDVe-e3$x`60*4klD57wvn%G^9-zt&Q_ z7V~gBL|*;GVZ4`prwX(099O6dz+IbS#z*SRlZzfiX^~;>L$LL8PtXq=C(d6pj+IC& zNv#{n54R1>=~Rk>?(d@lxt4fqHdkb8SBqsFFtOi0%N!1@k2h>=3YY>!nqMTfx(gob ziy1Wy@>J-EH6(BiE8o5%M`-Jr-k9sBhCN+iwEa`vZVvUUV(3Dn{iXb^eZZ1+m)xmr zbXg?CIYQ|rof+yugrFQ%3ZE>_+ZA`5Trp@};4JP22i8m|XxLUvlv*>)d-rtTvdP`m zRSvNzFUdPl!DYGcj((~Uk=vf{bRB-cfWf?>8Bp|jk$=v3mM)*-^-%w=E)7X9wm0iu zJ=)nfDjbOKwZX2s0!!rDVfmxYsI|d7z}=Dlqh``FdgU|TQAt~P<#kYf4WW$>N#V0|u{AVRB02AVw0tqIqgYSk zF%w2@Cai3wcexV39NJT`IxSS{{S|=TPlYRo7gdF-sn#9Kilz5VD3DChO_Wc%CH=|w z*k|^_!76+EG2#mv+0ynr9z=?Ui_%(;S8g(0kdY#XFekkdX3GOHuUxIGiM@kdZvn$mf+SfNQh01bsvD!x8HwbD%4Q_4? z=MJ}>-DE7&UgVqBxrJ2~-C2*S+P>`eebVNE5*VE|T#Zf;CG8hI|Z`dOCj^bB6T3+hkXGXCiXKCwy z4K(h}^+#6EMlC)EG#x9|M-9(c$Mg(aA5xIpuI5z8*=(lY2RxiJS~LMXkfX!voj!Ag zqS#@1*A)Q#&_jU<$bJ1olXhm^PXag!n#!zLrw)~rW( z=Y=dbVyU(8Zl-w>wyzJF>$*Q%LGO94Pfv17uM0z|Dkkz5k8sYRd)q_x%ml^$hb!tZ z;eq6)ZNy&lu=wBt&iz!l1HzS;Yx#IGAj-C0VdmgkWOHwHPfe(DRJMU>XMCrlbsToE zd5`Tmv|$xvcB)6p<};kY8gKWk99eg7dXrh=t7nr525)sjBp?$+0x}YA1t-Zt13Et% zTg}>ZUHAjRke^^6><8Vm9#xk>o_Os)nH z-bV(Pe)JCt(isw}-c|mHcizul!q;oeZmS+Zh46Ko%pPB!1h?Tadm)B)>a$Cv2~HcF%T? zb=57K@uh*t-hN)|N`!bq&KZ{dFbkoQn0l_}xcOd6KU2xlF!bV$9Ih<}oXVY8zWlSE zhm9n%Mz_|w@5k*LAocb`qP}jovQn8?nX1VC;$MhczK6<|YTOV#87>{U;eFIl0k=j^ z#MN9q8m~ACg+-~Z7#3vE|N61BojD8L`cCHX;)a}))8c2#(T#1PGxK8T-a=Ev+A7HZ zNyu95q0^?&F8i?A5-YVcIy_X9k+{~$p6FIdC4t#614K`i0?tNyQdTQN5Xlh|bW$kf zr03EdE4-o4P}RnlFK#z7WzsEI&&zEZt2L^8^9n*%M9b%SJJjSfoL{q$ZnB^>@8;c~48pIsN7frN7>(}sGLiiaHI!d1X z>ld4cg$%1d;=*8cwdDdfz8XA=FC4eU7)3_bT?fThlZ5C9DIt=1Vd|m}HM;Lk`1~}k z89xtL6|#qU{7Zr4TMKIJwe)vO?N^`s6ryS7#qz?Ob;YomVH-vZhm5*rMeZoyoc*Hr#;5Qadh&7gSVUrUs8tk&T1a)VZQN2-rke@+@VSGqMQFPZ z*$J7{g!FYZD(FfQJN4uJfrm#JmBMaIb94a24#%B3fz&R`+!XWMZPE~T@*GFnsfHh^ zEh1k9l4Ghfp*K%ZMcd}Y)G4-TjjF?)6Kw_F-p?Ysv=mCuK(DG}+`kKH>-dv+*>4{QORhtHKDWaV52-8 z_mk|pPBV;8;);ed>`Ghv}Xh7kV5!o#>Od={$8S%nNr;<;5fcwg7e4(=G^lp z>cDLrJ$4Rr6kDcTkU+1XfhnvZPQEE>zQ{+&u?dX*-jA;qNR{lGV|j$}PnX^EbtI*xqXcaa)6|UTc_VE@tcC9`A0HdQL2; z$c)*Z&3ta98a<_}Fw%-hEj8Z7n;v%B;;q6EQ~CWSnsJv11TEw13*rvra>$~RP%ZAI z_suB&oS0{Qg{G}J-L}%bwjaCsqd&~mE)&1CR>&SHaDV4QEst+8tTIzNIwA)_$e0(7 z9aSyZelyN1Ou{{1ek|qB)f*ItMAZ7m+QzN(SG!tw&BC2!sRp!6YjN2Z00ajKyM!#Mc1>vUxlz4Z z2`5i^B-|3^9^Fn#BQw=VO6Cz;)e4pO*2P@z9Ome7CN&Iibj8C84=0eg)a24M+9wO? z&_*BFS{-V9ZYH#rBV1vx3rmlxwyh*kJWL7;4{56=+Oi&N}NbD7%$S2@qKVQUQi`* zNSR@Odbj*y)-7!R=6?6pEOR|aQr$hQyStIVT0eZ-kkZ*Dd>%(d9vRSd4!NtssYDfrFL);`OQb(2|Sfjdcq3D z-=Ig^>4@saO2(Pb!Tb6xKF&kF>ZY4pXN#{xff^;xQ^>`eysOV*-(NVhP2O3yIkCxJp+HyE3JKT(QAMgkFbO^y&5VuVjaE0$_qB?2C)n}@5 z+P!nQwVYb=f(_t)Fzm-jRnlAB%>7OMo@n4`I6}w(9S&;hzkY^YPNwSKYx(o`_|L6u zuEgY;v`>MmS7%AWI&5nAbh>GoZ8kg@zaNEH&Q|FY9s2Bxu1DGrVK0p$?~WtiRZYXi zd#@9umaI#)Q=VcSJ6~J7j%V1lmll@vfp0z7t@C5Z%97qAgeI$e8GdkEyB^aHy?^mq z%^z5wkd7ebAtn6&^t0!GnB`p;ykaKgEewRK|Ds~~LJIm?N=F#W7VbW>0#5jF@XfI+ z#?e}IAVA}rnGm2w2ck3NurtvEI|rx7&9(;gE5^%4As-#kk8F`2im2ES^cSu;MRSo* z2((u6vr?MmlO0u9_m3;|K3TTUn51#;aB0%pvlU*niq43kN5C2VUJ?^2e0~h5%k|IN zVUJvYN!44y?-gS;^Bxn@T>89DQ1>u_&><{V>Ia&HHix?1Ldd^rQm&oO{d_SaqXdWU zS^ww0>;51-GX{GF+wPJ+&i>30Ch&Tg{rA2sPk_{H1-S~{FAzz67pWl6RVcO(g z1XHDYmmh3+|E$VtmW~FfLxsj&sfJ{C$qaMgJM=?5hnvZ1?xtXHG!LW~MPo9hb*A#A zTwXU;M0u>F3VGf-nuw4R;Qu^!!L%Sy#KhlakKa8ytmSPDh=|w$;cM(0_TKZLA7^Pe zPQ4@gt~g7z!>)FINz~R3gk0>IM0#pYjp>d1cZ2eRxTjaeaZX&%xd|!usTRq)LvAzz zDqBBbg4}3?)Ku~={<0?c2%)V1Pj%-R*3_1^;cXCtD4mGtQL&&DMO36IAv8S(!4QHd z($45n1OrG>B#DH61SROu1citcK>?K@2I-1X6r>k}^xg$RF%V{LP?&RO=DOy`_hY{O zkL+;mwbx#IvIc)EG`%POU8#q099zHCds;x7VKZDYF ztOU_#{7IWD*|Irl8#nfs!y>l#+QFwrpR>{z-dpB~m8UO(w?!TftA1#M2Piy5?3ve< z@9OSflneyhY=R81RA`~?z+ZG~%wRKk8CQ@E&mMm2kw+B?oPWn@{Yl1`PXkWE!XEWWy-oGr=hM&r(X*1xpcY<*sVF{?O&dP( zi}n6p)Z+Blk#xg})|mbY>BdiA0@N~kj>M{vPphb_A3d2{wZ1U78Fa(Tf4Vi0#d6j+ zLD#`)cTiwmUX3@K;6^)`Zd=}Lr;OA1v5q#ih3JXjZpCdaooZ$RJlaAu$&0-LW6`_k zviZV*DuUs`L|!#uNlU>SNOdhb=yl_VT5i%Hf|&vm$1IGgV*R|;91Crw*$b7Dz5pO2 ze~(g6AIT!tN<;FO08xYV@jCz*FO1xF7b+H3=HP$e3l`?^Ls%Km_e**D+9z3x&%OYIv#F*l9+~lFAuN|O9%Z22@L=BPXH`% z1R~>~-E3$UJ29-3H`GMh;#$-03X-o*_rRDBj8%6l>9R8cm5?U#fhw%ZeTtT}K@yj# zJV-VjKq`zv?OBGM!@jL5(N|loN6bO)@w{JV-dhx91gMutqnOKIpO*(dP;-x`W3;}| z&~6}M;-_h^^i$0QWz@81I}nF+Nwf;NpH)46g*zTU-5*K#NoRvj z!yK*6Y74)yTfmG&5>Fi9ZzG`$l;$}y94*{QUxJh>Ks=4(B>)>!=C#)hDoHWK(*$*{ z>ZxYm^+i}8_IR#ITi8`aDtT?+$5f_NmtGWJ+Y`N+)KxV#o~GVRBAQ*gJ9mR1H7SS` zHR$b#TG6(FZTNACb;M|aw2xv>XSEa%i*xcU_$e=fC(n-F>yAtr@Sw*DT+x=SozV3O za>3}K=F!i@jnh?u;+w+*o(Ksak*zbh+$4Jy-BHweu?IAS)NfiDW8d-0o%>e$?z{nN z#Npm(4Jx(ch_bP%r%Tra%S!wc(IjF<=*TT5nV^!QY2M=aAoi%YQglrs2%VaF6sn#f zYR+czGzvFU^Tg;YsY(r{B1Sy6O7M0*9pi@(`u-G1;Fa5kV3GgdF-# zQ(_WaMpw7K!F-fb34@K-2w{*hP&Kq+T+^M_7ja_|LSbpq)d6I_5&)cMDT731Sps%@KL{ zCna#93oVVAnMf{NZNv^#?0I7?K}mg!C1&SVGE;2FUFORH~UpI79ps^``yM%w(n^1 zwd0fO!T}DqZGRoup1SH$hnH60yVTlT+(5L4zUOdwtYmAtrRPjhkgq_@RBIuK9je-3 zZ4{Jm2&5HOXa@x-HE1UZVa*?AU_B}5GMxre+FRO)zP6z1=aggPgZ@VDt=LQ9dy?*k z%H?TSxi`OB$GhJ-_2}F!r<8E`rz6pWcbw8Zh&&rJKA&`8EP4cZGKDsDWg&h0j#;8U zq+v1{aY%=Gdh9lxF|%k_tw>90?B*;>mzh`tN{$u_PM{`7Ea21i=WgGtuW?Vyi-ucA zEyD+YeiHy|iDC6^Xzk&d9imy+c;nA+gY@u|)~wy9tDD7<*Pf@PrGdGsm9PDK6Rk^* zN)JA7P8XF?k&mu9l4R_Ok;@mI#^H)|2mQ~EI5HP*wQxIfq2yB6$BecnKFd_fpmJ)y*W;I%&`xBk(DX|jxQ}|2<*`c-$Z1;BI1V-t_yIkfW+!b&yd0mkM)5eru=u2xL}!2qHJnT>~Kp==+W9 zcaeGw78za{8JEfStE0DVv)xRN)VHwn%6pWpoI*|&4EsV=FXn5$7N^{uSmke_gML3n z7~KjG2P{$2|55{}{9X(0!A~hr%844TqW!ZadLn%gwzuK76ygy=ZZOL+{}L7xS({>tU3(driae z&tw=NH1@rGd{IveOG)%NiS9e+Xt8ifMLnlB!B!iQ2MkRr07yesB$QpTZ5lS))Ss1h ze_Fx0cA_XV{+8uH%3X(r1RMSjitiuw-VGJS+OyM&M3I{l64=(v8|kFs)+aQjj^5I$ z=cyK$nMO*{jx@Q{U@6?1=@U3v-O>;dlO!9#{(`k|M?+!1z%8r~6dod4+$RMaZ$Lji z!*po0V?Q6vvMcW)7q#`CJNAkrdf8Tb&xgI)FDyPzlx7x6e0qK%e^p8PykWn0?F-uo zb^+ctGp2sdB_<*A*KF@${fN*u}>0Po}NQF`0rEDkNME~xjtoIk2L+S>~*+6hBPuh>7^IZbZi zxd?6Pp0+3@zcPRAd~;O6`i|m6gcr-=#31Kw3yV41u4>qX%~`O=>H7GqnEMC0&2#sQ z;=geT(6;-*@}FoCVq0jK{tzh@Q^SH_^uhzBLh(JsjT5qaye< zsY9|PIIPgjzC8RIOe?cO8{~0qW-T+tH{R@RF~9Q^``tyEY>o+PFqLEWDEvy7_3bl9 z4aT%??4KHS<8Xf$I^|#U%^>PY6xDJzrGusV$0n&JGazC}7Tl27!mi1kE65Y z%@dM=|tE`+*&6XiKQQysg)+TWU`FPJ~0N%k`rE6xouW7(_3x zMiA7U8TUA0+Vf=&(kibeCnbkoY~#ZVto`qTSTG{GGi&3jP#QRA9^Mgi>R;{mWsCNE z*9*Y1N&Gf&%}Ug7w)J&#xtYY$larlZ`o*l;te#8NjpEZ1a9bQ`5DvR|A{lVIOI~=0 zswS>pVSU=2nOwC@=7UYah=8D;$_`P^g1vdd1>+L0ua=cNX`QHnLCL)q_drYtHXC2A z?f}sr3(Kgy2iS9@puirWJM)VtFt%9IelBCddB8Zs4$K|V!6`NZKq(ujmeMAD)-SeV ztX^6hf)-*-*?FAKHfsm8@g3iF6Bp;UM~7TqS(r#=gJJ(SSY3OkC8pD(djRX0=o`6Q z766iW0O4aczmas4@uR|Syf~aa+$7j!CaXI^F%4@U_|WN>^d4kDm-+&10=!9`g58d) znmw1{QoK4pxP|-s4Nc4C$^)Qm{IXXQf+XOcTRNz#mzUj;EHL{1{QQ6G>yI7m6V?Bu zC9k-d;6xrId+f(}%=;#tTK2_U^7GMl*nx3d-B4}C=nZZT#{=#!+P`zuk-4y;YQ~S5 zk`cFDYXl;wg0(3lyu@v{Hn6_YK#7aJ*%tt81{R^HrqVN^>aJyC3-d-C%87hM7l@a`6f9ROqV1g|_*_ z3ry{)ep_}^O8mFQmw^!T{VO|WAn(Z+woL2w)^f-7iw;YiW+-~j?W$dnBAfZTSdBc^ z0E_nkQvCY?m&yWti^FZtd}0DNz@BqZ*dmDqzd&UrcaYu}kV6*E@#Is)QKzPTU^x#i zj87c7qVnfrY(HxG5XnBEln+FGG4`QE{M15w$SF$WnX5(DX{$l4OEAoWf6wB+dN)2m nQ1KkHRHqe#3aU#7rf6sZktR?|?P%W_3x9On(8M4^&(8NB@*4C6 diff --git a/windows/deployment/do/images/do-setup-org-size.png b/windows/deployment/do/images/do-setup-org-size.png index 73515e689bfa57eb1702b1b029a207a28217c24b..0205340dc8d5264109dd8401a0156ecf46156ccd 100644 GIT binary patch literal 33071 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%0DHdJqX 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 literal 21663 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 Sk{y(PWn=ln(Gv3u5&r-d7Z{8H diff --git a/windows/deployment/do/images/do-setup-system-resources.png b/windows/deployment/do/images/do-setup-system-resources.png index 0af983fcb8c5e770b9355d8da73b06368e19e004..97c028a4bf0cfdd1e1d3869de74ded94099d719e 100644 GIT binary patch literal 31857 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 uRE6Ibq50vE8WQ$~;y!u~M=PPFb literal 30121 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 From a617837a642b51cb635b507610df68eda6631b8f Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Mon, 22 Jul 2024 13:48:17 -0600 Subject: [PATCH 068/108] Small tweak to link --- windows/deployment/do/delivery-optimization-configure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 8e359b9c3a..85aebc8d5c 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -183,7 +183,7 @@ Regardless of P2P, consider setting the following policies to avoid network disr * [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. *Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed.* * [DOCacheHostSource](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cache host servers on the network, using DHCP. -* [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in [Improve P2P efficiency](#6-improve-p2p-efficiency) section above). +* [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in [Improve P2P efficiency](#2d-improve-p2p-efficiency) section above). * [DODisallowCacheServerDownloadsOnVPN](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cache host server to supply content, when device is on a VPN connection. ## 4. Choose where to set Delivery Optimization policies From 8015731b94ee2761205d8130931630954ee749cc Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Mon, 22 Jul 2024 13:55:40 -0600 Subject: [PATCH 069/108] Small changes to MCC section --- .../do/delivery-optimization-configure.md | 4 ++-- .../do/images/do-setup-connected-cache.png | Bin 24287 -> 26142 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 85aebc8d5c..21bf94bf8a 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -33,7 +33,7 @@ Use this checklist to guide you through different aspects when modifying Deliver * System resources * Improve P2P efficiencies -1. Using Connected Cache? +1. Using Connected Cache (MCC) 1. Choose where to set Delivery Optimization policies ## 1. Pre-requisites to allow Delivery Optimization communication @@ -177,7 +177,7 @@ Regardless of P2P, consider setting the following policies to avoid network disr > [!NOTE] > The absolute policies are recommended in low bandwidth environments. -## 3. Using Connected cache? +## 3. Using Connected Cache (MCC) :::image type="content" source="images/do-setup-connected-cache.png" alt-text="Screenshot of Delivery Optimization options when using Connected Cache." lightbox="images/do-setup-connected-cache.png"::: diff --git a/windows/deployment/do/images/do-setup-connected-cache.png b/windows/deployment/do/images/do-setup-connected-cache.png index a2182de0b4fce5206462a817e8fa6fa771ccf7b0..081d065753031f5b7d72a2dafc5d335ef54fe464 100644 GIT binary patch literal 26142 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 Y{6K`}G{n{CKyNr>X!duhzH`if01kQMYLNh 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 Date: Tue, 23 Jul 2024 17:54:26 +0530 Subject: [PATCH 070/108] Pencil edit --- .../start/includes/hide-entry-points-for-fast-user-switching.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md index ec07566ed5..a914eb1c31 100644 --- a/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md +++ b/windows/configuration/start/includes/hide-entry-points-for-fast-user-switching.md @@ -10,7 +10,7 @@ ms.topic: include With this policy setting you can prevent multiple users to sign in at the same time, using the Fast User Switching feature. - If enabled, only one user can sign in at a time. The Fast User Switching entry points are hidden from the sign-in screen, the Start menu, and the Task Manager. If multiple users want to sign in, the current user must sign out first -- If disabled or not configured, multiple users can sign in at the same time. The Fast User Switching entry points are availabe from the sign-in screen, the Start menu, and the Task Manager. The current user doesn't have to sign out to allow another user to sign in +- If disabled or not configured, multiple users can sign in at the same time. The Fast User Switching entry points are available from the sign-in screen, the Start menu, and the Task Manager. The current user doesn't have to sign out to allow another user to sign in | | Path | |--|--| From 7b15ee888dc03fc1c2cabbf6dc2d726525026a6b Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:33:00 -0700 Subject: [PATCH 071/108] formatting and wording tweaks --- .../do/delivery-optimization-configure.md | 64 +++++++++++-------- 1 file changed, 38 insertions(+), 26 deletions(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 21bf94bf8a..7e71933140 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -16,17 +16,19 @@ appliesto: - ✅ Windows 11 - ✅ Windows 10 - ✅ Delivery Optimization -ms.date: 07/01/2024 +ms.date: 07/23/2024 --- # Configure Delivery Optimization (DO) for Windows +This article describes the different configuration considerations to optimize Delivery Optimization (DO) in your environment. + ## Delivery Optimization set up considerations Use this checklist to guide you through different aspects when modifying Delivery Optimization configurations for your environment. -1. Pre-requisites to allow Delivery Optimization communication -1. Evaluate Delivery Optimization policies based on the following: +1. Prerequisites to allow Delivery Optimization communication +1. Evaluate Delivery Optimization policies based on the follwoing items: * Network topology * Organization size @@ -36,7 +38,7 @@ Use this checklist to guide you through different aspects when modifying Deliver 1. Using Connected Cache (MCC) 1. Choose where to set Delivery Optimization policies -## 1. Pre-requisites to allow Delivery Optimization communication +## 1. Prerequisites to allow Delivery Optimization communication :::image type="content" source="images/do-setup-allow-communication.png" alt-text="Screenshot of the considerations to allow Delivery Optimization communication." lightbox="images/do-setup-allow-communication.png"::: @@ -50,11 +52,11 @@ There are service endpoints that you need to permit through your Firewall to com ### Proxy -To allow peer-to-peer (P2P) to work properly you need to allow direct calls to the Delivery Optimization service from your devices. When using a proxy, you want to bypass calls from the Delivery Optimization service (*.prod.do.dsp.mp.microsoft.com). +To allow peer-to-peer (P2P) to work properly, you need to allow direct calls to the Delivery Optimization service from your devices. When using a proxy, you want to bypass calls from the Delivery Optimization service (*.prod.do.dsp.mp.microsoft.com). #### Local proxy -For downloads from HTTP sources, Delivery Optimization can use the automatic proxy discovery capability of WinHttp to handle communication with the proxy server. It’s important to know, Delivery Optimization uses byte range requests, so you’ll want to make sure your proxy allows this capability. [Learn more](delivery-optimization-proxy.md) about using Delivery Optimization with a proxy server. +For downloads from HTTP sources, Delivery Optimization can use the automatic proxy discovery capability of WinHttp to handle communication with the proxy server. It's important to know that Delivery Optimization uses byte range requests, so you'll want to make sure your proxy allows this capability. [Learn more](delivery-optimization-proxy.md) about using Delivery Optimization with a proxy server. #### Cloud proxy @@ -78,7 +80,7 @@ There are a range of [Delivery Optimization settings](waas-delivery-optimization :::image type="content" source="images/do-setup-network-topology.png" alt-text="Screenshot of Delivery Optimization network topology considerations." lightbox="images/do-setup-network-topology.png"::: -Peer groups can be defined in Delivery Optimization using a combination of settings such as [DODownloadMode](waas-delivery-optimization-reference.md#download-mode), [DOGroupID](waas-delivery-optimization-reference.md#group-id), [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings used will depend on your desired peer group(s) and your network topology.* +Peer groups can be defined in Delivery Optimization using a combination of settings such as [DODownloadMode](waas-delivery-optimization-reference.md#download-mode), [DOGroupID](waas-delivery-optimization-reference.md#group-id), [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings used depends on your desired peer group(s) and your network topology.* #### Peering setup @@ -93,7 +95,7 @@ To define a peer group limited to your LAN, choose [DODownloadMode](waas-deliver ###### Wide area network (WAN) -To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use download mode ‘2’, Group-mode. Group download mode allows you to define a unique GUID Group ID or use existing logical groupings (e.g. AD Site) in your enterprise with the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. +To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use download mode '2', Group-mode. Group download mode allows you to define a unique GUID Group ID or use existing logical groupings (for example, AD Site) in your enterprise with the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. ###### GroupIDSource default behavior @@ -108,16 +110,16 @@ There are several options for identifying your Group ID using the [DOGroupIDSour If your environment requires a more granular approach, you can use the restrict peer discovery setting alongside the download mode to achieve more control. For example, if you have several different subnets behind the same NAT but want to limit your peer groups to a single subnet, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1) and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection) (Subnet). This setting can be used with any of the peer-related download modes (1, 2, or 3). -#### Non-peering options +#### Nonpeering options -There are two valid download modes that don't use P2P functionality to deliver content; download modes (0) and (99). download mode (0) uses additional metadata provided by the Delivery Optimization services for a peerless, reliable, and efficient download experience. Download mode (99) will provide a reliable download experience over HTTP from the download's original source or Microsoft, with no other checks. +There are two valid download modes that don't use P2P functionality to deliver content; download modes (0) and (99). Download mode (0) uses additional metadata provided by the Delivery Optimization services for a peerless, reliable, and efficient download experience. Download mode (99) will provide a reliable download experience over HTTP from the download's original source or Microsoft, with no other checks. #### Peering with VPN -By default, if Delivery Optimization detects a VPN, peering is not used. To change this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN you use in your organization. +By default, if Delivery Optimization detects a VPN, peering isn't used. To change this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization client looks in the network adapter's 'Description' and 'FriendlyName' strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN you use in your organization. > [!NOTE] -> The default keyword list is “VPN”, “Secure”, and “Virtual Private Network”. For example, “MYVPN” matches the “VPN” keyword and would be detected as a VPN connection. +> The default keyword list is "VPN", "Secure", and "Virtual Private Network". For example, "MYVPN" matches the "VPN" keyword and would be detected as a VPN connection. ### 2b. Organization size @@ -145,7 +147,7 @@ Alter the minimum disk size (default is 32 GB) a device must have to use peering #### Optimize cache size -You can also manage the amount of space the Delivery Optimization cache uses with the following settings: [DOMaxCacheSize](waas-delivery-optimization-reference.md#max-cache-size) (default is 20%) and [DOAbsoluteMaxCacheSize](waas-delivery-optimization-reference.md#absolute-max-cache-size) (default is not configured). +You can also manage the amount of space the Delivery Optimization cache uses with the following settings: [DOMaxCacheSize](waas-delivery-optimization-reference.md#max-cache-size) (default is 20%) and [DOAbsoluteMaxCacheSize](waas-delivery-optimization-reference.md#absolute-max-cache-size) (default isn't configured). #### RAM size @@ -161,8 +163,12 @@ In an environment with devices that are plugged in and have ample free disk spac Looking to improve P2P efficiency? Some of the most powerful settings you can change that could have a significant impact within your environment include: -* Help optimize peer connection over HTTP connections using the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy. A good value for the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy is something lower than the average download speed seen in your network. For example, if your average speed is 1000 KB/s, set this policy to 500 KB/s. -* Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of delay-related policies include: [DODelayBackgroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs), [DODelayForegroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs). To improve efficiencies from peers or a dedicated cache server, a good starting point is 60 seconds for background settings and 30 seconds for foreground settings. +- Help optimize peer connection over HTTP connections using the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy. A good value for the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy is something lower than the average download speed seen in your network. For example, if your average speed is 1000 KB/s, set this policy to 500 KB/s. +- Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of delay-related policies include: + - [DODelayBackgroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs) + - [DODelayForegroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs) + + To improve efficiencies from peers or a dedicated cache server, a good starting point is 60 seconds for background settings and 30 seconds for foreground settings. > [!NOTE] > Not all content types are eligible for P2P. Refer to the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. @@ -171,8 +177,14 @@ Looking to improve P2P efficiency? Some of the most powerful settings you can ch Regardless of P2P, consider setting the following policies to avoid network disruption. -* Manage network usage as a percentage or absolute value. These policies include: [DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth), [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). -* Reduce disruptions by throttling differently at different times of day, using the business hours policies, [DOSetHoursToLimitBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth) and [DOSetHoursToLimitForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth). +- Manage network usage as a percentage or absolute value. These policies include: + - [DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth) + - [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth) + - [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs) + - [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs) +- Reduce disruptions by throttling differently at different times of day, using the following business hours policies: + - [DOSetHoursToLimitBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth) + - [DOSetHoursToLimitForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth). > [!NOTE] > The absolute policies are recommended in low bandwidth environments. @@ -181,10 +193,10 @@ Regardless of P2P, consider setting the following policies to avoid network disr :::image type="content" source="images/do-setup-connected-cache.png" alt-text="Screenshot of Delivery Optimization options when using Connected Cache." lightbox="images/do-setup-connected-cache.png"::: -* [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. *Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed.* -* [DOCacheHostSource](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cache host servers on the network, using DHCP. -* [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in [Improve P2P efficiency](#2d-improve-p2p-efficiency) section above). -* [DODisallowCacheServerDownloadsOnVPN](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cache host server to supply content, when device is on a VPN connection. +- [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. *Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed.* +- [DOCacheHostSource](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cache host servers on the network, using DHCP. +- [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in [Improve P2P efficiency](#2d-improve-p2p-efficiency) section above). +- [DODisallowCacheServerDownloadsOnVPN](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cache host server to supply content, when device is on a VPN connection. ## 4. Choose where to set Delivery Optimization policies @@ -204,15 +216,15 @@ Use MDM to manage Delivery Optimization settings here, Delivery Optimization is integrated with both Microsoft Endpoint Manager and Configuration Manager. -* [Microsoft Endpoint Manager (MEM)](/mem/intune/configuration/delivery-optimization-windows) -* [Microsoft Endpoint Configuration Manager (MECM)](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) +- [Microsoft Endpoint Manager (MEM)](/mem/intune/configuration/delivery-optimization-windows) +- [Microsoft Endpoint Configuration Manager (MECM)](/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) ## Summary of basic configuration recommendations | Use case | Policy | Recommended value | | ----- | ----- | ----------------- | | Use P2P | DownloadMode | 1 or 2 | -| Do not use P2P | DownloadMode | 0 | +| Don't use P2P | DownloadMode | 0 | | Number of devices in the organization | MinFileSizeToCache | 1 MB for peer group > 100 devices | | Idle system resources | MaxCacheAge | 7 days (604800 seconds) | | Improve P2P efficiency | MinBackgroundQoS and DelayBackgroundDownloadFromHttp / DelayForegroundDownloadFromHttp | 500 KB/s and 60/30 seconds | @@ -220,11 +232,11 @@ Delivery Optimization is integrated with both Microsoft Endpoint Manager and Con ## Monitor Delivery Optimization -Whether you opt for the default Delivery Optimization configurations or tailor them to suit your environment, you will want to track the outcomes to see how they improve your efficiency. [Learn more](waas-delivery-optimization-monitor.md) about the monitoring options for Delivery Optimization. +Whether you opt for the default Delivery Optimization configurations or tailor them to suit your environment, you'll want to track the outcomes to see how they improve your efficiency. [Learn more](waas-delivery-optimization-monitor.md) about the monitoring options for Delivery Optimization. ## Troubleshoot Delivery Optimization -There could be many different reasons why Delivery Optimization is not working in your environment. [Learn more](delivery-optimization-troubleshoot.md) about the DO Troubleshooter and common problems and solutions to help improve the experience of using Delivery Optimization. +There could be many different reasons why Delivery Optimization isn't working in your environment. [Learn more](delivery-optimization-troubleshoot.md) about the DO Troubleshooter and common problems and solutions to help improve the experience of using Delivery Optimization. ## Test Delivery Optimization From 20da276fa120de2a1d408fe5a7d8b36184d13e0c Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:55:10 -0700 Subject: [PATCH 072/108] formatting and wording tweaks --- .../deployment/do/delivery-optimization-troubleshoot.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/windows/deployment/do/delivery-optimization-troubleshoot.md b/windows/deployment/do/delivery-optimization-troubleshoot.md index 1c9186808c..5ade7e311f 100644 --- a/windows/deployment/do/delivery-optimization-troubleshoot.md +++ b/windows/deployment/do/delivery-optimization-troubleshoot.md @@ -16,14 +16,16 @@ appliesto: - ✅ Windows 11 - ✅ Windows 10 - ✅ Delivery Optimization -ms.date: 07/01/2024 +ms.date: 07/23/2024 --- # Troubleshoot Delivery Optimization +This article discusses how to troubleshoot Delivery Optimization. + ## DO Troubleshooter -[Check out](https://aka.ms/do-fix) the new Delivery Optimization Troubleshooter. This tool provides a device health check to verify the device is set up properly to use Delivery Optimization. To scope the output more specifically, use one of the available switches: +[Check out](https://aka.ms/do-fix) for the new Delivery Optimization Troubleshooter. This tool provides a device health check to verify the device is set up properly to use Delivery Optimization. To scope the output more specifically, use one of the available switches: - -HealthCheck: Provides an overall check of the device setup to ensure Delivery Optimization communication is possible on the device. - -P2P: Provides output specific to P2P settings, efficiency, and errors. @@ -35,7 +37,7 @@ This section summarizes common problems and some solutions to try. ### If you don't see any bytes from peers -If you don't see any bytes coming from peers the cause might be one of the following issues: +If you don't see any bytes coming from peers, the cause might be one of the following issues: - Clients aren't able to reach the Delivery Optimization cloud services. - The cloud service doesn't see other peers on the network. From 10ae1ff6b089e62b985bedb5e09e1e8ca760ab5c Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Tue, 23 Jul 2024 13:32:55 -0600 Subject: [PATCH 073/108] Remove a heading and add details under another. --- .../deployment/do/delivery-optimization-configure.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 21bf94bf8a..e3546abb50 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -80,22 +80,22 @@ There are a range of [Delivery Optimization settings](waas-delivery-optimization Peer groups can be defined in Delivery Optimization using a combination of settings such as [DODownloadMode](waas-delivery-optimization-reference.md#download-mode), [DOGroupID](waas-delivery-optimization-reference.md#group-id), [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings used will depend on your desired peer group(s) and your network topology.* -#### Peering setup +#### Peering setup options -##### Define peer groups +Delivery Optimization can use P2P to help improve bandwidth efficiencies. The section outlines the different options available to define peer groups for your environment. -###### Local area network (LAN) +##### Local area network (LAN) To define a peer group limited to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This download mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. > [!NOTE] > Consider using Group download mode and/or limiting peer selection to the subnet if your network topology is a Hub and Spoke. -###### Wide area network (WAN) +##### Wide area network (WAN) To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use download mode ‘2’, Group-mode. Group download mode allows you to define a unique GUID Group ID or use existing logical groupings (e.g. AD Site) in your enterprise with the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. -###### GroupIDSource default behavior +##### GroupIDSource default behavior There are several options for identifying your Group ID using the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids). The default behavior, when the [DOGroupID](waas-delivery-optimization-reference.md#group-id) or [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) policies aren't set, is to determine the Group ID using AD Site (1), Authenticated domain SID (2), or Microsoft Entra tenant ID (5). [Learn more](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) about all DOGroupIDSource available options. @@ -104,7 +104,7 @@ There are several options for identifying your Group ID using the [DOGroupIDSour > > For Configuration Manager users, we recommend leveraging existing [boundary groups](/mem/configmgr/core/plan-design/hierarchy/fundamental-concepts-for-content-management#delivery-optimization) to define the peer groups. -###### Restrict peer selection +##### Restrict peer selection If your environment requires a more granular approach, you can use the restrict peer discovery setting alongside the download mode to achieve more control. For example, if you have several different subnets behind the same NAT but want to limit your peer groups to a single subnet, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1) and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection) (Subnet). This setting can be used with any of the peer-related download modes (1, 2, or 3). From 8d862477159909624894c1daaca556c2e9d7826b Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Tue, 23 Jul 2024 12:39:53 -0700 Subject: [PATCH 074/108] Update link names --- .../basic-level-windows-diagnostic-events-and-fields-1809.md | 2 +- .../required-diagnostic-events-fields-windows-11-22H2.md | 2 +- .../privacy/required-windows-11-diagnostic-events-and-fields.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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 dcc02b4101..92ce858c06 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 @@ -29,7 +29,7 @@ You can learn more about Windows functional and diagnostic data through these ar - [Required diagnostic events and fields for Windows 11, versions 23H2 and 22H2](required-diagnostic-events-fields-windows-11-22H2.md) - [Required diagnostic events and fields for Windows 11, version 21H2](required-windows-11-diagnostic-events-and-fields.md) -- [Required diagnostic events and fields for Windows 10: versions 22H2, 21H2, 21H1, 20H2, and 2004](required-windows-diagnostic-data-events-and-fields-2004.md) +- [Required diagnostic events and fields for Windows 10, versions 22H2 and 21H2](required-windows-diagnostic-data-events-and-fields-2004.md) - [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) - [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) diff --git a/windows/privacy/required-diagnostic-events-fields-windows-11-22H2.md b/windows/privacy/required-diagnostic-events-fields-windows-11-22H2.md index 59e5b2137c..97d13f6d72 100644 --- a/windows/privacy/required-diagnostic-events-fields-windows-11-22H2.md +++ b/windows/privacy/required-diagnostic-events-fields-windows-11-22H2.md @@ -29,7 +29,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: - [Required diagnostic events and fields for Windows 11, version 21H2](required-windows-11-diagnostic-events-and-fields.md) -- [Required diagnostic events and fields for Windows 10: versions 22H2, 21H2, 21H1, 20H2, and 2004](required-windows-diagnostic-data-events-and-fields-2004.md) +- [Required diagnostic events and fields for Windows 10, versions 22H2 and 21H2](required-windows-diagnostic-data-events-and-fields-2004.md) - [Windows 10, version 1809 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1809.md) - [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) - [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) diff --git a/windows/privacy/required-windows-11-diagnostic-events-and-fields.md b/windows/privacy/required-windows-11-diagnostic-events-and-fields.md index 533c2d7770..15649caaf5 100644 --- a/windows/privacy/required-windows-11-diagnostic-events-and-fields.md +++ b/windows/privacy/required-windows-11-diagnostic-events-and-fields.md @@ -29,7 +29,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: - [Required diagnostic events and fields for Windows 11, versions 23H2 and 22H2](required-diagnostic-events-fields-windows-11-22H2.md) -- [Required diagnostic events and fields for Windows 10: versions 22H2, 21H2, 21H1, 20H2, and 2004](required-windows-diagnostic-data-events-and-fields-2004.md) +- [Required diagnostic events and fields for Windows 10, versions 22H2 and 21H2](required-windows-diagnostic-data-events-and-fields-2004.md) - [Windows 10, version 1809 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1809.md) - [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) - [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) From e61bdf8db2044656aba6b22a5c544b4e8a7d9fb7 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Tue, 23 Jul 2024 13:39:24 -0700 Subject: [PATCH 075/108] redirect waas-delivery-optimization-setup to delivery-optimization-configure --- .openpublishing.redirection.windows-deployment.json | 5 +++++ windows/deployment/TOC.yml | 2 +- windows/deployment/do/delivery-optimization-test.md | 6 +++--- .../deployment/do/waas-delivery-optimization-reference.md | 2 +- windows/deployment/do/waas-delivery-optimization.md | 4 ++-- windows/deployment/index.yml | 6 +++--- windows/deployment/update/waas-quick-start.md | 2 +- windows/deployment/update/wufb-reports-do.md | 2 +- windows/deployment/update/wufb-reports-faq.yml | 2 +- 9 files changed, 18 insertions(+), 13 deletions(-) diff --git a/.openpublishing.redirection.windows-deployment.json b/.openpublishing.redirection.windows-deployment.json index 9fe31073d2..3345b69500 100644 --- a/.openpublishing.redirection.windows-deployment.json +++ b/.openpublishing.redirection.windows-deployment.json @@ -1185,6 +1185,11 @@ "redirect_url": "/windows/compatibility/", "redirect_document_id": false }, + { + "source_path": "windows/deployment/do/waas-delivery-optimization-setup.md", + "redirect_url": "/windows/deployment/do/delivery-optimization-configure", + "redirect_document_id": false + }, { "source_path": "windows/deployment/update/plan-determine-app-readiness.md", "redirect_url": "/windows/compatibility/windows-11/testing-guidelines", diff --git a/windows/deployment/TOC.yml b/windows/deployment/TOC.yml index 339f7151c3..83bd0aad84 100644 --- a/windows/deployment/TOC.yml +++ b/windows/deployment/TOC.yml @@ -74,7 +74,7 @@ - name: Update Baseline href: update/update-baseline.md - name: Set up Delivery Optimization for Windows client updates - href: do/waas-delivery-optimization-setup.md?context=/windows/deployment/context/context + href: do/delivery-optimization-configure.md?context=/windows/deployment/context/context - name: Configure BranchCache for Windows client updates href: update/waas-branchcache.md - name: Prepare for deployment with Configuration Manager diff --git a/windows/deployment/do/delivery-optimization-test.md b/windows/deployment/do/delivery-optimization-test.md index 8ae1791776..a9f607038c 100644 --- a/windows/deployment/do/delivery-optimization-test.md +++ b/windows/deployment/do/delivery-optimization-test.md @@ -14,7 +14,7 @@ appliesto: - ✅ Windows 11 - ✅ Windows 10 - ✅ Delivery Optimization -ms.date: 11/08/2022 +ms.date: 07/23/2024 --- # Testing Delivery Optimization @@ -31,7 +31,7 @@ One of the most powerful advantages of using Delivery Optimization is the abilit ## Monitoring the Results -Since Delivery Optimization is on by default, you're able to monitor the value either through the Windows Settings for 'Delivery Optimization' using Delivery Optimization PowerShell [cmdlets.](waas-delivery-optimization-setup.md), and/or via the [Windows Update for Business Report](../update/wufb-reports-workbook.md) experience in Azure. +Since Delivery Optimization is on by default, you're able to monitor the value either through the Windows Settings for 'Delivery Optimization' using Delivery Optimization PowerShell [cmdlets.](waas-delivery-optimization-reference.md), and/or via the [Windows Update for Business Report](../update/wufb-reports-workbook.md) experience in Azure. In the case where Delivery Optimization isn't working in your environment, it's important to investigate to get to the root of the problem. We recommend a test environment be created to easily evaluate typical devices to ensure Delivery Optimization is working properly. For starters, 'Scenario 1: Basic Setup' should be created to test the use of Delivery Optimization between two machines. This scenario is designed to eliminate any noise in the environment to ensure there's nothing preventing Delivery Optimization from working on the devices. Once you have a baseline, you can expand the test environment for more sophisticated tests. @@ -221,4 +221,4 @@ Using Delivery Optimization can help make a significant impact in customer envir The testing scenarios found in this document help to show a controlled test environment, helping to prevent updates from interrupting the peering results. The other, a more real-world case, demonstrates how content available across peers will be used as the source of the content. -If there are issues found while testing, the Delivery Optimization PowerShell [cmdlets](waas-delivery-optimization-setup.md) can be a helpful tool to help explain what is happening in the environment. +If there are issues found while testing, the Delivery Optimization PowerShell [cmdlets](waas-delivery-optimization-reference.md) can be a helpful tool to help explain what is happening in the environment. diff --git a/windows/deployment/do/waas-delivery-optimization-reference.md b/windows/deployment/do/waas-delivery-optimization-reference.md index 904981a5fa..35e52815bd 100644 --- a/windows/deployment/do/waas-delivery-optimization-reference.md +++ b/windows/deployment/do/waas-delivery-optimization-reference.md @@ -21,7 +21,7 @@ ms.date: 05/23/2024 > **Looking for Group Policy objects?** See [Delivery Optimization reference](waas-delivery-optimization-reference.md) or the main spreadsheet available at the Download Center [for Windows 11](https://www.microsoft.com/en-us/download/details.aspx?id=104594) or [for Windows 10](https://www.microsoft.com/en-us/download/details.aspx?id=104678). -There are many configuration options you can set in Delivery Optimization to customize the content delivery experience specific to your environment needs. This article summarizes those configurations for your reference. If you just need an overview of Delivery Optimization, see [What is Delivery Optimization](waas-delivery-optimization.md). If you need information about setting up Delivery Optimization, including tips for the best settings in different scenarios, see [Set up Delivery Optimization for Windows](waas-delivery-optimization-setup.md). +There are many configuration options you can set in Delivery Optimization to customize the content delivery experience specific to your environment needs. This article summarizes those configurations for your reference. If you just need an overview of Delivery Optimization, see [What is Delivery Optimization](waas-delivery-optimization.md). If you need information about setting up Delivery Optimization, including tips for the best settings in different scenarios, see [Set up Delivery Optimization for Windows](delivery-optimization-configure.md). ## Delivery Optimization options diff --git a/windows/deployment/do/waas-delivery-optimization.md b/windows/deployment/do/waas-delivery-optimization.md index 133945930d..d1f7e5365c 100644 --- a/windows/deployment/do/waas-delivery-optimization.md +++ b/windows/deployment/do/waas-delivery-optimization.md @@ -28,7 +28,7 @@ To use either the peer-to-peer functionality or the Microsoft Connected Cache fe You can use Delivery Optimization with Windows Update, Windows Server Update Services (WSUS), Microsoft Intune/Windows Update for Business, or Microsoft Configuration Manager (when installation of Express Updates is enabled). -For information about setting up Delivery Optimization, including tips for the best settings in different scenarios, see [Set up Delivery Optimization](waas-delivery-optimization-setup.md). For a comprehensive list of all Delivery Optimization settings, see [Delivery Optimization reference](waas-delivery-optimization-reference.md). +For information about setting up Delivery Optimization, including tips for the best settings in different scenarios, see [Set up Delivery Optimization](delivery-optimization-configure.md). For a comprehensive list of all Delivery Optimization settings, see [Delivery Optimization reference](waas-delivery-optimization-reference.md). > [!NOTE] > WSUS can also use [BranchCache](../update/waas-branchcache.md) for content sharing and caching. If Delivery Optimization is enabled on devices that use BranchCache, Delivery Optimization will be used instead. @@ -98,7 +98,7 @@ To gain a deeper understanding of the Delivery Optimization client-service commu ## Set up Delivery Optimization for Windows -[Learn more](waas-delivery-optimization-setup.md) about the Delivery Optimization settings to ensure proper setup in your environment. +[Learn more](delivery-optimization-configure.md) about the Delivery Optimization settings to ensure proper setup in your environment. ## Delivery Optimization reference diff --git a/windows/deployment/index.yml b/windows/deployment/index.yml index 3f5ea288b1..f80740b19a 100644 --- a/windows/deployment/index.yml +++ b/windows/deployment/index.yml @@ -27,7 +27,7 @@ landingContent: - linkListType: concept links: - text: Plan for Windows 11 - url: /windows/whats-new/windows-11-plan?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json + url: /windows/whats-new/windows-11-plan?context=/windows/deployment/context/context - text: Create a deployment plan url: update/create-deployment-plan.md - text: Define readiness criteria @@ -44,7 +44,7 @@ landingContent: - linkListType: get-started links: - text: Prepare for Windows 11 - url: /windows/whats-new/windows-11-prepare?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json + url: /windows/whats-new/windows-11-prepare?context=/windows/deployment/context/context - text: Prepare to deploy Windows updates url: update/prepare-deploy-windows.md - text: Prepare updates using Windows Update for Business @@ -52,7 +52,7 @@ landingContent: - text: Evaluate and update infrastructure url: update/update-policies.md - text: Set up Delivery Optimization for Windows client updates - url: do/waas-delivery-optimization-setup.md?toc=/windows/deployment/toc.json&bc=/windows/deployment/breadcrumb/toc.json + url: do/delivery-optimization-configure.md?context=/windows/deployment/context/context - text: Prepare for imaging with Configuration Manager url: deploy-windows-cm/prepare-for-zero-touch-installation-of-windows-10-with-configuration-manager.md diff --git a/windows/deployment/update/waas-quick-start.md b/windows/deployment/update/waas-quick-start.md index d9c09992b1..aeab88c922 100644 --- a/windows/deployment/update/waas-quick-start.md +++ b/windows/deployment/update/waas-quick-start.md @@ -50,4 +50,4 @@ Extensive advanced testing isn't required. Instead, only business-critical apps This process repeats with each new feature update. These are small deployment projects, compared to the large projects that were necessary with the old three-to-five-year Windows release cycles. -Other technologies such as [BranchCache](waas-branchcache.md) and [Delivery Optimization](../do/waas-delivery-optimization-setup.md), both peer-to-peer distribution tools, can help with the distribution of the feature update installation files. +Other technologies such as [BranchCache](waas-branchcache.md) and [Delivery Optimization](../do/delivery-optimization-configure.md), both peer-to-peer distribution tools, can help with the distribution of the feature update installation files. diff --git a/windows/deployment/update/wufb-reports-do.md b/windows/deployment/update/wufb-reports-do.md index eca5fbdfa8..cf51c144db 100644 --- a/windows/deployment/update/wufb-reports-do.md +++ b/windows/deployment/update/wufb-reports-do.md @@ -188,7 +188,7 @@ A row in UCDOAggregatedStatus represents data summarized at the tenant level (Az If there's a Connected Cache server at the ISP level, BytesFromCache filters out any bytes coming the ISP's Connected Cache. - **How do the results from the Delivery Optimization PowerShell cmdlets compare to the results in the report?** -[Delivery Optimization PowerShell cmdlets](waas-delivery-optimization-setup.md#monitor-delivery-optimization) can be a powerful tool used to monitor Delivery Optimization data on the device. These cmdlets use the cache on the device. The data calculated in the report is taken from the Delivery Optimization telemetry events. +[Delivery Optimization PowerShell cmdlets](waas-delivery-optimization-reference.md) can be a powerful tool used to monitor Delivery Optimization data on the device. These cmdlets use the cache on the device. The data calculated in the report is taken from the Delivery Optimization telemetry events. - **The report represents the last 28 days of data, why do some queries include >= seven days?** The data in the report does represent the last 28 days of data. The query for last seven days is just to get the data for the latest snapshot from past seven days. It's possible that data is delayed for sometime and not available for current day, so we look for past 7 day snapshot in log analytics and show the latest snapshot. diff --git a/windows/deployment/update/wufb-reports-faq.yml b/windows/deployment/update/wufb-reports-faq.yml index 6bb4fce480..35d2866de7 100644 --- a/windows/deployment/update/wufb-reports-faq.yml +++ b/windows/deployment/update/wufb-reports-faq.yml @@ -183,7 +183,7 @@ sections: If there's a Connected Cache server at the ISP level, BytesFromCache filters out any bytes coming the ISP's Connected Cache. - question: How do the results from the Delivery Optimization PowerShell cmdlets compare to the results in the report? answer: | - [Delivery Optimization PowerShell cmdlets](waas-delivery-optimization-setup.md#monitor-delivery-optimization) can be a powerful tool used to monitor Delivery Optimization data on the device. These cmdlets use the cache on the device. The data calculated in the report is taken from the Delivery Optimization events. + [Delivery Optimization PowerShell cmdlets](waas-delivery-optimization-reference.md) can be a powerful tool used to monitor Delivery Optimization data on the device. These cmdlets use the cache on the device. The data calculated in the report is taken from the Delivery Optimization events. - question: The report represents the last 28 days of data, why do some queries include >= seven days? answer: | The data in the report does represent the last 28 days of data. The query for last seven days is just to get the data for the latest snapshot from past seven days. It's possible that data is delayed for sometime and not available for current day, so we look for past seven day snapshot in log analytics and show the latest snapshot. From 6ebf6675b2b351f23e840bb7ff5c90f5175f4982 Mon Sep 17 00:00:00 2001 From: Meghan Stewart <33289333+mestew@users.noreply.github.com> Date: Tue, 23 Jul 2024 13:40:03 -0700 Subject: [PATCH 076/108] delete file waas-delivery-optimization-setup.md --- .../do/waas-delivery-optimization-setup.md | 164 ------------------ 1 file changed, 164 deletions(-) delete mode 100644 windows/deployment/do/waas-delivery-optimization-setup.md diff --git a/windows/deployment/do/waas-delivery-optimization-setup.md b/windows/deployment/do/waas-delivery-optimization-setup.md deleted file mode 100644 index 93e5197724..0000000000 --- a/windows/deployment/do/waas-delivery-optimization-setup.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: Set up Delivery Optimization -description: In this article, learn how to set up Delivery Optimization for use by Windows clients in your organization. -ms.service: windows-client -ms.subservice: itpro-updates -ms.topic: how-to -author: cmknox -ms.author: carmenf -ms.reviewer: mstewart -manager: aaroncz -ms.collection: - - tier3 -ms.localizationpriority: medium -appliesto: -- ✅ Windows 11 -- ✅ Windows 10 -- ✅ Delivery Optimization -ms.date: 05/23/2024 ---- - -# Set up Delivery Optimization for Windows - -> **Looking for consumer information?** See [Windows Update: FAQ](https://support.microsoft.com/help/12373/windows-update-faq) - -## Set up Delivery Optimization - -You can use Group Policy or an MDM solution like Intune to configure Delivery Optimization. - -You find the Delivery Optimization settings in Group Policy under **Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization**. - -Starting with Microsoft Intune version 1902, you can set many Delivery Optimization policies as a profile, which you can then apply to groups of devices. For more information, see [Delivery Optimization settings in Microsoft Intune](/mem/intune/configuration/delivery-optimization-windows). - -**Starting with Windows 10, version 1903**, you can use the Microsoft Entra tenant ID as a means to define groups. To set the value for [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) to its new maximum value of 5. - -## Allow service endpoints - -When using a firewall, it's important that the Delivery Optimization Service endpoints are allowed and associated ports are open. For more information, see [Delivery Optimization FAQ](waas-delivery-optimization-faq.yml#what-hostnames-should-i-allow-through-my-firewall-to-support-delivery-optimization). - -## Allow content endpoints - -When using a firewall, it's important that the content endpoints are allowed and associated ports are open. For more information, see [Endpoints for Delivery Optimization and Microsoft Connected Cache content](delivery-optimization-endpoints.md). - -## Recommended Delivery Optimization settings - -Delivery Optimization offers a great many settings to fine-tune its behavior see [Delivery Optimization reference](waas-delivery-optimization-reference.md) for a comprehensive list, but for the most efficient performance, there are just a few key parameters that have the greatest impact if particular situations exist in your deployment. If you just need an overview of Delivery Optimization, see [Delivery Optimization for Windows 10 updates](waas-delivery-optimization.md). - -- Does your topology include multiple breakouts to the internet that is, a "hybrid WAN" or are there only a few connections to the internet, so that all requests appear to come from a single external IP address a "hub and spoke" topology? -- If you use boundary groups in your topology, how many devices are present in a given group? -- What percentage of your devices are mobile? -- Do your devices have a lot of free space on their drives? -- Do you have a lab scenario with many devices on AC power? - -> [!NOTE] -> These scenarios (and the recommended settings for each) are not mutually exclusive. It's possible that your deployment might involve more than one of these scenarios, in which case you can employ the related settings in any combination as needed. In all cases, however, "download mode" is the most important one to set. -> -> [!NOTE] -> Microsoft Intune includes a profile to make it easier to set Delivery Optimization policies. For details, see [Delivery Optimization settings for Intune](/mem/intune/configuration/delivery-optimization-settings). - -Quick-reference table: - -| Use case | Policy | Recommended value | Reason | -| --- | --- | --- | --- | -| Hub & spoke topology | Download mode | 1 or 2 | Automatic grouping of peers to match your topology | -| Sites with > 30 devices | Minimum file size to cache | 10 MB (or 1 MB) | Use peers-to-peer capability in more downloads | -| Large number of mobile devices | Allow uploads on battery power | 60% | Increase # of devices that can upload while limiting battery drain | -| Labs with AC-powered devices | Content expiration | 7 (up to 30) days | Leverage devices that can upload more for a longer period | - -### Hybrid WAN scenario - -For this scenario, grouping devices by domain allows devices to be included in peer downloads and uploads across VLANs. **Set Download Mode to 2 - Group**. The default group, when the GroupID or GroupIDSource policies aren't set, is the AD Site (1), Authenticated domain SID (2) or Microsoft Entra tenant ID (5), in that order. If your domain-based group is too wide, or your Active Directory sites aren't aligned with your site network topology, then you should consider other options for dynamically creating groups, for example by using the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) policy. - -In Group Policy go to **Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization** and set **Download mode** to **2**. - -Using with MDM, go to **./Device/Vendor/MSFT/Policy/Config/DeliveryOptimization/** and set [DODownloadMode](/windows/client-management/mdm/policy-csp-deliveryoptimization#dodownloadmode) to 1 or 2. - -### Hub and spoke topology with boundary groups - -The default download mode setting is **1**; this means all devices breaking out to the internet using the same public IP is considered as a single peer group. To prevent peer-to-peer activity across your WAN, you should set the download mode to **2**. If you have already defined Active Directory sites per hub or branch office, then you don't need to do anything else since the Active Directory sites are used by default as the source for creation of Group IDs. If you're not using Active Directory sites, you should set a different source for Groups by using the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) options or the [DORestrictPeerSelectionBy](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection) policy to restrict the activity to the subnet. - -With Group Policy go to **Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization** and set **Download mode** to **2**. - -Using MDM, go to **./Device/Vendor/MSFT/Policy/Config/DeliveryOptimization/** and set [DODownloadMode](/windows/client-management/mdm/policy-csp-deliveryoptimization#dodownloadmode) to **2**. - -> [!NOTE] -> For more information about using Delivery Optimization with Configuration Manager boundary groups, see [Delivery Optimization for Configuration Manager](/mem/configmgr/core/plan-design/hierarchy/fundamental-concepts-for-content-management#delivery-optimization). - -### Large number of mobile devices - -If you have a mobile workforce with a great many mobile devices, set Delivery Optimization to allow uploads on battery power, while limiting the use to prevent battery drain. A setting for **DOMinBatteryPercentageAllowedToUpload** of 60% is a good starting point, though you might want to adjust it later. - -With Group Policy, go to **Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization** and set **Allow uploads while the device is on battery while under set Battery level** to 60. - -Using MDM, go to **./Device/Vendor/MSFT/Policy/Config/DeliveryOptimization/** and set [DOMinBatteryPercentageAllowedToUpload](/windows/client-management/mdm/policy-csp-deliveryoptimization#dominbatterypercentageallowedtoupload) to 60. - -### Plentiful free space and large numbers of devices - -Many devices now come with large internal drives. You can set Delivery Optimization to take better advantage of this space (especially if you have large numbers of devices) by changing the minimum file size to cache. If you have more than 30 devices in your local network or group, change it from the default 50 MB to 10 MB. If you have more than 100 devices (and are running Windows 10, version 1803 or later), set this value to 1 MB. - -With Group Policy, go to **Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization** and set **Minimum Peer Caching Content File Size** to 10 (if you have more than 30 devices) or 1 (if you have more than 100 devices). - -Using MDM, go to **./Device/Vendor/MSFT/Policy/Config/DeliveryOptimization/** and set [DOMinFileSizeToCache](/windows/client-management/mdm/policy-csp-deliveryoptimization#dominfilesizetocache) to 100 (if you have more than 30 devices) or 1 (if you have more than 100 devices). - -### Lab scenario - -In a lab situation, you typically have a large number of devices that are plugged in and have a lot of free disk space. By increasing the content expiration interval, you can take advantage of these devices, using them as excellent upload sources in order to upload more content over a longer period. - -With Group Policy, go to **Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization** and set **Max Cache Age** to **604800** (7 days) or more (up to 30 days). - -Using MDM, go to **./Device/Vendor/MSFT/Policy/Config/DeliveryOptimization/** and set [DOMaxCacheAge](/windows/client-management/mdm/policy-csp-deliveryoptimization#domaxcacheage) to 7 or more (up to 30 days). - -[Learn more](delivery-optimization-test.md) about Delivery Optimization testing scenarios. - -## Troubleshooting - -This section summarizes common problems and some solutions to try. - -### If you don't see any bytes from peers - -If you don't see any bytes coming from peers the cause might be one of the following issues: - -- Clients aren't able to reach the Delivery Optimization cloud services. -- The cloud service doesn't see other peers on the network. -- Clients aren't able to connect to peers that are offered back from the cloud service. -- None of the computers on the network are getting updates from peers. - -### Clients aren't able to reach the Delivery Optimization cloud services - -Try these steps: - -1. Start a download of an app that is larger than 50 MB from the Store (for example "Candy Crush Saga"). -2. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and observe the [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) setting. For peering to work, download mode should be 1, 2, or 3. -3. If the download mode is 99, it could indicate your device is unable to reach the Delivery Optimization cloud services. Ensure that the Delivery Optimization host names are allowed access: most importantly **\*.prod.do.dsp.mp.microsoft.com**. - -### The cloud service doesn't see other peers on the network - -Try these steps: - -1. Download the same app on two different devices on the same network, waiting 10 - 15 minutes between downloads. -2. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and ensure that **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1 or 2 on both devices. -3. Run `Get-DeliveryOptimizationPerfSnap` from an elevated PowerShell window on the second device. The **NumberOfPeers** field should be nonzero. -4. If the number of peers is zero and **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1, ensure that both devices are using the same public IP address to reach the internet (you can easily do this by opening a browser window and do a search for "what is my IP"). In the case where devices aren't reporting the same public IP address, configure **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** to 2 (Group) and use a custom **[DOGroupID (Guid)](waas-delivery-optimization-reference.md#group-id)**. - -> [!NOTE] -> Starting in Windows 10, version 2004, `Get-DeliveryOptimizationStatus` has a new option `-PeerInfo` which returns a real-time list of potential peers per file, including which peers are successfully connected and the total bytes sent or received from each peer. - -### Clients aren't able to connect to peers offered by the cloud service - -Try a Telnet test between two devices on the network to ensure they can connect using port 7680. Follow these steps: - -1. Install Telnet by running `dism /online /Enable-Feature /FeatureName:TelnetClient` from an elevated command prompt. -2. Run the test. For example, if you are on device with IP 192.168.8.12 and you're trying to test the connection to 192.168.9.17 run `telnet 192.168.9.17 7680` (the syntax is *telnet [destination IP] [port]*. You'll either see a connection error or a blinking cursor like this /_. The blinking cursor means success. - -> [!NOTE] -> You can also use [Test-NetConnection](/powershell/module/nettcpip/test-netconnection) instead of Telnet to run the test. -> **Test-NetConnection -ComputerName 192.168.9.17 -Port 7680** - -### None of the computers on the network are getting updates from peers - -Check Delivery Optimization settings that could limit participation in peer caching. Check whether the following settings in assigned group policies, local group policies, or MDM policies are too restrictive: - -- Minimum RAM (inclusive) allowed to use peer caching -- Minimum disk size allowed to use peer caching -- Enable peer caching while the device connects using VPN. -- Allow uploads when the device is on battery while under the set battery level From 483c9bb734ffb40a62e352cfc8d99b4dd7dc5d4f Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Tue, 23 Jul 2024 15:30:58 -0700 Subject: [PATCH 077/108] Remove md files being "archived"/add redirections --- .openpublishing.redirection.json | 2 +- ...ing.redirection.windows-configuration.json | 12 +- ...ublishing.redirection.windows-privacy.json | 97 +- ...ndows-diagnostic-events-and-fields-1703.md | 6416 ---------- ...ndows-diagnostic-events-and-fields-1709.md | 6543 ---------- ...ndows-diagnostic-events-and-fields-1803.md | 8235 ------------ ...ndows-diagnostic-events-and-fields-1903.md | 10580 ---------------- ...s-to-windows-diagnostic-data-collection.md | 96 - .../privacy/manage-windows-1903-endpoints.md | 183 - .../privacy/manage-windows-1909-endpoints.md | 133 - .../privacy/manage-windows-2004-endpoints.md | 135 - .../privacy/manage-windows-20H2-endpoints.md | 151 - .../privacy/manage-windows-21H1-endpoints.md | 153 - .../privacy/windows-diagnostic-data-1703.md | 117 - ...-endpoints-1809-non-enterprise-editions.md | 157 - ...-endpoints-1903-non-enterprise-editions.md | 267 - ...-endpoints-1909-non-enterprise-editions.md | 205 - ...-endpoints-2004-non-enterprise-editions.md | 196 - ...-endpoints-20H2-non-enterprise-editions.md | 256 - ...-endpoints-21H1-non-enterprise-editions.md | 250 - 20 files changed, 98 insertions(+), 34086 deletions(-) delete mode 100644 windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md delete mode 100644 windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md delete mode 100644 windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md delete mode 100644 windows/privacy/basic-level-windows-diagnostic-events-and-fields-1903.md delete mode 100644 windows/privacy/changes-to-windows-diagnostic-data-collection.md delete mode 100644 windows/privacy/manage-windows-1903-endpoints.md delete mode 100644 windows/privacy/manage-windows-1909-endpoints.md delete mode 100644 windows/privacy/manage-windows-2004-endpoints.md delete mode 100644 windows/privacy/manage-windows-20H2-endpoints.md delete mode 100644 windows/privacy/manage-windows-21H1-endpoints.md delete mode 100644 windows/privacy/windows-diagnostic-data-1703.md delete mode 100644 windows/privacy/windows-endpoints-1809-non-enterprise-editions.md delete mode 100644 windows/privacy/windows-endpoints-1903-non-enterprise-editions.md delete mode 100644 windows/privacy/windows-endpoints-1909-non-enterprise-editions.md delete mode 100644 windows/privacy/windows-endpoints-2004-non-enterprise-editions.md delete mode 100644 windows/privacy/windows-endpoints-20H2-non-enterprise-editions.md delete mode 100644 windows/privacy/windows-endpoints-21H1-non-enterprise-editions.md diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 31d8d2cd74..f5699b6c99 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -1272,7 +1272,7 @@ }, { "source_path": "windows/configure/basic-level-windows-diagnostic-events-and-fields-1703.md", - "redirect_url": "/windows/configuration/basic-level-windows-diagnostic-events-and-fields", + "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1703", "redirect_document_id": false }, { diff --git a/.openpublishing.redirection.windows-configuration.json b/.openpublishing.redirection.windows-configuration.json index abeb93b128..777e43019f 100644 --- a/.openpublishing.redirection.windows-configuration.json +++ b/.openpublishing.redirection.windows-configuration.json @@ -2,17 +2,17 @@ "redirections": [ { "source_path": "windows/configuration/basic-level-windows-diagnostic-events-and-fields-1703.md", - "redirect_url": "/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703", + "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1703", "redirect_document_id": false }, { "source_path": "windows/configuration/basic-level-windows-diagnostic-events-and-fields-1709.md", - "redirect_url": "/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709", + "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1709", "redirect_document_id": false }, { "source_path": "windows/configuration/basic-level-windows-diagnostic-events-and-fields.md", - "redirect_url": "/windows/privacy/basic-level-windows-diagnostic-events-and-fields", + "redirect_url": "/windows/privacy/index", "redirect_document_id": false }, { @@ -47,7 +47,7 @@ }, { "source_path": "windows/configuration/gdpr-win10-whitepaper.md", - "redirect_url": "/windows/privacy/gdpr-win10-whitepaper", + "redirect_url": "/windows/privacy/windows-10-and-privacy-compliance", "redirect_document_id": false }, { @@ -72,7 +72,7 @@ }, { "source_path": "windows/configuration/manage-windows-endpoints-version-1709.md", - "redirect_url": "/windows/privacy/manage-windows-endpoints", + "redirect_url": "/windows/privacy/index", "redirect_document_id": false }, { @@ -262,7 +262,7 @@ }, { "source_path": "windows/configuration/windows-diagnostic-data-1703.md", - "redirect_url": "/windows/privacy/windows-diagnostic-data-1703", + "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-diagnostic-data-1703", "redirect_document_id": false }, { diff --git a/.openpublishing.redirection.windows-privacy.json b/.openpublishing.redirection.windows-privacy.json index e280e5a7ba..83cc72e3e8 100644 --- a/.openpublishing.redirection.windows-privacy.json +++ b/.openpublishing.redirection.windows-privacy.json @@ -2,7 +2,7 @@ "redirections": [ { "source_path": "windows/privacy/basic-level-windows-diagnostic-events-and-fields.md", - "redirect_url": "/windows/privacy/required-windows-diagnostic-data-events-and-fields-2004", + "redirect_url": "/windows/privacy/index", "redirect_document_id": false }, { @@ -27,27 +27,27 @@ }, { "source_path": "windows/privacy/manage-windows-1709-endpoints.md", - "redirect_url": "/windows/privacy/manage-windows-21h2-endpoints", + "redirect_url": "/windows/privacy/index", "redirect_document_id": false }, { "source_path": "windows/privacy/manage-windows-1803-endpoints.md", - "redirect_url": "/windows/privacy/manage-windows-21h2-endpoints", + "redirect_url": "/windows/privacy/index", "redirect_document_id": false }, { "source_path": "windows/privacy/manage-windows-endpoints.md", - "redirect_url": "/windows/privacy/manage-windows-2004-endpoints", + "redirect_url": "/windows/privacy/index", "redirect_document_id": false }, { "source_path": "windows/privacy/windows-endpoints-1709-non-enterprise-editions.md", - "redirect_url": "/windows/privacy/windows-endpoints-21h1-non-enterprise-editions", + "redirect_url": "/windows/privacy/index", "redirect_document_id": false }, { "source_path": "windows/privacy/windows-endpoints-1803-non-enterprise-editions.md", - "redirect_url": "/windows/privacy/windows-endpoints-21h1-non-enterprise-editions", + "redirect_url": "/windows/privacy/index", "redirect_document_id": false }, { @@ -59,6 +59,91 @@ "source_path": "windows/privacy/enhanced-diagnostic-data-windows-analytics-events-and-fields.md", "redirect_url": "https://techcommunity.microsoft.com/t5/windows-it-pro-blog/preview-app-and-driver-compatibility-insights-in-endpoint/ba-p/3482136", "redirect_document_id": false + }, + { + "source_path": "windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1703", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1709", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1803", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/basic-level-windows-diagnostic-events-and-fields-1903.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1903", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/manage-windows-1903-endpoints.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/manage-windows-1903-endpoints", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/manage-windows-1909-endpoints.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/manage-windows-1909-endpoints", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/manage-windows-2004-endpoints.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/manage-windows-2004-endpoints", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/manage-windows-20H2-endpoints.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/manage-windows-20H2-endpoints", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/manage-windows-21H1-endpoints.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/manage-windows-21H1-endpoints", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/windows-endpoints-1809-non-enterprise-editions.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-1809-non-enterprise-editions", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/windows-endpoints-1903-non-enterprise-editions.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-1903-non-enterprise-editions", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/windows-endpoints-1909-non-enterprise-editions.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-1909-non-enterprise-editions", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/windows-endpoints-2004-non-enterprise-editions.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-2004-non-enterprise-editions", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/windows-endpoints-20H2-non-enterprise-editions.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-20H2-non-enterprise-editions", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/windows-endpoints-21H1-non-enterprise-editions.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-21H1-non-enterprise-editions", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/windows-diagnostic-data-1703.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-diagnostic-data-1703", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/changes-to-windows-diagnostic-data-collection.md", + "redirect_url": "/previous-versions/windows/it-pro/privacy/changes-to-windows-diagnostic-data-collection", + "redirect_document_id": true } ] } 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 deleted file mode 100644 index 55ed54b6bd..0000000000 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md +++ /dev/null @@ -1,6416 +0,0 @@ ---- -description: Learn more about the Windows 10, version 1703 diagnostic data gathered at the basic level. -title: Windows 10, version 1703 basic diagnostic events and fields (Windows 10) -ms.service: windows-client -ms.subservice: itpro-privacy -localizationpriority: medium -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 03/27/2017 -ms.topic: reference ---- - - -# Windows 10, version 1703 basic level Windows diagnostic events and fields - - **Applies to** - -- Windows 10, version 1703 - - -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 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. - -Use this article to learn about diagnostic events, grouped by event area, and the fields within each event. A brief description is provided for each field. Every event generated includes common data, which collects device data. - -You can learn more about Windows functional and diagnostic data through these articles: - -- [Required diagnostic events and fields for Windows 11, versions 23H2 and 22H2](required-diagnostic-events-fields-windows-11-22H2.md) -- [Required diagnostic events and fields for Windows 11, version 21H2](required-windows-11-diagnostic-events-and-fields.md) -- [Required diagnostic events and fields for Windows 10: versions 22H2, 21H2, 21H1, 20H2, and 2004](required-windows-diagnostic-data-events-and-fields-2004.md) -- [Windows 10, version 1903 and Windows 10, version 1909 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1903.md) -- [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) -- [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) -- [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) - - - - -## Appraiser events - -### Microsoft.Windows.Appraiser.General.ChecksumTotalPictureCount - -This event lists the types of objects and how many of each exist on the client device. This allows for a quick way to ensure that the records present on the server match what is present on the client. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **DatasourceApplicationFile_RS3** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS3** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS3** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_RS3** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_RS3** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_RS3** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS3** The total number of objects of this type present on this device. -- **DecisionApplicationFile_RS3** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS2** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS3** The total number of objects of this type present on this device. -- **DecisionDriverPackage_RS3** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_RS3** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_RS3** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_RS3** The total number of objects of this type present on this device. -- **DecisionMediaCenter_RS3** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS3** The total number of objects of this type present on this device. -- **InventoryLanguagePack** The total number of objects of this type present on this device. -- **InventorySystemBios** The total number of objects of this type present on this device. -- **PCFP** The total number of objects of this type present on this device. -- **SystemProcessorCompareExchange** The total number of objects of this type present on this device. -- **SystemProcessorNx** The total number of objects of this type present on this device. -- **SystemProcessorPrefetchW** The total number of objects of this type present on this device. -- **SystemProcessorSse2** The total number of objects of this type present on this device. -- **SystemWim** The total number of objects of this type present on this device. -- **SystemWindowsActivationStatus** The total number of objects of this type present on this device. -- **SystemWlan** The total number of objects of this type present on this device. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileAdd - -This event represents the basic metadata about specific application files installed on the system. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the appraiser file that is generating the events. -- **AvDisplayName** If the app is an anti-virus app, this is its display name. -- **CompatModelIndex** The compatibility prediction for this file. -- **HasCitData** Indicates whether the file is present in CIT data. -- **HasUpgradeExe** Indicates whether the anti-virus app has an upgrade.exe file. -- **IsAv** Is the file an anti-virus reporting EXE? -- **ResolveAttempted** This will always be an empty string when sending diagnostic data. -- **SdbEntries** An array of fields that indicates the SDB entries that apply to this file. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileRemove - -This event indicates that the DatasourceApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileStartSync - -This event indicates that a new set of DatasourceApplicationFileAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpAdd - -This event sends compatibility data for a Plug and Play device, to help keep Windows up to date. - -The following fields are available: - -- **ActiveNetworkConnection** Indicates whether the device is an active network device. -- **AppraiserVersion** The version of the appraiser file generating the events. -- **IsBootCritical** Indicates whether the device boot is critical. -- **SdbEntries** An array of fields indicating the SDB entries that apply to this device. -- **WuDriverCoverage** Indicates whether there is a driver uplevel for this device, according to Windows Update. -- **WuDriverUpdateId** The Windows Update ID of the applicable uplevel driver. -- **WuDriverUpdateID** The Update ID of the applicable uplevel driver from Windows Update. -- **WuPopulatedFromId** The expected uplevel driver matching ID based on driver coverage from Windows Update. -- **WuPopulatedFromID** The expected uplevel driver matching ID based on driver coverage from Windows Update. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpRemove - -This event indicates that the DatasourceDevicePnp object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpStartSync - -This event indicates that a new set of DatasourceDevicePnpAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageAdd - -This event sends compatibility database data about driver packages to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the appraiser file generating the events. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageRemove - -This event indicates that the DatasourceDriverPackage object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageStartSync - -This event indicates that a new set of DatasourceDriverPackageAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockAdd - -This event sends blocking data about any compatibility blocking entries on the system that are not directly related to specific applications or devices, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the appraiser file generating the events. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockRemove - -This event indicates that the DataSourceMatchingInfoBlock object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockStartSync - -This event indicates that a full set of DataSourceMatchingInfoBlockStAdd events has completed being sent. This event is used to make compatibility decisions about files 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveAdd - -This event sends compatibility database information about non-blocking compatibility entries on the system that are not keyed by either applications or devices, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the appraiser file generating the events. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveRemove - -This event indicates that the DataSourceMatchingInfoPassive object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveStartSync - -This event indicates that a new set of DataSourceMatchingInfoPassiveAdd events will be sent. This event is used to make compatibility decisions about files 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeAdd - -This event sends compatibility database information about entries requiring reinstallation after an upgrade on the system that are not keyed by either applications or devices, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the appraiser file generating the events. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeRemove - -This event indicates that the DataSourceMatchingInfoPostUpgrade object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeStartSync - -This event indicates that a new set of DataSourceMatchingInfoPostUpgradeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosAdd - -This event sends compatibility database information about the BIOS to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **SdbEntries** An array of fields indicating the SDB entries that apply to this BIOS. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosRemove - -This event indicates that the DatasourceSystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosStartSync - -This event indicates that a new set of DatasourceSystemBiosAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileAdd - -This event sends compatibility decision data about a file to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the appraiser file that is generating the events. -- **BlockAlreadyInbox** The uplevel runtime block on the file already existed on the current OS. -- **BlockingApplication** Indicates whether there are any application issues that interfere with the upgrade due to the file in question. -- **DisplayGenericMessage** Will be a generic message be shown for this file? -- **HardBlock** This file is blocked in the SDB. -- **HasUxBlockOverride** Does the file have a block that is overridden by a tag in the SDB? -- **MigApplication** Does the file have a MigXML from the SDB associated with it that applies to the current upgrade mode? -- **MigRemoval** Does the file have a MigXML from the SDB that will cause the app to be removed on upgrade? -- **NeedsDismissAction** Will the file cause an action that can be dimissed? -- **NeedsInstallPostUpgradeData** After upgrade, the file will have a post-upgrade notification to install a replacement for the app. -- **NeedsNotifyPostUpgradeData** Does the file have a notification that should be shown after upgrade? -- **NeedsReinstallPostUpgradeData** After upgrade, this file will have a post-upgrade notification to reinstall the app. -- **NeedsUninstallAction** The file must be uninstalled to complete the upgrade. -- **SdbBlockUpgrade** The file is tagged as blocking upgrade in the SDB, -- **SdbBlockUpgradeCanReinstall** The file is tagged as blocking upgrade in the SDB. It can be reinstalled after upgrade. -- **SdbBlockUpgradeUntilUpdate** The file is tagged as blocking upgrade in the SDB. If the app is updated, the upgrade can proceed. -- **SdbReinstallUpgrade** The file is tagged as needing to be reinstalled after upgrade in the SDB. It does not block upgrade. -- **SdbReinstallUpgradeWarn** The file is tagged as needing to be reinstalled after upgrade with a warning in the SDB. It does not block upgrade. -- **SoftBlock** The file is softblocked in the SDB and has a warning. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove - -This event indicates that the DecisionApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileStartSync - -This event indicates that a new set of DecisionApplicationFileAdd events will be sent. This event is used to make compatibility decisions about a file 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpAdd - -This event sends compatibility decision data about a Plug and Play (PNP) device to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the appraiser file generating the events. -- **AssociatedDriverIsBlocked** Is the driver associated with this PNP device blocked? -- **BlockAssociatedDriver** Should the driver associated with this PNP device be blocked? -- **BlockingDevice** Is this PNP device blocking upgrade? -- **BlockUpgradeIfDriverBlocked** Is the PNP device both boot critical and does not have a driver included with the OS? -- **BlockUpgradeIfDriverBlockedAndOnlyActiveNetwork** Is this PNP device the only active network device? -- **DisplayGenericMessage** Will a generic message be shown during Setup for this PNP device? -- **DriverAvailableInbox** Is a driver included with the operating system for this PNP device? -- **DriverAvailableOnline** Is there a driver for this PNP device on Windows Update? -- **DriverAvailableUplevel** Is there a driver on Windows Update or included with the operating system for this PNP device? -- **DriverBlockOverridden** Is there is a driver block on the device that has been overridden? -- **NeedsDismissAction** Will the user would need to dismiss a warning during Setup for this device? -- **NotRegressed** Does the device have a problem code on the source OS that is no better than the one it would have on the target OS? -- **SdbDeviceBlockUpgrade** Is there an SDB block on the PNP device that blocks upgrade? -- **SdbDriverBlockOverridden** Is there an SDB block on the PNP device that blocks upgrade, but that block was overridden? - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpRemove - -This event Indicates that the DecisionDevicePnp object represented by the objectInstanceId is no longer present. This event is used to make compatibility decisions about PNP devices 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpStartSync - -This event indicates that a new set of DecisionDevicePnpAdd events will be sent. This event is used to make compatibility decisions about PNP devices 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageAdd - -This event sends decision data about driver package compatibility to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the appraiser file generating the events. -- **DriverBlockOverridden** Does the driver package have an SDB block that blocks it from migrating, but that block has been overridden? -- **DriverIsDeviceBlocked** Was the driver package was blocked because of a device block? -- **DriverIsDriverBlocked** Is the driver package blocked because of a driver block? -- **DriverShouldNotMigrate** Should the driver package be migrated during upgrade? -- **SdbDriverBlockOverridden** Does the driver package have an SDB block that blocks it from migrating, but that block has been overridden? - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageRemove - -This event indicates that the DecisionDriverPackage object represented by the objectInstanceId is no longer present. This event is used to make compatibility decisions about driver packages 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageStartSync - -The DecisionDriverPackageStartSync event indicates that a new set of DecisionDriverPackageAdd events will be sent. This event is used to make compatibility decisions about driver packages 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockAdd - -This event sends compatibility decision data about blocking entries on the system that are not keyed by either applications or devices, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the appraiser file generating the events. -- **BlockingApplication** Are there are any application issues that interfere with upgrade due to matching info blocks? -- **DisplayGenericMessage** Will a generic message be shown for this block? -- **NeedsUninstallAction** Does the user need to take an action in setup due to a matching info block? -- **SdbBlockUpgrade** Is a matching info block blocking upgrade? -- **SdbBlockUpgradeCanReinstall** Is a matching info block blocking upgrade, but has the can reinstall tag? -- **SdbBlockUpgradeUntilUpdate** Is a matching info block blocking upgrade but has the until update tag? - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockRemove - -This event indicates that the DecisionMatchingInfoBlock object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockStartSync - -This event indicates that a new set of DecisionMatchingInfoBlockAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveAdd - -This event sends compatibility decision data about non-blocking entries on the system that are not keyed by either applications or devices, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file that is generating the events. -- **BlockingApplication** Are there any application issues that interfere with upgrade due to matching info blocks? -- **MigApplication** Is there a matching info block with a mig for the current mode of upgrade? - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveRemove - -This event Indicates that the DecisionMatchingInfoPassive object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveStartSync - -This event indicates that a new set of DecisionMatchingInfoPassiveAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeAdd - -This event sends compatibility decision data about entries that require reinstall after upgrade. It's used to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file that is generating the events. -- **NeedsInstallPostUpgradeData** Will the file have a notification after upgrade to install a replacement for the app? -- **NeedsNotifyPostUpgradeData** Should a notification be shown for this file after upgrade? -- **NeedsReinstallPostUpgradeData** Will the file have a notification after upgrade to reinstall the app? -- **SdbReinstallUpgrade** The file is tagged as needing to be reinstalled after upgrade in the compatibility database (but is not blocking upgrade). - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeRemove - -This event indicates that the DecisionMatchingInfoPostUpgrade object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeStartSync - -This event indicates that a new set of DecisionMatchingInfoPostUpgradeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterAdd - -This event sends decision data about the presence of Windows Media Center, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **BlockingApplication** Is there any application issues that interfere with upgrade due to Windows Media Center? -- **MediaCenterActivelyUsed** If Windows Media Center is supported on the edition, has it been run at least once and are the MediaCenterIndicators are true? -- **MediaCenterIndicators** Do any indicators imply that Windows Media Center is in active use? -- **MediaCenterInUse** Is Windows Media Center actively being used? -- **MediaCenterPaidOrActivelyUsed** Is Windows Media Center actively being used or is it running on a supported edition? -- **NeedsDismissAction** Are there any actions that can be dismissed coming from Windows Media Center? - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterRemove - -This event indicates that the DecisionMediaCenter object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterStartSync - -This event indicates that a new set of DecisionMediaCenterAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosAdd - -This event sends compatibility decision data about the BIOS to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **Blocking** Is the device blocked from upgrade due to a BIOS block? -- **HasBiosBlock** Does the device have a BIOS block? - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosRemove - -This event indicates that the DecisionSystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosStartSync - -This event indicates that a new set of DecisionSystemBiosAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.EnterpriseScenarioWithDiagTrackServiceRunning - -This event indicates that Appraiser has been triggered to run an enterprise scenario while the DiagTrack service is installed. This event can only be sent if a special flag is used to trigger the enterprise scenario. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **Time** The client time of the event. - - -### Microsoft.Windows.Appraiser.General.GatedRegChange - -This event sends data about the results of running a set of quick-blocking instructions, to help keep Windows up to date. - -The following fields are available: - -- **NewData** The data in the registry value after the scan completed. -- **OldData** The previous data in the registry value before the scan ran. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **RegKey** The registry key name for which a result is being sent. -- **RegValue** The registry value for which a result is being sent. -- **Time** The client time of the event. - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileAdd - -This event represents the basic metadata about a file on the system. The file must be part of an app and either have a block in the compatibility database or be part of an antivirus program. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **BinaryType** A binary type. Example: UNINITIALIZED, ZERO_BYTE, DATA_ONLY, DOS_MODULE, NE16_MODULE, PE32_UNKNOWN, PE32_I386, PE32_ARM, PE64_UNKNOWN, PE64_AMD64, PE64_ARM64, PE64_IA64, PE32_CLR_32, PE32_CLR_IL, PE32_CLR_IL_PREFER32, PE64_CLR_64. -- **BinFileVersion** An attempt to clean up FileVersion at the client that tries to place the version into 4 octets. -- **BinProductVersion** An attempt to clean up ProductVersion at the client that tries to place the version into 4 octets. -- **BoeProgramId** If there is no entry in Add/Remove Programs, this is the ProgramID that is generated from the file metadata. -- **CompanyName** The company name of the vendor who developed this file. -- **FileId** A hash that uniquely identifies a file. -- **FileVersion** The File version field from the file metadata under Properties -> Details. -- **LinkDate** The date and time that this file was linked on. -- **LowerCaseLongPath** The full file path to the file that was inventoried on the device. -- **Name** The name of the file that was inventoried. -- **ProductName** The Product name field from the file metadata under Properties -> Details. -- **ProductVersion** The Product version field from the file metadata under Properties -> Details. -- **ProgramId** A hash of the Name, Version, Publisher, and Language of an application used to identify it. -- **Size** The size of the file (in hexadecimal bytes). - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileRemove - -This event indicates that the InventoryApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync - -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackAdd - -This event sends data about the number of language packs installed on the system, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file that is generating the events. -- **HasLanguagePack** Indicates whether this device has 2 or more language packs. -- **LanguagePackCount** The number of language packs are installed. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackRemove - -This event indicates that the InventoryLanguagePack object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackStartSync - -This event indicates that a new set of InventoryLanguagePackAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterAdd - -This event sends true/false data about decision points used to understand whether Windows Media Center is used on the system, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **EverLaunched** Has Windows Media Center ever been launched? -- **HasConfiguredTv** Has the user configured a TV tuner through Windows Media Center? -- **HasExtendedUserAccounts** Are any Windows Media Center Extender user accounts configured? -- **HasWatchedFolders** Are any folders configured for Windows Media Center to watch? -- **IsDefaultLauncher** Is Windows Media Center the default app for opening music or video files? -- **IsPaid** Is the user running a Windows Media Center edition that implies they paid for Windows Media Center? -- **IsSupported** Does the running OS support Windows Media Center? - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterRemove - -This event indicates that the InventoryMediaCenter object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterStartSync - -This event indicates that a new set of InventoryMediaCenterAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosAdd - -This event sends basic metadata about the BIOS to determine whether it has a compatibility block. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file that is generating the events. -- **BiosDate** The release date of the BIOS in UTC format. -- **BiosName** The name field from Win32_BIOS. -- **Manufacturer** The manufacturer field from Win32_ComputerSystem. -- **Model** The model field from Win32_ComputerSystem. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosRemove - -This event indicates that the InventorySystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosStartSync - -This event indicates that a new set of InventorySystemBiosAdd events will be sent. The data collected with this event is used 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 binary (executable) generating the events. - - -### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageAdd - -This event runs only during setup. It provides a listing of the uplevel driver packages that were downloaded before the upgrade. It is critical in understanding if failures in setup can be traced to not having sufficient uplevel drivers before the upgrade. The data collected with this event is used 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. -- **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. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageStartSync - -This event indicates that a new set of InventoryUplevelDriverPackageAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.RunContext - -This event is sent at the beginning of an appraiser run, the RunContext indicates what should be expected in the following data payload. This event is used with the other Appraiser events to make compatibility decisions to keep Windows up to date. - -The following fields are available: - -- **AppraiserBranch** The source branch in which the currently running version of Appraiser was built. -- **AppraiserProcess** The name of the process that launched Appraiser. -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **Context** Indicates what mode Appraiser is running in. Example: Setup or Telemetry. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **Time** The client time of the event. - - -### Microsoft.Windows.Appraiser.General.SystemMemoryAdd - -This event sends data on the amount of memory on the system and whether it meets requirements, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **Blocking** Is the device from upgrade due to memory restrictions? -- **MemoryRequirementViolated** Was a memory requirement violated? -- **pageFile** The current committed memory limit for the system or the current process, whichever is smaller (in bytes). -- **ram** The amount of memory on the device. -- **ramKB** The amount of memory (in KB). -- **virtual** The size of the user-mode portion of the virtual address space of the calling process (in bytes). -- **virtualKB** The amount of virtual memory (in KB). - - -### Microsoft.Windows.Appraiser.General.SystemMemoryRemove - -This event that the SystemMemory object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemMemoryStartSync - -This event indicates that a new set of SystemMemoryAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeAdd - -This event sends data indicating whether the system supports the CompareExchange128 CPU requirement, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **Blocking** Is the upgrade blocked due to the processor? -- **CompareExchange128Support** Does the CPU support CompareExchange128? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeRemove - -This event indicates that the SystemProcessorCompareExchange object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeStartSync - -This event indicates that a new set of SystemProcessorCompareExchangeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfAdd - -This event sends data indicating whether the system supports the LAHF & SAHF CPU requirement, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **Blocking** Is the upgrade blocked due to the processor? -- **LahfSahfSupport** Does the CPU support LAHF/SAHF? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfRemove - -This event indicates that the SystemProcessorLahfSahf object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfStartSync - -This event indicates that a new set of SystemProcessorLahfSahfAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxAdd - -This event sends data indicating whether the system supports the NX CPU requirement, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file that is generating the events. -- **Blocking** Is the upgrade blocked due to the processor? -- **NXDriverResult** The result of the driver used to do a non-deterministic check for NX support. -- **NXProcessorSupport** Does the processor support NX? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxRemove - -This event indicates that the SystemProcessorNx object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxStartSync - -This event indicates that a new set of SystemProcessorNxAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWAdd - -This event sends data indicating whether the system supports the PrefetchW CPU requirement, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file that is generating the events. -- **Blocking** Is the upgrade blocked due to the processor? -- **PrefetchWSupport** Does the processor support PrefetchW? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWRemove - -This event indicates that the SystemProcessorPrefetchW object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWStartSync - -This event indicates that a new set of SystemProcessorPrefetchWAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2Add - -This event sends data indicating whether the system supports the SSE2 CPU requirement, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file that is generating the events. -- **Blocking** Is the upgrade blocked due to the processor? -- **SSE2ProcessorSupport** Does the processor support SSE2? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2Remove - -This event indicates that the SystemProcessorSse2 object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2StartSync - -This event indicates that a new set of SystemProcessorSse2Add events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemTouchAdd - -This event sends data indicating whether the system supports touch, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file that is generating the events. -- **IntegratedTouchDigitizerPresent** Is there an integrated touch digitizer? -- **MaximumTouches** The maximum number of touch points supported by the device hardware. - - -### Microsoft.Windows.Appraiser.General.SystemTouchRemove - -This event indicates that the SystemTouch object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemTouchStartSync - -This event indicates that a new set of SystemTouchAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWimAdd - -This event sends data indicating whether the operating system is running from a compressed Windows Imaging Format (WIM) file, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file that is generating the events. -- **IsWimBoot** Is the current operating system running from a compressed WIM file? -- **RegistryWimBootValue** The raw value from the registry that is used to indicate if the device is running from a WIM. - - -### Microsoft.Windows.Appraiser.General.SystemWimRemove - -This event indicates that the SystemWim object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWimStartSync - -This event indicates that a new set of SystemWimAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusAdd - -This event sends data indicating whether the current operating system is activated, to help keep Windows up to date. - -The following fields are available: - -- **AppraiserVersion** The version of the Appraiser file that is generating the events. -- **WindowsIsLicensedApiValue** The result from the API that's used to indicate if operating system is activated. -- **WindowsNotActivatedDecision** Is the current operating system activated? - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusRemove - -This event indicates that the SystemWindowsActivationStatus object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusStartSync - -This event indicates that a new set of SystemWindowsActivationStatusAdd events will be sent. The data collected with this event is used 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. - - -### 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. - -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. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWlanStartSync - -This event indicates that a new set of SystemWlanAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.TelemetryRunHealth - -This event indicates the parameters and result of a diagnostic data run. This allows the rest of the data sent over the course of the run to be properly contextualized and understood, which is then used to keep Windows up to date. - -The following fields are available: - -- **AppraiserBranch** The source branch in which the version of Appraiser that is running was built. -- **AppraiserDataVersion** The version of the data files being used by the Appraiser diagnostic data run. -- **AppraiserProcess** The name of the process that launched Appraiser. -- **AppraiserVersion** The file version (major, minor and build) of the Appraiser DLL, concatenated without dots. -- **AuxFinal** Obsolete, always set to false. -- **AuxInitial** Obsolete, indicates if Appraiser is writing data files to be read by the Get Windows 10 app. -- **DeadlineDate** A timestamp representing the deadline date, which is the time until which appraiser will wait to do a full scan. -- **EnterpriseRun** Indicates whether the diagnostic data run is an enterprise run, which means appraiser was run from the command line with an extra enterprise parameter. -- **FullSync** Indicates if Appraiser is performing a full sync, which means that full set of events representing the state of the machine are sent. Otherwise, only the changes from the previous run are sent. -- **InventoryFullSync** Indicates if inventory is performing a full sync, which means that the full set of events representing the inventory of machine are sent. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **PerfBackoff** Indicates if the run was invoked with logic to stop running when a user is present. Helps to understand why a run may have a longer elapsed time than normal. -- **PerfBackoffInsurance** Indicates if appraiser is running without performance backoff because it has run with perf backoff and failed to complete several times in a row. -- **RunAppraiser** Indicates if Appraiser was set to run at all. If this if false, it is understood that data events will not be received from this device. -- **RunDate** The date that the diagnostic data run was stated, expressed as a filetime. -- **RunGeneralTel** Indicates if the generaltel.dll component was run. Generaltel collects additional diagnostic data on an infrequent schedule and only from machines at diagnostic data levels higher than Basic. -- **RunOnline** Indicates if appraiser was able to connect to Windows Update and therefore is making decisions using up-to-date driver coverage information. -- **RunResult** The hresult of the Appraiser diagnostic data run. -- **SendingUtc** Indicates whether the Appraiser client is sending events during the current diagnostic data run. -- **StoreHandleIsNotNull** Obsolete, always set to false -- **TelementrySent** Indicates whether diagnostic data was successfully sent. -- **ThrottlingUtc** Indicates whether the Appraiser client is throttling its output of CUET events to avoid being disabled. This increases runtime but also diagnostic data reliability. -- **Time** The client time of the event. -- **VerboseMode** Indicates if appraiser ran in Verbose mode, which is a test-only mode with extra logging. -- **WhyFullSyncWithoutTablePrefix** Indicates the reason or reasons that a full sync was generated. - - -### Microsoft.Windows.Appraiser.General.WmdrmAdd - -This event sends data about the usage of older digital rights management on the system, to help keep Windows up to date. This data does not indicate the details of the media using the digital rights management, only whether any such files exist. Collecting this data was critical to ensuring the correct mitigation for customers, and should be able to be removed once all mitigations are in place. - -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. -- **BlockingApplication** Same as NeedsDismissAction. -- **NeedsDismissAction** Indicates if a dismissible message is needed to warn the user about a potential loss of data due to DRM deprecation. -- **WmdrmApiResult** Raw value of the API used to gather DRM state. -- **WmdrmCdRipped** Indicates if the system has any files encrypted with personal DRM, which was used for ripped CDs. -- **WmdrmIndicators** WmdrmCdRipped OR WmdrmPurchased. -- **WmdrmInUse** WmdrmIndicators AND dismissible block in setup was not dismissed. -- **WmdrmNonPermanent** Indicates if the system has any files with non-permanent licenses. -- **WmdrmPurchased** Indicates if the system has any files with permanent licenses. - - -### Microsoft.Windows.Appraiser.General.WmdrmRemove - -This event indicates that the Wmdrm object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.WmdrmStartSync - -The WmdrmStartSync event indicates that a new set of WmdrmAdd events will be sent. This event is used to understand the usage of older digital rights management on the system, 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. - - -## Census events - -### Census.App - -This event sends version data about the Apps running on this device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CensusVersion** The version of Census that generated the current data for this device. -- **IEVersion** The version of Internet Explorer that is running on the device. - - -### Census.Battery - -This event sends type and capacity data about the battery on the device, as well as the number of connected standby devices in use. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **InternalBatteryCapablities** Represents information about what the battery is capable of doing. -- **InternalBatteryCapacityCurrent** Represents the battery's current fully charged capacity in mWh (or relative). Compare this value to DesignedCapacity  to estimate the battery's wear. -- **InternalBatteryCapacityDesign** Represents the theoretical capacity of the battery when new, in mWh. -- **InternalBatteryNumberOfCharges** Provides the number of battery charges. This is used when creating new products and validating that existing products meets targeted functionality performance. -- **IsAlwaysOnAlwaysConnectedCapable** Represents whether the battery enables the device to be AlwaysOnAlwaysConnected. Boolean value. - - -### Census.Enterprise - -This event sends data about Azure presence, type, and cloud domain use in order to provide an understanding of the use and integration of devices in an enterprise, cloud, and server environment. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **AzureOSIDPresent** Represents the field used to identify an Azure machine. -- **AzureVMType** Represents whether the instance is Azure VM PAAS, Azure VM IAAS or any other VMs. -- **CDJType** Represents the type of cloud domain joined for the machine. -- **CommercialId** Represents the GUID for the commercial entity which the device is a member of.  Will be used to reflect insights back to customers. -- **ContainerType** The type of container, such as process or virtual machine hosted. -- **HashedDomain** The hashed representation of the user domain used for login. -- **IsCloudDomainJoined** Is this device joined to an Azure Active Directory (Azure AD) tenant? true/false -- **IsDERequirementMet** Represents if the device can do device encryption. -- **IsDeviceProtected** Represents if Device protected by BitLocker/Device Encryption -- **IsDomainJoined** Indicates whether a machine is joined to a domain. -- **IsEDPEnabled** Represents if Enterprise data protected on the device. -- **IsMDMEnrolled** Whether the device has been MDM Enrolled or not. -- **MPNId** Returns the Partner ID/MPN ID from Regkey. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\DeployID -- **SCCMClientId** This ID correlate systems that send data to Compat Analytics (OMS) and other OMS based systems with systems in an enterprise Configuration Manager environment. -- **ServerFeatures** Represents the features installed on a Windows Server. This can be used by developers and administrators who need to automate the process of determining the features installed on a set of server computers. -- **SystemCenterID** The Configuration Manager ID is an anonymized one-way hash of the Active Directory Organization identifier. - - -### Census.Firmware - -This event sends data about the BIOS and startup embedded in the device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **FirmwareManufacturer** Represents the manufacturer of the device's firmware (BIOS). -- **FirmwareReleaseDate** Represents the date the current firmware was released. -- **FirmwareType** Represents the firmware type. The various types can be unknown, BIOS, UEFI. -- **FirmwareVersion** Represents the version of the current firmware. - - -### Census.Flighting - -This event sends Windows Insider data from customers participating in improvement testing and feedback programs. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceSampleRate** The telemetry sample rate assigned to the device. -- **EnablePreviewBuilds** Used to enable Windows Insider builds on a device. -- **FlightIds** A list of the different Windows Insider builds on this device. -- **FlightingBranchName** The name of the Windows Insider branch currently used by the device. -- **IsFlightsDisabled** Represents if the device is participating in the Windows Insider program. -- **MSA_Accounts** Represents a list of hashed IDs of the Microsoft Accounts that are flighting (pre-release builds) on this device. -- **SSRK** Retrieves the mobile targeting settings. - - -### Census.Hardware - -This event sends data about the device, including hardware type, OEM brand, model line, model, telemetry level setting, and TPM support. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ActiveMicCount** The number of active microphones attached to the device. -- **ChassisType** Represents the type of device chassis, such as desktop or low profile desktop. The possible values can range between 1 - 36. -- **ComputerHardwareID** Identifies a device class that is represented by a hash of different SMBIOS fields. -- **DeviceColor** Indicates a color of the device. -- **DeviceForm** Indicates the form as per the device classification. -- **DeviceName** The device name that is set by the user. -- **DigitizerSupport** Is a digitizer supported? -- **DUID** The device unique ID. -- **InventoryId** The device ID used for compatibility testing. -- **OEMDigitalMarkerFileName** The name of the file placed in the \Windows\system32\drivers directory that specifies the OEM and model name of the device. -- **OEMManufacturerName** The device manufacturer name. The OEMName for an inactive device is not reprocessed even if the clean OEM name is changed at a later date. -- **OEMModelBaseBoard** The baseboard model used by the OEM. -- **OEMModelBaseBoardVersion** Differentiates between developer and retail devices. -- **OEMModelName** The device model name. -- **OEMModelNumber** The device model number. -- **OEMModelSKU** The device edition that is defined by the manufacturer. -- **OEMModelSystemFamily** The system family set on the device by an OEM. -- **OEMModelSystemVersion** The system model version set on the device by the OEM. -- **OEMOptionalIdentifier** A Microsoft assigned value that represents a specific OEM subsidiary. -- **OEMSerialNumber** The serial number of the device that is set by the manufacturer. -- **PhoneManufacturer** The friendly name of the phone manufacturer. -- **PowerPlatformRole** The OEM preferred power management profile. It's used to help to identify the basic form factor of the device. -- **SoCName** The firmware manufacturer of the device. -- **StudyID** Used to identify retail and non-retail device. -- **TelemetryLevel** The telemetry level the user has opted into, such as Basic or Enhanced. -- **TelemetrySettingAuthority** Determines who set the telemetry level, such as GP, MDM, or the user. -- **TPMVersion** The supported Trusted Platform Module (TPM) on the device. If no TPM is present, the value is 0. -- **VoiceSupported** Does the device have a cellular radio capable of making voice calls? - - -### Census.Memory - -This event sends data about the memory on the device, including ROM and RAM. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **TotalPhysicalRAM** Represents the physical memory (in MB). -- **TotalVisibleMemory** Represents the memory that is not reserved by the system. - - -### Census.Network - -This event sends data about the mobile and cellular network used by the device (mobile service provider, network, device ID, and service cost factors). The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **IMEI0** Represents the International Mobile Station Equipment Identity. This number is usually unique and used by the mobile operator to distinguish different phone hardware. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. The two fields represent phone with dual sim coverage. -- **IMEI1** Represents the International Mobile Station Equipment Identity. This number is usually unique and used by the mobile operator to distinguish different phone hardware. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. The two fields represent phone with dual sim coverage. -- **MCC0** Represents the Mobile Country Code (MCC). It used with the Mobile Network Code (MNC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MCC1** Represents the Mobile Country Code (MCC). It used with the Mobile Network Code (MNC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MEID** Represents the Mobile Equipment Identity (MEID). MEID is a worldwide unique phone ID assigned to CDMA phones. MEID replaces electronic serial number (ESN), and is equivalent to IMEI for GSM and WCDMA phones. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. -- **MNC0** Retrieves the Mobile Network Code (MNC). It used with the Mobile Country Code (MCC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MNC1** Retrieves the Mobile Network Code (MNC). It used with the Mobile Country Code (MCC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MobileOperatorBilling** Represents the telephone company that provides services for mobile phone users. -- **MobileOperatorCommercialized** Represents which reseller and geography the phone is commercialized for. This is the set of values on the phone for who and where it was intended to be used. For example, the commercialized mobile operator code AT&T in the US would be ATT-US. -- **MobileOperatorNetwork0** Represents the operator of the current mobile network that the device is used on. (AT&T, T-Mobile, Vodafone). The two fields represent phone with dual sim coverage. -- **MobileOperatorNetwork1** Represents the operator of the current mobile network that the device is used on. (AT&T, T-Mobile, Vodafone). The two fields represent phone with dual sim coverage. -- **NetworkAdapterGUID** The GUID of the primary network adapter. -- **NetworkCost** Represents the network cost associated with a connection. -- **SPN0** Retrieves the Service Provider Name (SPN). For example, these might be AT&T, Sprint, T-Mobile, or Verizon. The two fields represent phone with dual sim coverage. -- **SPN1** Retrieves the Service Provider Name (SPN). For example, these might be AT&T, Sprint, T-Mobile, or Verizon. The two fields represent phone with dual sim coverage. - - -### Census.OS - -This event sends data about the operating system such as the version, locale, update service configuration, when and how it was originally installed, and whether it is a virtual device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ActivationChannel** Retrieves the retail license key or Volume license key for a machine. -- **CompactOS** Indicates if the Compact OS feature from Win10 is enabled. -- **DeveloperUnlockStatus** Represents if a device has been developer unlocked by the user or Group Policy. -- **DeviceTimeZone** The time zone that is set on the device. Example: Pacific Standard Time -- **GenuineState** Retrieves the ID Value specifying the OS Genuine check. -- **InstallationType** Retrieves the type of OS installation. (Clean, Upgrade, Reset, Refresh, Update). -- **InstallLanguage** The first language installed on the user machine. -- **IsDeviceRetailDemo** Retrieves if the device is running in demo mode. -- **IsEduData** Returns Boolean if the education data policy is enabled. -- **IsPortableOperatingSystem** Retrieves whether OS is running Windows-To-Go -- **IsSecureBootEnabled** Retrieves whether Boot chain is signed under UEFI. -- **LanguagePacks** The list of language packages installed on the device. -- **LicenseStateReason** Retrieves why (or how) a system is licensed or unlicensed. The HRESULT may indicate an error code that indicates a key blocked error, or it may indicate that we are running an OS License granted by the MS store. -- **OA3xOriginalProductKey** Retrieves the License key stamped by the OEM to the machine. -- **OSEdition** Retrieves the version of the current OS. -- **OSInstallDateTime** Retrieves the date the OS was installed using ISO 8601 (Date part) == yyyy-mm-dd -- **OSInstallType** Retrieves a numeric description of what install was used on the device i.e. clean, upgrade, refresh, reset, etc. -- **OSOOBEDateTime** Retrieves Out of Box Experience (OOBE) Date in Coordinated Universal Time (UTC). -- **OSSKU** Retrieves the Friendly Name of OS Edition. -- **OSSubscriptionStatus** Represents the existing status for enterprise subscription feature for PRO machines. -- **OSSubscriptionTypeId** Returns boolean for enterprise subscription feature for selected PRO machines. -- **OSTimeZoneBiasInMins** Retrieves the time zone set on machine. -- **OSUILocale** Retrieves the locale of the UI that is currently used by the OS. -- **ProductActivationResult** Returns Boolean if the OS Activation was successful. -- **ProductActivationTime** Returns the OS Activation time for tracking piracy issues. -- **ProductKeyID2** Retrieves the License key if the machine is updated with a new license key. -- **RACw7Id** Retrieves the Microsoft Reliability Analysis Component (RAC) Win7 Identifier. RAC is used to monitor and analyze system usage and reliability. -- **ServiceMachineIP** Retrieves the IP address of the KMS host used for anti-piracy. -- **ServiceMachinePort** Retrieves the port of the KMS host used for anti-piracy. -- **ServiceProductKeyID** Retrieves the License key of the KMS -- **SharedPCMode** Returns Boolean for devices that have enabled the configuration EnableSharedPCMode. -- **Signature** Retrieves if it is a signature machine sold by Microsoft store. -- **SLICStatus** Whether a SLIC table exists on the device. -- **SLICVersion** Returns OS type/version from SLIC table. - - -### Census.Processor - -This event sends data about the processor. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ProcessorArchitecture** Retrieves the processor architecture of the installed operating system. -- **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. -- **SocketCount** Number of physical CPU sockets of the machine. - - -### Census.Security - -This event provides information about security settings. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Census.Speech - -This event is used to gather basic speech settings on the device. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **AboveLockEnabled** Cortana setting that represents if Cortana can be invoked when the device is locked. -- **GPAllowInputPersonalization** Indicates if a Group Policy setting has enabled speech functionalities. -- **HolographicSpeechInputDisabled** Holographic setting that represents if the attached HMD devices have speech functionality disabled by the user. -- **HolographicSpeechInputDisabledRemote** Indicates if a remote policy has disabled speech functionalities for the HMD devices. -- **KWSEnabled** Cortana setting that represents if a user has enabled the "Hey Cortana" keyword spotter (KWS). -- **MDMAllowInputPersonalization** Indicates if an MDM policy has enabled speech functionalities. -- **RemotelyManaged** Indicates if the device is being controlled by a remote administrator (MDM or Group Policy) in the context of speech functionalities. -- **SpeakerIdEnabled** Cortana setting that represents if keyword detection has been trained to try to respond to a single user's voice. -- **SpeechServicesEnabled** Windows setting that represents whether a user is opted-in for speech services on the device. - - -### Census.Storage - -This event sends data about the total capacity of the system volume and primary disk. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **PrimaryDiskTotalCapacity** Retrieves the amount of disk space on the primary disk of the device in MB. -- **PrimaryDiskType** Retrieves an enumerator value of type STORAGE_BUS_TYPE that indicates the type of bus to which the device is connected. This should be used to interpret the raw device properties at the end of this structure (if any). -- **SystemVolumeTotalCapacity** Retrieves the size of the partition that the System volume is installed on in MB. - - -### Census.Userdefault - -This event sends data about the current user's default preferences for browser and several of the most popular extensions and protocols. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DefaultApp** The current user's default program selected for the following extension or protocol: .html, .htm, .jpg, .jpeg, .png, .mp3, .mp4, .mov, .pdf. -- **DefaultBrowserProgId** The ProgramId of the current user's default browser. - - -### Census.UserDisplay - -This event sends data about the logical/physical display size, resolution and number of internal/external displays, and VRAM on the system. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **InternalPrimaryDisplayLogicalDPIX** Retrieves the logical DPI in the x-direction of the internal display. -- **InternalPrimaryDisplayLogicalDPIY** Retrieves the logical DPI in the y-direction of the internal display. -- **InternalPrimaryDisplayPhysicalDPIX** Retrieves the physical DPI in the x-direction of the internal display. -- **InternalPrimaryDisplayPhysicalDPIY** Retrieves the physical DPI in the y-direction of the internal display. -- **InternalPrimaryDisplayResolutionHorizontal** Retrieves the number of pixels in the horizontal direction of the internal display. -- **InternalPrimaryDisplayResolutionVertical** Retrieves the number of pixels in the vertical direction of the internal display. -- **InternalPrimaryDisplaySizePhysicalH** Retrieves the physical horizontal length of the display in mm. Used for calculating the diagonal length in inches . -- **InternalPrimaryDisplaySizePhysicalY** Retrieves the physical vertical length of the display in mm. Used for calculating the diagonal length in inches -- **InternalPrimaryDisplayType** Represents the type of technology used in the monitor, such as Plasma, LED, LCOS, etc. -- **NumberofExternalDisplays** Retrieves the number of external displays connected to the machine -- **NumberofInternalDisplays** Retrieves the number of internal displays in a machine. -- **VRAMDedicated** Retrieves the video RAM in MB. -- **VRAMDedicatedSystem** Retrieves the amount of memory on the dedicated video card. -- **VRAMSharedSystem** Retrieves the amount of RAM memory that the video card can use. - - -### Census.UserNLS - -This event sends data about the default app language, input, and display language preferences set by the user. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DefaultAppLanguage** The current user Default App Language. -- **DisplayLanguage** The current user preferred Windows Display Language. -- **HomeLocation** The current user location, which is populated using GetUserGeoId() function. -- **KeyboardInputLanguages** The Keyboard input languages installed on the device. -- **SpeechInputLanguages** The Speech Input languages installed on the device. - - -### Census.VM - -This event sends data indicating whether virtualization is enabled on the device, and its various characteristics. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **HyperVisor** Retrieves whether the current OS is running on top of a Hypervisor. -- **IOMMUPresent** Represents if an input/output memory management unit (IOMMU) is present. -- **IsVirtualDevice** Retrieves that when the Hypervisor is Microsoft's Hyper-V Hypervisor or other Hv#1 Hypervisor, this field will be set to FALSE for the Hyper-V host OS and TRUE for any guest OS's. This field should not be relied upon for non-Hv#1 Hypervisors. -- **SLATSupported** Represents whether Second Level Address Translation (SLAT) is supported by the hardware. -- **VirtualizationFirmwareEnabled** Represents whether virtualization is enabled in the firmware. - - -### Census.WU - -This event sends data about the Windows update server and other App store policies. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **AppraiserGatedStatus** Indicates whether a device has been gated for upgrading. -- **AppStoreAutoUpdate** Retrieves the Appstore settings for auto upgrade. (Enable/Disabled). -- **AppStoreAutoUpdateMDM** Retrieves the App Auto Update value for MDM: 0 - Disallowed. 1 - Allowed. 2 - Not configured. Default: [2] Not configured -- **AppStoreAutoUpdatePolicy** Retrieves the Microsoft Store App Auto Update group policy setting -- **DelayUpgrade** Retrieves the Windows upgrade flag for delaying upgrades. -- **OSRollbackCount** The number of times feature updates have rolled back on the device. -- **OSRolledBack** A flag that represents when a feature update has rolled back during setup. -- **OSUninstalled** A flag that represents when a feature update is uninstalled on a device . -- **OSWUAutoUpdateOptions** Retrieves the auto update settings on the device. -- **UninstallActive** A flag that represents when a device has uninstalled a previous upgrade recently. -- **UpdateServiceURLConfigured** Retrieves if the device is managed by Windows Server Update Services (WSUS). -- **WUDeferUpdatePeriod** Retrieves if deferral is set for Updates. -- **WUDeferUpgradePeriod** Retrieves if deferral is set for Upgrades. -- **WUDODownloadMode** Retrieves whether DO is turned on and how to acquire/distribute updates Delivery Optimization (DO) allows users to deploy previously downloaded Windows Update (WU) updates to other devices on the same network. -- **WUMachineId** Retrieves the Windows Update (WU) Machine Identifier. -- **WUPauseState** Retrieves Windows Update setting to determine if updates are paused. -- **WUServer** Retrieves the HTTP(S) URL of the WSUS server that is used by Automatic Updates and API callers (by default). - - -### Census.Xbox - -This event sends data about the Xbox Console, such as Serial Number and DeviceId, to help keep Windows up to date. - -The following fields are available: - -- **XboxConsolePreferredLanguage** Retrieves the preferred language selected by the user on Xbox console. -- **XboxConsoleSerialNumber** Retrieves the serial number of the Xbox console. -- **XboxLiveDeviceId** Retrieves the unique device ID of the console. -- **XboxLiveSandboxId** Retrieves the developer sandbox ID if the device is internal to Microsoft. - - -## Common data extensions - -### Common Data Extensions.app - -Describes the properties of the running application. This extension could be populated by a client app or a web app. - -The following fields are available: - -- **asId** An integer value that represents the app session. This value starts at 0 on the first app launch and increments after each subsequent app launch per boot session. -- **env** The environment from which the event was logged. -- **expId** Associates a flight, such as an OS flight, or an experiment, such as a web site UX experiment, with an event. -- **id** Represents a unique identifier of the client application currently loaded in the process producing the event; and is used to group events together and understand usage pattern, errors by application. -- **userId** The userID as known by the application. -- **ver** Represents the version number of the application. Used to understand errors by Version, Usage by Version across an app. - - -### Common Data Extensions.container - -Describes the properties of the container for events logged within a container. - -The following fields are available: - -- **localId** The device ID as known by the client. -- **osVer** The operating system version. -- **type** The container type. Examples: Process or VMHost - - -### Common Data Extensions.cs - -Describes properties related to the schema of the event. - -The following fields are available: - -- **sig** A common schema signature that identifies new and modified event schemas. - - -### Common Data Extensions.device - -Describes the device-related fields. - -The following fields are available: - -- **deviceClass** Represents the classification of the device, the device “family”. For example, Desktop, Server, or Mobile. -- **localId** Represents a locally defined unique ID for the device, not the human readable device name. Most likely equal to the value stored at HKLM\Software\Microsoft\SQMClient\MachineId - - -### Common Data Extensions.Envelope - -Represents an envelope that contains all of the common data extensions. - -The following fields are available: - -- **appId** Represents a unique identifier of the client application currently loaded in the process producing the event; and is used to group events together and understand usage pattern, errors by application. -- **appVer** Represents the version number of the application. Used to understand errors by version and usage by version across an app. -- **cV** Represents the Correlation Vector: A single field for tracking partial order of related telemetry events across component boundaries. -- **data** Represents the optional unique diagnostic data for a particular event schema. -- **epoch** ID used to help distinguish events in the sequence by indicating the current boot session. -- **ext_app** Describes the properties of the running application. This extension could be populated by either a client app or a web app. See [Common Data Extensions.app](#common-data-extensionsapp). -- **ext_container** Describes the properties of the container for events logged within a container. See [Common Data Extensions.container](#common-data-extensionscontainer). -- **ext_cs** Describes properties related to the schema of the event. See [Common Data Extensions.cs](#common-data-extensionscs). -- **ext_device** Describes the device-related fields. See [Common Data Extensions.device](#common-data-extensionsdevice). -- **ext_os** Describes the operating system properties that would be populated by the client. See [Common Data Extensions.os](#common-data-extensionsos). -- **ext_user** Describes the fields related to a user. See [Common Data Extensions.user](#common-data-extensionsuser). -- **ext_utc** Describes the fields that might be populated by a logging library on Windows. See [Common Data Extensions.utc](#common-data-extensionsutc). -- **ext_xbl** Describes the fields related to XBOX Live. See [Common Data Extensions.xbl](#common-data-extensionsxbl). -- **flags** Represents a collection of bits that describe how the event should be processed by the Connected User Experience and Telemetry component pipeline. The lowest-order byte is the event persistence. The next byte is the event latency. -- **iKey** Represents an ID for applications or other logical groupings of events. -- **name** Represents the uniquely qualified name for the event. -- **os** The operating system name. -- **osVer** The operating system version. -- **popSample** Represents the effective sample rate for this event at the time it was generated by a client. -- **seqNum** Used to track the absolute order of uploaded events. -- **tags** A header for semi-managed extensions. -- **time** Represents the event date time in Coordinated Universal Time (UTC) when the event was generated on the client. This should be in ISO 8601 format. -- **ver** Represents the major and minor version of the extension. - - -### Common Data Extensions.os - -Describes some properties of the operating system. - -The following fields are available: - -- **bootId** An integer value that represents the boot session. This value starts at 0 on first boot after OS install and increments after every reboot. -- **expId** Represents the experiment ID. The standard for associating a flight, such as an OS flight (pre-release build), or an experiment, such as a web site UX experiment, with an event is to record the flight / experiment IDs in Part A of the common schema. -- **locale** Represents the locale of the operating system. - - -### Common Data Extensions.user - -Describes the fields related to a user. - -The following fields are available: - -- **authId** This is an ID of the user associated with this event that is deduced from a token such as a Microsoft Account ticket or an XBOX token. -- **localId** Represents a unique user identity that is created locally and added by the client. This is not the user's account ID. - - -### Common Data Extensions.utc - -Describes the properties that could be populated by a logging library on Windows. - -The following fields are available: - -- **aId** Represents the ETW ActivityId. Logged via TraceLogging or directly via ETW. -- **bSeq** Upload buffer sequence number in the format: buffer identifier:sequence number -- **cat** Represents a bitmask of the ETW Keywords associated with the event. -- **cpId** The composer ID, such as Reference, Desktop, Phone, Holographic, Hub, IoT Composer. -- **flags** Represents the bitmap that captures various Windows specific flags. -- **mon** Combined monitor and event sequence numbers in the format: monitor sequence : event sequence -- **op** Represents the ETW Op Code. -- **raId** Represents the ETW Related ActivityId. Logged via TraceLogging or directly via ETW. -- **sqmId** The Windows SQM (Software Quality Metrics—a precursor of Windows 10 Diagnostic Data collection) device identifier. -- **stId** Represents the Scenario Entry Point ID. This is a unique GUID for each event in a diagnostic scenario. This used to be Scenario Trigger ID. -- **tickets** An array of strings that refer back to a key in the X-Tickets http header that the client uploaded along with a batch of events. - - -### Common Data Extensions.xbl - -Describes the fields that are related to XBOX Live. - -The following fields are available: - -- **claims** Any additional claims whose short claim name hasn't been added to this structure. -- **did** XBOX device ID -- **dty** XBOX device type -- **dvr** The version of the operating system on the device. -- **eid** A unique ID that represents the developer entity. -- **exp** Expiration time -- **ip** The IP address of the client device. -- **nbf** Not before time -- **pid** A comma separated list of PUIDs listed as base10 numbers. -- **sbx** XBOX sandbox identifier -- **sid** The service instance ID. -- **sty** The service type. -- **tid** The XBOX Live title ID. -- **tvr** The XBOX Live title version. -- **uts** A bit field, with 2 bits being assigned to each user ID listed in xid. This field is omitted if all users are retail accounts. -- **xid** A list of base10-encoded XBOX User IDs. - - -## Common data fields - -### Ms.Device.DeviceInventoryChange - -Describes the installation state for all hardware and software components available on a particular device. - -The following fields are available: - -- **action** The change that was invoked on a device inventory object. -- **inventoryId** Device ID used for Compatibility testing -- **objectInstanceId** Object identity which is unique within the device scope. -- **objectType** Indicates the object type that the event applies to. -- **syncId** A string used to group StartSync, EndSync, Add, and Remove operations that belong together. This field is unique by Sync period and is used to disambiguate in situations where multiple agents perform overlapping inventories for the same object. - - -## Component-based Servicing events - -### CbsServicingProvider.CbsCapabilitySessionFinalize - -This event provides information about the results of installing or uninstalling optional Windows content from Windows Update. The data collected with this event is used to help keep Windows up to date. - - - -### CbsServicingProvider.CbsCapabilitySessionPended - -This event provides information about the results of installing optional Windows content that requires a reboot to keep Windows up to date. - - - -### CbsServicingProvider.CbsQualityUpdateInstall - -This event reports on the performance and reliability results of installing Servicing content from Windows Update to keep Windows up to date. - - - -### CbsServicingProvider.CbsSelectableUpdateChangeV2 - -This event reports the results of enabling or disabling optional Windows Content to keep Windows up to date. - -The following fields are available: - -- **applicableUpdateState** Indicates the highest applicable state of the optional content. -- **buildVersion** The build version of the package being installed. -- **clientId** The name of the application requesting the optional content change. -- **downloadSource** Indicates if optional content was obtained from Windows Update or a locally accessible file. -- **downloadtimeInSeconds** Indicates if optional content was obtained from Windows Update or a locally accessible file. -- **executionID** A unique ID used to identify events associated with a single servicing operation and not reused for future operations. -- **executionSequence** A counter that tracks the number of servicing operations attempted on the device. -- **firstMergedExecutionSequence** The value of a pervious executionSequence counter that is being merged with the current operation, if applicable. -- **firstMergedID** A unique ID of a pervious servicing operation that is being merged with this operation, if applicable. -- **hrDownloadResult** The return code of the download operation. -- **hrStatusUpdate** The return code of the servicing operation. -- **identityHash** A pseudonymized (hashed) identifier for the Windows Package that is being installed or uninstalled. -- **initiatedOffline** Indicates whether the operation was performed against an offline Windows image file or a running instance of Windows. -- **majorVersion** The major version of the package being installed. -- **minorVersion** The minor version of the package being installed. -- **packageArchitecture** The architecture of the package being installed. -- **packageLanguage** The language of the package being installed. -- **packageName** The name of the package being installed. -- **rebootRequired** Indicates whether a reboot is required to complete the operation. -- **revisionVersion** The revision number of the package being installed. -- **stackBuild** The build number of the servicing stack binary performing the installation. -- **stackMajorVersion** The major version number of the servicing stack binary performing the installation. -- **stackMinorVersion** The minor version number of the servicing stack binary performing the installation. -- **stackRevision** The revision number of the servicing stack binary performing the installation. -- **updateName** The name of the optional Windows Operation System feature being enabled or disabled. -- **updateStartState** A value indicating the state of the optional content before the operation started. -- **updateTargetState** A value indicating the desired state of the optional content. - - -## Content Delivery Manager events - -### Microsoft.Windows.ContentDeliveryManager.ProcessCreativeEvent - -This event sends tracking data about the reliability of interactions with Windows spotlight content, to help keep Windows up to date. - -The following fields are available: - -- **creativeId** A serialized string containing the ID of the offer being rendered, the ID of the current rotation period, the ID of the surface/ring/market combination, the offer index in the current branch, the ID of the batch, the rotation period length, and the expiration timestamp. -- **eventToken** In there are multiple item offers, such as Start tiles, this indicates which tile the event corresponds to. -- **eventType** A code that indicates the type of creative event, such a impression, click, positive feedback, negative feedback, etc. -- **placementId** Name of surface, such as LockScreen or Start. - - -### Microsoft.Windows.ContentDeliveryManager.ReportPlacementHealth - -This event sends aggregated client health data, summarizing information about the state of offers on a device, to help keep Windows up to date. - -The following fields are available: - -- **dataVersion** Schema version of the event that is used to determine what serialized content is available for placementReportedInfo and trackingInfo fields. -- **healthResult** A code that identifies user account health status as Unknown, Healthy, Unhealthy. -- **healthStateFlags** A code that represents a set of flags used to group devices in a health/unhealthy way. For example, Unhealthy, Healthy, RefreshNotScheduled, EmptyResponse, RenderedDefault, RenderFailure, RenderDelayed, and CacheEmpty. -- **placementHealthId** A code that represents which surface's health is being reported. For example, Default, LockScreen, LockScreenOverlay, StartMenu, SoftLanding, DefaultStartLayout1, DefaultStartLayout2, OemPreInstalledApps, FeatureManagement, SilentInstalledApps, NotificationChannel, SuggestedPenAppsSubscribedContent, TestAppSubscribedContent, OneDriveSyncNamespaceSubscribedContent, OneDriveLocalNamespaceSubscribedContent, OneDriveSyncNamespaceInternalSubscribedContent, and OneDriveLocalNamespaceInternalSubscribedContent. -- **placementReportedInfo** Serialized information that contains domain-specific health information written by each surface, such as lastUpportunityTime, lastOpportunityReportedTime, expectedExpirationTime, and rotationPeriod. -- **trackingInfo** Serialized information that contains domain-specific health information written by the content delivery manager, such as lastRefreshTime, nextRefreshTime, nextUpdateTime,renderPriorToLastOpportunityTime, lastRenderTime, lastImpressionTime, lastRulesRegistrationTime, registrationTime, lastRefreshBatchCount, lastEligibleCreativeCount, availableAppSlotCount, placeholderAppSlotCount, lastRenderSuccess, lastRenderDefault, isEnabled. - - -### Microsoft.Windows.ContentDeliveryManager.ReportPlacementState - -This event sends data about the opt-out state of a device or user that uses Windows spotlight, to help keep Windows up to date. - -The following fields are available: - -- **isEnabled** Indicates if the surface is enable to receive offers. -- **lastImpressionTime** The time when the last offer was seen. -- **lastRenderedCreativeId** ID of the last offer rendered by the surface. -- **lastRenderedTime** The time that the last offer was rendered. -- **nextRotationTime** The time in which the next offer will be rendered. -- **placementName** Name of surface, such as LockScreen or Start. -- **placementStateReportFlags** Flags that represent if the surface is capable of receiving offers, such as off by edition, off by Group Policy, off by user choice. -- **selectedPlacementId** ID of the surface/ring/markey combination, such as Lock-Internal-en-US. - - -## Diagnostic data events - -### TelClientSynthetic.AuthorizationInfo_RuntimeTransition - -This event is fired by UTC at state transitions to signal what data we are allowed to collect. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CanAddMsaToMsTelemetry** True if UTC is allowed to add MSA user identity onto telemetry from the OS provider groups. -- **CanCollectAnyTelemetry** True if UTC is allowed to collect non-OS telemetry. Non-OS telemetry is responsible for providing its own opt-in mechanism. -- **CanCollectCoreTelemetry** True if UTC is allowed to collect data which is tagged with both MICROSOFT_KEYWORD_CRITICAL_DATA and MICROSOFT_EVENTTAG_CORE_DATA. -- **CanCollectHeartbeats** True if UTC is allowed to collect heartbeats. -- **CanCollectOsTelemetry** True if UTC is allowed to collect telemetry from the OS provider groups (often called Microsoft Telemetry). -- **CanPerformDiagnosticEscalations** True if UTC is allowed to perform all scenario escalations. -- **CanPerformTraceEscalations** True if UTC is allowed to perform scenario escalations with tracing actions. -- **CanReportScenarios** True if UTC is allowed to load and report scenario completion, failure, and cancellation events. -- **PreviousPermissions** Bitmask representing the previously configured permissions since the telemetry opt-in level was last changed. -- **TransitionFromEverythingOff** True if this transition is moving from not allowing core telemetry to allowing core telemetry. - - -### TelClientSynthetic.AuthorizationInfo_Startup - -This event is fired by UTC at startup to signal what data we are allowed to collect. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CanAddMsaToMsTelemetry** True if UTC is allowed to add MSA user identity onto telemetry from the OS provider groups. -- **CanCollectAnyTelemetry** True if UTC is allowed to collect non-OS telemetry. Non-OS telemetry is responsible for providing its own opt-in mechanism. -- **CanCollectCoreTelemetry** True if UTC is allowed to collect data which is tagged with both MICROSOFT_KEYWORD_CRITICAL_DATA and MICROSOFT_EVENTTAG_CORE_DATA. -- **CanCollectHeartbeats** True if we can collect heartbeat telemetry, false otherwise. -- **CanCollectOsTelemetry** True if UTC is allowed to collect telemetry from the OS provider groups (often called Microsoft Telemetry). -- **CanPerformDiagnosticEscalations** True if UTC is allowed to perform all scenario escalations. -- **CanPerformTraceEscalations** True if UTC is allowed to perform scenario escalations with tracing actions. -- **CanReportScenarios** True if we can report scenario completions, false otherwise. -- **PreviousPermissions** Bitmask representing the previously configured permissions since the telemetry client was last started. -- **TransitionFromEverythingOff** True if this transition is moving from not allowing core telemetry to allowing core telemetry. - - -### TelClientSynthetic.ConnectivityHeartBeat_0 - -This event sends data about the connectivity status of the Connected User Experience and Telemetry component that uploads telemetry events. If an unrestricted free network (such as Wi-Fi) is available, this event updates the last successful upload time. Otherwise, it checks whether a Connectivity Heartbeat event was fired in the past 24 hours, and if not, it sends an event. A Connectivity Heartbeat event is also sent when a device recovers from costed network to free network. This event is fired by UTC during periods of no network as a heartbeat signal, to keep Windows secure and up to date. - -The following fields are available: - -- **CensusExitCode** Returns last execution codes from census client run. -- **CensusStartTime** Returns timestamp corresponding to last successful census run. -- **CensusTaskEnabled** Returns Boolean value for the census task (Enable/Disable) on client machine. -- **LastConnectivityLossTime** Retrieves the last time the device lost free network. -- **NetworkState** Retrieves the network state: 0 = No network. 1 = Restricted network. 2 = Free network. -- **NoNetworkTime** Retrieves the time spent with no network (since the last time) in seconds. -- **RestrictedNetworkTime** The total number of seconds with restricted network during this heartbeat period. - - -### TelClientSynthetic.HeartBeat_5 - -This event sends data about the health and quality of the diagnostic data from the given device, to help keep Windows up to date. It also enables data analysts to determine how 'trusted' the data is from a given device. - -The following fields are available: - -- **AgentConnectionErrorsCount** The number of non-timeout errors associated with the host/agent channel. -- **CensusExitCode** The last exit code of the Census task. -- **CensusStartTime** The time of the last Census run. -- **CensusTaskEnabled** Indicates whether Census is enabled. -- **ConsumerDroppedCount** The number of events dropped by the consumer layer of the telemetry client. -- **CriticalDataDbDroppedCount** The number of critical data sampled events that were dropped at the database layer. -- **CriticalDataThrottleDroppedCount** The number of critical data sampled events that were dropped because of throttling. -- **CriticalOverflowEntersCounter** The number of times a critical overflow mode was entered into the event database. -- **DbCriticalDroppedCount** The total number of dropped critical events in the event database. -- **DbDroppedCount** The number of events that were dropped because the database was full. -- **DecodingDroppedCount** The number of events dropped because of decoding failures. -- **EnteringCriticalOverflowDroppedCounter** The number of events that was dropped because a critical overflow mode was initiated. -- **EtwDroppedBufferCount** The number of buffers dropped in the CUET ETW session. -- **EtwDroppedCount** The number of events dropped by the ETW layer of the telemetry client. -- **EventSubStoreResetCounter** The number of times the event database was reset. -- **EventSubStoreResetSizeSum** The total size of the event database across all resets reports in this instance. -- **EventsUploaded** The number of events that have been uploaded. -- **Flags** Flags that indicate device state, such as network, battery, and opt-in state. -- **FullTriggerBufferDroppedCount** The number of events that were dropped because the trigger buffer was full. -- **HeartBeatSequenceNumber** A monotonically increasing heartbeat counter. -- **InvalidHttpCodeCount** The number of invalid HTTP codes received from Vortex. -- **LastAgentConnectionError** The last non-timeout error that happened in the host/agent channel. -- **LastEventSizeOffender** The name of the last event that exceeded the maximum event size. -- **LastInvalidHttpCode** The last invalid HTTP code received from Vortex. -- **MaxActiveAgentConnectionCount** The maximum number of active agents during this heartbeat timeframe. -- **MaxInUseScenarioCounter** The soft maximum number of scenarios loaded by the Connected User Experience and Telemetry component. -- **PreviousHeartBeatTime** The time of last heartbeat event. This allows chaining of events. -- **SettingsHttpAttempts** The number of attempts to contact the OneSettings service. -- **SettingsHttpFailures** The number of failures from contacting the OneSettings service. -- **ThrottledDroppedCount** The number of events dropped due to throttling of noisy providers. -- **UploaderDroppedCount** The number of events dropped by the uploader layer of the telemetry client. -- **VortexFailuresTimeout** The number of timeout failures received from Vortex. -- **VortexHttpAttempts** The number of attempts to contact the Vortex service. -- **VortexHttpFailures4xx** The number of 400-499 error codes received from Vortex. -- **VortexHttpFailures5xx** The number of 500-599 error codes received from Vortex. - - -### TelClientSynthetic.HeartBeat_Aria_5 - -This event is the telemetry client ARIA heartbeat. - - - -### TelClientSynthetic.HeartBeat_Seville_5 - -This event is sent by the universal telemetry client (UTC) as a heartbeat signal for Sense. - - - -### TelClientSynthetic.TailoredExperiencesWithDiagnosticDataUpdate - -This event is triggered when UTC determines it needs to send information about personalization settings of the user. - - - -## 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: - -- **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? -- **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. - - -## Failover Clustering events - -### Microsoft.Windows.Server.FailoverClusteringCritical.ClusterSummary2 - -This event returns information about how many resources and of what type are in the server cluster. This data is collected to keep Windows Server safe, secure, and up to date. The data includes information about whether hardware is configured correctly, if the software is patched correctly, and assists in preventing crashes by attributing issues (like fatal errors) to workloads and system configurations. - -The following fields are available: - -- **autoAssignSite** The cluster parameter: auto site. -- **autoBalancerLevel** The cluster parameter: auto balancer level. -- **autoBalancerMode** The cluster parameter: auto balancer mode. -- **blockCacheSize** The configured size of the block cache. -- **ClusterAdConfiguration** The ad configuration of the cluster. -- **clusterAdType** The cluster parameter: mgmt_point_type. -- **clusterDumpPolicy** The cluster configured dump policy. -- **clusterFunctionalLevel** The current cluster functional level. -- **clusterGuid** The unique identifier for the cluster. -- **clusterWitnessType** The witness type the cluster is configured for. -- **countNodesInSite** The number of nodes in the cluster. -- **crossSiteDelay** The cluster parameter: CrossSiteDelay. -- **crossSiteThreshold** The cluster parameter: CrossSiteThreshold. -- **crossSubnetDelay** The cluster parameter: CrossSubnetDelay. -- **crossSubnetThreshold** The cluster parameter: CrossSubnetThreshold. -- **csvCompatibleFilters** The cluster parameter: ClusterCsvCompatibleFilters. -- **csvIncompatibleFilters** The cluster parameter: ClusterCsvIncompatibleFilters. -- **csvResourceCount** The number of resources in the cluster. -- **currentNodeSite** The name configured for the current site for the cluster. -- **dasModeBusType** The direct storage bus type of the storage spaces. -- **downLevelNodeCount** The number of nodes in the cluster that are running down-level. -- **drainOnShutdown** Specifies whether a node should be drained when it is shut down. -- **dynamicQuorumEnabled** Specifies whether dynamic Quorum has been enabled. -- **enforcedAntiAffinity** The cluster parameter: enforced anti affinity. -- **genAppNames** The win32 service name of a clustered service. -- **genSvcNames** The command line of a clustered genapp. -- **hangRecoveryAction** The cluster parameter: hang recovery action. -- **hangTimeOut** Specifies the “hang time out” parameter for the cluster. -- **isCalabria** Specifies whether storage spaces direct is enabled. -- **isMixedMode** Identifies if the cluster is running with different version of OS for nodes. -- **isRunningDownLevel** Identifies if the current node is running down-level. -- **logLevel** Specifies the granularity that is logged in the cluster log. -- **logSize** Specifies the size of the cluster log. -- **lowerQuorumPriorityNodeId** The cluster parameter: lower quorum priority node ID. -- **minNeverPreempt** The cluster parameter: minimum never preempt. -- **minPreemptor** The cluster parameter: minimum preemptor priority. -- **netftIpsecEnabled** The parameter: netftIpsecEnabled. -- **NodeCount** The number of nodes in the cluster. -- **nodeId** The current node number in the cluster. -- **nodeResourceCounts** Specifies the number of node resources. -- **nodeResourceOnlineCounts** Specifies the number of node resources that are online. -- **numberOfSites** The number of different sites. -- **numNodesInNoSite** The number of nodes not belonging to a site. -- **plumbAllCrossSubnetRoutes** The cluster parameter: plumb all cross subnet routes. -- **preferredSite** The preferred site location. -- **privateCloudWitness** Specifies whether a private cloud witness exists for this cluster. -- **quarantineDuration** The quarantine duration. -- **quarantineThreshold** The quarantine threshold. -- **quorumArbitrationTimeout** In the event of an arbitration event, this specifies the quorum timeout period. -- **resiliencyLevel** Specifies the level of resiliency. -- **resourceCounts** Specifies the number of resources. -- **resourceTypeCounts** Specifies the number of resource types in the cluster. -- **resourceTypes** Data representative of each resource type. -- **resourceTypesPath** Data representative of the DLL path for each resource type. -- **sameSubnetDelay** The cluster parameter: same subnet delay. -- **sameSubnetThreshold** The cluster parameter: same subnet threshold. -- **secondsInMixedMode** The amount of time (in seconds) that the cluster has been in mixed mode (nodes with different operating system versions in the same cluster). -- **securityLevel** The cluster parameter: security level. -- **sharedVolumeBlockCacheSize** Specifies the block cache size for shared for shared volumes. -- **shutdownTimeoutMinutes** Specifies the amount of time it takes to time out when shutting down. -- **upNodeCount** Specifies the number of nodes that are up (online). -- **useClientAccessNetworksForCsv** The cluster parameter: use client access networks for CSV. -- **vmIsolationTime** The cluster parameter: VM isolation time. -- **witnessDatabaseWriteTimeout** Specifies the timeout period for writing to the quorum witness database. - - -## 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.UninstallGoBackButtonClicked - -This event sends basic metadata about the starting point of uninstalling a feature update, which helps ensure customers can safely revert to a well-known state if the update caused any problems. - - - -## 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 - -### ChecksumDictionary - -This event provides the list of values sent by each object type. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **Key** The object type being described. -- **Value** The number of objects of this type that were sent. - - -### COMPID - -This event provides a device's internal application compatible ID, a vendor-defined identification that Windows uses to match a device to an INF file. A device can have a list of compatible IDs associated with it. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **Order** The index of the array of compatible IDs for the device. -- **Value** The array of compatible IDs for the device. - - -### HWID - -This event provides a device's internal hardware ID, a vendor-defined identification that Windows uses to match a device to an INF file. In most cases, a device has associated with it a list of hardware IDs. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **Order** The index of the array of internal hardware IDs for the device. -- **Value** The array of internal hardware IDs for the device. - - -### InstallDateArpLastModified - -This event indicates the date the add/remove program (ARP) entry was last modified by an update. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **Order** The index of the ordered array. -- **Value** The value contained in the ordered array. - - -### InstallDateFromLinkFile - -This event provides the application installation date from the linked file. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **Order** The index of the ordered array. -- **Value** The value contained in the ordered array. - - -### InstallDateMsi - -This event provides the install date from the Microsoft installer (MSI) database. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **Order** The index of the ordered array. -- **Value** The value contained in the ordered array. - - -### Microsoft.Windows.Inventory.Core.AmiTelCacheChecksum - -This event captures basic checksum data about the device inventory items stored in the cache for use in validating data completeness for Microsoft.Windows.Inventory.Core events. The fields in this event may change over time, but they will always represent a count of a given object. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **Device** A count of device objects in cache. -- **DeviceCensus** A count of devicecensus objects in cache. -- **DriverPackageExtended** A count of driverpackageextended objects in cache. -- **File** A count of file objects in cache. -- **FileSigningInfo** A count of file signing objects in cache. -- **Generic** A count of generic objects in cache. -- **HwItem** A count of hwitem objects in cache. -- **InventoryApplication** A count of application objects in cache. -- **InventoryApplicationFile** A count of application file objects in cache. -- **InventoryDeviceContainer** A count of device container objects in cache. -- **InventoryDeviceInterface** A count of Plug and Play device interface objects in cache. -- **InventoryDeviceMediaClass** A count of device media objects in cache. -- **InventoryDevicePnp** A count of device Plug and Play objects in cache. -- **InventoryDriverBinary** A count of driver binary objects in cache. -- **InventoryDriverPackage** A count of device objects in cache. -- **Metadata** A count of metadata objects in cache. -- **Orphan** A count of orphan file objects in cache. -- **Programs** A count of program objects in cache. - - -### Microsoft.Windows.Inventory.Core.AmiTelCacheVersions - -This event sends inventory component versions for the Device Inventory data. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **aeinv** The version of the App inventory component. -- **aeinv.dll** The version of the App inventory component. -- **devinv** The file version of the Device inventory component. -- **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. The data collected with this event is used to keep Windows performing properly. - -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. The data collected with this event is used to keep Windows performing properly and up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **HiddenArp** Indicates whether a program hides itself from showing up in ARP. -- **InstallDate** The date the application was installed (a best guess based on folder creation date heuristics). -- **InstallDateArpLastModified** The date of the registry ARP key for a given application. Hints at install date but not always accurate. Passed as an array. Example: 4/11/2015 00:00:00 See [InstallDateArpLastModified](#installdatearplastmodified). -- **InstallDateFromLinkFile** The estimated date of install based on the links to the files. Passed as an array. See [InstallDateFromLinkFile](#installdatefromlinkfile). -- **InstallDateMsi** The install date if the application was installed via Microsoft Installer (MSI). Passed as an array. See [InstallDateMsi](#installdatemsi). -- **InventoryVersion** The version of the inventory file generating the events. -- **Language** The language code of the program. -- **MsiPackageCode** A GUID that describes the MSI Package. Multiple 'Products' (apps) can make up an MsiPackage. -- **MsiProductCode** A GUID that describe the MSI Product. -- **Name** The name of the application. -- **OSVersionAtInstallTime** The four octets from the OS version at the time of the application's install. -- **PackageFullName** The package full name for a Store application. -- **ProgramInstanceId** A hash of the file IDs in an app. -- **Publisher** The Publisher of the application. Location pulled from depends on the 'Source' field. -- **RootDirPath** The path to the root directory where the program was installed. -- **Source** How the program was installed (for example, ARP, MSI, Appx). -- **StoreAppType** A sub-classification for the type of Microsoft Store app, such as UWP or Win8StoreApp. -- **Type** One of ("Application", "Hotfix", "BOE", "Service", "Unknown"). Application indicates Win32 or Appx app, Hotfix indicates app updates (KBs), BOE indicates it's an app with no ARP or MSI entry, Service indicates that it is a service. Application and BOE are the ones most likely seen. -- **Version** The version number of the program. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationDriverAdd - -This event represents what drivers an application installs. The data collected with this event is used to keep Windows performing properly. - - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationDriverStartSync - -The InventoryApplicationDriverStartSync event indicates that a new set of InventoryApplicationDriverStartAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationFrameworkAdd - -This event provides the basic metadata about the frameworks an application may depend on. The data collected with this event is used to keep Windows performing properly. - - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationFrameworkStartSync - -This event indicates that a new set of InventoryApplicationFrameworkAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationRemove - -This event indicates that a new set of InventoryDevicePnpAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryApplicationStartSync - -This event indicates that a new set of InventoryApplicationAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceContainerAdd - -This event sends basic metadata about a device container (such as a monitor or printer as opposed to a Plug and Play device). The data collected with this event is used to help keep Windows up to date and to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Categories** A comma separated list of functional categories in which the container belongs. -- **DiscoveryMethod** The discovery method for the device container. -- **FriendlyName** The name of the device container. -- **InventoryVersion** The version of the inventory file generating the events. -- **IsActive** Is the device connected, or has it been seen in the last 14 days? -- **IsConnected** For a physically attached device, this value is the same as IsPresent. For wireless a device, this value represents a communication link. -- **IsMachineContainer** Is the container the root device itself? -- **IsNetworked** Is this a networked device? -- **IsPaired** Does the device container require pairing? -- **Manufacturer** The manufacturer name for the device container. -- **ModelId** A unique model ID. -- **ModelName** The model name. -- **ModelNumber** The model number for the device container. -- **PrimaryCategory** The primary category for the device container. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceContainerRemove - -This event indicates that the InventoryDeviceContainer object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceContainerStartSync - -This event indicates that a new set of InventoryDeviceContainerAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceInterfaceAdd - -This event retrieves information about what sensor interfaces are available on the device. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Accelerometer3D** Indicates if an Accelerator3D sensor is found. -- **ActivityDetection** Indicates if an Activity Detection sensor is found. -- **AmbientLight** Indicates if an Ambient Light sensor is found. -- **Barometer** Indicates if a Barometer sensor is found. -- **Custom** Indicates if a Custom sensor is found. -- **FloorElevation** Indicates if a Floor Elevation sensor is found. -- **GeomagneticOrientation** Indicates if a Geo Magnetic Orientation sensor is found. -- **GravityVector** Indicates if a Gravity Detector sensor is found. -- **Gyrometer3D** Indicates if a Gyrometer3D sensor is found. -- **Humidity** Indicates if a Humidity sensor is found. -- **InventoryVersion** The version of the inventory file generating the events. -- **LinearAccelerometer** Indicates if a Linear Accelerometer sensor is found. -- **Magnetometer3D** Indicates if a Magnetometer3D sensor is found. -- **Orientation** Indicates if an Orientation sensor is found. -- **Pedometer** Indicates if a Pedometer sensor is found. -- **Proximity** Indicates if a Proximity sensor is found. -- **RelativeOrientation** Indicates if a Relative Orientation sensor is found. -- **SimpleDeviceOrientation** Indicates if a Simple Device Orientation sensor is found. -- **Temperature** Indicates if a Temperature sensor is found. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceInterfaceStartSync - -This event indicates that a new set of InventoryDeviceInterfaceAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceMediaClassAdd - -This event sends additional metadata about a Plug and Play device that is specific to a particular class of devices. The data collected with this event is used to help keep Windows up to date and performing properly while reducing overall size of data payload. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Audio_CaptureDriver** The Audio device capture driver endpoint. -- **Audio_RenderDriver** The Audio device render driver endpoint. -- **InventoryVersion** The version of the inventory file generating the events. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceMediaClassRemove - -This event indicates that the InventoryDeviceMediaClass object represented by the objectInstanceId is no longer present. This event is used to understand a PNP device that is specific to a particular class of devices. The data collected with this event is used to help keep Windows up to date and performing properly while reducing overall size of data payload. - -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. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDevicePnpAdd - -This event represents the basic metadata about a plug and play (PNP) device and its associated driver. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Class** The device setup class of the driver loaded for the device. -- **ClassGuid** The device class unique identifier of the driver package loaded on the device. -- **COMPID** The list of “Compatible IDs” for this device. See [COMPID](#compid). -- **ContainerId** The system-supplied unique identifier that specifies which group(s) the device(s) installed on the parent (main) device belong to. -- **Description** The description of the device. -- **DeviceState** Identifies the current state of the parent (main) device. -- **DriverId** The unique identifier for the installed driver. -- **DriverName** The name of the driver image file. -- **DriverPackageStrongName** The immediate parent directory name in the Directory field of InventoryDriverPackage. -- **DriverVerDate** The date of the driver loaded for the device -- **DriverVerVersion** The version of the driver loaded for the device -- **Enumerator** Identifies the bus that enumerated the device. -- **HWID** A list of hardware IDs for the device. See [HWID](#hwid). -- **Inf** The name of the INF file (possibly renamed by the OS, such as oemXX.inf). -- **InstallState** The device installation state. For a list of values, see: [Device Install State](/windows-hardware/drivers/ddi/wdm/ne-wdm-_device_install_state) -- **InventoryVersion** The version number of the inventory process generating the events. -- **LowerClassFilters** The identifiers of the Lower Class filters installed for the device. -- **LowerFilters** The identifiers of the Lower filters installed for the device. -- **Manufacturer** The manufacturer of the device. -- **MatchingID** The Hardware ID or Compatible ID that Windows uses to install a device instance. -- **Model** Identifies the model of the device. -- **objectInstanceId** Deprecated. The Device Instance ID of the device (uniquely identifies a device in the system). Example: pci\ven_8086&dev_0085&subsys_13118086&rev_34\4&2dded11c&0&00e1 -- **ParentId** The Device Instance ID of the parent of the device. -- **ProblemCode** The error code currently returned by the device, if applicable. -- **Provider** Identifies the device provider. -- **Service** The name of the device service. -- **STACKID** The list of hardware IDs for the stack. See [STACKID](#stackid). -- **UpperClassFilters** The identifiers of the Upper Class filters installed for the device. -- **UpperFilters** The identifiers of the Upper filters installed for the device. - - -### Microsoft.Windows.Inventory.Core.InventoryDevicePnpRemove - -This event indicates that the InventoryDevicePnpRemove object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDevicePnpStartSync - -This event indicates that a new set of InventoryDevicePnpAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceUsbHubClassAdd - -This event sends basic metadata about the USB hubs on the device. The data collected with this event is used to keep Windows performing properly. - - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceUsbHubClassStartSync - -This event indicates that a new set of InventoryDeviceUsbHubClassAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - - - -### Microsoft.Windows.Inventory.Core.InventoryDriverBinaryAdd - -This event sends basic metadata about driver binaries running on the system. The data collected with this event is used to help keep Windows up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **DriverCheckSum** The checksum of the driver file. -- **DriverCompany** The company name that developed the driver. -- **DriverInBox** Is the driver included with the operating system? -- **DriverIsKernelMode** Is it a kernel mode driver? -- **DriverName** The file name of the driver. -- **DriverPackageStrongName** The strong name of the driver package -- **DriverSigned** Is the driver signed? -- **DriverTimeStamp** The low 32 bits of the time stamp of the driver file. -- **DriverType** A bitfield of driver attributes: 1. define DRIVER_MAP_DRIVER_TYPE_PRINTER 0x0001. 2. define DRIVER_MAP_DRIVER_TYPE_KERNEL 0x0002. 3. define DRIVER_MAP_DRIVER_TYPE_USER 0x0004. 4. define DRIVER_MAP_DRIVER_IS_SIGNED 0x0008. 5. define DRIVER_MAP_DRIVER_IS_INBOX 0x0010. 6. define DRIVER_MAP_DRIVER_IS_WINQUAL 0x0040. 7. define DRIVER_MAP_DRIVER_IS_SELF_SIGNED 0x0020. 8. define DRIVER_MAP_DRIVER_IS_CI_SIGNED 0x0080. 9. define DRIVER_MAP_DRIVER_HAS_BOOT_SERVICE 0x0100. 10. define DRIVER_MAP_DRIVER_TYPE_I386 0x10000. 11. define DRIVER_MAP_DRIVER_TYPE_IA64 0x20000. 12. define DRIVER_MAP_DRIVER_TYPE_AMD64 0x40000. 13. define DRIVER_MAP_DRIVER_TYPE_ARM 0x100000. 14. define DRIVER_MAP_DRIVER_TYPE_THUMB 0x200000. 15. define DRIVER_MAP_DRIVER_TYPE_ARMNT 0x400000. 16. define DRIVER_MAP_DRIVER_IS_TIME_STAMPED 0x800000. -- **DriverVersion** The version of the driver file. -- **ImageSize** The size of the driver file. -- **Inf** The name of the INF file. -- **InventoryVersion** The version of the inventory file generating the events. -- **Product** The product name that is included in the driver file. -- **ProductVersion** The product version that is included in the driver file. -- **Service** The name of the service that is installed for the device. -- **WdfVersion** The Windows Driver Framework version. - - -### Microsoft.Windows.Inventory.Core.InventoryDriverBinaryRemove - -This event indicates that the InventoryDriverBinary object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverBinaryStartSync - -This event indicates that a new set of InventoryDriverBinaryAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverPackageAdd - -This event sends basic metadata about drive packages installed on the system. The data collected with this event is used to help keep Windows up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Class** The class name for the device driver. -- **ClassGuid** The class GUID for the device driver. -- **Date** The driver package date. -- **Directory** The path to the driver package. -- **Inf** The INF name of the driver package. -- **InventoryVersion** The version of the inventory file generating the events. -- **Provider** The provider for the driver package. -- **SubmissionId** The HLK submission ID for the driver package. -- **Version** The version of the driver package. - - -### Microsoft.Windows.Inventory.Core.InventoryDriverPackageRemove - -This event indicates that the InventoryDriverPackageRemove object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverPackageStartSync - -This event indicates that a new set of InventoryDriverPackageAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.General. InventoryMiscellaneousMemorySlotArrayInfoRemove - -This event indicates that this particular data object represented by the ObjectInstanceId is no longer present. The data collected with this event is used to help keep Windows up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.General.AppHealthStaticAdd - -This event sends details collected for a specific application on the source device. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **AhaVersion** The binary version of the App Health Analyzer tool. -- **ApplicationErrors** The count of application errors from the event log. -- **Bitness** The architecture type of the application (16 Bit or 32 bit or 64 bit). -- **device_level** Various JRE/JAVA versions installed on a particular device. -- **ExtendedProperties** Attribute used for aggregating all other attributes under this event type. -- **Jar** Flag to determine if an app has a Java JAR file dependency. -- **Jre** Flag to determine if an app has JRE framework dependency. -- **Jre_version** JRE versions an app has declared framework dependency for. -- **Name** Name of the application. -- **NonDPIAware** Flag to determine if an app is non-DPI aware -- **NumBinaries** Count of all binaries (.sys,.dll,.ini) from application install location. -- **RequiresAdmin** Flag to determine if an app requests admin privileges for execution. -- **RequiresAdminv2** Additional flag to determine if an app requests admin privileges for execution. -- **RequiresUIAccess** Flag to determine if an app is based on UI features for accessibility. -- **VB6** Flag to determine if an app is based on VB6 framework. -- **VB6v2** Additional flag to determine if an app is based on VB6 framework. -- **Version** Version of the application. -- **VersionCheck** Flag to determine if an app has a static dependency on OS version. -- **VersionCheckv2** Additional flag to determine if an app has a static dependency on OS version. - - -### Microsoft.Windows.Inventory.General.AppHealthStaticStartSync - -This event indicates the beginning of a series of AppHealthStaticAdd events. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **AllowTelemetry** Indicates the presence of the 'allowtelemetry' command line argument. -- **CommandLineArgs** Command line arguments passed when launching the App Health Analyzer executable. -- **Enhanced** Indicates the presence of the 'enhanced' command line argument. -- **StartTime** UTC date and time at which this event was sent. - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousMemorySlotArrayInfoAdd - -This event provides basic information about active memory slots on the device. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Capacity** Memory size in bytes -- **Manufacturer** Name of the DRAM manufacturer -- **Model** Model and sub-model of the memory -- **Slot** Slot to which the DRAM is plugged into the motherboard. -- **Speed** The configured memory slot speed in MHz. -- **Type** Reports DDR as an enumeration value as per the DMTF SMBIOS standard version 3.3.0, section 7.18.2. -- **TypeDetails** Reports Non-volatile as a bit flag enumeration as per the DMTF SMBIOS standard version 3.3.0, section 7.18.3. - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousMemorySlotArrayInfoStartSync - -This diagnostic event indicates a new sync is being generated for this object type. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoAdd - -This event provides data on Unified Update Platform (UUP) products and what version they are at. The data collected with this event is used to keep Windows performing properly. - - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoRemove - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. The data collected with this event is used to keep Windows performing properly. - - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoStartSync - -This is a diagnostic event that indicates a new sync is being generated for this object type. The data collected with this event is used to keep Windows performing properly. - - - -### Microsoft.Windows.Inventory.Indicators.Checksum - -This event summarizes the counts for the InventoryMiscellaneousUexIndicatorAdd events. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **ChecksumDictionary** A count of each operating system indicator. See [ChecksumDictionary](#checksumdictionary). -- **PCFP** Equivalent to the InventoryId field that is found in other core events. - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorAdd - -This event represents the basic metadata about the OS indicators installed on the system. The data collected with this event helps ensure the device is up to date and keeps Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **IndicatorValue** The indicator value. -- **Value** Describes an operating system indicator that may be relevant for the device upgrade. - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorEndSync - -This event indicates that a new set of InventoryMiscellaneousUexIndicatorAdd events has been sent. The data collected with this event helps ensure the device is up to date and keeps Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorRemove - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. This event is used to understand the OS indicators installed on the system. The data collected with this event helps ensure the device is current and Windows is up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorStartSync - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. This event is used to understand the OS indicators installed on the system. The data collected with this event helps ensure the device is current and Windows is up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### STACKID - -This event provides the internal compatible ID for the stack. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **Order** The index of the ordered array. -- **Value** The value contained in the ordered array. - - -## Kernel events - -### IO - -This event indicates the number of bytes read from or read by the OS and written to or written by the OS upon system startup. - -The following fields are available: - -- **BytesRead** The total number of bytes read from or read by the OS upon system startup. -- **BytesWritten** The total number of bytes written to or written by the OS upon system startup. - - -### Microsoft.Windows.Kernel.BootEnvironment.OsLaunch - -This event includes basic data about the Operating System, collected during Boot and used to evaluate the success of the upgrade process. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **BootApplicationId** This field tells us what the OS Loader Application Identifier is. -- **BootAttemptCount** The number of consecutive times the boot manager has attempted to boot into this operating system. -- **BootSequence** The current Boot ID, used to correlate events related to a particular boot session. -- **BootStatusPolicy** Identifies the applicable Boot Status Policy. -- **BootType** Identifies the type of boot (e.g.: "Cold", "Hiber", "Resume"). -- **EventTimestamp** Seconds elapsed since an arbitrary time point. This can be used to identify the time difference in successive boot attempts being made. -- **FirmwareResetReasonEmbeddedController** Reason for system reset provided by firmware. -- **FirmwareResetReasonEmbeddedControllerAdditional** Additional information on system reset reason provided by firmware if needed. -- **FirmwareResetReasonPch** Reason for system reset provided by firmware. -- **FirmwareResetReasonPchAdditional** Additional information on system reset reason provided by firmware if needed. -- **FirmwareResetReasonSupplied** Flag indicating that a reason for system reset was provided by firmware. -- **IO** Amount of data written to and read from the disk by the OS Loader during boot. See [IO](#io). -- **LastBootSucceeded** Flag indicating whether the last boot was successful. -- **LastShutdownSucceeded** Flag indicating whether the last shutdown was successful. -- **MenuPolicy** Type of advanced options menu that should be shown to the user (Legacy, Standard, etc.). -- **RecoveryEnabled** Indicates whether recovery is enabled. -- **UserInputTime** The amount of time the loader application spent waiting for user input. - - -### Microsoft.Windows.Kernel.Power.OSStateChange - -This event denotes the transition between operating system states (e.g., On, Off, Sleep, etc.). By using this event with Windows Analytics, organizations can use this to help monitor reliability and performance of managed devices. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **AcPowerOnline** If "TRUE," the device is using AC power. If "FALSE," the device is using battery power. -- **ActualTransitions** This will give the actual transitions number -- **BatteryCapacity** Maximum battery capacity in mWh -- **BatteryCharge** Current battery charge as a percentage of total capacity -- **BatteryDischarging** Flag indicating whether the battery is discharging or charging -- **BootId** Monotonically increasing boot ID, reset on upgrades. -- **BootTimeUTC** Boot time in UTC file time. -- **EventSequence** Monotonically increasing event number for OsStateChange events logged during this boot. -- **LastStateTransition** The previous state transition on the device. -- **LastStateTransitionSub** The previous state subtransition on the device. -- **StateDurationMS** Milliseconds spent in the state being departed -- **StateTransition** Transition type PowerOn=1, Shutdown, Suspend, Resume, Heartbeat. -- **StateTransitionSub** Subtransition type Normal=1, Reboot, Hiberboot, Standby, Hibernate, ConnectedStandby, Reserved, HybridSleep. -- **TotalDurationMS** Total time device has been up in milliseconds in wall clock time. -- **TotalUptimeMS** Total time device has been on (not in a suspended state) in milliseconds. -- **TransitionsToOn** TransitionsToOn increments each time the system successfully completes a system sleep event, and is sent as part of the PowerTransitionEnd ETW event. -- **UptimeDeltaMS** Duration in last state in milliseconds. - - -## Migration events - -### Microsoft.Windows.MigrationCore.MigObjectCountDLUsr - -This event returns data to track the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - - - -### Microsoft.Windows.MigrationCore.MigObjectCountKFSys - -This event returns data about the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - - - -### Microsoft.Windows.MigrationCore.MigObjectCountKFUsr - -This event returns data to track the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - - - -## OneDrive events - -### Microsoft.OneDrive.Sync.Setup.APIOperation - -This event includes basic data about install and uninstall OneDrive API operations. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **APIName** The name of the API. -- **HResult** Indicates the result code of the event -- **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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **ComponentName** The name of the dependent component. -- **isInstalled** Is the dependent component installed? - - -### Microsoft.OneDrive.Sync.Updater.OfficeRegistration - -This event indicates the status of the OneDrive integration with Microsoft Office. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **isValid** Is the Microsoft Office registration valid? - - -### 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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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.RepairResult - -The event determines the result of the installation repair. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **hr** The HResult of the operation. - - -### Microsoft.OneDrive.Sync.Updater.SetupBinaryDownloadHResult - -This event indicates the status when downloading the OneDrive setup file. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **hr** The HResult of the operation. - - -### Microsoft.OneDrive.Sync.Updater.UpdateOverallResult - -This event sends information describing the result of the update. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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.UpdateTierReg - -This event determines status of the update tier registry values. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **regReadEnterpriseHr** The HResult of the enterprise reg read value. -- **regReadTeamHr** The HResult of the team reg read value. - - -### Microsoft.OneDrive.Sync.Updater.UpdateXmlDownloadHResult - -This event determines the status when downloading the OneDrive update configuration file. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **winInetError** The HResult of the operation. - - -## Privacy logging notification events - -### Microsoft.Windows.Shell.PrivacyNotifierLogging.PrivacyNotifierCompleted - -This event returns data to report the efficacy of a single-use tool to inform users impacted by a known issue and to take corrective action to address the issue. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **cleanupTask** Indicates whether the task that launched the dialog should be cleaned up. -- **cleanupTaskResult** The return code of the attempt to clean up the task used to show the dialog. -- **deviceEvaluated** Indicates whether the device was eligible for evaluation of a known issue. -- **deviceImpacted** Indicates whether the device was impacted by a known issue. -- **modalAction** The action the user took on the dialog that was presented to them. -- **modalResult** The return code of the attempt to show a dialog to the user explaining the issue. -- **resetSettingsResult** The return code of the action to correct the known issue. - - -## Quality Update Assistant events - -### Microsoft.Windows.QualityUpdateAssistant.Applicability - -This event sends basic info on whether the device should be updated to the latest cumulative update. The data collected with this event is used to help keep Windows up to date and secure. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Applicability check for quality update assistant. - - -### Microsoft.Windows.QualityUpdateAssistant.DeviceReadinessCheck - -This event sends basic info on whether the device is ready to download the latest cumulative update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Device readiness check for quality update assistant. - - -### Microsoft.Windows.QualityUpdateAssistant.Download - -This event sends basic info when download of the latest cumulative update begins. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter that indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Download of latest cumulative update payload. - - -### Microsoft.Windows.QualityUpdateAssistant.Install - -This event sends basic info on the result of the installation of the latest cumulative update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Install of latest cumulative update payload. - - -## Remediation events - -### Microsoft.Windows.Remediation.Applicable - -This event indicates whether Windows Update sediment remediations need to be applied to the sediment device to keep Windows up to date. A sediment device is one that has been on a previous OS version for an extended period. The remediations address issues on the system that prevent the device from receiving OS updates. - -The following fields are available: - -- **ActionName** The name of the action to be taken by the plug-in. -- **AppraiserBinariesValidResult** Indicates whether the 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 detected 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** Indicates the AC Line Status of the device. -- **RemediationNoisyHammerAutoStartCount** The number of times Auto UA 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 Auto UA ran. -- **RemediationNoisyHammerGetCurrentSize** Size in MB of the $GetCurrent folder. -- **RemediationNoisyHammerIsInstalled** TRUE if the Auto UA is installed. -- **RemediationNoisyHammerLastTaskRunResult** The result from the last Auto UA task run. -- **RemediationNoisyHammerMeteredNetwork** TRUE if the machine is on a metered network. -- **RemediationNoisyHammerTaskEnabled** TRUE if the Auto UA task is enabled. -- **RemediationNoisyHammerTaskExists** TRUE if the Auto UA task exists. -- **RemediationNoisyHammerTaskTriggerEnabledCount** Indicates whether the task has the count trigger enabled. -- **RemediationNoisyHammerUAExitCode** The exit code of the Update Assistant. -- **RemediationNoisyHammerUAExitState** The exit code of the Update Assistant. -- **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 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 is sent when Windows Update sediment remediations have completed on the sediment device to keep Windows up to date. A sediment device is one that has been on a previous OS version for an extended period. The remediations address issues on the system that prevent the device from receiving OS 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. -- **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. -- **HResult** The result of the event execution. -- **LatestState** The final state of the plug-in component. -- **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. -- **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 OneSettings 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. -- **RemediationImpersonateUserSucceeded** TRUE if the user was successfully impersonated. -- **RemediationNoisyHammerTaskKickOffIsSuccess** TRUE if the Auto UA 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. -- **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 name of the Service Health plug-in. -- **StartComponentCleanupTask** TRUE if the Component Cleanup task started successfully. -- **TotalSizeofOrphanedInstallerFilesInMegabytes** The size of any orphaned Windows Installer files, measured in Megabytes. -- **TotalSizeofStoreCacheAfterCleanupInMegabytes** The size of the Microsoft Store cache after cleanup, measured in Megabytes. -- **TotalSizeofStoreCacheBeforeCleanupInMegabytes** The size of the Microsoft Store cache (prior to cleanup), measured in Megabytes. -- **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 Update Session Orchestrator (USO) scan is past the threshold (late). -- **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. -- **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. - - -### Microsoft.Windows.Remediation.DiskCleanUnExpectedErrorEvent - -This event indicates that an unexpected error occurred during an update and provides information to help address the issue. The data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows 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. -- **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 data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows 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. -- **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 data collected with this event is used to help keep Windows up to date. - -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 Auto UA 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 is sent when Windows Update sediment remediations have started on the sediment device to keep Windows up to date. A sediment device is one that has been on a previous OS version for an extended period. The remediations address issues on the system that prevent the device from receiving OS updates. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. -- **PackageVersion** The version 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.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 - -This event provides data on the current Appraiser status of the device to help ensure Windows is up to date. - -The following fields are available: - -- **ErrorCode** The value of the Return Code for the registry query. -- **GStatus** The pre-upgrade GStatus value. -- **PayloadVersion** The version information for the remediation component. -- **RegKeyName** The name of the registry subkey where data was found for this event. -- **Time** The system time at which the event began. -- **UpgEx** The pre-upgrade UpgEx value. - - -### Microsoft.Windows.Sediment.Info.BinaryInfo - -This event provides information about the binary returned by the Operating System Remediation System Service (OSRSS) to help ensure Windows is up to date. - -The following fields are available: - -- **BinaryPath** The sanitized name of the system binary from which the data was gathered. -- **ErrorCode** The value of the return code for querying the version from the binary. -- **FileVerBuild** The binary’s build number. -- **FileVerMajor** The binary’s major version number. -- **FileVerMinor** The binary’s minor version number. -- **FileVerRev** The binary’s revision number. -- **PayloadVersion** The version information for the remediation component. -- **Time** The system time at which the event began. - - -### Microsoft.Windows.Sediment.Info.DetailedState - -This event is sent when detailed state information is needed from an update trial run. The data collected with this event is used to help keep Windows up to date. - - - -### Microsoft.Windows.Sediment.Info.DownloadServiceError - -This event provides information when the Download Service returns an error. The information provided helps keep Windows up to date. - -The following fields are available: - -- **Architecture** The platform architecture used to identify the correct download payload. -- **BuildNumber** The starting build number used to identify the correct download payload. -- **Edition** The Operating System Edition used to identify the correct download payload. -- **Error** The description of the error encountered. -- **LanguageCode** The system User Interface Language used to identify the correct download payload. -- **Stack** Details about the error encountered. -- **WorkingDirectory** The folder location (path) downloader was attempting to say the payload to. - - -### Microsoft.Windows.Sediment.Info.DownloadServiceProgress - -This event indicates the progress of the downloader in 1% increments. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **Percentage** The amount successfully downloaded, measured as a percentage of the whole. - - -### Microsoft.Windows.Sediment.Info.Error - -This event indicates an error in the updater payload. This information assists in keeping Windows up to date. - -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. -- **ReleaseVer** The version information for the component in which the error occurred. -- **Time** The system time at which the error occurred. - - -### Microsoft.Windows.Sediment.Info.PhaseChange - -The event indicates progress made by the updater. This information assists in keeping Windows up to date. - -The following fields are available: - -- **NewPhase** The phase of progress made. -- **ReleaseVer** The version information for the component in which the change occurred. -- **Time** The system time at which the phase chance occurred. - - -### Microsoft.Windows.Sediment.Info.ServiceInfo - -This event provide information about the system service for which data is being gathered by the Operating System Remediation System Service (OSRSS) to help ensure Windows is up to date. - -The following fields are available: - -- **ErrorCode** The value returned by the error for querying the service information. -- **PayloadVersion** The version information for the remediation component. -- **ServiceName** The name of the system service for which data was gathered. -- **ServiceStatus** The status of the specified service. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.Info.Uptime - -This event provides information about how long the device has been operating. This information helps ensure Windows is up to date. - -The following fields are available: - -- **Days** The number of days the device has been on. -- **Hours** The number of hours the device has been on. -- **Minutes** The number of minutes the device has been on. -- **PayloadVersion** The version information for the remediation component. -- **Seconds** The number of seconds the machine has been on. -- **Ticks** The number of system clock “ticks” the device has been on. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.ApplicabilityCheckFailed - -This event returns data relating to the error state after one of the applicability checks for the installer component of the Operating System Remediation System Service (OSRSS) has failed. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **CheckName** The name of the applicability check that failed. -- **InstallerVersion** The version information for the installer component. -- **Time** The system timestamp for when the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.AttemptingUpdate - -This event indicates the Operating System Remediation System Service (OSRSS) installer is attempting an update to itself. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.BinaryUpdated - -This event indicates the Operating System Remediation System Service (OSRSS) updated installer binaries with new binaries as part of its self-update process. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.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 data collected with this event is used to help keep Windows up to date. - -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. -- **InstallerVersion** The version information of the Installer component. -- **LineNumber** The line number in the code file at which the error occurred. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.InstallerLaunched - -This event indicates the Operating System Remediation System Service (OSRSS) has launched. The information provided helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.ServiceInstalled - -This event indicates the Operating System Remediation System Service (OSRSS) successfully installed the Installer Component. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.ServiceRestarted - -This event indicates the Operating System Remediation System Service (OSRSS) has restarted after installing an updated version of itself. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.ServiceStarted - -This event indicates the Operating System Remediation System Service (OSRSS) has started after installing an updated version of itself. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.ServiceStopped - -This event indicates the Operating System Remediation System Service (OSRSS) was stopped by a self-updated to install an updated version of itself. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.UninstallerCompleted - -This event indicates the Operating System Remediation System Service (OSRSS) successfully uninstalled the installed version as part of a self-update. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.UninstallerLaunched - -This event indicates the Operating System Remediation System Service (OSRSS) successfully started the Uninstaller as part of a self-update. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.UpdaterCompleted - -This event indicates the Operating System Remediation System Service (OSRSS) successfully completed the self-update operation. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.UpdaterLaunched - -This event indicates the Operating System Remediation System Service (OSRSS) successfully launched the self-updater after downloading it. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.SedimentLauncher.Applicable - -This event is sent when the Windows Update sediment remediations launcher finds that an applicable plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help keep Windows up to date. - -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 - -This event is sent when the Windows Update sediment remediations launcher finishes running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help keep Windows up to date. - -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. -- **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 data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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 is sent when the Windows Update sediment remediations launcher starts running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help 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. -- **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 data collected with this event is used to help keep Windows up to date. - -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. - - -### Microsoft.Windows.SedimentService.Applicable - -This event is sent when the Windows Update sediment remediations service finds that an applicable plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help 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. -- **IsSelfUpdateEnabledInOneSettings** Indicates if self update is enabled in One Settings. -- **IsSelfUpdateNeeded** Indicates if self update is needed. -- **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 is sent when the Windows Update sediment remediations service finishes running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help 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. -- **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.Error - -This event indicates whether an error condition occurred in the plug-in. The data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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 is sent when the Windows Update sediment remediations service starts running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help keep Windows 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.Windows.SedimentService.wilResult - -This event provides the result from the Windows internal library. The data collected with this event is used to help keep Windows up to date. - -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 - -This event sends basic metadata about the SetupPlatform update installation process, to help keep Windows up to date. - -The following fields are available: - -- **ActivityId** Provides a unique ID to correlate events that occur between a activity start event, and a stop event -- **ActivityName** Provides a friendly name of the package type that belongs to the ActivityId (Setup, LanguagePack, GDR, Driver, etc.) -- **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 -- **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, 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** Retrieves the value associated with the corresponding event name (Field Name). For example: For time related events this will include the system time. - - -## Shared PC events - -### Microsoft.Windows.SharedPC.AccountManager.DeleteUserAccount - -Activity for deletion of a user account for devices set up for Shared PC mode as part of the Transient Account Manager to help keep Windows up to date. Deleting unused user accounts on shared devices frees up disk space to improve Windows Update success rates. - -The following fields are available: - -- **accountType** The type of account that was deleted. Example: AD, Azure AD, or Local -- **userSid** The security identifier of the account. -- **wilActivity** Windows Error Reporting data collected when there is a failure in deleting a user account with the Transient Account Manager. See [wilActivity](#wilactivity). - - -### Microsoft.Windows.SharedPC.AccountManager.SinglePolicyEvaluation - -Activity for run of the Transient Account Manager that determines if any user accounts should be deleted for devices set up for Shared PC mode to help keep Windows up to date. Deleting unused user accounts on shared devices frees up disk space to improve Windows Update success rates - -The following fields are available: - -- **evaluationTrigger** When was the Transient Account Manager policies ran? Example: At log off or during maintenance hours -- **totalAccountCount** The number of accounts on a device after running the Transient Account Manager policies. -- **wilActivity** Windows Error Reporting data collected when there is a failure in evaluating accounts to be deleted with the Transient Account Manager. See [wilActivity](#wilactivity). - - -### wilActivity - -This event provides a Windows Internal Library context used for Product and Service diagnostics. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **callContext** The function where the failure occurred. -- **currentContextId** The ID of the current call context where the failure occurred. -- **currentContextMessage** The message of the current call context where the failure occurred. -- **currentContextName** The name of the current call context where the failure occurred. -- **failureCount** The number of failures for this failure ID. -- **failureId** The ID of the failure that occurred. -- **failureType** The type of the failure that occurred. -- **fileName** The file name where the failure occurred. -- **function** The function where the failure occurred. -- **hresult** The HResult of the overall activity. -- **lineNumber** The line number where the failure occurred. -- **message** The message of the failure that occurred. -- **module** The module where the failure occurred. -- **originatingContextId** The ID of the originating call context that resulted in the failure. -- **originatingContextMessage** The message of the originating call context that resulted in the failure. -- **originatingContextName** The name of the originating call context that resulted in the failure. -- **threadId** The ID of the thread on which the activity is executing. - - -### wilResult - -This event provides a Windows Internal Library context used for Product and Service diagnostics. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **callContext** The call context stack where failure occurred. -- **currentContextId** The ID of the current call context where the failure occurred. -- **currentContextMessage** The message of the current call context where the failure occurred. -- **currentContextName** The name of the current call context where the failure occurred. -- **failureCount** The number of failures for this failure ID. -- **failureId** The ID of the failure that occurred. -- **failureType** The type of the failure that occurred. -- **fileName** The file name where the failure occurred. -- **function** The function where the failure occurred. -- **hresult** The HResult of the overall activity. -- **lineNumber** The line number where the failure occurred. -- **message** The message of the failure that occurred. -- **module** The module where the failure occurred. -- **originatingContextId** The ID of the originating call context that resulted in the failure. -- **originatingContextMessage** The message of the originating call context that resulted in the failure. -- **originatingContextName** The name of the originating call context that resulted in the failure. -- **threadId** The ID of the thread on which the activity is executing. - - -## SIH events - -### SIHEngineTelemetry.EvalApplicability - -This event is sent when targeting logic is evaluated to determine if a device is eligible for a given action. The data collected with this event is used to help keep Windows up to date. - - - -### SIHEngineTelemetry.ExecuteAction - -This event is triggered with SIH attempts to execute (e.g. install) the update or action in question. Includes important information like if the update required a reboot. The data collected with this event is used to help keep Windows up to date. - - - -### SIHEngineTelemetry.PostRebootReport - -This event reports the status of an action following a reboot, should one have been required. The data collected with this event is used to help keep Windows up to date. - - - -## Software update events - -### SoftwareUpdateClientTelemetry.CheckForUpdates - -This event sends tracking data about the software distribution client check for content that is applicable to a device, to help keep Windows up to date. - -The following fields are available: - -- **ActivityMatchingId** Contains a unique ID identifying a single CheckForUpdates session from initialization to completion. -- **AllowCachedResults** Indicates if the scan allowed using cached results. -- **ApplicableUpdateInfo** Metadata for the updates which were detected as applicable -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The sku number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BranchReadinessLevel** The servicing branch configured on the device. -- **CachedEngineVersion** For self-initiated healing, the version of the SIH engine that is cached on the device. If the SIH engine does not exist, the value is null. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **CapabilityDetectoidGuid** The GUID for a hardware applicability detectoid that could not be evaluated. -- **CDNCountryCode** Two letter country abbreviation for the Content Distribution Network (CDN) location. -- **CDNId** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. -- **ClientVersion** The version number of the software distribution client. -- **Context** Gives context on where the error has occurred. Example: AutoEnable, GetSLSData, AddService, Misc, or Unknown -- **CurrentMobileOperator** The mobile operator the device is currently connected to. -- **DeferralPolicySources** Sources for any update deferral policies defined (GPO = 0x10, MDM = 0x100, Flight = 0x1000, UX = 0x10000). -- **DeferredUpdates** Update IDs which are currently being deferred until a later time -- **DeviceModel** What is the device model. -- **DriverError** The error code hit during a driver scan. This is 0 if no error was encountered. -- **DriverExclusionPolicy** Indicates if the policy for not including drivers with Windows Update is enabled. -- **DriverSyncPassPerformed** Were drivers scanned this time? -- **EventInstanceID** A globally unique identifier for event instance. -- **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. -- **ExtendedMetadataCabUrl** Hostname that is used to download an update. -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough. -- **FailedUpdateGuids** The GUIDs for the updates that failed to be evaluated during the scan. -- **FailedUpdatesCount** The number of updates that failed to be evaluated during the scan. -- **FeatureUpdateDeferral** The deferral period configured for feature OS updates on the device (in days). -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FeatureUpdatePausePeriod** The pause duration configured for feature OS updates on the device (in days). -- **FlightBranch** The branch that a device is on if participating in flighting (pre-release builds). -- **FlightRing** The ring (speed of getting builds) that a device is on if participating in flighting (pre-release builds). -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **IntentPFNs** Intended application-set metadata for atomic update scenarios. -- **IPVersion** Indicates whether the download took place over IPv4 or IPv6 -- **IsWUfBDualScanEnabled** Indicates if Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Indicates if Windows Update for Business is enabled on the device. -- **MetadataIntegrityMode** The mode of the update transport metadata integrity check. 0-Unknown, 1-Ignoe, 2-Audit, 3-Enforce -- **MSIError** The last error that was encountered during a scan for updates. -- **NetworkConnectivityDetected** Indicates the type of network connectivity that was detected. 0 - IPv4, 1 - IPv6 -- **NumberOfApplicableUpdates** The number of updates which were ultimately deemed applicable to the system after the detection process is complete -- **NumberOfApplicationsCategoryScanEvaluated** The number of categories (apps) for which an app update scan checked -- **NumberOfLoop** The number of round trips the scan required -- **NumberOfNewUpdatesFromServiceSync** The number of updates which were seen for the first time in this scan -- **NumberOfUpdatesEvaluated** The total number of updates which were evaluated as a part of the scan -- **NumFailedMetadataSignatures** The number of metadata signatures checks which failed for new metadata synced down. -- **Online** Indicates if this was an online scan. -- **PausedUpdates** A list of UpdateIds which that currently being paused. -- **PauseFeatureUpdatesEndTime** If feature OS updates are paused on the device, this is the date and time for the end of the pause time window. -- **PauseFeatureUpdatesStartTime** If feature OS updates are paused on the device, this is the date and time for the beginning of the pause time window. -- **PauseQualityUpdatesEndTime** If quality OS updates are paused on the device, this is the date and time for the end of the pause time window. -- **PauseQualityUpdatesStartTime** If quality OS updates are paused on the device, this is the date and time for the beginning of the pause time window. -- **PhonePreviewEnabled** Indicates whether a phone was getting preview build, prior to flighting (pre-release builds) being introduced. -- **ProcessName** The process name of the caller who initiated API calls, in the event where CallerApplicationName was not provided. -- **QualityUpdateDeferral** The deferral period configured for quality OS updates on the device (in days). -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **QualityUpdatePausePeriod** The pause duration configured for quality OS updates on the device (in days). -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one -- **ScanDurationInSeconds** The number of seconds a scan took -- **ScanEnqueueTime** The number of seconds it took to initialize a scan -- **ServiceGuid** An ID which represents which service the software distribution client is checking for content (Windows Update, Microsoft 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). -- **SyncType** Describes the type of scan the event was -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **TargetMetadataVersion** For self-initiated healing, this is the target version of the SIH engine to download (if needed). If not, the value is null. -- **TotalNumMetadataSignatures** The total number of metadata signatures checks done for new metadata that was synced down. -- **WebServiceRetryMethods** Web service method requests that needed to be retried to complete operation. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. - - -### SoftwareUpdateClientTelemetry.Commit - -This event sends data on whether the Update Service has been called to execute an upgrade, to help keep Windows up to date. - -The following fields are available: - -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The sku number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BundleId** Identifier associated with the specific content bundle; should not be all zeros if the bundleID was found. -- **BundleRevisionNumber** Identifies the revision number of the content bundle -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client -- **ClientVersion** The version number of the software distribution client. -- **DeviceModel** What is the device model. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventScenario** State of call -- **EventType** Possible values are "Child", "Bundle", or "Driver". -- **FlightId** The specific ID of the flight the device is getting -- **HandlerType** Indicates the kind of content (app, driver, windows patch, etc.) -- **RevisionNumber** Unique revision number of Update -- **ServerId** Identifier for the service to which the software distribution client is connecting, such as Windows Update and Microsoft Store. -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **UpdateId** Unique Update ID -- **WUDeviceID** UniqueDeviceID - - -### SoftwareUpdateClientTelemetry.Download - -This event sends tracking data about the software distribution client download of the content for that update, to help keep Windows up to date. - -The following fields are available: - -- **ActiveDownloadTime** How long the download took, in seconds, excluding time where the update wasn't actively being downloaded. -- **AppXBlockHashValidationFailureCount** A count of the number of blocks that have failed validation after being downloaded. -- **AppXDownloadScope** Indicates the scope of the download for application content. -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The SKU number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BundleBytesDownloaded** Number of bytes downloaded for the specific content bundle. -- **BundleId** Identifier associated with the specific content bundle. -- **BundleRepeatFailFlag** Indicates whether this particular update bundle had previously failed to download. -- **BundleRevisionNumber** Identifies the revision number of the content bundle. -- **BytesDownloaded** How many bytes were downloaded for an individual piece of content (not the entire bundle). -- **CachedEngineVersion** The version of the “Self-Initiated Healing” (SIH) engine that is cached on the device, if applicable. -- **CallerApplicationName** The name provided by the application that initiated API calls into the software distribution client. -- **CbsDownloadMethod** Indicates whether the download was a full- or a partial-file download. -- **CDNCountryCode** Two letter country abbreviation for the Content Distribution Network (CDN) location. -- **CDNId** ID which defines which CDN the software distribution client downloaded the content from. -- **ClientManagedByWSUSServer** Indicates whether the client is managed by Windows Server Update Services (WSUS). -- **ClientVersion** The version number of the software distribution client. -- **CurrentMobileOperator** The mobile operator the device is currently connected to. -- **DeviceModel** The model of the device. -- **DeviceOEM** Identifies the Original Equipment Manufacturer (OEM) of the device. -- **DownloadPriority** Indicates whether a download happened at background, normal, or foreground priority. -- **DownloadScenarioId** A unique ID for a given download, used to tie together Windows Update and Delivery Optimizer events. -- **DownloadType** Differentiates the download type of “Self-Initiated Healing” (SIH) downloads between Metadata and Payload downloads. -- **Edition** Identifies the edition of Windows currently running on the device. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventNamespaceID** The ID of the test events environment. -- **EventScenario** Indicates the purpose for sending this event: whether because the software distribution just started downloading content; or whether it was cancelled, succeeded, or failed. -- **EventType** Identifies the type of the event (Child, Bundle, or Driver). -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough. -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FlightBranch** The branch that a device is on if participating in flighting (pre-release builds). -- **FlightBuildNumber** If this download was for a flight (pre-release build), this indicates the build number of that flight. -- **FlightId** The specific ID of the flight (pre-release build) the device is getting. -- **FlightRing** The ring (speed of getting builds) that a device is on if participating in flighting (pre-release builds). -- **HandlerType** Indicates what kind of content is being downloaded (app, driver, windows patch, etc.). -- **HardwareId** If this download was for a driver targeted to a particular device model, this ID indicates the model of the device. -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **HostName** The parent URL the content is downloading from. -- **IPVersion** Indicates whether the download took place over IPv4 or IPv6. -- **IsAOACDevice** Indicates whether the device is an Always On, Always Connected (AOAC) device. -- **IsDependentSet** Indicates whether a driver is a part of a larger System Hardware/Firmware Update -- **IsWUfBDualScanEnabled** Indicates if Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Indicates if Windows Update for Business is enabled on the device. -- **NetworkCostBitMask** A flag indicating the cost of the network (congested, fixed, variable, over data limit, roaming, etc.) used for downloading the update content. -- **NetworkRestrictionStatus** More general version of NetworkCostBitMask, specifying whether Windows considered the current network to be "metered." -- **PackageFullName** The package name of the content. -- **PhonePreviewEnabled** Indicates whether a phone was opted-in to getting preview builds, prior to flighting (pre-release builds) being introduced. -- **PlatformRole** The role of the OS platform (Desktop, Mobile, Workstation, etc.). -- **ProcessName** The process name of the caller who initiated API calls, in the event where CallerApplicationName was not provided. -- **ProcessorArchitecture** Processor architecture of the system (x86, AMD64, ARM). -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **RelatedCV** The Correlation Vector that was used before the most recent change to a new Correlation Vector. -- **RepeatFailFlag** Indicates whether this specific piece of content had previously failed to download. -- **RevisionNumber** The revision number of the specified piece of content. -- **ServiceGuid** A unique identifier for the service that the software distribution client is installing content for (Windows Update, Microsoft Store, etc). -- **Setup360Phase** Identifies the active phase of the upgrade download if the current download is for an Operating System upgrade. -- **ShippingMobileOperator** The mobile operator linked to the device when the device shipped. -- **StatusCode** Indicates the result of a Download event (success, cancellation, failure code HResult). -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **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. -- **TargetMetadataVersion** The version of the currently downloading (or most recently downloaded) package. -- **ThrottlingServiceHResult** Result code (success/failure) while contacting a web service to determine whether this device should download content yet. -- **TimeToEstablishConnection** Time (in milliseconds) it took to establish the connection prior to beginning downloaded. -- **TotalExpectedBytes** The total size (in Bytes) expected to be downloaded. -- **UpdateId** An identifier associated with the specific piece of content. -- **UpdateID** An identifier associated with the specific piece of content. -- **UpdateImportance** Indicates whether the content was marked as Important, Recommended, or Optional. -- **UsedDO** Indicates whether the download used the Delivery Optimization (DO) service. -- **UsedSystemVolume** Indicates whether the content was downloaded to the device's main system storage drive, or an alternate storage drive. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. -- **WUSetting** Indicates the users' current updating settings. - - -### SoftwareUpdateClientTelemetry.DownloadCheckpoint - -This event provides a checkpoint between each of the Windows Update download phases for UUP content. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client -- **ClientVersion** The version number of the software distribution client -- **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 -- **EventType** Possible values are "Child", "Bundle", "Release" or "Driver" -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough -- **FileId** A hash that uniquely identifies a file -- **FileName** Name of the downloaded file -- **FlightId** The unique identifier for each flight -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one -- **RevisionNumber** Unique revision number of Update -- **ServiceGuid** An ID which represents which service the software distribution client is checking for content (Windows Update, Microsoft Store, etc.) -- **StatusCode** Indicates the result of a CheckForUpdates event (success, cancellation, failure code HResult) -- **UpdateId** Unique Update ID -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue - - -### SoftwareUpdateClientTelemetry.DownloadHeartbeat - -This event allows tracking of ongoing downloads and contains data to explain the current state of the download. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **BundleID** Identifier associated with the specific content bundle. If this value is found, it shouldn't report as all zeros -- **BytesTotal** Total bytes to transfer for this content -- **BytesTransferred** Total bytes transferred for this content at the time of heartbeat -- **ConnectionStatus** Indicates the connectivity state of the device at the time of heartbeat -- **CurrentError** Last (transient) error encountered by the active download -- **DownloadFlags** Flags indicating if power state is ignored -- **DownloadState** Current state of the active download for this content (queued, suspended, or progressing) -- **IsNetworkMetered** Indicates whether Windows considered the current network to be ?metered" -- **MOAppDownloadLimit** Mobile operator cap on size of application downloads, if any -- **MOUpdateDownloadLimit** Mobile operator cap on size of operating system update downloads, if any -- **PowerState** Indicates the power state of the device at the time of heartbeat (DC, AC, Battery Saver, or Connected Standby) -- **RelatedCV** The previous correlation vector that was used by the client, before swapping with a new one -- **ResumeCount** Number of times this active download has resumed from a suspended state -- **ServiceID** Identifier for the service to which the software distribution client is connecting (Windows Update, Microsoft Store, etc) -- **SuspendCount** Number of times this active download has entered a suspended state -- **SuspendReason** Last reason for why this active download entered a suspended state - - -### SoftwareUpdateClientTelemetry.Install - -This event sends tracking data about the software distribution client installation of the content for that update, to help keep Windows up to date. - -The following fields are available: - -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The sku number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BundleBytesDownloaded** How many bytes were downloaded for the specific content bundle? -- **BundleId** Identifier associated with the specific content bundle; should not be all zeros if the bundleID was found. -- **BundleRepeatFailFlag** Has this particular update bundle previously failed to install? -- **BundleRevisionNumber** Identifies the revision number of the content bundle. -- **CachedEngineVersion** For self-initiated healing, the version of the SIH engine that is cached on the device. If the SIH engine does not exist, the value is null. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **CbsDownloadMethod** Was the download a full download or a partial download? -- **ClientManagedByWSUSServer** Is the client managed by Windows Server Update Services (WSUS)? -- **ClientVersion** The version number of the software distribution client. -- **CSIErrorType** The stage of CBS installation where it failed. -- **CurrentMobileOperator** Mobile operator that device is currently connected to. -- **DeviceModel** What is the device model. -- **DeviceOEM** What OEM does this device belong to. -- **DownloadPriority** The priority of the download activity. -- **DownloadScenarioId** A unique ID for a given download used to tie together Windows Update and DO events. -- **DriverPingBack** Contains information about the previous driver and system state. -- **Edition** Indicates the edition of Windows being used. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventNamespaceID** Indicates whether the event succeeded or failed. Has the format EventType+Event where Event is Succeeded, Cancelled, Failed, etc. -- **EventScenario** Indicates the purpose of sending this event - whether because the software distribution just started installing content, or whether it was cancelled, succeeded, or failed. -- **EventType** Possible values are Child, Bundle, or Driver. -- **ExtendedErrorCode** The extended error code. -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough. -- **FeatureUpdatePause** Are feature OS updates paused on the device? -- **FlightBranch** The branch that a device is on if participating in the Windows Insider Program. -- **FlightBuildNumber** If this installation was for a Windows Insider build, this is the build number of that build. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **FlightRing** The ring that a device is on if participating in the Windows Insider Program. -- **HandlerType** Indicates what kind of content is being installed. Example: app, driver, Windows update -- **HardwareId** If this install was for a driver targeted to a particular device model, this ID indicates the model of the device. -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **IntentPFNs** Intended application-set metadata for atomic update scenarios. -- **IsAOACDevice** Is it Always On, Always Connected? (Mobile device usage model) -- **IsDependentSet** Is the driver part of a larger System Hardware/Firmware update? -- **IsFinalOutcomeEvent** Does this event signal the end of the update/upgrade process? -- **IsFirmware** Is this update a firmware update? -- **IsSuccessFailurePostReboot** Did it succeed and then fail after a restart? -- **IsWUfBDualScanEnabled** Is Windows Update for Business dual scan enabled on the device? -- **IsWUfBEnabled** Is Windows Update for Business enabled on the device? -- **MergedUpdate** Was the OS update and a BSP update merged for installation? -- **MsiAction** The stage of MSI installation where it failed. -- **MsiProductCode** The unique identifier of the MSI installer. -- **PackageFullName** The package name of the content being installed. -- **PhonePreviewEnabled** Indicates whether a phone was getting preview build, prior to flighting being introduced. -- **PlatformRole** The PowerPlatformRole. -- **ProcessName** The process name of the caller who initiated API calls, in the event where CallerApplicationName was not provided. -- **ProcessorArchitecture** Processor architecture of the system (x86, AMD64, ARM). -- **QualityUpdatePause** Are quality OS updates paused on the device? -- **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 install. -- **RepeatSuccessInstallFlag** Indicates whether this specific piece of content had previously installed successful, for example if another user had already installed it. -- **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.). -- **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). -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **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. -- **TransactionCode** The ID which represents a given MSI installation -- **UpdateId** Unique update ID -- **UpdateID** An identifier associated with the specific piece of content. -- **UpdateImportance** Indicates whether a piece of content was marked as Important, Recommended, or Optional. -- **UsedSystemVolume** Indicates whether the content was downloaded and then installed from the device's main system storage drive, or an alternate storage drive. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. -- **WUSetting** Indicates the user's current updating settings. - - -### SoftwareUpdateClientTelemetry.SLSDiscovery - -This event sends data about the ability of Windows to discover the location of a backend server with which it must connect to perform updates or content acquisition, in order to determine disruptions in availability of update services and provide context for Windows Update errors. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **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 -- **HResult** Indicates the result code of the event (success, cancellation, failure code HResult) -- **IsBackground** Indicates whether the SLS discovery event took place in the foreground or background -- **NextExpirationTime** Indicates when the SLS cab expires -- **ServiceID** An ID which represents which service the software distribution client is connecting to (Windows Update, Microsoft Store, etc.) -- **SusClientId** The unique device ID controlled by the software distribution client -- **UrlPath** Path to the SLS cab that was downloaded -- **WUAVersion** The version number of the software distribution client - - -### SoftwareUpdateClientTelemetry.UpdateDetected - -This event sends data about an AppX app that has been updated from the Microsoft Store, including what app needs an update and what version/architecture is required, in order to understand and address problems with apps getting required updates. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **ApplicableUpdateInfo** Metadata for the updates which were detected as applicable. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **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.). -- **WUDeviceID** The unique device ID controlled by the software distribution client. - - -### SoftwareUpdateClientTelemetry.UpdateMetadataIntegrity - -This event helps to identify whether update content has been tampered with and protects against man-in-the-middle attack. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **EndpointUrl** The endpoint URL where the device obtains update metadata. This is used to distinguish between test, staging, and production environments. -- **EventScenario** The purpose of this event, such as scan started, scan succeeded, or scan failed. -- **ExtendedStatusCode** Secondary status code for certain scenarios where StatusCode was not specific enough. -- **LeafCertId** The integral ID from the FragmentSigning data for the certificate that failed. -- **ListOfSHA256OfIntermediateCerData** A semicolon delimited list of base64 encoding of hashes for the Base64CerData in the FragmentSigning data of an intermediate certificate. -- **MetadataIntegrityMode** The mode of the transport metadata integrity check. 0 = unknown; 1 = ignore; 2 = audit; 3 = enforce -- **MetadataSignature** A base64-encoded string of the signature associated with the update metadata (specified by revision ID). -- **RawMode** The raw unparsed mode string from the SLS response. This field is null if not applicable. -- **RawValidityWindowInDays** The raw unparsed validity window string in days of the timestamp token. This field is null if not applicable. -- **RevisionId** The revision ID for a specific piece of content. -- **RevisionNumber** The revision number for a specific piece of content. -- **ServiceGuid** Identifies the service to which the software distribution client is connected, Example: Windows Update or Microsoft Store -- **SHA256OfLeafCerData** A base64 encoding of the hash for the Base64CerData in the FragmentSigning data of the leaf certificate. -- **SHA256OfLeafCertPublicKey** A base64 encoding of the hash of the Base64CertData in the FragmentSigning data of the leaf certificate. -- **SHA256OfTimestampToken** An encoded string of the timestamp token. -- **SignatureAlgorithm** The hash algorithm for the metadata signature. -- **SLSPrograms** A test program to which a device may have opted in. Example: Insider Fast -- **StatusCode** The status code of the event. -- **TimestampTokenCertThumbprint** The thumbprint of the encoded timestamp token. -- **TimestampTokenId** The time this was created. It is encoded in a timestamp blob and will be zero if the token is malformed. -- **UpdateId** The update ID for a specific piece of content. -- **ValidityWindowInDays** The validity window that's in effect when verifying the timestamp. - - -## Update Assistant events - -### Microsoft.Windows.UpdateAssistant.Orchestrator.BlockingEventId - -The event sends basic info on the reason that Windows 10 was not updated due to compatibility issues, previous rollbacks, or admin policies. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **ApplicabilityBlockedReason** Blocked due to an applicability issue. -- **BlockWuUpgrades** The upgrade assistant is currently blocked. -- **clientID** An identification of the current release of Update Assistant. -- **CloverTrail** This device is Clovertrail. -- **DeviceIsMdmManaged** This device is MDM managed. -- **IsNetworkAvailable** If the device network is not available. -- **IsNetworkMetered** If network is metered. -- **IsSccmManaged** This device is managed by Configuration Manager. -- **NewlyInstalledOs** OS is newly installed quiet period. -- **PausedByPolicy** Updates are paused by policy. -- **RecoveredFromRS3** Previously recovered from RS3. -- **RS1UninstallActive** Blocked due to an active RS1 uninstall. -- **RS3RollBacks** Exceeded number of allowable RS3 rollbacks. -- **triggerTaskSource** Describe which task launches this instance. -- **WsusManaged** This device is WSUS managed. -- **ZeroExhaust** This device is zero exhaust. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.DeniedLaunchEventId - -The event sends basic info when a device was blocked or prevented from updating to the latest Windows 10 version. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **clientID** An identification of the current release of Update Assistant. -- **denyReason** All the reasons why the Update Assistant was prevented from launching. Bitmask with values from UpdateAssistant.cpp eUpgradeModeReason. -- **triggerTaskSource** Describe which task launches this instance. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.FailedLaunchEventId - -This event indicates that Update Assistant Orchestrator failed to launch Update Assistant. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **clientID** An identification of the current release of Update Assistant. -- **hResult** Error code of the Update Assistant Orchestrator failure. -- **triggerTaskSource** Describe which task launches this instance. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.FailedOneSettingsQueryEventId - -This event indicates that One Settings was not queried by update assistant. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **clientID** An identification of the current release of Update Assistant. -- **hResult** Error code of One Settings query failure. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.LaunchEventId - -This event sends basic information on whether the device should be updated to the latest Windows 10 version. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **autoStartRunCount** The auto start run count of Update Assistant. -- **clientID** The ID of the current release of Update Assistant. -- **launchMode** Indicates the type of launch performed. -- **launchTypeReason** A bitmask of all the reasons for type of launch. -- **triggerTaskSource** Indicates which task launches this instance. -- **UALaunchRunCount** Total number of times Update Assistant launched. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.RestoreEventId - -The event sends basic info on whether the Windows 10 update notification has previously launched. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **clientID** ID of the current release of Update Assistant. -- **restoreReason** All the reasons for the restore. -- **triggerTaskSource** Indicates which task launches this instance. - - -## Update events - -### Update360Telemetry.UpdateAgent_DownloadRequest - -This event sends data during the download request phase of updating Windows. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeletedCorruptFiles** Indicates if UpdateAgent found any corrupt payload files and whether the 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. -- **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. -- **PackageSizeCanonical** Size of canonical packages in bytes -- **PackageSizeDiff** Size of diff packages in bytes -- **PackageSizeExpress** Size of express packages in bytes -- **RangeRequestState** Represents the state of the download range request. -- **RelatedCV** Correlation vector value generated from the latest USO scan. -- **Result** Result of the download request phase of update. -- **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_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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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. The data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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.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 data collected with this event is used to help keep Windows secure and up to date. - -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.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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ErrorCode** The error code returned for the current install phase. -- **FlightId** Unique value for each Update Agent mode (same concept as InstanceId for Setup360). -- **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.UpdateAgentMitigationResult - -This event sends data indicating the result of each update agent mitigation. The data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - - - -### 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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - - - -### 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 data collected with this event is used to help keep Windows secure and up to date. - -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 - -This event indicates whether devices received additional or critical supplemental content during an OS Upgrade, to help keep Windows up to date and secure. - - - -### FacilitatorTelemetry.DUDownload - -This event returns data about the download of supplemental packages critical to upgrading a device to the next version of Windows. The data collected with this event is used to help keep Windows secure and up to date. - - - -### FacilitatorTelemetry.InitializeDU - -This event determines whether devices received additional or critical supplemental content during an OS upgrade. The data collected with this event is used to help keep Windows secure and up to date. - - - -### 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. -- **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. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -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. -- **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. -- **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. -- **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. -- **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. -- **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. -- **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. - - - -### Setup360Telemetry.Setup360MitigationResult - -This event sends data indicating the result of each setup mitigation. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Setup360Telemetry.Setup360MitigationSummary - -This event sends a summary of all the setup mitigations available for this update. The data collected with this event is used to help keep Windows secure and up to date. - - - -### 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 data collected with this event is used to help keep Windows secure and up to date. - - - -### 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. -- **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 Error Reporting events - -### Microsoft.Windows.WERVertical.OSCrash - -This event sends binary data from the collected dump file whenever 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). - - -### WerTraceloggingProvider.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. - -The following fields are available: - -- **AppName** The name of the app that crashed. -- **AppSessionGuid** The unique ID 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 crashed. -- **ExceptionCode** The exception code returned by the process that crashed. -- **ExceptionOffset** The address where the exception occurred. -- **Flags** Flags indicating how reporting is done. For example, queue the report, do not offer JIT debugging, do not terminate the process after reporting. -- **ModName** The module name of the process that crashed. -- **ModTimeStamp** The date time stamp of the module. -- **ModVersion** The module version of the process that crashed. -- **PackageFullName** The package name if the crashing application is packaged. -- **PackageRelativeAppId** The relative application ID if the crashing application is packaged. -- **ProcessArchitecture** The architecture of the system. -- **ProcessCreateTime** The time of creation of the process that crashed. -- **ProcessId** The ID of the process that crashed. -- **ReportId** A unique ID used to identify the report. This can be used to track the report. -- **TargetAppId** The target app ID. -- **TargetAppVer** The target app version. - - -## Windows Phone events - -### Microsoft.Windows.Phone.Telemetry.OnBoot.RebootReason - -This event lists the reboot reason when an app is going to reboot. - -The following fields are available: - -- **BootId** The system boot ID. -- **BoottimeSinceLastShutdown** The boot time since the last shutdown. -- **RebootReason** Reason for the reboot. - - -## Windows Store events - -### Microsoft.Windows.Store.Partner.ReportApplication - -This is report application event for Microsoft Store client. The data collected with this event is used to help keep Windows up to date and secure. - - - -### Microsoft.Windows.Store.StoreActivating - -This event sends tracking data about when the Store app activation via protocol URI is in progress, to help keep Windows up to date. - -The following fields are available: - -- **correlationVectorRoot** Identifies multiple events within a session/sequence. Initial value before incrementation or extension. -- **protocolUri** Protocol URI used to activate the store. -- **reason** The reason for activating the store. - - -### Microsoft.Windows.StoreAgent.Telemetry.AbortedInstallation - -This event is sent when an installation or update is canceled by a user or the system and is used to help keep Windows Apps up to date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** Number of retry attempts before it was canceled. -- **BundleId** The Item Bundle ID. -- **CategoryId** The Item Category ID. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed before this operation. -- **IntentPFNs** Intent Product Family Name -- **IsBundle** Is this a bundle? -- **IsInteractive** Was this requested by a user? -- **IsMandatory** Was this a mandatory update? -- **IsRemediation** Was this a remediation install? -- **IsRestore** Is this automatically restoring a previously acquired product? -- **IsUpdate** Flag indicating if this is an update. -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The product family name of the product being installed. -- **ProductId** The identity of the package or packages being installed. -- **SystemAttemptNumber** The total number of automatic attempts at installation before it was canceled. -- **UpdateId** Update ID (if this is an update) -- **UserAttemptNumber** The total number of user attempts at installation before it was canceled. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.BeginGetInstalledContentIds - -This event is sent when an inventory of the apps installed is started to determine whether updates for those apps are available. It's used to help keep Windows up-to-date and secure. - - - -### Microsoft.Windows.StoreAgent.Telemetry.BeginUpdateMetadataPrepare - -This event is sent when the Store Agent cache is refreshed with any available package updates. It's used to help keep Windows up-to-date and secure. - - - -### Microsoft.Windows.StoreAgent.Telemetry.CancelInstallation - -This event is sent when an app update or installation is canceled while in interactive mode. This can be canceled by the user or the system. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all package or packages to be downloaded and installed. -- **AttemptNumber** Total number of installation attempts. -- **BundleId** The identity of the Windows Insider build that is associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **IntentPFNs** Intent Product Family Name -- **IsBundle** Is this a bundle? -- **IsInteractive** Was this requested by a user? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this an automatic restore of a previously acquired product? -- **IsUpdate** Is this a product update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of all packages to be downloaded and installed. -- **PreviousHResult** The previous HResult code. -- **PreviousInstallState** Previous installation state before it was canceled. -- **ProductId** The name of the package or packages requested for installation. -- **RelatedCV** Correlation Vector of a previous performed action on this product. -- **SystemAttemptNumber** Total number of automatic attempts to install before it was canceled. -- **UserAttemptNumber** Total number of user attempts to install before it was canceled. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.CompleteInstallOperationRequest - -This event is sent at the end of app installations or updates to help keep Windows up-to-date and secure. - -The following fields are available: - -- **CatalogId** The Store Product ID of the app being installed. -- **HResult** HResult code of the action being performed. -- **IsBundle** Is this a bundle? -- **PackageFamilyName** The name of the package being installed. -- **ProductId** The Store Product ID of the product being installed. -- **SkuId** Specific edition of the item being installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndAcquireLicense - -This event is sent after the license is acquired when a product is being installed. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** Includes a set of package full names for each app that is part of an atomic set. -- **AttemptNumber** The total number of attempts to acquire this product. -- **BundleId** The bundle ID -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** HResult code to show the result of the operation (success/failure). -- **IntentPFNs** Intent Product Family Name -- **IsBundle** Is this a bundle? -- **IsInteractive** Did the user initiate the installation? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this happening after a device restore? -- **IsUpdate** Is this an update? -- **IsWin32** Flag indicating if this is a Win32app. -- **ParentBundledId** The product's parent bundle ID. -- **ParentBundleId** The parent bundle ID (if it's part of a bundle). -- **PFN** Product Family Name of the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The number of attempts by the system to acquire this product. -- **UpdateId** The update ID (if this is an update) -- **UserAttemptNumber** The number of attempts by the user to acquire this product -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndDownload - -This event is sent after an app is downloaded to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The name of all packages to be downloaded and installed. -- **AttemptNumber** Number of retry attempts before it was canceled. -- **BundleId** The identity of the Windows Insider build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **DownloadSize** The total size of the download. -- **ExtendedHResult** Any extended HResult error codes. -- **HResult** The result code of the last action performed. -- **IntentPFNs** Intent Product Family Name -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this initiated by the user? -- **IsMandatory** Is this a mandatory installation? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this a restore of a previously acquired product? -- **IsUpdate** Is this an update? -- **IsWin32** Flag indicating if this is a Win32 app (unused). -- **ParentBundleId** The parent bundle ID (if it's part of a bundle). -- **PFN** The Product Family Name of the app being download. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The number of attempts by the system to download. -- **UpdateId** Update ID (if this is an update) -- **UserAttemptNumber** The number of attempts by the user to download. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndFrameworkUpdate - -This event is sent when an app update requires an updated Framework package and the process starts to download it. It is used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed before this operation. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndGetInstalledContentIds - -This event is sent after sending the inventory of the products installed to determine whether updates for those products are available. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed before this operation. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndInstall - -This event is sent after a product has been installed to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **ExtendedHResult** The extended HResult error code. -- **HResult** The result code of the last action performed. -- **IntentPFNs** Intent Product Family Name -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this an interactive installation? -- **IsMandatory** Is this a mandatory installation? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this automatically restoring a previously acquired product? -- **IsUpdate** Is this an update? -- **IsWin32** Flag indicating if this a Win32 app (unused). -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** Product Family Name of the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UpdateId** Update ID (if this is an update) -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndScanForUpdates - -This event is sent after a scan for product updates to determine if there are packages to install. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IsApplicability** Is this request to only check if there are any applicable packages to install? -- **IsInteractive** Is this user requested? -- **IsOnline** Is the request doing an online check? - - -### Microsoft.Windows.StoreAgent.Telemetry.EndSearchUpdatePackages - -This event is sent after searching for update packages to install. It is used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IntentPFNs** The licensing identity of this package. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **IsWin32** Flag indicating if this a Win32 app (unused). -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UpdateId** Update ID (if this is an update) -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndStageUserData - -This event is sent after restoring user data (if any) that needs to be restored following a product install. It is used to keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The name of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IntentPFNs** The licensing identity of this package. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of system attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndUpdateMetadataPrepare - -This event happens after a scan for available app updates. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed. - - -### Microsoft.Windows.StoreAgent.Telemetry.FulfillmentComplete - -This event is sent at the end of an app install or update to help keep Windows up-to-date and secure. - -The following fields are available: - -- **FailedRetry** Indicates whether the installation or update retry was successful. -- **HResult** The HResult code of the operation. -- **PFN** The Package Family Name of the app that is being installed or updated. -- **ProductId** The product ID of the app that is being updated or installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.FulfillmentInitiate - -This event is sent at the beginning of an app install or update to help keep Windows up-to-date and secure. - -The following fields are available: - -- **PFN** The Package Family Name of the app that is being installed or updated. -- **ProductId** The product ID of the app that is being updated or installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.InstallOperationRequest - -This event is sent when a product install or update is initiated, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **BundleId** The identity of the build associated with this product. -- **CatalogId** If this product is from a private catalog, the Store Product ID for the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SkuId** Specific edition ID being installed. -- **VolumePath** The disk path of the installation. - - -### Microsoft.Windows.StoreAgent.Telemetry.PauseInstallation - -This event is sent when a product install or update is paused (either by a user or the system), to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **IntentPFNs** The licensing identity of this package. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The Product Full Name. -- **PreviousHResult** The result code of the last action performed before this operation. -- **PreviousInstallState** Previous state before the installation or update was paused. -- **ProductId** The Store Product ID for the product being installed. -- **RelatedCV** Correlation Vector of a previous performed action on this product. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.ResumeInstallation - -This event is sent when a product install or update is resumed (either by a user or the system), to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed before this operation. -- **IntentPFNs** Intent Product Family Name -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **IsUserRetry** Did the user initiate the retry? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **PreviousHResult** The previous HResult error code. -- **PreviousInstallState** Previous state before the installation was paused. -- **ProductId** The Store Product ID for the product being installed. -- **RelatedCV** Correlation Vector for the original install before it was resumed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.ResumeOperationRequest - -This event is sent when a product install or update is resumed by a user or on installation retries, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **ProductId** The Store Product ID for the product being installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.SearchForUpdateOperationRequest - -This event is sent when searching for update packages to install, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **CatalogId** The Store Catalog ID for the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SkuId** Specific edition of the app being updated. - - -### Microsoft.Windows.StoreAgent.Telemetry.UpdateAppOperationRequest - -This event occurs when an update is requested for an app, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **PFamN** The name of the app that is requested for update. - - -## 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 data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **background** Is the download being done in the background? -- **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. -- **bytesFromPeers** The number of bytes received from a peer in the same LAN. -- **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. -- **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. -- **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** 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 data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **background** Is the download a background download? -- **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. -- **bytesFromPeers** The number of bytes received from a peer in the same LAN. -- **bytesRequested** The total number of bytes requested for download. -- **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. -- **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. -- **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. -- **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? -- **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** 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 data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **background** Is the download a background download? -- **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? -- **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 data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **background** Indicates whether the download is happening in the background. -- **cdnUrl** The URL of the source CDN. -- **clientTelId** A random number used for device sampling. -- **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). -- **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. -- **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. The data collected with this event is used to help keep Windows up to date. - -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 -- **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. - - -### Microsoft.OSG.DU.DeliveryOptClient.JobError - -This event represents a Windows Update job error. It allows for investigation of top errors. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **clientTelId** A random number used for device sampling. -- **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.DataMigrationFramework.DmfMigrationCompleted - -This event sends data collected at the end of the Data Migration Framework (DMF) and parameters involved in its invocation, to help keep Windows up to date. - -The following fields are available: - -- **MigrationDurationInMilliseconds** How long the DMF migration took (in milliseconds) -- **MigrationEndTime** A system timestamp of when the DMF migration completed. -- **RevisionNumbers** A collection of revision numbers for the updates associated with the DMF session. -- **UpdateIds** A collection of GUIDs for updates that are associated with the DMF session. -- **WuClientId** The GUID of the Windows Update client responsible for triggering the DMF migration - - -### Microsoft.Windows.Update.DataMigrationFramework.DmfMigrationStarted - -This event sends data collected at the beginning of the Data Migration Framework (DMF) and parameters involved in its invocation, to help keep Windows up to date. - -The following fields are available: - -- **MigrationMicrosoftPhases** Revision numbers for the updates that were installed. -- **MigrationOEMPhases** WU Update IDs for the updates that were installed. -- **MigrationStartTime** The timestamp representing the beginning of the DMF migration -- **RevisionNumbers** A collection of the revision numbers associated with the UpdateIds. -- **UpdateIds** A collection of GUIDs identifying the upgrades that are running. -- **WuClientId** The GUID of the Windows Update client invoking DMF - - -### Microsoft.Windows.Update.DataMigrationFramework.MigratorResult - -This event sends DMF migrator data to help keep Windows up to date. - -The following fields are available: - -- **CurrentStep** This is the last step the migrator reported before returning a result. This tells us how far through the individual migrator the device was before failure. -- **ErrorCode** The result (as an HRESULT) of the migrator that just completed. -- **MigratorId** A GUID identifying the migrator that just completed. -- **MigratorName** The name of the migrator that just completed. -- **RunDurationInSeconds** The time it took for the migrator to complete. -- **TotalSteps** Migrators report progress in number of completed steps against the total steps. This is the total number of steps. - - -### Microsoft.Windows.Update.NotificationUx.DialogNotificationToBeDisplayed - -This event indicates that a notification dialog box is about to be displayed to user. The data collected with this event is used to help keep Windows secure and up to date. - -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. -- **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. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootAcceptAutoDialog - -This event indicates that the Enhanced Engaged restart "accept automatically" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The local time on 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 user chose on this dialog box. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootFirstReminderDialog - -This event indicates that the Enhanced Engaged restart "first reminder" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The local time on 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 user chose in this dialog box. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootForcedPrecursorDialog - -This event indicates that the Enhanced Engaged restart "forced precursor" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The local time on 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. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootForcedWarningDialog - -This event indicates that the Enhanced Engaged "forced warning" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The local time on 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. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootFailedDialog - -This event indicates that the Enhanced Engaged restart "restart failed" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -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. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootImminentDialog - -This event indicates that the Enhanced Engaged restart "restart imminent" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -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. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootSecondReminderDialog - -This event indicates that the second reminder dialog box was displayed for Enhanced Engaged restart. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The 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 the user chose in this dialog box. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootThirdReminderDialog - -This event indicates that the third reminder dialog box for Enhanced Engaged restart was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The 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 the user chose in this dialog box. - - -### Microsoft.Windows.Update.Orchestrator.CommitFailed - -This event indicates that a device was unable to restart after an update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code that was returned. -- **wuDeviceid** The Windows Update device GUID. - - -### Microsoft.Windows.Update.Orchestrator.DeferRestart - -This event indicates that a restart required for installing updates was postponed. The data collected with this event is used to help keep Windows secure and up to date. - -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 sends launch data for a Windows Update scan to help keep Windows secure and up to date. - -The following fields are available: - -- **deferReason** The reason why the device could not check for updates. -- **detectionBlockreason** The reason detection did not complete. -- **detectionDeferreason** A log of deferral reasons for every update state. -- **errorCode** The error code returned for the current process. -- **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 unique identifier for the flight (Windows Insider pre-release build) should be delivered to the device, if applicable. -- **interactive** Indicates whether the user initiated the session. -- **revisionNumber** The Update revision number. -- **updateId** The unique identifier of the Update. -- **updateScenarioType** Identifies the type of update session being performed. -- **wuDeviceid** The unique device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.Download - -This event sends launch data for a Windows Update download to help keep Windows secure and up to date. - -The following fields are available: - -- **deferReason** Reason for download not completing. -- **detectionDeferreason** 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 sends data on whether the update was applicable to the device. The data collected with this event is used to help keep Windows secure and up to date. - -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. -- **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 secure and 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 secure and 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 represented by a hexadecimal value. -- **eventScenario** End-to-end update session ID. -- **flightID** The 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. The data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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 sends data about lite stack devices (mobile, IOT, anything non-PC) immediately before data migration is launched to help keep Windows secure and up to date. - -The following fields are available: - -- **batteryLevel** Current battery capacity in megawatt-hours (mWh) or percentage left. -- **bundleId** The unique identifier associated with the specific content bundle. -- **bundleRevisionnumber** Identifies the revision number of the content bundle. -- **errorCode** The error code returned for the current phase. -- **eventScenario** State of update action. -- **flightID** The unique identifier for the flight (Windows Insider pre-release build) should be delivered to the device, if applicable. -- **sessionType** The Windows Update session type (Interactive or Background). -- **wuDeviceid** The unique device identifier used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.PowerMenuOptionsChanged - -This event is sent when the options in power menu changed, usually due to an update pending reboot, or after a update is installed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **powermenuNewOptions** The new options after the power menu changed. -- **powermenuOldOptions** The old options before the power menu changed. -- **rebootPendingMinutes** If the power menu changed because a reboot is pending due to a update, this indicates how long that reboot has been pending. -- **wuDeviceid** The device ID recorded by Windows Update if the power menu changed because a reboot is pending due to an update. - - -### Microsoft.Windows.Update.Orchestrator.PreShutdownStart - -This event is generated before the shutdown and commit operations. The data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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. -- **installRebootDeferreason** Reason for reboot not occurring. -- **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 secure and 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 secure and up to date. - -The following fields are available: - -- **RebootTaskRestoredTime** Time at which this reboot task was restored. -- **revisionNumber** Update revision number. -- **updateId** Update ID. -- **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 secure and 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 secure and 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 secure and 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 data collected with this event is used to help keep Windows secure and up to date. - -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 secure and up to date. - -The following fields are available: - -- **errorCode** result showing success or failure of current update -- **revisionNumber** Unique revision number of the Update -- **updateId** Unique ID for Update -- **updateState** Progress within an update state -- **wuDeviceid** Unique ID for Device - - -### Microsoft.Windows.Update.Orchestrator.UsoSession - -This event represents the state of the USO service at start and completion. The data collected with this event is used to help keep Windows secure and up to date. - -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. - -The following fields are available: - -- **BspVersion** The version of the BSP. -- **CallerApplicationName** The name of the USS scheduled task. Example UssScheduled or UssBoot -- **ClientVersion** The version of the client. -- **CommercializationOperator** The name of the operator. -- **DetectionVersion** The string returned from the GetDetectionVersion export of the downloaded detection DLL. -- **DeviceName** The name of the device. -- **EventInstanceID** The USS session ID. -- **EventScenario** The scenario of the event. Example: Started, Failed, or Succeeded -- **OemName** The name of the manufacturer. -- **ServiceGuid** The GUID of the service. -- **StatusCode** The HRESULT code of the operation. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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 OS. -- **scheduledRebootTime** Time scheduled for the reboot. -- **updateId** Identifies which update is being scheduled. -- **wuDeviceid** The unique device ID used by Windows Update. - - -### Microsoft.Windows.Update.Ux.MusNotification.ToastDisplayedToScheduleReboot - -This event is sent when a toast notification is shown to the user about scheduling a device restart. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **UtcTime** The Coordinated Universal Time when the toast notification was shown. - - -### Microsoft.Windows.Update.Ux.MusUpdateSettings.RebootScheduled - -This event sends basic information for scheduling a device restart to install security updates. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **activeHoursApplicable** Is the restart respecting Active Hours? -- **forcedReboot** True, if a reboot is forced on the device. Otherwise, this is 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 -- **updateId** The Windows Update device GUID. -- **wuDeviceid** The Windows Update device GUID. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICOInteractionCampaignComplete - -This event is generated whenever a RUXIM user interaction campaign becomes complete. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **InteractionCampaignID** GUID identifying the interaction campaign that became complete. -- **ResultId** The final result of the interaction campaign. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSEvaluateInteractionCampaign - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS.EXE) finishes processing an interaction campaign. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **ControlId** String identifying the control (if any) that was selected by the user during presentation. -- **hrInteractionHandler** The error (if any) reported by the RUXIM Interaction Handler while processing the interaction campaign. -- **hrScheduler** The error (if any) encountered by RUXIM Interaction Campaign Scheduler itself while processing the interaction campaign. -- **InteractionCampaignID** The ID of the interaction campaign that was processed. -- **ResultId** The result of the evaluation/presentation. -- **WasCompleted** True if the interaction campaign is complete. -- **WasPresented** True if the Interaction Handler displayed the interaction campaign to the user. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSExit - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS) exits. The data collected with this event is used to help keep Windows up to date and performing properly. - - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSLaunch - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS.EXE) is launched. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CommandLine** The command line used to launch RUXIMICS. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSOneSettingsSyncExit - -This event is sent when RUXIM completes checking with OneSettings to retrieve any UX interaction campaigns that may need to be displayed. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **hrInitialize** Error, if any, that occurred while initializing OneSettings. -- **hrQuery** Error, if any, that occurred while retrieving UX interaction campaign data from OneSettings. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSOneSettingsSyncLaunch - -This event is sent when RUXIM begins checking with OneSettings to retrieve any UX interaction campaigns that may need to be displayed. The data collected with this event is used to help keep Windows up to date. - - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHEvaluateAndPresent - -This event is generated when the RUXIM Interaction Handler finishes evaluating, and possibly presenting an interaction campaign. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **hrLocal** The error (if any) encountered by RUXIM Interaction Handler during evaluation and presentation. -- **hrPresentation** The error (if any) reported by RUXIM Presentation Handler during presentation. -- **InteractionCampaignID** GUID; the user interaction campaign processed by RUXIM Interaction Handler. -- **ResultId** The result generated by the evaluation and presentation. -- **WasCompleted** True if the user interaction campaign is complete. -- **WasPresented** True if the user interaction campaign is displayed to the user. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHExit - -This event is generated when the RUXIM Interaction Handler (RUXIMIH.EXE) exits. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **InteractionCampaignID** GUID identifying the interaction campaign that RUXIMIH processed. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHLaunch - -This event is generated when the RUXIM Interaction Handler (RUXIMIH.EXE) is launched. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CommandLine** The command line used to launch RUXIMIH. -- **InteractionCampaignID** GUID identifying the user interaction campaign that the Interaction Handler will process. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.SystemEvaluator.Evaluation - -This event is generated whenever the RUXIM Evaluator DLL performs an evaluation. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **HRESULT** Error, if any, that occurred during evaluation. (Note that if errors encountered during individual checks do not affect the overall result of the evaluation, those errors will be reported in NodeEvaluationData, but this HRESULT will still be zero.) -- **Id** GUID passed in by the caller to identify the evaluation. -- **NodeEvaluationData** Structure showing the results of individual checks that occurred during the overall evaluation. -- **Result** The overall result generated by the evaluation. - - -## Windows Update mitigation events - -### Mitigation360Telemetry.MitigationCustom.CleanupSafeOsImages - -This event sends data specific to the CleanupSafeOsImages mitigation used for OS Updates. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** The client ID used by Windows Update. -- **FlightId** The ID of each Windows Insider build the device received. -- **InstanceId** A unique device ID that identifies each update instance. -- **MitigationScenario** The update scenario in which the mitigation was executed. -- **MountedImageCount** The number of mounted images. -- **MountedImageMatches** The number of mounted image matches. -- **MountedImagesFailed** The number of mounted images that could not be removed. -- **MountedImagesRemoved** The number of mounted images that were successfully removed. -- **MountedImagesSkipped** The number of mounted images that were not found. -- **RelatedCV** The 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 Windows Update. -- **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 data collected with this event is used to help keep Windows secure and up to date. - - - -## Windows Update Reserve Manager events - -### Microsoft.Windows.UpdateReserveManager.CommitPendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager commits a hard reserve adjustment that was pending. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.InitializeUpdateReserveManager - -This event returns data about the Update Reserve Manager, including whether it’s been initialized. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.RemovePendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager removes a pending hard reserve adjustment. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.UpdatePendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager needs to adjust the size of the hard reserve after the option content is installed. The data collected with this event is used to help keep Windows secure and up to date. - - - -## Winlogon events - -### Microsoft.Windows.Security.Winlogon.SetupCompleteLogon - -This event signals the completion of the setup process. It happens only once during the first logon. - - - -## XBOX 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. 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 deleted file mode 100644 index 9e654c4f7c..0000000000 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md +++ /dev/null @@ -1,6543 +0,0 @@ ---- -description: Learn more about the Windows 10, version 1709 diagnostic data gathered at the basic level. -title: Windows 10, version 1709 basic diagnostic events and fields (Windows 10) -ms.service: windows-client -ms.subservice: itpro-privacy -localizationpriority: medium -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 03/27/2017 -ms.topic: reference ---- - - -# Windows 10, version 1709 basic level Windows diagnostic events and fields - - **Applies to** - -- Windows 10, version 1709 - - -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 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. - -Use this article to learn about diagnostic events, grouped by event area, and the fields within each event. A brief description is provided for each field. Every event generated includes common data, which collects device data. - -You can learn more about Windows functional and diagnostic data through these articles: - -- [Required diagnostic events and fields for Windows 11, versions 23H2 and 22H2](required-diagnostic-events-fields-windows-11-22H2.md) -- [Required diagnostic events and fields for Windows 11, version 21H2](required-windows-11-diagnostic-events-and-fields.md) -- [Required diagnostic events and fields for Windows 10: versions 22H2, 21H2, 21H1, 20H2, and 2004](required-windows-diagnostic-data-events-and-fields-2004.md) -- [Windows 10, version 1903 and Windows 10, version 1909 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1903.md) -- [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 1703 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1703.md) -- [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) -- [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) - - - -## Appraiser events - -### Microsoft.Windows.Appraiser.General.ChecksumTotalPictureCount - -This event lists the types of objects and how many of each exist on the client device. This allows for a quick way to ensure that the records present on the server match what is present on the client. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **DatasourceApplicationFile_RS4** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS4** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS4** The count of the number of this particular object type present on this device. -- **DataSourceMatchingInfoBlock_RS4** The count of the number of this particular object type present on this device. -- **DataSourceMatchingInfoPassive_RS4** The count of the number of this particular object type present on this device. -- **DataSourceMatchingInfoPostUpgrade_RS4** The count of the number of this particular object type present on this device. -- **DatasourceSystemBios_19H1Setup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS4** The count of the number of this particular object type present on this device. -- **DecisionApplicationFile_RS4** The count of the number of this particular object type present on this device. -- **DecisionDevicePnp_RS4** The count of the number of this particular object type present on this device. -- **DecisionDriverPackage_RS4** The count of the number of this particular object type present on this device. -- **DecisionMatchingInfoBlock_RS4** The count of the number of this particular object type present on this device. -- **DecisionMatchingInfoPassive_RS4** The count of the number of this particular object type present on this device. -- **DecisionMatchingInfoPostUpgrade_RS4** The count of the number of this particular object type present on this device. -- **DecisionMediaCenter_RS4** The count of the number of this particular object type present on this device. -- **DecisionSystemBios_19H1Setup** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS4** The total number of objects of this type present on this device. -- **InventoryApplicationFile** The total number of objects of this type present on this device. -- **InventoryLanguagePack** The total number of objects of this type present on this device. -- **InventoryMediaCenter** The total number of objects of this type present on this device. -- **InventorySystemBios** The total number of objects of this type present on this device. -- **InventoryUplevelDriverPackage** The total number of objects of this type present on this device. -- **PCFP** The total number of objects of this type present on this device. -- **SystemMemory** The total number of objects of this type present on this device. -- **SystemProcessorCompareExchange** The total number of objects of this type present on this device. -- **SystemProcessorLahfSahf** The total number of objects of this type present on this device. -- **SystemProcessorNx** The total number of objects of this type present on this device. -- **SystemProcessorPrefetchW** The total number of objects of this type present on this device. -- **SystemProcessorSse2** The total number of objects of this type present on this device. -- **SystemTouch** The total number of objects of this type present on this device. -- **SystemWim** The total number of objects of this type present on this device. -- **SystemWindowsActivationStatus** The total number of objects of this type present on this device. -- **SystemWlan** The total number of objects of this type present on this device. -- **Wmdrm_RS4** The total Wmdrm objects targeting Windows 10, version 1803 present on this device. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileAdd - -This event represents the basic metadata about specific application files installed on the system. The data collected with this event is used 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. -- **AvDisplayName** If the app is an anti-virus app, this is its display name. -- **CompatModelIndex** The compatibility prediction for this file. -- **HasCitData** Indicates whether the file is present in CIT data. -- **HasUpgradeExe** Indicates whether the anti-virus app has an upgrade.exe file. -- **IsAv** Is the file an anti-virus reporting EXE? -- **ResolveAttempted** This will always be an empty string when sending diagnostic data. -- **SdbEntries** An array of fields that indicates the SDB entries that apply to this file. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileRemove - -This event indicates that the DatasourceApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileStartSync - -This event indicates that a new set of DatasourceApplicationFileAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpAdd - -This event sends compatibility data for a Plug and Play device, to help keep Windows up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **ActiveNetworkConnection** Indicates whether the device is an active network device. -- **AppraiserVersion** The version of the appraiser file generating the events. -- **IsBootCritical** Indicates whether the device boot is critical. -- **WuDriverCoverage** Indicates whether there is a driver uplevel for this device, according to Windows Update. -- **WuDriverUpdateId** The Windows Update ID of the applicable uplevel driver. -- **WuPopulatedFromId** The expected uplevel driver matching ID based on driver coverage from Windows Update. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpRemove - -This event indicates that the DatasourceDevicePnp object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpStartSync - -This event indicates that a new set of DatasourceDevicePnpAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageAdd - -This event sends compatibility database data about driver packages 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageRemove - -This event indicates that the DatasourceDriverPackage object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageStartSync - -This event indicates that a new set of DatasourceDriverPackageAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockAdd - -This event sends blocking data about any compatibility blocking entries on the system that are not directly related to specific applications or devices, 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockRemove - -This event indicates that the DataSourceMatchingInfoBlock object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockStartSync - -This event indicates that a full set of DataSourceMatchingInfoBlockStAdd events has completed being sent. This event is used to make compatibility decisions about files 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveAdd - -This event sends compatibility database information about non-blocking compatibility entries on the system that are not keyed by either applications or devices, 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveRemove - -This event indicates that the DataSourceMatchingInfoPassive object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveStartSync - -This event indicates that a new set of DataSourceMatchingInfoPassiveAdd events will be sent. This event is used to make compatibility decisions about files 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeAdd - -This event sends compatibility database information about entries requiring reinstallation after an upgrade on the system that are not keyed by either applications or devices, 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeRemove - -This event indicates that the DataSourceMatchingInfoPostUpgrade object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeStartSync - -This event indicates that a new set of DataSourceMatchingInfoPostUpgradeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosAdd - -This event sends compatibility database information about the BIOS 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosRemove - -This event indicates that the DatasourceSystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosStartSync - -This event indicates that a new set of DatasourceSystemBiosAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileAdd - -This event sends compatibility decision data about a file 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. -- **BlockAlreadyInbox** The uplevel runtime block on the file already existed on the current OS. -- **BlockingApplication** Indicates whether there are any application issues that interfere with the upgrade due to the file in question. -- **DisplayGenericMessage** Will be a generic message be shown for this file? -- **HardBlock** This file is blocked in the SDB. -- **HasUxBlockOverride** Does the file have a block that is overridden by a tag in the SDB? -- **MigApplication** Does the file have a MigXML from the SDB associated with it that applies to the current upgrade mode? -- **MigRemoval** Does the file have a MigXML from the SDB that will cause the app to be removed on upgrade? -- **NeedsDismissAction** Will the file cause an action that can be dismissed? -- **NeedsInstallPostUpgradeData** After upgrade, the file will have a post-upgrade notification to install a replacement for the app. -- **NeedsNotifyPostUpgradeData** Does the file have a notification that should be shown after upgrade? -- **NeedsReinstallPostUpgradeData** After upgrade, this file will have a post-upgrade notification to reinstall the app. -- **NeedsUninstallAction** The file must be uninstalled to complete the upgrade. -- **SdbBlockUpgrade** The file is tagged as blocking upgrade in the SDB, -- **SdbBlockUpgradeCanReinstall** The file is tagged as blocking upgrade in the SDB. It can be reinstalled after upgrade. -- **SdbBlockUpgradeUntilUpdate** The file is tagged as blocking upgrade in the SDB. If the app is updated, the upgrade can proceed. -- **SdbReinstallUpgrade** The file is tagged as needing to be reinstalled after upgrade in the SDB. It does not block upgrade. -- **SdbReinstallUpgradeWarn** The file is tagged as needing to be reinstalled after upgrade with a warning in the SDB. It does not block upgrade. -- **SoftBlock** The file is softblocked in the SDB and has a warning. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove - -This event indicates that the DecisionApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileStartSync - -This event indicates that a new set of DecisionApplicationFileAdd events will be sent. This event is used to make compatibility decisions about a file 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpAdd - -This event sends compatibility decision data about a Plug and Play (PNP) device 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 generating the events. -- **AssociatedDriverIsBlocked** Is the driver associated with this PNP device blocked? -- **AssociatedDriverWillNotMigrate** Will the driver associated with this plug-and-play device migrate? -- **BlockAssociatedDriver** Should the driver associated with this PNP device be blocked? -- **BlockingDevice** Is this PNP device blocking upgrade? -- **BlockUpgradeIfDriverBlocked** Is the PNP device both boot critical and does not have a driver included with the OS? -- **BlockUpgradeIfDriverBlockedAndOnlyActiveNetwork** Is this PNP device the only active network device? -- **DisplayGenericMessage** Will a generic message be shown during Setup for this PNP device? -- **DriverAvailableInbox** Is a driver included with the operating system for this PNP device? -- **DriverAvailableOnline** Is there a driver for this PNP device on Windows Update? -- **DriverAvailableUplevel** Is there a driver on Windows Update or included with the operating system for this PNP device? -- **DriverBlockOverridden** Is there is a driver block on the device that has been overridden? -- **NeedsDismissAction** Will the user would need to dismiss a warning during Setup for this device? -- **NotRegressed** Does the device have a problem code on the source OS that is no better than the one it would have on the target OS? -- **SdbDeviceBlockUpgrade** Is there an SDB block on the PNP device that blocks upgrade? -- **SdbDriverBlockOverridden** Is there an SDB block on the PNP device that blocks upgrade, but that block was overridden? - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpRemove - -This event Indicates that the DecisionDevicePnp object represented by the objectInstanceId is no longer present. This event is used to make compatibility decisions about PNP devices 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpStartSync - -This event indicates that a new set of DecisionDevicePnpAdd events will be sent. This event is used to make compatibility decisions about PNP devices 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageAdd - -This event sends decision data about driver package compatibility 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 generating the events. -- **DriverBlockOverridden** Does the driver package have an SDB block that blocks it from migrating, but that block has been overridden? -- **DriverIsDeviceBlocked** Was the driver package was blocked because of a device block? -- **DriverIsDriverBlocked** Is the driver package blocked because of a driver block? -- **DriverShouldNotMigrate** Should the driver package be migrated during upgrade? -- **SdbDriverBlockOverridden** Does the driver package have an SDB block that blocks it from migrating, but that block has been overridden? - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageRemove - -This event indicates that the DecisionDriverPackage object represented by the objectInstanceId is no longer present. This event is used to make compatibility decisions about driver packages 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageStartSync - -The DecisionDriverPackageStartSync event indicates that a new set of DecisionDriverPackageAdd events will be sent. This event is used to make compatibility decisions about driver packages 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockAdd - -This event sends compatibility decision data about blocking entries on the system that are not keyed by either applications or devices, 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 generating the events. -- **BlockingApplication** Are there are any application issues that interfere with upgrade due to matching info blocks? -- **DisplayGenericMessage** Will a generic message be shown for this block? -- **NeedsUninstallAction** Does the user need to take an action in setup due to a matching info block? -- **SdbBlockUpgrade** Is a matching info block blocking upgrade? -- **SdbBlockUpgradeCanReinstall** Is a matching info block blocking upgrade, but has the can reinstall tag? -- **SdbBlockUpgradeUntilUpdate** Is a matching info block blocking upgrade but has the until update tag? - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockRemove - -This event indicates that the DecisionMatchingInfoBlock object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockStartSync - -This event indicates that a new set of DecisionMatchingInfoBlockAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveAdd - -This event sends compatibility decision data about non-blocking entries on the system that are not keyed by either applications or devices, 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. -- **BlockingApplication** Are there any application issues that interfere with upgrade due to matching info blocks? -- **MigApplication** Is there a matching info block with a mig for the current mode of upgrade? - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveRemove - -This event Indicates that the DecisionMatchingInfoPassive object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveStartSync - -This event indicates that a new set of DecisionMatchingInfoPassiveAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeAdd - -This event sends compatibility decision data about entries that require reinstall after upgrade. It's used 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. -- **NeedsInstallPostUpgradeData** Will the file have a notification after upgrade to install a replacement for the app? -- **NeedsNotifyPostUpgradeData** Should a notification be shown for this file after upgrade? -- **NeedsReinstallPostUpgradeData** Will the file have a notification after upgrade to reinstall the app? -- **SdbReinstallUpgrade** The file is tagged as needing to be reinstalled after upgrade in the compatibility database (but is not blocking upgrade). - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeRemove - -This event indicates that the DecisionMatchingInfoPostUpgrade object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeStartSync - -This event indicates that a new set of DecisionMatchingInfoPostUpgradeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterAdd - -This event sends decision data about the presence of Windows Media Center, 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 generating the events. -- **BlockingApplication** Is there any application issues that interfere with upgrade due to Windows Media Center? -- **MediaCenterActivelyUsed** If Windows Media Center is supported on the edition, has it been run at least once and are the MediaCenterIndicators are true? -- **MediaCenterIndicators** Do any indicators imply that Windows Media Center is in active use? -- **MediaCenterInUse** Is Windows Media Center actively being used? -- **MediaCenterPaidOrActivelyUsed** Is Windows Media Center actively being used or is it running on a supported edition? -- **NeedsDismissAction** Are there any actions that can be dismissed coming from Windows Media Center? - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterRemove - -This event indicates that the DecisionMediaCenter object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterStartSync - -This event indicates that a new set of DecisionMediaCenterAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosAdd - -This event sends compatibility decision data about the BIOS 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 generating the events. -- **Blocking** Is the device blocked from upgrade due to a BIOS block? -- **DisplayGenericMessageGated** Indicates whether a generic offer block message will be shown for the bios. -- **HasBiosBlock** Does the device have a BIOS block? - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosRemove - -This event indicates that the DecisionSystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosStartSync - -This event indicates that a new set of DecisionSystemBiosAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.GatedRegChange - -This event sends data about the results of running a set of quick-blocking instructions, to help keep Windows up to date. - -The following fields are available: - -- **NewData** The data in the registry value after the scan completed. -- **OldData** The previous data in the registry value before the scan ran. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **RegKey** The registry key name for which a result is being sent. -- **RegValue** The registry value for which a result is being sent. -- **Time** The client time of the event. - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileAdd - -This event represents the basic metadata about a file on the system. The file must be part of an app and either have a block in the compatibility database or be part of an antivirus program. The data collected with this event is used 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 generating the events. -- **AvDisplayName** If the app is an antivirus app, this is its display name. -- **AvProductState** Indicates whether the antivirus program is turned on and the signatures are up to date. -- **BinaryType** A binary type. Example: UNINITIALIZED, ZERO_BYTE, DATA_ONLY, DOS_MODULE, NE16_MODULE, PE32_UNKNOWN, PE32_I386, PE32_ARM, PE64_UNKNOWN, PE64_AMD64, PE64_ARM64, PE64_IA64, PE32_CLR_32, PE32_CLR_IL, PE32_CLR_IL_PREFER32, PE64_CLR_64. -- **BinFileVersion** An attempt to clean up FileVersion at the client that tries to place the version into 4 octets. -- **BinProductVersion** An attempt to clean up ProductVersion at the client that tries to place the version into 4 octets. -- **BoeProgramId** If there is no entry in Add/Remove Programs, this is the ProgramID that is generated from the file metadata. -- **CompanyName** The company name of the vendor who developed this file. -- **FileId** A hash that uniquely identifies a file. -- **FileVersion** The File version field from the file metadata under Properties -> Details. -- **HasUpgradeExe** Indicates whether the antivirus app has an upgrade.exe file. -- **IsAv** Indicates whether the file an antivirus reporting EXE. -- **LinkDate** The date and time that this file was linked on. -- **LowerCaseLongPath** The full file path to the file that was inventoried on the device. -- **Name** The name of the file that was inventoried. -- **ProductName** The Product name field from the file metadata under Properties -> Details. -- **ProductVersion** The Product version field from the file metadata under Properties -> Details. -- **ProgramId** A hash of the Name, Version, Publisher, and Language of an application used to identify it. -- **Size** The size of the file (in hexadecimal bytes). - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileRemove - -This event indicates that the InventoryApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync - -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackAdd - -This event sends data about the number of language packs installed on the system, 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. -- **HasLanguagePack** Indicates whether this device has 2 or more language packs. -- **LanguagePackCount** The number of language packs are installed. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackRemove - -This event indicates that the InventoryLanguagePack object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackStartSync - -This event indicates that a new set of InventoryLanguagePackAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterAdd - -This event sends true/false data about decision points used to understand whether Windows Media Center is used on the system, 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 generating the events. -- **EverLaunched** Has Windows Media Center ever been launched? -- **HasConfiguredTv** Has the user configured a TV tuner through Windows Media Center? -- **HasExtendedUserAccounts** Are any Windows Media Center Extender user accounts configured? -- **HasWatchedFolders** Are any folders configured for Windows Media Center to watch? -- **IsDefaultLauncher** Is Windows Media Center the default app for opening music or video files? -- **IsPaid** Is the user running a Windows Media Center edition that implies they paid for Windows Media Center? -- **IsSupported** Does the running OS support Windows Media Center? - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterRemove - -This event indicates that the InventoryMediaCenter object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterStartSync - -This event indicates that a new set of InventoryMediaCenterAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosAdd - -This event sends basic metadata about the BIOS to determine whether it has a compatibility block. The data collected with this event is used 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. -- **BiosDate** The release date of the BIOS in UTC format. -- **BiosName** The name field from Win32_BIOS. -- **Manufacturer** The manufacturer field from Win32_ComputerSystem. -- **Model** The model field from Win32_ComputerSystem. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosRemove - -This event indicates that the InventorySystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosStartSync - -This event indicates that a new set of InventorySystemBiosAdd events will be sent. The data collected with this event is used 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 binary (executable) generating the events. - - -### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageAdd - -This event runs only during setup. It provides a listing of the uplevel driver packages that were downloaded before the upgrade. It is critical in understanding if failures in setup can be traced to not having sufficient uplevel drivers before the upgrade. The data collected with this event is used 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. -- **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. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageStartSync - -This event indicates that a new set of InventoryUplevelDriverPackageAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.RunContext - -This event is sent at the beginning of an appraiser run, the RunContext indicates what should be expected in the following data payload. This event is used with the other Appraiser events to make compatibility decisions to keep Windows up to date. - -The following fields are available: - -- **AppraiserBranch** The source branch in which the currently running version of Appraiser was built. -- **AppraiserProcess** The name of the process that launched Appraiser. -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **Context** Indicates what mode Appraiser is running in. Example: Setup or Telemetry. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **Subcontext** Indicates what categories of incompatibilities appraiser is scanning for. Can be N/A, Resolve, or a semicolon-delimited list that can include App, Dev, Sys, Gat, or Rescan. -- **Time** The client time of the event. - - -### Microsoft.Windows.Appraiser.General.SystemMemoryAdd - -This event sends data on the amount of memory on the system and whether it meets requirements, 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 generating the events. -- **Blocking** Is the device from upgrade due to memory restrictions? -- **MemoryRequirementViolated** Was a memory requirement violated? -- **pageFile** The current committed memory limit for the system or the current process, whichever is smaller (in bytes). -- **ram** The amount of memory on the device. -- **ramKB** The amount of memory (in KB). -- **virtual** The size of the user-mode portion of the virtual address space of the calling process (in bytes). -- **virtualKB** The amount of virtual memory (in KB). - - -### Microsoft.Windows.Appraiser.General.SystemMemoryRemove - -This event that the SystemMemory object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemMemoryStartSync - -This event indicates that a new set of SystemMemoryAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeAdd - -This event sends data indicating whether the system supports the CompareExchange128 CPU requirement, 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 generating the events. -- **Blocking** Is the upgrade blocked due to the processor? -- **CompareExchange128Support** Does the CPU support CompareExchange128? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeRemove - -This event indicates that the SystemProcessorCompareExchange object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeStartSync - -This event indicates that a new set of SystemProcessorCompareExchangeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfAdd - -This event sends data indicating whether the system supports the LAHF & SAHF CPU requirement, 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 generating the events. -- **Blocking** Is the upgrade blocked due to the processor? -- **LahfSahfSupport** Does the CPU support LAHF/SAHF? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfRemove - -This event indicates that the SystemProcessorLahfSahf object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfStartSync - -This event indicates that a new set of SystemProcessorLahfSahfAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxAdd - -This event sends data indicating whether the system supports the NX CPU requirement, 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 due to the processor? -- **NXDriverResult** The result of the driver used to do a non-deterministic check for NX support. -- **NXProcessorSupport** Does the processor support NX? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxRemove - -This event indicates that the SystemProcessorNx object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxStartSync - -This event indicates that a new set of SystemProcessorNxAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWAdd - -This event sends data indicating whether the system supports the PrefetchW CPU requirement, 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 due to the processor? -- **PrefetchWSupport** Does the processor support PrefetchW? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWRemove - -This event indicates that the SystemProcessorPrefetchW object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWStartSync - -This event indicates that a new set of SystemProcessorPrefetchWAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2Add - -This event sends data indicating whether the system supports the SSE2 CPU requirement, 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 due to the processor? -- **SSE2ProcessorSupport** Does the processor support SSE2? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2Remove - -This event indicates that the SystemProcessorSse2 object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2StartSync - -This event indicates that a new set of SystemProcessorSse2Add events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemTouchAdd - -This event sends data indicating whether the system supports touch, 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. -- **IntegratedTouchDigitizerPresent** Is there an integrated touch digitizer? -- **MaximumTouches** The maximum number of touch points supported by the device hardware. - - -### Microsoft.Windows.Appraiser.General.SystemTouchRemove - -This event indicates that the SystemTouch object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemTouchStartSync - -This event indicates that a new set of SystemTouchAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWimAdd - -This event sends data indicating whether the operating system is running from a compressed Windows Imaging Format (WIM) file, 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. -- **IsWimBoot** Is the current operating system running from a compressed WIM file? -- **RegistryWimBootValue** The raw value from the registry that is used to indicate if the device is running from a WIM. - - -### Microsoft.Windows.Appraiser.General.SystemWimRemove - -This event indicates that the SystemWim object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWimStartSync - -This event indicates that a new set of SystemWimAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusAdd - -This event sends data indicating whether the current operating system is activated, 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. -- **WindowsIsLicensedApiValue** The result from the API that's used to indicate if operating system is activated. -- **WindowsNotActivatedDecision** Is the current operating system activated? - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusRemove - -This event indicates that the SystemWindowsActivationStatus object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusStartSync - -This event indicates that a new set of SystemWindowsActivationStatusAdd events will be sent. The data collected with this event is used 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. - - -### 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. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWlanStartSync - -This event indicates that a new set of SystemWlanAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.TelemetryRunHealth - -This event indicates the parameters and result of a diagnostic data run. This allows the rest of the data sent over the course of the run to be properly contextualized and understood, which is then used to keep Windows up to date. - -The following fields are available: - -- **AppraiserBranch** The source branch in which the version of Appraiser that is running was built. -- **AppraiserDataVersion** The version of the data files being used by the Appraiser telemetry run. -- **AppraiserProcess** The name of the process that launched Appraiser. -- **AppraiserVersion** The file version (major, minor and build) of the Appraiser DLL, concatenated without dots. -- **AuxFinal** Obsolete, always set to false. -- **AuxInitial** Obsolete, indicates if Appraiser is writing data files to be read by the Get Windows 10 app. -- **DeadlineDate** A timestamp representing the deadline date, which is the time until which appraiser will wait to do a full scan. -- **EnterpriseRun** Indicates whether the diagnostic data run is an enterprise run, which means appraiser was run from the command line with an extra enterprise parameter. -- **FullSync** Indicates if Appraiser is performing a full sync, which means that full set of events representing the state of the machine are sent. Otherwise, only the changes from the previous run are sent. -- **InventoryFullSync** Indicates if inventory is performing a full sync, which means that the full set of events representing the inventory of machine are sent. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **PerfBackoff** Indicates if the run was invoked with logic to stop running when a user is present. Helps to understand why a run may have a longer elapsed time than normal. -- **PerfBackoffInsurance** Indicates if appraiser is running without performance backoff because it has run with perf backoff and failed to complete several times in a row. -- **RunAppraiser** Indicates if Appraiser was set to run at all. If this if false, it is understood that data events will not be received from this device. -- **RunDate** The date that the diagnostic data run was stated, expressed as a filetime. -- **RunGeneralTel** Indicates if the generaltel.dll component was run. Generaltel collects additional diagnostic data on an infrequent schedule and only from machines at diagnostic data levels higher than Basic. -- **RunOnline** Indicates if appraiser was able to connect to Windows Update and theefore is making decisions using up-to-date driver coverage information. -- **RunResult** The hresult of the Appraiser diagnostic data run. -- **SendingUtc** Indicates whether the Appraiser client is sending events during the current diagnostic data run. -- **StoreHandleIsNotNull** Obsolete, always set to false -- **TelementrySent** Indicates whether diagnostic data was successfully sent. -- **ThrottlingUtc** Indicates whether the Appraiser client is throttling its output of CUET events to avoid being disabled. This increases runtime but also diagnostic data reliability. -- **Time** The client time of the event. -- **VerboseMode** Indicates if appraiser ran in Verbose mode, which is a test-only mode with extra logging. -- **WhyFullSyncWithoutTablePrefix** Indicates the reason or reasons that a full sync was generated. - - -### Microsoft.Windows.Appraiser.General.WmdrmAdd - -This event sends data about the usage of older digital rights management on the system, to help keep Windows up to date. This data does not indicate the details of the media using the digital rights management, only whether any such files exist. Collecting this data was critical to ensuring the correct mitigation for customers, and should be able to be removed once all mitigations are in place. - -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. -- **BlockingApplication** Same as NeedsDismissAction. -- **NeedsDismissAction** Indicates if a dismissible message is needed to warn the user about a potential loss of data due to DRM deprecation. -- **WmdrmApiResult** Raw value of the API used to gather DRM state. -- **WmdrmCdRipped** Indicates if the system has any files encrypted with personal DRM, which was used for ripped CDs. -- **WmdrmIndicators** WmdrmCdRipped OR WmdrmPurchased. -- **WmdrmInUse** WmdrmIndicators AND dismissible block in setup was not dismissed. -- **WmdrmNonPermanent** Indicates if the system has any files with non-permanent licenses. -- **WmdrmPurchased** Indicates if the system has any files with permanent licenses. - - -### Microsoft.Windows.Appraiser.General.WmdrmRemove - -This event indicates that the Wmdrm object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.WmdrmStartSync - -The WmdrmStartSync event indicates that a new set of WmdrmAdd events will be sent. This event is used to understand the usage of older digital rights management on the system, 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. - - -## Census events - -### Census.App - -This event sends version data about the Apps running on this device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **AppraiserEnterpriseErrorCode** The error code of the last Appraiser enterprise run. -- **AppraiserErrorCode** The error code of the last Appraiser run. -- **AppraiserRunEndTimeStamp** The end time of the last Appraiser run. -- **AppraiserRunIsInProgressOrCrashed** Flag that indicates if the Appraiser run is in progress or has crashed. -- **AppraiserRunStartTimeStamp** The start time of the last Appraiser run. -- **AppraiserTaskEnabled** Whether the Appraiser task is enabled. -- **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** The version of Internet Explorer that is running on the device. - - -### Census.Battery - -This event sends type and capacity data about the battery on the device, as well as the number of connected standby devices in use. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **InternalBatteryCapablities** Represents information about what the battery is capable of doing. -- **InternalBatteryCapacityCurrent** Represents the battery's current fully charged capacity in mWh (or relative). Compare this value to DesignedCapacity  to estimate the battery's wear. -- **InternalBatteryCapacityDesign** Represents the theoretical capacity of the battery when new, in mWh. -- **InternalBatteryNumberOfCharges** Provides the number of battery charges. This is used when creating new products and validating that existing products meets targeted functionality performance. -- **IsAlwaysOnAlwaysConnectedCapable** Represents whether the battery enables the device to be AlwaysOnAlwaysConnected . Boolean value. - - -### Census.Enterprise - -This event sends data about Azure presence, type, and cloud domain use in order to provide an understanding of the use and integration of devices in an enterprise, cloud, and server environment. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **AzureOSIDPresent** Represents the field used to identify an Azure machine. -- **AzureVMType** Represents whether the instance is Azure VM PAAS, Azure VM IAAS or any other VMs. -- **CDJType** Represents the type of cloud domain joined for the machine. -- **CommercialId** Represents the GUID for the commercial entity which the device is a member of.  Will be used to reflect insights back to customers. -- **ContainerType** The type of container, such as process or virtual machine hosted. -- **EnrollmentType** Defines the type of MDM enrollment on the device. -- **HashedDomain** The hashed representation of the user domain used for login. -- **IsCloudDomainJoined** Is this device joined to an Azure Active Directory (AAD) tenant? true/false -- **IsDERequirementMet** Represents if the device can do device encryption. -- **IsDeviceProtected** Represents if Device protected by BitLocker/Device Encryption -- **IsDomainJoined** Indicates whether a machine is joined to a domain. -- **IsEDPEnabled** Represents if Enterprise data protected on the device. -- **IsMDMEnrolled** Whether the device has been MDM Enrolled or not. -- **MPNId** Returns the Partner ID/MPN ID from Regkey. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\DeployID -- **SCCMClientId** This ID correlate systems that send data to Compat Analytics (OMS) and other OMS based systems with systems in an enterprise Configuration Manager environment. -- **ServerFeatures** Represents the features installed on a Windows Server. This can be used by developers and administrators who need to automate the process of determining the features installed on a set of server computers. -- **SystemCenterID** The Configuration Manager ID is an anonymized one-way hash of the Active Directory Organization identifier - - -### Census.Firmware - -This event sends data about the BIOS and startup embedded in the device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **FirmwareManufacturer** Represents the manufacturer of the device's firmware (BIOS). -- **FirmwareReleaseDate** Represents the date the current firmware was released. -- **FirmwareType** Represents the firmware type. The various types can be unknown, BIOS, UEFI. -- **FirmwareVersion** Represents the version of the current firmware. - - -### Census.Flighting - -This event sends Windows Insider data from customers participating in improvement testing and feedback programs. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceSampleRate** The telemetry sample rate assigned to the device. -- **EnablePreviewBuilds** Used to enable Windows Insider builds on a device. -- **FlightIds** A list of the different Windows Insider builds on this device. -- **FlightingBranchName** The name of the Windows Insider branch currently used by the device. -- **IsFlightsDisabled** Represents if the device is participating in the Windows Insider program. -- **MSA_Accounts** Represents a list of hashed IDs of the Microsoft Accounts that are flighting (pre-release builds) on this device. -- **SSRK** Retrieves the mobile targeting settings. - - -### Census.Hardware - -This event sends data about the device, including hardware type, OEM brand, model line, model, telemetry level setting, and TPM support. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ActiveMicCount** The number of active microphones attached to the device. -- **ChassisType** Represents the type of device chassis, such as desktop or low profile desktop. The possible values can range between 1 - 36. -- **ComputerHardwareID** Identifies a device class that is represented by a hash of different SMBIOS fields. -- **D3DMaxFeatureLevel** Supported Direct3D version. -- **DeviceColor** Indicates a color of the device. -- **DeviceForm** Indicates the form as per the device classification. -- **DeviceName** The device name that is set by the user. -- **DigitizerSupport** Is a digitizer supported? -- **DUID** The device unique ID. -- **Gyroscope** Indicates whether the device has a gyroscope (a mechanical component that measures and maintains orientation). -- **InventoryId** The device ID used for compatibility testing. -- **Magnetometer** Indicates whether the device has a magnetometer (a mechanical component that works like a compass). -- **NFCProximity** Indicates whether the device supports NFC (a set of communication protocols that helps establish communication when applicable devices are brought close together.) -- **OEMDigitalMarkerFileName** The name of the file placed in the \Windows\system32\drivers directory that specifies the OEM and model name of the device. -- **OEMManufacturerName** The device manufacturer name. The OEMName for an inactive device is not reprocessed even if the clean OEM name is changed at a later date. -- **OEMModelBaseBoard** The baseboard model used by the OEM. -- **OEMModelBaseBoardVersion** Differentiates between developer and retail devices. -- **OEMModelName** The device model name. -- **OEMModelNumber** The device model number. -- **OEMModelSKU** The device edition that is defined by the manufacturer. -- **OEMModelSystemFamily** The system family set on the device by an OEM. -- **OEMModelSystemVersion** The system model version set on the device by the OEM. -- **OEMOptionalIdentifier** A Microsoft assigned value that represents a specific OEM subsidiary. -- **OEMSerialNumber** The serial number of the device that is set by the manufacturer. -- **PhoneManufacturer** The friendly name of the phone manufacturer. -- **PowerPlatformRole** The OEM preferred power management profile. It's used to help to identify the basic form factor of the device. -- **SoCName** The firmware manufacturer of the device. -- **StudyID** Used to identify retail and non-retail device. -- **TelemetryLevel** The telemetry level the user has opted into, such as Basic or Enhanced. -- **TelemetryLevelLimitEnhanced** The telemetry level for Windows Analytics-based solutions. -- **TelemetrySettingAuthority** Determines who set the telemetry level, such as GP, MDM, or the user. -- **TPMVersion** The supported Trusted Platform Module (TPM) on the device. If no TPM is present, the value is 0. -- **VoiceSupported** Does the device have a cellular radio capable of making voice calls? - - -### Census.Memory - -This event sends data about the memory on the device, including ROM and RAM. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **TotalPhysicalRAM** Represents the physical memory (in MB). -- **TotalVisibleMemory** Represents the memory that is not reserved by the system. - - -### Census.Network - -This event sends data about the mobile and cellular network used by the device (mobile service provider, network, device ID, and service cost factors). The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **IMEI0** Represents the International Mobile Station Equipment Identity. This number is usually unique and used by the mobile operator to distinguish different phone hardware. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. The two fields represent phone with dual sim coverage. -- **IMEI1** Represents the International Mobile Station Equipment Identity. This number is usually unique and used by the mobile operator to distinguish different phone hardware. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. The two fields represent phone with dual sim coverage. -- **MCC0** Represents the Mobile Country Code (MCC). It used with the Mobile Network Code (MNC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MCC1** Represents the Mobile Country Code (MCC). It used with the Mobile Network Code (MNC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MEID** Represents the Mobile Equipment Identity (MEID). MEID is a worldwide unique phone ID assigned to CDMA phones. MEID replaces electronic serial number (ESN), and is equivalent to IMEI for GSM and WCDMA phones. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. -- **MNC0** Retrieves the Mobile Network Code (MNC). It used with the Mobile Country Code (MCC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MNC1** Retrieves the Mobile Network Code (MNC). It used with the Mobile Country Code (MCC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MobileOperatorBilling** Represents the telephone company that provides services for mobile phone users. -- **MobileOperatorCommercialized** Represents which reseller and geography the phone is commercialized for. This is the set of values on the phone for who and where it was intended to be used. For example, the commercialized mobile operator code AT&T in the US would be ATT-US. -- **MobileOperatorNetwork0** Represents the operator of the current mobile network that the device is used on. (AT&T, T-Mobile, Vodafone). The two fields represent phone with dual sim coverage. -- **MobileOperatorNetwork1** Represents the operator of the current mobile network that the device is used on. (AT&T, T-Mobile, Vodafone). The two fields represent phone with dual sim coverage. -- **NetworkAdapterGUID** The GUID of the primary network adapter. -- **NetworkCost** Represents the network cost associated with a connection. -- **SPN0** Retrieves the Service Provider Name (SPN). For example, these might be AT&T, Sprint, T-Mobile, or Verizon. The two fields represent phone with dual sim coverage. -- **SPN1** Retrieves the Service Provider Name (SPN). For example, these might be AT&T, Sprint, T-Mobile, or Verizon. The two fields represent phone with dual sim coverage. - - -### Census.OS - -This event sends data about the operating system such as the version, locale, update service configuration, when and how it was originally installed, and whether it is a virtual device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ActivationChannel** Retrieves the retail license key or Volume license key for a machine. -- **AssignedAccessStatus** Kiosk configuration mode. -- **CompactOS** Indicates if the Compact OS feature from Win10 is enabled. -- **DeveloperUnlockStatus** Represents if a device has been developer unlocked by the user or Group Policy. -- **DeviceTimeZone** The time zone that is set on the device. Example: Pacific Standard Time -- **GenuineState** Retrieves the ID Value specifying the OS Genuine check. -- **InstallationType** Retrieves the type of OS installation. (Clean, Upgrade, Reset, Refresh, Update). -- **InstallLanguage** The first language installed on the user machine. -- **IsDeviceRetailDemo** Retrieves if the device is running in demo mode. -- **IsEduData** Returns Boolean if the education data policy is enabled. -- **IsPortableOperatingSystem** Retrieves whether OS is running Windows-To-Go -- **IsSecureBootEnabled** Retrieves whether Boot chain is signed under UEFI. -- **LanguagePacks** The list of language packages installed on the device. -- **LicenseStateReason** Retrieves why (or how) a system is licensed or unlicensed. The HRESULT may indicate an error code that indicates a key blocked error, or it may indicate that we are running an OS License granted by the MS store. -- **OA3xOriginalProductKey** Retrieves the License key stamped by the OEM to the machine. -- **OSEdition** Retrieves the version of the current OS. -- **OSInstallType** Retrieves a numeric description of what install was used on the device i.e. clean, upgrade, refresh, reset, etc -- **OSOOBEDateTime** Retrieves Out of Box Experience (OOBE) Date in Coordinated Universal Time (UTC). -- **OSSKU** Retrieves the Friendly Name of OS Edition. -- **OSSubscriptionStatus** Represents the existing status for enterprise subscription feature for PRO machines. -- **OSSubscriptionTypeId** Returns boolean for enterprise subscription feature for selected PRO machines. -- **OSTimeZoneBiasInMins** Retrieves the time zone set on machine. -- **OSUILocale** Retrieves the locale of the UI that is currently used by the OS. -- **ProductActivationResult** Returns Boolean if the OS Activation was successful. -- **ProductActivationTime** Returns the OS Activation time for tracking piracy issues. -- **ProductKeyID2** Retrieves the License key if the machine is updated with a new license key. -- **RACw7Id** Retrieves the Microsoft Reliability Analysis Component (RAC) Win7 Identifier. RAC is used to monitor and analyze system usage and reliability. -- **ServiceMachineIP** Retrieves the IP address of the KMS host used for anti-piracy. -- **ServiceMachinePort** Retrieves the port of the KMS host used for anti-piracy. -- **ServiceProductKeyID** Retrieves the License key of the KMS -- **SharedPCMode** Returns Boolean for devices that have enabled the configuration EnableSharedPCMode. -- **Signature** Retrieves if it is a signature machine sold by Microsoft store. -- **SLICStatus** Whether a SLIC table exists on the device. -- **SLICVersion** Returns OS type/version from SLIC table. - - -### Census.Processor - -This event sends data about the processor. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **KvaShadow** This is the micro code information 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. -- **ProcessorPhysicalCores** Number of physical cores in the processor. -- **ProcessorUpdateRevision** The microcode revision. -- **ProcessorUpdateStatus** Enum value that represents the processor microcode load status -- **SocketCount** Count of CPU sockets. -- **SpeculationControl** Indicates whether the system has enabled protections needed to validate the speculation control vulnerability. - - -### Census.Security - -This event provides information about security settings. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **AvailableSecurityProperties** This field helps to enumerate and report state on the relevant security properties for Device Guard. -- **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** 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** 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 - -This event is used to gather basic speech settings on the device. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **AboveLockEnabled** Cortana setting that represents if Cortana can be invoked when the device is locked. -- **GPAllowInputPersonalization** Indicates if a Group Policy setting has enabled speech functionalities. -- **HolographicSpeechInputDisabled** Holographic setting that represents if the attached HMD devices have speech functionality disabled by the user. -- **HolographicSpeechInputDisabledRemote** Indicates if a remote policy has disabled speech functionalities for the HMD devices. -- **KWSEnabled** Cortana setting that represents if a user has enabled the "Hey Cortana" keyword spotter (KWS). -- **MDMAllowInputPersonalization** Indicates if an MDM policy has enabled speech functionalities. -- **RemotelyManaged** Indicates if the device is being controlled by a remote administrator (MDM or Group Policy) in the context of speech functionalities. -- **SpeakerIdEnabled** Cortana setting that represents if keyword detection has been trained to try to respond to a single user's voice. -- **SpeechServicesEnabled** Windows setting that represents whether a user is opted-in for speech services on the device. - - -### Census.Storage - -This event sends data about the total capacity of the system volume and primary disk. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **PrimaryDiskTotalCapacity** Retrieves the amount of disk space on the primary disk of the device in MB. -- **PrimaryDiskType** Retrieves an enumerator value of type STORAGE_BUS_TYPE that indicates the type of bus to which the device is connected. This should be used to interpret the raw device properties at the end of this structure (if any). -- **SystemVolumeTotalCapacity** Retrieves the size of the partition that the System volume is installed on in MB. - - -### Census.Userdefault - -This event sends data about the current user's default preferences for browser and several of the most popular extensions and protocols. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DefaultApp** The current user's default program selected for the following extension or protocol: .html, .htm, .jpg, .jpeg, .png, .mp3, .mp4, .mov, .pdf. -- **DefaultBrowserProgId** The ProgramId of the current user's default browser. - - -### Census.UserDisplay - -This event sends data about the logical/physical display size, resolution and number of internal/external displays, and VRAM on the system. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **InternalPrimaryDisplayLogicalDPIX** Retrieves the logical DPI in the x-direction of the internal display. -- **InternalPrimaryDisplayLogicalDPIY** Retrieves the logical DPI in the y-direction of the internal display. -- **InternalPrimaryDisplayPhysicalDPIX** Retrieves the physical DPI in the x-direction of the internal display. -- **InternalPrimaryDisplayPhysicalDPIY** Retrieves the physical DPI in the y-direction of the internal display. -- **InternalPrimaryDisplayResolutionHorizontal** Retrieves the number of pixels in the horizontal direction of the internal display. -- **InternalPrimaryDisplayResolutionVertical** Retrieves the number of pixels in the vertical direction of the internal display. -- **InternalPrimaryDisplaySizePhysicalH** Retrieves the physical horizontal length of the display in mm. Used for calculating the diagonal length in inches . -- **InternalPrimaryDisplaySizePhysicalY** Retrieves the physical vertical length of the display in mm. Used for calculating the diagonal length in inches -- **NumberofExternalDisplays** Retrieves the number of external displays connected to the machine -- **NumberofInternalDisplays** Retrieves the number of internal displays in a machine. -- **VRAMDedicated** Retrieves the video RAM in MB. -- **VRAMDedicatedSystem** Retrieves the amount of memory on the dedicated video card. -- **VRAMSharedSystem** Retrieves the amount of RAM memory that the video card can use. - - -### Census.UserNLS - -This event sends data about the default app language, input, and display language preferences set by the user. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DefaultAppLanguage** The current user Default App Language. -- **DisplayLanguage** The current user preferred Windows Display Language. -- **HomeLocation** The current user location, which is populated using GetUserGeoId() function. -- **KeyboardInputLanguages** The Keyboard input languages installed on the device. -- **SpeechInputLanguages** The Speech Input languages installed on the device. - - -### Census.VM - -This event sends data indicating whether virtualization is enabled on the device, and its various characteristics. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CloudService** Indicates which cloud service, if any, that this virtual machine is running within. -- **HyperVisor** Retrieves whether the current OS is running on top of a Hypervisor. -- **IOMMUPresent** Represents if an input/output memory management unit (IOMMU) is present. -- **IsVDI** Is the device using Virtual Desktop Infrastructure? -- **IsVirtualDevice** Retrieves that when the Hypervisor is Microsoft's Hyper-V Hypervisor or other Hv#1 Hypervisor, this field will be set to FALSE for the Hyper-V host OS and TRUE for any guest OS's. This field should not be relied upon for non-Hv#1 Hypervisors. -- **SLATSupported** Represents whether Second Level Address Translation (SLAT) is supported by the hardware. -- **VirtualizationFirmwareEnabled** Represents whether virtualization is enabled in the firmware. - - -### Census.WU - -This event sends data about the Windows update server and other App store policies. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **AppraiserGatedStatus** Indicates whether a device has been gated for upgrading. -- **AppStoreAutoUpdate** Retrieves the Appstore settings for auto upgrade. (Enable/Disabled). -- **AppStoreAutoUpdateMDM** Retrieves the App Auto Update value for MDM: 0 - Disallowed. 1 - Allowed. 2 - Not configured. Default: [2] Not configured -- **AppStoreAutoUpdatePolicy** Retrieves the Microsoft Store App Auto Update group policy setting -- **DelayUpgrade** Retrieves the Windows upgrade flag for delaying upgrades. -- **OSAssessmentFeatureOutOfDate** How many days has it been since a the last feature update was released but the device did not install it? -- **OSAssessmentForFeatureUpdate** Is the device is on the latest feature update? -- **OSAssessmentForQualityUpdate** Is the device on the latest quality update? -- **OSAssessmentForSecurityUpdate** Is the device on the latest security update? -- **OSAssessmentQualityOutOfDate** How many days has it been since a the last quality update was released but the device did not install it? -- **OSAssessmentReleaseInfoTime** The freshness of release information used to perform an assessment. -- **OSRollbackCount** The number of times feature updates have rolled back on the device. -- **OSRolledBack** A flag that represents when a feature update has rolled back during setup. -- **OSUninstalled** A flag that represents when a feature update is uninstalled on a device . -- **OSWUAutoUpdateOptions** Retrieves the auto update settings on the device. -- **UninstallActive** A flag that represents when a device has uninstalled a previous upgrade recently. -- **UpdateServiceURLConfigured** Retrieves if the device is managed by Windows Server Update Services (WSUS). -- **WUDeferUpdatePeriod** Retrieves if deferral is set for Updates. -- **WUDeferUpgradePeriod** Retrieves if deferral is set for Upgrades. -- **WUDODownloadMode** Retrieves whether DO is turned on and how to acquire/distribute updates Delivery Optimization (DO) allows users to deploy previously downloaded Windows Update (WU) updates to other devices on the same network. -- **WUMachineId** Retrieves the Windows Update (WU) Machine Identifier. -- **WUPauseState** Retrieves Windows Update setting to determine if updates are paused. -- **WUServer** Retrieves the HTTP(S) URL of the WSUS server that is used by Automatic Updates and API callers (by default). - - -### Census.Xbox - -This event sends data about the Xbox Console, such as Serial Number and DeviceId, to help keep Windows up to date. - -The following fields are available: - -- **XboxConsolePreferredLanguage** Retrieves the preferred language selected by the user on Xbox console. -- **XboxConsoleSerialNumber** Retrieves the serial number of the Xbox console. -- **XboxLiveDeviceId** Retrieves the unique device ID of the console. -- **XboxLiveSandboxId** Retrieves the developer sandbox ID if the device is internal to Microsoft. - - -## Common data extensions - -### Common Data Extensions.app - -Describes the properties of the running application. This extension could be populated by a client app or a web app. - -The following fields are available: - -- **asId** An integer value that represents the app session. This value starts at 0 on the first app launch and increments after each subsequent app launch per boot session. -- **env** The environment from which the event was logged. -- **expId** Associates a flight, such as an OS flight, or an experiment, such as a web site UX experiment, with an event. -- **id** Represents a unique identifier of the client application currently loaded in the process producing the event; and is used to group events together and understand usage pattern, errors by application. -- **userId** The userID as known by the application. -- **ver** Represents the version number of the application. Used to understand errors by Version, Usage by Version across an app. - - -### Common Data Extensions.container - -Describes the properties of the container for events logged within a container. - -The following fields are available: - -- **localId** The device ID as known by the client. -- **osVer** The operating system version. -- **type** The container type. Examples: Process or VMHost - - -### Common Data Extensions.cs - -Describes properties related to the schema of the event. - -The following fields are available: - -- **sig** A common schema signature that identifies new and modified event schemas. - - -### Common Data Extensions.device - -Describes the device-related fields. - -The following fields are available: - -- **deviceClass** Represents the classification of the device, the device “family”. For example, Desktop, Server, or Mobile. -- **localId** Represents a locally defined unique ID for the device, not the human readable device name. Most likely equal to the value stored at HKLM\Software\Microsoft\SQMClient\MachineId - - -### Common Data Extensions.Envelope - -Represents an envelope that contains all of the common data extensions. - -The following fields are available: - -- **appId** Represents a unique identifier of the client application currently loaded in the process producing the event; and is used to group events together and understand usage pattern, errors by application. -- **appVer** Represents the version number of the application. Used to understand errors by version and usage by version across an app. -- **cV** Represents the Correlation Vector: A single field for tracking partial order of related telemetry events across component boundaries. -- **data** Represents the optional unique diagnostic data for a particular event schema. -- **epoch** ID used to help distinguish events in the sequence by indicating the current boot session. -- **ext_app** Describes the properties of the running application. This extension could be populated by either a client app or a web app. See [Common Data Extensions.app](#common-data-extensionsapp). -- **ext_container** Describes the properties of the container for events logged within a container. See [Common Data Extensions.container](#common-data-extensionscontainer). -- **ext_cs** Describes properties related to the schema of the event. See [Common Data Extensions.cs](#common-data-extensionscs). -- **ext_device** Describes the device-related fields. See [Common Data Extensions.device](#common-data-extensionsdevice). -- **ext_os** Describes the operating system properties that would be populated by the client. See [Common Data Extensions.os](#common-data-extensionsos). -- **ext_user** Describes the fields related to a user. See [Common Data Extensions.user](#common-data-extensionsuser). -- **ext_utc** Describes the fields that might be populated by a logging library on Windows. See [Common Data Extensions.utc](#common-data-extensionsutc). -- **ext_xbl** Describes the fields related to XBOX Live. See [Common Data Extensions.xbl](#common-data-extensionsxbl). -- **flags** Represents a collection of bits that describe how the event should be processed by the Connected User Experience and Telemetry component pipeline. The lowest-order byte is the event persistence. The next byte is the event latency. -- **iKey** Represents an ID for applications or other logical groupings of events. -- **name** Represents the uniquely qualified name for the event. -- **os** The operating system name. -- **osVer** The operating system version. -- **popSample** Represents the effective sample rate for this event at the time it was generated by a client. -- **seqNum** Used to track the absolute order of uploaded events. -- **tags** A header for semi-managed extensions. -- **time** Represents the event date time in Coordinated Universal Time (UTC) when the event was generated on the client. This should be in ISO 8601 format. -- **ver** Represents the major and minor version of the extension. - - -### Common Data Extensions.os - -Describes some properties of the operating system. - -The following fields are available: - -- **bootId** An integer value that represents the boot session. This value starts at 0 on first boot after OS install and increments after every reboot. -- **expId** Represents the experiment ID. The standard for associating a flight, such as an OS flight (pre-release build), or an experiment, such as a web site UX experiment, with an event is to record the flight / experiment IDs in Part A of the common schema. -- **locale** Represents the locale of the operating system. - - -### Common Data Extensions.user - -Describes the fields related to a user. - -The following fields are available: - -- **authId** This is an ID of the user associated with this event that is deduced from a token such as a Microsoft Account ticket or an XBOX token. -- **localId** Represents a unique user identity that is created locally and added by the client. This is not the user's account ID. - - -### Common Data Extensions.utc - -Describes the properties that could be populated by a logging library on Windows. - -The following fields are available: - -- **aId** Represents the ETW ActivityId. Logged via TraceLogging or directly via ETW. -- **bSeq** Upload buffer sequence number in the format: buffer identifier:sequence number -- **cat** Represents a bitmask of the ETW Keywords associated with the event. -- **cpId** The composer ID, such as Reference, Desktop, Phone, Holographic, Hub, IoT Composer. -- **flags** Represents the bitmap that captures various Windows specific flags. -- **mon** Combined monitor and event sequence numbers in the format: monitor sequence : event sequence -- **op** Represents the ETW Op Code. -- **raId** Represents the ETW Related ActivityId. Logged via TraceLogging or directly via ETW. -- **sqmId** The Windows SQM (Software Quality Metrics—a precursor of Windows 10 Diagnostic Data collection) device identifier. -- **stId** Represents the Scenario Entry Point ID. This is a unique GUID for each event in a diagnostic scenario. This used to be Scenario Trigger ID. -- **tickets** An array of strings that refer back to a key in the X-Tickets http header that the client uploaded along with a batch of events. - - -### Common Data Extensions.xbl - -Describes the fields that are related to XBOX Live. - -The following fields are available: - -- **claims** Any additional claims whose short claim name hasn't been added to this structure. -- **did** XBOX device ID -- **dty** XBOX device type -- **dvr** The version of the operating system on the device. -- **eid** A unique ID that represents the developer entity. -- **exp** Expiration time -- **ip** The IP address of the client device. -- **nbf** Not before time -- **pid** A comma separated list of PUIDs listed as base10 numbers. -- **sbx** XBOX sandbox identifier -- **sid** The service instance ID. -- **sty** The service type. -- **tid** The XBOX Live title ID. -- **tvr** The XBOX Live title version. -- **uts** A bit field, with 2 bits being assigned to each user ID listed in xid. This field is omitted if all users are retail accounts. -- **xid** A list of base10-encoded XBOX User IDs. - - -## Common data fields - -### Ms.Device.DeviceInventoryChange - -Describes the installation state for all hardware and software components available on a particular device. - -The following fields are available: - -- **action** The change that was invoked on a device inventory object. -- **inventoryId** Device ID used for Compatibility testing -- **objectInstanceId** Object identity which is unique within the device scope. -- **objectType** Indicates the object type that the event applies to. -- **syncId** A string used to group StartSync, EndSync, Add, and Remove operations that belong together. This field is unique by Sync period and is used to disambiguate in situations where multiple agents perform overlapping inventories for the same object. - - -## Component-based Servicing events - -### CbsServicingProvider.CbsCapabilityEnumeration - -This event reports on the results of scanning for optional Windows content on Windows Update to keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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. - - -### CbsServicingProvider.CbsQualityUpdateInstall - -This event reports on the performance and reliability results of installing Servicing content from Windows Update to keep Windows up to date. - - - -### CbsServicingProvider.CbsSelectableUpdateChangeV2 - -This event reports the results of enabling or disabling optional Windows Content to keep Windows up to date. - -The following fields are available: - -- **applicableUpdateState** Indicates the highest applicable state of the optional content. -- **buildVersion** The build version of the package being installed. -- **clientId** The name of the application requesting the optional content change. -- **downloadSource** Indicates if optional content was obtained from Windows Update or a locally accessible file. -- **downloadtimeInSeconds** Indicates if optional content was obtained from Windows Update or a locally accessible file. -- **executionID** A unique ID used to identify events associated with a single servicing operation and not reused for future operations. -- **executionSequence** A counter that tracks the number of servicing operations attempted on the device. -- **firstMergedExecutionSequence** The value of a pervious executionSequence counter that is being merged with the current operation, if applicable. -- **firstMergedID** A unique ID of a pervious servicing operation that is being merged with this operation, if applicable. -- **hrDownloadResult** The return code of the download operation. -- **hrStatusUpdate** The return code of the servicing operation. -- **identityHash** A pseudonymized (hashed) identifier for the Windows Package that is being installed or uninstalled. -- **initiatedOffline** Indicates whether the operation was performed against an offline Windows image file or a running instance of Windows. -- **majorVersion** The major version of the package being installed. -- **minorVersion** The minor version of the package being installed. -- **packageArchitecture** The architecture of the package being installed. -- **packageLanguage** The language of the package being installed. -- **packageName** The name of the package being installed. -- **rebootRequired** Indicates whether a reboot is required to complete the operation. -- **revisionVersion** The revision number of the package being installed. -- **stackBuild** The build number of the servicing stack binary performing the installation. -- **stackMajorVersion** The major version number of the servicing stack binary performing the installation. -- **stackMinorVersion** The minor version number of the servicing stack binary performing the installation. -- **stackRevision** The revision number of the servicing stack binary performing the installation. -- **updateName** The name of the optional Windows Operation System feature being enabled or disabled. -- **updateStartState** A value indicating the state of the optional content before the operation started. -- **updateTargetState** A value indicating the desired state of the optional content. - - -## Diagnostic data events - -### TelClientSynthetic.AuthorizationInfo_RuntimeTransition - -This event is fired by UTC at state transitions to signal what data we are allowed to collect. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - - - -### TelClientSynthetic.AuthorizationInfo_Startup - -This event is fired by UTC at startup to signal what data we are allowed to collect. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CanAddMsaToMsTelemetry** True if UTC is allowed to add MSA user identity onto telemetry from the OS provider groups. -- **CanCollectAnyTelemetry** True if UTC is allowed to collect non-OS telemetry. Non-OS telemetry is responsible for providing its own opt-in mechanism. -- **CanCollectCoreTelemetry** True if UTC is allowed to collect data which is tagged with both MICROSOFT_KEYWORD_CRITICAL_DATA and MICROSOFT_EVENTTAG_CORE_DATA. -- **CanCollectHeartbeats** True if we can collect heartbeat telemetry, false otherwise. -- **CanCollectOsTelemetry** True if UTC is allowed to collect telemetry from the OS provider groups (often called Microsoft Telemetry). -- **CanPerformDiagnosticEscalations** True if UTC is allowed to perform all scenario escalations. -- **CanPerformTraceEscalations** True if UTC is allowed to perform scenario escalations with tracing actions. -- **CanReportScenarios** True if we can report scenario completions, false otherwise. -- **PreviousPermissions** Bitmask representing the previously configured permissions since the telemetry client was last started. -- **TransitionFromEverythingOff** True if this transition is moving from not allowing core telemetry to allowing core telemetry. - - -### TelClientSynthetic.ConnectivityHeartBeat_0 - -This event sends data about the connectivity status of the Connected User Experience and Telemetry component that uploads telemetry events. If an unrestricted free network (such as Wi-Fi) is available, this event updates the last successful upload time. Otherwise, it checks whether a Connectivity Heartbeat event was fired in the past 24 hours, and if not, it sends an event. A Connectivity Heartbeat event is also sent when a device recovers from costed network to free network. This event is fired by UTC during periods of no network as a heartbeat signal, to keep Windows secure and up to date. - -The following fields are available: - -- **CensusExitCode** Last exit code of Census task -- **CensusStartTime** Returns timestamp corresponding to last successful census run. -- **CensusTaskEnabled** Returns Boolean value for the census task (Enable/Disable) on client machine. -- **LastConnectivityLossTime** The FILETIME at which the last free network loss occurred. -- **NetworkState** Retrieves the network state: 0 = No network. 1 = Restricted network. 2 = Free network. -- **NoNetworkTime** Retrieves the time spent with no network (since the last time) in seconds. -- **RestrictedNetworkTime** The total number of seconds with restricted network during this heartbeat period. - - -### TelClientSynthetic.HeartBeat_5 - -This event sends data about the health and quality of the diagnostic data from the given device, to help keep Windows up to date. It also enables data analysts to determine how 'trusted' the data is from a given device. - - - -### TelClientSynthetic.HeartBeat_Aria_5 - -This event is the telemetry client ARIA heartbeat. - -The following fields are available: - -- **CompressedBytesUploaded** Number of compressed bytes uploaded -- **CriticalDataDbDroppedCount** Number of critical data sampled events dropped at the database layer. -- **CriticalOverflowEntersCounter** Number of times critical overflow mode was entered in event database. -- **DbCriticalDroppedCount** Total number of dropped critical events in event database. -- **DbDroppedCount** Number of events dropped at the database layer. -- **EnteringCriticalOverflowDroppedCounter** Number of events dropped due to critical overflow mode being initiated. -- **EventSubStoreResetCounter** Number of times event database was reset. -- **EventSubStoreResetSizeSum** Total size of event database across all resets reports in this instance. -- **EventsUploaded** Number of events uploaded. -- **InvalidHttpCodeCounter** Number of invalid HTTP codes received from contacting Vortex. -- **LastInvalidHttpCode** Last invalid HTTP code received from Vortex. -- **SettingsHttpAttempts** Number of attempts to contact OneSettings service. -- **SettingsHttpFailures** Number of failures from contacting OneSettings service. -- **UploaderDroppedCount** Number of events dropped at the uploader layer of telemetry client. -- **VortexFailuresTimeout** Number of time out failures received from Vortex. -- **VortexHttpAttempts** Number of attempts to contact Vortex. -- **VortexHttpFailures4xx** Number of 400-499 error codes received from Vortex. -- **VortexHttpFailures5xx** Number of 500-599 error codes received from Vortex. -- **VortexHttpResponseFailures** Number of Vortex responses that are not 2XX or 400. -- **VortexHttpResponsesWithDroppedEvents** Number of Vortex responses containing at least 1 dropped event. - - -### TelClientSynthetic.TailoredExperiencesWithDiagnosticDataUpdate - -This event is triggered when UTC determines it needs to send information about personalization settings of the user. - - - -## DxgKernelTelemetry events - -### DxgKrnlTelemetry.BddDiag - -This event records Microsoft basic display driver diagnostic information. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **BiosFlags** Bitwise flags that contain graphics related firmware information on the device such as the system was booted with display or not, system was using VBIOS or UEFI GOP, and VBIOS has a valid display mode list or not. -- **CurrentMode** Information about the current display mode such as the resolution, rotation, and scaling. -- **DefaultModeReason** Numeric value indicating the reason that the Microsoft Basic Display Driver is in use. -- **DefaultModeResolution** Default resolution that Microsoft Basic Display Driver detected. -- **DefaultResolutionProvider** Numeric value indicating the source of the default resolution. -- **Flags** Bitwise flags containing Microsoft Basic Display Driver related information such as if it is running because there is no graphics driver or user PnP stopped the graphics driver, it has valid EDID or not on the connected monitor and where the EDID was from, it is running at gray scale mode or not, it is running without display or not. -- **HeadlessReason** Numeric value indicating why there is no display. -- **LogAssertionCount** Number of assertions that were encountered before this event was recorded. -- **LogErrorCount** Number of errors that were encountered before this event was recorded. -- **MonitorPowerState** Current power state of the monitor. -- **Version** Version of the schema for this event. - - -### 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. - - -## Failover Clustering events - -### Microsoft.Windows.Server.FailoverClusteringCritical.ClusterSummary2 - -This event returns information about how many resources and of what type are in the server cluster. This data is collected to keep Windows Server safe, secure, and up to date. The data includes information about whether hardware is configured correctly, if the software is patched correctly, and assists in preventing crashes by attributing issues (like fatal errors) to workloads and system configurations. - -The following fields are available: - -- **autoAssignSite** The cluster parameter: auto site. -- **autoBalancerLevel** The cluster parameter: auto balancer level. -- **autoBalancerMode** The cluster parameter: auto balancer mode. -- **blockCacheSize** The configured size of the block cache. -- **ClusterAdConfiguration** The ad configuration of the cluster. -- **clusterAdType** The cluster parameter: mgmt_point_type. -- **clusterDumpPolicy** The cluster configured dump policy. -- **clusterFunctionalLevel** The current cluster functional level. -- **clusterGuid** The unique identifier for the cluster. -- **clusterWitnessType** The witness type the cluster is configured for. -- **countNodesInSite** The number of nodes in the cluster. -- **crossSiteDelay** The cluster parameter: CrossSiteDelay. -- **crossSiteThreshold** The cluster parameter: CrossSiteThreshold. -- **crossSubnetDelay** The cluster parameter: CrossSubnetDelay. -- **crossSubnetThreshold** The cluster parameter: CrossSubnetThreshold. -- **csvCompatibleFilters** The cluster parameter: ClusterCsvCompatibleFilters. -- **csvIncompatibleFilters** The cluster parameter: ClusterCsvIncompatibleFilters. -- **csvResourceCount** The number of resources in the cluster. -- **currentNodeSite** The name configured for the current site for the cluster. -- **dasModeBusType** The direct storage bus type of the storage spaces. -- **downLevelNodeCount** The number of nodes in the cluster that are running down-level. -- **drainOnShutdown** Specifies whether a node should be drained when it is shut down. -- **dynamicQuorumEnabled** Specifies whether dynamic Quorum has been enabled. -- **enforcedAntiAffinity** The cluster parameter: enforced anti affinity. -- **genAppNames** The win32 service name of a clustered service. -- **genSvcNames** The command line of a clustered genapp. -- **hangRecoveryAction** The cluster parameter: hang recovery action. -- **hangTimeOut** Specifies the “hang time out” parameter for the cluster. -- **isCalabria** Specifies whether storage spaces direct is enabled. -- **isMixedMode** Identifies if the cluster is running with different version of OS for nodes. -- **isRunningDownLevel** Identifies if the current node is running down-level. -- **logLevel** Specifies the granularity that is logged in the cluster log. -- **logSize** Specifies the size of the cluster log. -- **lowerQuorumPriorityNodeId** The cluster parameter: lower quorum priority node ID. -- **minNeverPreempt** The cluster parameter: minimum never preempt. -- **minPreemptor** The cluster parameter: minimum preemptor priority. -- **netftIpsecEnabled** The parameter: netftIpsecEnabled. -- **NodeCount** The number of nodes in the cluster. -- **nodeId** The current node number in the cluster. -- **nodeResourceCounts** Specifies the number of node resources. -- **nodeResourceOnlineCounts** Specifies the number of node resources that are online. -- **numberOfSites** The number of different sites. -- **numNodesInNoSite** The number of nodes not belonging to a site. -- **plumbAllCrossSubnetRoutes** The cluster parameter: plumb all cross subnet routes. -- **preferredSite** The preferred site location. -- **privateCloudWitness** Specifies whether a private cloud witness exists for this cluster. -- **quarantineDuration** The quarantine duration. -- **quarantineThreshold** The quarantine threshold. -- **quorumArbitrationTimeout** In the event of an arbitration event, this specifies the quorum timeout period. -- **resiliencyLevel** Specifies the level of resiliency. -- **resourceCounts** Specifies the number of resources. -- **resourceTypeCounts** Specifies the number of resource types in the cluster. -- **resourceTypes** Data representative of each resource type. -- **resourceTypesPath** Data representative of the DLL path for each resource type. -- **sameSubnetDelay** The cluster parameter: same subnet delay. -- **sameSubnetThreshold** The cluster parameter: same subnet threshold. -- **secondsInMixedMode** The amount of time (in seconds) that the cluster has been in mixed mode (nodes with different operating system versions in the same cluster). -- **securityLevel** The cluster parameter: security level. -- **securityLevelForStorage** The cluster parameter: security level for storage. -- **sharedVolumeBlockCacheSize** Specifies the block cache size for shared for shared volumes. -- **shutdownTimeoutMinutes** Specifies the amount of time it takes to time out when shutting down. -- **upNodeCount** Specifies the number of nodes that are up (online). -- **useClientAccessNetworksForCsv** The cluster parameter: use client access networks for CSV. -- **vmIsolationTime** The cluster parameter: VM isolation time. -- **witnessDatabaseWriteTimeout** Specifies the timeout period for writing to the quorum witness database. - - -## 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 - -This event sends diagnostic data about failures when uninstalling a feature update, to help resolve any issues preventing customers from reverting to a known state. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **failureReason** Provides data about the uninstall initialization operation failure. -- **hr** Provides the Win32 error code for the operation failure. - - -### Microsoft.Windows.Upgrade.Uninstall.UninstallFinalizedAndRebootTriggered - -This event indicates that the uninstall was properly configured and that a system reboot was initiated. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **name** Name of the event - - -### Microsoft.Windows.Upgrade.Uninstall.UninstallGoBackButtonClicked - -This event sends basic metadata about the starting point of uninstalling a feature update, which helps ensure customers can safely revert to a well-known state if the update caused any problems. - - - -## 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 - -This event captures basic checksum data about the device inventory items stored in the cache for use in validating data completeness for Microsoft.Windows.Inventory.Core events. The fields in this event may change over time, but they will always represent a count of a given object. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **Device** A count of device objects in cache. -- **DeviceCensus** A count of devicecensus objects in cache. -- **DriverPackageExtended** A count of driverpackageextended objects in cache. -- **File** A count of file objects in cache. -- **FileSigningInfo** A count of file signing objects in cache. -- **Generic** A count of generic objects in cache. -- **HwItem** A count of hwitem objects in cache. -- **InventoryApplication** A count of application objects in cache. -- **InventoryApplicationFile** A count of application file objects in cache. -- **InventoryDeviceContainer** A count of device container objects in cache. -- **InventoryDeviceInterface** A count of Plug and Play device interface objects in cache. -- **InventoryDeviceMediaClass** A count of device media objects in cache. -- **InventoryDevicePnp** A count of device Plug and Play objects in cache. -- **InventoryDeviceUsbHubClass** A count of device usb objects in cache -- **InventoryDriverBinary** A count of driver binary objects in cache. -- **InventoryDriverPackage** A count of device objects in cache. -- **Metadata** A count of metadata objects in cache. -- **Orphan** A count of orphan file objects in cache. -- **Programs** A count of program objects in cache. - - -### Microsoft.Windows.Inventory.Core.AmiTelCacheVersions - -This event sends inventory component versions for the Device Inventory data. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **aeinv** The version of the App inventory component. -- **devinv** The file version of the Device inventory component. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationAdd - -This event sends basic metadata about an application on the system. The data collected with this event is used to keep Windows performing properly and up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **HiddenArp** Indicates whether a program hides itself from showing up in ARP. -- **InstallDate** The date the application was installed (a best guess based on folder creation date heuristics). -- **InstallDateArpLastModified** The date of the registry ARP key for a given application. Hints at install date but not always accurate. Passed as an array. Example: 4/11/2015 00:00:00 -- **InstallDateFromLinkFile** The estimated date of install based on the links to the files. Passed as an array. -- **InstallDateMsi** The install date if the application was installed via Microsoft Installer (MSI). Passed as an array. -- **InventoryVersion** The version of the inventory file generating the events. -- **Language** The language code of the program. -- **MsiPackageCode** A GUID that describes the MSI Package. Multiple 'Products' (apps) can make up an MsiPackage. -- **MsiProductCode** A GUID that describe the MSI Product. -- **Name** The name of the application. -- **OSVersionAtInstallTime** The four octets from the OS version at the time of the application's install. -- **PackageFullName** The package full name for a Store application. -- **ProgramInstanceId** A hash of the file IDs in an app. -- **Publisher** The Publisher of the application. Location pulled from depends on the 'Source' field. -- **RootDirPath** The path to the root directory where the program was installed. -- **Source** How the program was installed (for example, ARP, MSI, Appx). -- **StoreAppType** A sub-classification for the type of Microsoft Store app, such as UWP or Win8StoreApp. -- **Type** One of ("Application", "Hotfix", "BOE", "Service", "Unknown"). Application indicates Win32 or Appx app, Hotfix indicates app updates (KBs), BOE indicates it's an app with no ARP or MSI entry, Service indicates that it is a service. Application and BOE are the ones most likely seen. -- **Version** The version number of the program. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationDriverAdd - -This event represents what drivers an application installs. The data collected with this event is used to keep Windows performing properly. - -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.InventoryApplicationDriverStartSync - -The InventoryApplicationDriverStartSync event indicates that a new set of InventoryApplicationDriverStartAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **InventoryVersion** The version of the inventory component. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationFrameworkAdd - -This event provides the basic metadata about the frameworks an application may depend on. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **FileId** A hash that uniquely identifies a file. -- **Frameworks** The list of frameworks this file depends on. -- **InventoryVersion** The version of the inventory file generating the events. -- **ProgramId** A hash of the Name, Version, Publisher, and Language of an application used to identify it - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationFrameworkStartSync - -This event indicates that a new set of InventoryApplicationFrameworkAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryApplicationRemove - -This event indicates that a new set of InventoryDevicePnpAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryApplicationStartSync - -This event indicates that a new set of InventoryApplicationAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceContainerAdd - -This event sends basic metadata about a device container (such as a monitor or printer as opposed to a Plug and Play device). The data collected with this event is used to help keep Windows up to date and to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Categories** A comma separated list of functional categories in which the container belongs. -- **DiscoveryMethod** The discovery method for the device container. -- **FriendlyName** The name of the device container. -- **InventoryVersion** The version of the inventory file generating the events. -- **IsActive** Is the device connected, or has it been seen in the last 14 days? -- **IsConnected** For a physically attached device, this value is the same as IsPresent. For wireless a device, this value represents a communication link. -- **IsMachineContainer** Is the container the root device itself? -- **IsNetworked** Is this a networked device? -- **IsPaired** Does the device container require pairing? -- **Manufacturer** The manufacturer name for the device container. -- **ModelId** A unique model ID. -- **ModelName** The model name. -- **ModelNumber** The model number for the device container. -- **PrimaryCategory** The primary category for the device container. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceContainerRemove - -This event indicates that the InventoryDeviceContainer object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceContainerStartSync - -This event indicates that a new set of InventoryDeviceContainerAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceInterfaceAdd - -This event retrieves information about what sensor interfaces are available on the device. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Accelerometer3D** Indicates if an Accelerator3D sensor is found. -- **ActivityDetection** Indicates if an Activity Detection sensor is found. -- **AmbientLight** Indicates if an Ambient Light sensor is found. -- **Barometer** Indicates if a Barometer sensor is found. -- **Custom** Indicates if a Custom sensor is found. -- **EnergyMeter** Indicates if an Energy sensor is found. -- **FloorElevation** Indicates if a Floor Elevation sensor is found. -- **GeomagneticOrientation** Indicates if a Geo Magnetic Orientation sensor is found. -- **GravityVector** Indicates if a Gravity Detector sensor is found. -- **Gyrometer3D** Indicates if a Gyrometer3D sensor is found. -- **Humidity** Indicates if a Humidity sensor is found. -- **InventoryVersion** The version of the inventory file generating the events. -- **LinearAccelerometer** Indicates if a Linear Accelerometer sensor is found. -- **Magnetometer3D** Indicates if a Magnetometer3D sensor is found. -- **Orientation** Indicates if an Orientation sensor is found. -- **Pedometer** Indicates if a Pedometer sensor is found. -- **Proximity** Indicates if a Proximity sensor is found. -- **RelativeOrientation** Indicates if a Relative Orientation sensor is found. -- **SimpleDeviceOrientation** Indicates if a Simple Device Orientation sensor is found. -- **Temperature** Indicates if a Temperature sensor is found. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceInterfaceStartSync - -This event indicates that a new set of InventoryDeviceInterfaceAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceMediaClassAdd - -This event sends additional metadata about a Plug and Play device that is specific to a particular class of devices. The data collected with this event is used to help keep Windows up to date and performing properly while reducing overall size of data payload. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Audio_CaptureDriver** The Audio device capture driver endpoint. -- **Audio_RenderDriver** The Audio device render driver endpoint. -- **InventoryVersion** The version of the inventory file generating the events. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceMediaClassRemove - -This event indicates that the InventoryDeviceMediaClass object represented by the objectInstanceId is no longer present. This event is used to understand a PNP device that is specific to a particular class of devices. The data collected with this event is used to help keep Windows up to date and performing properly while reducing overall size of data payload. - -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. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDevicePnpAdd - -This event sends basic metadata about a PNP device and its associated driver to help keep Windows up to date. This information is used to assess if the PNP device and driver will remain compatible when upgrading Windows. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **BusReportedDescription** The description of the device reported by the bus. -- **Class** The device setup class of the driver loaded for the device. -- **ClassGuid** The device class unique identifier of the driver package loaded on the device. -- **COMPID** The list of “Compatible IDs” for this device. -- **ContainerId** The system-supplied unique identifier that specifies which group(s) the device(s) installed on the parent (main) device belong to. -- **Description** The description of the device. -- **DeviceState** Identifies the current state of the parent (main) device. -- **DriverId** The unique identifier for the installed driver. -- **DriverName** The file name of the installed driver image. -- **DriverPackageStrongName** The immediate parent directory name in the Directory field of InventoryDriverPackage. -- **DriverVerDate** The date associated with the driver installed on the device. -- **DriverVerVersion** The version number of the driver installed on the device. -- **Enumerator** Identifies the bus that enumerated the device. -- **HWID** A list of hardware IDs for the device. -- **Inf** The name of the INF file (possibly renamed by the OS, such as oemXX.inf). -- **InstallState** The device installation state. For a list of values, see: [Device Install State](/windows-hardware/drivers/ddi/wdm/ne-wdm-_device_install_state) -- **InventoryVersion** The version number of the inventory process generating the events. -- **LowerClassFilters** The identifiers of the Lower Class filters installed for the device. -- **LowerFilters** The identifiers of the Lower filters installed for the device. -- **Manufacturer** The manufacturer of the device. -- **MatchingID** The Hardware ID or Compatible ID that Windows uses to install a device instance. -- **Model** Identifies the model of the device. -- **ParentId** The Device Instance ID of the parent of the device. -- **ProblemCode** The error code currently returned by the device, if applicable. -- **Provider** Identifies the device provider. -- **Service** The name of the device service. -- **STACKID** The list of hardware IDs for the stack. -- **UpperClassFilters** The identifiers of the Upper Class filters installed for the device. -- **UpperFilters** The identifiers of the Upper filters installed for the device. - - -### Microsoft.Windows.Inventory.Core.InventoryDevicePnpRemove - -This event indicates that the InventoryDevicePnpRemove object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDevicePnpStartSync - -This event indicates that a new set of InventoryDevicePnpAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceUsbHubClassAdd - -This event sends basic metadata about the USB hubs on the device. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **InventoryVersion** The version of the inventory file generating the events. -- **TotalUserConnectablePorts** Total number of connectable USB ports. -- **TotalUserConnectableTypeCPorts** Total number of connectable USB Type C ports. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceUsbHubClassStartSync - -This event indicates that a new set of InventoryDeviceUsbHubClassAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverBinaryAdd - -This event sends basic metadata about driver binaries running on the system. The data collected with this event is used to help keep Windows up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **DriverCheckSum** The checksum of the driver file. -- **DriverCompany** The company name that developed the driver. -- **DriverInBox** Is the driver included with the operating system? -- **DriverIsKernelMode** Is it a kernel mode driver? -- **DriverName** The file name of the driver. -- **DriverPackageStrongName** The strong name of the driver package -- **DriverSigned** Is the driver signed? -- **DriverTimeStamp** The low 32 bits of the time stamp of the driver file. -- **DriverType** A bitfield of driver attributes: 1. define DRIVER_MAP_DRIVER_TYPE_PRINTER 0x0001. 2. define DRIVER_MAP_DRIVER_TYPE_KERNEL 0x0002. 3. define DRIVER_MAP_DRIVER_TYPE_USER 0x0004. 4. define DRIVER_MAP_DRIVER_IS_SIGNED 0x0008. 5. define DRIVER_MAP_DRIVER_IS_INBOX 0x0010. 6. define DRIVER_MAP_DRIVER_IS_WINQUAL 0x0040. 7. define DRIVER_MAP_DRIVER_IS_SELF_SIGNED 0x0020. 8. define DRIVER_MAP_DRIVER_IS_CI_SIGNED 0x0080. 9. define DRIVER_MAP_DRIVER_HAS_BOOT_SERVICE 0x0100. 10. define DRIVER_MAP_DRIVER_TYPE_I386 0x10000. 11. define DRIVER_MAP_DRIVER_TYPE_IA64 0x20000. 12. define DRIVER_MAP_DRIVER_TYPE_AMD64 0x40000. 13. define DRIVER_MAP_DRIVER_TYPE_ARM 0x100000. 14. define DRIVER_MAP_DRIVER_TYPE_THUMB 0x200000. 15. define DRIVER_MAP_DRIVER_TYPE_ARMNT 0x400000. 16. define DRIVER_MAP_DRIVER_IS_TIME_STAMPED 0x800000. -- **DriverVersion** The version of the driver file. -- **ImageSize** The size of the driver file. -- **Inf** The name of the INF file. -- **InventoryVersion** The version of the inventory file generating the events. -- **Product** The product name that is included in the driver file. -- **ProductVersion** The product version that is included in the driver file. -- **Service** The name of the service that is installed for the device. -- **WdfVersion** The Windows Driver Framework version. - - -### Microsoft.Windows.Inventory.Core.InventoryDriverBinaryRemove - -This event indicates that the InventoryDriverBinary object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverBinaryStartSync - -This event indicates that a new set of InventoryDriverBinaryAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverPackageAdd - -This event sends basic metadata about drive packages installed on the system. The data collected with this event is used to help keep Windows up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Class** The class name for the device driver. -- **ClassGuid** The class GUID for the device driver. -- **Date** The driver package date. -- **Directory** The path to the driver package. -- **DriverInBox** Is the driver included with the operating system? -- **Inf** The INF name of the driver package. -- **InventoryVersion** The version of the inventory file generating the events. -- **Provider** The provider for the driver package. -- **SubmissionId** The HLK submission ID for the driver package. -- **Version** The version of the driver package. - - -### Microsoft.Windows.Inventory.Core.InventoryDriverPackageRemove - -This event indicates that the InventoryDriverPackageRemove object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverPackageStartSync - -This event indicates that a new set of InventoryDriverPackageAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.General. InventoryMiscellaneousMemorySlotArrayInfoRemove - -This event indicates that this particular data object represented by the ObjectInstanceId is no longer present. The data collected with this event is used to help keep Windows up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.General.AppHealthStaticAdd - -This event sends details collected for a specific application on the source device. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **AhaVersion** The binary version of the App Health Analyzer tool. -- **ApplicationErrors** The count of application errors from the event log. -- **Bitness** The architecture type of the application (16 Bit or 32 bit or 64 bit). -- **device_level** Various JRE/JAVA versions installed on a particular device. -- **ExtendedProperties** Attribute used for aggregating all other attributes under this event type. -- **Jar** Flag to determine if an app has a Java JAR file dependency. -- **Jre** Flag to determine if an app has JRE framework dependency. -- **Jre_version** JRE versions an app has declared framework dependency for. -- **Name** Name of the application. -- **NonDPIAware** Flag to determine if an app is non-DPI aware -- **NumBinaries** Count of all binaries (.sys,.dll,.ini) from application install location. -- **RequiresAdmin** Flag to determine if an app requests admin privileges for execution. -- **RequiresAdminv2** Additional flag to determine if an app requests admin privileges for execution. -- **RequiresUIAccess** Flag to determine if an app is based on UI features for accessibility. -- **VB6** Flag to determine if an app is based on VB6 framework. -- **VB6v2** Additional flag to determine if an app is based on VB6 framework. -- **Version** Version of the application. -- **VersionCheck** Flag to determine if an app has a static dependency on OS version. -- **VersionCheckv2** Additional flag to determine if an app has a static dependency on OS version. - - -### Microsoft.Windows.Inventory.General.AppHealthStaticStartSync - -This event indicates the beginning of a series of AppHealthStaticAdd events. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **AllowTelemetry** Indicates the presence of the 'allowtelemetry' command line argument. -- **CommandLineArgs** Command line arguments passed when launching the App Health Analyzer executable. -- **Enhanced** Indicates the presence of the 'enhanced' command line argument. -- **StartTime** UTC date and time at which this event was sent. - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousMemorySlotArrayInfoAdd - -This event provides basic information about active memory slots on the device. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Capacity** Memory size in bytes -- **Manufacturer** Name of the DRAM manufacturer -- **Model** Model and sub-model of the memory -- **Slot** Slot to which the DRAM is plugged into the motherboard. -- **Speed** The configured memory slot speed in MHz. -- **Type** Reports DDR as an enumeration value per DMTF SMBIOS standard version 3.3.0, section 7.18.2. -- **TypeDetails** Reports Non-volatile as a bit flag enumeration per DMTF SMBIOS standard version 3.3.0, section 7.18.3. - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousMemorySlotArrayInfoStartSync - -This diagnostic event indicates a new sync is being generated for this object type. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoAdd - -This event provides data on Unified Update Platform (UUP) products and what version they are at. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Identifier** UUP identifier -- **LastActivatedVersion** Last activated version -- **PreviousVersion** Previous version -- **Source** UUP source -- **Version** UUP version - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoRemove - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoStartSync - -This is a diagnostic event that indicates a new sync is being generated for this object type. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.Indicators.Checksum - -This event summarizes the counts for the InventoryMiscellaneousUexIndicatorAdd events. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **ChecksumDictionary** A count of each operating system indicator. -- **PCFP** Equivalent to the InventoryId field that is found in other core events. - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorAdd - -This event represents the basic metadata about the OS indicators installed on the system. The data collected with this event helps ensure the device is up to date and keeps Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **IndicatorValue** The indicator value. - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorRemove - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. This event is used to understand the OS indicators installed on the system. The data collected with this event helps ensure the device is current and Windows is up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorStartSync - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. This event is used to understand the OS indicators installed on the system. The data collected with this event helps ensure the device is current and Windows is up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -## Kernel events - -### IO - -This event indicates the number of bytes read from or read by the OS and written to or written by the OS upon system startup. - -The following fields are available: - -- **BytesRead** The total number of bytes read from or read by the OS upon system startup. -- **BytesWritten** The total number of bytes written to or written by the OS upon system startup. - - -### Microsoft.Windows.Kernel.BootEnvironment.OsLaunch - -This event includes basic data about the Operating System, collected during Boot and used to evaluate the success of the upgrade process. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **BootApplicationId** This field tells us what the OS Loader Application Identifier is. -- **BootAttemptCount** The number of consecutive times the boot manager has attempted to boot into this operating system. -- **BootSequence** The current Boot ID, used to correlate events related to a particular boot session. -- **BootStatusPolicy** Identifies the applicable Boot Status Policy. -- **BootType** Identifies the type of boot (e.g.: "Cold", "Hiber", "Resume"). -- **EventTimestamp** Seconds elapsed since an arbitrary time point. This can be used to identify the time difference in successive boot attempts being made. -- **FirmwareResetReasonEmbeddedController** Reason for system reset provided by firmware. -- **FirmwareResetReasonEmbeddedControllerAdditional** Additional information on system reset reason provided by firmware if needed. -- **FirmwareResetReasonPch** Reason for system reset provided by firmware. -- **FirmwareResetReasonPchAdditional** Additional information on system reset reason provided by firmware if needed. -- **FirmwareResetReasonSupplied** Flag indicating that a reason for system reset was provided by firmware. -- **IO** Amount of data written to and read from the disk by the OS Loader during boot. See [IO](#io). -- **LastBootSucceeded** Flag indicating whether the last boot was successful. -- **LastShutdownSucceeded** Flag indicating whether the last shutdown was successful. -- **MenuPolicy** Type of advanced options menu that should be shown to the user (Legacy, Standard, etc.). -- **RecoveryEnabled** Indicates whether recovery is enabled. -- **UserInputTime** The amount of time the loader application spent waiting for user input. - - -## Migration events - -### Microsoft.Windows.MigrationCore.MigObjectCountDLUsr - -This event returns data to track the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - - - -### Microsoft.Windows.MigrationCore.MigObjectCountKFSys - -This event returns data about the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - - - -### Microsoft.Windows.MigrationCore.MigObjectCountKFUsr - -This event returns data to track the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - - - -## OneDrive events - -### Microsoft.OneDrive.Sync.Setup.APIOperation - -This event includes basic data about install and uninstall OneDrive API operations. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **winInetError** The HResult of the operation. - - -## Other events - -### Microsoft.ServerManagementExperience.Gateway.Service.ManagedNodeProperties - -This is a periodic rundown event that contains more detailed information about the nodes added to this Windows Admin Center gateway for management. - -The following fields are available: - -- **nodeId** The nodeTypeId concatenated with the hostname or IP address that gateway uses to connect to this node. -- **nodeOperatingSystem** A user friendly description of the node's OS version. -- **nodeOSVersion** A major or minor build version string for the node's OS. -- **nodeTypeId** A string that distinguishes between a connection target, whether it is a client, server, cluster or a hyper-converged cluster. -- **otherProperties** Contains a JSON object with variable content and may contain: "nodes": a list of host names or IP addresses of the servers belonging to a cluster, "aliases": the alias if it is set for this connection, "lastUpdatedTime": the number of milliseconds since Unix epoch when this connection was last updated, "ncUri", "caption", "version", "productType", "networkName", "operatingSystem", "computerManufacturer", "computerModel", "isS2dEnabled". This JSON object is formatted as an quotes-escaped string. - - -## Privacy logging notification events - -### Microsoft.Windows.Shell.PrivacyNotifierLogging.PrivacyNotifierCompleted - -This event returns data to report the efficacy of a single-use tool to inform users impacted by a known issue and to take corrective action to address the issue. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **cleanupTask** Indicates whether the task that launched the dialog should be cleaned up. -- **cleanupTaskResult** The return code of the attempt to clean up the task used to show the dialog. -- **deviceEvaluated** Indicates whether the device was eligible for evaluation of a known issue. -- **deviceImpacted** Indicates whether the device was impacted by a known issue. -- **modalAction** The action the user took on the dialog that was presented to them. -- **modalResult** The return code of the attempt to show a dialog to the user explaining the issue. -- **resetSettingsResult** The return code of the action to correct the known issue. - - -## Quality Update Assistant events - -### Microsoft.Windows.QualityUpdateAssistant.Applicability - -This event sends basic info on whether the device should be updated to the latest cumulative update. The data collected with this event is used to help keep Windows up to date and secure. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Applicability check for quality update assistant. - - -### Microsoft.Windows.QualityUpdateAssistant.DeviceReadinessCheck - -This event sends basic info on whether the device is ready to download the latest cumulative update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Device readiness check for quality update assistant. - - -### Microsoft.Windows.QualityUpdateAssistant.Download - -This event sends basic info when download of the latest cumulative update begins. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter that indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Download of latest cumulative update payload. - - -### Microsoft.Windows.QualityUpdateAssistant.Install - -This event sends basic info on the result of the installation of the latest cumulative update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Install of latest cumulative update payload. - - -## Remediation events - -### Microsoft.Windows.Remediation.Applicable - -This event indicates whether Windows Update sediment remediations need to be applied to the sediment device to keep Windows up to date. A sediment device is one that has been on a previous OS version for an extended period. The remediations address issues on the system that prevent the device from receiving OS updates. - -The following fields are available: - -- **ActionName** The name of the action to be taken by the plug-in. -- **AppraiserBinariesValidResult** Indicates whether the 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. -- **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 detected 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** Indicates the AC Line Status of the device. -- **RemediationNoisyHammerAutoStartCount** The number of times Auto UA 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 Auto UA ran. -- **RemediationNoisyHammerGetCurrentSize** Size in MB of the $GetCurrent folder. -- **RemediationNoisyHammerIsInstalled** TRUE if the Auto UA is installed. -- **RemediationNoisyHammerLastTaskRunResult** The result from the last Auto UA task run. -- **RemediationNoisyHammerMeteredNetwork** TRUE if the machine is on a metered network. -- **RemediationNoisyHammerTaskEnabled** TRUE if the Auto UA task is enabled. -- **RemediationNoisyHammerTaskExists** TRUE if the Auto UA task exists. -- **RemediationNoisyHammerTaskTriggerEnabledCount** Indicates whether the task has the count trigger enabled. -- **RemediationNoisyHammerUAExitCode** The exit code of the Update Assistant. -- **RemediationNoisyHammerUAExitState** The exit code of the Update Assistant. -- **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 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 - -This event indicates whether the remediation system can put in a request to defer a system-initiated sleep to enable installation of security or quality updates, to keep Windows secure and up to date. - -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 is sent when Windows Update sediment remediations have completed on the sediment device to keep Windows up to date. A sediment device is one that has been on a previous OS version for an extended period. The remediations address issues on the system that prevent the device from receiving OS 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 Auto UA 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 megabytes. -- **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 Microsoft Store cache after cleanup, measured in Megabytes. -- **TotalSizeofStoreCacheBeforeCleanupInMegabytes** The size of the Microsoft 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 Update Session Orchestrator (USO) 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 - -This event enables tracking of completion of process that remediates issues preventing security and quality updates keep Windows up to date. - -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 is sent when Windows Update sediment remediations have started on the sediment device to keep Windows up to date. A sediment device is one that has been on a previous OS version for an extended period. The remediations address issues on the system that prevent the device from receiving OS updates. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. -- **PackageVersion** The version 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. - - -## Sediment events - -### Microsoft.Windows.Sediment.Info.DetailedState - -This event is sent when detailed state information is needed from an update trial run. The data collected with this event is used to help keep Windows up to date. - -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.Info.PhaseChange - -The event indicates progress made by the updater. This information assists in keeping Windows up to date. - - - -### Microsoft.Windows.Sediment.ServiceInstaller.ApplicabilityCheckFailed - -This event returns data relating to the error state after one of the applicability checks for the installer component of the Operating System Remediation System Service (OSRSS) has failed. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **CheckName** The name of the applicability check that failed. -- **InstallerVersion** The version information for the installer component. -- **Time** The system timestamp for when the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.AttemptingUpdate - -This event indicates the Operating System Remediation System Service (OSRSS) installer is attempting an update to itself. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.BinaryUpdated - -This event indicates the Operating System Remediation System Service (OSRSS) updated installer binaries with new binaries as part of its self-update process. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.InstallerLaunched - -This event indicates the Operating System Remediation System Service (OSRSS) has launched. The information provided helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.ServiceInstalled - -This event indicates the Operating System Remediation System Service (OSRSS) successfully installed the Installer Component. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.ServiceRestarted - -This event indicates the Operating System Remediation System Service (OSRSS) has restarted after installing an updated version of itself. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.ServiceStarted - -This event indicates the Operating System Remediation System Service (OSRSS) has started after installing an updated version of itself. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.ServiceStopped - -This event indicates the Operating System Remediation System Service (OSRSS) was stopped by a self-updated to install an updated version of itself. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.UpdaterCompleted - -This event indicates the Operating System Remediation System Service (OSRSS) successfully completed the self-update operation. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.UpdaterLaunched - -This event indicates the Operating System Remediation System Service (OSRSS) successfully launched the self-updater after downloading it. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.SedimentLauncher.Applicable - -This event is sent when the Windows Update sediment remediations launcher finds that an applicable plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help keep Windows up to date. - -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 - -This event is sent when the Windows Update sediment remediations launcher finishes running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help keep Windows up to date. - -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. -- **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 data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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 is sent when the Windows Update sediment remediations launcher starts running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help 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. -- **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 data collected with this event is used to help keep Windows up to date. - -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. - - -### Microsoft.Windows.SedimentService.Applicable - -This event is sent when the Windows Update sediment remediations service finds that an applicable plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help 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. -- **IsSelfUpdateEnabledInOneSettings** Indicates if self update is enabled in One Settings. -- **IsSelfUpdateNeeded** Indicates if self update is needed. -- **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 is sent when the Windows Update sediment remediations service finishes running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help 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. -- **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.Error - -This event indicates whether an error condition occurred in the plug-in. The data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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 is sent when the Windows Update sediment remediations service starts running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help keep Windows 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.Windows.SedimentService.wilResult - -This event provides the result from the Windows internal library. The data collected with this event is used to help keep Windows up to date. - -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 - -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, 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** Retrieves the value associated with the corresponding event name (Field Name). For example: For time related events this will include the system time. - - -## Shared PC events - -### Microsoft.Windows.SharedPC.AccountManager.DeleteUserAccount - -Activity for deletion of a user account for devices set up for Shared PC mode as part of the Transient Account Manager to help keep Windows up to date. Deleting un-used user accounts on Education/Shared PCs frees up disk space to improve Windows Update success rates. - -The following fields are available: - -- **accountType** The type of account that was deleted. Example: AD, Azure Active Directory (Azure AD), or Local -- **deleteState** Whether the attempted deletion of the user account was successful. -- **userSid** The security identifier of the account. -- **wilActivity** Windows Error Reporting data collected when there is a failure in deleting a user account with the Transient Account Manager. See [wilActivity](#wilactivity). - - -### Microsoft.Windows.SharedPC.AccountManager.SinglePolicyEvaluation - -Activity for run of the Transient Account Manager that determines if any user accounts should be deleted for devices set up for Shared PC mode to help keep Windows up to date. Deleting unused user accounts on shared devices frees up disk space to improve Windows Update success rates - -The following fields are available: - -- **evaluationTrigger** When was the Transient Account Manager policies ran? Example: At log off or during maintenance hours -- **totalAccountCount** The number of accounts on a device after running the Transient Account Manager policies. -- **wilActivity** Windows Error Reporting data collected when there is a failure in evaluating accounts to be deleted with the Transient Account Manager. See [wilActivity](#wilactivity). - - -### wilActivity - -This event provides a Windows Internal Library context used for Product and Service diagnostics. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **callContext** The function where the failure occurred. -- **currentContextId** The ID of the current call context where the failure occurred. -- **currentContextMessage** The message of the current call context where the failure occurred. -- **currentContextName** The name of the current call context where the failure occurred. -- **failureCount** The number of failures for this failure ID. -- **failureId** The ID of the failure that occurred. -- **failureType** The type of the failure that occurred. -- **fileName** The file name where the failure occurred. -- **function** The function where the failure occurred. -- **hresult** The HResult of the overall activity. -- **lineNumber** The line number where the failure occurred. -- **message** The message of the failure that occurred. -- **module** The module where the failure occurred. -- **originatingContextId** The ID of the originating call context that resulted in the failure. -- **originatingContextMessage** The message of the originating call context that resulted in the failure. -- **originatingContextName** The name of the originating call context that resulted in the failure. -- **threadId** The ID of the thread on which the activity is executing. - - -### wilResult - -This event provides a Windows Internal Library context used for Product and Service diagnostics. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **callContext** The call context stack where failure occurred. -- **currentContextId** The ID of the current call context where the failure occurred. -- **currentContextMessage** The message of the current call context where the failure occurred. -- **currentContextName** The name of the current call context where the failure occurred. -- **failureCount** The number of failures for this failure ID. -- **failureId** The ID of the failure that occurred. -- **failureType** The type of the failure that occurred. -- **fileName** The file name where the failure occurred. -- **function** The function where the failure occurred. -- **hresult** The HResult of the overall activity. -- **lineNumber** The line number where the failure occurred. -- **message** The message of the failure that occurred. -- **module** The module where the failure occurred. -- **originatingContextId** The ID of the originating call context that resulted in the failure. -- **originatingContextMessage** The message of the originating call context that resulted in the failure. -- **originatingContextName** The name of the originating call context that resulted in the failure. -- **threadId** The ID of the thread on which the activity is executing. - - -## SIH events - -### SIHEngineTelemetry.EvalApplicability - -This event is sent when targeting logic is evaluated to determine if a device is eligible a given action. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **ActionReasons** If an action has been assessed as inapplicable, the additional logic prevented it. -- **CachedEngineVersion** The engine DLL version that is being used. -- **EventInstanceID** A unique identifier for event instance. -- **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. -- **HandlerReasons** If an action has been assessed as inapplicable, the installer technology-specific logic prevented it. -- **ServiceGuid** A unique identifier that represents which service the software distribution client is connecting to (SIH, Windows Update, Microsoft Store, etc.). -- **StandardReasons** If an action has been assessed as inapplicable, the standard logic the prevented it. -- **StatusCode** Result code of the event (success, cancellation, failure code HResult). -- **UpdateID** A unique identifier for the action being acted upon. -- **WUDeviceID** The unique identifier controlled by the software distribution client. - - -### SIHEngineTelemetry.ExecuteAction - -This event is triggered with SIH attempts to execute (e.g. install) the update or action in question. Includes important information like if the update required a reboot. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **CachedEngineVersion** The engine DLL version that is being used. -- **EventInstanceID** A unique identifier for event instance. -- **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. -- **RebootRequired** Indicates if a reboot was required to complete the action. -- **ServiceGuid** A unique identifier that represents which service the software distribution client is connecting to (SIH, Windows Update, Microsoft Store, etc.). -- **StatusCode** Result code of the event (success, cancellation, failure code HResult). -- **UpdateID** A unique identifier for the action being acted upon. -- **WUDeviceID** The unique identifier controlled by the software distribution client. - - -### SIHEngineTelemetry.PostRebootReport - -This event reports the status of an action following a reboot, should one have been required. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **CachedEngineVersion** The engine DLL version that is being used. -- **EventInstanceID** A unique identifier for event instance. -- **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. -- **ServiceGuid** A unique identifier that represents which service the software distribution client is connecting to (SIH, Windows Update, Microsoft Store, etc.). -- **StatusCode** Result code of the event (success, cancellation, failure code HResult). -- **UpdateID** A unique identifier for the action being acted upon. -- **WUDeviceID** The unique identifier controlled by the software distribution client. - - -### SIHEngineTelemetry.ServiceStateChange - -This event reports the status of attempts to stop or start a service as part of executing an action. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **CachedEngineVersion** The engine DLL version that is being used. -- **EventInstanceID** A unique identifier for event instance. -- **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. -- **Service** The service that is being stopped/started. -- **ServiceGuid** A unique identifier that represents which service the software distribution client is connecting to (SIH, Windows Update, Microsoft Store, etc.). -- **StateChange** The service operation (stop/start) is being attempted. -- **StatusCode** Result code of the event (success, cancellation, failure code HResult). -- **UpdateID** A unique identifier for the action being acted upon. -- **WUDeviceID** The unique identifier controlled by the software distribution client. - - -### SIHEngineTelemetry.SLSActionData - -This event reports if the SIH client was able to successfully parse the manifest describing the actions to be evaluated. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **CachedEngineVersion** The engine DLL version that is being used. -- **EventInstanceID** A unique identifier for event instance. -- **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. -- **FailedParseActions** The list of actions that were not successfully parsed. -- **ParsedActions** The list of actions that were successfully parsed. -- **ServiceGuid** A unique identifier that represents which service the software distribution client is connecting to (SIH, Windows Update, Microsoft Store, etc.). -- **WUDeviceID** The unique identifier controlled by the software distribution client. - - -## Software update events - -### SoftwareUpdateClientTelemetry.CheckForUpdates - -This event sends tracking data about the software distribution client check for content that is applicable to a device, to help keep Windows up to date. - -The following fields are available: - -- **ActivityMatchingId** Contains a unique ID identifying a single CheckForUpdates session from initialization to completion. -- **AllowCachedResults** Indicates if the scan allowed using cached results. -- **ApplicableUpdateInfo** Metadata for the updates which were detected as applicable -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The sku number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BranchReadinessLevel** The servicing branch configured on the device. -- **CachedEngineVersion** For self-initiated healing, the version of the SIH engine that is cached on the device. If the SIH engine does not exist, the value is null. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **CapabilityDetectoidGuid** The GUID for a hardware applicability detectoid that could not be evaluated. -- **CDNCountryCode** Two letter country abbreviation for the Content Distribution Network (CDN) location. -- **CDNId** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. -- **ClientVersion** The version number of the software distribution client. -- **Context** Gives context on where the error has occurred. Example: AutoEnable, GetSLSData, AddService, Misc, or Unknown -- **CurrentMobileOperator** The mobile operator the device is currently connected to. -- **DeferralPolicySources** Sources for any update deferral policies defined (GPO = 0x10, MDM = 0x100, Flight = 0x1000, UX = 0x10000). -- **DeferredUpdates** Update IDs which are currently being deferred until a later time -- **DeviceModel** What is the device model. -- **DriverError** The error code hit during a driver scan. This is 0 if no error was encountered. -- **DriverExclusionPolicy** Indicates if the policy for not including drivers with Windows Update is enabled. -- **DriverSyncPassPerformed** Were drivers scanned this time? -- **EventInstanceID** A globally unique identifier for event instance. -- **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. -- **ExtendedMetadataCabUrl** Hostname that is used to download an update. -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough. -- **FailedUpdateGuids** The GUIDs for the updates that failed to be evaluated during the scan. -- **FailedUpdatesCount** The number of updates that failed to be evaluated during the scan. -- **FeatureUpdateDeferral** The deferral period configured for feature OS updates on the device (in days). -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FeatureUpdatePausePeriod** The pause duration configured for feature OS updates on the device (in days). -- **FlightBranch** The branch that a device is on if participating in flighting (pre-release builds). -- **FlightRing** The ring (speed of getting builds) that a device is on if participating in flighting (pre-release builds). -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **IntentPFNs** Intended application-set metadata for atomic update scenarios. -- **IPVersion** Indicates whether the download took place over IPv4 or IPv6 -- **IsWUfBDualScanEnabled** Indicates if Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Indicates if Windows Update for Business is enabled on the device. -- **IsWUfBFederatedScanDisabled** Indicates if Windows Update for Business federated scan is disabled on the device. -- **MetadataIntegrityMode** The mode of the update transport metadata integrity check. 0-Unknown, 1-Ignoe, 2-Audit, 3-Enforce -- **MSIError** The last error that was encountered during a scan for updates. -- **NetworkConnectivityDetected** Indicates the type of network connectivity that was detected. 0 - IPv4, 1 - IPv6 -- **NumberOfApplicableUpdates** The number of updates which were ultimately deemed applicable to the system after the detection process is complete -- **NumberOfApplicationsCategoryScanEvaluated** The number of categories (apps) for which an app update scan checked -- **NumberOfLoop** The number of round trips the scan required -- **NumberOfNewUpdatesFromServiceSync** The number of updates which were seen for the first time in this scan -- **NumberOfUpdatesEvaluated** The total number of updates which were evaluated as a part of the scan -- **NumFailedMetadataSignatures** The number of metadata signatures checks which failed for new metadata synced down. -- **Online** Indicates if this was an online scan. -- **PausedUpdates** A list of UpdateIds which that currently being paused. -- **PauseFeatureUpdatesEndTime** If feature OS updates are paused on the device, this is the date and time for the end of the pause time window. -- **PauseFeatureUpdatesStartTime** If feature OS updates are paused on the device, this is the date and time for the beginning of the pause time window. -- **PauseQualityUpdatesEndTime** If quality OS updates are paused on the device, this is the date and time for the end of the pause time window. -- **PauseQualityUpdatesStartTime** If quality OS updates are paused on the device, this is the date and time for the beginning of the pause time window. -- **PhonePreviewEnabled** Indicates whether a phone was getting preview build, prior to flighting (pre-release builds) being introduced. -- **ProcessName** The process name of the caller who initiated API calls, in the event where CallerApplicationName was not provided. -- **QualityUpdateDeferral** The deferral period configured for quality OS updates on the device (in days). -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **QualityUpdatePausePeriod** The pause duration configured for quality OS updates on the device (in days). -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one -- **ScanDurationInSeconds** The number of seconds a scan took -- **ScanEnqueueTime** The number of seconds it took to initialize a scan -- **ServiceGuid** An ID which represents which service the software distribution client is checking for content (Windows Update, Microsoft 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). -- **SyncType** Describes the type of scan the event was -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **TargetMetadataVersion** For self-initiated healing, this is the target version of the SIH engine to download (if needed). If not, the value is null. -- **TotalNumMetadataSignatures** The total number of metadata signatures checks done for new metadata that was synced down. -- **WebServiceRetryMethods** Web service method requests that needed to be retried to complete operation. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. - - -### SoftwareUpdateClientTelemetry.Commit - -This event sends data on whether the Update Service has been called to execute an upgrade, to help keep Windows up to date. - -The following fields are available: - -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The sku number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BundleId** Identifier associated with the specific content bundle; should not be all zeros if the bundleID was found. -- **BundleRevisionNumber** Identifies the revision number of the content bundle -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client -- **ClientVersion** The version number of the software distribution client. -- **DeviceModel** What is the device model. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventScenario** State of call -- **EventType** Possible values are "Child", "Bundle", or "Driver". -- **FlightId** The specific id of the flight the device is getting -- **HandlerType** Indicates the kind of content (app, driver, windows patch, etc.) -- **RevisionNumber** Unique revision number of Update -- **ServerId** Identifier for the service to which the software distribution client is connecting, such as Windows Update and Microsoft Store. -- **ServiceGuid** A unique identifier for the service that the software distribution client is installing content for (Windows Update, Microsoft Store, etc). -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **UpdateId** Unique Update ID -- **WUDeviceID** UniqueDeviceID - - -### SoftwareUpdateClientTelemetry.Download - -This event sends tracking data about the software distribution client download of the content for that update, to help keep Windows up to date. - -The following fields are available: - -- **ActiveDownloadTime** How long the download took, in seconds, excluding time where the update wasn't actively being downloaded. -- **AppXBlockHashValidationFailureCount** A count of the number of blocks that have failed validation after being downloaded. -- **AppXDownloadScope** Indicates the scope of the download for application content. -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The SKU number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BundleBytesDownloaded** Number of bytes downloaded for the specific content bundle. -- **BundleId** Identifier associated with the specific content bundle. -- **BundleRepeatFailFlag** Indicates whether this particular update bundle had previously failed to download. -- **BundleRevisionNumber** Identifies the revision number of the content bundle. -- **BytesDownloaded** Number of bytes that were downloaded for an individual piece of content (not the entire bundle). -- **CachedEngineVersion** The version of the “Self-Initiated Healing” (SIH) engine that is cached on the device, if applicable. -- **CallerApplicationName** The name provided by the application that initiated API calls into the software distribution client. -- **CbsDownloadMethod** Indicates whether the download was a full- or a partial-file download. -- **CDNCountryCode** Two letter country abbreviation for the Content Distribution Network (CDN) location. -- **CDNId** ID which defines which CDN the software distribution client downloaded the content from. -- **ClientVersion** The version number of the software distribution client. -- **CurrentMobileOperator** The mobile operator the device is currently connected to. -- **DeviceModel** The model of the device. -- **DownloadPriority** Indicates whether a download happened at background, normal, or foreground priority. -- **DownloadScenarioId** A unique ID for a given download, used to tie together Windows Update and Delivery Optimizer events. -- **DownloadType** Differentiates the download type of “Self-Initiated Healing” (SIH) downloads between Metadata and Payload downloads. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventScenario** Indicates the purpose for sending this event: whether because the software distribution just started downloading content; or whether it was cancelled, succeeded, or failed. -- **EventType** Identifies the type of the event (Child, Bundle, or Driver). -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough. -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FlightBranch** The branch that a device is on if participating in flighting (pre-release builds). -- **FlightBuildNumber** If this download was for a flight (pre-release build), this indicates the build number of that flight. -- **FlightId** The specific id of the flight (pre-release build) the device is getting. -- **FlightRing** The ring (speed of getting builds) that a device is on if participating in flighting (pre-release builds). -- **HandlerType** Indicates what kind of content is being downloaded (app, driver, windows patch, etc.). -- **HardwareId** If this download was for a driver targeted to a particular device model, this ID indicates the model of the device. -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **HostName** The parent URL the content is downloading from. -- **IPVersion** Indicates whether the download took place over IPv4 or IPv6. -- **IsDependentSet** Indicates whether a driver is a part of a larger System Hardware/Firmware Update -- **IsWUfBDualScanEnabled** Indicates if Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Indicates if Windows Update for Business is enabled on the device. -- **NetworkCostBitMask** Indicates what kind of network the device is connected to (roaming, metered, over data cap, etc.) -- **NetworkRestrictionStatus** More general version of NetworkCostBitMask, specifying whether Windows considered the current network to be "metered." -- **PackageFullName** The package name of the content. -- **PhonePreviewEnabled** Indicates whether a phone was opted-in to getting preview builds, prior to flighting (pre-release builds) being introduced. -- **ProcessName** The process name of the caller who initiated API calls, in the event where CallerApplicationName was not provided. -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **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** The revision number of the specified piece of content. -- **ServiceGuid** A unique identifier for the service that the software distribution client is installing content for (Windows Update, Microsoft Store, etc). -- **Setup360Phase** Identifies the active phase of the upgrade download if the current download is for an Operating System upgrade. -- **ShippingMobileOperator** The mobile operator linked to the device when the device shipped. -- **StatusCode** Indicates the result of a Download event (success, cancellation, failure code HResult). -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **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. -- **TargetMetadataVersion** The version of the currently downloading (or most recently downloaded) package. -- **ThrottlingServiceHResult** Result code (success/failure) while contacting a web service to determine whether this device should download content yet. -- **TimeToEstablishConnection** Time (in milliseconds) it took to establish the connection prior to beginning downloaded. -- **TotalExpectedBytes** The total size (in Bytes) expected to be downloaded. -- **UpdateId** An identifier associated with the specific piece of content. -- **UpdateID** An identifier associated with the specific piece of content. -- **UpdateImportance** Indicates whether the content was marked as Important, Recommended, or Optional. -- **UsedDO** Indicates whether the download used the Delivery Optimization (DO) service. -- **UsedSystemVolume** Indicates whether the content was downloaded to the device's main system storage drive, or an alternate storage drive. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. - - -### SoftwareUpdateClientTelemetry.DownloadCheckpoint - -This event provides a checkpoint between each of the Windows Update download phases for UUP content. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client -- **ClientVersion** The version number of the software distribution client -- **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 -- **EventType** Possible values are "Child", "Bundle", "Relase" or "Driver" -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough -- **FileId** A hash that uniquely identifies a file -- **FileName** Name of the downloaded file -- **FlightId** The unique identifier for each flight -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one -- **RevisionNumber** Unique revision number of Update -- **ServiceGuid** An ID which represents which service the software distribution client is checking for content (Windows Update, Microsoft Store, etc.) -- **StatusCode** Indicates the result of a CheckForUpdates event (success, cancellation, failure code HResult) -- **UpdateId** Unique Update ID -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue - - -### SoftwareUpdateClientTelemetry.DownloadHeartbeat - -This event allows tracking of ongoing downloads and contains data to explain the current state of the download. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **BundleID** Identifier associated with the specific content bundle. If this value is found, it shouldn't report as all zeros -- **BytesTotal** Total bytes to transfer for this content -- **BytesTransferred** Total bytes transferred for this content at the time of heartbeat -- **CallerApplicationName** Name provided by the caller who initiated API calls into the software distribution client -- **ClientVersion** The version number of the software distribution client -- **ConnectionStatus** Indicates the connectivity state of the device at the time of heartbeat -- **CurrentError** Last (transient) error encountered by the active download -- **DownloadFlags** Flags indicating if power state is ignored -- **DownloadState** Current state of the active download for this content (queued, suspended, or progressing) -- **EventType** Possible values are "Child", "Bundle", or "Driver" -- **FlightId** The unique identifier for each flight -- **IsNetworkMetered** Indicates whether Windows considered the current network to be ?metered" -- **MOAppDownloadLimit** Mobile operator cap on size of application downloads, if any -- **MOUpdateDownloadLimit** Mobile operator cap on size of operating system update downloads, if any -- **PowerState** Indicates the power state of the device at the time of heartbeart (DC, AC, Battery Saver, or Connected Standby) -- **RelatedCV** The previous correlation vector that was used by the client, before swapping with a new one -- **ResumeCount** Number of times this active download has resumed from a suspended state -- **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) -- **ServiceID** Identifier for the service to which the software distribution client is connecting (Windows Update, Microsoft Store, etc) -- **SuspendCount** Number of times this active download has entered a suspended state -- **SuspendReason** Last reason for why this active download entered a suspended state -- **UpdateId** Identifier associated with the specific piece of content -- **WUDeviceID** Unique device id controlled by the software distribution client - - -### SoftwareUpdateClientTelemetry.Install - -This event sends tracking data about the software distribution client installation of the content for that update, to help keep Windows up to date. - -The following fields are available: - -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The sku number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BundleId** Identifier associated with the specific content bundle; should not be all zeros if the bundleID was found. -- **BundleRepeatFailFlag** Indicates whether this particular update bundle previously failed to install. -- **BundleRevisionNumber** Identifies the revision number of the content bundle. -- **CachedEngineVersion** For self-initiated healing, the version of the SIH engine that is cached on the device. If the SIH engine does not exist, the value is null. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **ClientVersion** The version number of the software distribution client. -- **CSIErrorType** The stage of CBS installation where it failed. -- **CurrentMobileOperator** The mobile operator to which the device is currently connected. -- **DeviceModel** The device model. -- **DriverPingBack** Contains information about the previous driver and system state. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventScenario** Indicates the purpose of sending this event - whether because the software distribution just started installing content, or whether it was cancelled, succeeded, or failed. -- **EventType** Possible values are Child, Bundle, or Driver. -- **ExtendedErrorCode** The extended error code. -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough. -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FlightBranch** The branch that a device is on if participating in the Windows Insider Program. -- **FlightBuildNumber** If this installation was for a Windows Insider build, this is the build number of that build. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **FlightRing** The ring that a device is on if participating in the Windows Insider Program. -- **HandlerType** Indicates what kind of content is being installed. Example: app, driver, Windows update -- **HardwareId** If this install was for a driver targeted to a particular device model, this ID indicates the model of the device. -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **IntentPFNs** Intended application-set metadata for atomic update scenarios. -- **IsDependentSet** Indicates whether the driver is part of a larger System Hardware/Firmware update. -- **IsFinalOutcomeEvent** Indicates whether this event signals the end of the update/upgrade process. -- **IsFirmware** Indicates whether this update is a firmware update. -- **IsSuccessFailurePostReboot** Indicates whether the update succeeded and then failed after a restart. -- **IsWUfBDualScanEnabled** Is Windows Update for Business dual scan enabled on the device? -- **IsWUfBEnabled** Indicates whether Windows Update for Business is enabled on the device. -- **MergedUpdate** Indicates whether the OS update and a BSP update merged for installation. -- **MsiAction** The stage of MSI installation where it failed. -- **MsiProductCode** The unique identifier of the MSI installer. -- **PackageFullName** The package name of the content being installed. -- **PhonePreviewEnabled** Indicates whether a phone was getting preview build, prior to flighting being introduced. -- **ProcessName** The process name of the caller who initiated API calls, in the event that CallerApplicationName was not provided. -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one -- **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.). -- **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). -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **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. -- **TransactionCode** The ID that represents a given MSI installation. -- **UpdateId** Unique update ID. -- **UpdateID** An identifier associated with the specific piece of content. -- **UpdateImportance** Indicates whether a piece of content was marked as Important, Recommended, or Optional. -- **UsedSystemVolume** Indicates whether the content was downloaded and then installed from the device's main system storage drive, or an alternate storage drive. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. - - -### SoftwareUpdateClientTelemetry.UpdateDetected - -This event sends data about an AppX app that has been updated from the Microsoft Store, including what app needs an update and what version/architecture is required, in order to understand and address problems with apps getting required updates. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **ApplicableUpdateInfo** Metadata for the updates which were detected as applicable. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **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.). -- **WUDeviceID** The unique device ID controlled by the software distribution client. - - -### SoftwareUpdateClientTelemetry.UpdateMetadataIntegrity - -This event helps to identify whether update content has been tampered with and protects against man-in-the-middle attack. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **EndpointUrl** The endpoint URL where the device obtains update metadata. This is used to distinguish between test, staging, and production environments. -- **EventScenario** The purpose of this event, such as scan started, scan succeeded, or scan failed. -- **ExtendedStatusCode** Secondary status code for certain scenarios where StatusCode was not specific enough. -- **LeafCertId** The integral ID from the FragmentSigning data for the certificate that failed. -- **ListOfSHA256OfIntermediateCerData** A semicolon delimited list of base64 encoding of hashes for the Base64CerData in the FragmentSigning data of an intermediate certificate. -- **MetadataIntegrityMode** The mode of the transport metadata integrity check. 0 = unknown; 1 = ignore; 2 = audit; 3 = enforce -- **MetadataSignature** A base64-encoded string of the signature associated with the update metadata (specified by revision ID). -- **RawMode** The raw unparsed mode string from the SLS response. This field is null if not applicable. -- **RawValidityWindowInDays** The raw unparsed validity window string in days of the timestamp token. This field is null if not applicable. -- **RevisionId** The revision ID for a specific piece of content. -- **RevisionNumber** The revision number for a specific piece of content. -- **ServiceGuid** Identifies the service to which the software distribution client is connected, Example: Windows Update or Microsoft Store -- **SHA256OfLeafCerData** A base64 encoding of the hash for the Base64CerData in the FragmentSigning data of the leaf certificate. -- **SHA256OfLeafCertPublicKey** A base64 encoding of the hash of the Base64CertData in the FragmentSigning data of the leaf certificate. -- **SHA256OfTimestampToken** An encoded string of the timestamp token. -- **SignatureAlgorithm** The hash algorithm for the metadata signature. -- **SLSPrograms** A test program to which a device may have opted in. Example: Insider Fast -- **StatusCode** The status code of the event. -- **TimestampTokenCertThumbprint** The thumbprint of the encoded timestamp token. -- **TimestampTokenId** The time this was created. It is encoded in a timestamp blob and will be zero if the token is malformed. -- **UpdateId** The update ID for a specific piece of content. -- **ValidityWindowInDays** The validity window that's in effect when verifying the timestamp. - - -## Update Assistant events - -### Microsoft.Windows.UpdateAssistant.Orchestrator.BlockingEventId - -The event sends basic info on the reason that Windows 10 was not updated due to compatibility issues, previous rollbacks, or admin policies. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **ApplicabilityBlockedReason** Blocked due to an applicability issue. -- **BlockWuUpgrades** The upgrade assistant is currently blocked. -- **clientID** An identification of the current release of Update Assistant. -- **CloverTrail** This device is Clovertrail. -- **DeviceIsMdmManaged** This device is MDM managed. -- **IsNetworkAvailable** If the device network is not available. -- **IsNetworkMetered** If network is metered. -- **IsSccmManaged** This device is managed by Configuration Manager. -- **NewlyInstalledOs** OS is newly installed quiet period. -- **PausedByPolicy** Updates are paused by policy. -- **RecoveredFromRS3** Previously recovered from RS3. -- **RS1UninstallActive** Blocked due to an active RS1 uninstall. -- **RS3RollBacks** Exceeded number of allowable RS3 rollbacks. -- **triggerTaskSource** Describe which task launches this instance. -- **WsusManaged** This device is WSUS managed. -- **ZeroExhaust** This device is zero exhaust. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.DeniedLaunchEventId - -The event sends basic info when a device was blocked or prevented from updating to the latest Windows 10 version. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **calendarRun** Indicates the calendar run task invoked the update assistant wrapper. -- **clientID** An identification of the current release of Update Assistant. -- **denyReason** All the reasons why the Update Assistant was prevented from launching. Bitmask with values from UpdateAssistant.cpp eUpgradeModeReason. -- **triggerTaskSource** Describe which task launches this instance. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.FailedLaunchEventId - -This event indicates that Update Assistant Orchestrator failed to launch Update Assistant. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **clientID** An identification of the current release of Update Assistant. -- **hResult** Error code of the Update Assistant Orchestrator failure. -- **triggerTaskSource** Describe which task launches this instance. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.FailedOneSettingsQueryEventId - -This event indicates that One Settings was not queried by update assistant. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **clientID** An identification of the current release of Update Assistant. -- **hResult** Error code of One Settings query failure. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.LaunchEventId - -This event sends basic information on whether the device should be updated to the latest Windows 10 version. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **autoStartRunCount** The auto start run count of Update Assistant. -- **clientID** The ID of the current release of Update Assistant. -- **launchMode** Indicates the type of launch performed. -- **launchTypeReason** A bitmask of all the reasons for type of launch. -- **triggerTaskSource** Indicates which task launches this instance. -- **UALaunchRunCount** Total number of times Update Assistant launched. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.RestoreEventId - -The event sends basic info on whether the Windows 10 update notification has previously launched. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **calendarRun** Indicates the update assistant wrapper was started by the calendar run task. -- **clientID** ID of the current release of Update Assistant. -- **restoreReason** All the reasons for the restore. -- **triggerTaskSource** Indicates which task launches this instance. - - -## Update events - -### Update360Telemetry.UpdateAgent_DownloadRequest - -This event sends data during the download request phase of updating Windows. The data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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. The data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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** # 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.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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ErrorCode** The error code returned for the current install phase. -- **FlightId** Unique value for each Update Agent mode (same concept as InstanceId for Setup360). -- **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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ErrorCode** The error code returned for the current merge phase. -- **FlightId** Unique ID for each flight. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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. -- **Result** Indicates the Hresult -- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate. -- **SessionId** Unique value for each update attempt. -- **UpdateId** Unique ID for each 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 data collected with this event is used to help keep Windows secure and up to date. - -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. - - -## Update notification events - -### Microsoft.Windows.UpdateNotificationPipeline.JavascriptJavascriptCriticalGenericMessage - -This event indicates that Javascript is reporting a schema and a set of values for critical telemetry. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version of the current campaign. -- **CampaignID** ID of the currently running campaign. -- **ConfigCatalogVersion** Current catalog version of the update notification. -- **ContentVersion** Content version of the current update notification campaign. -- **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. -- **key10** UI interaction data. -- **key11** UI interaction data. -- **key12** UI interaction data. -- **key13** UI interaction data. -- **key14** UI interaction data. -- **key15** UI interaction data. -- **key16** UI interaction data. -- **key17** UI interaction data. -- **key18** UI interaction data. -- **key19** UI interaction data. -- **key2** UI interaction data. -- **key20** UI interaction data. -- **key21** UI interaction data. -- **key22** UI interaction data. -- **key23** UI interaction data. -- **key24** The interaction data for the user interface. -- **key25** The interaction data for the user interface. -- **key26** The interaction data for the user interface. -- **key27** The interaction data for the user interface. -- **key28** The interaction data for the user interface. -- **key29** UI interaction data. -- **key3** UI interaction data. -- **key30** UI interaction data. -- **key4** UI interaction data. -- **key5** UI interaction data. -- **key6** UI interaction data. -- **key7** UI interaction data. -- **key8** UI interaction data. -- **key9** UI interaction data. -- **PackageVersion** Current package version of the update notification. -- **schema** UI interaction type. - - -### Microsoft.Windows.UpdateNotificationPipeline.UNPCampaignHeartbeat - -This event is sent at the start of each campaign, to be used as a heartbeat. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version for the current campaign. -- **CampaignID** Current campaign that is running on Update Notification Pipeline. -- **ConfigCatalogVersion** Current catalog version of Update Notification Pipeline. -- **ContentVersion** Content version for the current campaign on Update Notification Pipeline. -- **CV** Correlation vector. -- **DetectorVersion** Most recently run detector version for the current campaign on Update Notification Pipeline. -- **GlobalEventCounter** Client-side counter that indicates the event ordering sent by the user. -- **PackageVersion** Current package version for Update Notification Pipeline. - - -### Microsoft.Windows.UpdateNotificationPipeline.UNPCampaignManagerCleaningCampaign - -This event indicates that the Campaign Manager is cleaning up the campaign content. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version for the current campaign. -- **CampaignID** The current campaign that is running on Update Notification Pipeline (UNP). -- **ConfigCatalogVersion** The current catalog version of the Update Notification Pipeline (UNP). -- **ContentVersion** Content version for the current campaign on UNP. -- **CV** Correlation vector -- **DetectorVersion** Most recently run detector version for the current campaign on UNP. -- **GlobalEventCounter** Client-side counter that indicates the event ordering sent by the user. -- **PackageVersion** Current UNP package version. - - -### Microsoft.Windows.UpdateNotificationPipeline.UnpCampaignManagerGetIsCamppaignCompleteFailed - -This event is sent when a campaign completion status query fails. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version for the current campaign. -- **CampaignID** Current campaign that is running on Update Notification Pipeline (UNP). -- **ConfigCatalogVersion** Current catalog version of UNP. -- **ContentVersion** Content version for the current campaign on UNP. -- **CV** Correlation vector. -- **DetectorVersion** Most recently run detector version for the current campaign on UNP. -- **GlobalEventCounter** Client-side counter that indicates the event ordering sent by the user. -- **hresult** HRESULT of the failure. -- **PackageVersion** Current UNP package version. - - -### Microsoft.Windows.UpdateNotificationPipeline.UNPCampaignManagerHeartbeat - -This event is sent at the start of the CampaignManager event and is intended to be used as a heartbeat. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version for the current campaign. -- **CampaignID** Currently campaign that is running on Update Notification Pipeline (UNP). -- **ConfigCatalogVersion** Current catalog version of UNP. -- **ContentVersion** Content version for the current campaign on UNP. -- **CV** Correlation vector. -- **DetectorVersion** Most recently run detector version for the current campaign on UNP. -- **GlobalEventCounter** Client-side counter that indicates the event ordering sent by the user. -- **PackageVersion** Current UNP package version. - - -### Microsoft.Windows.UpdateNotificationPipeline.UnpCampaignManagerRunCampaignFailed - -This event is sent when the Campaign Manager encounters an unexpected error while running the campaign. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version for the current campaign. -- **CampaignID** Currently campaign that's running on Update Notification Pipeline (UNP). -- **ConfigCatalogVersion** Current catalog version of UNP. -- **ContentVersion** Content version for the current campaign on UNP. -- **CV** Correlation vector. -- **DetectorVersion** Most recently run detector version for the current campaign on UNP. -- **GlobalEventCounter** Client-side counter that indicates the event ordering sent by the user. -- **hresult** HRESULT of the failure. -- **PackageVersion** Current UNP package version. - - -## Upgrade events - -### FacilitatorTelemetry.DCATDownload - -This event indicates whether devices received additional or critical supplemental content during an OS Upgrade, to help keep Windows up to date and secure. - - - -### FacilitatorTelemetry.DUDownload - -This event returns data about the download of supplemental packages critical to upgrading a device to the next version of Windows. The data collected with this event is used to help keep Windows secure and up to date. - - - -### FacilitatorTelemetry.InitializeDU - -This event determines whether devices received additional or critical supplemental content during an OS upgrade. The data collected with this event is used to help keep Windows secure and up to date. - - - -### 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. -- **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. -- **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** d -- **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 data collected with this event is used to help keep Windows secure and up to date. - -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. -- **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** A string to uniquely identify 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. -- **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. -- **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** A string to uniquely identify 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. -- **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. -- **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. - - - -### Setup360Telemetry.Setup360MitigationResult - -This event sends data indicating the result of each setup mitigation. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Setup360Telemetry.Setup360MitigationSummary - -This event sends a summary of all the setup mitigations available for this update. The data collected with this event is used to help keep Windows secure and up to date. - - - -### 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 data collected with this event is used to help keep Windows secure and up to date. - -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. -- **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.WaaSAssessment.Error - -This event returns the name of the missing setting needed to determine the Operating System build age. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **m** The WaaS (“Workspace as a Service”—cloud-based “workspace”) Assessment Error String. - - -### Microsoft.Windows.WaaSMedic.EngineFailed - -This event indicates failure during medic engine execution. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **hResult** Error code from the execution. - - -### Microsoft.Windows.WaaSMedic.RemediationFailed - -This event is sent when the WaaS Medic update stack remediation tool fails to apply a described resolution to a problem that is blocking Windows Update from operating correctly on a target device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **diagnostic** Parameter where the resolution failed. -- **hResult** Error code that resulted from attempting the resolution. -- **isRemediated** Indicates whether the condition was remediated. -- **pluginName** Name of the attempted resolution. - - -### Microsoft.Windows.WaaSMedic.Summary - -This event provides the results of the WaaSMedic diagnostic run. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **detectionSummary** Result of each detection that ran -- **featureAssessmentImpact** Windows as a Service (WaaS) Assessment impact on feature updates -- **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 -- **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 - - -### Microsoft.Windows.WaaSMedic.SummaryEvent - -This event provides the result of the WaaSMedic operation. The data collected with this event is used to help keep Windows secure and up to date. - -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 -- **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 -- **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 - - -## 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 - -### Microsoft.Windows.Store.Partner.ReportApplication - -This is report application event for Microsoft Store client. The data collected with this event is used to help keep Windows up to date and secure. - - - -### Microsoft.Windows.Store.StoreActivating - -This event sends tracking data about when the Store app activation via protocol URI is in progress, to help keep Windows up to date. - -The following fields are available: - -- **correlationVectorRoot** Identifies multiple events within a session/sequence. Initial value before incrementation or extension. -- **protocolUri** Protocol URI used to activate the store. -- **reason** The reason for activating the store. - - -### Microsoft.Windows.StoreAgent.Telemetry.AbortedInstallation - -This event is sent when an installation or update is canceled by a user or the system and is used to help keep Windows Apps up to date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** Number of retry attempts before it was canceled. -- **BundleId** The Item Bundle ID. -- **CategoryId** The Item Category ID. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed before this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Was this requested by a user? -- **IsMandatory** Was this a mandatory update? -- **IsRemediation** Was this a remediation install? -- **IsRestore** Is this automatically restoring a previously acquired product? -- **IsUpdate** Flag indicating if this is an update. -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The product family name of the product being installed. -- **ProductId** The identity of the package or packages being installed. -- **SystemAttemptNumber** The total number of automatic attempts at installation before it was canceled. -- **UserAttemptNumber** The total number of user attempts at installation before it was canceled. -- **WUContentId** Licensing identity of this package. - - -### Microsoft.Windows.StoreAgent.Telemetry.BeginGetInstalledContentIds - -This event is sent when an inventory of the apps installed is started to determine whether updates for those apps are available. It's used to help keep Windows up-to-date and secure. - - - -### Microsoft.Windows.StoreAgent.Telemetry.BeginUpdateMetadataPrepare - -This event is sent when the Store Agent cache is refreshed with any available package updates. It's used to help keep Windows up-to-date and secure. - - - -### Microsoft.Windows.StoreAgent.Telemetry.CancelInstallation - -This event is sent when an app update or installation is canceled while in interactive mode. This can be canceled by the user or the system. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all package or packages to be downloaded and installed. -- **AttemptNumber** Total number of installation attempts. -- **BundleId** The identity of the Windows Insider build that is associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Was this requested by a user? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this an automatic restore of a previously acquired product? -- **IsUpdate** Is this a product update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of all packages to be downloaded and installed. -- **PreviousHResult** The previous HResult code. -- **PreviousInstallState** Previous installation state before it was canceled. -- **ProductId** The name of the package or packages requested for installation. -- **RelatedCV** Correlation Vector of a previous performed action on this product. -- **SystemAttemptNumber** Total number of automatic attempts to install before it was canceled. -- **UserAttemptNumber** Total number of user attempts to install before it was canceled. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.CompleteInstallOperationRequest - -This event is sent at the end of the installs or updates. Store Agent events are needed to help keep Windows Apps up to date and secure, like the Mail and Calendar Apps. App install or update failures can be unique across devices and without this data from every device we will not be able to track failures and fix future vulnerabilities related to these Windows Apps. - -The following fields are available: - -- **CatalogId** The Store Product ID of the app being installed. -- **HResult** HResult code of the action being performed. -- **IsBundle** Is this a bundle? -- **PackageFamilyName** The name of the package being installed. -- **ProductId** The Store Product ID of the product being installed. -- **SkuId** Specific edition of the item being installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndAcquireLicense - -This event is sent after the license is acquired when a product is being installed. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** Includes a set of package full names for each app that is part of an atomic set. -- **AttemptNumber** The total number of attempts to acquire this product. -- **BundleId** The bundle ID -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** HResult code to show the result of the operation (success/failure). -- **IsBundle** Is this a bundle? -- **IsInteractive** Did the user initiate the installation? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this happening after a device restore? -- **IsUpdate** Is this an update? -- **ParentBundleId** The parent bundle ID (if it's part of a bundle). -- **PFN** Product Family Name of the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The number of attempts by the system to acquire this product. -- **UserAttemptNumber** The number of attempts by the user to acquire this product -- **WUContentId** Licensing identity of this package. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndDownload - -This event is sent after an app is downloaded to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The name of all packages to be downloaded and installed. -- **AttemptNumber** Number of retry attempts before it was canceled. -- **BundleId** The identity of the Windows Insider build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **DownloadSize** The total size of the download. -- **ExtendedHResult** Any extended HResult error codes. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this initiated by the user? -- **IsMandatory** Is this a mandatory installation? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this a restore of a previously acquired product? -- **IsUpdate** Is this an update? -- **ParentBundleId** The parent bundle ID (if it's part of a bundle). -- **PFN** The Product Family Name of the app being download. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The number of attempts by the system to download. -- **UserAttemptNumber** The number of attempts by the user to download. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndFrameworkUpdate - -This event is sent when an app update requires an updated Framework package and the process starts to download it. It is used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed before this operation. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndGetInstalledContentIds - -This event is sent after sending the inventory of the products installed to determine whether updates for those products are available. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed before this operation. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndInstall - -This event is sent after a product has been installed to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **ExtendedHResult** The extended HResult error code. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this an interactive installation? -- **IsMandatory** Is this a mandatory installation? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this automatically restoring a previously acquired product? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** Product Family Name of the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** Licensing identity of this package. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndScanForUpdates - -This event is sent after a scan for product updates to determine if there are packages to install. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IsApplicability** Is this request to only check if there are any applicable packages to install? -- **IsInteractive** Is this user requested? -- **IsOnline** Is the request doing an online check? - - -### Microsoft.Windows.StoreAgent.Telemetry.EndSearchUpdatePackages - -This event is sent after searching for update packages to install. It is used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndStageUserData - -This event is sent after restoring user data (if any) that needs to be restored following a product install. Store Agent events are needed to help keep Windows Apps up to date and secure, like the Mail and Calendar Apps. App install or update failures can be unique across devices and without this data from every device we will not be able to track failures and fix future vulnerabilities related to these Windows Apps. - -The following fields are available: - -- **AggregatedPackageFullNames** The name of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of system attempts. -- **WUContentId** Licensing identity of this package. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndUpdateMetadataPrepare - -This event is sent after a scan for available app updates to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed. - - -### Microsoft.Windows.StoreAgent.Telemetry.FulfillmentComplete - -FulfillmentComplete event is fired at the end of an app install or update. We use this to track the very end of the install/update process. StoreAgent events are needed to help keep Windows pre-installed 1st party apps up to date and secure such as the mail and calendar apps. App update failure can be unique across devices and without this data from every device we will not be able to track the success/failure and fix any future vulnerabilities related to these built in Windows Apps. - -The following fields are available: - -- **FailedRetry** Tells us if the retry for an install or update was successful or not. -- **HResult** Resulting HResult error/success code of this call -- **PFN** Package Family Name of the app that being installed or updated -- **ProductId** Product Id of the app that is being updated or installed - - -### Microsoft.Windows.StoreAgent.Telemetry.FulfillmentInitiate - -FulfillmentInitiate event is fired at the start of an app install or update. We use this to track the very beginning of the install/update process. StoreAgent events are needed to help keep Windows pre-installed 1st party apps up to date and secure such as the mail and calendar apps. App update failure can be unique across devices and without this data from every device we will not be able to track the success/failure and fix any future vulnerabilities related to these built in Windows Apps. - -The following fields are available: - -- **PFN** The Package Family Name of the app that is being installed or updated. -- **ProductId** The product ID of the app that is being updated or installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.InstallOperationRequest - -This event is sent when a product install or update is initiated. Store Agent events are needed to help keep Windows Apps up to date and secure, like the Mail and Calendar Apps. App install or update failures can be unique across devices and without this data from every device we will not be able to track failures and fix future vulnerabilities related to these Windows Apps. - -The following fields are available: - -- **BundleId** The identity of the build associated with this product. -- **CatalogId** If this product is from a private catalog, the Store Product ID for the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SkuId** Specific edition ID being installed. -- **VolumePath** The disk path of the installation. - - -### Microsoft.Windows.StoreAgent.Telemetry.PauseInstallation - -This event is sent when a product install or update is paused either by a user or the system. Store Agent events are needed to help keep Windows Apps up to date and secure, like the Mail and Calendar Apps. App install or update failures can be unique across devices and without this data from every device we will not be able to track failures and fix future vulnerabilities related to these Windows Apps. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The Product Full Name. -- **PreviousHResult** The result code of the last action performed before this operation. -- **PreviousInstallState** Previous state before the installation or update was paused. -- **ProductId** The Store Product ID for the product being installed. -- **RelatedCV** Correlation Vector of a previous performed action on this product. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** Licensing identity of this package. - - -### Microsoft.Windows.StoreAgent.Telemetry.ResumeInstallation - -This event is sent when a product install or update is resumed either by a user or the system. Store Agent events are needed to help keep Windows Apps up to date and secure, like the Mail and Calendar Apps. App install or update failures can be unique across devices and without this data from every device we will not be able to track failures and fix future vulnerabilities related to these Windows Apps. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed before this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **IsUserRetry** Did the user initiate the retry? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **PreviousHResult** The previous HResult error code. -- **PreviousInstallState** Previous state before the installation was paused. -- **ProductId** The Store Product ID for the product being installed. -- **RelatedCV** Correlation Vector for the original install before it was resumed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** Licensing identity of this package. - - -### Microsoft.Windows.StoreAgent.Telemetry.ResumeOperationRequest - -This event is sent when a product install or update is resumed by a user and on install retries. Store Agent events are needed to help keep Windows Apps up to date and secure, like the Mail and Calendar Apps. App install or update failures can be unique across devices and without this data from every device we will not be able to track failures and fix future vulnerabilities related to these Windows Apps. - -The following fields are available: - -- **ProductId** The Store Product ID for the product being installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.SearchForUpdateOperationRequest - -This event is sent when searching for update packages to install. Store Agent events are needed to help keep Windows Apps up to date and secure, like the Mail and Calendar Apps. App install or update failures can be unique across devices and without this data from every device we will not be able to track failures and fix future vulnerabilities related to these Windows Apps. - -The following fields are available: - -- **CatalogId** The Store Catalog ID for the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SkuId** Specfic edition of the app being updated. - - -### Microsoft.Windows.StoreAgent.Telemetry.UpdateAppOperationRequest - -This event occurs when an update is requested for an app, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **PFamN** The name of the app that is requested for update. - - -## 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 data collected with this event is used to help keep Windows up to date. - -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** Indicates whether the device is connected to a VPN (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** 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 data collected with this event is used to help keep Windows up to date. - -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** 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 data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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. The data collected with this event is used to help keep Windows up to date. - -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. - - -### Microsoft.OSG.DU.DeliveryOptClient.JobError - -This event represents a Windows Update job error. It allows for investigation of top errors. The data collected with this event is used to help keep Windows up to date. - -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 - -This event collects information regarding the final commit phase of the new device manifest UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code returned for the current session initialization. -- **flightId** The unique identifier for each flight. -- **objectId** The unique GUID for each diagnostics session. -- **relatedCV** A correlation vector value generated from the latest USO scan. -- **result** Outcome of the initialization of the session. -- **scenarioId** Identifies the Update scenario. -- **sessionId** The unique value for each update session. -- **updateId** The unique identifier for each Update. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentDownloadRequest - -This event collects information regarding the download request phase of the new device manifest UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **deletedCorruptFiles** Indicates if UpdateAgent found any corrupt payload files and whether the payload was deleted. -- **errorCode** The error code returned for the current session initialization. -- **flightId** The unique identifier for each flight. -- **objectId** Unique value for each Update Agent mode. -- **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. -- **packageSizeCanonical** Size of canonical packages in bytes. -- **packageSizeDiff** Size of diff packages in bytes. -- **packageSizeExpress** Size of express packages in bytes -- **rangeRequestState** Represents the state of the download range request. -- **relatedCV** Correlation vector value generated from the latest USO scan. -- **result** Result of the download request phase of update. -- **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. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentInitialize - -This event sends data for initializing a new update session for the new device manifest UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code returned for the current session initialization. -- **flightId** The unique identifier 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 the 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. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentInstall - -This event collects information regarding the install phase of the new device manifest UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code returned for the current install phase. -- **flightId** The unique identifier for each flight (pre-release builds). -- **objectId** Unique value for each diagnostics session. -- **relatedCV** Correlation vector value generated from the latest scan. -- **result** Outcome of the install phase of the update. -- **scenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate -- **sessionId** Unique value for each update session. -- **updateId** Unique ID for each Update. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentModeStart - -This event sends data for the start of each mode during the process of updating device manifest assets via the UUP (Unified Update Platform) update scenario. The update scenario is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **flightId** The unique identifier for each flight (pre-release builds). -- **mode** Indicates the active Update Agent mode. -- **objectId** Unique value for each diagnostics session. -- **relatedCV** Correlation vector value generated from the latest scan. -- **scenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate -- **sessionId** The unique identifier for each update session. -- **updateId** The 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 data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootAcceptAutoDialog - -This event indicates that the Enhanced Engaged restart "accept automatically" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootFirstReminderDialog - -This event indicates that the Enhanced Engaged restart "first reminder" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootFailedDialog - -This event indicates that the Enhanced Engaged restart "restart failed" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootImminentDialog - -This event indicates that the Enhanced Engaged restart "restart imminent" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootSecondReminderDialog - -This event indicates that the second reminder dialog box was displayed for Enhanced Engaged restart. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootThirdReminderDialog - -This event indicates that the third reminder dialog box for Enhanced Engaged restart was displayed. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.NotificationUx.RebootScheduled - -This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows secure and up-to-date by indicating when a reboot is scheduled by the system or a user for a security, quality, or feature update. - -The following fields are available: - -- **activeHoursApplicable** Indicates whether an Active Hours policy is present on the device. -- **rebootArgument** Argument for the reboot task. It also represents specific reboot related action. -- **rebootOutsideOfActiveHours** Indicates whether a restart is scheduled outside of active hours. -- **rebootScheduledByUser** Indicates whether the restart was scheduled by user (if not, it was scheduled automatically). -- **rebootState** The current state of the restart. -- **revisionNumber** Revision number of the update that is getting installed with this restart. -- **scheduledRebootTime** Time of the scheduled restart. -- **scheduledRebootTimeInUTC** Time of the scheduled restart in Coordinated Universal Time. -- **updateId** ID of the update that is getting installed with this restart. -- **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. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.Orchestrator.AttemptImmediateReboot - -This event sends data when the Windows Update Orchestrator is set to reboot immediately after installing the update. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.Orchestrator.BlockedByActiveHours - -This event indicates that update activity was blocked because it is within the active hours window. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.Orchestrator.CommitFailed - -This event indicates that a device was unable to restart after an update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code that was returned. -- **wuDeviceid** The Windows Update device GUID. - - -### Microsoft.Windows.Update.Orchestrator.DeferRestart - -This event indicates that a restart required for installing updates was postponed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **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). -- **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 sends launch data for a Windows Update scan to help keep Windows secure and up to date. - -The following fields are available: - -- **deferReason** The reason why the device could not check for updates. -- **detectionBlockreason** The reason detection did not complete. -- **detectionRetryMode** Indicates whether we will try to scan again. -- **errorCode** The error code returned for the current process. -- **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 unique identifier for the flight (Windows Insider pre-release build) should be delivered to the device, if applicable. -- **interactive** Indicates whether the user initiated the session. -- **revisionNumber** The Update revision number. -- **updateId** The unique identifier of the Update. -- **updateScenarioType** Identifies the type of update session being performed. -- **wuDeviceid** The unique device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.DisplayNeeded - -This event indicates the reboot was postponed due to needing a display. The data collected with this event is used to help keep Windows secure and up to date. - -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.Download - -This event sends launch data for a Windows Update download to help keep Windows secure and 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 sends data on whether the update was applicable to the device. The data collected with this event is used to help keep Windows secure and up to date. - -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.GameActive - -This event indicates that an enabled GameMode process prevented the device from restarting to complete an update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **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. -- **gameModeReason** Name of the enabled GameMode process that prevented the device from restarting to complete an update. -- **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 secure and 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 secure and 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 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. The data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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 sends data about lite stack devices (mobile, IOT, anything non-PC) immediately before data migration is launched to help keep Windows secure and up to date. - -The following fields are available: - -- **batteryLevel** Current battery capacity in megawatt-hours (mWh) or percentage left. -- **bundleId** The unique identifier associated with the specific content bundle. -- **bundleRevisionnumber** Identifies the revision number of the content bundle. -- **errorCode** The error code returned for the current phase. -- **eventScenario** State of update action. -- **flightID** The unique identifier for the flight (Windows Insider pre-release build) should be delivered to the device, if applicable. -- **sessionType** The Windows Update session type (Interactive or Background). -- **updateScenarioType** Identifies the type of Update session being performed. -- **wuDeviceid** The unique device identifier used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.PowerMenuOptionsChanged - -This event is sent when the options in power menu changed, usually due to an update pending reboot, or after a update is installed. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.Orchestrator.PreShutdownStart - -This event is generated before the shutdown and commit operations. The data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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 secure and 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 secure and 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 secure and 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.UpdateInstallPause - -This event indicates the data sent when the device pauses an in-progress update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **updateClassificationGUID** The classification GUID for the update that was paused. -- **updateId** An update ID for the update that was paused. -- **wuDeviceid** A unique Device ID. - - -### Microsoft.Windows.Update.Orchestrator.UpdatePolicyCacheRefresh - -This event sends data on whether Update Management Policies were enabled on a device, to help keep Windows secure and 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 secure and 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 data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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 data collected with this event is used to help keep Windows secure and up to date. - -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.Orchestrator.UUPFallBack - -This event indicates that USO determined UUP needs to fall back. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **EventPublishedTime** The current event time. -- **UUPFallBackConfigured** The fall back error code. -- **UUPFallBackErrorReason** The reason for fall back error. -- **wuDeviceid** A 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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **UtcTime** The Coordinated Universal Time that the restart was no longer needed. - - -### Microsoft.Windows.Update.Ux.MusNotification.RebootRequestReasonsToIgnore - -This event is sent when the reboot can be deferred based on some reasons, before reboot attempts. The data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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 OS. -- **scheduledRebootTime** Time scheduled for the reboot. -- **scheduledRebootTimeInUTC** Time scheduled for the reboot, in UTC. -- **updateId** Identifies which update is being scheduled. -- **wuDeviceid** The 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. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.Ux.MusNotification.UxBrokerScheduledTask - -This event is sent when MUSE broker schedules a task. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **TaskArgument** The arguments which the task is scheduled with -- **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. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **activeHoursApplicable** Is the restart respecting Active Hours? -- **forcedReboot** True, if a reboot is forced on the device. Otherwise, this is 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. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICOInteractionCampaignComplete - -This event is generated whenever a RUXIM user interaction campaign becomes complete. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **InteractionCampaignID** GUID identifying the interaction campaign that became complete. -- **ResultId** The final result of the interaction campaign. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSEvaluateInteractionCampaign - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS.EXE) finishes processing an interaction campaign. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **ControlId** String identifying the control (if any) that was selected by the user during presentation. -- **hrInteractionHandler** The error (if any) reported by the RUXIM Interaction Handler while processing the interaction campaign. -- **hrScheduler** The error (if any) encountered by RUXIM Interaction Campaign Scheduler itself while processing the interaction campaign. -- **InteractionCampaignID** The ID of the interaction campaign that was processed. -- **ResultId** The result of the evaluation/presentation. -- **WasCompleted** True if the interaction campaign is complete. -- **WasPresented** True if the Interaction Handler displayed the interaction campaign to the user. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSExit - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS) exits. The data collected with this event is used to help keep Windows up to date and performing properly. - - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSLaunch - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS.EXE) is launched. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CommandLine** The command line used to launch RUXIMICS. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSOneSettingsSyncExit - -This event is sent when RUXIM completes checking with OneSettings to retrieve any UX interaction campaigns that may need to be displayed. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **hrInitialize** Error, if any, that occurred while initializing OneSettings. -- **hrQuery** Error, if any, that occurred while retrieving UX interaction campaign data from OneSettings. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSOneSettingsSyncLaunch - -This event is sent when RUXIM begins checking with OneSettings to retrieve any UX interaction campaigns that may need to be displayed. The data collected with this event is used to help keep Windows up to date. - - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHEvaluateAndPresent - -This event is generated when the RUXIM Interaction Handler finishes evaluating, and possibly presenting an interaction campaign. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **hrLocal** The error (if any) encountered by RUXIM Interaction Handler during evaluation and presentation. -- **hrPresentation** The error (if any) reported by RUXIM Presentation Handler during presentation. -- **InteractionCampaignID** GUID; the user interaction campaign processed by RUXIM Interaction Handler. -- **ResultId** The result generated by the evaluation and presentation. -- **WasCompleted** True if the user interaction campaign is complete. -- **WasPresented** True if the user interaction campaign is displayed to the user. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHExit - -This event is generated when the RUXIM Interaction Handler (RUXIMIH.EXE) exits. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **InteractionCampaignID** GUID identifying the interaction campaign that RUXIMIH processed. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHLaunch - -This event is generated when the RUXIM Interaction Handler (RUXIMIH.EXE) is launched. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CommandLine** The command line used to launch RUXIMIH. -- **InteractionCampaignID** GUID identifying the user interaction campaign that the Interaction Handler will process. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.SystemEvaluator.Evaluation - -This event is generated whenever the RUXIM Evaluator DLL performs an evaluation. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **HRESULT** Error, if any, that occurred during evaluation. (Note that if errors encountered during individual checks do not affect the overall result of the evaluation, those errors will be reported in NodeEvaluationData, but this HRESULT will still be zero.) -- **Id** GUID passed in by the caller to identify the evaluation. -- **NodeEvaluationData** Structure showing the results of individual checks that occurred during the overall evaluation. -- **Result** Overall result generated by the evaluation. - - -## Windows Update mitigation events - -### Mitigation360Telemetry.MitigationCustom.CleanupSafeOsImages - -This event sends data specific to the CleanupSafeOsImages mitigation used for OS Updates. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** The client ID used by Windows Update. -- **FlightId** The ID of each Windows Insider build the device received. -- **InstanceId** A unique device ID that identifies each update instance. -- **MitigationScenario** The update scenario in which the mitigation was executed. -- **MountedImageCount** The number of mounted images. -- **MountedImageMatches** The number of mounted image matches. -- **MountedImagesFailed** The number of mounted images that could not be removed. -- **MountedImagesRemoved** The number of mounted images that were successfully removed. -- **MountedImagesSkipped** The number of mounted images that were not found. -- **RelatedCV** The 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 Windows Update. -- **WuId** Unique ID for the Windows Update client. - - -## Windows Update Reserve Manager events - -### Microsoft.Windows.UpdateReserveManager.CommitPendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager commits a hard reserve adjustment that was pending. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.InitializeUpdateReserveManager - -This event returns data about the Update Reserve Manager, including whether it’s been initialized. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.RemovePendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager removes a pending hard reserve adjustment. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.UpdatePendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager needs to adjust the size of the hard reserve after the option content is installed. The data collected with this event is used to help keep Windows secure and up to date. - - - -## Winlogon events - -### Microsoft.Windows.Security.Winlogon.SetupCompleteLogon - -This event signals the completion of the setup process. It happens only once during the first logon. - - - -## XBOX events - -### 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. 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 deleted file mode 100644 index 9a5fa7bcfb..0000000000 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md +++ /dev/null @@ -1,8235 +0,0 @@ ---- -description: Learn more about the Windows 10, version 1803 diagnostic data gathered at the basic level. -title: Windows 10, version 1803 basic diagnostic events and fields (Windows 10) -ms.service: windows-client -ms.subservice: itpro-privacy -localizationpriority: medium -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 03/27/2017 -ms.topic: reference ---- - - -# Windows 10, version 1803 basic level Windows diagnostic events and fields - - **Applies to** - -- Windows 10, version 1803 - - -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 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. - -Use this article to learn about diagnostic events, grouped by event area, and the fields within each event. A brief description is provided for each field. Every event generated includes common data, which collects device data. - -You can learn more about Windows functional and diagnostic data through these articles: - -- [Required diagnostic events and fields for Windows 11, versions 23H2 and 22H2](required-diagnostic-events-fields-windows-11-22H2.md) -- [Required diagnostic events and fields for Windows 11, version 21H2](required-windows-11-diagnostic-events-and-fields.md) -- [Required diagnostic events and fields for Windows 10: versions 22H2, 21H2, 21H1, 20H2, and 2004](required-windows-diagnostic-data-events-and-fields-2004.md) -- [Windows 10, version 1903 and Windows 10, version 1909 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1903.md) -- [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) -- [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) -- [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) - - -## Appraiser events - -### Microsoft.Windows.Appraiser.General.ChecksumTotalPictureCount - -This event lists the types of objects and how many of each exist on the client device. This allows for a quick way to ensure that the records present on the server match what is present on the client. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **DatasourceApplicationFile_RS1** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_RS3** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_RS5** The count of the number of this particular object type present on this device. -- **DatasourceDevicePnp_RS1** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS3** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS5** The count of the number of this particular object type present on this device. -- **DatasourceDriverPackage_RS1** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS3** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS5** The count of the number of this particular object type present on this device. -- **DataSourceMatchingInfoBlock_RS1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_RS3** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_RS5** The count of the number of this particular object type present on this device. -- **DataSourceMatchingInfoPassive_RS1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_RS3** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_RS5** The count of the number of this particular object type present on this device. -- **DataSourceMatchingInfoPostUpgrade_RS1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_RS3** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_RS5** The count of the number of this particular object type present on this device. -- **DatasourceSystemBios_RS1** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS3** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS5** The count of the number of this particular object type present on this device. -- **DatasourceSystemBios_RS5Setup** The total number of objects of this type present on this device. -- **DecisionApplicationFile_RS1** The total number of objects of this type present on this device. -- **DecisionApplicationFile_RS3** The total number of objects of this type present on this device. -- **DecisionApplicationFile_RS5** The count of the number of this particular object type present on this device. -- **DecisionDevicePnp_RS1** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS3** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS5** The count of the number of this particular object type present on this device. -- **DecisionDriverPackage_RS1** The total number of objects of this type present on this device. -- **DecisionDriverPackage_RS3** The total number of objects of this type present on this device. -- **DecisionDriverPackage_RS5** The count of the number of this particular object type present on this device. -- **DecisionMatchingInfoBlock_RS1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_RS3** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_RS5** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_RS1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_RS3** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_RS5** The count of the number of this particular object type present on this device. -- **DecisionMatchingInfoPostUpgrade_RS1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_RS3** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_RS5** The count of the number of this particular object type present on this device. -- **DecisionMediaCenter_RS1** The total number of objects of this type present on this device. -- **DecisionMediaCenter_RS3** The total number of objects of this type present on this device. -- **DecisionMediaCenter_RS5** The count of the number of this particular object type present on this device. -- **DecisionSystemBios_RS1** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS3** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS5** The total DecisionSystemBios objects targeting the next release of Windows on this device. -- **DecisionSystemBios_RS5Setup** The total number of objects of this type present on this device. -- **DecisionTest_RS1** The total number of objects of this type present on this device. -- **InventoryApplicationFile** The total number of objects of this type present on this device. -- **InventoryLanguagePack** The total number of objects of this type present on this device. -- **InventoryMediaCenter** The total number of objects of this type present on this device. -- **InventorySystemBios** The total number of objects of this type present on this device. -- **InventoryTest** The total number of objects of this type present on this device. -- **InventoryUplevelDriverPackage** The total number of objects of this type present on this device. -- **PCFP** The total number of objects of this type present on this device. -- **SystemMemory** The total number of objects of this type present on this device. -- **SystemProcessorCompareExchange** The total number of objects of this type present on this device. -- **SystemProcessorLahfSahf** The total number of objects of this type present on this device. -- **SystemProcessorNx** The total number of objects of this type present on this device. -- **SystemProcessorPrefetchW** The total number of objects of this type present on this device. -- **SystemProcessorSse2** The total number of objects of this type present on this device. -- **SystemTouch** The total number of objects of this type present on this device. -- **SystemWim** The total number of objects of this type present on this device. -- **SystemWindowsActivationStatus** The total number of objects of this type present on this device. -- **SystemWlan** The total number of objects of this type present on this device. -- **Wmdrm_RS1** The total number of objects of this type present on this device. -- **Wmdrm_RS3** The total number of objects of this type present on this device. -- **Wmdrm_RS5** The count of the number of this particular object type present on this device. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileAdd - -This event represents the basic metadata about specific application files installed on the system. The data collected with this event is used 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. -- **AvDisplayName** If the app is an antivirus app, this is its display name. -- **CompatModelIndex** The compatibility prediction for this file. -- **HasCitData** Indicates whether the file is present in CIT data. -- **HasUpgradeExe** Indicates whether the anti-virus app has an upgrade.exe file. -- **IsAv** Is the file an antivirus reporting EXE? -- **ResolveAttempted** This will always be an empty string when sending diagnostic data. -- **SdbEntries** An array of fields that indicates the SDB entries that apply to this file. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileRemove - -This event indicates that the DatasourceApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileStartSync - -This event indicates that a new set of DatasourceApplicationFileAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpAdd - -This event sends compatibility data for a Plug and Play device, to help keep Windows up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **ActiveNetworkConnection** Indicates whether the device is an active network device. -- **AppraiserVersion** The version of the appraiser file generating the events. -- **IsBootCritical** Indicates whether the device boot is critical. -- **WuDriverCoverage** Indicates whether there is a driver uplevel for this device, according to Windows Update. -- **WuDriverUpdateId** The Windows Update ID of the applicable uplevel driver. -- **WuPopulatedFromId** The expected uplevel driver matching ID based on driver coverage from Windows Update. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpRemove - -This event indicates that the DatasourceDevicePnp object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpStartSync - -This event indicates that a new set of DatasourceDevicePnpAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageAdd - -This event sends compatibility database data about driver packages 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageRemove - -This event indicates that the DatasourceDriverPackage object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageStartSync - -This event indicates that a new set of DatasourceDriverPackageAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockAdd - -This event sends blocking data about any compatibility blocking entries on the system that are not directly related to specific applications or devices, 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockRemove - -This event indicates that the DataSourceMatchingInfoBlock object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockStartSync - -This event indicates that a full set of DataSourceMatchingInfoBlockStAdd events has completed being sent. This event is used to make compatibility decisions about files 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveAdd - -This event sends compatibility database information about non-blocking compatibility entries on the system that are not keyed by either applications or devices, 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveRemove - -This event indicates that the DataSourceMatchingInfoPassive object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveStartSync - -This event indicates that a new set of DataSourceMatchingInfoPassiveAdd events will be sent. This event is used to make compatibility decisions about files 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeAdd - -This event sends compatibility database information about entries requiring reinstallation after an upgrade on the system that are not keyed by either applications or devices, 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeRemove - -This event indicates that the DataSourceMatchingInfoPostUpgrade object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeStartSync - -This event indicates that a new set of DataSourceMatchingInfoPostUpgradeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosAdd - -This event sends compatibility database information about the BIOS 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosRemove - -This event indicates that the DatasourceSystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosStartSync - -This event indicates that a new set of DatasourceSystemBiosAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileAdd - -This event sends compatibility decision data about a file 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. -- **BlockAlreadyInbox** The uplevel runtime block on the file already existed on the current OS. -- **BlockingApplication** Indicates whether there are any application issues that interfere with the upgrade due to the file in question. -- **DisplayGenericMessage** Will a generic message be shown for this file? -- **DisplayGenericMessageGated** Indicates whether a generic message will be shown for this file. -- **HardBlock** This file is blocked in the SDB. -- **HasUxBlockOverride** Does the file have a block that is overridden by a tag in the SDB? -- **MigApplication** Does the file have a MigXML from the SDB associated with it that applies to the current upgrade mode? -- **MigRemoval** Does the file have a MigXML from the SDB that will cause the app to be removed on upgrade? -- **NeedsDismissAction** Will the file cause an action that can be dismissed? -- **NeedsInstallPostUpgradeData** After upgrade, the file will have a post-upgrade notification to install a replacement for the app. -- **NeedsNotifyPostUpgradeData** Does the file have a notification that should be shown after upgrade? -- **NeedsReinstallPostUpgradeData** After upgrade, this file will have a post-upgrade notification to reinstall the app. -- **NeedsUninstallAction** The file must be uninstalled to complete the upgrade. -- **SdbBlockUpgrade** The file is tagged as blocking upgrade in the SDB, -- **SdbBlockUpgradeCanReinstall** The file is tagged as blocking upgrade in the SDB. It can be reinstalled after upgrade. -- **SdbBlockUpgradeUntilUpdate** The file is tagged as blocking upgrade in the SDB. If the app is updated, the upgrade can proceed. -- **SdbReinstallUpgrade** The file is tagged as needing to be reinstalled after upgrade in the SDB. It does not block upgrade. -- **SdbReinstallUpgradeWarn** The file is tagged as needing to be reinstalled after upgrade with a warning in the SDB. It does not block upgrade. -- **SoftBlock** The file is softblocked in the SDB and has a warning. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove - -This event indicates that the DecisionApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileStartSync - -This event indicates that a new set of DecisionApplicationFileAdd events will be sent. This event is used to make compatibility decisions about a file 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpAdd - -This event sends compatibility decision data about a Plug and Play (PNP) device 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 generating the events. -- **AssociatedDriverIsBlocked** Is the driver associated with this PNP device blocked? -- **AssociatedDriverWillNotMigrate** Will the driver associated with this plug-and-play device migrate? -- **BlockAssociatedDriver** Should the driver associated with this PNP device be blocked? -- **BlockingDevice** Is this PNP device blocking upgrade? -- **BlockUpgradeIfDriverBlocked** Is the PNP device both boot critical and does not have a driver included with the OS? -- **BlockUpgradeIfDriverBlockedAndOnlyActiveNetwork** Is this PNP device the only active network device? -- **DisplayGenericMessage** Will a generic message be shown during Setup for this PNP device? -- **DisplayGenericMessageGated** Indicates whether a generic message will be shown during Setup for this PNP device. -- **DriverAvailableInbox** Is a driver included with the operating system for this PNP device? -- **DriverAvailableOnline** Is there a driver for this PNP device on Windows Update? -- **DriverAvailableUplevel** Is there a driver on Windows Update or included with the operating system for this PNP device? -- **DriverBlockOverridden** Is there is a driver block on the device that has been overridden? -- **NeedsDismissAction** Will the user would need to dismiss a warning during Setup for this device? -- **NotRegressed** Does the device have a problem code on the source OS that is no better than the one it would have on the target OS? -- **SdbDeviceBlockUpgrade** Is there an SDB block on the PNP device that blocks upgrade? -- **SdbDriverBlockOverridden** Is there an SDB block on the PNP device that blocks upgrade, but that block was overridden? - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpRemove - -This event Indicates that the DecisionDevicePnp object represented by the objectInstanceId is no longer present. This event is used to make compatibility decisions about PNP devices 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpStartSync - -This event indicates that a new set of DecisionDevicePnpAdd events will be sent. This event is used to make compatibility decisions about PNP devices 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageAdd - -This event sends decision data about driver package compatibility 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 generating the events. -- **DisplayGenericMessageGated** Indicates whether a generic offer block message will be shown for this driver package. -- **DriverBlockOverridden** Does the driver package have an SDB block that blocks it from migrating, but that block has been overridden? -- **DriverIsDeviceBlocked** Was the driver package was blocked because of a device block? -- **DriverIsDriverBlocked** Is the driver package blocked because of a driver block? -- **DriverShouldNotMigrate** Should the driver package be migrated during upgrade? -- **SdbDriverBlockOverridden** Does the driver package have an SDB block that blocks it from migrating, but that block has been overridden? - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageRemove - -This event indicates that the DecisionDriverPackage object represented by the objectInstanceId is no longer present. This event is used to make compatibility decisions about driver packages 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageStartSync - -The DecisionDriverPackageStartSync event indicates that a new set of DecisionDriverPackageAdd events will be sent. This event is used to make compatibility decisions about driver packages 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockAdd - -This event sends compatibility decision data about blocking entries on the system that are not keyed by either applications or devices, 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 generating the events. -- **BlockingApplication** Are there are any application issues that interfere with upgrade due to matching info blocks? -- **DisplayGenericMessage** Will a generic message be shown for this block? -- **NeedsUninstallAction** Does the user need to take an action in setup due to a matching info block? -- **SdbBlockUpgrade** Is a matching info block blocking upgrade? -- **SdbBlockUpgradeCanReinstall** Is a matching info block blocking upgrade, but has the can reinstall tag? -- **SdbBlockUpgradeUntilUpdate** Is a matching info block blocking upgrade but has the until update tag? - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockRemove - -This event indicates that the DecisionMatchingInfoBlock object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockStartSync - -This event indicates that a new set of DecisionMatchingInfoBlockAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveAdd - -This event sends compatibility decision data about non-blocking entries on the system that are not keyed by either applications or devices, 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. -- **BlockingApplication** Are there any application issues that interfere with upgrade due to matching info blocks? -- **DisplayGenericMessageGated** Indicates whether a generic offer block message will be shown due to matching info blocks. -- **MigApplication** Is there a matching info block with a mig for the current mode of upgrade? - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveRemove - -This event Indicates that the DecisionMatchingInfoPassive object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveStartSync - -This event indicates that a new set of DecisionMatchingInfoPassiveAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeAdd - -This event sends compatibility decision data about entries that require reinstall after upgrade. It's used 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. -- **NeedsInstallPostUpgradeData** Will the file have a notification after upgrade to install a replacement for the app? -- **NeedsNotifyPostUpgradeData** Should a notification be shown for this file after upgrade? -- **NeedsReinstallPostUpgradeData** Will the file have a notification after upgrade to reinstall the app? -- **SdbReinstallUpgrade** The file is tagged as needing to be reinstalled after upgrade in the compatibility database (but is not blocking upgrade). - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeRemove - -This event indicates that the DecisionMatchingInfoPostUpgrade object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeStartSync - -This event indicates that a new set of DecisionMatchingInfoPostUpgradeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterAdd - -This event sends decision data about the presence of Windows Media Center, 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 generating the events. -- **BlockingApplication** Is there any application issues that interfere with upgrade due to Windows Media Center? -- **MediaCenterActivelyUsed** If Windows Media Center is supported on the edition, has it been run at least once and are the MediaCenterIndicators are true? -- **MediaCenterIndicators** Do any indicators imply that Windows Media Center is in active use? -- **MediaCenterInUse** Is Windows Media Center actively being used? -- **MediaCenterPaidOrActivelyUsed** Is Windows Media Center actively being used or is it running on a supported edition? -- **NeedsDismissAction** Are there any actions that can be dismissed coming from Windows Media Center? - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterRemove - -This event indicates that the DecisionMediaCenter object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterStartSync - -This event indicates that a new set of DecisionMediaCenterAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosAdd - -This event sends compatibility decision data about the BIOS 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 generating the events. -- **Blocking** Is the device blocked from upgrade due to a BIOS block? -- **DisplayGenericMessageGated** Indicates whether a generic offer block message will be shown for the bios. -- **HasBiosBlock** Does the device have a BIOS block? - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosRemove - -This event indicates that the DecisionSystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosStartSync - -This event indicates that a new set of DecisionSystemBiosAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.GatedRegChange - -This event sends data about the results of running a set of quick-blocking instructions, to help keep Windows up to date. - -The following fields are available: - -- **NewData** The data in the registry value after the scan completed. -- **OldData** The previous data in the registry value before the scan ran. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **RegKey** The registry key name for which a result is being sent. -- **RegValue** The registry value for which a result is being sent. -- **Time** The client time of the event. - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileAdd - -This event represents the basic metadata about a file on the system. The file must be part of an app and either have a block in the compatibility database or be part of an antivirus program. The data collected with this event is used 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 generating the events. -- **AvDisplayName** If the app is an antivirus app, this is its display name. -- **AvProductState** Indicates whether the antivirus program is turned on and the signatures are up to date. -- **BinaryType** A binary type. Example: UNINITIALIZED, ZERO_BYTE, DATA_ONLY, DOS_MODULE, NE16_MODULE, PE32_UNKNOWN, PE32_I386, PE32_ARM, PE64_UNKNOWN, PE64_AMD64, PE64_ARM64, PE64_IA64, PE32_CLR_32, PE32_CLR_IL, PE32_CLR_IL_PREFER32, PE64_CLR_64. -- **BinFileVersion** An attempt to clean up FileVersion at the client that tries to place the version into 4 octets. -- **BinProductVersion** An attempt to clean up ProductVersion at the client that tries to place the version into 4 octets. -- **BoeProgramId** If there is no entry in Add/Remove Programs, this is the ProgramID that is generated from the file metadata. -- **CompanyName** The company name of the vendor who developed this file. -- **FileId** A hash that uniquely identifies a file. -- **FileVersion** The File version field from the file metadata under Properties -> Details. -- **HasUpgradeExe** Indicates whether the antivirus app has an upgrade.exe file. -- **IsAv** Indicates whether the file an antivirus reporting EXE. -- **LinkDate** The date and time that this file was linked on. -- **LowerCaseLongPath** The full file path to the file that was inventoried on the device. -- **Name** The name of the file that was inventoried. -- **ProductName** The Product name field from the file metadata under Properties -> Details. -- **ProductVersion** The Product version field from the file metadata under Properties -> Details. -- **ProgramId** A hash of the Name, Version, Publisher, and Language of an application used to identify it. -- **Size** The size of the file (in hexadecimal bytes). - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileRemove - -This event indicates that the InventoryApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync - -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackAdd - -This event sends data about the number of language packs installed on the system, 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. -- **HasLanguagePack** Indicates whether this device has 2 or more language packs. -- **LanguagePackCount** The number of language packs are installed. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackRemove - -This event indicates that the InventoryLanguagePack object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackStartSync - -This event indicates that a new set of InventoryLanguagePackAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterAdd - -This event sends true/false data about decision points used to understand whether Windows Media Center is used on the system, 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 generating the events. -- **EverLaunched** Has Windows Media Center ever been launched? -- **HasConfiguredTv** Has the user configured a TV tuner through Windows Media Center? -- **HasExtendedUserAccounts** Are any Windows Media Center Extender user accounts configured? -- **HasWatchedFolders** Are any folders configured for Windows Media Center to watch? -- **IsDefaultLauncher** Is Windows Media Center the default app for opening music or video files? -- **IsPaid** Is the user running a Windows Media Center edition that implies they paid for Windows Media Center? -- **IsSupported** Does the running OS support Windows Media Center? - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterRemove - -This event indicates that the InventoryMediaCenter object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterStartSync - -This event indicates that a new set of InventoryMediaCenterAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosAdd - -This event sends basic metadata about the BIOS to determine whether it has a compatibility block. The data collected with this event is used 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. -- **BiosDate** The release date of the BIOS in UTC format. -- **BiosName** The name field from Win32_BIOS. -- **Manufacturer** The manufacturer field from Win32_ComputerSystem. -- **Model** The model field from Win32_ComputerSystem. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosRemove - -This event indicates that the InventorySystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosStartSync - -This event indicates that a new set of InventorySystemBiosAdd events will be sent. The data collected with this event is used 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 binary (executable) generating the events. - - -### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageAdd - -This event runs only during setup. It provides a listing of the uplevel driver packages that were downloaded before the upgrade. It is critical in understanding if failures in setup can be traced to not having sufficient uplevel drivers before the upgrade. The data collected with this event is used 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. -- **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. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageStartSync - -This event indicates that a new set of InventoryUplevelDriverPackageAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.RunContext - -This event is sent at the beginning of an appraiser run, the RunContext indicates what should be expected in the following data payload. This event is used with the other Appraiser events to make compatibility decisions to keep Windows up to date. - -The following fields are available: - -- **AppraiserBranch** The source branch in which the currently running version of Appraiser was built. -- **AppraiserProcess** The name of the process that launched Appraiser. -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **Context** Indicates what mode Appraiser is running in. Example: Setup or Telemetry. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **Time** The client time of the event. - - -### Microsoft.Windows.Appraiser.General.SystemMemoryAdd - -This event sends data on the amount of memory on the system and whether it meets requirements, 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 generating the events. -- **Blocking** Is the device from upgrade due to memory restrictions? -- **MemoryRequirementViolated** Was a memory requirement violated? -- **pageFile** The current committed memory limit for the system or the current process, whichever is smaller (in bytes). -- **ram** The amount of memory on the device. -- **ramKB** The amount of memory (in KB). -- **virtual** The size of the user-mode portion of the virtual address space of the calling process (in bytes). -- **virtualKB** The amount of virtual memory (in KB). - - -### Microsoft.Windows.Appraiser.General.SystemMemoryRemove - -This event that the SystemMemory object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemMemoryStartSync - -This event indicates that a new set of SystemMemoryAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeAdd - -This event sends data indicating whether the system supports the CompareExchange128 CPU requirement, 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 generating the events. -- **Blocking** Is the upgrade blocked due to the processor? -- **CompareExchange128Support** Does the CPU support CompareExchange128? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeRemove - -This event indicates that the SystemProcessorCompareExchange object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeStartSync - -This event indicates that a new set of SystemProcessorCompareExchangeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfAdd - -This event sends data indicating whether the system supports the LAHF & SAHF CPU requirement, 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 generating the events. -- **Blocking** Is the upgrade blocked due to the processor? -- **LahfSahfSupport** Does the CPU support LAHF/SAHF? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfRemove - -This event indicates that the SystemProcessorLahfSahf object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfStartSync - -This event indicates that a new set of SystemProcessorLahfSahfAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxAdd - -This event sends data indicating whether the system supports the NX CPU requirement, 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 due to the processor? -- **NXDriverResult** The result of the driver used to do a non-deterministic check for NX support. -- **NXProcessorSupport** Does the processor support NX? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxRemove - -This event indicates that the SystemProcessorNx object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxStartSync - -This event indicates that a new set of SystemProcessorNxAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWAdd - -This event sends data indicating whether the system supports the PrefetchW CPU requirement, 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 due to the processor? -- **PrefetchWSupport** Does the processor support PrefetchW? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWRemove - -This event indicates that the SystemProcessorPrefetchW object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWStartSync - -This event indicates that a new set of SystemProcessorPrefetchWAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2Add - -This event sends data indicating whether the system supports the SSE2 CPU requirement, 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 due to the processor? -- **SSE2ProcessorSupport** Does the processor support SSE2? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2Remove - -This event indicates that the SystemProcessorSse2 object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2StartSync - -This event indicates that a new set of SystemProcessorSse2Add events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemTouchAdd - -This event sends data indicating whether the system supports touch, 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. -- **IntegratedTouchDigitizerPresent** Is there an integrated touch digitizer? -- **MaximumTouches** The maximum number of touch points supported by the device hardware. - - -### Microsoft.Windows.Appraiser.General.SystemTouchRemove - -This event indicates that the SystemTouch object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemTouchStartSync - -This event indicates that a new set of SystemTouchAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWimAdd - -This event sends data indicating whether the operating system is running from a compressed Windows Imaging Format (WIM) file, 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. -- **IsWimBoot** Is the current operating system running from a compressed WIM file? -- **RegistryWimBootValue** The raw value from the registry that is used to indicate if the device is running from a WIM. - - -### Microsoft.Windows.Appraiser.General.SystemWimRemove - -This event indicates that the SystemWim object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWimStartSync - -This event indicates that a new set of SystemWimAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusAdd - -This event sends data indicating whether the current operating system is activated, 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. -- **WindowsIsLicensedApiValue** The result from the API that's used to indicate if operating system is activated. -- **WindowsNotActivatedDecision** Is the current operating system activated? - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusEndSync - -This event indicates that a full set of SystemWindowsActivationStatusAdd events has succeeded in being sent. The data collected with this event is used to help keep Windows up to date. - - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusRemove - -This event indicates that the SystemWindowsActivationStatus object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusStartSync - -This event indicates that a new set of SystemWindowsActivationStatusAdd events will be sent. The data collected with this event is used 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. - - -### 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. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWlanStartSync - -This event indicates that a new set of SystemWlanAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.TelemetryRunHealth - -This event indicates the parameters and result of a diagnostic data run. This allows the rest of the data sent over the course of the run to be properly contextualized and understood, which is then used to keep Windows up to date. - -The following fields are available: - -- **AppraiserBranch** The source branch in which the version of Appraiser that is running was built. -- **AppraiserDataVersion** The version of the data files being used by the Appraiser diagnostic data run. -- **AppraiserProcess** The name of the process that launched Appraiser. -- **AppraiserVersion** The file version (major, minor and build) of the Appraiser DLL, concatenated without dots. -- **AuxFinal** Obsolete, always set to false. -- **AuxInitial** Obsolete, indicates if Appraiser is writing data files to be read by the Get Windows 10 app. -- **DeadlineDate** A timestamp representing the deadline date, which is the time until which appraiser will wait to do a full scan. -- **EnterpriseRun** Indicates whether the diagnostic data run is an enterprise run, which means appraiser was run from the command line with an extra enterprise parameter. -- **FullSync** Indicates if Appraiser is performing a full sync, which means that full set of events representing the state of the machine are sent. Otherwise, only the changes from the previous run are sent. -- **InboxDataVersion** The original version of the data files before retrieving any newer version. -- **IndicatorsWritten** Indicates if all relevant UEX indicators were successfully written or updated. -- **InventoryFullSync** Indicates if inventory is performing a full sync, which means that the full set of events representing the inventory of machine are sent. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **PerfBackoff** Indicates if the run was invoked with logic to stop running when a user is present. Helps to understand why a run may have a longer elapsed time than normal. -- **PerfBackoffInsurance** Indicates if appraiser is running without performance backoff because it has run with perf backoff and failed to complete several times in a row. -- **RunAppraiser** Indicates if Appraiser was set to run at all. If this if false, it is understood that data events will not be received from this device. -- **RunDate** The date that the diagnostic data run was stated, expressed as a filetime. -- **RunGeneralTel** Indicates if the generaltel.dll component was run. Generaltel collects additional diagnostic data on an infrequent schedule and only from machines at diagnostic data levels higher than Basic. -- **RunOnline** Indicates if appraiser was able to connect to Windows Update and therefore is making decisions using up-to-date driver coverage information. -- **RunResult** The result of the Appraiser diagnostic data run. -- **SendingUtc** Indicates whether the Appraiser client is sending events during the current diagnostic data run. -- **StoreHandleIsNotNull** Obsolete, always set to false -- **TelementrySent** Indicates whether diagnostic data was successfully sent. -- **ThrottlingUtc** Indicates whether the Appraiser client is throttling its output of CUET events to avoid being disabled. This increases runtime but also diagnostic data reliability. -- **Time** The client time of the event. -- **VerboseMode** Indicates if appraiser ran in Verbose mode, which is a test-only mode with extra logging. -- **WhyFullSyncWithoutTablePrefix** Indicates the reason or reasons that a full sync was generated. - - -### Microsoft.Windows.Appraiser.General.WmdrmAdd - -This event sends data about the usage of older digital rights management on the system, to help keep Windows up to date. This data does not indicate the details of the media using the digital rights management, only whether any such files exist. Collecting this data was critical to ensuring the correct mitigation for customers, and should be able to be removed once all mitigations are in place. - -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. -- **BlockingApplication** Same as NeedsDismissAction. -- **NeedsDismissAction** Indicates if a dismissible message is needed to warn the user about a potential loss of data due to DRM deprecation. -- **WmdrmApiResult** Raw value of the API used to gather DRM state. -- **WmdrmCdRipped** Indicates if the system has any files encrypted with personal DRM, which was used for ripped CDs. -- **WmdrmIndicators** WmdrmCdRipped OR WmdrmPurchased. -- **WmdrmInUse** WmdrmIndicators AND dismissible block in setup was not dismissed. -- **WmdrmNonPermanent** Indicates if the system has any files with non-permanent licenses. -- **WmdrmPurchased** Indicates if the system has any files with permanent licenses. - - -### Microsoft.Windows.Appraiser.General.WmdrmRemove - -This event indicates that the Wmdrm object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.WmdrmStartSync - -The WmdrmStartSync event indicates that a new set of WmdrmAdd events will be sent. This event is used to understand the usage of older digital rights management on the system, 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. - - -## Census events - -### Census.App - -This event sends version data about the Apps running on this device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **AppraiserEnterpriseErrorCode** The error code of the last Appraiser enterprise run. -- **AppraiserErrorCode** The error code of the last Appraiser run. -- **AppraiserRunEndTimeStamp** The end time of the last Appraiser run. -- **AppraiserRunIsInProgressOrCrashed** Flag that indicates if the Appraiser run is in progress or has crashed. -- **AppraiserRunStartTimeStamp** The start time of the last Appraiser run. -- **AppraiserTaskEnabled** Whether the Appraiser task is enabled. -- **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** The version of Internet Explorer that is running on the device. - - -### Census.Azure - -This event returns data from Microsoft-internal Azure server machines (only from Microsoft-internal machines with Server SKUs). All other machines (those outside Microsoft and/or machines that are not part of the “Azure fleet”) return empty data sets. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **CloudCoreBuildEx** The Azure CloudCore build number. -- **CloudCoreSupportBuildEx** The Azure CloudCore support build number. -- **NodeID** The node identifier on the device that indicates whether the device is part of the Azure fleet. -- **PartA_PrivTags** The privacy tags associated with the event. - - -### Census.Battery - -This event sends type and capacity data about the battery on the device, as well as the number of connected standby devices in use. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **InternalBatteryCapablities** Represents information about what the battery is capable of doing. -- **InternalBatteryCapacityCurrent** Represents the battery's current fully charged capacity in mWh (or relative). Compare this value to DesignedCapacity  to estimate the battery's wear. -- **InternalBatteryCapacityDesign** Represents the theoretical capacity of the battery when new, in mWh. -- **InternalBatteryNumberOfCharges** Provides the number of battery charges. This is used when creating new products and validating that existing products meets targeted functionality performance. -- **IsAlwaysOnAlwaysConnectedCapable** Represents whether the battery enables the device to be AlwaysOnAlwaysConnected . Boolean value. - - -### Census.Enterprise - -This event sends data about Azure presence, type, and cloud domain use in order to provide an understanding of the use and integration of devices in an enterprise, cloud, and server environment. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **AADDeviceId** Azure Active Directory device ID. -- **AzureOSIDPresent** Represents the field used to identify an Azure machine. -- **AzureVMType** Represents whether the instance is Azure VM PAAS, Azure VM IAAS or any other VMs. -- **CDJType** Represents the type of cloud domain joined for the machine. -- **CommercialId** Represents the GUID for the commercial entity which the device is a member of.  Will be used to reflect insights back to customers. -- **ContainerType** The type of container, such as process or virtual machine hosted. -- **EnrollmentType** Defines the type of MDM enrollment on the device. -- **HashedDomain** The hashed representation of the user domain used for login. -- **IsCloudDomainJoined** Is this device joined to an Azure Active Directory (AAD) tenant? true/false -- **IsDERequirementMet** Represents if the device can do device encryption. -- **IsDeviceProtected** Represents if Device protected by BitLocker/Device Encryption -- **IsDomainJoined** Indicates whether a machine is joined to a domain. -- **IsEDPEnabled** Represents if Enterprise data protected on the device. -- **IsMDMEnrolled** Whether the device has been MDM Enrolled or not. -- **MPNId** Returns the Partner ID/MPN ID from Regkey. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\DeployID -- **SCCMClientId** This ID correlate systems that send data to Compat Analytics (OMS) and other OMS based systems with systems in an enterprise Configuration Manager environment. -- **ServerFeatures** Represents the features installed on a Windows Server. This can be used by developers and administrators who need to automate the process of determining the features installed on a set of server computers. -- **SystemCenterID** The Configuration Manager ID is an anonymized one-way hash of the Active Directory Organization identifier - - -### Census.Firmware - -This event sends data about the BIOS and startup embedded in the device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **FirmwareManufacturer** Represents the manufacturer of the device's firmware (BIOS). -- **FirmwareReleaseDate** Represents the date the current firmware was released. -- **FirmwareType** Represents the firmware type. The various types can be unknown, BIOS, UEFI. -- **FirmwareVersion** Represents the version of the current firmware. - - -### Census.Flighting - -This event sends Windows Insider data from customers participating in improvement testing and feedback programs. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceSampleRate** The telemetry sample rate assigned to the device. -- **EnablePreviewBuilds** Used to enable Windows Insider builds on a device. -- **FlightIds** A list of the different Windows Insider builds on this device. -- **FlightingBranchName** The name of the Windows Insider branch currently used by the device. -- **IsFlightsDisabled** Represents if the device is participating in the Windows Insider program. -- **MSA_Accounts** Represents a list of hashed IDs of the Microsoft Accounts that are flighting (pre-release builds) on this device. -- **SSRK** Retrieves the mobile targeting settings. - - -### Census.Hardware - -This event sends data about the device, including hardware type, OEM brand, model line, model, telemetry level setting, and TPM support. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ActiveMicCount** The number of active microphones attached to the device. -- **ChassisType** Represents the type of device chassis, such as desktop or low profile desktop. The possible values can range between 1 - 36. -- **ComputerHardwareID** Identifies a device class that is represented by a hash of different SMBIOS fields. -- **D3DMaxFeatureLevel** Supported Direct3D version. -- **DeviceColor** Indicates a color of the device. -- **DeviceForm** Indicates the form as per the device classification. -- **DeviceName** The device name that is set by the user. -- **DigitizerSupport** Is a digitizer supported? -- **DUID** The device unique ID. -- **Gyroscope** Indicates whether the device has a gyroscope (a mechanical component that measures and maintains orientation). -- **InventoryId** The device ID used for compatibility testing. -- **Magnetometer** Indicates whether the device has a magnetometer (a mechanical component that works like a compass). -- **NFCProximity** Indicates whether the device supports NFC (a set of communication protocols that helps establish communication when applicable devices are brought close together.) -- **OEMDigitalMarkerFileName** The name of the file placed in the \Windows\system32\drivers directory that specifies the OEM and model name of the device. -- **OEMManufacturerName** The device manufacturer name. The OEMName for an inactive device is not reprocessed even if the clean OEM name is changed at a later date. -- **OEMModelBaseBoard** The baseboard model used by the OEM. -- **OEMModelBaseBoardVersion** Differentiates between developer and retail devices. -- **OEMModelName** The device model name. -- **OEMModelNumber** The device model number. -- **OEMModelSKU** The device edition that is defined by the manufacturer. -- **OEMModelSystemFamily** The system family set on the device by an OEM. -- **OEMModelSystemVersion** The system model version set on the device by the OEM. -- **OEMOptionalIdentifier** A Microsoft assigned value that represents a specific OEM subsidiary. -- **OEMSerialNumber** The serial number of the device that is set by the manufacturer. -- **PhoneManufacturer** The friendly name of the phone manufacturer. -- **PowerPlatformRole** The OEM preferred power management profile. It's used to help to identify the basic form factor of the device. -- **SoCName** The firmware manufacturer of the device. -- **StudyID** Used to identify retail and non-retail device. -- **TelemetryLevel** The telemetry level the user has opted into, such as Basic or Enhanced. -- **TelemetryLevelLimitEnhanced** The telemetry level for Windows Analytics-based solutions. -- **TelemetrySettingAuthority** Determines who set the telemetry level, such as GP, MDM, or the user. -- **TPMVersion** The supported Trusted Platform Module (TPM) on the device. If no TPM is present, the value is 0. -- **VoiceSupported** Does the device have a cellular radio capable of making voice calls? - - -### Census.Memory - -This event sends data about the memory on the device, including ROM and RAM. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **TotalPhysicalRAM** Represents the physical memory (in MB). -- **TotalVisibleMemory** Represents the memory that is not reserved by the system. - - -### Census.Network - -This event sends data about the mobile and cellular network used by the device (mobile service provider, network, device ID, and service cost factors). The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **IMEI0** Represents the International Mobile Station Equipment Identity. This number is usually unique and used by the mobile operator to distinguish different phone hardware. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. The two fields represent phone with dual sim coverage. -- **IMEI1** Represents the International Mobile Station Equipment Identity. This number is usually unique and used by the mobile operator to distinguish different phone hardware. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. The two fields represent phone with dual sim coverage. -- **MCC0** Represents the Mobile Country Code (MCC). It used with the Mobile Network Code (MNC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MCC1** Represents the Mobile Country Code (MCC). It used with the Mobile Network Code (MNC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MEID** Represents the Mobile Equipment Identity (MEID). MEID is a worldwide unique phone ID assigned to CDMA phones. MEID replaces electronic serial number (ESN), and is equivalent to IMEI for GSM and WCDMA phones. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. -- **MNC0** Retrieves the Mobile Network Code (MNC). It used with the Mobile Country Code (MCC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MNC1** Retrieves the Mobile Network Code (MNC). It used with the Mobile Country Code (MCC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MobileOperatorBilling** Represents the telephone company that provides services for mobile phone users. -- **MobileOperatorCommercialized** Represents which reseller and geography the phone is commercialized for. This is the set of values on the phone for who and where it was intended to be used. For example, the commercialized mobile operator code AT&T in the US would be ATT-US. -- **MobileOperatorNetwork0** Represents the operator of the current mobile network that the device is used on. (AT&T, T-Mobile, Vodafone). The two fields represent phone with dual sim coverage. -- **MobileOperatorNetwork1** Represents the operator of the current mobile network that the device is used on. (AT&T, T-Mobile, Vodafone). The two fields represent phone with dual sim coverage. -- **NetworkAdapterGUID** The GUID of the primary network adapter. -- **NetworkCost** Represents the network cost associated with a connection. -- **SPN0** Retrieves the Service Provider Name (SPN). For example, these might be AT&T, Sprint, T-Mobile, or Verizon. The two fields represent phone with dual sim coverage. -- **SPN1** Retrieves the Service Provider Name (SPN). For example, these might be AT&T, Sprint, T-Mobile, or Verizon. The two fields represent phone with dual sim coverage. - - -### Census.OS - -This event sends data about the operating system such as the version, locale, update service configuration, when and how it was originally installed, and whether it is a virtual device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ActivationChannel** Retrieves the retail license key or Volume license key for a machine. -- **AssignedAccessStatus** Kiosk configuration mode. -- **CompactOS** Indicates if the Compact OS feature from Win10 is enabled. -- **DeveloperUnlockStatus** Represents if a device has been developer unlocked by the user or Group Policy. -- **DeviceTimeZone** The time zone that is set on the device. Example: Pacific Standard Time -- **GenuineState** Retrieves the ID Value specifying the OS Genuine check. -- **InstallationType** Retrieves the type of OS installation. (Clean, Upgrade, Reset, Refresh, Update). -- **InstallLanguage** The first language installed on the user machine. -- **IsDeviceRetailDemo** Retrieves if the device is running in demo mode. -- **IsEduData** Returns Boolean if the education data policy is enabled. -- **IsPortableOperatingSystem** Retrieves whether OS is running Windows-To-Go -- **IsSecureBootEnabled** Retrieves whether Boot chain is signed under UEFI. -- **LanguagePacks** The list of language packages installed on the device. -- **LicenseStateReason** Retrieves why (or how) a system is licensed or unlicensed. The HRESULT may indicate an error code that indicates a key blocked error, or it may indicate that we are running an OS License granted by the MS store. -- **OA3xOriginalProductKey** Retrieves the License key stamped by the OEM to the machine. -- **OSEdition** Retrieves the version of the current OS. -- **OSInstallType** Retrieves a numeric description of what install was used on the device i.e. clean, upgrade, refresh, reset, etc. -- **OSOOBEDateTime** Retrieves Out of Box Experience (OOBE) Date in Coordinated Universal Time (UTC). -- **OSSKU** Retrieves the Friendly Name of OS Edition. -- **OSSubscriptionStatus** Represents the existing status for enterprise subscription feature for PRO machines. -- **OSSubscriptionTypeId** Returns boolean for enterprise subscription feature for selected PRO machines. -- **OSTimeZoneBiasInMins** Retrieves the time zone set on machine. -- **OSUILocale** Retrieves the locale of the UI that is currently used by the OS. -- **ProductActivationResult** Returns Boolean if the OS Activation was successful. -- **ProductActivationTime** Returns the OS Activation time for tracking piracy issues. -- **ProductKeyID2** Retrieves the License key if the machine is updated with a new license key. -- **RACw7Id** Retrieves the Microsoft Reliability Analysis Component (RAC) Win7 Identifier. RAC is used to monitor and analyze system usage and reliability. -- **ServiceMachineIP** Retrieves the IP address of the KMS host used for anti-piracy. -- **ServiceMachinePort** Retrieves the port of the KMS host used for anti-piracy. -- **ServiceProductKeyID** Retrieves the License key of the KMS -- **SharedPCMode** Returns Boolean for devices that have enabled the configuration EnableSharedPCMode.ration EnableSharedPCMode. -- **Signature** Retrieves if it is a signature machine sold by Microsoft store. -- **SLICStatus** Whether a SLIC table exists on the device. -- **SLICVersion** Returns OS type/version from SLIC table. - - -### Census.PrivacySettings - -This event provides information about the device level privacy settings and whether device-level access was granted to these capabilities. Not all settings are applicable to all devices. Each field records the consent state for the corresponding privacy setting. The consent state is encoded as a 16-bit signed integer, where the first 8 bits represents the effective consent value, and the last 8 bits represent the authority that set the value. The effective consent (first 8 bits) is one of the following values: -3 = unexpected consent value, -2 = value was not requested, -1 = an error occurred while attempting to retrieve the value, 0 = undefined, 1 = allow, 2 = deny, 3 = prompt. The consent authority (last 8 bits) is one of the following values: -3 = unexpected authority, -2 = value was not requested, -1 = an error occurred while attempting to retrieve the value, 0 = system, 1 = a higher authority (a gating setting, the system-wide setting, or a group policy), 2 = advertising ID group policy, 3 = advertising ID policy for child account, 4 = privacy setting provider doesn't know the actual consent authority, 5 = consent was not configured and a default set in code was used, 6 = system default, 7 = organization policy, 8 = OneSettings. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **Activity** Current state of the activity history setting. -- **ActivityHistoryCloudSync** Current state of the activity history cloud sync setting. -- **ActivityHistoryCollection** Current state of the activity history collection setting. -- **AdvertisingId** Current state of the advertising ID setting. -- **AppDiagnostics** Current state of the app diagnostics setting. -- **Appointments** 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. -- **Contacts** Current state of the contacts setting. -- **DocumentsLibrary** Current state of the documents library setting. -- **Email** 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. -- **InkTypeImprovement** Current state of the improve inking and typing setting. -- **Location** Current state of the location setting. -- **LocationHistory** Current state of the location history setting. -- **Microphone** Current state of the microphone setting. -- **PhoneCall** Current state of the phone call setting. -- **PhoneCallHistory** 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. -- **SerialCommunication** Current state of the serial communication setting. -- **Sms** Current state of the text messaging setting. -- **SpeechPersonalization** Current state of the speech services setting. -- **USB** Current state of the USB setting. -- **UserAccountInformation** Current state of the account information setting. -- **UserDataTasks** 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. -- **WiFiDirect** Current state of the Wi-Fi direct setting. - - -### Census.Processor - -This event sends data about the processor. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **KvaShadow** This is the micro code information of the processor. -- **MMSettingOverride** Microcode setting of the processor. -- **MMSettingOverrideMask** Microcode setting override of the processor. -- **PreviousUpdateRevision** Previous microcode revision. -- **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. -- **ProcessorPhysicalCores** Number of physical cores in the processor. -- **ProcessorUpdateRevision** The microcode revision. -- **ProcessorUpdateStatus** Enum value that represents the processor microcode load status. -- **SocketCount** Count of CPU sockets. -- **SpeculationControl** Indicates whether the system has enabled protections needed to validate the speculation control vulnerability. - - -### Census.Security - -This event provides information about security settings. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **AvailableSecurityProperties** This field helps to enumerate and report state on the relevant security properties for Device Guard. -- **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** 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** 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. -- **SModeState** The Windows S mode trail state. -- **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 - -This event is used to gather basic speech settings on the device. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **AboveLockEnabled** Cortana setting that represents if Cortana can be invoked when the device is locked. -- **GPAllowInputPersonalization** Indicates if a Group Policy setting has enabled speech functionalities. -- **HolographicSpeechInputDisabled** Holographic setting that represents if the attached HMD devices have speech functionality disabled by the user. -- **HolographicSpeechInputDisabledRemote** Indicates if a remote policy has disabled speech functionalities for the HMD devices. -- **KWSEnabled** Cortana setting that represents if a user has enabled the "Hey Cortana" keyword spotter (KWS). -- **MDMAllowInputPersonalization** Indicates if an MDM policy has enabled speech functionalities. -- **RemotelyManaged** Indicates if the device is being controlled by a remote administrator (MDM or Group Policy) in the context of speech functionalities. -- **SpeakerIdEnabled** Cortana setting that represents if keyword detection has been trained to try to respond to a single user's voice. -- **SpeechServicesEnabled** Windows setting that represents whether a user is opted-in for speech services on the device. - - -### Census.Storage - -This event sends data about the total capacity of the system volume and primary disk. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **PrimaryDiskTotalCapacity** Retrieves the amount of disk space on the primary disk of the device in MB. -- **PrimaryDiskType** Retrieves an enumerator value of type STORAGE_BUS_TYPE that indicates the type of bus to which the device is connected. This should be used to interpret the raw device properties at the end of this structure (if any). -- **SystemVolumeTotalCapacity** Retrieves the size of the partition that the System volume is installed on in MB. - - -### Census.Userdefault - -This event sends data about the current user's default preferences for browser and several of the most popular extensions and protocols. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DefaultApp** The current user's default program selected for the following extension or protocol: .html, .htm, .jpg, .jpeg, .png, .mp3, .mp4, .mov, .pdf. -- **DefaultBrowserProgId** The ProgramId of the current user's default browser. - - -### Census.UserDisplay - -This event sends data about the logical/physical display size, resolution and number of internal/external displays, and VRAM on the system. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **InternalPrimaryDisplayLogicalDPIX** Retrieves the logical DPI in the x-direction of the internal display. -- **InternalPrimaryDisplayLogicalDPIY** Retrieves the logical DPI in the y-direction of the internal display. -- **InternalPrimaryDisplayPhysicalDPIX** Retrieves the physical DPI in the x-direction of the internal display. -- **InternalPrimaryDisplayPhysicalDPIY** Retrieves the physical DPI in the y-direction of the internal display. -- **InternalPrimaryDisplayResolutionHorizontal** Retrieves the number of pixels in the horizontal direction of the internal display. -- **InternalPrimaryDisplayResolutionVertical** Retrieves the number of pixels in the vertical direction of the internal display. -- **InternalPrimaryDisplaySizePhysicalH** Retrieves the physical horizontal length of the display in mm. Used for calculating the diagonal length in inches. -- **InternalPrimaryDisplaySizePhysicalY** Retrieves the physical vertical length of the display in mm. Used for calculating the diagonal length in inches -- **NumberofExternalDisplays** Retrieves the number of external displays connected to the machine -- **NumberofInternalDisplays** Retrieves the number of internal displays in a machine. -- **VRAMDedicated** Retrieves the video RAM in MB. -- **VRAMDedicatedSystem** Retrieves the amount of memory on the dedicated video card. -- **VRAMSharedSystem** Retrieves the amount of RAM memory that the video card can use. - - -### Census.UserNLS - -This event sends data about the default app language, input, and display language preferences set by the user. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DefaultAppLanguage** The current user Default App Language. -- **DisplayLanguage** The current user preferred Windows Display Language. -- **HomeLocation** The current user location, which is populated using GetUserGeoId() function. -- **KeyboardInputLanguages** The Keyboard input languages installed on the device. -- **SpeechInputLanguages** The Speech Input languages installed on the device. - - -### Census.UserPrivacySettings - -This event provides information about the current users privacy settings and whether device-level access was granted to these capabilities. Not all settings are applicable to all devices. Each field records the consent state for the corresponding privacy setting. The consent state is encoded as a 16-bit signed integer, where the first 8 bits represents the effective consent value, and the last 8 bits represents the authority that set the value. The effective consent is one of the following values: -3 = unexpected consent value, -2 = value was not requested, -1 = an error occurred while attempting to retrieve the value, 0 = undefined, 1 = allow, 2 = deny, 3 = prompt. The consent authority is one of the following values: -3 = unexpected authority, -2 = value was not requested, -1 = an error occurred while attempting to retrieve the value, 0 = user, 1 = a higher authority (a gating setting, the system-wide setting, or a group policy), 2 = advertising ID group policy, 3 = advertising ID policy for child account, 4 = privacy setting provider doesn't know the actual consent authority, 5 = consent was not configured and a default set in code was used, 6 = system default, 7 = organization policy, 8 = OneSettings. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **Activity** Current state of the activity history setting. -- **ActivityHistoryCloudSync** Current state of the activity history cloud sync setting. -- **ActivityHistoryCollection** Current state of the activity history collection setting. -- **AdvertisingId** Current state of the advertising ID setting. -- **AppDiagnostics** Current state of the app diagnostics setting. -- **Appointments** 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. -- **Contacts** Current state of the contacts setting. -- **DocumentsLibrary** Current state of the documents library setting. -- **Email** 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. -- **InkTypePersonalization** Current state of the inking and typing personalization setting. -- **Location** Current state of the location setting. -- **LocationHistory** Current state of the location history setting. -- **Microphone** Current state of the microphone setting. -- **PhoneCall** Current state of the phone call setting. -- **PhoneCallHistory** 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. -- **SerialCommunication** Current state of the serial communication setting. -- **Sms** Current state of the text messaging setting. -- **SpeechPersonalization** Current state of the speech services setting. -- **USB** Current state of the USB setting. -- **UserAccountInformation** Current state of the account information setting. -- **UserDataTasks** 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. -- **WiFiDirect** Current state of the Wi-Fi direct setting. - - -### Census.VM - -This event sends data indicating whether virtualization is enabled on the device, and its various characteristics. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CloudService** Indicates which cloud service, if any, that this virtual machine is running within. -- **HyperVisor** Retrieves whether the current OS is running on top of a Hypervisor. -- **IOMMUPresent** Represents if an input/output memory management unit (IOMMU) is present. -- **IsVDI** Is the device using Virtual Desktop Infrastructure? -- **IsVirtualDevice** Retrieves that when the Hypervisor is Microsoft's Hyper-V Hypervisor or other Hv#1 Hypervisor, this field will be set to FALSE for the Hyper-V host OS and TRUE for any guest OS's. This field should not be relied upon for non-Hv#1 Hypervisors. -- **SLATSupported** Represents whether Second Level Address Translation (SLAT) is supported by the hardware. -- **VirtualizationFirmwareEnabled** Represents whether virtualization is enabled in the firmware. - - -### Census.WU - -This event sends data about the Windows update server and other App store policies. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **AppraiserGatedStatus** Indicates whether a device has been gated for upgrading. -- **AppStoreAutoUpdate** Retrieves the Appstore settings for auto upgrade. (Enable/Disabled). -- **AppStoreAutoUpdateMDM** Retrieves the App Auto Update value for MDM: 0 - Disallowed. 1 - Allowed. 2 - Not configured. Default: [2] Not configured -- **AppStoreAutoUpdatePolicy** Retrieves the Microsoft Store App Auto Update group policy setting -- **DelayUpgrade** Retrieves the Windows upgrade flag for delaying upgrades. -- **OSAssessmentFeatureOutOfDate** How many days has it been since the last feature update was released but the device did not install it? -- **OSAssessmentForFeatureUpdate** Is the device is on the latest feature update? -- **OSAssessmentForQualityUpdate** Is the device on the latest quality update? -- **OSAssessmentForSecurityUpdate** Is the device on the latest security update? -- **OSAssessmentQualityOutOfDate** How many days has it been since a the last quality update was released but the device did not install it? -- **OSAssessmentReleaseInfoTime** The freshness of release information used to perform an assessment. -- **OSRollbackCount** The number of times feature updates have rolled back on the device. -- **OSRolledBack** A flag that represents when a feature update has rolled back during setup. -- **OSUninstalled** A flag that represents when a feature update is uninstalled on a device . -- **OSWUAutoUpdateOptions** Retrieves the auto update settings on the device. -- **OSWUAutoUpdateOptionsSource** The source of auto update setting that appears in the OSWUAutoUpdateOptions field. For example: Group Policy (GP), Mobile Device Management (MDM), and Default. -- **UninstallActive** A flag that represents when a device has uninstalled a previous upgrade recently. -- **UpdateServiceURLConfigured** Retrieves if the device is managed by Windows Server Update Services (WSUS). -- **WUDeferUpdatePeriod** Retrieves if deferral is set for Updates. -- **WUDeferUpgradePeriod** Retrieves if deferral is set for Upgrades. -- **WUDODownloadMode** Retrieves whether DO is turned on and how to acquire/distribute updates Delivery Optimization (DO) allows users to deploy previously downloaded Windows Update (WU) updates to other devices on the same network. -- **WUMachineId** Retrieves the Windows Update (WU) Machine Identifier. -- **WUPauseState** Retrieves Windows Update setting to determine if updates are paused. -- **WUServer** Retrieves the HTTP(S) URL of the WSUS server that is used by Automatic Updates and API callers (by default). - - -### Census.Xbox - -This event sends data about the Xbox Console, such as Serial Number and DeviceId, to help keep Windows up to date. - -The following fields are available: - -- **XboxConsolePreferredLanguage** Retrieves the preferred language selected by the user on Xbox console. -- **XboxConsoleSerialNumber** Retrieves the serial number of the Xbox console. -- **XboxLiveDeviceId** Retrieves the unique device ID of the console. -- **XboxLiveSandboxId** Retrieves the developer sandbox ID if the device is internal to Microsoft. - - -## Common data extensions - -### Common Data Extensions.app - -Describes the properties of the running application. This extension could be populated by a client app or a web app. - -The following fields are available: - -- **asId** An integer value that represents the app session. This value starts at 0 on the first app launch and increments after each subsequent app launch per boot session. -- **env** The environment from which the event was logged. -- **expId** Associates a flight, such as an OS flight, or an experiment, such as a web site UX experiment, with an event. -- **id** Represents a unique identifier of the client application currently loaded in the process producing the event; and is used to group events together and understand usage pattern, errors by application. -- **locale** The locale of the app. -- **name** The name of the app. -- **userId** The userID as known by the application. -- **ver** Represents the version number of the application. Used to understand errors by Version, Usage by Version across an app. - - -### Common Data Extensions.container - -Describes the properties of the container for events logged within a container. - -The following fields are available: - -- **epoch** An ID that's incremented for each SDK initialization. -- **localId** The device ID as known by the client. -- **osVer** The operating system version. -- **seq** An ID that's incremented for each event. -- **type** The container type. Examples: Process or VMHost - - -### Common Data Extensions.cs - -Describes properties related to the schema of the event. - -The following fields are available: - -- **sig** A common schema signature that identifies new and modified event schemas. - - -### Common Data Extensions.device - -Describes the device-related fields. - -The following fields are available: - -- **deviceClass** The device classification. For example, Desktop, Server, or Mobile. -- **localId** A locally-defined unique ID for the device. This is not the human-readable device name. Most likely equal to the value stored at HKLM\Software\Microsoft\SQMClient\MachineId -- **make** Device manufacturer. -- **model** Device model. - - -### Common Data Extensions.Envelope - -Represents an envelope that contains all of the common data extensions. - -The following fields are available: - -- **cV** Represents the Correlation Vector: A single field for tracking partial order of related telemetry events across component boundaries. -- **data** Represents the optional unique diagnostic data for a particular event schema. -- **ext_app** Describes the properties of the running application. This extension could be populated by either a client app or a web app. See [Common Data Extensions.app](#common-data-extensionsapp). -- **ext_container** Describes the properties of the container for events logged within a container. See [Common Data Extensions.container](#common-data-extensionscontainer). -- **ext_cs** Describes properties related to the schema of the event. See [Common Data Extensions.cs](#common-data-extensionscs). -- **ext_device** Describes the device-related fields. See [Common Data Extensions.device](#common-data-extensionsdevice). -- **ext_os** Describes the operating system properties that would be populated by the client. See [Common Data Extensions.os](#common-data-extensionsos). -- **ext_sdk** Describes the fields related to a platform library required for a specific SDK. See [Common Data Extensions.sdk](#common-data-extensionssdk). -- **ext_user** Describes the fields related to a user. See [Common Data Extensions.user](#common-data-extensionsuser). -- **ext_utc** Describes the fields that might be populated by a logging library on Windows. See [Common Data Extensions.utc](#common-data-extensionsutc). -- **ext_xbl** Describes the fields related to XBOX Live. See [Common Data Extensions.xbl](#common-data-extensionsxbl). -- **flags** Represents a collection of bits that describe how the event should be processed by the Connected User Experience and Telemetry component pipeline. The lowest-order byte is the event persistence. The next byte is the event latency. -- **iKey** Represents an ID for applications or other logical groupings of events. -- **name** Represents the uniquely qualified name for the event. -- **popSample** Represents the effective sample rate for this event at the time it was generated by a client. -- **time** Represents the event date time in Coordinated Universal Time (UTC) when the event was generated on the client. This should be in ISO 8601 format. -- **ver** Represents the major and minor version of the extension. - - -### Common Data Extensions.os - -Describes some properties of the operating system. - -The following fields are available: - -- **bootId** An integer value that represents the boot session. This value starts at 0 on first boot after OS install and increments after every reboot. -- **expId** Represents the experiment ID. The standard for associating a flight, such as an OS flight (pre-release build), or an experiment, such as a web site UX experiment, with an event is to record the flight / experiment IDs in Part A of the common schema. -- **locale** Represents the locale of the operating system. -- **name** Represents the operating system name. -- **ver** Represents the major and minor version of the extension. - - -### Common Data Extensions.sdk - -Used by platform specific libraries to record fields that are required for a specific SDK. - -The following fields are available: - -- **epoch** An ID that is incremented for each SDK initialization. -- **installId** An ID that's created during the initialization of the SDK for the first time. -- **libVer** The SDK version. -- **seq** An ID that is incremented for each event. - - -### Common Data Extensions.user - -Describes the fields related to a user. - -The following fields are available: - -- **authId** This is an ID of the user associated with this event that is deduced from a token such as a Microsoft Account ticket or an XBOX token. -- **locale** The language and region. -- **localId** Represents a unique user identity that is created locally and added by the client. This is not the user's account ID. - - -### Common Data Extensions.utc - -Describes the properties that could be populated by a logging library on Windows. - -The following fields are available: - -- **aId** Represents the ETW ActivityId. Logged via TraceLogging or directly via ETW. -- **bSeq** Upload buffer sequence number in the format: buffer identifier:sequence number -- **cat** Represents a bitmask of the ETW Keywords associated with the event. -- **cpId** The composer ID, such as Reference, Desktop, Phone, Holographic, Hub, IoT Composer. -- **epoch** Represents the epoch and seqNum fields, which help track how many events were fired and how many events were uploaded, and enables identification of data lost during upload and de-duplication of events on the ingress server. -- **flags** Represents the bitmap that captures various Windows specific flags. -- **mon** Combined monitor and event sequence numbers in the format: monitor sequence : event sequence -- **op** Represents the ETW Op Code. -- **raId** Represents the ETW Related ActivityId. Logged via TraceLogging or directly via ETW. -- **seq** Represents the sequence field used to track absolute order of uploaded events. It is an incrementing identifier for each event added to the upload queue. The Sequence helps track how many events were fired and how many events were uploaded and enables identification of data lost during upload and de-duplication of events on the ingress server. -- **stId** Represents the Scenario Entry Point ID. This is a unique GUID for each event in a diagnostic scenario. This used to be Scenario Trigger ID. - - -### Common Data Extensions.xbl - -Describes the fields that are related to XBOX Live. - -The following fields are available: - -- **claims** Any additional claims whose short claim name hasn't been added to this structure. -- **did** XBOX device ID -- **dty** XBOX device type -- **dvr** The version of the operating system on the device. -- **eid** A unique ID that represents the developer entity. -- **exp** Expiration time -- **ip** The IP address of the client device. -- **nbf** Not before time -- **pid** A comma separated list of PUIDs listed as base10 numbers. -- **sbx** XBOX sandbox identifier -- **sid** The service instance ID. -- **sty** The service type. -- **tid** The XBOX Live title ID. -- **tvr** The XBOX Live title version. -- **uts** A bit field, with 2 bits being assigned to each user ID listed in xid. This field is omitted if all users are retail accounts. -- **xid** A list of base10-encoded XBOX User IDs. - - -## Common data fields - -### Ms.Device.DeviceInventoryChange - -Describes the installation state for all hardware and software components available on a particular device. - -The following fields are available: - -- **action** The change that was invoked on a device inventory object. -- **inventoryId** Device ID used for Compatibility testing -- **objectInstanceId** Object identity which is unique within the device scope. -- **objectType** Indicates the object type that the event applies to. -- **syncId** A string used to group StartSync, EndSync, Add, and Remove operations that belong together. This field is unique by Sync period and is used to disambiguate in situations where multiple agents perform overlapping inventories for the same object. - - -## Compatibility events - -### Microsoft.Windows.Compatibility.Apphelp.SdbFix - -Product instrumentation for helping debug/troubleshoot issues with inbox compatibility components. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **AppName** Name of the application impacted by SDB. -- **FixID** SDB GUID. -- **Flags** List of flags applied. -- **ImageName** Name of file. - - -## Component-based Servicing events - -### CbsServicingProvider.CbsCapabilityEnumeration - -This event reports on the results of scanning for optional Windows content on Windows Update to keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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.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 canceled. - - -### CbsServicingProvider.CbsQualityUpdateInstall - -This event reports on the performance and reliability results of installing Servicing content from Windows Update to keep Windows up to date. - -The following fields are available: - -- **buildVersion** The build version number of the update package. -- **clientId** The name of the application requesting the optional content. -- **corruptionHistoryFlags** A bitmask of the types of component store corruption that have caused update failures on the device. -- **corruptionType** An enumeration listing the type of data corruption responsible for the current update failure. -- **currentStateEnd** The final state of the package after the operation has completed. -- **doqTimeSeconds** The time in seconds spent updating drivers. -- **executeTimeSeconds** The number of seconds required to execute the install. -- **failureDetails** The driver or installer that caused the update to fail. -- **failureSourceEnd** An enumeration indicating at what phase of the update a failure occurred. -- **hrStatusEnd** The return code of the install operation. -- **initiatedOffline** A true or false value indicating whether the package was installed into an offline Windows Imaging Format (WIM) file. -- **majorVersion** The major version number of the update package. -- **minorVersion** The minor version number of the update package. -- **originalState** The starting state of the package. -- **overallTimeSeconds** The time (in seconds) to perform the overall servicing operation. -- **PartA_PrivTags** The privacy tags associated with the event. -- **planTimeSeconds** The time in seconds required to plan the update operations. -- **poqTimeSeconds** The time in seconds processing file and registry operations. -- **postRebootTimeSeconds** The time (in seconds) to do startup processing for the update. -- **preRebootTimeSeconds** The time (in seconds) between execution of the installation and the reboot. -- **primitiveExecutionContext** An enumeration indicating at what phase of shutdown or startup the update was installed. -- **rebootCount** The number of reboots required to install the update. -- **rebootTimeSeconds** The time (in seconds) before startup processing begins for the update. -- **resolveTimeSeconds** The time in seconds required to resolve the packages that are part of the update. -- **revisionVersion** The revision version number of the update package. -- **rptTimeSeconds** The time in seconds spent executing installer plugins. -- **shutdownTimeSeconds** The time (in seconds) required to do shutdown processing for the update. -- **stackRevision** The revision number of the servicing stack. -- **stageTimeSeconds** The time (in seconds) required to stage all files that are part of the update. - - -### CbsServicingProvider.CbsSelectableUpdateChangeV2 - -This event reports the results of enabling or disabling optional Windows Content to keep Windows up to date. - -The following fields are available: - -- **applicableUpdateState** Indicates the highest applicable state of the optional content. -- **buildVersion** The build version of the package being installed. -- **clientId** The name of the application requesting the optional content change. -- **downloadSource** Indicates if optional content was obtained from Windows Update or a locally accessible file. -- **downloadtimeInSeconds** Indicates if optional content was obtained from Windows Update or a locally accessible file. -- **executionID** A unique ID used to identify events associated with a single servicing operation and not reused for future operations. -- **executionSequence** A counter that tracks the number of servicing operations attempted on the device. -- **firstMergedExecutionSequence** The value of a pervious executionSequence counter that is being merged with the current operation, if applicable. -- **firstMergedID** A unique ID of a pervious servicing operation that is being merged with this operation, if applicable. -- **hrDownloadResult** The return code of the download operation. -- **hrStatusUpdate** The return code of the servicing operation. -- **identityHash** A pseudonymized (hashed) identifier for the Windows Package that is being installed or uninstalled. -- **initiatedOffline** Indicates whether the operation was performed against an offline Windows image file or a running instance of Windows. -- **majorVersion** The major version of the package being installed. -- **minorVersion** The minor version of the package being installed. -- **packageArchitecture** The architecture of the package being installed. -- **packageLanguage** The language of the package being installed. -- **packageName** The name of the package being installed. -- **rebootRequired** Indicates whether a reboot is required to complete the operation. -- **revisionVersion** The revision number of the package being installed. -- **stackBuild** The build number of the servicing stack binary performing the installation. -- **stackMajorVersion** The major version number of the servicing stack binary performing the installation. -- **stackMinorVersion** The minor version number of the servicing stack binary performing the installation. -- **stackRevision** The revision number of the servicing stack binary performing the installation. -- **updateName** The name of the optional Windows Operation System feature being enabled or disabled. -- **updateStartState** A value indicating the state of the optional content before the operation started. -- **updateTargetState** A value indicating the desired state of the optional content. - - -## Deployment extensions - -### DeploymentTelemetry.Deployment_End - -This event indicates that a Deployment 360 API has completed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** Client ID of the user utilizing the D360 API. -- **ErrorCode** Error code of action. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **Mode** Phase in upgrade. -- **RelatedCV** The correction vector (CV) of any other related events -- **Result** End result of the action. - - -### DeploymentTelemetry.Deployment_Initialize - -This event indicates that the Deployment 360 APIs have been initialized for use. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** Client ID of user utilizing the D360 API. -- **ErrorCode** Error code of the action. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **RelatedCV** The correlation vector of any other related events. -- **Result** End result of the action. - - -### DeploymentTelemetry.Deployment_SetupBoxLaunch - -This event indicates that the Deployment 360 APIs have launched Setup Box. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** The client ID of the user utilizing the D360 API. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **Quiet** Whether Setup will run in quiet mode or full mode. -- **RelatedCV** The correlation vector (CV) of any other related events. -- **SetupMode** The current setup phase. - - -### DeploymentTelemetry.Deployment_SetupBoxResult - -This event indicates that the Deployment 360 APIs have received a return from Setup Box. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** Client ID of the user utilizing the D360 API. -- **ErrorCode** Error code of the action. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **Quiet** Indicates whether Setup will run in quiet mode or full mode. -- **RelatedCV** The correlation vector (CV) of any other related events. -- **SetupMode** The current Setup phase. - - -### DeploymentTelemetry.Deployment_Start - -This event indicates that a Deployment 360 API has been called. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** Client ID of the user utilizing the D360 API. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **Mode** The current phase of the upgrade. -- **RelatedCV** The correlation vector (CV) of any other related events. - - -## Diagnostic data events - -### TelClientSynthetic.AuthorizationInfo_RuntimeTransition - -This event is fired by UTC at state transitions to signal what data we are allowed to collect. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CanAddMsaToMsTelemetry** True if we can add MSA PUID and CID to telemetry, false otherwise. -- **CanCollectAnyTelemetry** True if we are allowed to collect partner telemetry, false otherwise. -- **CanCollectCoreTelemetry** True if we can collect CORE/Basic telemetry, false otherwise. -- **CanCollectHeartbeats** True if we can collect heartbeat telemetry, false otherwise. -- **CanCollectOsTelemetry** True if we can collect diagnostic data telemetry, false otherwise. -- **CanCollectWindowsAnalyticsEvents** True if we can collect Windows Analytics data, false otherwise. -- **CanPerformDiagnosticEscalations** True if we can perform diagnostic escalation collection, false otherwise. -- **CanPerformTraceEscalations** True if we can perform trace escalation collection, false otherwise. -- **CanReportScenarios** True if we can report scenario completions, false otherwise. -- **PreviousPermissions** Bitmask of previous telemetry state. -- **TransitionFromEverythingOff** True if we are transitioning from all telemetry being disabled, false otherwise. - - -### TelClientSynthetic.AuthorizationInfo_Startup - -This event is fired by UTC at startup to signal what data we are allowed to collect. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CanAddMsaToMsTelemetry** True if we can add MSA PUID and CID to telemetry, false otherwise. -- **CanCollectAnyTelemetry** True if we are allowed to collect partner telemetry, false otherwise. -- **CanCollectCoreTelemetry** True if we can collect CORE/Basic telemetry, false otherwise. -- **CanCollectHeartbeats** True if we can collect heartbeat telemetry, false otherwise. -- **CanCollectOsTelemetry** True if we can collect diagnostic data telemetry, false otherwise. -- **CanCollectWindowsAnalyticsEvents** True if we can collect Windows Analytics data, false otherwise. -- **CanPerformDiagnosticEscalations** True if we can perform diagnostic escalation collection, false otherwise. -- **CanPerformTraceEscalations** True if we can perform trace escalation collection, false otherwise. -- **CanReportScenarios** True if we can report scenario completions, false otherwise. -- **PreviousPermissions** Bitmask of previous telemetry state. -- **TransitionFromEverythingOff** True if we are transitioning from all telemetry being disabled, false otherwise. - - -### TelClientSynthetic.ConnectivityHeartBeat_0 - -This event sends data about the connectivity status of the Connected User Experience and Telemetry component that uploads telemetry events. If an unrestricted free network (such as Wi-Fi) is available, this event updates the last successful upload time. Otherwise, it checks whether a Connectivity Heartbeat event was fired in the past 24 hours, and if not, it sends an event. A Connectivity Heartbeat event is also sent when a device recovers from costed network to free network. This event is fired by UTC during periods of no network as a heartbeat signal, to keep Windows secure and up to date. - -The following fields are available: - -- **CensusExitCode** Last exit code of the Census task. -- **CensusStartTime** Time of last Census run. -- **CensusTaskEnabled** True if Census is enabled, false otherwise. -- **LastConnectivityLossTime** The FILETIME at which the last free network loss occurred. -- **NetworkState** The network state of the device. -- **NoNetworkTime** Retrieves the time spent with no network (since the last time) in seconds. -- **RestrictedNetworkTime** The total number of seconds with restricted network during this heartbeat period. - - -### TelClientSynthetic.HeartBeat_5 - -This event sends data about the health and quality of the diagnostic data from the given device, to help keep Windows up to date. It also enables data analysts to determine how 'trusted' the data is from a given device. - -The following fields are available: - -- **AgentConnectionErrorsCount** Number of non-timeout errors associated with the host/agent channel. -- **CensusExitCode** The last exit code of the Census task. -- **CensusStartTime** Time of last Census run. -- **CensusTaskEnabled** True if Census is enabled, false otherwise. -- **CompressedBytesUploaded** Number of compressed bytes uploaded. -- **ConsumerDroppedCount** Number of events dropped at consumer layer of telemetry client. -- **CriticalDataDbDroppedCount** Number of critical data sampled events dropped at the database layer. -- **CriticalDataThrottleDroppedCount** The number of critical data sampled events that were dropped because of throttling. -- **CriticalOverflowEntersCounter** Number of times critical overflow mode was entered in event DB. -- **DbCriticalDroppedCount** Total number of dropped critical events in event DB. -- **DbDroppedCount** Number of events dropped due to DB fullness. -- **DbDroppedFailureCount** Number of events dropped due to DB failures. -- **DbDroppedFullCount** Number of events dropped due to DB fullness. -- **DecodingDroppedCount** Number of events dropped due to decoding failures. -- **EnteringCriticalOverflowDroppedCounter** Number of events dropped due to critical overflow mode being initiated. -- **EtwDroppedBufferCount** Number of buffers dropped in the UTC ETW session. -- **EtwDroppedCount** Number of events dropped at ETW layer of telemetry client. -- **EventsPersistedCount** Number of events that reached the PersistEvent stage. -- **EventSubStoreResetCounter** Number of times event DB was reset. -- **EventSubStoreResetSizeSum** Total size of event DB across all resets reports in this instance. -- **EventsUploaded** Number of events uploaded. -- **Flags** Flags indicating device state such as network state, battery state, and opt-in state. -- **FullTriggerBufferDroppedCount** Number of events dropped due to trigger buffer being full. -- **HeartBeatSequenceNumber** The sequence number of this heartbeat. -- **InvalidHttpCodeCount** Number of invalid HTTP codes received from contacting Vortex. -- **LastAgentConnectionError** Last non-timeout error encountered in the host/agent channel. -- **LastEventSizeOffender** Event name of last event which exceeded max event size. -- **LastInvalidHttpCode** Last invalid HTTP code received from Vortex. -- **MaxActiveAgentConnectionCount** The maximum number of active agents during this heartbeat timeframe. -- **MaxInUseScenarioCounter** Soft maximum number of scenarios loaded by UTC. -- **PreviousHeartBeatTime** Time of last heartbeat event (allows chaining of events). -- **SettingsHttpAttempts** Number of attempts to contact OneSettings service. -- **SettingsHttpFailures** The number of failures from contacting the OneSettings service. -- **ThrottledDroppedCount** Number of events dropped due to throttling of noisy providers. -- **UploaderDroppedCount** Number of events dropped at the uploader layer of telemetry client. -- **VortexFailuresTimeout** The number of timeout failures received from Vortex. -- **VortexHttpAttempts** Number of attempts to contact Vortex. -- **VortexHttpFailures4xx** Number of 400-499 error codes received from Vortex. -- **VortexHttpFailures5xx** Number of 500-599 error codes received from Vortex. -- **VortexHttpResponseFailures** Number of Vortex responses that are not 2XX or 400. -- **VortexHttpResponsesWithDroppedEvents** Number of Vortex responses containing at least 1 dropped event. - - -### TelClientSynthetic.HeartBeat_Aria_5 - -This event is the telemetry client ARIA heartbeat. - -The following fields are available: - -- **CompressedBytesUploaded** Number of compressed bytes uploaded. -- **CriticalDataDbDroppedCount** Number of critical data sampled events dropped at the database layer. -- **CriticalOverflowEntersCounter** Number of times critical overflow mode was entered in event database. -- **DbCriticalDroppedCount** Total number of dropped critical events in event database. -- **DbDroppedCount** Number of events dropped at the database layer. -- **DbDroppedFailureCount** Number of events dropped due to database failures. -- **DbDroppedFullCount** Number of events dropped due to database being full. -- **EnteringCriticalOverflowDroppedCounter** Number of events dropped due to critical overflow mode being initiated. -- **EventsPersistedCount** Number of events that reached the PersistEvent stage. -- **EventSubStoreResetCounter** Number of times event database was reset. -- **EventSubStoreResetSizeSum** Total size of event database across all resets reports in this instance. -- **EventsUploaded** Number of events uploaded. -- **HeartBeatSequenceNumber** The sequence number of this heartbeat. -- **InvalidHttpCodeCount** Number of invalid HTTP codes received from contacting Vortex. -- **LastEventSizeOffender** Event name of last event which exceeded max event size. -- **LastInvalidHttpCode** Last invalid HTTP code received from Vortex. -- **PreviousHeartBeatTime** The FILETIME of the previous heartbeat fire. -- **SettingsHttpAttempts** Number of attempts to contact OneSettings service. -- **SettingsHttpFailures** Number of failures from contacting OneSettings service. -- **UploaderDroppedCount** Number of events dropped at the uploader layer of telemetry client. -- **VortexFailuresTimeout** Number of time out failures received from Vortex. -- **VortexHttpAttempts** Number of attempts to contact Vortex. -- **VortexHttpFailures4xx** Number of 400-499 error codes received from Vortex. -- **VortexHttpFailures5xx** Number of 500-599 error codes received from Vortex. -- **VortexHttpResponseFailures** Number of Vortex responses that are not 2XX or 400. -- **VortexHttpResponsesWithDroppedEvents** Number of Vortex responses containing at least 1 dropped event. - - -## Direct to update events - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorCheckApplicability - -This event indicates that the Coordinator CheckApplicability call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ApplicabilityResult** Result of CheckApplicability function. -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorCheckApplicabilityGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinators CheckApplicability call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorCleanupGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator Cleanup call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorCleanupSuccess - -This event indicates that the Coordinator Cleanup call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorCommitGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator Commit call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorCommitSuccess - -This event indicates that the Coordinator Commit call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorDownloadGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator Download call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorDownloadIgnoredFailure - -This event indicates that we have received an error in the Direct to Update (DTU) Coordinator Download call that will be ignored. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorDownloadSuccess - -This event indicates that the Coordinator Download call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorHandleShutdownGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator HandleShutdown call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinate version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorHandleShutdownSuccess - -This event indicates that the Coordinator HandleShutdown call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorInitializeGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator Initialize call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorInitializeSuccess - -This event indicates that the Coordinator Initialize call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorInstallGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator Install call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorInstallIgnoredFailure - -This event indicates that we have received an error in the Direct to Update (DTU) Coordinator Install call that will be ignored. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorInstallSuccess - -This event indicates that the Coordinator Install call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorProgressCallBack - -This event indicates that the Coordinator's progress callback has been called. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **DeployPhase** Current Deploy Phase. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorSetCommitReadyGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator SetCommitReady call. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorSetCommitReadySuccess - -This event indicates that the Coordinator SetCommitReady call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorWaitForRebootUiGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator WaitForRebootUi call. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorWaitForRebootUiNotShown - -This event indicates that the Coordinator WaitForRebootUi call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorWaitForRebootUiSelection - -This event indicates that the user selected an option on the Reboot UI. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **rebootUiSelection** Selection on the Reboot UI. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorWaitForRebootUiSuccess - -This event indicates that the Coordinator WaitForRebootUi call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCheckApplicabilityGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler CheckApplicability call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run -- **ClientID** Client ID being run -- **CoordinatorVersion** Coordinator version of DTU -- **CV** Correlation vector -- **CV_new** New correlation vector -- **hResult** HRESULT of the failure - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCheckApplicabilityInternalGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler CheckApplicabilityInternal call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCheckApplicabilityInternalSuccess - -This event indicates that the Handler CheckApplicabilityInternal call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ApplicabilityResult** The result of the applicability check. -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCheckApplicabilitySuccess - -This event indicates that the Handler CheckApplicability call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ApplicabilityResult** The result code indicating whether the update is applicable. -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **CV_new** New correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCheckIfCoordinatorMinApplicableVersionGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler CheckIfCoordinatorMinApplicableVersion call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run -- **ClientID** Client ID being run -- **CoordinatorVersion** Coordinator version of DTU -- **CV** Correlation vector -- **hResult** HRESULT of the failure - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCheckIfCoordinatorMinApplicableVersionSuccess - -This event indicates that the Handler CheckIfCoordinatorMinApplicableVersion call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **CheckIfCoordinatorMinApplicableVersionResult** Result of CheckIfCoordinatorMinApplicableVersion function. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCommitGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler Commit call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **CV_new** New correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCommitSuccess - -This event indicates that the Handler Commit call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **CV_new** New correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerDownloadAndExtractCabAlreadyDownloaded - -This event indicates that the Handler Download and Extract cab returned a value indicating that the cab has already been downloaded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run -- **ClientID** Client ID being run -- **CoordinatorVersion** Coordinator version of DTU -- **CV** Correlation vector - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerDownloadAndExtractCabFailure - -This event indicates that the Handler Download and Extract cab call failed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **DownloadAndExtractCabFunction_failureReason** Reason why the update download and extract process failed. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerDownloadAndExtractCabSuccess - -This event indicates that the Handler Download and Extract cab call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerDownloadGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler Download call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerDownloadSuccess - -This event indicates that the Handler Download call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerInitializeGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler Initialize call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **DownloadAndExtractCabFunction_hResult** HRESULT of the download and extract. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerInitializeSuccess - -This event indicates that the Handler Initialize call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **DownloadAndExtractCabFunction_hResult** HRESULT of the download and extraction. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerInstallGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler Install call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerInstallSuccess - -This event indicates that the Coordinator Install call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerSetCommitReadyGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler SetCommitReady call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run -- **ClientID** Client ID being run -- **CoordinatorVersion** Coordinator version of DTU -- **CV** Correlation vector -- **hResult** HRESULT of the failure - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerSetCommitReadySuccess - -This event indicates that the Handler SetCommitReady call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerWaitForRebootUiGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler WaitForRebootUi call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** The ID of the campaigning being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **hResult** The HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerWaitForRebootUiSuccess - -This event indicates that the Handler WaitForRebootUi call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **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. - - -### DxgKrnlTelemetry.GPUAdapterStop - -This event collects information about an adapter when it stops. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **AdapterLuid** Local Identifier for the adapter. -- **AdapterTypeValue** Numeric value indicating the type of the adapter. -- **DriverDate** Date of the driver. -- **DriverVersion** Version of the driver. -- **GPUDeviceID** Device identifier for the adapter. -- **GPUVendorID** Vendor identifier for the adapter. -- **InterfaceId** Identifier for the adapter. -- **IsDetachable** Boolean value indicating whether the adapter is removable or detachable. -- **IsDisplayDevice** Boolean value indicating whether the adapter has display capabilities. -- **IsHybridDiscrete** Boolean value indicating whether the adapter is a discrete adapter in a hybrid configuration. -- **IsHybridIntegrated** Boolean value indicating whether the adapter is an integrated adapter in a hybrid configuration. -- **IsRenderDevice** Boolean value indicating whether the adapter has rendering capabilities. -- **IsSoftwareDevice** Boolean value indicating whether the adapter is implemented in software. -- **IsSurpriseRemoved** Boolean value indicating whether the adapter was surprise removed. -- **SubSystemID** Subsystem identifier for the adapter. -- **SubVendorID** Sub-vendor identifier for the adapter. -- **version** Version of the schema for this event. -- **WDDMVersion** Display driver model version for the driver. - - -## Failover Clustering events - -### Microsoft.Windows.Server.FailoverClusteringCritical.ClusterSummary2 - -This event returns information about how many resources and of what type are in the server cluster. This data is collected to keep Windows Server safe, secure, and up to date. The data includes information about whether hardware is configured correctly, if the software is patched correctly, and assists in preventing crashes by attributing issues (like fatal errors) to workloads and system configurations. - -The following fields are available: - -- **autoAssignSite** The cluster parameter: auto site. -- **autoBalancerLevel** The cluster parameter: auto balancer level. -- **autoBalancerMode** The cluster parameter: auto balancer mode. -- **blockCacheSize** The configured size of the block cache. -- **ClusterAdConfiguration** The ad configuration of the cluster. -- **clusterAdType** The cluster parameter: mgmt_point_type. -- **clusterDumpPolicy** The cluster configured dump policy. -- **clusterFunctionalLevel** The current cluster functional level. -- **clusterGuid** The unique identifier for the cluster. -- **clusterWitnessType** The witness type the cluster is configured for. -- **countNodesInSite** The number of nodes in the cluster. -- **crossSiteDelay** The cluster parameter: CrossSiteDelay. -- **crossSiteThreshold** The cluster parameter: CrossSiteThreshold. -- **crossSubnetDelay** The cluster parameter: CrossSubnetDelay. -- **crossSubnetThreshold** The cluster parameter: CrossSubnetThreshold. -- **csvCompatibleFilters** The cluster parameter: ClusterCsvCompatibleFilters. -- **csvIncompatibleFilters** The cluster parameter: ClusterCsvIncompatibleFilters. -- **csvResourceCount** The number of resources in the cluster. -- **currentNodeSite** The name configured for the current site for the cluster. -- **dasModeBusType** The direct storage bus type of the storage spaces. -- **downLevelNodeCount** The number of nodes in the cluster that are running down-level. -- **drainOnShutdown** Specifies whether a node should be drained when it is shut down. -- **dynamicQuorumEnabled** Specifies whether dynamic Quorum has been enabled. -- **enforcedAntiAffinity** The cluster parameter: enforced anti affinity. -- **genAppNames** The win32 service name of a clustered service. -- **genSvcNames** The command line of a clustered genapp. -- **hangRecoveryAction** The cluster parameter: hang recovery action. -- **hangTimeOut** Specifies the “hang time out” parameter for the cluster. -- **isCalabria** Specifies whether storage spaces direct is enabled. -- **isMixedMode** Identifies if the cluster is running with different version of OS for nodes. -- **isRunningDownLevel** Identifies if the current node is running down-level. -- **logLevel** Specifies the granularity that is logged in the cluster log. -- **logSize** Specifies the size of the cluster log. -- **lowerQuorumPriorityNodeId** The cluster parameter: lower quorum priority node ID. -- **minNeverPreempt** The cluster parameter: minimum never preempt. -- **minPreemptor** The cluster parameter: minimum preemptor priority. -- **netftIpsecEnabled** The parameter: netftIpsecEnabled. -- **NodeCount** The number of nodes in the cluster. -- **nodeId** The current node number in the cluster. -- **nodeResourceCounts** Specifies the number of node resources. -- **nodeResourceOnlineCounts** Specifies the number of node resources that are online. -- **numberOfSites** The number of different sites. -- **numNodesInNoSite** The number of nodes not belonging to a site. -- **plumbAllCrossSubnetRoutes** The cluster parameter: plumb all cross subnet routes. -- **preferredSite** The preferred site location. -- **privateCloudWitness** Specifies whether a private cloud witness exists for this cluster. -- **quarantineDuration** The quarantine duration. -- **quarantineThreshold** The quarantine threshold. -- **quorumArbitrationTimeout** In the event of an arbitration event, this specifies the quorum timeout period. -- **resiliencyLevel** Specifies the level of resiliency. -- **resourceCounts** Specifies the number of resources. -- **resourceTypeCounts** Specifies the number of resource types in the cluster. -- **resourceTypes** Data representative of each resource type. -- **resourceTypesPath** Data representative of the DLL path for each resource type. -- **sameSubnetDelay** The cluster parameter: same subnet delay. -- **sameSubnetThreshold** The cluster parameter: same subnet threshold. -- **secondsInMixedMode** The amount of time (in seconds) that the cluster has been in mixed mode (nodes with different operating system versions in the same cluster). -- **securityLevel** The cluster parameter: security level. -- **securityLevelForStorage** The cluster parameter: security level for storage. -- **sharedVolumeBlockCacheSize** Specifies the block cache size shared volumes. -- **shutdownTimeoutMinutes** Specifies the amount of time it takes to time out when shutting down. -- **upNodeCount** Specifies the number of nodes that are up (online). -- **useClientAccessNetworksForCsv** The cluster parameter: use client access networks for CSV. -- **vmIsolationTime** The cluster parameter: VM isolation time. -- **witnessDatabaseWriteTimeout** Specifies the timeout period for writing to the quorum witness database. - - -## 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 - -This event sends diagnostic data about failures when uninstalling a feature update, to help resolve any issues preventing customers from reverting to a known state. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **failureReason** Provides data about the uninstall initialization operation failure. -- **hr** Provides the Win32 error code for the operation failure. - - -### Microsoft.Windows.Upgrade.Uninstall.UninstallFinalizedAndRebootTriggered - -This event indicates that the uninstall was properly configured and that a system reboot was initiated. The data collected with this event is used to help keep Windows up to date and performing properly. - - - -### Microsoft.Windows.Upgrade.Uninstall.UninstallGoBackButtonClicked - -This event sends basic metadata about the starting point of uninstalling a feature update, which helps ensure customers can safely revert to a well-known state if the update caused any problems. - - - -## 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 - -This event captures basic checksum data about the device inventory items stored in the cache for use in validating data completeness for Microsoft.Windows.Inventory.Core events. The fields in this event may change over time, but they will always represent a count of a given object. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **DeviceCensus** A count of device census objects in cache. -- **DriverPackageExtended** A count of driverpackageextended objects in cache. -- **FileSigningInfo** A count of file signing objects in cache. -- **InventoryApplication** A count of application objects in cache. -- **InventoryApplicationAppV** A count of application AppV objects in cache. -- **InventoryApplicationDriver** A count of application driver objects in cache. -- **InventoryApplicationFile** A count of application file objects in cache. -- **InventoryApplicationFramework** A count of application framework objects in cache. -- **InventoryApplicationShortcut** A count of application shortcut objects in cache. -- **InventoryDeviceContainer** A count of device container objects in cache. -- **InventoryDeviceInterface** A count of Plug and Play device interface objects in cache. -- **InventoryDeviceMediaClass** A count of device media objects in cache. -- **InventoryDevicePnp** A count of device Plug and Play objects in cache. -- **InventoryDeviceUsbHubClass** A count of device USB objects in cache -- **InventoryDriverBinary** A count of driver binary objects in cache. -- **InventoryDriverPackage** A count of device objects in cache. -- **InventoryMiscellaneousOfficeAddIn** A count of office add-in objects in cache. -- **InventoryMiscellaneousOfficeAddInUsage** A count of office add-in usage objects in cache. -- **InventoryMiscellaneousOfficeIdentifiers** A count of office identifier objects in cache. -- **InventoryMiscellaneousOfficeIESettings** A count of office IE settings objects in cache. -- **InventoryMiscellaneousOfficeInsights** A count of office insights objects in cache. -- **InventoryMiscellaneousOfficeProducts** A count of office products objects in cache. -- **InventoryMiscellaneousOfficeSettings** A count of office settings objects in cache. -- **InventoryMiscellaneousOfficeVBA** A count of office VBA objects in cache. -- **InventoryMiscellaneousOfficeVBARuleViolations** A count of office VBA rule violations objects in cache. -- **InventoryMiscellaneousUUPInfo** A count of UUP info objects in cache. - - -### Microsoft.Windows.Inventory.Core.AmiTelCacheVersions - -This event sends inventory component versions for the Device Inventory data. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **aeinv** The version of the App inventory component. -- **devinv** The file version of the Device inventory component. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationAdd - -This event sends basic metadata about an application on the system. The data collected with this event is used to keep Windows performing properly and up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **HiddenArp** Indicates whether a program hides itself from showing up in ARP. -- **InstallDate** The date the application was installed (a best guess based on folder creation date heuristics). -- **InstallDateArpLastModified** The date of the registry ARP key for a given application. Hints at install date but not always accurate. Passed as an array. Example: 4/11/2015 00:00:00 -- **InstallDateFromLinkFile** The estimated date of install based on the links to the files. Passed as an array. -- **InstallDateMsi** The install date if the application was installed via Microsoft Installer (MSI). Passed as an array. -- **InventoryVersion** The version of the inventory file generating the events. -- **Language** The language code of the program. -- **MsiPackageCode** A GUID that describes the MSI Package. Multiple 'Products' (apps) can make up an MsiPackage. -- **MsiProductCode** A GUID that describe the MSI Product. -- **Name** The name of the application. -- **OSVersionAtInstallTime** The four octets from the OS version at the time of the application's install. -- **PackageFullName** The package full name for a Store application. -- **ProgramInstanceId** A hash of the file IDs in an app. -- **Publisher** The Publisher of the application. Location pulled from depends on the 'Source' field. -- **RootDirPath** The path to the root directory where the program was installed. -- **Source** How the program was installed (for example, ARP, MSI, Appx). -- **StoreAppType** A sub-classification for the type of Microsoft Store app, such as UWP or Win8StoreApp. -- **Type** One of ("Application", "Hotfix", "BOE", "Service", "Unknown"). Application indicates Win32 or Appx app, Hotfix indicates app updates (KBs), BOE indicates it's an app with no ARP or MSI entry, Service indicates that it is a service. Application and BOE are the ones most likely seen. -- **Version** The version number of the program. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationDriverAdd - -This event represents what drivers an application installs. The data collected with this event is used to keep Windows performing properly. - -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.InventoryApplicationDriverStartSync - -The InventoryApplicationDriverStartSync event indicates that a new set of InventoryApplicationDriverStartAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **InventoryVersion** The version of the inventory component. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationFrameworkAdd - -This event provides the basic metadata about the frameworks an application may depend on. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **FileId** A hash that uniquely identifies a file. -- **Frameworks** The list of frameworks this file depends on. -- **InventoryVersion** The version of the inventory file generating the events. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationFrameworkStartSync - -This event indicates that a new set of InventoryApplicationFrameworkAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryApplicationRemove - -This event indicates that a new set of InventoryDevicePnpAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryApplicationStartSync - -This event indicates that a new set of InventoryApplicationAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceContainerAdd - -This event sends basic metadata about a device container (such as a monitor or printer as opposed to a Plug and Play device). The data collected with this event is used to help keep Windows up to date and to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Categories** A comma separated list of functional categories in which the container belongs. -- **DiscoveryMethod** The discovery method for the device container. -- **FriendlyName** The name of the device container. -- **InventoryVersion** The version of the inventory file generating the events. -- **IsActive** Is the device connected, or has it been seen in the last 14 days? -- **IsConnected** For a physically attached device, this value is the same as IsPresent. For wireless a device, this value represents a communication link. -- **IsMachineContainer** Is the container the root device itself? -- **IsNetworked** Is this a networked device? -- **IsPaired** Does the device container require pairing? -- **Manufacturer** The manufacturer name for the device container. -- **ModelId** A unique model ID. -- **ModelName** The model name. -- **ModelNumber** The model number for the device container. -- **PrimaryCategory** The primary category for the device container. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceContainerRemove - -This event indicates that the InventoryDeviceContainer object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceContainerStartSync - -This event indicates that a new set of InventoryDeviceContainerAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceInterfaceAdd - -This event retrieves information about what sensor interfaces are available on the device. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Accelerometer3D** Indicates if an Accelerator3D sensor is found. -- **ActivityDetection** Indicates if an Activity Detection sensor is found. -- **AmbientLight** Indicates if an Ambient Light sensor is found. -- **Barometer** Indicates if a Barometer sensor is found. -- **Custom** Indicates if a Custom sensor is found. -- **EnergyMeter** Indicates if an Energy sensor is found. -- **FloorElevation** Indicates if a Floor Elevation sensor is found. -- **GeomagneticOrientation** Indicates if a Geo Magnetic Orientation sensor is found. -- **GravityVector** Indicates if a Gravity Detector sensor is found. -- **Gyrometer3D** Indicates if a Gyrometer3D sensor is found. -- **Humidity** Indicates if a Humidity sensor is found. -- **InventoryVersion** The version of the inventory file generating the events. -- **LinearAccelerometer** Indicates if a Linear Accelerometer sensor is found. -- **Magnetometer3D** Indicates if a Magnetometer3D sensor is found. -- **Orientation** Indicates if an Orientation sensor is found. -- **Pedometer** Indicates if a Pedometer sensor is found. -- **Proximity** Indicates if a Proximity sensor is found. -- **RelativeOrientation** Indicates if a Relative Orientation sensor is found. -- **SimpleDeviceOrientation** Indicates if a Simple Device Orientation sensor is found. -- **Temperature** Indicates if a Temperature sensor is found. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceInterfaceStartSync - -This event indicates that a new set of InventoryDeviceInterfaceAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceMediaClassAdd - -This event sends additional metadata about a Plug and Play device that is specific to a particular class of devices. The data collected with this event is used to help keep Windows up to date and performing properly while reducing overall size of data payload. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Audio_CaptureDriver** The Audio device capture driver endpoint. -- **Audio_RenderDriver** The Audio device render driver endpoint. -- **InventoryVersion** The version of the inventory file generating the events. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceMediaClassRemove - -This event indicates that the InventoryDeviceMediaClass object represented by the objectInstanceId is no longer present. This event is used to understand a PNP device that is specific to a particular class of devices. The data collected with this event is used to help keep Windows up to date and performing properly while reducing overall size of data payload. - -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. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDevicePnpAdd - -This event sends basic metadata about a PNP device and its associated driver to help keep Windows up to date. This information is used to assess if the PNP device and driver will remain compatible when upgrading Windows. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **BusReportedDescription** The description of the device reported by the bus. -- **Class** The device setup class of the driver loaded for the device. -- **ClassGuid** The device class unique identifier of the driver package loaded on the device. -- **COMPID** The list of “Compatible IDs” for this device. -- **ContainerId** The system-supplied unique identifier that specifies which group(s) the device(s) installed on the parent (main) device belong to. -- **Description** The description of the device. -- **DeviceState** Identifies the current state of the parent (main) device. -- **DriverId** The unique identifier for the installed driver. -- **DriverName** The name of the driver image file. -- **DriverPackageStrongName** The immediate parent directory name in the Directory field of InventoryDriverPackage. -- **DriverVerDate** The date associated with the driver loaded on the device. -- **DriverVerVersion** The immediate parent directory name in the Directory field of InventoryDriverPackage. -- **Enumerator** Identifies the bus that enumerated the device. -- **HWID** A list of hardware IDs for the device. -- **Inf** The name of the INF file (possibly renamed by the OS, such as oemXX.inf). -- **InstallState** The device installation state. For a list of values, see: [Device Install State](/windows-hardware/drivers/ddi/wdm/ne-wdm-_device_install_state) -- **InventoryVersion** The version number of the inventory process generating the events. -- **LowerClassFilters** The identifiers of the Lower Class filters installed for the device. -- **LowerFilters** The identifiers of the Lower filters installed for the device. -- **Manufacturer** The manufacturer of the device. -- **MatchingID** The Hardware ID or Compatible ID that Windows uses to install a device instance. -- **Model** Identifies the model of the device. -- **ParentId** The Device Instance ID of the parent of the device. -- **ProblemCode** The error code currently returned by the device, if applicable. -- **Provider** Identifies the device provider. -- **Service** The name of the device service. -- **STACKID** The list of hardware IDs for the stack. -- **UpperClassFilters** The identifiers of the Upper Class filters installed for the device. -- **UpperFilters** The identifiers of the Upper filters installed for the device. - - -### Microsoft.Windows.Inventory.Core.InventoryDevicePnpRemove - -This event indicates that the InventoryDevicePnpRemove object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDevicePnpStartSync - -This event indicates that a new set of InventoryDevicePnpAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceUsbHubClassAdd - -This event sends basic metadata about the USB hubs on the device. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **InventoryVersion** The version of the inventory file generating the events. -- **TotalUserConnectablePorts** Total number of connectable USB ports. -- **TotalUserConnectableTypeCPorts** Total number of connectable USB Type C ports. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceUsbHubClassStartSync - -This event indicates that a new set of InventoryDeviceUsbHubClassAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverBinaryAdd - -This event sends basic metadata about driver binaries running on the system. The data collected with this event is used to help keep Windows up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **DriverCheckSum** The checksum of the driver file. -- **DriverCompany** The company name that developed the driver. -- **DriverInBox** Is the driver included with the operating system? -- **DriverIsKernelMode** Is it a kernel mode driver? -- **DriverName** The file name of the driver. -- **DriverPackageStrongName** The strong name of the driver package -- **DriverSigned** Is the driver signed? -- **DriverTimeStamp** The low 32 bits of the time stamp of the driver file. -- **DriverType** A bitfield of driver attributes: 1. define DRIVER_MAP_DRIVER_TYPE_PRINTER 0x0001. 2. define DRIVER_MAP_DRIVER_TYPE_KERNEL 0x0002. 3. define DRIVER_MAP_DRIVER_TYPE_USER 0x0004. 4. define DRIVER_MAP_DRIVER_IS_SIGNED 0x0008. 5. define DRIVER_MAP_DRIVER_IS_INBOX 0x0010. 6. define DRIVER_MAP_DRIVER_IS_WINQUAL 0x0040. 7. define DRIVER_MAP_DRIVER_IS_SELF_SIGNED 0x0020. 8. define DRIVER_MAP_DRIVER_IS_CI_SIGNED 0x0080. 9. define DRIVER_MAP_DRIVER_HAS_BOOT_SERVICE 0x0100. 10. define DRIVER_MAP_DRIVER_TYPE_I386 0x10000. 11. define DRIVER_MAP_DRIVER_TYPE_IA64 0x20000. 12. define DRIVER_MAP_DRIVER_TYPE_AMD64 0x40000. 13. define DRIVER_MAP_DRIVER_TYPE_ARM 0x100000. 14. define DRIVER_MAP_DRIVER_TYPE_THUMB 0x200000. 15. define DRIVER_MAP_DRIVER_TYPE_ARMNT 0x400000. 16. define DRIVER_MAP_DRIVER_IS_TIME_STAMPED 0x800000. -- **DriverVersion** The version of the driver file. -- **ImageSize** The size of the driver file. -- **Inf** The name of the INF file. -- **InventoryVersion** The version of the inventory file generating the events. -- **Product** The product name that is included in the driver file. -- **ProductVersion** The product version that is included in the driver file. -- **Service** The name of the service that is installed for the device. -- **WdfVersion** The Windows Driver Framework version. - - -### Microsoft.Windows.Inventory.Core.InventoryDriverBinaryRemove - -This event indicates that the InventoryDriverBinary object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverBinaryStartSync - -This event indicates that a new set of InventoryDriverBinaryAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverPackageAdd - -This event sends basic metadata about drive packages installed on the system. The data collected with this event is used to help keep Windows up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Class** The class name for the device driver. -- **ClassGuid** The class GUID for the device driver. -- **Date** The driver package date. -- **Directory** The path to the driver package. -- **DriverInBox** Is the driver included with the operating system? -- **Inf** The INF name of the driver package. -- **InventoryVersion** The version of the inventory file generating the events. -- **Provider** The provider for the driver package. -- **SubmissionId** The HLK submission ID for the driver package. -- **Version** The version of the driver package. - - -### Microsoft.Windows.Inventory.Core.InventoryDriverPackageRemove - -This event indicates that the InventoryDriverPackageRemove object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverPackageStartSync - -This event indicates that a new set of InventoryDriverPackageAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.General. InventoryMiscellaneousMemorySlotArrayInfoRemove - -This event indicates that this particular data object represented by the ObjectInstanceId is no longer present. The data collected with this event is used to help keep Windows up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.General.AppHealthStaticAdd - -This event sends details collected for a specific application on the source device. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **AhaVersion** The binary version of the App Health Analyzer tool. -- **ApplicationErrors** The count of application errors from the event log. -- **Bitness** The architecture type of the application (16 Bit or 32 bit or 64 bit). -- **device_level** Various JRE/JAVA versions installed on a particular device. -- **ExtendedProperties** Attribute used for aggregating all other attributes under this event type. -- **Jar** Flag to determine if an app has a Java JAR file dependency. -- **Jre** Flag to determine if an app has JRE framework dependency. -- **Jre_version** JRE versions an app has declared framework dependency for. -- **Name** Name of the application. -- **NonDPIAware** Flag to determine if an app is non-DPI aware -- **NumBinaries** Count of all binaries (.sys,.dll,.ini) from application install location. -- **ProgramId** The ID of the associated program. -- **RequiresAdmin** Flag to determine if an app requests admin privileges for execution. -- **RequiresAdminv2** Additional flag to determine if an app requests admin privileges for execution. -- **RequiresUIAccess** Flag to determine if an app is based on UI features for accessibility. -- **VB6** Flag to determine if an app is based on VB6 framework. -- **VB6v2** Additional flag to determine if an app is based on VB6 framework. -- **Version** Version of the application. -- **VersionCheck** Flag to determine if an app has a static dependency on OS version. -- **VersionCheckv2** Additional flag to determine if an app has a static dependency on OS version. - - -### Microsoft.Windows.Inventory.General.AppHealthStaticStartSync - -This event indicates the beginning of a series of AppHealthStaticAdd events. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **AllowTelemetry** Indicates the presence of the 'allowtelemetry' command line argument. -- **CommandLineArgs** Command line arguments passed when launching the App Health Analyzer executable. -- **Enhanced** Indicates the presence of the 'enhanced' command line argument. -- **StartTime** UTC date and time at which this event was sent. - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousMemorySlotArrayInfoAdd - -This event provides basic information about active memory slots on the device. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Capacity** Memory size in bytes -- **Manufacturer** Name of the DRAM manufacturer -- **Model** Model and sub-model of the memory -- **Slot** Slot to which the DRAM is plugged into the motherboard. -- **Speed** The configured memory slot speed in MHz. -- **Type** Reports DDR as an enumeration value as per the DMTF SMBIOS standard version 3.3.0, section 7.18.2. -- **TypeDetails** Reports Non-volatile as a bit flag enumeration as per the DMTF SMBIOS standard version 3.3.0, section 7.18.3. - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousMemorySlotArrayInfoStartSync - -This diagnostic event indicates a new sync is being generated for this object type. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoAdd - -This event provides data on Unified Update Platform (UUP) products and what version they are at. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Identifier** UUP identifier -- **LastActivatedVersion** Last activated version -- **PreviousVersion** Previous version -- **Source** UUP source -- **Version** UUP version - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoRemove - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoStartSync - -This is a diagnostic event that indicates a new sync is being generated for this object type. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.Indicators.Checksum - -This event summarizes the counts for the InventoryMiscellaneousUexIndicatorAdd events. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **ChecksumDictionary** A count of each operating system indicator. -- **PCFP** Equivalent to the InventoryId field that is found in other core events. - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorAdd - -This event represents the basic metadata about the OS indicators installed on the system. The data collected with this event helps ensure the device is up to date and keeps Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **IndicatorValue** The indicator value. - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorRemove - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. This event is used to understand the OS indicators installed on the system. The data collected with this event helps ensure the device is current and Windows is up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorStartSync - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. This event is used to understand the OS indicators installed on the system. The data collected with this event helps ensure the device is current and Windows is up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -## Kernel events - -### IO - -This event indicates the number of bytes read from or read by the OS and written to or written by the OS upon system startup. - -The following fields are available: - -- **BytesRead** The total number of bytes read from or read by the OS upon system startup. -- **BytesWritten** The total number of bytes written to or written by the OS upon system startup. - - -### Microsoft.Windows.Kernel.BootEnvironment.OsLaunch - -This event includes basic data about the Operating System, collected during Boot and used to evaluate the success of the upgrade process. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **BootApplicationId** This field tells us what the OS Loader Application Identifier is. -- **BootAttemptCount** The number of consecutive times the boot manager has attempted to boot into this operating system. -- **BootSequence** The current Boot ID, used to correlate events related to a particular boot session. -- **BootStatusPolicy** Identifies the applicable Boot Status Policy. -- **BootType** Identifies the type of boot (e.g.: "Cold", "Hiber", "Resume"). -- **EventTimestamp** Seconds elapsed since an arbitrary time point. This can be used to identify the time difference in successive boot attempts being made. -- **FirmwareResetReasonEmbeddedController** Reason for system reset provided by firmware. -- **FirmwareResetReasonEmbeddedControllerAdditional** Additional information on system reset reason provided by firmware if needed. -- **FirmwareResetReasonPch** Reason for system reset provided by firmware. -- **FirmwareResetReasonPchAdditional** Additional information on system reset reason provided by firmware if needed. -- **FirmwareResetReasonSupplied** Flag indicating that a reason for system reset was provided by firmware. -- **IO** Amount of data written to and read from the disk by the OS Loader during boot. See [IO](#io). -- **LastBootSucceeded** Flag indicating whether the last boot was successful. -- **LastShutdownSucceeded** Flag indicating whether the last shutdown was successful. -- **MaxAbove4GbFreeRange** This field describes the largest memory range available above 4Gb. -- **MaxBelow4GbFreeRange** This field describes the largest memory range available below 4Gb. -- **MeasuredLaunchPrepared** This field tells us if the OS launch was initiated using Measured/Secure Boot over DRTM (Dynamic Root of Trust for Measurement). -- **MenuPolicy** Type of advanced options menu that should be shown to the user (Legacy, Standard, etc.). -- **RecoveryEnabled** Indicates whether recovery is enabled. -- **SecureLaunchPrepared** This field indicates if DRTM was prepared during boot. -- **UserInputTime** The amount of time the loader application spent waiting for user input. - - -### Microsoft.Windows.Kernel.Power.OSStateChange - -This event indicates an OS state change. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **AcPowerOnline** If "TRUE," the device is using AC power. If "FALSE," the device is using battery power. -- **ActualTransitions** The number of transitions between operating system states since the last system boot -- **BatteryCapacity** Maximum battery capacity in mWh -- **BatteryCharge** Current battery charge as a percentage of total capacity -- **BatteryDischarging** Flag indicating whether the battery is discharging or charging -- **BootId** Total boot count since the operating system was installed -- **BootTimeUTC** Date and time of a particular boot event (identified by BootId) -- **EnergyChangeV2** A snapshot value in mWh reflecting a change in power usage -- **EnergyChangeV2Flags** Flags for disambiguating EnergyChangeV2 context -- **EventSequence** Indicates the sequence order for this event instance, relative to previous instances of OSStateChange events that have occurred since boot -- **LastStateTransition** ID of the last operating system state transition -- **LastStateTransitionSub** ID of the last operating system sub-state transition -- **StateDurationMS** Number of milliseconds spent in the last operating system state -- **StateTransition** ID of the operating system state the system is transitioning to -- **StateTransitionSub** ID of the operating system sub-state the system is transitioning to -- **TotalDurationMS** Total time (in milliseconds) spent in all states since the last boot -- **TotalUptimeMS** Total time (in milliseconds) the device was in Up or Running states since the last boot -- **TransitionsToOn** Number of transitions to the Powered On state since the last boot -- **UptimeDeltaMS** Total time (in milliseconds) added to Uptime since the last event - - -## Microsoft Edge events - -### Aria.160f0649efde47b7832f05ed000fc453.Microsoft.WebBrowser.SystemInfo.Config - -This config event sends basic device connectivity and configuration information from Microsoft Edge about the current data collection consent, app version, and installation state to keep Microsoft Edge up to date and secure. - -The following fields are available: - -- **app_version** The internal Edge build version string, taken from the UMA metrics field system_profile.app_version. -- **appConsentState** Bit flags describing consent for data collection on the machine or zero if the state was not retrieved. The following are true when the associated bit is set: consent was granted (0x1), consent was communicated at install (0x2), diagnostic data consent granted (0x20000), browsing data consent granted (0x40000). -- **Channel** An integer indicating the channel of the installation (Canary or Dev). -- **client_id** A unique identifier with which all other diagnostic client data is associated, taken from the UMA metrics provider. This ID is effectively unique per device, per OS user profile, per release channel (e.g. Canary/Dev/Beta/Stable). client_id is not durable, based on user preferences. client_id is initialized on the first application launch under each OS user profile. client_id is linkable, but not unique across devices or OS user profiles. client_id is reset whenever UMA data collection is disabled, or when the application is uninstalled. -- **ConnectionType** The first reported type of network connection currently connected. This can be one of Unknown, Ethernet, WiFi, 2G, 3G, 4G, None, or Bluetooth. -- **container_client_id** The client ID of the container, if in WDAG mode. This will be different from the UMA log client ID, which is the client ID of the host in WDAG mode. -- **container_session_id** The session ID of the container, if in WDAG mode. This will be different from the UMA log session ID, which is the session ID of the host in WDAG mode. -- **Etag** Etag is an identifier representing all service applied configurations and experiments for the current browser session. This field is left empty when Windows diagnostic level is set to Basic or lower or when consent for diagnostic data has been denied. -- **EventInfo.Level** The minimum Windows diagnostic data level required for the event, where 1 is basic, 2 is enhanced, and 3 is full. -- **install_date** The date and time of the most recent installation in seconds since midnight on January 1, 1970 UTC, rounded down to the nearest hour. -- **installSource** An enumeration representing the source of this installation: source was not retrieved (0), unspecified source (1), website installer (2), enterprise MSI (3), Windows update (4), Edge updater (5), scheduled or timed task (6, 7), uninstall (8), Edge about page (9), self-repair (10), other install command line (11), reserved (12), unknown source (13). -- **PayloadClass** The base class used to serialize and deserialize the Protobuf binary payload. -- **PayloadGUID** A random identifier generated for each original monolithic Protobuf payload, before the payload is potentially broken up into manageably-sized chunks for transmission. -- **PayloadLogType** The log type for the event correlating with 0 for unknown, 1 for stability, 2 for on-going, 3 for independent, 4 for UKM, or 5 for instance level. -- **session_id** An identifier that is incremented each time the user launches the application, irrespective of any client_id changes. session_id is seeded during the initial installation of the application. session_id is effectively unique per client_id value. Several other internal identifier values, such as window or tab IDs, are only meaningful within a particular session. The session_id value is forgotten when the application is uninstalled, but not during an upgrade. - - -### Aria.29e24d069f27450385c7acaa2f07e277.Microsoft.WebBrowser.SystemInfo.Config - -This config event sends basic device connectivity and configuration information from Microsoft Edge about the current data collection consent, app version, and installation state to keep Microsoft Edge up to date and secure. - -The following fields are available: - -- **app_version** The internal Edge build version string, taken from the UMA metrics field system_profile.app_version. -- **appConsentState** Bit flags describing consent for data collection on the machine or zero if the state was not retrieved. The following are true when the associated bit is set: consent was granted (0x1), consent was communicated at install (0x2), diagnostic data consent granted (0x20000), browsing data consent granted (0x40000). -- **Channel** An integer indicating the channel of the installation (Canary or Dev). -- **client_id** A unique identifier with which all other diagnostic client data is associated, taken from the UMA metrics provider. This ID is effectively unique per device, per OS user profile, per release channel (e.g. Canary/Dev/Beta/Stable). client_id is not durable, based on user preferences. client_id is initialized on the first application launch under each OS user profile. client_id is linkable, but not unique across devices or OS user profiles. client_id is reset whenever UMA data collection is disabled, or when the application is uninstalled. -- **ConnectionType** The first reported type of network connection currently connected. This can be one of Unknown, Ethernet, WiFi, 2G, 3G, 4G, None, or Bluetooth. -- **container_client_id** The client ID of the container, if in WDAG mode. This will be different from the UMA log client ID, which is the client ID of the host in WDAG mode. -- **container_session_id** The session ID of the container, if in WDAG mode. This will be different from the UMA log session ID, which is the session ID of the host in WDAG mode. -- **Etag** Etag is an identifier representing all service applied configurations and experiments for the current browser session. This field is left empty when Windows diagnostic level is set to Basic or lower or when consent for diagnostic data has been denied. -- **EventInfo.Level** The minimum Windows diagnostic data level required for the event where 1 is basic, 2 is enhanced, and 3 is full. -- **install_date** The date and time of the most recent installation in seconds since midnight on January 1, 1970 UTC, rounded down to the nearest hour. -- **installSource** An enumeration representing the source of this installation: source was not retrieved (0), unspecified source (1), website installer (2), enterprise MSI (3), Windows update (4), Edge updater (5), scheduled or timed task (6, 7), uninstall (8), Edge about page (9), self-repair (10), other install command line (11), reserved (12), unknown source (13). -- **PayloadClass** The base class used to serialize and deserialize the Protobuf binary payload. -- **PayloadGUID** A random identifier generated for each original monolithic Protobuf payload, before the payload is potentially broken up into manageably-sized chunks for transmission. -- **PayloadLogType** The log type for the event correlating with 0 for unknown, 1 for stability, 2 for on-going, 3 for independent, 4 for UKM, or 5 for instance level. -- **session_id** An identifier that is incremented each time the user launches the application, irrespective of any client_id changes. session_id is seeded during the initial installation of the application. session_id is effectively unique per client_id value. Several other internal identifier values, such as window or tab IDs, are only meaningful within a particular session. The session_id value is forgotten when the application is uninstalled, but not during an upgrade. - - -### Aria.7005b72804a64fa4b2138faab88f877b.Microsoft.WebBrowser.SystemInfo.Config - -This config event sends basic device connectivity and configuration information from Microsoft Edge about the current data collection consent, app version, and installation state to keep Microsoft Edge up to date and secure. - -The following fields are available: - -- **app_version** The internal Edge build version string, taken from the UMA metrics field system_profile.app_version. -- **appConsentState** Bit flags describing consent for data collection on the machine or zero if the state was not retrieved. The following are true when the associated bit is set: consent was granted (0x1), consent was communicated at install (0x2), diagnostic data consent granted (0x20000), browsing data consent granted (0x40000). -- **Channel** An integer indicating the channel of the installation (Canary or Dev). -- **client_id** A unique identifier with which all other diagnostic client data is associated, taken from the UMA metrics provider. This ID is effectively unique per device, per OS user profile, per release channel (e.g. Canary/Dev/Beta/Stable). client_id is not durable, based on user preferences. client_id is initialized on the first application launch under each OS user profile. client_id is linkable, but not unique across devices or OS user profiles. client_id is reset whenever UMA data collection is disabled, or when the application is uninstalled. -- **ConnectionType** The first reported type of network connection currently connected. This can be one of Unknown, Ethernet, WiFi, 2G, 3G, 4G, None, or Bluetooth. -- **container_client_id** The client ID of the container, if in WDAG mode. This will be different from the UMA log client ID, which is the client ID of the host in WDAG mode. -- **container_session_id** The session ID of the container, if in WDAG mode. This will be different from the UMA log session ID, which is the session ID of the host in WDAG mode. -- **Etag** Etag is an identifier representing all service applied configurations and experiments for the current browser session. This field is left empty when Windows diagnostic level is set to Basic or lower or when consent for diagnostic data has been denied. -- **EventInfo.Level** The minimum Windows diagnostic data level required for the event where 1 is basic, 2 is enhanced, and 3 is full. -- **install_date** The date and time of the most recent installation in seconds since midnight on January 1, 1970 UTC, rounded down to the nearest hour. -- **installSource** An enumeration representing the source of this installation: source was not retrieved (0), unspecified source (1), website installer (2), enterprise MSI (3), Windows update (4), Edge updater (5), scheduled or timed task (6, 7), uninstall (8), Edge about page (9), self-repair (10), other install command line (11), reserved (12), unknown source (13). -- **PayloadClass** The base class used to serialize and deserialize the Protobuf binary payload. -- **PayloadGUID** A random identifier generated for each original monolithic Protobuf payload, before the payload is potentially broken up into manageably-sized chunks for transmission. -- **PayloadLogType** The log type for the event correlating with 0 for unknown, 1 for stability, 2 for on-going, 3 for independent, 4 for UKM, or 5 for instance level. -- **session_id** An identifier that is incremented each time the user launches the application, irrespective of any client_id changes. session_id is seeded during the initial installation of the application. session_id is effectively unique per client_id value. Several other internal identifier values, such as window or tab IDs, are only meaningful within a particular session. The session_id value is forgotten when the application is uninstalled, but not during an upgrade. - - -### Aria.754de735ccd546b28d0bfca8ac52c3de.Microsoft.WebBrowser.SystemInfo.Config - -This config event sends basic device connectivity and configuration information from Microsoft Edge about the current data collection consent, app version, and installation state to keep Microsoft Edge up to date and secure. - -The following fields are available: - -- **app_version** The internal Edge build version string, taken from the UMA metrics field system_profile.app_version. -- **appConsentState** Bit flags describing consent for data collection on the machine or zero if the state was not retrieved. The following are true when the associated bit is set: consent was granted (0x1), consent was communicated at install (0x2), diagnostic data consent granted (0x20000), browsing data consent granted (0x40000). -- **Channel** An integer indicating the channel of the installation (Canary or Dev). -- **client_id** A unique identifier with which all other diagnostic client data is associated, taken from the UMA metrics provider. This ID is effectively unique per device, per OS user profile, per release channel (e.g. Canary/Dev/Beta/Stable). client_id is not durable, based on user preferences. client_id is initialized on the first application launch under each OS user profile. client_id is linkable, but not unique across devices or OS user profiles. client_id is reset whenever UMA data collection is disabled, or when the application is uninstalled. -- **ConnectionType** The first reported type of network connection currently connected. This can be one of Unknown, Ethernet, WiFi, 2G, 3G, 4G, None, or Bluetooth. -- **container_client_id** The client ID of the container, if in WDAG mode. This will be different from the UMA log client ID, which is the client ID of the host in WDAG mode. -- **container_session_id** The session ID of the container, if in WDAG mode. This will be different from the UMA log session ID, which is the session ID of the host in WDAG mode. -- **Etag** Etag is an identifier representing all service applied configurations and experiments for the current browser session. This field is left empty when Windows diagnostic level is set to Basic or lower or when consent for diagnostic data has been denied. -- **EventInfo.Level** The minimum Windows diagnostic data level required for the event where 1 is basic, 2 is enhanced, and 3 is full. -- **install_date** The date and time of the most recent installation in seconds since midnight on January 1, 1970 UTC, rounded down to the nearest hour. -- **installSource** An enumeration representing the source of this installation: source was not retrieved (0), unspecified source (1), website installer (2), enterprise MSI (3), Windows update (4), Edge updater (5), scheduled or timed task (6, 7), uninstall (8), Edge about page (9), self-repair (10), other install command line (11), reserved (12), unknown source (13). -- **PayloadClass** The base class used to serialize and deserialize the Protobuf binary payload. -- **PayloadGUID** A random identifier generated for each original monolithic Protobuf payload, before the payload is potentially broken up into manageably-sized chunks for transmission. -- **PayloadLogType** The log type for the event correlating with 0 for unknown, 1 for stability, 2 for on-going, 3 for independent, 4 for UKM, or 5 for instance level. -- **session_id** An identifier that is incremented each time the user launches the application, irrespective of any client_id changes. session_id is seeded during the initial installation of the application. session_id is effectively unique per client_id value. Several other internal identifier values, such as window or tab IDs, are only meaningful within a particular session. The session_id value is forgotten when the application is uninstalled, but not during an upgrade. - - -### Aria.af397ef28e484961ba48646a5d38cf54.Microsoft.WebBrowser.Installer.EdgeUpdate.Ping - -This Ping event sends a detailed inventory of software and hardware information about the EdgeUpdate service, Edge applications, and the current system environment including app configuration, update configuration, and hardware capabilities. This event contains Device Connectivity and Configuration, Product and Service Performance, and Software Setup and Inventory data. One or more events is sent each time any installation, update, or uninstallation occurs with the EdgeUpdate service or with Edge applications. This event is used to measure the reliability and performance of the EdgeUpdate service and if Edge applications are up to date. This is an indication that the event is designed to keep Windows secure and up to date. - -The following fields are available: - -- **appAp** Any additional parameters for the specified application. Default: ''. -- **appAppId** The GUID that identifies the product. Compatible clients must transmit this attribute. Please see the wiki for additional information. Default: undefined. -- **appBrandCode** The brand code under which the product was installed, if any. A brand code is a short (4-character) string used to identify installations that took place as a result of partner deals or website promotions. Default: ''. -- **appChannel** An integer indicating the channel of the installation (i.e. Canary or Dev). -- **appClientId** A generalized form of the brand code that can accept a wider range of values and is used for similar purposes. Default: ''. -- **appCohort** A machine-readable string identifying the release cohort (channel) that the app belongs to. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appCohortHint** A machine-readable enum indicating that the client has a desire to switch to a different release cohort. The exact legal values are app-specific and should be shared between the server and app implementations. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appCohortName** A stable non-localized human-readable enum indicating which (if any) set of messages the app should display to the user. For example, an app with a cohort Name of 'beta' might display beta-specific branding to the user. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appConsentState** Bit flags describing the diagnostic data disclosure and response flow where 1 indicates the affirmative and 0 indicates the negative or unspecified data. Bit 1 indicates consent was given, bit 2 indicates data originated from the download page, bit 18 indicates choice for sending data about how the browser is used, and bit 19 indicates choice for sending data about websites visited. -- **appDayOfInstall** The date-based counting equivalent of appInstallTimeDiffSec (the numeric calendar day that the app was installed on). This value is provided by the server in the response to the first request in the installation flow. The client MAY fuzz this value to the week granularity (e.g. send '0' for 0 through 6, '7' for 7 through 13, etc.). The first communication to the server should use a special value of '-1'. A value of '-2' indicates that this value is not known. Please see the wiki for additional information. Default: '-2'. -- **appExperiments** A key/value list of experiment identifiers. Experiment labels are used to track membership in different experimental groups, and may be set at install or update time. The experiments string is formatted as a semicolon-delimited concatenation of experiment label strings. An experiment label string is an experiment Name, followed by the '=' character, followed by an experimental label value. For example: 'crdiff=got_bsdiff;optimized=O3'. The client should not transmit the expiration date of any experiments it has, even if the server previously specified a specific expiration date. Default: ''. -- **appIid** A GUID that identifies a particular installation flow. For example, each download of a product installer is tagged with a unique GUID. Attempts to install using that installer can then be grouped. A client SHOULD NOT persist the IID GUID after the installation flow of a product is complete. -- **appInstallTimeDiffSec** The difference between the current time and the install date in seconds. '0' if unknown. Default: '-1'. -- **appLang** The language of the product install, in IETF BCP 47 representation. Default: ''. -- **appNextVersion** The version of the app that the update flow to which this event belongs attempted to reach, regardless of the success or failure of the update operation. Please see the wiki for additional information. Default: '0.0.0.0'. -- **appPingEventAppSize** The total number of bytes of all downloaded packages. Default: '0'. -- **appPingEventDownloadMetricsCdnCCC** ISO 2 character country code that matches to the country updated binaries are delivered from. E.g.: US. -- **appPingEventDownloadMetricsCdnCID** Numeric value used to internally track the origins of the updated binaries. For example, 2. -- **appPingEventDownloadMetricsDownloadedBytes** For events representing a download, the number of bytes expected to be downloaded. For events representing an entire update flow, the sum of all such expected bytes over the course of the update flow. Default: '0'. -- **appPingEventDownloadMetricsDownloader** A string identifying the download algorithm and/or stack. Example values include: 'bits', 'direct', 'winhttp', 'p2p'. Sent in events that have an event type of '14' only. Default: ''. -- **appPingEventDownloadMetricsDownloadTimeMs** For events representing a download, the time elapsed between the start of the download and the end of the download, in milliseconds. For events representing an entire update flow, the sum of all such download times over the course of the update flow. Sent in events that have an event type of '1', '2', '3', and '14' only. Default: '0'. -- **appPingEventDownloadMetricsError** The error code (if any) of the operation, encoded as a signed base-10 integer. Default: '0'. -- **appPingEventDownloadMetricsServerIpHint** For events representing a download, the CDN Host IP address that corresponds to the update file server. The CDN host is controlled by Microsoft servers and always maps to IP addresses hosting *.delivery.mp.microsoft.com or msedgesetup.azureedge.net. Default: ''. -- **appPingEventDownloadMetricsTotalBytes** For events representing a download, the number of bytes expected to be downloaded. For events representing an entire update flow, the sum of all such expected bytes over the course of the update flow. Default: '0'. -- **appPingEventDownloadMetricsUrl** For events representing a download, the CDN URL provided by the update server for the client to download the update, the URL is controlled by Microsoft servers and always maps back to either *.delivery.mp.microsoft.com or msedgesetup.azureedge.net. Default: ''. -- **appPingEventDownloadTimeMs** For events representing a download, the time elapsed between the start of the download and the end of the download, in milliseconds. For events representing an entire update flow, the sum of all such download times over the course of the update flow. Sent in events that have an event type of '1', '2', '3', and '14' only. Default: '0'. -- **appPingEventErrorCode** The error code (if any) of the operation, encoded as a signed, base-10 integer. Default: '0'. -- **appPingEventEventResult** An enum indicating the result of the event. Please see the wiki for additional information. Default: '0'. -- **appPingEventEventType** An enum indicating the type of the event. Compatible clients MUST transmit this attribute. Please see the wiki for additional information. -- **appPingEventExtraCode1** Additional numeric information about the operation's result, encoded as a signed, base-10 integer. Default: '0'. -- **appPingEventInstallTimeMs** For events representing an install, the time elapsed between the start of the install and the end of the install, in milliseconds. For events representing an entire update flow, the sum of all such durations. Sent in events that have an event type of '2' and '3' only. Default: '0'. -- **appPingEventNumBytesDownloaded** The number of bytes downloaded for the specified application. Default: '0'. -- **appPingEventSequenceId** An id that uniquely identifies particular events within one requestId. Since a request can contain multiple ping events, this field is necessary to uniquely identify each possible event. -- **appPingEventSourceUrlIndex** For events representing a download, the position of the download URL in the list of URLs supplied by the server in a "urls" tag. -- **appPingEventUpdateCheckTimeMs** For events representing an entire update flow, the time elapsed between the start of the update check and the end of the update check, in milliseconds. Sent in events that have an event type of '2' and '3' only. Default: '0'. -- **appUpdateCheckIsUpdateDisabled** The state of whether app updates are restricted by group policy. True if updates have been restricted by group policy or false if they have not. -- **appUpdateCheckTargetVersionPrefix** A component-wise prefix of a version number, or a complete version number suffixed with the $ character. The server should not return an update instruction to a version number that does not match the prefix or complete version number. The prefix is interpreted a dotted-tuple that specifies the exactly-matching elements; it is not a lexical prefix (for example, '1.2.3' must match '1.2.3.4' but must not match '1.2.34'). Default: ''. -- **appUpdateCheckTtToken** An opaque access token that can be used to identify the requesting client as a member of a trusted-tester group. If non-empty, the request should be sent over SSL or another secure protocol. Default: ''. -- **appVersion** The version of the product install. Please see the wiki for additional information. Default: '0.0.0.0'. -- **eventType** A string indicating the type of the event. Please see the wiki for additional information. -- **hwHasAvx** '1' if the client's hardware supports the AVX instruction set. '0' if the client's hardware does not support the AVX instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse** '1' if the client's hardware supports the SSE instruction set. '0' if the client's hardware does not support the SSE instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse2** '1' if the client's hardware supports the SSE2 instruction set. '0' if the client's hardware does not support the SSE2 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse3** '1' if the client's hardware supports the SSE3 instruction set. '0' if the client's hardware does not support the SSE3 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse41** '1' if the client's hardware supports the SSE4.1 instruction set. '0' if the client's hardware does not support the SSE4.1 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse42** '1' if the client's hardware supports the SSE4.2 instruction set. '0' if the client's hardware does not support the SSE4.2 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSsse3** '1' if the client's hardware supports the SSSE3 instruction set. '0' if the client's hardware does not support the SSSE3 instruction set. '-1' if unknown. Default: '-1'. -- **hwPhysmemory** The physical memory available to the client, truncated down to the nearest gibibyte. '-1' if unknown. This value is intended to reflect the maximum theoretical storage capacity of the client, not including any hard drive or paging to a hard drive or peripheral. Default: '-1'. -- **isMsftDomainJoined** '1' if the client is a member of a Microsoft domain. '0' otherwise. Default: '0'. -- **osArch** The architecture of the operating system (e.g. 'x86', 'x64', 'arm'). '' if unknown. Default: ''. -- **osPlatform** The operating system family within which the Omaha client is running (e.g. 'win', 'mac', 'linux', 'ios', 'android'). '' if unknown. The operating system Name should be transmitted in lowercase with minimal formatting. Default: ''. -- **osServicePack** The secondary version of the operating system. '' if unknown. Default: ''. -- **osVersion** The primary version of the operating system. '' if unknown. Default: ''. -- **requestCheckPeriodSec** The update interval in seconds. The value is read from the registry. Default: '-1'. -- **requestDlpref** A comma-separated list of values specifying the preferred download URL behavior. The first value is the highest priority, further values reflect secondary, tertiary, et cetera priorities. Legal values are '' (in which case the entire list must be empty, indicating unknown or no-preference) or 'cacheable' (the server should prioritize sending URLs that are easily cacheable). Default: ''. -- **requestDomainJoined** '1' if the machine is part of a managed enterprise domain. Otherwise '0'. -- **requestInstallSource** A string specifying the cause of the update flow. For example: 'ondemand', or 'scheduledtask'. Default: ''. -- **requestIsMachine** '1' if the client is known to be installed with system-level or administrator privileges. '0' otherwise. Default: '0'. -- **requestOmahaShellVersion** The version of the Omaha installation folder. Default: ''. -- **requestOmahaVersion** The version of the Omaha updater itself (the entity sending this request). Default: '0.0.0.0'. -- **requestProtocolVersion** The version of the Omaha protocol. Compatible clients MUST provide a value of '3.0'. Compatible clients must always transmit this attribute. Default: undefined. -- **requestRequestId** A randomly-generated (uniformly distributed) GUID, corresponding to the Omaha request. Each request attempt should have (with high probability) a unique request id. Default: ''. -- **requestSessionCorrelationVectorBase** A client generated random MS Correlation Vector base code used to correlate the update session with update and CDN servers. Default: ''. -- **requestSessionId** A randomly-generated (uniformly distributed) GUID. Each single update flow (e.g. update check, update application, event ping sequence) should have (with high probability) a single unique session ID. Default: ''. -- **requestTestSource** Either '', 'dev', 'qa', 'prober', 'auto', or 'ossdev'. Any value except '' indicates that the request is a test and should not be counted toward normal metrics. Default: ''. -- **requestUid** A randomly-generated (uniformly distributed) GUID, corresponding to the Omaha user. Each request attempt SHOULD have (with high probability) a unique request id. Default: ''. - - -### Aria.f4a7d46e472049dfba756e11bdbbc08f.Microsoft.WebBrowser.SystemInfo.Config - -This config event sends basic device connectivity and configuration information from Microsoft Edge about the current data collection consent, app version, and installation state to keep Microsoft Edge up to date and secure. - -The following fields are available: - -- **app_version** The internal Edge build version string, taken from the UMA metrics field system_profile.app_version. -- **appConsentState** Bit flags describing consent for data collection on the machine or zero if the state was not retrieved. The following are true when the associated bit is set: consent was granted (0x1), consent was communicated at install (0x2), diagnostic data consent granted (0x20000), browsing data consent granted (0x40000). -- **Channel** An integer indicating the channel of the installation (Canary or Dev). -- **client_id** A unique identifier with which all other diagnostic client data is associated, taken from the UMA metrics provider. This ID is effectively unique per device, per OS user profile, per release channel (e.g. Canary/Dev/Beta/Stable). client_id is not durable, based on user preferences. client_id is initialized on the first application launch under each OS user profile. client_id is linkable, but not unique across devices or OS user profiles. client_id is reset whenever UMA data collection is disabled, or when the application is uninstalled. -- **ConnectionType** The first reported type of network connection currently connected. This can be one of Unknown, Ethernet, WiFi, 2G, 3G, 4G, None, or Bluetooth. -- **container_client_id** The client ID of the container, if in WDAG mode. This will be different from the UMA log client ID, which is the client ID of the host in WDAG mode. -- **container_session_id** The session ID of the container, if in WDAG mode. This will be different from the UMA log session ID, which is the session ID of the host in WDAG mode. -- **Etag** Etag is an identifier representing all service applied configurations and experiments for the current browser session. This field is left empty when Windows diagnostic level is set to Basic or lower or when consent for diagnostic data has been denied. -- **EventInfo.Level** The minimum Windows diagnostic data level required for the event where 1 is basic, 2 is enhanced, and 3 is full. -- **install_date** The date and time of the most recent installation in seconds since midnight on January 1, 1970 UTC, rounded down to the nearest hour. -- **installSource** An enumeration representing the source of this installation: source was not retrieved (0), unspecified source (1), website installer (2), enterprise MSI (3), Windows update (4), Edge updater (5), scheduled or timed task (6, 7), uninstall (8), Edge about page (9), self-repair (10), other install command line (11), reserved (12), unknown source (13). -- **PayloadClass** The base class used to serialize and deserialize the Protobuf binary payload. -- **PayloadGUID** A random identifier generated for each original monolithic Protobuf payload, before the payload is potentially broken up into manageably-sized chunks for transmission. -- **PayloadLogType** The log type for the event correlating with 0 for unknown, 1 for stability, 2 for on-going, 3 for independent, 4 for UKM, or 5 for instance level. -- **session_id** An identifier that is incremented each time the user launches the application, irrespective of any client_id changes. session_id is seeded during the initial installation of the application. session_id is effectively unique per client_id value. Several other internal identifier values, such as window or tab IDs, are only meaningful within a particular session. The session_id value is forgotten when the application is uninstalled, but not during an upgrade. - - -### Microsoft.WebBrowser.Installer.EdgeUpdate.Ping - -This event sends hardware and software inventory information about the Microsoft Edge Update service, Microsoft Edge applications, and the current system environment, including app configuration, update configuration, and hardware capabilities. It's used to measure the reliability and performance of the EdgeUpdate service and if Microsoft Edge applications are up to date. This is an indication that the event is designed to keep Windows secure and up to date. - -The following fields are available: - -- **appAp** Microsoft Edge Update parameters, including channel, architecture, platform, and additional parameters identifying the release of Microsoft Edge to update and how to install it. Example: 'beta-arch_x64-full'. Default: ''." -- **appAppId** The GUID that identifies the product channels such as Edge Canary, Dev, Beta, Stable, and Edge Update. -- **appBrandCode** The 4-digit brand code under which the product was installed, if any. Possible values: 'GGLS' (default), 'GCEU' (enterprise install), and '' (unknown). -- **appChannel** An integer indicating the channel of the installation (e.g. Canary or Dev). -- **appClientId** A generalized form of the brand code that can accept a wider range of values and is used for similar purposes. Default: ''. -- **appCohort** A machine-readable string identifying the release channel that the app belongs to. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appCohortHint** A machine-readable enum indicating that the client has a desire to switch to a different release cohort. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appCohortName** A stable non-localized human-readable enum indicating which (if any) set of messages the app should display to the user. For example, an app with a cohort name of 'beta' might display beta-specific branding to the user. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appConsentState** Bit flags describing the diagnostic data disclosure and response flow where 1 indicates the affirmative and 0 indicates the negative or unspecified data. Bit 1 indicates consent was given, bit 2 indicates data originated from the download page, bit 18 indicates choice for sending data about how the browser is used, and bit 19 indicates choice for sending data about websites visited. -- **appDayOfInstall** The date-based counting equivalent of appInstallTimeDiffSec (the numeric calendar day that the app was installed on). This value is provided by the server in the response to the first request in the installation flow. Default: '-2' (Unknown). -- **appExperiments** A semicolon-delimited key/value list of experiment identifiers and treatment groups. This field is unused and always empty in Edge Update. Default: ''. -- **appIid** A GUID that identifies a particular installation flow. For example, each download of a product installer is tagged with a unique GUID. Attempts to install using that installer can then be grouped. A client SHOULD NOT persist the IID GUID after the installation flow of a product is complete. -- **appInstallTimeDiffSec** The difference between the current time and the install date in seconds. '0' if unknown. Default: '-1'. -- **appLang** The language of the product install, in IETF BCP 47 representation. Default: ''. -- **appNextVersion** The version of the app that the update attempted to reach, regardless of the success or failure of the update operation. Default: '0.0.0.0'. -- **appPingEventAppSize** The total number of bytes of all downloaded packages. Default: '0'. -- **appPingEventDownloadMetricsCdnCCC** ISO 2 character country code that matches to the country updated binaries are delivered from. E.g.: US. -- **appPingEventDownloadMetricsCdnCID** Numeric value used to internally track the origins of the updated binaries. For example, 2. -- **appPingEventDownloadMetricsDownloadedBytes** For events representing a download, the number of bytes expected to be downloaded. For events representing an entire update flow, the sum of all such expected bytes over the course of the update flow. Default: '0'. -- **appPingEventDownloadMetricsDownloader** A string identifying the download algorithm and/or stack. Example values include: 'bits', 'direct', 'winhttp', 'p2p'. Sent in events that have an event type of '14' only. Default: ''. -- **appPingEventDownloadMetricsDownloadTimeMs** For events representing a download, the time elapsed between the start of the download and the end of the download, in milliseconds. For events representing an entire update flow, the sum of all such download times over the course of the update flow. Sent in events that have an event type of '1', '2', '3', and '14' only. Default: '0'. -- **appPingEventDownloadMetricsError** The error code (if any) of the operation, encoded as a signed base-10 integer. Default: '0'. -- **appPingEventDownloadMetricsServerIpHint** For events representing a download, the CDN Host IP address that corresponds to the update file server. The CDN host is controlled by Microsoft servers and always maps to IP addresses hosting *.delivery.mp.microsoft.com or msedgesetup.azureedge.net. Default: ''. -- **appPingEventDownloadMetricsTotalBytes** For events representing a download, the number of bytes expected to be downloaded. For events representing an entire update flow, the sum of all such expected bytes over the course of the update flow. Default: '0'. -- **appPingEventDownloadMetricsUrl** For events representing a download, the CDN URL provided by the update server for the client to download the update, the URL is controlled by Microsoft servers and always maps back to either *.delivery.mp.microsoft.com or msedgesetup.azureedge.net. Default: ''. -- **appPingEventDownloadTimeMs** For events representing a download, the time elapsed between the start of the download and the end of the download, in milliseconds. For events representing an entire update flow, the sum of all such download times over the course of the update flow. Sent in events that have an event type of '1', '2', '3', and '14' only. Default: '0'. -- **appPingEventErrorCode** The error code (if any) of the operation, encoded as a signed, base-10 integer. Default: '0'. -- **appPingEventEventResult** An enumeration indicating the result of the event. Common values are '0' (Error) and '1' (Success). Default: '0' (Error). -- **appPingEventEventType** An enumeration indicating the type of the event and the event stage. Default: '0' (Unknown). -- **appPingEventExtraCode1** Additional numeric information about the operation's result, encoded as a signed, base-10 integer. Default: '0'. -- **appPingEventInstallTimeMs** For events representing an install, the time elapsed between the start of the install and the end of the install, in milliseconds. For events representing an entire update flow, the sum of all such durations. Sent in events that have an event type of '2' and '3' only. Default: '0'. -- **appPingEventNumBytesDownloaded** The number of bytes downloaded for the specified application. Default: '0'. -- **appPingEventSequenceId** An ID that uniquely identifies particular events within one requestId. Since a request can contain multiple ping events, this field is necessary to uniquely identify each possible event. -- **appPingEventSourceUrlIndex** For events representing a download, the position of the download URL in the list of URLs supplied by the server in a tag. -- **appPingEventUpdateCheckTimeMs** For events representing an entire update flow, the time elapsed between the start of the update check and the end of the update check, in milliseconds. Sent in events that have an event type of '2' and '3' only. Default: '0'. -- **appUpdateCheckIsUpdateDisabled** The state of whether app updates are restricted by group policy. True if updates have been restricted by group policy or false if they have not. -- **appUpdateCheckTargetVersionPrefix** A component-wise prefix of a version number, or a complete version number suffixed with the $ character. The prefix is interpreted a dotted-tuple that specifies the exactly-matching elements; it is not a lexical prefix (for example, '1.2.3' MUST match '1.2.3.4' but MUST NOT match '1.2.34'). Default: ''. -- **appUpdateCheckTtToken** An opaque access token that can be used to identify the requesting client as a member of a trusted-tester group. If non-empty, the request is sent over SSL or another secure protocol. This field is unused by Edge Update and always empty. Default: ''. -- **appVersion** The version of the product install. Default: '0.0.0.0'. -- **eventType** A string representation of appPingEventEventType indicating the type of the event. -- **hwHasAvx** '1' if the client's hardware supports the AVX instruction set. '0' if the client's hardware does not support the AVX instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse** '1' if the client's hardware supports the SSE instruction set. '0' if the client's hardware does not support the SSE instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse2** '1' if the client's hardware supports the SSE2 instruction set. '0' if the client's hardware does not support the SSE2 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse3** '1' if the client's hardware supports the SSE3 instruction set. '0' if the client's hardware does not support the SSE3 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse41** '1' if the client's hardware supports the SSE4.1 instruction set. '0' if the client's hardware does not support the SSE4.1 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse42** '1' if the client's hardware supports the SSE4.2 instruction set. '0' if the client's hardware does not support the SSE4.2 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSsse3** '1' if the client's hardware supports the SSSE3 instruction set. '0' if the client's hardware does not support the SSSE3 instruction set. '-1' if unknown. Default: '-1'. -- **hwPhysmemory** The physical memory available to the client, truncated down to the nearest gibibyte. '-1' if unknown. This value is intended to reflect the maximum theoretical storage capacity of the client, not including any hard drive or paging to a hard drive or peripheral. Default: '-1'. -- **isMsftDomainJoined** '1' if the client is a member of a Microsoft domain. '0' otherwise. Default: '0'. -- **osArch** The architecture of the operating system (e.g. 'x86', 'x64', 'arm'). '' if unknown. Default: ''. -- **osPlatform** The operating system family within which the Omaha client is running (e.g. 'win', 'mac', 'linux', 'ios', 'android'). '' if unknown. The operating system name should be transmitted in lowercase with minimal formatting. Default: ''. -- **osServicePack** The secondary version of the operating system. '' if unknown. Default: ''. -- **osVersion** The primary version of the operating system. '' if unknown. Default: ''. -- **requestCheckPeriodSec** The update interval in seconds. The value is read from the registry. Default: '-1'. -- **requestDlpref** A comma-separated list of values specifying the preferred download URL behavior. The first value is the highest priority, further values reflect secondary, tertiary, et cetera priorities. Legal values are '' (in which case the entire list must be empty, indicating unknown or no-preference) or 'cacheable' (the server should prioritize sending URLs that are easily cacheable). Default: ''. -- **requestDomainJoined** '1' if the device is part of a managed enterprise domain. Otherwise '0'. -- **requestInstallSource** A string specifying the cause of the update flow. For example: 'ondemand', or 'scheduledtask'. Default: ''. -- **requestIsMachine** '1' if the client is known to be installed with system-level or administrator privileges. '0' otherwise. Default: '0'. -- **requestOmahaShellVersion** The version of the Omaha installation folder. Default: ''. -- **requestOmahaVersion** The version of the Omaha updater itself (the entity sending this request). Default: '0.0.0.0'. -- **requestProtocolVersion** The version of the Omaha protocol. Compatible clients MUST provide a value of '3.0'. Compatible clients MUST always transmit this attribute. Default: undefined. -- **requestRequestId** A randomly-generated (uniformly distributed) GUID, corresponding to the Omaha request. Each request attempt SHOULD have (with high probability) a unique request id. Default: ''. -- **requestSessionCorrelationVectorBase** A client generated random MS Correlation Vector base code used to correlate the update session with update and CDN servers. Default: ''. -- **requestSessionId** A randomly-generated (uniformly distributed) GUID. Each single update flow (e.g. update check, update application, event ping sequence) SHOULD have (with high probability) a single unique session ID. Default: ''. -- **requestTestSource** Either '', 'dev', 'qa', 'prober', 'auto', or 'ossdev'. Any value except '' indicates that the request is a test and should not be counted toward normal metrics. Default: ''. -- **requestUid** A randomly-generated (uniformly distributed) GUID, corresponding to the Omaha user. Each request attempt SHOULD have (with high probability) a unique request id. Default: ''. - - -## Migration events - -### Microsoft.Windows.MigrationCore.MigObjectCountDLUsr - -This event returns data to track the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - - - -### Microsoft.Windows.MigrationCore.MigObjectCountKFSys - -This event returns data about the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - - - -### Microsoft.Windows.MigrationCore.MigObjectCountKFUsr - -This event returns data to track the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - - - -## Miracast events - -### Microsoft.Windows.Cast.Miracast.MiracastSessionEnd - -This event sends data at the end of a Miracast session that helps determine RTSP related Miracast failures along with some statistics about the session. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **AudioChannelCount** The number of audio channels. -- **AudioSampleRate** The sample rate of audio in terms of samples per second. -- **AudioSubtype** The unique subtype identifier of the audio codec (encoding method) used for audio encoding. -- **AverageBitrate** The average video bitrate used during the Miracast session, in bits per second. -- **AverageDataRate** The average available bandwidth reported by the WiFi driver during the Miracast session, in bits per second. -- **AveragePacketSendTimeInMs** The average time required for the network to send a sample, in milliseconds. -- **ConnectorType** The type of connector used during the Miracast session. -- **EncodeAverageTimeMS** The average time to encode a frame of video, in milliseconds. -- **EncodeCount** The count of total frames encoded in the session. -- **EncodeMaxTimeMS** The maximum time to encode a frame, in milliseconds. -- **EncodeMinTimeMS** The minimum time to encode a frame, in milliseconds. -- **EncoderCreationTimeInMs** The time required to create the video encoder, in milliseconds. -- **ErrorSource** Identifies the component that encountered an error that caused a disconnect, if applicable. -- **FirstFrameTime** The time (tick count) when the first frame is sent. -- **FirstLatencyMode** The first latency mode. -- **FrameAverageTimeMS** Average time to process an entire frame, in milliseconds. -- **FrameCount** The total number of frames processed. -- **FrameMaxTimeMS** The maximum time required to process an entire frame, in milliseconds. -- **FrameMinTimeMS** The minimum time required to process an entire frame, in milliseconds. -- **Glitches** The number of frames that failed to be delivered on time. -- **HardwareCursorEnabled** Indicates if hardware cursor was enabled when the connection ended. -- **HDCPState** The state of HDCP (High-bandwidth Digital Content Protection) when the connection ended. -- **HighestBitrate** The highest video bitrate used during the Miracast session, in bits per second. -- **HighestDataRate** The highest available bandwidth reported by the WiFi driver, in bits per second. -- **LastLatencyMode** The last reported latency mode. -- **LastLatencyTime** The last reported latency time. -- **LogTimeReference** The reference time, in tick counts. -- **LowestBitrate** The lowest video bitrate used during the Miracast session, in bits per second. -- **LowestDataRate** The lowest video bitrate used during the Miracast session, in bits per second. -- **MediaErrorCode** The error code reported by the media session, if applicable. -- **MiracastEntry** The time (tick count) when the Miracast driver was first loaded. -- **MiracastM1** The time (tick count) when the M1 request was sent. -- **MiracastM2** The time (tick count) when the M2 request was sent. -- **MiracastM3** The time (tick count) when the M3 request was sent. -- **MiracastM4** The time (tick count) when the M4 request was sent. -- **MiracastM5** The time (tick count) when the M5 request was sent. -- **MiracastM6** The time (tick count) when the M6 request was sent. -- **MiracastM7** The time (tick count) when the M7 request was sent. -- **MiracastSessionState** The state of the Miracast session when the connection ended. -- **MiracastStreaming** The time (tick count) when the Miracast session first started processing frames. -- **ProfileCount** The count of profiles generated from the receiver M4 response. -- **ProfileCountAfterFiltering** The count of profiles after filtering based on available bandwidth and encoder capabilities. -- **RefreshRate** The refresh rate set on the remote display. -- **RotationSupported** Indicates if the Miracast receiver supports display rotation. -- **RTSPSessionId** The unique identifier of the RTSP session. This matches the RTSP session ID for the receiver for the same session. -- **SessionGuid** The unique identifier of to correlate various Miracast events from a session. -- **SinkHadEdid** Indicates if the Miracast receiver reported an EDID. -- **SupportMicrosoftColorSpaceConversion** Indicates whether the Microsoft color space conversion for extra color fidelity is supported by the receiver. -- **SupportsMicrosoftDiagnostics** Indicates whether the Miracast receiver supports the Microsoft Diagnostics Miracast extension. -- **SupportsMicrosoftFormatChange** Indicates whether the Miracast receiver supports the Microsoft Format Change Miracast extension. -- **SupportsMicrosoftLatencyManagement** Indicates whether the Miracast receiver supports the Microsoft Latency Management Miracast extension. -- **SupportsMicrosoftRTCP** Indicates whether the Miracast receiver supports the Microsoft RTCP Miracast extension. -- **SupportsMicrosoftVideoFormats** Indicates whether the Miracast receiver supports Microsoft video format for 3:2 resolution. -- **SupportsWiDi** Indicates whether Miracast receiver supports Intel WiDi extensions. -- **TeardownErrorCode** The error code reason for teardown provided by the receiver, if applicable. -- **TeardownErrorReason** The text string reason for teardown provided by the receiver, if applicable. -- **UIBCEndState** Indicates whether UIBC was enabled when the connection ended. -- **UIBCEverEnabled** Indicates whether UIBC was ever enabled. -- **UIBCStatus** The result code reported by the UIBC setup process. -- **VideoBitrate** The starting bitrate for the video encoder. -- **VideoCodecLevel** The encoding level used for encoding, specific to the video subtype. -- **VideoHeight** The height of encoded video frames. -- **VideoSubtype** The unique subtype identifier of the video codec (encoding method) used for video encoding. -- **VideoWidth** The width of encoded video frames. -- **WFD2Supported** Indicates if the Miracast receiver supports WFD2 protocol. - - -## OneDrive events - -### Microsoft.OneDrive.Sync.Setup.APIOperation - -This event includes basic data about install and uninstall OneDrive API operations. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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 data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **winInetError** The HResult of the operation. - - -## Privacy consent logging events - -### Microsoft.Windows.Shell.PrivacyConsentLogging.PrivacyConsentCompleted - -This event is used to determine whether the user successfully completed the privacy consent experience. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **presentationVersion** Which display version of the privacy consent experience the user completed -- **privacyConsentState** The current state of the privacy consent experience -- **settingsVersion** Which setting version of the privacy consent experience the user completed -- **userOobeExitReason** The exit reason of the privacy consent experience - - -### Microsoft.Windows.Shell.PrivacyConsentLogging.PrivacyConsentPrep - -This event is used to determine whether the user needs to see the privacy consent experience or not. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **s0** Indicates the error level encountered during Privacy Consent Preparation. See [Microsoft.Windows.Shell.PrivacyConsentLogging.wilActivity](#microsoftwindowsshellprivacyconsentloggingwilactivity). -- **wilActivity** Information of the thread where the error occurred (thread ID). See [wilActivity](#wilactivity). - - -### Microsoft.Windows.Shell.PrivacyConsentLogging.PrivacyConsentStatus - -This event provides the effectiveness of new privacy experience. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **isAdmin** whether the person who is logging in is an admin -- **isLaunching** Whether or not the privacy consent experience will be launched -- **isSilentElevation** whether the user has most restrictive UAC controls -- **privacyConsentState** whether the user has completed privacy experience -- **userRegionCode** The current user's region setting - - -### Microsoft.Windows.Shell.PrivacyConsentLogging.wilActivity - -This event returns information if an error is encountered while computing whether the user needs to complete privacy consents in certain upgrade scenarios. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **callContext** A list of Windows Diagnostic activities/events containing this error. -- **currentContextId** The ID for the newest activity/event containing this error. -- **currentContextMessage** Any custom message for the activity context. -- **currentContextName** The name of the newest activity/event context containing this error. -- **failureType** The type of failure observed: exception, returned error, etc. -- **fileName** The name of the fine in which the error was encountered. -- **hresult** The Result Code of the error. -- **lineNumber** The line number where the error was encountered. -- **message** Any message associated with the error. -- **module** The name of the binary module where the error was encountered. -- **originatingContextId** The ID of the oldest telemetry activity containing this error. -- **originatingContextMessage** Any custom message associated with the oldest Windows Diagnostic activity/event containing this error. -- **originatingContextName** The name associated with the oldest Windows Diagnostic activity/event containing this error. -- **threadId** The ID of the thread the activity was run on. - - -## Privacy logging notification events - -### Microsoft.Windows.Shell.PrivacyNotifierLogging.PrivacyNotifierCompleted - -This event returns data to report the efficacy of a single-use tool to inform users impacted by a known issue and to take corrective action to address the issue. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **cleanupTask** Indicates whether the task that launched the dialog should be cleaned up. -- **cleanupTaskResult** The return code of the attempt to clean up the task used to show the dialog. -- **deviceEvaluated** Indicates whether the device was eligible for evaluation of a known issue. -- **deviceImpacted** Indicates whether the device was impacted by a known issue. -- **modalAction** The action the user took on the dialog that was presented to them. -- **modalResult** The return code of the attempt to show a dialog to the user explaining the issue. -- **resetSettingsResult** The return code of the action to correct the known issue. - - -## Quality Update Assistant events - -### Microsoft.Windows.QualityUpdateAssistant.Applicability - -This event sends basic info on whether the device should be updated to the latest cumulative update. The data collected with this event is used to help keep Windows up to date and secure. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Applicability check for quality update assistant. - - -### Microsoft.Windows.QualityUpdateAssistant.DeviceReadinessCheck - -This event sends basic info on whether the device is ready to download the latest cumulative update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Device readiness check for quality update assistant. - - -### Microsoft.Windows.QualityUpdateAssistant.Download - -This event sends basic info when download of the latest cumulative update begins. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Download of latest cumulative update payload. - - -### Microsoft.Windows.QualityUpdateAssistant.Install - -This event sends basic info on the result of the installation of the latest cumulative update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **PackageVersion** Current package version of quality update assistant. -- **Result** Install of latest cumulative update payload. - - -## Remediation events - -### Microsoft.Windows.Remediation.Applicable - -This event indicates whether Windows Update sediment remediations need to be applied to the sediment device to keep Windows up to date. A sediment device is one that has been on a previous OS version for an extended period. The remediations address issues on the system that prevent the device from receiving OS updates. - -The following fields are available: - -- **ActionName** The name of the action to be taken by the plug-in. -- **AppraiserBinariesValidResult** Indicates whether the 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 detected 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** Indicates the AC Line Status of the device. -- **RemediationNoisyHammerAutoStartCount** The number of times Auto UA 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 Auto UA ran. -- **RemediationNoisyHammerGetCurrentSize** Size in MB of the $GetCurrent folder. -- **RemediationNoisyHammerIsInstalled** TRUE if the Auto UA is installed. -- **RemediationNoisyHammerLastTaskRunResult** The result from the last Auto UA task run. -- **RemediationNoisyHammerMeteredNetwork** TRUE if the machine is on a metered network. -- **RemediationNoisyHammerTaskEnabled** TRUE if the Auto UA task is enabled. -- **RemediationNoisyHammerTaskExists** TRUE if the Auto UA task exists. -- **RemediationNoisyHammerTaskTriggerEnabledCount** Indicates whether the task has the count trigger enabled. -- **RemediationNoisyHammerUAExitCode** The exit code of the Update Assistant. -- **RemediationNoisyHammerUAExitState** The exit code of the Update Assistant. -- **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 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 - -This event indicates whether the remediation system can put in a request to defer a system-initiated sleep to enable installation of security or quality updates, to keep Windows secure and up to date. - -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 is sent when Windows Update sediment remediations have completed on the sediment device to keep Windows up to date. A sediment device is one that has been on a previous OS version for an extended period. The remediations address issues on the system that prevent the device from receiving OS 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. -- **RemediationNoisyHammerTaskFixSuccessId** Indicates whether the Update Assistant task fix was successful. -- **RemediationNoisyHammerTaskKickOffIsSuccess** TRUE if the Auto UA 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. -- **ServiceHardeningExitCode** The exit code returned by Windows Service Repair. -- **ServiceHealthEnabledBitMap** List of services updated by the plugin. -- **ServiceHealthInstalledBitMap** List of services installed by the plugin. -- **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 megabytes. -- **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 Microsoft Store cache after cleanup, measured in Megabytes. -- **TotalSizeofStoreCacheBeforeCleanupInMegabytes** The size of the Microsoft 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 Update Session Orchestrator (USO) 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 - -This event enables tracking of completion of process that remediates issues preventing security and quality updates keep Windows up to date. - -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 is sent when Windows Update sediment remediations have started on the sediment device to keep Windows up to date. A sediment device is one that has been on a previous OS version for an extended period. The remediations address issues on the system that prevent the device from receiving OS updates. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. -- **PackageVersion** The version 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. -- **RunCount** The number of times the remediation event started (whether it completed successfully or not). - - -## Sediment events - -### Microsoft.Windows.Sediment.Info.DetailedState - -This event is sent when detailed state information is needed from an update trial run. The data collected with this event is used to help keep Windows up to date. - -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.Info.PhaseChange - -The event indicates progress made by the updater. This information assists in keeping Windows up to date. - -The following fields are available: - -- **NewPhase** The phase of progress made. -- **ReleaseVer** The version information for the component in which the change occurred. -- **Time** The system time at which the phase chance occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.AttemptingUpdate - -This event indicates the Operating System Remediation System Service (OSRSS) installer is attempting an update to itself. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.BinaryUpdated - -This event indicates the Operating System Remediation System Service (OSRSS) updated installer binaries with new binaries as part of its self-update process. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.ServiceRestarted - -This event indicates the Operating System Remediation System Service (OSRSS) has restarted after installing an updated version of itself. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.ServiceStopped - -This event indicates the Operating System Remediation System Service (OSRSS) was stopped by a self-updated to install an updated version of itself. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.UpdaterCompleted - -This event indicates the Operating System Remediation System Service (OSRSS) successfully completed the self-update operation. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.Sediment.ServiceInstaller.UpdaterLaunched - -This event indicates the Operating System Remediation System Service (OSRSS) successfully launched the self-updater after downloading it. This information helps ensure Windows is up to date. - -The following fields are available: - -- **InstallerVersion** The version information of the Installer component. -- **Time** The system time at which the event occurred. - - -### Microsoft.Windows.SedimentLauncher.Applicable - -This event is sent when the Windows Update sediment remediations launcher finds that an applicable plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help keep Windows up to date. - -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 - -This event is sent when the Windows Update sediment remediations launcher finishes running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help keep Windows up to date. - -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. -- **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 is sent when the Windows Update sediment remediations launcher starts running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help 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. -- **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 is sent when the Windows Update sediment remediations service finds that an applicable plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help 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. -- **IsSelfUpdateEnabledInOneSettings** Indicates if self update is enabled in One Settings. -- **IsSelfUpdateNeeded** Indicates if self update is needed. -- **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 is sent when the Windows Update sediment remediations service finishes running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help 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. -- **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 is sent when the Windows Update sediment remediations service starts running a plug-in to address issues that may be preventing the sediment device from receiving OS updates. A sediment device is one that has been on a previous OS version for an extended period. The data collected with this event is used to help keep Windows 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. - - -## 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, 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** Retrieves the value associated with the corresponding event name (Field Name). For example: For time related events this will include the system time. - - -## Shared PC events - -### Microsoft.Windows.SharedPC.AccountManager.DeleteUserAccount - -Activity for deletion of a user account for devices set up for Shared PC mode as part of the Transient Account Manager to help keep Windows up to date. Deleting un-used user accounts on Education/Shared PCs frees up disk space to improve Windows Update success rates. - -The following fields are available: - -- **accountType** The type of account that was deleted. Example: AD, Azure Active Directory (Azure AD), or Local -- **deleteState** Whether the attempted deletion of the user account was successful. -- **userSid** The security identifier of the account. -- **wilActivity** Windows Error Reporting data collected when there is a failure in deleting a user account with the Transient Account Manager. See [wilActivity](#wilactivity). - - -### Microsoft.Windows.SharedPC.AccountManager.SinglePolicyEvaluation - -Activity for run of the Transient Account Manager that determines if any user accounts should be deleted for devices set up for Shared PC mode to help keep Windows up to date. Deleting unused user accounts on shared devices frees up disk space to improve Windows Update success rates - -The following fields are available: - -- **evaluationTrigger** When was the Transient Account Manager policies ran? Example: At log off or during maintenance hours -- **totalAccountCount** The number of accounts on a device after running the Transient Account Manager policies. -- **wilActivity** Windows Error Reporting data collected when there is a failure in evaluating accounts to be deleted with the Transient Account Manager. See [wilActivity](#wilactivity). - - -### wilActivity - -This event provides a Windows Internal Library context used for Product and Service diagnostics. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **callContext** The function where the failure occurred. -- **currentContextId** The ID of the current call context where the failure occurred. -- **currentContextMessage** The message of the current call context where the failure occurred. -- **currentContextName** The name of the current call context where the failure occurred. -- **failureCount** The number of failures for this failure ID. -- **failureId** The ID of the failure that occurred. -- **failureType** The type of the failure that occurred. -- **fileName** The file name where the failure occurred. -- **function** The function where the failure occurred. -- **hresult** The HResult of the overall activity. -- **lineNumber** The line number where the failure occurred. -- **message** The message of the failure that occurred. -- **module** The module where the failure occurred. -- **originatingContextId** The ID of the originating call context that resulted in the failure. -- **originatingContextMessage** The message of the originating call context that resulted in the failure. -- **originatingContextName** The name of the originating call context that resulted in the failure. -- **threadId** The ID of the thread on which the activity is executing. - - -### wilResult - -This event provides a Windows Internal Library context used for Product and Service diagnostics. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **callContext** The call context stack where failure occurred. -- **currentContextId** The ID of the current call context where the failure occurred. -- **currentContextMessage** The message of the current call context where the failure occurred. -- **currentContextName** The name of the current call context where the failure occurred. -- **failureCount** The number of failures for this failure ID. -- **failureId** The ID of the failure that occurred. -- **failureType** The type of the failure that occurred. -- **fileName** The file name where the failure occurred. -- **function** The function where the failure occurred. -- **hresult** The HResult of the overall activity. -- **lineNumber** The line number where the failure occurred. -- **message** The message of the failure that occurred. -- **module** The module where the failure occurred. -- **originatingContextId** The ID of the originating call context that resulted in the failure. -- **originatingContextMessage** The message of the originating call context that resulted in the failure. -- **originatingContextName** The name of the originating call context that resulted in the failure. -- **threadId** The ID of the thread on which the activity is executing. - - -## SIH events - -### SIHEngineTelemetry.EvalApplicability - -This event is sent when targeting logic is evaluated to determine if a device is eligible for a given action. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **ActionReasons** If an action has been assessed as inapplicable, the additional logic prevented it. -- **AdditionalReasons** If an action has been assessed as inapplicable, the additional logic prevented it. -- **CachedEngineVersion** The engine DLL version that is being used. -- **EventInstanceID** A unique identifier for event instance. -- **EventScenario** Indicates the purpose of sending this event – whether because the software distribution just started checking for content, or whether it was canceled, succeeded, or failed. -- **HandlerReasons** If an action has been assessed as inapplicable, the installer technology-specific logic prevented it. -- **IsExecutingAction** If the action is presently being executed. -- **ServiceGuid** A unique identifier that represents which service the software distribution client is connecting to (SIH, Windows Update, Microsoft Store, etc.). -- **SihclientVersion** The client version that is being used. -- **StandardReasons** If an action has been assessed as inapplicable, the standard logic the prevented it. -- **StatusCode** Result code of the event (success, cancellation, failure code HResult). -- **UpdateID** A unique identifier for the action being acted upon. -- **WuapiVersion** The Windows Update API version that is currently installed. -- **WuaucltVersion** The Windows Update client version that is currently installed. -- **WuauengVersion** The Windows Update engine version that is currently installed. -- **WUDeviceID** The unique identifier controlled by the software distribution client. - - -### SIHEngineTelemetry.ExecuteAction - -This event is triggered with SIH attempts to execute (e.g. install) the update or action in question. Includes important information like if the update required a reboot. The data collected with this event is used to help keep Windows up to date. - - - -### SIHEngineTelemetry.PostRebootReport - -This event reports the status of an action following a reboot, should one have been required. The data collected with this event is used to help keep Windows up to date. - - - -### SIHEngineTelemetry.SLSActionData - -This event reports if the SIH client was able to successfully parse the manifest describing the actions to be evaluated. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **CachedEngineVersion** The engine DLL version that is being used. -- **EventInstanceID** A unique identifier for event instance. -- **EventScenario** Indicates the purpose of sending this event – whether because the software distribution just started checking for content, or whether it was canceled, succeeded, or failed. -- **FailedParseActions** The list of actions that were not successfully parsed. -- **ParsedActions** The list of actions that were successfully parsed. -- **ServiceGuid** A unique identifier that represents which service the software distribution client is connecting to (SIH, Windows Update, Microsoft Store, etc.). -- **SihclientVersion** The client version that is being used. -- **WuapiVersion** The Windows Update API version that is currently installed. -- **WuaucltVersion** The Windows Update client version that is currently installed. -- **WuauengVersion** The Windows Update engine version that is currently installed. -- **WUDeviceID** The unique identifier controlled by the software distribution client. - - -## Software update events - -### SoftwareUpdateClientTelemetry.CheckForUpdates - -This event sends tracking data about the software distribution client check for content that is applicable to a device, to help keep Windows up to date. - -The following fields are available: - -- **ActivityMatchingId** Contains a unique ID identifying a single CheckForUpdates session from initialization to completion. -- **AllowCachedResults** Indicates if the scan allowed using cached results. -- **ApplicableUpdateInfo** Metadata for the updates which were detected as applicable -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The sku number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BranchReadinessLevel** The servicing branch configured on the device. -- **CachedEngineVersion** For self-initiated healing, the version of the SIH engine that is cached on the device. If the SIH engine does not exist, the value is null. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **CapabilityDetectoidGuid** The GUID for a hardware applicability detectoid that could not be evaluated. -- **CDNCountryCode** Two letter country abbreviation for the Content Distribution Network (CDN) location. -- **CDNId** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. -- **ClientVersion** The version number of the software distribution client. -- **Context** Gives context on where the error has occurred. Example: AutoEnable, GetSLSData, AddService, Misc, or Unknown -- **CurrentMobileOperator** The mobile operator the device is currently connected to. -- **DeferralPolicySources** Sources for any update deferral policies defined (GPO = 0x10, MDM = 0x100, Flight = 0x1000, UX = 0x10000). -- **DeferredUpdates** Update IDs which are currently being deferred until a later time -- **DeviceModel** What is the device model. -- **DriverError** The error code hit during a driver scan. This is 0 if no error was encountered. -- **DriverExclusionPolicy** Indicates if the policy for not including drivers with Windows Update is enabled. -- **DriverSyncPassPerformed** Were drivers scanned this time? -- **EventInstanceID** A globally unique identifier for event instance. -- **EventScenario** Indicates the purpose of sending this event - whether because the software distribution just started checking for content, or whether it was canceled, succeeded, or failed. -- **ExtendedMetadataCabUrl** Hostname that is used to download an update. -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough. -- **FailedUpdateGuids** The GUIDs for the updates that failed to be evaluated during the scan. -- **FailedUpdatesCount** The number of updates that failed to be evaluated during the scan. -- **FeatureUpdateDeferral** The deferral period configured for feature OS updates on the device (in days). -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FeatureUpdatePausePeriod** The pause duration configured for feature OS updates on the device (in days). -- **FlightBranch** The branch that a device is on if participating in flighting (pre-release builds). -- **FlightRing** The ring (speed of getting builds) that a device is on if participating in flighting (pre-release builds). -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **IntentPFNs** Intended application-set metadata for atomic update scenarios. -- **IPVersion** Indicates whether the download took place over IPv4 or IPv6 -- **IsWUfBDualScanEnabled** Indicates if Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Indicates if Windows Update for Business is enabled on the device. -- **IsWUfBFederatedScanDisabled** Indicates if Windows Update for Business federated scan is disabled on the device. -- **MetadataIntegrityMode** The mode of the update transport metadata integrity check. 0-Unknown, 1-Ignoe, 2-Audit, 3-Enforce -- **MSIError** The last error that was encountered during a scan for updates. -- **NetworkConnectivityDetected** Indicates the type of network connectivity that was detected. 0 - IPv4, 1 - IPv6 -- **NumberOfApplicableUpdates** The number of updates which were ultimately deemed applicable to the system after the detection process is complete -- **NumberOfApplicationsCategoryScanEvaluated** The number of categories (apps) for which an app update scan checked -- **NumberOfLoop** The number of round trips the scan required -- **NumberOfNewUpdatesFromServiceSync** The number of updates which were seen for the first time in this scan -- **NumberOfUpdatesEvaluated** The total number of updates which were evaluated as a part of the scan -- **NumFailedMetadataSignatures** The number of metadata signatures checks which failed for new metadata synced down. -- **Online** Indicates if this was an online scan. -- **PausedUpdates** A list of UpdateIds which that currently being paused. -- **PauseFeatureUpdatesEndTime** If feature OS updates are paused on the device, this is the date and time for the end of the pause time window. -- **PauseFeatureUpdatesStartTime** If feature OS updates are paused on the device, this is the date and time for the beginning of the pause time window. -- **PauseQualityUpdatesEndTime** If quality OS updates are paused on the device, this is the date and time for the end of the pause time window. -- **PauseQualityUpdatesStartTime** If quality OS updates are paused on the device, this is the date and time for the beginning of the pause time window. -- **PhonePreviewEnabled** Indicates whether a phone was getting preview build, prior to flighting (pre-release builds) being introduced. -- **ProcessName** The process name of the caller who initiated API calls, in the event where CallerApplicationName was not provided. -- **QualityUpdateDeferral** The deferral period configured for quality OS updates on the device (in days). -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **QualityUpdatePausePeriod** The pause duration configured for quality OS updates on the device (in days). -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one -- **ScanDurationInSeconds** The number of seconds a scan took -- **ScanEnqueueTime** The number of seconds it took to initialize a scan -- **ServiceGuid** An ID which represents which service the software distribution client is checking for content (Windows Update, Microsoft 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). -- **SyncType** Describes the type of scan the event was -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **TargetMetadataVersion** For self-initiated healing, this is the target version of the SIH engine to download (if needed). If not, the value is null. -- **TotalNumMetadataSignatures** The total number of metadata signatures checks done for new metadata that was synced down. -- **WebServiceRetryMethods** Web service method requests that needed to be retried to complete operation. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. - - -### SoftwareUpdateClientTelemetry.Commit - -This event sends data on whether the Update Service has been called to execute an upgrade, to help keep Windows up to date. - -The following fields are available: - -- **BiosFamily** Device family as defined in the system BIOS -- **BiosName** Name of the system BIOS -- **BiosReleaseDate** Release date of the system BIOS -- **BiosSKUNumber** Device SKU as defined in the system BIOS -- **BIOSVendor** Vendor of the system BIOS -- **BiosVersion** Version of the system BIOS -- **BundleId** Identifier associated with the specific content bundle; should not be all zeros if the bundleID was found. -- **BundleRevisionNumber** Identifies the revision number of the content bundle -- **CallerApplicationName** Name provided by the caller who initiated API calls into the software distribution client -- **ClientVersion** Version number of the software distribution client -- **DeviceModel** Device model as defined in the system bios -- **EventInstanceID** A globally unique identifier for event instance -- **EventScenario** Indicates the purpose of the event - whether because scan started, succeeded, failed, etc. -- **EventType** Possible values are "Child", "Bundle", "Release" or "Driver". -- **FlightId** The specific id of the flight the device is getting -- **HandlerType** Indicates the kind of content (app, driver, windows patch, etc.) -- **RevisionNumber** Identifies the revision number of this specific piece of content -- **ServiceGuid** A unique identifier for the service that the software distribution client is installing content for (Windows Update, Microsoft Store, etc). -- **SystemBIOSMajorRelease** Major release version of the system bios -- **SystemBIOSMinorRelease** Minor release version of the system bios -- **UpdateId** Identifier associated with the specific piece of content -- **WUDeviceID** Unique device id controlled by the software distribution client - - -### SoftwareUpdateClientTelemetry.Download - -This event sends tracking data about the software distribution client download of the content for that update, to help keep Windows up to date. - -The following fields are available: - -- **ActiveDownloadTime** How long the download took, in seconds, excluding time where the update wasn't actively being downloaded. -- **AppXBlockHashValidationFailureCount** A count of the number of blocks that have failed validation after being downloaded. -- **AppXDownloadScope** Indicates the scope of the download for application content. -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The SKU number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BundleBytesDownloaded** Number of bytes downloaded for the specific content bundle. -- **BundleId** Identifier associated with the specific content bundle. -- **BundleRepeatFailFlag** Indicates whether this particular update bundle previously failed to download. -- **BundleRevisionNumber** Identifies the revision number of the content bundle. -- **BytesDownloaded** Number of bytes that were downloaded for an individual piece of content (not the entire bundle). -- **CallerApplicationName** The name provided by the application that initiated API calls into the software distribution client. -- **CbsDownloadMethod** The method used for downloading the update content related to the Component Based Servicing (CBS) technology. -- **CDNCountryCode** Two letter country abbreviation for the Content Distribution Network (CDN) location. -- **CDNId** ID which defines which CDN the software distribution client downloaded the content from. -- **ClientVersion** The version number of the software distribution client. -- **CurrentMobileOperator** The mobile operator the device is currently connected to. -- **DeviceModel** The model of the device. -- **DownloadPriority** Indicates whether a download happened at background, normal, or foreground priority. -- **DownloadScenarioId** A unique ID for a given download, used to tie together Windows Update and Delivery Optimizer events. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventScenario** Indicates the purpose for sending this event: whether because the software distribution just started downloading content; or whether it was canceled, succeeded, or failed. -- **EventType** Identifies the type of the event (Child, Bundle, or Driver). -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough. -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FlightBranch** The branch that a device is on if participating in flighting (pre-release builds). -- **FlightBuildNumber** If this download was for a flight (pre-release build), this indicates the build number of that flight. -- **FlightId** The specific ID of the flight (pre-release build) the device is getting. -- **FlightRing** The ring (speed of getting builds) that a device is on if participating in flighting (pre-release builds). -- **HandlerType** Indicates what kind of content is being downloaded (app, driver, windows patch, etc.). -- **HardwareId** If this download was for a driver targeted to a particular device model, this ID indicates the model of the device. -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **HostName** The parent URL the content is downloading from. -- **IPVersion** Indicates whether the download took place over IPv4 or IPv6. -- **IsDependentSet** Indicates whether a driver is a part of a larger System Hardware/Firmware Update -- **IsWUfBDualScanEnabled** Indicates if Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Indicates if Windows Update for Business is enabled on the device. -- **NetworkCostBitMask** A flag indicating the cost of the network (congested, fixed, variable, over data limit, roaming, etc.) used for downloading the update content. -- **NetworkRestrictionStatus** More general version of NetworkCostBitMask, specifying whether Windows considered the current network to be "metered." -- **PackageFullName** The package name of the content. -- **PhonePreviewEnabled** Indicates whether a phone was opted-in to getting preview builds, prior to flighting (pre-release builds) being introduced. -- **ProcessName** The process name of the application that initiated API calls, in the event where CallerApplicationName was not provided. -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **RegulationReason** The reason that the update is regulated -- **RelatedCV** The Correlation Vector that was used before the most recent change to a new Correlation Vector. -- **RepeatFailFlag** Indicates whether this specific piece of content had previously failed to download. -- **RevisionNumber** The revision number of the specified piece of content. -- **ServiceGuid** A unique identifier for the service that the software distribution client is installing content for (Windows Update, Microsoft Store, etc). -- **Setup360Phase** Identifies the active phase of the upgrade download if the current download is for an Operating System upgrade. -- **ShippingMobileOperator** The mobile operator linked to the device when the device shipped. -- **StatusCode** Indicates the result of a Download event (success, cancellation, failure code HResult). -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **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. -- **ThrottlingServiceHResult** Result code (success/failure) while contacting a web service to determine whether this device should download content yet. -- **TimeToEstablishConnection** Time (in milliseconds) it took to establish the connection prior to beginning downloaded. -- **TotalExpectedBytes** The total size (in Bytes) expected to be downloaded. -- **UpdateId** An identifier associated with the specific piece of content. -- **UpdateImportance** Indicates whether the content was marked as Important, Recommended, or Optional. -- **UsedDO** Whether the download used the Delivery Optimization (DO) service. -- **UsedSystemVolume** Indicates whether the content was downloaded to the device's main system storage drive, or an alternate storage drive. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. - - -### SoftwareUpdateClientTelemetry.DownloadCheckpoint - -This event provides a checkpoint between each of the Windows Update download phases for UUP content. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client -- **ClientVersion** The version number of the software distribution client -- **EventScenario** Indicates the purpose of sending this event - whether because the software distribution just started checking for content, or whether it was canceled, succeeded, or failed -- **EventType** Possible values are "Child", "Bundle", "Release" or "Driver" -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough -- **FileId** A hash that uniquely identifies a file -- **FileName** Name of the downloaded file -- **FlightId** The unique identifier for each flight -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one -- **RevisionNumber** Unique revision number of Update -- **ServiceGuid** An ID which represents which service the software distribution client is checking for content (Windows Update, Microsoft Store, etc.) -- **StatusCode** Indicates the result of a CheckForUpdates event (success, cancellation, failure code HResult) -- **UpdateId** Unique Update ID -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue - - -### SoftwareUpdateClientTelemetry.DownloadHeartbeat - -This event allows tracking of ongoing downloads and contains data to explain the current state of the download. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **BytesTotal** Total bytes to transfer for this content -- **BytesTransferred** Total bytes transferred for this content at the time of heartbeat -- **CallerApplicationName** Name provided by the caller who initiated API calls into the software distribution client -- **ClientVersion** The version number of the software distribution client -- **ConnectionStatus** Indicates the connectivity state of the device at the time of heartbeat -- **CurrentError** Last (transient) error encountered by the active download -- **DownloadFlags** Flags indicating if power state is ignored -- **DownloadState** Current state of the active download for this content (queued, suspended, or progressing) -- **EventType** Possible values are "Child", "Bundle", or "Driver" -- **FlightId** The unique identifier for each flight -- **IsNetworkMetered** Indicates whether Windows considered the current network to be ?metered" -- **MOAppDownloadLimit** Mobile operator cap on size of application downloads, if any -- **MOUpdateDownloadLimit** Mobile operator cap on size of operating system update downloads, if any -- **PowerState** Indicates the power state of the device at the time of heartbeat (DC, AC, Battery Saver, or Connected Standby) -- **RelatedCV** The previous correlation vector that was used by the client, before swapping with a new one -- **ResumeCount** Number of times this active download has resumed from a suspended state -- **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) -- **SuspendCount** Number of times this active download has entered a suspended state -- **SuspendReason** Last reason for why this active download entered a suspended state -- **UpdateId** Identifier associated with the specific piece of content -- **WUDeviceID** Unique device id controlled by the software distribution client - - -### SoftwareUpdateClientTelemetry.Install - -This event sends tracking data about the software distribution client installation of the content for that update, to help keep Windows up to date. - -The following fields are available: - -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The sku number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BundleId** Identifier associated with the specific content bundle; should not be all zeros if the bundleID was found. -- **BundleRepeatFailFlag** Indicates whether this particular update bundle previously failed to install. -- **BundleRevisionNumber** Identifies the revision number of the content bundle. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **ClientVersion** The version number of the software distribution client. -- **CSIErrorType** The stage of CBS installation where it failed. -- **CurrentMobileOperator** The mobile operator to which the device is currently connected. -- **DeviceModel** The device model. -- **DriverPingBack** Contains information about the previous driver and system state. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventScenario** Indicates the purpose of sending this event - whether because the software distribution just started installing content, or whether it was canceled, succeeded, or failed. -- **EventType** Possible values are Child, Bundle, or Driver. -- **ExtendedErrorCode** The extended error code. -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode is not specific enough. -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FlightBranch** The branch that a device is on if participating in the Windows Insider Program. -- **FlightBuildNumber** If this installation was for a Windows Insider build, this is the build number of that build. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **FlightRing** The ring that a device is on if participating in the Windows Insider Program. -- **HandlerType** Indicates what kind of content is being installed (for example, app, driver, Windows update). -- **HardwareId** If this install was for a driver targeted to a particular device model, this ID indicates the model of the device. -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **IntentPFNs** Intended application-set metadata for atomic update scenarios. -- **IsDependentSet** Indicates whether the driver is part of a larger System Hardware/Firmware update. -- **IsFinalOutcomeEvent** Indicates whether this event signals the end of the update/upgrade process. -- **IsFirmware** Indicates whether this update is a firmware update. -- **IsSuccessFailurePostReboot** Indicates whether the update succeeded and then failed after a restart. -- **IsWUfBDualScanEnabled** Indicates whether Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Indicates whether Windows Update for Business is enabled on the device. -- **MergedUpdate** Indicates whether the OS update and a BSP update merged for installation. -- **MsiAction** The stage of MSI installation where it failed. -- **MsiProductCode** The unique identifier of the MSI installer. -- **PackageFullName** The package name of the content being installed. -- **PhonePreviewEnabled** Indicates whether a phone was getting preview build, prior to flighting being introduced. -- **ProcessName** The process name of the caller who initiated API calls, in the event that CallerApplicationName was not provided. -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one -- **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.). -- **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). -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **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. -- **TransactionCode** The ID that represents a given MSI installation. -- **UpdateId** Unique update ID. -- **UpdateImportance** Indicates whether a piece of content was marked as Important, Recommended, or Optional. -- **UsedSystemVolume** Indicates whether the content was downloaded and then installed from the device's main system storage drive, or an alternate storage drive. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. - - -### SoftwareUpdateClientTelemetry.UpdateDetected - -This event sends data about an AppX app that has been updated from the Microsoft Store, including what app needs an update and what version/architecture is required, in order to understand and address problems with apps getting required updates. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **ApplicableUpdateInfo** Metadata for the updates which were detected as applicable. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **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.). -- **WUDeviceID** The unique device ID controlled by the software distribution client. - - -### SoftwareUpdateClientTelemetry.UpdateMetadataIntegrity - -This event helps to identify whether update content has been tampered with and protects against man-in-the-middle attack. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CallerApplicationName** Name of application making the Windows Update request. Used to identify context of request. -- **EndpointUrl** The endpoint URL where the device obtains update metadata. This is used to distinguish between test, staging, and production environments. -- **EventScenario** The purpose of this event, such as scan started, scan succeeded, or scan failed. -- **ExtendedStatusCode** Secondary status code for certain scenarios where StatusCode was not specific enough. -- **LeafCertId** The integral ID from the FragmentSigning data for the certificate that failed. -- **ListOfSHA256OfIntermediateCerData** A semicolon delimited list of base64 encoding of hashes for the Base64CerData in the FragmentSigning data of an intermediate certificate. -- **MetadataIntegrityMode** The mode of the transport metadata integrity check. 0 = unknown; 1 = ignore; 2 = audit; 3 = enforce -- **MetadataSignature** A base64-encoded string of the signature associated with the update metadata (specified by revision ID). -- **RawMode** The raw unparsed mode string from the SLS response. This field is null if not applicable. -- **RawValidityWindowInDays** The raw unparsed validity window string in days of the timestamp token. This field is null if not applicable. -- **RevisionId** The revision ID for a specific piece of content. -- **RevisionNumber** The revision number for a specific piece of content. -- **ServiceGuid** Identifies the service to which the software distribution client is connected, Example: Windows Update or Microsoft Store -- **SHA256OfLeafCerData** A base64 encoding of the hash for the Base64CerData in the FragmentSigning data of the leaf certificate. -- **SHA256OfLeafCertPublicKey** A base64 encoding of the hash of the Base64CertData in the FragmentSigning data of the leaf certificate. -- **SHA256OfTimestampToken** An encoded string of the timestamp token. -- **SignatureAlgorithm** The hash algorithm for the metadata signature. -- **SLSPrograms** A test program to which a device may have opted in. Example: Insider Fast -- **StatusCode** Result code of the event (success, cancellation, failure code HResult). -- **TimestampTokenCertThumbprint** The thumbprint of the encoded timestamp token. -- **TimestampTokenId** The time this was created. It is encoded in a timestamp blob and will be zero if the token is malformed. -- **UpdateId** The update ID for a specific piece of content. -- **ValidityWindowInDays** The validity window that's in effect when verifying the timestamp. - - -## Surface events - -### Microsoft.Surface.Battery.Prod.BatteryInfoEvent - -This event includes the hardware level data about battery performance. The data collected with this event is used to help keep Windows products and services performing properly. - -The following fields are available: - -- **pszBatteryDataXml** Battery performance data. -- **szBatteryInfo** Battery performance data. - - -## Update Assistant events - -### Microsoft.Windows.UpdateAssistant.Orchestrator.BlockingEventId - -The event sends basic info on the reason that Windows 10 was not updated due to compatibility issues, previous rollbacks, or admin policies. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **ApplicabilityBlockedReason** Blocked due to an applicability issue. -- **BlockWuUpgrades** The upgrade assistant is currently blocked. -- **clientID** An identification of the current release of Update Assistant. -- **CloverTrail** This device is Clovertrail. -- **DeviceIsMdmManaged** This device is MDM managed. -- **IsNetworkAvailable** If the device network is not available. -- **IsNetworkMetered** If network is metered. -- **IsSccmManaged** This device is managed by Configuration Manager. -- **NewlyInstalledOs** OS is newly installed quiet period. -- **PausedByPolicy** Updates are paused by policy. -- **RecoveredFromRS3** Previously recovered from RS3. -- **RS1UninstallActive** Blocked due to an active RS1 uninstall. -- **RS3RollBacks** Exceeded number of allowable RS3 rollbacks. -- **triggerTaskSource** Describe which task launches this instance. -- **WsusManaged** This device is WSUS managed. -- **ZeroExhaust** This device is zero exhaust. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.DeniedLaunchEventId - -The event sends basic info when a device was blocked or prevented from updating to the latest Windows 10 version. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **clientID** An identification of the current release of Update Assistant. -- **denyReason** All the reasons why the Update Assistant was prevented from launching. Bitmask with values from UpdateAssistant.cpp eUpgradeModeReason. -- **triggerTaskSource** Describe which task launches this instance. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.FailedLaunchEventId - -This event indicates that Update Assistant Orchestrator failed to launch Update Assistant. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **calendarRun** Standard time-based triggered task. -- **clientID** An identification of the current release of Update Assistant. -- **hResult** Error code of the Update Assistant Orchestrator failure. -- **triggerTaskSource** Describe which task launches this instance. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.FailedOneSettingsQueryEventId - -This event indicates that One Settings was not queried by update assistant. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **clientID** An identification of the current release of Update Assistant. -- **hResult** Error code of One Settings query failure. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.LaunchEventId - -This event sends basic information on whether the device should be updated to the latest Windows 10 version. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **autoStartRunCount** The auto start run count of Update Assistant. -- **clientID** The ID of the current release of Update Assistant. -- **launchMode** Indicates the type of launch performed. -- **launchTypeReason** A bitmask of all the reasons for type of launch. -- **triggerTaskSource** Indicates which task launches this instance. - - -### Microsoft.Windows.UpdateAssistant.Orchestrator.RestoreEventId - -The event sends basic info on whether the Windows 10 update notification has previously launched. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **clientID** ID of the current release of Update Assistant. -- **restoreReason** All the reasons for the restore. -- **triggerTaskSource** Indicates which task launches this instance. - - -## Update events - -### Update360Telemetry.Revert - -This event sends data relating to the Revert phase of updating Windows. The data collected with this event is used to help keep Windows secure and up to date. - -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. The data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ErrorCode** The error code returned for the current merge phase. -- **FlightId** Unique ID for each flight. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -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 this update. The data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - - - -### 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 data collected with this event is used to help keep Windows secure and up to date. - -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. - - -## Update notification events - -### Microsoft.Windows.UpdateNotificationPipeline.JavascriptJavascriptCriticalGenericMessage - -This event indicates that Javascript is reporting a schema and a set of values for critical telemetry. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version of the current campaign. -- **CampaignID** ID of the currently running campaign. -- **ConfigCatalogVersion** Current catalog version of the update notification. -- **ContentVersion** Content version of the current update notification campaign. -- **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. -- **key10** UI interaction data. -- **key11** UI interaction data. -- **key12** UI interaction data. -- **key13** UI interaction data. -- **key14** UI interaction data. -- **key15** UI interaction data. -- **key16** UI interaction data. -- **key17** UI interaction data. -- **key18** UI interaction data. -- **key19** UI interaction data. -- **key2** UI interaction data. -- **key20** UI interaction data. -- **key21** UI interaction data. -- **key22** UI interaction data. -- **key23** UI interaction data. -- **key24** UI interaction data. -- **key25** UI interaction data. -- **key26** The interaction data for the user interface. -- **key27** UI interaction data. -- **key28** UI interaction data. -- **key29** UI interaction data. -- **key3** UI interaction data. -- **key30** UI interaction data. -- **key4** UI interaction data. -- **key5** UI interaction data. -- **key6** UI interaction data. -- **key7** UI interaction data. -- **key8** UI interaction data. -- **key9** UI interaction data. -- **PackageVersion** Current package version of the update notification. -- **schema** UI interaction type. - - -### Microsoft.Windows.UpdateNotificationPipeline.UNPCampaignHeartbeat - -This event is sent at the start of each campaign, to be used as a heartbeat. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version for the current campaign. -- **CampaignID** Current campaign that is running on Update Notification Pipeline. -- **ConfigCatalogVersion** Current catalog version of Update Notification Pipeline. -- **ContentVersion** Content version for the current campaign on Update Notification Pipeline. -- **CV** Correlation vector. -- **DetectorVersion** Most recently run detector version for the current campaign on Update Notification Pipeline. -- **GlobalEventCounter** Client-side counter that indicates the event ordering sent by the user. -- **PackageVersion** Current package version for Update Notification Pipeline. - - -### Microsoft.Windows.UpdateNotificationPipeline.UNPCampaignManagerCleaningCampaign - -This event indicates that the Campaign Manager is cleaning up the campaign content. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version for the current campaign. -- **CampaignID** The current campaign that is running on Update Notification Pipeline (UNP). -- **ConfigCatalogVersion** The current catalog version of the Update Notification Pipeline (UNP). -- **ContentVersion** Content version for the current campaign on UNP. -- **CV** Correlation vector -- **DetectorVersion** Most recently run detector version for the current campaign on UNP. -- **GlobalEventCounter** Client-side counter that indicates the event ordering sent by the user. -- **PackageVersion** Current UNP package version. - - -### Microsoft.Windows.UpdateNotificationPipeline.UnpCampaignManagerGetIsCamppaignCompleteFailed - -This event is sent when a campaign completion status query fails. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version for the current campaign. -- **CampaignID** Current campaign that is running on Update Notification Pipeline (UNP). -- **ConfigCatalogVersion** Current catalog version of UNP. -- **ContentVersion** Content version for the current campaign on UNP. -- **CV** Correlation vector. -- **DetectorVersion** Most recently run detector version for the current campaign on UNP. -- **GlobalEventCounter** Client-side counter that indicates the event ordering sent by the user. -- **hresult** HRESULT of the failure. -- **PackageVersion** Current UNP package version. - - -### Microsoft.Windows.UpdateNotificationPipeline.UNPCampaignManagerHeartbeat - -This event is sent at the start of the CampaignManager event and is intended to be used as a heartbeat. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version for the current campaign. -- **CampaignID** Currently campaign that is running on Update Notification Pipeline (UNP). -- **ConfigCatalogVersion** Current catalog version of UNP. -- **ContentVersion** Content version for the current campaign on UNP. -- **CV** Correlation vector. -- **DetectorVersion** Most recently run detector version for the current campaign on UNP. -- **GlobalEventCounter** Client-side counter that indicates the event ordering sent by the user. -- **PackageVersion** Current UNP package version. - - -### Microsoft.Windows.UpdateNotificationPipeline.UnpCampaignManagerRunCampaignFailed - -This event is sent when the Campaign Manager encounters an unexpected error while running the campaign. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version for the current campaign. -- **CampaignID** Currently campaign that's running on Update Notification Pipeline (UNP). -- **ConfigCatalogVersion** Current catalog version of UNP. -- **ContentVersion** Content version for the current campaign on UNP. -- **CV** Correlation vector. -- **DetectorVersion** Most recently run detector version for the current campaign on UNP. -- **GlobalEventCounter** Client-side counter that indicates the event ordering sent by the user. -- **hresult** HRESULT of the failure. -- **PackageVersion** Current UNP package version. - - -## Upgrade events - -### FacilitatorTelemetry.DCATDownload - -This event indicates whether devices received additional or critical supplemental content during an OS Upgrade, to help keep Windows up to date and secure. - -The following fields are available: - -- **DownloadSize** Download size of payload. -- **ElapsedTime** Time taken to download payload. -- **MediaFallbackUsed** Used to determine if we used Media CompDBs to figure out package requirements for the upgrade. -- **ResultCode** Result returned by the Facilitator DCAT call. -- **Scenario** Dynamic Update scenario (Image DU, or Setup DU). -- **Type** Type of package that was downloaded. - - -### FacilitatorTelemetry.DUDownload - -This event returns data about the download of supplemental packages critical to upgrading a device to the next version of Windows. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **PackageCategoriesFailed** Lists the categories of packages that failed to download. -- **PackageCategoriesSkipped** Lists the categories of package downloads that were skipped. - - -### FacilitatorTelemetry.InitializeDU - -This event determines whether devices received additional or critical supplemental content during an OS upgrade. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DCATUrl** The Delivery Catalog (DCAT) URL we send the request to. -- **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. - - -### 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, canceled. -- **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, canceled. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -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, canceled. -- **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, canceled -- **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 Windows Update scenario, 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. -- **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, canceled. -- **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, canceled. -- **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, canceled. -- **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. - -The following fields are available: - -- **FlightData** Specifies a unique identifier for each group of Windows Insider builds. -- **InstanceId** Retrieves a unique identifier for each instance of a setup session. -- **Operation** Facilitator’s last known operation (scan, download, etc.). -- **ReportId** ID for tying together events stream side. -- **ResultCode** Result returned for the entire setup operation. -- **Scenario** Dynamic Update scenario (Image DU, or Setup DU). -- **ScenarioId** Identifies the update scenario. -- **TargetBranch** Branch of the target OS. -- **TargetBuild** Build of the target OS. - - -### Setup360Telemetry.Setup360MitigationResult - -This event sends data indicating the result of each setup mitigation. The data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 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** 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.DetectionFailed - -This event is sent when WaaSMedic fails to apply the named diagnostic. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **diagnostic** Parameter where the diagnostic failed. -- **hResult** Error code from attempting the diagnostic. -- **isDetected** Flag indicating whether the condition was detected. -- **pluginName** Name of the attempted diagnostic. -- **versionString** The version number of the remediation engine. - - -### Microsoft.Windows.WaaSMedic.EngineFailed - -This event indicates failure during medic engine execution. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **hResult** Error code from the execution. -- **versionString** Version of Medic engine. - - -### Microsoft.Windows.WaaSMedic.RemediationFailed - -This event is sent when the WaaS Medic update stack remediation tool fails to apply a described resolution to a problem that is blocking Windows Update from operating correctly on a target device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **diagnostic** Parameter where the resolution failed. -- **hResult** Error code that resulted from attempting the resolution. -- **isRemediated** Indicates whether the condition was remediated. -- **pluginName** Name of the attempted resolution. -- **versionString** Version of the engine. - - -### Microsoft.Windows.WaaSMedic.SummaryEvent - -This event provides the result of the WaaSMedic operation. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **detectionSummary** Result of each applicable detection that was run. -- **featureAssessmentImpact** WaaS Assessment impact for feature updates. -- **hrEngineResult** Error code from the engine operation. -- **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** Relying on backup feature assessment. -- **usingBackupQualityAssessment** Relying on backup quality assessment. -- **usingCachedFeatureAssessment** WaaS Medic run did not get OS build age from the network on the previous run. -- **usingCachedQualityAssessment** WaaS Medic run did not get OS revision age from the network on the previous run. -- **versionString** Version of the WaaSMedic engine. - - -## Windows Error Reporting events - -### Microsoft.Windows.WERVertical.OSCrash - -This event sends binary data from the collected dump file whenever 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 - -This event provides a denominator to calculate MTTF (mean-time-to-failure) for crashes and other errors, to help keep Windows up to date. - -The following fields are available: - -- **Value** Standard UTC emitted DP value structure See [Microsoft.Windows.WER.MTT.Value](#microsoftwindowswermttvalue). - - -### Microsoft.Windows.WER.MTT.Value - -This event is used for differential privacy to help keep Windows up to date. - -The following fields are available: - -- **Algorithm** Privacy protecting algorithm used for randomization. -- **DPRange** Maximum mean value range. -- **DPValue** Randomized bit value (0 or 1) that can be reconstituted over a large population to estimate mean. -- **Epsilon** Constant used in algorithm for randomization. -- **HistType** Histogram type. -- **PertProb** Constant used in algorithm for randomization. - - -## Windows Store events - -### Microsoft.Windows.Store.StoreActivating - -This event sends tracking data about when the Store app activation via protocol URI is in progress, to help keep Windows up to date. - -The following fields are available: - -- **correlationVectorRoot** Identifies multiple events within a session/sequence. Initial value before incrementation or extension. -- **protocolUri** Protocol URI used to activate the store. -- **reason** The reason for activating the store. - - -### Microsoft.Windows.StoreAgent.Telemetry.AbortedInstallation - -This event is sent when an installation or update is canceled by a user or the system and is used to help keep Windows Apps up to date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** Number of retry attempts before it was canceled. -- **BundleId** The Item Bundle ID. -- **CategoryId** The Item Category ID. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed before this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Was this requested by a user? -- **IsMandatory** Was this a mandatory update? -- **IsRemediation** Was this a remediation install? -- **IsRestore** Is this automatically restoring a previously acquired product? -- **IsUpdate** Flag indicating if this is an update. -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The product family name of the product being installed. -- **ProductId** The identity of the package or packages being installed. -- **SystemAttemptNumber** The total number of automatic attempts at installation before it was canceled. -- **UserAttemptNumber** The total number of user attempts at installation before it was canceled. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.BeginGetInstalledContentIds - -This event is sent when an inventory of the apps installed is started to determine whether updates for those apps are available. It's used to help keep Windows up-to-date and secure. - - - -### Microsoft.Windows.StoreAgent.Telemetry.BeginUpdateMetadataPrepare - -This event is sent when the Store Agent cache is refreshed with any available package updates. It's used to help keep Windows up-to-date and secure. - - - -### Microsoft.Windows.StoreAgent.Telemetry.CancelInstallation - -This event is sent when an app update or installation is canceled while in interactive mode. This can be canceled by the user or the system. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all package or packages to be downloaded and installed. -- **AttemptNumber** Total number of installation attempts. -- **BundleId** The identity of the Windows Insider build that is associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Was this requested by a user? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this an automatic restore of a previously acquired product? -- **IsUpdate** Is this a product update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of all packages to be downloaded and installed. -- **PreviousHResult** The previous HResult code. -- **PreviousInstallState** Previous installation state before it was canceled. -- **ProductId** The name of the package or packages requested for installation. -- **RelatedCV** Correlation Vector of a previous performed action on this product. -- **SystemAttemptNumber** Total number of automatic attempts to install before it was canceled. -- **UserAttemptNumber** Total number of user attempts to install before it was canceled. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.CompleteInstallOperationRequest - -This event is sent at the end of app installations or updates to help keep Windows up-to-date and secure. - -The following fields are available: - -- **CatalogId** The Store Product ID of the app being installed. -- **HResult** HResult code of the action being performed. -- **IsBundle** Is this a bundle? -- **PackageFamilyName** The name of the package being installed. -- **ProductId** The Store Product ID of the product being installed. -- **SkuId** Specific edition of the item being installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndAcquireLicense - -This event is sent after the license is acquired when a product is being installed. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** Includes a set of package full names for each app that is part of an atomic set. -- **AttemptNumber** The total number of attempts to acquire this product. -- **BundleId** The bundle ID -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** HResult code to show the result of the operation (success/failure). -- **IsBundle** Is this a bundle? -- **IsInteractive** Did the user initiate the installation? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this happening after a device restore? -- **IsUpdate** Is this an update? -- **ParentBundleId** The parent bundle ID (if it's part of a bundle). -- **PFN** Product Family Name of the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The number of attempts by the system to acquire this product. -- **UserAttemptNumber** The number of attempts by the user to acquire this product -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndDownload - -This event is sent after an app is downloaded to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The name of all packages to be downloaded and installed. -- **AttemptNumber** Number of retry attempts before it was canceled. -- **BundleId** The identity of the Windows Insider build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **DownloadSize** The total size of the download. -- **ExtendedHResult** Any extended HResult error codes. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this initiated by the user? -- **IsMandatory** Is this a mandatory installation? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this a restore of a previously acquired product? -- **IsUpdate** Is this an update? -- **ParentBundleId** The parent bundle ID (if it's part of a bundle). -- **PFN** The Product Family Name of the app being download. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The number of attempts by the system to download. -- **UserAttemptNumber** The number of attempts by the user to download. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndFrameworkUpdate - -This event is sent when an app update requires an updated Framework package and the process starts to download it. It is used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed before this operation. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndGetInstalledContentIds - -This event is sent after sending the inventory of the products installed to determine whether updates for those products are available. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed before this operation. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndInstall - -This event is sent after a product has been installed to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **ExtendedHResult** The extended HResult error code. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this an interactive installation? -- **IsMandatory** Is this a mandatory installation? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this automatically restoring a previously acquired product? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** Product Family Name of the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** Licensing identity of this package. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndScanForUpdates - -This event is sent after a scan for product updates to determine if there are packages to install. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IsApplicability** Is this request to only check if there are any applicable packages to install? -- **IsInteractive** Is this user requested? -- **IsOnline** Is the request doing an online check? - - -### Microsoft.Windows.StoreAgent.Telemetry.EndSearchUpdatePackages - -This event is sent after searching for update packages to install. It is used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndStageUserData - -This event is sent after restoring user data (if any) that needs to be restored following a product install. It is used to keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The name of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of system attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndUpdateMetadataPrepare - -This event is sent after a scan for available app updates to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed. - - -### Microsoft.Windows.StoreAgent.Telemetry.FulfillmentComplete - -This event is sent at the end of an app install or update to help keep Windows up-to-date and secure. - -The following fields are available: - -- **CatalogId** The name of the product catalog from which this app was chosen. -- **FailedRetry** Indicates whether the installation or update retry was successful. -- **HResult** Resulting HResult error/success code of this call -- **PFN** Package Family Name of the app that being installed or updated -- **ProductId** Product Id of the app that is being updated or installed - - -### Microsoft.Windows.StoreAgent.Telemetry.FulfillmentInitiate - -This event is sent at the beginning of an app install or update to help keep Windows up-to-date and secure. - -The following fields are available: - -- **CatalogId** The name of the product catalog from which this app was chosen. -- **PFN** The Package Family Name of the app that is being installed or updated. -- **ProductId** The product ID of the app that is being updated or installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.InstallOperationRequest - -This event is sent when a product install or update is initiated, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **BundleId** The identity of the build associated with this product. -- **CatalogId** If this product is from a private catalog, the Store Product ID for the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SkuId** Specific edition ID being installed. -- **VolumePath** The disk path of the installation. - - -### Microsoft.Windows.StoreAgent.Telemetry.PauseInstallation - -This event is sent when a product install or update is paused (either by a user or the system), to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The Product Full Name. -- **PreviousHResult** The result code of the last action performed before this operation. -- **PreviousInstallState** Previous state before the installation or update was paused. -- **ProductId** The Store Product ID for the product being installed. -- **RelatedCV** Correlation Vector of a previous performed action on this product. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.ResumeInstallation - -This event is sent when a product install or update is resumed (either by a user or the system), to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed before this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **IsUserRetry** Did the user initiate the retry? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **PreviousHResult** The previous HResult error code. -- **PreviousInstallState** Previous state before the installation was paused. -- **ProductId** The Store Product ID for the product being installed. -- **RelatedCV** Correlation Vector for the original install before it was resumed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.ResumeOperationRequest - -This event is sent when a product install or update is resumed by a user or on installation retries, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **ProductId** The Store Product ID for the product being installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.SearchForUpdateOperationRequest - -This event is sent when searching for update packages to install, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **CatalogId** The Store Catalog ID for the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SkuId** Specific edition of the app being updated. - - -### Microsoft.Windows.StoreAgent.Telemetry.UpdateAppOperationRequest - -This event occurs when an update is requested for an app, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **PFamN** The name of the app that is requested for update. - - -## Windows Update CSP events - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackFeatureFailed - -This event sends basic telemetry on the failure of the Feature Rollback. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **current** Result of currency check. -- **dismOperationSucceeded** Dism uninstall operation status. -- **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. -- **wUfBConnected** Result of Windows Update for Business connection check. - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackFeatureNotApplicable - -This event sends basic telemetry on whether Feature Rollback (rolling back features updates) is applicable to a device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **current** Result of currency check. -- **dismOperationSucceeded** Dism uninstall operation status. -- **oSVersion** Build number of the device. -- **paused** Indicates whether the device is paused. -- **rebootRequestSucceeded** Reboot Configuration Service Provider (CSP) call success status. -- **wUfBConnected** Result of Windows Update for Business connection check. - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackFeatureStarted - -This event sends basic information indicating that Feature Rollback has started. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackFeatureSucceeded - -This event sends basic telemetry on the success of the rollback of feature updates. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackQualityFailed - -This event sends basic telemetry on the failure of the rollback of the Quality/LCU builds. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **current** Result of currency check. -- **dismOperationSucceeded** Dism uninstall operation status. -- **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. -- **wUfBConnected** Result of Windows Update for Business connection check. - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackQualityNotApplicable - -This event informs you whether a rollback of Quality updates is applicable to the devices that you are attempting to rollback. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **current** Result of currency check. -- **dismOperationSucceeded** Dism uninstall operation status. -- **oSVersion** Build number of the device. -- **paused** Indicates whether the device is paused. -- **rebootRequestSucceeded** Reboot Configuration Service Provider (CSP) call success status. -- **wUfBConnected** Result of Windows Update for Business connection check. - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackQualityStarted - -This event indicates that the Quality Rollback process has started. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackQualitySucceeded - -This event sends basic telemetry on the success of the rollback of the Quality/LCU builds. The data collected with this event is used to help keep Windows secure and up to date. - - - -## 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 data collected with this event is used to help keep Windows up to date. - -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. -- **dataSourcesTotal** Bytes received per source type, accumulated for the whole session. -- **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** 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 of the file download session. -- **updateID** The ID of the update being downloaded. -- **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 data collected with this event is used to help keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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.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 data collected with this event is used to help keep Windows up to date. - -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 Content Distribution Network (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). -- **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. -- **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. -- **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. -- **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. The data collected with this event is used to help keep Windows up to date. - -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. - - -### Microsoft.OSG.DU.DeliveryOptClient.JobError - -This event represents a Windows Update job error. It allows for investigation of top errors. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **cdnIp** The IP Address of the source CDN (Content Delivery Network). -- **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.UpdateAgentAnalysisSummary - -This event collects information regarding the state of devices and drivers on the system following a reboot after the install phase of the new device manifest UUP (Unified Update Platform) update scenario which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **activated** Whether the entire device manifest update is considered activated and in use. -- **analysisErrorCount** The number of driver packages that could not be analyzed because errors occurred during analysis. -- **flightId** Unique ID for each flight. -- **missingDriverCount** The number of driver packages delivered by the device manifest that are missing from the system. -- **missingUpdateCount** The number of updates in the device manifest that are missing from the system. -- **objectId** Unique value for each diagnostics session. -- **publishedCount** The number of drivers packages delivered by the device manifest that are published and available to be used on devices. -- **relatedCV** Correlation vector value generated from the latest USO scan. -- **scenarioId** Indicates the update scenario. -- **sessionId** Unique value for each update session. -- **summary** A summary string that contains basic information about driver packages that are part of the device manifest and any devices on the system that those driver packages match. -- **summaryAppendError** A Boolean indicating if there was an error appending more information to the summary string. -- **truncatedDeviceCount** The number of devices missing from the summary string because there is not enough room in the string. -- **truncatedDriverCount** The number of driver packages missing from the summary string because there is not enough room in the string. -- **unpublishedCount** How many drivers packages that were delivered by the device manifest that are still unpublished and unavailable to be used on devices. -- **updateId** The unique ID for each update. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentCommit - -This event collects information regarding the final commit phase of the new device manifest UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code returned for the current session initialization. -- **flightId** The unique identifier for each flight. -- **objectId** The unique GUID for each diagnostics session. -- **relatedCV** A correlation vector value generated from the latest USO scan. -- **result** Outcome of the initialization of the session. -- **scenarioId** Identifies the Update scenario. -- **sessionId** The unique value for each update session. -- **updateId** The unique identifier for each Update. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentDownloadRequest - -This event collects information regarding the download request phase of the new device manifest UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **deletedCorruptFiles** Indicates if UpdateAgent found any corrupt payload files and whether the payload was deleted. -- **errorCode** The error code returned for the current session initialization. -- **flightId** The unique identifier for each flight. -- **objectId** Unique value for each Update Agent mode. -- **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. -- **packageSizeCanonical** Size of canonical packages in bytes. -- **packageSizeDiff** Size of diff packages in bytes. -- **packageSizeExpress** Size of express packages in bytes. -- **rangeRequestState** Represents the state of the download range request. -- **relatedCV** Correlation vector value generated from the latest USO scan. -- **result** Result of the download request phase of update. -- **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. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentInitialize - -This event sends data for initializing a new update session for the new device manifest UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code returned for the current session initialization. -- **flightId** The unique identifier 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 the update. 0 = Succeeded, 1 = Failed, 2 = Canceled, 3 = Blocked, 4 = BlockCanceled. -- **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. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentInstall - -This event collects information regarding the install phase of the new device manifest UUP (Unified Update Platform) update scenario which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code returned for the current install phase. -- **flightId** The unique identifier for each flight (pre-release builds). -- **objectId** Unique value for each diagnostics session. -- **relatedCV** Correlation vector value generated from the latest scan. -- **result** Outcome of the install phase of the update. -- **scenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate -- **sessionId** Unique value for each update session. -- **updateId** Unique ID for each Update. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentModeStart - -This event sends data for the start of each mode during the process of updating device manifest assets via the UUP (Unified Update Platform) update scenario which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **flightId** The unique identifier for each flight (pre-release builds). -- **mode** Indicates the active Update Agent mode. -- **objectId** Unique value for each diagnostics session. -- **relatedCV** Correlation vector value generated from the latest scan. -- **scenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate -- **sessionId** The unique identifier for each update session. -- **updateId** The 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 data collected with this event is used to help keep Windows secure and up to date. - -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.EnhancedEngagedRebootAcceptAutoDialog - -This event indicates that the Enhanced Engaged restart "accept automatically" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The local time on 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 user chose on this dialog box. -- **UtcTime** The time that the dialog box was displayed, in Coordinated Universal Time. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootFirstReminderDialog - -This event indicates that the Enhanced Engaged restart "first reminder" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The local time on 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 user chose in this dialog box. -- **UtcTime** The time that the dialog box was displayed, in Coordinated Universal Time. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootForcedPrecursorDialog - -This event indicates that the Enhanced Engaged restart "forced precursor" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The local time on 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 the dialog box was displayed, in Coordinated Universal Time. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootForcedWarningDialog - -This event indicates that the Enhanced Engaged "forced warning" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The local time on 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.EnhancedEngagedRebootRebootFailedDialog - -This event indicates that the Enhanced Engaged restart "restart failed" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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.NotificationUx.EnhancedEngagedRebootSecondReminderDialog - -This event indicates that the second reminder dialog box was displayed for Enhanced Engaged restart. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The 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 the user chose in this dialog box. -- **UtcTime** The time that the dialog box was displayed, in Coordinated Universal Time. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootThirdReminderDialog - -This event indicates that the third reminder dialog box for Enhanced Engaged restart was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The 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 the user chose in this dialog box. -- **UtcTime** The time that the dialog box was displayed, in Coordinated Universal Time. - - -### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedSecondRebootReminderDialog - -This event is sent when a second reminder dialog is displayed during Enhanced Engaged Reboot. - - - -### Microsoft.Windows.Update.NotificationUx.RebootScheduled - -This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows secure and up-to-date by indicating when a reboot is scheduled by the system or a user for a security, quality, or feature update. - -The following fields are available: - -- **activeHoursApplicable** Indicates whether an Active Hours policy is present on the device. -- **IsEnhancedEngagedReboot** Indicates whether this is an Enhanced Engaged reboot. -- **rebootArgument** Argument for the reboot task. It also represents specific reboot related action. -- **rebootOutsideOfActiveHours** Indicates whether a restart is scheduled outside of active hours. -- **rebootScheduledByUser** Indicates whether the restart was scheduled by user (if not, it was scheduled automatically). -- **rebootState** The current state of the restart. -- **revisionNumber** Revision number of the update that is getting installed with this restart. -- **scheduledRebootTime** Time of the scheduled restart. -- **scheduledRebootTimeInUTC** Time of the scheduled restart in Coordinated Universal Time. -- **updateId** ID of the update that is getting installed with this restart. -- **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. The data collected with this event is used to help keep Windows secure and up to date. - -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.BlockedByActiveHours - -This event indicates that update activity was blocked because it is within the active hours window. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **activeHoursEnd** The end of the active hours window. -- **activeHoursStart** The start of the active hours window. -- **blockReason** Reason for stopping the update activity. -- **updatePhase** The current state of the update process. -- **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. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **batteryLevel** The current battery charge capacity. -- **batteryLevelThreshold** The battery capacity threshold to stop update activity. -- **blockReason** Reason for stopping Windows Update activity. -- **updatePhase** The current state of the update process. -- **wuDeviceid** Device ID. - - -### Microsoft.Windows.Update.Orchestrator.CommitFailed - -This event indicates that a device was unable to restart after an update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code that was returned. -- **wuDeviceid** The Windows Update device GUID. - - -### Microsoft.Windows.Update.Orchestrator.DeferRestart - -This event indicates that a restart required for installing updates was postponed. The data collected with this event is used to help keep Windows secure and up to date. - -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). -- **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). -- **revisionNumber** Update ID revision number. -- **systemNeededReason** List of reasons why system is needed. -- **updateId** Update ID. -- **updateScenarioType** Update session type. -- **wuDeviceid** Unique device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.Detection - -This event sends launch data for a Windows Update scan to help keep Windows secure and up to date. - -The following fields are available: - -- **deferReason** The reason why the device could not check for updates. -- **detectionBlockingPolicy** The Policy that blocked detection. -- **detectionBlockreason** The reason detection did not complete. -- **detectionRetryMode** Indicates whether we will try to scan again. -- **errorCode** The error code returned for the current process. -- **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 canceled, succeeded, or failed. -- **flightID** The unique identifier for the flight (Windows Insider pre-release build) should be delivered to the device, if applicable. -- **interactive** Indicates whether the user initiated the session. -- **networkStatus** Indicates if the device is connected to the internet. -- **revisionNumber** The Update revision number. -- **scanTriggerSource** The source of the triggered scan. -- **updateId** The unique identifier of the Update. -- **updateScenarioType** Identifies the type of update session being performed. -- **wuDeviceid** The unique device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.DetectionResult - -This event runs when an update is detected. This helps ensure Windows is secure and kept up to date. - -The following fields are available: - -- **applicableUpdateIdList** A list of applicable update IDs. -- **applicableUpdateList** A list of applicable update names. -- **seekerUpdateIdList** A list of optional update IDs. -- **seekerUpdateList** A list of optional update names. -- **wuDeviceid** The Windows Update device identifier. - - -### Microsoft.Windows.Update.Orchestrator.DisplayNeeded - -This event indicates the reboot was postponed due to needing a display. The data collected with this event is used to help keep Windows secure and up to date. - -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 canceled, 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.Download - -This event sends launch data for a Windows Update download to help keep Windows secure and 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.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. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **wuDeviceid** Device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.DTUEnabled - -This event indicates that Inbox DTU functionality was enabled. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **wuDeviceid** Device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.DTUInitiated - -This event indicates that Inbox DTU functionality was initiated. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **dtuErrorCode** Return code from creating the DTU Com Server. -- **isDtuApplicable** Determination of whether DTU is applicable to the machine it is running on. -- **wuDeviceid** Device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.Escalation - -This event is sent when USO takes an Escalation action on a device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **configVersion** Escalation config version on device. -- **escalationAction** Indicate the specific escalation action that took place on device. -- **updateClassificationGUID** GUID of the update the device is offered. -- **updateId** ID of the update the device is offered. -- **wuDeviceid** Device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.EscalationRiskLevels - -This event is sent during update scan, download, or install, and indicates that the device is at risk of being out-of-date. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **configVersion** The escalation configuration version on the 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. -- **installRiskLevel** The at-risk level of install phase. -- **isSediment** Assessment of whether is device is at risk. -- **scanElapsedTime** Indicates how long since the scan is required on device. -- **scanRiskLevel** At-risk level of the scan phase. -- **wuDeviceid** Device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.EscalationsRefreshFailed - -USO has a set of escalation actions to prevent a device from becoming out-of-date, and the actions are triggered based on the Escalation configuration that USO obtains from OneSettings. This event is sent when USO fails to refresh the escalation configuration from OneSettings. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **configVersion** Current escalation config version on device. -- **errorCode** Error code for the refresh failure. -- **wuDeviceid** Device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.FlightInapplicable - -This event sends data on whether the update was applicable to the device. The data collected with this event is used to help keep Windows secure and up to date. - -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.GameActive - -This event indicates that an enabled GameMode process prevented the device from restarting to complete an update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **eventScenario** Indicates the purpose of sending this event - whether because the software distribution just started checking for content, or whether it was canceled, succeeded, or failed. -- **gameModeReason** Name of the enabled GameMode process that prevented the device from restarting to complete an update. -- **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 secure and 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 secure and 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 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. The data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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.OobeUpdate - -This event sends data to device when Oobe Update download is in progress. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **flightID** A flight ID. -- **revisionNumber** A revision number. -- **updateId** An update ID. -- **updateScenarioType** A type of update scenario. -- **wuDeviceid** A device ID associated with Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.PostInstall - -This event sends data about lite stack devices (mobile, IOT, anything non-PC) immediately before data migration is launched to help keep Windows secure and up to date. - -The following fields are available: - -- **batteryLevel** Current battery capacity in megawatt-hours (mWh) or percentage left. -- **bundleId** The unique identifier associated with the specific content bundle. -- **bundleRevisionnumber** Identifies the revision number of the content bundle. -- **errorCode** The error code returned for the current phase. -- **eventScenario** State of update action. -- **flightID** The unique identifier for the flight (Windows Insider pre-release build) should be delivered to the device, if applicable. -- **sessionType** The Windows Update session type (Interactive or Background). -- **updateScenarioType** Identifies the type of Update session being performed. -- **wuDeviceid** The unique device identifier used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.PowerMenuOptionsChanged - -This event is sent when the options in power menu changed, usually due to an update pending reboot, or after an update is installed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **powermenuNewOptions** The new options after the power menu changed. -- **powermenuOldOptions** The old options before the power menu changed. -- **rebootPendingMinutes** If the power menu changed because a reboot is pending due to an update, this indicates how long that reboot has been pending. -- **wuDeviceid** The device ID recorded by Windows Update if the power menu changed because a reboot is pending due to an update. - - -### Microsoft.Windows.Update.Orchestrator.PreShutdownStart - -This event is generated before the shutdown and commit operations. The data collected with this event is used to help keep Windows secure and up to date. - -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.Progress - -This event is sent when the download of a update reaches a milestone change, such as a change in network cost policy, completion of an internal phase, or change in a transient state. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** Error code returned. -- **flightID** The specific ID of the Windows Insider build the device is getting. -- **interactive** Identifies whether the session is user initiated. -- **networkCostPolicy** The current network cost policy on device. -- **revisionNumber** Update ID revision number. -- **updateId** Unique ID for each update. -- **updateScenarioType** Update Session type. -- **updateState** Subphase of the download. -- **UpdateStatus** Subphase of the update. -- **wuDeviceid** Unique device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.RebootFailed - -This event sends information about whether an update required a reboot and reasons for failure, to help keep Windows secure and 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 secure and 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 secure and 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.ScanTriggered - -This event indicates that Update Orchestrator has started a scan operation. The data collected with this event is used to help keep Windows secure and up to date. - -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. -- **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.SeekerUpdateAvailable - -This event defines when an optional update is available for the device to help keep Windows secure and up to date. - -The following fields are available: - -- **flightID** The unique identifier of the Windows Insider build on this device. -- **isFeatureUpdate** Indicates whether the update is a Feature Update. -- **revisionNumber** The revision number of the update. -- **updateId** The GUID (Globally Unique Identifier) of the update. -- **wuDeviceid** The Windows Update device identifier. - - -### Microsoft.Windows.Update.Orchestrator.SeekUpdate - -This event occurs when user initiates "seeker" scan. This helps keep Windows secure and up to date. - -The following fields are available: - -- **flightID** The ID of the Windows Insider builds on the device. -- **isFeatureUpdate** Indicates that the target of the Seek is a feature update. -- **revisionNumber** The revision number of the update. -- **updateId** The identifier of the update. -- **wuDeviceid** The Windows Update device identifier. - - -### Microsoft.Windows.Update.Orchestrator.SystemNeeded - -This event sends data about why a device is unable to reboot, to help keep Windows secure and 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. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **activeHoursEnd** The end of the active hours window. -- **activeHoursStart** The start of the active hours window. -- **updatePhase** The current state of the update process. -- **wuDeviceid** The device identifier. - - -### Microsoft.Windows.Update.Orchestrator.TerminatedByBatteryLevel - -This event is sent when update activity was stopped due to a low battery level. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **batteryLevel** The current battery charge capacity. -- **batteryLevelThreshold** The battery capacity threshold to stop update activity. -- **updatePhase** The current state of the update process. -- **wuDeviceid** The device identifier. - - -### Microsoft.Windows.Update.Orchestrator.UpdateInstallPause - -This event sends data when a device pauses an in-progress update, to help keep Windows secure and up to date. - -The following fields are available: - -- **updateClassificationGUID** The classification GUID for the update that was paused. -- **updateId** An update ID for the update that was paused. -- **wuDeviceid** A unique Device ID. - - -### Microsoft.Windows.Update.Orchestrator.UpdatePolicyCacheRefresh - -This event sends data on whether Update Management Policies were enabled on a device, to help keep Windows secure and 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 secure and 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 data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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.Orchestrator.UUPFallBack - -This event sends data when UUP needs to fall back, to help keep Windows secure and up to date. - -The following fields are available: - -- **EventPublishedTime** The current event time. -- **UUPFallBackConfigured** The fall back error code. -- **UUPFallBackErrorReason** The reason for fall back error. -- **wuDeviceid** A 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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **UtcTime** The Coordinated Universal Time that the restart was no longer needed. - - -### Microsoft.Windows.Update.Ux.MusNotification.RebootRequestReasonsToIgnore - -This event is sent when the reboot can be deferred based on some reasons, before reboot attempts. The data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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. -- **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** The 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. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.Update.Ux.MusNotification.UxBrokerScheduledTask - -This event is sent when MUSE broker schedules a task. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **TaskArgument** The arguments with which the task is scheduled. -- **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. The data collected with this event is used to help keep Windows secure and 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. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICOInteractionCampaignComplete - -This event is generated whenever a RUXIM user interaction campaign becomes complete. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **InteractionCampaignID** GUID identifying the interaction campaign that became complete. -- **ResultId** The final result of the interaction campaign. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSEvaluateInteractionCampaign - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS.EXE) finishes processing an interaction campaign. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **ControlId** String identifying the control (if any) that was selected by the user during presentation. -- **hrInteractionHandler** The error (if any) reported by the RUXIM Interaction Handler while processing the interaction campaign. -- **hrScheduler** The error (if any) encountered by RUXIM Interaction Campaign Scheduler itself while processing the interaction campaign. -- **InteractionCampaignID** The ID of the interaction campaign that was processed. -- **ResultId** The result of the evaluation/presentation. -- **WasCompleted** True if the interaction campaign is complete. -- **WasPresented** True if the Interaction Handler displayed the interaction campaign to the user. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSExit - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS) exits. The data collected with this event is used to help keep Windows up to date and performing properly. - - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSLaunch - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS.EXE) is launched. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CommandLine** The command line used to launch RUXIMICS. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSOneSettingsSyncExit - -This event is sent when RUXIM completes checking with OneSettings to retrieve any UX interaction campaigns that may need to be displayed. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **hrInitialize** Error, if any, that occurred while initializing OneSettings. -- **hrQuery** Error, if any, that occurred while retrieving UX interaction campaign data from OneSettings. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSOneSettingsSyncLaunch - -This event is sent when RUXIM begins checking with OneSettings to retrieve any UX interaction campaigns that may need to be displayed. The data collected with this event is used to help keep Windows up to date. - - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHEvaluateAndPresent - -This event is generated when the RUXIM Interaction Handler finishes evaluating, and possibly presenting an interaction campaign. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **hrLocal** The error (if any) encountered by RUXIM Interaction Handler during evaluation and presentation. -- **hrPresentation** The error (if any) reported by RUXIM Presentation Handler during presentation. -- **InteractionCampaignID** GUID; the user interaction campaign processed by RUXIM Interaction Handler. -- **ResultId** The result generated by the evaluation and presentation. -- **WasCompleted** True if the user interaction campaign is complete. -- **WasPresented** True if the user interaction campaign is displayed to the user. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHExit - -This event is generated when the RUXIM Interaction Handler (RUXIMIH.EXE) exits. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **InteractionCampaignID** GUID identifying the interaction campaign that RUXIMIH processed. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHLaunch - -This event is generated when the RUXIM Interaction Handler (RUXIMIH.EXE) is launched. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CommandLine** The command line used to launch RUXIMIH. -- **InteractionCampaignID** GUID identifying the user interaction campaign that the Interaction Handler will process. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.SystemEvaluator.Evaluation - -This event is generated whenever the RUXIM Evaluator DLL performs an evaluation. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **HRESULT** Error, if any, that occurred during evaluation. (Note that if errors encountered during individual checks do not affect the overall result of the evaluation, those errors will be reported in NodeEvaluationData, but this HRESULT will still be zero.) -- **Id** GUID passed in by the caller to identify the evaluation. -- **NodeEvaluationData** Structure showing the results of individual checks that occurred during the overall evaluation. -- **Result** Overall result generated by the evaluation. - - -## Windows Update mitigation events - -### Mitigation360Telemetry.MitigationCustom.CleanupSafeOsImages - -This event sends data specific to the CleanupSafeOsImages mitigation used for OS Updates. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** The client ID used by Windows Update. -- **FlightId** The ID of each Windows Insider build the device received. -- **InstanceId** A unique device ID that identifies each update instance. -- **MitigationScenario** The update scenario in which the mitigation was executed. -- **MountedImageCount** The number of mounted images. -- **MountedImageMatches** The number of mounted image matches. -- **MountedImagesFailed** The number of mounted images that could not be removed. -- **MountedImagesRemoved** The number of mounted images that were successfully removed. -- **MountedImagesSkipped** The number of mounted images that were not found. -- **RelatedCV** The 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 Windows Update. -- **WuId** Unique ID for the Windows Update client. - - -### Mitigation360Telemetry.MitigationCustom.FixAppXReparsePoints - -This event sends data specific to the FixAppXReparsePoints mitigation used for OS updates. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** In the Windows Update scenario, 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. -- **FlightId** Unique identifier for each flight. -- **InstanceId** Unique GUID that identifies each instance of setuphost.exe. -- **MitigationScenario** The update scenario in which the mitigation was executed. -- **RelatedCV** Correlation vector value generated from the latest USO scan. -- **ReparsePointsFailed** Number of reparse points that are corrupted but we failed to fix them. -- **ReparsePointsFixed** Number of reparse points that were corrupted and were fixed by this mitigation. -- **ReparsePointsSkipped** Number of reparse points that are not corrupted and no action is required. -- **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. - - -### Mitigation360Telemetry.MitigationCustom.FixupEditionId - -This event sends data specific to the FixupEditionId mitigation used for OS updates. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** In the Windows Update scenario, 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. -- **EditionIdUpdated** Determine whether EditionId was changed. -- **FlightId** Unique identifier for each flight. -- **InstanceId** Unique GUID that identifies each instance 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. - - -## Windows Update Reserve Manager events - -### Microsoft.Windows.UpdateReserveManager.CommitPendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager commits a hard reserve adjustment that was pending. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.FunctionReturnedError - -This event is sent when the Update Reserve Manager returns an error from one of its internal functions. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.InitializeUpdateReserveManager - -This event returns data about the Update Reserve Manager, including whether it’s been initialized. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.PrepareTIForReserveInitialization - -This event is sent when the Update Reserve Manager prepares the Trusted Installer to initialize reserves on the next boot. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.RemovePendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager removes a pending hard reserve adjustment. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.UpdatePendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager needs to adjust the size of the hard reserve after the option content is installed. The data collected with this event is used to help keep Windows secure and up to date. - - - -## Winlogon events - -### Microsoft.Windows.Security.Winlogon.SetupCompleteLogon - -This event signals the completion of the setup process. It happens only once during the first logon. - - - -## XBOX events - -### 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. diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1903.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1903.md deleted file mode 100644 index 749915474a..0000000000 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1903.md +++ /dev/null @@ -1,10580 +0,0 @@ ---- -description: Learn more about the Windows 10, version 1903 diagnostic data gathered at the basic level. -title: Windows 10, version 1909 and Windows 10, version 1903 required diagnostic events and fields (Windows 10) -ms.service: windows-client -ms.subservice: itpro-privacy -localizationpriority: medium -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 03/27/2017 -ms.topic: reference ---- - - -# Windows 10, version 1909 and Windows 10, version 1903 required Windows diagnostic events and fields - - **Applies to** - -- Windows 10, version 1909 -- Windows 10, version 1903 - - -Required diagnostic data 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. - -Required diagnostic data 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. - -Use this article to learn about diagnostic events, grouped by event area, and the fields within each event. A brief description is provided for each field. Every event generated includes common data, which collects device data. - -You can learn more about Windows functional and diagnostic data through these articles: - -- [Required diagnostic events and fields for Windows 11, versions 23H2 and 22H2](required-diagnostic-events-fields-windows-11-22H2.md) -- [Required diagnostic events and fields for Windows 11, version 21H2](required-windows-11-diagnostic-events-and-fields.md) -- [Required diagnostic events and fields for Windows 10: versions 22H2, 21H2, 21H1, 20H2, and 2004](required-windows-diagnostic-data-events-and-fields-2004.md) -- [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) -- [Windows 10, version 1703 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1703.md) -- [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) -- [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) - - -## AppLocker events - -### Microsoft.Windows.Security.AppLockerCSP.AddParams - -This event indicates the parameters passed to the Add function of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **child** The child URI of the node to add. -- **uri** URI of the node relative to %SYSTEM32%/AppLocker. - - -### Microsoft.Windows.Security.AppLockerCSP.AddStart - -This event indicates the start of an Add operation for the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - - - -### Microsoft.Windows.Security.AppLockerCSP.AddStop - -This event indicates the end of an Add operation for the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **hr** The HRESULT returned by Add function in AppLockerCSP. - - -### Microsoft.Windows.Security.AppLockerCSP.CAppLockerCSP::Commit - -This event returns information about the Commit operation in the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **oldId** The unique identifier for the most recent previous CSP transaction. -- **txId** The unique identifier for the current CSP transaction. - - -### Microsoft.Windows.Security.AppLockerCSP.CAppLockerCSP::Rollback - -This event provides the result of the Rollback operation in the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **oldId** Previous id for the CSP transaction. -- **txId** Current id for the CSP transaction. - - -### Microsoft.Windows.Security.AppLockerCSP.ClearParams - -This event provides the parameters passed to the Clear operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **uri** The URI relative to the %SYSTEM32%\AppLocker folder. - - -### Microsoft.Windows.Security.AppLockerCSP.ClearStart - -This event indicates the start of the Clear operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - - - -### Microsoft.Windows.Security.AppLockerCSP.ClearStop - -This event indicates the end of the Clear operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **hr** HRESULT reported at the end of the 'Clear' function. - - -### Microsoft.Windows.Security.AppLockerCSP.CreateNodeInstanceParams - -This event provides the parameters that were passed to the Create Node Instance operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **NodeId** NodeId passed to CreateNodeInstance. -- **nodeOps** NodeOperations parameter passed to CreateNodeInstance. -- **uri** URI passed to CreateNodeInstance, relative to %SYSTEM32%\AppLocker. - - -### Microsoft.Windows.Security.AppLockerCSP.CreateNodeInstanceStart - -This event indicates the start of the Create Node Instance operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - - - -### Microsoft.Windows.Security.AppLockerCSP.CreateNodeInstanceStop - -This event indicates the end of the Create Node Instance operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **hr** HRESULT returned by the CreateNodeInstance function in AppLockerCSP. - - -### Microsoft.Windows.Security.AppLockerCSP.DeleteChildParams - -This event provides the parameters passed to the Delete Child operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **child** The child URI of the node to delete. -- **uri** URI relative to %SYSTEM32%\AppLocker. - - -### Microsoft.Windows.Security.AppLockerCSP.DeleteChildStart - -This event indicates the start of the Delete Child operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - - - -### Microsoft.Windows.Security.AppLockerCSP.DeleteChildStop - -This event indicates the end of the Delete Child operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **hr** HRESULT returned by the DeleteChild function in AppLockerCSP. - - -### Microsoft.Windows.Security.AppLockerCSP.EnumPolicies - -This event provides the logged Uniform Resource Identifier (URI) relative to %SYSTEM32%\AppLocker if the plug-in GUID is null or the Configuration Service Provider (CSP) doesn't believe the old policy is present. - -The following fields are available: - -- **uri** URI relative to %SYSTEM32%\AppLocker. - - -### Microsoft.Windows.Security.AppLockerCSP.GetChildNodeNamesParams - -This event provides the parameters passed to the Get Child Node Names operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **uri** URI relative to %SYSTEM32%/AppLocker for MDM node. - - -### Microsoft.Windows.Security.AppLockerCSP.GetChildNodeNamesStart - -This event indicates the start of the Get Child Node Names operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - - - -### Microsoft.Windows.Security.AppLockerCSP.GetChildNodeNamesStop - -This event indicates the end of the Get Child Node Names operation of the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **child[0]** If function succeeded, the first child's name, else "NA". -- **count** If function succeeded, the number of child node names returned by the function, else 0. -- **hr** HRESULT returned by the GetChildNodeNames function of AppLockerCSP. - - -### Microsoft.Windows.Security.AppLockerCSP.GetLatestId - -This event provides the latest time-stamped unique identifier in the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **dirId** The latest directory identifier found by GetLatestId. -- **id** The id returned by GetLatestId if id > 0 - otherwise the dirId parameter. - - -### Microsoft.Windows.Security.AppLockerCSP.HResultException - -This event provides the result code (HRESULT) generated by any arbitrary function in the AppLocker Configuration Service Provider (CSP). - -The following fields are available: - -- **file** File in the OS code base in which the exception occurs. -- **function** Function in the OS code base in which the exception occurs. -- **hr** HRESULT that is reported. -- **line** Line in the file in the OS code base in which the exception occurs. - - -### Microsoft.Windows.Security.AppLockerCSP.SetValueParams - -This event provides the parameters that were passed to the SetValue operation in the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - -The following fields are available: - -- **dataLength** Length of the value to set. -- **uri** The node URI to that should contain the value, relative to %SYSTEM32%\AppLocker. - - -### Microsoft.Windows.Security.AppLockerCSP.SetValueStart - -This event indicates the start of the SetValue operation in the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. - - - -### Microsoft.Windows.Security.AppLockerCSP.SetValueStop - -End of the "SetValue" operation for the AppLockerCSP node. - -The following fields are available: - -- **hr** HRESULT returned by the SetValue function in AppLockerCSP. - - -### Microsoft.Windows.Security.AppLockerCSP.TryRemediateMissingPolicies - -This event provides information for fixing a policy in the AppLocker Configuration Service Provider (CSP) to help keep Windows secure. It includes Uniform Resource Identifier (URI) relative to %SYSTEM32%\AppLocker that needs to be fixed. - -The following fields are available: - -- **uri** URI for node relative to %SYSTEM32%/AppLocker. - - -## Appraiser events - -### Microsoft.Windows.Appraiser.General.ChecksumTotalPictureCount - -This event lists the types of objects and how many of each exist on the client device. This allows for a quick way to ensure that the records present on the server match what is present on the client. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **DatasourceApplicationFile_19H1** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_19H1Setup** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_20H1** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_20H1Setup** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_21H1** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_21H1Setup** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_21H2** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_21H2Setup** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_CO21H2** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_CO21H2Setup** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_CU22H2** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_CU22H2Setup** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_NI22H2Setup** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_RS1** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_RS2** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_RS3** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_RS4** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_RS5** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_TH1** The total number of objects of this type present on this device. -- **DatasourceApplicationFile_TH2** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_19H1** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_19H1Setup** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_20H1** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_20H1Setup** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_21H1** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_21H1Setup** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_21H2** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_21H2Setup** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_CO21H2** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_CO21H2Setup** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_CU22H2** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_CU22H2Setup** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_NI22H2Setup** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS1** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS2** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS3** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS3Setup** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS4** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS4Setup** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS5** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_RS5Setup** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_TH1** The total number of objects of this type present on this device. -- **DatasourceDevicePnp_TH2** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_19H1** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_19H1Setup** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_20H1** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_20H1Setup** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_21H1** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_21H1Setup** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_21H2** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_21H2Setup** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_CO21H2** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_CO21H2Setup** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_CU22H2** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_CU22H2Setup** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_NI22H2Setup** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS1** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS2** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS3** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS3Setup** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS4** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS4Setup** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS5** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_RS5Setup** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_TH1** The total number of objects of this type present on this device. -- **DatasourceDriverPackage_TH2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_19H1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_19H1Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_20H1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_20H1Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_21H1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_21H1Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_21H2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_21H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_CO21H2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_CO21H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_CU22H2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_CU22H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_NI22H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_RS1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_RS2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_RS3** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_RS4** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_RS5** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_TH1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoBlock_TH2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_19H1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_19H1Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_20H1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_20H1Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_21H1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_21H1Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_21H2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_21H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_CO21H2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_CO21H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_CU22H2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_CU22H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_NI22H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_RS1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_RS2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_RS3** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_RS4** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_RS5** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_TH1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPassive_TH2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_19H1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_19H1Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_20H1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_20H1Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_21H1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_21H1Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_21H2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_21H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_CO21H2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_CO21H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_CU22H2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_CU22H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_NI22H2Setup** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_RS1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_RS2** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_RS3** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_RS4** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_RS5** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_TH1** The total number of objects of this type present on this device. -- **DataSourceMatchingInfoPostUpgrade_TH2** The total number of objects of this type present on this device. -- **DatasourceSystemBios_19ASetup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_19H1** The total number of objects of this type present on this device. -- **DatasourceSystemBios_19H1Setup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_20H1** The total number of objects of this type present on this device. -- **DatasourceSystemBios_20H1Setup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_21H1** The total number of objects of this type present on this device. -- **DatasourceSystemBios_21H1Setup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_21H2** The total number of objects of this type present on this device. -- **DatasourceSystemBios_21H2Setup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_CO21H2** The total number of objects of this type present on this device. -- **DatasourceSystemBios_CO21H2Setup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_CU22H2** The total number of objects of this type present on this device. -- **DatasourceSystemBios_CU22H2Setup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_NI22H2Setup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS1** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS2** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS3** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS3Setup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS4** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS4Setup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS5** The total number of objects of this type present on this device. -- **DatasourceSystemBios_RS5Setup** The total number of objects of this type present on this device. -- **DatasourceSystemBios_TH1** The total number of objects of this type present on this device. -- **DatasourceSystemBios_TH2** The total number of objects of this type present on this device. -- **DecisionApplicationFile_19H1** The total number of objects of this type present on this device. -- **DecisionApplicationFile_19H1Setup** The total number of objects of this type present on this device. -- **DecisionApplicationFile_20H1** The total number of objects of this type present on this device. -- **DecisionApplicationFile_20H1Setup** The total number of objects of this type present on this device. -- **DecisionApplicationFile_21H1** The total number of objects of this type present on this device. -- **DecisionApplicationFile_21H1Setup** The total number of objects of this type present on this device. -- **DecisionApplicationFile_21H2** The total number of objects of this type present on this device. -- **DecisionApplicationFile_21H2Setup** The total number of objects of this type present on this device. -- **DecisionApplicationFile_CO21H2** The total number of objects of this type present on this device. -- **DecisionApplicationFile_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionApplicationFile_CU22H2** The total number of objects of this type present on this device. -- **DecisionApplicationFile_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionApplicationFile_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionApplicationFile_RS1** The total number of objects of this type present on this device. -- **DecisionApplicationFile_RS2** The total number of objects of this type present on this device. -- **DecisionApplicationFile_RS3** The total number of objects of this type present on this device. -- **DecisionApplicationFile_RS4** The total number of objects of this type present on this device. -- **DecisionApplicationFile_RS5** The total number of objects of this type present on this device. -- **DecisionApplicationFile_TH1** The total number of objects of this type present on this device. -- **DecisionApplicationFile_TH2** The total number of objects of this type present on this device. -- **DecisionDevicePnp_19H1** The total number of objects of this type present on this device. -- **DecisionDevicePnp_19H1Setup** The total number of objects of this type present on this device. -- **DecisionDevicePnp_20H1** The total number of objects of this type present on this device. -- **DecisionDevicePnp_20H1Setup** The total number of objects of this type present on this device. -- **DecisionDevicePnp_21H1** The total number of objects of this type present on this device. -- **DecisionDevicePnp_21H1Setup** The total number of objects of this type present on this device. -- **DecisionDevicePnp_21H2** The total number of objects of this type present on this device. -- **DecisionDevicePnp_21H2Setup** The total number of objects of this type present on this device. -- **DecisionDevicePnp_CO21H2** The total number of objects of this type present on this device. -- **DecisionDevicePnp_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionDevicePnp_CU22H2** The total number of objects of this type present on this device. -- **DecisionDevicePnp_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionDevicePnp_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS1** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS2** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS3** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS3Setup** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS4** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS4Setup** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS5** The total number of objects of this type present on this device. -- **DecisionDevicePnp_RS5Setup** The total number of objects of this type present on this device. -- **DecisionDevicePnp_TH1** The total number of objects of this type present on this device. -- **DecisionDevicePnp_TH2** The total number of objects of this type present on this device. -- **DecisionDriverPackage_19H1** The total number of objects of this type present on this device. -- **DecisionDriverPackage_19H1Setup** The total number of objects of this type present on this device. -- **DecisionDriverPackage_20H1** The total number of objects of this type present on this device. -- **DecisionDriverPackage_20H1Setup** The total number of objects of this type present on this device. -- **DecisionDriverPackage_21H1** The total number of objects of this type present on this device. -- **DecisionDriverPackage_21H1Setup** The total number of objects of this type present on this device. -- **DecisionDriverPackage_21H2** The total number of objects of this type present on this device. -- **DecisionDriverPackage_21H2Setup** The total number of objects of this type present on this device. -- **DecisionDriverPackage_CO21H2** The total number of objects of this type present on this device. -- **DecisionDriverPackage_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionDriverPackage_CU22H2** The total number of objects of this type present on this device. -- **DecisionDriverPackage_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionDriverPackage_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionDriverPackage_RS1** The total number of objects of this type present on this device. -- **DecisionDriverPackage_RS2** The total number of objects of this type present on this device. -- **DecisionDriverPackage_RS3** The total number of objects of this type present on this device. -- **DecisionDriverPackage_RS3Setup** The total number of objects of this type present on this device. -- **DecisionDriverPackage_RS4** The total number of objects of this type present on this device. -- **DecisionDriverPackage_RS4Setup** The total number of objects of this type present on this device. -- **DecisionDriverPackage_RS5** The total number of objects of this type present on this device. -- **DecisionDriverPackage_RS5Setup** The total number of objects of this type present on this device. -- **DecisionDriverPackage_TH1** The total number of objects of this type present on this device. -- **DecisionDriverPackage_TH2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_19H1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_19H1Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_20H1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_20H1Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_21H1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_21H1Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_21H2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_21H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_CO21H2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_CU22H2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_RS1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_RS2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_RS3** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_RS4** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_RS5** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_TH1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoBlock_TH2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_19H1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_19H1Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_20H1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_20H1Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_21H1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_21H1Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_21H2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_21H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_CO21H2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_CU22H2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_RS1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_RS2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_RS3** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_RS4** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_RS5** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_TH1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPassive_TH2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_19H1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_19H1Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_20H1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_20H1Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_21H1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_21H1Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_21H2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_21H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_CO21H2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_CU22H2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_RS1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_RS2** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_RS3** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_RS4** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_RS5** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_TH1** The total number of objects of this type present on this device. -- **DecisionMatchingInfoPostUpgrade_TH2** The total number of objects of this type present on this device. -- **DecisionMediaCenter_19H1** The total number of objects of this type present on this device. -- **DecisionMediaCenter_19H1Setup** The total number of objects of this type present on this device. -- **DecisionMediaCenter_20H1** The total number of objects of this type present on this device. -- **DecisionMediaCenter_20H1Setup** The total number of objects of this type present on this device. -- **DecisionMediaCenter_21H1** The total number of objects of this type present on this device. -- **DecisionMediaCenter_21H1Setup** The total number of objects of this type present on this device. -- **DecisionMediaCenter_21H2** The total number of objects of this type present on this device. -- **DecisionMediaCenter_21H2Setup** The total number of objects of this type present on this device. -- **DecisionMediaCenter_CO21H2** The total number of objects of this type present on this device. -- **DecisionMediaCenter_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionMediaCenter_CU22H2** The total number of objects of this type present on this device. -- **DecisionMediaCenter_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionMediaCenter_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionMediaCenter_RS1** The total number of objects of this type present on this device. -- **DecisionMediaCenter_RS2** The total number of objects of this type present on this device. -- **DecisionMediaCenter_RS3** The total number of objects of this type present on this device. -- **DecisionMediaCenter_RS4** The total number of objects of this type present on this device. -- **DecisionMediaCenter_RS5** The total number of objects of this type present on this device. -- **DecisionMediaCenter_TH1** The total number of objects of this type present on this device. -- **DecisionMediaCenter_TH2** The total number of objects of this type present on this device. -- **DecisionSModeState_19H1** The total number of objects of this type present on this device. -- **DecisionSModeState_20H1** The total number of objects of this type present on this device. -- **DecisionSModeState_20H1Setup** The total number of objects of this type present on this device. -- **DecisionSModeState_21H1** The total number of objects of this type present on this device. -- **DecisionSModeState_21H2** The total number of objects of this type present on this device. -- **DecisionSModeState_21H2Setup** The total number of objects of this type present on this device. -- **DecisionSModeState_CO21H2** The total number of objects of this type present on this device. -- **DecisionSModeState_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionSModeState_CU22H2** The total number of objects of this type present on this device. -- **DecisionSModeState_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionSModeState_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionSModeState_RS1** The total number of objects of this type present on this device. -- **DecisionSModeState_RS2** The total number of objects of this type present on this device. -- **DecisionSModeState_RS3** The total number of objects of this type present on this device. -- **DecisionSModeState_RS4** The total number of objects of this type present on this device. -- **DecisionSModeState_RS5** The total number of objects of this type present on this device. -- **DecisionSModeState_TH1** The total number of objects of this type present on this device. -- **DecisionSModeState_TH2** The total number of objects of this type present on this device. -- **DecisionSystemBios_19ASetup** The total number of objects of this type present on this device. -- **DecisionSystemBios_19H1** The total number of objects of this type present on this device. -- **DecisionSystemBios_19H1Setup** The total number of objects of this type present on this device. -- **DecisionSystemBios_20H1** The total number of objects of this type present on this device. -- **DecisionSystemBios_20H1Setup** The total number of objects of this type present on this device. -- **DecisionSystemBios_21H1** The total number of objects of this type present on this device. -- **DecisionSystemBios_21H1Setup** The total number of objects of this type present on this device. -- **DecisionSystemBios_21H2** The total number of objects of this type present on this device. -- **DecisionSystemBios_21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemBios_CO21H2** The total number of objects of this type present on this device. -- **DecisionSystemBios_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemBios_CU22H2** The total number of objects of this type present on this device. -- **DecisionSystemBios_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemBios_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS1** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS2** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS3** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS3Setup** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS4** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS4Setup** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS5** The total number of objects of this type present on this device. -- **DecisionSystemBios_RS5Setup** The total number of objects of this type present on this device. -- **DecisionSystemBios_TH1** The total number of objects of this type present on this device. -- **DecisionSystemBios_TH2** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_19H1** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_20H1** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_20H1Setup** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_21H1** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_21H2** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_CO21H2** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_CU22H2** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_RS1** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_RS2** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_RS3** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_RS4** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_RS5** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_TH1** The total number of objects of this type present on this device. -- **DecisionSystemDiskSize_TH2** The total number of objects of this type present on this device. -- **DecisionSystemMemory_19H1** The total number of objects of this type present on this device. -- **DecisionSystemMemory_20H1** The total number of objects of this type present on this device. -- **DecisionSystemMemory_20H1Setup** The total number of objects of this type present on this device. -- **DecisionSystemMemory_21H1** The total number of objects of this type present on this device. -- **DecisionSystemMemory_21H2** The total number of objects of this type present on this device. -- **DecisionSystemMemory_21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemMemory_CO21H2** The total number of objects of this type present on this device. -- **DecisionSystemMemory_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemMemory_CU22H2** The total number of objects of this type present on this device. -- **DecisionSystemMemory_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemMemory_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemMemory_RS1** The total number of objects of this type present on this device. -- **DecisionSystemMemory_RS2** The total number of objects of this type present on this device. -- **DecisionSystemMemory_RS3** The total number of objects of this type present on this device. -- **DecisionSystemMemory_RS4** The total number of objects of this type present on this device. -- **DecisionSystemMemory_RS5** The total number of objects of this type present on this device. -- **DecisionSystemMemory_TH1** The total number of objects of this type present on this device. -- **DecisionSystemMemory_TH2** The total number of objects of this type present on this device. -- **DecisionSystemProcessor_RS2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_19H1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_20H1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_20H1Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_21H1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_21H2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_CO21H2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_CU22H2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_RS1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_RS2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_RS3** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_RS4** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_RS5** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_TH1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuCores_TH2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_19H1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_20H1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_20H1Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_21H1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_21H2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_CO21H2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_CU22H2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_RS1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_RS2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_RS3** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_RS4** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_RS5** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_TH1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuModel_TH2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_19H1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_20H1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_20H1Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_21H1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_21H2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_CO21H2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_CU22H2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_RS1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_RS2** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_RS3** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_RS4** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_RS5** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_TH1** The total number of objects of this type present on this device. -- **DecisionSystemProcessorCpuSpeed_TH2** The total number of objects of this type present on this device. -- **DecisionTest_19H1** The total number of objects of this type present on this device. -- **DecisionTest_20H1** The total number of objects of this type present on this device. -- **DecisionTest_20H1Setup** The total number of objects of this type present on this device. -- **DecisionTest_21H1** The total number of objects of this type present on this device. -- **DecisionTest_21H1Setup** The total number of objects of this type present on this device. -- **DecisionTest_21H2** The total number of objects of this type present on this device. -- **DecisionTest_21H2Setup** The total number of objects of this type present on this device. -- **DecisionTest_CO21H2** The total number of objects of this type present on this device. -- **DecisionTest_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionTest_CU22H2** The total number of objects of this type present on this device. -- **DecisionTest_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionTest_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionTest_RS1** The total number of objects of this type present on this device. -- **DecisionTest_RS2** The total number of objects of this type present on this device. -- **DecisionTest_RS3** The total number of objects of this type present on this device. -- **DecisionTest_RS4** The total number of objects of this type present on this device. -- **DecisionTest_RS5** The total number of objects of this type present on this device. -- **DecisionTest_TH1** The total number of objects of this type present on this device. -- **DecisionTest_TH2** The total number of objects of this type present on this device. -- **DecisionTpmVersion_19H1** The total number of objects of this type present on this device. -- **DecisionTpmVersion_20H1** The total number of objects of this type present on this device. -- **DecisionTpmVersion_20H1Setup** The total number of objects of this type present on this device. -- **DecisionTpmVersion_21H1** The total number of objects of this type present on this device. -- **DecisionTpmVersion_21H2** The total number of objects of this type present on this device. -- **DecisionTpmVersion_21H2Setup** The total number of objects of this type present on this device. -- **DecisionTpmVersion_CO21H2** The total number of objects of this type present on this device. -- **DecisionTpmVersion_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionTpmVersion_CU22H2** The total number of objects of this type present on this device. -- **DecisionTpmVersion_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionTpmVersion_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionTpmVersion_RS1** The total number of objects of this type present on this device. -- **DecisionTpmVersion_RS2** The total number of objects of this type present on this device. -- **DecisionTpmVersion_RS3** The total number of objects of this type present on this device. -- **DecisionTpmVersion_RS4** The total number of objects of this type present on this device. -- **DecisionTpmVersion_RS5** The total number of objects of this type present on this device. -- **DecisionTpmVersion_TH1** The total number of objects of this type present on this device. -- **DecisionTpmVersion_TH2** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_19H1** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_20H1** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_20H1Setup** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_21H1** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_21H2** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_21H2Setup** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_CO21H2** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_CO21H2Setup** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_CU22H2** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_CU22H2Setup** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_NI22H2Setup** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_RS1** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_RS2** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_RS3** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_RS4** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_RS5** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_TH1** The total number of objects of this type present on this device. -- **DecisionUefiSecureBoot_TH2** The total number of objects of this type present on this device. -- **InventoryApplicationFile** The total number of objects of this type present on this device. -- **InventoryDeviceContainer** The total number of objects of this type present on this device. -- **InventoryDevicePnp** The total number of objects of this type present on this device. -- **InventoryDriverBinary** The total number of objects of this type present on this device. -- **InventoryDriverPackage** The total number of objects of this type present on this device. -- **InventoryLanguagePack** The total number of objects of this type present on this device. -- **InventoryMediaCenter** The total number of objects of this type present on this device. -- **InventorySystemBios** The total number of objects of this type present on this device. -- **InventorySystemMachine** The total number of objects of this type present on this device. -- **InventorySystemProcessor** The total number of objects of this type present on this device. -- **InventoryTest** The total number of objects of this type present on this device. -- **InventoryUplevelDriverPackage** The total number of objects of this type present on this device. -- **PCFP** The total number of objects of this type present on this device. -- **SystemMemory** The total number of objects of this type present on this device. -- **SystemProcessorCompareExchange** The total number of objects of this type present on this device. -- **SystemProcessorLahfSahf** The total number of objects of this type present on this device. -- **SystemProcessorNx** The total number of objects of this type present on this device. -- **SystemProcessorPrefetchW** The total number of objects of this type present on this device. -- **SystemProcessorSse2** The total number of objects of this type present on this device. -- **SystemTouch** The total number of objects of this type present on this device. -- **SystemWim** The total number of objects of this type present on this device. -- **SystemWindowsActivationStatus** The total number of objects of this type present on this device. -- **SystemWlan** The total number of objects of this type present on this device. -- **Wmdrm_19H1** The total number of objects of this type present on this device. -- **Wmdrm_19H1Setup** The total number of objects of this type present on this device. -- **Wmdrm_20H1** The total number of objects of this type present on this device. -- **Wmdrm_20H1Setup** The total number of objects of this type present on this device. -- **Wmdrm_21H1** The total number of objects of this type present on this device. -- **Wmdrm_21H1Setup** The total number of objects of this type present on this device. -- **Wmdrm_21H2** The total number of objects of this type present on this device. -- **Wmdrm_21H2Setup** The total number of objects of this type present on this device. -- **Wmdrm_CO21H2** The total number of objects of this type present on this device. -- **Wmdrm_CO21H2Setup** The total number of objects of this type present on this device. -- **Wmdrm_CU22H2** The total number of objects of this type present on this device. -- **Wmdrm_CU22H2Setup** The total number of objects of this type present on this device. -- **Wmdrm_NI22H2Setup** The total number of objects of this type present on this device. -- **Wmdrm_RS1** The total number of objects of this type present on this device. -- **Wmdrm_RS2** The total number of objects of this type present on this device. -- **Wmdrm_RS3** The total number of objects of this type present on this device. -- **Wmdrm_RS4** The total number of objects of this type present on this device. -- **Wmdrm_RS5** The total number of objects of this type present on this device. -- **Wmdrm_TH1** The total number of objects of this type present on this device. -- **Wmdrm_TH2** The total number of objects of this type present on this device. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileAdd - -This event represents the basic metadata about specific application files installed on the system. The data collected with this event is used 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. -- **AvDisplayName** If the app is an anti-virus app, this is its display name. -- **CompatModelIndex** The compatibility prediction for this file. -- **HasCitData** Indicates whether the file is present in CIT data. -- **HasUpgradeExe** Indicates whether the anti-virus app has an upgrade.exe file. -- **IsAv** Is the file an anti-virus reporting EXE? -- **ResolveAttempted** This will always be an empty string when sending diagnostic data. -- **SdbEntries** An array of fields that indicates the SDB entries that apply to this file. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileRemove - -This event indicates that the DatasourceApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceApplicationFileStartSync - -This event indicates that a new set of DatasourceApplicationFileAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpAdd - -This event sends compatibility data for a Plug and Play device, to help keep Windows up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **ActiveNetworkConnection** Indicates whether the device is an active network device. -- **AppraiserVersion** The version of the appraiser file generating the events. -- **IsBootCritical** Indicates whether the device boot is critical. -- **WuDriverCoverage** Indicates whether there is a driver uplevel for this device, according to Windows Update. -- **WuDriverUpdateId** The Windows Update ID of the applicable uplevel driver. -- **WuPopulatedFromId** The expected uplevel driver matching ID based on driver coverage from Windows Update. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpRemove - -This event indicates that the DatasourceDevicePnp object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDevicePnpStartSync - -This event indicates that a new set of DatasourceDevicePnpAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageAdd - -This event sends compatibility database data about driver packages 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageRemove - -This event indicates that the DatasourceDriverPackage object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceDriverPackageStartSync - -This event indicates that a new set of DatasourceDriverPackageAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockAdd - -This event sends blocking data about any compatibility blocking entries on the system that are not directly related to specific applications or devices, 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 generating the events. -- **ResolveAttempted** This will always be an empty string when sending diagnostic data. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockRemove - -This event indicates that the DataSourceMatchingInfoBlock object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoBlockStartSync - -This event indicates that a full set of DataSourceMatchingInfoBlockStAdd events has completed being sent. This event is used to make compatibility decisions about files 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveAdd - -This event sends compatibility database information about non-blocking compatibility entries on the system that are not keyed by either applications or devices, 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveRemove - -This event indicates that the DataSourceMatchingInfoPassive object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPassiveStartSync - -This event indicates that a new set of DataSourceMatchingInfoPassiveAdd events will be sent. This event is used to make compatibility decisions about files 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeAdd - -This event sends compatibility database information about entries requiring reinstallation after an upgrade on the system that are not keyed by either applications or devices, 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeRemove - -This event indicates that the DataSourceMatchingInfoPostUpgrade object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DataSourceMatchingInfoPostUpgradeStartSync - -This event indicates that a new set of DataSourceMatchingInfoPostUpgradeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosAdd - -This event sends compatibility database information about the BIOS 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosRemove - -This event indicates that the DatasourceSystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DatasourceSystemBiosStartSync - -This event indicates that a new set of DatasourceSystemBiosAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileAdd - -This event sends compatibility decision data about a file 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. -- **BlockAlreadyInbox** The uplevel runtime block on the file already existed on the current OS. -- **BlockingApplication** Indicates whether there are any application issues that interfere with the upgrade due to the file in question. -- **DisplayGenericMessage** Will be a generic message be shown for this file? -- **DisplayGenericMessageGated** Indicates whether a generic message be shown for this file. -- **HardBlock** This file is blocked in the SDB. -- **HasUxBlockOverride** Does the file have a block that is overridden by a tag in the SDB? -- **MigApplication** Does the file have a MigXML from the SDB associated with it that applies to the current upgrade mode? -- **MigRemoval** Does the file have a MigXML from the SDB that will cause the app to be removed on upgrade? -- **NeedsDismissAction** Will the file cause an action that can be dismissed? -- **NeedsInstallPostUpgradeData** After upgrade, the file will have a post-upgrade notification to install a replacement for the app. -- **NeedsNotifyPostUpgradeData** Does the file have a notification that should be shown after upgrade? -- **NeedsReinstallPostUpgradeData** After upgrade, this file will have a post-upgrade notification to reinstall the app. -- **NeedsUninstallAction** The file must be uninstalled to complete the upgrade. -- **SdbBlockUpgrade** The file is tagged as blocking upgrade in the SDB, -- **SdbBlockUpgradeCanReinstall** The file is tagged as blocking upgrade in the SDB. It can be reinstalled after upgrade. -- **SdbBlockUpgradeUntilUpdate** The file is tagged as blocking upgrade in the SDB. If the app is updated, the upgrade can proceed. -- **SdbReinstallUpgrade** The file is tagged as needing to be reinstalled after upgrade in the SDB. It does not block upgrade. -- **SdbReinstallUpgradeWarn** The file is tagged as needing to be reinstalled after upgrade with a warning in the SDB. It does not block upgrade. -- **SoftBlock** The file is softblocked in the SDB and has a warning. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove - -This event indicates that the DecisionApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionApplicationFileStartSync - -This event indicates that a new set of DecisionApplicationFileAdd events will be sent. This event is used to make compatibility decisions about a file 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpAdd - -This event sends compatibility decision data about a Plug and Play (PNP) device 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 generating the events. -- **AssociatedDriverIsBlocked** Is the driver associated with this PNP device blocked? -- **AssociatedDriverWillNotMigrate** Will the driver associated with this plug-and-play device migrate? -- **BlockAssociatedDriver** Should the driver associated with this PNP device be blocked? -- **BlockingDevice** Is this PNP device blocking upgrade? -- **BlockUpgradeIfDriverBlocked** Is the PNP device both boot critical and does not have a driver included with the OS? -- **BlockUpgradeIfDriverBlockedAndOnlyActiveNetwork** Is this PNP device the only active network device? -- **DisplayGenericMessage** Will a generic message be shown during Setup for this PNP device? -- **DisplayGenericMessageGated** Indicates whether a generic message will be shown during Setup for this PNP device. -- **DriverAvailableInbox** Is a driver included with the operating system for this PNP device? -- **DriverAvailableOnline** Is there a driver for this PNP device on Windows Update? -- **DriverAvailableUplevel** Is there a driver on Windows Update or included with the operating system for this PNP device? -- **DriverBlockOverridden** Is there is a driver block on the device that has been overridden? -- **NeedsDismissAction** Will the user would need to dismiss a warning during Setup for this device? -- **NotRegressed** Does the device have a problem code on the source OS that is no better than the one it would have on the target OS? -- **SdbDeviceBlockUpgrade** Is there an SDB block on the PNP device that blocks upgrade? -- **SdbDriverBlockOverridden** Is there an SDB block on the PNP device that blocks upgrade, but that block was overridden? - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpRemove - -This event Indicates that the DecisionDevicePnp object represented by the objectInstanceId is no longer present. This event is used to make compatibility decisions about PNP devices 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDevicePnpStartSync - -This event indicates that a new set of DecisionDevicePnpAdd events will be sent. This event is used to make compatibility decisions about PNP devices 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageAdd - -This event sends decision data about driver package compatibility 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 generating the events. -- **DisplayGenericMessageGated** Indicates whether a generic offer block message will be shown for this driver package. -- **DriverBlockOverridden** Does the driver package have an SDB block that blocks it from migrating, but that block has been overridden? -- **DriverIsDeviceBlocked** Was the driver package was blocked because of a device block? -- **DriverIsDriverBlocked** Is the driver package blocked because of a driver block? -- **DriverShouldNotMigrate** Should the driver package be migrated during upgrade? -- **SdbDriverBlockOverridden** Does the driver package have an SDB block that blocks it from migrating, but that block has been overridden? - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageRemove - -This event indicates that the DecisionDriverPackage object represented by the objectInstanceId is no longer present. This event is used to make compatibility decisions about driver packages 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. - - -### Microsoft.Windows.Appraiser.General.DecisionDriverPackageStartSync - -The DecisionDriverPackageStartSync event indicates that a new set of DecisionDriverPackageAdd events will be sent. This event is used to make compatibility decisions about driver packages 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockAdd - -This event sends compatibility decision data about blocking entries on the system that are not keyed by either applications or devices, 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 generating the events. -- **BlockingApplication** Are there are any application issues that interfere with upgrade due to matching info blocks? -- **DisplayGenericMessage** Will a generic message be shown for this block? -- **NeedsDismissAction** Will the file cause an action that can be dismissed? -- **NeedsUninstallAction** Does the user need to take an action in setup due to a matching info block? -- **SdbBlockUpgrade** Is a matching info block blocking upgrade? -- **SdbBlockUpgradeCanReinstall** Is a matching info block blocking upgrade, but has the can reinstall tag? -- **SdbBlockUpgradeUntilUpdate** Is a matching info block blocking upgrade but has the until update tag? -- **SdbReinstallUpgradeWarn** The file is tagged as needing to be reinstalled after upgrade with a warning in the SDB. It does not block upgrade. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockRemove - -This event indicates that the DecisionMatchingInfoBlock object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoBlockStartSync - -This event indicates that a new set of DecisionMatchingInfoBlockAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveAdd - -This event sends compatibility decision data about non-blocking entries on the system that are not keyed by either applications or devices, 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. -- **BlockingApplication** Are there any application issues that interfere with upgrade due to matching info blocks? -- **DisplayGenericMessageGated** Indicates whether a generic offer block message will be shown due to matching info blocks. -- **MigApplication** Is there a matching info block with a mig for the current mode of upgrade? - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveRemove - -This event Indicates that the DecisionMatchingInfoPassive object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPassiveStartSync - -This event indicates that a new set of DecisionMatchingInfoPassiveAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeAdd - -This event sends compatibility decision data about entries that require reinstall after upgrade. It's used 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. -- **NeedsInstallPostUpgradeData** Will the file have a notification after upgrade to install a replacement for the app? -- **NeedsNotifyPostUpgradeData** Should a notification be shown for this file after upgrade? -- **NeedsReinstallPostUpgradeData** Will the file have a notification after upgrade to reinstall the app? -- **SdbReinstallUpgrade** The file is tagged as needing to be reinstalled after upgrade in the compatibility database (but is not blocking upgrade). - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeRemove - -This event indicates that the DecisionMatchingInfoPostUpgrade object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeStartSync - -This event indicates that a new set of DecisionMatchingInfoPostUpgradeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterAdd - -This event sends decision data about the presence of Windows Media Center, 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 generating the events. -- **BlockingApplication** Is there any application issues that interfere with upgrade due to Windows Media Center? -- **MediaCenterActivelyUsed** If Windows Media Center is supported on the edition, has it been run at least once and are the MediaCenterIndicators are true? -- **MediaCenterIndicators** Do any indicators imply that Windows Media Center is in active use? -- **MediaCenterInUse** Is Windows Media Center actively being used? -- **MediaCenterPaidOrActivelyUsed** Is Windows Media Center actively being used or is it running on a supported edition? -- **NeedsDismissAction** Are there any actions that can be dismissed coming from Windows Media Center? - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterRemove - -This event indicates that the DecisionMediaCenter object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionMediaCenterStartSync - -This event indicates that a new set of DecisionMediaCenterAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionSModeStateAdd - -This event sends true/false compatibility decision data about the S mode state. The data collected with this event is used 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** Appraiser decision about eligibility to upgrade. -- **LockdownMode** S mode lockdown mode. - - -### Microsoft.Windows.Appraiser.General.DecisionSModeStateStartSync - -The DecisionSModeStateStartSync event indicates that a new set of DecisionSModeStateAdd events will be sent. This event is used to make compatibility decisions about the S mode state. Microsoft uses this information to understand and address problems regarding the S mode state for computers receiving updates. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosAdd - -This event sends compatibility decision data about the BIOS 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 generating the events. -- **Blocking** Is the device blocked from upgrade due to a BIOS block? -- **DisplayGenericMessageGated** Indicates whether a generic offer block message will be shown for the bios. -- **HasBiosBlock** Does the device have a BIOS block? - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosRemove - -This event indicates that the DecisionSystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemBiosStartSync - -This event indicates that a new set of DecisionSystemBiosAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemDiskSizeAdd - -This event indicates that this object type was added. This data refers to the Disk size in the device. The data collected with this event is used 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 generating the events. -- **Blocking** Appraiser decision for upgrade experience marker. -- **TotalSize** Disk size in Gb. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemDiskSizeStartSync - -Start sync event for physical disk size data. The data collected with this event is used 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemMemoryAdd - -This event sends compatibility decision data about the system memory to help keep Windows up to date. Microsoft uses this information to understand and address problems regarding system memory for computers receiving updates. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **AppraiserVersion** The version of the appraiser file generating the events. -- **Blocking** Blocking information. -- **MemoryRequirementViolated** Memory information. -- **ramKB** Memory information in KB. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemMemoryStartSync - -The DecisionSystemMemoryStartSync event indicates that a new set of DecisionSystemMemoryAdd events will be sent. The data collected with this event is used 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemProcessorCpuCoresAdd - -This data attribute refers to the number of Cores a CPU supports. The data collected with this event is used 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 generating the events. -- **Blocking** The Appraisal decision about eligibility to upgrade. -- **CpuCores** Number of CPU Cores. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemProcessorCpuCoresStartSync - -This event signals the start of telemetry collection for CPU cores in Appraiser. The data collected with this event is used 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemProcessorCpuModelAdd - -This event sends true/false compatibility decision data about the CPU. The data collected with this event is used 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 generating the events. -- **Armv81Support** Arm v8.1 Atomics support. -- **Blocking** Appraiser decision about eligibility to upgrade. -- **CpuFamily** Cpu family. -- **CpuModel** Cpu model. -- **CpuStepping** Cpu stepping. -- **CpuVendor** Cpu vendor. -- **PlatformId** CPU platform identifier. -- **ProcessorName** OEM processor name. -- **ProductName** OEM product name. -- **SysReqOverride** Appraiser decision about system requirements override. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemProcessorCpuModelStartSync - -The DecisionSystemProcessorCpuModelStartSync event indicates that a new set of DecisionSystemProcessorCpuModelAdd events will be sent. This event is used to make compatibility decisions about the CPU. Microsoft uses this information to understand and address problems regarding the CPU for computers receiving updates. The data collected with this event is used 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemProcessorCpuSpeedAdd - -This event sends compatibility decision data about the CPU, 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 generating the events. -- **Blocking** Appraiser OS eligibility decision. -- **Mhz** CPU speed in MHz. - - -### Microsoft.Windows.Appraiser.General.DecisionSystemProcessorCpuSpeedStartSync - -This event collects data for CPU speed in MHz. The data collected with this event is used 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DecisionTestAdd - -This event provides diagnostic data for testing decision add events. The data collected with this event is used 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 binary generating the events. -- **TestDecisionDataPoint1** Test data point 1. -- **TestDecisionDataPoint2** Test data point 2. - - -### Microsoft.Windows.Appraiser.General.DecisionTestRemove - -This event provides data that allows testing of “Remove” decisions 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 binary (executable) generating the events. - - -### Microsoft.Windows.Appraiser.General.DecisionTestStartSync - -This event provides data that allows testing of “Start Sync” decisions 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 binary (executable) generating the events. - - -### Microsoft.Windows.Appraiser.General.DecisionTpmVersionAdd - -This event collects data about the Trusted Platform Module (TPM) in the device. TPM technology is designed to provide hardware-based, security-related functions. The data collected with this event is used 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 generating the events. -- **Blocking** Appraiser upgradeability decision based on the device's TPM support. -- **SysReqOverride** Appraiser decision about system requirements override. -- **TpmVersionInfo** The version of Trusted Platform Module (TPM) technology in the device. - - -### Microsoft.Windows.Appraiser.General.DecisionTpmVersionStartSync - -The DecisionTpmVersionStartSync event indicates that a new set of DecisionTpmVersionAdd events will be sent. This event is used to make compatibility decisions about the TPM. Microsoft uses this information to understand and address problems regarding the TPM for computers receiving updates. The data collected with this event is used 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.DecisionUefiSecureBootAdd - -This event collects information about data on support and state of UEFI Secure boot. UEFI is a verification mechanism for ensuring that code launched by firmware is trusted. The data collected with this event is used 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 generating the events. -- **Blocking** Appraiser upgradeability decision when checking for UEFI support. -- **SecureBootCapable** Is UEFI supported? -- **SecureBootEnabled** Is UEFI enabled? - - -### Microsoft.Windows.Appraiser.General.DecisionUefiSecureBootStartSync - -Start sync event data for UEFI Secure boot. UEFI is a verification mechanism for ensuring that code launched by firmware is trusted. The data collected with this event is used 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 generating the events. - - -### Microsoft.Windows.Appraiser.General.GatedRegChange - -This event sends data about the results of running a set of quick-blocking instructions, to help keep Windows up to date. - -The following fields are available: - -- **NewData** The data in the registry value after the scan completed. -- **OldData** The previous data in the registry value before the scan ran. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **RegKey** The registry key name for which a result is being sent. -- **RegValue** The registry value for which a result is being sent. -- **Time** The client time of the event. - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileAdd - -This event represents the basic metadata about a file on the system. The file must be part of an app and either have a block in the compatibility database or be part of an antivirus program. The data collected with this event is used 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 generating the events. -- **AvDisplayName** If the app is an antivirus app, this is its display name. -- **AvProductState** Indicates whether the antivirus program is turned on and the signatures are up to date. -- **BinaryType** A binary type. Example: UNINITIALIZED, ZERO_BYTE, DATA_ONLY, DOS_MODULE, NE16_MODULE, PE32_UNKNOWN, PE32_I386, PE32_ARM, PE64_UNKNOWN, PE64_AMD64, PE64_ARM64, PE64_IA64, PE32_CLR_32, PE32_CLR_IL, PE32_CLR_IL_PREFER32, PE64_CLR_64. -- **BinFileVersion** An attempt to clean up FileVersion at the client that tries to place the version into 4 octets. -- **BinProductVersion** An attempt to clean up ProductVersion at the client that tries to place the version into 4 octets. -- **BoeProgramId** If there is no entry in Add/Remove Programs, this is the ProgramID that is generated from the file metadata. -- **CompanyName** The company name of the vendor who developed this file. -- **FileId** A hash that uniquely identifies a file. -- **FileVersion** The File version field from the file metadata under Properties -> Details. -- **HasUpgradeExe** Indicates whether the antivirus app has an upgrade.exe file. -- **IsAv** Indicates whether the file an antivirus reporting EXE. -- **LinkDate** The date and time that this file was linked on. -- **LowerCaseLongPath** The full file path to the file that was inventoried on the device. -- **Name** The name of the file that was inventoried. -- **ProductName** The Product name field from the file metadata under Properties -> Details. -- **ProductVersion** The Product version field from the file metadata under Properties -> Details. -- **ProgramId** A hash of the Name, Version, Publisher, and Language of an application used to identify it. -- **Size** The size of the file (in hexadecimal bytes). - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileRemove - -This event indicates that the InventoryApplicationFile object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync - -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackAdd - -This event sends data about the number of language packs installed on the system, 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. -- **HasLanguagePack** Indicates whether this device has 2 or more language packs. -- **LanguagePackCount** The number of language packs are installed. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackRemove - -This event indicates that the InventoryLanguagePack object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryLanguagePackStartSync - -This event indicates that a new set of InventoryLanguagePackAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterAdd - -This event sends true/false data about decision points used to understand whether Windows Media Center is used on the system, 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 generating the events. -- **EverLaunched** Has Windows Media Center ever been launched? -- **HasConfiguredTv** Has the user configured a TV tuner through Windows Media Center? -- **HasExtendedUserAccounts** Are any Windows Media Center Extender user accounts configured? -- **HasWatchedFolders** Are any folders configured for Windows Media Center to watch? -- **IsDefaultLauncher** Is Windows Media Center the default app for opening music or video files? -- **IsPaid** Is the user running a Windows Media Center edition that implies they paid for Windows Media Center? -- **IsSupported** Does the running OS support Windows Media Center? - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterRemove - -This event indicates that the InventoryMediaCenter object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryMediaCenterStartSync - -This event indicates that a new set of InventoryMediaCenterAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosAdd - -This event sends basic metadata about the BIOS to determine whether it has a compatibility block. The data collected with this event is used 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. -- **BiosDate** The release date of the BIOS in UTC format. -- **BiosName** The name field from Win32_BIOS. -- **Manufacturer** The manufacturer field from Win32_ComputerSystem. -- **Model** The model field from Win32_ComputerSystem. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosRemove - -This event indicates that the InventorySystemBios object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventorySystemBiosStartSync - -This event indicates that a new set of InventorySystemBiosAdd events will be sent. The data collected with this event is used 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 binary (executable) generating the events. - - -### Microsoft.Windows.Appraiser.General.InventorySystemProcessorEndSync - -This event indicates that a full set of InventorySystemProcessorAdd events has been sent. The data collected with this event is used 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 binary (executable) generating the events. - - -### Microsoft.Windows.Appraiser.General.InventorySystemProcessorStartSync - -This event indicates that a new set of InventorySystemProcessorAdd events will be sent. The data collected with this event is used 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 binary (executable) generating the events. - - -### Microsoft.Windows.Appraiser.General.InventoryTestAdd - -This event provides diagnostic data for testing event adds. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **AppraiserVersion** The version of the component sending the data. -- **TestInvDataPoint1** Test inventory data point 1. -- **TestInvDataPoint2** Test inventory data point 2. - - -### Microsoft.Windows.Appraiser.General.InventoryTestRemove - -This event provides data that allows testing of “Remove” decisions 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 binary (executable) generating the events. - - -### Microsoft.Windows.Appraiser.General.InventoryTestStartSync - -This event provides data that allows testing of “Start Sync” decisions 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 binary (executable) generating the events. - - -### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageAdd - -This event runs only during setup. It provides a listing of the uplevel driver packages that were downloaded before the upgrade. It is critical in understanding if failures in setup can be traced to not having sufficient uplevel drivers before the upgrade. The data collected with this event is used 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. -- **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. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageStartSync - -This event indicates that a new set of InventoryUplevelDriverPackageAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.RunContext - -This event is sent at the beginning of an appraiser run, the RunContext indicates what should be expected in the following data payload. This event is used with the other Appraiser events to make compatibility decisions to keep Windows up to date. - -The following fields are available: - -- **AppraiserBranch** The source branch in which the currently running version of Appraiser was built. -- **AppraiserProcess** The name of the process that launched Appraiser. -- **AppraiserVersion** The version of the Appraiser file generating the events. -- **CensusId** A unique hardware identifier. -- **Context** Indicates what mode Appraiser is running in. Example: Setup or Telemetry. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **Subcontext** Indicates what categories of incompatibilities appraiser is scanning for. Can be N/A, Resolve, or a semicolon-delimited list that can include App, Dev, Sys, Gat, or Rescan. -- **Time** The client time of the event. - - -### Microsoft.Windows.Appraiser.General.SystemMemoryAdd - -This event sends data on the amount of memory on the system and whether it meets requirements, 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 generating the events. -- **Blocking** Is the device from upgrade due to memory restrictions? -- **MemoryRequirementViolated** Was a memory requirement violated? -- **pageFile** The current committed memory limit for the system or the current process, whichever is smaller (in bytes). -- **ram** The amount of memory on the device. -- **ramKB** The amount of memory (in KB). -- **virtual** The size of the user-mode portion of the virtual address space of the calling process (in bytes). -- **virtualKB** The amount of virtual memory (in KB). - - -### Microsoft.Windows.Appraiser.General.SystemMemoryRemove - -This event that the SystemMemory object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemMemoryStartSync - -This event indicates that a new set of SystemMemoryAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeAdd - -This event sends data indicating whether the system supports the CompareExchange128 CPU requirement, 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 generating the events. -- **Blocking** Is the upgrade blocked due to the processor? -- **CompareExchange128Support** Does the CPU support CompareExchange128? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeRemove - -This event indicates that the SystemProcessorCompareExchange object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorCompareExchangeStartSync - -This event indicates that a new set of SystemProcessorCompareExchangeAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfAdd - -This event sends data indicating whether the system supports the LAHF & SAHF CPU requirement, 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 generating the events. -- **Blocking** Is the upgrade blocked due to the processor? -- **LahfSahfSupport** Does the CPU support LAHF/SAHF? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfRemove - -This event indicates that the SystemProcessorLahfSahf object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorLahfSahfStartSync - -This event indicates that a new set of SystemProcessorLahfSahfAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxAdd - -This event sends data indicating whether the system supports the NX CPU requirement, 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 due to the processor? -- **NXDriverResult** The result of the driver used to do a non-deterministic check for NX support. -- **NXProcessorSupport** Does the processor support NX? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxRemove - -This event indicates that the SystemProcessorNx object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorNxStartSync - -This event indicates that a new set of SystemProcessorNxAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWAdd - -This event sends data indicating whether the system supports the PrefetchW CPU requirement, 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 due to the processor? -- **PrefetchWSupport** Does the processor support PrefetchW? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWRemove - -This event indicates that the SystemProcessorPrefetchW object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorPrefetchWStartSync - -This event indicates that a new set of SystemProcessorPrefetchWAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2Add - -This event sends data indicating whether the system supports the SSE2 CPU requirement, 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 due to the processor? -- **SSE2ProcessorSupport** Does the processor support SSE2? - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2Remove - -This event indicates that the SystemProcessorSse2 object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemProcessorSse2StartSync - -This event indicates that a new set of SystemProcessorSse2Add events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemTouchAdd - -This event sends data indicating whether the system supports touch, 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. -- **IntegratedTouchDigitizerPresent** Is there an integrated touch digitizer? -- **MaximumTouches** The maximum number of touch points supported by the device hardware. - - -### Microsoft.Windows.Appraiser.General.SystemTouchRemove - -This event indicates that the SystemTouch object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemTouchStartSync - -This event indicates that a new set of SystemTouchAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWimAdd - -This event sends data indicating whether the operating system is running from a compressed Windows Imaging Format (WIM) file, 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. -- **IsWimBoot** Is the current operating system running from a compressed WIM file? -- **RegistryWimBootValue** The raw value from the registry that is used to indicate if the device is running from a WIM. - - -### Microsoft.Windows.Appraiser.General.SystemWimRemove - -This event indicates that the SystemWim object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWimStartSync - -This event indicates that a new set of SystemWimAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusAdd - -This event sends data indicating whether the current operating system is activated, 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. -- **WindowsIsLicensedApiValue** The result from the API that's used to indicate if operating system is activated. -- **WindowsNotActivatedDecision** Is the current operating system activated? - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusRemove - -This event indicates that the SystemWindowsActivationStatus object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWindowsActivationStatusStartSync - -This event indicates that a new set of SystemWindowsActivationStatusAdd events will be sent. The data collected with this event is used 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. - - -### 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. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.SystemWlanStartSync - -This event indicates that a new set of SystemWlanAdd events will be sent. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.TelemetryRunHealth - -This event indicates the parameters and result of a diagnostic data run. This allows the rest of the data sent over the course of the run to be properly contextualized and understood, which is then used to keep Windows up to date. - -The following fields are available: - -- **AppraiserBranch** The source branch in which the version of Appraiser that is running was built. -- **AppraiserDataVersion** The version of the data files being used by the Appraiser diagnostic data run. -- **AppraiserProcess** The name of the process that launched Appraiser. -- **AppraiserVersion** The file version (major, minor and build) of the Appraiser DLL, concatenated without dots. -- **AuxFinal** Obsolete, always set to false. -- **AuxInitial** Obsolete, indicates if Appraiser is writing data files to be read by the Get Windows 10 app. -- **CountCustomSdbs** The number of custom Sdbs used by Appraiser. -- **CustomSdbGuids** Guids of the custom Sdbs used by Appraiser; Semicolon delimited list. -- **DeadlineDate** A timestamp representing the deadline date, which is the time until which appraiser will wait to do a full scan. -- **EnterpriseRun** Indicates whether the diagnostic data run is an enterprise run, which means appraiser was run from the command line with an extra enterprise parameter. -- **FullSync** Indicates if Appraiser is performing a full sync, which means that full set of events representing the state of the machine are sent. Otherwise, only the changes from the previous run are sent. -- **InboxDataVersion** The original version of the data files before retrieving any newer version. -- **IndicatorsWritten** Indicates if all relevant UEX indicators were successfully written or updated. -- **InventoryFullSync** Indicates if inventory is performing a full sync, which means that the full set of events representing the inventory of machine are sent. -- **PCFP** An ID for the system calculated by hashing hardware identifiers. -- **PerfBackoff** Indicates if the run was invoked with logic to stop running when a user is present. Helps to understand why a run may have a longer elapsed time than normal. -- **PerfBackoffInsurance** Indicates if appraiser is running without performance backoff because it has run with perf backoff and failed to complete several times in a row. -- **RunAppraiser** Indicates if Appraiser was set to run at all. If this if false, it is understood that data events will not be received from this device. -- **RunDate** The date that the diagnostic data run was stated, expressed as a filetime. -- **RunGeneralTel** Indicates if the generaltel.dll component was run. Generaltel collects additional diagnostic data on an infrequent schedule and only from machines at diagnostic data levels higher than Basic. -- **RunOnline** Indicates if appraiser was able to connect to Windows Update and theefore is making decisions using up-to-date driver coverage information. -- **RunResult** The hresult of the Appraiser diagnostic data run. -- **ScheduledUploadDay** The day scheduled for the upload. -- **SendingUtc** Indicates whether the Appraiser client is sending events during the current diagnostic data run. -- **StoreHandleIsNotNull** Obsolete, always set to false -- **TelementrySent** Indicates whether diagnostic data was successfully sent. -- **ThrottlingUtc** Indicates whether the Appraiser client is throttling its output of CUET events to avoid being disabled. This increases runtime but also diagnostic data reliability. -- **Time** The client time of the event. -- **VerboseMode** Indicates if appraiser ran in Verbose mode, which is a test-only mode with extra logging. -- **WhyFullSyncWithoutTablePrefix** Indicates the reason or reasons that a full sync was generated. - - -### Microsoft.Windows.Appraiser.General.WmdrmAdd - -This event sends data about the usage of older digital rights management on the system, to help keep Windows up to date. This data does not indicate the details of the media using the digital rights management, only whether any such files exist. Collecting this data was critical to ensuring the correct mitigation for customers, and should be able to be removed once all mitigations are in place. - -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. -- **BlockingApplication** Same as NeedsDismissAction. -- **NeedsDismissAction** Indicates if a dismissible message is needed to warn the user about a potential loss of data due to DRM deprecation. -- **WmdrmApiResult** Raw value of the API used to gather DRM state. -- **WmdrmCdRipped** Indicates if the system has any files encrypted with personal DRM, which was used for ripped CDs. -- **WmdrmIndicators** WmdrmCdRipped OR WmdrmPurchased. -- **WmdrmInUse** WmdrmIndicators AND dismissible block in setup was not dismissed. -- **WmdrmNonPermanent** Indicates if the system has any files with non-permanent licenses. -- **WmdrmPurchased** Indicates if the system has any files with permanent licenses. - - -### Microsoft.Windows.Appraiser.General.WmdrmRemove - -This event indicates that the Wmdrm object is no longer present. The data collected with this event is used 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. - - -### Microsoft.Windows.Appraiser.General.WmdrmStartSync - -The WmdrmStartSync event indicates that a new set of WmdrmAdd events will be sent. This event is used to understand the usage of older digital rights management on the system, 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. - - -## Audio endpoint events - -### MicArrayGeometry - -This event provides information about the layout of the individual microphone elements in the microphone array. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **MicCoords** The location and orientation of the microphone element. -- **usFrequencyBandHi** The high end of the frequency range for the microphone. -- **usFrequencyBandLo** The low end of the frequency range for the microphone. -- **usMicArrayType** The type of the microphone array. -- **usNumberOfMicrophones** The number of microphones in the array. -- **usVersion** The version of the microphone array specification. -- **wHorizontalAngleBegin** The horizontal angle of the start of the working volume (reported as radians times 10,000). -- **wHorizontalAngleEnd** The horizontal angle of the end of the working volume (reported as radians times 10,000). -- **wVerticalAngleBegin** The vertical angle of the start of the working volume (reported as radians times 10,000). -- **wVerticalAngleEnd** The vertical angle of the end of the working volume (reported as radians times 10,000). - - -### MicCoords - -This event provides information about the location and orientation of the microphone element. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **usType** The type of microphone. -- **wHorizontalAngle** The horizontal angle of the microphone (reported as radians times 10,000). -- **wVerticalAngle** The vertical angle of the microphone (reported as radians times 10,000). -- **wXCoord** The x-coordinate of the microphone. -- **wYCoord** The y-coordinate of the microphone. -- **wZCoord** The z-coordinate of the microphone. - - -### Microsoft.Windows.Audio.EndpointBuilder.DeviceInfo - -This event logs the successful enumeration of an audio endpoint (such as a microphone or speaker) and provides information about the audio endpoint. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **BusEnumeratorName** The name of the bus enumerator (for example, HDAUDIO or USB). -- **ContainerId** An identifier that uniquely groups the functional devices associated with a single-function or multifunction device. -- **DeviceInstanceId** The unique identifier for this instance of the device. -- **EndpointDevnodeId** The IMMDevice identifier of the associated devnode. -- **endpointEffectClsid** The COM Class Identifier (CLSID) for the endpoint effect audio processing object. -- **endpointEffectModule** Module name for the endpoint effect audio processing object. -- **EndpointFormFactor** The enumeration value for the form factor of the endpoint device (for example speaker, microphone, remote network device). -- **endpointID** The unique identifier for the audio endpoint. -- **endpointInstanceId** The unique identifier for the software audio endpoint. Used for joining to other audio event. -- **Flow** Indicates whether the endpoint is capture (1) or render (0). -- **globalEffectClsid** COM Class Identifier (CLSID) for the legacy global effect audio processing object. -- **globalEffectModule** Module name for the legacy global effect audio processing object. -- **HWID** The hardware identifier for the endpoint. -- **IsBluetooth** Indicates whether the device is a Bluetooth device. -- **isFarField** A flag indicating whether the microphone endpoint is capable of hearing far field audio. -- **IsSideband** Indicates whether the device is a sideband device. -- **IsUSB** Indicates whether the device is a USB device. -- **JackSubType** A unique ID representing the KS node type of the endpoint. -- **localEffectClsid** The COM Class Identifier (CLSID) for the legacy local effect audio processing object. -- **localEffectModule** Module name for the legacy local effect audio processing object. -- **MicArrayGeometry** Describes the microphone array, including the microphone position, coordinates, type, and frequency range. See [MicArrayGeometry](#micarraygeometry). -- **modeEffectClsid** The COM Class Identifier (CLSID) for the mode effect audio processing object. -- **modeEffectModule** Module name for the mode effect audio processing object. -- **persistentId** A unique ID for this endpoint which is retained across migrations. -- **streamEffectClsid** The COM Class Identifier (CLSID) for the stream effect audio processing object. -- **streamEffectModule** Module name for the stream effect audio processing object. - - -## Census events - -### Census.App - -This event sends version data about the Apps running on this device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **AppraiserEnterpriseErrorCode** The error code of the last Appraiser enterprise run. -- **AppraiserErrorCode** The error code of the last Appraiser run. -- **AppraiserRunEndTimeStamp** The end time of the last Appraiser run. -- **AppraiserRunIsInProgressOrCrashed** Flag that indicates if the Appraiser run is in progress or has crashed. -- **AppraiserRunStartTimeStamp** The start time of the last Appraiser run. -- **AppraiserTaskEnabled** Whether the Appraiser task is enabled. -- **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** The version of Internet Explorer that is running on the device. - - -### Census.Azure - -This event returns data from Microsoft-internal Azure server machines (only from Microsoft-internal machines with Server SKUs). All other machines (those outside Microsoft and/or machines that are not part of the “Azure fleet”) return empty data sets. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **CloudCoreBuildEx** The Azure CloudCore build number. -- **CloudCoreSupportBuildEx** The Azure CloudCore support build number. -- **NodeID** The node identifier on the device that indicates whether the device is part of the Azure fleet. - - -### Census.Battery - -This event sends type and capacity data about the battery on the device, as well as the number of connected standby devices in use. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **InternalBatteryCapablities** Represents information about what the battery is capable of doing. -- **InternalBatteryCapacityCurrent** Represents the battery's current fully charged capacity in mWh (or relative). Compare this value to DesignedCapacity  to estimate the battery's wear. -- **InternalBatteryCapacityDesign** Represents the theoretical capacity of the battery when new, in mWh. -- **InternalBatteryNumberOfCharges** Provides the number of battery charges. This is used when creating new products and validating that existing products meets targeted functionality performance. -- **IsAlwaysOnAlwaysConnectedCapable** Represents whether the battery enables the device to be AlwaysOnAlwaysConnected . Boolean value. - - -### Census.Enterprise - -This event sends data about Azure presence, type, and cloud domain use in order to provide an understanding of the use and integration of devices in an enterprise, cloud, and server environment. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **AADDeviceId** Azure Active Directory device ID. -- **AzureOSIDPresent** Represents the field used to identify an Azure machine. -- **AzureVMType** Represents whether the instance is Azure VM PAAS, Azure VM IAAS or any other VMs. -- **CDJType** Represents the type of cloud domain joined for the machine. -- **CommercialId** Represents the GUID for the commercial entity which the device is a member of.  Will be used to reflect insights back to customers. -- **ContainerType** The type of container, such as process or virtual machine hosted. -- **EnrollmentType** Defines the type of MDM enrollment on the device. -- **HashedDomain** The hashed representation of the user domain used for login. -- **IsCloudDomainJoined** Is this device joined to an Azure Active Directory (AAD) tenant? true/false -- **IsDERequirementMet** Represents if the device can do device encryption. -- **IsDeviceProtected** Represents if Device protected by BitLocker/Device Encryption -- **IsDomainJoined** Indicates whether a machine is joined to a domain. -- **IsEDPEnabled** Represents if Enterprise data protected on the device. -- **IsMDMEnrolled** Whether the device has been MDM Enrolled or not. -- **MDMServiceProvider** A hash of the specific MDM authority, such as Microsoft Intune, that is managing the device. -- **MPNId** Returns the Partner ID/MPN ID from Regkey. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\DeployID -- **SCCMClientId** This ID correlate systems that send data to Compat Analytics (OMS) and other OMS based systems with systems in an enterprise Configuration Manager environment. -- **ServerFeatures** Represents the features installed on a Windows Server. This can be used by developers and administrators who need to automate the process of determining the features installed on a set of server computers. -- **SystemCenterID** The Configuration Manager ID is an anonymized one-way hash of the Active Directory Organization identifier - - -### Census.Firmware - -This event sends data about the BIOS and startup embedded in the device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **FirmwareManufacturer** Represents the manufacturer of the device's firmware (BIOS). -- **FirmwareReleaseDate** Represents the date the current firmware was released. -- **FirmwareType** Represents the firmware type. The various types can be unknown, BIOS, UEFI. -- **FirmwareVersion** Represents the version of the current firmware. - - -### Census.Flighting - -This event sends Windows Insider data from customers participating in improvement testing and feedback programs. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceSampleRate** The telemetry sample rate assigned to the device. -- **DriverTargetRing** Indicates if the device is participating in receiving pre-release drivers and firmware contrent. -- **EnablePreviewBuilds** Used to enable Windows Insider builds on a device. -- **FlightIds** A list of the different Windows Insider builds on this device. -- **FlightingBranchName** The name of the Windows Insider branch currently used by the device. -- **IsFlightsDisabled** Represents if the device is participating in the Windows Insider program. -- **MSA_Accounts** Represents a list of hashed IDs of the Microsoft Accounts that are flighting (pre-release builds) on this device. -- **SSRK** Retrieves the mobile targeting settings. - - -### Census.Hardware - -This event sends data about the device, including hardware type, OEM brand, model line, model, telemetry level setting, and TPM support. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ActiveMicCount** The number of active microphones attached to the device. -- **ChassisType** Represents the type of device chassis, such as desktop or low profile desktop. The possible values can range between 1 - 36. -- **ComputerHardwareID** Identifies a device class that is represented by a hash of different SMBIOS fields. -- **D3DMaxFeatureLevel** Supported Direct3D version. -- **DeviceColor** Indicates a color of the device. -- **DeviceForm** Indicates the form as per the device classification. -- **DeviceName** The device name that is set by the user. -- **DigitizerSupport** Is a digitizer supported? -- **DUID** The device unique ID. -- **EnclosureKind** Windows.Devices.Enclosure.EnclosureKind enum values representing each unique enclosure posture kind. -- **Gyroscope** Indicates whether the device has a gyroscope (a mechanical component that measures and maintains orientation). -- **InventoryId** The device ID used for compatibility testing. -- **Magnetometer** Indicates whether the device has a magnetometer (a mechanical component that works like a compass). -- **NFCProximity** Indicates whether the device supports NFC (a set of communication protocols that helps establish communication when applicable devices are brought close together.) -- **OEMDigitalMarkerFileName** The name of the file placed in the \Windows\system32\drivers directory that specifies the OEM and model name of the device. -- **OEMManufacturerName** The device manufacturer name. The OEMName for an inactive device is not reprocessed even if the clean OEM name is changed at a later date. -- **OEMModelBaseBoard** The baseboard model used by the OEM. -- **OEMModelBaseBoardVersion** Differentiates between developer and retail devices. -- **OEMModelName** The device model name. -- **OEMModelNumber** The device model number. -- **OEMModelSKU** The device edition that is defined by the manufacturer. -- **OEMModelSystemFamily** The system family set on the device by an OEM. -- **OEMModelSystemVersion** The system model version set on the device by the OEM. -- **OEMOptionalIdentifier** A Microsoft assigned value that represents a specific OEM subsidiary. -- **OEMSerialNumber** The serial number of the device that is set by the manufacturer. -- **PhoneManufacturer** The friendly name of the phone manufacturer. -- **PowerPlatformRole** The OEM preferred power management profile. It's used to help to identify the basic form factor of the device. -- **SoCName** The firmware manufacturer of the device. -- **StudyID** Used to identify retail and non-retail device. -- **TelemetryLevel** The telemetry level the user has opted into, such as Basic or Enhanced. -- **TelemetryLevelLimitEnhanced** The telemetry level for Windows Analytics-based solutions. -- **TelemetrySettingAuthority** Determines who set the telemetry level, such as GP, MDM, or the user. -- **TPMManufacturerId** The ID of the TPM manufacturer. -- **TPMManufacturerVersion** The version of the TPM manufacturer. -- **TPMVersion** The supported Trusted Platform Module (TPM) on the device. If no TPM is present, the value is 0. -- **VoiceSupported** Does the device have a cellular radio capable of making voice calls? - - -### Census.Memory - -This event sends data about the memory on the device, including ROM and RAM. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **TotalPhysicalRAM** Represents the physical memory (in MB). -- **TotalVisibleMemory** Represents the memory that is not reserved by the system. - - -### Census.Network - -This event sends data about the mobile and cellular network used by the device (mobile service provider, network, device ID, and service cost factors). The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CellularModemHWInstanceId0** HardwareInstanceId of the embedded Mobile broadband modem, as reported and used by PnP system to identify the WWAN modem device in Windows system. Empty string (null string) indicates that this property is unknown for telemetry. -- **IMEI0** Represents the International Mobile Station Equipment Identity. This number is usually unique and used by the mobile operator to distinguish different phone hardware. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. The two fields represent phone with dual sim coverage. -- **IMEI1** Represents the International Mobile Station Equipment Identity. This number is usually unique and used by the mobile operator to distinguish different phone hardware. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. The two fields represent phone with dual sim coverage. -- **MCC0** Represents the Mobile Country Code (MCC). It used with the Mobile Network Code (MNC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MCC1** Represents the Mobile Country Code (MCC). It used with the Mobile Network Code (MNC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MEID** Represents the Mobile Equipment Identity (MEID). MEID is a worldwide unique phone ID assigned to CDMA phones. MEID replaces electronic serial number (ESN), and is equivalent to IMEI for GSM and WCDMA phones. Microsoft does not have access to mobile operator billing data so collecting this data does not expose or identify the user. -- **MNC0** Retrieves the Mobile Network Code (MNC). It used with the Mobile Country Code (MCC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MNC1** Retrieves the Mobile Network Code (MNC). It used with the Mobile Country Code (MCC) to uniquely identify a mobile network operator. The two fields represent phone with dual sim coverage. -- **MobileOperatorBilling** Represents the telephone company that provides services for mobile phone users. -- **MobileOperatorCommercialized** Represents which reseller and geography the phone is commercialized for. This is the set of values on the phone for who and where it was intended to be used. For example, the commercialized mobile operator code AT&T in the US would be ATT-US. -- **MobileOperatorNetwork0** Represents the operator of the current mobile network that the device is used on. (AT&T, T-Mobile, Vodafone). The two fields represent phone with dual sim coverage. -- **MobileOperatorNetwork1** Represents the operator of the current mobile network that the device is used on. (AT&T, T-Mobile, Vodafone). The two fields represent phone with dual sim coverage. -- **ModemOptionalCapabilityBitMap0** A bit map of optional capabilities in modem, such as eSIM support. -- **NetworkAdapterGUID** The GUID of the primary network adapter. -- **NetworkCost** Represents the network cost associated with a connection. -- **SPN0** Retrieves the Service Provider Name (SPN). For example, these might be AT&T, Sprint, T-Mobile, or Verizon. The two fields represent phone with dual sim coverage. -- **SPN1** Retrieves the Service Provider Name (SPN). For example, these might be AT&T, Sprint, T-Mobile, or Verizon. The two fields represent phone with dual sim coverage. -- **SupportedDataClassBitMap0** A bit map of the supported data classes (i.g, 5g 4g...) that the modem is capable of. -- **SupportedDataSubClassBitMap0** A bit map of data subclasses that the modem is capable of. - - -### Census.OS - -This event sends data about the operating system such as the version, locale, update service configuration, when and how it was originally installed, and whether it is a virtual device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ActivationChannel** Retrieves the retail license key or Volume license key for a machine. -- **AssignedAccessStatus** Kiosk configuration mode. -- **CompactOS** Indicates if the Compact OS feature from Win10 is enabled. -- **DeveloperUnlockStatus** Represents if a device has been developer unlocked by the user or Group Policy. -- **DeviceTimeZone** The time zone that is set on the device. Example: Pacific Standard Time -- **GenuineState** Retrieves the ID Value specifying the OS Genuine check. -- **InstallationType** Retrieves the type of OS installation. (Clean, Upgrade, Reset, Refresh, Update). -- **InstallLanguage** The first language installed on the user machine. -- **IsDeviceRetailDemo** Retrieves if the device is running in demo mode. -- **IsEduData** Returns Boolean if the education data policy is enabled. -- **IsPortableOperatingSystem** Retrieves whether OS is running Windows-To-Go -- **IsSecureBootEnabled** Retrieves whether Boot chain is signed under UEFI. -- **LanguagePacks** The list of language packages installed on the device. -- **LicenseStateReason** Retrieves why (or how) a system is licensed or unlicensed. The HRESULT may indicate an error code that indicates a key blocked error, or it may indicate that we are running an OS License granted by the MS store. -- **OA3xOriginalProductKey** Retrieves the License key stamped by the OEM to the machine. -- **OSEdition** Retrieves the version of the current OS. -- **OSInstallType** Retrieves a numeric description of what install was used on the device i.e. clean, upgrade, refresh, reset, etc -- **OSOOBEDateTime** Retrieves Out of Box Experience (OOBE) Date in Coordinated Universal Time (UTC). -- **OSSKU** Retrieves the Friendly Name of OS Edition. -- **OSSubscriptionStatus** Represents the existing status for enterprise subscription feature for PRO machines. -- **OSSubscriptionTypeId** Returns boolean for enterprise subscription feature for selected PRO machines. -- **OSTimeZoneBiasInMins** Retrieves the time zone set on machine. -- **OSUILocale** Retrieves the locale of the UI that is currently used by the OS. -- **ProductActivationResult** Returns Boolean if the OS Activation was successful. -- **ProductActivationTime** Returns the OS Activation time for tracking piracy issues. -- **ProductKeyID2** Retrieves the License key if the machine is updated with a new license key. -- **RACw7Id** Retrieves the Microsoft Reliability Analysis Component (RAC) Win7 Identifier. RAC is used to monitor and analyze system usage and reliability. -- **ServiceMachineIP** Retrieves the IP address of the KMS host used for anti-piracy. -- **ServiceMachinePort** Retrieves the port of the KMS host used for anti-piracy. -- **ServiceProductKeyID** Retrieves the License key of the KMS -- **SharedPCMode** Returns Boolean for devices that have enabled the configuration EnableSharedPCMode. -- **Signature** Retrieves if it is a signature machine sold by Microsoft store. -- **SLICStatus** Whether a SLIC table exists on the device. -- **SLICVersion** Returns OS type/version from SLIC table. - - -### Census.PrivacySettings - -This event provides information about the device level privacy settings and whether device-level access was granted to these capabilities. Not all settings are applicable to all devices. Each field records the consent state for the corresponding privacy setting. The consent state is encoded as a 16-bit signed integer, where the first 8 bits represents the effective consent value, and the last 8 bits represent the authority that set the value. The effective consent (first 8 bits) is one of the following values: -3 = unexpected consent value, -2 = value was not requested, -1 = an error occurred while attempting to retrieve the value, 0 = undefined, 1 = allow, 2 = deny, 3 = prompt. The consent authority (last 8 bits) is one of the following values: -3 = unexpected authority, -2 = value was not requested, -1 = an error occurred while attempting to retrieve the value, 0 = system, 1 = a higher authority (a gating setting, the system-wide setting, or a group policy), 2 = advertising ID group policy, 3 = advertising ID policy for child account, 4 = privacy setting provider doesn't know the actual consent authority, 5 = consent was not configured and a default set in code was used, 6 = system default, 7 = organization policy, 8 = OneSettings. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **Activity** Current state of the activity history setting. -- **ActivityHistoryCloudSync** Current state of the activity history cloud sync setting. -- **ActivityHistoryCollection** Current state of the activity history collection setting. -- **AdvertisingId** Current state of the advertising ID setting. -- **AppDiagnostics** Current state of the app diagnostics setting. -- **Appointments** 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. -- **Contacts** Current state of the contacts setting. -- **DocumentsLibrary** Current state of the documents library setting. -- **Email** 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. -- **InkTypeImprovement** Current state of the improve inking and typing setting. -- **Location** Current state of the location setting. -- **LocationHistory** Current state of the location history setting. -- **LocationHistoryCloudSync** Current state of the location history cloud sync setting. -- **LocationHistoryOnTimeline** Current state of the location history on timeline setting. -- **Microphone** Current state of the microphone setting. -- **PhoneCall** Current state of the phone call setting. -- **PhoneCallHistory** 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. -- **SerialCommunication** Current state of the serial communication setting. -- **Sms** Current state of the text messaging setting. -- **SpeechPersonalization** Current state of the speech services setting. -- **USB** Current state of the USB setting. -- **UserAccountInformation** Current state of the account information setting. -- **UserDataTasks** 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. -- **WiFiDirect** Current state of the Wi-Fi direct setting. - - -### Census.Processor - -This event sends data about the processor. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **KvaShadow** This is the micro code information of the processor. -- **MMSettingOverride** Microcode setting of the processor. -- **MMSettingOverrideMask** Microcode setting override of the processor. -- **PreviousUpdateRevision** Previous microcode revision -- **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. -- **ProcessorPhysicalCores** Number of physical cores in the processor. -- **ProcessorPlatformSpecificField1** Registry value HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0, @Platform Specific Field 1. Platform Specific Field 1 of the Processor. Each vendor (e.g. Intel) defines the meaning differently. On Intel this is used to differentiate processors of the same generation, (e.g. Kaby Lake, KBL-G, KBL-H, KBL-R). -- **ProcessorUpdateRevision** The microcode revision. -- **ProcessorUpdateStatus** Enum value that represents the processor microcode load status -- **SocketCount** Count of CPU sockets. -- **SpeculationControl** If the system has enabled protections needed to validate the speculation control vulnerability. - - -### Census.Security - -This event provides information about security settings. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **AvailableSecurityProperties** This field helps to enumerate and report state on the relevant security properties for Device Guard. -- **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** 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. -- **IsWdagFeatureEnabled** Indicates whether Windows Defender Application Guard is enabled. -- **NGCSecurityProperties** String representation of NGC security information. -- **RequiredSecurityProperties** Describes the required security properties to enable virtualization-based security. -- **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. -- **ShadowStack** The bit fields of SYSTEM_SHADOW_STACK_INFORMATION representing the state of the Intel CET (Control Enforcement Technology) hardware security feature. -- **SModeState** The Windows S mode trail state. -- **SystemGuardState** Indicates the SystemGuard state. NotCapable (0), Capable (1), Enabled (2), Error (0xFF). -- **TpmReadyState** Indicates the TPM ready state. NotReady (0), ReadyForStorage (1), ReadyForAttestation (2), Error (0xFF). -- **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. -- **WdagPolicyValue** The Windows Defender Application Guard policy. - - -### Census.Speech - -This event is used to gather basic speech settings on the device. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **AboveLockEnabled** Cortana setting that represents if Cortana can be invoked when the device is locked. -- **GPAllowInputPersonalization** Indicates if a Group Policy setting has enabled speech functionalities. -- **HolographicSpeechInputDisabled** Holographic setting that represents if the attached HMD devices have speech functionality disabled by the user. -- **HolographicSpeechInputDisabledRemote** Indicates if a remote policy has disabled speech functionalities for the HMD devices. -- **KeyVer** Version information for the census speech event. -- **KWSEnabled** Cortana setting that represents if a user has enabled the "Hey Cortana" keyword spotter (KWS). -- **MDMAllowInputPersonalization** Indicates if an MDM policy has enabled speech functionalities. -- **RemotelyManaged** Indicates if the device is being controlled by a remote administrator (MDM or Group Policy) in the context of speech functionalities. -- **SpeakerIdEnabled** Cortana setting that represents if keyword detection has been trained to try to respond to a single user's voice. -- **SpeechServicesEnabled** Windows setting that represents whether a user is opted-in for speech services on the device. -- **SpeechServicesValueSource** Indicates the deciding factor for the effective online speech recognition privacy policy settings: remote admin, local admin, or user preference. - - -### Census.Storage - -This event sends data about the total capacity of the system volume and primary disk. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **PrimaryDiskTotalCapacity** Retrieves the amount of disk space on the primary disk of the device in MB. -- **PrimaryDiskType** Retrieves an enumerator value of type STORAGE_BUS_TYPE that indicates the type of bus to which the device is connected. This should be used to interpret the raw device properties at the end of this structure (if any). -- **StorageReservePassedPolicy** Indicates whether the Storage Reserve policy, which ensures that updates have enough disk space and customers are on the latest OS, is enabled on this device. -- **SystemVolumeTotalCapacity** Retrieves the size of the partition that the System volume is installed on in MB. - - -### Census.Userdefault - -This event sends data about the current user's default preferences for browser and several of the most popular extensions and protocols. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CalendarType** The calendar identifiers that are used to specify different calendars. -- **DefaultApp** The current user's default program selected for the following extension or protocol: .html, .htm, .jpg, .jpeg, .png, .mp3, .mp4, .mov, .pdf. -- **DefaultBrowserProgId** The ProgramId of the current user's default browser. -- **LocaleName** Name of the current user locale given by LOCALE_SNAME via the GetLocaleInfoEx() function. -- **LongDateFormat** The long date format the user has selected. -- **ShortDateFormat** The short date format the user has selected. - - -### Census.UserDisplay - -This event sends data about the logical/physical display size, resolution and number of internal/external displays, and VRAM on the system. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **InternalPrimaryDisplayLogicalDPIX** Retrieves the logical DPI in the x-direction of the internal display. -- **InternalPrimaryDisplayLogicalDPIY** Retrieves the logical DPI in the y-direction of the internal display. -- **InternalPrimaryDisplayPhysicalDPIX** Retrieves the physical DPI in the x-direction of the internal display. -- **InternalPrimaryDisplayPhysicalDPIY** Retrieves the physical DPI in the y-direction of the internal display. -- **InternalPrimaryDisplayResolutionHorizontal** Retrieves the number of pixels in the horizontal direction of the internal display. -- **InternalPrimaryDisplayResolutionVertical** Retrieves the number of pixels in the vertical direction of the internal display. -- **InternalPrimaryDisplaySizePhysicalH** Retrieves the physical horizontal length of the display in mm. Used for calculating the diagonal length in inches . -- **InternalPrimaryDisplaySizePhysicalY** Retrieves the physical vertical length of the display in mm. Used for calculating the diagonal length in inches -- **NumberofExternalDisplays** Retrieves the number of external displays connected to the machine -- **NumberofInternalDisplays** Retrieves the number of internal displays in a machine. -- **VRAMDedicated** Retrieves the video RAM in MB. -- **VRAMDedicatedSystem** Retrieves the amount of memory on the dedicated video card. -- **VRAMSharedSystem** Retrieves the amount of RAM memory that the video card can use. - - -### Census.UserNLS - -This event sends data about the default app language, input, and display language preferences set by the user. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DefaultAppLanguage** The current user Default App Language. -- **DisplayLanguage** The current user preferred Windows Display Language. -- **HomeLocation** The current user location, which is populated using GetUserGeoId() function. -- **KeyboardInputLanguages** The Keyboard input languages installed on the device. -- **SpeechInputLanguages** The Speech Input languages installed on the device. - - -### Census.UserPrivacySettings - -This event provides information about the current users privacy settings and whether device-level access was granted to these capabilities. Not all settings are applicable to all devices. Each field records the consent state for the corresponding privacy setting. The consent state is encoded as a 16-bit signed integer, where the first 8 bits represents the effective consent value, and the last 8 bits represents the authority that set the value. The effective consent is one of the following values: -3 = unexpected consent value, -2 = value was not requested, -1 = an error occurred while attempting to retrieve the value, 0 = undefined, 1 = allow, 2 = deny, 3 = prompt. The consent authority is one of the following values: -3 = unexpected authority, -2 = value was not requested, -1 = an error occurred while attempting to retrieve the value, 0 = user, 1 = a higher authority (a gating setting, the system-wide setting, or a group policy), 2 = advertising ID group policy, 3 = advertising ID policy for child account, 4 = privacy setting provider doesn't know the actual consent authority, 5 = consent was not configured and a default set in code was used, 6 = system default, 7 = organization policy, 8 = OneSettings. The data collected with this event is used to help keep Windows secure. - -The following fields are available: - -- **Activity** Current state of the activity history setting. -- **ActivityHistoryCloudSync** Current state of the activity history cloud sync setting. -- **ActivityHistoryCollection** Current state of the activity history collection setting. -- **AdvertisingId** Current state of the advertising ID setting. -- **AppDiagnostics** Current state of the app diagnostics setting. -- **Appointments** 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. -- **Contacts** Current state of the contacts setting. -- **DocumentsLibrary** Current state of the documents library setting. -- **Email** 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. -- **InkTypePersonalization** Current state of the inking and typing personalization setting. -- **Location** Current state of the location setting. -- **LocationHistory** Current state of the location history setting. -- **LocationHistoryCloudSync** Current state of the location history cloud sync setting. -- **LocationHistoryOnTimeline** Current state of the location history on timeline setting. -- **Microphone** Current state of the microphone setting. -- **PhoneCall** Current state of the phone call setting. -- **PhoneCallHistory** 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. -- **SerialCommunication** Current state of the serial communication setting. -- **Sms** Current state of the text messaging setting. -- **SpeechPersonalization** Current state of the speech services setting. -- **USB** Current state of the USB setting. -- **UserAccountInformation** Current state of the account information setting. -- **UserDataTasks** 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. -- **WiFiDirect** Current state of the Wi-Fi direct setting. - - -### Census.VM - -This event sends data indicating whether virtualization is enabled on the device, and its various characteristics. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CloudService** Indicates which cloud service, if any, that this virtual machine is running within. -- **HyperVisor** Retrieves whether the current OS is running on top of a Hypervisor. -- **IOMMUPresent** Represents if an input/output memory management unit (IOMMU) is present. -- **IsVDI** Is the device using Virtual Desktop Infrastructure? -- **IsVirtualDevice** Retrieves that when the Hypervisor is Microsoft's Hyper-V Hypervisor or other Hv#1 Hypervisor, this field will be set to FALSE for the Hyper-V host OS and TRUE for any guest OS's. This field should not be relied upon for non-Hv#1 Hypervisors. -- **IsWVDSessionHost** Indicates if this is a Windows Virtual Device session host. -- **SLATSupported** Represents whether Second Level Address Translation (SLAT) is supported by the hardware. -- **VirtualizationFirmwareEnabled** Represents whether virtualization is enabled in the firmware. -- **VMId** A string that identifies a virtual machine. -- **WVDEnvironment** Represents the WVD service environment to which this session host has been joined. - - -### Census.WU - -This event sends data about the Windows update server and other App store policies. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **AppraiserGatedStatus** Indicates whether a device has been gated for upgrading. -- **AppStoreAutoUpdate** Retrieves the Appstore settings for auto upgrade. (Enable/Disabled). -- **AppStoreAutoUpdateMDM** Retrieves the App Auto Update value for MDM: 0 - Disallowed. 1 - Allowed. 2 - Not configured. Default: [2] Not configured -- **AppStoreAutoUpdatePolicy** Retrieves the Microsoft Store App Auto Update group policy setting -- **DelayUpgrade** Retrieves the Windows upgrade flag for delaying upgrades. -- **IsHotPatchEnrolled** Represents the current state of the device in relation to enrollment in the hotpatch program. -- **OSAssessmentFeatureOutOfDate** How many days has it been since a the last feature update was released but the device did not install it? -- **OSAssessmentForFeatureUpdate** Is the device is on the latest feature update? -- **OSAssessmentForQualityUpdate** Is the device on the latest quality update? -- **OSAssessmentForSecurityUpdate** Is the device on the latest security update? -- **OSAssessmentQualityOutOfDate** How many days has it been since a the last quality update was released but the device did not install it? -- **OSAssessmentReleaseInfoTime** The freshness of release information used to perform an assessment. -- **OSRollbackCount** The number of times feature updates have rolled back on the device. -- **OSRolledBack** A flag that represents when a feature update has rolled back during setup. -- **OSUninstalled** A flag that represents when a feature update is uninstalled on a device . -- **OSWUAutoUpdateOptions** Retrieves the auto update settings on the device. -- **OSWUAutoUpdateOptionsSource** The source of auto update setting that appears in the OSWUAutoUpdateOptions field. For example: Group Policy (GP), Mobile Device Management (MDM), and Default. -- **UninstallActive** A flag that represents when a device has uninstalled a previous upgrade recently. -- **UpdateServiceURLConfigured** Retrieves if the device is managed by Windows Server Update Services (WSUS). -- **WUDeferUpdatePeriod** Retrieves if deferral is set for Updates. -- **WUDeferUpgradePeriod** Retrieves if deferral is set for Upgrades. -- **WUDODownloadMode** Retrieves whether DO is turned on and how to acquire/distribute updates Delivery Optimization (DO) allows users to deploy previously downloaded Windows Update updates to other devices on the same network. -- **WULCUVersion** Version of the LCU Installed on the machine. -- **WUMachineId** Retrieves the Windows Update (WU) Machine Identifier. -- **WUPauseState** Retrieves Windows Update setting to determine if updates are paused. -- **WUServer** Retrieves the HTTP(S) URL of the WSUS server that is used by Automatic Updates and API callers (by default). - - -## Code Integrity events - -### Microsoft.Windows.Security.CodeIntegrity.HVCISysprep.Compatibility - -Fires when the compatibility check completes. Gives the results from the check. - -The following fields are available: - -- **IsRecommended** Denotes whether all compatibility checks have passed and, if so, returns true. Otherwise returns false. -- **Issues** If compatibility checks failed, provides bit indexed indicators of issues detected. Table located here: [Check results of HVCI default enablement](/windows-hardware/design/device-experiences/oem-hvci-enablement#check-results-of-hvci-default-enablement). - - -### Microsoft.Windows.Security.CodeIntegrity.HVCISysprep.Enabled - -Fires when auto-enablement is successful and HVCI is being enabled on the device. - - - -### Microsoft.Windows.Security.CodeIntegrity.HVCISysprep.HVCIActivity - -Fires at the beginning and end of the HVCI auto-enablement process in sysprep. - -The following fields are available: - -- **wilActivity** Contains the thread ID used to match the begin and end events, and for the end event also a HResult indicating sucess or failure. See [wilActivity](#wilactivity). - - -### Microsoft.Windows.Security.CodeIntegrity.HVCISysprep.HvciScanGetResultFailed - -Fires when driver scanning fails to get results. - - - -### Microsoft.Windows.Security.CodeIntegrity.HVCISysprep.IsRegionDisabledLanguage - -Fires when an incompatible language pack is detected. - -The following fields are available: - -- **Language** String containing the incompatible language pack detected. - - -## Common data extensions - -### Common Data Extensions.app - -Describes the properties of the running application. This extension could be populated by a client app or a web app. - -The following fields are available: - -- **asId** An integer value that represents the app session. This value starts at 0 on the first app launch and increments after each subsequent app launch per boot session. -- **env** The environment from which the event was logged. -- **expId** Associates a flight, such as an OS flight, or an experiment, such as a web site UX experiment, with an event. -- **id** Represents a unique identifier of the client application currently loaded in the process producing the event; and is used to group events together and understand usage pattern, errors by application. -- **locale** The locale of the app. -- **name** The name of the app. -- **userId** The userID as known by the application. -- **ver** Represents the version number of the application. Used to understand errors by Version, Usage by Version across an app. - - -### Common Data Extensions.container - -Describes the properties of the container for events logged within a container. - -The following fields are available: - -- **epoch** An ID that's incremented for each SDK initialization. -- **localId** The device ID as known by the client. -- **osVer** The operating system version. -- **seq** An ID that's incremented for each event. -- **type** The container type. Examples: Process or VMHost - - -### Common Data Extensions.device - -Describes the device-related fields. - -The following fields are available: - -- **deviceClass** The device classification. For example, Desktop, Server, or Mobile. -- **localId** A locally-defined unique ID for the device. This is not the human-readable device name. Most likely equal to the value stored at HKLM\Software\Microsoft\SQMClient\MachineId -- **make** Device manufacturer. -- **model** Device model. - - -### Common Data Extensions.Envelope - -Represents an envelope that contains all of the common data extensions. - -The following fields are available: - -- **data** Represents the optional unique diagnostic data for a particular event schema. -- **ext_app** Describes the properties of the running application. This extension could be populated by either a client app or a web app. See [Common Data Extensions.app](#common-data-extensionsapp). -- **ext_container** Describes the properties of the container for events logged within a container. See [Common Data Extensions.container](#common-data-extensionscontainer). -- **ext_device** Describes the device-related fields. See [Common Data Extensions.device](#common-data-extensionsdevice). -- **ext_mscv** Describes the correlation vector-related fields. See [Common Data Extensions.mscv](#common-data-extensionsmscv). -- **ext_os** Describes the operating system properties that would be populated by the client. See [Common Data Extensions.os](#common-data-extensionsos). -- **ext_sdk** Describes the fields related to a platform library required for a specific SDK. See [Common Data Extensions.sdk](#common-data-extensionssdk). -- **ext_user** Describes the fields related to a user. See [Common Data Extensions.user](#common-data-extensionsuser). -- **ext_utc** Describes the fields that might be populated by a logging library on Windows. See [Common Data Extensions.utc](#common-data-extensionsutc). -- **ext_xbl** Describes the fields related to XBOX Live. See [Common Data Extensions.xbl](#common-data-extensionsxbl). -- **iKey** Represents an ID for applications or other logical groupings of events. -- **name** Represents the uniquely qualified name for the event. -- **time** Represents the event date time in Coordinated Universal Time (UTC) when the event was generated on the client. This should be in ISO 8601 format. -- **ver** Represents the major and minor version of the extension. - - -### Common Data Extensions.mscv - -Describes the correlation vector-related fields. - -The following fields are available: - -- **cV** Represents the Correlation Vector: A single field for tracking partial order of related events across component boundaries. - - -### Common Data Extensions.os - -Describes some properties of the operating system. - -The following fields are available: - -- **bootId** An integer value that represents the boot session. This value starts at 0 on first boot after OS install and increments after every reboot. -- **expId** Represents the experiment ID. The standard for associating a flight, such as an OS flight (pre-release build), or an experiment, such as a web site UX experiment, with an event is to record the flight / experiment IDs in Part A of the common schema. -- **locale** Represents the locale of the operating system. -- **name** Represents the operating system name. -- **ver** Represents the major and minor version of the extension. - - -### Common Data Extensions.sdk - -Used by platform specific libraries to record fields that are required for a specific SDK. - -The following fields are available: - -- **epoch** An ID that is incremented for each SDK initialization. -- **installId** An ID that's created during the initialization of the SDK for the first time. -- **libVer** The SDK version. -- **seq** An ID that is incremented for each event. -- **ver** The version of the logging SDK. - - -### Common Data Extensions.user - -Describes the fields related to a user. - -The following fields are available: - -- **authId** This is an ID of the user associated with this event that is deduced from a token such as a Microsoft Account ticket or an XBOX token. -- **locale** The language and region. -- **localId** Represents a unique user identity that is created locally and added by the client. This is not the user's account ID. - - -### Common Data Extensions.utc - -Describes the properties that could be populated by a logging library on Windows. - -The following fields are available: - -- **aId** Represents the ETW ActivityId. Logged via TraceLogging or directly via ETW. -- **bSeq** Upload buffer sequence number in the format: buffer identifier:sequence number -- **cat** Represents a bitmask of the ETW Keywords associated with the event. -- **cpId** The composer ID, such as Reference, Desktop, Phone, Holographic, Hub, IoT Composer. -- **epoch** Represents the epoch and seqNum fields, which help track how many events were fired and how many events were uploaded, and enables identification of data lost during upload and de-duplication of events on the ingress server. -- **eventFlags** Represents a collection of bits that describe how the event should be processed by the Connected User Experience and Telemetry component pipeline. The lowest-order byte is the event persistence. The next byte is the event latency. -- **flags** Represents the bitmap that captures various Windows specific flags. -- **loggingBinary** The binary (executable, library, driver, etc.) that fired the event. -- **mon** Combined monitor and event sequence numbers in the format: monitor sequence : event sequence -- **op** Represents the ETW Op Code. -- **pgName** The short form of the provider group name associated with the event. -- **popSample** Represents the effective sample rate for this event at the time it was generated by a client. -- **providerGuid** The ETW provider ID associated with the provider name. -- **raId** Represents the ETW Related ActivityId. Logged via TraceLogging or directly via ETW. -- **seq** Represents the sequence field used to track absolute order of uploaded events. It is an incrementing identifier for each event added to the upload queue. The Sequence helps track how many events were fired and how many events were uploaded and enables identification of data lost during upload and de-duplication of events on the ingress server. -- **sqmId** The Windows SQM (Software Quality Metrics—a precursor of Windows 10 Diagnostic Data collection) device identifier. -- **stId** Represents the Scenario Entry Point ID. This is a unique GUID for each event in a diagnostic scenario. This used to be Scenario Trigger ID. -- **wcmp** The Windows Shell Composer ID. -- **wPId** The Windows Core OS product ID. -- **wsId** The Windows Core OS session ID. - - -### Common Data Extensions.xbl - -Describes the fields that are related to XBOX Live. - -The following fields are available: - -- **claims** Any additional claims whose short claim name hasn't been added to this structure. -- **did** XBOX device ID -- **dty** XBOX device type -- **dvr** The version of the operating system on the device. -- **eid** A unique ID that represents the developer entity. -- **exp** Expiration time -- **ip** The IP address of the client device. -- **nbf** Not before time -- **pid** A comma separated list of PUIDs listed as base10 numbers. -- **sbx** XBOX sandbox identifier -- **sid** The service instance ID. -- **sty** The service type. -- **tid** The XBOX Live title ID. -- **tvr** The XBOX Live title version. -- **uts** A bit field, with 2 bits being assigned to each user ID listed in xid. This field is omitted if all users are retail accounts. -- **xid** A list of base10-encoded XBOX User IDs. - - -## Common data fields - -### Ms.Device.DeviceInventoryChange - -Describes the installation state for all hardware and software components available on a particular device. - -The following fields are available: - -- **action** The change that was invoked on a device inventory object. -- **inventoryId** Device ID used for Compatibility testing -- **objectInstanceId** Object identity which is unique within the device scope. -- **objectType** Indicates the object type that the event applies to. -- **syncId** A string used to group StartSync, EndSync, Add, and Remove operations that belong together. This field is unique by Sync period and is used to disambiguate in situations where multiple agents perform overlapping inventories for the same object. - - -## Component-based servicing events - -### CbsServicingProvider.CbsCapabilityEnumeration - -This event reports on the results of scanning for optional Windows content on Windows Update to keep Windows up to date. - -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 data collected with this event is used to help keep Windows up to date. - -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. -- **downloadSource** The source of the download. -- **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. - -The following fields are available: - -- **Features** The list of feature packages that could not be updated. -- **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. - - -### CbsServicingProvider.CbsQualityUpdateInstall - -This event reports on the performance and reliability results of installing Servicing content from Windows Update to keep Windows up to date. - -The following fields are available: - -- **buildVersion** The build version number of the update package. -- **clientId** The name of the application requesting the optional content. -- **corruptionHistoryFlags** A bitmask of the types of component store corruption that have caused update failures on the device. -- **corruptionType** An enumeration listing the type of data corruption responsible for the current update failure. -- **currentStateEnd** The final state of the package after the operation has completed. -- **doqTimeSeconds** The time in seconds spent updating drivers. -- **executeTimeSeconds** The number of seconds required to execute the install. -- **failureDetails** The driver or installer that caused the update to fail. -- **failureSourceEnd** An enumeration indicating at what phase of the update a failure occurred. -- **hrStatusEnd** The return code of the install operation. -- **initiatedOffline** A true or false value indicating whether the package was installed into an offline Windows Imaging Format (WIM) file. -- **majorVersion** The major version number of the update package. -- **minorVersion** The minor version number of the update package. -- **originalState** The starting state of the package. -- **overallTimeSeconds** The time (in seconds) to perform the overall servicing operation. -- **planTimeSeconds** The time in seconds required to plan the update operations. -- **poqTimeSeconds** The time in seconds processing file and registry operations. -- **postRebootTimeSeconds** The time (in seconds) to do startup processing for the update. -- **preRebootTimeSeconds** The time (in seconds) between execution of the installation and the reboot. -- **primitiveExecutionContext** An enumeration indicating at what phase of shutdown or startup the update was installed. -- **rebootCount** The number of reboots required to install the update. -- **rebootTimeSeconds** The time (in seconds) before startup processing begins for the update. -- **resolveTimeSeconds** The time in seconds required to resolve the packages that are part of the update. -- **revisionVersion** The revision version number of the update package. -- **rptTimeSeconds** The time in seconds spent executing installer plugins. -- **shutdownTimeSeconds** The time (in seconds) required to do shutdown processing for the update. -- **stackRevision** The revision number of the servicing stack. -- **stageTimeSeconds** The time (in seconds) required to stage all files that are part of the update. - - -### CbsServicingProvider.CbsSelectableUpdateChangeV2 - -This event reports the results of enabling or disabling optional Windows Content to keep Windows up to date. - -The following fields are available: - -- **applicableUpdateState** Indicates the highest applicable state of the optional content. -- **buildVersion** The build version of the package being installed. -- **clientId** The name of the application requesting the optional content change. -- **downloadSource** Indicates if optional content was obtained from Windows Update or a locally accessible file. -- **downloadtimeInSeconds** Indicates if optional content was obtained from Windows Update or a locally accessible file. -- **executionID** A unique ID used to identify events associated with a single servicing operation and not reused for future operations. -- **executionSequence** A counter that tracks the number of servicing operations attempted on the device. -- **firstMergedExecutionSequence** The value of a pervious executionSequence counter that is being merged with the current operation, if applicable. -- **firstMergedID** A unique ID of a pervious servicing operation that is being merged with this operation, if applicable. -- **hrDownloadResult** The return code of the download operation. -- **hrStatusUpdate** The return code of the servicing operation. -- **identityHash** A pseudonymized (hashed) identifier for the Windows Package that is being installed or uninstalled. -- **initiatedOffline** Indicates whether the operation was performed against an offline Windows image file or a running instance of Windows. -- **majorVersion** The major version of the package being installed. -- **minorVersion** The minor version of the package being installed. -- **packageArchitecture** The architecture of the package being installed. -- **packageLanguage** The language of the package being installed. -- **packageName** The name of the package being installed. -- **rebootRequired** Indicates whether a reboot is required to complete the operation. -- **revisionVersion** The revision number of the package being installed. -- **stackBuild** The build number of the servicing stack binary performing the installation. -- **stackMajorVersion** The major version number of the servicing stack binary performing the installation. -- **stackMinorVersion** The minor version number of the servicing stack binary performing the installation. -- **stackRevision** The revision number of the servicing stack binary performing the installation. -- **updateName** The name of the optional Windows Operation System feature being enabled or disabled. -- **updateStartState** A value indicating the state of the optional content before the operation started. -- **updateTargetState** A value indicating the desired state of the optional content. - - -### CbsServicingProvider.CbsUpdateDeferred - -This event reports the results of deferring Windows Content to keep Windows up to date. - - - -## Deployment events - -### Microsoft.Windows.Deployment.Imaging.AppExit - -This event is sent on imaging application exit. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **hr** HResult returned from app exit. -- **sId** Session Id of the application. -- **totalTimeInMs** Total time taken in Ms. - - -### Microsoft.Windows.Deployment.Imaging.AppInvoked - -This event is sent when the app for image creation is invoked. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **branch** Corresponding branch for the image. -- **isInDbg** Whether the app is in debug mode or not. -- **isWSK** Whether the app is building images using WSK or not. -- **sId** Id of the session. - - -### Microsoft.Windows.Deployment.Imaging.Failed - -This failure event is sent when imaging fails. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **hr** HResult returned. -- **msg** Message returned. -- **sId** Session Id. -- **stack** Stack information. - - -### Microsoft.Windows.Deployment.Imaging.ImagingCompleted - -This event is sent when imaging is done. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **appExecTimeInMs** Execution time in milliseconds. -- **buildInfo** Information of the build. -- **compDbPrepTimeInMs** Preparation time in milliseconds for the CompDBs. -- **executeUpdateTimeInMs** Update execution time in milliseconds. -- **fileStageTimeInMs** File staging time in milliseconds. -- **hr** HResult returned from imaging. -- **imgSizeInMB** Image size in MB. -- **mutexWaitTimeInMs** Mutex wait time in milliseconds. -- **prepareUpdateTimeInMs** Update preparation time in milliseconds. -- **sId** Session id for the application. -- **totalRunTimeInMs** Total running time in milliseconds. -- **updateOsTimeInMs** Time in milliseconds spent in update OS. - - -### Microsoft.Windows.Deployment.Imaging.ImagingStarted - -This event is sent when an imaging session starts. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **arch** Architecture of the image. -- **device** Device type for which the image is built. -- **imgFormat** Format of the image. -- **imgSkip** Parameter for skipping certain image types when building. -- **imgType** The type of image being built. -- **lang** Language of the image being built. -- **prod** Image product type. -- **sId** Session id for the app. - - -## Deployment extensions - -### DeploymentTelemetry.Deployment_End - -This event indicates that a Deployment 360 API has completed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** Client ID of the user utilizing the D360 API. -- **ErrorCode** Error code of action. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **Mode** Phase in upgrade. -- **RelatedCV** The correction vector (CV) of any other related events -- **Result** End result of the action. - - -### DeploymentTelemetry.Deployment_SetupBoxLaunch - -This event indicates that the Deployment 360 APIs have launched Setup Box. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** The client ID of the user utilizing the D360 API. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **Quiet** Whether Setup will run in quiet mode or full mode. -- **RelatedCV** The correlation vector (CV) of any other related events. -- **SetupMode** The current setup phase. - - -### DeploymentTelemetry.Deployment_SetupBoxResult - -This event indicates that the Deployment 360 APIs have received a return from Setup Box. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** Client ID of the user utilizing the D360 API. -- **ErrorCode** Error code of the action. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **Quiet** Indicates whether Setup will run in quiet mode or full mode. -- **RelatedCV** The correlation vector (CV) of any other related events. -- **SetupMode** The current Setup phase. - - -### DeploymentTelemetry.Deployment_Start - -This event indicates that a Deployment 360 API has been called. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** Client ID of the user utilizing the D360 API. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **Mode** The current phase of the upgrade. -- **RelatedCV** The correlation vector (CV) of any other related events. - - -## Diagnostic data events - -### TelClientSynthetic.AbnormalShutdown_0 - -This event sends data about boot IDs for which a normal clean shutdown was not observed. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **AbnormalShutdownBootId** BootId of the abnormal shutdown being reported by this event. -- **AbsCausedbyAutoChk** This flag is set when AutoCheck forces a device restart to indicate that the shutdown was not an abnormal shutdown. -- **AcDcStateAtLastShutdown** Identifies if the device was on battery or plugged in. -- **BatteryLevelAtLastShutdown** The last recorded battery level. -- **BatteryPercentageAtLastShutdown** The battery percentage at the last shutdown. -- **CrashDumpEnabled** Are crash dumps enabled? -- **CumulativeCrashCount** Cumulative count of operating system crashes since the BootId reset. -- **CurrentBootId** BootId at the time the abnormal shutdown event was being reported. -- **Firmwaredata->ResetReasonEmbeddedController** The reset reason that was supplied by the firmware. -- **Firmwaredata->ResetReasonEmbeddedControllerAdditional** Additional data related to reset reason provided by the firmware. -- **Firmwaredata->ResetReasonPch** The reset reason that was supplied by the hardware. -- **Firmwaredata->ResetReasonPchAdditional** Additional data related to the reset reason supplied by the hardware. -- **Firmwaredata->ResetReasonSupplied** Indicates whether the firmware supplied any reset reason or not. -- **FirmwareType** ID of the FirmwareType as enumerated in DimFirmwareType. -- **HardwareWatchdogTimerGeneratedLastReset** Indicates whether the hardware watchdog timer caused the last reset. -- **HardwareWatchdogTimerPresent** Indicates whether hardware watchdog timer was present or not. -- **InvalidBootStat** This is a sanity check flag that ensures the validity of the bootstat file. -- **LastBugCheckBootId** bootId of the last captured crash. -- **LastBugCheckCode** Code that indicates the type of error. -- **LastBugCheckContextFlags** Additional crash dump settings. -- **LastBugCheckOriginalDumpType** The type of crash dump the system intended to save. -- **LastBugCheckOtherSettings** Other crash dump settings. -- **LastBugCheckParameter1** The first parameter with additional info on the type of the error. -- **LastBugCheckProgress** Progress towards writing out the last crash dump. -- **LastBugCheckVersion** The version of the information struct written during the crash. -- **LastSuccessfullyShutdownBootId** BootId of the last fully successful shutdown. -- **LongPowerButtonPressDetected** Identifies if the user was pressing and holding power button. -- **OOBEInProgress** Identifies if OOBE is running. -- **OSSetupInProgress** Identifies if the operating system setup is running. -- **PowerButtonCumulativePressCount** How many times has the power button been pressed? -- **PowerButtonCumulativeReleaseCount** How many times has the power button been released? -- **PowerButtonErrorCount** Indicates the number of times there was an error attempting to record power button metrics. -- **PowerButtonLastPressBootId** BootId of the last time the power button was pressed. -- **PowerButtonLastPressTime** Date and time of the last time the power button was pressed. -- **PowerButtonLastReleaseBootId** BootId of the last time the power button was released. -- **PowerButtonLastReleaseTime** Date and time of the last time the power button was released. -- **PowerButtonPressCurrentCsPhase** Represents the phase of Connected Standby exit when the power button was pressed. -- **PowerButtonPressIsShutdownInProgress** Indicates whether a system shutdown was in progress at the last time the power button was pressed. -- **PowerButtonPressLastPowerWatchdogStage** Progress while the monitor is being turned on. -- **PowerButtonPressPowerWatchdogArmed** Indicates whether or not the watchdog for the monitor was active at the time of the last power button press. -- **ShutdownDeviceType** Identifies who triggered a shutdown. Is it because of battery, thermal zones, or through a Kernel API. -- **SleepCheckpoint** Provides the last checkpoint when there is a failure during a sleep transition. -- **SleepCheckpointSource** Indicates whether the source is the EFI variable or bootstat file. -- **SleepCheckpointStatus** Indicates whether the checkpoint information is valid. -- **StaleBootStatData** Identifies if the data from bootstat is stale. -- **TransitionInfoBootId** BootId of the captured transition info. -- **TransitionInfoCSCount** l number of times the system transitioned from Connected Standby mode. -- **TransitionInfoCSEntryReason** Indicates the reason the device last entered Connected Standby mode. -- **TransitionInfoCSExitReason** Indicates the reason the device last exited Connected Standby mode. -- **TransitionInfoCSInProgress** At the time the last marker was saved, the system was in or entering Connected Standby mode. -- **TransitionInfoLastReferenceTimeChecksum** The checksum of TransitionInfoLastReferenceTimestamp, -- **TransitionInfoLastReferenceTimestamp** The date and time that the marker was last saved. -- **TransitionInfoLidState** Describes the state of the laptop lid. -- **TransitionInfoPowerButtonTimestamp** The date and time of the last time the power button was pressed. -- **TransitionInfoSleepInProgress** At the time the last marker was saved, the system was in or entering sleep mode. -- **TransitionInfoSleepTranstionsToOn** Total number of times the device transitioned from sleep mode. -- **TransitionInfoSystemRunning** At the time the last marker was saved, the device was running. -- **TransitionInfoSystemShutdownInProgress** Indicates whether a device shutdown was in progress when the power button was pressed. -- **TransitionInfoUserShutdownInProgress** Indicates whether a user shutdown was in progress when the power button was pressed. -- **TransitionLatestCheckpointId** Represents a unique identifier for a checkpoint during the device state transition. -- **TransitionLatestCheckpointSeqNumber** Represents the chronological sequence number of the checkpoint. -- **TransitionLatestCheckpointType** Represents the type of the checkpoint, which can be the start of a phase, end of a phase, or just informational. -- **VirtualMachineId** If the operating system is on a virtual Machine, it gives the virtual Machine ID (GUID) that can be used to correlate events on the host. - - -### TelClientSynthetic.AuthorizationInfo_RuntimeTransition - -This event is fired by UTC at state transitions to signal what data we are allowed to collect. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CanAddMsaToMsTelemetry** True if we can add MSA PUID and CID to telemetry, false otherwise. -- **CanCollectAnyTelemetry** True if we are allowed to collect partner telemetry, false otherwise. -- **CanCollectCoreTelemetry** True if we can collect CORE/Basic telemetry, false otherwise. -- **CanCollectHeartbeats** True if we can collect heartbeat telemetry, false otherwise. -- **CanCollectOsTelemetry** True if we can collect diagnostic data telemetry, false otherwise. -- **CanCollectWindowsAnalyticsEvents** True if we can collect Windows Analytics data, false otherwise. -- **CanPerformDiagnosticEscalations** True if we can perform diagnostic escalation collection, false otherwise. -- **CanReportScenarios** True if we can report scenario completions, false otherwise. -- **IsProcessorMode** True if it is Processor Mode, false otherwise. -- **PreviousPermissions** Bitmask of previous telemetry state. -- **TransitionFromEverythingOff** True if we are transitioning from all telemetry being disabled, false otherwise. - - -### TelClientSynthetic.AuthorizationInfo_Startup - -This event is fired by UTC at startup to signal what data we are allowed to collect. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CanAddMsaToMsTelemetry** True if we can add MSA PUID and CID to telemetry, false otherwise. -- **CanCollectAnyTelemetry** True if we are allowed to collect partner telemetry, false otherwise. -- **CanCollectCoreTelemetry** True if we can collect CORE/Basic telemetry, false otherwise. -- **CanCollectHeartbeats** True if we can collect heartbeat telemetry, false otherwise. -- **CanCollectOsTelemetry** True if we can collect diagnostic data telemetry, false otherwise. -- **CanCollectWindowsAnalyticsEvents** True if we can collect Windows Analytics data, false otherwise. -- **CanPerformDiagnosticEscalations** True if we can perform diagnostic escalation collection, false otherwise. -- **CanReportScenarios** True if we can report scenario completions, false otherwise. -- **IsProcessorMode** True if it is Processor Mode, false otherwise. -- **PreviousPermissions** Bitmask of previous telemetry state. -- **TransitionFromEverythingOff** True if we are transitioning from all telemetry being disabled, false otherwise. - - -### TelClientSynthetic.ConnectivityHeartBeat_0 - -This event sends data about the connectivity status of the Connected User Experience and Telemetry component that uploads telemetry events. If an unrestricted free network (such as Wi-Fi) is available, this event updates the last successful upload time. Otherwise, it checks whether a Connectivity Heartbeat event was fired in the past 24 hours, and if not, it sends an event. A Connectivity Heartbeat event is also sent when a device recovers from costed network to free network. This event is fired by UTC during periods of no network as a heartbeat signal, to keep Windows secure and up to date. - -The following fields are available: - -- **CensusExitCode** Last exit code of Census task -- **CensusStartTime** Returns timestamp corresponding to last successful census run. -- **CensusTaskEnabled** Returns Boolean value for the census task (Enable/Disable) on client machine. -- **LastConnectivityLossTime** The FILETIME at which the last free network loss occurred. -- **NetworkState** Retrieves the network state: 0 = No network. 1 = Restricted network. 2 = Free network. -- **NoNetworkTime** Retrieves the time spent with no network (since the last time) in seconds. -- **RestrictedNetworkTime** The total number of seconds with restricted network during this heartbeat period. - - -### TelClientSynthetic.EventMonitor_0 - -This event provides statistics for specific diagnostic events. - -The following fields are available: - -- **ConsumerCount** The number of instances seen in the Event Tracing for Windows consumer. -- **EventName** The name of the event being monitored. -- **EventSnFirst** The expected first event serial number. -- **EventSnLast** The expected last event serial number. -- **EventStoreCount** The number of events reaching the event store. -- **MonitorSn** The serial number of the monitor. -- **TriggerCount** The number of events reaching the trigger buffer. -- **UploadedCount** The number of events uploaded. - - -### TelClientSynthetic.GetFileInfoAction_FilePathNotApproved_0 - -This event occurs when the DiagTrack escalation fails due to the scenario requesting a path that is not approved for GetFileInfo actions. - -The following fields are available: - -- **FilePath** The unexpanded path in the scenario XML. -- **ScenarioId** The globally unique identifier (GUID) of the scenario. -- **ScenarioInstanceId** The error code denoting which path failed (internal or external). - - -### TelClientSynthetic.HeartBeat_5 - -This event sends data about the health and quality of the diagnostic data from the given device, to help keep Windows up to date. It also enables data analysts to determine how 'trusted' the data is from a given device. - -The following fields are available: - -- **AgentConnectionErrorsCount** Number of non-timeout errors associated with the host/agent channel. -- **CensusExitCode** The last exit code of the Census task. -- **CensusStartTime** Time of last Census run. -- **CensusTaskEnabled** True if Census is enabled, false otherwise. -- **CompressedBytesUploaded** Number of compressed bytes uploaded. -- **ConsumerDroppedCount** Number of events dropped at consumer layer of telemetry client. -- **CriticalDataDbDroppedCount** Number of critical data sampled events dropped at the database layer. -- **CriticalDataThrottleDroppedCount** The number of critical data sampled events that were dropped because of throttling. -- **CriticalOverflowEntersCounter** Number of times critical overflow mode was entered in event DB. -- **DbCriticalDroppedCount** Total number of dropped critical events in event DB. -- **DbDroppedCount** Number of events dropped due to DB fullness. -- **DbDroppedFailureCount** Number of events dropped due to DB failures. -- **DbDroppedFullCount** Number of events dropped due to DB fullness. -- **DecodingDroppedCount** Number of events dropped due to decoding failures. -- **EnteringCriticalOverflowDroppedCounter** Number of events dropped due to critical overflow mode being initiated. -- **EtwDroppedBufferCount** Number of buffers dropped in the UTC ETW session. -- **EtwDroppedCount** Number of events dropped at ETW layer of telemetry client. -- **EventsPersistedCount** Number of events that reached the PersistEvent stage. -- **EventStoreLifetimeResetCounter** Number of times event DB was reset for the lifetime of UTC. -- **EventStoreResetCounter** Number of times event DB was reset. -- **EventStoreResetSizeSum** Total size of event DB across all resets reports in this instance. -- **EventsUploaded** Number of events uploaded. -- **Flags** Flags indicating device state such as network state, battery state, and opt-in state. -- **FullTriggerBufferDroppedCount** Number of events dropped due to trigger buffer being full. -- **HeartBeatSequenceNumber** The sequence number of this heartbeat. -- **InvalidHttpCodeCount** Number of invalid HTTP codes received from contacting Vortex. -- **LastAgentConnectionError** Last non-timeout error encountered in the host/agent channel. -- **LastEventSizeOffender** Event name of last event which exceeded max event size. -- **LastInvalidHttpCode** Last invalid HTTP code received from Vortex. -- **MaxActiveAgentConnectionCount** The maximum number of active agents during this heartbeat timeframe. -- **MaxInUseScenarioCounter** Soft maximum number of scenarios loaded by UTC. -- **PreviousHeartBeatTime** Time of last heartbeat event (allows chaining of events). -- **PrivacyBlockedCount** The number of events blocked due to privacy settings or tags. -- **RepeatedUploadFailureDropped** Number of events lost due to repeated upload failures for a single buffer. -- **SettingsHttpAttempts** Number of attempts to contact OneSettings service. -- **SettingsHttpFailures** The number of failures from contacting the OneSettings service. -- **ThrottledDroppedCount** Number of events dropped due to throttling of noisy providers. -- **TopUploaderErrors** List of top errors received from the upload endpoint. -- **UploaderDroppedCount** Number of events dropped at the uploader layer of telemetry client. -- **UploaderErrorCount** Number of errors received from the upload endpoint. -- **VortexFailuresTimeout** The number of timeout failures received from Vortex. -- **VortexHttpAttempts** Number of attempts to contact Vortex. -- **VortexHttpFailures4xx** Number of 400-499 error codes received from Vortex. -- **VortexHttpFailures5xx** Number of 500-599 error codes received from Vortex. -- **VortexHttpResponseFailures** Number of Vortex responses that are not 2XX or 400. -- **VortexHttpResponsesWithDroppedEvents** Number of Vortex responses containing at least 1 dropped event. - - -### TelClientSynthetic.HeartBeat_Agent_5 - -This event sends data about the health and quality of the diagnostic data from the specified device (agent), to help keep Windows up to date. - -The following fields are available: - -- **ConsumerDroppedCount** The number of events dropped at the consumer layer of the diagnostic data collection client. -- **ContainerBufferFullDropCount** The number of events dropped due to the container buffer being full. -- **ContainerBufferFullSevilleDropCount** The number of “Seville” events dropped due to the container buffer being full. -- **CriticalDataThrottleDroppedCount** The number of critical data sampled events dropped due to data throttling. -- **DecodingDroppedCount** The number of events dropped due to decoding failures. -- **EtwDroppedBufferCount** The number of buffers dropped in the ETW (Event Tracing for Windows) session. -- **EtwDroppedCount** The number of events dropped at the ETW (Event Tracing for Windows) layer of the diagnostic data collection client on the user’s device. -- **EventsForwardedToHost** The number of events forwarded from agent (device) to host (server). -- **FullTriggerBufferDroppedCount** The number of events dropped due to the trigger buffer being full. -- **HeartBeatSequenceNumber** The heartbeat sequence number associated with this event. -- **HostConnectionErrorsCount** The number of non-timeout errors encountered in the host (server)/agent (device) socket transport channel. -- **HostConnectionTimeoutsCount** The number of connection timeouts between the host (server) and agent (device). -- **LastHostConnectionError** The last error from a connection between host (server) and agent (device). -- **PreviousHeartBeatTime** The timestamp of the last heartbeat event. -- **ThrottledDroppedCount** The number of events dropped due to throttling of “noisy” providers. - - -### TelClientSynthetic.HeartBeat_DevHealthMon_5 - -This event sends data (for Surface Hub devices) to monitor and ensure the correct functioning of those Surface Hub devices. This data helps ensure the device is up to date with the latest security and safety features. - -The following fields are available: - -- **HeartBeatSequenceNumber** The heartbeat sequence number associated with this event. -- **PreviousHeartBeatTime** The timestamp of the last heartbeat event. - - -### TelClientSynthetic.LifetimeManager_ConsumerBaseTimestampChange_0 - -This event sends data when the Windows Diagnostic data collection mechanism detects a timestamp adjustment for incoming diagnostic events. This data is critical for dealing with time changes during diagnostic data analysis, to help keep the device up to date. - -The following fields are available: - -- **NewBaseTime** The new QPC (Query Performance Counter) base time from ETW (Event Tracing for Windows). -- **NewSystemTime** The new system time of the device. -- **OldSystemTime** The previous system time of the device. - - -### TelClientSynthetic.MatchEngine_ScenarioCompletionThrottled_0 - -This event sends data when scenario completion is throttled (truncated or otherwise restricted) because the scenario is excessively large. - -The following fields are available: - -- **MaxHourlyCompletionsSetting** The maximum number of scenario completions per hour until throttling kicks in. -- **ScenarioId** The globally unique identifier (GUID) of the scenario being throttled. -- **ScenarioName** The name of the scenario being throttled. - - -### TelClientSynthetic.OsEvents_BootStatReset_0 - -This event sends data when the Windows diagnostic data collection mechanism resets the Boot ID. This data helps ensure Windows is up to date. - -The following fields are available: - -- **BootId** The current Boot ID. -- **ResetReason** The reason code for resetting the Boot ID. - - -### TelClientSynthetic.ProducerThrottled_At_TriggerBuffer_0 - -This event sends data when a producer is throttled due to the trigger buffer exceeding defined thresholds. - -The following fields are available: - -- **BufferSize** The size of the trigger buffer. -- **DataType** The type of event that this producer generates (Event Tracing for Windows, Time, Synthetic). -- **EstSeenCount** Estimated total number of inputs determining other “Est…” values. -- **EstTopEvent1Count** The count for estimated “noisiest” event from this producer. -- **EstTopEvent1Name** The name for estimated “noisiest” event from this producer. -- **EstTopEvent2Count** The count for estimated second “noisiest” event from this producer. -- **EstTopEvent2Name** The name for estimated second “noisiest” event from this producer. -- **Hit** The number of events seen from this producer. -- **IKey** The IKey identifier of the producer, if available. -- **ProviderId** The provider ID of the producer being throttled. -- **ProviderName** The provider name of the producer being throttled. -- **Threshold** The threshold crossed, which caused the throttling. - - -### TelClientSynthetic.ProducerThrottled_Event_Rate_0 - -This event sends data when an event producer is throttled by the Windows Diagnostic data collection mechanism. This data helps ensure Windows is up to date. - -The following fields are available: - -- **EstSeenCount** Estimated total number of inputs determining other “Est…” values. -- **EstTopEvent1Count** The count for estimated “noisiest” event from this producer. -- **EstTopEvent1Name** The name for estimated “noisiest” event from this producer. -- **EstTopEvent2Count** The count for estimated second “noisiest” event from this producer. -- **EstTopEvent2Name** The name for estimated second “noisiest” event from this producer. -- **EventPerProviderThreshold** The trigger point for throttling (value for each provider). This value is only applied once EventRateThreshold has been met. -- **EventRateThreshold** The total event rate trigger point for throttling. -- **Hit** The number of events seen from this producer. -- **IKey** The IKey identifier of the producer, if available. -- **ProviderId** The provider ID of the producer being throttled. -- **ProviderName** The provider name of the producer being throttled. - - -### TelClientSynthetic.RunExeWithArgsAction_ExeTerminated_0 - -This event sends data when an executable (EXE) file is terminated during escalation because it exceeded its maximum runtime (the maximum amount of time it was expected to run). This data helps ensure Windows is up to date. - -The following fields are available: - -- **ExpandedExeName** The expanded name of the executable (EXE) file. -- **MaximumRuntimeMs** The maximum runtime (in milliseconds) for this action. -- **ScenarioId** The globally unique identifier (GUID) of the scenario that was terminated. -- **ScenarioInstanceId** The globally unique identifier (GUID) of the scenario instance that was terminated. - - -### TelClientSynthetic.RunExeWithArgsAction_ProcessReturnedNonZeroExitCode - -This event sends data when the RunExe process finishes during escalation, but returns a non-zero exit code. This data helps ensure Windows is up to date. - -The following fields are available: - -- **ExitCode** The exit code of the process -- **ExpandedExeName** The expanded name of the executable (EXE) file. -- **ScenarioId** The globally unique identifier (GUID) of the escalating scenario. -- **ScenarioInstanceId** The globally unique identifier (GUID) of the scenario instance. - - -### TelClientSynthetic.ServiceMain_DevHealthMonEvent - -This event is a low latency health alert that is part of the 4Nines device health monitoring feature currently available on Surface Hub devices. For a device that is opted in, this event is sent before shutdown to signal that the device is about to be powered down. - - - -## Direct to update events - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorCheckApplicability - -This event indicates that the Coordinator CheckApplicability call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ApplicabilityResult** Result of CheckApplicability function. -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **IsCTA** If device has the CTA regkey set. -- **IsDeviceAADDomainJoined** Indicates whether the device is logged in to the AAD (Azure Active Directory) domain. -- **IsDeviceADDomainJoined** Indicates whether the device is logged in to the AD (Active Directory) domain. -- **IsDeviceCloverTrail** Indicates whether the device has a Clover Trail system installed. -- **IsDeviceDiskSpaceLow** If device disk space is low. -- **IsDeviceEnterpriseSku** If device is an Enterprise SKU. -- **IsDeviceFeatureUpdatingPaused** Indicates whether Feature Update is paused on the device. -- **IsDeviceNetworkMetered** Indicates whether the device is connected to a metered network. -- **IsDeviceOobeBlocked** Indicates whether the OOBE (Out of Box Experience) is blocked on the device. -- **IsDeviceRequireUpdateApproval** Indicates whether user approval is required to install updates on the device. -- **IsDeviceSccmManaged** Indicates whether the device is running the Configuration Manager to keep the operating system and applications up to date. -- **IsDeviceUninstallActive** Indicates whether the OS (operating system) on the device was recently updated. -- **IsDeviceUpdateNotificationLevel** Indicates whether the device has a set policy to control update notifications. -- **IsDeviceUpdateServiceManaged** Indicates whether the device uses WSUS (Windows Server Update Services). -- **IsDeviceWUFBManaged** If device is Windows Update for Business managed. -- **IsDeviceZeroExhaust** Indicates whether the device subscribes to the Zero Exhaust policy to minimize connections from Windows to Microsoft. -- **IsGreaterThanMaxRetry** Indicates whether the DTU (Direct to Update) service has exceeded its maximum retry count. -- **IsVolumeLicensed** Indicates whether a volume license was used to authenticate the operating system or applications on the device. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorCheckApplicabilityGenericFailure - -This event indicatse that we have received an unexpected error in the Direct to Update (DTU) Coordinators CheckApplicability call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorCleanupGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator Cleanup call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run -- **ClientID** Client ID being run -- **CoordinatorVersion** Coordinator version of DTU -- **CV** Correlation vector -- **hResult** HRESULT of the failure - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorCommitGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator Commit call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorCommitSuccess - -This event indicates that the Coordinator Commit call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorDownloadGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator Download call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorDownloadIgnoredFailure - -This event indicates that we have received an error in the Direct to Update (DTU) Coordinator Download call that will be ignored. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorDownloadSuccess - -This event indicates that the Coordinator Download call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorHandleShutdownSuccess - -This event indicates that the Coordinator HandleShutdown call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorInitializeSuccess - -This event indicates that the Coordinator Initialize call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorInstallIgnoredFailure - -This event indicates that we have received an error in the Direct to Update (DTU) Coordinator Install call that will be ignored. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorInstallSuccess - -This event indicates that the Coordinator Install call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorProgressCallBack - -This event indicates that the Coordinator's progress callback has been called. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **DeployPhase** Current Deploy Phase. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorSetCommitReadySuccess - -This event indicates that the Coordinator SetCommitReady call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorWaitForRebootUiGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Coordinator WaitForRebootUi call. - -The following fields are available: - -- **CampaignID** Campaign ID being run. -- **ClientID** Client ID being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorWaitForRebootUiSelection - -This event indicates that the user selected an option on the Reboot UI. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **rebootUiSelection** Selection on the Reboot UI. - - -### Microsoft.Windows.DirectToUpdate.DTUCoordinatorWaitForRebootUiSuccess - -This event indicates that the Coordinator WaitForRebootUi call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCheckApplicabilityGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler CheckApplicability call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run -- **ClientID** Client ID being run -- **CoordinatorVersion** Coordinator version of DTU -- **CV** Correlation vector -- **CV_new** New correlation vector -- **hResult** HRESULT of the failure - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCheckApplicabilityInternalGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler CheckApplicabilityInternal call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCheckApplicabilityInternalSuccess - -This event indicates that the Handler CheckApplicabilityInternal call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ApplicabilityResult** The result of the applicability check. -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCheckApplicabilitySuccess - -This event indicates that the Handler CheckApplicability call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ApplicabilityResult** The result code indicating whether the update is applicable. -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **CV_new** New correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCheckIfCoordinatorMinApplicableVersionSuccess - -This event indicates that the Handler CheckIfCoordinatorMinApplicableVersion call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **CheckIfCoordinatorMinApplicableVersionResult** Result of CheckIfCoordinatorMinApplicableVersion function. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCommitGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler Commit call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **CV_new** New correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerCommitSuccess - -This event indicates that the Handler Commit call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run.run -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **CV_new** New correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerDownloadAndExtractCabAlreadyDownloaded - -This event indicates that the Handler Download and Extract cab returned a value indicating that the cab has already been downloaded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run -- **ClientID** Client ID being run -- **CoordinatorVersion** Coordinator version of DTU -- **CV** Correlation vector - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerDownloadAndExtractCabFailure - -This event indicates that the Handler Download and Extract cab call failed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **DownloadAndExtractCabFunction_failureReason** Reason why the update download and extract process failed. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerDownloadAndExtractCabSuccess - -This event indicates that the Handler Download and Extract cab call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerDownloadGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler Download call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerDownloadSuccess - -This event indicates that the Handler Download call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerInitializeGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler Initialize call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **DownloadAndExtractCabFunction_hResult** HRESULT of the download and extract. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerInitializeSuccess - -This event indicates that the Handler Initialize call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **DownloadAndExtractCabFunction_hResult** HRESULT of the download and extraction. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerInstallGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler Install call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **hResult** HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerInstallSuccess - -This event indicates that the Coordinator Install call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the update campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerSetCommitReadyGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler SetCommitReady call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** Campaign ID being run -- **ClientID** Client ID being run -- **CoordinatorVersion** Coordinator version of DTU -- **CV** Correlation vector -- **hResult** HRESULT of the failure - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerSetCommitReadySuccess - -This event indicates that the Handler SetCommitReady call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerWaitForRebootUiGenericFailure - -This event indicates that we have received an unexpected error in the Direct to Update (DTU) Handler WaitForRebootUi call. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** The ID of the campaigning being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. -- **hResult** The HRESULT of the failure. - - -### Microsoft.Windows.DirectToUpdate.DTUHandlerWaitForRebootUiSuccess - -This event indicates that the Handler WaitForRebootUi call succeeded. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignID** ID of the campaign being run. -- **ClientID** ID of the client receiving the update. -- **CoordinatorVersion** Coordinator version of Direct to Update. -- **CV** Correlation vector. - - -### Microsoft.Windows.DirectToUpdate.DTUNotificationUXEnteringState - -This event indicates that DTUNotificationUX has started processing a workflow state. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CampaignID** The ID of the campaign being run. -- **ClientID** The ID of the client being run. -- **CoordinatorVersion** The coordinator version of Direct To Update. -- **CV** Correlation vector. -- **State** State of the workflow. - - -### Microsoft.Windows.DirectToUpdate.DTUNotificationUXEvaluation - -This event indicates that Applicability DLL ran a set of applicability tests. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **Action** The enumeration code of action that was handled. -- **ActiveTestExpectedResults** Bitmask of expected results of applicability tests. -- **ActiveTestResults** The bitmask results of applicability tests. -- **ActiveTestsRun** The bitmask of applicability tests that were run. -- **CampaignID** The ID of the campaign being run. -- **ClientID** The ID of the client being run. -- **CoordinatorVersion** The coordinator version of Direct To Update. -- **CV** Correlation vector. -- **FullTestResults** The bitmask of results of applicability tests. -- **FullTestsRun** The bitmask of applicability tests that were run. -- **SuppressedTests** The bitmask of applicability tests that were unable to run due to suppression caused by the configuration settings. - - -### Microsoft.Windows.DirectToUpdate.DTUNotificationUXExit - -This event indicates that DTUNotificationUX has finished execution. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CampaignID** The ID of the campaign being run. -- **ClientID** The ID of the client being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **HRESULTCausingExit** HRESULT Causing an abnormal exit, or S_OK for normal exits. -- **ProcessExitCode** The exit code that DTUNotificationUX returns to DTUCoordinator. - - -### Microsoft.Windows.DirectToUpdate.DTUNotificationUXExitingState - -This event indicates that DTUNotificationUX has stopped processing a workflow state. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CampaignID** The ID of the campaign being run. -- **ClientID** The ID of the client being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **HRESULT** Error (if any) that occurred. -- **NextState** Next workflow state we will enter. -- **State** The state of the workflow. - - -### Microsoft.Windows.DirectToUpdate.DTUNotificationUXFirstAcceptDialogDisplayed - -This event indicates that the First Accept dialog has been shown. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CampaignID** The ID of the campaign being run. -- **ClientID** The ID of the client being run. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. -- **EnterpriseAttribution** If true, the user is told that the enterprise managed the reboot. -- **HRESULT** Error (if any) that occurred. -- **UserResponse** Enumeration code indicating the user response to a dialog. - - -### Microsoft.Windows.DirectToUpdate.DTUNotificationUXLaunch - -This event indicates that DTUNotificationUX has launched. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CampaignID** The ID of the campaign being run. -- **ClientID** The ID of the client being run. -- **CommandLine** Command line passed to DTUNotificationUX. -- **CoordinatorVersion** Coordinator version of DTU. -- **CV** Correlation vector. - - -## DISM events - -### Microsoft.Windows.StartRepairCore.DISMLatestInstalledLCU - -The DISM Latest Installed LCU sends information to report result of search for latest installed LCU after last successful boot. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **dismInstalledLCUPackageName** The name of the latest installed package. - - -### Microsoft.Windows.StartRepairCore.DISMPendingInstall - -The DISM Pending Install event sends information to report pending package installation found. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **dismPendingInstallPackageName** The name of the pending package. - - -### Microsoft.Windows.StartRepairCore.DISMRevertPendingActions - -The DISM Pending Install event sends information to report pending package installation found. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **errorCode** The result code returned by the event. - - -### Microsoft.Windows.StartRepairCore.DISMUninstallLCU - -The DISM Uninstall LCU sends information to report result of uninstall attempt for found LCU. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **errorCode** The result code returned by the event. - - -### Microsoft.Windows.StartRepairCore.SRTRepairActionEnd - -The SRT Repair Action End event sends information to report repair operation ended for given plug-in. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **errorCode** The result code returned by the event. -- **failedUninstallCount** The number of driver updates that failed to uninstall. -- **failedUninstallFlightIds** The Flight IDs (identifiers of beta releases) of driver updates that failed to uninstall. -- **foundDriverUpdateCount** The number of found driver updates. -- **srtRepairAction** The scenario name for a repair. -- **successfulUninstallCount** The number of successfully uninstalled driver updates. -- **successfulUninstallFlightIds** The Flight IDs (identifiers of beta releases) of successfully uninstalled driver updates. - - -### Microsoft.Windows.StartRepairCore.SRTRepairActionStart - -The SRT Repair Action Start event sends information to report repair operation started for given plug-in. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **srtRepairAction** The scenario name for a repair. - - -### Microsoft.Windows.StartRepairCore.SRTRootCauseDiagEnd - -The SRT Root Cause Diagnosis End event sends information to report diagnosis operation completed for given plug-in. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **errorCode** The result code returned by the event. -- **flightIds** The Flight IDs (identifier of the beta release) of found driver updates. -- **foundDriverUpdateCount** The number of found driver updates. -- **srtRootCauseDiag** The scenario name for a diagnosis event. - - -### Microsoft.Windows.StartRepairCore.SRTRootCauseDiagStart - -The SRT Root Cause Diagnosis Start event sends information to report diagnosis operation started for given plug-in. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **srtRootCauseDiag** The scenario name for a diagnosis event. - - -## Driver installation events - -### Microsoft.Windows.DriverInstall.DeviceInstall - -This critical event sends information about the driver installation that took place. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **ClassGuid** The unique ID for the device class. -- **ClassLowerFilters** The list of lower filter class drivers. -- **ClassUpperFilters** The list of upper filter class drivers. -- **CoInstallers** The list of coinstallers. -- **ConfigFlags** The device configuration flags. -- **DeviceConfigured** Indicates whether this device was configured through the kernel configuration. -- **DeviceInstalled** Indicates whether the legacy install code path was used. -- **DeviceInstanceId** The unique identifier of the device in the system. -- **DeviceStack** The device stack of the driver being installed. -- **DriverDate** The date of the driver. -- **DriverDescription** A description of the driver function. -- **DriverInfName** Name of the INF file (the setup information file) for the driver. -- **DriverInfSectionName** Name of the DDInstall section within the driver INF file. -- **DriverPackageId** The ID of the driver package that is staged to the driver store. -- **DriverProvider** The driver manufacturer or provider. -- **DriverShimIds** List of driver shim IDs. -- **DriverUpdated** Indicates whether the driver is replacing an old driver. -- **DriverVersion** The version of the driver file. -- **EndTime** The time the installation completed. -- **Error** Provides the WIN32 error code for the installation. -- **ExtensionDrivers** List of extension drivers that complement this installation. -- **FinishInstallAction** Indicates whether the co-installer invoked the finish-install action. -- **FinishInstallUI** Indicates whether the installation process shows the user interface. -- **FirmwareDate** The firmware date that will be stored in the EFI System Resource Table (ESRT). -- **FirmwareRevision** The firmware revision that will be stored in the EFI System Resource Table (ESRT). -- **FirmwareVersion** The firmware version that will be stored in the EFI System Resource Table (ESRT). -- **FirstHardwareId** The ID in the hardware ID list that provides the most specific device description. -- **FlightIds** A list of the different Windows Insider builds on the device. -- **GenericDriver** Indicates whether the driver is a generic driver. -- **Inbox** Indicates whether the driver package is included with Windows. -- **InstallDate** The date the driver was installed. -- **LastCompatibleId** The ID in the hardware ID list that provides the least specific device description. -- **LastInstallFunction** The last install function invoked in a co-installer if the install timeout was reached while a co-installer was executing. -- **LegacyInstallReasonError** The error code for the legacy installation. -- **LowerFilters** The list of lower filter drivers. -- **MatchingDeviceId** The hardware ID or compatible ID that Windows used to install the device instance. -- **NeedReboot** Indicates whether the driver requires a reboot. -- **OriginalDriverInfName** The original name of the INF file before it was renamed. -- **ParentDeviceInstanceId** The device instance ID of the parent of the device. -- **PendedUntilReboot** Indicates whether the installation is pending until the device is rebooted. -- **Problem** Error code returned by the device after installation. -- **ProblemStatus** The status of the device after the driver installation. -- **RebootRequiredReason** DWORD (Double Word—32-bit unsigned integer) containing the reason why the device required a reboot during install. -- **SecondaryDevice** Indicates whether the device is a secondary device. -- **ServiceName** The service name of the driver. -- **SessionGuid** GUID (Globally Unique IDentifier) for the update session. -- **SetupMode** Indicates whether the driver installation took place before the Out Of Box Experience (OOBE) was completed. -- **StartTime** The time when the installation started. -- **SubmissionId** The driver submission identifier assigned by the Windows Hardware Development Center. -- **UpperFilters** The list of upper filter drivers. - - -### Microsoft.Windows.DriverInstall.NewDevInstallDeviceEnd - -This event sends data about the driver installation once it is completed. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **DeviceInstanceId** The unique identifier of the device in the system. -- **DriverUpdated** Indicates whether the driver was updated. -- **Error** The Win32 error code of the installation. -- **FlightId** The ID of the Windows Insider build the device received. -- **InstallDate** The date the driver was installed. -- **InstallFlags** The driver installation flags. -- **OptionalData** Metadata specific to Windows Update (WU) associated with the driver (flight IDs, recovery IDs, etc.) -- **RebootRequired** Indicates whether a reboot is required after the installation. -- **RollbackPossible** Indicates whether this driver can be rolled back. -- **WuTargetedHardwareId** Indicates that the driver was installed because the device hardware ID was targeted by the Windows Update. -- **WuUntargetedHardwareId** Indicates that the driver was installed because Windows Update performed a generic driver update for all devices of that hardware class. - - -### Microsoft.Windows.DriverInstall.NewDevInstallDeviceStart - -This event sends data about the driver that the new driver installation is replacing. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **DeviceInstanceId** The unique identifier of the device in the system. -- **FirstInstallDate** The first time a driver was installed on this device. -- **InstallFlags** Flag indicating how driver setup was called. -- **LastDriverDate** Date of the driver that is being replaced. -- **LastDriverInbox** Indicates whether the previous driver was included with Windows. -- **LastDriverInfName** Name of the INF file (the setup information file) of the driver being replaced. -- **LastDriverPackageId** ID of the driver package installed on the device before the current install operation began. ID contains the name + architecture + hash. -- **LastDriverVersion** The version of the driver that is being replaced. -- **LastFirmwareDate** The date of the last firmware reported from the EFI System Resource Table (ESRT). -- **LastFirmwareRevision** The last firmware revision number reported from EFI System Resource Table (ESRT). -- **LastFirmwareVersion** The last firmware version reported from the EFI System Resource Table (ESRT). -- **LastInstallDate** The date a driver was last installed on this device. -- **LastMatchingDeviceId** The hardware ID or compatible ID that Windows last used to install the device instance. -- **LastProblem** The previous problem code that was set on the device. -- **LastProblemStatus** The previous problem code that was set on the device. -- **LastSubmissionId** The driver submission identifier of the driver that is being replaced. - - -## 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). -- **Display1UMDFilePath** The file path to the location of the Display User Mode Driver in the Driver Store. -- **DisplayAdapterLuid** The display adapter LUID. -- **DriverDate** The date of the display driver. -- **DriverRank** The rank of the display driver. -- **DriverVersion** The display driver version. -- **DriverWorkarounds** Numeric value indicating the driver workarounds that are enabled for this device. -- **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? -- **IsHwSchEnabled** Boolean value indicating whether hardware scheduling is enabled. -- **IsHwSchSupported** Indicates whether the adapter supports hardware scheduling. -- **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. - - -## Failover Clustering events - -### Microsoft.Windows.Server.FailoverClusteringCritical.ClusterSummary2 - -This event returns information about how many resources and of what type are in the server cluster. This data is collected to keep Windows Server safe, secure, and up to date. The data includes information about whether hardware is configured correctly, if the software is patched correctly, and assists in preventing crashes by attributing issues (like fatal errors) to workloads and system configurations. - -The following fields are available: - -- **autoAssignSite** The cluster parameter: auto site. -- **autoBalancerLevel** The cluster parameter: auto balancer level. -- **autoBalancerMode** The cluster parameter: auto balancer mode. -- **blockCacheSize** The configured size of the block cache. -- **ClusterAdConfiguration** The ad configuration of the cluster. -- **clusterAdType** The cluster parameter: mgmt_point_type. -- **clusterDumpPolicy** The cluster configured dump policy. -- **clusterFunctionalLevel** The current cluster functional level. -- **clusterGuid** The unique identifier for the cluster. -- **clusterWitnessType** The witness type the cluster is configured for. -- **countNodesInSite** The number of nodes in the cluster. -- **crossSiteDelay** The cluster parameter: CrossSiteDelay. -- **crossSiteThreshold** The cluster parameter: CrossSiteThreshold. -- **crossSubnetDelay** The cluster parameter: CrossSubnetDelay. -- **crossSubnetThreshold** The cluster parameter: CrossSubnetThreshold. -- **csvCompatibleFilters** The cluster parameter: ClusterCsvCompatibleFilters. -- **csvIncompatibleFilters** The cluster parameter: ClusterCsvIncompatibleFilters. -- **csvResourceCount** The number of resources in the cluster. -- **currentNodeSite** The name configured for the current site for the cluster. -- **dasModeBusType** The direct storage bus type of the storage spaces. -- **downLevelNodeCount** The number of nodes in the cluster that are running down-level. -- **drainOnShutdown** Specifies whether a node should be drained when it is shut down. -- **dynamicQuorumEnabled** Specifies whether dynamic Quorum has been enabled. -- **enforcedAntiAffinity** The cluster parameter: enforced anti affinity. -- **genAppNames** The win32 service name of a clustered service. -- **genSvcNames** The command line of a clustered genapp. -- **hangRecoveryAction** The cluster parameter: hang recovery action. -- **hangTimeOut** Specifies the “hang time out” parameter for the cluster. -- **isCalabria** Specifies whether storage spaces direct is enabled. -- **isMixedMode** Identifies if the cluster is running with different version of OS for nodes. -- **isRunningDownLevel** Identifies if the current node is running down-level. -- **logLevel** Specifies the granularity that is logged in the cluster log. -- **logSize** Specifies the size of the cluster log. -- **lowerQuorumPriorityNodeId** The cluster parameter: lower quorum priority node ID. -- **minNeverPreempt** The cluster parameter: minimum never preempt. -- **minPreemptor** The cluster parameter: minimum preemptor priority. -- **netftIpsecEnabled** The parameter: netftIpsecEnabled. -- **NodeCount** The number of nodes in the cluster. -- **nodeId** The current node number in the cluster. -- **nodeResourceCounts** Specifies the number of node resources. -- **nodeResourceOnlineCounts** Specifies the number of node resources that are online. -- **numberOfSites** The number of different sites. -- **numNodesInNoSite** The number of nodes not belonging to a site. -- **plumbAllCrossSubnetRoutes** The cluster parameter: plumb all cross subnet routes. -- **preferredSite** The preferred site location. -- **privateCloudWitness** Specifies whether a private cloud witness exists for this cluster. -- **quarantineDuration** The quarantine duration. -- **quarantineThreshold** The quarantine threshold. -- **quorumArbitrationTimeout** In the event of an arbitration event, this specifies the quorum timeout period. -- **resiliencyLevel** Specifies the level of resiliency. -- **resourceCounts** Specifies the number of resources. -- **resourceTypeCounts** Specifies the number of resource types in the cluster. -- **resourceTypes** Data representative of each resource type. -- **resourceTypesPath** Data representative of the DLL path for each resource type. -- **sameSubnetDelay** The cluster parameter: same subnet delay. -- **sameSubnetThreshold** The cluster parameter: same subnet threshold. -- **secondsInMixedMode** The amount of time (in seconds) that the cluster has been in mixed mode (nodes with different operating system versions in the same cluster). -- **securityLevel** The cluster parameter: security level. -- **securityLevelForStorage** The cluster parameter: security level for storage. -- **sharedVolumeBlockCacheSize** Specifies the block cache size for shared for shared volumes. -- **shutdownTimeoutMinutes** Specifies the amount of time it takes to time out when shutting down. -- **upNodeCount** Specifies the number of nodes that are up (online). -- **useClientAccessNetworksForCsv** The cluster parameter: use client access networks for CSV. -- **vmIsolationTime** The cluster parameter: VM isolation time. -- **witnessDatabaseWriteTimeout** Specifies the timeout period for writing to the quorum witness database. - - -## 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. -- **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 - -This event sends diagnostic data about failures when uninstalling a feature update, to help resolve any issues preventing customers from reverting to a known state. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **failureReason** Provides data about the uninstall initialization operation failure. -- **hr** Provides the Win32 error code for the operation failure. - - -### Microsoft.Windows.Upgrade.Uninstall.UninstallFinalizedAndRebootTriggered - -This event indicates that the uninstall was properly configured and that a system reboot was initiated. The data collected with this event is used to help keep Windows up to date and performing properly. - - - -## 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. - - -## Holographic events - -### Microsoft.Windows.Holographic.Coordinator.HoloShellStateUpdated - -This event indicates Windows Mixed Reality HoloShell State. This event is also used to count WMR device. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **HmdState** Windows Mixed Reality Headset HMD state. -- **NewHoloShellState** Windows Mixed Reality HoloShell state. -- **PriorHoloShellState** Windows Mixed Reality state prior to entering to HoloShell. -- **SimulationEnabled** Windows Mixed Reality Simulation state. - - -### Microsoft.Windows.Shell.HolographicFirstRun.AppActivated - -This event indicates Windows Mixed Reality Portal app activation state. This event also used to count WMR device. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **IsDemoMode** Windows Mixed Reality Portal app state of demo mode. -- **IsDeviceSetupComplete** Windows Mixed Reality Portal app state of device setup completion. -- **PackageVersion** Windows Mixed Reality Portal app package version. -- **PreviousExecutionState** Windows Mixed Reality Portal app prior execution state. -- **wilActivity** Windows Mixed Reality Portal app wilActivity ID. See [wilActivity](#wilactivity). - - -### Microsoft.Windows.Shell.HolographicFirstRun.AppLifecycleService_Resuming - -This event indicates Windows Mixed Reality Portal app resuming. This event is also used to count WMR device. The data collected with this event is used to keep Windows performing properly. - - - -### TraceLoggingOasisUsbHostApiProvider.DeviceInformation - -This event provides Windows Mixed Reality device information. This event is also used to count WMR device and device type. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **BootloaderMajorVer** Windows Mixed Reality device boot loader major version. -- **BootloaderMinorVer** Windows Mixed Reality device boot loader minor version. -- **BootloaderRevisionNumber** Windows Mixed Reality device boot loader revision number. -- **BTHFWMajorVer** Windows Mixed Reality device BTHFW major version. This event also used to count WMR device. -- **BTHFWMinorVer** Windows Mixed Reality device BTHFW minor version. This event also used to count WMR device. -- **BTHFWRevisionNumber** Windows Mixed Reality device BTHFW revision number. -- **CalibrationBlobSize** Windows Mixed Reality device calibration blob size. -- **CalibrationFwMajorVer** Windows Mixed Reality device calibration firmware major version. -- **CalibrationFwMinorVer** Windows Mixed Reality device calibration firmware minor version. -- **CalibrationFwRevNum** Windows Mixed Reality device calibration firmware revision number. -- **DeviceInfoFlags** Windows Mixed Reality device info flags. -- **DeviceName** Windows Mixed Reality device Name. This event is also used to count WMR device. -- **DeviceReleaseNumber** Windows Mixed Reality device release number. -- **FirmwareMajorVer** Windows Mixed Reality device firmware major version. -- **FirmwareMinorVer** Windows Mixed Reality device firmware minor version. -- **FirmwareRevisionNumber** Windows Mixed Reality device calibration firmware revision number. -- **FpgaFwMajorVer** Windows Mixed Reality device FPGA firmware major version. -- **FpgaFwMinorVer** Windows Mixed Reality device FPGA firmware minor version. -- **FpgaFwRevisionNumber** Windows Mixed Reality device FPGA firmware revision number. -- **FriendlyName** Windows Mixed Reality device friendly name. -- **HashedSerialNumber** Windows Mixed Reality device hashed serial number. -- **HeaderSize** Windows Mixed Reality device header size. -- **HeaderVersion** Windows Mixed Reality device header version. -- **LicenseKey** Windows Mixed Reality device header license key. -- **Make** Windows Mixed Reality device make. -- **ManufacturingDate** Windows Mixed Reality device manufacturing date. -- **Model** Windows Mixed Reality device model. -- **PresenceSensorHidVendorPage** Windows Mixed Reality device presence sensor HID vendor page. -- **PresenceSensorHidVendorUsage** Windows Mixed Reality device presence sensor HID vendor usage. -- **PresenceSensorUsbVid** Windows Mixed Reality device presence sensor USB VId. -- **ProductBoardRevision** Windows Mixed Reality device product board revision number. -- **SerialNumber** Windows Mixed Reality device serial number. - - -## Inventory events - -### Microsoft.Windows.Inventory.Core.AmiTelCacheChecksum - -This event captures basic checksum data about the device inventory items stored in the cache for use in validating data completeness for Microsoft.Windows.Inventory.Core events. The fields in this event may change over time, but they will always represent a count of a given object. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **Device** A count of device objects in cache. -- **DeviceCensus** A count of device census objects in cache. -- **DriverPackageExtended** A count of driverpackageextended objects in cache. -- **File** A count of file objects in cache. -- **FileSigningInfo** A count of file signing objects in cache. -- **Generic** A count of generic objects in cache. -- **HwItem** A count of hwitem objects in cache. -- **InventoryAcpiPhatHealthRecord** A count of ACPI PHAT health record objects in cache. -- **InventoryAcpiPhatVersionElement** A count of ACPI PHAT version element objects in cache. -- **InventoryApplication** A count of application objects in cache. -- **InventoryApplicationAppV** A count of application AppV objects in cache. -- **InventoryApplicationDriver** A count of application driver objects in cache -- **InventoryApplicationFile** A count of application file objects in cache. -- **InventoryApplicationFramework** A count of application framework objects in cache -- **InventoryApplicationShortcut** A count of application shortcut objects in cache -- **InventoryDeviceContainer** A count of device container objects in cache. -- **InventoryDeviceInterface** A count of Plug and Play device interface objects in cache. -- **InventoryDeviceMediaClass** A count of device media objects in cache. -- **InventoryDevicePnp** A count of device Plug and Play objects in cache. -- **InventoryDeviceSensor** A count of device sensor objects in cache. -- **InventoryDeviceUsbHubClass** A count of device usb objects in cache -- **InventoryDriverBinary** A count of driver binary objects in cache. -- **InventoryDriverPackage** A count of device objects in cache. -- **InventoryMiscellaneousOfficeAddIn** A count of office add-in objects in cache -- **InventoryMiscellaneousOfficeAddInUsage** A count of office add-in usage objects in cache. -- **InventoryMiscellaneousOfficeIdentifiers** A count of office identifier objects in cache -- **InventoryMiscellaneousOfficeIESettings** A count of office ie settings objects in cache -- **InventoryMiscellaneousOfficeInsights** A count of office insights objects in cache -- **InventoryMiscellaneousOfficeProducts** A count of office products objects in cache -- **InventoryMiscellaneousOfficeSettings** A count of office settings objects in cache -- **InventoryMiscellaneousOfficeVBA** A count of office vba objects in cache -- **InventoryMiscellaneousOfficeVBARuleViolations** A count of office vba rule violations objects in cache -- **InventoryMiscellaneousUUPInfo** A count of uup info objects in cache -- **InventoryVersion** test -- **Metadata** A count of metadata objects in cache. -- **Orphan** A count of orphan file objects in cache. -- **Programs** A count of program objects in cache. - - -### Microsoft.Windows.Inventory.Core.AmiTelCacheVersions - -This event sends inventory component versions for the Device Inventory data. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **aeinv** The version of the App inventory component. -- **devinv** 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. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **CatalogSigners** Signers from catalog. Each signer starts with Chain. -- **DigestAlgorithm** The pseudonymizing (hashing) algorithm used when the file or package was signed. -- **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. The data collected with this event is used to keep Windows performing properly and up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **AndroidPackageId** A unique identifier for an Android app. -- **HiddenArp** Indicates whether a program hides itself from showing up in ARP. -- **InstallDate** The date the application was installed (a best guess based on folder creation date heuristics). -- **InstallDateArpLastModified** The date of the registry ARP key for a given application. Hints at install date but not always accurate. Passed as an array. Example: 4/11/2015 00:00:00 -- **InstallDateFromLinkFile** The estimated date of install based on the links to the files. Passed as an array. -- **InstallDateMsi** The install date if the application was installed via Microsoft Installer (MSI). Passed as an array. -- **InventoryVersion** The version of the inventory file generating the events. -- **Language** The language code of the program. -- **LattePackageId** The ID of the Latte package. -- **MsiInstallDate** The install date recorded in the program's MSI package. -- **MsiPackageCode** A GUID that describes the MSI Package. Multiple 'Products' (apps) can make up an MsiPackage. -- **MsiProductCode** A GUID that describe the MSI Product. -- **Name** The name of the application. -- **OSVersionAtInstallTime** The four octets from the OS version at the time of the application's install. -- **PackageFullName** The package full name for a Store application. -- **ProgramInstanceId** A hash of the file IDs in an app. -- **Publisher** The Publisher of the application. Location pulled from depends on the 'Source' field. -- **RootDirPath** The path to the root directory where the program was installed. -- **Source** How the program was installed (for example, ARP, MSI, Appx). -- **StoreAppType** A sub-classification for the type of Microsoft Store app, such as UWP or Win8StoreApp. -- **Type** One of ("Application", "Hotfix", "BOE", "Service", "Unknown"). Application indicates Win32 or Appx app, Hotfix indicates app updates (KBs), BOE indicates it's an app with no ARP or MSI entry, Service indicates that it is a service. Application and BOE are the ones most likely seen. -- **Version** The version number of the program. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationDriverAdd - -This event represents what drivers an application installs. The data collected with this event is used to keep Windows performing properly. - -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.InventoryApplicationDriverStartSync - -The InventoryApplicationDriverStartSync event indicates that a new set of InventoryApplicationDriverStartAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **InventoryVersion** The version of the inventory component. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationFileAdd - -This event provides file-level information about the applications that exist on the system. This event is used to understand the applications on a device to determine if those applications will experience compatibility issues when upgrading Windows. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **BinaryType** The architecture of the binary (executable) file. -- **BinFileVersion** Version information for the binary (executable) file. -- **BinProductVersion** The product version provided by the binary (executable) file. -- **BoeProgramId** The “bag of evidence” program identifier. -- **CompanyName** The company name included in the binary (executable) file. -- **FileId** A pseudonymized (hashed) unique identifier derived from the file itself. -- **FileVersion** The version of the file. -- **InventoryVersion** The version of the inventory component. -- **Language** The language declared in the binary (executable) file. -- **LinkDate** The compiler link date. -- **LowerCaseLongPath** The file path in “long” format. -- **Name** The file name. -- **ProductName** The product name declared in the binary (executable) file. -- **ProductVersion** The product version declared in the binary (executable) file. -- **ProgramId** The program identifier associated with the binary (executable) file. -- **Size** The size of the binary (executable) file. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationFrameworkAdd - -This event provides the basic metadata about the frameworks an application may depend on. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **FileId** A hash that uniquely identifies a file. -- **Frameworks** The list of frameworks this file depends on. -- **InventoryVersion** The version of the inventory file generating the events. - - -### Microsoft.Windows.Inventory.Core.InventoryApplicationFrameworkStartSync - -This event indicates that a new set of InventoryApplicationFrameworkAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryApplicationRemove - -This event indicates that a new set of InventoryDevicePnpAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryApplicationStartSync - -This event indicates that a new set of InventoryApplicationAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceContainerAdd - -This event sends basic metadata about a device container (such as a monitor or printer as opposed to a Plug and Play device). The data collected with this event is used to help keep Windows up to date and to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Categories** A comma separated list of functional categories in which the container belongs. -- **DiscoveryMethod** The discovery method for the device container. -- **FriendlyName** The name of the device container. -- **InventoryVersion** The version of the inventory file generating the events. -- **IsActive** Is the device connected, or has it been seen in the last 14 days? -- **IsConnected** For a physically attached device, this value is the same as IsPresent. For wireless a device, this value represents a communication link. -- **IsMachineContainer** Is the container the root device itself? -- **IsNetworked** Is this a networked device? -- **IsPaired** Does the device container require pairing? -- **Manufacturer** The manufacturer name for the device container. -- **ModelId** A unique model ID. -- **ModelName** The model name. -- **ModelNumber** The model number for the device container. -- **PrimaryCategory** The primary category for the device container. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceContainerRemove - -This event indicates that the InventoryDeviceContainer object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceContainerStartSync - -This event indicates that a new set of InventoryDeviceContainerAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceInterfaceAdd - -This event retrieves information about what sensor interfaces are available on the device. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Accelerometer3D** Indicates if an Accelerator3D sensor is found. -- **ActivityDetection** Indicates if an Activity Detection sensor is found. -- **AmbientLight** Indicates if an Ambient Light sensor is found. -- **Barometer** Indicates if a Barometer sensor is found. -- **Custom** Indicates if a Custom sensor is found. -- **EnergyMeter** Indicates if an Energy sensor is found. -- **FloorElevation** Indicates if a Floor Elevation sensor is found. -- **GeomagneticOrientation** Indicates if a Geo Magnetic Orientation sensor is found. -- **GravityVector** Indicates if a Gravity Detector sensor is found. -- **Gyrometer3D** Indicates if a Gyrometer3D sensor is found. -- **Humidity** Indicates if a Humidity sensor is found. -- **InventoryVersion** The version of the inventory file generating the events. -- **LinearAccelerometer** Indicates if a Linear Accelerometer sensor is found. -- **Magnetometer3D** Indicates if a Magnetometer3D sensor is found. -- **Orientation** Indicates if an Orientation sensor is found. -- **Pedometer** Indicates if a Pedometer sensor is found. -- **Proximity** Indicates if a Proximity sensor is found. -- **RelativeOrientation** Indicates if a Relative Orientation sensor is found. -- **SimpleDeviceOrientation** Indicates if a Simple Device Orientation sensor is found. -- **Temperature** Indicates if a Temperature sensor is found. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceInterfaceStartSync - -This event indicates that a new set of InventoryDeviceInterfaceAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceMediaClassAdd - -This event sends additional metadata about a Plug and Play device that is specific to a particular class of devices. The data collected with this event is used to help keep Windows up to date and performing properly while reducing overall size of data payload. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Audio.CaptureDriver** The capture driver endpoint for the audio device. -- **Audio.RenderDriver** The render driver for the audio device. -- **Audio_CaptureDriver** The Audio device capture driver endpoint. -- **Audio_RenderDriver** The Audio device render driver endpoint. -- **InventoryVersion** The version of the inventory file generating the events. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceMediaClassRemove - -This event indicates that the InventoryDeviceMediaClass object represented by the objectInstanceId is no longer present. This event is used to understand a PNP device that is specific to a particular class of devices. The data collected with this event is used to help keep Windows up to date and performing properly while reducing overall size of data payload. - -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. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDevicePnpAdd - -This event sends basic metadata about a PNP device and its associated driver to help keep Windows up to date. This information is used to assess if the PNP device and driver will remain compatible when upgrading Windows. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **BusReportedDescription** The description of the device reported by the bux. -- **Class** The device setup class of the driver loaded for the device. -- **ClassGuid** The device class GUID from the driver package -- **COMPID** The device setup class guid of the driver loaded for the device. -- **ContainerId** The list of compat ids for the device. -- **Description** System-supplied GUID that uniquely groups the functional devices associated with a single-function or multifunction device installed in the computer. -- **DeviceDriverFlightId** The test build (Flight) identifier of the device driver. -- **DeviceExtDriversFlightIds** The test build (Flight) identifier for all extended device drivers. -- **DeviceInterfaceClasses** The device interfaces that this device implements. -- **DeviceState** The device description. -- **DriverId** 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 -- **DriverName** A unique identifier for the driver installed. -- **DriverPackageStrongName** The immediate parent directory name in the Directory field of InventoryDriverPackage -- **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. -- **FirstInstallDate** The first time this device was installed on the machine. -- **HWID** The version of the driver loaded for the device. -- **Inf** The bus that enumerated the device. -- **InstallDate** The date of the most recent installation of the device on the machine. -- **InstallState** The device installation state. One of these values: [DEVICE_INSTALL_STATE enumeration](/windows-hardware/drivers/ddi/wdm/ne-wdm-_device_install_state) -- **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 -- **Manufacturer** INF file name (the name could be renamed by OS, such as oemXX.inf) -- **MatchingID** Device installation state. -- **Model** The version of the inventory binary generating the events. -- **ParentId** Lower filter class drivers IDs installed for the device. -- **ProblemCode** Lower filter drivers IDs installed for the device. -- **Provider** The device manufacturer. -- **Service** The device service name -- **STACKID** Represents the hardware ID or compatible ID that Windows uses to install a device instance. -- **UpperClassFilters** Upper filter drivers IDs installed for the device -- **UpperFilters** The device model. - - -### Microsoft.Windows.Inventory.Core.InventoryDevicePnpRemove - -This event indicates that the InventoryDevicePnpRemove object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDevicePnpStartSync - -This event indicates that a new set of InventoryDevicePnpAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDeviceSensorAdd - -This event sends basic metadata about sensor devices on a machine. The data collected with this event is used to help keep Windows up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **InventoryVersion** The version of the inventory binary generating the events. -- **Manufacturer** Sensor manufacturer. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceSensorStartSync - -This event indicates that a new set of InventoryDeviceSensor events will be sent. The data collected with this event is used to help keep Windows up to date. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **InventoryVersion** The version of the inventory binary generating the events. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceUsbHubClassAdd - -This event sends basic metadata about the USB hubs on the device. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **InventoryVersion** The version of the inventory file generating the events. -- **TotalUserConnectablePorts** Total number of connectable USB ports. -- **TotalUserConnectableTypeCPorts** Total number of connectable USB Type C ports. - - -### Microsoft.Windows.Inventory.Core.InventoryDeviceUsbHubClassStartSync - -This event indicates that a new set of InventoryDeviceUsbHubClassAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverBinaryAdd - -This event sends basic metadata about driver binaries running on the system. The data collected with this event is used to help keep Windows up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **DriverCheckSum** The checksum of the driver file. -- **DriverCompany** The company name that developed the driver. -- **DriverInBox** Is the driver included with the operating system? -- **DriverIsKernelMode** Is it a kernel mode driver? -- **DriverName** The file name of the driver. -- **DriverPackageStrongName** The strong name of the driver package -- **DriverSigned** Is the driver signed? -- **DriverTimeStamp** The low 32 bits of the time stamp of the driver file. -- **DriverType** A bitfield of driver attributes: 1. define DRIVER_MAP_DRIVER_TYPE_PRINTER 0x0001. 2. define DRIVER_MAP_DRIVER_TYPE_KERNEL 0x0002. 3. define DRIVER_MAP_DRIVER_TYPE_USER 0x0004. 4. define DRIVER_MAP_DRIVER_IS_SIGNED 0x0008. 5. define DRIVER_MAP_DRIVER_IS_INBOX 0x0010. 6. define DRIVER_MAP_DRIVER_IS_WINQUAL 0x0040. 7. define DRIVER_MAP_DRIVER_IS_SELF_SIGNED 0x0020. 8. define DRIVER_MAP_DRIVER_IS_CI_SIGNED 0x0080. 9. define DRIVER_MAP_DRIVER_HAS_BOOT_SERVICE 0x0100. 10. define DRIVER_MAP_DRIVER_TYPE_I386 0x10000. 11. define DRIVER_MAP_DRIVER_TYPE_IA64 0x20000. 12. define DRIVER_MAP_DRIVER_TYPE_AMD64 0x40000. 13. define DRIVER_MAP_DRIVER_TYPE_ARM 0x100000. 14. define DRIVER_MAP_DRIVER_TYPE_THUMB 0x200000. 15. define DRIVER_MAP_DRIVER_TYPE_ARMNT 0x400000. 16. define DRIVER_MAP_DRIVER_IS_TIME_STAMPED 0x800000. -- **DriverVersion** The version of the driver file. -- **ImageSize** The size of the driver file. -- **Inf** The name of the INF file. -- **InventoryVersion** The version of the inventory file generating the events. -- **Product** The product name that is included in the driver file. -- **ProductVersion** The product version that is included in the driver file. -- **Service** The name of the service that is installed for the device. -- **WdfVersion** The Windows Driver Framework version. - - -### Microsoft.Windows.Inventory.Core.InventoryDriverBinaryRemove - -This event indicates that the InventoryDriverBinary object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverBinaryStartSync - -This event indicates that a new set of InventoryDriverBinaryAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverPackageAdd - -This event sends basic metadata about drive packages installed on the system. The data collected with this event is used to help keep Windows up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Class** The class name for the device driver. -- **ClassGuid** The class GUID for the device driver. -- **Date** The driver package date. -- **Directory** The path to the driver package. -- **DriverInBox** Is the driver included with the operating system? -- **FlightIds** Driver Flight IDs. -- **Inf** The INF name of the driver package. -- **InventoryVersion** The version of the inventory file generating the events. -- **Provider** The provider for the driver package. -- **RecoveryIds** Driver recovery IDs. -- **SubmissionId** The HLK submission ID for the driver package. -- **Version** The version of the driver package. - - -### Microsoft.Windows.Inventory.Core.InventoryDriverPackageRemove - -This event indicates that the InventoryDriverPackageRemove object is no longer present. The data collected with this event is used to keep Windows performing properly. - -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.InventoryDriverPackageStartSync - -This event indicates that a new set of InventoryDriverPackageAdd events will be sent. The data collected with this event is used to keep Windows performing properly. - -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.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. - -The following fields are available: - -- **key** The globally unique identifier (GUID) used to identify the specific Json Trace logging session. - - -### 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. - -The following fields are available: - -- **key** The globally unique identifier (GUID) used to identify the specific Json Trace logging session. - - -### Microsoft.Windows.Inventory.General.AppHealthStaticAdd - -This event sends details collected for a specific application on the source device. The data collected with this event is used to keep Windows performing properly. - - - -### Microsoft.Windows.Inventory.General.AppHealthStaticStartSync - -This event indicates the beginning of a series of AppHealthStaticAdd events. The data collected with this event is used to keep Windows performing properly. - - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousMemorySlotArrayInfoAdd - -This event provides basic information about active memory slots on the device. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Capacity** Memory size in bytes -- **Manufacturer** Name of the DRAM manufacturer -- **Model** Model and sub-model of the memory -- **Slot** Slot to which the DRAM is plugged into the motherboard. -- **Speed** The configured memory slot speed in MHz. -- **Type** Reports DDR as an enumeration value per DMTF SMBIOS standard version 3.3.0, section 7.18.2. -- **TypeDetails** Reports Non-volatile as a bit flag enumeration as per the DMTF SMBIOS standard version 3.3.0, section 7.18.3. - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousMemorySlotArrayInfoRemove - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousMemorySlotArrayInfoStartSync - -This diagnostic event indicates a new sync is being generated for this object type. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoAdd - -This event provides data on Unified Update Platform (UUP) products and what version they are at. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **Identifier** UUP identifier -- **LastActivatedVersion** Last activated version -- **PreviousVersion** Previous version -- **Source** UUP source -- **Version** UUP version - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoRemove - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoStartSync - -This is a diagnostic event that indicates a new sync is being generated for this object type. The data collected with this event is used to keep Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.Indicators.Checksum - -This event summarizes the counts for the InventoryMiscellaneousUexIndicatorAdd events. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **CensusId** A unique hardware identifier. -- **ChecksumDictionary** A count of each operating system indicator. -- **PCFP** Equivalent to the InventoryId field that is found in other core events. - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorAdd - -This event represents the basic metadata about the OS indicators installed on the system. The data collected with this event helps ensure the device is up to date and keeps Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - -The following fields are available: - -- **IndicatorValue** The indicator value. - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorEndSync - -This event indicates that a new set of InventoryMiscellaneousUexIndicatorAdd events has been sent. The data collected with this event helps ensure the device is up to date and keeps Windows performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorRemove - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. This event is used to understand the OS indicators installed on the system. The data collected with this event helps ensure the device is current and Windows is up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -### Microsoft.Windows.Inventory.Indicators.InventoryMiscellaneousUexIndicatorStartSync - -This event indicates that this particular data object represented by the objectInstanceId is no longer present. This event is used to understand the OS indicators installed on the system. The data collected with this event helps ensure the device is current and Windows is up to date and performing properly. - -This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). - - - -## IoT events - -### Microsoft.Windows.IoT.Client.CEPAL.MonitorStarted - -This event identifies Windows Internet of Things (IoT) devices which are running the CE PAL subsystem by sending data during CE PAL startup. The data collected with this event is used to keep Windows performing properly. - - - -## Kernel events - -### IO - -This event indicates the number of bytes read from or read by the OS and written to or written by the OS upon system startup. - -The following fields are available: - -- **BytesRead** The total number of bytes read from or read by the OS upon system startup. -- **BytesWritten** The total number of bytes written to or written by the OS upon system startup. - - -### Microsoft.Windows.Kernel.BootEnvironment.OsLaunch - -This event includes basic data about the Operating System, collected during Boot and used to evaluate the success of the upgrade process. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **BootApplicationId** This field tells us what the OS Loader Application Identifier is. -- **BootAttemptCount** The number of consecutive times the boot manager has attempted to boot into this operating system. -- **BootSequence** The current Boot ID, used to correlate events related to a particular boot session. -- **BootStatusPolicy** Identifies the applicable Boot Status Policy. -- **BootType** Identifies the type of boot (e.g.: "Cold", "Hiber", "Resume"). -- **EventTimestamp** Seconds elapsed since an arbitrary time point. This can be used to identify the time difference in successive boot attempts being made. -- **FirmwareResetReasonEmbeddedController** Reason for system reset provided by firmware. -- **FirmwareResetReasonEmbeddedControllerAdditional** Additional information on system reset reason provided by firmware if needed. -- **FirmwareResetReasonPch** Reason for system reset provided by firmware. -- **FirmwareResetReasonPchAdditional** Additional information on system reset reason provided by firmware if needed. -- **FirmwareResetReasonSupplied** Flag indicating that a reason for system reset was provided by firmware. -- **IO** Amount of data written to and read from the disk by the OS Loader during boot. See [IO](#io). -- **LastBootSucceeded** Flag indicating whether the last boot was successful. -- **LastShutdownSucceeded** Flag indicating whether the last shutdown was successful. -- **MaxAbove4GbFreeRange** This field describes the largest memory range available above 4Gb. -- **MaxBelow4GbFreeRange** This field describes the largest memory range available below 4Gb. -- **MeasuredLaunchCapable** Indicates the system is capable of booting with Dynamic Root of Trust for Measurement (DRTM) support. -- **MeasuredLaunchPrepared** This field tells us if the OS launch was initiated using Measured/Secure Boot over DRTM (Dynamic Root of Trust for Measurement). -- **MeasuredLaunchResume** This field tells us if Dynamic Root of Trust for Measurement (DRTM) was used when resuming from hibernation. -- **MenuPolicy** Type of advanced options menu that should be shown to the user (Legacy, Standard, etc.). -- **RecoveryEnabled** Indicates whether recovery is enabled. -- **TcbLaunch** Indicates whether the Trusted Computing Base was used during the boot flow. -- **UserInputTime** The amount of time the loader application spent waiting for user input. - - -### Microsoft.Windows.Kernel.DeviceConfig.DeviceConfig - -This critical device configuration event provides information about drivers for a driver installation that took place within the kernel. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **ClassGuid** The unique ID for the device class. -- **DeviceInstanceId** The unique ID for the device on the system. -- **DriverDate** The date of the driver. -- **DriverFlightIds** The IDs for the driver flights. -- **DriverInfName** Driver INF file name. -- **DriverProvider** The driver manufacturer or provider. -- **DriverSubmissionId** The driver submission ID assigned by the hardware developer center. -- **DriverVersion** The driver version number. -- **ExtensionDrivers** The list of extension driver INF files, extension IDs, and associated flight IDs. -- **FirstHardwareId** The ID in the hardware ID list that provides the most specific device description. -- **InboxDriver** Indicates whether the driver package is included with Windows. -- **InstallDate** Date the driver was installed. -- **LastCompatibleId** The ID in the hardware ID list that provides the least specific device description. -- **Legacy** Indicates whether the driver is a legacy driver. -- **NeedReboot** Indicates whether the driver requires a reboot. -- **SetupMode** Indicates whether the device configuration occurred during the Out Of Box Experience (OOBE). -- **StatusCode** The NTSTATUS of device configuration operation. - - -### Microsoft.Windows.Kernel.PnP.AggregateClearDevNodeProblem - -This event is sent when a problem code is cleared from a device. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **Count** The total number of events. -- **DeviceInstanceId** The unique identifier of the device on the system. -- **LastProblem** The previous problem that was cleared. -- **LastProblemStatus** The previous NTSTATUS value that was cleared. -- **ServiceName** The name of the driver or service attached to the device. - - -### Microsoft.Windows.Kernel.PnP.AggregateSetDevNodeProblem - -This event is sent when a new problem code is assigned to a device. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **Count** The total number of events. -- **DeviceInstanceId** The unique identifier of the device in the system. -- **LastProblem** The previous problem code that was set on the device. -- **LastProblemStatus** The previous NTSTATUS value that was set on the device. -- **Problem** The new problem code that was set on the device. -- **ProblemStatus** The new NTSTATUS value that was set on the device. -- **ServiceName** The driver or service name that is attached to the device. - - -### Microsoft.Windows.Kernel.Power.PreviousShutdownWasThermalShutdown - -This event sends Product and Service Performance data on which area of the device exceeded safe temperature limits and caused the device to shutdown. This information is used to ensure devices are behaving as they are expected to. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **temperature** Contains the actual temperature measurement, in tenths of degrees Kelvin, for the area that exceeded the limit. -- **thermalZone** Contains an identifier that specifies which area it was that exceeded temperature limits. - - -## Microsoft Edge events - -### Aria.160f0649efde47b7832f05ed000fc453.Microsoft.WebBrowser.SystemInfo.Config - -This config event sends basic device connectivity and configuration information from Microsoft Edge about the current data collection consent, app version, and installation state to keep Microsoft Edge up to date and secure. - -The following fields are available: - -- **app_sample_rate** A number representing how often the client sends telemetry, expressed as a percentage. Low values indicate that said client sends more events and high values indicate that said client sends fewer events. -- **app_version** The internal Edge build version string, taken from the UMA metrics field system_profile.app_version. -- **appConsentState** Bit flags describing consent for data collection on the machine or zero if the state was not retrieved. The following are true when the associated bit is set: consent was granted (0x1), consent was communicated at install (0x2), diagnostic data consent granted (0x20000), browsing data consent granted (0x40000). -- **AppSessionGuid** An identifier of a particular application session starting at process creation time and persisting until process end. -- **brandCode** Contains the 4 character brand code or distribution tag that has been assigned to a partner. Not every Windows install will have a brand code. -- **Channel** An integer indicating the channel of the installation (Canary or Dev). -- **client_id** A unique identifier with which all other diagnostic client data is associated, taken from the UMA metrics provider. This ID is effectively unique per device, per OS user profile, per release channel (e.g. Canary/Dev/Beta/Stable). client_id is not durable, based on user preferences. client_id is initialized on the first application launch under each OS user profile. client_id is linkable, but not unique across devices or OS user profiles. client_id is reset whenever UMA data collection is disabled, or when the application is uninstalled. -- **ConnectionType** The first reported type of network connection currently connected. This can be one of Unknown, Ethernet, WiFi, 2G, 3G, 4G, None, or Bluetooth. -- **container_client_id** The client ID of the container, if in WDAG mode. This will be different from the UMA log client ID, which is the client ID of the host in WDAG mode. -- **container_session_id** The session ID of the container, if in WDAG mode. This will be different from the UMA log session ID, which is the session ID of the host in WDAG mode. -- **device_sample_rate** A number representing how often the device sends telemetry, expressed as a percentage. Low values indicate that device sends more events and high values indicate that device sends fewer events. The value is rounded to 5 significant figures for privacy reasons and if an error is hit in getting the device sample number value from the registry then this will be -1; and if client is not on a UTC-enabled platform, then this value will not be set. -- **Etag** Etag is an identifier representing all service applied configurations and experiments for the current browser session. This field is left empty when Windows diagnostic level is set to Basic or lower or when consent for diagnostic data has been denied. -- **EventInfo.Level** The minimum Windows diagnostic data level required for the event, where 1 is basic, 2 is enhanced, and 3 is full. -- **experimentation_mode** A number representing the value set for the ExperimentationAndConfigurationServiceControl group policy. See [Microsoft Edge - Policies](/DeployEdge/microsoft-edge-policies#experimentationandconfigurationservicecontrol) for more details on this policy. -- **install_date** The date and time of the most recent installation in seconds since midnight on January 1, 1970 UTC, rounded down to the nearest hour. -- **installSource** An enumeration representing the source of this installation: source was not retrieved (0), unspecified source (1), website installer (2), enterprise MSI (3), Windows update (4), Edge updater (5), scheduled or timed task (6, 7), uninstall (8), Edge about page (9), self-repair (10), other install command line (11), reserved (12), unknown source (13). -- **installSourceName** A string representation of the installation source. -- **PayloadClass** The base class used to serialize and deserialize the Protobuf binary payload. -- **PayloadGUID** A random identifier generated for each original monolithic Protobuf payload, before the payload is potentially broken up into manageably-sized chunks for transmission. -- **PayloadLogType** The log type for the event correlating with 0 for unknown, 1 for stability, 2 for on-going, 3 for independent, 4 for UKM, or 5 for instance level. -- **pop_sample** A value indicating how the device's data is being sampled. -- **reactivationBrandCode** Contains the 4 character reactivation brand code or distribution tag that has been assigned to a partner. Not every Windows install will have a brand code. -- **reconsentConfigs** A comma separated list of all reconsent configurations the current installation has received. Each configuration follows a well-defined format: 2DigitMonth-2DigitYear-3LetterKeyword. -- **session_id** An identifier that is incremented each time the user launches the application, irrespective of any client_id changes. session_id is seeded during the initial installation of the application. session_id is effectively unique per client_id value. Several other internal identifier values, such as window or tab IDs, are only meaningful within a particular session. The session_id value is forgotten when the application is uninstalled, but not during an upgrade. -- **utc_flags** Event Tracing for Windows (ETW) flags required for the event as part of the data collection process. - - -### Aria.29e24d069f27450385c7acaa2f07e277.Microsoft.WebBrowser.SystemInfo.Config - -This config event sends basic device connectivity and configuration information from Microsoft Edge about the current data collection consent, app version, and installation state to keep Microsoft Edge up to date and secure. - -The following fields are available: - -- **app_sample_rate** A number representing how often the client sends telemetry, expressed as a percentage. Low values indicate that said client sends more events and high values indicate that said client sends fewer events. -- **app_version** The internal Edge build version string, taken from the UMA metrics field system_profile.app_version. -- **appConsentState** Bit flags describing consent for data collection on the machine or zero if the state was not retrieved. The following are true when the associated bit is set: consent was granted (0x1), consent was communicated at install (0x2), diagnostic data consent granted (0x20000), browsing data consent granted (0x40000). -- **AppSessionGuid** An identifier of a particular application session starting at process creation time and persisting until process end. -- **brandCode** Contains the 4 character brand code or distribution tag that has been assigned to a partner. Not every Windows install will have a brand code. -- **Channel** An integer indicating the channel of the installation (Canary or Dev). -- **client_id** A unique identifier with which all other diagnostic client data is associated, taken from the UMA metrics provider. This ID is effectively unique per device, per OS user profile, per release channel (e.g. Canary/Dev/Beta/Stable). client_id is not durable, based on user preferences. client_id is initialized on the first application launch under each OS user profile. client_id is linkable, but not unique across devices or OS user profiles. client_id is reset whenever UMA data collection is disabled, or when the application is uninstalled. -- **ConnectionType** The first reported type of network connection currently connected. This can be one of Unknown, Ethernet, WiFi, 2G, 3G, 4G, None, or Bluetooth. -- **container_client_id** The client ID of the container, if in WDAG mode. This will be different from the UMA log client ID, which is the client ID of the host in WDAG mode. -- **container_session_id** The session ID of the container, if in WDAG mode. This will be different from the UMA log session ID, which is the session ID of the host in WDAG mode. -- **device_sample_rate** A number representing how often the device sends telemetry, expressed as a percentage. Low values indicate that device sends more events and high values indicate that device sends fewer events. The value is rounded to 5 significant figures for privacy reasons and if an error is hit in getting the device sample number value from the registry then this will be -1; and if client is not on a UTC-enabled platform, then this value will not be set. -- **Etag** Etag is an identifier representing all service applied configurations and experiments for the current browser session. This field is left empty when Windows diagnostic level is set to Basic or lower or when consent for diagnostic data has been denied. -- **EventInfo.Level** The minimum Windows diagnostic data level required for the event where 1 is basic, 2 is enhanced, and 3 is full. -- **experimentation_mode** A number representing the value set for the ExperimentationAndConfigurationServiceControl group policy. See [Microsoft Edge - Policies](/DeployEdge/microsoft-edge-policies#experimentationandconfigurationservicecontrol) for more details on this policy. -- **install_date** The date and time of the most recent installation in seconds since midnight on January 1, 1970 UTC, rounded down to the nearest hour. -- **installSource** An enumeration representing the source of this installation: source was not retrieved (0), unspecified source (1), website installer (2), enterprise MSI (3), Windows update (4), Edge updater (5), scheduled or timed task (6, 7), uninstall (8), Edge about page (9), self-repair (10), other install command line (11), reserved (12), unknown source (13). -- **installSourceName** A string representation of the installation source. -- **PayloadClass** The base class used to serialize and deserialize the Protobuf binary payload. -- **PayloadGUID** A random identifier generated for each original monolithic Protobuf payload, before the payload is potentially broken up into manageably-sized chunks for transmission. -- **PayloadLogType** The log type for the event correlating with 0 for unknown, 1 for stability, 2 for on-going, 3 for independent, 4 for UKM, or 5 for instance level. -- **pop_sample** A value indicating how the device's data is being sampled. -- **reactivationBrandCode** Contains the 4 character reactivation brand code or distribution tag that has been assigned to a partner. Not every Windows install will have a brand code. -- **reconsentConfigs** A comma separated list of all reconsent configurations the current installation has received. Each configuration follows a well-defined format: 2DigitMonth-2DigitYear-3LetterKeyword. -- **session_id** An identifier that is incremented each time the user launches the application, irrespective of any client_id changes. session_id is seeded during the initial installation of the application. session_id is effectively unique per client_id value. Several other internal identifier values, such as window or tab IDs, are only meaningful within a particular session. The session_id value is forgotten when the application is uninstalled, but not during an upgrade. -- **utc_flags** Event Tracing for Windows (ETW) flags required for the event as part of the data collection process. - - -### Aria.7005b72804a64fa4b2138faab88f877b.Microsoft.WebBrowser.SystemInfo.Config - -This config event sends basic device connectivity and configuration information from Microsoft Edge about the current data collection consent, app version, and installation state to keep Microsoft Edge up to date and secure. - -The following fields are available: - -- **app_env** The environment from which the event was logged when testing; otherwise, the field is omitted or left blank. -- **app_sample_rate** A number representing how often the client sends telemetry, expressed as a percentage. Low values indicate that said client sends more events and high values indicate that said client sends fewer events. -- **app_version** The internal Edge build version string, taken from the UMA metrics field system_profile.app_version. -- **appConsentState** Bit flags describing consent for data collection on the machine or zero if the state was not retrieved. The following are true when the associated bit is set: consent was granted (0x1), consent was communicated at install (0x2), diagnostic data consent granted (0x20000), browsing data consent granted (0x40000). -- **AppSessionGuid** An identifier of a particular application session starting at process creation time and persisting until process end. -- **brandCode** Contains the 4 character brand code or distribution tag that has been assigned to a partner. Not every Windows install will have a brand code. -- **Channel** An integer indicating the channel of the installation (Canary or Dev). -- **client_id** A unique identifier with which all other diagnostic client data is associated, taken from the UMA metrics provider. This ID is effectively unique per device, per OS user profile, per release channel (e.g. Canary/Dev/Beta/Stable). client_id is not durable, based on user preferences. client_id is initialized on the first application launch under each OS user profile. client_id is linkable, but not unique across devices or OS user profiles. client_id is reset whenever UMA data collection is disabled, or when the application is uninstalled. -- **ConnectionType** The first reported type of network connection currently connected. This can be one of Unknown, Ethernet, WiFi, 2G, 3G, 4G, None, or Bluetooth. -- **container_client_id** The client ID of the container, if in WDAG mode. This will be different from the UMA log client ID, which is the client ID of the host in WDAG mode. -- **container_localId** If the device is using Windows Defender Application Guard, this is the Software Quality Metrics (SQM) ID of the container. -- **container_session_id** The session ID of the container, if in WDAG mode. This will be different from the UMA log session ID, which is the session ID of the host in WDAG mode. -- **device_sample_rate** A number representing how often the device sends telemetry, expressed as a percentage. Low values indicate that device sends more events and high values indicate that device sends fewer events. The value is rounded to 5 significant figures for privacy reasons and if an error is hit in getting the device sample number value from the registry then this will be -1; and if client is not on a UTC-enabled platform, then this value will not be set. -- **Etag** Etag is an identifier representing all service applied configurations and experiments for the current browser session. This field is left empty when Windows diagnostic level is set to Basic or lower or when consent for diagnostic data has been denied. -- **EventInfo.Level** The minimum Windows diagnostic data level required for the event where 1 is basic, 2 is enhanced, and 3 is full. -- **experimentation_mode** A number representing the value set for the ExperimentationAndConfigurationServiceControl group policy. See [Microsoft Edge - Policies](/DeployEdge/microsoft-edge-policies#experimentationandconfigurationservicecontrol) for more details on this policy. -- **install_date** The date and time of the most recent installation in seconds since midnight on January 1, 1970 UTC, rounded down to the nearest hour. -- **installSource** An enumeration representing the source of this installation: source was not retrieved (0), unspecified source (1), website installer (2), enterprise MSI (3), Windows update (4), Edge updater (5), scheduled or timed task (6, 7), uninstall (8), Edge about page (9), self-repair (10), other install command line (11), reserved (12), unknown source (13). -- **installSourceName** A string representation of the installation source. -- **PayloadClass** The base class used to serialize and deserialize the Protobuf binary payload. -- **PayloadGUID** A random identifier generated for each original monolithic Protobuf payload, before the payload is potentially broken up into manageably-sized chunks for transmission. -- **PayloadLogType** The log type for the event correlating with 0 for unknown, 1 for stability, 2 for on-going, 3 for independent, 4 for UKM, or 5 for instance level. -- **pop_sample** A value indicating how the device's data is being sampled. -- **reactivationBrandCode** Contains the 4 character reactivation brand code or distribution tag that has been assigned to a partner. Not every Windows install will have a brand code. -- **reconsentConfigs** A comma separated list of all reconsent configurations the current installation has received. Each configuration follows a well-defined format: 2DigitMonth-2DigitYear-3LetterKeyword. -- **session_id** An identifier that is incremented each time the user launches the application, irrespective of any client_id changes. session_id is seeded during the initial installation of the application. session_id is effectively unique per client_id value. Several other internal identifier values, such as window or tab IDs, are only meaningful within a particular session. The session_id value is forgotten when the application is uninstalled, but not during an upgrade. -- **utc_flags** Event Tracing for Windows (ETW) flags required for the event as part of the data collection process. - - -### Aria.754de735ccd546b28d0bfca8ac52c3de.Microsoft.WebBrowser.SystemInfo.Config - -This config event sends basic device connectivity and configuration information from Microsoft Edge about the current data collection consent, app version, and installation state to keep Microsoft Edge up to date and secure. - -The following fields are available: - -- **app_sample_rate** A number representing how often the client sends telemetry, expressed as a percentage. Low values indicate that said client sends more events and high values indicate that said client sends fewer events. -- **app_version** The internal Edge build version string, taken from the UMA metrics field system_profile.app_version. -- **appConsentState** Bit flags describing consent for data collection on the machine or zero if the state was not retrieved. The following are true when the associated bit is set: consent was granted (0x1), consent was communicated at install (0x2), diagnostic data consent granted (0x20000), browsing data consent granted (0x40000). -- **AppSessionGuid** An identifier of a particular application session starting at process creation time and persisting until process end. -- **brandCode** Contains the 4 character brand code or distribution tag that has been assigned to a partner. Not every Windows install will have a brand code. -- **Channel** An integer indicating the channel of the installation (Canary or Dev). -- **client_id** A unique identifier with which all other diagnostic client data is associated, taken from the UMA metrics provider. This ID is effectively unique per device, per OS user profile, per release channel (e.g. Canary/Dev/Beta/Stable). client_id is not durable, based on user preferences. client_id is initialized on the first application launch under each OS user profile. client_id is linkable, but not unique across devices or OS user profiles. client_id is reset whenever UMA data collection is disabled, or when the application is uninstalled. -- **ConnectionType** The first reported type of network connection currently connected. This can be one of Unknown, Ethernet, WiFi, 2G, 3G, 4G, None, or Bluetooth. -- **container_client_id** The client ID of the container, if in WDAG mode. This will be different from the UMA log client ID, which is the client ID of the host in WDAG mode. -- **container_session_id** The session ID of the container, if in WDAG mode. This will be different from the UMA log session ID, which is the session ID of the host in WDAG mode. -- **device_sample_rate** A number representing how often the device sends telemetry, expressed as a percentage. Low values indicate that device sends more events and high values indicate that device sends fewer events. The value is rounded to 5 significant figures for privacy reasons and if an error is hit in getting the device sample number value from the registry then this will be -1; and if client is not on a UTC-enabled platform, then this value will not be set. -- **Etag** Etag is an identifier representing all service applied configurations and experiments for the current browser session. This field is left empty when Windows diagnostic level is set to Basic or lower or when consent for diagnostic data has been denied. -- **EventInfo.Level** The minimum Windows diagnostic data level required for the event where 1 is basic, 2 is enhanced, and 3 is full. -- **experimentation_mode** A number representing the value set for the ExperimentationAndConfigurationServiceControl group policy. See [Microsoft Edge - Policies](/DeployEdge/microsoft-edge-policies#experimentationandconfigurationservicecontrol) for more details on this policy. -- **install_date** The date and time of the most recent installation in seconds since midnight on January 1, 1970 UTC, rounded down to the nearest hour. -- **installSource** An enumeration representing the source of this installation: source was not retrieved (0), unspecified source (1), website installer (2), enterprise MSI (3), Windows update (4), Edge updater (5), scheduled or timed task (6, 7), uninstall (8), Edge about page (9), self-repair (10), other install command line (11), reserved (12), unknown source (13). -- **installSourceName** A string representation of the installation source. -- **PayloadClass** The base class used to serialize and deserialize the Protobuf binary payload. -- **PayloadGUID** A random identifier generated for each original monolithic Protobuf payload, before the payload is potentially broken up into manageably-sized chunks for transmission. -- **PayloadLogType** The log type for the event correlating with 0 for unknown, 1 for stability, 2 for on-going, 3 for independent, 4 for UKM, or 5 for instance level. -- **pop_sample** A value indicating how the device's data is being sampled. -- **reactivationBrandCode** Contains the 4 character reactivation brand code or distribution tag that has been assigned to a partner. Not every Windows install will have a brand code. -- **reconsentConfigs** A comma separated list of all reconsent configurations the current installation has received. Each configuration follows a well-defined format: 2DigitMonth-2DigitYear-3LetterKeyword. -- **session_id** An identifier that is incremented each time the user launches the application, irrespective of any client_id changes. session_id is seeded during the initial installation of the application. session_id is effectively unique per client_id value. Several other internal identifier values, such as window or tab IDs, are only meaningful within a particular session. The session_id value is forgotten when the application is uninstalled, but not during an upgrade. -- **utc_flags** Event Tracing for Windows (ETW) flags required for the event as part of the data collection process. - - -### Aria.af397ef28e484961ba48646a5d38cf54.Microsoft.WebBrowser.Installer.EdgeUpdate.Ping - -This Ping event sends a detailed inventory of software and hardware information about the EdgeUpdate service, Edge applications, and the current system environment including app configuration, update configuration, and hardware capabilities. This event contains Device Connectivity and Configuration, Product and Service Performance, and Software Setup and Inventory data. One or more events is sent each time any installation, update, or uninstallation occurs with the EdgeUpdate service or with Edge applications. This event is used to measure the reliability and performance of the EdgeUpdate service and if Edge applications are up to date. This is an indication that the event is designed to keep Windows secure and up to date. - -The following fields are available: - -- **appAp** Any additional parameters for the specified application. Default: ''. -- **appAppId** The GUID that identifies the product. Compatible clients must transmit this attribute. Please see the wiki for additional information. Default: undefined. -- **appBrandCode** The brand code under which the product was installed, if any. A brand code is a short (4-character) string used to identify installations that took place as a result of partner deals or website promotions. Default: ''. -- **appChannel** An integer indicating the channel of the installation (i.e. Canary or Dev). -- **appClientId** A generalized form of the brand code that can accept a wider range of values and is used for similar purposes. Default: ''. -- **appCohort** A machine-readable string identifying the release cohort (channel) that the app belongs to. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appCohortHint** A machine-readable enum indicating that the client has a desire to switch to a different release cohort. The exact legal values are app-specific and should be shared between the server and app implementations. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appCohortName** A stable non-localized human-readable enum indicating which (if any) set of messages the app should display to the user. For example, an app with a cohort Name of 'beta' might display beta-specific branding to the user. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appConsentState** Bit flags describing the diagnostic data disclosure and response flow where 1 indicates the affirmative and 0 indicates the negative or unspecified data. Bit 1 indicates consent was given, bit 2 indicates data originated from the download page, bit 18 indicates choice for sending data about how the browser is used, and bit 19 indicates choice for sending data about websites visited. -- **appDayOfInstall** The date-based counting equivalent of appInstallTimeDiffSec (the numeric calendar day that the app was installed on). This value is provided by the server in the response to the first request in the installation flow. The client MAY fuzz this value to the week granularity (e.g. send '0' for 0 through 6, '7' for 7 through 13, etc.). The first communication to the server should use a special value of '-1'. A value of '-2' indicates that this value is not known. Please see the wiki for additional information. Default: '-2'. -- **appExperiments** A key/value list of experiment identifiers. Experiment labels are used to track membership in different experimental groups, and may be set at install or update time. The experiments string is formatted as a semicolon-delimited concatenation of experiment label strings. An experiment label string is an experiment Name, followed by the '=' character, followed by an experimental label value. For example: 'crdiff=got_bsdiff;optimized=O3'. The client should not transmit the expiration date of any experiments it has, even if the server previously specified a specific expiration date. Default: ''. -- **appInstallTime** The product install time in seconds. '0' if unknown. Default: '-1'. -- **appInstallTimeDiffSec** The difference between the current time and the install date in seconds. '0' if unknown. Default: '-1'. -- **appLang** The language of the product install, in IETF BCP 47 representation. Default: ''. -- **appLastLaunchTime** The time when browser was last launched. -- **appNextVersion** The version of the app that the update flow to which this event belongs attempted to reach, regardless of the success or failure of the update operation. Please see the wiki for additional information. Default: '0.0.0.0'. -- **appPingEventAppSize** The total number of bytes of all downloaded packages. Default: '0'. -- **appPingEventDoneBeforeOOBEComplete** Indicates whether the install or update was completed before Windows Out of the Box Experience ends. 1 means event completed before OOBE finishes; 0 means event was not completed before OOBE finishes; -1 means the field does not apply. -- **appPingEventDownloadMetricsCdnAzureRefOriginShield** Provides a unique reference string that identifies a request served by Azure Front Door. It's used to search access logs and is critical for troubleshooting. E.g. Ref A: E172B39D19774147B0EFCC8E3E823D9D Ref B: BL2EDGE0215 Ref C: 2021-05-11T22:25:48Z -- **appPingEventDownloadMetricsCdnCache** Corresponds to the result, whether the proxy has served the result from cache (HIT for yes, and MISS for no) E.g. HIT from proxy.domain.tld, MISS from proxy.local -- **appPingEventDownloadMetricsCdnCCC** ISO 2 character country code that matches to the country updated binaries are delivered from. E.g.: US. -- **appPingEventDownloadMetricsCdnCID** Numeric value used to internally track the origins of the updated binaries. For example, 2. -- **appPingEventDownloadMetricsCdnMSEdgeRef** Used to help correlate client-to-AFD (Azure Front Door) conversations. E.g. Ref A: E2476A9592DF426A934098C0C2EAD3AB Ref B: DM2EDGE0307 Ref C: 2022-01-13T22:08:31Z -- **appPingEventDownloadMetricsCdnP3P** Electronic privacy statement: CAO = collects contact-and-other, PSA = for pseudo-analysis, OUR = data received by us only. Helps identify the existence of transparent intermediaries (proxies) that can create noise in legitimate error detection. E.g. CP=\"CAO PSA OUR\" -- **appPingEventDownloadMetricsDownloadedBytes** For events representing a download, the number of bytes expected to be downloaded. For events representing an entire update flow, the sum of all such expected bytes over the course of the update flow. Default: '0'. -- **appPingEventDownloadMetricsDownloader** A string identifying the download algorithm and/or stack. Example values include: 'bits', 'direct', 'winhttp', 'p2p'. Sent in events that have an event type of '14' only. Default: ''. -- **appPingEventDownloadMetricsDownloadTimeMs** For events representing a download, the time elapsed between the start of the download and the end of the download, in milliseconds. For events representing an entire update flow, the sum of all such download times over the course of the update flow. Sent in events that have an event type of '1', '2', '3', and '14' only. Default: '0'. -- **appPingEventDownloadMetricsError** The error code (if any) of the operation, encoded as a signed base-10 integer. Default: '0'. -- **appPingEventDownloadMetricsServerIpHint** For events representing a download, the CDN Host IP address that corresponds to the update file server. The CDN host is controlled by Microsoft servers and always maps to IP addresses hosting *.delivery.mp.microsoft.com or msedgesetup.azureedge.net. Default: ''. -- **appPingEventDownloadMetricsTotalBytes** For events representing a download, the number of bytes expected to be downloaded. For events representing an entire update flow, the sum of all such expected bytes over the course of the update flow. Default: '0'. -- **appPingEventDownloadMetricsUrl** For events representing a download, the CDN URL provided by the update server for the client to download the update, the URL is controlled by Microsoft servers and always maps back to either *.delivery.mp.microsoft.com or msedgesetup.azureedge.net. Default: ''. -- **appPingEventDownloadTimeMs** For events representing a download, the time elapsed between the start of the download and the end of the download, in milliseconds. For events representing an entire update flow, the sum of all such download times over the course of the update flow. Sent in events that have an event type of '1', '2', '3', and '14' only. Default: '0'. -- **appPingEventErrorCode** The error code (if any) of the operation, encoded as a signed, base-10 integer. Default: '0'. -- **appPingEventEventResult** An enum indicating the result of the event. Please see the wiki for additional information. Default: '0'. -- **appPingEventEventType** An enum indicating the type of the event. Compatible clients MUST transmit this attribute. Please see the wiki for additional information. -- **appPingEventExtraCode1** Additional numeric information about the operation's result, encoded as a signed, base-10 integer. Default: '0'. -- **appPingEventInstallTimeMs** For events representing an install, the time elapsed between the start of the install and the end of the install, in milliseconds. For events representing an entire update flow, the sum of all such durations. Sent in events that have an event type of '2' and '3' only. Default: '0'. -- **appPingEventNumBytesDownloaded** The number of bytes downloaded for the specified application. Default: '0'. -- **appPingEventPackageCacheResult** Indicates whether there is an existing package cached in the system to update or install. 1 means that there's a cache hit under the expected key; 2 means there's a cache hit under a different key; 0 means that there's a cache miss; -1 means the field does not apply. -- **appPingEventSequenceId** An id that uniquely identifies particular events within one requestId. Since a request can contain multiple ping events, this field is necessary to uniquely identify each possible event. -- **appPingEventSourceUrlIndex** For events representing a download, the position of the download URL in the list of URLs supplied by the server in a "urls" tag. -- **appPingEventUpdateCheckTimeMs** For events representing an entire update flow, the time elapsed between the start of the update check and the end of the update check, in milliseconds. Sent in events that have an event type of '2' and '3' only. Default: '0'. -- **appReferralHash** The hash of the referral code used to install the product. '0' if unknown. Default: '0'. -- **appUpdateCheckIsRollbackAllowed** Check for status showing whether or not rollback is allowed. -- **appUpdateCheckIsUpdateDisabled** The state of whether app updates are restricted by group policy. True if updates have been restricted by group policy or false if they have not. -- **appUpdateCheckTargetChannel** Check for status showing the target release channel. -- **appUpdateCheckTargetVersionPrefix** A component-wise prefix of a version number, or a complete version number suffixed with the $ character. The server should not return an update instruction to a version number that does not match the prefix or complete version number. The prefix is interpreted a dotted-tuple that specifies the exactly-matching elements; it is not a lexical prefix (for example, '1.2.3' must match '1.2.3.4' but must not match '1.2.34'). Default: ''. -- **appUpdateCheckTtToken** An opaque access token that can be used to identify the requesting client as a member of a trusted-tester group. If non-empty, the request should be sent over SSL or another secure protocol. Default: ''. -- **appVersion** The version of the product install. Please see the wiki for additional information. Default: '0.0.0.0'. -- **EventInfo.Level** The minimum Windows diagnostic data level required for the event where 1 is basic, 2 is enhanced, and 3 is full. -- **eventType** A string indicating the type of the event. Please see the wiki for additional information. -- **expDeviceId** A non-unique resettable device ID to identify a device in experimentation. -- **expETag** An identifier representing all service applied configurations and experiments when current update happens. Used for testing only. -- **hwDiskType** Device’s hardware disk type. -- **hwHasAvx** '1' if the client's hardware supports the AVX instruction set. '0' if the client's hardware does not support the AVX instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse** '1' if the client's hardware supports the SSE instruction set. '0' if the client's hardware does not support the SSE instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse2** '1' if the client's hardware supports the SSE2 instruction set. '0' if the client's hardware does not support the SSE2 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse3** '1' if the client's hardware supports the SSE3 instruction set. '0' if the client's hardware does not support the SSE3 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse41** '1' if the client's hardware supports the SSE4.1 instruction set. '0' if the client's hardware does not support the SSE4.1 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse42** '1' if the client's hardware supports the SSE4.2 instruction set. '0' if the client's hardware does not support the SSE4.2 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSsse3** '1' if the client's hardware supports the SSSE3 instruction set. '0' if the client's hardware does not support the SSSE3 instruction set. '-1' if unknown. Default: '-1'. -- **hwLogcicalCpus** Number of logical CPUs of the device. Used for testing only. -- **hwLogicalCpus** Number of logical CPUs of the device. -- **hwPhysmemory** The physical memory available to the client, truncated down to the nearest gibibyte. '-1' if unknown. This value is intended to reflect the maximum theoretical storage capacity of the client, not including any hard drive or paging to a hard drive or peripheral. Default: '-1'. -- **isMsftDomainJoined** '1' if the client is a member of a Microsoft domain. '0' otherwise. Default: '0'. -- **oemProductManufacturer** The device manufacturer name. -- **oemProductName** The product name of the device defined by device manufacturer. -- **osArch** The architecture of the operating system (e.g. 'x86', 'x64', 'arm'). '' if unknown. Default: ''. -- **osPlatform** The operating system family that the within which the Omaha client is running (e.g. 'win', 'mac', 'linux', 'ios', 'android'). '' if unknown. The operating system Name should be transmitted in lowercase with minimal formatting. Default: ''. -- **osServicePack** The secondary version of the operating system. '' if unknown. Default: ''. -- **osVersion** The primary version of the operating system. '' if unknown. Default: ''. -- **requestCheckPeriodSec** The update interval in seconds. The value is read from the registry. Default: '-1'. -- **requestDlpref** A comma-separated list of values specifying the preferred download URL behavior. The first value is the highest priority, further values reflect secondary, tertiary, et cetera priorities. Legal values are '' (in which case the entire list must be empty, indicating unknown or no-preference) or 'cacheable' (the server should prioritize sending URLs that are easily cacheable). Default: ''. -- **requestDomainJoined** '1' if the machine is part of a managed enterprise domain. Otherwise '0'. -- **requestInstallSource** A string specifying the cause of the update flow. For example: 'ondemand', or 'scheduledtask'. Default: ''. -- **requestIsMachine** '1' if the client is known to be installed with system-level or administrator privileges. '0' otherwise. Default: '0'. -- **requestOmahaShellVersion** The version of the Omaha installation folder. Default: ''. -- **requestOmahaVersion** The version of the Omaha updater itself (the entity sending this request). Default: '0.0.0.0'. -- **requestProtocolVersion** The version of the Omaha protocol. Compatible clients MUST provide a value of '3.0'. Compatible clients must always transmit this attribute. Default: undefined. -- **requestRequestId** A randomly-generated (uniformly distributed) GUID, corresponding to the Omaha request. Each request attempt should have (with high probability) a unique request id. Default: ''. -- **requestSessionCorrelationVectorBase** A client generated random MS Correlation Vector base code used to correlate the update session with update and CDN servers. Default: ''. -- **requestSessionId** A randomly-generated (uniformly distributed) GUID. Each single update flow (e.g. update check, update application, event ping sequence) should have (with high probability) a single unique session ID. Default: ''. -- **requestTestSource** Either '', 'dev', 'qa', 'prober', 'auto', or 'ossdev'. Any value except '' indicates that the request is a test and should not be counted toward normal metrics. Default: ''. -- **requestUid** A randomly-generated (uniformly distributed) GUID, corresponding to the Omaha user. Each request attempt SHOULD have (with high probability) a unique request id. Default: ''. - - -### Aria.f4a7d46e472049dfba756e11bdbbc08f.Microsoft.WebBrowser.SystemInfo.Config - -This config event sends basic device connectivity and configuration information from Microsoft Edge about the current data collection consent, app version, and installation state to keep Microsoft Edge up to date and secure. - -The following fields are available: - -- **app_env** The environment from which the event was logged when testing; otherwise, the field is omitted or left blank. -- **app_sample_rate** A number representing how often the client sends telemetry, expressed as a percentage. Low values indicate that said client sends more events and high values indicate that said client sends fewer events. -- **app_version** The internal Edge build version string, taken from the UMA metrics field system_profile.app_version. -- **appConsentState** Bit flags describing consent for data collection on the machine or zero if the state was not retrieved. The following are true when the associated bit is set: consent was granted (0x1), consent was communicated at install (0x2), diagnostic data consent granted (0x20000), browsing data consent granted (0x40000). -- **AppSessionGuid** An identifier of a particular application session starting at process creation time and persisting until process end. -- **brandCode** Contains the 4 character brand code or distribution tag that has been assigned to a partner. Not every Windows install will have a brand code. -- **Channel** An integer indicating the channel of the installation (Canary or Dev). -- **client_id** A unique identifier with which all other diagnostic client data is associated, taken from the UMA metrics provider. This ID is effectively unique per device, per OS user profile, per release channel (e.g. Canary/Dev/Beta/Stable). client_id is not durable, based on user preferences. client_id is initialized on the first application launch under each OS user profile. client_id is linkable, but not unique across devices or OS user profiles. client_id is reset whenever UMA data collection is disabled, or when the application is uninstalled. -- **ConnectionType** The first reported type of network connection currently connected. This can be one of Unknown, Ethernet, WiFi, 2G, 3G, 4G, None, or Bluetooth. -- **container_client_id** The client ID of the container, if in WDAG mode. This will be different from the UMA log client ID, which is the client ID of the host in WDAG mode. -- **container_session_id** The session ID of the container, if in WDAG mode. This will be different from the UMA log session ID, which is the session ID of the host in WDAG mode. -- **device_sample_rate** A number representing how often the device sends telemetry, expressed as a percentage. Low values indicate that device sends more events and high values indicate that device sends fewer events. The value is rounded to 5 significant figures for privacy reasons and if an error is hit in getting the device sample number value from the registry then this will be -1; and if client is not on a UTC-enabled platform, then this value will not be set. -- **Etag** Etag is an identifier representing all service applied configurations and experiments for the current browser session. This field is left empty when Windows diagnostic level is set to Basic or lower or when consent for diagnostic data has been denied. -- **EventInfo.Level** The minimum Windows diagnostic data level required for the event where 1 is basic, 2 is enhanced, and 3 is full. -- **experimentation_mode** A number representing the value set for the ExperimentationAndConfigurationServiceControl group policy. See [Microsoft Edge - Policies](/DeployEdge/microsoft-edge-policies#experimentationandconfigurationservicecontrol) for more details on this policy. -- **install_date** The date and time of the most recent installation in seconds since midnight on January 1, 1970 UTC, rounded down to the nearest hour. -- **installSource** An enumeration representing the source of this installation: source was not retrieved (0), unspecified source (1), website installer (2), enterprise MSI (3), Windows update (4), Edge updater (5), scheduled or timed task (6, 7), uninstall (8), Edge about page (9), self-repair (10), other install command line (11), reserved (12), unknown source (13). -- **installSourceName** A string representation of the installation source. -- **PayloadClass** The base class used to serialize and deserialize the Protobuf binary payload. -- **PayloadGUID** A random identifier generated for each original monolithic Protobuf payload, before the payload is potentially broken up into manageably-sized chunks for transmission. -- **PayloadLogType** The log type for the event correlating with 0 for unknown, 1 for stability, 2 for on-going, 3 for independent, 4 for UKM, or 5 for instance level. -- **pop_sample** A value indicating how the device's data is being sampled. -- **reactivationBrandCode** Contains the 4 character reactivation brand code or distribution tag that has been assigned to a partner. Not every Windows install will have a brand code. -- **reconsentConfigs** A comma separated list of all reconsent configurations the current installation has received. Each configuration follows a well-defined format: 2DigitMonth-2DigitYear-3LetterKeyword. -- **session_id** An identifier that is incremented each time the user launches the application, irrespective of any client_id changes. session_id is seeded during the initial installation of the application. session_id is effectively unique per client_id value. Several other internal identifier values, such as window or tab IDs, are only meaningful within a particular session. The session_id value is forgotten when the application is uninstalled, but not during an upgrade. -- **utc_flags** Event Tracing for Windows (ETW) flags required for the event as part of the data collection process. - - -### Microsoft.Edge.Crashpad.CrashEvent - -This event sends simple Product and Service Performance data on a crashing Microsoft Edge browser process to help mitigate future instances of the crash. - -The following fields are available: - -- **app_name** The name of the crashing process. -- **app_session_guid** Encodes the boot session, process id, and process start time. -- **app_version** The version of the crashing process. -- **client_id_hash** Hash of the browser client ID which helps identify installations. -- **etag** Encodes the running experiments in the browser. -- **module_name** The name of the module in which the crash originated. -- **module_offset** Memory offset into the module in which the crash originated. -- **module_version** The version of the module in which the crash originated. -- **process_type** The type of the browser process that crashed, e.g., renderer, gpu-process, etc. -- **stack_hash** Hash of the stack trace representing the crash. Currently not used or set to zero. -- **sub_code** The exception/error code representing the crash. - - -### Microsoft.WebBrowser.Installer.EdgeUpdate.Ping - -This event sends hardware and software inventory information about the Microsoft Edge Update service, Microsoft Edge applications, and the current system environment, including app configuration, update configuration, and hardware capabilities. It's used to measure the reliability and performance of the EdgeUpdate service and if Microsoft Edge applications are up to date. This is an indication that the event is designed to keep Windows secure and up to date. - -The following fields are available: - -- **appAp** Microsoft Edge Update parameters, including channel, architecture, platform, and additional parameters identifying the release of Microsoft Edge to update and how to install it. Example: 'beta-arch_x64-full'. Default: ''." -- **appAppId** The GUID that identifies the product channels such as Edge Canary, Dev, Beta, Stable, and Edge Update. -- **appBrandCode** The 4-digit brand code under which the product was installed, if any. Possible values: 'GGLS' (default), 'GCEU' (enterprise install), and '' (unknown). -- **appChannel** An integer indicating the channel of the installation (e.g. Canary or Dev). -- **appClientId** A generalized form of the brand code that can accept a wider range of values and is used for similar purposes. Default: ''. -- **appCohort** A machine-readable string identifying the release channel that the app belongs to. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appCohortHint** A machine-readable enum indicating that the client has a desire to switch to a different release cohort. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appCohortName** A stable non-localized human-readable enum indicating which (if any) set of messages the app should display to the user. For example, an app with a cohort name of 'beta' might display beta-specific branding to the user. Limited to ASCII characters 32 to 127 (inclusive) and a maximum length of 1024 characters. Default: ''. -- **appConsentState** Bit flags describing the diagnostic data disclosure and response flow where 1 indicates the affirmative and 0 indicates the negative or unspecified data. Bit 1 indicates consent was given, bit 2 indicates data originated from the download page, bit 18 indicates choice for sending data about how the browser is used, and bit 19 indicates choice for sending data about websites visited. -- **appDayOfInstall** The date-based counting equivalent of appInstallTimeDiffSec (the numeric calendar day that the app was installed on). This value is provided by the server in the response to the first request in the installation flow. Default: '-2' (Unknown). -- **appExperiments** A semicolon-delimited key/value list of experiment identifiers and treatment groups. This field is unused and always empty in Edge Update. Default: ''. -- **appIid** A GUID that identifies a particular installation flow. For example, each download of a product installer is tagged with a unique GUID. Attempts to install using that installer can then be grouped. A client SHOULD NOT persist the IID GUID after the installation flow of a product is complete. -- **appInstallTimeDiffSec** The difference between the current time and the install date in seconds. '0' if unknown. Default: '-1'. -- **appLang** The language of the product install, in IETF BCP 47 representation. Default: ''. -- **appNextVersion** The version of the app that the update attempted to reach, regardless of the success or failure of the update operation. Default: '0.0.0.0'. -- **appPingEventAppSize** The total number of bytes of all downloaded packages. Default: '0'. -- **appPingEventDownloadMetricsDownloadedBytes** For events representing a download, the number of bytes expected to be downloaded. For events representing an entire update flow, the sum of all such expected bytes over the course of the update flow. Default: '0'. -- **appPingEventDownloadMetricsDownloader** A string identifying the download algorithm and/or stack. Example values include: 'bits', 'direct', 'winhttp', 'p2p'. Sent in events that have an event type of '14' only. Default: ''. -- **appPingEventDownloadMetricsDownloadTimeMs** For events representing a download, the time elapsed between the start of the download and the end of the download, in milliseconds. For events representing an entire update flow, the sum of all such download times over the course of the update flow. Sent in events that have an event type of '1', '2', '3', and '14' only. Default: '0'. -- **appPingEventDownloadMetricsError** The error code (if any) of the operation, encoded as a signed base-10 integer. Default: '0'. -- **appPingEventDownloadMetricsServerIpHint** For events representing a download, the CDN Host IP address that corresponds to the update file server. The CDN host is controlled by Microsoft servers and always maps to IP addresses hosting *.delivery.mp.microsoft.com or msedgesetup.azureedge.net. Default: ''. -- **appPingEventDownloadMetricsTotalBytes** For events representing a download, the number of bytes expected to be downloaded. For events representing an entire update flow, the sum of all such expected bytes over the course of the update flow. Default: '0'. -- **appPingEventDownloadMetricsUrl** For events representing a download, the CDN URL provided by the update server for the client to download the update, the URL is controlled by Microsoft servers and always maps back to either *.delivery.mp.microsoft.com or msedgesetup.azureedge.net. Default: ''. -- **appPingEventDownloadTimeMs** For events representing a download, the time elapsed between the start of the download and the end of the download, in milliseconds. For events representing an entire update flow, the sum of all such download times over the course of the update flow. Sent in events that have an event type of '1', '2', '3', and '14' only. Default: '0'. -- **appPingEventErrorCode** The error code (if any) of the operation, encoded as a signed, base-10 integer. Default: '0'. -- **appPingEventEventResult** An enumeration indicating the result of the event. Common values are '0' (Error) and '1' (Success). Default: '0' (Error). -- **appPingEventEventType** An enumeration indicating the type of the event and the event stage. Default: '0' (Unknown). -- **appPingEventExtraCode1** Additional numeric information about the operation's result, encoded as a signed, base-10 integer. Default: '0'. -- **appPingEventInstallTimeMs** For events representing an install, the time elapsed between the start of the install and the end of the install, in milliseconds. For events representing an entire update flow, the sum of all such durations. Sent in events that have an event type of '2' and '3' only. Default: '0'. -- **appPingEventNumBytesDownloaded** The number of bytes downloaded for the specified application. Default: '0'. -- **appPingEventSequenceId** An ID that uniquely identifies particular events within one requestId. Since a request can contain multiple ping events, this field is necessary to uniquely identify each possible event. -- **appPingEventSourceUrlIndex** For events representing a download, the position of the download URL in the list of URLs supplied by the server in a tag. -- **appPingEventUpdateCheckTimeMs** For events representing an entire update flow, the time elapsed between the start of the update check and the end of the update check, in milliseconds. Sent in events that have an event type of '2' and '3' only. Default: '0'. -- **appUpdateCheckIsUpdateDisabled** The state of whether app updates are restricted by group policy. True if updates have been restricted by group policy or false if they have not. -- **appUpdateCheckTargetVersionPrefix** A component-wise prefix of a version number, or a complete version number suffixed with the $ character. The prefix is interpreted a dotted-tuple that specifies the exactly-matching elements; it is not a lexical prefix (for example, '1.2.3' MUST match '1.2.3.4' but MUST NOT match '1.2.34'). Default: ''. -- **appUpdateCheckTtToken** An opaque access token that can be used to identify the requesting client as a member of a trusted-tester group. If non-empty, the request is sent over SSL or another secure protocol. This field is unused by Edge Update and always empty. Default: ''. -- **appVersion** The version of the product install. Default: '0.0.0.0'. -- **eventType** A string representation of appPingEventEventType indicating the type of the event. -- **hwHasAvx** '1' if the client's hardware supports the AVX instruction set. '0' if the client's hardware does not support the AVX instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse** '1' if the client's hardware supports the SSE instruction set. '0' if the client's hardware does not support the SSE instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse2** '1' if the client's hardware supports the SSE2 instruction set. '0' if the client's hardware does not support the SSE2 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse3** '1' if the client's hardware supports the SSE3 instruction set. '0' if the client's hardware does not support the SSE3 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse41** '1' if the client's hardware supports the SSE4.1 instruction set. '0' if the client's hardware does not support the SSE4.1 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSse42** '1' if the client's hardware supports the SSE4.2 instruction set. '0' if the client's hardware does not support the SSE4.2 instruction set. '-1' if unknown. Default: '-1'. -- **hwHasSsse3** '1' if the client's hardware supports the SSSE3 instruction set. '0' if the client's hardware does not support the SSSE3 instruction set. '-1' if unknown. Default: '-1'. -- **hwPhysmemory** The physical memory available to the client, truncated down to the nearest gibibyte. '-1' if unknown. This value is intended to reflect the maximum theoretical storage capacity of the client, not including any hard drive or paging to a hard drive or peripheral. Default: '-1'. -- **isMsftDomainJoined** '1' if the client is a member of a Microsoft domain. '0' otherwise. Default: '0'. -- **osArch** The architecture of the operating system (e.g. 'x86', 'x64', 'arm'). '' if unknown. Default: ''. -- **osPlatform** The operating system family that the within which the Omaha client is running (e.g. 'win', 'mac', 'linux', 'ios', 'android'). '' if unknown. The operating system name should be transmitted in lowercase with minimal formatting. Default: ''. -- **osServicePack** The secondary version of the operating system. '' if unknown. Default: ''. -- **osVersion** The primary version of the operating system. '' if unknown. Default: ''. -- **requestCheckPeriodSec** The update interval in seconds. The value is read from the registry. Default: '-1'. -- **requestDlpref** A comma-separated list of values specifying the preferred download URL behavior. The first value is the highest priority, further values reflect secondary, tertiary, et cetera priorities. Legal values are '' (in which case the entire list must be empty, indicating unknown or no-preference) or 'cacheable' (the server should prioritize sending URLs that are easily cacheable). Default: ''. -- **requestDomainJoined** '1' if the device is part of a managed enterprise domain. Otherwise '0'. -- **requestInstallSource** A string specifying the cause of the update flow. For example: 'ondemand', or 'scheduledtask'. Default: ''. -- **requestIsMachine** '1' if the client is known to be installed with system-level or administrator privileges. '0' otherwise. Default: '0'. -- **requestOmahaShellVersion** The version of the Omaha installation folder. Default: ''. -- **requestOmahaVersion** The version of the Omaha updater itself (the entity sending this request). Default: '0.0.0.0'. -- **requestProtocolVersion** The version of the Omaha protocol. Compatible clients MUST provide a value of '3.0'. Compatible clients MUST always transmit this attribute. Default: undefined. -- **requestRequestId** A randomly-generated (uniformly distributed) GUID, corresponding to the Omaha request. Each request attempt SHOULD have (with high probability) a unique request id. Default: ''. -- **requestSessionCorrelationVectorBase** A client generated random MS Correlation Vector base code used to correlate the update session with update and CDN servers. Default: ''. -- **requestSessionId** A randomly-generated (uniformly distributed) GUID. Each single update flow (e.g. update check, update application, event ping sequence) SHOULD have (with high probability) a single unique session ID. Default: ''. -- **requestTestSource** Either '', 'dev', 'qa', 'prober', 'auto', or 'ossdev'. Any value except '' indicates that the request is a test and should not be counted toward normal metrics. Default: ''. -- **requestUid** A randomly-generated (uniformly distributed) GUID, corresponding to the Omaha user. Each request attempt SHOULD have (with high probability) a unique request id. Default: ''. - - -## Migration events - -### Microsoft.Windows.MigrationCore.MigObjectCountDLUsr - -This event returns data to track the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - -The following fields are available: - -- **currentSid** Indicates the user SID for which the migration is being performed. -- **knownFoldersUsr[i]** Predefined folder path locations. -- **migDiagSession->CString** The phase of the upgrade where migration occurs. (E.g.: Validate tracked content) -- **objectCount** The count for the number of objects that are being transferred. - - -### Microsoft.Windows.MigrationCore.MigObjectCountKFSys - -This event returns data about the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - -The following fields are available: - -- **knownFoldersSys[i]** The predefined folder path locations. -- **migDiagSession->CString** Identifies the phase of the upgrade where migration happens. -- **objectCount** The count of the number of objects that are being transferred. - - -### Microsoft.Windows.MigrationCore.MigObjectCountKFUsr - -This event returns data to track the count of the migration objects across various phases during feature update. The data collected with this event is used to help keep Windows secure and to track data loss scenarios. - -The following fields are available: - -- **currentSid** Indicates the user SID for which the migration is being performed. -- **knownFoldersUsr[i]** Predefined folder path locations. -- **migDiagSession->CString** The phase of the upgrade where the migration occurs. (For example, Validate tracked content.) -- **objectCount** The number of objects that are being transferred. - - -## Miracast events - -### Microsoft.Windows.Cast.Miracast.MiracastSessionEnd - -This event sends data at the end of a Miracast session that helps determine RTSP related Miracast failures along with some statistics about the session. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **AudioChannelCount** The number of audio channels. -- **AudioSampleRate** The sample rate of audio in terms of samples per second. -- **AudioSubtype** The unique subtype identifier of the audio codec (encoding method) used for audio encoding. -- **AverageBitrate** The average video bitrate used during the Miracast session, in bits per second. -- **AverageDataRate** The average available bandwidth reported by the WiFi driver during the Miracast session, in bits per second. -- **AveragePacketSendTimeInMs** The average time required for the network to send a sample, in milliseconds. -- **ConnectorType** The type of connector used during the Miracast session. -- **EncodeAverageTimeMS** The average time to encode a frame of video, in milliseconds. -- **EncodeCount** The count of total frames encoded in the session. -- **EncodeMaxTimeMS** The maximum time to encode a frame, in milliseconds. -- **EncodeMinTimeMS** The minimum time to encode a frame, in milliseconds. -- **EncoderCreationTimeInMs** The time required to create the video encoder, in milliseconds. -- **ErrorSource** Identifies the component that encountered an error that caused a disconnect, if applicable. -- **FirstFrameTime** The time (tick count) when the first frame is sent. -- **FirstLatencyMode** The first latency mode. -- **FrameAverageTimeMS** Average time to process an entire frame, in milliseconds. -- **FrameCount** The total number of frames processed. -- **FrameMaxTimeMS** The maximum time required to process an entire frame, in milliseconds. -- **FrameMinTimeMS** The minimum time required to process an entire frame, in milliseconds. -- **Glitches** The number of frames that failed to be delivered on time. -- **HardwareCursorEnabled** Indicates if hardware cursor was enabled when the connection ended. -- **HDCPState** The state of HDCP (High-bandwidth Digital Content Protection) when the connection ended. -- **HighestBitrate** The highest video bitrate used during the Miracast session, in bits per second. -- **HighestDataRate** The highest available bandwidth reported by the WiFi driver, in bits per second. -- **LastLatencyMode** The last reported latency mode. -- **LogTimeReference** The reference time, in tick counts. -- **LowestBitrate** The lowest video bitrate used during the Miracast session, in bits per second. -- **LowestDataRate** The lowest video bitrate used during the Miracast session, in bits per second. -- **MediaErrorCode** The error code reported by the media session, if applicable. -- **MiracastEntry** The time (tick count) when the Miracast driver was first loaded. -- **MiracastM1** The time (tick count) when the M1 request was sent. -- **MiracastM2** The time (tick count) when the M2 request was sent. -- **MiracastM3** The time (tick count) when the M3 request was sent. -- **MiracastM4** The time (tick count) when the M4 request was sent. -- **MiracastM5** The time (tick count) when the M5 request was sent. -- **MiracastM6** The time (tick count) when the M6 request was sent. -- **MiracastM7** The time (tick count) when the M7 request was sent. -- **MiracastSessionState** The state of the Miracast session when the connection ended. -- **MiracastStreaming** The time (tick count) when the Miracast session first started processing frames. -- **ProfileCount** The count of profiles generated from the receiver M4 response. -- **ProfileCountAfterFiltering** The count of profiles after filtering based on available bandwidth and encoder capabilities. -- **RefreshRate** The refresh rate set on the remote display. -- **RotationSupported** Indicates if the Miracast receiver supports display rotation. -- **RTSPSessionId** The unique identifier of the RTSP session. This matches the RTSP session ID for the receiver for the same session. -- **SessionGuid** The unique identifier of to correlate various Miracast events from a session. -- **SinkHadEdid** Indicates if the Miracast receiver reported an EDID. -- **SupportMicrosoftColorSpaceConversion** Indicates whether the Microsoft color space conversion for extra color fidelity is supported by the receiver. -- **SupportsMicrosoftDiagnostics** Indicates whether the Miracast receiver supports the Microsoft Diagnostics Miracast extension. -- **SupportsMicrosoftFormatChange** Indicates whether the Miracast receiver supports the Microsoft Format Change Miracast extension. -- **SupportsMicrosoftLatencyManagement** Indicates whether the Miracast receiver supports the Microsoft Latency Management Miracast extension. -- **SupportsMicrosoftRTCP** Indicates whether the Miracast receiver supports the Microsoft RTCP Miracast extension. -- **SupportsMicrosoftVideoFormats** Indicates whether the Miracast receiver supports Microsoft video format for 3:2 resolution. -- **SupportsWiDi** Indicates whether Miracast receiver supports Intel WiDi extensions. -- **TeardownErrorCode** The error code reason for teardown provided by the receiver, if applicable. -- **TeardownErrorReason** The text string reason for teardown provided by the receiver, if applicable. -- **UIBCEndState** Indicates whether UIBC was enabled when the connection ended. -- **UIBCEverEnabled** Indicates whether UIBC was ever enabled. -- **UIBCStatus** The result code reported by the UIBC setup process. -- **VideoBitrate** The starting bitrate for the video encoder. -- **VideoCodecLevel** The encoding level used for encoding, specific to the video subtype. -- **VideoHeight** The height of encoded video frames. -- **VideoSubtype** The unique subtype identifier of the video codec (encoding method) used for video encoding. -- **VideoWidth** The width of encoded video frames. -- **WFD2Supported** Indicates if the Miracast receiver supports WFD2 protocol. - - -## Mixed Reality events - -### Microsoft.ML.ONNXRuntime.ProcessInfo - -This event collects information when an application loads ONNXRuntime.dll. The data collected with this event is used to keep Windows product and service performing properly. - -The following fields are available: - -- **AppSessionGuid** An identifier of a particular application session starting at process creation time and persisting until process end. -- **isRedist** Indicates if the ONNXRuntime usage is from redistributable package or inbox. -- **runtimeVersion** The version number of ONNXRuntime. -- **schemaVersion** Blueprint version of how the database is constructed. - - -### Microsoft.ML.ONNXRuntime.RuntimePerf - -This event collects information about ONNXRuntime performance. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **AppSessionGuid** An identifier of a particular application session starting at process creation time and persisting until process end. -- **schemaVersion** Blueprint version of how the database is constructed. -- **sessionId** Identifier for each created session. -- **totalRunDuration** Total running/evaluation time from last time. -- **totalRuns** Total number of running/evaluation from last time. - - -### Microsoft.Windows.Analog.Spectrum.TelemetryHolographicDeviceAdded - -This event indicates Windows Mixed Reality device state. This event is also used to count WMR device. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **ClassGuid** Windows Mixed Reality device class GUID. -- **DeviceInterfaceId** Windows Mixed Reality device interface ID. -- **DeviceName** Windows Mixed Reality device name. -- **DriverVersion** Windows Mixed Reality device driver version. -- **FirmwareVersion** Windows Mixed Reality firmware version. -- **Manufacturer** Windows Mixed Reality device manufacturer. -- **ModelName** Windows Mixed Reality device model name. -- **SerialNumber** Windows Mixed Reality device serial number. - - -## OneDrive events - -### Microsoft.OneDrive.Sync.Setup.OSUpgradeInstallationOperation - -This event is related to the OS version when the OS is upgraded with OneDrive installed. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -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. - - -## Other events - -### Microsoft.Windows.Test.WindowsCoreTelemetryTestProvider.WindowsCoreTelemetryTestEvent - -This is an internal-only test event used to validate the utc.app and telemetry.asm-windowsdefault settings and namespaces before publishing. The provider of this event is assigned to the Windows Core Telemetry group provider in order to test. The data collected with this event is used to keep Windows performing properly - - - -## Privacy consent logging events - -### Microsoft.Windows.Shell.PrivacyConsentLogging.PrivacyConsentCompleted - -This event is used to determine whether the user successfully completed the privacy consent experience. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **presentationVersion** Which display version of the privacy consent experience the user completed -- **privacyConsentState** The current state of the privacy consent experience -- **settingsVersion** Which setting version of the privacy consent experience the user completed -- **userOobeExitReason** The exit reason of the privacy consent experience - - -### Microsoft.Windows.Shell.PrivacyConsentLogging.PrivacyConsentStatus - -This event provides the effectiveness of new privacy experience. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **isAdmin** whether the person who is logging in is an admin -- **isExistingUser** whether the account existed in a downlevel OS -- **isLaunching** Whether or not the privacy consent experience will be launched -- **isSilentElevation** whether the user has most restrictive UAC controls -- **privacyConsentState** whether the user has completed privacy experience -- **userRegionCode** The current user's region setting - - -## Sediment events - -### Microsoft.Windows.Sediment.Info.DetailedState - -This event is sent when detailed state information is needed from an update trial run. The data collected with this event is used to help keep Windows up to date. - -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.PhaseChange - -The event indicates progress made by the updater. This information assists in keeping Windows up to date. - -The following fields are available: - -- **NewPhase** The phase of progress made. -- **ReleaseVer** The version information for the component in which the change occurred. -- **Time** The system time at which the phase chance occurred. - - -## 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. -- **InstanceID** This is a unique GUID to track individual instances of SetupPlatform that will help us tie events from a single instance together. -- **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, 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. -- **InstanceID** This is a unique GUID to track individual instances of SetupPlatform that will help us tie events from a single instance together. -- **Value** Retrieves the value associated with the corresponding event name (Field Name). For example: For time related events this will include the system time. - - -## SIH events - -### SIHEngineTelemetry.EvalApplicability - -This event is sent when targeting logic is evaluated to determine if a device is eligible for a given action. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **ActionReasons** If an action has been assessed as inapplicable, the additional logic prevented it. -- **AdditionalReasons** If an action has been assessed as inapplicable, the additional logic prevented it. -- **CachedEngineVersion** The engine DLL version that is being used. -- **EventInstanceID** A unique identifier for event instance. -- **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. -- **HandlerReasons** If an action has been assessed as inapplicable, the installer technology-specific logic prevented it. -- **IsExecutingAction** If the action is presently being executed. -- **ServiceGuid** A unique identifier that represents which service the software distribution client is connecting to (SIH, Windows Update, Microsoft Store, etc.). -- **SihclientVersion** The client version that is being used. -- **StandardReasons** If an action has been assessed as inapplicable, the standard logic the prevented it. -- **StatusCode** Result code of the event (success, cancellation, failure code HResult). -- **UpdateID** A unique identifier for the action being acted upon. -- **WuapiVersion** The Windows Update API version that is currently installed. -- **WuaucltVersion** The Windows Update client version that is currently installed. -- **WuauengVersion** The Windows Update engine version that is currently installed. -- **WUDeviceID** The unique identifier controlled by the software distribution client. - - -## Software update events - -### SoftwareUpdateClientTelemetry.CheckForUpdates - -This event sends tracking data about the software distribution client check for content that is applicable to a device, to help keep Windows up to date. - -The following fields are available: - -- **ActivityMatchingId** Contains a unique ID identifying a single CheckForUpdates session from initialization to completion. -- **AllowCachedResults** Indicates if the scan allowed using cached results. -- **ApplicableUpdateInfo** Metadata for the updates which were detected as applicable -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The sku number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BranchReadinessLevel** The servicing branch configured on the device. -- **CachedEngineVersion** For self-initiated healing, the version of the SIH engine that is cached on the device. If the SIH engine does not exist, the value is null. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **CapabilityDetectoidGuid** The GUID for a hardware applicability detectoid that could not be evaluated. -- **CDNCountryCode** Two letter country abbreviation for the Content Distribution Network (CDN) location. -- **CDNId** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. -- **ClientVersion** The version number of the software distribution client. -- **CommonProps** A bitmask for future flags associated with the Windows Update client behavior. No data is currently reported in this field. Expected value for this field is 0. -- **Context** Gives context on where the error has occurred. Example: AutoEnable, GetSLSData, AddService, Misc, or Unknown -- **CurrentMobileOperator** The mobile operator the device is currently connected to. -- **DeferralPolicySources** Sources for any update deferral policies defined (GPO = 0x10, MDM = 0x100, Flight = 0x1000, UX = 0x10000). -- **DeferredUpdates** Update IDs which are currently being deferred until a later time -- **DeviceModel** What is the device model. -- **DriverError** The error code hit during a driver scan. This is 0 if no error was encountered. -- **DriverExclusionPolicy** Indicates if the policy for not including drivers with Windows Update is enabled. -- **DriverSyncPassPerformed** Were drivers scanned this time? -- **EventInstanceID** A globally unique identifier for event instance. -- **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. -- **ExtendedMetadataCabUrl** Hostname that is used to download an update. -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough. -- **FailedUpdateGuids** The GUIDs for the updates that failed to be evaluated during the scan. -- **FailedUpdatesCount** The number of updates that failed to be evaluated during the scan. -- **FeatureUpdateDeferral** The deferral period configured for feature OS updates on the device (in days). -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FeatureUpdatePausePeriod** The pause duration configured for feature OS updates on the device (in days). -- **FlightBranch** The branch that a device is on if participating in flighting (pre-release builds). -- **FlightRing** The ring (speed of getting builds) that a device is on if participating in flighting (pre-release builds). -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **IntentPFNs** Intended application-set metadata for atomic update scenarios. -- **IPVersion** Indicates whether the download took place over IPv4 or IPv6 -- **IsWUfBDualScanEnabled** Indicates if Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Indicates if Windows Update for Business is enabled on the device. -- **IsWUfBFederatedScanDisabled** Indicates if Windows Update for Business federated scan is disabled on the device. -- **IsWUfBTargetVersionEnabled** Flag that indicates if the Windows Update for Business target version policy is enabled on the device. -- **MetadataIntegrityMode** The mode of the update transport metadata integrity check. 0-Unknown, 1-Ignoe, 2-Audit, 3-Enforce -- **MSIError** The last error that was encountered during a scan for updates. -- **NetworkConnectivityDetected** Indicates the type of network connectivity that was detected. 0 - IPv4, 1 - IPv6 -- **NumberOfApplicableUpdates** The number of updates which were ultimately deemed applicable to the system after the detection process is complete -- **NumberOfApplicationsCategoryScanEvaluated** The number of categories (apps) for which an app update scan checked -- **NumberOfLoop** The number of round trips the scan required -- **NumberOfNewUpdatesFromServiceSync** The number of updates which were seen for the first time in this scan -- **NumberOfUpdatesEvaluated** The total number of updates which were evaluated as a part of the scan -- **NumFailedMetadataSignatures** The number of metadata signatures checks which failed for new metadata synced down. -- **Online** Indicates if this was an online scan. -- **PausedUpdates** A list of UpdateIds which that currently being paused. -- **PauseFeatureUpdatesEndTime** If feature OS updates are paused on the device, this is the date and time for the end of the pause time window. -- **PauseFeatureUpdatesStartTime** If feature OS updates are paused on the device, this is the date and time for the beginning of the pause time window. -- **PauseQualityUpdatesEndTime** If quality OS updates are paused on the device, this is the date and time for the end of the pause time window. -- **PauseQualityUpdatesStartTime** If quality OS updates are paused on the device, this is the date and time for the beginning of the pause time window. -- **PhonePreviewEnabled** Indicates whether a phone was getting preview build, prior to flighting (pre-release builds) being introduced. -- **ProcessName** The process name of the caller who initiated API calls, in the event where CallerApplicationName was not provided. -- **QualityUpdateDeferral** The deferral period configured for quality OS updates on the device (in days). -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **QualityUpdatePausePeriod** The pause duration configured for quality OS updates on the device (in days). -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one -- **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.). -- **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). -- **SyncType** Describes the type of scan the event was -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **TargetMetadataVersion** For self-initiated healing, this is the target version of the SIH engine to download (if needed). If not, the value is null. -- **TargetReleaseVersion** The value selected for the target release version policy. -- **TotalNumMetadataSignatures** The total number of metadata signatures checks done for new metadata that was synced down. -- **WebServiceRetryMethods** Web service method requests that needed to be retried to complete operation. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. - - -### SoftwareUpdateClientTelemetry.Commit - -This event sends data on whether the Update Service has been called to execute an upgrade, to help keep Windows up to date. - -The following fields are available: - -- **BiosFamily** Device family as defined in the system BIOS -- **BiosName** Name of the system BIOS -- **BiosReleaseDate** Release date of the system BIOS -- **BiosSKUNumber** Device SKU as defined in the system BIOS -- **BIOSVendor** Vendor of the system BIOS -- **BiosVersion** Version of the system BIOS -- **BundleId** Identifier associated with the specific content bundle; should not be all zeros if the bundleID was found. -- **BundleRevisionNumber** Identifies the revision number of the content bundle -- **CallerApplicationName** Name provided by the caller who initiated API calls into the software distribution client -- **ClientVersion** Version number of the software distribution client -- **DeploymentProviderMode** The mode of operation of the update deployment provider. -- **DeviceModel** Device model as defined in the system bios -- **EventInstanceID** A globally unique identifier for event instance -- **EventScenario** Indicates the purpose of the event - whether because scan started, succeded, failed, etc. -- **EventType** Possible values are "Child", "Bundle", "Relase" or "Driver". -- **FlightId** The specific id of the flight the device is getting -- **HandlerType** Indicates the kind of content (app, driver, windows patch, etc.) -- **RevisionNumber** Identifies the revision number of this specific piece of content -- **ServiceGuid** A unique identifier for the service that the software distribution client is installing content for (Windows Update, Microsoft Store, etc). -- **SystemBIOSMajorRelease** Major release version of the system bios -- **SystemBIOSMinorRelease** Minor release version of the system bios -- **UpdateId** Identifier associated with the specific piece of content -- **WUDeviceID** Unique device id controlled by the software distribution client - - -### SoftwareUpdateClientTelemetry.Download - -This event sends tracking data about the software distribution client download of the content for that update, to help keep Windows up to date. - -The following fields are available: - -- **ActiveDownloadTime** Number of seconds the update was actively being downloaded. -- **AppXBlockHashFailures** Indicates the number of blocks that failed hash validation during download. -- **AppXBlockHashValidationFailureCount** A count of the number of blocks that have failed validation after being downloaded. -- **AppXDownloadScope** Indicates the scope of the download for application content. -- **AppXScope** Indicates the scope of the app download. -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The sku number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BundleBytesDownloaded** Number of bytes downloaded for the specific content bundle. -- **BundleId** Identifier associated with the specific content bundle; should not be all zeros if the bundleID was found. -- **BundleRepeatFailCount** Indicates whether this particular update bundle previously failed. -- **BundleRepeatFailFlag** Indicates whether this particular update bundle previously failed to download. -- **BundleRevisionNumber** Identifies the revision number of the content bundle. -- **BytesDownloaded** Number of bytes that were downloaded for an individual piece of content (not the entire bundle). -- **CachedEngineVersion** The version of the “Self-Initiated Healing” (SIH) engine that is cached on the device, if applicable. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **CbsDownloadMethod** Indicates whether the download was a full- or a partial-file download. -- **CbsMethod** The method used for downloading the update content related to the Component Based Servicing (CBS) technology. -- **CDNCountryCode** Two letter country abbreviation for the Content Distribution Network (CDN) location. -- **CDNId** ID which defines which CDN the software distribution client downloaded the content from. -- **ClientVersion** The version number of the software distribution client. -- **CommonProps** A bitmask for future flags associated with the Windows Update client behavior. -- **ConnectTime** Indicates the cumulative amount of time (in seconds) it took to establish the connection for all updates in an update bundle. -- **CurrentMobileOperator** The mobile operator the device is currently connected to. -- **DeviceModel** The model of the device. -- **DownloadPriority** Indicates whether a download happened at background, normal, or foreground priority. -- **DownloadProps** Information about the download operation properties in the form of a bitmask. -- **DownloadScenarioId** A unique ID for a given download, used to tie together Windows Update and Delivery Optimizer events. -- **DownloadType** Differentiates the download type of “Self-Initiated Healing” (SIH) downloads between Metadata and Payload downloads. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventScenario** Indicates the purpose of sending this event - whether because the software distribution just started downloading content, or whether it was cancelled, succeeded, or failed. -- **EventType** Possible values are Child, Bundle, or Driver. -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough. -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FlightBranch** The branch that a device is on if participating in flighting (pre-release builds). -- **FlightBuildNumber** If this download was for a flight (pre-release build), this indicates the build number of that flight. -- **FlightId** The specific ID of the flight (pre-release build) the device is getting. -- **FlightRing** The ring (speed of getting builds) that a device is on if participating in flighting (pre-release builds). -- **HandlerType** Indicates what kind of content is being downloaded (app, driver, windows patch, etc.). -- **HardwareId** If this download was for a driver targeted to a particular device model, this ID indicates the model of the device. -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **HostName** The hostname URL the content is downloading from. -- **IPVersion** Indicates whether the download took place over IPv4 or IPv6. -- **IsDependentSet** Indicates whether a driver is a part of a larger System Hardware/Firmware Update -- **IsWUfBDualScanEnabled** Indicates if Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Indicates if Windows Update for Business is enabled on the device. -- **IsWUfBTargetVersionEnabled** Flag that indicates if the Windows Update for Business target version policy is enabled on the device. -- **NetworkCost** A flag indicating the cost of the network (congested, fixed, variable, over data limit, roaming, etc.) used for downloading the update content. -- **NetworkCostBitMask** Indicates what kind of network the device is connected to (roaming, metered, over data cap, etc.) -- **NetworkRestrictionStatus** More general version of NetworkCostBitMask, specifying whether Windows considered the current network to be "metered." -- **PackageFullName** The package name of the content. -- **PhonePreviewEnabled** Indicates whether a phone was opted-in to getting preview builds, prior to flighting (pre-release builds) being introduced. -- **PostDnldTime** Time taken (in seconds) to signal download completion after the last job has completed downloading payload. -- **ProcessName** The process name of the caller who initiated API calls, in the event where CallerApplicationName was not provided. -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **Reason** A 32-bit integer representing the reason the update is blocked from being downloaded in the background. -- **RegulationResult** The result code (HResult) of the last attempt to contact the regulation web service for download regulation of update content. -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one. -- **RepeatFailCount** Indicates whether this specific content has previously failed. -- **RepeatFailFlag** Indicates whether this specific content previously failed to download. -- **RevisionNumber** The revision number of the specified piece of content. -- **ServiceGuid** A unique identifier for the service that the software distribution client is installing content for (Windows Update, Microsoft Store, etc). -- **Setup360Phase** Identifies the active phase of the upgrade download if the current download is for an Operating System upgrade. -- **ShippingMobileOperator** The mobile operator linked to the device when the device shipped. -- **SizeCalcTime** Time taken (in seconds) to calculate the total download size of the payload. -- **StatusCode** Indicates the result of a Download event (success, cancellation, failure code HResult). -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **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. -- **TargetMetadataVersion** The version of the currently downloading (or most recently downloaded) package. -- **ThrottlingServiceHResult** Result code (success/failure) while contacting a web service to determine whether this device should download content yet. -- **TimeToEstablishConnection** Time (in milliseconds) it took to establish the connection prior to beginning downloaded. -- **TotalExpectedBytes** The total count of bytes that the download is expected to be. -- **UpdateId** An identifier associated with the specific piece of content. -- **UpdateID** An identifier associated with the specific piece of content. -- **UpdateImportance** Indicates whether a piece of content was marked as Important, Recommended, or Optional. -- **UsedDO** Whether the download used the delivery optimization service. -- **UsedSystemVolume** Indicates whether the content was downloaded to the device's main system storage drive, or an alternate storage drive. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. - - -### SoftwareUpdateClientTelemetry.DownloadCheckpoint - -This event provides a checkpoint between each of the Windows Update download phases for UUP content. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client -- **ClientVersion** The version number of the software distribution client -- **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 -- **EventType** Possible values are "Child", "Bundle", "Relase" or "Driver" -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode wasn't specific enough -- **FileId** A hash that uniquely identifies a file -- **FileName** Name of the downloaded file -- **FlightId** The unique identifier for each flight -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one -- **RevisionNumber** Unique revision number of Update -- **ServiceGuid** An ID which represents which service the software distribution client is checking for content (Windows Update, Microsoft Store, etc.) -- **StatusCode** Indicates the result of a CheckForUpdates event (success, cancellation, failure code HResult) -- **UpdateId** Unique Update ID -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue - - -### SoftwareUpdateClientTelemetry.DownloadHeartbeat - -This event allows tracking of ongoing downloads and contains data to explain the current state of the download. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **BytesTotal** Total bytes to transfer for this content -- **BytesTransferred** Total bytes transferred for this content at the time of heartbeat -- **CallerApplicationName** Name provided by the caller who initiated API calls into the software distribution client -- **ClientVersion** The version number of the software distribution client -- **ConnectionStatus** Indicates the connectivity state of the device at the time of heartbeat -- **CurrentError** Last (transient) error encountered by the active download -- **DownloadFlags** Flags indicating if power state is ignored -- **DownloadState** Current state of the active download for this content (queued, suspended, or progressing) -- **EventType** Possible values are "Child", "Bundle", or "Driver" -- **FlightId** The unique identifier for each flight -- **IsNetworkMetered** Indicates whether Windows considered the current network to be ?metered" -- **MOAppDownloadLimit** Mobile operator cap on size of application downloads, if any -- **MOUpdateDownloadLimit** Mobile operator cap on size of operating system update downloads, if any -- **PowerState** Indicates the power state of the device at the time of heartbeart (DC, AC, Battery Saver, or Connected Standby) -- **RelatedCV** The previous correlation vector that was used by the client, before swapping with a new one -- **ResumeCount** Number of times this active download has resumed from a suspended state -- **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) -- **SuspendCount** Number of times this active download has entered a suspended state -- **SuspendReason** Last reason for why this active download entered a suspended state -- **UpdateId** Identifier associated with the specific piece of content -- **WUDeviceID** Unique device id controlled by the software distribution client - - -### SoftwareUpdateClientTelemetry.Install - -This event sends tracking data about the software distribution client installation of the content for that update, to help keep Windows up to date. - -The following fields are available: - -- **BiosFamily** The family of the BIOS (Basic Input Output System). -- **BiosName** The name of the device BIOS. -- **BiosReleaseDate** The release date of the device BIOS. -- **BiosSKUNumber** The sku number of the device BIOS. -- **BIOSVendor** The vendor of the BIOS. -- **BiosVersion** The version of the BIOS. -- **BundleId** Identifier associated with the specific content bundle; should not be all zeros if the bundleID was found. -- **BundleRepeatFailCount** Indicates whether this particular update bundle has previously failed. -- **BundleRepeatFailFlag** Indicates whether this particular update bundle previously failed to install. -- **BundleRevisionNumber** Identifies the revision number of the content bundle. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **ClientVersion** The version number of the software distribution client. -- **CommonProps** A bitmask for future flags associated with the Windows Update client behavior. No value is currently reported in this field. Expected value for this field is 0. -- **CSIErrorType** The stage of CBS installation where it failed. -- **CurrentMobileOperator** The mobile operator to which the device is currently connected. -- **DeploymentProviderMode** The mode of operation of the update deployment provider. -- **DeviceModel** The device model. -- **DriverPingBack** Contains information about the previous driver and system state. -- **DriverRecoveryIds** The list of identifiers that could be used for uninstalling the drivers if a recovery is required. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventScenario** Indicates the purpose of sending this event - whether because the software distribution just started installing content, or whether it was cancelled, succeeded, or failed. -- **EventType** Possible values are Child, Bundle, or Driver. -- **ExtendedErrorCode** The extended error code. -- **ExtendedStatusCode** Secondary error code for certain scenarios where StatusCode is not specific enough. -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FlightBranch** The branch that a device is on if participating in the Windows Insider Program. -- **FlightBuildNumber** If this installation was for a Windows Insider build, this is the build number of that build. -- **FlightId** The specific ID of the Windows Insider build the device is getting. -- **FlightRing** The ring that a device is on if participating in the Windows Insider Program. -- **HandlerType** Indicates what kind of content is being installed (for example, app, driver, Windows update). -- **HardwareId** If this install was for a driver targeted to a particular device model, this ID indicates the model of the device. -- **HomeMobileOperator** The mobile operator that the device was originally intended to work with. -- **InstallProps** A bitmask for future flags associated with the install operation. No value is currently reported in this field. Expected value for this field is 0. -- **IntentPFNs** Intended application-set metadata for atomic update scenarios. -- **IsDependentSet** Indicates whether the driver is part of a larger System Hardware/Firmware update. -- **IsFinalOutcomeEvent** Indicates whether this event signals the end of the update/upgrade process. -- **IsFirmware** Indicates whether this update is a firmware update. -- **IsSuccessFailurePostReboot** Indicates whether the update succeeded and then failed after a restart. -- **IsWUfBDualScanEnabled** Indicates whether Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Indicates whether Windows Update for Business is enabled on the device. -- **IsWUfBTargetVersionEnabled** Flag that indicates if the Windows Update for Business target version policy is enabled on the device. -- **MergedUpdate** Indicates whether the OS update and a BSP update merged for installation. -- **MsiAction** The stage of MSI installation where it failed. -- **MsiProductCode** The unique identifier of the MSI installer. -- **PackageFullName** The package name of the content being installed. -- **PhonePreviewEnabled** Indicates whether a phone was getting preview build, prior to flighting being introduced. -- **ProcessName** The process name of the caller who initiated API calls, in the event that CallerApplicationName was not provided. -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **RelatedCV** The previous Correlation Vector that was used before swapping with a new one -- **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.). -- **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). -- **SystemBIOSMajorRelease** Major version of the BIOS. -- **SystemBIOSMinorRelease** Minor version of the BIOS. -- **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. -- **TransactionCode** The ID that represents a given MSI installation. -- **UpdateId** Unique update ID. -- **UpdateImportance** Indicates whether a piece of content was marked as Important, Recommended, or Optional. -- **UsedSystemVolume** Indicates whether the content was downloaded and then installed from the device's main system storage drive, or an alternate storage drive. -- **WUDeviceID** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. - - -### SoftwareUpdateClientTelemetry.Revert - -This is a revert event for target update on Windows Update Client. See EventScenario field for specifics (for example, Started/Failed/Succeeded). The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **BundleId** Identifier associated with the specific content bundle. Should not be all zeros if the BundleId was found. -- **BundleRepeatFailCount** Indicates whether this particular update bundle has previously failed. -- **BundleRevisionNumber** Identifies the revision number of the content bundle. -- **CallerApplicationName** Name of application making the Windows Update request. Used to identify context of request. -- **ClientVersion** Version number of the software distribution client. -- **CommonProps** A bitmask for future flags associated with the Windows Update client behavior. There is no value being reported in this field right now. Expected value for this field is 0. -- **CSIErrorType** Stage of CBS installation that failed. -- **DeploymentProviderMode** The mode of operation of the update deployment provider. -- **DriverPingBack** Contains information about the previous driver and system state. -- **DriverRecoveryIds** The list of identifiers that could be used for uninstalling the drivers if a recovery is required. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventScenario** Indicates the purpose of the event (scan started, succeeded, failed, etc.). -- **EventType** Event type (Child, Bundle, Release, or Driver). -- **ExtendedStatusCode** Secondary status code for certain scenarios where StatusCode is not specific enough. -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FlightBuildNumber** Indicates the build number of the flight. -- **FlightId** The specific ID of the flight the device is getting. -- **HandlerType** Indicates the kind of content (app, driver, windows patch, etc.). -- **HardwareId** If this download was for a driver targeted to a particular device model, this ID indicates the model of the device. -- **IsFinalOutcomeEvent** Indicates whether this event signals the end of the update/upgrade process. -- **IsFirmware** Indicates whether an update was a firmware update. -- **IsSuccessFailurePostReboot** Indicates whether an initial success was a failure after a reboot. -- **IsWUfBDualScanEnabled** Flag indicating whether Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Flag indicating whether Windows Update for Business is enabled on the device. -- **IsWUfBTargetVersionEnabled** Flag that indicates if the Windows Update for Business target version policy is enabled on the device. -- **MergedUpdate** Indicates whether an OS update and a BSP update were merged for install. -- **ProcessName** Process name of the caller who initiated API calls into the software distribution client. -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **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** A unique identifier for the service that the software distribution client is installing content for (Windows Update, Microsoft 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. -- **UpdateId** The identifier associated with the specific piece of content. -- **UpdateImportance** Indicates the importance of a driver, and why it received that importance level (0-Unknown, 1-Optional, 2-Important-DNF, 3-Important-Generic, 4-Important-Other, 5-Recommended). -- **UsedSystemVolume** Indicates whether the device's main system storage drive or an alternate storage drive was used. -- **WUDeviceID** Unique device ID controlled by the software distribution client. - - -### SoftwareUpdateClientTelemetry.TaskRun - -This is a start event for Server Initiated Healing client. See EventScenario field for specifics (for example, started/completed). The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CallerApplicationName** Name of application making the Windows Update request. Used to identify context of request. -- **ClientVersion** Version number of the software distribution client. -- **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.). -- **StatusCode** Result code of the event (success, cancellation, failure code HResult). -- **WUDeviceID** Unique device ID controlled by the software distribution client. - - -### SoftwareUpdateClientTelemetry.Uninstall - -This is an uninstall event for target update on Windows Update Client. See EventScenario field for specifics (for example, Started/Failed/Succeeded). The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **BundleId** The identifier associated with the specific content bundle. This should not be all zeros if the bundleID was found. -- **BundleRepeatFailCount** Indicates whether this particular update bundle previously failed. -- **BundleRevisionNumber** Identifies the revision number of the content bundle. -- **CallerApplicationName** Name of the application making the Windows Update request. Used to identify context of request. -- **ClientVersion** Version number of the software distribution client. -- **CommonProps** A bitmask for future flags associated with the Windows Update client behavior. There is no value being reported in this field right now. Expected value for this field is 0. -- **DeploymentProviderMode** The mode of operation of the Update Deployment Provider. -- **DriverPingBack** Contains information about the previous driver and system state. -- **DriverRecoveryIds** The list of identifiers that could be used for uninstalling the drivers when a recovery is required. -- **EventInstanceID** A globally unique identifier for event instance. -- **EventScenario** Indicates the purpose of the event (a scan started, succeded, failed, etc.). -- **EventType** Indicates the event type. Possible values are "Child", "Bundle", "Release" or "Driver". -- **ExtendedStatusCode** Secondary status code for certain scenarios where StatusCode is not specific enough. -- **FeatureUpdatePause** Indicates whether feature OS updates are paused on the device. -- **FlightBuildNumber** Indicates the build number of the flight. -- **FlightId** The specific ID of the flight the device is getting. -- **HandlerType** Indicates the kind of content (app, driver, windows patch, etc.). -- **HardwareId** If the download was for a driver targeted to a particular device model, this ID indicates the model of the device. -- **IsFinalOutcomeEvent** Indicates whether this event signals the end of the update/upgrade process. -- **IsFirmware** Indicates whether an update was a firmware update. -- **IsSuccessFailurePostReboot** Indicates whether an initial success was then a failure after a reboot. -- **IsWUfBDualScanEnabled** Flag indicating whether Windows Update for Business dual scan is enabled on the device. -- **IsWUfBEnabled** Flag indicating whether Windows Update for Business is enabled on the device. -- **IsWUfBTargetVersionEnabled** Flag that indicates if the Windows Update for Business target version policy is enabled on the device. -- **MergedUpdate** Indicates whether an OS update and a BSP update were merged for install. -- **ProcessName** Process name of the caller who initiated API calls into the software distribution client. -- **QualityUpdatePause** Indicates whether quality OS updates are paused on the device. -- **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** A unique identifier for the service that the software distribution client is installing content for (Windows Update, Microsoft 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. -- **UpdateId** Identifier associated with the specific piece of content. -- **UpdateImportance** Indicates the importance of a driver and why it received that importance level (0-Unknown, 1-Optional, 2-Important-DNF, 3-Important-Generic, 4-Important-Other, 5-Recommended). -- **UsedSystemVolume** Indicates whether the device’s main system storage drive or an alternate storage drive was used. -- **WUDeviceID** Unique device ID controlled by the software distribution client. - - -### SoftwareUpdateClientTelemetry.UpdateDetected - -This event sends data about an AppX app that has been updated from the Microsoft Store, including what app needs an update and what version/architecture is required, in order to understand and address problems with apps getting required updates. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **ApplicableUpdateInfo** Metadata for the updates which were detected as applicable. -- **CallerApplicationName** The name provided by the caller who initiated API calls into the software distribution client. -- **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.). -- **WUDeviceID** The unique device ID controlled by the software distribution client. - - -### SoftwareUpdateClientTelemetry.UpdateMetadataIntegrity - -This event helps to identify whether update content has been tampered with and protects against man-in-the-middle attack. The data collected with this event is used to help keep Windows up to date, secure, and performing properly. - -The following fields are available: - -- **CallerApplicationName** Name of application making the Windows Update request. Used to identify context of request. -- **EndpointUrl** The endpoint URL where the device obtains update metadata. This is used to distinguish between test, staging, and production environments. -- **EventScenario** The purpose of this event, such as scan started, scan succeeded, or scan failed. -- **ExtendedStatusCode** Secondary status code for certain scenarios where StatusCode was not specific enough. -- **LeafCertId** The integral ID from the FragmentSigning data for the certificate that failed. -- **ListOfSHA256OfIntermediateCerData** A semicolon delimited list of base64 encoding of hashes for the Base64CerData in the FragmentSigning data of an intermediate certificate. -- **MetadataIntegrityMode** The mode of the transport metadata integrity check. 0 = unknown; 1 = ignore; 2 = audit; 3 = enforce -- **MetadataSignature** A base64-encoded string of the signature associated with the update metadata (specified by revision ID). -- **RawMode** The raw unparsed mode string from the SLS response. This field is null if not applicable. -- **RawValidityWindowInDays** The raw unparsed validity window string in days of the timestamp token. This field is null if not applicable. -- **RevisionId** The revision ID for a specific piece of content. -- **RevisionNumber** The revision number for a specific piece of content. -- **ServiceGuid** Identifies the service to which the software distribution client is connected, Example: Windows Update or Microsoft Store -- **SHA256OfLeafCerData** A base64 encoding of the hash for the Base64CerData in the FragmentSigning data of the leaf certificate. -- **SHA256OfLeafCertPublicKey** A base64 encoding of the hash of the Base64CertData in the FragmentSigning data of the leaf certificate. -- **SHA256OfTimestampToken** An encoded string of the timestamp token. -- **SignatureAlgorithm** The hash algorithm for the metadata signature. -- **SLSPrograms** A test program to which a device may have opted in. Example: Insider Fast -- **StatusCode** Result code of the event (success, cancellation, failure code HResult) -- **TimestampTokenCertThumbprint** The thumbprint of the encoded timestamp token. -- **TimestampTokenId** The time this was created. It is encoded in a timestamp blob and will be zero if the token is malformed. -- **UpdateId** The update ID for a specific piece of content. -- **ValidityWindowInDays** The validity window that's in effect when verifying the timestamp. - - -## Surface events - -### Microsoft.Surface.Battery.Prod.BatteryInfoEvent - -This event includes the hardware level data about battery performance. The data collected with this event is used to help keep Windows products and services performing properly. - -The following fields are available: - -- **batteryData** Hardware level data about battery performance. -- **batteryData.data()** Battery performance data. -- **BatteryDataSize:** Size of the battery performance data. -- **batteryInfo.data()** Battery performance data. -- **BatteryInfoSize:** Battery performance data. -- **pszBatteryDataXml** Battery performance data. -- **szBatteryInfo** Battery performance data. - - -### Microsoft.Surface.Battery.Prod.BatteryInfoEventV2_BPM - -This event includes the hardware level data about battery performance. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **BPMCurrentlyEngaged** Instantaneous snapshot if BPM is engaged on device. -- **BPMExitCriteria** What is the BPM exit criteria - 20%SOC or 50%SOC? -- **BPMHvtCountA** Current HVT count for BPM counter A. -- **BPMHvtCountB** Current HVT count for BPM counter B. -- **bpmOptOutLifetimeCount** BPM OptOut Lifetime Count. -- **BPMRsocBucketsHighTemp_Values** Time in temperature range 46°C -60°C and in the following true RSOC ranges: 0%-49%; 50%-79%; 80%-89%; 90%-94%; 95%-100%. -- **BPMRsocBucketsLowTemp_Values** Time in temperature range 0°C -20°C and in the following true RSOC ranges: 0%-49%; 50%-79%; 80%-89%; 90%-94%; 95%-100%. -- **BPMRsocBucketsMediumHighTemp_Values** Time in temperature range 36°C -45°C and in the following true RSOC ranges: 0%-49%; 50%-79%; 80%-89%; 90%-94%; 95%-100%. -- **BPMRsocBucketsMediumLowTemp_Values** Time in temperature range 21°C-35°C and in the following true RSOC ranges: 0%-49%; 50%-79%; 80%-89%; 90%-94%; 95%-100%. -- **BPMTotalEngagedMinutes** Total time that BPM was engaged. -- **BPMTotalEntryEvents** Total number of times entering BPM. -- **ComponentId** Component ID. -- **FwVersion** FW version that created this log. -- **LogClass** Log Class. -- **LogInstance** Log instance within class (1..n). -- **LogVersion** Log MGR version. -- **MCUInstance** Instance id used to identify multiple MCU's in a product. -- **ProductId** Product ID. -- **SeqNum** Sequence Number. -- **TimeStamp** UTC seconds when log was created. -- **Ver** Schema version. - - -### Microsoft.Surface.Battery.Prod.BatteryInfoEventV2_CTT - -This event includes the hardware level data about battery performance. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **BPMKioskModeStartDateInSeconds** First time Battery Limit was turned on. -- **BPMKioskModeTotalEngagedMinutes** Total time Battery Limit was on (SOC value at 50%). -- **ComponentId** Component ID. -- **CTTEqvTimeat35C** Poll time every minute. Add to lifetime counter based on temperature. Only count time above 80% SOC. -- **CTTEqvTimeat35CinBPM** Poll time every minute. Add to lifetime counter based on temperature. Only count time above 55% SOC and when device is in BPM. Round up. -- **CTTMinSOC1day** Rolling 1 day minimum SOC. Value set to 0 initially. -- **CTTMinSOC28day** Rolling 28 day minimum SOC. Value set to 0 initially. -- **CTTMinSOC3day** Rolling 3 day minimum SOC. Value set to 0 initially. -- **CTTMinSOC7day** Rolling 7 day minimum SOC. Value set to 0 initially. -- **CTTStartDateInSeconds** Start date from when device was starting to be used. -- **currentAuthenticationState** Current Authentication State. -- **FwVersion** FW version that created this log. -- **LogClass** LOG CLASS. -- **LogInstance** Log instance within class (1..n). -- **LogVersion** LOG MGR VERSION. -- **MCUInstance** Instance id used to identify multiple MCU's in a product. -- **newSnFruUpdateCount** New Sn FRU Update Count. -- **newSnUpdateCount** New Sn Update Count. -- **ProductId** Product ID. -- **ProtectionPolicy** Battery limit engaged. True (0 False). -- **SeqNum** Sequence Number. -- **TimeStamp** UTC seconds when log was created. -- **Ver** Schema version. -- **VoltageOptimization** Current CTT reduction in mV. - - -### Microsoft.Surface.Battery.Prod.BatteryInfoEventV2_GG - -This event includes the hardware level data about battery performance. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **cbTimeCell_Values** cb time for different cells. -- **ComponentId** Component ID. -- **cycleCount** Cycle Count. -- **deltaVoltage** Delta voltage. -- **eocChargeVoltage_Values** EOC Charge voltage values. -- **fullChargeCapacity** Full Charge Capacity. -- **FwVersion** FW version that created this log. -- **lastCovEvent** Last Cov event. -- **lastCuvEvent** Last Cuv event. -- **LogClass** LOG_CLASS. -- **LogInstance** Log instance within class (1..n). -- **LogVersion** LOG_MGR_VERSION. -- **manufacturerName** Manufacturer name. -- **maxChargeCurrent** Max charge current. -- **maxDeltaCellVoltage** Max delta cell voltage. -- **maxDischargeCurrent** Max discharge current. -- **maxTempCell** Max temp cell. -- **maxVoltage_Values** Max voltage values. -- **MCUInstance** Instance id used to identify multiple MCU's in a product. -- **minTempCell** Min temp cell. -- **minVoltage_Values** Min voltage values. -- **numberOfCovEvents** Number of Cov events. -- **numberOfCuvEvents** Number of Cuv events. -- **numberOfOCD1Events** Number of OCD1 events. -- **numberOfOCD2Events** Number of OCD2 events. -- **numberOfQmaxUpdates** Number of Qmax updates. -- **numberOfRaUpdates** Number of Ra updates. -- **numberOfShutdowns** Number of shutdowns. -- **pfStatus_Values** pf status values. -- **ProductId** Product ID. -- **qmax_Values** Qmax values for different cells. -- **SeqNum** Sequence Number. -- **TimeStamp** UTC seconds when log was created. -- **Ver** Schema version. - - -### Microsoft.Surface.Battery.Prod.BatteryInfoEventV2_GGExt - -This event includes the hardware level data about battery performance. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **avgCurrLastRun** Average current last run. -- **avgPowLastRun** Average power last run. -- **batteryMSPN** BatteryMSPN -- **batteryMSSN** BatteryMSSN. -- **cell0Ra3** Cell0Ra3. -- **cell1Ra3** Cell1Ra3. -- **cell2Ra3** Cell2Ra3. -- **cell3Ra3** Cell3Ra3. -- **ComponentId** Component ID. -- **currentAtEoc** Current at Eoc. -- **firstPFstatusA** First PF status-A. -- **firstPFstatusB** First PF status-B. -- **firstPFstatusC** First PF status-C. -- **firstPFstatusD** First PF status-D. -- **FwVersion** FW version that created this log. -- **lastQmaxUpdate** Last Qmax update. -- **lastRaDisable** Last Ra disable. -- **lastRaUpdate** Last Ra update. -- **lastValidChargeTerm** Last valid charge term. -- **LogClass** LOG CLASS. -- **LogInstance** Log instance within class (1..n). -- **LogVersion** LOG MGR VERSION. -- **maxAvgCurrLastRun** Max average current last run. -- **maxAvgPowLastRun** Max average power last run. -- **MCUInstance** Instance id used to identify multiple MCU's in a product. -- **mfgInfoBlockB01** MFG info Block B01. -- **mfgInfoBlockB02** MFG info Block B02. -- **mfgInfoBlockB03** MFG info Block B03. -- **mfgInfoBlockB04** MFG info Block B04. -- **numOfRaDisable** Number of Ra disable. -- **numOfValidChargeTerm** Number of valid charge term. -- **ProductId** Product ID. -- **qmaxCycleCount** Qmax cycle count. -- **SeqNum** Sequence Number. -- **stateOfHealthEnergy** State of health energy. -- **stateOfHealthFcc** State of health Fcc. -- **stateOfHealthPercent** State of health percent. -- **TimeStamp** UTC seconds when log was created. -- **totalFwRuntime** Total FW runtime. -- **updateStatus** Update status. -- **Ver** Schema version. - - -### Microsoft.Surface.Health.Binary.Prod.McuHealthLog - -This event collects information to keep track of health indicator of the built-in micro controller. For example, the number of abnormal shutdowns due to power issues during boot sequence, type of display panel attached to base, thermal indicator, throttling data in hardware etc. The data collected with this event is used to help keep Windows secure and performing properly. - -The following fields are available: - -- **CUtility::GetTargetNameA(Target)** Sub component name. -- **HealthLog** Health indicator log. -- **healthLogSize** 4KB. -- **productId** Identifier for product model. - - -## System reset events - -### Microsoft.Windows.SysReset.FlightUninstallCancel - -This event indicates the customer has cancelled uninstallation of Windows. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - - - -### Microsoft.Windows.SysReset.FlightUninstallError - -This event sends an error code when the Windows uninstallation fails. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - -The following fields are available: - -- **ErrorCode** Error code for uninstallation failure. - - -### Microsoft.Windows.SysReset.FlightUninstallReboot - -This event is sent to signal an upcoming reboot during uninstallation of Windows. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - - - -### Microsoft.Windows.SysReset.FlightUninstallStart - -This event indicates that the Windows uninstallation has started. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - - - -### Microsoft.Windows.SysReset.FlightUninstallUnavailable - -This event sends diagnostic data when the Windows uninstallation is not available. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - -The following fields are available: - -- **AddedProfiles** Indicates that new user profiles have been created since the flight was installed. -- **MissingExternalStorage** Indicates that the external storage used to install the flight is not available. -- **MissingInfra** Indicates that uninstall resources are missing. -- **MovedProfiles** Indicates that the user profile has been moved since the flight was installed. - - -### Microsoft.Windows.SysReset.HasPendingActions - -This event is sent when users have actions that will block the uninstall of the latest quality update. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - - - -### Microsoft.Windows.SysReset.IndicateLCUWasUninstalled - -This event is sent when the registry indicates that the latest cumulative Windows update package has finished uninstalling. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - -The following fields are available: - -- **errorCode** The error code if there was a failure during uninstallation of the latest cumulative Windows update package. - - -### Microsoft.Windows.SysReset.LCUUninstall - -This event is sent when the latest cumulative Windows update was uninstalled on a device. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - -The following fields are available: - -- **errorCode** An error that occurred while the Windows update package was being uninstalled. -- **packageName** The name of the Windows update package that is being uninstalled. -- **removalTime** The amount of time it took to uninstall the Windows update package. - - -### Microsoft.Windows.SysReset.PBRBlockedByPolicy - -This event is sent when a push-button reset operation is blocked by the System Administrator. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - -The following fields are available: - -- **PBRBlocked** Reason the push-button reset operation was blocked. -- **PBRType** The type of push-button reset operation that was blocked. - - -### Microsoft.Windows.SysReset.PBREngineInitFailed - -This event signals a failed handoff between two recovery binaries. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - -The following fields are available: - -- **Operation** Legacy customer scenario. - - -### Microsoft.Windows.SysReset.PBREngineInitSucceed - -This event signals successful handoff between two recovery binaries. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - -The following fields are available: - -- **Operation** Legacy customer scenario. - - -### Microsoft.Windows.SysReset.PBRFailedOffline - -This event reports the error code when recovery fails. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - -The following fields are available: - -- **HRESULT** Error code for the failure. -- **PBRType** The recovery scenario. -- **SessionID** The unique ID for the recovery session. - - -### Microsoft.Windows.SystemReset.EsimPresentCheck - -This event is sent when a device is checked to see whether it has an embedded SIM (eSIM). The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - -The following fields are available: - -- **errorCode** Any error that occurred while checking for the presence of an embedded SIM. -- **esimPresent** Indicates whether an embedded SIM is present on the device. -- **sessionID** The ID of this session. - - -### Microsoft.Windows.SystemReset.PBRCorruptionRepairOption - -This event sends corruption repair diagnostic data when the PBRCorruptionRepairOption encounters a corruption error. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - -The following fields are available: - -- **cbsSessionOption** The corruption repair configuration. -- **errorCode** The error code encountered. -- **meteredConnection** Indicates whether the device is connected to a metered network (wired or WiFi). -- **sessionID** The globally unique identifier (GUID) for the session. - - -### Microsoft.Windows.SystemReset.RepairNeeded - -This event provides information about whether a system reset needs repair. The data collected with this event is used to keep Windows performing properly and helps with tracking the health of recovery and OSUninstall scenarios. - -The following fields are available: - -- **repairNeeded** Indicates whether there was corruption in the system reset which needs repair. -- **sessionID** The ID of this push-button reset session. - - -## UEFI events - -### Microsoft.Windows.UEFI.ESRT - -This event sends basic data during boot about the firmware loaded or recently installed on the machine. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **DriverFirmwareFilename** The firmware file name reported by the device hardware key. -- **DriverFirmwarePolicy** The optional version update policy value. -- **DriverFirmwareStatus** The firmware status reported by the device hardware key. -- **DriverFirmwareVersion** The firmware version reported by the device hardware key. -- **FirmwareId** The UEFI (Unified Extensible Firmware Interface) identifier. -- **FirmwareLastAttemptStatus** The reported status of the most recent firmware installation attempt, as reported by the EFI System Resource Table (ESRT). -- **FirmwareLastAttemptVersion** The version of the most recent attempted firmware installation, as reported by the EFI System Resource Table (ESRT). -- **FirmwareType** The UEFI (Unified Extensible Firmware Interface) type. -- **FirmwareVersion** The UEFI (Unified Extensible Firmware Interface) version as reported by the EFI System Resource Table (ESRT). -- **InitiateUpdate** Indicates whether the system is ready to initiate an update. -- **LastAttemptDate** The date of the most recent attempted firmware installation. -- **LastAttemptStatus** The result of the most recent attempted firmware installation. -- **LastAttemptVersion** The version of the most recent attempted firmware installation. -- **LowestSupportedFirmwareVersion** The oldest (lowest) version of firmware supported. -- **MaxRetryCount** The maximum number of retries, defined by the firmware class key. -- **RetryCount** The number of attempted installations (retries), reported by the driver software key. -- **Status** The status returned to the PnP (Plug-and-Play) manager. -- **UpdateAttempted** Indicates if installation of the current update has been attempted before. - - -## Update Assistant events - -### Microsoft.Windows.QualityUpdateAssistant.Applicability - -This event sends basic info on whether the device should be updated to the latest cumulative update. The data collected with this event is used to help keep Windows up to date and secure. - -The following fields are available: - -- **CV** Correlation vector. -- **dayspendingrebootafterfu** Number of days that have elapsed since the device reached ready to reboot for a Feature Update that is still actively pending reboot. -- **ExecutionRequestId** Identifier of the Execution Request that launched the QualityUpdateAssistant process. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **KBNumber** KBNumber of the update being installed. -- **PackageVersion** Current package version of quality update assistant. -- **Reason** Provides information on reasons why the update is not applicable to the device. -- **Result** Applicability check for quality update assistant. - - -### Microsoft.Windows.QualityUpdateAssistant.DeviceReadinessCheck - -This event sends basic info on whether the device is ready to download the latest cumulative update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **ExecutionRequestId** Identifier of the Execution Request that launched the QualityUpdateAssistant process. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **KBNumber** KBNumber of the update being installed. -- **PackageVersion** Current package version of quality update assistant. -- **Reason** Indicates why the device did not pass the readiness check. -- **Result** Device readiness check for quality update assistant. - - -### Microsoft.Windows.QualityUpdateAssistant.Download - -This event sends basic info when download of the latest cumulative update begins. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **DODownloadHResult** Result code from Delivery Optimization when used to download the quality update. -- **DownloadMode** Indicates how the quality update was downloaded. -- **ExecutionRequestId** Identifier of the Execution Request that launched the QualityUpdateAssistant process. -- **GlobalEventCounter** Client side counter that indicates ordering of events sent by this device. -- **HttpsDownloadHResult** Result code when HTTPS is used to download the quality update. -- **KBNumber** KBNumber of the update being installed. -- **PackageVersion** Current package version of quality update assistant. -- **QualityUpdateDeviceHasMinimumUptime** Indicates whether the device has the minimum uptime required to install a quality update. -- **Result** Download of latest cumulative update payload. -- **Scenario** Indicates if the installation step succeeded or failed. - - -### Microsoft.Windows.QualityUpdateAssistant.Install - -This event sends basic info on the result of the installation of the latest cumulative update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **DismInstallHResult** Internal result code from DISM when used to install the quality update. -- **ExecutionRequestId** Identifier of the Execution Request that launched the QualityUpdateAssistant process. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this device. -- **InstallMode** Indicates which installation method was used to attempt the install of the quality update. -- **KBNumber** KBNumber of the update being installed. -- **launchretrycounter** Count of the number of times the install has been retried in the event of a non-successful installation attempt. -- **PackageVersion** Current package version of quality update assistant. -- **QualityUpdateDismErrorCode** Error code returned when DISM is used to install the quality update. -- **QualityUpdatePendingRebootAfterInstallStage** Indicates if the device is pending reboot after install is complete. -- **QualityUpdateSecondsInstallStage** Time spent installing the quality update. -- **QualityUpdateWusaErrorCode** Error code returned when WUSA is used to install the quality update. -- **Result** Install of latest cumulative update payload. -- **Scenario** Indicates if the installation step succeeded or failed. -- **WusaInstallHResult** Internal result code from WUSA when used to install the quality update. - - -### Microsoft.Windows.Shell.EM.EMCompleted - -Event that tracks the effectiveness of an operation to mitigate an issue on devices that meet certain requirements. - -The following fields are available: - -- **cleanUpScheduledTaskHR** The result of the operation to clean up the scheduled task the launched the operation. -- **eulaHashHR** The result of the operation to generate a hash of the EULA file that's currently on-disk. -- **mitigationHR** The result of the operation to take corrective action on a device that's impacted. -- **mitigationResult** The enumeration value representing the action that was taken on the device. -- **mitigationResultReason** The string value representing the action that was taken on the device. -- **mitigationSuccessWriteHR** The result of writing the success value to the registry. -- **region** The device's default region at the time of execution. -- **windowsVersionString** The version of Windows that was computed at the time of execution. - - -### Microsoft.Windows.UpdateAssistantApp.UpdateAssistantCompatCheckResult - -This event provides the result of running the compatibility check for update assistant. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **CV** The correlation vector. -- **GlobalEventCounter** The global event counter for all telemetry on the device. -- **UpdateAssistantCompatCheckResultOutput** Output of compatibility check for update assistant. -- **UpdateAssistantVersion** Current package version of UpdateAssistant. - - -### Microsoft.Windows.UpdateAssistantApp.UpdateAssistantDeviceInformation - -This event provides basic information about the device where update assistant was run. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **CV** The correlation vector. -- **GlobalEventCounter** The global event counter for all telemetry on the device. -- **UpdateAssistantAppFilePath** Path to Update Assistant app. -- **UpdateAssistantDeviceId** Device Id of the Update Assistant Candidate Device. -- **UpdateAssistantExeName** Exe name running as Update Assistant. -- **UpdateAssistantExternalId** External Id of the Update Assistant Candidate Device. -- **UpdateAssistantIsDeviceCloverTrail** True/False is the device clovertrail. -- **UpdateAssistantIsPushing** True if the update is pushing to the device. -- **UpdateAssistantMachineId** Machine Id of the Update Assistant Candidate Device. -- **UpdateAssistantOsVersion** Update Assistant OS Version. -- **UpdateAssistantPartnerId** Partner Id for Assistant application. -- **UpdateAssistantReportPath** Path to report for Update Assistant. -- **UpdateAssistantStartTime** Start time for UpdateAssistant. -- **UpdateAssistantTargetOSVersion** Update Assistant Target OS Version. -- **UpdateAssistantUiType** The type of UI whether default or OOBE. -- **UpdateAssistantVersion** Current package version of UpdateAssistant. -- **UpdateAssistantVersionInfo** Information about Update Assistant application. - - -### Microsoft.Windows.UpdateAssistantApp.UpdateAssistantEULAProperty - -This event is set to true at the start of AcceptEULA. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **CV** The correlation vector. -- **GlobalEventCounter** The global event counter for all telemetry on the device. -- **UpdateAssistantEULAPropertyGeoId** Geo Id used to show EULA. -- **UpdateAssistantEULAPropertyRegion** Region used to show EULA. -- **UpdateAssistantVersion** Current package version of UpdateAssistant. - - -### Microsoft.Windows.UpdateAssistantApp.UpdateAssistantInteractive - -An user action such as button click happens. - -The following fields are available: - -- **CV** The correlation vector. -- **GlobalEventCounter** The global event counter for all telemetry on the device. -- **UpdateAssistantInteractiveObjective** The objective of the action performed. -- **UpdateAssistantInteractiveUiAction** The action performed through UI. -- **UpdateAssistantVersion** Current package version of Update Assistant. - - -### Microsoft.Windows.UpdateAssistantApp.UpdateAssistantPostInstallDetails - -Information pertaining to post install phase of Update Assistant. - -The following fields are available: - -- **CV** The correlation vector. -- **GlobalEventCounter** The global event counter for all telemetry on the device. -- **UpdateAssistantPostInstallCV** Correlation vector for update assistant post install. -- **UpdateAssistantPostInstallUpgradeClientId** Client id post install. -- **UpdateAssistantPostInstallUserSignature** User signature of install. -- **UpdateAssistantVersion** Current package version of Update Assistant. - - -### Microsoft.Windows.UpdateAssistantApp.UpdateAssistantStartState - -Will mark the start of an Update Assistant State. - -The following fields are available: - -- **CV** The correlation vector. -- **GlobalEventCounter** The global event counter for all telemetry on the device. -- **UpdateAssistantStateAcceptEULA** True at the start of AcceptEULA. -- **UpdateAssistantStateCheckingCompat** True at the start of Checking Compat -- **UpdateAssistantStateCheckingUpgrade** True at the start of CheckingUpgrade. -- **UpdateAssistantStateConfirmUninstall** True at the start of the state Confirm Uninstall. -- **UpdateAssistantStateDownloading** True at the start Downloading. -- **UpdateAssistantStateInitializingApplication** True at the start of the state InitializingApplication. -- **UpdateAssistantStateInitializingStates** True at the start of InitializingStates. -- **UpdateAssistantStateInstalling** True at the start of Installing. -- **UpdateAssistantStatePerformRestart** True at the start of PerformRestart. -- **UpdateAssistantStatePostInstall** True at the start of PostInstall. -- **UpdateAssistantStateShowingUpdate** True at the start of Showing Update. -- **UpdateAssistantVersion** Current package version of UpdateAssistant. - - -### Microsoft.Windows.UpdateAssistantApp.UpdateAssistantStateGeneralErrorDetails - -Details about errors of current state. - -The following fields are available: - -- **CV** The correlation vector. -- **GlobalEventCounter** The global event counter for all telemetry on the device. -- **UpdateAssistantGeneralErrorHResult** HResult of current state. -- **UpdateAssistantGeneralErrorOriginalState** State name of current state. -- **UpdateAssistantVersion** Current package version of Update Assistant. - - -### Microsoft.Windows.UpdateAssistantApp.UpdateAssistantUserActionDetails - -This event provides details about user action. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **CV** The correlation vector. -- **GlobalEventCounter** The global event counter for all telemetry on the device. -- **UpdateAssistantUserActionExitingState** Exiting state name user performed action on. -- **UpdateAssistantUserActionHResult** HRESULT of user action. -- **UpdateAssistantUserActionState** State name user performed action on. -- **UpdateAssistantVersion** Current package version of UpdateAssistant. - - -### Microsoft.Windows.UpdateAssistantDwnldr.UpdateAssistantDownloadDetails - -Details about the Update Assistant ESD download. - -The following fields are available: - -- **CV** The correlation vector. -- **GlobalEventCounter** The counter for all telemetry on the device. -- **UpdateAssistantDownloadCancelled** True when the ESD download is cancelled. -- **UpdateAssistantDownloadDownloadTotalBytes** The total size in bytes of the download. -- **UpdateAssistantDownloadEditionMismatch** True if downloaded ESD doesn't match edition. -- **UpdateAssistantDownloadESDEncrypted** True if ESD is encrypted. -- **UpdateAssistantDownloadIs10s** True if ESD is 10s. -- **UpdateAssistantDownloadMessage** Message from a completed or failed download. -- **UpdateAssistantDownloadMsgSize** Size of the download. -- **UpdateAssistantDownloadNEdition** True if ESD is N edition. -- **UpdateAssistantDownloadPath** Full path to the download. -- **UpdateAssistantDownloadPathSize** Size of the path. -- **UpdateAssistantDownloadProductsXml** Full path of products xml. -- **UpdateAssistantDownloadTargetEdition** The targeted edition for the download. -- **UpdateAssistantDownloadTargetLanguage** The targeted language for the download. -- **UpdateAssistantDownloadUseCatalog** True if update assistant is using catalog. -- **UpdateAssistantVersion** Current package version of Update Assistant. - - -### Microsoft.Windows.UpdateHealthTools.ExpediteBlocked - -This event indicates that an update detection has occurred and the targeted install has been blocked. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** A correlation vector. -- **ExpeditePolicyId** The policy id of the expedite request. -- **ExpediteUpdaterOfferedUpdateId** An Update Id of the LCU expected to be expedited -- **ExpediteUpdatesInProgress** A list of update IDs in progress. -- **ExpediteUsoCorrelationVector** The correlation vector for the current USO session. -- **ExpediteUsoLastError** The last error returned by USO -- **GlobalEventCounter** Counts the number of events for this provider. -- **PackageVersion** The package version of the label. - - -### Microsoft.Windows.UpdateHealthTools.ExpediteCompleted - -This event indicates that the update has been completed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** A correlation vector. -- **ExpeditePolicyId** The policy Id of the expedite request. -- **ExpediteUpdaterOfferedUpdateId** The Update Id of the LCU expected to be expedited. -- **ExpediteUpdatesInProgress** The list of update IDs in progress. -- **ExpediteUsoCorrelationVector** The correlation vector for the current USO session. -- **ExpediteUsoLastError** The last error returned by USO. -- **GlobalEventCounter** Counts the number of events for this provider. -- **PackageVersion** The package version of the label. - - -### Microsoft.Windows.UpdateHealthTools.ExpediteDetectionStarted - -This event indicates that the detection phase of USO has started. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **ExpeditePolicyId** The policy ID of the expedite request. -- **ExpediteUpdaterOfferedUpdateId** UpdateId of the LCU expected to be expedited. -- **ExpediteUpdatesInProgress** List of update IDs in progress. -- **ExpediteUsoCorrelationVector** The correlation vector for the current USO session. -- **ExpediteUsoLastError** The last error returned by USO. -- **GlobalEventCounter** Counts the number of events for this provider. -- **PackageVersion** The package version label. - - -### Microsoft.Windows.UpdateHealthTools.ExpediteDownloadStarted - -This event indicates that the download phase of USO has started. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** A correlation vector. -- **ExpeditePolicyId** The policy Id of the expedite request. -- **ExpediteUpdaterOfferedUpdateId** Update Id of the LCU expected to be expedited. -- **ExpediteUpdatesInProgress** A list of update IDs in progress. -- **ExpediteUsoCorrelationVector** The correlation vector for the current USO session. -- **ExpediteUsoLastError** The last error returned by USO. -- **GlobalEventCounter** Counts the number of events for this provider. -- **PackageVersion** The package version label. - - -### Microsoft.Windows.UpdateHealthTools.ExpediteInstallStarted - -This event indicates that the install phase of USO has started. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **ExpeditePolicyId** The policy ID of the expedite request. -- **ExpediteUpdaterOfferedUpdateId** UpdateId of the LCU expected to be expedited. -- **ExpediteUpdatesInProgress** List of update IDs in progress. -- **ExpediteUsoCorrelationVector** The correlation vector for the current USO session. -- **ExpediteUsoLastError** The last error returned by USO. -- **GlobalEventCounter** Counts the number of events for this provider. -- **PackageVersion** The package version label. - - -### Microsoft.Windows.UpdateHealthTools.ExpediteUpdaterAlreadyExpectedUbr - -This event indicates that the device is already on the expected UBR. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **ExpediteErrorBitMap** Bit map value for any error code. -- **ExpeditePolicyId** The policy id of the expedite request. -- **ExpediteResult** Boolean value for success or failure. -- **ExpediteUpdaterCurrentUbr** The ubr of the device. -- **ExpediteUpdaterExpectedUbr** The expected ubr of the device. -- **ExpediteUpdaterOfferedUpdateId** Update Id of the LCU expected to be expedited. -- **ExpediteUpdaterPolicyRestoreResult** HRESULT of the policy restore. -- **GlobalEventCounter** Counts the number of events for this provider. -- **PackageVersion** The package version label. - - -### Microsoft.Windows.UpdateHealthTools.ExpediteUpdaterFailedToUpdateToExpectedUbr - -This event indicates the expected UBR of the device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **ExpediteErrorBitMap** Bit map value for any error code. -- **ExpeditePolicyId** The policy ID of the expedite request. -- **ExpediteResult** Boolean value for success or failure. -- **ExpediteUpdaterOfferedUpdateId** UpdateId of the LCU expected to be expedited. -- **ExpediteUpdaterPolicyRestoreResult** HRESULT of the policy restore. -- **GlobalEventCounter** Counts the number of events for this provider. -- **PackageVersion** The package version label. - - -### Microsoft.Windows.UpdateHealthTools.ExpediteUpdaterRebootComplete - -This event indicates that the expedite update is completed with reboot. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **ExpeditePolicyId** The policy id of the expedite request. -- **ExpediteResult** Boolean value for success or failure. -- **ExpediteUpdaterCurrentUbr** The ubr of the device. -- **ExpediteUpdaterOfferedUpdateId** Update Id of the LCU expected to be expedited. -- **ExpediteUpdaterPolicyRestoreResult** HRESULT of the policy restore. -- **ExpediteUpdatesInProgress** Comma delimited list of updates in progress. -- **ExpediteUsoCorrelationVector** The current USO correlation vector as surfaced from the USO store. -- **ExpediteUsoLastError** The last error as surfaced from the USO store. -- **GlobalEventCounter** Counts the number of events for this provider. -- **PackageVersion** The package version label. - - -### Microsoft.Windows.UpdateHealthTools.ExpediteUpdaterRebootRequired - -This event indicates that the device has finished servicing and a reboot is required. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **ExpeditePolicyId** The policy ID of the expedite request. -- **ExpediteUpdaterOfferedUpdateId** UpdateId of the LCU expected to be expedited. -- **ExpediteUpdatesInProgress** Comma delimited list of update IDs currently being offered. -- **ExpediteUsoCorrelationVector** The correlation vector from the USO session. -- **ExpediteUsoLastError** Last HResult from the current USO session. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. -- **PackageVersion** Current package version of UpdateHealthTools. - - -### Microsoft.Windows.UpdateHealthTools.ExpediteUpdaterScanCompleted - -This event sends results of the expedite USO scan. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **ExpediteCbsServicingInProgressStatus** True if servicing is in progress in cbs for the device. -- **ExpediteErrorBitMap** Bit map value for any error code. -- **ExpeditePolicyId** The policy ID of the expedite request. -- **ExpediteResult** Boolean value for success or failure. -- **ExpediteScheduledTaskCreated** Indicates whether the scheduled task was created (true/false). -- **ExpediteScheduledTaskHresult** HRESULT for scheduled task creation. -- **ExpediteUpdaterCurrentUbr** The UBR of the device. -- **ExpediteUpdaterExpectedUbr** The expected UBR of the device. -- **ExpediteUpdaterMonitorResult** HRESULT of the USO monitoring. -- **ExpediteUpdaterOfferedUpdateId** UpdateId of the LCU expected to be expedited. -- **ExpediteUpdaterScanResult** HRESULT of the expedite USO scan. -- **ExpediteUpdaterUsoResult** HRESULT of the USO initialization and resume API calls. -- **ExpediteUsoCorrelationVector** The correlation vector for the current USO session. -- **ExpediteUsoLastError** The last error returned by USO. -- **GlobalEventCounter** Counts the number of events for this provider. -- **PackageVersion** The package version label. -- **UsoFrequencyKey** Indicates whether the USO frequency key was found on the device (true/false). - - -### Microsoft.Windows.UpdateHealthTools.ExpediteUpdaterScanStarted - -Sends telemetry that USO scan has been started. - -The following fields are available: - -- **CV** Correlation vector. -- **ExpediteErrorBitMap** Bit map value for any error code. -- **ExpediteHoursOfUpTimeSincePolicy** The number of hours the device has been active since it received a policy. -- **ExpeditePolicyId** The policy Id of the expedite request. -- **ExpeditePollCount** Counts the number of polls. -- **ExpediteResult** Boolean value for success or failure. -- **ExpediteUpdaterCurrentUbr** The UBR of the device. -- **ExpediteUpdaterExpectedUbr** The expected UBR of the device. -- **ExpediteUpdaterOfferedUpdateId** UpdateId of the LCU expected to be expedited. -- **ExpediteUpdaterUsoIntiatedScan** True when USO scan has been called. -- **ExpediteUsoCorrelationVector** The correlation vector for the current USO session. -- **ExpediteUsoLastError** The last error returned by USO. -- **GlobalEventCounter** Counts the number of events for this provider. -- **PackageVersion** The package version label. -- **UsoFrequencyKey** Indicates whether the USO frequency key was found on the device (true/false). - - -### Microsoft.Windows.UpdateHealthTools.UnifiedInstallerEnd - -This event indicates that the unified installer has completed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** The event counter for telemetry events on the device for currency tools. -- **PackageVersion** The package version label for currency tools. -- **UnifiedInstallerInstallResult** The final result code for the unified installer. -- **UnifiedInstallerPlatformResult** The result code from determination of the platform type. -- **UnifiedInstallerPlatformType** The enum indicating the platform type. - - -### Microsoft.Windows.UpdateHealthTools.UnifiedInstallerStart - -This event indicates that the installation has started for the unified installer. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** The correlation vector. -- **GlobalEventCounter** Counts the events at the global level for telemetry. -- **PackageVersion** The package version for currency tools. -- **UnifiedInstallerDeviceAADJoinedHresult** The result code after checking if device is AAD joined. -- **UnifiedInstallerDeviceInDssPolicy** Boolean indicating whether the device is found to be in a DSS policy. -- **UnifiedInstallerDeviceInDssPolicyHresult** The result code for checking whether the device is found to be in a DSS policy. -- **UnifiedInstallerDeviceIsAADJoined** Boolean indicating whether a device is AADJ. -- **UnifiedInstallerDeviceIsAdJoined** Boolean indicating whether a device is AD joined. -- **UnifiedInstallerDeviceIsAdJoinedHresult** The result code for checking whether a device is AD joined. -- **UnifiedInstallerDeviceIsEducationSku** Boolean indicating whether a device is Education SKU. -- **UnifiedInstallerDeviceIsEducationSkuHresult** The result code from checking whether a device is Education SKU. -- **UnifiedInstallerDeviceIsEnterpriseSku** Boolean indicating whether a device is Enterprise SKU. -- **UnifiedInstallerDeviceIsEnterpriseSkuHresult** The result code from checking whether a device is Enterprise SKU. -- **UnifiedInstallerDeviceIsHomeSku** Boolean indicating whether a device is Home SKU. -- **UnifiedInstallerDeviceIsHomeSkuHresult** The result code from checking whether device is Home SKU. -- **UnifiedInstallerDeviceIsMdmManaged** Boolean indicating whether a device is MDM managed. -- **UnifiedInstallerDeviceIsMdmManagedHresult** The result code from checking whether a device is MDM managed. -- **UnifiedInstallerDeviceIsProSku** Boolean indicating whether a device is Pro SKU. -- **UnifiedInstallerDeviceIsProSkuHresult** The result code from checking whether a device is Pro SKU. -- **UnifiedInstallerDeviceIsSccmManaged** Boolean indicating whether a device is managed by Configuration Manager. -- **UnifiedInstallerDeviceIsSccmManagedHresult** The result code from checking whether a device is managed by Configuration Manager. -- **UnifiedInstallerDeviceWufbManaged** Boolean indicating whether a device is managed by Windows Update for Business. -- **UnifiedInstallerDeviceWufbManagedHresult** The result code from checking whether a device is is managed by Windows Update for Business. -- **UnifiedInstallerPlatformResult** The result code from checking what platform type the device is. -- **UnifiedInstallerPlatformType** The enum indicating the type of platform detected. -- **UnifiedInstUnifiedInstallerDeviceIsHomeSkuHresultllerDeviceIsHomeSku** The result code from checking whether a device is Home SKU. - - -### Microsoft.Windows.UpdateHealthTools.UpdateHealthToolsBlobNotificationRetrieved - -This event is sent when a blob notification is received. The data collected with this event is used to help keep Windows up to date and secure. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Counts the number of events for this provider. -- **PackageVersion** The package version of the label. -- **UpdateHealthToolsBlobNotificationNotEmpty** True if the blob notification is not empty. - - -### Microsoft.Windows.UpdateHealthTools.UpdateHealthToolsCachedNotificationRetrieved - -This event is sent when a notification is received. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** A correlation vector. -- **GlobalEventCounter** This is a client side counter that indicates ordering of events sent by the user. -- **PackageVersion** The package version of the label. -- **UpdateHealthToolsBlobNotificationNotEmpty** A boolean that is true if the blob notification has valid content. - - -### Microsoft.Windows.UpdateHealthTools.UpdateHealthToolsDeviceInformationUploaded - -This event is received when the UpdateHealthTools service uploads device information. The data collected with this event is used to help keep Windows secure and 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. -- **UpdateHealthToolsDeviceUbrChanged** 1 if the Ubr just changed, 0 otherwise. -- **UpdateHealthToolsDeviceUri** The URI to be used for push notifications on this device. - - -### Microsoft.Windows.UpdateHealthTools.UpdateHealthToolsDeviceInformationUploadFailed - -This event provides information for device which failed to upload the details. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** Telemetry event counter. -- **PackageVersion** Version label of the package sending telemetry. -- **UpdateHealthToolsEnterpriseActionResult** Result of running the tool expressed as an HRESULT. - - -### Microsoft.Windows.UpdateHealthTools.UpdateHealthToolsPushNotificationCompleted - -This event is received when a push notification has been completed by the UpdateHealthTools service. The data collected with this event is used to help keep Windows secure and 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 UpdateHealthTools. -- **UpdateHealthToolsEnterpriseActionResult** The HRESULT return by the enterprise action. -- **UpdateHealthToolsEnterpriseActionType** Enum describing the type of action requested by the push. - - -### Microsoft.Windows.UpdateHealthTools.UpdateHealthToolsPushNotificationReceived - -This event is received when the UpdateHealthTools service receives a push notification. The data collected with this event is used to help keep Windows secure and 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 UpdateHealthTools. -- **UpdateHealthToolsDeviceUri** The URI to be used for push notifications on this device. -- **UpdateHealthToolsEnterpriseActionType** Enum describing the type of action requested by the push. -- **UpdateHealthToolsPushCurrentChannel** The channel used to receive notification. -- **UpdateHealthToolsPushCurrentRequestId** The request ID for the push. -- **UpdateHealthToolsPushCurrentResults** The results from the push request. -- **UpdateHealthToolsPushCurrentStep** The current step for the push notification. - - -### Microsoft.Windows.UpdateHealthTools.UpdateHealthToolsPushNotificationStatus - -This event is received when there is status on a push notification. The data collected with this event is used to help keep Windows secure and 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 UpdateHealthTools. -- **UpdateHealthToolsDeviceUri** The URI to be used for push notifications on this device. -- **UpdateHealthToolsEnterpriseActionType** Enum describing the type of action requested by the push. -- **UpdateHealthToolsPushCurrentRequestId** The request ID for the push. -- **UpdateHealthToolsPushCurrentResults** The results from the push request. -- **UpdateHealthToolsPushCurrentStep** The current step for the push notification - - -### Microsoft.Windows.UpdateHealthTools.UpdateHealthToolsServiceBlobDocumentDetails - -The event indicates the details about the blob used for update health tools. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** A correlation vector. -- **GlobalEventCounter** This is a client side counter which indicates ordering of events sent by the user. -- **PackageVersion** The package version of the label. -- **UpdateHealthToolsDevicePolicyFileName** The default name of the policy blob file. -- **UpdateHealthToolsDssDeviceApiSegment** The URI segment for reading the DSS device pointer. -- **UpdateHealthToolsDssDeviceId** The AAD ID of the device used to create the device ID hash. -- **UpdateHealthToolsDssDevicePolicyApiSegment** The segment of the device policy API pointer. -- **UpdateHealthToolsDssTenantId** The tenant id of the device used to create the tenant id hash. -- **UpdateHealthToolsHashedDeviceId** The SHA256 hash of the device id. -- **UpdateHealthToolsHashedTenantId** The SHA256 hash of the device tenant id. - - -### Microsoft.Windows.UpdateHealthTools.UpdateHealthToolsServiceBlockedByNoDSSJoin - -The event is sent when the device is not joined to AAD. The data collected with this event is used to help keep Windows up to date and secure. - -The following fields are available: - -- **CV** Correlation vector. -- **GlobalEventCounter** The global event counter counts the total events for the provider. -- **PackageVersion** The version for the current package. -- **UpdateHealthToolsServiceBlockedByNoDSSJoinHr** The result code returned when checking for is managed by Windows Update for Business cloud membership. - - -### Microsoft.Windows.UpdateHealthTools.UpdateHealthToolsServiceIsDSSJoin - -This event is sent when a device has been detected as DSS device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CV** A correlation vector. -- **GlobalEventCounter** This is a client side counter which indicates ordering of events sent by this user. -- **PackageVersion** The package version of the label. - - -### Microsoft.Windows.UpdateHealthTools.UpdateHealthToolsServiceStarted - -This event is sent when the service first starts. It is a heartbeat indicating that the service is available on the device. The data collected with this event is used to help keep Windows secure and 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. - - -## Update events - -### Update360Telemetry.Revert - -This event sends data relating to the Revert phase of updating Windows. The data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CancelRequested** Boolean that indicates whether cancel was requested. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CancelRequested** Boolean indicating whether a cancel was requested. -- **ContainsSafeOSDUPackage** Boolean indicating whether Safe DU packages are part of the payload. -- **DeletedCorruptFiles** Boolean indicating whether corrupt payload was deleted. -- **DownloadComplete** Indicates if the download is complete. -- **DownloadedSizeBundle** Cumulative size (in bytes) of the downloaded bundle content. -- **DownloadedSizeCanonical** Cumulative size (in bytes) of downloaded canonical content. -- **DownloadedSizeDiff** Cumulative size (in bytes) of downloaded diff content. -- **DownloadedSizeExpress** Cumulative size (in bytes) of downloaded express content. -- **DownloadedSizePSFX** Cumulative size (in bytes) of downloaded PSFX content. -- **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. -- **NumberOfHops** Number of intermediate packages used to reach target version. -- **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. -- **PackageCountTotalBundle** Total number of bundle packages. -- **PackageCountTotalCanonical** Total number of canonical packages. -- **PackageCountTotalDiff** Total number of diff packages. -- **PackageCountTotalExpress** Total number of express packages. -- **PackageCountTotalPSFX** The total number of PSFX 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. -- **PackageSizePSFX** The size of PSFX 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. -- **SandboxTaggedForReserves** The sandbox for reserves. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CancelRequested** Boolean that indicates whether a cancel was requested. -- **CanonicalRequestedOnError** Indicates if an error caused a reversion to a different type of compressed update (TRUE or FALSE). -- **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.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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CancelRequested** Boolean to indicate whether a cancel was requested. -- **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. -- **UpdatePriority** Indicates the priority that Update Agent is requested to run in for the install phase of an update. - - -### Update360Telemetry.UpdateAgentMerge - -The UpdateAgentMerge event sends data on the merge phase when updating Windows. The data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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. -- **RollbackFailureReason** Indicates the cause of the rollback. -- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate. -- **SessionId** Unique value for each update attempt. -- **UpdateId** Unique ID for each update. -- **UpdateOutputState** A numeric value indicating the state of the update at the time of reboot. - - -### Update360Telemetry.UpdateAgentReboot - -This event sends information indicating that a request has been sent to suspend an update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ErrorCode** The error code returned for the current reboot. -- **FlightId** Unique ID for the flight (test instance version). -- **IsSuspendable** Indicates whether the update has the ability to be suspended and resumed at the time of reboot. When the machine is rebooted and the update is in middle of Predownload or Install and Setup.exe is running, this field is TRUE, if not its FALSE. -- **ObjectId** The unique value for each Update Agent mode. -- **Reason** Indicates the HResult why the machine could not be suspended. If it is successfully suspended, the result is 0. -- **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. -- **UpdateState** Indicates the state of the machine when Suspend is called. For example, Install, Download, Commit. - - -### 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 data collected with this event is used to help keep Windows secure and up to date. - -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. - - -## Update notification events - -### Microsoft.Windows.UpdateNotificationPipeline.UNPCampaignManagerHeartbeat - -This event is sent at the start of the CampaignManager event and is intended to be used as a heartbeat. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **CampaignConfigVersion** Configuration version for the current campaign. -- **CampaignID** Currently campaign that is running on Update Notification Pipeline (UNP). -- **ConfigCatalogVersion** Current catalog version of UNP. -- **ContentVersion** Content version for the current campaign on UNP. -- **CV** Correlation vector. -- **DetectorVersion** Most recently run detector version for the current campaign on UNP. -- **GlobalEventCounter** Client-side counter that indicates the event ordering sent by the user. -- **PackageVersion** Current UNP package version. - - -## Upgrade events - -### FacilitatorTelemetry.DCATDownload - -This event indicates whether devices received additional or critical supplemental content during an OS Upgrade, to help keep Windows up to date and secure. - -The following fields are available: - -- **DownloadSize** Download size of payload. -- **ElapsedTime** Time taken to download payload. -- **MediaFallbackUsed** Used to determine if we used Media CompDBs to figure out package requirements for the upgrade. -- **ResultCode** Result returned by the Facilitator DCAT call. -- **Scenario** Dynamic update scenario (Image DU, or Setup DU). -- **Type** Type of package that was downloaded. -- **UpdateId** The ID of the update that was downloaded. - - -### FacilitatorTelemetry.DUDownload - -This event returns data about the download of supplemental packages critical to upgrading a device to the next version of Windows. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **PackageCategoriesFailed** Lists the categories of packages that failed to download. -- **PackageCategoriesSkipped** Lists the categories of package downloads that were skipped. - - -### FacilitatorTelemetry.InitializeDU - -This event determines whether devices received additional or critical supplemental content during an OS upgrade. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DCATUrl** The Delivery Catalog (DCAT) URL we send the request to. -- **DownloadRequestAttributes** The attributes we send to DCAT. -- **ResultCode** The result returned from the initiation 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. - - -### 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 data collected with this event is used to help keep Windows secure and up to date. - -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 Windows Update scenario, 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. -- **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. - -The following fields are available: - -- **FlightData** Specifies a unique identifier for each group of Windows Insider builds. -- **InstanceId** Retrieves a unique identifier for each instance of a setup session. -- **Operation** Facilitator’s last known operation (scan, download, etc.). -- **ReportId** ID for tying together events stream side. -- **ResultCode** Result returned for the entire setup operation. -- **Scenario** Dynamic Update scenario (Image DU, or Setup DU). -- **ScenarioId** Identifies the update scenario. -- **TargetBranch** Branch of the target OS. -- **TargetBuild** Build of the target OS. - - -### Setup360Telemetry.Setup360MitigationResult - -This event sends data indicating the result of each setup mitigation. The data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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.DetectionFailed - -This event is sent when WaaSMedic fails to apply the named diagnostic. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **diagnostic** Parameter where the diagnostic failed. -- **hResult** Error code from attempting the diagnostic. -- **isDetected** Flag indicating whether the condition was detected. -- **pluginName** Name of the attempted diagnostic. -- **versionString** The version number of the remediation engine. - - -### Microsoft.Windows.WaaSMedic.RemediationFailed - -This event is sent when the WaaS Medic update stack remediation tool fails to apply a described resolution to a problem that is blocking Windows Update from operating correctly on a target device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **diagnostic** Parameter where the resolution failed. -- **hResult** Error code that resulted from attempting the resolution. -- **isRemediated** Indicates whether the condition was remediated. -- **pluginName** Name of the attempted resolution. -- **versionString** Version of the engine. - - -### Microsoft.Windows.WaaSMedic.SummaryEvent - -This event provides the result of the WaaSMedic operation. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **callerApplication** The name of the calling application. -- **capsuleCount** The number of Sediment Pack capsules. -- **capsuleFailureCount** The number of capsule failures. -- **detectionSummary** Result of each applicable detection that was run. -- **featureAssessmentImpact** WaaS Assessment impact for feature updates. -- **hrEngineBlockReason** Indicates the reason for stopping WaaSMedic. -- **hrEngineResult** Error code from the engine operation. -- **hrLastSandboxError** The last error sent by the WaaSMedic sandbox. -- **initSummary** Summary data of the initialization method. -- **isInteractiveMode** The user started a run of WaaSMedic. -- **isManaged** Device is managed for updates. -- **isWUConnected** Device is connected to Windows Update. -- **noMoreActions** No more applicable diagnostics. -- **pluginFailureCount** The number of plugins that have failed. -- **pluginsCount** The number of plugins. -- **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** Relying on backup feature assessment. -- **usingBackupQualityAssessment** Relying on backup quality assessment. -- **usingCachedFeatureAssessment** WaaS Medic run did not get OS build age from the network on the previous run. -- **usingCachedQualityAssessment** WaaS Medic run did not get OS revision age from the network on the previous run. -- **versionString** Version of the WaaSMedic engine. -- **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). - - -### Value - -This event returns data about Mean Time to Failure (MTTF) for Windows devices. It is the primary means of estimating reliability problems in Basic Diagnostic reporting with very strong privacy guarantees. Since Basic Diagnostic reporting does not include system up-time, and since that information is important to ensuring the safe and stable operation of Windows, the data provided by this event provides that data in a manner which does not threaten a user’s privacy. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **Algorithm** The algorithm used to preserve privacy. -- **DPRange** The upper bound of the range being measured. -- **DPValue** The randomized response returned by the client. -- **Epsilon** The level of privacy to be applied. -- **HistType** The histogram type if the algorithm is a histogram algorithm. -- **PertProb** The probability the entry will be Perturbed if the algorithm chosen is “heavy-hitters”. - - -## Windows Error Reporting MTT events - -### Microsoft.Windows.WER.MTT.Denominator - -This event provides a denominator to calculate MTTF (mean-time-to-failure) for crashes and other errors, to help keep Windows up to date. - -The following fields are available: - -- **Value** Standard UTC emitted DP value structure See [Value](#value). - - -## Windows Hardware Error Architecture events - -### WheaProvider.WheaErrorRecord - -This event collects data about common platform hardware error recorded by the Windows Hardware Error Architecture (WHEA) mechanism. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **creatorId** The unique identifier for the entity that created the error record. -- **errorFlags** Any flags set on the error record. -- **notifyType** The unique identifier for the notification mechanism which reported the error to the operating system. -- **partitionId** The unique identifier for the partition on which the hardware error occurred. -- **platformId** The unique identifier for the platform on which the hardware error occurred. -- **record** A collection of binary data containing the full error record. -- **recordId** The identifier of the error record. -- **sectionFlags** The flags for each section recorded in the error record. -- **sectionTypes** The unique identifier that represents the type of sections contained in the error record. -- **severityCount** The severity of each individual section. -- **timeStamp** The error time stamp as recorded in the error record. - - -## Windows Security Center events - -### Microsoft.Windows.Security.WSC.DatastoreMigratedVersion - -This event provides information about the datastore migration and whether it was successful. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **datastoreisvtype** The product category of the datastore. -- **datastoremigrated** The version of the datastore that was migrated. -- **status** The result code of the migration. - - -### Microsoft.Windows.Security.WSC.GetCallerViaWdsp - -This event returns data if the registering product EXE (executable file) does not allow COM (Component Object Model) impersonation. The data collected with this event is used to help keep Windows secure and performing properly. - -The following fields are available: - -- **callerExe** The registering product EXE that does not support COM impersonation. - - -## Windows Store events - -### Microsoft.Windows.StoreAgent.Telemetry.AbortedInstallation - -This event is sent when an installation or update is canceled by a user or the system and is used to help keep Windows Apps up to date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** Number of retry attempts before it was canceled. -- **BundleId** The Item Bundle ID. -- **CategoryId** The Item Category ID. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed before this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Was this requested by a user? -- **IsMandatory** Was this a mandatory update? -- **IsRemediation** Was this a remediation install? -- **IsRestore** Is this automatically restoring a previously acquired product? -- **IsUpdate** Flag indicating if this is an update. -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The product family name of the product being installed. -- **ProductId** The identity of the package or packages being installed. -- **SystemAttemptNumber** The total number of automatic attempts at installation before it was canceled. -- **UserAttemptNumber** The total number of user attempts at installation before it was canceled. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.BeginGetInstalledContentIds - -This event is sent when an inventory of the apps installed is started to determine whether updates for those apps are available. It's used to help keep Windows up-to-date and secure. - - - -### Microsoft.Windows.StoreAgent.Telemetry.BeginUpdateMetadataPrepare - -This event is sent when the Store Agent cache is refreshed with any available package updates. It's used to help keep Windows up-to-date and secure. - - - -### Microsoft.Windows.StoreAgent.Telemetry.CancelInstallation - -This event is sent when an app update or installation is canceled while in interactive mode. This can be canceled by the user or the system. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all package or packages to be downloaded and installed. -- **AttemptNumber** Total number of installation attempts. -- **BundleId** The identity of the Windows Insider build that is associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Was this requested by a user? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this an automatic restore of a previously acquired product? -- **IsUpdate** Is this a product update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of all packages to be downloaded and installed. -- **PreviousHResult** The previous HResult code. -- **PreviousInstallState** Previous installation state before it was canceled. -- **ProductId** The name of the package or packages requested for installation. -- **RelatedCV** Correlation Vector of a previous performed action on this product. -- **SystemAttemptNumber** Total number of automatic attempts to install before it was canceled. -- **UserAttemptNumber** Total number of user attempts to install before it was canceled. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.CompleteInstallOperationRequest - -This event is sent at the end of app installations or updates to help keep Windows up-to-date and secure. - -The following fields are available: - -- **CatalogId** The Store Product ID of the app being installed. -- **HResult** HResult code of the action being performed. -- **IsBundle** Is this a bundle? -- **PackageFamilyName** The name of the package being installed. -- **ProductId** The Store Product ID of the product being installed. -- **SkuId** Specific edition of the item being installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndAcquireLicense - -This event is sent after the license is acquired when a product is being installed. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** Includes a set of package full names for each app that is part of an atomic set. -- **AttemptNumber** The total number of attempts to acquire this product. -- **BundleId** The bundle ID -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** HResult code to show the result of the operation (success/failure). -- **IsBundle** Is this a bundle? -- **IsInteractive** Did the user initiate the installation? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this happening after a device restore? -- **IsUpdate** Is this an update? -- **ParentBundleId** The parent bundle ID (if it's part of a bundle). -- **PFN** Product Family Name of the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The number of attempts by the system to acquire this product. -- **UserAttemptNumber** The number of attempts by the user to acquire this product -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndDownload - -This event is sent after an app is downloaded to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The name of all packages to be downloaded and installed. -- **AttemptNumber** Number of retry attempts before it was canceled. -- **BundleId** The identity of the Windows Insider build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **DownloadSize** The total size of the download. -- **ExtendedHResult** Any extended HResult error codes. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this initiated by the user? -- **IsMandatory** Is this a mandatory installation? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this a restore of a previously acquired product? -- **IsUpdate** Is this an update? -- **ParentBundleId** The parent bundle ID (if it's part of a bundle). -- **PFN** The Product Family Name of the app being download. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The number of attempts by the system to download. -- **UserAttemptNumber** The number of attempts by the user to download. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndFrameworkUpdate - -This event is sent when an app update requires an updated Framework package and the process starts to download it. It is used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed before this operation. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndGetInstalledContentIds - -This event is sent after sending the inventory of the products installed to determine whether updates for those products are available. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed before this operation. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndInstall - -This event is sent after a product has been installed to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **ExtendedHResult** The extended HResult error code. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this an interactive installation? -- **IsMandatory** Is this a mandatory installation? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this automatically restoring a previously acquired product? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** Product Family Name of the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndScanForUpdates - -This event is sent after a scan for product updates to determine if there are packages to install. It's used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IsApplicability** Is this request to only check if there are any applicable packages to install? -- **IsInteractive** Is this user requested? -- **IsOnline** Is the request doing an online check? - - -### Microsoft.Windows.StoreAgent.Telemetry.EndSearchUpdatePackages - -This event is sent after searching for update packages to install. It is used to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndStageUserData - -This event is sent after restoring user data (if any) that needs to be restored following a product install. It is used to keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The name of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **ProductId** The Store Product ID for the product being installed. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of system attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.EndUpdateMetadataPrepare - -This event is sent after a scan for available app updates to help keep Windows up-to-date and secure. - -The following fields are available: - -- **HResult** The result code of the last action performed. - - -### Microsoft.Windows.StoreAgent.Telemetry.FulfillmentComplete - -This event is sent at the end of an app install or update to help keep Windows up-to-date and secure. - -The following fields are available: - -- **CatalogId** The name of the product catalog from which this app was chosen. -- **FailedRetry** Indicates whether the installation or update retry was successful. -- **HResult** The HResult code of the operation. -- **PFN** The Package Family Name of the app that is being installed or updated. -- **ProductId** The product ID of the app that is being updated or installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.FulfillmentInitiate - -This event is sent at the beginning of an app install or update to help keep Windows up-to-date and secure. - -The following fields are available: - -- **CatalogId** The name of the product catalog from which this app was chosen. -- **FulfillmentPluginId** The ID of the plugin needed to install the package type of the product. -- **PFN** The Package Family Name of the app that is being installed or updated. -- **PluginTelemetryData** Diagnostic information specific to the package-type plug-in. -- **ProductId** The product ID of the app that is being updated or installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.InstallOperationRequest - -This event is sent when a product install or update is initiated, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **BundleId** The identity of the build associated with this product. -- **CatalogId** If this product is from a private catalog, the Store Product ID for the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SkuId** Specific edition ID being installed. -- **VolumePath** The disk path of the installation. - - -### Microsoft.Windows.StoreAgent.Telemetry.PauseInstallation - -This event is sent when a product install or update is paused (either by a user or the system), to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The total number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The Product Full Name. -- **PreviousHResult** The result code of the last action performed before this operation. -- **PreviousInstallState** Previous state before the installation or update was paused. -- **ProductId** The Store Product ID for the product being installed. -- **RelatedCV** Correlation Vector of a previous performed action on this product. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.ResumeInstallation - -This event is sent when a product install or update is resumed (either by a user or the system), to help keep Windows up-to-date and secure. - -The following fields are available: - -- **AggregatedPackageFullNames** The names of all packages to be downloaded and installed. -- **AttemptNumber** The number of retry attempts before it was canceled. -- **BundleId** The identity of the build associated with this product. -- **CategoryId** The identity of the package or packages being installed. -- **ClientAppId** The identity of the app that initiated this operation. -- **HResult** The result code of the last action performed before this operation. -- **IsBundle** Is this a bundle? -- **IsInteractive** Is this user requested? -- **IsMandatory** Is this a mandatory update? -- **IsRemediation** Is this repairing a previous installation? -- **IsRestore** Is this restoring previously acquired content? -- **IsUpdate** Is this an update? -- **IsUserRetry** Did the user initiate the retry? -- **ParentBundleId** The product ID of the parent (if this product is part of a bundle). -- **PFN** The name of the package or packages requested for install. -- **PreviousHResult** The previous HResult error code. -- **PreviousInstallState** Previous state before the installation was paused. -- **ProductId** The Store Product ID for the product being installed. -- **RelatedCV** Correlation Vector for the original install before it was resumed. -- **ResumeClientId** The ID of the app that initiated the resume operation. -- **SystemAttemptNumber** The total number of system attempts. -- **UserAttemptNumber** The total number of user attempts. -- **WUContentId** The Windows Update content ID. - - -### Microsoft.Windows.StoreAgent.Telemetry.ResumeOperationRequest - -This event is sent when a product install or update is resumed by a user or on installation retries, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **ProductId** The Store Product ID for the product being installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.SearchForUpdateOperationRequest - -This event is sent when searching for update packages to install, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **CatalogId** The Store Catalog ID for the product being installed. -- **ProductId** The Store Product ID for the product being installed. -- **SkuId** Specfic edition of the app being updated. - - -### Microsoft.Windows.StoreAgent.Telemetry.StateTransition - -Products in the process of being fulfilled (installed or updated) are maintained in a list. This event is sent any time there is a change in a product's fulfillment status (pending, working, paused, cancelled, or complete), to help keep Windows up to date and secure. - -The following fields are available: - -- **CatalogId** The ID for the product being installed if the product is from a private catalog, such as the Enterprise catalog. -- **FulfillmentPluginId** The ID of the plugin needed to install the package type of the product. -- **HResult** The resulting HResult error/success code of this operation. -- **NewState** The current fulfillment state of this product. -- **PFN** The Package Family Name of the app that is being installed or updated. -- **PluginLastStage** The most recent product fulfillment step that the plug-in has reported (different than its state). -- **PluginTelemetryData** Diagnostic information specific to the package-type plug-in. -- **Prevstate** The previous fulfillment state of this product. -- **ProductId** Product ID of the app that is being updated or installed. - - -### Microsoft.Windows.StoreAgent.Telemetry.UpdateAppOperationRequest - -This event occurs when an update is requested for an app, to help keep Windows up-to-date and secure. - -The following fields are available: - -- **PFamN** The name of the app that is requested for update. - - -## Windows Update CSP events - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackFeatureFailed - -This event sends basic telemetry on the failure of the Feature Rollback. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **current** Result of currency check. -- **dismOperationSucceeded** Dism uninstall operation status. -- **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. -- **sacDevice** This is the device info. -- **wUfBConnected** Result of Windows Update for Business connection check. - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackFeatureNotApplicable - -This event sends basic telemetry on whether Feature Rollback (rolling back features updates) is applicable to a device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **current** Result of currency check. -- **dismOperationSucceeded** Dism uninstall operation status. -- **oSVersion** Build number of the device. -- **paused** Indicates whether the device is paused. -- **rebootRequestSucceeded** Reboot Configuration Service Provider (CSP) call success status. -- **sacDevice** Represents the device info. -- **wUfBConnected** Result of Windows Update for Business connection check. - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackFeatureStarted - -This event sends basic information indicating that Feature Rollback has started. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackQualityFailed - -This event sends basic telemetry on the failure of the rollback of the Quality/LCU builds. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **current** Result of currency check. -- **dismOperationSucceeded** Dism uninstall operation status. -- **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. -- **sacDevice** Release Channel. -- **wUfBConnected** Result of Windows Update for Business connection check. - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackQualityNotApplicable - -This event informs you whether a rollback of Quality updates is applicable to the devices that you are attempting to rollback. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **current** Result of currency check. -- **dismOperationSucceeded** Dism uninstall operation status. -- **oSVersion** Build number of the device. -- **paused** Indicates whether the device is paused. -- **rebootRequestSucceeded** Reboot Configuration Service Provider (CSP) call success status. -- **sacDevice** Device in the General Availability Channel. -- **wUfBConnected** Result of Windows Update for Business connection check. - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackQualityStarted - -This event indicates that the Quality Rollback process has started. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateCsp.ExecuteRollBackQualitySucceeded - -This event sends basic telemetry on the success of the rollback of the Quality/LCU builds. The data collected with this event is used to help keep Windows secure and up to date. - - - -## 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 data collected with this event is used to help keep Windows up to date. - -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. -- **bytesFromLinkLocalPeers** The number of bytes received from local peers. -- **bytesFromLocalCache** Bytes copied over from local (on disk) cache. -- **bytesFromPeers** The number of bytes received from a peer in the same LAN. -- **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 (Content Delivery Network). -- **cdnUrl** The URL of the source CDN (Content Delivery Network). -- **dataSourcesTotal** Bytes received per source type, accumulated for the whole session. -- **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. -- **predefinedCallerName** The name of the API Caller. -- **reasonCode** Reason the action or event occurred. -- **routeToCacheServer** The cache server setting, source, and value. -- **sessionID** The ID of the file download session. -- **updateID** The ID of the update being downloaded. -- **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 data collected with this event is used to help keep Windows up to date. - -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. -- **bytesFromLinkLocalPeers** The number of bytes received from local peers. -- **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. -- **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. -- **cdnUrl** Url of the source Content Distribution Network (CDN). -- **congestionPrevention** Indicates a download may have been suspended to prevent network congestion. -- **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. -- **downloadModeReason** Reason for the download. -- **downloadModeSrc** Source of the DownloadMode setting. -- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. -- **expiresAt** The time when the content will expire from the Delivery Optimization Cache. -- **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. -- **isThrottled** Event Rate throttled (event represents aggregated data). -- **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. -- **linkLocalConnectionCount** The number of connections made to peers in the same Link-local network. -- **numPeers** The total number of peers used for this download. -- **numPeersLocal** The total number of local peers used for this download. -- **predefinedCallerName** The name of the API Caller. -- **restrictedUpload** Is the upload restricted? -- **routeToCacheServer** The cache server setting, source, and value. -- **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 data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **background** Is the download a background download? -- **cdnUrl** The URL of the source CDN (Content Delivery Network). -- **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. -- **routeToCacheServer** The cache server setting, source, and value. -- **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 data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **background** Indicates whether the download is happening in the background. -- **bytesRequested** Number of bytes requested for the download. -- **cdnUrl** The URL of the source Content Distribution Network (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). -- **downloadModeReason** Reason for the download. -- **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. -- **isEncrypted** Indicates whether the download is encrypted. -- **isThrottled** Indicates the Event Rate was throttled (event represent aggregated data). -- **isVpn** Indicates whether the device is connected to a Virtual Private Network. -- **jobID** The ID of the Windows Update job. -- **peerID** The ID for this delivery optimization client. -- **predefinedCallerName** Name of the API caller. -- **routeToCacheServer** Cache server setting, source, and value. -- **sessionID** The ID for the file download session. -- **setConfigs** A JSON representation of the configurations that have been set, and their sources. -- **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. The data collected with this event is used to help keep Windows up to date. - -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. - - -### Microsoft.OSG.DU.DeliveryOptClient.JobError - -This event represents a Windows Update job error. It allows for investigation of top errors. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **cdnIp** The IP Address of the source CDN (Content Delivery Network). -- **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.UpdateAgentAnalysisSummary - -This event collects information regarding the state of devices and drivers on the system following a reboot after the install phase of the new device manifest UUP (Unified Update Platform) update scenario which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **activated** Whether the entire device manifest update is considered activated and in use. -- **analysisErrorCount** The number of driver packages that could not be analyzed because errors occurred during analysis. -- **flightId** Unique ID for each flight. -- **missingDriverCount** The number of driver packages delivered by the device manifest that are missing from the system. -- **missingUpdateCount** The number of updates in the device manifest that are missing from the system. -- **objectId** Unique value for each diagnostics session. -- **publishedCount** The number of drivers packages delivered by the device manifest that are published and available to be used on devices. -- **relatedCV** Correlation vector value generated from the latest USO scan. -- **scenarioId** Indicates the update scenario. -- **sessionId** Unique value for each update session. -- **summary** A summary string that contains basic information about driver packages that are part of the device manifest and any devices on the system that those driver packages match. -- **summaryAppendError** A Boolean indicating if there was an error appending more information to the summary string. -- **truncatedDeviceCount** The number of devices missing from the summary string because there is not enough room in the string. -- **truncatedDriverCount** The number of driver packages missing from the summary string because there is not enough room in the string. -- **unpublishedCount** How many drivers packages that were delivered by the device manifest that are still unpublished and unavailable to be used on devices. -- **updateId** The unique ID for each update. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentCommit - -This event collects information regarding the final commit phase of the new device manifest UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code returned for the current session initialization. -- **flightId** The unique identifier for each flight. -- **objectId** The unique GUID for each diagnostics session. -- **relatedCV** A correlation vector value generated from the latest USO scan. -- **result** Outcome of the initialization of the session. -- **scenarioId** Identifies the Update scenario. -- **sessionId** The unique value for each update session. -- **updateId** The unique identifier for each Update. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentDownloadRequest - -This event collects information regarding the download request phase of the new device manifest UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **deletedCorruptFiles** Indicates if UpdateAgent found any corrupt payload files and whether the payload was deleted. -- **errorCode** The error code returned for the current session initialization. -- **flightId** The unique identifier for each flight. -- **objectId** Unique value for each Update Agent mode. -- **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. -- **packageSizeCanonical** Size of canonical packages in bytes. -- **packageSizeDiff** Size of diff packages in bytes. -- **packageSizeExpress** Size of express packages in bytes. -- **rangeRequestState** Represents the state of the download range request. -- **relatedCV** Correlation vector value generated from the latest USO scan. -- **result** Result of the download request phase of update. -- **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. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentInitialize - -This event sends data for initializing a new update session for the new device manifest UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code returned for the current session initialization. -- **flightId** The unique identifier 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 the 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. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentInstall - -This event collects information regarding the install phase of the new device manifest UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The error code returned for the current install phase. -- **flightId** The unique identifier for each flight. -- **objectId** The unique identifier for each diagnostics session. -- **relatedCV** Correlation vector value generated from the latest USO scan. -- **result** Outcome of the install phase of the update. -- **scenarioId** The unique identifier for the update scenario. -- **sessionId** Unique value for each update session. -- **updateId** The unique identifier for each update. - - -### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentModeStart - -This event sends data for the start of each mode during the process of updating device manifest assets via the UUP (Unified Update Platform) update scenario, which is used to install a device manifest describing a set of driver packages. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **flightId** The unique identifier for each flight. -- **mode** The mode that is starting. -- **objectId** The unique value for each diagnostics session. -- **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 Agent mode attempt. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -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.EnhancedEngagedRebootAcceptAutoDialog - -This event indicates that the Enhanced Engaged restart "accept automatically" dialog box was displayed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The local time on the device sending the event. -- **EnterpriseAttributionValue** Indicates whether the Enterprise attribution is on in this dialog box. -- **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 on this dialog box. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The local time of the device sending the event. -- **EnterpriseAttributionValue** Indicates whether the Enterprise attribution is on in this dialog box. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** Time the dialog box was shown on the local device. -- **EnterpriseAttributionValue** Indicates whether the Enterprise attribution is on in this dialog box. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **DeviceLocalTime** The time at which the reboot reminder dialog was shown (based on the local device time settings). -- **EnterpriseAttributionValue** Indicates whether Enterprise attribution is on for this dialog. -- **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.NotificationUx.RebootScheduled - -This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows secure and up-to-date by indicating when a reboot is scheduled by the system or a user for a security, quality, or feature update. - -The following fields are available: - -- **activeHoursApplicable** Indicates whether an Active Hours policy is present on the device. -- **IsEnhancedEngagedReboot** Indicates whether this is an Enhanced Engaged reboot. -- **rebootArgument** Argument for the reboot task. It also represents specific reboot related action. -- **rebootOutsideOfActiveHours** Indicates whether a restart is scheduled outside of active hours. -- **rebootScheduledByUser** Indicates whether the restart was scheduled by user (if not, it was scheduled automatically). -- **rebootState** The current state of the restart. -- **rebootUsingSmartScheduler** Indicates whether the reboot is scheduled by smart scheduler. -- **revisionNumber** Revision number of the update that is getting installed with this restart. -- **scheduledRebootTime** Time of the scheduled restart. -- **scheduledRebootTimeInUTC** Time of the scheduled restart in Coordinated Universal Time. -- **updateId** ID of the update that is getting installed with this restart. -- **wuDeviceid** Unique device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.ActivityError - -This event measures overall health of UpdateOrchestrator. The data collected with this event is used to help keep Windows secure and up to date. - -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. -- **failureId** Id of the 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** Function where the failure 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. -- **PartA_PrivTags** Privacy tags. -- **threadId** Identifier of the thread the error occurred on. -- **wilActivity** This struct provides a Windows Internal Library context used for Product and Service diagnostics. See [wilActivity](#wilactivity). - - -### Microsoft.Windows.Update.Orchestrator.ActivityRestrictedByActiveHoursPolicy - -This event indicates a policy is present that may restrict update activity to outside of active hours. The data collected with this event is used to help keep Windows secure and up to date. - -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.BlockedByActiveHours - -This event indicates that update activity was blocked because it is within the active hours window. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **activeHoursEnd** The end of the active hours window. -- **activeHoursStart** The start of the active hours window. -- **updatePhase** The current state of the update process. -- **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. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **batteryLevel** The current battery charge capacity. -- **batteryLevelThreshold** The battery capacity threshold to stop update activity. -- **updatePhase** The current state of the update process. -- **wuDeviceid** Device ID. - - -### Microsoft.Windows.Update.Orchestrator.DeferRestart - -This event indicates that a restart required for installing updates was postponed. The data collected with this event is used to help keep Windows secure and up to date. - -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). -- **gameModeReason** Name of the executable that caused the game mode state check to start. -- **ignoredReason** List of reasons that were intentionally ignored. -- **IgnoreReasonsForRestart** List of reasons why restart was deferred. -- **revisionNumber** Update ID revision number. -- **systemNeededReason** List of reasons why system is needed. -- **updateId** Update ID. -- **updateScenarioType** Update session type. -- **wuDeviceid** Unique device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.Detection - -This event sends launch data for a Windows Update scan to help keep Windows secure and up to date. - -The following fields are available: - -- **deferReason** Reason why the device could not check for updates. -- **detectionBlockingPolicy** State of update action. -- **detectionBlockreason** The reason detection did not complete. -- **detectionRetryMode** Indicates whether we will try to scan again. -- **errorCode** The error code returned for the current process. -- **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. -- **networkStatus** Error info -- **revisionNumber** Update revision number. -- **scanTriggerSource** Source of the triggered scan. -- **updateId** Update ID. -- **updateScenarioType** Identifies the type of update session being performed. -- **wuDeviceid** The unique device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.DetectionActivity - -This event returns data about detected updates, as well as the types of update (optional or recommended). This data helps keep Windows up to date. - -The following fields are available: - -- **applicableUpdateIdList** The list of update identifiers. -- **applicableUpdateList** The list of available updates. -- **durationInSeconds** The amount of time (in seconds) it took for the event to run. -- **expeditedMode** Indicates whether Expedited Mode is on. -- **networkCostPolicy** The network cost. -- **scanTriggerSource** Indicates whether the scan is Interactive or Background. -- **scenario** The result code of the event. -- **scenarioReason** The reason for the result code (scenario). -- **seekerUpdateIdList** The list of “seeker” update identifiers. -- **seekerUpdateList** The list of “seeker” updates. -- **services** The list of services that were called during update. -- **wilActivity** The activity results. See [wilActivity](#wilactivity). - - -### Microsoft.Windows.Update.Orchestrator.DisplayNeeded - -This event indicates the reboot was postponed due to needing a display. The data collected with this event is used to help keep Windows secure and up to date. - -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.Download - -This event sends launch data for a Windows Update download to help keep Windows secure and 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.DTUEnabled - -This event indicates that Inbox DTU functionality was enabled. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **wuDeviceid** Device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.DTUInitiated - -This event indicates that Inbox DTU functionality was initiated. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **dtuErrorCode** Return code from creating the DTU Com Server. -- **isDtuApplicable** Determination of whether DTU is applicable to the machine it is running on. -- **utilizeDtuOverWu** Whether DTU should be utilized over Windows Update. -- **wuDeviceid** Device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.EscalationRiskLevels - -This event is sent during update scan, download, or install, and indicates that the device is at risk of being out-of-date. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **configVersion** The escalation configuration version on the 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. -- **installRiskLevel** The at-risk level of install phase. -- **isSediment** Assessment of whether is device is at risk. -- **scanElapsedTime** Indicates how long since the scan is required on device. -- **scanRiskLevel** At-risk level of the scan phase. -- **wuDeviceid** Device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.FailedToAddTimeTriggerToScanTask - -This event indicated that USO failed to add a trigger time to a task. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **errorCode** The Windows Update error code. -- **wuDeviceid** The Windows Update device ID. - - -### Microsoft.Windows.Update.Orchestrator.FlightInapplicable - -This event sends data on whether the update was applicable to the device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **EventPublishedTime** Time when this event was generated. -- **flightID** The specific ID of the Windows Insider build. -- **inapplicableReason** The reason why the update is inapplicable. -- **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 secure and 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 secure and 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 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. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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 data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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 secure and 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 secure and 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 data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **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.SeekerUpdateAvailable - -This event defines when an optional update is available for the device to help keep Windows secure and up to date. - -The following fields are available: - -- **flightID** The unique identifier of the Windows Insider build on this device. -- **isFeatureUpdate** Indicates whether the update is a Feature Update. -- **revisionNumber** The revision number of the update. -- **updateId** The GUID (Globally Unique Identifier) of the update. -- **wuDeviceid** The Windows Update device identifier. - - -### Microsoft.Windows.Update.Orchestrator.SeekUpdate - -This event occurs when user initiates "seeker" scan. This helps keep Windows secure and up to date. - -The following fields are available: - -- **flightID** The ID of the Windows Insider builds on the device. -- **isFeatureUpdate** Indicates that the target of the Seek is a feature update. -- **revisionNumber** The revision number of the update. -- **updateId** The identifier of the update. -- **wuDeviceid** The Windows Update device identifier. - - -### 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. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **updateId** Identifier associated with the specific piece of content. -- **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 secure and 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. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **activeHoursEnd** The end of the active hours window. -- **activeHoursStart** The start of the active hours window. -- **updatePhase** The current state of the update process. -- **wuDeviceid** The device identifier. - - -### Microsoft.Windows.Update.Orchestrator.TerminatedByBatteryLevel - -This event is sent when update activity was stopped due to a low battery level. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **batteryLevel** The current battery charge capacity. -- **batteryLevelThreshold** The battery capacity threshold to stop update activity. -- **updatePhase** The current state of the update process. -- **wuDeviceid** The device identifier. - - -### Microsoft.Windows.Update.Orchestrator.UniversalOrchestratorInvalidSignature - -This event is sent when an updater has attempted to register a binary that is not signed by Microsoft. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **updaterCmdLine** The callback executable for the updater. -- **updaterId** The ID of the updater. -- **wuDeviceid** Unique device ID used by Windows Update. - - -### Microsoft.Windows.Update.Orchestrator.UniversalOrchestratorScheduleWorkInvalidCmd - -This event indicates a critical error with the callback binary requested by the updater. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **updaterCmdLine** The command line requested by the updater. -- **updaterId** The ID of the updater that requested the work. -- **wuDeviceid** Windows Update device ID. - - -### Microsoft.Windows.Update.Orchestrator.UniversalOrchestratorScheduleWorkNonSystem - -This event ensures that only callers with system or admin privileges are allowed to schedule work through Windows Update Universal Orchestrator. The data collected with this event is used to help keep Windows product and service secure. - -The following fields are available: - -- **updaterCmdLine** Updater Command Line. -- **updaterId** Updater ID. -- **wuDeviceid** Device ID. - - -### Microsoft.Windows.Update.Orchestrator.UnstickUpdate - -This event is sent when the update service orchestrator (USO) indicates that the update can be superseded by a newer update. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **updateId** Identifier associated with the specific piece of content. -- **wuDeviceid** Unique device ID controlled by the software distribution client. - - -### Microsoft.Windows.Update.Orchestrator.UpdateNotApplicableForReserves - -This event reports a critical error when using update reserves for OS updates to help keep Windows up to date. - -The following fields are available: - -- **updateId** The GUID (Globally Unique Identifier) of the update. -- **wuDeviceid** The Windows Update device identifier. - - -### Microsoft.Windows.Update.Orchestrator.UpdatePolicyCacheRefresh - -This event sends data on whether Update Management Policies were enabled on a device, to help keep Windows secure and 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.UpdaterCallbackFailed - -This event is sent when an updater failed to execute the registered callback. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **updaterArgument** The argument to pass to the updater callback. -- **updaterCmdLine** The callback executable for the updater. -- **updaterId** The ID of the updater. -- **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 secure and 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.UpdaterMalformedData - -This event is sent when a registered updater has missing or corrupted information, to help keep Windows up to date. - -The following fields are available: - -- **malformedRegValue** The registry value that contains the malformed or missing entry. -- **updaterId** The ID of the updater. -- **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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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.Orchestrator.UUPFallBack - -This event sends data when UUP needs to fall back, to help keep Windows secure and up to date. - -The following fields are available: - -- **EventPublishedTime** The current event time. -- **UUPFallBackCause** The reason for UUP fall back. -- **UUPFallBackConfigured** The fall back error code. -- **UUPFallBackErrorReason** The reason for fall back error. -- **wuDeviceid** A 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 data collected with this event is used to help keep Windows secure and up to date. - -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 data collected with this event is used to help keep Windows secure and up to date. - -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 secure and 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** The unique device ID used by Windows Update. - - -### Microsoft.Windows.Update.Ux.MusUpdateSettings.RebootScheduled - -This event sends basic information for scheduling a device restart to install security updates. The data collected with this event is used to help keep Windows secure and 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. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSEvaluateInteractionCampaign - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS.EXE) finishes processing an interaction campaign. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **ControlId** String identifying the control (if any) that was selected by the user during presentation. -- **hrInteractionHandler** The error (if any) reported by the RUXIM Interaction Handler while processing the interaction campaign. -- **hrScheduler** The error (if any) encountered by RUXIM Interaction Campaign Scheduler itself while processing the interaction campaign. -- **InteractionCampaignID** The ID of the interaction campaign that was processed. -- **LanguageCode** The language used to display the interaction campaign. -- **ResultId** The result of the evaluation/presentation. -- **WasCompleted** True if the interaction campaign is complete. -- **WasPresented** True if the Interaction Handler displayed the interaction campaign to the user. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSExit - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS) exits. The data collected with this event is used to help keep Windows up to date and performing properly. - - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSLaunch - -This event is generated when the RUXIM Interaction Campaign Scheduler (RUXIMICS.EXE) is launched. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CommandLine** The command line used to launch RUXIMICS. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSOneSettingsSyncExit - -This event is sent when RUXIM completes checking with OneSettings to retrieve any UX interaction campaigns that may need to be displayed. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **ETagValue** eTag for sync. -- **hrInitialize** Error, if any, that occurred while initializing OneSettings. -- **hrQuery** Error, if any, that occurred while retrieving UX interaction campaign data from OneSettings. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.ICSOneSettingsSyncLaunch - -This event is sent when RUXIM begins checking with OneSettings to retrieve any UX interaction campaigns that may need to be displayed. The data collected with this event is used to help keep Windows up to date. - - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHBeginPresentation - -This event is generated when RUXIM is about to present an interaction campaign to the user. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **InteractionCampaignID** GUID identifying interaction campaign being presented. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHEndPresentation - -This event is generated when Interaction Handler completes presenting an interaction campaign to the user. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **hrPresentation** Error, if any, occurring during the presentation. -- **InteractionCampaignID** GUID identifying the interaction campaign being presented. -- **ResultId** Result generated by the presentation. -- **WasCompleted** True if the interaction campaign is now considered complete. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHEvaluateAndPresent - -This event is generated when the RUXIM Interaction Handler finishes evaluating, and possibly presenting an interaction campaign. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **hrLocal** The error (if any) encountered by RUXIM Interaction Handler during evaluation and presentation. -- **hrPresentation** The error (if any) reported by RUXIM Presentation Handler during presentation. -- **InteractionCampaignID** GUID; the user interaction campaign processed by RUXIM Interaction Handler. -- **ResultId** The result generated by the evaluation and presentation. -- **WasCompleted** True if the user interaction campaign is complete. -- **WasPresented** True if the user interaction campaign is displayed to the user. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHExit - -This event is generated when the RUXIM Interaction Handler (RUXIMIH.EXE) exits. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **InteractionCampaignID** GUID identifying the interaction campaign that RUXIMIH processed. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.IHLaunch - -This event is generated when the RUXIM Interaction Handler (RUXIMIH.EXE) is launched. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **CommandLine** The command line used to launch RUXIMIH. -- **InteractionCampaignID** GUID identifying the user interaction campaign that the Interaction Handler will process. - - -### Microsoft.Windows.WindowsUpdate.RUXIM.SystemEvaluator.Evaluation - -This event is generated whenever the RUXIM Evaluator DLL performs an evaluation. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **HRESULT** Error, if any, that occurred during evaluation. (Note that if errors encountered during individual checks do not affect the overall result of the evaluation, those errors will be reported in NodeEvaluationData, but this HRESULT will still be zero.) -- **Id** GUID passed in by the caller to identify the evaluation. -- **NodeEvaluationData** Structure showing the results of individual checks that occurred during the overall evaluation. -- **Result** Overall result generated by the evaluation. - - -### wilActivity - -This event provides a Windows Internal Library context used for Product and Service diagnostics. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **callContext** The function where the failure occurred. -- **currentContextId** The ID of the current call context where the failure occurred. -- **currentContextMessage** The message of the current call context where the failure occurred. -- **currentContextName** The name of the current call context where the failure occurred. -- **failureCount** The number of failures for this failure ID. -- **failureId** The ID of the failure that occurred. -- **failureType** The type of the failure that occurred. -- **fileName** The file name where the failure occurred. -- **function** The function where the failure occurred. -- **hresult** The HResult of the overall activity. -- **lineNumber** The line number where the failure occurred. -- **message** The message of the failure that occurred. -- **module** The module where the failure occurred. -- **originatingContextId** The ID of the originating call context that resulted in the failure. -- **originatingContextMessage** The message of the originating call context that resulted in the failure. -- **originatingContextName** The name of the originating call context that resulted in the failure. -- **threadId** The ID of the thread on which the activity is executing. - - -## Windows Update mitigation events - -### Microsoft.Windows.Mitigations.AllowInPlaceUpgrade.ApplyTroubleshootingComplete - -This event provides summary information after attempting to enable In-Place Upgrade. The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **applicable** The operations that were needed to be attempted. -- **failed** Result of the individual operations that were attempted. -- **hr** Result of the overall operation to evaluate and enable In-Place Upgrade. - - -### Microsoft.Windows.RecommendedTroubleshootingService.MitigationFailed - -This event is raised after an executable delivered by Mitigation Service has run and failed. Data from this event is used to measure the health of mitigations used by engineers to solve in-market problems on internal, insider, and retail devices. Failure data will also be used for root-cause investigation by feature teams, as signal to halt mitigation rollout and, possible follow-up action on specific devices still impacted by the problem because the mitigation failed (i.e. reoffer it to impacted devices). The data collected with this event is used to help keep Windows up to date and performing properly. - -The following fields are available: - -- **activeProcesses** Number of active processes. -- **atleastOneMitigationSucceeded** Bool flag indicating if at least one mitigation succeeded. -- **contactTSServiceAttempts** Number of attempts made by TroubleshootingSvc in a single Scanner session to get Troubleshooter metadata from the Troubleshooting cloud service. -- **countDownloadedPayload** Count instances of payload downloaded. -- **description** Description of failure. -- **devicePreference** Recommended Troubleshooting Setting on the device. -- **downloadBinaryAttempts** Number of attempts made by TroubleshootingSvc in a single Scanner session to download Troubleshooter Exe. -- **downloadCabAttempts** Number of attempts made by TroubleshootingSvc in a single Scanner session to download PrivilegedActions Cab. -- **executionHR** HR code of the execution of the mitigation. -- **executionPreference** Current Execution level Preference. This may not be same as devicePreference, eg when executing Critical troubleshooters, the executionPreference is set to the Silent option. -- **exitCode** Exit code of the execution of the mitigation. -- **experimentFeatureId** Experiment feature ID. -- **experimentFeatureState** Config state of the experiment. -- **hr** HRESULT for error code. -- **isActiveSessionPresent** If an active user session is present on the device. -- **isCriticalMitigationAvailable** If a critical mitigation is available to this device. -- **isFilteringSuccessful** If the filtering operation was successful. -- **isReApply** reApply status for the mitigation. -- **mitigationId** ID value of the mitigation. -- **mitigationProcessCycleTime** Process cycle time used by the mitigation. -- **mitigationRequestWithCompressionFailed** Boolean flag indicating if HTTP request with compression failed for this device. -- **mitigationServiceResultFetched** Boolean flag indicating if mitigation details were fetched from the admin service. -- **mitigationVersion** String indicating version of the mitigation. -- **oneSettingsMetadataParsed** If OneSettings metadata was parsed successfully. -- **oneSettingsSchemaVersion** Schema version used by the OneSettings parser. -- **onlyNoOptMitigationsPresent** Checks if all mitigations were no opt. -- **parsedOneSettingsFile** Indicates if OneSettings parsing was successful. -- **sessionAttempts** Number of Scanner sessions attempted so far by TroubleshootingSvc for this troubleshooter. -- **SessionId** Random GUID used for grouping events in a session. -- **subType** Error type. -- **totalKernelTime** Total kernel time used by the mitigation. -- **totalNumberOfApplicableMitigations** Total number of applicable mitigations. -- **totalProcesses** Total number of processes assigned to the job object. -- **totalTerminatedProcesses** Total number of processes in terminated state assigned to the job object. -- **totalUserTime** Total user mode time used by the job object. - - -### Microsoft.Windows.RecommendedTroubleshootingService.MitigationSucceeded - -This event is raised after an executable delivered by Mitigation Service has successfully run. Data from this event is used to measure the health of mitigations used by engineers to solve in-market problems on internal, insider, and retail devices. The data collected with this event is used to keep Windows performing properly. - -The following fields are available: - -- **activeProcesses** Number of active processes. -- **contactTSServiceAttempts** Number of attempts made by TroubleshootingSvc in a single Scanner session to get Troubleshooter metadata from the Troubleshooting cloud service. -- **devicePreference** Recommended troubleshooting setting on the device. -- **downloadBinaryAttempts** Number of attempts made by TroubleshootingSvc in a single Scanner session to download Troubleshooter Exe. -- **downloadCabAttempts** Number of attempts made by TroubleshootingSvc in a single Scanner session to download PrivilegedActions Cab. -- **executionPreference** Current Execution level Preference. This may not be same as devicePreference, for example, when executing Critical troubleshooters, the executionPreference is set to the Silent option. -- **experimentFeatureId** Experiment feature ID. -- **experimentFeatureState** Feature state for the experiment. -- **mitigationId** ID value of the mitigation. -- **mitigationProcessCycleTime** Process cycle time used by the mitigation. -- **mitigationVersion** String indicating version of the mitigation. -- **sessionAttempts** Number of Scanner sessions attempted so far by TroubleshootingSvc for this troubleshooter. -- **SessionId** Random GUID used for grouping events in a session. -- **totalKernelTime** Total kernel time used by the mitigation. -- **totalProcesses** Total number of processes assigned to the job object. -- **totalTerminatedProcesses** Total number of processes in terminated state assigned to the job object. -- **totalUserTime** Total user mode time used by the job object. - - -### Mitigation360Telemetry.MitigationCustom.CleanupSafeOsImages - -This event sends data specific to the CleanupSafeOsImages mitigation used for OS Updates. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** The client ID used by Windows Update. -- **FlightId** The ID of each Windows Insider build the device received. -- **InstanceId** A unique device ID that identifies each update instance. -- **MitigationScenario** The update scenario in which the mitigation was executed. -- **MountedImageCount** The number of mounted images. -- **MountedImageMatches** The number of mounted image matches. -- **MountedImagesFailed** The number of mounted images that could not be removed. -- **MountedImagesRemoved** The number of mounted images that were successfully removed. -- **MountedImagesSkipped** The number of mounted images that were not found. -- **RelatedCV** The 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 Windows Update. -- **WuId** Unique ID for the Windows Update client. - - -### Mitigation360Telemetry.MitigationCustom.FixAppXReparsePoints - -This event sends data specific to the FixAppXReparsePoints mitigation used for OS updates. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** In the Windows Update scenario, 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. -- **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. -- **RelatedCV** Correlation vector value generated from the latest USO scan. -- **ReparsePointsFailed** Number of reparse points that are corrupted but we failed to fix them. -- **ReparsePointsFixed** Number of reparse points that were corrupted and were fixed by this mitigation. -- **ReparsePointsSkipped** Number of reparse points that are not corrupted and no action is required. -- **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. - - -### Mitigation360Telemetry.MitigationCustom.FixupEditionId - -This event sends data specific to the FixupEditionId mitigation used for OS updates. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** In the Windows Update scenario, 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. -- **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. - - -### Mitigation360Telemetry.MitigationCustom.FixupWimmountSysPath - -This event sends data specific to the FixupWimmountSysPath mitigation used for OS Updates. The data collected with this event is used to help keep Windows up to date. - -The following fields are available: - -- **ClientId** In the Windows Update scenario, 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. -- **FlightId** Unique identifier for each flight. -- **ImagePathDefault** Default path to wimmount.sys driver defined in the system registry. -- **ImagePathFixedup** Boolean indicating whether the wimmount.sys driver path was fixed by this mitigation. -- **InstanceId** Unique GUID that identifies each instances of setuphost.exe. -- **MitigationScenario** The update scenario in which the mitigations were attempted. -- **RelatedCV** Correlation vector value. -- **Result** HResult of this operation. -- **ScenarioId** Setup360 flow type. -- **ScenarioSupported** Whether the updated scenario that was passed in was supported. -- **SessionId** The UpdateAgent “SessionId” value. -- **UpdateId** Unique identifier for the Update. -- **WuId** Unique identifier for the Windows Update client. - - -## Windows Update Reserve Manager events - -### Microsoft.Windows.UpdateReserveManager.BeginScenario - -This event is sent when the Update Reserve Manager is called to begin a scenario. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **Flags** The flags that are passed to the begin scenario function. -- **HardReserveSize** The size of the hard reserve. -- **HardReserveUsedSpace** The used space in the hard reserve. -- **OwningScenarioId** The scenario ID the client that called the begin scenario function. -- **ReturnCode** The return code for the begin scenario operation. -- **ScenarioId** The scenario ID that is internal to the reserve manager. -- **SoftReserveSize** The size of the soft reserve. -- **SoftReserveUsedSpace** The amount of soft reserve space that was used. - - -### Microsoft.Windows.UpdateReserveManager.ClearReserve - -This event is sent when the Update Reserve Manager clears one of the reserves. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **FinalReserveUsedSpace** The amount of used space for the reserve after it was cleared. -- **Flags** The context of clearing the reserves. -- **InitialReserveUsedSpace** The amount of used space for the reserve before it was cleared. -- **ReserveId** The ID of the reserve that needs to be cleared. - - -### Microsoft.Windows.UpdateReserveManager.CommitPendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager commits a hard reserve adjustment that was pending. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **FinalAdjustment** Final adjustment for the hard reserve following the addition or removal of optional content. -- **InitialAdjustment** Initial intended adjustment for the hard reserve following the addition or removal of optional content. - - -### Microsoft.Windows.UpdateReserveManager.EndScenario - -This event is sent when the Update Reserve Manager ends an active scenario. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ActiveScenario** The current active scenario. -- **Flags** The flags passed to the end scenario call. -- **HardReserveSize** The size of the hard reserve when the end scenario is called. -- **HardReserveUsedSpace** The used space in the hard reserve when the end scenario is called. -- **ReturnCode** The return code of this operation. -- **ScenarioId** The ID of the internal reserve manager scenario. -- **SoftReserveSize** The size of the soft reserve when end scenario is called. -- **SoftReserveUsedSpace** The amount of the soft reserve used when end scenario is called. - - -### Microsoft.Windows.UpdateReserveManager.FunctionReturnedError - -This event is sent when the Update Reserve Manager returns an error from one of its internal functions. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **FailedExpression** The failed expression that was returned. -- **FailedFile** The binary file that contained the failed function. -- **FailedFunction** The name of the function that originated the failure. -- **FailedLine** The line number of the failure. -- **ReturnCode** The return code of the function. - - -### Microsoft.Windows.UpdateReserveManager.InitializeReserves - -This event is sent when reserves are initialized on the device. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **FallbackInitUsed** Indicates whether fallback initialization is used. -- **FinalUserFreeSpace** The amount of user free space after initialization. -- **Flags** The flags used in the initialization of Update Reserve Manager. -- **FreeSpaceToLeaveInUpdateScratch** The amount of space that should be left free after using the reserves. -- **HardReserveFinalSize** The final size of the hard reserve. -- **HardReserveFinalUsedSpace** The used space in the hard reserve. -- **HardReserveInitialSize** The size of the hard reserve after initialization. -- **HardReserveInitialUsedSpace** The utilization of the hard reserve after initialization. -- **HardReserveTargetSize** The target size that was set for the hard reserve. -- **InitialUserFreeSpace** The user free space during initialization. -- **PostUpgradeFreeSpace** The free space value passed into the Update Reserve Manager to determine reserve sizing post upgrade. -- **SoftReserveFinalSize** The final size of the soft reserve. -- **SoftReserveFinalUsedSpace** The used space in the soft reserve. -- **SoftReserveInitialSize** The soft reserve size after initialization. -- **SoftReserveInitialUsedSpace** The utilization of the soft reserve after initialization. -- **SoftReserveTargetSize** The target size that was set for the soft reserve. -- **TargetUserFreeSpace** The target user free space that was passed into the reserve manager to determine reserve sizing post upgrade. -- **UpdateScratchFinalUsedSpace** The used space in the scratch reserve. -- **UpdateScratchInitialUsedSpace** The utilization of the scratch reserve after initialization. -- **UpdateScratchReserveFinalSize** The utilization of the scratch reserve after initialization. -- **UpdateScratchReserveInitialSize** The size of the scratch reserve after initialization. - - -### Microsoft.Windows.UpdateReserveManager.InitializeUpdateReserveManager - -This event returns data about the Update Reserve Manager, including whether it’s been initialized. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ClientId** The ID of the caller application. -- **Flags** The enumerated flags used to initialize the manager. -- **FlightId** The flight ID of the content the calling client is currently operating with. -- **Offline** Indicates whether or the reserve manager is called during offline operations. -- **PolicyPassed** Indicates whether the machine is able to use reserves. -- **ReturnCode** Return code of the operation. -- **Version** The version of the Update Reserve Manager. - - -### Microsoft.Windows.UpdateReserveManager.PrepareTIForReserveInitialization - -This event is sent when the Update Reserve Manager prepares the Trusted Installer to initialize reserves on the next boot. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **FallbackLogicUsed** Indicates whether fallback logic was used for initialization. -- **Flags** The flags that are passed to the function to prepare the Trusted Installer for reserve initialization. - - -### Microsoft.Windows.UpdateReserveManager.ReevaluatePolicy - -This event is sent when the Update Reserve Manager reevaluates policy to determine reserve usage. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **PolicyChanged** Indicates whether the policy has changed. -- **PolicyFailedEnum** The reason why the policy failed. -- **PolicyPassed** Indicates whether the policy passed. - - -### Microsoft.Windows.UpdateReserveManager.RemovePendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager removes a pending hard reserve adjustment. The data collected with this event is used to help keep Windows secure and up to date. - - - -### Microsoft.Windows.UpdateReserveManager.TurnOffReserves - -This event is sent when the Update Reserve Manager turns off reserve functionality for certain operations. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **Flags** Flags used in the turn off reserves function. -- **HardReserveSize** The size of the hard reserve when Turn Off is called. -- **HardReserveUsedSpace** The amount of space used by the hard reserve when Turn Off is called -- **ScratchReserveSize** The size of the scratch reserve when Turn Off is called. -- **ScratchReserveUsedSpace** The amount of space used by the scratch reserve when Turn Off is called. -- **SoftReserveSize** The size of the soft reserve when Turn Off is called. -- **SoftReserveUsedSpace** The amount of the soft reserve used when Turn Off is called. - - -### Microsoft.Windows.UpdateReserveManager.UpdatePendingHardReserveAdjustment - -This event is sent when the Update Reserve Manager needs to adjust the size of the hard reserve after the option content is installed. The data collected with this event is used to help keep Windows secure and up to date. - -The following fields are available: - -- **ChangeSize** The change in the hard reserve size based on the addition or removal of optional content. -- **Disposition** The parameter for the hard reserve adjustment function. -- **Flags** The flags passed to the hard reserve adjustment function. -- **PendingHardReserveAdjustment** The final change to the hard reserve size. -- **UpdateType** Indicates whether the change is an increase or decrease in the size of the hard reserve. - - -## Winlogon events - -### Microsoft.Windows.Security.Winlogon.SetupCompleteLogon - -This event signals the completion of the setup process. It happens only once during the first logon. - - - -## XBOX 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. diff --git a/windows/privacy/changes-to-windows-diagnostic-data-collection.md b/windows/privacy/changes-to-windows-diagnostic-data-collection.md deleted file mode 100644 index 6b6004f7d3..0000000000 --- a/windows/privacy/changes-to-windows-diagnostic-data-collection.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: Changes to Windows diagnostic data collection -description: This article provides information on changes to Windows diagnostic data collection Windows 10 and Windows 11. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 06/27/2024 -ms.topic: conceptual -ms.collection: privacy-windows ---- - -# Changes to Windows diagnostic data collection - -**Applies to** -- Windows 11, version 21H2 and later -- Windows 10, version 1903 and later -- Windows Server 2022 - -Microsoft is committed to providing you with effective controls over your data and ongoing transparency into our data handling practices. As part of this effort, we've moved our major products and services to a model where data sent back to Microsoft from customer devices will be classified as either **Required** or **Optional**. We believe this change will provide our customers with a simpler experience – information should be easier to find, easier to understand, and easier to act upon through the tools we provide. - -This article is meant for IT administrators and explains the changes Windows is making to align to the new data collection taxonomy. These changes are focused in two areas: - -- [Taxonomy changes](#taxonomy-changes) -- [Behavioral changes](#behavioral-changes) - -## Summary of changes - -In Windows 10, version 1903 and later, you'll see taxonomy updates in both the **Out-of-box-experience** (OOBE) and the **Diagnostics & feedback** privacy settings page. These changes are explained in the section named **Taxonomy** changes. - -Additionally, starting in Windows 11 and Windows Server 2022, we’re simplifying your diagnostic data controls by moving from four diagnostic data controls to three: **Diagnostic data off**, **Required**, and **Optional**. We’re also clarifying the Security diagnostic data level to reflect its behavior more accurately by changing it to **Diagnostic data off**. All these changes are explained in the section named **Behavioral changes**. - -Prior to December 13 2022, the default setting for Windows Server 2022 Datacenter: Azure Edition images deployed using Azure Marketplace was **Diagnostic data off**. Beginning December 13 2022, all newly deployed images are set to **Required diagnostic data** to align with all other Windows releases. All other Windows releases and existing installations remain unchanged. - -## Taxonomy changes - -Starting in Windows 10, version 1903 and later, both the **Out-of-Box-Experience** (OOBE) and the **Diagnostics & feedback** privacy setting pages will reflect the following changes: - -- The **Basic** diagnostic data level is being labeled as **Required**. -- The **Full** diagnostic data level is being labeled as **Optional**. - -> [!IMPORTANT] -> No action is required for the taxonomy changes, and your existing settings will be maintained as part of this update. - -## Behavioral changes - -Starting in Windows 11 and Windows Server 2022, we’re simplifying the Windows diagnostic data controls by moving from four diagnostic data settings to three: **Diagnostic data off**, **Required**, and **Optional**. If your devices are set to **Enhanced** when they're upgraded to a supported version of the operating system, the device settings will be evaluated to be at the more privacy-preserving setting of **Required diagnostic data**, which means that analytic services that use enhanced data collection may not work properly. For a list of services, see [Services that rely on Enhanced diagnostic data](#services-that-rely-on-enhanced-diagnostic-data). Administrators should read through the details and determine whether to apply these new policies to restore the same collection settings as they had before this change. - -Additionally, you'll see the following policy changes in Windows Server 2022, Windows 11, and Windows Holographic, version 21H1 (HoloLens 2): - -| Policy type | Current policy | Renamed policy | -| --- | --- | --- | -| Group Policy | Computer Configuration > Administrative Templates > Windows Components > Data Collection and Preview Builds > **Allow Telemetry**

  • **0 - Security**
  • **1 - Basic**
  • **2 - Enhanced**
  • **3 - Full**
| Computer Configuration > Administrative Templates > Windows Components > Data Collection and Preview Builds > **Allow Diagnostic Data**
  • **Diagnostic data off (not recommended)**
  • **Send required diagnostic data**
  • **Send optional diagnostic data**
| -| Group Policy |Computer Configuration > Administrative Templates > Windows Components > Data Collection and Preview Builds > **Configure telemetry opt-in settings user interface**| Computer Configuration > Administrative Templates > Windows Components > Data Collection and Preview Builds > **Configure diagnostic data opt-in settings user interface** | -| Group Policy |Computer Configuration > Administrative Templates > Windows Components > Data Collection and Preview Builds > **Configure telemetry opt-in change notifications**| Computer Configuration > Administrative Templates > Windows Components > Data Collection and Preview Builds > **Configure diagnostic data opt-in change notifications** | - -A final set of changes includes two new policies that can help you fine-tune diagnostic data collection within your organization. These policies let you limit the amount of optional diagnostic data that’s sent back to Microsoft. - -- The **Limit dump collection** policy is a new policy that can be used to limit the types of [crash dumps](/windows/win32/dxtecharts/crash-dump-analysis) that can be sent back to Microsoft. If this policy is enabled, Windows Error Reporting will send only kernel mini dumps and user mode triage dumps. - - Group Policy: Computer Configuration > Administrative Templates > Windows Components > Data Collection and Preview Builds > **Limit Dump Collection** - - MDM policy: System/LimitDumpCollection -- The **Limit diagnostic log collection** policy is another new policy that limits the number of diagnostic logs that are sent back to Microsoft. If this policy is enabled, diagnostic logs aren't sent back to Microsoft. - - Group Policy: Computer Configuration > Administrative Templates > Windows Components > Data Collection and Preview Builds > **Limit Diagnostic Log Collection** - - MDM policy: System/LimitDiagnosticLogCollection - -For more information, see [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). - -## Services that rely on Enhanced diagnostic data - -Customers who use services that depend on Windows diagnostic data, such as [Microsoft Managed Desktop](/managed-desktop/operate/device-policies#windows-diagnostic-data), may be impacted by the behavioral changes when they're released. These services will be updated to address these changes and guidance will be published on how to configure them properly. - -## Significant change to the Windows diagnostic data processor configuration - -> [!NOTE] -> The information in this section applies to the following versions of Windows: -> - Windows 10, versions 20H2, 21H2, 22H2, and newer -> - Windows 11, versions 21H2, 22H2, 23H2, and newer - -Previously, IT admins could use policies (for example, the "Allow commercial data pipeline" policy) at the individual device level to enroll devices in the Windows diagnostic data processor configuration. - -Starting with the January 2023 preview cumulative update, how you enable the processor configuration option depends on the billing address of the Azure AD tenant to which your devices are joined. - -We made this change to help ensure the diagnostic data for all devices in an organization is processed in a consistent way and in the same geographic region, and to help us implement our plan to [store and process EU Data for European enterprise customers in the EU](/privacy/eudb/eu-data-boundary-learn). - -For more information, see [Enable Windows diagnostic data processor configuration](configure-windows-diagnostic-data-in-your-organization.md#enable-windows-diagnostic-data-processor-configuration). - -## Data collection changes - -> [!NOTE] -> The information in this section applies to the following versions of Windows: -> - Windows 10, version 22H2 and newer -> - Windows 11, version 23H2 and newer - -As of March 6, 2024, Microsoft Edge diagnostic data is collected separately from Windows diagnostic data on Windows 10 and Windows 11 devices in the European Economic Area. The collection of Microsoft Edge diagnostic data is subject to its own settings. For more information related to this change, see [Microsoft Edge, browsing data, and privacy](https://support.microsoft.com/windows/bb8174ba-9d73-dcf2-9b4a-c582b4e640dd). \ No newline at end of file diff --git a/windows/privacy/manage-windows-1903-endpoints.md b/windows/privacy/manage-windows-1903-endpoints.md deleted file mode 100644 index 4ac562a487..0000000000 --- a/windows/privacy/manage-windows-1903-endpoints.md +++ /dev/null @@ -1,183 +0,0 @@ ---- -title: Connection endpoints for Windows 10 Enterprise, version 1903 -description: Explains what Windows 10 endpoints are used for, how to turn off traffic to them, and the impact. Specific to Windows 10 Enterprise, version 1903. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 01/18/2018 -ms.topic: reference ---- -# Manage connection endpoints for Windows 10 Enterprise, version 1903 - -**Applies to** - -- Windows 10 Enterprise, version 1903 - -Some Windows components, app, and related services transfer data to Microsoft network endpoints. Some examples include: - -- Connecting to Microsoft Office and Windows sites to download the latest app and security updates. -- Connecting to email servers to send and receive email. -- Connecting to the web for every day web browsing. -- Connecting to the cloud to store and access backups. -- Using your location to show a weather forecast. - -This article lists different endpoints that are available on a clean installation of Windows 10, version 1709 and later. -Details about the different ways to control traffic to these endpoints are covered in [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md). -Where applicable, each endpoint covered in this article includes a link to the specific details on how to control that traffic. - -The following methodology was used to derive these network endpoints: - -1. Set up the latest version of Windows 10 on a test virtual machine using the default settings. -2. Leave the device(s) running idle for a week ("idle" means a user isn't interacting with the system/device). -3. Use globally accepted network protocol analyzer/capturing tools and log all background egress traffic. -4. Compile reports on traffic going to public IP addresses. -5. The test virtual machine(s) was logged into using a local account, and wasn't joined to a domain or Azure Active Directory. -6. All traffic was captured in our lab using an IPV4 network. Therefore, no IPV6 traffic is reported here. -7. These tests were conducted in an approved Microsoft lab. It's possible your results may be different. -8. These tests were conducted for one week, but if you capture traffic for longer you may have different results. - -> [!NOTE] -> Microsoft uses global load balancers that can appear in network trace-routes. For example, an endpoint for *.akadns.net might be used to load balance requests to an Azure datacenter, which can change over time. - -## Windows 10 1903 Enterprise connection endpoints - -|Area|Description|Protocol|Destination| -|----------------|----------|----------|------------| -|Apps|||[Learn how to turn off traffic to the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-windowsstore)| -||The following endpoints are used to download updates to the Weather app Live Tile. If you turn off traffic to this endpoint, no Live Tiles will be updated.|HTTP|`blob.weather.microsoft.com`| -|||HTTP|tile-service.weather.microsoft.com| -|||HTTP|tile-service.weather.microsoft.com| -||The following endpoint is used for OneNote Live Tile. To turn off traffic for this endpoint, either uninstall OneNote or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|HTTPS|cdn.onenote.net/livetile/?Language=en-US| -||The following endpoint is used for Twitter updates. To turn off traffic for these endpoints, either uninstall Twitter or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|HTTPS|*.twimg.com*| -||The following endpoint is used for Candy Crush Saga updates. To turn off traffic for this endpoint, either uninstall Candy Crush Saga or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|TLS v1.2|candycrushsoda.king.com| -||The following endpoint is used by the Photos app to download configuration files, and to connect to the Microsoft 365 admin center's shared infrastructure, including Office in a browser. To turn off traffic for this endpoint, either uninstall the Photos app or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|HTTPS|evoke-windowsservices-tas.msedge.net| -||The following endpoint is used for by the Microsoft Wallet app. To turn off traffic for this endpoint, either uninstall the Wallet app or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|HTTPS|wallet.microsoft.com| -||The following endpoint is used by the Groove Music app for update HTTP handler status. If you turn off traffic for this endpoint, apps for websites won't work and customers who visit websites (such as mediaredirect.microsoft.com) that are registered with their associated app (such as Groove Music) will stay at the website and won't be able to directly launch the app.|HTTPS|mediaredirect.microsoft.com| -||The following endpoints are used when using the Whiteboard app. To turn off traffic for this endpoint disable the Microsoft Store.|HTTPS|int.whiteboard.microsoft.com| -|||HTTPS|wbd.ms| -|||HTTPS|whiteboard.microsoft.com| -|||HTTP / HTTPS|whiteboard.ms| -|Azure |The following endpoints are related to Azure. |HTTPS|wd-prod-*fe*.cloudapp.azure.com| -|||HTTPS|ris-prod-atm.trafficmanager.net| -|||HTTPS|validation-v2.sls.trafficmanager.net| -|Certificates|Certificates are digital files, stored on client devices, used to both encrypt data and verify the identity of an individual or organization. Trusted root certificates issued by a certification authority (CA) are stored in a certificate trust list (CTL). The Automatic Root Certificates Update mechanism contacts Windows Updates to update the CTL. If a new version of the CTL is identified, the list of trusted root certificates cached on the local device will be updated. Untrusted certificates are certificates where the server certificate issuer is unknown or isn't trusted by the service. Untrusted certificates are also stored in a list on the local device and updated by the Automatic Root Certificates Update mechanism.

If automatic updates are turned off, applications and websites may stop working because they didn't receive an updated root certificate that the application uses. Additionally, the list of untrusted certificates will no longer be updated, which increases the attack vector on the device.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update)| -|||HTTP|ctldl.windowsupdate.com| -|Cortana and Search|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-cortana)| -||The following endpoint is used to get images that are used for Microsoft Store suggestions. If you turn off traffic for this endpoint, you'll block images that are used for Microsoft Store suggestions.|HTTPS|store-images.*microsoft.com| -||The following endpoints are related to Cortana and Live Tiles. If you turn off traffic for this endpoint, you'll block updates to Cortana greetings, tips, and Live Tiles.|HTTPS|www.bing.com/client| -|||HTTPS|www.bing.com| -|||HTTPS|www.bing.com/proactive| -|||HTTPS|www.bing.com/threshold/xls.aspx| -|||HTTP|exo-ring.msedge.net| -|||HTTP|fp.msedge.net| -|||HTTP|fp-vp.azureedge.net| -|||HTTP|odinvzc.azureedge.net| -|||HTTP|spo-ring.msedge.net| -|Device authentication|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -||The following endpoint is used to authenticate a device. If you turn off traffic for this endpoint, the device won't be authenticated.|HTTPS|login.live.com*| -|Device metadata|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#4-device-metadata-retrieval)| -||The following endpoint is used to retrieve device metadata. If you turn off traffic for this endpoint, metadata won't be updated for the device.|HTTP|dmd.metaservices.microsoft.com| -|Diagnostic Data|The following endpoints are used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service. If you turn off traffic for this endpoint, diagnostic and usage information, which helps Microsoft find and fix problems and improve our products and services, won't be sent back to Microsoft. ||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -|||HTTP|v10.events.data.microsoft.com| -|||HTTPS|v10.vortex-win.data.microsoft.com/collect/v1| -|||HTTP|www.microsoft.com| -||The following endpoints are used by Windows Error Reporting. To turn off traffic for these endpoints, enable the following Group Policy: Administrative Templates > Windows Components > Windows Error Reporting > Disable Windows Error Reporting. This means error reporting information won't be sent back to Microsoft.|HTTPS|co4.telecommand.telemetry.microsoft.com| -|||HTTP|cs11.wpc.v0cdn.net| -|||HTTPS|cs1137.wpc.gammacdn.net| -|||TLS v1.2|modern.watson.data.microsoft.com*| -|||HTTPS|watson.telemetry.microsoft.com| -|Licensing|The following endpoint is used for online activation and some app licensing. To turn off traffic for this endpoint, disable the Windows License Manager Service. This will also block online activation and app licensing may not work.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#9-license-manager)| -|||HTTPS|*licensing.mp.microsoft.com*| -|Location|The following endpoints are used for location data. If you turn off traffic for this endpoint, apps can't use location data. ||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-location)| -|||HTTPS|inference.location.live.net| -|||HTTP|location-inference-westus.cloudapp.net| -|Maps|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-offlinemaps)| -||The following endpoints are used to check for updates to maps that have been downloaded for offline use. If you turn off traffic for this endpoint, offline maps won't be updated.|HTTPS|*g.akamaiedge.net| -|||HTTP|*maps.windows.com*| -|Microsoft Account|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-microsoft-account)| -||The following endpoints are used for Microsoft accounts to sign in. If you turn off traffic for these endpoints, users can't sign in with Microsoft accounts. |HTTP|login.msa.akadns6.net| -|||HTTP|us.configsvc1.live.com.akadns.net| -|Microsoft Edge|This traffic is related to the Microsoft Edge browser.|HTTPS|iecvlist.microsoft.com| -|Microsoft forward link redirection service (FWLink)|The following endpoint is used by the Microsoft forward link redirection service (FWLink) to redirect permanent web links to their actual, sometimes transitory, URL. FWlinks are similar to URL shorteners, just longer. If you disable this endpoint, Windows Defender won't be able to update its malware definitions; links from Windows and other Microsoft products to the Web won't work; and PowerShell updateable Help won't update. To disable the traffic, instead disable the traffic that's getting forwarded.|HTTPS|go.microsoft.com| -|||HTTP|www.microsoft.com| -|Microsoft Store|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -||The following endpoint is used for the Windows Push Notification Services (WNS). WNS enables third-party developers to send toast, tile, badge, and raw updates from their own cloud service. This provides a mechanism to deliver new updates to your users in a power-efficient and dependable way. If you turn off traffic for this endpoint, push notifications will no longer work, including MDM device management, mail synchronization, settings synchronization.|HTTPS|*.wns.windows.com| -||The following endpoint is used to revoke licenses for malicious apps in the Microsoft Store. To turn off traffic for this endpoint, either uninstall the app or disable the Microsoft Store. If you disable the Microsoft Store, other Microsoft Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.|HTTP|storecatalogrevocation.storequality.microsoft.com| -||The following endpoint is used to download image files that are called when applications run (Microsoft Store or Inbox MSN Apps). If you turn off traffic for these endpoints, the image files won't be downloaded, and apps can't be installed or updated from the Microsoft Store. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.|HTTPS|img-prod-cms-rt-microsoft-com*| -|||HTTPS|store-images.microsoft.com| -||The following endpoints are used to communicate with Microsoft Store. If you turn off traffic for these endpoints, apps can't be installed or updated from the Microsoft Store. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.|TLS v1.2|*.md.mp.microsoft.com*| -|||HTTPS|*displaycatalog.mp.microsoft.com| -|||HTTP|storeedgefd.dsx.mp.microsoft.com| -|||HTTP|markets.books.microsoft.com| -|||HTTP |share.microsoft.com| -|Network Connection Status Indicator (NCSI)|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-ncsi)| -||Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to this endpoint to determine if the device can communicate with the Internet. If you turn off traffic for this endpoint, NCSI won't be able to determine if the device is connected to the Internet and the network status tray icon will show a warning.|HTTP|www.msftconnecttest.com*| -|Office|The following endpoints are used to connect to the Microsoft 365 admin center's shared infrastructure, including Office in a browser. For more info, see Office 365 URLs and IP address ranges. You can turn this off by removing all Microsoft Office apps and the Mail and Calendar apps. If you turn off traffic for these endpoints, users won't be able to save documents to the cloud or see their recently used documents.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-windowsstore)| -|||HTTP|*.c-msedge.net| -|||HTTPS|*.e-msedge.net| -|||HTTPS|*.s-msedge.net| -|||HTTPS|nexusrules.officeapps.live.com| -|||HTTPS|ocos-office365-s2s.msedge.net| -|||HTTPS|officeclient.microsoft.com| -|||HTTPS|outlook.office365.com| -|||HTTPS|client-office365-tas.msedge.net| -|||HTTPS|www.office.com| -|||HTTPS|onecollector.cloudapp.aria| -|||HTTP|v10.events.data.microsoft.com/onecollector/1.0/| -|||HTTPS|self.events.data.microsoft.com| -||The following endpoint is used to connect the Office To-Do app to its cloud service. To turn off traffic for this endpoint, either uninstall the app or disable the Microsoft Store.|HTTPS|to-do.microsoft.com| -|OneDrive|The following endpoints are related to OneDrive. If you turn off traffic for these endpoints, anything that relies on g.live.com to get updated URL information will no longer work.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-onedrive)| -|||HTTP \ HTTPS|g.live.com/1rewlive5skydrive/*| -|||HTTP|msagfx.live.com| -|||HTTPS|oneclient.sfx.ms| -|||HTTP| windows.policies.live.net| -|Settings|The following endpoint is used as a way for apps to dynamically update their configuration. Apps such as System Initiated User Feedback and the Xbox app use it. If you turn off traffic for this endpoint, an app that uses this endpoint may stop working.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -|||HTTPS|cy2.settings.data.microsoft.com.akadns.net| -|||HTTPS|settings.data.microsoft.com| -|||HTTPS|settings-win.data.microsoft.com| -|Skype|The following endpoint is used to retrieve Skype configuration values. To turn off traffic for this endpoint, either uninstall the app or disable the Microsoft Store. If you disable the Microsoft store, other Microsoft Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-windowsstore)| -|||HTTPS|browser.pipe.aria.microsoft.com| -|||HTTP|config.edge.skype.com| -|||HTTP|s2s.config.skype.com| -|||HTTPS|skypeecs-prod-usw-0-b.cloudapp.net| -|Windows Defender|The following endpoint is used for Windows Defender when Cloud-based Protection is enabled. If you turn off traffic for this endpoint, the device won't use Cloud-based Protection.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-defender)| -|||HTTPS|wdcp.microsoft.com| -|||HTTPS|definitionupdates.microsoft.com| -|||HTTPS|go.microsoft.com| -||The following endpoints are used for Windows Defender Smartscreen reporting and notifications. If you turn off traffic for these endpoints, Smartscreen notifications won't appear.|HTTPS|*.smartscreen.microsoft.com| -|||HTTPS|smartscreen-sn3p.smartscreen.microsoft.com| -|||HTTPS|unitedstates.smartscreen-prod.microsoft.com| -|Windows Spotlight|The following endpoints are used to retrieve Windows Spotlight metadata that describes content, such as references to image locations, as well as suggested apps, Microsoft account notifications, and Windows tips. If you turn off traffic for these endpoints, Windows Spotlight will still try to deliver new lock screen images and updated content but it will fail; suggested apps, Microsoft account notifications, and Windows tips won't be downloaded. For more information, see Windows Spotlight.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-spotlight)| -|||TLS v1.2|*.search.msn.com| -|||HTTPS|arc.msn.com| -|||HTTPS|g.msn.com*| -|||HTTPS|query.prod.cms.rt.microsoft.com| -|||HTTPS|ris.api.iris.microsoft.com| -|Windows Update|The following endpoint is used for Windows Update downloads of apps and OS updates, including HTTP downloads or HTTP downloads blended with peers. If you turn off traffic for this endpoint, Windows Update downloads won't be managed, as critical metadata that is used to make downloads more resilient is blocked. Downloads may be impacted by corruption (resulting in re-downloads of full files). Additionally, downloads of the same update by multiple devices on the same local network won't use peer devices for bandwidth reduction.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-updates)| -|||HTTPS|*.prod.do.dsp.mp.microsoft.com| -||The following endpoints are used to download operating system patches, updates, and apps from Microsoft Store. If you turn off traffic for these endpoints, the device won't be able to download updates for the operating system.|HTTP|*.dl.delivery.mp.microsoft.com| -|||HTTP|*.windowsupdate.com| -||The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store. If you turn off traffic for these endpoints, the device won't be able to connect to Windows Update and Microsoft Update to help keep the device secure. Also, the device won't be able to acquire and update apps from the Store. These are dependent on also enabling "Device authentication" and "Microsoft Account" endpoints.|HTTPS|*.delivery.mp.microsoft.com| -|||HTTPS|*.update.microsoft.com| -||The following endpoint is used for compatibility database updates for Windows.|HTTP|adl.windows.com| -||The following endpoint is used for content regulation. If you turn off traffic for this endpoint, the Windows Update Agent will be unable to contact the endpoint and fallback behavior will be used. This may result in content being either incorrectly downloaded or not downloaded at all.|HTTPS|tsfe.trafficshaping.dsp.mp.microsoft.com| - -## Other Windows 10 editions - -To view endpoints for other versions of Windows 10 Enterprise, see: - -- [Manage connection endpoints for Windows 10, version 21H2](manage-windows-21H2-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1809](manage-windows-1809-endpoints.md) - -To view endpoints for non-Enterprise Windows 10 editions, see: - -- [Windows 10, version 21H1, connection endpoints for non-Enterprise editions](windows-endpoints-21H1-non-enterprise-editions.md) -- [Windows 10, version 1809, connection endpoints for non-Enterprise editions](windows-endpoints-1809-non-enterprise-editions.md) - -## Related links - -- [Office 365 URLs and IP address ranges](/microsoft-365/enterprise/urls-and-ip-address-ranges) -- [Network infrastructure requirements for Microsoft Intune](/mem/intune/fundamentals/intune-endpoints) diff --git a/windows/privacy/manage-windows-1909-endpoints.md b/windows/privacy/manage-windows-1909-endpoints.md deleted file mode 100644 index 7e47f156a7..0000000000 --- a/windows/privacy/manage-windows-1909-endpoints.md +++ /dev/null @@ -1,133 +0,0 @@ ---- -title: Connection endpoints for Windows 10 Enterprise, version 1909 -description: Explains what Windows 10 endpoints are used for, how to turn off traffic to them, and the impact. Specific to Windows 10 Enterprise, version 1909. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 01/18/2018 -ms.topic: reference ---- -# Manage connection endpoints for Windows 10 Enterprise, version 1909 - -**Applies to** - -- Windows 10 Enterprise, version 1909 - -Some Windows components, app, and related services transfer data to Microsoft network endpoints. Some examples include: - -- Connecting to Microsoft Office and Windows sites to download the latest app and security updates. -- Connecting to email servers to send and receive email. -- Connecting to the web for every day web browsing. -- Connecting to the cloud to store and access backups. -- Using your location to show a weather forecast. - -Details about the different ways to control traffic to these endpoints are covered in [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md). -Where applicable, each endpoint covered in this article includes a link to the specific details on how to control that traffic. - -The following methodology was used to derive these network endpoints: - -1. Set up the latest version of Windows 10 on a test virtual machine using the default settings. -2. Leave the device(s) running idle for a week ("idle" means a user isn't interacting with the system/device). -3. Use globally accepted network protocol analyzer/capturing tools and log all background egress traffic. -4. Compile reports on traffic going to public IP addresses. -5. The test virtual machine(s) was logged into using a local account, and wasn't joined to a domain or Azure Active Directory. -6. All traffic was captured in our lab using an IPV4 network. Therefore, no IPV6 traffic is reported here. -7. These tests were conducted in an approved Microsoft lab. It's possible your results may be different. -8. These tests were conducted for one week, but if you capture traffic for longer you may have different results. - -> [!NOTE] -> Microsoft uses global load balancers that can appear in network trace-routes. For example, an endpoint for *.akadns.net might be used to load balance requests to an Azure datacenter, which can change over time. - -## Windows 10 1909 Enterprise connection endpoints - -|Area|Description|Protocol|Destination| -|----------------|----------|----------|------------| -|Apps|||[Learn how to turn off traffic to the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-windowsstore)| -||The following endpoint is used for the Weather app. To turn off traffic for this endpoint, either uninstall the Weather app or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|HTTP|tile-service.weather.microsoft.com| -|||HTTP|tile-service.weather.microsoft.com/en-us/livetile/preinstall| -||The following endpoint is used for OneNote Live Tile. To turn off traffic for this endpoint, either uninstall OneNote or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|HTTPS|cdn.onenote.net/*| -||The following endpoint is used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser. To turn off traffic for this endpoint, either uninstall the Photos app or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|TLS v1.2|evoke-windowsservices-tas.msedge.net| -|Certificates|Certificates are digital files, stored on client devices, used to both encrypt data and verify the identity of an individual or organization. Trusted root certificates issued by a certification authority (CA) are stored in a certificate trust list (CTL). The Automatic Root Certificates Update mechanism contacts Windows Updates to update the CTL. If a new version of the CTL is identified, the list of trusted root certificates cached on the local device will be updated. Untrusted certificates are certificates where the server certificate issuer is unknown or isn't trusted by the service. Untrusted certificates are also stored in a list on the local device and updated by the Automatic Root Certificates Update mechanism.

If automatic updates are turned off, applications and websites may stop working because they didn't receive an updated root certificate that the application uses. Additionally, the list of untrusted certificates will no longer be updated, which increases the attack vector on the device.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update)| -|||HTTP|ctldl.windowsupdate.com| -|Cortana and Live Tiles|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-cortana)| -||The following endpoints are related to Cortana and Live Tiles. If you turn off traffic for this endpoint, you'll block updates to Cortana greetings, tips, and Live Tiles.|HTTPS|www.bing.com*| -|||HTTPS|www.bing.com/client/config| -|||TLS v1.2|fp.msedge.net| -|Device authentication|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -||The following endpoint is used to authenticate a device. If you turn off traffic for this endpoint, the device won't be authenticated.|HTTPS|login.live.com*| -|Diagnostic Data|The following endpoints are used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service. If you turn off traffic for this endpoint, diagnostic and usage information, which helps Microsoft find and fix problems and improve our products and services, won't be sent back to Microsoft. ||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -|||HTTP|v10.events.data.microsoft.com| -||The following endpoints are used by Windows Error Reporting. To turn off traffic for these endpoints, enable the following Group Policy: Administrative Templates > Windows Components > Windows Error Reporting > Disable Windows Error Reporting. This means error reporting information won't be sent back to Microsoft.|HTTPS|*.telecommand.telemetry.microsoft.com| -|||TLS v1.2|watson.*.microsoft.com| -|Licensing|The following endpoint is used for online activation and some app licensing. To turn off traffic for this endpoint, disable the Windows License Manager Service. This will also block online activation and app licensing may not work.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#9-license-manager)| -|||HTTPS|*licensing.mp.microsoft.com| -|||HTTPS|licensing.mp.microsoft.com/v7.0/licenses/content| -|Location|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-location)| -||The following endpoints are used for location data. If you turn off traffic for this endpoint, apps can't use location data.|TLS v1.2|inference.location.live.net| -|Maps|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-offlinemaps)| -||The following endpoints are used to check for updates to maps that have been downloaded for offline use. If you turn off traffic for this endpoint, offline maps won't be updated.|HTTP|*maps.windows.com| -|Microsoft Account|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-microsoft-account)| -||The following endpoints are used for Microsoft accounts to sign in. If you turn off traffic for these endpoints, users can't sign in with Microsoft accounts. |TLS v1.2|*login.live.com| -|Microsoft Edge|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#13-microsoft-edge)| -||This traffic is related to the Microsoft Edge browser.|HTTPS|iecvlist.microsoft.com| -|Microsoft forward link redirection service (FWLink)|The following endpoint is used by the Microsoft forward link redirection service (FWLink) to redirect permanent web links to their actual, sometimes transitory, URL. FWlinks are similar to URL shorteners, just longer. If you disable this endpoint, Windows Defender won't be able to update its malware definitions; links from Windows and other Microsoft products to the Web won't work; and PowerShell updateable Help won't update. To disable the traffic, instead disable the traffic that's getting forwarded.|HTTPS|go.microsoft.com| -|Microsoft Store|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -||The following endpoints are used to revoke licenses for malicious apps in the Microsoft Store. To turn off traffic for this endpoint, either uninstall the app or disable the Microsoft Store. If you disable the Microsoft Store, other Microsoft Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them|TLS v1.2|1storecatalogrevocation.storequality.microsoft.com| -|||HTTPS|storecatalogrevocation.storequality.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|HTTPS|manage.devcenter.microsoft.com| -||The following endpoints are used to communicate with Microsoft Store. If you turn off traffic for these endpoints, apps can't be installed or updated from the Microsoft Store.|HTTPS|*displaycatalog.mp.microsoft.com| -|Network Connection Status Indicator (NCSI)|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-ncsi)| -||Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to this endpoint to determine if the device can communicate with the Internet. If you turn off traffic for this endpoint, NCSI won't be able to determine if the device is connected to the Internet and the network status tray icon will show a warning.|HTTP|www.msftconnecttest.com*| -|Office|The following endpoints are used to connect to the Office 365 portal's shared infrastructure, including Office in a browser. For more info, see Office 365 URLs and IP address ranges. You can turn this off by removing all Microsoft Office apps and the Mail and Calendar apps. If you turn off traffic for these endpoints, users won't be able to save documents to the cloud or see their recently used documents.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -|||HTTP/ TLS v1.2|v10.events.data.microsoft.com/onecollector/1.0/| -|||TLS v1.2|*.blob.core.windows.net| -|||HTTP|officehomeblobs.blob.core.windows.net| -||The following endpoints are used by Microsoft OfficeHub to get the metadata of Microsoft Office apps |TLS v1.2|c-ring.msedge.net| -|OneDrive|The following endpoints are related to OneDrive. If you turn off traffic for these endpoints, anything that relies on g.live.com to get updated URL information will no longer work.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-onedrive)| -|||TLS v1.2|*g.live.com| -|||HTTPS|oneclient.sfx.ms| -|||HTTPS| logincdn.msauth.net| -|||HTTP| windows.policies.live.net| -|Settings|The following endpoint is used as a way for apps to dynamically update their configuration. Apps such as System Initiated User Feedback and the Xbox app use it. If you turn off traffic for this endpoint, an app that uses this endpoint may stop working.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -|||TLS v1.2|settings-win.data.microsoft.com| -|Skype|The following endpoint is used to retrieve Skype configuration values. To turn off traffic for this endpoint, either uninstall the app or disable the Microsoft Store. If you disable the Microsoft store, other Microsoft Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-windowsstore)| -|||HTTPS|*.pipe.aria.microsoft.com| -|||HTTP/TLS v1.2|config.edge.skype.com| -|Teams|The following endpoint is used for Microsoft Teams application.||[Learn how to turn off traffic to all of the following endpoint(s).]( manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -|||HTTPS|config.teams.microsoft.com| -|Windows Defender|The following endpoint is used for Windows Defender when Cloud-based Protection is enabled. If you turn off traffic for this endpoint, the device won't use Cloud-based Protection.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-defender)| -|||HTTPS/TLS v1.2|wdcp.microsoft.com| -||The following endpoints are used for Windows Defender SmartScreen reporting and notifications. If you turn off traffic for these endpoints, SmartScreen notifications won't appear.|HTTPS/TLS v1.2|*.smartscreen-prod.microsoft.com| -|||HTTPS|checkappexec.microsoft.com| -|Windows Spotlight|The following endpoints are used to retrieve Windows Spotlight metadata that describes content, such as references to image locations, as well as suggested apps, Microsoft account notifications, and Windows tips. If you turn off traffic for these endpoints, Windows Spotlight will still try to deliver new lock screen images and updated content but it will fail; suggested apps, Microsoft account notifications, and Windows tips won't be downloaded. For more information, see Windows Spotlight.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-spotlight)| -|||HTTPS/TLS v1.2|arc.msn.com| -|||HTTPS|ris.api.iris.microsoft.com| -|Windows Update|The following endpoint is used for Windows Update downloads of apps and OS updates, including HTTP downloads or HTTP downloads blended with peers. If you turn off traffic for this endpoint, Windows Update downloads won't be managed, as critical metadata that is used to make downloads more resilient is blocked. Downloads may be impacted by corruption (resulting in re-downloads of full files). Additionally, downloads of the same update by multiple devices on the same local network won't use peer devices for bandwidth reduction.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-updates)| -|||HTTPS/TLS v1.2|*.prod.do.dsp.mp.microsoft.com| -||The following endpoints are used to download operating system patches, updates, and apps from Microsoft Store. If you turn off traffic for these endpoints, the device won't be able to download updates for the operating system.|HTTP|*.dl.delivery.mp.microsoft.com| -|||HTTP|*.windowsupdate.com| -||The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store. If you turn off traffic for these endpoints, the device won't be able to connect to Windows Update and Microsoft Update to help keep the device secure. Also, the device won't be able to acquire and update apps from the Store. These are dependent on also enabling "Device authentication" and "Microsoft Account" endpoints.|HTTP|*.delivery.mp.microsoft.com| -|||HTTPS/TLS v1.2|*.update.microsoft.com| -||The following endpoint is used for compatibility database updates for Windows.|HTTP|adl.windows.com| -||The following endpoint is used for content regulation. If you turn off traffic for this endpoint, the Windows Update Agent will be unable to contact the endpoint and fallback behavior will be used. This may result in content being either incorrectly.|HTTPS/TLS v1.2|tsfe.trafficshaping.dsp.mp.microsoft.com| -## Other Windows 10 editions - -To view endpoints for other versions of Windows 10 Enterprise, see: - -- [Manage connection endpoints for Windows 10, version 21H2](manage-windows-21H2-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1903](manage-windows-1903-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1809](manage-windows-1809-endpoints.md) - -To view endpoints for non-Enterprise Windows 10 editions, see: - -- [Windows 10, version 21H1, connection endpoints for non-Enterprise editions](windows-endpoints-21H1-non-enterprise-editions.md) -- [Windows 10, version 1903, connection endpoints for non-Enterprise editions](windows-endpoints-1903-non-enterprise-editions.md) -- [Windows 10, version 1809, connection endpoints for non-Enterprise editions](windows-endpoints-1809-non-enterprise-editions.md) - -## Related links - -- [Office 365 URLs and IP address ranges](/microsoft-365/enterprise/urls-and-ip-address-ranges) -- [Network infrastructure requirements for Microsoft Intune](/mem/intune/fundamentals/intune-endpoints) diff --git a/windows/privacy/manage-windows-2004-endpoints.md b/windows/privacy/manage-windows-2004-endpoints.md deleted file mode 100644 index f9101f343c..0000000000 --- a/windows/privacy/manage-windows-2004-endpoints.md +++ /dev/null @@ -1,135 +0,0 @@ ---- -title: Connection endpoints for Windows 10 Enterprise, version 2004 -description: Explains what Windows 10 endpoints are used for, how to turn off traffic to them, and the impact. Specific to Windows 10 Enterprise, version 2004. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 01/18/2018 -ms.topic: reference ---- -# Manage connection endpoints for Windows 10 Enterprise, version 2004 - -**Applies to** - -- Windows 10 Enterprise, version 2004 - -Some Windows components, app, and related services transfer data to Microsoft network endpoints. Some examples include: - -- Connecting to Microsoft Office and Windows sites to download the latest app and security updates. -- Connecting to email servers to send and receive email. -- Connecting to the web for every day web browsing. -- Connecting to the cloud to store and access backups. -- Using your location to show a weather forecast. - -Details about the different ways to control traffic to these endpoints are covered in [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md). -Where applicable, each endpoint covered in this article includes a link to the specific details on how to control that traffic. - -The following methodology was used to derive these network endpoints: - -1. Set up the latest version of Windows 10 on a test virtual machine using the default settings. -2. Leave the device(s) running idle for a week ("idle" means a user isn't interacting with the system/device). -3. Use globally accepted network protocol analyzer/capturing tools and log all background egress traffic. -4. Compile reports on traffic going to public IP addresses. -5. The test virtual machine(s) was logged into using a local account, and wasn't joined to a domain or Azure Active Directory. -6. All traffic was captured in our lab using an IPV4 network. Therefore, no IPV6 traffic is reported here. -7. These tests were conducted in an approved Microsoft lab. It's possible your results may be different. -8. These tests were conducted for one week, but if you capture traffic for longer you may have different results. - -> [!NOTE] -> Microsoft uses global load balancers that can appear in network trace-routes. For example, an endpoint for *.akadns.net might be used to load balance requests to an Azure datacenter, which can change over time. - -## Windows 10 2004 Enterprise connection endpoints - -|Area|Description|Protocol|Destination| -|----------------|----------|----------|------------| -|Apps|||[Learn how to turn off traffic to the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-windowsstore)| -||The following endpoints are used for the Weather app. To turn off traffic for this endpoint, either uninstall the Weather app or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|HTTPS|blob.weather.microsoft.com| -|||HTTP|tile-service.weather.microsoft.com| -||The following endpoint is used for OneNote Live Tile. To turn off traffic for this endpoint, either uninstall OneNote or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|HTTPS|cdn.onenote.net/*| -||The following endpoint is used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser. To turn off traffic for this endpoint, either uninstall the Photos app or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|TLSv1.2|evoke-windowsservices-tas.msedge.net| -|Certificates|Certificates are digital files, stored on client devices, used to both encrypt data and verify the identity of an individual or organization. Trusted root certificates issued by a certification authority (CA) are stored in a certificate trust list (CTL). The Automatic Root Certificates Update mechanism contacts Windows Updates to update the CTL. If a new version of the CTL is identified, the list of trusted root certificates cached on the local device will be updated. Untrusted certificates are certificates where the server certificate issuer is unknown or isn't trusted by the service. Untrusted certificates are also stored in a list on the local device and updated by the Automatic Root Certificates Update mechanism.

If automatic updates are turned off, applications and websites may stop working because they didn't receive an updated root certificate that the application uses. Additionally, the list of untrusted certificates will no longer be updated, which increases the attack vector on the device.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update)| -|||HTTP|ctldl.windowsupdate.com| -|Cortana and Live Tiles|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-cortana)| -||The following endpoints are related to Cortana and Live Tiles. If you turn off traffic for this endpoint, you'll block updates to Cortana greetings, tips, and Live Tiles.|TLSv1.2|www.bing.com*| -|Device metadata|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#4-device-metadata-retrieval)| -||The following endpoint is used to retrieve device metadata. If you turn off traffic for this endpoint, metadata won't be updated for the device.|HTTPS|dmd.metaservices.microsoft.com| -|Diagnostic Data|The following endpoints are used by the Windows Diagnostic Data, Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service. If you turn off traffic for this endpoint, diagnostic and usage information, which helps Microsoft improve our products and services, won't be sent back to Microsoft. ||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -|||TLSv1.2|v10.events.data.microsoft.com| -||The following endpoints are used by Windows Error Reporting. To turn off traffic for these endpoints, enable the following Group Policy: Administrative Templates > Windows Components > Windows Error Reporting > Disable Windows Error Reporting. This means error reporting information won't be sent back to Microsoft.|HTTPS|*.telecommand.telemetry.microsoft.com| -|||TLS v1.2|watson.*.microsoft.com| -|Font Streaming|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#6-font-streaming)| -||The following endpoints are used to download fonts on demand. If you turn off traffic for these endpoints, you won't be able to download fonts on demand. |HTTPS|fs.microsoft.com*| -|Licensing|The following endpoint is used for online activation and some app licensing. To turn off traffic for this endpoint, disable the Windows License Manager Service. This will also block online activation and app licensing may not work.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#9-license-manager)| -|||HTTPS|*licensing.mp.microsoft.com| -|Maps|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-offlinemaps)| -||The following endpoints are used to check for updates to maps that have been downloaded for offline use. If you turn off traffic for this endpoint, offline maps won't be updated.|TLSv1.2|*maps.windows.com| -|Microsoft Account|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-microsoft-account)| -||The following endpoints are used for Microsoft accounts to sign in. If you turn off traffic for these endpoints, users can't sign in with Microsoft accounts. |TLSv1.2|*login.live.com| -|Microsoft forward link redirection service (FWLink)|The following endpoint is used by the Microsoft forward link redirection service (FWLink) to redirect permanent web links to their actual, sometimes transitory, URL. FWlinks are similar to URL shorteners, just longer. If you disable this endpoint, Windows Defender won't be able to update its malware definitions; links from Windows and other Microsoft products to the Web won't work; and PowerShell updateable Help won't update. To disable the traffic, instead disable the traffic that's getting forwarded.|HTTPS|go.microsoft.com| -|Microsoft Store|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -||The following endpoint is used to download image files that are called when applications run (Microsoft Store or Inbox MSN Apps). If you turn off traffic for these endpoints, the image files won't be downloaded, and apps can't be installed or updated from the Microsoft Store. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.|TLSv1.2/HTTPS|img-prod-cms-rt-microsoft-com.akamaized.net| -||The following endpoint is used for the Windows Push Notification Services (WNS). WNS enables third-party developers to send toast, tile, badge, and raw updates from their own cloud service. This provides a mechanism to deliver new updates to your users in a power-efficient and dependable way. If you turn off traffic for this endpoint, push notifications will no longer work, including MDM device management, mail synchronization, settings synchronization.|TLSv1.2|*.wns.windows.com| -||The following endpoint is used to revoke licenses for malicious apps in the Microsoft Store. To turn off traffic for this endpoint, either uninstall the app or disable the Microsoft Store. If you disable the Microsoft Store, other Microsoft Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.|TLSv1.2|storecatalogrevocation.storequality.microsoft.com| -||The following endpoints are used to communicate with Microsoft Store. If you turn off traffic for these endpoints, apps can't be installed or updated from the Microsoft Store.|HTTPS|*displaycatalog.mp.microsoft.com| -|||HTTP|*.dl.delivery.mp.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|TLSv1.2|manage.devcenter.microsoft.com| -|Network Connection Status Indicator (NCSI)|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-ncsi)| -||Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to this endpoint to determine if the device can communicate with the Internet. If you turn off traffic for this endpoint, NCSI won't be able to determine if the device is connected to the Internet and the network status tray icon will show a warning.|HTTP|www.msftconnecttest.com*| -|Office|The following endpoints are used to connect to the Office 365 portal's shared infrastructure, including Office in a browser. For more info, see Office 365 URLs and IP address ranges. You can turn this off by removing all Microsoft Office apps and the Mail and Calendar apps. If you turn off traffic for these endpoints, users won't be able to save documents to the cloud or see their recently used documents.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -|||HTTPS|*ow1.res.office365.com| -|||HTTPS|office.com| -|||HTTPS|blobs.officehome.msocdn.com| -|||HTTPS|self.events.data.microsoft.com| -|OneDrive|The following endpoints are related to OneDrive. If you turn off traffic for these endpoints, anything that relies on g.live.com to get updated URL information will no longer work.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-onedrive)| -|||TLSv1.2|*g.live.com| -|||TLSv1.2|oneclient.sfx.ms| -|||HTTPS| logincdn.msauth.net| -|Settings|The following endpoint is used as a way for apps to dynamically update their configuration. Apps such as System Initiated User Feedback and the Xbox app use it. If you turn off traffic for this endpoint, an app that uses this endpoint may stop working.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -|||TLSv1.2|settings-win.data.microsoft.com| -|Skype|The following endpoint is used to retrieve Skype configuration values. To turn off traffic for this endpoint, either uninstall the app or disable the Microsoft Store. If you disable the Microsoft store, other Microsoft Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-windowsstore)| -|||HTTPS|*.pipe.aria.microsoft.com| -|||HTTPS|config.edge.skype.com| -|Teams|The following endpoint is used for Microsoft Teams application.||[Learn how to turn off traffic to all of the following endpoint(s).]( manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -|||TLSv1.2|config.teams.microsoft.com| -|Windows Defender|The following endpoint is used for Windows Defender when Cloud-based Protection is enabled. If you turn off traffic for this endpoint, the device won't use Cloud-based Protection.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-defender)| -|||TLSv1.2|wdcp.microsoft.com| -|||HTTPS|go.microsoft.com| -||The following endpoints are used for Windows Defender SmartScreen reporting and notifications. If you turn off traffic for these endpoints, SmartScreen notifications won't appear.|HTTPS|*.smartscreen-prod.microsoft.com| -|||HTTPS|*.smartscreen.microsoft.com | -|||HTTPS|checkappexec.microsoft.com| -|Windows Spotlight|The following endpoints are used to retrieve Windows Spotlight metadata that describes content, such as references to image locations, as well as suggested apps, Microsoft account notifications, and Windows tips. If you turn off traffic for these endpoints, Windows Spotlight will still try to deliver new lock screen images and updated content but it will fail; suggested apps, Microsoft account notifications, and Windows tips won't be downloaded. For more information, see Windows Spotlight.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-spotlight)| -|||TLSv1.2|arc.msn.com| -|Windows Update|The following endpoint is used for Windows Update downloads of apps and OS updates, including HTTP downloads or HTTP downloads blended with peers. If you turn off traffic for this endpoint, Windows Update downloads won't be managed, as critical metadata that is used to make downloads more resilient is blocked. Downloads may be impacted by corruption (resulting in re-downloads of full files). Additionally, downloads of the same update by multiple devices on the same local network won't use peer devices for bandwidth reduction.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-updates)| -|||TLSv1.2|*.prod.do.dsp.mp.microsoft.com| -||The following endpoints are used to download operating system patches, updates, and apps from Microsoft Store. If you turn off traffic for these endpoints, the device won't be able to download updates for the operating system.|HTTP|*.dl.delivery.mp.microsoft.com| -|||HTTP|*.windowsupdate.com| -||The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store. If you turn off traffic for these endpoints, the device won't be able to connect to Windows Update and Microsoft Update to help keep the device secure. Also, the device won't be able to acquire and update apps from the Store. These are dependent on also enabling "Device authentication" and "Microsoft Account" endpoints.|HTTPS|*.delivery.mp.microsoft.com| -|||TLSv1.2|*.update.microsoft.com| -||The following endpoint is used for compatibility database updates for Windows.|HTTP|adl.windows.com| -||The following endpoint is used for content regulation. If you turn off traffic for this endpoint, the Windows Update Agent will be unable to contact the endpoint and fallback behavior will be used. This may result in content being either incorrectly.|TLSv1.2|tsfe.trafficshaping.dsp.mp.microsoft.com| -|Xbox Live|The following endpoint is used for Xbox Live.||[Learn how to turn off traffic to all of the following endpoint(s).]( manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -|||TLSv1.2|dlassets-ssl.xboxlive.com| - -## Other Windows 10 editions - -To view endpoints for other versions of Windows 10 Enterprise, see: - -- [Manage connection endpoints for Windows 10, version 21H2](manage-windows-21H2-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1909](manage-windows-1909-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1903](manage-windows-1903-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1809](manage-windows-1809-endpoints.md) - -To view endpoints for non-Enterprise Windows 10 editions, see: - -- [Windows 10, version 21H1, connection endpoints for non-Enterprise editions](windows-endpoints-21H1-non-enterprise-editions.md) -- [Windows 10, version 1909, connection endpoints for non-Enterprise editions](windows-endpoints-1909-non-enterprise-editions.md) -- [Windows 10, version 1903, connection endpoints for non-Enterprise editions](windows-endpoints-1903-non-enterprise-editions.md) -- [Windows 10, version 1809, connection endpoints for non-Enterprise editions](windows-endpoints-1809-non-enterprise-editions.md) - -## Related links - -- [Office 365 URLs and IP address ranges](/microsoft-365/enterprise/urls-and-ip-address-ranges) -- [Network infrastructure requirements for Microsoft Intune](/mem/intune/fundamentals/intune-endpoints) diff --git a/windows/privacy/manage-windows-20H2-endpoints.md b/windows/privacy/manage-windows-20H2-endpoints.md deleted file mode 100644 index 8ae07104f4..0000000000 --- a/windows/privacy/manage-windows-20H2-endpoints.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -title: Connection endpoints for Windows 10 Enterprise, version 20H2 -description: Explains what Windows 10 endpoints are used for, how to turn off traffic to them, and the impact. Specific to Windows 10 Enterprise, version 20H2. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 01/18/2018 -ms.topic: reference ---- - -# Manage connection endpoints for Windows 10 Enterprise, version 20H2 - -**Applies to** - -- Windows 10 Enterprise, version 20H2 - -Some Windows components, app, and related services transfer data to Microsoft network endpoints. Some examples include: - -- Connecting to Microsoft Office and Windows sites to download the latest app and security updates. -- Connecting to email servers to send and receive email. -- Connecting to the web for every day web browsing. -- Connecting to the cloud to store and access backups. -- Using your location to show a weather forecast. - -Details about the different ways to control traffic to these endpoints are covered in [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md). -Where applicable, each endpoint covered in this article includes a link to the specific details on how to control that traffic. - -The following methodology was used to derive these network endpoints: - -1. Set up the latest version of Windows 10 on a test virtual machine using the default settings. -2. Leave the device(s) running idle for a week ("idle" means a user isn't interacting with the system/device). -3. Use globally accepted network protocol analyzer/capturing tools and log all background egress traffic. -4. Compile reports on traffic going to public IP addresses. -5. The test virtual machine(s) was logged into using a local account, and wasn't joined to a domain or Azure Active Directory. -6. All traffic was captured in our lab using an IPV4 network. Therefore, no IPV6 traffic is reported here. -7. These tests were conducted in an approved Microsoft lab. It's possible your results may be different. -8. These tests were conducted for one week, but if you capture traffic for longer you may have different results. - -> [!NOTE] -> Microsoft uses global load balancers that can appear in network trace-routes. For example, an endpoint for *.akadns.net might be used to load balance requests to an Azure datacenter, which can change over time. - -## Windows 10 20H2 Enterprise connection endpoints - -|Area|Description|Protocol|Destination| -|----------------|----------|----------|------------| -|Apps|||[Learn how to turn off traffic to the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-windowsstore)| -||The following endpoint is used for the Weather app. To turn off traffic for this endpoint, either uninstall the Weather app or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|HTTP|tile-service.weather.microsoft.com| -||The following endpoint is used for OneNote Live Tile. To turn off traffic for this endpoint, either uninstall OneNote or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|TLSv1.2/HTTPS/HTTP|cdn.onenote.net| -||The following endpoint is used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser. To turn off traffic for this endpoint, either uninstall the Photos app or disable the Microsoft Store. If you disable the Microsoft store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|TLSv1.2/HTTPS|evoke-windowsservices-tas.msedge.net| -|Certificates|Certificates are digital files, stored on client devices, used to both encrypt data and verify the identity of an individual or organization. Trusted root certificates issued by a certification authority (CA) are stored in a certificate trust list (CTL). The Automatic Root Certificates Update mechanism contacts Windows Updates to update the CTL. If a new version of the CTL is identified, the list of trusted root certificates cached on the local device will be updated. Untrusted certificates are certificates where the server certificate issuer is unknown or isn't trusted by the service. Untrusted certificates are also stored in a list on the local device and updated by the Automatic Root Certificates Update mechanism.

If automatic updates are turned off, applications and websites may stop working because they did not receive an updated root certificate that the application uses. Additionally, the list of untrusted certificates will no longer be updated, which increases the attack vector on the device. ||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update)| -|||TLSv1.2/HTTPS/HTTP|ctldl.windowsupdate.com| -|Cortana and Live Tiles|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-cortana)| -||The following endpoints are related to Cortana and Live Tiles. If you turn off traffic for this endpoint, you'll block updates to Cortana greetings, tips, and Live Tiles.|TLSv1.2/HTTPS/HTTP|www.bing.com*| -|||TLSv1.2/HTTPS/HTTP|fp.msedge.net| -|||TLSv1.2|I-ring.msedge.net| -|||HTTPS|s-ring.msedge.net| -|Device authentication|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -||The following endpoint is used to authenticate a device. If you turn off traffic for this endpoint, the device won't be authenticated.|HTTPS|login.live.com*| -|Device metadata|The following endpoint is used to retrieve device metadata. If you turn off traffic for this endpoint, metadata won't be updated for the device.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#4-device-metadata-retrieval)| -|||HTTP|dmd.metaservices.microsoft.com| -|Diagnostic Data|The following endpoints are used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service. If you turn off traffic for this endpoint, diagnostic and usage information, which helps Microsoft find and fix problems and improve our products and services, won't be sent back to Microsoft. ||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -|||TLSv1.2/HTTPS/HTTP|v10.events.data.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|v20.events.data.microsoft.com| -|||HTTP|www.microsoft.com| -||The following endpoints are used by Windows Error Reporting. To turn off traffic for these endpoints, enable the following Group Policy: Administrative Templates > Windows Components > Windows Error Reporting > Disable Windows Error Reporting. This means error reporting information won't be sent back to Microsoft.|TLSv1.2|telecommand.telemetry.microsoft.com| -|||TLS v1.2/HTTPS/HTTP|watson.*.microsoft.com| -|Font Streaming|The following endpoints are used to download fonts on demand. If you turn off traffic for these endpoints, you won't be able to download fonts on demand.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#6-font-streaming)| -|||HTTPS|fs.microsoft.com| -|Licensing|The following endpoint is used for online activation and some app licensing. To turn off traffic for this endpoint, disable the Windows License Manager Service. This will also block online activation and app licensing may not work.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#9-license-manager)| -|||TLSv1.2/HTTPS/HTTP|licensing.mp.microsoft.com| -|Maps|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-offlinemaps)| -||The following endpoints are used to check for updates to maps that have been downloaded for offline use. If you turn off traffic for this endpoint, offline maps won't be updated.|TLSv1.2/HTTPS/HTTP|maps.windows.com| -|Microsoft Account|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-microsoft-account)| -||The following endpoints are used for Microsoft accounts to sign in. If you turn off traffic for these endpoints, users can't sign in with Microsoft accounts. |TLSv1.2/HTTPS|login.live.com| -|Microsoft Edge|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#13-microsoft-edge)| -||This traffic is related to the Microsoft Edge browser.|HTTPS|iecvlist.microsoft.com| -||The following endpoint is used by Microsoft Edge Update service to check for new updates. If you disable this endpoint, Microsoft Edge won't be able to check for and apply new edge updates.|TLSv1.2/HTTPS/HTTP|msedge.api.cdp.microsoft.com| -|Microsoft forward link redirection service (FWLink)|The following endpoint is used by the Microsoft forward link redirection service (FWLink) to redirect permanent web links to their actual, sometimes transitory, URL. FWlinks are similar to URL shorteners, just longer. If you disable this endpoint, Windows Defender won't be able to update its malware definitions; links from Windows and other Microsoft products to the Web won't work; and PowerShell updateable Help won't update. To disable the traffic, instead disable the traffic that's getting forwarded.|HTTP|go.microsoft.com| -|Microsoft Store|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -||The following endpoint is used to download image files that are called when applications run (Microsoft Store or Inbox MSN Apps). If you turn off traffic for these endpoints, the image files won't be downloaded, and apps can't be installed or updated from the Microsoft Store. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.|HTTPS|img-prod-cms-rt-microsoft-com.akamaized.net| -||The following endpoint is needed to load the content in the Microsoft Store app.|HTTPS|livetileedge.dsx.mp.microsoft.com| -||The following endpoint is used for the Windows Push Notification Services (WNS). WNS enables third-party developers to send toast, tile, badge, and raw updates from their own cloud service. This provides a mechanism to deliver new updates to your users in a power-efficient and dependable way. If you turn off traffic for this endpoint, push notifications will no longer work, including MDM device management, mail synchronization, settings synchronization.|TLSv1.2/HTTPS|*.wns.windows.com| -||The following endpoints are used to revoke licenses for malicious apps in the Microsoft Store. To turn off traffic for this endpoint, either uninstall the app or disable the Microsoft Store. If you disable the Microsoft Store, other Microsoft Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them|TLSv1.2/HTTPS/HTTP|storecatalogrevocation.storequality.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|HTTPS|manage.devcenter.microsoft.com| -||The following endpoints are used to communicate with Microsoft Store. If you turn off traffic for these endpoints, apps can't be installed or updated from the Microsoft Store.|TLSv1.2/HTTPS/HTTP|*displaycatalog.mp.microsoft.com| -|||HTTP|share.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|TLSv1.2/HTTPS/HTTP|manage.devcenter.microsoft.com| -|Network Connection Status Indicator (NCSI)|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-ncsi)| -||Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to this endpoint to determine if the device can communicate with the Internet. If you turn off traffic for this endpoint, NCSI won't be able to determine if the device is connected to the Internet and the network status tray icon will show a warning.|HTTPS|www.msftconnecttest.com*| -|Office|The following endpoints are used to connect to the Office 365 portal's shared infrastructure, including Office in a browser. For more info, see Office 365 URLs and IP address ranges. You can turn this off by removing all Microsoft Office apps and the Mail and Calendar apps. If you turn off traffic for these endpoints, users won't be able to save documents to the cloud or see their recently used documents.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -|||HTTPS|www.office.com| -|||HTTPS|blobs.officehome.msocdn.com| -|||HTTPS|officehomeblobs.blob.core.windows.net| -|||HTTPS|self.events.data.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|outlookmobile-office365-tas.msedge.net| -|OneDrive|The following endpoints are related to OneDrive. If you turn off traffic for these endpoints, anything that relies on g.live.com to get updated URL information will no longer work.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-onedrive)| -|||TLSv1.2/HTTPS/HTTP|g.live.com| -|||TLSv1.2/HTTPS/HTTP|oneclient.sfx.ms| -|||HTTPS| logincdn.msauth.net| -|Settings|The following endpoint is used as a way for apps to dynamically update their configuration. Apps such as System Initiated User Feedback and the Xbox app use it. If you turn off traffic for this endpoint, an app that uses this endpoint may stop working.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -|||TLSv1.2/HTTPS/HTTP|settings-win.data.microsoft.com| -|||HTTPS|settings.data.microsoft.com| -|Skype|The following endpoint is used to retrieve Skype configuration values. To turn off traffic for this endpoint, either uninstall the app or disable the Microsoft Store. If you disable the Microsoft store, other Microsoft Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-windowsstore)| -|||HTTPS/HTTP|*.pipe.aria.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|config.edge.skype.com| -|Teams|The following endpoint is used for Microsoft Teams application.||[Learn how to turn off traffic to all of the following endpoint(s).]( manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -|||TLSv1.2/HTTPS/HTTP|config.teams.microsoft.com| -|Windows Defender|The following endpoint is used for Windows Defender when Cloud-based Protection is enabled. If you turn off traffic for this endpoint, the device won't use Cloud-based Protection.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-defender)| -|||HTTPS/TLSv1.2|wdcp.microsoft.com| -||The following endpoints are used for Windows Defender SmartScreen reporting and notifications. If you turn off traffic for these endpoints, SmartScreen notifications won't appear.|HTTPS|*.smartscreen-prod.microsoft.com| -|||HTTPS/HTTP|checkappexec.microsoft.com| -|Windows Spotlight|The following endpoints are used to retrieve Windows Spotlight metadata that describes content, such as references to image locations, as well as suggested apps, Microsoft account notifications, and Windows tips. If you turn off traffic for these endpoints, Windows Spotlight will still try to deliver new lock screen images and updated content but it will fail; suggested apps, Microsoft account notifications, and Windows tips won't be downloaded. For more information, see Windows Spotlight.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-spotlight)| -|||TLSv1.2/HTTPS/HTTP|arc.msn.com| -|||HTTPS|ris.api.iris.microsoft.com| -|Windows Update|The following endpoint is used for Windows Update downloads of apps and OS updates, including HTTP downloads or HTTP downloads blended with peers. If you turn off traffic for this endpoint, Windows Update downloads won't be managed, as critical metadata that is used to make downloads more resilient is blocked. Downloads may be impacted by corruption (resulting in re-downloads of full files). Additionally, downloads of the same update by multiple devices on the same local network won't use peer devices for bandwidth reduction.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-updates)| -|||TLSv1.2/HTTPS/HTTP|*.prod.do.dsp.mp.microsoft.com| -||The following endpoints are used to download operating system patches, updates, and apps from Microsoft Store. If you turn off traffic for these endpoints, the device won't be able to download updates for the operating system.|TLSv1.2/HTTPS/HTTP|*.dl.delivery.mp.microsoft.com| -|||HTTP|*.windowsupdate.com| -||The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store. If you turn off traffic for these endpoints, the device won't be able to connect to Windows Update and Microsoft Update to help keep the device secure. Also, the device won't be able to acquire and update apps from the Store. These are dependent on also enabling "Device authentication" and "Microsoft Account" endpoints.|TLSv1.2/HTTPS/HTTP|*.delivery.mp.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|*.update.microsoft.com| -||The following endpoint is used for compatibility database updates for Windows.|HTTPS|adl.windows.com| -||The following endpoint is used for content regulation. If you turn off traffic for this endpoint, the Windows Update Agent will be unable to contact the endpoint and fallback behavior will be used. This may result in content being either incorrectly downloaded or not downloaded at all.|TLSv1.2/HTTPS/HTTP|tsfe.trafficshaping.dsp.mp.microsoft.com| -|Xbox Live|The following endpoint is used for Xbox Live.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -|||HTTPS|dlassets-ssl.xboxlive.com| - - -## Other Windows 10 editions - -To view endpoints for other versions of Windows 10 Enterprise, see: - -- [Manage connection endpoints for Windows 10, version 21H2](manage-windows-21H2-endpoints.md) -- [Manage connection endpoints for Windows 10, version 2004](manage-windows-2004-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1909](manage-windows-1909-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1903](manage-windows-1903-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1809](manage-windows-1809-endpoints.md) - -To view endpoints for non-Enterprise Windows 10 editions, see: - -- [Windows 10, version 21H1, connection endpoints for non-Enterprise editions](windows-endpoints-21H1-non-enterprise-editions.md) -- [Windows 10, version 2004, connection endpoints for non-Enterprise editions](windows-endpoints-2004-non-enterprise-editions.md) -- [Windows 10, version 1909, connection endpoints for non-Enterprise editions](windows-endpoints-1909-non-enterprise-editions.md) -- [Windows 10, version 1903, connection endpoints for non-Enterprise editions](windows-endpoints-1903-non-enterprise-editions.md) -- [Windows 10, version 1809, connection endpoints for non-Enterprise editions](windows-endpoints-1809-non-enterprise-editions.md) - -## Related links - -- [Office 365 URLs and IP address ranges](/microsoft-365/enterprise/urls-and-ip-address-ranges) -- [Network infrastructure requirements for Microsoft Intune](/mem/intune/fundamentals/intune-endpoints) diff --git a/windows/privacy/manage-windows-21H1-endpoints.md b/windows/privacy/manage-windows-21H1-endpoints.md deleted file mode 100644 index 0d0e1bd833..0000000000 --- a/windows/privacy/manage-windows-21H1-endpoints.md +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: Connection endpoints for Windows 10 Enterprise, version 21H1 -description: Explains what Windows 10 endpoints are used for, how to turn off traffic to them, and the impact. Specific to Windows 10 Enterprise, version 21H1. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 01/18/2018 -ms.topic: reference ---- - -# Manage connection endpoints for Windows 10 Enterprise, version 21H1 - -**Applies to** - -- Windows 10 Enterprise, version 21H1 - -Some Windows components, app, and related services transfer data to Microsoft network endpoints. Some examples include: - -- Connecting to Microsoft Office and Windows sites to download the latest app and security updates. -- Connecting to email servers to send and receive email. -- Connecting to the web for every day web browsing. -- Connecting to the cloud to store and access backups. -- Using your location to show a weather forecast. - -Details about the different ways to control traffic to these endpoints are covered in [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md). -Where applicable, each endpoint covered in this article includes a link to the specific details on how to control that traffic. - -The following methodology was used to derive these network endpoints: - -1. Set up the latest version of Windows 10 on a test virtual machine using the default settings. -2. Leave the device(s) running idle for a week ("idle" means a user isn't interacting with the system/device). -3. Use globally accepted network protocol analyzer/capturing tools and log all background egress traffic. -4. Compile reports on traffic going to public IP addresses. -5. The test virtual machine(s) was logged into using a local account, and wasn't joined to a domain or Azure Active Directory. -6. All traffic was captured in our lab using an IPV4 network. Therefore, no IPV6 traffic is reported here. -7. These tests were conducted in an approved Microsoft lab. It's possible your results may be different. -8. These tests were conducted for one week, but if you capture traffic for longer you may have different results. - -> [!NOTE] -> Microsoft uses global load balancers that can appear in network trace-routes. For example, an endpoint for *.akadns.net might be used to load balance requests to an Azure datacenter, which can change over time. - -## Windows 10 21H1 Enterprise connection endpoints - -|Area|Description|Protocol|Destination| -|----------------|----------|----------|------------| -|Apps|||[Learn how to turn off traffic to the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-windowsstore)| -||The following endpoint is used for the Weather app. To turn off traffic for this endpoint, either uninstall the Weather app or disable the Microsoft Store. If you disable the Microsoft Store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|HTTP|tile-service.weather.microsoft.com| -||The following endpoint is used for OneNote Live Tile. To turn off traffic for this endpoint, either uninstall OneNote or disable the Microsoft Store. If you disable the Microsoft Store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|TLSv1.2/HTTPS/HTTP|cdn.onenote.net| -||The following endpoint is used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser. To turn off traffic for this endpoint, either uninstall the Photos app or disable the Microsoft Store. If you disable the Microsoft Store, other Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them.|TLSv1.2/HTTPS|evoke-windowsservices-tas.msedge.net -|Certificates|Certificates are digital files, stored on client devices, used to both encrypt data and verify the identity of an individual or organization. Trusted root certificates issued by a certification authority (CA) are stored in a certificate trust list (CTL). The Automatic Root Certificates Update mechanism contacts Windows Updates to update the CTL. If a new version of the CTL is identified, the list of trusted root certificates cached on the local device will be updated. Untrusted certificates are certificates where the server certificate issuer is unknown or isn't trusted by the service. Untrusted certificates are also stored in a list on the local device and updated by the Automatic Root Certificates Update mechanism.

If automatic updates are turned off, applications and websites may stop working because they didn't receive an updated root certificate that the application uses. Additionally, the list of untrusted certificates will no longer be updated, which increases the attack vector on the device. ||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update)| -|||TLSv1.2/HTTPS/HTTP|ctldl.windowsupdate.com| -|Cortana and Live Tiles|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-cortana)| -||The following endpoints are related to Cortana and Live Tiles. If you turn off traffic for this endpoint, you'll block updates to Cortana greetings, tips, and Live Tiles.|TLSv1.2/HTTPS/HTTP|www.bing.com*| -|||TLSv1.2/HTTPS/HTTP|fp.msedge.net| -|||TLSv1.2|I-ring.msedge.net| -|||HTTPS|s-ring.msedge.net| -|Device authentication|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -||The following endpoint is used to authenticate a device. If you turn off traffic for this endpoint, the device won't be authenticated.|HTTPS|login.live.com*| -|Device metadata|The following endpoint is used to retrieve device metadata. If you turn off traffic for this endpoint, metadata won't be updated for the device.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#4-device-metadata-retrieval)| -|||HTTP|dmd.metaservices.microsoft.com| -|Diagnostic Data|The following endpoints are used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service. If you turn off traffic for this endpoint, diagnostic and usage information, which helps Microsoft find and fix problems and improve our products and services, won't be sent back to Microsoft. ||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -|||TLSv1.2/HTTPS/HTTP|v10.events.data.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|v20.events.data.microsoft.com| -|||HTTP|www.microsoft.com| -||The following endpoints are used by Windows Error Reporting. To turn off traffic for these endpoints, enable the following Group Policy: **Administrative Templates** > **Windows Components** > **Windows Error Reporting** > **Disable Windows Error Reporting**. This means error reporting information won't be sent back to Microsoft.|TLSv1.2|telecommand.telemetry.microsoft.com| -|||TLS v1.2/HTTPS/HTTP|watson.*.microsoft.com| -|Font Streaming|The following endpoints are used to download fonts on demand. If you turn off traffic for these endpoints, you won't be able to download fonts on demand.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#6-font-streaming)| -|||HTTPS|fs.microsoft.com| -|Licensing|The following endpoint is used for online activation and some app licensing. To turn off traffic for this endpoint, disable the Windows License Manager Service. This will also block online activation and app licensing may not work.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#9-license-manager)| -|||TLSv1.2/HTTPS/HTTP|licensing.mp.microsoft.com| -|Maps|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-offlinemaps)| -||The following endpoints are used to check for updates to maps that have been downloaded for offline use. If you turn off traffic for this endpoint, offline maps won't be updated.|TLSv1.2/HTTPS/HTTP|maps.windows.com| -|Microsoft Account|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-microsoft-account)| -||The following endpoints are used for Microsoft accounts to sign in. If you turn off traffic for these endpoints, users can't sign in with Microsoft accounts. |TLSv1.2/HTTPS|login.live.com| -|Microsoft Edge|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#13-microsoft-edge)| -||This traffic is related to the Microsoft Edge browser.|HTTPS|iecvlist.microsoft.com| -||The following endpoint is used by Microsoft Edge Update service to check for new updates. If you disable this endpoint, Microsoft Edge won't be able to check for and apply new edge updates.|TLSv1.2/HTTPS/HTTP|msedge.api.cdp.microsoft.com| -|Microsoft forward link redirection service (FWLink)|The following endpoint is used by the Microsoft forward link redirection service (FWLink) to redirect permanent web links to their actual, sometimes transitory, URL. FWlinks are similar to URL shorteners, just longer. If you disable this endpoint, Windows Defender won't be able to update its malware definitions; links from Windows and other Microsoft products to the web won't work; and PowerShell updateable Help won't update. To disable the traffic, instead, disable the traffic that's getting forwarded.|HTTP|go.microsoft.com| -|Microsoft Store|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -||The following endpoint is used to download image files that are called when applications run (Microsoft Store or Inbox MSN Apps). If you turn off traffic for these endpoints, the image files won't be downloaded, and apps can't be installed or updated from the Microsoft Store. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.|HTTPS|img-prod-cms-rt-microsoft-com.akamaized.net| -||The following endpoint is needed to load the content in the Microsoft Store app.|HTTPS|livetileedge.dsx.mp.microsoft.com| -||The following endpoint is used for the Windows Push Notification Services (WNS). WNS enables third-party developers to send toast, tile, badge, and raw updates from their own cloud service. This provides a mechanism to deliver new updates to your users in a power-efficient and dependable way. If you turn off traffic for this endpoint, push notifications will no longer work, including MDM device management, mail synchronization, settings synchronization.|TLSv1.2/HTTPS|*.wns.windows.com| -||The following endpoints are used to revoke licenses for malicious apps in the Microsoft Store. To turn off traffic for this endpoint, either uninstall the app or disable the Microsoft Store. If you disable the Microsoft Store, other Microsoft Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them|TLSv1.2/HTTPS/HTTP|storecatalogrevocation.storequality.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|HTTPS|manage.devcenter.microsoft.com| -||The following endpoints are used to communicate with Microsoft Store. If you turn off traffic for these endpoints, apps can't be installed or updated from the Microsoft Store.|TLSv1.2/HTTPS/HTTP|*displaycatalog.mp.microsoft.com| -|||HTTP|share.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|TLSv1.2/HTTPS/HTTP|manage.devcenter.microsoft.com| -|Network Connection Status Indicator (NCSI)|||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-ncsi)| -||Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to this endpoint to determine if the device can communicate with the Internet. If you turn off traffic for this endpoint, NCSI won't be able to determine if the device is connected to the Internet and the network status tray icon will show a warning.|HTTPS|www.msftconnecttest.com*| -|Office|The following endpoints are used to connect to the Office 365 portal's shared infrastructure, including Office in a browser. For more info, see Office 365 URLs and IP address ranges. You can turn this off by removing all Microsoft Office apps and the Mail and Calendar apps. If you turn off traffic for these endpoints, users won't be able to save documents to the cloud or see their recently used documents.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -|||HTTPS|www.office.com| -|||HTTPS|blobs.officehome.msocdn.com| -|||HTTPS|officehomeblobs.blob.core.windows.net| -|||HTTPS|self.events.data.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|outlookmobile-office365-tas.msedge.net| -|OneDrive|The following endpoints are related to OneDrive. If you turn off traffic for these endpoints, anything that relies on g.live.com to get updated URL information will no longer work.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-onedrive)| -|||TLSv1.2/HTTPS/HTTP|g.live.com| -|||TLSv1.2/HTTPS/HTTP|oneclient.sfx.ms| -|||HTTPS| logincdn.msauth.net| -|Settings|The following endpoint is used as a way for apps to dynamically update their configuration. Apps such as System Initiated User Feedback and the Xbox app use it. If you turn off traffic for this endpoint, an app that uses this endpoint may stop working.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-priv-feedback)| -|||TLSv1.2/HTTPS/HTTP|settings-win.data.microsoft.com| -|||HTTPS|settings.data.microsoft.com| -|Skype|The following endpoint is used to retrieve Skype configuration values. To turn off traffic for this endpoint, either uninstall the app or disable the Microsoft Store. If you disable the Microsoft Store, other Microsoft Store apps can't be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious apps and users will still be able to open them.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-windowsstore)| -|||HTTPS/HTTP|*.pipe.aria.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|config.edge.skype.com| -|Teams|The following endpoint is used for Microsoft Teams application.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -|||TLSv1.2/HTTPS/HTTP|config.teams.microsoft.com| -|Windows Defender|The following endpoint is used for Windows Defender when Cloud-based Protection is enabled. If you turn off traffic for this endpoint, the device won't use Cloud-based Protection.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-defender)| -|||HTTPS/TLSv1.2|wdcp.microsoft.com| -||The following endpoints are used for Windows Defender SmartScreen reporting and notifications. If you turn off traffic for these endpoints, SmartScreen notifications won't appear.|HTTPS|*.smartscreen-prod.microsoft.com| -|||HTTPS/HTTP|checkappexec.microsoft.com| -|Windows Spotlight|The following endpoints are used to retrieve Windows Spotlight metadata that describes content, such as references to image locations, as well as suggested apps, Microsoft account notifications, and Windows tips. If you turn off traffic for these endpoints, Windows Spotlight will still try to deliver new lock screen images and updated content but it will fail; suggested apps, Microsoft account notifications, and Windows tips won't be downloaded. For more information, see Windows Spotlight.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-spotlight)| -|||TLSv1.2/HTTPS/HTTP|arc.msn.com| -|||HTTPS|ris.api.iris.microsoft.com| -|Windows Update|The following endpoint is used for Windows Update downloads of apps and OS updates, including HTTP downloads or HTTP downloads blended with peers. If you turn off traffic for this endpoint, Windows Update downloads won't be managed, as critical metadata that is used to make downloads more resilient is blocked. Downloads may be impacted by corruption (resulting in re-downloads of full files). Additionally, downloads of the same update by multiple devices on the same local network won't use peer devices for bandwidth reduction.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-updates)| -|||TLSv1.2/HTTPS/HTTP|*.prod.do.dsp.mp.microsoft.com| -||The following endpoints are used to download operating system patches, updates, and apps from Microsoft Store. If you turn off traffic for these endpoints, the device won't be able to download updates for the operating system.|TLSv1.2/HTTPS/HTTP|*.dl.delivery.mp.microsoft.com| -|||HTTP|*.windowsupdate.com| -||The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store. If you turn off traffic for these endpoints, the device won't be able to connect to Windows Update and Microsoft Update to help keep the device secure. Also, the device won't be able to acquire and update apps from the Microsoft Store. These are dependent on also enabling "Device authentication" and "Microsoft Account" endpoints.|TLSv1.2/HTTPS/HTTP|*.delivery.mp.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|*.update.microsoft.com| -||The following endpoint is used for compatibility database updates for Windows.|HTTPS|adl.windows.com| -||The following endpoint is used for content regulation. If you turn off traffic for this endpoint, the Windows Update Agent will be unable to contact the endpoint and fallback behavior will be used. This may result in content being either incorrectly downloaded or not downloaded at all.|TLSv1.2/HTTPS/HTTP|tsfe.trafficshaping.dsp.mp.microsoft.com| -|Xbox Live|The following endpoint is used for Xbox Live.||[Learn how to turn off traffic to all of the following endpoint(s).](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#26-microsoft-store)| -|||HTTPS|dlassets-ssl.xboxlive.com| - - -## Other Windows 10 editions - -To view endpoints for other versions of Windows 10 Enterprise, see: - -- [Manage connection endpoints for Windows 10, version 21H2](manage-windows-21H2-endpoints.md) -- [Manage connection endpoints for Windows 10, version 20H2](manage-windows-20H2-endpoints.md) -- [Manage connection endpoints for Windows 10, version 2004](manage-windows-2004-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1909](manage-windows-1909-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1903](manage-windows-1903-endpoints.md) -- [Manage connection endpoints for Windows 10, version 1809](manage-windows-1809-endpoints.md) - -To view endpoints for non-Enterprise Windows 10 editions, see: - -- [Windows 10, version 21H1, connection endpoints for non-Enterprise editions](windows-endpoints-21H1-non-enterprise-editions.md) -- [Windows 10, version 20H2, connection endpoints for non-Enterprise editions](windows-endpoints-20H2-non-enterprise-editions.md) -- [Windows 10, version 2004, connection endpoints for non-Enterprise editions](windows-endpoints-2004-non-enterprise-editions.md) -- [Windows 10, version 1909, connection endpoints for non-Enterprise editions](windows-endpoints-1909-non-enterprise-editions.md) -- [Windows 10, version 1903, connection endpoints for non-Enterprise editions](windows-endpoints-1903-non-enterprise-editions.md) -- [Windows 10, version 1809, connection endpoints for non-Enterprise editions](windows-endpoints-1809-non-enterprise-editions.md) - -## Related links - -- [Office 365 URLs and IP address ranges](/microsoft-365/enterprise/urls-and-ip-address-ranges) -- [Network infrastructure requirements for Microsoft Intune](/mem/intune/fundamentals/intune-endpoints) diff --git a/windows/privacy/windows-diagnostic-data-1703.md b/windows/privacy/windows-diagnostic-data-1703.md deleted file mode 100644 index 6716304894..0000000000 --- a/windows/privacy/windows-diagnostic-data-1703.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Windows 10 diagnostic data for the Full diagnostic data level (Windows 10) -description: Use this article to learn about the types of data that is collected the Full diagnostic data level. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 03/31/2017 -ms.topic: reference ---- - -# Windows 10 diagnostic data for the Full diagnostic data level - -**Applies to:** -- Windows 10, version 1703 - -Microsoft collects Windows diagnostic data to keep Windows up-to-date, secure, and operating properly. It also helps us improve Windows and, for users who have turned on “tailored experiences”, can be used to provide more relevant tips and recommendations to tailor Microsoft products to the user’s needs. This article describes all types diagnostic data collected by Windows at the Full diagnostic data level (inclusive of data collected at Basic), with comprehensive examples of data we collect per each type. For additional, detailed technical descriptions of Basic data items, see [Windows 10, version 1709 Basic level diagnostic events and fields](./basic-level-windows-diagnostic-events-and-fields-1709.md) and [Windows 10, version 1703 Basic level diagnostic events and fields](./basic-level-windows-diagnostic-events-and-fields-1703.md). - -The data covered in this article is grouped into the following categories: - -- Common Data (diagnostic header information) -- Device, Connectivity, and Configuration data -- Product and Service Usage data -- Product and Service Performance data -- Software Setup and Inventory data -- Browsing History data -- Inking, Typing, and Speech Utterance data - -> [!NOTE] -> The majority of diagnostic data falls into the first four categories. - -## Common data - -Most diagnostic events contain a header of common data: - -| Category Name | Examples | -| - | - | -| Common Data | Information that is added to most diagnostic events, if relevant and available:
  • OS name, version, build, and [locale](/windows/win32/intl/locales-and-languages)
  • User ID - a unique identifier associated with the user's Microsoft Account (if one is used) or local account. The user's Microsoft Account identifier is not collected from devices configured to send Basic diagnostic data
  • Xbox UserID
  • Environment from which the event was logged - Application ID of app or component that logged the event, Session GUID. Used to track events over a given period of time such the period an app is running or between boots of the OS.
  • The diagnostic event name, Event ID, [ETW](/windows/win32/etw/event-tracing-portal) opcode, version, schema signature, keywords, and flags
  • HTTP header information, including the IP address. This IP address is the source address that’s provided by the network packet header and received by the diagnostics ingestion service.
  • Various IDs that are used to correlate and sequence related events together.
  • Device ID. This ID is not the user provided device name, but an ID that is unique for that device.
  • Device class - Desktop, Server, or Mobile
  • Event collection time
  • Diagnostic level - Basic or Full, Sample level - for sampled data, what sample level is this device opted into
| - -## ​Device, Connectivity, and Configuration data - -This type of data includes details about the device, its configuration and connectivity capabilities, and status. - -| Category Name | Examples | -| - | - | -| Device properties | Information about the OS and device hardware, such as:
  • OS - version name, Edition
  • Installation type, subscription status, and genuine OS status
  • Processor architecture, speed, number of cores, manufacturer, and model
  • OEM details - manufacturer, model, and serial number
  • Device identifier and Xbox serial number
  • Firmware/BIOS - type, manufacturer, model, and version
  • Memory - total memory, video memory, speed, and how much memory is available after the device has reserved memory
  • Storage - total capacity and disk type
  • Battery - charge capacity and InstantOn support
  • Hardware chassis type, color, and form factor
  • Is this machine a virtual machine?
| -| Device capabilities | Information about the specific device capabilities such as:
  • Camera - whether the device has a front facing, a rear facing camera, or both.
  • Touch screen - does the device include a touch screen? If so, how many hardware touch points are supported?
  • Processor capabilities - CompareExchange128, LahfSahf, NX, PrefetchW, and SSE2
  • Trusted Platform Module (TPM) – whether present and what version
  • Virtualization hardware - whether an IOMMU is present, SLAT support, is virtualization enabled in the firmware
  • Voice – whether voice interaction is supported and the number of active microphones
  • Number of displays, resolutions, DPI
  • Wireless capabilities
  • OEM or platform face detection
  • OEM or platform video stabilization and quality level set
  • Advanced Camera Capture mode (HDR vs. LowLight), OEM vs. platform implementation, HDR probability, and Low Light probability
| -| Device preferences and settings | Information about the device settings and user preferences such as:
  • User Settings – System, Device, Network & Internet, Personalization, Cortana, Apps, Accounts, Time & Language, Gaming, Ease of Access, Privacy, Update & Security
  • User-provided device name
  • Whether device is domain-joined, or cloud-domain joined (that is, part of a company-managed network)
  • Hashed representation of the domain name
  • MDM (mobile device management) enrollment settings and status
  • BitLocker, Secure Boot, encryption settings, and status
  • Windows Update settings and status
  • Developer Unlock settings and status
  • Default app choices
  • Default browser choice
  • Default language settings for app, input, keyboard, speech, and display
  • App store update settings
  • Enterprise OrganizationID, Commercial ID
| -| Device peripherals | Information about the device peripherals such as:
  • Peripheral name, device model, class, manufacturer, and description
  • Peripheral device state, install state, and checksum
  • Driver name, package name, version, and manufacturer
  • HWID - A hardware vendor defined ID to match a device to a driver [INF file](/windows-hardware/drivers/install/hardware-ids)
  • Driver state, problem code, and checksum
  • Whether driver is kernel mode, signed, and image size
| -| Device network info | Information about the device network configuration such as:
  • Network system capabilities
  • Local or Internet connectivity status
  • Proxy, gateway, DHCP, DNS details, and addresses
  • Paid or free network
  • Wireless driver is emulated or not
  • Access point mode capable
  • Access point manufacturer, model, and MAC address
  • WDI Version
  • Name of networking driver service
  • Wi-Fi Direct details
  • Wi-Fi device hardware ID and manufacturer
  • Wi-Fi scan attempt counts and item counts
  • Mac randomization is supported/enabled or not
  • Number of spatial streams and channel frequencies supported
  • Manual or Auto Connect enabled
  • Time and result of each connection attempt
  • Airplane mode status and attempts
  • Interface description provided by the manufacturer
  • Data transfer rates
  • Cipher algorithm
  • Mobile Equipment ID (IMEI) and Mobile Country Code (MCCO)
  • Mobile operator and service provider name
  • Available SSIDs and BSSIDs
  • IP Address type - IPv4 or IPv6
  • Signal Quality percentage and changes
  • Hotspot presence detection and success rate
  • TCP connection performance
  • Miracast device names
  • Hashed IP address
- -## Product and Service Usage data - -This type of data includes details about the usage of the device, operating system, applications, and services. - -| Category Name | Examples | -| - | - | -| App usage | Information about Windows and application usage such as:
  • OS component and app feature usage
  • User navigation and interaction with app and Windows features. This information could include user input, such as the name of a new alarm set, user menu choices, or user favorites.
  • Time of and count of app/component launches, duration of use, session GUID, and process ID
  • App time in various states – running foreground or background, sleeping, or receiving active user interaction
  • User interaction method and duration – whether and length of time user used the keyboard, mouse, pen, touch, speech, or game controller
  • Cortana launch entry point/reason
  • Notification delivery requests and status
  • Apps used to edit images and videos
  • SMS, MMS, VCard, and broadcast message usage statistics on primary or secondary line
  • Incoming and Outgoing calls and Voicemail usage statistics on primary or secondary line
  • Emergency alerts are received or displayed statistics
  • Content searches within an app
  • Reading activity - bookmarking used, print used, layout changed
| -| App or product state | Information about Windows and application state such as:
  • Start Menu and Taskbar pins
  • Online/Offline status
  • App launch state –- with deep-link such as Groove launched with an audio track to play, or share contract such as MMS launched to share a picture.
  • Personalization impressions delivered
  • Whether the user clicked or hovered on UI controls or hotspots
  • User feedback Like or Dislike or rating was provided
  • Caret location or position within documents and media files - how much of a book has been read in a single session or how much of a song has been listened to.
| -| Login properties |
  • Login success or failure
  • Login sessions and state
| - - -## Product and Service Performance data - -This type of data includes details about the health of the device, operating system, apps, and drivers. - -| Category Name | Description and Examples | -| - | - | -|Device health and crash data | Information about the device and software health such as:
  • Error codes and error messages, name and ID of the app, and process reporting the error
  • DLL library predicted to be the source of the error - xyz.dll
  • System-generated files - app or product logs and trace files to help diagnose a crash or hang
  • System settings such as registry keys
  • User-generated files – .doc, .ppt, .csv files where they are indicated as a potential cause for a crash or hang
  • Details and counts of abnormal shutdowns, hangs, and crashes
  • Crash failure data – OS, OS component, driver, device, 1st and 3rd party app data
  • Crash and Hang dumps
    • The recorded state of the working memory at the point of the crash.
    • Memory in use by the kernel at the point of the crash.
    • Memory in use by the application at the point of the crash.
    • All the physical memory used by Windows at the point of the crash.
    • Class and function name within the module that failed.
    | -|Device performance and reliability data | Information about the device and software performance such as:
    • User Interface interaction durations - Start Menu display times, browser tab switch times, app launch and switch times, and Cortana and search performance and reliability.
    • Device on/off performance - Device boot, shutdown, power on/off, lock/unlock times, and user authentication times (fingerprint and face recognition durations).
    • In-app responsiveness - time to set alarm, time to fully render in-app navigation menus, time to sync reading list, time to start GPS navigation, time to attach picture MMS, and time to complete a Microsoft Store transaction.
    • User input responsiveness – onscreen keyboard invocation times for different languages, time to show autocomplete words, pen or touch latencies, latency for handwriting recognition to words, Narrator screen reader responsiveness, and CPU score.
    • UI and media performance and glitches/smoothness - video playback frame rate, audio glitches, animation glitches (stutter when bringing up Start), graphics score, time to first frame, play/pause/stop/seek responsiveness, time to render PDF, dynamic streaming of video from OneDrive performance
    • Disk footprint - Free disk space, out of memory conditions, and disk score.
    • Excessive resource utilization – components impacting performance or battery life through high CPU usage during different screen and power states
    • Background task performance - download times, Windows Update scan duration, Microsoft Defender Antivirus scan times, disk defrag times, mail fetch times, service startup and state transition times, and time to index on-device files for search results
    • Peripheral and devices - USB device connection times, time to connect to a wireless display, printing times, network availability, and connection times (time to connect to Wi-Fi, time to get an IP address from DHCP, and so on), smart card authentication times, automatic brightness environmental response times
    • Device setup - first setup experience times (time to install updates, install apps, connect to network etc.), time to recognize connected devices (printer and monitor), and time to setup Microsoft Account.
    • Power and Battery life – power draw by component (Process/CPU/GPU/Display), hours of screen off time, sleep state transition details, temperature and thermal throttling, battery drain in a power state (screen off or screen on), processes and components requesting power use during screen off, autobrightness details, time device is plugged into AC vs. battery, battery state transitions
    • Service responsiveness - Service URI, operation, latency, service success/error codes, and protocol.
    • Diagnostic heartbeat – regular signal to validate the health of the diagnostics system
    | -|Movies|Information about movie consumption functionality on the device. This information isn't intended to capture user viewing, listening, or habits.
    • Video Width, height, color pallet, encoding (compression) type, and encryption type
    • Instructions for how to stream content for the user - the smooth streaming manifest of chunks of content files that must be pieced together to stream the content based on screen resolution and bandwidth
    • URL for a specific two-second chunk of content if there is an error
    • Full screen viewing mode details| -|Music & TV|Information about music and TV consumption on the device. This information isn't intended to capture user viewing, listening, or habits.
      • Service URL for song being downloaded from the music service – collected when an error occurs to facilitate restoration of service
      • Content type (video, audio, surround audio)
      • Local media library collection statistics - number of purchased tracks, number of playlists
      • Region mismatch - User OS Region, and Xbox Live region
      | -|Reading|Information about reading consumption functionality on the device. This information isn't intended to capture user viewing, listening, or habits.
      • App accessing content and status and options used to open a Microsoft Store book
      • Language of the book
      • Time spent reading content
      • Content type and size details
      | -|Photos App|Information about photos usage on the device. This information isn't intended to capture user viewing, listening, or habits.
      • File source data - local, SD card, network device, and OneDrive
      • Image & video resolution, video length, file sizes types and encoding
      • Collection view or full screen viewer use and duration of view
    | -|On-device file query | Information about local search activity on the device such as:
    • Type of query issued and index type (ConstraintIndex, SystemIndex)
    • Number of items requested and retrieved
    • File extension of search result user interacted with
    • Launched item kind, file extension, index of origin, and the App ID of the opening app.
    • Name of process calling the indexer and time to service the query.
    • A hash of the search scope (file, Outlook, OneNote, IE history)
    • The state of the indices (fully optimized, partially optimized, being built)
    | -|Purchasing| Information about purchases made on the device such as:
    • Product ID, edition ID, and product URI
    • Offer details - price
    • Order requested date/time
    • Store client type - web or native client
    • Purchase quantity and price
    • Payment type - credit card type and PayPal
    | -|Entitlements | Information about entitlements on the device such as:
    • Service subscription status and errors
    • DRM and license rights details - Groove subscription or OS volume license
    • Entitlement ID, lease ID, and package ID of the install package
    • Entitlement revocation
    • License type (trial, offline versus online) and duration
    • License usage session
    | - -## Software Setup and Inventory data - -This type of data includes software installation and update information on the device. - -| Category Name | Data Examples | -| - | - | -| Installed Applications and Install History | Information about apps, drivers, update packages, or OS components installed on the device such as:
    • App, driver, update package, or component’s Name, ID, or Package Family Name
    • Product, SKU, availability, catalog, content, and Bundle IDs
    • OS component, app or driver publisher, language, version and type (Win32 or UWP)
    • Install date, method, and install directory, count of install attempts
    • MSI package code and product code
    • Original OS version at install time
    • User or administrator or mandatory installation/update
    • Installation type – clean install, repair, restore, OEM, retail, upgrade, and update
    | -| Device update information | Information about Windows Update such as:
    • Update Readiness analysis of device hardware, OS components, apps, and drivers (progress, status, and results)
    • Number of applicable updates, importance, type
    • Update download size and source - CDN or LAN peers
    • Delay upgrade status and configuration
    • OS uninstall and rollback status and count
    • Windows Update server and service URL
    • Windows Update machine ID
    • Windows Insider build details
    - -## Browsing History data - -**Microsoft browser data**: This type of data includes details about web browsing, the address bar, and search box performance on the device in the Microsoft browsers, such as: - -- Text typed in address bar and search box -- Text selected for Ask Cortana search -- Service response time -- Autocompleted text if there was an autocomplete -- Navigation suggestions provided based on local history and favorites -- Browser ID -- URLs (which may include search terms) -- Page title - -## Inking Typing and Speech Utterance data - -**Voice, inking, and typing**: This type of data gathers details about the voice, inking, and typing input features on the device, such as: - -- Type of pen used (highlighter, ball point, pencil), pen color, stroke height and width, and how long it is used -- Pen gestures (click, double-click, pan, zoom, rotate) -- Palm Touch x,y coordinates -- Input latency, missed pen signals, number of frames, strokes, first frame commit time, sample rate -- Ink strokes written, text before and after the ink insertion point, recognized text entered, Input language - processed to remove identifiers, sequencing information, and other data (such as email addresses and numeric values) which could be used to reconstruct the original content or associate the input to the user. -- Text input from Windows on-screen keyboards except from password fields and private sessions - processed to remove identifiers, sequencing information, and other data (such as email addresses, and numeric values) which could be used to reconstruct the original content or associate the input to the user. -- Text of speech recognition results - result codes and recognized text -- Language and model of the recognizer, System Speech language -- App ID using speech features -- Whether user is known to be a child -- Confidence and Success/Failure of speech recognition diff --git a/windows/privacy/windows-endpoints-1809-non-enterprise-editions.md b/windows/privacy/windows-endpoints-1809-non-enterprise-editions.md deleted file mode 100644 index 0cf4435b8a..0000000000 --- a/windows/privacy/windows-endpoints-1809-non-enterprise-editions.md +++ /dev/null @@ -1,157 +0,0 @@ ---- -title: Windows 10, version 1809, connection endpoints for non-Enterprise editions -description: Explains what Windows 10 endpoints are used in non-Enterprise editions. Specific to Windows 10, version 1809. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 06/29/2018 -ms.topic: reference ---- -# Windows 10, version 1809, connection endpoints for non-Enterprise editions - - **Applies to** - -- Windows 10 Home, version 1809 -- Windows 10 Professional, version 1809 -- Windows 10 Education, version 1809 - -In addition to the endpoints listed for [Windows 10 Enterprise](manage-windows-1809-endpoints.md), the following endpoints are available on other editions of Windows 10, version 1809. - -We used the following methodology to derive these network endpoints: - -1. Set up the latest version of Windows 10 on a test virtual machine using the default settings. -2. Leave the devices running idle for a week (that is, a user is not interacting with the system/device). -3. Use globally accepted network protocol analyzer/capturing tools and log all background egress traffic. -4. Compile reports on traffic going to public IP addresses. -5. The test virtual machine was logged in using a local account and was not joined to a domain or Azure Active Directory. -6. All traffic was captured in our lab using a IPV4 network. Therefore no IPV6 traffic is reported here. - -> [!NOTE] -> Microsoft uses global load balancers that can appear in network trace-routes. For example, an endpoint for *.akadns.net might be used to load balance requests to an Azure datacenter, which can change over time. - -## Windows 10 Home - -| **Destination** | **Protocol** | **Description** | -| --- | --- | --- | -|\*.aria.microsoft.com\* | HTTPS | Office Telemetry -|\*.dl.delivery.mp.microsoft.com\* | HTTP | Enables connections to Windows Update. -|\*.download.windowsupdate.com\* | HTTP | Used to download operating system patches and updates. -|\*.g.akamai.net | HTTPS | Used to check for updates to maps that have been downloaded for offline use. -|\*.msn.com\* |TLSv1.2/HTTPS | Windows Spotlight related traffic -|\*.Skype.com | HTTP/HTTPS | Skype related traffic -|\*.smartscreen.microsoft.com | HTTPS | Windows Defender Smartscreen related traffic -|\*.telecommand.telemetry.microsoft.com\* | HTTPS | Used by Windows Error Reporting. -|\*cdn.onenote.net* | HTTP | OneNote related traffic -|\*displaycatalog.mp.microsoft.com\* | HTTPS | Used to communicate with Microsoft Store. -|\*geo-prod.do.dsp.mp.microsoft.com\* |TLSv1.2/HTTPS | Enables connections to Windows Update. -|\*hwcdn.net* | HTTP | Used by the Highwinds Content Delivery Network to perform Windows updates. -|\*img-prod-cms-rt-microsoft-com.akamaized.net* | HTTPS | Used to download image files that are called when applications run (Microsoft Store or Inbox MSN Apps). -|\*maps.windows.com\* | HTTPS | Related to Maps application. -|\*msedge.net* | HTTPS | Used by OfficeHub to get the metadata of Office apps. -|\*nexusrules.officeapps.live.com\* | HTTPS | Office Telemetry -|\*photos.microsoft.com\* | HTTPS | Photos App related traffic -|\*prod.do.dsp.mp.microsoft.com\* |TLSv1.2/HTTPS | Used for Windows Update downloads of apps and OS updates. -|\*wac.phicdn.net* | HTTP | Windows Update related traffic -|\*windowsupdate.com\* | HTTP | Windows Update related traffic -|\*wns.windows.com\* | HTTPS, TLSv1.2 | Used for the Windows Push Notification Services (WNS). -|\*wpc.v0cdn.net* | | Windows Telemetry related traffic -|auth.gfx.ms/16.000.27934.1/OldConvergedLogin_PCore.js | | MSA related -|evoke-windowsservices-tas.msedge* | HTTPS | The following endpoint is used by the Photos app to download configuration files, and to connect to the Microsoft 365 admin center's shared infrastructure, including Office. To turn off traffic for this endpoint, either uninstall the Photos app or disable the Microsoft Store. If you disable the Microsoft store, other Store apps cannot be installed or updated. Additionally, the Microsoft Store won't be able to revoke malicious Store apps and users will still be able to open them. -|fe2.update.microsoft.com\* |TLSv1.2/HTTPS | Enables connections to Windows Update, Microsoft Update, and the online services of Microsoft Store. -|fe3.\*.mp.microsoft.com.\* |TLSv1.2/HTTPS | Enables connections to Windows Update, Microsoft Update, and the online services of Microsoft Store. -|fs.microsoft.com | | Font Streaming (in ENT traffic) -|g.live.com\* | HTTPS | Used by OneDrive -|iriscoremetadataprod.blob.core.windows.net | HTTPS | Windows Telemetry -|mscrl.microsoft.com | | Certificate Revocation List related traffic. -|ocsp.digicert.com\* | HTTP | CRL and OCSP checks to the issuing certificate authorities. -|officeclient.microsoft.com | HTTPS | Office related traffic. -|oneclient.sfx.ms* | HTTPS | Used by OneDrive for Business to download and verify app updates. -|purchase.mp.microsoft.com\* | HTTPS | Used to communicate with Microsoft Store. -|query.prod.cms.rt.microsoft.com\* | HTTPS | Used to retrieve Windows Spotlight metadata. -|ris.api.iris.microsoft.com\* |TLSv1.2/HTTPS | Used to retrieve Windows Spotlight metadata. -|ris-prod-atm.trafficmanager.net | HTTPS | Azure traffic manager -|settings.data.microsoft.com\* | HTTPS | Used for Windows apps to dynamically update their configuration. -|settings-win.data.microsoft.com\* | HTTPS | Used for Windows apps to dynamically update their configuration. -|sls.update.microsoft.com\* |TLSv1.2/HTTPS | Enables connections to Windows Update. -|store*.dsx.mp.microsoft.com\* | HTTPS | Used to communicate with Microsoft Store. -|storecatalogrevocation.storequality.microsoft.com\* | HTTPS | Used to revoke licenses for malicious apps on the Microsoft Store. -|store-images.s-microsoft.com\* | HTTP | Used to get images that are used for Microsoft Store suggestions. -|tile-service.weather.microsoft.com\* | HTTP | Used to download updates to the Weather app Live Tile. -|tsfe.trafficshaping.dsp.mp.microsoft.com\* |TLSv1.2 | Used for content regulation. -|v10.events.data.microsoft.com | HTTPS | Diagnostic Data -|wdcp.microsoft.* |TLSv1.2 | Used for Windows Defender when Cloud-based Protection is enabled. -|wd-prod-cp-us-west-1-fe.westus.cloudapp.azure.com | HTTPS | Windows Defender related traffic. -|www.bing.com* | HTTP | Used for updates for Cortana, apps, and Live Tiles. - -## Windows 10 Pro - -| **Destination** | **Protocol** | **Description** | -| --- | --- | --- | -| *.e-msedge.net | HTTPS | Used by OfficeHub to get the metadata of Office apps. | -| *.g.akamaiedge.net | HTTPS | Used to check for updates to maps that have been downloaded for offline use. | -| *.s-msedge.net | HTTPS | Used by OfficeHub to get the metadata of Office apps. | -| \*.tlu.dl.delivery.mp.microsoft.com/\* | HTTP | Enables connections to Windows Update. | -| *geo-prod.dodsp.mp.microsoft.com.nsatc.net | HTTPS | Enables connections to Windows Update. | -| arc.msn.com.nsatc.net | HTTPS | Used to retrieve Windows Spotlight metadata. | -| au.download.windowsupdate.com/* | HTTP | Enables connections to Windows Update. | -| ctldl.windowsupdate.com/msdownload/update/* | HTTP | Used to download certificates that are publicly known to be fraudulent. | -| cy2.licensing.md.mp.microsoft.com.akadns.net | HTTPS | Used to communicate with Microsoft Store. | -| cy2.settings.data.microsoft.com.akadns.net | HTTPS | Used to communicate with Microsoft Store. | -| dm3p.wns.notify.windows.com.akadns.net | HTTPS | Used for the Windows Push Notification Services (WNS) | -| fe3.delivery.dsp.mp.microsoft.com.nsatc.net | HTTPS | Enables connections to Windows Update, Microsoft Update, and the online services of Microsoft Store. | -| g.msn.com.nsatc.net | HTTPS | Used to retrieve Windows Spotlight metadata. | -| ipv4.login.msa.akadns6.net | HTTPS | Used for Microsoft accounts to sign in. | -| location-inference-westus.cloudapp.net | HTTPS | Used for location data. | -| modern.watson.data.microsoft.com.akadns.net | HTTPS | Used by Windows Error Reporting. | -| ocsp.digicert.com\* | HTTP | CRL and OCSP checks to the issuing certificate authorities. | -| ris.api.iris.microsoft.com.akadns.net | HTTPS | Used to retrieve Windows Spotlight metadata. | -| tile-service.weather.microsoft.com/* | HTTP | Used to download updates to the Weather app Live Tile. | -| tsfe.trafficshaping.dsp.mp.microsoft.com | HTTPS | Used for content regulation. | -| vip5.afdorigin-prod-am02.afdogw.com | HTTPS | Used to serve office 365 experimentation traffic | - - -## Windows 10 Education - -| **Destination** | **Protocol** | **Description** | -| --- | --- | --- | -| *.b.akamaiedge.net | HTTPS | Used to check for updates to maps that have been downloaded for offline use. | -| *.e-msedge.net | HTTPS | Used by OfficeHub to get the metadata of Office apps. | -| *.g.akamaiedge.net | HTTPS | Used to check for updates to maps that have been downloaded for offline use. | -| *.s-msedge.net | HTTPS | Used by OfficeHub to get the metadata of Office apps. | -| *.telecommand.telemetry.microsoft.com.akadns.net | HTTPS | Used by Windows Error Reporting. | -| *.tlu.dl.delivery.mp.microsoft.com\* | HTTP | Enables connections to Windows Update. | -| *.windowsupdate.com\* | HTTP | Enables connections to Windows Update. | -| *geo-prod.do.dsp.mp.microsoft.com | HTTPS | Enables connections to Windows Update. | -| au.download.windowsupdate.com\* | HTTP | Enables connections to Windows Update. | -| cdn.onenote.net/livetile/* | HTTPS | Used for OneNote Live Tile. | -| client-office365-tas.msedge.net/* | HTTPS | Used to connect to the Microsoft 365 admin center’s shared infrastructure, including Office. | -| config.edge.skype.com/* | HTTPS | Used to retrieve Skype configuration values.  | -| ctldl.windowsupdate.com/* | HTTP | Used to download certificates that are publicly known to be fraudulent. | -| cy2.displaycatalog.md.mp.microsoft.com.akadns.net | HTTPS | Used to communicate with Microsoft Store. | -| cy2.licensing.md.mp.microsoft.com.akadns.net | HTTPS | Used to communicate with Microsoft Store. | -| cy2.settings.data.microsoft.com.akadns.net | HTTPS | Used to communicate with Microsoft Store. | -| displaycatalog.mp.microsoft.com/* | HTTPS | Used to communicate with Microsoft Store. | -| download.windowsupdate.com/* | HTTPS | Enables connections to Windows Update. | -| fe2.update.microsoft.com/* | HTTPS | Enables connections to Windows Update, Microsoft Update, and the online services of Microsoft Store. | -| fe3.delivery.dsp.mp.microsoft.com.nsatc.net | HTTPS | Enables connections to Windows Update, Microsoft Update, and the online services of Microsoft Store. | -| fe3.delivery.mp.microsoft.com/* | HTTPS | Enables connections to Windows Update, Microsoft Update, and the online services of Microsoft Store. | -| g.live.com/odclientsettings/* | HTTPS | Used by OneDrive for Business to download and verify app updates. | -| g.msn.com.nsatc.net | HTTPS | Used to retrieve Windows Spotlight metadata. | -| ipv4.login.msa.akadns6.net | HTTPS | Used for Microsoft accounts to sign in. | -| licensing.mp.microsoft.com/* | HTTPS | Used for online activation and some app licensing. | -| maps.windows.com/windows-app-web-link | HTTPS | Link to Maps application | -| modern.watson.data.microsoft.com.akadns.net | HTTPS | Used by Windows Error Reporting. | -| ocos-office365-s2s.msedge.net/* | HTTPS | Used to connect to the Microsoft 365 admin center's shared infrastructure. | -| ocsp.digicert.com\* | HTTP | CRL and OCSP checks to the issuing certificate authorities. | -| oneclient.sfx.ms/* | HTTPS | Used by OneDrive for Business to download and verify app updates. | -| settings-win.data.microsoft.com/settings/* | HTTPS | Used as a way for apps to dynamically update their configuration. | -| sls.update.microsoft.com/* | HTTPS | Enables connections to Windows Update. | -| storecatalogrevocation.storequality.microsoft.com/* | HTTPS | Used to revoke licenses for malicious apps on the Microsoft Store. | -| tile-service.weather.microsoft.com/* | HTTP | Used to download updates to the Weather app Live Tile. | -| tsfe.trafficshaping.dsp.mp.microsoft.com | HTTPS | Used for content regulation. | -| vip5.afdorigin-prod-ch02.afdogw.com | HTTPS | Used to serve office 365 experimentation traffic. | -| watson.telemetry.microsoft.com/Telemetry.Request | HTTPS | Used by Windows Error Reporting. | -| bing.com/* | HTTPS | Used for updates for Cortana, apps, and Live Tiles. | diff --git a/windows/privacy/windows-endpoints-1903-non-enterprise-editions.md b/windows/privacy/windows-endpoints-1903-non-enterprise-editions.md deleted file mode 100644 index 465c0dd961..0000000000 --- a/windows/privacy/windows-endpoints-1903-non-enterprise-editions.md +++ /dev/null @@ -1,267 +0,0 @@ ---- -title: Windows 10, version 1903, connection endpoints for non-Enterprise editions -description: Explains what Windows 10 endpoints are used in non-Enterprise editions. Specific to Windows 10, version 1903. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 06/29/2018 -ms.topic: reference ---- - -# Windows 10, version 1903, connection endpoints for non-Enterprise editions - - **Applies to** - -- Windows 10 Home, version 1903 -- Windows 10 Professional, version 1903 -- Windows 10 Education, version 1903 - -In addition to the endpoints listed for [Windows 10 Enterprise](manage-windows-1903-endpoints.md), the following endpoints are available on other non-Enterprise editions of Windows 10, version 1903. - -The following methodology was used to derive the network endpoints: - -1. Set up the latest version of Windows 10 on a test virtual machine using the default settings. -2. Leave the device(s) running idle for a week ("idle" means a user is not interacting with the system/device). -3. Use globally accepted network protocol analyzer/capturing tools and log all background egress traffic. -4. Compile reports on traffic going to public IP addresses. -5. The test virtual machine(s) was logged into using a local account, and was not joined to a domain or Azure Active Directory. -6. All traffic was captured in our lab using an IPV4 network. Therefore, no IPV6 traffic is reported here. -7. These tests were conducted in an approved Microsoft lab. It's possible your results may be different. -8. These tests were conducted for one week, but if you capture traffic for longer you may have different results. - - -> [!NOTE] -> Microsoft uses global load balancers that can appear in network trace-routes. For example, an endpoint for *.akadns.net might be used to load balance requests to an Azure datacenter, which can change over time. - -## Windows 10 Home - -| Destination | Protocol | Description | -| ----------- | -------- | ----------- | -| \*.aria.microsoft.com\* | HTTPS | Microsoft Office Telemetry -| \*.b.akamai\*.net | HTTPS | Used to check for updates to Maps that have been downloaded for offline use -| \*.c-msedge.net | HTTP | Microsoft Office -| \*.dl.delivery.mp.microsoft.com\* | HTTP | Enables connections to Windows Update -| \*.download.windowsupdate.com\* | HTTP | Used to download operating system patches and updates -| \*.g.akamai\*.net | HTTPS | Used to check for updates to Maps that have been downloaded for offline use -| \*.login.msa.\*.net | HTTPS | Microsoft Account related -| \*.msn.com\* | TLSv1.2/HTTPS | Windows Spotlight -| \*.skype.com | HTTP/HTTPS | Skype -| \*.smartscreen.microsoft.com | HTTPS | Windows Defender Smartscreen -| \*.telecommand.telemetry.microsoft.com\* | HTTPS | Used by Windows Error Reporting -| \*cdn.onenote.net\* | HTTP | OneNote -| \*displaycatalog.\*mp.microsoft.com\* | HTTPS | Used to communicate with Microsoft Store -| \*geo-prod.do.dsp.mp.microsoft.com\* | TLSv1.2/HTTPS | Enables connections to Windows Update -| \*hwcdn.net\* | HTTP | Highwinds Content Delivery Network / Windows updates -| \*img-prod-cms-rt-microsoft-com\* | HTTPS | Microsoft Store or Inbox MSN Apps image download -| \*licensing.\*mp.microsoft.com\* | HTTPS | Licensing -| \*maps.windows.com\* | HTTPS | Related to Maps application -| \*msedge.net\* | HTTPS | Used by Microsoft OfficeHub to get the metadata of Microsoft Office apps -| \*nexusrules.officeapps.live.com\* | HTTPS | Microsoft Office Telemetry -| \*photos.microsoft.com\* | HTTPS | Photos App -| \*prod.do.dsp.mp.microsoft.com* | TLSv1.2/HTTPS | Used for Windows Update downloads of apps and OS updates -| \*purchase.md.mp.microsoft.com.akadns.net | HTTPS | Used to communicate with Microsoft Store -| \*settings.data.microsoft.com.akadns.net | HTTPS | Used for Windows apps to dynamically update their configuration -| \*wac.phicdn.net\* | HTTP | Windows Update -| \*windowsupdate.com\* | HTTP | Windows Update -| \*wns.\*windows.com\* | TLSv1.2/HTTPS | Used for the Windows Push Notification Services (WNS) -| \*wpc.v0cdn.net\* | HTTP | Windows Telemetry -| arc.msn.com | HTTPS | Spotlight -| auth.gfx.ms\* | HTTPS | MSA related -| cdn.onenote.net | HTTPS | OneNote Live Tile -| dmd.metaservices.microsoft.com\* | HTTP | Device Authentication -| e-0009.e-msedge.net | HTTPS | Microsoft Office -| e10198.b.akamaiedge.net | HTTPS | Maps application -| evoke-windowsservices-tas.msedge\* | HTTPS | Photos app -| fe2.update.microsoft.com\* | TLSv1.2/HTTPS | Enables connections to Windows Update, Microsoft Update, and the online services of Microsoft Store -| fe3.\*.mp.microsoft.com.\* | TLSv1.2/HTTPS | Windows Update, Microsoft Update, and Microsoft Store services -| g.live.com\* | HTTPS | OneDrive -| go.microsoft.com | HTTP | Windows Defender -| iriscoremetadataprod.blob.core.windows.net | HTTPS | Windows Telemetry -| login.live.com | HTTPS | Device Authentication -| msagfx.live.com | HTTP | OneDrive -| ocsp.digicert.com\* | HTTP | CRL and OCSP checks to the issuing certificate authorities -| officeclient.microsoft.com | HTTPS | Microsoft Office -| oneclient.sfx.ms\* | HTTPS | Used by OneDrive for Business to download and verify app updates -| onecollector.cloudapp.aria.akadns.net | HTTPS | Microsoft Office -| ow1.res.office365.com | HTTP | Microsoft Office -| purchase.mp.microsoft.com\* | HTTPS | Used to communicate with Microsoft Store -| query.prod.cms.rt.microsoft.com\* | HTTPS | Used to retrieve Windows Spotlight metadata -| ris.api.iris.microsoft.com\* | TLSv1.2/HTTPS | Used to retrieve Windows Spotlight metadata -| ris-prod-atm.trafficmanager.net | HTTPS | Azure traffic manager -| s-0001.s-msedge.net | HTTPS | Microsoft Office -| self.events.data.microsoft.com | HTTPS | Microsoft Office -| settings.data.microsoft.com\* | HTTPS | Used for Windows apps to dynamically update their configuration -| settings-win.data.microsoft.com\* | HTTPS | Used for Windows apps to dynamically update their configuration -| share.microsoft.com | HTTPS | Microsoft Store -| skypeecs-prod-usw-0.cloudapp.net | HTTPS | Microsoft Store -| sls.update.microsoft.com\* | TLSv1.2/HTTPS | Enables connections to Windows Update -| slscr.update.microsoft.com\* | HTTPS | Enables connections to Windows Update -| store*.dsx.mp.microsoft.com\* | HTTPS | Used to communicate with Microsoft Store -| storecatalogrevocation.storequality.microsoft.com | HTTPS | Microsoft Store -| storecatalogrevocation.storequality.microsoft.com\* | HTTPS | Used to revoke licenses for malicious apps on the Microsoft Store -| store-images.\*microsoft.com\* | HTTP | Used to get images that are used for Microsoft Store suggestions -| storesdk.dsx.mp.microsoft.com | HTTP | Microsoft Store -| tile-service.weather.microsoft.com\* | HTTP | Used to download updates to the Weather app Live Tile -| time.windows.com | HTTP | Microsoft Windows Time related -| tsfe.trafficshaping.dsp.mp.microsoft.com\* | TLSv1.2/HTTPS | Used for content regulation -| v10.events.data.microsoft.com | HTTPS | Diagnostic Data -| watson.telemetry.microsoft.com | HTTPS | Diagnostic Data -| wdcp.microsoft.\* | TLSv1.2, HTTPS | Used for Windows Defender when Cloud-based Protection is enabled -| wd-prod-cp-us-west-1-fe.westus.cloudapp.azure.com | HTTPS | Windows Defender -| wusofficehome.msocdn.com | HTTPS | Microsoft Office -| `www.bing.com`* | HTTP | Used for updates for Cortana, apps, and Live Tiles -| `www.msftconnecttest.com` | HTTP | Network Connection (NCSI) -| `www.office.com` | HTTPS | Microsoft Office -| adl.windows.com | HTTP | Used for compatibility database updates for Windows -| windows.policies.live.net | HTTP | OneDrive - - -## Windows 10 Pro - -| Destination | Protocol | Description | -| ----------- | -------- | ----------- | -| \*.cloudapp.azure.com | HTTPS | Azure -| \*.delivery.dsp.mp.microsoft.com.nsatc.net | HTTPS | Windows Update, Microsoft Update, and Microsoft Store services -| \*.displaycatalog.md.mp.microsoft.com.akadns.net | HTTPS | Microsoft Store -| \*.dl.delivery.mp.microsoft.com\* | HTTP | Enables connections to Windows Update -| \*.e-msedge.net | HTTPS | Used by OfficeHub to get the metadata of Office apps -| \*.g.akamaiedge.net | HTTPS | Used to check for updates to maps that have been downloaded for offline use -| \*.s-msedge.net | HTTPS | Used by OfficeHub to get the metadata of Office apps -| \*.windowsupdate.com\* | HTTP | Enables connections to Windows Update -| \*.wns.notify.windows.com.akadns.net | HTTPS | Used for the Windows Push Notification Services (WNS) -| \*dsp.mp.microsoft.com.nsatc.net | HTTPS | Enables connections to Windows Update -| \*c-msedge.net | HTTP | Office -| a1158.g.akamai.net | HTTP | Maps application -| arc.msn.com\* | HTTP / HTTPS | Used to retrieve Windows Spotlight metadata -| blob.mwh01prdstr06a.store.core.windows.net | HTTPS | Microsoft Store -| browser.pipe.aria.microsoft.com | HTTPS | Microsoft Office -| bubblewitch3mobile.king.com | HTTPS | Bubble Witch application -| candycrush.king.com | HTTPS | Candy Crush application -| cdn.onenote.net | HTTP | Microsoft OneNote -| cds.p9u4n2q3.hwcdn.net | HTTP | Highwinds Content Delivery Network traffic for Windows updates -| client.wns.windows.com | HTTPS | Windows Notification System -| co4.telecommand.telemetry.microsoft.com.akadns.net | HTTPS | Windows Error Reporting -| config.edge.skype.com | HTTPS | Microsoft Skype -| cs11.wpc.v0cdn.net | HTTP | Windows Telemetry -| cs9.wac.phicdn.net | HTTP | Windows Update -| cy2.licensing.md.mp.microsoft.com.akadns.net | HTTPS | Used to communicate with Microsoft Store -| cy2.purchase.md.mp.microsoft.com.akadns.net | HTTPS | Used to communicate with Microsoft Store -| cy2.settings.data.microsoft.com.akadns.net | HTTPS | Used to communicate with Microsoft Store -| dmd.metaservices.microsoft.com.akadns.net | HTTP | Device Authentication -| e-0009.e-msedge.net | HTTPS | Microsoft Office -| e10198.b.akamaiedge.net | HTTPS | Maps application -| fe3.update.microsoft.com | HTTPS | Windows Update -| g.live.com | HTTPS | Microsoft OneDrive -| g.msn.com.nsatc.net | HTTPS | Used to retrieve Windows Spotlight metadata -| geo-prod.do.dsp.mp.microsoft.com | HTTPS | Windows Update -| go.microsoft.com | HTTP | Windows Defender -| iecvlist.microsoft.com | HTTPS | Microsoft Edge -| img-prod-cms-rt-microsoft-com.akamaized.net | HTTP / HTTPS | Microsoft Store -| ipv4.login.msa.akadns6.net | HTTPS | Used for Microsoft accounts to sign in -| licensing.mp.microsoft.com | HTTP | Licensing -| location-inference-westus.cloudapp.net | HTTPS | Used for location data -| login.live.com | HTTP | Device Authentication -| maps.windows.com | HTTP | Maps application -| modern.watson.data.microsoft.com.akadns.net | HTTPS | Used by Windows Error Reporting -| msagfx.live.com | HTTP | OneDrive -| nav.smartscreen.microsoft.com | HTTPS | Windows Defender -| ocsp.digicert.com\* | HTTP | CRL and OCSP checks to the issuing certificate authorities -| oneclient.sfx.ms | HTTP | OneDrive -| ris.api.iris.microsoft.com.akadns.net | HTTPS | Used to retrieve Windows Spotlight metadata -| ris-prod-atm.trafficmanager.net | HTTPS | Azure -| s2s.config.skype.com | HTTP | Microsoft Skype -| settings-win.data.microsoft.com | HTTPS | Application settings -| share.microsoft.com | HTTPS | Microsoft Store -| skypeecs-prod-usw-0.cloudapp.net | HTTPS | Microsoft Skype -| slscr.update.microsoft.com | HTTPS | Windows Update -| storecatalogrevocation.storequality.microsoft.com | HTTPS | Microsoft Store -| store-images.microsoft.com | HTTPS | Microsoft Store -| tile-service.weather.microsoft.com/\* | HTTP | Used to download updates to the Weather app Live Tile -| time.windows.com | HTTP | Windows time -| tsfe.trafficshaping.dsp.mp.microsoft.com | HTTPS | Used for content regulation -| v10.events.data.microsoft.com\* | HTTPS | Microsoft Office -| vip5.afdorigin-prod-am02.afdogw.com | HTTPS | Used to serve office 365 experimentation traffic -| watson.telemetry.microsoft.com | HTTPS | Telemetry -| wdcp.microsoft.com | HTTPS | Windows Defender -| wusofficehome.msocdn.com | HTTPS | Microsoft Office -| `www.bing.com` | HTTPS | Cortana and Search -| `www.microsoft.com` | HTTP | Diagnostic -| `www.msftconnecttest.com` | HTTP | Network connection -| `www.office.com` | HTTPS | Microsoft Office - - - -## Windows 10 Education - -| Destination | Protocol | Description | -| ----------- | -------- | ----------- | -| \*.b.akamaiedge.net | HTTPS | Used to check for updates to maps that have been downloaded for offline use -| \*.c-msedge.net | HTTP | Used by OfficeHub to get the metadata of Office apps -| \*.dl.delivery.mp.microsoft.com\* | HTTP | Windows Update -| \*.e-msedge.net | HTTPS | Used by OfficeHub to get the metadata of Office apps -| \*.g.akamaiedge.net | HTTPS | Used to check for updates to Maps that have been downloaded for offline use -| \*.licensing.md.mp.microsoft.com.akadns.net | HTTPS | Microsoft Store -| \*.settings.data.microsoft.com.akadns.net | HTTPS | Microsoft Store -| \*.skype.com\* | HTTPS | Used to retrieve Skype configuration values -| \*.smartscreen\*.microsoft.com | HTTPS | Windows Defender -| \*.s-msedge.net | HTTPS | Used by OfficeHub to get the metadata of Office apps -| \*.telecommand.telemetry.microsoft.com\* | HTTPS | Used by Windows Error Reporting -| \*.wac.phicdn.net | HTTP | Windows Update -| \*.windowsupdate.com\* | HTTP | Windows Update -| \*.wns.windows.com | HTTPS | Windows Notifications Service -| \*.wpc.\*.net | HTTP | Diagnostic Data -| \*displaycatalog.md.mp.microsoft.com.akadns.net | HTTPS | Microsoft Store -| \*dsp.mp.microsoft.com | HTTPS | Windows Update -| a1158.g.akamai.net | HTTP | Maps -| a122.dscg3.akamai.net | HTTP | Maps -| a767.dscg3.akamai.net | HTTP | Maps -| au.download.windowsupdate.com\* | HTTP | Windows Update -| bing.com/\* | HTTPS | Used for updates for Cortana, apps, and Live Tiles -| blob.dz5prdstr01a.store.core.windows.net | HTTPS | Microsoft Store -| browser.pipe.aria.microsoft.com | HTTP | Used by OfficeHub to get the metadata of Office apps -| cdn.onenote.net/livetile/\* | HTTPS | Used for OneNote Live Tile -| cds.p9u4n2q3.hwcdn.net | HTTP | Used by the Highwinds Content Delivery Network to perform Windows updates -| client-office365-tas.msedge.net/\* | HTTPS | Microsoft 365 admin center and Office in a browser -| ctldl.windowsupdate.com\* | HTTP | Used to download certificates that are publicly known to be fraudulent -| displaycatalog.mp.microsoft.com/\* | HTTPS | Microsoft Store -| dmd.metaservices.microsoft.com\* | HTTP | Device Authentication -| download.windowsupdate.com\* | HTTPS | Windows Update -| evoke-windowsservices-tas.msedge.net | HTTPS | Photo app -| fe2.update.microsoft.com\* | HTTPS | Windows Update, Microsoft Update, Microsoft Store services -| fe3.delivery.dsp.mp.microsoft.com.nsatc.net | HTTPS | Windows Update, Microsoft Update, Microsoft Store services -| fe3.delivery.mp.microsoft.com\* | HTTPS | Windows Update, Microsoft Update, Microsoft Store services -| g.live.com\* | HTTPS | Used by OneDrive for Business to download and verify app updates -| g.msn.com.nsatc.net | HTTPS | Used to retrieve Windows Spotlight metadata -| go.microsoft.com | HTTP | Windows Defender -| iecvlist.microsoft.com | HTTPS | Microsoft Edge browser -| ipv4.login.msa.akadns6.net | HTTPS | Used for Microsoft accounts to sign in -| licensing.mp.microsoft.com\* | HTTPS | Used for online activation and some app licensing -| login.live.com | HTTPS | Device Authentication -| maps.windows.com/windows-app-web-link | HTTPS | Maps application -| modern.watson.data.microsoft.com.akadns.net | HTTPS | Used by Windows Error Reporting -| msagfx.live.com | HTTPS | OneDrive -| ocos-office365-s2s.msedge.net/\* | HTTPS | Used to connect to the Microsoft 365 admin center's shared infrastructure -| ocsp.digicert.com\* | HTTP | CRL and OCSP checks to the issuing certificate authorities -| oneclient.sfx.ms/\* | HTTPS | Used by OneDrive for Business to download and verify app updates -| onecollector.cloudapp.aria.akadns.net | HTTPS | Microsoft Office -| settings-win.data.microsoft.com/settings/\* | HTTPS | Used as a way for apps to dynamically update their configuration -| share.microsoft.com | HTTPS | Microsoft Store -| skypeecs-prod-usw-0.cloudapp.net | HTTPS | Skype -| sls.update.microsoft.com\* | HTTPS | Windows Update -| storecatalogrevocation.storequality.microsoft.com\* | HTTPS | Used to revoke licenses for malicious apps on the Microsoft Store -| tile-service.weather.microsoft.com\* | HTTP | Used to download updates to the Weather app Live Tile -| tsfe.trafficshaping.dsp.mp.microsoft.com | HTTPS | Windows Update -| v10.events.data.microsoft.com\* | HTTPS | Diagnostic Data -| vip5.afdorigin-prod-ch02.afdogw.com | HTTPS | Used to serve Office 365 experimentation traffic -| watson.telemetry.microsoft.com\* | HTTPS | Used by Windows Error Reporting -| wdcp.microsoft.com | HTTPS | Windows Defender -| wd-prod-cp-us-east-1-fe.eastus.cloudapp.azure.com | HTTPS | Azure -| wusofficehome.msocdn.com | HTTPS | Microsoft Office -| `www.bing.com` | HTTPS | Cortana and Search -| `www.microsoft.com` | HTTP | Diagnostic Data -| `www.microsoft.com/pkiops/certs/`* | HTTP | CRL and OCSP checks to the issuing certificate authorities -| `www.msftconnecttest.com` | HTTP | Network Connection -| `www.office.com` | HTTPS | Microsoft Office diff --git a/windows/privacy/windows-endpoints-1909-non-enterprise-editions.md b/windows/privacy/windows-endpoints-1909-non-enterprise-editions.md deleted file mode 100644 index 90d651940c..0000000000 --- a/windows/privacy/windows-endpoints-1909-non-enterprise-editions.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -title: Windows 10, version 1909, connection endpoints for non-Enterprise editions -description: Explains what Windows 10 endpoints are used in non-Enterprise editions. Specific to Windows 10, version 1909. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 07/20/2020 -ms.topic: reference ---- -# Windows 10, version 1909, connection endpoints for non-Enterprise editions - - **Applies to** - -- Windows 10 Home, version 1909 -- Windows 10 Professional, version 1909 -- Windows 10 Education, version 1909 - -In addition to the endpoints listed for [Windows 10 Enterprise](manage-windows-2004-endpoints.md), the following endpoints are available on other non-Enterprise editions of Windows 10, version 1909. - -The following methodology was used to derive the network endpoints: - -1. Set up the latest version of Windows 10 on a test virtual machine using the default settings. -2. Leave the device(s) running idle for a week ("idle" means a user is not interacting with the system/device). -3. Use globally accepted network protocol analyzer/capturing tools and log all background egress traffic. -4. Compile reports on traffic going to public IP addresses. -5. The test virtual machine(s) was logged into using a local account, and was not joined to a domain or Azure Active Directory. -6. All traffic was captured in our lab using a IPV4 network. Therefore, no IPV6 traffic is reported here. -7. These tests were conducted in an approved Microsoft lab. It's possible your results may be different. -8. These tests were conducted for one week. If you capture traffic for longer you may have different results. - -> [!NOTE] -> Microsoft uses global load balancers that can appear in network trace-routes. For example, an endpoint for *.akadns.net might be used to load balance requests to an Azure datacenter, which can change over time. - -## Windows 10 Home - -| **Destination** | **Protocol** | **Description** | -| --- | --- | --- | -|arc.msn.com|HTTP/TLS v1.2|Windows Spotlight -|api.asm.skype.com|TLS v1.2|Used to retrieve Skype configuration values -|browser.pipe.aria.microsoft.com|HTTPS|Used to retrieve Skype configuration values -|ctldl.windowsupdate.com/*|HTTP|Certificate Trust List -|client.wns.windows.com|HTTP|Used for the Windows Push Notification Service(WNS) -|config.edge.skype.com|HTTP/TLS v1.2|Used to retrieve Skype configuration values -|dmd.metaservices.microsoft.com|HTTP|Device metadata -|config.teams.microsoft.com|HTTPS|Used for Microsoft Teams application -|*dl.delivery.mp.microsoft.com|HTTP|Used to download operating system patches, updates, and apps from Microsoft Store -|*.tlu.dl.delivery.mp.microsoft.com|HTTP|Used to download operating system patches, updates, and apps from Microsoft Store -|\*displaycatalog.mp.microsoft.com|HTTP/TLS v1.2|Used to communicate with Microsoft Store -|evoke-windowsservices-tas.msedge.net|HTTP/TLS v1.2|Used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser -|fe2cr.update.microsoft.com|HTTPS/TLS v1.2|Enables connections to Windows Update, Microsoft Update, and the online services of the Store -|fe3cr.delivery.mp.microsoft.com|HTTPS/TLS v1.2|Used to download operating system patches, updates, and apps from Microsoft Store -|go.microsoft.com|HTTP|Windows Defender and/or Microsoft forward link redirection service (FWLink) -|g.live.com|HTTP|OneDrive -|checkappexec.microsoft.com|HTTPS|Used for Windows Defender Smartscreen reporting and notifications -|*.prod.do.dsp.mp.microsoft.com|HTTP/TLS v1.2|Windows Update -|*.au.download.windowsupdate.com|HTTP|Windows Update -|download.windowsupdate.com|HTTP|Windows Update -|inference.location.live.net|TLS v1.2|Used for Location Data -|iecvlist.microsoft.com|HTTP|This endpoint is related to Microsoft Edge -|login.live.com|HTTPS/TLS v1.2|Device Authentication -|logincdn.msauth.net|HTTPS|OneDrive -|licensing.mp.microsoft.com|HTTP/TLS v1.2|Licensing -|maps.windows.com|TLS v1.2|Used to check for updates to maps that have been downloaded for offline use -|mobile.pipe.aria.microsoft.com|HTTP|Office Telemetry -|nav.smartscreen.microsoft.com|HTTP|Used for Windows Defender SmartScreen reporting and notifications -|outlook.office365.com|HTTP|Used to connect to the Microsoft 365 admin center's shared infrastructure, including Office in a browser -|ocsp.digicert.com|HTTP|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 -|oneclient.sfx.ms|HTTPS|Used by OneDrive for Business to download and verify app updates -|img-prod-cms-rt-microsoft-com.akamaized.net|HTTP|Used to communicate with Microsoft Store -|manage.devcenter.microsoft.com|HTTP/TLS v1.2|Used to get Microsoft Store analytics -|ris.api.iris.microsoft.com|HTTPS|Used to retrieve Windows Spotlight metadata that describes content -|settings-win.data.microsoft.com|HTTPS/TLS v1.2|Used for Windows apps to dynamically update their configuration -|smartscreen-prod.microsoft.com|HTTP|Used for Windows Defender SmartScreen reporting and notifications -|*.blob.core.windows.net|HTTP/TLS v1.2|Windows Telemetry -|storage.live.com|HTTP/TLS v1.2|OneDrive -|skydrivesync.policies.live.net|TLS v1.2|OneDrive -|dm2302.settings.live.net|HTTP|OneDrive -|slscr.update.microsoft.com|HTTPS/TLS V1.2|Windows Update -|tile-service.weather.microsoft.com|HTTP|Used for the Weather app -|tsfe.trafficshaping.dsp.mp.microsoft.com|HTTP|This endpoint is used for content regulation -|watson.telemetry.microsoft.com*|HTTPS/TLS v1.2|Diagnostic Data -|v10.events.data.microsoft.com/onecollector/1.0/|HTTPS|Microsoft Office -|v10.events.data.microsoft.com|HTTPS/TLS v1.2|Used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service -|www.bing.com|HTTPS/TLS v1.2|Cortana and Live Tiles -|www.msftconnecttest.com|HTTP|Network Connection Status Indicator (NCSI) -|wdcp.microsoft.com|HTTPS|Used for Windows Defender when Cloud-based Protection is enabled -|activity.windows.com|TLSV1.2|Used by Activity Feed Service which enables multiple cross-device data roaming scenarios on Windows -|adl.windows.com|HTTP|Used for compatibility database updates for Windows -|spclient.wg.spotify.com|TLSV1.2|Used for Spotify Live Tile -|cs.dds.microsoft.com|TLSV1.2|Used by Device Directory Service to keep track of user-device associations and storing metadata about the devices. - -## Windows 10 Pro - -| **Destination** | **Protocol** | **Description** | -| --- | --- | --- | -|*.prod.do.dsp.mp.microsoft.com|HTTP/TLS v1.2|Windows Update -|api.onedrive.com|HTTP|OneDrive -|smartscreen-prod.microsoft.com|HTTP|Used for Windows Defender SmartScreen reporting and notifications -|nav.smartscreen.microsoft.com|HTTPS/TLS v1.2|Windows Defender -|*.update.microsoft.com|HTTP|Enables connections to Windows Update, Microsoft Update, and the online services of Microsoft Store -|browser.pipe.aria.microsoft.com|HTTPS|Used to retrieve Skype configuration values -|*.windowsupdate.com|HTTP|Used to download operating system patches and updates -|*.wns.windows.com|TLS v1.2|Used for the Windows Push Notification Services (WNS) -|*dl.delivery.mp.microsoft.com|HTTP|Used to download operating system patches, updates, and apps from Microsoft Store -|c-ring.msedge.net|TLS v1.2|Cortana and Live Tiles -|a-ring.msedge.net|TLS v1.2|Cortana and Live Tiles -|*storecatalogrevocation.storequality.microsoft.com|HTTP/TLS v1.2|Used to revoke licenses for malicious apps on the Microsoft Store -|arc.msn.com|HTTP/TLS v1.2|Windows Spotlight -|*.blob.core.windows.net|HTTP/TLS v1.2|Windows Telemetry -|cdn.onenote.net|HTTPS/TLS v1.2|OneNote Live Tile -|checkappexec.microsoft.com|HTTPS|Used for Windows Defender SmartScreen reporting and notifications -|config.edge.skype.com|HTTP/TLS v1.2|Used to retrieve Skype configuration values -|config.teams.microsoft.com|HTTPS|Used for Microsoft Teams application -|ctldl.windowsupdate.com|HTTP|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 -|*displaycatalog.mp.microsoft.com|HTTP/TLS v1.2|Microsoft Store -|fe2cr.update.microsoft.com|HTTPS/TLS v1.2|Windows Update -|fe3cr.delivery.mp.microsoft.com|HTTPS/TLS v1.2|Windows Update -|slscr.update.microsoft.com|HTTPS/TLS v1.2|Windows Update -|evoke-windowsservices-tas.msedge.net|HTTPS/TLS v1.2|Used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser -|fp.msedge.net|HTTPS/TLS v1.2|Cortana and Live Tiles -|fp-vp.azureedge.net|TLS v1.2|Cortana and Live Tiles -|g.live.com|TLS v1.2|OneDrive -|go.microsoft.com|HTTP|Windows Defender and/or Microsoft forward link redirection service (FWLink) -|iecvlist.microsoft.com|HTTP|Microsoft Edge -|inference.location.live.net|TLS v1.2|Used for Location Data -|img-prod-cms-rt-microsoft-com.akamaized.net|HTTP|Used to communicate with Microsoft Store -|licensing.mp.microsoft.com*|HTTP/TLS v1.2|Licensing -|login.live.com|HTTPS/TLS v1.2|Device Authentication -|logincdn.msauth.net|HTTPS|Used for Microsoft accounts to sign in -|manage.devcenter.microsoft.com|HTTP/TLS v1.2|Microsoft Store analytics -|maps.windows.com|TLS v1.2|Related to Maps application -|ocsp.digicert.com|HTTP|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 -|ocsp.msocsp.com|HTTP|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 -|oneclient.sfx.ms|HTTPS|Used by OneDrive for Business to download and verify app updates -|mobile.pipe.aria.microsoft.com|HTTP|Office Telemetry -|ris.api.iris.microsoft.com|TLS v1.2|Windows Spotlight -|settings-win.data.microsoft.com|HTTPS/TLS v1.2|Used for Windows apps to dynamically update their configuration -|spo-ring.msedge.net|TLSv1.2|Cortana and Live Tiles -|telecommand.telemetry.microsoft.com|TLS v1.2|Used by Windows Error Reporting -|tile-service.weather.microsoft.com|HTTP|Used for the Weather app -|tsfe.trafficshaping.dsp.mp.microsoft.com|HTTPS|Used for content regulation -|v10.events.data.microsoft.com/onecollector/1.0/|HTTPS/TLS v1.2|Diagnostic Data -|v10.events.data.microsoft.com|HTTPS/TLS v1.2|Used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service -|watson.telemetry.microsoft.com*|HTTPS/TLS v1.2|Used by Windows Error Reporting -|wdcp.microsoft.com|HTTPS|Used for Windows Defender when Cloud-based Protection is enabled -|www.bing.com|HTTPS/TLS v1.2|Cortana and Live Tiles -|www.msftconnecttest.com|HTTP|Network Connection Status Indicator (NCSI) -|outlook.office365.com|HTTP|Microsoft Office -|storage.live.com|HTTP/TLS v1.2|OneDrive -|skydrivesync.policies.live.net|TLS v1.2|OneDrive -|windows.policies.live.net|HTTP|OneDrive -|activity.windows.com|TLSV1.2|Used by Activity Feed Service which enables multiple cross-device data roaming scenarios on Windows -|adl.windows.com|HTTP|Used for compatibility database updates for Windows -|spclient.wg.spotify.com|TLSV1.2|Used for Spotify Live Tile -|cs.dds.microsoft.com|TLSV1.2|Used by Device Directory Service to keep track of user-device associations and storing metadata about the devices. - -## Windows 10 Education - -| **Destination** | **Protocol** | **Description** | -| --- | --- | --- | -|arc.msn.com|HTTPS/TLS v1.2|Windows Spotlight -|*.dl.delivery.mp.microsoft.com|HTTP|Used to download operating system patches, updates, and apps from Microsoft -|client.wns.windows.com|TLS v1.2|Used for the Windows Push Notification Services (WNS) -|*storecatalogrevocation.storequality.microsoft.com|TLS v1.2|Used to revoke licenses for malicious apps on the Microsoft Store -|ctldl.windowsupdate.com|HTTP|Certificate Trust List -|dmd.metaservices.microsoft.com|HTTP|Device metadata -|Inference.location.live.net|TLS v1.2|Location -|oneclient.sfx.ms|HTTPS|OneDrive -|storage.live.com|HTTP/TLS v1.2|OneDrive -|skydrivesync.policies.live.net|TLS v1.2|OneDrive -|slscr.update.microsoft.com|HTTPS/TLS v1.2|Windows Update -|fe2cr.update.microsoft.com|HTTPS/TLS v1.2|Windows Update -|fe3cr.delivery.mp.microsoft.com|HTTPS/TLS v1.2|Windows Update -|tsfe.trafficshaping.dsp.mp.microsoft.com|HTTP/TLS v1.2|Windows Update -|officehomeblobs.blob.core.windows.net|HTTP|Windows Telemetry -|\*displaycatalog.mp.microsoft.com|HTTP/TLS v1.2|Microsoft Store -|img-prod-cms-rt-microsoft-com.akamaized.net|HTTP|Used to communicate with Microsoft Store -|config.teams.microsoft.com|HTTPS|Teams -|api.asm.skype.com|TLS v1.2|Used to retrieve Skype configuration values -|config.edge.skype.com|HTTP/TLS v1.2|Used to retrieve Skype configuration values -|logincdn.msauth.net|HTTPS|OneDrive -|iecvlist.microsoft.com|HTTP|Microsoft Edge -|download.windowsupdate.com|HTTP|Windows Update -|checkappexec.microsoft.com|HTTPS|Windows Defender -|evoke-windowsservices-tas.msedge.net|HTTPS/TLS v1.2|Photos app -|g.live.com|TLS v1.2|OneDrive -|go.microsoft.com|HTTP|Windows Defender -|licensing.mp.microsoft.com|HTTP/TLS v1.2|Licensing -|login.live.com|HTTPS/TLS v1.2|Device Authentication -|manage.devcenter.microsoft.com|TLS v1.2|Microsoft Store analytics -|ocsp.digicert.com|HTTP|CRL and OCSP checks to the issuing certificate authorities -|ris.api.iris.microsoft.com|TLS v1.2|Windows spotlight -|telecommand.telemetry.microsoft.com|TLS v1.2|Used by Windows Error Reporting -|tile-service.weather.microsoft.com|HTTP|Used to download updates to the Weather app Live Tile -|v10.events.data.microsoft.com|HTTPS/TLS v1.2|Diagnostic Data -|V10.events.data.microsoft.com/onecollector/1.0/|HTTPS|Diagnostic Data -|Watson.telemetry.microsoft.com/telemetry.request|HTTPS|Diagnostic Data -|watson.telemetry.microsoft.com|HTTPS|Diagnostic Data -|outlook.office365.com|HTTP|Microsoft Office -|www.bing.com|TLS v1.2|Used for updates for Cortana, apps, and Live Tiles -|www.msftconnecttest.com|HTTP|Network Connection (NCSI) -|adl.windows.com|HTTP|Used for compatibility database updates for Windows diff --git a/windows/privacy/windows-endpoints-2004-non-enterprise-editions.md b/windows/privacy/windows-endpoints-2004-non-enterprise-editions.md deleted file mode 100644 index bfe4a21c48..0000000000 --- a/windows/privacy/windows-endpoints-2004-non-enterprise-editions.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -title: Windows 10, version 2004, connection endpoints for non-Enterprise editions -description: Explains what Windows 10 endpoints are used in non-Enterprise editions. Specific to Windows 10, version 2004. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 05/11/2020 -ms.topic: reference ---- -# Windows 10, version 2004, connection endpoints for non-Enterprise editions - - **Applies to** - -- Windows 10 Home, version 2004 -- Windows 10 Professional, version 2004 -- Windows 10 Education, version 2004 - -In addition to the endpoints listed for [Windows 10 Enterprise](manage-windows-2004-endpoints.md), the following endpoints are available on other non-Enterprise editions of Windows 10, version 2004. - -The following methodology was used to derive the network endpoints: - -1. Set up the latest version of Windows 10 on a test virtual machine using the default settings. -2. Leave the device(s) running idle for a week ("idle" means a user is not interacting with the system/device). -3. Use globally accepted network protocol analyzer/capturing tools and log all background egress traffic. -4. Compile reports on traffic going to public IP addresses. -5. The test virtual machine(s) was logged into using a local account, and was not joined to a domain or Azure Active Directory. -6. All traffic was captured in our lab using a IPV4 network. Therefore, no IPV6 traffic is reported here. -7. These tests were conducted in an approved Microsoft lab. It's possible your results may be different. -8. These tests were conducted for one week. If you capture traffic for longer you may have different results. - - -> [!NOTE] -> Microsoft uses global load balancers that can appear in network trace-routes. For example, an endpoint for *.akadns.net might be used to load balance requests to an Azure datacenter, which can change over time. - -## Windows 10 Home - -| **Destination** | **Protocol** | **Description** | -| --- | --- | --- | -|*.delivery.mp.microsoft.com|HTTP|Used to download operating system patches, updates, and apps from Microsoft -|*.prod.do.dsp.mp.microsoft.com|TLSv1.2|Windows Update -|*.smartscreen.microsoft.com|HTTPS|Windows Defender SmartScreen -|*.smartscreen-prod.microsoft.com|HTTPS|Windows Defender SmartScreen -|*.update.microsoft.com|TLSv1.2|Enables connections to Windows Update, Microsoft Update, and the online services of Microsoft Store -|*.windowsupdate.com|HTTP|Used to download operating system patches and updates -|*dl.delivery.mp.microsoft.com|HTTP|Used to download operating system patches, updates, and apps from Microsoft -|*storecatalogrevocation.storequality.microsoft.com|TLSv1.2|Used to revoke licenses for malicious apps on the Microsoft Store -|arc.msn.com|TLSv1.2|Windows Spotlight -|cdn.onenote.net|HTTPS|OneNote -|config.edge.skype.com|HTTPS|Skype -|config.teams.microsoft.com|HTTPS|Skype -|crl.microsoft.com|HTTPS|Skype -|ctldl.windowsupdate.com|HTTP|Certificate Trust List -|da.xboxservices.com|HTTPS|Microsoft Edge -|*displaycatalog.mp.microsoft.com|HTTPS|Microsoft Store -|dmd.metaservices.microsoft.com|HTTP|Device Authentication -|evoke-windowsservices-tas.msedge.net|TLSv1.2|Photos app -|fs.microsoft.com|TLSv1.2|Maps application -|g.live.com|TLSv1.2|OneDrive -|go.microsoft.com|HTTPS|Windows Defender -|img-prod-cms-rt-microsoft-com|TLSv1.2|This endpoint is related to Microsoft Edge -|licensing.mp.microsoft.com|HTTPS|Licensing -|login.live.com|TLSv1.2|Device Authentication -|logincdn.msauth.net|TLSv1.2|Device Authentication -|manage.devcenter.microsoft.com|TLSv1.2|Microsoft Store analytics -|maps.windows.com|TLSv1.2|Related to Maps application -|ocsp.digicert.com|HTTPS|CRL and OCSP checks to the issuing certificate authorities -|oneclient.sfx.ms|HTTPS|Used by OneDrive for Business to download and verify app updates -|pipe.aria.microsoft.com|HTTPS|Used to retrieve Skype configuration values -|ris.api.iris.microsoft.com|TLSv1.2|Windows Telemetry -|settings-win.data.microsoft.com|TLSv1.2|Used for Windows apps to dynamically update their configuration -|storesdk.dsx.mp.microsoft.com|HTTPS|Used to communicate with Microsoft Store -|telecommand.telemetry.microsoft.com|TLSv1.2|Used by Windows Error Reporting -|tile-service.weather.microsoft.com|HTTPS|Used to download updates to the Weather app Live Tile -|tsfe.trafficshaping.dsp.mp.microsoft.com|TLSv1.2|Used for content regulation -|v10.events.data.microsoft.com|TLSv1.2|Diagnostic Data -|v20.events.data.microsoft.com|TLSv1.2|Diagnostic Data -|watson.telemetry.microsoft.com|HTTPS|Diagnostic Data -|wdcp.microsoft.com|TLSv1.2|Used for Windows Defender when Cloud-based Protection is enabled -|www.bing.com|TLSv1.2|Used for updates for Cortana, apps, and Live Tiles -|www.msftconnecttest.com|HTTP|Network Connection (NCSI) -|www.office.com|HTTPS|Microsoft Office - - -## Windows 10 Pro - -| **Destination** | **Protocol** | **Description** | -| --- | --- | --- | -|*.delivery.mp.microsoft.com|HTTP|Used to download operating system patches, updates, and apps from Microsoft -|*.prod.do.dsp.mp.microsoft.com|TLSv1.2|Windows Update -|*.smartscreen.microsoft.com|HTTPS|Windows Defender SmartScreen -|*.smartscreen-prod.microsoft.com|HTTPS|Windows Defender SmartScreen -|*.update.microsoft.com|TLSv1.2|Enables connections to Windows Update, Microsoft Update, and the online services of Microsoft Store -|*.windowsupdate.com|HTTP|Used to download operating system patches and updates -|*.wns.windows.com|TLSv1.2|Used for the Windows Push Notification Services (WNS) -|*dl.delivery.mp.microsoft.com|HTTP|Used to download operating system patches, updates, and apps from Microsoft -|*msn-com.akamaized.net|HTTPS|This endpoint is related to Microsoft Edge -|*ring.msedge.net|HTTPS|Used by Microsoft OfficeHub to get the metadata of Microsoft Office apps -|*storecatalogrevocation.storequality.microsoft.com|TLSv1.2|Used to revoke licenses for malicious apps on the Microsoft Store -|arc.msn.com|TLSv1.2|Windows Spotlight -|blobs.officehome.msocdn.com|HTTPS|OneNote -|cdn.onenote.net|HTTPS|OneNote -|checkappexec.microsoft.com|HTTPS|OneNote -|config.edge.skype.com|HTTPS|Skype -|config.teams.microsoft.com|HTTPS|Skype -|crl.microsoft.com|HTTPS|Skype -|ctldl.windowsupdate.com|HTTP|Certificate Trust List -|d2i2wahzwrm1n5.cloudfront.net|HTTPS|Microsoft Edge -|da.xboxservices.com|HTTPS|Microsoft Edge -|*displaycatalog.mp.microsoft.com|HTTPS|Microsoft Store -|dlassets-ssl.xboxlive.com|HTTPS|Xbox Live -|dmd.metaservices.microsoft.com|HTTP|Device Authentication -|evoke-windowsservices-tas.msedge.net|TLSv1.2|Photos app -|fp.msedge.net|HTTPS|Cortana and Live Tiles -|fs.microsoft.com|TLSv1.2|Maps application -|g.live.com|TLSv1.2|OneDrive -|go.microsoft.com|HTTPS|Windows Defender -|img-prod-cms-rt-microsoft-com*|TLSv1.2|This endpoint is related to Microsoft Edge -|licensing.mp.microsoft.com|HTTPS|Licensing -|login.live.com|TLSv1.2|Device Authentication -|manage.devcenter.microsoft.com|TLSv1.2|Microsoft Store analytics -|maps.windows.com|TLSv1.2|Related to Maps application -|ocsp.digicert.com|HTTPS|CRL and OCSP checks to the issuing certificate authorities -|oneclient.sfx.ms|HTTPS|Used by OneDrive for Business to download and verify app updates -|pipe.aria.microsoft.com|HTTPS|Used to retrieve Skype configuration values -|ris.api.iris.microsoft.com|TLSv1.2|Windows Telemetry -|s1325.t.eloqua.com|HTTPS|Microsoft Edge -|self.events.data.microsoft.com|HTTPS|Microsoft Office -|settings-win.data.microsoft.com|TLSv1.2|Used for Windows apps to dynamically update their configuration -|store-images.*microsoft.com|HTTPS|Used to get images that are used for Microsoft Store suggestions -|storesdk.dsx.mp.microsoft.com|HTTPS|Microsoft Store -|telecommand.telemetry.microsoft.com|TLSv1.2|Used by Windows Error Reporting -|tile-service.weather.microsoft.com|HTTPS|Used to download updates to the Weather app Live Tile -|time.windows.com|HTTPS|Fetch the time -|tsfe.trafficshaping.dsp.mp.microsoft.com|HTTPS|The following endpoint is used for content regulation -|v10.events.data.microsoft.com|TLSv1.2|Diagnostic Data -|watson.telemetry.microsoft.com|HTTPS|Diagnostic Data -|wdcp.microsoft.com|TLSv1.2|Used for Windows Defender when Cloud-based Protection is enabled -|www.bing.com|TLSv1.2|Used for updates for Cortana, apps, and Live Tiles -|www.msftconnecttest.com|HTTP|Network Connection (NCSI) -|www.msn.com|HTTPS|Network Connection (NCSI) -|www.office.com|HTTPS|Microsoft Office - - -## Windows 10 Education - -| **Destination** | **Protocol** | **Description** | -| --- | --- | --- | -|*.delivery.mp.microsoft.com|HTTP|Used to download operating system patches, updates, and apps from Microsoft -|*.prod.do.dsp.mp.microsoft.com|TLSv1.2|Windows Update -|*.smartscreen.microsoft.com|HTTPS|Windows Defender SmartScreen -|*.smartscreen-prod.microsoft.com|HTTPS|Windows Defender SmartScreen -|*.update.microsoft.com|TLSv1.2|Enables connections to Windows Update, Microsoft Update, and the online services of Microsoft Store -|*.windowsupdate.com|HTTP|Used to download operating system patches and updates -|*.wns.windows.com|TLSv1.2|Used for the Windows Push Notification Services (WNS) -|*dl.delivery.mp.microsoft.com|HTTP|Used to download operating system patches, updates, and apps from Microsoft -|*ring.msedge.net|HTTPS|Used by Microsoft OfficeHub to get the metadata of Microsoft Office apps -|*storecatalogrevocation.storequality.microsoft.com|TLSv1.2|Used to revoke licenses for malicious apps on the Microsoft Store -|arc.msn.com|TLSv1.2|Windows Spotlight -|blobs.officehome.msocdn.com|HTTPS|OneNote -|cdn.onenote.net|HTTPS|OneNote -|checkappexec.microsoft.com|HTTPS|OneNote -|config.edge.skype.com|HTTPS|Skype -|config.teams.microsoft.com|HTTPS|Skype -|crl.microsoft.com|HTTPS|Skype -|ctldl.windowsupdate.com|HTTP|Certificate Trust List -|da.xboxservices.com|HTTPS|Microsoft Edge -|dmd.metaservices.microsoft.com|HTTP|Device Authentication -|evoke-windowsservices-tas.msedge.net|TLSv1.2|Photos app -|fp.msedge.net|HTTPS|Cortana and Live Tiles -|fs.microsoft.com|TLSv1.2|Maps application -|g.live.com|TLSv1.2|OneDrive -|go.microsoft.com|HTTPS|Windows Defender -|licensing.mp.microsoft.com|HTTPS|Licensing -|login.live.com|TLSv1.2|Device Authentication -|logincdn.msauth.net|HTTPS|Device Authentication -|manage.devcenter.microsoft.com|TLSv1.2|Microsoft Store analytics -|ocsp.digicert.com|HTTPS|CRL and OCSP checks to the issuing certificate authorities -|ocsp.msocsp.com|HTTPS|CRL and OCSP checks to the issuing certificate authorities -|ow1.res.office365.com|HTTPS|Microsoft Office -|pipe.aria.microsoft.com|HTTPS|Used to retrieve Skype configuration values -|ris.api.iris.microsoft.com|TLSv1.2|Windows Telemetry -|s1325.t.eloqua.com|HTTPS|Microsoft Edge -|settings-win.data.microsoft.com|TLSv1.2|Used for Windows apps to dynamically update their configuration -|telecommand.telemetry.microsoft.com|TLSv1.2|Used by Windows Error Reporting -|tile-service.weather.microsoft.com|HTTPS|Used to download updates to the Weather app Live Tile -|v10.events.data.microsoft.com|TLSv1.2|Diagnostic Data -|v20.events.data.microsoft.com|HTTPS|Diagnostic Data -|watson.telemetry.microsoft.com|HTTPS|Diagnostic Data -|wdcp.microsoft.com|TLSv1.2|Used for Windows Defender when Cloud-based Protection is enabled -|www.bing.com|TLSv1.2|Used for updates for Cortana, apps, and Live Tiles -|www.microsoft.com|HTTP|Connected User Experiences and Telemetry, Microsoft Data Management service -|www.msftconnecttest.com|HTTP|Network Connection (NCSI) -|www.office.com|HTTPS|Microsoft Office diff --git a/windows/privacy/windows-endpoints-20H2-non-enterprise-editions.md b/windows/privacy/windows-endpoints-20H2-non-enterprise-editions.md deleted file mode 100644 index 2f2d8eb8f3..0000000000 --- a/windows/privacy/windows-endpoints-20H2-non-enterprise-editions.md +++ /dev/null @@ -1,256 +0,0 @@ ---- -title: Windows 10, version 20H2, connection endpoints for non-Enterprise editions -description: Explains what Windows 10 endpoints are used in non-Enterprise editions. Specific to Windows 10, version 20H2. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 12/17/2020 -ms.topic: reference ---- -# Windows 10, version 20H2, connection endpoints for non-Enterprise editions - - **Applies to** - -- Windows 10 Home, version 20H2 -- Windows 10 Professional, version 20H2 -- Windows 10 Education, version 20H2 - -In addition to the endpoints listed for [Windows 10 Enterprise](manage-windows-2004-endpoints.md), the following endpoints are available on other non-Enterprise editions of Windows 10, version 20H2. - -The following methodology was used to derive the network endpoints: - -1. Set up the latest version of Windows 10 on a test virtual machine using the default settings. -2. Leave the device(s) running idle for a week ("idle" means a user is not interacting with the system/device). -3. Use globally accepted network protocol analyzer/capturing tools and log all background egress traffic. -4. Compile reports on traffic going to public IP addresses. -5. The test virtual machine(s) was logged into using a local account, and was not joined to a domain or Azure Active Directory. -6. All traffic was captured in our lab using a IPV4 network. Therefore, no IPV6 traffic is reported here. -7. These tests were conducted in an approved Microsoft lab. It's possible your results may be different. -8. These tests were conducted for one week. If you capture traffic for longer you may have different results. - -> [!NOTE] -> Microsoft uses global load balancers that can appear in network trace-routes. For example, an endpoint for *.akadns.net might be used to load balance requests to an Azure datacenter, which can change over time. - -## Windows 10 Home - -| **Area** | **Description** | **Protocol** | **Destination** | -|-----------|--------------- |------------- |-----------------| -| Activity Feed Service |The following endpoints are used by Activity Feed Service which enables multiple cross-device data roaming scenarios on Windows|TLSv1.2/HTTPS/HTTP|activity.windows.com| -|Apps|The following endpoints are used for the Weather app.|TLSv1.2/HTTPS/HTTP|tile-service.weather.microsoft.com| -||The following endpoint is used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS/HTTP|evoke-windowsservices-tas.msedge.net| -||The following endpoint is used for OneNote Live Tile.|HTTPS/HTTP|cdn.onenote.net| -||Used for Spotify Live Tile|HTTPS/HTTP|spclient.wg.spotify.com| -|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.|TLSv1.2/HTTPS/HTTP|ctldl.windowsupdate.com/*| -|Cortana and Live Tiles|The following endpoints are related to Cortana and Live Tiles|TLSv1.2/HTTPS/HTTP|www.bing.com*| -|||HTTPS/HTTP|fp.msedge.net| -|||HTTPS/HTTP|k-ring.msedge.net| -|||TLSv1.2|b-ring.msedge.net| -|Device authentication|The following endpoint is used to authenticate a device.|HTTPS|login.live.com*| -|Device Directory Service|Used by Device Directory Service to keep track of user-device associations and storing metadata about the devices.|HTTPS/HTTP|cs.dds.microsoft.com| -|Device metadata|The following endpoint is used to retrieve device metadata.|TLSv1.2/HTTP|dmd.metaservices.microsoft.com| -|Diagnostic data|The following endpoints are used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service.|TLSv1.2/HTTP|v10.events.data.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|v20.events.data.microsoft.com| -|||TLSv1.2/HTTP|www.microsoft.com| -||The following endpoints are used by Windows Error Reporting.|TLSv1.2/HTTPS/HTTP|watson.telemetry.microsoft.com| -|Font Streaming|The following endpoints are used to download fonts on demand.|TLSv1.2/HTTPS|fs.microsoft.com*| -|Licensing|The following endpoint is used for online activation and some app licensing.|HTTPS/HTTP|*licensing.mp.microsoft.com| -|||HTTPS|licensing.mp.microsoft.com/v7.0/licenses/content| -|Location|The following endpoints are used for location data.|TLSV1.2|inference.location.live.net| -|Maps|The following endpoints are used to check for updates to maps that have been downloaded for offline use.|HTTPS/HTTP|maps.windows.com| -|||HTTPS/HTTP|*.ssl.ak.dynamic.tiles.virtualearth.net| -|||HTTPS/HTTP|*.ssl.ak.tiles.virtualearth.net| -|||HTTPS/HTTP|dev.virtualearth.net| -|||HTTPS/HTTP|ecn.dev.virtualearth.net| -|||HTTPS/HTTP|ssl.bing.com| -|Microsoft Account|The following endpoints are used for Microsoft accounts to sign in|TLSv1.2/HTTPS/HTTP|*login.live.com| -|Microsoft Edge|The following endpoints are used for Microsoft Edge Browser Services.|HTTPS/HTTP|edge.activity.windows.com| -|||HTTPS/HTTP|edge.microsoft.com| -||The following endpoint is used by Microsoft Edge Update service to check for new updates.|HTTPS/HTTP|msedge.api.cdp.microsoft.com| -|Microsoft forward link redirection|The following endpoint is used by the Microsoft forward link redirection service (FWLink) to redirect permanent web links to their actual, sometimes transitory, URL. FWlinks are similar to URL shorteners, just longer|HTTP|go.microsoft.com/fwlink/| -|||TLSv1.2/HTTPS/HTTP|go.microsoft.com| -|Microsoft Store|The following endpoint is used to download image files that are called when applications run (Microsoft Store or Inbox MSN Apps)|TLSv1.2/HTTPS/HTTP|img-prod-cms-rt-microsoft-com.akamaized.net| -||The following endpoint is used for the Windows Push Notification Services (WNS). WNS enables third-party developers to send toast, tile, badge, and raw updates from their own cloud service. This provides a mechanism to deliver new updates to your users in a power-efficient and dependable way.|TLSv1.2/HTTPS|*.wns.windows.com| -||The following endpoint is used to revoke licenses for malicious apps in the Microsoft Store.|TLSv1.2/HTTPS/HTTP|storecatalogrevocation.storequality.microsoft.com| -||The following endpoints are used to communicate with Microsoft Store.|TLSv1.2/HTTPS/HTTP|*displaycatalog.mp.microsoft.com| -|||HTTPS|storesdk.dsx.mp.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|TLSv1.2/HTTPS/HTTP|manage.devcenter.microsoft.com| -||The following endpoints are used get images that are used for Microsoft Store suggestions|TLSv1.2|store-images.s-microsoft.com| -|Network Connection Status Indicator (NCSI)|Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to this endpoint to determine if the device can communicate with the Internet.|TLSv1.2/HTTP|www.msftconnecttest.com*| -|Office|The following endpoints are used to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS/HTTP|outlook.office365.com| -|||TLSv1.2/HTTPS|office.com| -|||TLSv1.2/HTTPS|blobs.officehome.msocdn.com| -|||HTTPS/HTTP|officehomeblobs.blob.core.windows.net| -|||HTTP/HTTPS|*.blob.core.windows.net| -|||TLSv1.2|self.events.data.microsoft.com| -|||HTTPS/HTTP|outlookmobile-office365-tas.msedge.net| -|||HTTP|roaming.officeapps.live.com| -|||HTTPS/HTTP|substrate.office.com| -|OneDrive|The following endpoints are related to OneDrive.|HTTPS|g.live.com| -|||TLSv1.2/HTTPS|oneclient.sfx.ms| -|||HTTPS/TLSv1.2|logincdn.msauth.net| -|||HTTPS/HTTP|windows.policies.live.net| -|||HTTPS/HTTP|api.onedrive.com| -|||HTTPS/HTTP|skydrivesync.policies.live.net| -|||HTTPS/HTTP|*storage.live.com| -|||HTTPS/HTTP|*settings.live.net| -|Settings|The following endpoint is used as a way for apps to dynamically update their configuration. Apps such as System Initiated User Feedback and the Xbox app use it.|TLSv1.2/HTTPS/HTTP|settings.data.microsoft.com*| -|||TLSv1.2/HTTPS/HTTP|settings-win.data.microsoft.com*| -|Skype|The following endpoint is used to retrieve Skype configuration values.|TLSv1.2/HTTPS/HTTP|*.pipe.aria.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|config.edge.skype.com| -|Teams|The following endpoint is used for Microsoft Teams application.|TLSv1.2/HTTPS/HTTP|config.teams.microsoft.com| -|Windows Defender|The following endpoint is used for Windows Defender when Cloud-based Protection is enabled|TLSv1.2/HTTPS|wdcp.microsoft.com| -||||wdcpalt.microsoft.com| -|||HTTPS/HTTP|*.smartscreen-prod.microsoft.com| -|||TLSv1.2|definitionupdates.microsoft.com| -||The following endpoints are used for Windows Defender SmartScreen reporting and notifications.|TLSv1.2|*.smartscreen.microsoft.com| -|||TLSv1.2/HTTP|checkappexec.microsoft.com| -|Windows Spotlight|The following endpoints are used to retrieve Windows Spotlight metadata that describes content, such as references to image locations, as well as suggested apps, Microsoft account notifications, and Windows tips.|TLSv1.2/HTTPS/HTTP|arc.msn.com*| -|||TLSv1.2/HTTPS/HTTP|ris.api.iris.microsoft.com| -|||HTTPS|mucp.api.account.microsoft.com| -|Windows Update|The following endpoint is used for Windows Update downloads of apps and OS updates, including HTTP downloads or HTTP downloads blended with peers.|TLSv1.2/HTTPS/HTTP|*.prod.do.dsp.mp.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|*.dl.delivery.mp.microsoft.com| -||The following endpoints are used to download operating system patches, updates, and apps from Microsoft Store.|TLSv1.2/HTTP|*.windowsupdate.com| -|||TLSv1.2/HTTPS/HTTP|*.delivery.mp.microsoft.com| -||The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store to help keep the device secure.|TLSv1.2/HTTPS/HTTP|*.update.microsoft.com| -||The following endpoint is used for compatibility database updates for Windows.|HTTP/HTTPS|adl.windows.com| -||The following endpoint is used for content regulation.|TLSv1.2/HTTPS/HTTP|tsfe.trafficshaping.dsp.mp.microsoft.com| -|Xbox Live|The following endpoints are used for Xbox Live.| -|||TLSv1.2/HTTPS/HTTP|dlassets-ssl.xboxlive.com| -|||TLSv1.2/HTTPS|da.xboxservices.com| -|||HTTPS|www.xboxab.com| -| - -## Windows 10 Pro - -| **Area** | **Description** | **Protocol** | **Destination** | -| --- | --- | --- | ---| -| Activity Feed Service |The following endpoints are used by Activity Feed Service which enables multiple cross-device data roaming scenarios on Windows|TLSv1.2/HTTPS/HTTP|activity.windows.com| -|Apps|The following endpoints are used for the Weather app.|TLSv1.2/HTTPS/HTTP|tile-service.weather.microsoft.com| -||The following endpoint is used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS/HTTP|evoke-windowsservices-tas.msedge.net| -||The following endpoint is used for OneNote Live Tile.|HTTPS/HTTP|cdn.onenote.net| -||Used for Spotify Live Tile|HTTPS/HTTP|spclient.wg.spotify.com| -|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.|TLSv1.2/HTTPS/HTTP|ctldl.windowsupdate.com/*| -|Cortana and Live Tiles|The following endpoints are related to Cortana and Live Tiles|TLSv1.2/HTTPS/HTTP|www.bing.com*| -|Device authentication|The following endpoint is used to authenticate a device.|HTTPS|login.live.com*| -|Device metadata|The following endpoint is used to retrieve device metadata.|TLSv1.2/HTTP|dmd.metaservices.microsoft.com| -|Diagnostic data|The following endpoints are used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service.|TLSv1.2/HTTP|v10.events.data.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|v20.events.data.microsoft.com| -|||TLSv1.2/HTTP|www.microsoft.com| -||The following endpoints are used by Windows Error Reporting.|TLSv1.2/HTTPS/HTTP|watson.telemetry.microsoft.com| -|Font Streaming|The following endpoints are used to download fonts on demand.|TLSv1.2/HTTPS|fs.microsoft.com*| -|Licensing|The following endpoint is used for online activation and some app licensing.|HTTPS/HTTP|*licensing.mp.microsoft.com| -|Maps|The following endpoints are used to check for updates to maps that have been downloaded for offline use.|HTTPS/HTTP|maps.windows.com| -|Microsoft Account|The following endpoints are used for Microsoft accounts to sign in|TLSv1.2/HTTPS/HTTP|*login.live.com| -|Microsoft Edge|The following endpoint is used by Microsoft Edge Update service to check for new updates.|HTTPS/HTTP|msedge.api.cdp.microsoft.com| -|Microsoft forward link redirection|The following endpoint is used by the Microsoft forward link redirection service (FWLink) to redirect permanent web links to their actual, sometimes transitory, URL. FWlinks are similar to URL shorteners, just longer|TLSv1.2/HTTPS/HTTP|go.microsoft.com| -|Microsoft Store|The following endpoint is used to download image files that are called when applications run (Microsoft Store or Inbox MSN Apps)|TLSv1.2/HTTPS/HTTP|img-prod-cms-rt-microsoft-com.akamaized.net| -||The following endpoint is used for the Windows Push Notification Services (WNS). WNS enables third-party developers to send toast, tile, badge, and raw updates from their own cloud service. This provides a mechanism to deliver new updates to your users in a power-efficient and dependable way.|TLSv1.2/HTTPS|*.wns.windows.com| -||The following endpoint is used to revoke licenses for malicious apps in the Microsoft Store.|TLSv1.2/HTTPS/HTTP|storecatalogrevocation.storequality.microsoft.com| -||The following endpoints are used to communicate with Microsoft Store.|TLSv1.2/HTTPS/HTTP|*displaycatalog.mp.microsoft.com| -|||HTTPS|storesdk.dsx.mp.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|TLSv1.2/HTTPS/HTTP|manage.devcenter.microsoft.com| -|Network Connection Status Indicator (NCSI)|Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to this endpoint to determine if the device can communicate with the Internet.|TLSv1.2/HTTP|www.msftconnecttest.com*| -|Office|The following endpoints are used to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS/HTTP|outlook.office365.com| -|||TLSv1.2/HTTPS|office.com| -|||TLSv1.2/HTTPS|blobs.officehome.msocdn.com| -|||HTTPS/HTTP|officehomeblobs.blob.core.windows.net| -|||HTTP/HTTPS|*.blob.core.windows.net| -|||TLSv1.2|self.events.data.microsoft.com| -|||HTTPS/HTTP|outlookmobile-office365-tas.msedge.net| -|||TLSv1.2/HTTPS/HTTP|officeclient.microsoft.com| -|||HTTPS/HTTP|substrate.office.com| -|OneDrive|The following endpoints are related to OneDrive.|HTTPS|g.live.com| -|||TLSv1.2/HTTPS|oneclient.sfx.ms| -|||HTTPS/TLSv1.2|logincdn.msauth.net| -|||HTTPS/HTTP|windows.policies.live.net| -|||HTTPS/HTTP|*storage.live.com| -|||HTTPS/HTTP|*settings.live.net| -|Settings|The following endpoint is used as a way for apps to dynamically update their configuration. Apps such as System Initiated User Feedback and the Xbox app use it.|TLSv1.2/HTTPS/HTTP|settings.data.microsoft.com*| -|||TLSv1.2/HTTPS/HTTP|settings-win.data.microsoft.com*| -|Skype|The following endpoint is used to retrieve Skype configuration values.|TLSv1.2/HTTPS/HTTP|*.pipe.aria.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|config.edge.skype.com| -|Teams|The following endpoint is used for Microsoft Teams application.|TLSv1.2/HTTPS/HTTP|config.teams.microsoft.com| -|Windows Defender|The following endpoint is used for Windows Defender when Cloud-based Protection is enabled|TLSv1.2/HTTPS|wdcp.microsoft.com| -||||wdcpalt.microsoft.com| -|||HTTPS/HTTP|*.smartscreen-prod.microsoft.com| -||The following endpoints are used for Windows Defender SmartScreen reporting and notifications.|TLSv1.2|*.smartscreen.microsoft.com| -|||TLSv1.2/HTTP|checkappexec.microsoft.com| -|Windows Spotlight|The following endpoints are used to retrieve Windows Spotlight metadata that describes content, such as references to image locations, as well as suggested apps, Microsoft account notifications, and Windows tips.|TLSv1.2/HTTPS/HTTP|arc.msn.com*| -|||TLSv1.2/HTTPS/HTTP|ris.api.iris.microsoft.com| -|Windows Update|The following endpoint is used for Windows Update downloads of apps and OS updates, including HTTP downloads or HTTP downloads blended with peers.|TLSv1.2/HTTPS/HTTP|*.prod.do.dsp.mp.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|*.dl.delivery.mp.microsoft.com| -||The following endpoints are used to download operating system patches, updates, and apps from Microsoft Store.|TLSv1.2/HTTP|*.windowsupdate.com| -|||TLSv1.2/HTTPS/HTTP|*.delivery.mp.microsoft.com| -||The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store to help keep the device secure.|TLSv1.2/HTTPS/HTTP|*.update.microsoft.com| -||The following endpoint is used for compatibility database updates for Windows.|HTTP/HTTPS|adl.windows.com| -||The following endpoint is used for content regulation.|TLSv1.2/HTTPS/HTTP|tsfe.trafficshaping.dsp.mp.microsoft.com| -|Xbox Live|The following endpoints are used for Xbox Live.| -|||TLSv1.2/HTTPS/HTTP|dlassets-ssl.xboxlive.com| -|||TLSv1.2/HTTPS|da.xboxservices.com| -| - -## Windows 10 Education - -| **Area** | **Description** | **Protocol** | **Destination** | -| --- | --- | --- | ---| -| Activity Feed Service |The following endpoints are used by Activity Feed Service which enables multiple cross-device data roaming scenarios on Windows|TLSv1.2/HTTPS/HTTP|activity.windows.com| -|Apps|The following endpoints are used for the Weather app.|TLSv1.2/HTTPS/HTTP|tile-service.weather.microsoft.com| -||The following endpoint is used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS/HTTP|evoke-windowsservices-tas.msedge.net| -||The following endpoint is used for OneNote Live Tile.|HTTPS/HTTP|cdn.onenote.net| -|Bing Search|The following endpoint is used by Microsoft Search in Bing enabling users to search across files, SharePoint sites, OneDrive content, Teams and Viva Engage conversations, and other shared data sources in an organization, as well as the web.|HTTPS|business.bing.com| -|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.|TLSv1.2/HTTPS/HTTP|ctldl.windowsupdate.com/*| -|Cortana and Live Tiles|The following endpoints are related to Cortana and Live Tiles|TLSv1.2/HTTPS/HTTP|www.bing.com*| -|||HTTPS/HTTP|fp.msedge.net| -|||TLSv1.2|odinvzc.azureedge.net| -|||TLSv1.2|b-ring.msedge.net| -|Device metadata|The following endpoint is used to retrieve device metadata.|TLSv1.2/HTTP|dmd.metaservices.microsoft.com| -|Diagnostic data|The following endpoints are used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service.|TLSv1.2/HTTP|v10.events.data.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|v20.events.data.microsoft.com| -|||TLSv1.2/HTTP|www.microsoft.com| -||The following endpoints are used by Windows Error Reporting.|TLSv1.2/HTTPS/HTTP|watson.telemetry.microsoft.com| -|Font Streaming|The following endpoints are used to download fonts on demand.|TLSv1.2/HTTPS|fs.microsoft.com*| -|Licensing|The following endpoint is used for online activation and some app licensing.|HTTPS/HTTP|*licensing.mp.microsoft.com| -|Location|The following endpoints are used for location data.|TLSV1.2|inference.location.live.net| -|Maps|The following endpoints are used to check for updates to maps that have been downloaded for offline use.|HTTPS/HTTP|maps.windows.com| -|Microsoft Account|The following endpoints are used for Microsoft accounts to sign in|TLSv1.2/HTTPS/HTTP|*login.live.com| -|Microsoft Edge|The following endpoint is used by Microsoft Edge Update service to check for new updates.|HTTPS/HTTP|msedge.api.cdp.microsoft.com| -|Microsoft forward link redirection|The following endpoint is used by the Microsoft forward link redirection service (FWLink) to redirect permanent web links to their actual, sometimes transitory, URL. FWlinks are similar to URL shorteners, just longer|TLSv1.2/HTTPS/HTTP|go.microsoft.com| -|Microsoft Store|The following endpoint is used to download image files that are called when applications run (Microsoft Store or Inbox MSN Apps)|TLSv1.2/HTTPS/HTTP|img-prod-cms-rt-microsoft-com.akamaized.net| -||The following endpoint is used for the Windows Push Notification Services (WNS). WNS enables third-party developers to send toast, tile, badge, and raw updates from their own cloud service. This provides a mechanism to deliver new updates to your users in a power-efficient and dependable way.|TLSv1.2/HTTPS|*.wns.windows.com| -||The following endpoint is used to revoke licenses for malicious apps in the Microsoft Store.|TLSv1.2/HTTPS/HTTP|storecatalogrevocation.storequality.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|1storecatalogrevocation.storequality.microsoft.com| -||The following endpoints are used to communicate with Microsoft Store.|TLSv1.2/HTTPS/HTTP|*displaycatalog.mp.microsoft.com| -|||HTTPS|storesdk.dsx.mp.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|TLSv1.2/HTTPS/HTTP|manage.devcenter.microsoft.com| -|Network Connection Status Indicator (NCSI)|Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to this endpoint to determine if the device can communicate with the Internet.|TLSv1.2/HTTP|www.msftconnecttest.com*| -|Office|The following endpoints are used to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS|office.com| -|||HTTPS/HTTP|officehomeblobs.blob.core.windows.net| -|||TLSv1.2|self.events.data.microsoft.com| -|OneDrive|The following endpoints are related to OneDrive.|HTTPS|g.live.com| -|||TLSv1.2/HTTPS|oneclient.sfx.ms| -|||HTTPS/TLSv1.2|logincdn.msauth.net| -|Settings|The following endpoint is used as a way for apps to dynamically update their configuration. Apps such as System Initiated User Feedback and the Xbox app use it.|TLSv1.2/HTTPS/HTTP|settings.data.microsoft.com*| -|||TLSv1.2/HTTPS/HTTP|settings-win.data.microsoft.com*| -|Skype|The following endpoint is used to retrieve Skype configuration values.|TLSv1.2/HTTPS/HTTP|*.pipe.aria.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|config.edge.skype.com| -|Teams|The following endpoint is used for Microsoft Teams application.|TLSv1.2/HTTPS/HTTP|config.teams.microsoft.com| -|Windows Defender|The following endpoint is used for Windows Defender when Cloud-based Protection is enabled|TLSv1.2/HTTPS|wdcp.microsoft.com| -||||wdcpalt.microsoft.com| -|||HTTPS/HTTP|*.smartscreen-prod.microsoft.com| -||The following endpoints are used for Windows Defender SmartScreen reporting and notifications.|TLSv1.2|*.smartscreen.microsoft.com| -|||TLSv1.2/HTTP|checkappexec.microsoft.com| -|Windows Spotlight|The following endpoints are used to retrieve Windows Spotlight metadata that describes content, such as references to image locations, as well as suggested apps, Microsoft account notifications, and Windows tips.|TLSv1.2/HTTPS/HTTP|arc.msn.com*| -|||TLSv1.2/HTTPS/HTTP|ris.api.iris.microsoft.com| -|Windows Update|The following endpoint is used for Windows Update downloads of apps and OS updates, including HTTP downloads or HTTP downloads blended with peers.|TLSv1.2/HTTPS/HTTP|*.prod.do.dsp.mp.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|*.dl.delivery.mp.microsoft.com| -||The following endpoints are used to download operating system patches, updates, and apps from Microsoft Store.|TLSv1.2/HTTP|*.windowsupdate.com| -|||TLSv1.2/HTTPS/HTTP|*.delivery.mp.microsoft.com| -||The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store to help keep the device secure.|TLSv1.2/HTTPS/HTTP|*.update.microsoft.com| -||The following endpoint is used for compatibility database updates for Windows.|HTTP/HTTPS|adl.windows.com| -||The following endpoint is used for content regulation.|TLSv1.2/HTTPS/HTTP|tsfe.trafficshaping.dsp.mp.microsoft.com| -|Xbox Live|The following endpoints are used for Xbox Live.| -|||TLSv1.2/HTTPS/HTTP|dlassets-ssl.xboxlive.com| -|||TLSv1.2/HTTPS|da.xboxservices.com| diff --git a/windows/privacy/windows-endpoints-21H1-non-enterprise-editions.md b/windows/privacy/windows-endpoints-21H1-non-enterprise-editions.md deleted file mode 100644 index d6d6383582..0000000000 --- a/windows/privacy/windows-endpoints-21H1-non-enterprise-editions.md +++ /dev/null @@ -1,250 +0,0 @@ ---- -title: Windows 10, version 21H1, connection endpoints for non-Enterprise editions -description: Explains what Windows 10 endpoints are used in non-Enterprise editions. Specific to Windows 10, version 21H1. -ms.service: windows-client -ms.subservice: itpro-privacy -ms.localizationpriority: high -author: DHB-MSFT -ms.author: danbrown -manager: laurawi -ms.date: 12/17/2020 -ms.topic: reference ---- -# Windows 10, version 21H1, connection endpoints for non-Enterprise editions - - **Applies to** - -- Windows 10 Home, version 21H1 -- Windows 10 Professional, version 21H1 -- Windows 10 Education, version 21H1 - -In addition to the endpoints listed for [Windows 10 Enterprise](manage-windows-21H1-endpoints.md), the following endpoints are available on other non-Enterprise editions of Windows 10, version 21H1. - -The following methodology was used to derive the network endpoints: - -1. Set up the latest version of Windows 10 on a test virtual machine using the default settings. -2. Leave the device(s) running idle for a week ("idle" means a user is not interacting with the system/device). -3. Use globally accepted network protocol analyzer/capturing tools and log all background egress traffic. -4. Compile reports on traffic going to public IP addresses. -5. The test virtual machine(s) was logged into using a local account, and was not joined to a domain or Azure Active Directory. -6. All traffic was captured in our lab using a IPV4 network. Therefore, no IPV6 traffic is reported here. -7. These tests were conducted in an approved Microsoft lab. It's possible your results may be different. -8. These tests were conducted for one week. If you capture traffic for longer, you may have different results. - -> [!NOTE] -> Microsoft uses global load balancers that can appear in network trace-routes. For example, an endpoint for *.akadns.net might be used to load balance requests to an Azure datacenter, which can change over time. - -## Windows 10 Home - -| **Area** | **Description** | **Protocol** | **Destination** | -|-----------|--------------- |------------- |-----------------| -| Activity Feed Service |The following endpoints are used by Activity Feed Service, which enables multiple cross-device data roaming scenarios on Windows|TLSv1.2/HTTPS/HTTP|activity.windows.com| -|Apps|The following endpoints are used for the Weather app.|TLSv1.2/HTTPS/HTTP|tile-service.weather.microsoft.com| -||The following endpoint is used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS/HTTP|evoke-windowsservices-tas.msedge.net| -||The following endpoint is used for OneNote Live Tile.|HTTPS/HTTP|cdn.onenote.net| -||Used for Spotify Live Tile|HTTPS/HTTP|spclient.wg.spotify.com| -|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.|TLSv1.2/HTTPS/HTTP|ctldl.windowsupdate.com/*| -|Cortana and Live Tiles|The following endpoints are related to Cortana and Live Tiles|TLSv1.2/HTTPS/HTTP|www.bing.com*| -|||HTTPS/HTTP|fp.msedge.net| -|||HTTPS/HTTP|k-ring.msedge.net| -|||TLSv1.2|b-ring.msedge.net| -|Device authentication|The following endpoint is used to authenticate a device.|HTTPS|login.live.com*| -|Device Directory Service|Used by Device Directory Service to keep track of user-device associations and storing metadata about the devices.|HTTPS/HTTP|cs.dds.microsoft.com| -|Device metadata|The following endpoint is used to retrieve device metadata.|TLSv1.2/HTTP|dmd.metaservices.microsoft.com| -|Diagnostic data|The following endpoints are used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service.
    If you turn off traffic for this endpoint, diagnostic and usage information, which helps Microsoft find and fix problems and improve our products and services, will not be sent back to Microsoft.|TLSv1.2/HTTP|v10.events.data.microsoft.com| -||The following endpoints are used by Windows Error Reporting.|TLSv1.2/HTTPS/HTTP|watson.telemetry.microsoft.com| -|Font Streaming|The following endpoints are used to download fonts on demand.|TLSv1.2/HTTPS|fs.microsoft.com*| -|Licensing|The following endpoint is used for online activation and some app licensing.|HTTPS/HTTP|*licensing.mp.microsoft.com| -|||HTTPS|licensing.mp.microsoft.com/v7.0/licenses/content| -|Location|The following endpoints are used for location data.|TLSV1.2|inference.location.live.net| -|Maps|The following endpoints are used to check for updates to maps that have been downloaded for offline use.|HTTPS/HTTP|maps.windows.com| -|||HTTPS/HTTP|*.ssl.ak.dynamic.tiles.virtualearth.net| -|||HTTPS/HTTP|*.ssl.ak.tiles.virtualearth.net| -|||HTTPS/HTTP|dev.virtualearth.net| -|||HTTPS/HTTP|ecn.dev.virtualearth.net| -|||HTTPS/HTTP|ssl.bing.com| -|Microsoft Account|The following endpoints are used for Microsoft accounts to sign in|TLSv1.2/HTTPS/HTTP|*login.live.com| -|Microsoft Edge|The following endpoints are used for Microsoft Edge Browser Services.|HTTPS/HTTP|edge.activity.windows.com| -|||HTTPS/HTTP|edge.microsoft.com| -||The following endpoint is used by Microsoft Edge Update service to check for new updates.|HTTPS/HTTP|msedge.api.cdp.microsoft.com| -|Microsoft forward link redirection|The following endpoint is used by the Microsoft forward link redirection service (FWLink) to redirect permanent web links to their actual, sometimes transitory, URL. FWlinks are similar to URL shorteners, just longer|HTTP|go.microsoft.com/fwlink/| -|||TLSv1.2/HTTPS/HTTP|go.microsoft.com| -|Microsoft Store|The following endpoint is used to download image files that are called when applications run (Microsoft Store or Inbox MSN Apps)|TLSv1.2/HTTPS/HTTP|img-prod-cms-rt-microsoft-com.akamaized.net| -||The following endpoint is used for the Windows Push Notification Services (WNS). WNS enables third-party developers to send toast, tile, badge, and raw updates from their own cloud service. This provides a mechanism to deliver new updates to your users in a power-efficient and dependable way.|TLSv1.2/HTTPS|*.wns.windows.com| -||The following endpoint is used to revoke licenses for malicious apps in the Microsoft Store.|TLSv1.2/HTTPS/HTTP|storecatalogrevocation.storequality.microsoft.com| -||The following endpoints are used to communicate with Microsoft Store.|TLSv1.2/HTTPS/HTTP|*displaycatalog.mp.microsoft.com| -|||HTTPS|storesdk.dsx.mp.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|TLSv1.2/HTTPS/HTTP|manage.devcenter.microsoft.com| -||The following endpoints are used get images that are used for Microsoft Store suggestions|TLSv1.2|store-images.s-microsoft.com| -|Network Connection Status Indicator (NCSI)|Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to this endpoint to determine if the device can communicate with the Internet.|TLSv1.2/HTTP|www.msftconnecttest.com*| -|Office|The following endpoints are used to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS/HTTP|outlook.office365.com| -|||TLSv1.2/HTTPS|office.com| -|||TLSv1.2/HTTPS|blobs.officehome.msocdn.com| -|||HTTPS/HTTP|officehomeblobs.blob.core.windows.net| -|||HTTP/HTTPS|*.blob.core.windows.net| -|||TLSv1.2|self.events.data.microsoft.com| -|||HTTPS/HTTP|outlookmobile-office365-tas.msedge.net| -|||HTTP|roaming.officeapps.live.com| -|||HTTPS/HTTP|substrate.office.com| -|OneDrive|The following endpoints are related to OneDrive.|HTTPS|g.live.com| -|||TLSv1.2/HTTPS|oneclient.sfx.ms| -|||HTTPS/TLSv1.2|logincdn.msauth.net| -|||HTTPS/HTTP|windows.policies.live.net| -|||HTTPS/HTTP|api.onedrive.com| -|||HTTPS/HTTP|skydrivesync.policies.live.net| -|||HTTPS/HTTP|*storage.live.com| -|||HTTPS/HTTP|*settings.live.net| -|Settings|The following endpoint is used as a way for apps to dynamically update their configuration. Apps such as System Initiated User Feedback and the Xbox app use it.|TLSv1.2/HTTPS/HTTP|settings.data.microsoft.com*| -|||TLSv1.2/HTTPS/HTTP|settings-win.data.microsoft.com*| -|Skype|The following endpoint is used to retrieve Skype configuration values.|TLSv1.2/HTTPS/HTTP|*.pipe.aria.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|config.edge.skype.com| -|Teams|The following endpoint is used for Microsoft Teams application.|TLSv1.2/HTTPS/HTTP|config.teams.microsoft.com| -|Windows Defender|The following endpoint is used for Windows Defender when Cloud-based Protection is enabled|TLSv1.2/HTTPS|wdcp.microsoft.com| -||||wdcpalt.microsoft.com| -|||HTTPS/HTTP|*.smartscreen-prod.microsoft.com| -|||TLSv1.2|definitionupdates.microsoft.com| -||The following endpoints are used for Windows Defender SmartScreen reporting and notifications.|TLSv1.2|*.smartscreen.microsoft.com| -|||TLSv1.2/HTTP|checkappexec.microsoft.com| -|Windows Spotlight|The following endpoints are used to retrieve Windows Spotlight metadata that describes content, such as references to image locations, as well as suggested apps, Microsoft account notifications, and Windows tips.|TLSv1.2/HTTPS/HTTP|arc.msn.com*| -|||TLSv1.2/HTTPS/HTTP|ris.api.iris.microsoft.com| -|||HTTPS|mucp.api.account.microsoft.com| -|Windows Update|The following endpoint is used for Windows Update downloads of apps and OS updates, including HTTP downloads or HTTP downloads blended with peers.|TLSv1.2/HTTPS/HTTP|*.prod.do.dsp.mp.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|*.dl.delivery.mp.microsoft.com| -||The following endpoints are used to download operating system patches, updates, and apps from Microsoft Store.|TLSv1.2/HTTP|*.windowsupdate.com| -|||TLSv1.2/HTTPS/HTTP|*.delivery.mp.microsoft.com| -||The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store to help keep the device secure.|TLSv1.2/HTTPS/HTTP|*.update.microsoft.com| -||The following endpoint is used for compatibility database updates for Windows.|HTTP/HTTPS|adl.windows.com| -||The following endpoint is used for content regulation.|TLSv1.2/HTTPS/HTTP|tsfe.trafficshaping.dsp.mp.microsoft.com| -|Xbox Live|The following endpoints are used for Xbox Live.| -|||TLSv1.2/HTTPS/HTTP|dlassets-ssl.xboxlive.com| -|||TLSv1.2/HTTPS|da.xboxservices.com| -|||HTTPS|www.xboxab.com| -| - -## Windows 10 Pro - -| **Area** | **Description** | **Protocol** | **Destination** | -| --- | --- | --- | ---| -| Activity Feed Service |The following endpoints are used by Activity Feed Service, which enables multiple cross-device data roaming scenarios on Windows|TLSv1.2/HTTPS/HTTP|activity.windows.com| -|Apps|The following endpoints are used for the Weather app.|TLSv1.2/HTTPS/HTTP|tile-service.weather.microsoft.com| -||The following endpoint is used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS/HTTP|evoke-windowsservices-tas.msedge.net| -||The following endpoint is used for OneNote Live Tile.|HTTPS/HTTP|cdn.onenote.net| -||Used for Spotify Live Tile|HTTPS/HTTP|spclient.wg.spotify.com| -|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.|TLSv1.2/HTTPS/HTTP|ctldl.windowsupdate.com/*| -|Cortana and Live Tiles|The following endpoints are related to Cortana and Live Tiles|TLSv1.2/HTTPS/HTTP|www.bing.com*| -|Device authentication|The following endpoint is used to authenticate a device.|HTTPS|login.live.com*| -|Device metadata|The following endpoint is used to retrieve device metadata.|TLSv1.2/HTTP|dmd.metaservices.microsoft.com| -|Diagnostic data|The following endpoints are used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service.
    If you turn off traffic for this endpoint, diagnostic and usage information, which helps Microsoft find and fix problems and improve our products and services, will not be sent back to Microsoft.|TLSv1.2/HTTP|v10.events.data.microsoft.com| -||The following endpoints are used by Windows Error Reporting.|TLSv1.2/HTTPS/HTTP|watson.telemetry.microsoft.com| -|Font Streaming|The following endpoints are used to download fonts on demand.|TLSv1.2/HTTPS|fs.microsoft.com*| -|Licensing|The following endpoint is used for online activation and some app licensing.|HTTPS/HTTP|*licensing.mp.microsoft.com| -|Maps|The following endpoints are used to check for updates to maps that have been downloaded for offline use.|HTTPS/HTTP|maps.windows.com| -|Microsoft Account|The following endpoints are used for Microsoft accounts to sign in|TLSv1.2/HTTPS/HTTP|*login.live.com| -|Microsoft Edge|The following endpoint is used by Microsoft Edge Update service to check for new updates.|HTTPS/HTTP|msedge.api.cdp.microsoft.com| -|Microsoft forward link redirection|The following endpoint is used by the Microsoft forward link redirection service (FWLink) to redirect permanent web links to their actual, sometimes transitory, URL. FWlinks are similar to URL shorteners, just longer|TLSv1.2/HTTPS/HTTP|go.microsoft.com| -|Microsoft Store|The following endpoint is used to download image files that are called when applications run (Microsoft Store or Inbox MSN Apps)|TLSv1.2/HTTPS/HTTP|img-prod-cms-rt-microsoft-com.akamaized.net| -||The following endpoint is used for the Windows Push Notification Services (WNS). WNS enables third-party developers to send toast, tile, badge, and raw updates from their own cloud service. This provides a mechanism to deliver new updates to your users in a power-efficient and dependable way.|TLSv1.2/HTTPS|*.wns.windows.com| -||The following endpoint is used to revoke licenses for malicious apps in the Microsoft Store.|TLSv1.2/HTTPS/HTTP|storecatalogrevocation.storequality.microsoft.com| -||The following endpoints are used to communicate with Microsoft Store.|TLSv1.2/HTTPS/HTTP|*displaycatalog.mp.microsoft.com| -|||HTTPS|storesdk.dsx.mp.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|TLSv1.2/HTTPS/HTTP|manage.devcenter.microsoft.com| -|Network Connection Status Indicator (NCSI)|Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to this endpoint to determine if the device can communicate with the Internet.|TLSv1.2/HTTP|www.msftconnecttest.com*| -|Office|The following endpoints are used to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS/HTTP|outlook.office365.com| -|||TLSv1.2/HTTPS|office.com| -|||TLSv1.2/HTTPS|blobs.officehome.msocdn.com| -|||HTTPS/HTTP|officehomeblobs.blob.core.windows.net| -|||HTTP/HTTPS|*.blob.core.windows.net| -|||TLSv1.2|self.events.data.microsoft.com| -|||HTTPS/HTTP|outlookmobile-office365-tas.msedge.net| -|||TLSv1.2/HTTPS/HTTP|officeclient.microsoft.com| -|||HTTPS/HTTP|substrate.office.com| -|OneDrive|The following endpoints are related to OneDrive.|HTTPS|g.live.com| -|||TLSv1.2/HTTPS|oneclient.sfx.ms| -|||HTTPS/TLSv1.2|logincdn.msauth.net| -|||HTTPS/HTTP|windows.policies.live.net| -|||HTTPS/HTTP|*storage.live.com| -|||HTTPS/HTTP|*settings.live.net| -|Settings|The following endpoint is used as a way for apps to dynamically update their configuration. Apps such as System Initiated User Feedback and the Xbox app use it.|TLSv1.2/HTTPS/HTTP|settings.data.microsoft.com*| -|||TLSv1.2/HTTPS/HTTP|settings-win.data.microsoft.com*| -|Skype|The following endpoint is used to retrieve Skype configuration values.|TLSv1.2/HTTPS/HTTP|*.pipe.aria.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|config.edge.skype.com| -|Teams|The following endpoint is used for Microsoft Teams application.|TLSv1.2/HTTPS/HTTP|config.teams.microsoft.com| -|Windows Defender|The following endpoint is used for Windows Defender when Cloud-based Protection is enabled|TLSv1.2/HTTPS|wdcp.microsoft.com| -||||wdcpalt.microsoft.com| -|||HTTPS/HTTP|*.smartscreen-prod.microsoft.com| -||The following endpoints are used for Windows Defender SmartScreen reporting and notifications.|TLSv1.2|*.smartscreen.microsoft.com| -|||TLSv1.2/HTTP|checkappexec.microsoft.com| -|Windows Spotlight|The following endpoints are used to retrieve Windows Spotlight metadata that describes content, such as references to image locations, as well as suggested apps, Microsoft account notifications, and Windows tips.|TLSv1.2/HTTPS/HTTP|arc.msn.com*| -|||TLSv1.2/HTTPS/HTTP|ris.api.iris.microsoft.com| -|Windows Update|The following endpoint is used for Windows Update downloads of apps and OS updates, including HTTP downloads or HTTP downloads blended with peers.|TLSv1.2/HTTPS/HTTP|*.prod.do.dsp.mp.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|*.dl.delivery.mp.microsoft.com| -||The following endpoints are used to download operating system patches, updates, and apps from Microsoft Store.|TLSv1.2/HTTP|*.windowsupdate.com| -|||TLSv1.2/HTTPS/HTTP|*.delivery.mp.microsoft.com| -||The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store to help keep the device secure.|TLSv1.2/HTTPS/HTTP|*.update.microsoft.com| -||The following endpoint is used for compatibility database updates for Windows.|HTTP/HTTPS|adl.windows.com| -||The following endpoint is used for content regulation.|TLSv1.2/HTTPS/HTTP|tsfe.trafficshaping.dsp.mp.microsoft.com| -|Xbox Live|The following endpoints are used for Xbox Live.| -|||TLSv1.2/HTTPS/HTTP|dlassets-ssl.xboxlive.com| -|||TLSv1.2/HTTPS|da.xboxservices.com| -| - -## Windows 10 Education - -| **Area** | **Description** | **Protocol** | **Destination** | -| --- | --- | --- | ---| -| Activity Feed Service |The following endpoints are used by Activity Feed Service, which enables multiple cross-device data roaming scenarios on Windows|TLSv1.2/HTTPS/HTTP|activity.windows.com| -|Apps|The following endpoints are used for the Weather app.|TLSv1.2/HTTPS/HTTP|tile-service.weather.microsoft.com| -||The following endpoint is used by the Photos app to download configuration files, and to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS/HTTP|evoke-windowsservices-tas.msedge.net| -||The following endpoint is used for OneNote Live Tile.|HTTPS/HTTP|cdn.onenote.net| -|Bing Search|The following endpoint is used by Microsoft Search in Bing enabling users to search across files, SharePoint sites, OneDrive content, Teams and Viva Engage conversations, and other shared data sources in an organization, as well as the web.|HTTPS|business.bing.com| -|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.|TLSv1.2/HTTPS/HTTP|ctldl.windowsupdate.com/*| -|Cortana and Live Tiles|The following endpoints are related to Cortana and Live Tiles|TLSv1.2/HTTPS/HTTP|www.bing.com*| -|||HTTPS/HTTP|fp.msedge.net| -|||TLSv1.2|odinvzc.azureedge.net| -|||TLSv1.2|b-ring.msedge.net| -|Device metadata|The following endpoint is used to retrieve device metadata.|TLSv1.2/HTTP|dmd.metaservices.microsoft.com| -|Diagnostic data|The following endpoints are used by the Connected User Experiences and Telemetry component and connects to the Microsoft Data Management service.
    If you turn off traffic for this endpoint, diagnostic and usage information, which helps Microsoft find and fix problems and improve our products and services, will not be sent back to Microsoft.|TLSv1.2/HTTP|v10.events.data.microsoft.com| -||The following endpoints are used by Windows Error Reporting.|TLSv1.2/HTTPS/HTTP|watson.telemetry.microsoft.com| -|Font Streaming|The following endpoints are used to download fonts on demand.|TLSv1.2/HTTPS|fs.microsoft.com*| -|Licensing|The following endpoint is used for online activation and some app licensing.|HTTPS/HTTP|*licensing.mp.microsoft.com| -|Location|The following endpoints are used for location data.|TLSV1.2|inference.location.live.net| -|Maps|The following endpoints are used to check for updates to maps that have been downloaded for offline use.|HTTPS/HTTP|maps.windows.com| -|Microsoft Account|The following endpoints are used for Microsoft accounts to sign in|TLSv1.2/HTTPS/HTTP|*login.live.com| -|Microsoft Edge|The following endpoint is used by Microsoft Edge Update service to check for new updates.|HTTPS/HTTP|msedge.api.cdp.microsoft.com| -|Microsoft forward link redirection|The following endpoint is used by the Microsoft forward link redirection service (FWLink) to redirect permanent web links to their actual, sometimes transitory, URL. FWlinks are similar to URL shorteners, just longer|TLSv1.2/HTTPS/HTTP|go.microsoft.com| -|Microsoft Store|The following endpoint is used to download image files that are called when applications run (Microsoft Store or Inbox MSN Apps)|TLSv1.2/HTTPS/HTTP|img-prod-cms-rt-microsoft-com.akamaized.net| -||The following endpoint is used for the Windows Push Notification Services (WNS). WNS enables third-party developers to send toast, tile, badge, and raw updates from their own cloud service. This provides a mechanism to deliver new updates to your users in a power-efficient and dependable way.|TLSv1.2/HTTPS|*.wns.windows.com| -||The following endpoint is used to revoke licenses for malicious apps in the Microsoft Store.|TLSv1.2/HTTPS/HTTP|storecatalogrevocation.storequality.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|1storecatalogrevocation.storequality.microsoft.com| -||The following endpoints are used to communicate with Microsoft Store.|TLSv1.2/HTTPS/HTTP|*displaycatalog.mp.microsoft.com| -|||HTTPS|storesdk.dsx.mp.microsoft.com| -||The following endpoint is used to get Microsoft Store analytics.|TLSv1.2/HTTPS/HTTP|manage.devcenter.microsoft.com| -|Network Connection Status Indicator (NCSI)|Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to this endpoint to determine if the device can communicate with the Internet.|TLSv1.2/HTTP|www.msftconnecttest.com*| -|Office|The following endpoints are used to connect to the Office 365 portal's shared infrastructure, including Office in a browser.|TLSv1.2/HTTPS|office.com| -|||HTTPS/HTTP|officehomeblobs.blob.core.windows.net| -|||TLSv1.2|self.events.data.microsoft.com| -|OneDrive|The following endpoints are related to OneDrive.|HTTPS|g.live.com| -|||TLSv1.2/HTTPS|oneclient.sfx.ms| -|||HTTPS/TLSv1.2|logincdn.msauth.net| -|Settings|The following endpoint is used as a way for apps to dynamically update their configuration. Apps such as System Initiated User Feedback and the Xbox app use it.|TLSv1.2/HTTPS/HTTP|settings.data.microsoft.com*| -|||TLSv1.2/HTTPS/HTTP|settings-win.data.microsoft.com*| -|Skype|The following endpoint is used to retrieve Skype configuration values.|TLSv1.2/HTTPS/HTTP|*.pipe.aria.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|config.edge.skype.com| -|Teams|The following endpoint is used for Microsoft Teams application.|TLSv1.2/HTTPS/HTTP|config.teams.microsoft.com| -|Windows Defender|The following endpoint is used for Windows Defender when Cloud-based Protection is enabled|TLSv1.2/HTTPS|wdcp.microsoft.com| -||||wdcpalt.microsoft.com| -|||HTTPS/HTTP|*.smartscreen-prod.microsoft.com| -||The following endpoints are used for Windows Defender SmartScreen reporting and notifications.|TLSv1.2|*.smartscreen.microsoft.com| -|||TLSv1.2/HTTP|checkappexec.microsoft.com| -|Windows Spotlight|The following endpoints are used to retrieve Windows Spotlight metadata that describes content, such as references to image locations, as well as suggested apps, Microsoft account notifications, and Windows tips.|TLSv1.2/HTTPS/HTTP|arc.msn.com*| -|||TLSv1.2/HTTPS/HTTP|ris.api.iris.microsoft.com| -|Windows Update|The following endpoint is used for Windows Update downloads of apps and OS updates, including HTTP downloads or HTTP downloads blended with peers.|TLSv1.2/HTTPS/HTTP|*.prod.do.dsp.mp.microsoft.com| -|||TLSv1.2/HTTPS/HTTP|*.dl.delivery.mp.microsoft.com| -||The following endpoints are used to download operating system patches, updates, and apps from Microsoft Store.|TLSv1.2/HTTP|*.windowsupdate.com| -|||TLSv1.2/HTTPS/HTTP|*.delivery.mp.microsoft.com| -||The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store to help keep the device secure.|TLSv1.2/HTTPS/HTTP|*.update.microsoft.com| -||The following endpoint is used for compatibility database updates for Windows.|HTTP/HTTPS|adl.windows.com| -||The following endpoint is used for content regulation.|TLSv1.2/HTTPS/HTTP|tsfe.trafficshaping.dsp.mp.microsoft.com| -|Xbox Live|The following endpoints are used for Xbox Live.| -|||TLSv1.2/HTTPS/HTTP|dlassets-ssl.xboxlive.com| -|||TLSv1.2/HTTPS|da.xboxservices.com| From b74090da3c0af9343d0268e920c40305e599f1a8 Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Tue, 23 Jul 2024 15:35:43 -0700 Subject: [PATCH 078/108] fix error in redirection Change "true" to "false" --- ...ublishing.redirection.windows-privacy.json | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/.openpublishing.redirection.windows-privacy.json b/.openpublishing.redirection.windows-privacy.json index 83cc72e3e8..56c21eda4b 100644 --- a/.openpublishing.redirection.windows-privacy.json +++ b/.openpublishing.redirection.windows-privacy.json @@ -63,87 +63,87 @@ { "source_path": "windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1703", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1709", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1803", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/basic-level-windows-diagnostic-events-and-fields-1903.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1903", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/manage-windows-1903-endpoints.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/manage-windows-1903-endpoints", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/manage-windows-1909-endpoints.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/manage-windows-1909-endpoints", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/manage-windows-2004-endpoints.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/manage-windows-2004-endpoints", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/manage-windows-20H2-endpoints.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/manage-windows-20H2-endpoints", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/manage-windows-21H1-endpoints.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/manage-windows-21H1-endpoints", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/windows-endpoints-1809-non-enterprise-editions.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-1809-non-enterprise-editions", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/windows-endpoints-1903-non-enterprise-editions.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-1903-non-enterprise-editions", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/windows-endpoints-1909-non-enterprise-editions.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-1909-non-enterprise-editions", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/windows-endpoints-2004-non-enterprise-editions.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-2004-non-enterprise-editions", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/windows-endpoints-20H2-non-enterprise-editions.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-20H2-non-enterprise-editions", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/windows-endpoints-21H1-non-enterprise-editions.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-endpoints-21H1-non-enterprise-editions", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/windows-diagnostic-data-1703.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-diagnostic-data-1703", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "windows/privacy/changes-to-windows-diagnostic-data-collection.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/changes-to-windows-diagnostic-data-collection", - "redirect_document_id": true + "redirect_document_id": false } ] } From a20df0d4e60fe213ba4ce4046cec204a187ceeb1 Mon Sep 17 00:00:00 2001 From: Jeff Borsecnik <123032460+American-Dipper@users.noreply.github.com> Date: Wed, 24 Jul 2024 09:04:40 -0700 Subject: [PATCH 079/108] Update wufb-reports-faq.yml - Acrolinx change --- windows/deployment/update/wufb-reports-faq.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/update/wufb-reports-faq.yml b/windows/deployment/update/wufb-reports-faq.yml index 35d2866de7..07593e4a77 100644 --- a/windows/deployment/update/wufb-reports-faq.yml +++ b/windows/deployment/update/wufb-reports-faq.yml @@ -20,7 +20,7 @@ summary: | - [Is Windows Update for Business reports free?](#is-windows-update-for-business-reports-free) - [What Windows versions are supported?](#what-windows-versions-are-supported) - **Set up questions**: + **Setup questions**: - [How do you set up Windows Update for Business reports?](#how-do-you-set-up-windows-update-for-business-reports) - [Why is "Waiting for Windows Update for Business reports data" displayed on the page](#why-is--waiting-for-windows-update-for-business-reports-data--displayed-on-the-page) From 6ad78dd335bb68353c42decb091c2a9abe193cda Mon Sep 17 00:00:00 2001 From: Jeff Borsecnik <123032460+American-Dipper@users.noreply.github.com> Date: Wed, 24 Jul 2024 09:05:27 -0700 Subject: [PATCH 080/108] Update wufb-reports-do.md - grammar/Acro fix --- windows/deployment/update/wufb-reports-do.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/update/wufb-reports-do.md b/windows/deployment/update/wufb-reports-do.md index cf51c144db..448cd07e61 100644 --- a/windows/deployment/update/wufb-reports-do.md +++ b/windows/deployment/update/wufb-reports-do.md @@ -59,7 +59,7 @@ Windows Update for Business reports uses the following Delivery Optimization ter ## Calculations for Delivery Optimization -Each calculated values used in the Delivery Optimization report are listed below. +The calculated values used in the Delivery Optimization report are listed below. **Efficiency (%) Calculations**: From 2335de0fcb6993940f0c46ae346e25a7e393cd76 Mon Sep 17 00:00:00 2001 From: Jeff Borsecnik <123032460+American-Dipper@users.noreply.github.com> Date: Wed, 24 Jul 2024 09:06:06 -0700 Subject: [PATCH 081/108] Update delivery-optimization-configure.md - fix typo --- windows/deployment/do/delivery-optimization-configure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md index 0fb34cf04f..31ad6d5ade 100644 --- a/windows/deployment/do/delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -28,7 +28,7 @@ This article describes the different configuration considerations to optimize De Use this checklist to guide you through different aspects when modifying Delivery Optimization configurations for your environment. 1. Prerequisites to allow Delivery Optimization communication -1. Evaluate Delivery Optimization policies based on the follwoing items: +1. Evaluate Delivery Optimization policies based on the following items: * Network topology * Organization size From 847b4895bd11f6578710e7a5e8fc09d8604c70cd Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Wed, 24 Jul 2024 10:33:14 -0700 Subject: [PATCH 082/108] Rename 3 md files Privacy compliance guide Optional diagnostic data article DDV powershell --- ...ing.redirection.windows-configuration.json | 4 ++-- ...ublishing.redirection.windows-privacy.json | 23 +++++++++++++++---- windows/hub/index.yml | 2 +- .../diagnostic-data-viewer-overview.md | 2 +- ...d => diagnostic-data-viewer-powershell.md} | 0 windows/privacy/index.yml | 4 ++-- ...ic-data.md => optional-diagnostic-data.md} | 0 windows/privacy/toc.yml | 6 ++--- ...md => windows-privacy-compliance-guide.md} | 8 +++---- 9 files changed, 32 insertions(+), 17 deletions(-) rename windows/privacy/{Microsoft-DiagnosticDataViewer.md => diagnostic-data-viewer-powershell.md} (100%) rename windows/privacy/{windows-diagnostic-data.md => optional-diagnostic-data.md} (100%) rename windows/privacy/{windows-10-and-privacy-compliance.md => windows-privacy-compliance-guide.md} (97%) diff --git a/.openpublishing.redirection.windows-configuration.json b/.openpublishing.redirection.windows-configuration.json index 777e43019f..914e5aaa7f 100644 --- a/.openpublishing.redirection.windows-configuration.json +++ b/.openpublishing.redirection.windows-configuration.json @@ -47,7 +47,7 @@ }, { "source_path": "windows/configuration/gdpr-win10-whitepaper.md", - "redirect_url": "/windows/privacy/windows-10-and-privacy-compliance", + "redirect_url": "/windows/privacy/windows-privacy-compliance-guide", "redirect_document_id": false }, { @@ -262,7 +262,7 @@ }, { "source_path": "windows/configuration/windows-diagnostic-data-1703.md", - "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-diagnostic-data-1703", + "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1703", "redirect_document_id": false }, { diff --git a/.openpublishing.redirection.windows-privacy.json b/.openpublishing.redirection.windows-privacy.json index 56c21eda4b..3e2278ef26 100644 --- a/.openpublishing.redirection.windows-privacy.json +++ b/.openpublishing.redirection.windows-privacy.json @@ -7,17 +7,17 @@ }, { "source_path": "windows/privacy/deploy-data-processor-service-windows.md", - "redirect_url": "/windows/privacy/windows-10-and-privacy-compliance", + "redirect_url": "/windows/privacy/windows-privacy-compliance-guide", "redirect_document_id": false }, { "source_path": "windows/privacy/gdpr-it-guidance.md", - "redirect_url": "/windows/privacy/windows-10-and-privacy-compliance", + "redirect_url": "/windows/privacy/windows-privacy-compliance-guide", "redirect_document_id": false }, { "source_path": "windows/privacy/gdpr-win10-whitepaper.md", - "redirect_url": "/windows/privacy/windows-10-and-privacy-compliance", + "redirect_url": "/windows/privacy/windows-privacy-compliance-guide", "redirect_document_id": false }, { @@ -52,7 +52,7 @@ }, { "source_path": "windows/privacy/windows-personal-data-services-configuration.md", - "redirect_url": "/windows/privacy/windows-10-and-privacy-compliance", + "redirect_url": "/windows/privacy/windows-privacy-compliance-guide", "redirect_document_id": false }, { @@ -144,6 +144,21 @@ "source_path": "windows/privacy/changes-to-windows-diagnostic-data-collection.md", "redirect_url": "/previous-versions/windows/it-pro/privacy/changes-to-windows-diagnostic-data-collection", "redirect_document_id": false + }, + { + "source_path": "windows/privacy/windows-10-and-privacy-compliance.md", + "redirect_url": "/windows/privacy/windows-privacy-compliance-guide", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/windows-diagnostic-data.md", + "redirect_url": "/windows/privacy/optional-diagnostic-data", + "redirect_document_id": true + }, + { + "source_path": "windows/privacy/Microsoft-DiagnosticDataViewer.md", + "redirect_url": "/windows/privacy/diagnostic-data-viewer-powershell", + "redirect_document_id": true } ] } diff --git a/windows/hub/index.yml b/windows/hub/index.yml index 95d49b10a7..1292365e3e 100644 --- a/windows/hub/index.yml +++ b/windows/hub/index.yml @@ -91,7 +91,7 @@ productDirectory: text: Diagnostic Data Viewer - url: /windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services text: Manage connections to Microsoft services - - url: /windows/privacy/windows-10-and-privacy-compliance + - url: /windows/privacy/windows-privacy-compliance-guide text: Windows privacy compliance guide - url: /windows/privacy text: Learn more about privacy in Windows > diff --git a/windows/privacy/diagnostic-data-viewer-overview.md b/windows/privacy/diagnostic-data-viewer-overview.md index 45dd76cdba..63e25e508f 100644 --- a/windows/privacy/diagnostic-data-viewer-overview.md +++ b/windows/privacy/diagnostic-data-viewer-overview.md @@ -44,7 +44,7 @@ Before you can use this tool for viewing Windows diagnostic data, you must turn Download the app from the [Microsoft Store Diagnostic Data Viewer](https://www.microsoft.com/store/p/diagnostic-data-viewer/9n8wtrrsq8f7?rtc=1) page. > [!Important] -> It's possible that your Windows device doesn't have the Microsoft Store available (for example, Windows Server). If this is the case, see [Diagnostic Data Viewer for PowerShell](./microsoft-diagnosticdataviewer.md). +> It's possible that your Windows device doesn't have the Microsoft Store available (for example, Windows Server). If this is the case, see [Diagnostic Data Viewer for PowerShell](./diagnostic-data-viewer-powershell.md). ### Start the Diagnostic Data Viewer diff --git a/windows/privacy/Microsoft-DiagnosticDataViewer.md b/windows/privacy/diagnostic-data-viewer-powershell.md similarity index 100% rename from windows/privacy/Microsoft-DiagnosticDataViewer.md rename to windows/privacy/diagnostic-data-viewer-powershell.md diff --git a/windows/privacy/index.yml b/windows/privacy/index.yml index b3ae58d22a..f06366e02f 100644 --- a/windows/privacy/index.yml +++ b/windows/privacy/index.yml @@ -24,7 +24,7 @@ highlightedContent: items: - title: Windows privacy & compliance guide for IT and compliance professionals itemType: overview - url: Windows-10-and-privacy-compliance.md + url: windows-privacy-compliance-guide.md - title: Configure Windows diagnostic data itemType: how-to-guide url: configure-windows-diagnostic-data-in-your-organization.md @@ -47,7 +47,7 @@ productDirectory: - title: Optional diagnostic data imageSrc: /media/common/i_get-started.svg summary: Get examples of the types of optional diagnostic data collected from Windows - url: windows-diagnostic-data.md + url: optional-diagnostic-data.md additionalContent: sections: diff --git a/windows/privacy/windows-diagnostic-data.md b/windows/privacy/optional-diagnostic-data.md similarity index 100% rename from windows/privacy/windows-diagnostic-data.md rename to windows/privacy/optional-diagnostic-data.md diff --git a/windows/privacy/toc.yml b/windows/privacy/toc.yml index 19445df42a..9c47130eca 100644 --- a/windows/privacy/toc.yml +++ b/windows/privacy/toc.yml @@ -2,7 +2,7 @@ href: index.yml items: - name: "Windows Privacy Compliance: A Guide for IT and Compliance Professionals" - href: windows-10-and-privacy-compliance.md + href: windows-privacy-compliance-guide.md - name: Configure Windows diagnostic data in your organization href: configure-windows-diagnostic-data-in-your-organization.md - name: Diagnostic Data Viewer @@ -10,7 +10,7 @@ - name: Diagnostic Data Viewer Overview href: diagnostic-data-viewer-overview.md - name: Diagnostic Data Viewer for PowerShell Overview - href: Microsoft-DiagnosticDataViewer.md + href: diagnostic-data-viewer-powershell.md - name: Required Windows diagnostic data events and fields items: - name: Windows 11, versions 23H2 and 22H2 @@ -24,7 +24,7 @@ - name: Optional Windows diagnostic data items: - name: Optional diagnostic data for Windows 11 and Windows 10 - href: windows-diagnostic-data.md + href: optional-diagnostic-data.md - name: Manage Windows connected experiences items: - name: Manage connections from Windows operating system components to Microsoft services diff --git a/windows/privacy/windows-10-and-privacy-compliance.md b/windows/privacy/windows-privacy-compliance-guide.md similarity index 97% rename from windows/privacy/windows-10-and-privacy-compliance.md rename to windows/privacy/windows-privacy-compliance-guide.md index 1a5a044ae4..e2790e543f 100644 --- a/windows/privacy/windows-10-and-privacy-compliance.md +++ b/windows/privacy/windows-privacy-compliance-guide.md @@ -44,7 +44,7 @@ The following table provides an overview of the Windows 10 and Windows 11 privac | Feature/Setting | Description | Supporting content | Privacy statement | | --- | --- | --- | --- | -| Diagnostic Data |

    Microsoft uses diagnostic data to keep Windows secure, up to date, troubleshoot problems, and make product improvements. Regardless of what choices you make for diagnostic data collection, the device will be just as secure and will operate normally. This data is collected by Microsoft to quickly identify and address issues affecting its customers.

    Diagnostic data is categorized into the following:

    • **Required diagnostic data**
      Required diagnostic data includes information about your device, its settings, capabilities, and whether it is performing properly, whether a device is ready for an update, and whether there are factors that may impede the ability to receive updates, such as low battery, limited disk space, or connectivity through a paid network. You can find out what is collected with required diagnostic data [here](./required-windows-diagnostic-data-events-and-fields-2004.md).
    • **Optional diagnostic data**
      Optional diagnostic data includes more detailed information about your device and its settings, capabilities, and device health. When you choose to send optional diagnostic data, required diagnostic data will always be included. You can find out the types of optional diagnostic data collected [here](./windows-diagnostic-data.md).

    | [Learn more](https://support.microsoft.com/help/4468236/diagnostics-feedback-and-privacy-in-windows-10-microsoft-privacy)

    [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) | [Privacy Statement](https://privacy.microsoft.com/privacystatement#maindiagnosticsmodule) | +| Diagnostic Data |

    Microsoft uses diagnostic data to keep Windows secure, up to date, troubleshoot problems, and make product improvements. Regardless of what choices you make for diagnostic data collection, the device will be just as secure and will operate normally. This data is collected by Microsoft to quickly identify and address issues affecting its customers.

    Diagnostic data is categorized into the following:

    • **Required diagnostic data**
      Required diagnostic data includes information about your device, its settings, capabilities, and whether it is performing properly, whether a device is ready for an update, and whether there are factors that may impede the ability to receive updates, such as low battery, limited disk space, or connectivity through a paid network. You can find out what is collected with required diagnostic data [here](./required-windows-diagnostic-data-events-and-fields-2004.md).
    • **Optional diagnostic data**
      Optional diagnostic data includes more detailed information about your device and its settings, capabilities, and device health. When you choose to send optional diagnostic data, required diagnostic data will always be included. You can find out the types of optional diagnostic data collected [here](./optional-diagnostic-data.md).

    | [Learn more](https://support.microsoft.com/help/4468236/diagnostics-feedback-and-privacy-in-windows-10-microsoft-privacy)

    [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) | [Privacy Statement](https://privacy.microsoft.com/privacystatement#maindiagnosticsmodule) | | Inking & typing | Microsoft collects optional inking and typing diagnostic data to improve the language recognition and suggestion capabilities of apps and services running on Windows. | [Learn more](https://support.microsoft.com/help/4468236/diagnostics-feedback-and-privacy-in-windows-10-microsoft-privacy) | [Privacy Statement](https://privacy.microsoft.com/privacystatement#maindiagnosticsmodule) | | Location | Get location-based experiences like directions and weather. Let Windows and apps request your location and allow Microsoft to use your location data to improve location services. | [Learn more](https://support.microsoft.com/help/4468240/windows-10-location-service-and-privacy) |[Privacy Statement](https://privacy.microsoft.com/privacystatement#mainlocationservicesmotionsensingmodule) | | Find my device | Use your device’s location data to help you find your device if you lose it. | [Learn more](https://support.microsoft.com/help/11579/microsoft-account-find-and-lock-lost-windows-device) | [Privacy Statement](https://privacy.microsoft.com/privacystatement#mainlocationservicesmotionsensingmodule) | @@ -56,7 +56,7 @@ The following table provides an overview of the Windows 10 and Windows 11 privac [Diagnostic Data Viewer (DDV)](diagnostic-data-viewer-overview.md) is a Microsoft Store app (available in Windows 10, version 1803 and later and Windows 11) that lets a user review the Windows diagnostic data that is being collected on their Windows device and sent to Microsoft in real-time. DDV groups the information into simple categories that describe the data that’s being collected. -An administrator can also use the Diagnostic Data Viewer for PowerShell module to view the diagnostic data collected from the device instead of using the Diagnostic Data Viewer UI. The [Diagnostic Data Viewer for PowerShell Overview](microsoft-diagnosticdataviewer.md) provides further information. +An administrator can also use the Diagnostic Data Viewer for PowerShell module to view the diagnostic data collected from the device instead of using the Diagnostic Data Viewer UI. The [Diagnostic Data Viewer for PowerShell Overview](diagnostic-data-viewer-powershell.md) provides further information. > [!Note] > If the Windows diagnostic data processor configuration is enabled, IT administrators should use the admin portal to fulfill data subject requests to access or export Windows diagnostic data associated with a particular user’s device usage. See [The process for exercising data subject rights](#3-the-process-for-exercising-data-subject-rights). @@ -180,14 +180,14 @@ Users can delete their device-based data by opening the Windows settings app and ### 3.2 View -The [Diagnostic Data Viewer (DDV)](diagnostic-data-viewer-overview.md) provides a view into the diagnostic data being collected from a Windows device. Administrators can also use the [Get-DiagnosticData](microsoft-diagnosticdataviewer.md#install-and-use-the-diagnostic-data-viewer-for-powershell) PowerShell cmdlet. +The [Diagnostic Data Viewer (DDV)](diagnostic-data-viewer-overview.md) provides a view into the diagnostic data being collected from a Windows device. Administrators can also use the [Get-DiagnosticData](diagnostic-data-viewer-powershell.md#install-and-use-the-diagnostic-data-viewer-for-powershell) PowerShell cmdlet. >[!Note] >If the Windows diagnostic data processor configuration is enabled, IT administrators can view the diagnostic data that is associated with a user from the admin portal. ### 3.3 Export -The [Diagnostic Data Viewer (DDV)](diagnostic-data-viewer-overview.md) provides the ability to export the diagnostic data captured while the app is running, by clicking the **Export** data button in the top menu. Administrators can also use the [Get-DiagnosticData](microsoft-diagnosticdataviewer.md#install-and-use-the-diagnostic-data-viewer-for-powershell) PowerShell cmdlet script. +The [Diagnostic Data Viewer (DDV)](diagnostic-data-viewer-overview.md) provides the ability to export the diagnostic data captured while the app is running, by clicking the **Export** data button in the top menu. Administrators can also use the [Get-DiagnosticData](diagnostic-data-viewer-powershell.md#install-and-use-the-diagnostic-data-viewer-for-powershell) PowerShell cmdlet script. >[!Note] >If the Windows diagnostic data processor configuration is enabled, IT administrators can also export the diagnostic data that is associated with a user from the admin portal. From 9a087910a8cd471b0fa6978bc8937d3db1762e45 Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Wed, 24 Jul 2024 12:53:31 -0700 Subject: [PATCH 083/108] Update old redirections to Windows privacy content --- .openpublishing.redirection.json | 6 +++--- .openpublishing.redirection.windows-configuration.json | 6 +++--- .openpublishing.redirection.windows-privacy.json | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index f5699b6c99..ce1c61e4cc 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -1302,7 +1302,7 @@ }, { "source_path": "windows/configure/configure-windows-telemetry-in-your-organization.md", - "redirect_url": "/windows/configuration/configure-windows-diagnostic-data-in-your-organization", + "redirect_url": "/windows/privacy/configure-windows-diagnostic-data-in-your-organization", "redirect_document_id": false }, { @@ -1527,7 +1527,7 @@ }, { "source_path": "windows/configure/windows-diagnostic-data-1703.md", - "redirect_url": "/windows/configuration/windows-diagnostic-data", + "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1703", "redirect_document_id": false }, { @@ -10372,7 +10372,7 @@ }, { "source_path": "windows/manage/configure-windows-telemetry-in-your-organization.md", - "redirect_url": "/windows/configuration/configure-windows-diagnostic-data-in-your-organization", + "redirect_url": "/windows/privacy/configure-windows-diagnostic-data-in-your-organization", "redirect_document_id": false }, { diff --git a/.openpublishing.redirection.windows-configuration.json b/.openpublishing.redirection.windows-configuration.json index 914e5aaa7f..e07084c0ec 100644 --- a/.openpublishing.redirection.windows-configuration.json +++ b/.openpublishing.redirection.windows-configuration.json @@ -27,7 +27,7 @@ }, { "source_path": "windows/configuration/configure-windows-telemetry-in-your-organization.md", - "redirect_url": "/windows/configuration/configure-windows-diagnostic-data-in-your-organization", + "redirect_url": "/windows/privacy/configure-windows-diagnostic-data-in-your-organization", "redirect_document_id": false }, { @@ -267,12 +267,12 @@ }, { "source_path": "windows/configuration/windows-diagnostic-data-1709.md", - "redirect_url": "/windows/configuration/windows-diagnostic-data", + "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1709", "redirect_document_id": false }, { "source_path": "windows/configuration/windows-diagnostic-data.md", - "redirect_url": "/windows/privacy/windows-diagnostic-data", + "redirect_url": "/windows/privacy/index", "redirect_document_id": false }, { diff --git a/.openpublishing.redirection.windows-privacy.json b/.openpublishing.redirection.windows-privacy.json index 3e2278ef26..54a466f5e3 100644 --- a/.openpublishing.redirection.windows-privacy.json +++ b/.openpublishing.redirection.windows-privacy.json @@ -137,7 +137,7 @@ }, { "source_path": "windows/privacy/windows-diagnostic-data-1703.md", - "redirect_url": "/previous-versions/windows/it-pro/privacy/windows-diagnostic-data-1703", + "redirect_url": "/previous-versions/windows/it-pro/privacy/basic-level-windows-diagnostic-events-and-fields-1703", "redirect_document_id": false }, { From c92f9ce5eb1accabf91b557c94e3fdbb57a1733f Mon Sep 17 00:00:00 2001 From: John Flores Date: Thu, 25 Jul 2024 12:15:20 -0400 Subject: [PATCH 084/108] Update from PG --- windows/whats-new/deprecated-features.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/whats-new/deprecated-features.md b/windows/whats-new/deprecated-features.md index 4c4a6712c3..a896400776 100644 --- a/windows/whats-new/deprecated-features.md +++ b/windows/whats-new/deprecated-features.md @@ -103,7 +103,7 @@ The features in this article are no longer being actively developed, and might b |IIS Digest Authentication | We recommend that users use alternative authentication methods.| 1709 | |RSA/AES Encryption for IIS | We recommend that users use CNG encryption provider. | 1709 | |Screen saver functionality in Themes | Disabled in Themes. Screen saver functionality in Group Policies, Control Panel, and Sysprep continues to be functional. Lock screen features and policies are preferred. | 1709 | -|Sync your settings (updated: August 17, 2017) | Back-end changes: In future releases, the back-end storage for the current sync process will change. A single cloud storage system will be used for Enterprise State Roaming and all other users. The **Sync your settings** options and the Enterprise State Roaming feature will continue to work provided your clients are running an up-to-date version of:
    - Windows 11
    - Windows 10, version 21H2, or later | 1709 | +|Sync your settings (updated: August 17, 2017) | Back-end changes: In future releases, the back-end storage for the current sync process will change. A single cloud storage system will be used for Enterprise State Roaming and all other users. As part of this change, we will stop supporting the Device Syncing Settings and App Data report. All other **Sync your settings** options and the Enterprise State Roaming feature will continue to work provided your clients are running an up-to-date version of:
    - Windows 11
    - Windows 10, version 21H2, or later | 1709 | |System Image Backup (SIB) Solution|This feature is also known as the **Backup and Restore (Windows 7)** legacy control panel. For full-disk backup solutions, look for a third-party product from another software publisher. You can also use [OneDrive](/onedrive/) to sync data files with Microsoft 365.| 1709 | |TLS RC4 Ciphers |To be disabled by default. For more information, see [TLS (Schannel SSP) changes in Windows 10 and Windows Server 2016](/windows-server/security/tls/tls-schannel-ssp-changes-in-windows-10-and-windows-server)| 1709 | |Trusted Platform Module (TPM) Owner Password Management |This functionality within TPM.msc will be migrated to a new user interface.| 1709 | From 46b50bb89922ca595b48a219f65b34d089ef4bab Mon Sep 17 00:00:00 2001 From: Aaron Czechowski Date: Thu, 25 Jul 2024 10:15:46 -0700 Subject: [PATCH 085/108] fix toc --- windows/deployment/TOC.yml | 57 +++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/windows/deployment/TOC.yml b/windows/deployment/TOC.yml index 83bd0aad84..785008dca8 100644 --- a/windows/deployment/TOC.yml +++ b/windows/deployment/TOC.yml @@ -186,83 +186,82 @@ href: volume-activation/monitor-activation-client.md - name: Use the Volume Activation Management Tool href: volume-activation/use-the-volume-activation-management-tool-client.md - href: volume-activation/appendix-information-sent-to-microsoft-during-activation-client.md + - name: Information sent to Microsoft during activation + href: volume-activation/appendix-information-sent-to-microsoft-during-activation-client.md - name: Volume Activation Management Tool (VAMT) items: - name: VAMT technical reference href: volume-activation/volume-activation-management-tool.md - name: Introduction to VAMT href: volume-activation/introduction-vamt.md - - name: Active Directory-Based Activation Overview + - name: Active Directory-Based activation overview href: volume-activation/active-directory-based-activation-overview.md - - name: Install and Configure VAMT + - name: Install and configure VAMT items: - name: Overview href: volume-activation/install-configure-vamt.md - - name: VAMT Requirements + - name: VAMT requirements href: volume-activation/vamt-requirements.md - name: Install VAMT href: volume-activation/install-vamt.md - - name: Configure Client Computers + - name: Configure client computers href: volume-activation/configure-client-computers-vamt.md - - name: Add and Manage Products + - name: Add and manage products items: - name: Overview href: volume-activation/add-manage-products-vamt.md - - name: Add and Remove Computers + - name: Add and remove computers href: volume-activation/add-remove-computers-vamt.md - - name: Update Product Status + - name: Update product status href: volume-activation/update-product-status-vamt.md - - name: Remove Products + - name: Remove products href: volume-activation/remove-products-vamt.md - - name: Manage Product Keys + - name: Manage product keys items: - name: Overview href: volume-activation/manage-product-keys-vamt.md - - name: Add and Remove a Product Key + - name: Add and remove a product key href: volume-activation/add-remove-product-key-vamt.md - - name: Install a Product Key + - name: Install a product key href: volume-activation/install-product-key-vamt.md - - name: Install a KMS Client Key + - name: Install a KMS client key href: volume-activation/install-kms-client-key-vamt.md - - name: Manage Activations + - name: Manage activations items: - name: Overview href: volume-activation/manage-activations-vamt.md - - name: Run Online Activation + - name: Run online activation href: volume-activation/online-activation-vamt.md - - name: Run Proxy Activation + - name: Run proxy activation href: volume-activation/proxy-activation-vamt.md - - name: Run KMS Activation + - name: Run KMS activation href: volume-activation/kms-activation-vamt.md - - name: Run Local Reactivation + - name: Run local reactivation href: volume-activation/local-reactivation-vamt.md - - name: Activate an Active Directory Forest Online + - name: Activate an Active Directory forest online href: volume-activation/activate-forest-vamt.md - - name: Activate by Proxy an Active Directory Forest + - name: Activate by proxy an Active Directory forest href: volume-activation/activate-forest-by-proxy-vamt.md - - name: Manage VAMT Data + - name: Manage VAMT data items: - name: Overview href: volume-activation/manage-vamt-data.md - - name: Import and Export VAMT Data + - name: Import and export VAMT data href: volume-activation/import-export-vamt-data.md - name: Use VAMT in Windows PowerShell href: volume-activation/use-vamt-in-windows-powershell.md - - name: VAMT Step-by-Step Scenarios + - name: VAMT step-by-step scenarios items: - name: Overview href: volume-activation/vamt-step-by-step.md - - name: "Scenario 1: Online Activation" + - name: "Scenario 1: online activation" href: volume-activation/scenario-online-activation-vamt.md - - name: "Scenario 2: Proxy Activation" + - name: "Scenario 2: proxy activation" href: volume-activation/scenario-proxy-activation-vamt.md - - name: "Scenario 3: KMS Client Activation" + - name: "Scenario 3: KMS client activation" href: volume-activation/scenario-kms-activation-vamt.md - - name: VAMT Known Issues + - name: VAMT known issues href: volume-activation/vamt-known-issues.md - - name: Information sent to Microsoft during activation - href: volume-activation/appendix-information-sent-to-microsoft-during-activation-client.md - name: Monitor items: - name: Windows Update for Business reports From 82f4a0a8beafba408f6129eb8b47eb961634d72d Mon Sep 17 00:00:00 2001 From: Aaron Czechowski Date: Thu, 25 Jul 2024 11:49:36 -0700 Subject: [PATCH 086/108] update metadata and cleanup --- .openpublishing.redirection.json | 12 ++--- ...ishing.redirection.windows-deployment.json | 32 ++++++++++++- windows/deployment/TOC.yml | 32 ++++--------- .../deployment/deploy-enterprise-licenses.md | 10 ++-- .../deployment/vda-subscription-activation.md | 6 +-- .../activate-forest-by-proxy-vamt.md | 16 +++---- .../volume-activation/activate-forest-vamt.md | 19 ++++---- ...ctive-directory-based-activation-client.md | 13 ++--- ...ivate-using-key-management-service-vamt.md | 15 +++--- .../activate-windows-clients-vamt.md | 14 +++--- ...ive-directory-based-activation-overview.md | 12 ++--- .../add-manage-products-vamt.md | 24 ---------- .../add-remove-computers-vamt.md | 18 +++---- .../add-remove-product-key-vamt.md | 16 ++++--- ...t-to-microsoft-during-activation-client.md | 20 ++++---- .../configure-client-computers-vamt.md | 20 ++++---- .../import-export-vamt-data.md | 6 +-- .../install-configure-vamt.md | 29 ----------- .../install-kms-client-key-vamt.md | 22 +++++---- .../install-product-key-vamt.md | 20 ++++---- .../volume-activation/install-vamt.md | 10 ++-- .../volume-activation/introduction-vamt.md | 10 ++-- .../volume-activation/kms-activation-vamt.md | 26 ++++++---- .../local-reactivation-vamt.md | 22 +++++---- .../manage-activations-vamt.md | 27 ----------- .../manage-product-keys-vamt.md | 24 ---------- .../volume-activation/manage-vamt-data.md | 23 --------- .../monitor-activation-client.md | 22 ++++----- .../online-activation-vamt.md | 36 +++++++------- .../plan-for-volume-activation-client.md | 32 ++++++------- .../proxy-activation-vamt.md | 38 +++++++++------ .../volume-activation/remove-products-vamt.md | 16 ++++--- .../scenario-kms-activation-vamt.md | 20 ++++---- .../scenario-online-activation-vamt.md | 28 +++++------ .../scenario-proxy-activation-vamt.md | 48 +++++++++---------- .../update-product-status-vamt.md | 18 +++---- ...olume-activation-management-tool-client.md | 23 +++++---- .../use-vamt-in-windows-powershell.md | 32 ++++++------- .../volume-activation/vamt-known-issues.md | 24 +++++----- .../volume-activation/vamt-requirements.md | 20 ++++---- .../volume-activation/vamt-step-by-step.md | 28 ----------- .../volume-activation-management-tool.md | 20 ++------ .../volume-activation-windows.md | 18 +++---- .../windows-enterprise-e3-overview.md | 11 +++-- .../windows-subscription-activation.md | 10 ++-- 45 files changed, 412 insertions(+), 530 deletions(-) delete mode 100644 windows/deployment/volume-activation/add-manage-products-vamt.md delete mode 100644 windows/deployment/volume-activation/install-configure-vamt.md delete mode 100644 windows/deployment/volume-activation/manage-activations-vamt.md delete mode 100644 windows/deployment/volume-activation/manage-product-keys-vamt.md delete mode 100644 windows/deployment/volume-activation/manage-vamt-data.md delete mode 100644 windows/deployment/volume-activation/vamt-step-by-step.md diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 31d8d2cd74..83100601eb 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -1582,7 +1582,7 @@ }, { "source_path": "windows/deploy/add-manage-products-vamt.md", - "redirect_url": "/windows/deployment/volume-activation/add-manage-products-vamt", + "redirect_url": "/windows/deployment/volume-activation/add-remove-computers-vamt", "redirect_document_id": false }, { @@ -1732,7 +1732,7 @@ }, { "source_path": "windows/deploy/install-configure-vamt.md", - "redirect_url": "/windows/deployment/volume-activation/install-configure-vamt", + "redirect_url": "/windows/deployment/volume-activation/vamt-requirements", "redirect_document_id": false }, { @@ -1777,17 +1777,17 @@ }, { "source_path": "windows/deploy/manage-activations-vamt.md", - "redirect_url": "/windows/deployment/volume-activation/manage-activations-vamt", + "redirect_url": "/windows/deployment/volume-activation/online-activation-vamt", "redirect_document_id": false }, { "source_path": "windows/deploy/manage-product-keys-vamt.md", - "redirect_url": "/windows/deployment/volume-activation/manage-product-keys-vamt", + "redirect_url": "/windows/deployment/volume-activation/add-remove-product-key-vamt", "redirect_document_id": false }, { "source_path": "windows/deploy/manage-vamt-data.md", - "redirect_url": "/windows/deployment/volume-activation/manage-vamt-data", + "redirect_url": "/windows/deployment/volume-activation/import-export-vamt-data", "redirect_document_id": false }, { @@ -2422,7 +2422,7 @@ }, { "source_path": "windows/deploy/vamt-step-by-step.md", - "redirect_url": "/windows/deployment/volume-activation/vamt-step-by-step", + "redirect_url": "/windows/deployment/volume-activation/scenario-online-activation-vamt", "redirect_document_id": false }, { diff --git a/.openpublishing.redirection.windows-deployment.json b/.openpublishing.redirection.windows-deployment.json index 3345b69500..7f67dadb04 100644 --- a/.openpublishing.redirection.windows-deployment.json +++ b/.openpublishing.redirection.windows-deployment.json @@ -1189,11 +1189,41 @@ "source_path": "windows/deployment/do/waas-delivery-optimization-setup.md", "redirect_url": "/windows/deployment/do/delivery-optimization-configure", "redirect_document_id": false - }, + }, { "source_path": "windows/deployment/update/plan-determine-app-readiness.md", "redirect_url": "/windows/compatibility/windows-11/testing-guidelines", "redirect_document_id": false + }, + { + "source_path": "windows/deployment/volume-activation/add-manage-products-vamt.md", + "redirect_url": "/windows/deployment/volume-activation/add-remove-computers-vamt", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/volume-activation/install-configure-vamt.md", + "redirect_url": "/windows/deployment/volume-activation/vamt-requirements", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/volume-activation/manage-activations-vamt.md", + "redirect_url": "/windows/deployment/volume-activation/online-activation-vamt", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/volume-activation/manage-product-keys-vamt.md", + "redirect_url": "/windows/deployment/volume-activation/add-remove-product-key-vamt", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/volume-activation/manage-vamt-data.md", + "redirect_url": "/windows/deployment/volume-activation/import-export-vamt-data", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/volume-activation/vamt-step-by-step.md", + "redirect_url": "/windows/deployment/volume-activation/scenario-online-activation-vamt", + "redirect_document_id": false } ] } diff --git a/windows/deployment/TOC.yml b/windows/deployment/TOC.yml index 785008dca8..cb3fd2076a 100644 --- a/windows/deployment/TOC.yml +++ b/windows/deployment/TOC.yml @@ -198,8 +198,6 @@ href: volume-activation/active-directory-based-activation-overview.md - name: Install and configure VAMT items: - - name: Overview - href: volume-activation/install-configure-vamt.md - name: VAMT requirements href: volume-activation/vamt-requirements.md - name: Install VAMT @@ -208,8 +206,6 @@ href: volume-activation/configure-client-computers-vamt.md - name: Add and manage products items: - - name: Overview - href: volume-activation/add-manage-products-vamt.md - name: Add and remove computers href: volume-activation/add-remove-computers-vamt.md - name: Update product status @@ -218,8 +214,6 @@ href: volume-activation/remove-products-vamt.md - name: Manage product keys items: - - name: Overview - href: volume-activation/manage-product-keys-vamt.md - name: Add and remove a product key href: volume-activation/add-remove-product-key-vamt.md - name: Install a product key @@ -228,8 +222,6 @@ href: volume-activation/install-kms-client-key-vamt.md - name: Manage activations items: - - name: Overview - href: volume-activation/manage-activations-vamt.md - name: Run online activation href: volume-activation/online-activation-vamt.md - name: Run proxy activation @@ -244,24 +236,20 @@ href: volume-activation/activate-forest-by-proxy-vamt.md - name: Manage VAMT data items: - - name: Overview - href: volume-activation/manage-vamt-data.md - name: Import and export VAMT data href: volume-activation/import-export-vamt-data.md - name: Use VAMT in Windows PowerShell href: volume-activation/use-vamt-in-windows-powershell.md - - name: VAMT step-by-step scenarios - items: - - name: Overview - href: volume-activation/vamt-step-by-step.md - - name: "Scenario 1: online activation" - href: volume-activation/scenario-online-activation-vamt.md - - name: "Scenario 2: proxy activation" - href: volume-activation/scenario-proxy-activation-vamt.md - - name: "Scenario 3: KMS client activation" - href: volume-activation/scenario-kms-activation-vamt.md - - name: VAMT known issues - href: volume-activation/vamt-known-issues.md + - name: VAMT step-by-step scenarios + items: + - name: "Scenario 1: online activation" + href: volume-activation/scenario-online-activation-vamt.md + - name: "Scenario 2: proxy activation" + href: volume-activation/scenario-proxy-activation-vamt.md + - name: "Scenario 3: KMS client activation" + href: volume-activation/scenario-kms-activation-vamt.md + - name: VAMT known issues + href: volume-activation/vamt-known-issues.md - name: Monitor items: - name: Windows Update for Business reports diff --git a/windows/deployment/deploy-enterprise-licenses.md b/windows/deployment/deploy-enterprise-licenses.md index 4fde853386..2e0cc4d984 100644 --- a/windows/deployment/deploy-enterprise-licenses.md +++ b/windows/deployment/deploy-enterprise-licenses.md @@ -1,16 +1,14 @@ --- title: Deploy Windows Enterprise licenses description: Steps to deploy Windows Enterprise licenses for Windows Enterprise E3 or E5 subscription activation, or for Windows Enterprise E3 in CSP. -author: frankroj -ms.author: frankroj -manager: aaroncz +ms.author: kaushika +author: kaushika-msft +manager: cshepard +ms.reviewer: nganguly ms.service: windows-client ms.subservice: itpro-fundamentals ms.localizationpriority: medium ms.topic: how-to -ms.collection: - - highpri - - tier2 ms.date: 03/04/2024 zone_pivot_groups: windows-versions-11-10 appliesto: diff --git a/windows/deployment/vda-subscription-activation.md b/windows/deployment/vda-subscription-activation.md index 0e1c0ccf66..922c1e32b5 100644 --- a/windows/deployment/vda-subscription-activation.md +++ b/windows/deployment/vda-subscription-activation.md @@ -2,9 +2,9 @@ title: Configure VDA for Windows subscription activation description: Learn how to configure virtual machines (VMs) to enable Windows 10 Subscription Activation in a Windows Virtual Desktop Access (VDA) scenario. ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -author: frankroj +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.service: windows-client ms.subservice: itpro-fundamentals ms.localizationpriority: medium diff --git a/windows/deployment/volume-activation/activate-forest-by-proxy-vamt.md b/windows/deployment/volume-activation/activate-forest-by-proxy-vamt.md index fcf91e9502..1d89c61ebf 100644 --- a/windows/deployment/volume-activation/activate-forest-by-proxy-vamt.md +++ b/windows/deployment/volume-activation/activate-forest-by-proxy-vamt.md @@ -1,17 +1,17 @@ --- -title: Activate by Proxy an Active Directory Forest (Windows 10) +title: Activate by proxy an Active Directory forest description: Learn how to use the Volume Activation Management Tool (VAMT) Active Directory-Based Activation (ADBA) function to activate by proxy an Active Directory (AD) forest. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: concept-article +ms.service: windows-client ms.subservice: itpro-fundamentals --- -# Activate by Proxy an Active Directory Forest +# Activate by proxy an Active Directory forest You can use the Volume Activation Management Tool (VAMT) Active Directory-Based Activation (ADBA) function to activate by proxy an Active Directory (AD) forest for an isolated workgroup that doesn't have Internet access. ADBA enables certain volume products to inherit activation from the domain. @@ -64,4 +64,4 @@ VAMT displays the **Activating Active Directory** dialog box until it completes ## Related articles -- [Add and Remove Computers](add-remove-computers-vamt.md) +[Add and remove computers](add-remove-computers-vamt.md) diff --git a/windows/deployment/volume-activation/activate-forest-vamt.md b/windows/deployment/volume-activation/activate-forest-vamt.md index 128068b07c..f264dc644b 100644 --- a/windows/deployment/volume-activation/activate-forest-vamt.md +++ b/windows/deployment/volume-activation/activate-forest-vamt.md @@ -1,17 +1,17 @@ --- -title: Activate an Active Directory Forest Online (Windows 10) +title: Activate an Active Directory forest online description: Use the Volume Activation Management Tool (VAMT) Active Directory-Based Activation (ADBA) function to activate an Active Directory (AD) forest online. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: concept-article +ms.service: windows-client ms.subservice: itpro-fundamentals --- -# Activate an Active Directory Forest Online +# Activate an Active Directory forest online You can use the Volume Activation Management Tool (VAMT) Active Directory-Based Activation (ADBA) function to activate an Active Directory (AD) forest over the Internet. ADBA enables certain products to inherit activation from the domain. @@ -51,5 +51,6 @@ The activated object and the date that it was created appear in the **Active Dir ## Related articles -- [Scenario 1: Online Activation](scenario-online-activation-vamt.md) -- [Add and Remove Computers](add-remove-computers-vamt.md) +- [Scenario 1: online activation](scenario-online-activation-vamt.md) + +- [Add and remove computers](add-remove-computers-vamt.md) diff --git a/windows/deployment/volume-activation/activate-using-active-directory-based-activation-client.md b/windows/deployment/volume-activation/activate-using-active-directory-based-activation-client.md index 1510e640eb..6be9e26b91 100644 --- a/windows/deployment/volume-activation/activate-using-active-directory-based-activation-client.md +++ b/windows/deployment/volume-activation/activate-using-active-directory-based-activation-client.md @@ -1,18 +1,15 @@ --- title: Activate using Active Directory-based activation description: Learn how active directory-based activation is implemented as a role service that relies on Active Directory Domain Services (ADDS) to store activation objects. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -author: frankroj -ms.author: frankroj ms.service: windows-client ms.subservice: itpro-fundamentals ms.localizationpriority: medium ms.date: 03/29/2024 ms.topic: how-to -ms.collection: - - highpri - - tier2 appliesto: - ✅ Windows 11 - ✅ Windows 10 @@ -28,8 +25,8 @@ appliesto: > > Looking for information on retail activation? > -> - [Activate Windows](https://support.microsoft.com/help/12440/). -> - [Product activation for Windows](https://go.microsoft.com/fwlink/p/?LinkId=618644). +> - [Activate Windows](https://support.microsoft.com/windows/activate-windows-c39005d4-95ee-b91e-b399-2820fda32227). +> - [Product activation for Windows](https://support.microsoft.com/windows/product-activation-for-windows-online-support-telephone-numbers-35f6a805-1259-88b4-f5e9-b52cccef91a0). Active Directory-based activation is implemented as a role service that relies on Active Directory Domain Services (ADDS) to store activation objects. Active Directory-based activation requires updating the forest schema with `adprep.exe` on a supported server OS. After the schema is updated, older domain controllers can still activate clients. diff --git a/windows/deployment/volume-activation/activate-using-key-management-service-vamt.md b/windows/deployment/volume-activation/activate-using-key-management-service-vamt.md index edc0003a75..9d68177a96 100644 --- a/windows/deployment/volume-activation/activate-using-key-management-service-vamt.md +++ b/windows/deployment/volume-activation/activate-using-key-management-service-vamt.md @@ -1,18 +1,15 @@ --- title: Activate using Key Management Service description: Learn how to use Key Management Service (KMS) to activate Windows. -ms.reviewer: nganguly ms.service: windows-client ms.subservice: itpro-fundamentals -author: frankroj -manager: aaroncz -ms.author: frankroj +ms.author: kaushika +author: kaushika-msft +manager: cshepard +ms.reviewer: nganguly ms.localizationpriority: medium ms.date: 03/29/2024 ms.topic: how-to -ms.collection: - - highpri - - tier2 appliesto: - ✅ Windows 11 - ✅ Windows 10 @@ -27,8 +24,8 @@ appliesto: > > For information on retail activation, see the following articles: > -> - [Activate Windows](https://support.microsoft.com/help/12440/) -> - [Product activation for Windows](https://go.microsoft.com/fwlink/p/?LinkId=618644) +> - [Activate Windows](https://support.microsoft.com/windows/activate-windows-c39005d4-95ee-b91e-b399-2820fda32227) +> - [Product activation for Windows](https://support.microsoft.com/windows/product-activation-for-windows-online-support-telephone-numbers-35f6a805-1259-88b4-f5e9-b52cccef91a0) Volume activation can be performed via Key Management Service (KMS). KMS can be hosted either on a client version of Windows or on Windows Server. diff --git a/windows/deployment/volume-activation/activate-windows-clients-vamt.md b/windows/deployment/volume-activation/activate-windows-clients-vamt.md index 7f95ef225e..73375ba2c1 100644 --- a/windows/deployment/volume-activation/activate-windows-clients-vamt.md +++ b/windows/deployment/volume-activation/activate-windows-clients-vamt.md @@ -1,14 +1,14 @@ --- title: Activate clients running Windows description: Activate clients running Windows after configuring Key Management Service (KMS) or Active Directory-based activation. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.localizationpriority: medium ms.date: 03/29/2024 -ms.topic: conceptual +ms.topic: concept-article +ms.service: windows-client ms.subservice: itpro-fundamentals appliesto: - ✅ Windows 11 @@ -24,8 +24,8 @@ appliesto: > > Looking for information on retail activation? > -> - [Activate Windows](https://support.microsoft.com/help/12440/). -> - [Product activation for Windows](https://go.microsoft.com/fwlink/p/?LinkId=618644). +> - [Activate Windows](https://support.microsoft.com/windows/activate-windows-c39005d4-95ee-b91e-b399-2820fda32227). +> - [Product activation for Windows](https://support.microsoft.com/windows/product-activation-for-windows-online-support-telephone-numbers-35f6a805-1259-88b4-f5e9-b52cccef91a0). After Key Management Service (KMS) or Active Directory-based activation is configured in a network, activating a client running Windows is easy. If the computer is configured with a Generic Volume License Key (GVLK), IT or the user don't need to take any action. It just works. diff --git a/windows/deployment/volume-activation/active-directory-based-activation-overview.md b/windows/deployment/volume-activation/active-directory-based-activation-overview.md index ed01a87d85..ddce9806a9 100644 --- a/windows/deployment/volume-activation/active-directory-based-activation-overview.md +++ b/windows/deployment/volume-activation/active-directory-based-activation-overview.md @@ -1,13 +1,13 @@ --- -title: Active Directory-Based Activation Overview (Windows 10) +title: Active Directory-based activation overview description: Enable your enterprise to activate its computers through a connection to their domain using Active Directory-Based Activation (ADBA). +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: concept-article +ms.service: windows-client ms.subservice: itpro-fundamentals --- diff --git a/windows/deployment/volume-activation/add-manage-products-vamt.md b/windows/deployment/volume-activation/add-manage-products-vamt.md deleted file mode 100644 index e4f655dbf7..0000000000 --- a/windows/deployment/volume-activation/add-manage-products-vamt.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Add and Manage Products -description: Add client computers into the Volume Activation Management Tool (VAMT). After the computers are added, the products that are installed in the network can be managed. -ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj -ms.date: 03/29/2024 -ms.topic: conceptual -ms.subservice: itpro-fundamentals ---- - -# Add and manage products - -This section describes how to add client computers into the Volume Activation Management Tool (VAMT). After the computers are added, the products that are installed in the network can be managed. - -## In this Section - -|Article |Description | -|-------|------------| -|[Add and Remove Computers](add-remove-computers-vamt.md) |Describes how to add client computers to VAMT. | -|[Update Product Status](update-product-status-vamt.md) |Describes how to update the status of product license. | -|[Remove Products](remove-products-vamt.md) |Describes how to remove a product from the product list. | diff --git a/windows/deployment/volume-activation/add-remove-computers-vamt.md b/windows/deployment/volume-activation/add-remove-computers-vamt.md index 9878980a5d..d643fe3e46 100644 --- a/windows/deployment/volume-activation/add-remove-computers-vamt.md +++ b/windows/deployment/volume-activation/add-remove-computers-vamt.md @@ -1,13 +1,13 @@ --- -title: Add and Remove Computers (Windows 10) -description: The Discover products function on the Volume Activation Management Tool (VAMT) allows you to search the Active Directory domain or a general LDAP query. +title: Add and remove computers +description: The discover products function on the Volume Activation Management Tool (VAMT) allows you to search the Active Directory domain or a general LDAP query. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- @@ -71,4 +71,6 @@ You can delete a computer by clicking on it in the product list view, and then c ## Related articles -- [Add and Manage Products](add-manage-products-vamt.md) +[Update product status](update-product-status-vamt.md) + +[Remove products](remove-products-vamt.md) diff --git a/windows/deployment/volume-activation/add-remove-product-key-vamt.md b/windows/deployment/volume-activation/add-remove-product-key-vamt.md index af1131f23a..653312d500 100644 --- a/windows/deployment/volume-activation/add-remove-product-key-vamt.md +++ b/windows/deployment/volume-activation/add-remove-product-key-vamt.md @@ -1,13 +1,13 @@ --- -title: Add and Remove a Product Key (Windows 10) +title: Add and remove a product key description: Add a product key to the Volume Activation Management Tool (VAMT) database. Also, learn how to remove the key from the database. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- @@ -38,4 +38,6 @@ Before you can use a Multiple Activation Key (MAK), retail, or KMS Host key (CSV ## Related articles -- [Manage Product Keys](manage-product-keys-vamt.md) +[Install a product key](install-product-key-vamt.md) + +[Install a KMS client key](install-kms-client-key-vamt.md) diff --git a/windows/deployment/volume-activation/appendix-information-sent-to-microsoft-during-activation-client.md b/windows/deployment/volume-activation/appendix-information-sent-to-microsoft-during-activation-client.md index 7fce96b052..d9f10dc1ba 100644 --- a/windows/deployment/volume-activation/appendix-information-sent-to-microsoft-during-activation-client.md +++ b/windows/deployment/volume-activation/appendix-information-sent-to-microsoft-during-activation-client.md @@ -1,15 +1,15 @@ --- -title: Appendix Information sent to Microsoft during activation +title: Appendix information sent to Microsoft during activation description: Learn about the information sent to Microsoft during activation. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -author: frankroj ms.service: windows-client ms.subservice: itpro-fundamentals ms.localizationpriority: medium ms.date: 03/29/2024 -ms.topic: conceptual +ms.topic: reference appliesto: - ✅ Windows 11 - ✅ Windows 10 @@ -24,8 +24,8 @@ appliesto: > > Looking for information on retail activation? > -> - [Activate Windows](https://support.microsoft.com/help/12440/). -> - [Product activation for Windows](https://go.microsoft.com/fwlink/p/?LinkId=618644). +> - [Activate Windows](https://support.microsoft.com/windows/activate-windows-c39005d4-95ee-b91e-b399-2820fda32227). +> - [Product activation for Windows](https://support.microsoft.com/windows/product-activation-for-windows-online-support-telephone-numbers-35f6a805-1259-88b4-f5e9-b52cccef91a0). When a computer running a currently supported version of Windows is activated, the following information is sent to Microsoft: @@ -78,8 +78,4 @@ Standard computer information is also sent, but the computer's IP address is onl Microsoft uses the information to confirm a properly licensed copy of the software. Microsoft doesn't use the information to contact individual consumers. -For more information, see [Microsoft Privacy Statement](https://go.microsoft.com/fwlink/p/?LinkId=619879). - -## Related content - -- [Volume Activation for Windows](volume-activation-windows.md). +For more information, see [Microsoft Privacy Statement](https://privacy.microsoft.com/privacystatement). diff --git a/windows/deployment/volume-activation/configure-client-computers-vamt.md b/windows/deployment/volume-activation/configure-client-computers-vamt.md index c3c6e47154..0c71f80635 100644 --- a/windows/deployment/volume-activation/configure-client-computers-vamt.md +++ b/windows/deployment/volume-activation/configure-client-computers-vamt.md @@ -1,13 +1,13 @@ --- -title: Configure Client Computers (Windows 10) +title: Configure client computers description: Learn how to configure client computers to enable the Volume Activation Management Tool (VAMT) to function correctly. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -author: frankroj -ms.author: frankroj -ms.service: windows-client ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- @@ -62,9 +62,9 @@ Enable the VAMT to access client computers across multiple subnets using the **W - Windows Management Instrumentation (WMI-In) 4. In the **Windows Firewall with Advanced Security** dialog box, select **Inbound Rules** from the left-hand panel. - + 5. Right-click the desired rule and select **Properties** to open the **Properties** dialog box. - + - On the **General** tab, select the **Allow the connection** checkbox. - On the **Scope** tab, change the Remote IP Address setting from "Local Subnet" (default) to allow the specific access you need. @@ -109,4 +109,6 @@ The above configurations will open an additional port through the Windows Firewa ## Related articles -- [Install and Configure VAMT](install-configure-vamt.md) +[VAMT requirements](vamt-requirements.md) + +[Install VAMT](install-vamt.md) diff --git a/windows/deployment/volume-activation/import-export-vamt-data.md b/windows/deployment/volume-activation/import-export-vamt-data.md index 888523a907..641da415d0 100644 --- a/windows/deployment/volume-activation/import-export-vamt-data.md +++ b/windows/deployment/volume-activation/import-export-vamt-data.md @@ -1,12 +1,12 @@ --- title: Import and export VAMT data description: Learn how to use the VAMT to import product-activation data from a file into SQL Server. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj ms.service: windows-client ms.subservice: itpro-fundamentals -author: frankroj ms.date: 11/07/2022 ms.topic: how-to --- diff --git a/windows/deployment/volume-activation/install-configure-vamt.md b/windows/deployment/volume-activation/install-configure-vamt.md deleted file mode 100644 index aee189d31f..0000000000 --- a/windows/deployment/volume-activation/install-configure-vamt.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Install and Configure VAMT -description: Learn how to install and configure the Volume Activation Management Tool (VAMT), and learn where to find information about the process. -ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj -ms.localizationpriority: medium -ms.date: 03/29/2024 -ms.topic: conceptual -ms.subservice: itpro-fundamentals ---- - -# Install and configure VAMT - -This section describes how to install and configure the Volume Activation Management Tool (VAMT). - -## In this section - -|Article |Description | -|-------|------------| -|[VAMT Requirements](vamt-requirements.md) |Provides system requirements for installing VAMT on a host computer. | -|[Install VAMT](install-vamt.md) |Describes how to get and install VAMT. | -|[Configure Client Computers](configure-client-computers-vamt.md) |Describes how to configure client computers in the network to work with VAMT. | - -## Related content - -- [Introduction to VAMT](introduction-vamt.md). diff --git a/windows/deployment/volume-activation/install-kms-client-key-vamt.md b/windows/deployment/volume-activation/install-kms-client-key-vamt.md index 80a5fc67e1..8643b3908a 100644 --- a/windows/deployment/volume-activation/install-kms-client-key-vamt.md +++ b/windows/deployment/volume-activation/install-kms-client-key-vamt.md @@ -1,25 +1,25 @@ --- -title: Install a KMS Client Key (Windows 10) +title: Install a KMS client key description: Learn to use the Volume Activation Management Tool (VAMT) to install Generic Volume License Key (GVLK), or KMS client, product keys. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.localizationpriority: medium ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- -# Install a KMS Client Key +# Install a KMS client key You can use the Volume Activation Management Tool (VAMT) to install Generic Volume License Key (GVLK), or KMS client, product keys. For example, if you're converting a MAK-activated product to KMS activation. > [!NOTE] > By default, volume license editions of Windows Vista, Windows® 7, Windows 8, Windows 10, Windows Server 2008, Windows Server 2008 R2, Windows Server® 2012, and Microsoft® Office 2010 use KMS for activation. GVLKs are already installed in volume license editions of these products. -## To install a KMS Client key +## To install a KMS client key 1. Open VAMT. @@ -47,4 +47,8 @@ You can use the Volume Activation Management Tool (VAMT) to install Generic Volu ## Related articles -- [Perform KMS Activation](kms-activation-vamt.md) +[Run KMS activation](kms-activation-vamt.md) + +[Add and remove a product key](add-remove-product-key-vamt.md) + +[Install a product key](install-product-key-vamt.md) diff --git a/windows/deployment/volume-activation/install-product-key-vamt.md b/windows/deployment/volume-activation/install-product-key-vamt.md index 2b9d727184..cbd82fea0b 100644 --- a/windows/deployment/volume-activation/install-product-key-vamt.md +++ b/windows/deployment/volume-activation/install-product-key-vamt.md @@ -1,22 +1,22 @@ --- -title: Install a Product Key (Windows 10) +title: Install a product key description: Learn to use the Volume Activation Management Tool (VAMT) to install retail, Multiple Activation Key (MAK), and KMS Host key (CSVLK). +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.localizationpriority: medium ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- -# Install a Product Key +# Install a product key You can use the Volume Activation Management Tool (VAMT) to install retail, Multiple Activation Key (MAK), and KMS Host key (CSVLK). -## To install a Product key +## To install a product key 1. Open VAMT. @@ -47,4 +47,6 @@ You can use the Volume Activation Management Tool (VAMT) to install retail, Mult ## Related articles -- [Manage Product Keys](manage-product-keys-vamt.md) +[Add and remove a product key](add-remove-product-key-vamt.md) + +[Install a KMS client key](install-kms-client-key-vamt.md) diff --git a/windows/deployment/volume-activation/install-vamt.md b/windows/deployment/volume-activation/install-vamt.md index 3b3b7746fa..ab6ee683e6 100644 --- a/windows/deployment/volume-activation/install-vamt.md +++ b/windows/deployment/volume-activation/install-vamt.md @@ -1,14 +1,14 @@ --- title: Install VAMT description: Learn how to install Volume Activation Management Tool (VAMT) as part of the Windows Assessment and Deployment Kit (ADK) for Windows. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.localizationpriority: medium ms.date: 03/29/2024 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals appliesto: - ✅ Windows 11 diff --git a/windows/deployment/volume-activation/introduction-vamt.md b/windows/deployment/volume-activation/introduction-vamt.md index ae69a809d3..e07192b464 100644 --- a/windows/deployment/volume-activation/introduction-vamt.md +++ b/windows/deployment/volume-activation/introduction-vamt.md @@ -1,12 +1,12 @@ --- -title: Introduction to VAMT (Windows 10) +title: Introduction to VAMT description: VAMT enables administrators to automate and centrally manage the Windows, Microsoft Office, and select other Microsoft products volume and retail activation process. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj ms.service: windows-client ms.subservice: itpro-fundamentals -author: frankroj ms.date: 11/07/2022 ms.topic: overview --- @@ -64,4 +64,4 @@ VAMT provides a single, graphical user interface for managing activations, and f ## Next steps -[VAMT step-by-step scenarios](vamt-step-by-step.md) +[VAMT requirements](vamt-requirements.md) diff --git a/windows/deployment/volume-activation/kms-activation-vamt.md b/windows/deployment/volume-activation/kms-activation-vamt.md index 1890da7caf..ced67be74b 100644 --- a/windows/deployment/volume-activation/kms-activation-vamt.md +++ b/windows/deployment/volume-activation/kms-activation-vamt.md @@ -1,19 +1,19 @@ --- -title: Perform KMS Activation (Windows 10) -description: The Volume Activation Management Tool (VAMT) can be used to perform volume activation using the Key Management Service (KMS). +title: Run KMS activation +description: The Volume Activation Management Tool (VAMT) can be used to run volume activation using the Key Management Service (KMS). +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- -# Perform KMS activation +# Run KMS activation -The Volume Activation Management Tool (VAMT) can be used to perform volume activation using the Key Management Service (KMS). You can use VAMT to activate Generic Volume Licensing Keys, or KMS client keys, on products accessible to VAMT. GVLKs are the default product keys used by the volume-license editions of Windows Vista, Windows 7, Windows 8, Windows 10, Windows Server 2008, Windows Server 2008 R2, Windows Server® 2012, and Microsoft Office 2010. GVLKs are already installed in volume-license editions of these products. +The Volume Activation Management Tool (VAMT) can be used to run volume activation using the Key Management Service (KMS). You can use VAMT to activate Generic Volume Licensing Keys, or KMS client keys, on products accessible to VAMT. GVLKs are the default product keys used by the volume-license editions of Windows Vista, Windows 7, Windows 8, Windows 10, Windows Server 2008, Windows Server 2008 R2, Windows Server® 2012, and Microsoft Office 2010. GVLKs are already installed in volume-license editions of these products. ## Requirements @@ -61,3 +61,11 @@ Before configuring KMS activation, ensure that your network and VAMT installatio 10. If you're supplying alternate credentials, at the prompt, type the appropriate user name and password and select **OK**. VAMT displays the **Volume Activation** dialog box until it completes the requested action. When the process is finished, the updated activation status of each product appears in the product list view in the center pane. + +## Related articles + +[Run online activation](online-activation-vamt.md) + +[Run proxy activation](proxy-activation-vamt.md) + +[Run local reactivation](local-reactivation-vamt.md) diff --git a/windows/deployment/volume-activation/local-reactivation-vamt.md b/windows/deployment/volume-activation/local-reactivation-vamt.md index 2bee6093d1..13e63058a6 100644 --- a/windows/deployment/volume-activation/local-reactivation-vamt.md +++ b/windows/deployment/volume-activation/local-reactivation-vamt.md @@ -1,17 +1,17 @@ --- -title: Perform Local Reactivation (Windows 10) +title: Run local reactivation description: An initially activated a computer using scenarios like MAK, retail, or CSLVK (KMS host), can be reactivated with Volume Activation Management Tool (VAMT). +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- -# Perform local reactivation +# Run local reactivation If you reinstall Windows® or Microsoft® Office 2010 on a computer that was initially activated using proxy activation (MAK, retail, or CSLVK (KMS host)), and have not made significant changes to the hardware, use this local reactivation procedure to reactivate the program on that computer. Local reactivation relies upon data that was created during the initial proxy activation and stored in the Volume Activation Management Tool (VAMT) database. The database contains the installation ID (IID) and confirmation ID (Pending CID). Local reactivation uses this data to reapply the CID and reactivate those products. Reapplying the same CID conserves the remaining activations on the key. @@ -19,7 +19,7 @@ Local reactivation relies upon data that was created during the initial proxy ac > [!NOTE] > During the initial proxy activation, the CID is bound to a digital "fingerprint", which is calculated from values assigned to several different hardware components in the computer. If the computer has had significant hardware changes, this fingerprint will no longer match the CID. In this case, you must obtain a new CID for the computer from Microsoft. -## To perform a local reactivation +## To run a local reactivation 1. Open VAMT. Make sure that you're connected to the desired database. @@ -51,4 +51,8 @@ Local reactivation relies upon data that was created during the initial proxy ac ## Related article -- [Manage Activations](manage-activations-vamt.md) +[Run online activation](online-activation-vamt.md) + +[Run proxy activation](proxy-activation-vamt.md) + +[Run KMS activation](kms-activation-vamt.md) diff --git a/windows/deployment/volume-activation/manage-activations-vamt.md b/windows/deployment/volume-activation/manage-activations-vamt.md deleted file mode 100644 index 49cbc84db3..0000000000 --- a/windows/deployment/volume-activation/manage-activations-vamt.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Manage Activations -description: Learn how to manage activations and how to activate a client computer by using various activation methods. -ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj -ms.date: 03/29/2024 -ms.topic: conceptual -ms.subservice: itpro-fundamentals ---- - -# Manage Activations - -This section describes how to activate a client computer, by using various activation methods. - -## In this Section - -|Article |Description | -|-------|------------| -|[Perform Online Activation](online-activation-vamt.md) |Describes how to activate a client computer over the Internet. | -|[Perform Proxy Activation](proxy-activation-vamt.md) |Describes how to perform volume activation for client products that don't have Internet access. | -|[Perform KMS Activation](kms-activation-vamt.md) |Describes how to perform volume activation using the Key Management Service (KMS). | -|[Perform Local Reactivation](local-reactivation-vamt.md) |Describes how to reactivate an operating system or Office program that was reinstalled. | -|[Activate an Active Directory Forest Online](activate-forest-vamt.md) |Describes how to use Active Directory-Based Activation to activate an Active Directory forest, online. | -|[Activate by Proxy an Active Directory Forest](activate-forest-by-proxy-vamt.md) |Describes how to use Active Directory-Based Activation to proxy activate an Active Directory forest that isn't connected to the Internet. | diff --git a/windows/deployment/volume-activation/manage-product-keys-vamt.md b/windows/deployment/volume-activation/manage-product-keys-vamt.md deleted file mode 100644 index fb18c65aa6..0000000000 --- a/windows/deployment/volume-activation/manage-product-keys-vamt.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Manage Product Keys -description: In this article, learn how to add and remove a product key from the Volume Activation Management Tool (VAMT). -ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj -ms.date: 03/29/2024 -ms.topic: conceptual -ms.subservice: itpro-fundamentals ---- - -# Manage Product Keys - -This section describes how to add and remove a product key from the Volume Activation Management Tool (VAMT). After a product key is added to VAMT, that product key can be installed on a product, or products selected in the VAMT database. - -## In this Section - -|Article |Description | -|-------|------------| -|[Add and Remove a Product Key](add-remove-product-key-vamt.md) |Describes how to add a product key to the VAMT database. | -|[Install a Product Key](install-product-key-vamt.md) |Describes how to install a product key for specific product. | -|[Install a KMS Client Key](install-kms-client-key-vamt.md) |Describes how to install a GVLK (KMS client) key. | diff --git a/windows/deployment/volume-activation/manage-vamt-data.md b/windows/deployment/volume-activation/manage-vamt-data.md deleted file mode 100644 index 3946fc1c63..0000000000 --- a/windows/deployment/volume-activation/manage-vamt-data.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Manage VAMT Data -description: Learn how to save, import, export, and merge a Computer Information List (CILX) file using the Volume Activation Management Tool (VAMT). -ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj -ms.date: 03/29/2024 -ms.topic: conceptual -ms.subservice: itpro-fundamentals ---- - -# Manage VAMT Data - -This section describes how to save, import, export, and merge a Computer Information List (CILX) file using the Volume Activation Management Tool (VAMT). - -## In this Section - -|Article |Description | -|-------|------------| -|[Import and Export VAMT Data](import-export-vamt-data.md) |Describes how to import and export VAMT data. | -|[Use VAMT in Windows PowerShell](use-vamt-in-windows-powershell.md) |Describes how to access Windows PowerShell and how to import the VAMT PowerShell module. | diff --git a/windows/deployment/volume-activation/monitor-activation-client.md b/windows/deployment/volume-activation/monitor-activation-client.md index 3720919a25..db0510c320 100644 --- a/windows/deployment/volume-activation/monitor-activation-client.md +++ b/windows/deployment/volume-activation/monitor-activation-client.md @@ -1,13 +1,13 @@ --- title: Monitor activation -ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj description: Understand the most common methods to monitor the success of the activation process for a computer running Windows. -ms.service: windows-client -author: frankroj +ms.author: kaushika +author: kaushika-msft +manager: cshepard +ms.reviewer: nganguly ms.localizationpriority: medium -ms.topic: conceptual +ms.topic: concept-article +ms.service: windows-client ms.subservice: itpro-fundamentals ms.date: 03/29/2024 appliesto: @@ -24,8 +24,8 @@ appliesto: > > Looking for information on retail activation? > -> - [Activate Windows](https://support.microsoft.com/help/12440/). -> - [Product activation for Windows](https://go.microsoft.com/fwlink/p/?LinkId=618644). +> - [Activate Windows](https://support.microsoft.com/windows/activate-windows-c39005d4-95ee-b91e-b399-2820fda32227). +> - [Product activation for Windows](https://support.microsoft.com/windows/product-activation-for-windows-online-support-telephone-numbers-35f6a805-1259-88b4-f5e9-b52cccef91a0). The success of the activation process for a computer running Windows can be monitored in several ways. The most popular methods include: @@ -39,10 +39,10 @@ The success of the activation process for a computer running Windows can be moni - Microsoft System Center Operations Manager and the KMS Management Pack can provide insight and information to users of System Center Operations Manager. -- See [Troubleshooting activation error codes](/windows-server/get-started/activation-error-codes) for information about troubleshooting procedures for Multiple Activation Key (MAK) or the Key Management Service (KMS). +- See [Troubleshooting activation error codes](/troubleshoot/windows-server/licensing-and-activation/troubleshoot-activation-error-codes) for information about troubleshooting procedures for Multiple Activation Key (MAK) or the Key Management Service (KMS). -- The Volume Activation Management Tool (VAMT) provides a single site from which to manage and monitor volume activations. This feature is explained in the next section. +- The Volume Activation Management Tool (VAMT) provides a single site from which to manage and monitor volume activations. For more information, see [Introduction to VAMT](introduction-vamt.md). ## Related content -- [Volume Activation for Windows](volume-activation-windows.md). +[Volume activation for Windows](volume-activation-windows.md). diff --git a/windows/deployment/volume-activation/online-activation-vamt.md b/windows/deployment/volume-activation/online-activation-vamt.md index 3e6a04568d..8aa4cd5cf7 100644 --- a/windows/deployment/volume-activation/online-activation-vamt.md +++ b/windows/deployment/volume-activation/online-activation-vamt.md @@ -1,35 +1,35 @@ --- -title: Perform Online Activation (Windows 10) +title: Run online activation description: Learn how to use the Volume Activation Management Tool (VAMT) to enable client products to be activated online. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- -# Perform online activation +# Run online activation -You can use the Volume Activation Management Tool (VAMT) to enable client products to be activated over the Internet. You can install the client products with any kind of product key that is eligible for online activation—Multiple Activation Key (MAK), retail, and Windows Key Management Services (KMS) host key. +You can use the Volume Activation Management Tool (VAMT) to enable client products to be activated over the internet. You can install the client products with any kind of product key that is eligible for online activation—Multiple Activation Key (MAK), retail, and Windows Key Management Services (KMS) host key. ## Requirements -Before performing online activation, ensure that the network and the VAMT installation meet the following requirements: +Before running online activation, ensure that the network and the VAMT installation meet the following requirements: - VAMT is installed on a central computer that has network access to all client computers. -- Both the VAMT host and client computers have Internet access. +- Both the VAMT host and client computers have internet access. - The products that you want to activate are added to VAMT. -- VAMT has administrative permissions on all computers that you intend to activate, and that Windows Management Instrumentation (WMI) can be accessed through the Windows firewall. For more information, see [Configure Client Computers](configure-client-computers-vamt.md). +- VAMT has administrative permissions on all computers that you intend to activate, and that Windows Management Instrumentation (WMI) can be accessed through the Windows firewall. For more information, see [Configure client computers](configure-client-computers-vamt.md). -The product keys that are installed on the client products must have a sufficient number of remaining activations. If you're activating a MAK key, you can retrieve the remaining number of activations for that key by selecting the MAK in the product key list in the center pane and then clicking **Refresh product key data online** in the right-side pane. This action retrieves the number of remaining activations for the MAK from Microsoft. This step requires Internet access and that the remaining activation count can only be retrieved for MAKs. +The product keys that are installed on the client products must have a sufficient number of remaining activations. If you're activating a MAK key, you can retrieve the remaining number of activations for that key by selecting the MAK in the product key list in the center pane and then clicking **Refresh product key data online** in the right-side pane. This action retrieves the number of remaining activations for the MAK from Microsoft. This step requires internet access and that the remaining activation count can only be retrieved for MAKs. -## To perform an online activation +## To run an online activation 1. Open VAMT. @@ -54,11 +54,15 @@ The product keys that are installed on the client products must have a sufficien The same status is shown under the **Status of Last Action** column in the products list view in the center pane. > [!NOTE] - > Online activation does not enable you to save the Confirmation IDs (CIDs). As a result, you cannot perform local reactivation. + > Online activation doesn't enable you to save the Confirmation IDs (CIDs). As a result, you can't run local reactivation. - > [!NOTE] + > [!NOTE] > You can use online activation to select products that have different key types and activate the products at the same time. ## Related articles -- [Manage activations](manage-activations-vamt.md) +[Run proxy activation](proxy-activation-vamt.md) + +[Run KMS activation](kms-activation-vamt.md) + +[Run local reactivation](local-reactivation-vamt.md) diff --git a/windows/deployment/volume-activation/plan-for-volume-activation-client.md b/windows/deployment/volume-activation/plan-for-volume-activation-client.md index 89dab1ef39..cf6a3cdced 100644 --- a/windows/deployment/volume-activation/plan-for-volume-activation-client.md +++ b/windows/deployment/volume-activation/plan-for-volume-activation-client.md @@ -1,13 +1,13 @@ --- title: Plan for volume activation description: Product activation is the process of validating software with the manufacturer after it's installed on a specific computer. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.localizationpriority: medium -ms.topic: conceptual +ms.topic: concept-article +ms.service: windows-client ms.subservice: itpro-fundamentals ms.date: 03/29/2024 appliesto: @@ -24,8 +24,8 @@ appliesto: > > Looking for information on retail activation? > -> - [Activate Windows](https://support.microsoft.com/help/12440/). -> - [Product activation for Windows](https://go.microsoft.com/fwlink/p/?LinkId=618644). +> - [Activate Windows](https://support.microsoft.com/windows/activate-windows-c39005d4-95ee-b91e-b399-2820fda32227). +> - [Product activation for Windows](https://support.microsoft.com/windows/product-activation-for-windows-online-support-telephone-numbers-35f6a805-1259-88b4-f5e9-b52cccef91a0). *Product activation* is the process of validating software with the manufacturer after it's installed on a specific computer. Activation confirms that the product is genuine and not a fraudulent copy. Activation also confirms that the product key or serial number is valid and isn't compromised or revoked. Activation also establishes a link or relationship between the product key and the particular installation. @@ -76,7 +76,7 @@ With a retail product, the Volume Activation Management Tool (VAMT), which is di - Telephone activation. - VAMT proxy activation. -Telephone activation is primarily used in situations where a computer is isolated from all networks. VAMT proxy activation with retail keys is sometimes used when an IT department wants to centralize retail activations. VAMT can also be used when a computer with a retail version of the operating system is isolated from the Internet but connected to the LAN. For volume-licensed products, however, the best method or combination of methods must be determined to use in the environment. For currently supported versions of Windows Pro and Enterprise, one of the following three models can be chosen: +Telephone activation is primarily used in situations where a computer is isolated from all networks. VAMT proxy activation with retail keys is sometimes used when an IT department wants to centralize retail activations. VAMT can also be used when a computer with a retail version of the operating system is isolated from the internet but connected to the LAN. For volume-licensed products, however, the best method or combination of methods must be determined to use in the environment. For currently supported versions of Windows Pro and Enterprise, one of the following three models can be chosen: - Multiple Activation Keys (MAK). - KMS. @@ -97,7 +97,7 @@ To use a MAK, the computers to be activated must have a MAK installed. The MAK i In the simplest terms, a MAK acts like a retail key, except that a MAK is valid for activating multiple computers. Each MAK can be used a specific number of times. The VAMT can help with tracking the number of performed activations with each key and how many activations remain. -Organizations can download MAK and KMS keys from the [Volume Licensing Service Center](https://go.microsoft.com/fwlink/p/?LinkId=618213) website. Each MAK has a preset number of activations, which are based on a percentage of the count of licenses the organization purchases. However, the number of activations that are available can be increased with the MAK by calling Microsoft. +Organizations can download MAK and KMS keys from the [Volume Licensing Service Center](https://admin.microsoft.com/adminportal/home#/subscriptions/vlnew) website. Each MAK has a preset number of activations, which are based on a percentage of the count of licenses the organization purchases. However, the number of activations that are available can be increased with the MAK by calling Microsoft. ### Key Management Service @@ -121,7 +121,7 @@ A modern business network has many nuances and interconnections. This section ex ### Core network -The organization's core network is that part of the network that enjoys stable, high-speed, reliable connectivity to infrastructure servers. In many cases, the core network is also connected to the Internet. However, Internet connectivity isn't a requirement to use the KMS or Active Directory-based activation after the KMS server or ADDS is configured and active. The organization's core network likely consists of many network segments. In many organizations, the core network makes up most of the business network. +The organization's core network is that part of the network that enjoys stable, high-speed, reliable connectivity to infrastructure servers. In many cases, the core network is also connected to the internet. However, internet connectivity isn't a requirement to use the KMS or Active Directory-based activation after the KMS server or ADDS is configured and active. The organization's core network likely consists of many network segments. In many organizations, the core network makes up most of the business network. In the core network, a centralized KMS solution is recommended. Active Directory-based activation can also be used, but in many organizations, KMS might still be required to computers that aren't joined to the domain. Some administrators prefer to run both solutions to have the most flexibility, while others prefer to choose only a KMS-based solution for simplicity. Active Directory-based activation as the only solution is workable if all of the clients in the organization are running currently supported versions of Windows. @@ -163,7 +163,7 @@ If the network is fully isolated, MAK-independent activation would be the recomm #### Branch offices and distant networks -From mining operations to ships at sea, organizations often have a few computers that aren't easily connected to the core network or the Internet. Some organizations have network segments at branch offices that are large and well-connected internally, but have a slow or unreliable WAN link to the rest of the organization. There are several options in these situations: +From mining operations to ships at sea, organizations often have a few computers that aren't easily connected to the core network or the internet. Some organizations have network segments at branch offices that are large and well-connected internally, but have a slow or unreliable WAN link to the rest of the organization. There are several options in these situations: - **Active Directory-based activation**. In any site where the client computers are running currently supported versions of Windows, Active Directory-based activation is supported, and it can be activated by joining the domain. @@ -183,7 +183,7 @@ Active Directory-based activation can be used on computers when they meet the fo - The computer is running a currently supported version of Windows or Windows Server. - The computer connects to the domain at least once every 180 days, either directly or through a VPN. -Otherwise for computers that rarely or never connect to the network, MAK independent activation should be used either via the telephone or the Internet. +Otherwise for computers that rarely or never connect to the network, MAK independent activation should be used either via the telephone or the internet. ### Test and development labs @@ -215,13 +215,13 @@ By evaluating network connectivity and the numbers of computers at each site, th When it's know which keys are needed, the keys must be obtained. Generally speaking, volume licensing keys are collected in two ways: -- Go to the **Product Keys** section of the [Volume Licensing Service Center](https://go.microsoft.com/fwlink/p/?LinkID=618213) for the following agreements: Open, Open Value, Select, Enterprise, and Services Provider License. +- Go to the **Product Keys** section of the [Volume Licensing Service Center](https://admin.microsoft.com/adminportal/home#/subscriptions/vlnew) for the following agreements: Open, Open Value, Select, Enterprise, and Services Provider License. -- Contact the [Microsoft activation center](https://go.microsoft.com/fwlink/p/?LinkId=618264). +- Contact the [Microsoft activation center](https://www.microsoft.com/licensing/existing-customer/activation-centers). ### KMS host keys -A KMS host needs a key that activates, or authenticates, the KMS host with Microsoft. This key is referred to as the *KMS host key*, but it's formally known as a *Microsoft Customer Specific Volume License Key* (CSVLK). Some documentation and Internet references use the term KMS key, but CSVLK is the proper name for current documentation and management tools. +A KMS host needs a key that activates, or authenticates, the KMS host with Microsoft. This key is referred to as the *KMS host key*, but it's formally known as a *Microsoft Customer Specific Volume License Key* (CSVLK). Some documentation and internet references use the term KMS key, but CSVLK is the proper name for current documentation and management tools. A KMS host running a currently supported version of Windows Server can activate both Windows Server and Windows client operating systems. A KMS host key is also needed to create the activation objects in ADDS, as described later in this guide. A KMS host key is needed for any KMS that is set up. Additionally, it needs to be determined if Active Directory-based activation will be used. @@ -274,4 +274,4 @@ The flow of KMS activation is shown in Figure 3, and it follows this sequence: ## Related content -- [Volume Activation for Windows](volume-activation-windows.md). +- [Volume activation for Windows](volume-activation-windows.md). diff --git a/windows/deployment/volume-activation/proxy-activation-vamt.md b/windows/deployment/volume-activation/proxy-activation-vamt.md index 57c242d69c..0d266aef27 100644 --- a/windows/deployment/volume-activation/proxy-activation-vamt.md +++ b/windows/deployment/volume-activation/proxy-activation-vamt.md @@ -1,30 +1,30 @@ --- -title: Perform Proxy Activation (Windows 10) -description: Perform proxy activation by using the Volume Activation Management Tool (VAMT) to activate client computers that don't have Internet access. +title: Run proxy activation +description: Run proxy activation by using the Volume Activation Management Tool (VAMT) to activate client computers that don't have internet access. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- -# Perform Proxy Activation +# Run proxy activation -You can use the Volume Activation Management Tool (VAMT) to perform activation for client computers that don't have Internet access. The client products can be installed with any type of product key that is eligible for proxy activation: Multiple activation Key (MAK), KMS Host key (CSVLK), or retail key. +You can use the Volume Activation Management Tool (VAMT) to run activation for client computers that don't have internet access. The client products can be installed with any type of product key that is eligible for proxy activation: Multiple activation Key (MAK), KMS Host key (CSVLK), or retail key. -In a typical proxy-activation scenario, the VAMT host computer distributes a MAK to one or more client computers and collects the installation ID (IID) from each computer. The VAMT host computer sends the IIDs to Microsoft on behalf of the client computers and obtains the corresponding Confirmation IDs (CIDs). The VAMT host computer then installs the CIDs on the client computer to complete the activation. Using this activation method, only the VAMT host computer needs Internet access. +In a typical proxy-activation scenario, the VAMT host computer distributes a MAK to one or more client computers and collects the installation ID (IID) from each computer. The VAMT host computer sends the IIDs to Microsoft on behalf of the client computers and obtains the corresponding Confirmation IDs (CIDs). The VAMT host computer then installs the CIDs on the client computer to complete the activation. Using this activation method, only the VAMT host computer needs internet access. > [!NOTE] -> For workgroups that are completely isolated from any larger network, you can still perform MAK, KMS Host key (CSVLK), or retail proxy activation. This requires installing a second instance of VAMT on a computer within the isolated group and using removable media to transfer activation data between that computer and another VAMT host computer that has Internet access. For more information about this scenario, see [Scenario 2: Proxy Activation](scenario-proxy-activation-vamt.md). Similarly, you can proxy activate a KMS Host key (CSVLK) located in an isolated network. You can also proxy activate a KMS Host key (CSVLK) in the core network if you do not want the KMS host computer to connect to Microsoft over the Internet. +> For workgroups that are completely isolated from any larger network, you can still run MAK, KMS Host key (CSVLK), or retail proxy activation. This requires installing a second instance of VAMT on a computer within the isolated group and using removable media to transfer activation data between that computer and another VAMT host computer that has internet access. For more information about this scenario, see [Scenario 2: Proxy Activation](scenario-proxy-activation-vamt.md). Similarly, you can proxy activate a KMS Host key (CSVLK) located in an isolated network. You can also proxy activate a KMS Host key (CSVLK) in the core network if you do not want the KMS host computer to connect to Microsoft over the internet. ## Requirements -Before performing proxy activation, ensure that your network and the VAMT installation meet the following requirements: +Before running proxy activation, ensure that your network and the VAMT installation meet the following requirements: -- There's an instance of VAMT that is installed on a computer that has Internet access. If you're performing proxy activation for an isolated workgroup, you also need to have VAMT installed on one of the computers in the workgroup. +- There's an instance of VAMT that is installed on a computer that has internet access. If you're running proxy activation for an isolated workgroup, you also need to have VAMT installed on one of the computers in the workgroup. - The products to be activated have been added to VAMT and are installed with a retail product key, a KMS Host key (CSVLK) or a MAK. If the products haven't been installed with a proper product key, refer to the steps in the [Add and Remove a Product Key](add-remove-product-key-vamt.md) section for instructions on how to install a product key. @@ -32,9 +32,9 @@ Before performing proxy activation, ensure that your network and the VAMT instal - For workgroup computers, a registry key must be created to enable remote administrative actions under User Account Control (UAC). For more information, see [Configure client computers](configure-client-computers-vamt.md). - The product keys that are installed on the client products must have a sufficient number of remaining activations. If you're activating a MAK key, you can retrieve the remaining number of activations for that key by selecting the MAK in the product key list in the center pane and then clicking **Refresh product key data online** in the right-side pane. This action retrieves the number of remaining activations for the MAK from Microsoft. This step requires Internet access and that the remaining activation count can only be retrieved for MAKs. + The product keys that are installed on the client products must have a sufficient number of remaining activations. If you're activating a MAK key, you can retrieve the remaining number of activations for that key by selecting the MAK in the product key list in the center pane and then clicking **Refresh product key data online** in the right-side pane. This action retrieves the number of remaining activations for the MAK from Microsoft. This step requires internet access and that the remaining activation count can only be retrieved for MAKs. -## To Perform Proxy Activation +## To run proxy activation 1. Open VAMT. @@ -66,3 +66,11 @@ Before performing proxy activation, ensure that your network and the VAMT instal > [!NOTE] You can use proxy activation to select products that have different key types and activate the products at the same time. + +## Related articles + +[Run online activation](online-activation-vamt.md) + +[Run KMS activation](kms-activation-vamt.md) + +[Run local reactivation](local-reactivation-vamt.md) diff --git a/windows/deployment/volume-activation/remove-products-vamt.md b/windows/deployment/volume-activation/remove-products-vamt.md index cad9428d5a..f8fb84dc37 100644 --- a/windows/deployment/volume-activation/remove-products-vamt.md +++ b/windows/deployment/volume-activation/remove-products-vamt.md @@ -1,13 +1,13 @@ --- -title: Remove Products (Windows 10) +title: Remove products description: Learn how you must delete products from the product list view so you can remove products from the Volume Activation Management Tool (VAMT). +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- @@ -37,4 +37,6 @@ To remove one or more products from the Volume Activation Management Tool (VAMT) ## Related articles -- [Add and Manage Products](add-manage-products-vamt.md) +[Add and remove computers](add-remove-computers-vamt.md) + +[Update product status](update-product-status-vamt.md) diff --git a/windows/deployment/volume-activation/scenario-kms-activation-vamt.md b/windows/deployment/volume-activation/scenario-kms-activation-vamt.md index 4ba48b833b..1d99684233 100644 --- a/windows/deployment/volume-activation/scenario-kms-activation-vamt.md +++ b/windows/deployment/volume-activation/scenario-kms-activation-vamt.md @@ -1,19 +1,19 @@ --- -title: Scenario 3 KMS Client Activation (Windows 10) +title: Scenario 3 - KMS client activation description: Learn how to use the Volume Activation Management Tool (VAMT) to activate Key Management Service (KMS) client keys or Generic Volume License Keys (GVLKs). +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- # Scenario 3: KMS client activation -In this scenario, you use the Volume Activation Management Tool (VAMT) to activate Key Management Service (KMS) client keys or Generic Volume License Keys (GVLKs). This type of activation can be performed on either Core Network or Isolated Lab computers. By default, volume license editions of Windows Vista, Windows® 7, Windows 8, Windows 10, Windows Server 2008, Windows Server 2008 R2, Windows Server® 2012, and Microsoft® Office 2010 use KMS for activation. GVLKs are already installed in volume license editions of these products. You don't have to enter a key to activate a product as a GVLK, unless you're converting a MAK-activated product to a KMS activation. For more information, see [Install a KMS Client Key](install-kms-client-key-vamt.md). +In this scenario, you use the Volume Activation Management Tool (VAMT) to activate Key Management Service (KMS) client keys or Generic Volume License Keys (GVLKs). This type of activation can be performed on either Core Network or Isolated Lab computers. By default, volume license editions of Windows Vista, Windows® 7, Windows 8, Windows 10, Windows Server 2008, Windows Server 2008 R2, Windows Server® 2012, and Microsoft® Office 2010 use KMS for activation. GVLKs are already installed in volume license editions of these products. You don't have to enter a key to activate a product as a GVLK, unless you're converting a MAK-activated product to a KMS activation. For more information, see [Install a KMS client key](install-kms-client-key-vamt.md). The procedure that is described below assumes the following configuration: @@ -56,4 +56,8 @@ The same status is shown under the **Status of Last Action** column in the produ ## Related articles -- [VAMT step-by-step scenarios](vamt-step-by-step.md) +[Run KMS activation](kms-activation-vamt.md) + +[Activate using Key Management Service](activate-using-key-management-service-vamt.md) + +[Install a KMS client key](install-kms-client-key-vamt.md) diff --git a/windows/deployment/volume-activation/scenario-online-activation-vamt.md b/windows/deployment/volume-activation/scenario-online-activation-vamt.md index 7af76c4c7a..03d969a3eb 100644 --- a/windows/deployment/volume-activation/scenario-online-activation-vamt.md +++ b/windows/deployment/volume-activation/scenario-online-activation-vamt.md @@ -1,17 +1,17 @@ --- -title: Scenario 1 Online Activation (Windows 10) +title: Scenario 1 - online activation description: Achieve network access by deploying the Volume Activation Management Tool (VAMT) in a Core Network environment. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- -# Scenario 1: Online Activation +# Scenario 1: online activation In this scenario, the Volume Activation Management Tool (VAMT) is deployed in the Core Network environment. VAMT is installed on a central computer that has network access to all of the client computers. Both the VAMT host and the client computers have Internet access. The following illustration shows a diagram of an online activation scenario for Multiple Activation Keys (MAKs). You can use this scenario for online activation of the following key types: @@ -36,10 +36,10 @@ The Secure Zone represents higher-security Core Network computers that have addi ## Step 2: Configure the Windows Management Instrumentation firewall exception on target computers -- Ensure that the Windows Management Instrumentation (WMI) firewall exception has been enabled for all target computers. For more information, see [Configure Client Computers](configure-client-computers-vamt.md). +- Ensure that the Windows Management Instrumentation (WMI) firewall exception has been enabled for all target computers. For more information, see [Configure client computers](configure-client-computers-vamt.md). > [!NOTE] - > To retrieve product license status, VAMT must have administrative permissions on the remote computers and WMI must be available through the Windows Firewall. In addition, for workgroup computers, a registry key must be created to enable remote administrative actions under User Account Control (UAC). For more information, see [Configure Client Computers](configure-client-computers-vamt.md). + > To retrieve product license status, VAMT must have administrative permissions on the remote computers and WMI must be available through the Windows Firewall. In addition, for workgroup computers, a registry key must be created to enable remote administrative actions under User Account Control (UAC). For more information, see [Configure client computers](configure-client-computers-vamt.md). ## Step 3: Connect to a VAMT database @@ -47,7 +47,7 @@ The Secure Zone represents higher-security Core Network computers that have addi 2. Select **Connect**. -3. If you're already connected to a database, VAMT displays an inventory of the products and product keys in the center pane, and a license overview of the computers in the database. If you need to connect to a different database, select **Successfully connected to Server** to open **the Database Connection Settings** dialog box. For more information about how to create VAMT databases and adding VAMT data, see [Manage VAMT Data](manage-vamt-data.md) +3. If you're already connected to a database, VAMT displays an inventory of the products and product keys in the center pane, and a license overview of the computers in the database. If you need to connect to a different database, select **Successfully connected to Server** to open **the Database Connection Settings** dialog box. For more information about how to create VAMT databases and adding VAMT data, see [Import and export VAMT data](import-export-vamt-data.md). ## Step 4: Discover products @@ -57,11 +57,11 @@ The Secure Zone represents higher-security Core Network computers that have addi 3. In the **Discover Products** dialog box, select **Search for computers in the Active Directory** to display the search options, and then select the search options that you want to use. You can search for computers in an Active Directory domain, by individual computer name or IP address, in a workgroup, or by a general Lightweight Directory Access Protocol (LDAP) query: - - To search for computers in an Active Directory domain, select **Search for computers in the Active Directory**. Then under **Domain Filter Criteria**, in the list of domain names select the name of the domain that you want to search. You can narrow the search further by typing a name in the **Filter by computer name** field to search for specific computers in the domain. This filter supports the asterisk (\*) wildcard. For example, typing "a\*" will display only those computer names that start with the letter "a". + - To search for computers in an Active Directory domain, select **Search for computers in the Active Directory**. Then under **Domain Filter Criteria**, in the list of domain names select the name of the domain that you want to search. You can narrow the search further by typing a name in the **Filter by computer name** field to search for specific computers in the domain. This filter supports the asterisk (`*`) wildcard. For example, typing `a*` will display only those computer names that start with the letter "a". - To search by individual computer name or IP address, select **Manually enter name or IP address**. Then enter the full name or IP address in the **One or more computer names or IP addresses separated by commas** text box. Separate multiple entries with a comma. VAMT supports both IPv4 and IPV6 addressing. - - To search for computers in a workgroup, select **Search for computers in the workgroup**. Then under **Workgroup Filter Criteria**, in the list of workgroup names, select the name of the workgroup that you want to search. You can narrow the search further by typing a name in the **Filter by computer name** field to search for a specific computer in the workgroup. This filter supports the asterisk (\*) wildcard. For example, typing "a\*" will display only computer names that start with the letter "a". + - To search for computers in a workgroup, select **Search for computers in the workgroup**. Then under **Workgroup Filter Criteria**, in the list of workgroup names, select the name of the workgroup that you want to search. You can narrow the search further by typing a name in the **Filter by computer name** field to search for a specific computer in the workgroup. This filter supports the asterisk (`*`) wildcard. For example, typing `a*` will display only computer names that start with the letter "a". - To search for computers by using a general LDAP query, select **Search with LDAP query** and enter your query in the text box that appears. VAMT will validate the LDAP query syntax, but will otherwise run the query without additional checks. @@ -101,7 +101,7 @@ To collect the status from select computers in the database, you can select comp - VAMT displays the **Collecting product information** dialog box while it collects the license status of all supported products on the selected computers. When the process is finished, the updated license status of each product will appear in the product list view in the center pane. - > [!NOTE] + > [!NOTE] > If a computer has more than one supported product installed, VAMT adds an entry for each product. The entry appears under the appropriate product heading. ## Step 7: Add product keys and determine the remaining activation count @@ -156,4 +156,4 @@ To collect the status from select computers in the database, you can select comp ## Related articles -- [VAMT Step-by-Step Scenarios](vamt-step-by-step.md) +[Run online activation](online-activation-vamt.md) diff --git a/windows/deployment/volume-activation/scenario-proxy-activation-vamt.md b/windows/deployment/volume-activation/scenario-proxy-activation-vamt.md index 74a59bbd9d..167e5b1693 100644 --- a/windows/deployment/volume-activation/scenario-proxy-activation-vamt.md +++ b/windows/deployment/volume-activation/scenario-proxy-activation-vamt.md @@ -1,34 +1,34 @@ --- -title: Scenario 2 Proxy Activation (Windows 10) +title: Scenario 2 - proxy activation description: Use the Volume Activation Management Tool (VAMT) to activate products that are installed on workgroup computers in an isolated lab environment. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- -# Scenario 2: Proxy Activation +# Scenario 2: proxy activation -In this scenario, the Volume Activation Management Tool (VAMT) is used to activate products that are installed on workgroup computers in an isolated lab environment. For workgroups that are isolated from the larger network, you can perform proxy activation of Multiple Activation Keys (MAKs), KMS Host keys (CSVLKs), Generic Volume License Keys (GVLKs) (or KMS client keys), or retail keys. Proxy activation is performed by installing a second instance of VAMT on a computer in the isolated workgroup. You can then use removable media to transfer VAMT Computer Information Lists (CILXs) between the instance of VAMT in the isolated workgroup and another VAMT host that has Internet access. The following diagram shows a Multiple Activation Key (MAK) proxy activation scenario: +In this scenario, the Volume Activation Management Tool (VAMT) is used to activate products that are installed on workgroup computers in an isolated lab environment. For workgroups that are isolated from the larger network, you can perform proxy activation of Multiple Activation Keys (MAKs), KMS Host keys (CSVLKs), Generic Volume License Keys (GVLKs) (or KMS client keys), or retail keys. Proxy activation is performed by installing a second instance of VAMT on a computer in the isolated workgroup. You can then use removable media to transfer VAMT Computer Information Lists (CILXs) between the instance of VAMT in the isolated workgroup and another VAMT host that has internet access. The following diagram shows a Multiple Activation Key (MAK) proxy activation scenario: ![VAMT MAK proxy activation scenario.](images/dep-win8-l-vamt-makproxyactivationscenario.jpg) -## Step 1: Install VAMT on a Workgroup Computer in the Isolated Lab +## Step 1: Install VAMT on a workgroup computer in the isolated lab 1. Install VAMT on a host computer in the isolated lab workgroup. This computer can be running Windows 7, Windows 8, Windows 10, Windows Server 2008 R2, or Windows Server® 2012. 2. Select the VAMT icon in the **Start** menu to open VAMT. -## Step 2: Configure the Windows Management Instrumentation Firewall Exception on target computers +## Step 2: Configure the Windows Management Instrumentation firewall exception on target computers -- Ensure that the Windows Management Instrumentation (WMI) firewall exception has been enabled for all target computers. For more information, see [Configure Client Computers](configure-client-computers-vamt.md). +- Ensure that the Windows Management Instrumentation (WMI) firewall exception has been enabled for all target computers. For more information, see [Configure client computers](configure-client-computers-vamt.md). > [!NOTE] - > To retrieve the license status on the selected computers, VAMT must have administrative permissions on the remote computers and WMI must be accessible through the Windows Firewall. In addition, for workgroup computers, a registry key must be created to enable remote administrative actions under User Account Control (UAC). For more information, see [Configure Client Computers](configure-client-computers-vamt.md). + > To retrieve the license status on the selected computers, VAMT must have administrative permissions on the remote computers and WMI must be accessible through the Windows Firewall. In addition, for workgroup computers, a registry key must be created to enable remote administrative actions under User Account Control (UAC). For more information, see [Configure client computers](configure-client-computers-vamt.md). ## Step 3: Connect to a VAMT database @@ -36,7 +36,7 @@ In this scenario, the Volume Activation Management Tool (VAMT) is used to activa 2. Select **Connect**. -3. If you're already connected to a database, in the center pane VAMT displays an inventory of the products and product keys, and a license overview of the computers in the database. If you need to connect to a different database, select **Successfully connected to the Server** to open the **Database Connection Settings** dialog box. For more information about how to create VAMT databases and adding VAMT data, see [Manage VAMT Data.](manage-vamt-data.md) +3. If you're already connected to a database, in the center pane VAMT displays an inventory of the products and product keys, and a license overview of the computers in the database. If you need to connect to a different database, select **Successfully connected to the Server** to open the **Database Connection Settings** dialog box. For more information about how to create VAMT databases and adding VAMT data, see [Import and export Volume Activation Management Tool data](import-export-vamt-data.md). ## Step 4: Discover products @@ -46,7 +46,7 @@ In this scenario, the Volume Activation Management Tool (VAMT) is used to activa 3. In the **Discover Products** dialog box, select **Search for computers in the Active Directory** to display the search options, and then select the search options that you want to use. You can search for computers in an Active Directory domain, by individual computer name or IP address, in a workgroup, or by a general LDAP query: - - To search for computers in an Active Directory domain, select **Search for computers in the Active Directory**. Then under **Domain Filter Criteria**, in the list of domain names, select the name of the domain that you want to search. You can narrow the search further by typing a name in the **Filter by computer name** field to search for specific computers in the domain. This filter supports the asterisk (\*) wildcard. For example, typing "a\*" will display only computer names that start with the letter "a". + - To search for computers in an Active Directory domain, select **Search for computers in the Active Directory**. Then under **Domain Filter Criteria**, in the list of domain names, select the name of the domain that you want to search. You can narrow the search further by typing a name in the **Filter by computer name** field to search for specific computers in the domain. This filter supports the asterisk (`*`) wildcard. For example, typing `a*` will display only computer names that start with the letter "a". - To search by individual computer name or IP address, select **Manually enter name or IP address**. Then enter the full name or IP address in the **One or more computer names or IP addresses separated by commas** text box. Separate multiple entries with a comma. Both IPv4 and IPv6addressing are supported. @@ -91,10 +91,10 @@ To collect the status from select computers in the database, you can select comp - VAMT displays the **Collecting product information** dialog box while it collects the license status of all supported products on the selected computers. When the process is finished, the updated license status of each product will appear in the product list view in the center pane. - > [!NOTE] + > [!NOTE] > If a computer has more than one supported product installed, VAMT adds an entry for each product. The entry appears under the appropriate product heading. -## Step 7: Add Product Keys +## Step 7: Add product keys 1. Select the **Product Keys** node in the left-side pane, and then select **Add Product Keys** in the right-side pane to open the **Add Product Keys** dialog box. @@ -106,7 +106,7 @@ To collect the status from select computers in the database, you can select comp The keys that you have added appear in the **Product Keys** list view in the center pane. -## Step 8: Install the Product Keys on the Isolated Lab Computers +## Step 8: Install the product keys on the isolated lab computers 1. In the left-side pane, in the **Products** node select the product that you want to install keys onto. @@ -130,7 +130,7 @@ To collect the status from select computers in the database, you can select comp ## Step 9: Export VAMT data to a `.cilx` file -In this step, you export VAMT from the workgroup's host computer and save it in a `.cilx` file. Then you copy the `.cilx` file to removable media so that you can take it to a VAMT host computer that is connected to the Internet. In MAK proxy activation, it's critical to retain this file, because VAMT uses it to apply the Confirmation IDs (CIDs) to the proper products. +In this step, you export VAMT from the workgroup's host computer and save it in a `.cilx` file. Then you copy the `.cilx` file to removable media so that you can take it to a VAMT host computer that is connected to the internet. In MAK proxy activation, it's critical to retain this file, because VAMT uses it to apply the Confirmation IDs (CIDs) to the proper products. 1. Select the individual products that successfully received a product key in Step 8. If needed, sort and filter the list to find the products. @@ -157,7 +157,7 @@ In this step, you export VAMT from the workgroup's host computer and save it in ## Step 10: Acquire confirmation IDs from Microsoft on the internet connected host computer -1. Insert the removable media into the VAMT host that has Internet access. +1. Insert the removable media into the VAMT host that has internet access. 2. Open VAMT. Make sure you are on the root node, and that the **Volume Activation Management Tool** view is displayed in the center pane. @@ -167,9 +167,9 @@ In this step, you export VAMT from the workgroup's host computer and save it in 5. When the CID collection process is complete, VAMT displays a **Volume Activation Management Tool** message that shows the number of confirmation IDs that were successfully acquired, and the name of the file where the IDs were saved. Select **OK** to close the message. -## Step 11: Import the `.cilx` file onto the VAMT host within the Isolated lab workgroup +## Step 11: Import the `.cilx` file onto the VAMT host within the isolated lab workgroup -1. Remove the storage device that contains the `.cilx` file from the Internet-connected VAMT host computer and insert it into the VAMT host computer in the isolated lab. +1. Remove the storage device that contains the `.cilx` file from the internet-connected VAMT host computer and insert it into the VAMT host computer in the isolated lab. 2. Open VAMT and verify that you're connected to the database that contains the computer with the product keys that you're activating. @@ -181,7 +181,7 @@ In this step, you export VAMT from the workgroup's host computer and save it in 6. VAMT displays a progress message while the data is being imported. Select **OK** when a message appears and confirms that the data has been successfully imported. -## Step 12: Apply the CIDs and Activate the Isolated Lab Computers +## Step 12: Apply the CIDs and activate the isolated lab computers 1. Select the products to which you want to apply CIDs. If needed, sort and filter the list to find the products. @@ -190,7 +190,7 @@ In this step, you export VAMT from the workgroup's host computer and save it in VAMT displays the **Applying Confirmation Id** dialog box while it installs the CIDs on the selected products. When VAMT finishes installing the CIDs, the status appears in the **Action Status** column of the dialog box. Select **Close** to close the dialog box. You can also select the **Automatically close when done** check box when the dialog box appears. The same status appears under the **Status of Last Action** column in the product list view in the center pane. -## Step 13: (Optional) Reactivating Reimaged Computers in the Isolated Lab +## Step 13: (Optional) Reactivating reimaged computers in the isolated lab If you have captured new images of the computers in the isolated lab, but the underlying hardware of those computers hasn't changed, VAMT can reactivate those computers using the CIDs that are stored in the database. @@ -213,4 +213,4 @@ If you have captured new images of the computers in the isolated lab, but the un ## Related articles -- [VAMT Step-by-Step Scenarios](vamt-step-by-step.md) +[Run proxy activation](proxy-activation-vamt.md) diff --git a/windows/deployment/volume-activation/update-product-status-vamt.md b/windows/deployment/volume-activation/update-product-status-vamt.md index f47584757f..b28a561baf 100644 --- a/windows/deployment/volume-activation/update-product-status-vamt.md +++ b/windows/deployment/volume-activation/update-product-status-vamt.md @@ -1,20 +1,20 @@ --- -title: Update Product Status +title: Update product status description: Learn how to use the Update license status function to add the products that are installed on the computers. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 03/29/2024 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- # Update product status After computers are added to the Volume Activation Management Tool (VAMT) database, the **Update license status** function needs to be used to add the products that are installed on the computers. The **Update license status** can also be used at any time to retrieve the most current license status for any products in the VAMT database. -To retrieve license status, VAMT must have administrative permissions on all selected computers and Windows Management Instrumentation (WMI) must be accessible through the Windows Firewall. In addition, for workgroup computers, a registry key must be created to enable remote administrative actions under User Account Control (UAC). For more information, see [Configure Client Computers](configure-client-computers-vamt.md). +To retrieve license status, VAMT must have administrative permissions on all selected computers and Windows Management Instrumentation (WMI) must be accessible through the Windows Firewall. In addition, for workgroup computers, a registry key must be created to enable remote administrative actions under User Account Control (UAC). For more information, see [Configure client computers](configure-client-computers-vamt.md). > [!NOTE] > The license-status query requires a valid computer name for each system queried. If the VAMT database contains computers that were added without Personally Identifiable Information, computer names will not be available for those computers, and the status for these computers will not be updated. @@ -37,4 +37,6 @@ To retrieve license status, VAMT must have administrative permissions on all sel ## Related content -- [Add and Manage Products](add-manage-products-vamt.md). +[Add and remove computers](add-remove-computers-vamt.md) + +[Remove products](remove-products-vamt.md) diff --git a/windows/deployment/volume-activation/use-the-volume-activation-management-tool-client.md b/windows/deployment/volume-activation/use-the-volume-activation-management-tool-client.md index 3e1e4a1657..3b7ff4e572 100644 --- a/windows/deployment/volume-activation/use-the-volume-activation-management-tool-client.md +++ b/windows/deployment/volume-activation/use-the-volume-activation-management-tool-client.md @@ -1,14 +1,14 @@ --- title: Use the Volume Activation Management Tool description: The Volume Activation Management Tool (VAMT) provides several useful features, including the ability to track and monitor several types of product keys. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.localizationpriority: medium ms.date: 03/29/2024 -ms.topic: conceptual +ms.topic: concept-article +ms.service: windows-client ms.subservice: itpro-fundamentals appliesto: - ✅ Windows 11 @@ -24,8 +24,8 @@ appliesto: > > Looking for information on retail activation? > -> - [Activate Windows](https://support.microsoft.com/help/12440/). -> - [Product activation for Windows](https://go.microsoft.com/fwlink/p/?LinkId=618644). +> - [Activate Windows](https://support.microsoft.com/windows/activate-windows-c39005d4-95ee-b91e-b399-2820fda32227). +> - [Product activation for Windows](https://support.microsoft.com/windows/product-activation-for-windows-online-support-telephone-numbers-35f6a805-1259-88b4-f5e9-b52cccef91a0). The Volume Activation Management Tool (VAMT) provides several useful features, including the ability to perform VAMT proxy activation and to track and monitor several types of product keys. @@ -35,7 +35,7 @@ For currently supported versions of Windows Server, VAMT can be installed direct For currently supported versions of Windows client, VAMT can be installed as part of the Windows Assessment and Deployment Kit (Windows ADK). The Windows ADK is a free download. For more information, including links to download the Windows ADK, see [Download and install the Windows ADK](/windows-hardware/get-started/adk-install). -## Activating with the Volume Activation Management Tool +## Activate with VAMT VAMT can be used to complete the activation process in products by using MAK and retail keys. Computers can be activated either individually or in groups. The VAMT enables two activation scenarios: @@ -45,7 +45,7 @@ VAMT can be used to complete the activation process in products by using MAK and When this method is used, only the VAMT host computer requires Internet access. Proxy activation by using the VAMT is beneficial for isolated network segments and for cases where the organization has a mix of retail, MAK, and KMS-based activations. -## Tracking products and computers with the Volume Activation Management Tool +## Track products and computers The VAMT provides an overview of the activation and licensing status of computers across an organization's network, as shown in Figure 18. Several prebuilt reports are also available to help proactively manage licensing. @@ -53,7 +53,7 @@ The VAMT provides an overview of the activation and licensing status of computer **Figure 18**. The VAMT showing the licensing status of multiple computers -## Tracking key usage with the Volume Activation Management Tool +## Track key usage The VAMT makes it easier to track the various keys that are issued to an organization. Each key can be entered into VAMT, and then the VAMT can use those keys for online or proxy activation of clients. The tool can also describe what type of key it's and to which product group it belongs. The VAMT is the most convenient way to quickly determine how many activations remain on a MAK. Figure 19 shows an example of key types and usage. @@ -61,7 +61,7 @@ The VAMT makes it easier to track the various keys that are issued to an organiz **Figure 19**. The VAMT showing key types and usage -## Other Volume Activation Management Tool features +## Other features The VAMT stores information in a Microsoft SQL Server database for performance and flexibility, and it provides a single graphical user interface for managing activations and performing other activation-related tasks, such as: @@ -74,7 +74,6 @@ The VAMT stores information in a Microsoft SQL Server database for performance a For more information, see: - [Volume Activation Management Tool (VAMT) Overview](./volume-activation-management-tool.md). -- [VAMT Step-by-Step Scenarios](./vamt-step-by-step.md). ## Related content diff --git a/windows/deployment/volume-activation/use-vamt-in-windows-powershell.md b/windows/deployment/volume-activation/use-vamt-in-windows-powershell.md index b9633b62d2..3a0a898af4 100644 --- a/windows/deployment/volume-activation/use-vamt-in-windows-powershell.md +++ b/windows/deployment/volume-activation/use-vamt-in-windows-powershell.md @@ -1,13 +1,13 @@ --- -title: Use VAMT in Windows PowerShell (Windows 10) +title: Use VAMT in Windows PowerShell description: Learn how to use Volume Activation Management Tool (VAMT) PowerShell cmdlets to perform the same functions as the Vamt.exe command-line tool. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: how-to +ms.service: windows-client ms.subservice: itpro-fundamentals --- @@ -19,27 +19,23 @@ The Volume Activation Management Tool (VAMT) PowerShell cmdlets can be used to p ### Install PowerShell 3.0 -VAMT PowerShell cmdlets require Windows PowerShell, which is included in Windows 10, Windows 8 and Windows Server® 2012. You can download PowerShell for Windows 7 or other operating systems from the [Microsoft Download Center](/powershell/scripting/install/installing-powershell). +VAMT PowerShell cmdlets require Windows PowerShell, which is included in Windows 10 and later. To download the latest version of PowerShell, see [Installing PowerShell on Windows](/powershell/scripting/install/installing-powershell). -### Install the Windows Assessment and Deployment Kit** +### Install the Windows Assessment and Deployment Kit -In addition to PowerShell, you must import the VAMT PowerShell module. The module is included in the VAMT 3.0 folder after you install the Windows Assessment and Deployment Kit (Windows ADK). +In addition to PowerShell, you must import the VAMT PowerShell module. The module is included in the VAMT 3.0 folder after you install the [Windows Assessment and Deployment Kit (Windows ADK)](/windows-hardware/get-started/adk-install). ### Prepare the VAMT PowerShell environment To open PowerShell with administrative credentials, select **Start** and enter `PowerShell` to locate the program. Right-click **Windows PowerShell**, and then select **Run as administrator**. To open PowerShell in Windows 7, select **Start**, select **All Programs**, select **Accessories**, select **Windows PowerShell**, right-click **Windows PowerShell**, and then select **Run as administrator**. - > [!IMPORTANT] + > [!IMPORTANT] > If you are using a computer that has an 64-bit processor, select **Windows PowerShell (x86)**. VAMT PowerShell cmdlets are only supported for x86 architecture. You must use an x86 version of Windows PowerShell to import the VAMT module - + The x86 versions of Windows PowerShell are available in the following directories: -- PowerShell: - - `C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe` -- PowerShell ISE: - - `C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exe` +- PowerShell: `C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe` +- PowerShell ISE: `C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exe` For all supported operating systems, you can use the VAMT PowerShell module included with the Windows ADK. By default, the module is installed with the Windows ADK in the VAMT folder. Change directories to the directory where VAMT is located. For example, if the Windows ADK is installed in the default location of `C:\Program Files(x86)\Windows Kits\10`, enter: @@ -85,7 +81,7 @@ get-help get-VamtProduct -all For example, enter: ```powershell - get-help get-VamtProduct + get-help get-VamtProduct ``` 2. To see examples using a cmdlet, enter: diff --git a/windows/deployment/volume-activation/vamt-known-issues.md b/windows/deployment/volume-activation/vamt-known-issues.md index 5244254c65..60a69603fb 100644 --- a/windows/deployment/volume-activation/vamt-known-issues.md +++ b/windows/deployment/volume-activation/vamt-known-issues.md @@ -1,13 +1,13 @@ --- -title: VAMT known issues (Windows 10) +title: VAMT known issues description: Find out the current known issues with the Volume Activation Management Tool (VAMT), versions 3.0. and 3.1. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 11/07/2022 -ms.topic: conceptual +ms.topic: concept-article +ms.service: windows-client ms.subservice: itpro-fundamentals --- @@ -54,17 +54,17 @@ On the KMS host computer, perform the following steps: ``` 5. In the - + `C:\KB3058168\x86_microsoft-windows-s..nent-sku-csvlk-pack_31bf3856ad364e35_6.3.9600.17815_none_bd26b4f34d049716` - + folder, copy the - + `pkeyconfig-csvlk.xrm-ms` - + file. Paste this file into the - + `C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\VAMT3\pkconfig` - + folder. 6. Restart VAMT. diff --git a/windows/deployment/volume-activation/vamt-requirements.md b/windows/deployment/volume-activation/vamt-requirements.md index 8b82d6ae68..1c9c294528 100644 --- a/windows/deployment/volume-activation/vamt-requirements.md +++ b/windows/deployment/volume-activation/vamt-requirements.md @@ -1,13 +1,13 @@ --- -title: VAMT Requirements -description: In this article, learn about the product key and system requirements for Volume Activation Management Tool (VAMT). +title: VAMT requirements +description: Learn about the product key and system requirements for Volume Activation Management Tool (VAMT). +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.date: 03/29/2024 -ms.topic: conceptual +ms.topic: concept-article +ms.service: windows-client ms.subservice: itpro-fundamentals --- @@ -21,7 +21,7 @@ The Volume Activation Management Tool (VAMT) can be used to perform activations |Product key type |Where to obtain | |-----------------|----------------| -|
    • Multiple Activation Key (MAK)
    • Key Management Service (KMS) host key (CSVLK)
    • KMS client setup keys (GVLK)
    |Volume licensing keys can only be obtained with a signed contract from Microsoft. For more info, see the [Microsoft Volume Licensing portal](https://go.microsoft.com/fwlink/p/?LinkId=227282). | +|
    • Multiple Activation Key (MAK)
    • Key Management Service (KMS) host key (CSVLK)
    • KMS client setup keys (GVLK)
    |Volume licensing keys can only be obtained with a signed contract from Microsoft. For more information, see the [Microsoft Volume Licensing portal](https://admin.microsoft.com/adminportal/home#/subscriptions/vlnew). | |Retail product keys |Obtained at time of product purchase. | ## System requirements @@ -41,4 +41,6 @@ The following table lists the system requirements for the VAMT host computer. ## Related content -- [Install and configure VAMT](install-configure-vamt.md). +[Install VAMT](install-vamt.md) + +[Configure client computers](configure-client-computers-vamt.md) diff --git a/windows/deployment/volume-activation/vamt-step-by-step.md b/windows/deployment/volume-activation/vamt-step-by-step.md deleted file mode 100644 index 375ebad9fa..0000000000 --- a/windows/deployment/volume-activation/vamt-step-by-step.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: VAMT Step-by-Step Scenarios -description: Learn step-by-step instructions on implementing the Volume Activation Management Tool (VAMT) in typical environments. -ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj -ms.date: 03/29/2024 -ms.topic: conceptual -ms.subservice: itpro-fundamentals ---- - -# VAMT step-by-step scenarios - -This section provides instructions on how to implement the Volume Activation Management Tool (VAMT) in typical environments. VAMT supports many common scenarios. To get started, some of the most common scenarios are described here. - -## In this section - -|Article |Description | -|-------|------------| -|[Scenario 1: Online Activation](scenario-online-activation-vamt.md) |Describes how to distribute Multiple Activation Keys (MAKs) to products installed on one or more connected computers within a network. Additionally, it also describes how to instruct these products to contact Microsoft over the Internet for activation. | -|[Scenario 2: Proxy Activation](scenario-proxy-activation-vamt.md) |Describes how to use two VAMT host computers—the first one with Internet access and a second computer within an isolated workgroup—as proxies to perform MAK volume activation for workgroup computers that don't have Internet access. | -|[Scenario 3: Key Management Service (KMS) Client Activation](scenario-kms-activation-vamt.md) |Describes how to use VAMT to configure client products for Key Management Service (KMS) activation. By default, volume license editions of currently supported versions of Windows and Microsoft Office use KMS for activation. | - -## Related content - -- [Introduction to VAMT](introduction-vamt.md). diff --git a/windows/deployment/volume-activation/volume-activation-management-tool.md b/windows/deployment/volume-activation/volume-activation-management-tool.md index 396e2a74e2..5d8233348d 100644 --- a/windows/deployment/volume-activation/volume-activation-management-tool.md +++ b/windows/deployment/volume-activation/volume-activation-management-tool.md @@ -1,12 +1,12 @@ --- title: VAMT technical reference description: The Volume Activation Management Tool (VAMT) enables network administrators to automate and centrally manage volume activation and retail activation. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj ms.service: windows-client ms.subservice: itpro-fundamentals -author: frankroj ms.date: 03/29/2024 ms.topic: overview --- @@ -21,16 +21,6 @@ The Volume Activation Management Tool (VAMT) allows automation and central manag VAMT is only available in an EN-US (x86) package. -## In this section +## Next steps -|Article |Description | -|------|------------| -|[Introduction to VAMT](introduction-vamt.md) |Provides a description of VAMT and common usages. | -|[Active Directory-based activation overview](active-directory-based-activation-overview.md) |Describes Active Directory-based activation scenarios. | -|[Install and configure VAMT](install-configure-vamt.md) |Describes how to install VAMT and use it to configure client computers in the network. | -|[Add and manage products](add-manage-products-vamt.md) |Describes how to add client computers into VAMT. | -|[Manage product keys](manage-product-keys-vamt.md) |Describes how to add and remove a product key from VAMT. | -|[Manage activations](manage-activations-vamt.md) |Describes how to activate a client computer by using various activation methods. | -|[Manage VAMT data](manage-vamt-data.md) |Describes how to save, import, export, and merge a Computer Information List (CILX) file using VAMT. | -|[VAMT step-by-step scenarios](vamt-step-by-step.md) |Provides step-by-step instructions for using VAMT in typical environments. | -|[VAMT known issues](vamt-known-issues.md) |Lists known issues in VAMT. | +[Introduction to VAMT](introduction-vamt.md) diff --git a/windows/deployment/volume-activation/volume-activation-windows.md b/windows/deployment/volume-activation/volume-activation-windows.md index 701785bf9e..ca9a9b6811 100644 --- a/windows/deployment/volume-activation/volume-activation-windows.md +++ b/windows/deployment/volume-activation/volume-activation-windows.md @@ -1,14 +1,14 @@ --- -title: Volume Activation for Windows +title: Volume activation for Windows description: Learn how to use volume activation to deploy & activate Windows. +ms.author: kaushika +author: kaushika-msft +manager: cshepard ms.reviewer: nganguly -manager: aaroncz -ms.author: frankroj -ms.service: windows-client -author: frankroj ms.localizationpriority: medium ms.date: 03/29/2024 -ms.topic: conceptual +ms.topic: overview +ms.service: windows-client ms.subservice: itpro-fundamentals appliesto: - ✅ Windows 11 @@ -18,7 +18,7 @@ appliesto: - ✅ Windows Server 2016 --- -# Volume Activation for Windows +# Volume activation for Windows > [!TIP] > @@ -28,8 +28,8 @@ appliesto: > > Looking for information on retail activation? > -> - [Activate Windows](https://support.microsoft.com/help/12440/). -> - [Product activation for Windows](https://go.microsoft.com/fwlink/p/?LinkId=618644). +> - [Activate Windows](https://support.microsoft.com/windows/activate-windows-c39005d4-95ee-b91e-b399-2820fda32227). +> - [Product activation for Windows](https://support.microsoft.com/windows/product-activation-for-windows-online-support-telephone-numbers-35f6a805-1259-88b4-f5e9-b52cccef91a0). This guide is designed to help organizations that are planning to use volume activation to deploy and activate Windows. diff --git a/windows/deployment/windows-enterprise-e3-overview.md b/windows/deployment/windows-enterprise-e3-overview.md index 43bfc59332..fb356d9ce9 100644 --- a/windows/deployment/windows-enterprise-e3-overview.md +++ b/windows/deployment/windows-enterprise-e3-overview.md @@ -2,13 +2,14 @@ title: Windows Enterprise E3 in CSP description: Describes Windows Enterprise E3, an offering that delivers, by subscription, the features of Windows Enterprise edition. ms.service: windows-client +ms.subservice: itpro-fundamentals ms.localizationpriority: medium ms.date: 02/13/2024 -author: frankroj -ms.author: frankroj -manager: aaroncz -ms.topic: conceptual -ms.subservice: itpro-deploy +ms.author: kaushika +author: kaushika-msft +manager: cshepard +ms.reviewer: nganguly +ms.topic: concept-article appliesto: - ✅ Windows 11 - ✅ Windows 10 diff --git a/windows/deployment/windows-subscription-activation.md b/windows/deployment/windows-subscription-activation.md index 034308a993..824847523c 100644 --- a/windows/deployment/windows-subscription-activation.md +++ b/windows/deployment/windows-subscription-activation.md @@ -4,12 +4,10 @@ description: Learn how to step up from Windows Pro to a Windows Enterprise subsc ms.service: windows-client ms.subservice: itpro-fundamentals ms.localizationpriority: medium -author: frankroj -ms.author: frankroj -manager: aaroncz -ms.collection: - - highpri - - tier2 +ms.author: kaushika +author: kaushika-msft +manager: cshepard +ms.reviewer: nganguly ms.topic: concept-article zone_pivot_groups: windows-versions-11-10 ms.date: 03/04/2024 From fa6d37d7c99488c7f500814c8496bb506d238d6e Mon Sep 17 00:00:00 2001 From: Stacyrch140 <102548089+Stacyrch140@users.noreply.github.com> Date: Thu, 25 Jul 2024 17:28:31 -0400 Subject: [PATCH 087/108] pencil edit --- windows/deployment/volume-activation/kms-activation-vamt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/volume-activation/kms-activation-vamt.md b/windows/deployment/volume-activation/kms-activation-vamt.md index ced67be74b..af2b05e15d 100644 --- a/windows/deployment/volume-activation/kms-activation-vamt.md +++ b/windows/deployment/volume-activation/kms-activation-vamt.md @@ -47,7 +47,7 @@ Before configuring KMS activation, ensure that your network and VAMT installatio 5. Select **Apply**, and then select **OK** to close the **Volume Activation Management Tool Preferences** dialog box. -6. Select the products to be activated by selecting individual products in the product list view in the center pane. You can use the **Filter** function to narrow your search for computers by clicking **Filter** in the right-side pane to open the **Filter Products** dialog box.In the **Filter Products** dialog box, you can filter the list by computer name, product name, product key type, license status, or by any combination of these options. +6. Select the products to be activated by selecting individual products in the product list view in the center pane. You can use the **Filter** function to narrow your search for computers by clicking **Filter** in the right-side pane to open the **Filter Products** dialog box. In the **Filter Products** dialog box, you can filter the list by computer name, product name, product key type, license status, or by any combination of these options. - To filter the list by computer name, enter a name in the **Computer Name** box. From 0ff65fbca9fa4e862cce61203cf8d19a8a2489cf Mon Sep 17 00:00:00 2001 From: Aaron Czechowski Date: Thu, 25 Jul 2024 16:48:11 -0700 Subject: [PATCH 088/108] revise --- windows/configuration/accessibility/index.md | 93 +++++--------------- 1 file changed, 21 insertions(+), 72 deletions(-) diff --git a/windows/configuration/accessibility/index.md b/windows/configuration/accessibility/index.md index 335576ee27..4691dba7a0 100644 --- a/windows/configuration/accessibility/index.md +++ b/windows/configuration/accessibility/index.md @@ -1,94 +1,43 @@ --- -title: Windows accessibility information for IT Pros -description: Lists the various accessibility features available in Windows client with links to detailed guidance on how to set them. -ms.date: 01/25/2024 -ms.topic: conceptual +title: Windows accessibility for IT pros +description: Basic guidance for IT administrators on accessibility features available in Windows client. +ms.date: 07/25/2024 +ms.topic: concept-article ms.collection: tier1 --- - - - # Accessibility information for IT professionals Microsoft is dedicated to making its products and services accessible and usable for everyone. Windows includes accessibility features that benefit all users. These features make it easier to customize the computer and give users with different abilities options to improve their experience with Windows. -This article helps you as the IT administrator learn about built-in accessibility features. It also includes recommendations for how to support people in your organization who use these features. +For more information about the accessibility resources available in Windows, see [Discover Windows accessibility features](https://support.microsoft.com/windows/discover-windows-accessibility-features-8b1068e6-d3b8-4ba8-b027-133dd8911df9#WindowsVersion=Windows_11). -Windows 11, version 22H2, includes improvements for people with disabilities: system-wide live captions, Focus sessions, voice access, and more natural voices for Narrator. For more information, see [New accessibility features coming to Windows 11](https://blogs.windows.com/windowsexperience/2022/05/10/new-accessibility-features-coming-to-windows-11/) and [How inclusion drives innovation in Windows 11](https://blogs.windows.com/windowsexperience/?p=177554). - +Windows 11, version 22H2, includes improvements for people with disabilities. For example, system-wide live captions, Focus sessions, voice access, and more natural voices for Narrator. For more information, see the following Windows Experience blog posts: + +- [New accessibility features coming to Windows 11](https://blogs.windows.com/windowsexperience/2022/05/10/new-accessibility-features-coming-to-windows-11/) + +- [How inclusion drives innovation in Windows 11](https://blogs.windows.com/windowsexperience/2022/09/20/how-inclusion-drives-innovation-in-windows-11/) ## General recommendations - **Be aware of Ease of Access settings**. Understand how people in your organization might use these settings. Help people in your organization learn how they can customize Windows. + - **Don't block settings**. Avoid using group policy or MDM settings that override Ease of Access settings. + - **Encourage choice**. Allow people in your organization to customize their computers based on their needs. That customization might be installing an add-on for their browser, or a non-Microsoft assistive technology. -## Vision +- Use the [Azure AI Translator](/azure/ai-services/translator/) service to add machine translation to your solutions. -- [Use Narrator to use devices without a screen](https://support.microsoft.com/windows/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c172f109bdb1). Narrator describes Windows and apps and enables you to control devices by using a keyboard, controller, or with a range of gestures on touch-supported devices. Now the user is able to download and install 10 more natural languages. -- [Create accessible apps](/windows/apps/develop/accessibility). You can develop accessible apps just like Mail, Groove, and Store that work well with Narrator and other leading screen readers. -- Use keyboard shortcuts. Get the most out of Windows with shortcuts for apps and desktops. - - [Keyboard shortcuts in Windows](https://support.microsoft.com/windows/keyboard-shortcuts-in-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec) - - [Narrator keyboard commands and touch gestures](https://support.microsoft.com/windows/appendix-b-narrator-keyboard-commands-and-touch-gestures-8bdab3f4-b3e9-4554-7f28-8b15bd37410a) - - [Windows keyboard shortcuts for accessibility](https://support.microsoft.com/windows/windows-keyboard-shortcuts-for-accessibility-021bcb62-45c8-e4ef-1e4f-41b8c1fc87fd) -- Get closer with [Magnifier](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198). Magnifier enlarges all or part of your screen and offers various configuration settings. -- [Make Windows easier to see](https://support.microsoft.com/windows/make-windows-easier-to-see-c97c2b0d-cadb-93f0-5fd1-59ccfe19345d). - - Changing the size or color of pointers or adding trails or touch feedback make it easier to follow the mouse. - - Adjust the size of text, icons, and other screen items to make them easier to see. - - Many high-contrast themes are available to suit your needs. -- [Have Cortana assist](https://support.microsoft.com/topic/what-is-cortana-953e648d-5668-e017-1341-7f26f7d0f825). Cortana can handle various tasks for you, including setting reminders, opening apps, finding facts, and sending emails and texts. -- [Dictate text and commands](https://support.microsoft.com/windows/use-voice-recognition-in-windows-83ff75bd-63eb-0b6c-18d4-6fae94050571). Windows includes speech recognition that lets you tell it what to do. -- [Simplify for focus](https://support.microsoft.com/windows/make-it-easier-to-focus-on-tasks-0d259fd9-e9d0-702c-c027-007f0e78eaf2). Reducing animations and turning off background images and transparency can minimize distractions. -- [Keep notifications around longer](https://support.microsoft.com/windows/make-windows-easier-to-hear-9c18cfdc-63be-2d47-0f4f-5b00facfd2e1). If notifications aren't staying visible long enough for you to notice them, you can increase the time a notification will be displayed up to five minutes. -- [Read in braille](https://support.microsoft.com/windows/chapter-8-using-narrator-with-braille-3e5f065b-1c9d-6eb2-ec6d-1d07c9e94b20). Narrator supports braille displays from more than 35 manufacturers using more than 40 languages and multiple braille variants. -- Starting in Windows 11, version 22H2 with [KB5022913](https://support.microsoft.com/kb/5022913), the compatibility of braille displays has been expanded. Braille displays work seamlessly and reliably across multiple screen readers, improving the end user experience. +- [Create accessible apps](/windows/apps/develop/accessibility) that work well with Narrator and other leading screen readers. -## Hearing - -- [Use live captions to better understand audio](https://support.microsoft.com/windows/use-live-captions-to-better-understand-audio-b52da59c-14b8-4031-aeeb-f6a47e6055df). Use Windows 11, version 22H2 or later to better understand any spoken audio with real time captions. -- Starting with Windows 11, version 22H2 with [KB5026446](https://support.microsoft.com/kb/5026446), live captions now supports additional languages. -- [View live transcription in a Teams meeting](https://support.microsoft.com/office/view-live-transcription-in-a-teams-meeting-dc1a8f23-2e20-4684-885e-2152e06a4a8b). During any Teams meeting, view a live transcription so you don't miss what's being said. -- [Use Teams for sign language](https://www.microsoft.com/microsoft-teams/group-chat-software). Teams is available on various platforms and devices, so you don't have to worry about whether your co-workers, friends, and family can communicate with you. - -- [Make Windows easier to hear](https://support.microsoft.com/windows/make-windows-easier-to-hear-9c18cfdc-63be-2d47-0f4f-5b00facfd2e1). - - Replace audible alerts with visual alerts. - - If notifications aren't staying visible long enough for you to notice them, you can increase the time a notification will be displayed up to five minutes. - - Send all sounds to both left and right channels, which is helpful for those people with partial hearing loss or deafness in one ear. -- [Read spoken words with captioning](https://support.microsoft.com/windows/change-caption-settings-135c465b-8cfd-3bac-9baf-4af74bc0069a). You can customize things like color, size, and background transparency to suit your needs and tastes. -- Use the [Azure Cognitive Services Translator](/azure/cognitive-services/translator/) service to add machine translation to your solutions. - -## Physical - -- [Have Cortana assist you](https://support.microsoft.com/topic/what-is-cortana-953e648d-5668-e017-1341-7f26f7d0f825). Cortana can handle various tasks for you, including setting reminders, opening apps, finding facts, and sending emails and texts. -- [Dictate text and commands](https://support.microsoft.com/windows/use-voice-recognition-in-windows-83ff75bd-63eb-0b6c-18d4-6fae94050571). Windows includes voice recognition that lets you tell it what to do. -- [Use the On-Screen Keyboard (OSK)](https://support.microsoft.com/windows/use-the-on-screen-keyboard-osk-to-type-ecbb5e08-5b4e-d8c8-f794-81dbf896267a). Instead of relying on a physical keyboard, use the OSK to enter data and select keys with a mouse or other pointing device. It also offers word prediction and completion. -- [Make your mouse, keyboard, and other input devices easier to use](https://support.microsoft.com/windows/make-your-mouse-keyboard-and-other-input-devices-easier-to-use-10733da7-fa82-88be-0672-f123d4b3dcfe). - - - If you have limited control of your hands, you can personalize your keyboard to do helpful things like ignore repeated keys. - - If a mouse is difficult to use, you can control the pointer by using your numeric keypad. - -## Cognition - -- [Simplify for focus](https://support.microsoft.com/windows/make-it-easier-to-focus-on-tasks-0d259fd9-e9d0-702c-c027-007f0e78eaf2). Reducing animations and turning off background images and transparency can minimize distractions. - [Download and use fonts that are easier to read](https://www.microsoft.com/download/details.aspx?id=50721). **Fluent Sitka Small** and **Fluent Calibri** are fonts that address "visual crowding" by adding character and enhance word and line spacing. -- [Microsoft Edge reading view](https://support.microsoft.com/windows/take-your-reading-with-you-b6699255-4436-708e-7b93-4d2e19a15af8). Clears distracting content from web pages so you can stay focused on what you really want to read. - -## Assistive technology devices built into Windows - -- [Hear text read aloud with Narrator](https://support.microsoft.com/windows/hear-text-read-aloud-with-narrator-040f16c1-4632-b64e-110a-da4a0ac56917). Narrator reads text on your PC screen aloud and describes events, such as notifications or calendar appointments, so you can use your PC without a display. -- Scripting functionality has been added to Narrator. There is store delivery of Narrator extension scripts which currently include an Outlook script and an Excel script. -- [Use voice recognition](https://support.microsoft.com/windows/use-voice-recognition-in-windows-83ff75bd-63eb-0b6c-18d4-6fae94050571). - - -- With spellings experience in voice access, you can dictate a complex or non-standard word letter-by-letter and add it to Windows dictionary. The next time you try to dictate the same word, voice access improves its recognition. - -- [Save time with keyboard shortcuts](https://support.microsoft.com/windows/keyboard-shortcuts-in-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec). -- [Use voice access to control your PC and author text with your voice](https://support.microsoft.com/topic/use-voice-access-to-control-your-pc-author-text-with-your-voice-4dcd23ee-f1b9-4fd1-bacc-862ab611f55d). ## Other resources -[Windows accessibility](https://www.microsoft.com/Accessibility/windows) -[Designing accessible software](/windows/apps/design/accessibility/designing-inclusive-software) -[Inclusive design](https://www.microsoft.com/design/inclusive) -[Accessibility guide for Microsoft 365 Apps](/deployoffice/accessibility-guide) +- [Windows accessibility](https://www.microsoft.com/windows/accessibility-features) + +- [Designing accessible software](/windows/apps/design/accessibility/designing-inclusive-software) + +- [Inclusive design](https://inclusive.microsoft.design/) + +- [Accessibility guide for Microsoft 365 Apps](/microsoft-365-apps/deploy/accessibility-guide) From 81f438d337c20ed7b71fcf51281b5d5834d283f7 Mon Sep 17 00:00:00 2001 From: Kavya N <168478594+kavyamsft@users.noreply.github.com> Date: Fri, 26 Jul 2024 19:30:58 -0700 Subject: [PATCH 089/108] Learn Editor: Update windows-sandbox-configure-using-wsb-file.md --- .../windows-sandbox/windows-sandbox-configure-using-wsb-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-configure-using-wsb-file.md b/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-configure-using-wsb-file.md index 6420d0019f..29d6d96ecb 100644 --- a/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-configure-using-wsb-file.md +++ b/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-configure-using-wsb-file.md @@ -60,7 +60,7 @@ Supported values: - *Enable*: Enables vGPU support in the sandbox. - *Disable*: Disables vGPU support in the sandbox. If this value is set, the sandbox uses software rendering, which might be slower than virtualized GPU. -- *Default* This value is the default value for vGPU support. Currently, this default value denotes that vGPU is disabled. +- *Default* This value is the default value for vGPU support. Currently, this default value denotes that vGPU is enabled. > [!NOTE] > Enabling virtualized GPU can potentially increase the attack surface of the sandbox. From 8e354c1cb57075f80e6ccf84511abc7862da08fc Mon Sep 17 00:00:00 2001 From: Aaron Czechowski Date: Mon, 29 Jul 2024 10:52:51 -0700 Subject: [PATCH 091/108] fix links --- windows/client-management/mdm/universalprint-csp.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/client-management/mdm/universalprint-csp.md b/windows/client-management/mdm/universalprint-csp.md index 183576910e..a2cceef581 100644 --- a/windows/client-management/mdm/universalprint-csp.md +++ b/windows/client-management/mdm/universalprint-csp.md @@ -18,9 +18,9 @@ The table below shows the applicability of Windows: |Enterprise|Yes|Yes| |Education|Yes|Yes| -The UniversalPrint configuration service provider (CSP) is used to add Universal Print-compatible printers to Windows client endpoints. Universal Print is a cloud-based printing solution that runs entirely in Microsoft Azure. It doesn't require any on-premises infrastructure. For more specific information, go to [What is Universal Print](/universal-print/fundamentals/universal-print-whatis). +The UniversalPrint configuration service provider (CSP) is used to add Universal Print-compatible printers to Windows client endpoints. Universal Print is a cloud-based printing solution that runs entirely in Microsoft Azure. It doesn't require any on-premises infrastructure. For more specific information, see [Discover Universal Print](/universal-print/discover-universal-print). -This CSP was added in Windows 11 and in Windows 10 21H2 July 2022 update [KB5015807](https://support.microsoft.com/topic/july-12-2022-kb5015807-os-builds-19042-1826-19043-1826-and-19044-1826-8c8ea8fe-ec83-467d-86fb-a2f48a85eb41). +This CSP was added in Windows 11 and in Windows 10, version 21H2 July 2022 update [KB5015807](https://support.microsoft.com/topic/july-12-2022-kb5015807-os-builds-19042-1826-19043-1826-and-19044-1826-8c8ea8fe-ec83-467d-86fb-a2f48a85eb41). The following example shows the UniversalPrint configuration service provider in tree format. @@ -52,7 +52,7 @@ The data type is node (XML node). Supported operation is Get. **`` (PrinterSharedID)** -The Share ID is used to identify the Universal Print printer you want to install on the targeted user account. You can get the printer's Share ID in the printer's properties in the [Universal Print portal](/universal-print/portal/navigate-up). +The Share ID is used to identify the Universal Print printer you want to install on the targeted user account. You can get the printer's Share ID in the printer's properties in the [Universal Print portal](/universal-print/reference/portal/navigate-azure-portal). The data type is node (XML node). Supported operations are Get, Add, and Delete. @@ -61,7 +61,7 @@ The data type is node (XML node). Supported operations are Get, Add, and Delete. **CloudDeviceID** -The Printer ID is used to identify the Universal Print printer you want to install on the targeted user account. You can get the printer's Printer ID in the printer's properties in the [Universal Print portal](/universal-print/portal/navigate-up). +The Printer ID is used to identify the Universal Print printer you want to install on the targeted user account. You can get the printer's Printer ID in the printer's properties in the [Universal Print portal](/universal-print/reference/portal/navigate-azure-portal). The data type is string/text (GUID). Supported operations are Get, Add, Delete, and Replace. @@ -70,7 +70,7 @@ The data type is string/text (GUID). Supported operations are Get, Add, Delete, **PrinterSharedName** -The Share Name is used to identify the Universal Print printer you want to install on the targeted user account. You can get the printer's Share Name in the printer's properties in the [Universal Print portal](/universal-print/portal/navigate-up). +The Share Name is used to identify the Universal Print printer you want to install on the targeted user account. You can get the printer's Share Name in the printer's properties in the [Universal Print portal](/universal-print/reference/portal/navigate-azure-portal). The data type is string/text. Supported operations are Get, Add, Delete, and Replace. From f3f0881bf6da9ac30336f3d6d05ad2685f84d974 Mon Sep 17 00:00:00 2001 From: Aaron Czechowski Date: Mon, 29 Jul 2024 11:14:35 -0700 Subject: [PATCH 092/108] fix ms-author-invalid --- .../deployment/update/update-managed-unmanaged-devices.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/deployment/update/update-managed-unmanaged-devices.md b/windows/deployment/update/update-managed-unmanaged-devices.md index 3f495f601a..911f059706 100644 --- a/windows/deployment/update/update-managed-unmanaged-devices.md +++ b/windows/deployment/update/update-managed-unmanaged-devices.md @@ -5,9 +5,9 @@ ms.service: windows-client ms.subservice: itpro-updates ms.topic: overview ms.date: 06/25/2024 -author: mikolding -ms.author: v-mikolding -ms.reviewer: mstewart,thtrombl,v-fvalentyna,arcarley +author: v-fvalentyna +ms.author: v-fvalentyna +ms.reviewer: mstewart,thtrombl,arcarley manager: aaroncz ms.localizationpriority: medium appliesto: From 492ec866eec920990d0f48cae00e20bfff53f53d Mon Sep 17 00:00:00 2001 From: Aaron Czechowski Date: Mon, 29 Jul 2024 11:19:16 -0700 Subject: [PATCH 093/108] fix old links --- ...ponents-to-microsoft-services-using-MDM.md | 38 +++++++++---------- .../windows-10-and-privacy-compliance.md | 4 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services-using-MDM.md b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services-using-MDM.md index e664498af2..6c9e051335 100644 --- a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services-using-MDM.md +++ b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services-using-MDM.md @@ -19,7 +19,7 @@ ms.topic: reference - Windows 10 Enterprise 1903 version and newer -This article describes the network connections that Windows 10 and Windows 11 components make to Microsoft and the Mobile Device Management/Configuration Service Provider (MDM/CSP) and custom Open Mobile Alliance Uniform Resource Identifier ([OMA URI](/intune/custom-settings-windows-10)) policies available to IT Professionals using Microsoft Intune to help manage the data shared with Microsoft. If you want to minimize connections from Windows to Microsoft services, or configure privacy settings, there are a number of settings for consideration. For example, you can configure diagnostic data to the lowest level for your edition of Windows and evaluate other connections Windows makes to Microsoft services you want to turn off using the instructions in this article. While it's possible to minimize network connections to Microsoft, there are many reasons why these communications are enabled by default, such as updating malware definitions and maintaining current certificate revocation lists. This data helps us deliver a secure, reliable, and up-to-date experience. +This article describes the network connections that Windows 10 and Windows 11 components make to Microsoft and the Mobile Device Management/Configuration Service Provider (MDM/CSP) and custom Open Mobile Alliance Uniform Resource Identifier ([OMA URI](/mem/intune/configuration/custom-settings-windows-10)) policies available to IT Professionals using Microsoft Intune to help manage the data shared with Microsoft. If you want to minimize connections from Windows to Microsoft services, or configure privacy settings, there are a number of settings for consideration. For example, you can configure diagnostic data to the lowest level for your edition of Windows and evaluate other connections Windows makes to Microsoft services you want to turn off using the instructions in this article. While it's possible to minimize network connections to Microsoft, there are many reasons why these communications are enabled by default, such as updating malware definitions and maintaining current certificate revocation lists. This data helps us deliver a secure, reliable, and up-to-date experience. >[!IMPORTANT] >- The Allowed Traffic endpoints for an MDM configuration are here: [Allowed Traffic](#bkmk-mdm-allowedtraffic) @@ -30,13 +30,13 @@ This article describes the network connections that Windows 10 and Windows 11 co >- The **Get Help** and **Give us Feedback** links in Windows may no longer work after applying some or all of the MDM/CSP settings. >[!Warning] ->If a user executes the "Reset this PC" command (Settings -> Update & Security -> Recovery) with the "Remove Everything" option the >Windows Restricted Traffic Limited Functionality settings will need to be re-applied in order re-restrict the device's egress traffic. >To do this the client must be re-enrolled to the Microsoft Intune service. Egress traffic may occur during the period prior to the re->application of the Restricted Traffic Limited Functionality settings. If the user executes a "Reset this PC" with the "Keep my files" >option the Restricted Traffic Limited Functionality settings are retained on the device, and therefore the client will remain in a >Restricted Traffic configuration during and after the "Keep my files" reset, and no re-enrollment is required. +>If a user executes the "Reset this PC" command (Settings -> Update & Security -> Recovery) with the "Remove Everything" option the >Windows Restricted Traffic Limited Functionality settings will need to be re-applied in order re-restrict the device's egress traffic. >To do this the client must be re-enrolled to the Microsoft Intune service. Egress traffic may occur during the period prior to the re->application of the Restricted Traffic Limited Functionality settings. If the user executes a "Reset this PC" with the "Keep my files" >option the Restricted Traffic Limited Functionality settings are retained on the device, and therefore the client will remain in a >Restricted Traffic configuration during and after the "Keep my files" reset, and no re-enrollment is required. For more information on Microsoft Intune, see [Transform IT service delivery for your modern workplace](https://www.microsoft.com/en-us/enterprise-mobility-security/microsoft-intune?rtc=1) and [Microsoft Intune documentation](/intune/). For detailed information about managing network connections to Microsoft services using Windows Settings, Group Policies and Registry settings see [Manage connections from Windows operating system components to Microsoft services](./manage-connections-from-windows-operating-system-components-to-microsoft-services.md). -We're always striving to improve our documentation and welcome your feedback. You can provide feedback by sending email to **telmhelp**@**microsoft.com**. +We're always striving to improve our documentation and welcome your feedback. You can provide feedback by sending email to **telmhelp**@**microsoft.com**. ## Settings for Windows 10 Enterprise edition 1903 and later and Windows 11 @@ -55,15 +55,15 @@ For Windows 10 and Windows 11, the following MDM policies are available in the [ 1. **Date & Time** 1. MDM Policy: [Settings/AllowDateTime](/windows/client-management/mdm/policy-csp-settings#settings-allowdatetime). Allows the user to change date and time settings. **Set to 0 (zero)** -1. **Device metadata retrieval** +1. **Device metadata retrieval** 1. MDM Policy: [DeviceInstallation/PreventDeviceMetadataFromNetwork](/windows/client-management/mdm/policy-csp-deviceinstallation#deviceinstallation-preventdevicemetadatafromnetwork). Choose whether to prevent Windows from retrieving device metadata from the Internet. **Set to Enabled** -1. **Find My Device** +1. **Find My Device** 1. MDM Policy: [Experience/AllowFindMyDevice](/windows/client-management/mdm/policy-csp-experience#experience-allowfindmydevice). This policy turns on Find My Device. **Set to 0 (zero)** -1. **Font streaming** +1. **Font streaming** 1. MDM Policy: [System/AllowFontProviders](/windows/client-management/mdm/policy-csp-system#system-allowfontproviders). Setting that determines whether Windows is allowed to download fonts and font catalog data from an online font provider. **Set to 0 (zero)** -1. **Insider Preview builds** +1. **Insider Preview builds** 1. MDM Policy: [System/AllowBuildPreview](/windows/client-management/mdm/policy-csp-system#system-allowbuildpreview). This policy setting determines whether users can access the Insider build controls in the Advanced Options for Windows Update. **Set to 0 (zero)** 1. **Internet Explorer** The following Microsoft Internet Explorer MDM policies are available in the [Internet Explorer CSP](/windows/client-management/mdm/policy-csp-internetexplorer) @@ -74,7 +74,7 @@ For Windows 10 and Windows 11, the following MDM policies are available in the [ 1. MDM Policy: [InternetExplorer/DisableHomePageChange](/windows/client-management/mdm/policy-csp-internetexplorer#internetexplorer-disablehomepagechange). Determines whether users can change the default Home Page or not. **Set to String** with Value: 1. **\\** 1. MDM Policy: [InternetExplorer/DisableFirstRunWizard](/windows/client-management/mdm/policy-csp-internetexplorer#internetexplorer-disablefirstrunwizard). Prevents Internet Explorer from running the First Run wizard the first time a user starts the browser after installing Internet Explorer or Windows. **Set to String** with Value: - 1. **\\** + 1. **\\** 1. **Live Tiles** 1. MDM Policy: [Notifications/DisallowTileNotification](/windows/client-management/mdm/policy-csp-notifications). This policy setting turns off tile notifications. If you enable this policy setting applications and system features won't be able to update their tiles and tile badges in the Start screen. **Integer value 1** @@ -101,8 +101,8 @@ For Windows 10 and Windows 11, the following MDM policies are available in the [ 1. MDM Policy: [EnableOfflineMapsAutoUpdate](/windows/client-management/mdm/policy-csp-maps#maps-enableofflinemapsautoupdate). Disables the automatic download and update of map data. **Set to 0 (zero)** 1. **OneDrive** - 1. MDM Policy: [DisableOneDriveFileSync](/windows/client-management/mdm/policy-csp-system#system-disableonedrivefilesync). Allows IT Admins to prevent apps and features from working with files on OneDrive. **Set to 1 (one)** - 1. Ingest the ADMX - To get the latest OneDrive ADMX file you need an up-to-date Windows 10 or Windows 11 client. The ADMX files are located under the following path: %LocalAppData%\Microsoft\OneDrive\ there's a folder with the current OneDrive build (for example "18.162.0812.0001"). There's a folder named "adm" which contains the admx and adml policy definition files. + 1. MDM Policy: [DisableOneDriveFileSync](/windows/client-management/mdm/policy-csp-system#system-disableonedrivefilesync). Allows IT Admins to prevent apps and features from working with files on OneDrive. **Set to 1 (one)** + 1. Ingest the ADMX - To get the latest OneDrive ADMX file you need an up-to-date Windows 10 or Windows 11 client. The ADMX files are located under the following path: %LocalAppData%\Microsoft\OneDrive\ there's a folder with the current OneDrive build (for example "18.162.0812.0001"). There's a folder named "adm" which contains the admx and adml policy definition files. 1. MDM Policy: Prevent Network Traffic before User SignIn. **PreventNetworkTrafficPreUserSignIn**. The OMA-URI value is: **./Device/Vendor/MSFT/Policy/Config/OneDriveNGSC\~Policy\~OneDriveNGSC/PreventNetworkTrafficPreUserSignIn**, Data type: **String**, Value: **\** @@ -118,21 +118,21 @@ For Windows 10 and Windows 11, the following MDM policies are available in the [ 1. Account info - [Privacy/LetAppsAccessAccountInfo](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccessaccountinfo). Specifies whether Windows apps can access account information. **Set to 2 (two)** 1. Contacts - [Privacy/LetAppsAccessContacts](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccesscontacts). Specifies whether Windows apps can access contacts. **Set to 2 (two)** 1. Calendar - [Privacy/LetAppsAccessCalendar](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccesscalendar). Specifies whether Windows apps can access the calendar. **Set to 2 (two)** - 1. Call history - [Privacy/LetAppsAccessCallHistory](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccesscallhistory). Specifies whether Windows apps can access account information. **Set to 2 (two)** - 1. Email - [Privacy/LetAppsAccessEmail](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccessemail). Specifies whether Windows apps can access email. **Set to 2 (two)** - 1. Messaging - [Privacy/LetAppsAccessMessaging](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccessmessaging). Specifies whether Windows apps can read or send messages (text or MMS). **Set to 2 (two)** + 1. Call history - [Privacy/LetAppsAccessCallHistory](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccesscallhistory). Specifies whether Windows apps can access account information. **Set to 2 (two)** + 1. Email - [Privacy/LetAppsAccessEmail](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccessemail). Specifies whether Windows apps can access email. **Set to 2 (two)** + 1. Messaging - [Privacy/LetAppsAccessMessaging](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccessmessaging). Specifies whether Windows apps can read or send messages (text or MMS). **Set to 2 (two)** 1. Phone calls - [Privacy/LetAppsAccessPhone](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccessphone). Specifies whether Windows apps can make phone calls. **Set to 2 (two)** - 1. Radios - [Privacy/LetAppsAccessRadios](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccessradios). Specifies whether Windows apps have access to control radios. **Set to 2 (two)** - 1. Other devices - [Privacy/LetAppsSyncWithDevices](/windows/client-management/mdm/policy-csp-privacy#privacy-letappssyncwithdevices). Specifies whether Windows apps can sync with devices. **Set to 2 (two)** + 1. Radios - [Privacy/LetAppsAccessRadios](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccessradios). Specifies whether Windows apps have access to control radios. **Set to 2 (two)** + 1. Other devices - [Privacy/LetAppsSyncWithDevices](/windows/client-management/mdm/policy-csp-privacy#privacy-letappssyncwithdevices). Specifies whether Windows apps can sync with devices. **Set to 2 (two)** 1. Other devices - [Privacy/LetAppsAccessTrustedDevices](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccesstrusteddevices). Specifies whether Windows apps can access trusted devices. **Set to 2 (two)** 1. Feedback & diagnostics - [System/AllowTelemetry](/windows/client-management/mdm/policy-csp-system#system-allowtelemetry). Allow the device to send diagnostic and usage telemetry data, such as Watson. **Set to 0 (zero)** - 1. Feedback & diagnostics - [Experience/DoNotShowFeedbackNotifications](/windows/client-management/mdm/policy-csp-experience#experience-donotshowfeedbacknotifications). Prevents devices from showing feedback questions from Microsoft. **Set to 1 (one)** + 1. Feedback & diagnostics - [Experience/DoNotShowFeedbackNotifications](/windows/client-management/mdm/policy-csp-experience#experience-donotshowfeedbacknotifications). Prevents devices from showing feedback questions from Microsoft. **Set to 1 (one)** 1. Background apps - [Privacy/LetAppsRunInBackground](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsruninbackground). Specifies whether Windows apps can run in the background. **Set to 2 (two)** 1. Motion - [Privacy/LetAppsAccessMotion](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccessmotion). Specifies whether Windows apps can access motion data. **Set to 2 (two)** 1. Tasks - [Privacy/LetAppsAccessTasks](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsaccesstasks). Turn off the ability to choose which apps have access to tasks. **Set to 2 (two)** - 1. App Diagnostics - [Privacy/LetAppsGetDiagnosticInfo](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsgetdiagnosticinfo). Force allow, force deny or give user control of apps that can get diagnostic information about other running apps. **Set to 2 (two)** + 1. App Diagnostics - [Privacy/LetAppsGetDiagnosticInfo](/windows/client-management/mdm/policy-csp-privacy#privacy-letappsgetdiagnosticinfo). Force allow, force deny or give user control of apps that can get diagnostic information about other running apps. **Set to 2 (two)** 1. **Software Protection Platform** - [Licensing/DisallowKMSClientOnlineAVSValidation](/windows/client-management/mdm/policy-csp-licensing#licensing-disallowkmsclientonlineavsvalidation). Opt out of sending KMS client activation data to Microsoft automatically. **Set to 1 (one)** -1. **Storage Health** - [Storage/AllowDiskHealthModelUpdates](/windows/client-management/mdm/policy-csp-storage#storage-allowdiskhealthmodelupdates). Allows disk health model updates. **Set to 0 (zero)** +1. **Storage Health** - [Storage/AllowDiskHealthModelUpdates](/windows/client-management/mdm/policy-csp-storage#storage-allowdiskhealthmodelupdates). Allows disk health model updates. **Set to 0 (zero)** 1. **Sync your settings** - [Experience/AllowSyncMySettings](/windows/client-management/mdm/policy-csp-experience#experience-allowsyncmysettings). Control whether your settings are synchronized. **Set to 0 (zero)** 1. **Teredo** - No MDM needed. Teredo is **Off by default**. Delivery Optimization (DO) can turn on Teredo, but DO itself is turned Off via MDM. 1. **Wi-Fi Sense** - No MDM needed. Wi-Fi Sense is no longer available from Windows 10 version 1803 and later or Windows 11. @@ -162,7 +162,7 @@ For Windows 10 and Windows 11, the following MDM policies are available in the [ ### Allowed traffic for Microsoft Intune / MDM configurations |**Allowed traffic endpoints** -| --- | +| --- | |activation-v2.sls.microsoft.com/*| |cdn.onenote.net| |client.wns.windows.com| diff --git a/windows/privacy/windows-10-and-privacy-compliance.md b/windows/privacy/windows-10-and-privacy-compliance.md index ab86dc703a..ba47f714b5 100644 --- a/windows/privacy/windows-10-and-privacy-compliance.md +++ b/windows/privacy/windows-10-and-privacy-compliance.md @@ -104,8 +104,8 @@ Alternatively, your administrators can also choose to use Windows Autopilot. Win You can use the following articles to learn more about Windows Autopilot and how to use Windows Autopilot to deploy Windows: -- [Overview of Windows Autopilot](/windows/deployment/windows-Autopilot/windows-Autopilot) -- [Windows Autopilot deployment process](/windows/deployment/windows-Autopilot/deployment-process) +- [Overview of Windows Autopilot](/autopilot/overview) +- [Windows Autopilot deployment process](/autopilot/deployment-process) #### _2.3.2 Managing Windows connected experiences and essential services_ From cdc2b162dba305c41473226e84c0fd1c4178a796 Mon Sep 17 00:00:00 2001 From: Gary Moore Date: Mon, 29 Jul 2024 15:47:31 -0700 Subject: [PATCH 094/108] Update link that's no longer redirected from IntuneDocs-pr --- ...erating-system-components-to-microsoft-services-using-MDM.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services-using-MDM.md b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services-using-MDM.md index 6c9e051335..0632da527d 100644 --- a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services-using-MDM.md +++ b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services-using-MDM.md @@ -32,7 +32,7 @@ This article describes the network connections that Windows 10 and Windows 11 co >[!Warning] >If a user executes the "Reset this PC" command (Settings -> Update & Security -> Recovery) with the "Remove Everything" option the >Windows Restricted Traffic Limited Functionality settings will need to be re-applied in order re-restrict the device's egress traffic. >To do this the client must be re-enrolled to the Microsoft Intune service. Egress traffic may occur during the period prior to the re->application of the Restricted Traffic Limited Functionality settings. If the user executes a "Reset this PC" with the "Keep my files" >option the Restricted Traffic Limited Functionality settings are retained on the device, and therefore the client will remain in a >Restricted Traffic configuration during and after the "Keep my files" reset, and no re-enrollment is required. -For more information on Microsoft Intune, see [Transform IT service delivery for your modern workplace](https://www.microsoft.com/en-us/enterprise-mobility-security/microsoft-intune?rtc=1) and [Microsoft Intune documentation](/intune/). +For more information on Microsoft Intune, see [Transform IT service delivery for your modern workplace](https://www.microsoft.com/en-us/enterprise-mobility-security/microsoft-intune?rtc=1) and [Microsoft Intune documentation](/mem/intune/). For detailed information about managing network connections to Microsoft services using Windows Settings, Group Policies and Registry settings see [Manage connections from Windows operating system components to Microsoft services](./manage-connections-from-windows-operating-system-components-to-microsoft-services.md). From ad4df43d2f6a6b1123342d12adb866f444fc7fdd Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Tue, 30 Jul 2024 08:54:37 -0700 Subject: [PATCH 095/108] Add Edge paragraph to "configure" article Also, update some Autopilot links in compliance guide --- .../configure-windows-diagnostic-data-in-your-organization.md | 2 ++ windows/privacy/windows-privacy-compliance-guide.md | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md index 638225c604..d332b2fc2b 100644 --- a/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md +++ b/windows/privacy/configure-windows-diagnostic-data-in-your-organization.md @@ -70,6 +70,8 @@ Depending on the diagnostic data settings on the device, diagnostic data can be Later in this document we provide further details about how to control what’s collected and what data can be included in these different types of diagnostic data. +As of March 6, 2024, Microsoft Edge diagnostic data is collected separately from Windows diagnostic data on Windows 10 (version 22H2 and newer) and Windows 11 (version 23H2 and newer) devices in the European Economic Area. The collection of Microsoft Edge diagnostic data is subject to its own settings. For more information related to this change, see [Microsoft Edge, browsing data, and privacy](https://support.microsoft.com/windows/bb8174ba-9d73-dcf2-9b4a-c582b4e640dd). + ### Data transmission All diagnostic data is encrypted using Transport Layer Security (TLS) and uses certificate pinning during transfer from the device to the Microsoft data management services. diff --git a/windows/privacy/windows-privacy-compliance-guide.md b/windows/privacy/windows-privacy-compliance-guide.md index e2790e543f..c6ccfd9bec 100644 --- a/windows/privacy/windows-privacy-compliance-guide.md +++ b/windows/privacy/windows-privacy-compliance-guide.md @@ -104,8 +104,8 @@ Alternatively, your administrators can also choose to use Windows Autopilot. Win You can use the following articles to learn more about Windows Autopilot and how to use Windows Autopilot to deploy Windows: -- [Overview of Windows Autopilot](/windows/deployment/windows-Autopilot/windows-Autopilot) -- [Windows Autopilot deployment process](/windows/deployment/windows-Autopilot/deployment-process) +- [Overview of Windows Autopilot](/autopilot/overview) +- [Windows Autopilot deployment process](/autopilot/deployment-process) #### _2.3.2 Managing Windows connected experiences and essential services_ From 64743388e08908e881b36f19681a115f1001985a Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Tue, 30 Jul 2024 10:37:49 -0700 Subject: [PATCH 096/108] Minor changes (Acrolinx) --- windows/privacy/manage-windows-1809-endpoints.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/windows/privacy/manage-windows-1809-endpoints.md b/windows/privacy/manage-windows-1809-endpoints.md index 8e55fa3f0b..f67087eb36 100644 --- a/windows/privacy/manage-windows-1809-endpoints.md +++ b/windows/privacy/manage-windows-1809-endpoints.md @@ -27,7 +27,7 @@ Some Windows components, app, and related services transfer data to Microsoft ne This article lists different endpoints that are available on a clean installation of Windows 10, version 1709 and later. Details about the different ways to control traffic to these endpoints are covered in [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md). -Where applicable, each endpoint covered in this topic includes a link to specific details about how to control traffic to it. +Where applicable, each endpoint covered in this article includes a link to specific details about how to control traffic to it. We used the following methodology to derive these network endpoints: @@ -157,9 +157,9 @@ If you [turn off traffic for this endpoint](manage-connections-from-windows-oper ## Certificates -Certificates are digital files, stored on client devices, used to both encrypt data and verify the identity of an individual or organization. Trusted root certificates issued by a certification authority (CA) are stored in a certificate trust list (CTL). The Automatic Root Certificates Update mechanism contacts Windows Updates to update the CTL. If a new version of the CTL is identified, the list of trusted root certificates cached on the local device will be updated. Untrusted certificates are certificates where the server certificate issuer is unknown or is not trusted by the service. Untrusted certificates are also stored in a list on the local device and updated by the Automatic Root Certificates Update mechanism. +Certificates are digital files, stored on client devices, used to both encrypt data and verify the identity of an individual or organization. Trusted root certificates issued by a certification authority (CA) are stored in a certificate trust list (CTL). The Automatic Root Certificates Update mechanism contacts Windows Updates to update the CTL. If a new version of the CTL is identified, the list of trusted root certificates cached on the local device will be updated. Untrusted certificates are certificates where the server certificate issuer is unknown or isn't trusted by the service. Untrusted certificates are also stored in a list on the local device and updated by the Automatic Root Certificates Update mechanism. -If automatic updates are turned off, applications and websites may stop working because they did not receive an updated root certificate that the application uses. Additionally, the list of untrusted certificates will no longer be updated, which increases the attack vector on the device. +If automatic updates are turned off, applications and websites may stop working because they didn't receive an updated root certificate that the application uses. Additionally, the list of untrusted certificates will no longer be updated, which increases the attack vector on the device. 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's 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 isn't recommended because when root certificates are updated over time, applications and websites may stop working because they didn't receive an updated root certificate the application uses. @@ -218,7 +218,7 @@ To turn off traffic for these endpoints, enable the following Group Policy: Admi ## Font streaming The following endpoints are used to download fonts on demand. -If you [turn off traffic for these endpoints](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#font-streaming), you will not be able to download fonts on demand. +If you [turn off traffic for these endpoints](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#font-streaming), you won't be able to download fonts on demand. | Source process | Protocol | Destination | |:--------------:|:--------:|:------------| @@ -451,7 +451,7 @@ If you [turn off traffic for these endpoints](manage-connections-from-windows-op | svchost | HTTP | `*.dl.delivery.mp.microsoft.com` | The following endpoints enable connections to Windows Update, Microsoft Update, and the online services of the Store. -If you [turn off traffic for these endpoints](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-wu), the device won't be able to connect to Windows Update and Microsoft Update to help keep the device secure. Also, the device will not be able to acquire and update apps from the Store. +If you [turn off traffic for these endpoints](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-wu), the device won't be able to connect to Windows Update and Microsoft Update to help keep the device secure. Also, the device won't be able to acquire and update apps from the Store. | Source process | Protocol | Destination | |:--------------:|:--------:|:------------| @@ -463,7 +463,7 @@ These are dependent on enabling: - [Microsoft account](manage-windows-1809-endpoints.md#microsoft-account) The following endpoint is used for content regulation. -If you [turn off traffic for this endpoint](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-wu), the Windows Update Agent will be unable to contact the endpoint and fallback behavior will be used. This may result in content being either incorrectly downloaded or not downloaded at all. +If you [turn off traffic for this endpoint](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#bkmk-wu), the Windows Update Agent will be unable to contact the endpoint, and fallback behavior will be used. This may result in content being either incorrectly downloaded or not downloaded at all. | Source process | Protocol | Destination | |:--------------:|:--------:|:------------| From 69a1e117bd28e7ab52a821e78c5bbe06f5c5b460 Mon Sep 17 00:00:00 2001 From: tiaraquan Date: Tue, 30 Jul 2024 12:54:22 -0700 Subject: [PATCH 097/108] Reorg and prep --- ...ishing.redirection.windows-deployment.json | 140 ++++++++++++++++++ windows/deployment/windows-autopatch/TOC.yml | 119 +++++++-------- ...patch-customize-windows-update-settings.md | 0 .../windows-autopatch-edge.md | 0 .../windows-autopatch-exclude-device.md | 0 ...atch-manage-driver-and-firmware-updates.md | 0 ...-manage-windows-feature-update-releases.md | 0 ...autopatch-microsoft-365-apps-enterprise.md | 0 ...indows-autopatch-microsoft-365-policies.md | 0 .../windows-autopatch-support-request.md | 0 .../windows-autopatch-teams.md | 0 .../windows-autopatch-unenroll-tenant.md | 0 ...topatch-windows-feature-update-overview.md | 0 ...h-windows-quality-update-communications.md | 0 ...tch-windows-quality-update-end-user-exp.md | 0 ...topatch-windows-quality-update-overview.md | 0 ...utopatch-windows-quality-update-signals.md | 0 .../windows-autopatch-device-alerts.md | 0 .../windows-autopatch-maintain-environment.md | 0 ...autopatch-policy-health-and-remediation.md | 0 .../windows-autopatch-reliability-report.md | 0 ...dows-autopatch-resolve-policy-conflicts.md | 0 ...ch-windows-feature-update-status-report.md | 0 ...indows-feature-update-summary-dashboard.md | 0 ...-windows-feature-update-trending-report.md | 0 ...ity-and-feature-update-reports-overview.md | 0 ...ch-windows-quality-update-status-report.md | 0 ...indows-quality-update-summary-dashboard.md | 0 ...-windows-quality-update-trending-report.md | 0 ...dows-autopatch-groups-update-management.md | 61 -------- 30 files changed, 200 insertions(+), 120 deletions(-) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-customize-windows-update-settings.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-edge.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-exclude-device.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-manage-driver-and-firmware-updates.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-manage-windows-feature-update-releases.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-microsoft-365-apps-enterprise.md (100%) rename windows/deployment/windows-autopatch/{references => manage}/windows-autopatch-microsoft-365-policies.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-support-request.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-teams.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-unenroll-tenant.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-windows-feature-update-overview.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-windows-quality-update-communications.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-windows-quality-update-end-user-exp.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-windows-quality-update-overview.md (100%) rename windows/deployment/windows-autopatch/{operate => manage}/windows-autopatch-windows-quality-update-signals.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-device-alerts.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-maintain-environment.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-policy-health-and-remediation.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-reliability-report.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-resolve-policy-conflicts.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-windows-feature-update-status-report.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-windows-feature-update-summary-dashboard.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-windows-feature-update-trending-report.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-windows-quality-and-feature-update-reports-overview.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-windows-quality-update-status-report.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-windows-quality-update-summary-dashboard.md (100%) rename windows/deployment/windows-autopatch/{operate => monitor}/windows-autopatch-windows-quality-update-trending-report.md (100%) delete mode 100644 windows/deployment/windows-autopatch/operate/windows-autopatch-groups-update-management.md diff --git a/.openpublishing.redirection.windows-deployment.json b/.openpublishing.redirection.windows-deployment.json index 7f67dadb04..8a987dc711 100644 --- a/.openpublishing.redirection.windows-deployment.json +++ b/.openpublishing.redirection.windows-deployment.json @@ -1224,6 +1224,146 @@ "source_path": "windows/deployment/volume-activation/vamt-step-by-step.md", "redirect_url": "/windows/deployment/volume-activation/scenario-online-activation-vamt", "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-groups-update-management.md", + "redirect_url": "/windows/deployment/windows-autopatch/overview/windows-autopatch-overview", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-and-feature-update-reports-overview.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-and-feature-update-reports-overview", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-summary-dashboard.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-update-summary-dashboard", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-status-report.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-update-status-report", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-trending-report.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-update-trending-report", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-reliability-report.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-reliability-report", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-summary-dashboard.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-feature-update-summary-dashboard", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-status-report.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-feature-update-status-report", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-trending-report.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-feature-update-trending-report", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-device-alerts.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-device-alerts", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-policy-health-and-remediation.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-policy-health-and-remediation", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-resolve-policy-conflicts.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-resolve-policy-conflicts", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-maintain-environment.md", + "redirect_url": "/windows/deployment/windows-autopatch/monitor/windows-autopatch-maintain-environment", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-customize-windows-update-settings.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-customize-windows-update-settings", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-edge.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-edge", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-exclude-device.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-exclude-device", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-manage-driver-and-firmware-updates.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-manage-driver-and-firmware-updates", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-manage-windows-feature-update-releases.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-manage-windows-feature-update-releases", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-microsoft-365-apps-enterprise.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-microsoft-365-apps-enterprise", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-support-request.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-support-request", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-teams.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-teams", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-unenroll-tenant.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-unenroll-tenant", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-overview.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-feature-update-overview", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-communications.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-communications", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-end-user-exp.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-end-user-update-exp", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-overview.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-overview", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-signals.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-signals", + "redirect_document_id": false + }, + { + "source_path": "windows/deployment/windows-autopatch/references/windows-autopatch-microsoft-365-policies.md", + "redirect_url": "/windows/deployment/windows-autopatch/manage/windows-autopatch-microsoft-365-policies", + "redirect_document_id": false } ] } diff --git a/windows/deployment/windows-autopatch/TOC.yml b/windows/deployment/windows-autopatch/TOC.yml index 3e1a68db6b..b593d16504 100644 --- a/windows/deployment/windows-autopatch/TOC.yml +++ b/windows/deployment/windows-autopatch/TOC.yml @@ -47,79 +47,82 @@ href: deploy/windows-autopatch-groups-manage-autopatch-groups.md - name: Post-device registration readiness checks href: deploy/windows-autopatch-post-reg-readiness-checks.md - - name: Operate + - name: Manage href: items: - - name: Software update management - href: operate/windows-autopatch-groups-update-management.md + - name: Windows updates + href: items: - - name: Windows updates - href: - items: - - name: Customize Windows Update settings - href: operate/windows-autopatch-groups-windows-update.md - - name: Windows quality updates - href: operate/windows-autopatch-groups-windows-quality-update-overview.md - items: - - name: Windows quality update end user experience - href: operate/windows-autopatch-groups-windows-quality-update-end-user-exp.md - - name: Windows quality update signals - href: operate/windows-autopatch-groups-windows-quality-update-signals.md - - name: Windows quality update communications - href: operate/windows-autopatch-groups-windows-quality-update-communications.md - - name: Windows feature updates - href: operate/windows-autopatch-groups-windows-feature-update-overview.md - items: - - name: Manage Windows feature updates - href: operate/windows-autopatch-groups-manage-windows-feature-update-release.md - - name: Microsoft 365 Apps for enterprise - href: operate/windows-autopatch-microsoft-365-apps-enterprise.md - - name: Microsoft Edge - href: operate/windows-autopatch-edge.md - - name: Microsoft Teams - href: operate/windows-autopatch-teams.md - - name: Windows quality and feature update reports overview - href: operate/windows-autopatch-groups-windows-quality-and-feature-update-reports-overview.md - items: - - name: Windows quality update reports - href: + - name: Customize Windows Update settings + href: manage/windows-autopatch-customize-windows-update-settings.md + - name: Windows feature updates + href: manage/windows-autopatch-windows-feature-update-overview.md items: - - name: Summary dashboard - href: operate/windows-autopatch-groups-windows-quality-update-summary-dashboard.md - - name: Quality update status report - href: operate/windows-autopatch-groups-windows-quality-update-status-report.md - - name: Quality update trending report - href: operate/windows-autopatch-groups-windows-quality-update-trending-report.md - - name: Reliability report - href: operate/windows-autopatch-reliability-report.md + - name: Manage Windows feature updates + href: manage/windows-autopatch-manage-windows-feature-update-releases.md + - name: Windows quality updates + href: manage/windows-autopatch-windows-quality-update-overview.md + items: + - name: Windows quality update end user experience + href: manage/windows-autopatch-windows-quality-update-end-user-exp.md + - name: Windows quality update signals + href: manage/windows-autopatch-windows-quality-update-signals.md + - name: Windows quality update communications + href: manage/windows-autopatch-windows-quality-update-communications.md + - name: Manage driver and firmware updates + href: manage/windows-autopatch-manage-driver-and-firmware-updates.md + - name: Microsoft 365 Apps for enterprise + href: manage/windows-autopatch-microsoft-365-apps-enterprise.md + items: + - name: Microsoft 365 Apps for enterprise update policies + href: manage/windows-autopatch-microsoft-365-policies.md + - name: Microsoft Edge + href: manage/windows-autopatch-edge.md + - name: Microsoft Teams + href: manage/windows-autopatch-teams.md + - name: Submit a support request + href: manage/windows-autopatch-support-request.md + - name: Exclude a device + href: manage/windows-autopatch-exclude-device.md + - name: Unenroll your tenant + href: manage/windows-autopatch-unenroll-tenant.md + - name: Monitor + href: + items: + - name: Windows feature and quality update reports overview + href: monitor/windows-autopatch-windows-quality-and-feature-update-reports-overview.md + items: - name: Windows feature update reports href: items: - name: Summary dashboard - href: operate/windows-autopatch-groups-windows-feature-update-summary-dashboard.md + href: monitor/windows-autopatch-windows-feature-update-summary-dashboard.md - name: Feature update status report - href: operate/windows-autopatch-groups-windows-feature-update-status-report.md + href: monitor/windows-autopatch-windows-feature-update-status-report.md - name: Feature update trending report - href: operate/windows-autopatch-groups-windows-feature-update-trending-report.md - - name: Windows quality and feature update device alerts - href: operate/windows-autopatch-device-alerts.md + href: monitor/windows-autopatch-windows-feature-update-trending-report.md + - name: Windows quality update reports + href: + items: + - name: Summary dashboard + href: monitor/windows-autopatch-windows-quality-update-summary-dashboard.md + - name: Quality update status report + href: monitor/windows-autopatch-windows-quality-update-status-report.md + - name: Quality update trending report + href: monitor/windows-autopatch-windows-quality-update-trending-report.md + - name: Reliability report + href: monitor/windows-autopatch-reliability-report.md + - name: Windows feature and quality update device alerts + href: monitor/windows-autopatch-device-alerts.md - name: Policy health href: items: - name: Policy health and remediation - href: operate/windows-autopatch-policy-health-and-remediation.md + href: monitor/windows-autopatch-policy-health-and-remediation.md - name: Resolve policy conflicts - href: operate/windows-autopatch-resolve-policy-conflicts.md + href: monitor/windows-autopatch-resolve-policy-conflicts.md - name: Maintain the Windows Autopatch environment - href: operate/windows-autopatch-maintain-environment.md - - name: Manage driver and firmware updates - href: operate/windows-autopatch-manage-driver-and-firmware-updates.md - - name: Submit a support request - href: operate/windows-autopatch-support-request.md - - name: Exclude a device - href: operate/windows-autopatch-exclude-device.md - - name: Unenroll your tenant - href: operate/windows-autopatch-unenroll-tenant.md + href: monitor/windows-autopatch-maintain-environment.md - name: References href: items: @@ -128,8 +131,6 @@ items: - name: Windows update policies href: references/windows-autopatch-windows-update-unsupported-policies.md - - name: Microsoft 365 Apps for enterprise update policies - href: references/windows-autopatch-microsoft-365-policies.md - name: Conflicting configurations href: references/windows-autopatch-conflicting-configurations.md - name: Changes made at tenant enrollment diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-customize-windows-update-settings.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-customize-windows-update-settings.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-customize-windows-update-settings.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-customize-windows-update-settings.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-edge.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-edge.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-edge.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-edge.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-exclude-device.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-exclude-device.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-exclude-device.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-exclude-device.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-manage-driver-and-firmware-updates.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-manage-driver-and-firmware-updates.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-manage-driver-and-firmware-updates.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-manage-driver-and-firmware-updates.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-manage-windows-feature-update-releases.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-manage-windows-feature-update-releases.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-manage-windows-feature-update-releases.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-manage-windows-feature-update-releases.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-microsoft-365-apps-enterprise.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-microsoft-365-apps-enterprise.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-microsoft-365-apps-enterprise.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-microsoft-365-apps-enterprise.md diff --git a/windows/deployment/windows-autopatch/references/windows-autopatch-microsoft-365-policies.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-microsoft-365-policies.md similarity index 100% rename from windows/deployment/windows-autopatch/references/windows-autopatch-microsoft-365-policies.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-microsoft-365-policies.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-support-request.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-support-request.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-support-request.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-support-request.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-teams.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-teams.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-teams.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-teams.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-unenroll-tenant.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-unenroll-tenant.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-unenroll-tenant.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-unenroll-tenant.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-overview.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-feature-update-overview.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-overview.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-windows-feature-update-overview.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-communications.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-communications.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-communications.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-communications.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-end-user-exp.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-end-user-exp.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-end-user-exp.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-end-user-exp.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-overview.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-overview.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-overview.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-overview.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-signals.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-signals.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-signals.md rename to windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-signals.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-device-alerts.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-device-alerts.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-device-alerts.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-device-alerts.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-maintain-environment.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-maintain-environment.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-maintain-environment.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-maintain-environment.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-policy-health-and-remediation.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-policy-health-and-remediation.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-policy-health-and-remediation.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-policy-health-and-remediation.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-reliability-report.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-reliability-report.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-reliability-report.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-reliability-report.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-resolve-policy-conflicts.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-resolve-policy-conflicts.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-resolve-policy-conflicts.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-resolve-policy-conflicts.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-status-report.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-feature-update-status-report.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-status-report.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-feature-update-status-report.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-summary-dashboard.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-feature-update-summary-dashboard.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-summary-dashboard.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-feature-update-summary-dashboard.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-trending-report.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-feature-update-trending-report.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-feature-update-trending-report.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-feature-update-trending-report.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-and-feature-update-reports-overview.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-and-feature-update-reports-overview.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-and-feature-update-reports-overview.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-and-feature-update-reports-overview.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-status-report.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-update-status-report.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-status-report.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-update-status-report.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-summary-dashboard.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-update-summary-dashboard.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-summary-dashboard.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-update-summary-dashboard.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-trending-report.md b/windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-update-trending-report.md similarity index 100% rename from windows/deployment/windows-autopatch/operate/windows-autopatch-windows-quality-update-trending-report.md rename to windows/deployment/windows-autopatch/monitor/windows-autopatch-windows-quality-update-trending-report.md diff --git a/windows/deployment/windows-autopatch/operate/windows-autopatch-groups-update-management.md b/windows/deployment/windows-autopatch/operate/windows-autopatch-groups-update-management.md deleted file mode 100644 index 7d66ce8a49..0000000000 --- a/windows/deployment/windows-autopatch/operate/windows-autopatch-groups-update-management.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Software update management for Autopatch groups -description: This article provides an overview of how updates are handled with Autopatch groups -ms.date: 07/08/2024 -ms.service: windows-client -ms.subservice: itpro-updates -ms.topic: concept-article -ms.localizationpriority: medium -author: tiaraquan -ms.author: tiaraquan -manager: aaroncz -ms.reviewer: andredm7 -ms.collection: - - highpri - - tier1 ---- - -# Software update management - -Keeping your devices up to date is a balance of speed and stability. Windows Autopatch connects all devices to a modern cloud-based infrastructure to manage updates on your behalf. - -## Software update workloads - -| Software update workload | Description | -| ----- | ----- | -| Windows quality update | Windows Autopatch uses four deployment rings to manage [Windows quality updates](../operate/windows-autopatch-groups-windows-quality-update-overview.md) | -| Windows feature update | Windows Autopatch uses four deployment rings to manage [Windows feature updates](windows-autopatch-groups-windows-feature-update-overview.md) | -| Anti-virus definition | Updated with each scan. | -| Microsoft 365 Apps for enterprise | For more information, see [Microsoft 365 Apps for enterprise](windows-autopatch-microsoft-365-apps-enterprise.md). | -| Microsoft Edge | For more information, see [Microsoft Edge](../operate/windows-autopatch-edge.md). | -| Microsoft Teams | For more information, see [Microsoft Teams](../operate/windows-autopatch-teams.md). | - -## Autopatch groups - -Autopatch groups help Microsoft Cloud-Managed services meet all organizations where they are at in their update management journey. - -Autopatch groups is a logical container that groups several [Microsoft Entra groups](/azure/active-directory/fundamentals/active-directory-groups-view-azure-portal), and software update policies, such as Windows Update rings and feature update policies, together. - -For more information on key benefits and how to use Autopatch groups, see [Autopatch groups overview](../deploy/windows-autopatch-groups-overview.md). - -## Windows quality updates - -Windows Autopatch deploys the [Monthly security update releases](https://techcommunity.microsoft.com/t5/windows-it-pro-blog/windows-quality-updates-primer/ba-p/2569385) that are released on the second Tuesday of each month. - -To release updates to devices in a gradual manner, Windows Autopatch deploys a set of mobile device management (MDM) policies to each update deployment ring to control the rollout. For more information, see [Windows quality updates overview](../operate/windows-autopatch-groups-windows-quality-update-overview.md). - -## Windows feature updates - -You're in control of telling Windows Autopatch when your organization is ready to move to the next Windows OS version. - -The Window feature update release management experience makes it easier and less expensive for you to keep your Windows devices up to date. You can focus on running your core businesses while Windows Autopatch runs update management on your behalf. - -For more information, see [Windows feature updates overview](../operate/windows-autopatch-groups-windows-feature-update-overview.md). - -## Reports - -Using [Windows quality and feature update reports](../operate/windows-autopatch-groups-windows-quality-and-feature-update-reports-overview.md), you can monitor and remediate Windows Autopatch managed devices that are Not up to Date and resolve any device alerts to bring Windows Autopatch managed devices back into compliance. - -## Policy health and remediation - -Windows Autopatch deploys Intune policies for Windows quality and feature update management. Windows Update policies must remain healthy for devices to receive Windows updates and stay up to date. We continuously monitor the health of the policies and raise alerts and provide remediation actions. For more information, see [Policy health and remediation](../operate/windows-autopatch-policy-health-and-remediation.md) and [Changes made at tenant enrollment](../references/windows-autopatch-changes-to-tenant.md). From 8d81c1e35533ac1f6156f2a0fb3b67685f0990bd Mon Sep 17 00:00:00 2001 From: tiaraquan Date: Tue, 30 Jul 2024 13:02:26 -0700 Subject: [PATCH 098/108] Broken links --- .../manage/windows-autopatch-microsoft-365-apps-enterprise.md | 4 +--- .../windows-autopatch-windows-quality-update-overview.md | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/windows/deployment/windows-autopatch/manage/windows-autopatch-microsoft-365-apps-enterprise.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-microsoft-365-apps-enterprise.md index f0c70e6586..faa825d861 100644 --- a/windows/deployment/windows-autopatch/manage/windows-autopatch-microsoft-365-apps-enterprise.md +++ b/windows/deployment/windows-autopatch/manage/windows-autopatch-microsoft-365-apps-enterprise.md @@ -128,9 +128,7 @@ For organizations seeking greater control, you can allow or block Microsoft 365 [Servicing profiles](/deployoffice/admincenter/servicing-profile) is a feature in the [Microsoft 365 Apps admin center](https://config.office.com/) that provides controlled update management of monthly Office updates, including controls for user and device targeting, scheduling, rollback, and reporting. -A [service profile](/deployoffice/admincenter/servicing-profile#compatibility-with-other-management-tools) takes precedence over other policies, such as a Microsoft Intune policy or the Office Deployment Tool. The servicing profile affects all devices that meet the [device eligibility requirements](#device-eligibility) regardless of existing management tools in your environment. So, if you're targeting a managed device with a servicing profile it's ineligible for Microsoft 365 App update management. - -However, the device may still be eligible for other managed updates. For more information about a device's eligibility for a given [software update workload](windows-autopatch-update-management.md#software-update-workloads), see the Device eligibility section of each respective software update workload. +A [service profile](/deployoffice/admincenter/servicing-profile#compatibility-with-other-management-tools) takes precedence over other policies, such as a Microsoft Intune policy or the Office Deployment Tool. The servicing profile affects all devices that meet the [device eligibility requirements](#device-eligibility) regardless of existing management tools in your environment. So, if you're targeting a managed device with a servicing profile it's ineligible for Microsoft 365 App update management.However, the device may still be eligible for other managed updates. ## Incidents and outages diff --git a/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-overview.md b/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-overview.md index e9dc59e3a6..cf05f0f72f 100644 --- a/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-overview.md +++ b/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-overview.md @@ -120,7 +120,7 @@ In the Release management blade, you can: ### Release schedule -For each [deployment ring](windows-autopatch-update-management.md#windows-autopatch-deployment-rings), the **Release schedule** tab contains: +For each deployment ring, the **Release schedule** tab contains: - The status of the update. Releases appear as **Active**. The update schedule is based on the values of the [Windows 10 Update Ring policies](/mem/intune/protect/windows-update-for-business-configure), which are configured on your behalf. - The date the update is available. From a4335c54eeb7df1bc78c4b40b2308d3013f6055b Mon Sep 17 00:00:00 2001 From: AbhinavMSFT <100221072+AbhinavMSFT@users.noreply.github.com> Date: Wed, 31 Jul 2024 19:42:57 +0530 Subject: [PATCH 099/108] Update policy-csp-update.md Update Target version CSP section as productVersion is also required for TargetVision policy to work --- windows/client-management/mdm/policy-csp-update.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/windows/client-management/mdm/policy-csp-update.md b/windows/client-management/mdm/policy-csp-update.md index 796984d07c..84ade66a36 100644 --- a/windows/client-management/mdm/policy-csp-update.md +++ b/windows/client-management/mdm/policy-csp-update.md @@ -1223,7 +1223,9 @@ If you enter an invalid value, you'll remain on your current version until you c Supported value type is a string containing Windows version number. For example, `1809`, `1903`, etc. - +> [!NOTE] +> You need to set up the ProductVersion CSP along with the TargetReleaseVersion CSP for it to work. +> **Description framework properties**: From cc73e1b8fa5c100ebceba0117c9846ce1438ceec Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Wed, 31 Jul 2024 11:22:24 -0400 Subject: [PATCH 100/108] chore: Fix typo in configuration-file.md --- .../assigned-access/shell-launcher/configuration-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/configuration/assigned-access/shell-launcher/configuration-file.md b/windows/configuration/assigned-access/shell-launcher/configuration-file.md index 2dba54c2c4..d63efdb85b 100644 --- a/windows/configuration/assigned-access/shell-launcher/configuration-file.md +++ b/windows/configuration/assigned-access/shell-launcher/configuration-file.md @@ -106,7 +106,7 @@ Each profile defines a `Shell` element, which contains details about the applica |-|-|-| |`Shell`| Application that is used as a Windows shell. |- For Universal Windows Platform (UWP) apps, you must provide the App User Model ID (AUMID). Learn how to [Find the Application User Model ID of an installed app](../../store/find-aumid.md).
    - For desktop apps, specify the full path of the executable, which can contain system environment variables in the form of `%variableName%`. You can also specify any parameters that the app might require. | |`V2:AppType`| Defines the type of application. |Allowed values are `Desktop` and `UWP`.| -|`V2:AllAppsFullScreen` | Boolean value that defines if all applications are executed in full screen. |- When set to `True`, Shell Launcher runs every app in full screen, or maximized for desktop apps.
    - When set to `False` or not set, only the custom shell app runs in full screen; other apps launched by the user run in windowed mode.| +|`V2:AllAppsFullScreen` | Boolean value that defines if all applications are executed in full screen. |- When set to `true`, Shell Launcher runs every app in full screen, or maximized for desktop apps.
    - When set to `false` or not set, only the custom shell app runs in full screen; other apps launched by the user run in windowed mode.| Example: From ef0796dccaa7f2d833c59927a9c87d5252e33aa0 Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Wed, 31 Jul 2024 11:42:51 -0400 Subject: [PATCH 101/108] updated string in picture --- ...ry-multiple-passwords-multiple-backups.png | Bin 64959 -> 65260 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/windows/security/operating-system-security/data-protection/bitlocker/images/preboot-recovery-multiple-passwords-multiple-backups.png b/windows/security/operating-system-security/data-protection/bitlocker/images/preboot-recovery-multiple-passwords-multiple-backups.png index 10229caf37fb45748093528a92a55bd0ccc965df..6dd45ec322c1a7ea58c440b6da9c1798396912ef 100644 GIT binary patch delta 33717 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 bIDC)y-u>^$0dpnp*>C9?-#}k;eEI(a{;D~5 delta 33221 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 From d85446b4fe75f2701ea9185b63002ee236769271 Mon Sep 17 00:00:00 2001 From: tiaraquan Date: Wed, 31 Jul 2024 09:21:35 -0700 Subject: [PATCH 102/108] Fixed TOC --- windows/deployment/windows-autopatch/TOC.yml | 67 ++++++++++---------- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/windows/deployment/windows-autopatch/TOC.yml b/windows/deployment/windows-autopatch/TOC.yml index b593d16504..407041507f 100644 --- a/windows/deployment/windows-autopatch/TOC.yml +++ b/windows/deployment/windows-autopatch/TOC.yml @@ -50,42 +50,39 @@ - name: Manage href: items: - - name: Windows updates - href: + - name: Customize Windows Update settings + href: manage/windows-autopatch-customize-windows-update-settings.md + - name: Windows feature updates + href: manage/windows-autopatch-windows-feature-update-overview.md items: - - name: Customize Windows Update settings - href: manage/windows-autopatch-customize-windows-update-settings.md - - name: Windows feature updates - href: manage/windows-autopatch-windows-feature-update-overview.md - items: - - name: Manage Windows feature updates - href: manage/windows-autopatch-manage-windows-feature-update-releases.md - - name: Windows quality updates - href: manage/windows-autopatch-windows-quality-update-overview.md - items: - - name: Windows quality update end user experience - href: manage/windows-autopatch-windows-quality-update-end-user-exp.md - - name: Windows quality update signals - href: manage/windows-autopatch-windows-quality-update-signals.md - - name: Windows quality update communications - href: manage/windows-autopatch-windows-quality-update-communications.md - - name: Manage driver and firmware updates - href: manage/windows-autopatch-manage-driver-and-firmware-updates.md - - name: Microsoft 365 Apps for enterprise - href: manage/windows-autopatch-microsoft-365-apps-enterprise.md - items: - - name: Microsoft 365 Apps for enterprise update policies - href: manage/windows-autopatch-microsoft-365-policies.md - - name: Microsoft Edge - href: manage/windows-autopatch-edge.md - - name: Microsoft Teams - href: manage/windows-autopatch-teams.md - - name: Submit a support request - href: manage/windows-autopatch-support-request.md - - name: Exclude a device - href: manage/windows-autopatch-exclude-device.md - - name: Unenroll your tenant - href: manage/windows-autopatch-unenroll-tenant.md + - name: Manage Windows feature updates + href: manage/windows-autopatch-manage-windows-feature-update-releases.md + - name: Windows quality updates + href: manage/windows-autopatch-windows-quality-update-overview.md + items: + - name: Windows quality update end user experience + href: manage/windows-autopatch-windows-quality-update-end-user-exp.md + - name: Windows quality update signals + href: manage/windows-autopatch-windows-quality-update-signals.md + - name: Windows quality update communications + href: manage/windows-autopatch-windows-quality-update-communications.md + - name: Manage driver and firmware updates + href: manage/windows-autopatch-manage-driver-and-firmware-updates.md + - name: Microsoft 365 Apps for enterprise + href: manage/windows-autopatch-microsoft-365-apps-enterprise.md + items: + - name: Microsoft 365 Apps for enterprise update policies + href: manage/windows-autopatch-microsoft-365-policies.md + - name: Microsoft Edge + href: manage/windows-autopatch-edge.md + - name: Microsoft Teams + href: manage/windows-autopatch-teams.md + - name: Submit a support request + href: manage/windows-autopatch-support-request.md + - name: Exclude a device + href: manage/windows-autopatch-exclude-device.md + - name: Unenroll your tenant + href: manage/windows-autopatch-unenroll-tenant.md - name: Monitor href: items: From d49980896566b338119bf5df6afe3e1b90e77ce5 Mon Sep 17 00:00:00 2001 From: Vinay Pamnani <37223378+vinaypamnani-msft@users.noreply.github.com> Date: Thu, 1 Aug 2024 10:47:46 -0600 Subject: [PATCH 103/108] Remove titleSuffix --- windows/application-management/docfx.json | 1 - windows/client-management/docfx.json | 5 ++--- windows/configuration/docfx.json | 1 - windows/deployment/docfx.json | 5 ++--- windows/hub/docfx.json | 5 ++--- windows/hub/index.yml | 2 +- windows/security/docfx.json | 1 - 7 files changed, 7 insertions(+), 13 deletions(-) diff --git a/windows/application-management/docfx.json b/windows/application-management/docfx.json index 4f5ec979b0..ddb34848ae 100644 --- a/windows/application-management/docfx.json +++ b/windows/application-management/docfx.json @@ -51,7 +51,6 @@ "folder_relative_path_in_docset": "./" } }, - "titleSuffix": "Windows Application Management", "contributors_to_exclude": [ "dstrome2", "rjagiewich", diff --git a/windows/client-management/docfx.json b/windows/client-management/docfx.json index 07e6f430e8..4f0356dff4 100644 --- a/windows/client-management/docfx.json +++ b/windows/client-management/docfx.json @@ -56,12 +56,11 @@ "folder_relative_path_in_docset": "./" } }, - "titleSuffix": "Windows Client Management", "contributors_to_exclude": [ "dstrome2", - "rjagiewich", + "rjagiewich", "American-Dipper", - "claydetels19", + "claydetels19", "jborsecnik", "v-stchambers", "shdyas", diff --git a/windows/configuration/docfx.json b/windows/configuration/docfx.json index 65d0a53b09..5374491680 100644 --- a/windows/configuration/docfx.json +++ b/windows/configuration/docfx.json @@ -52,7 +52,6 @@ "folder_relative_path_in_docset": "./" } }, - "titleSuffix": "Configure Windows", "contributors_to_exclude": [ "dstrome2", "rjagiewich", diff --git a/windows/deployment/docfx.json b/windows/deployment/docfx.json index 0ec95143b6..3b57082428 100644 --- a/windows/deployment/docfx.json +++ b/windows/deployment/docfx.json @@ -49,12 +49,11 @@ "folder_relative_path_in_docset": "./" } }, - "titleSuffix": "Windows Deployment", "contributors_to_exclude": [ "dstrome2", - "rjagiewich", + "rjagiewich", "American-Dipper", - "claydetels19", + "claydetels19", "jborsecnik", "v-stchambers", "shdyas", diff --git a/windows/hub/docfx.json b/windows/hub/docfx.json index 5fddd27458..b548f8eed2 100644 --- a/windows/hub/docfx.json +++ b/windows/hub/docfx.json @@ -52,12 +52,11 @@ "folder_relative_path_in_docset": "./" } }, - "titleSuffix": "Windows for IT Pros", "contributors_to_exclude": [ "dstrome2", - "rjagiewich", + "rjagiewich", "American-Dipper", - "claydetels19", + "claydetels19", "jborsecnik", "v-stchambers", "shdyas", diff --git a/windows/hub/index.yml b/windows/hub/index.yml index 95d49b10a7..cc73d3aebc 100644 --- a/windows/hub/index.yml +++ b/windows/hub/index.yml @@ -5,7 +5,7 @@ summary: Learn how to deploy, secure, and manage Windows clients for your organi brand: windows metadata: - title: Windows client documentation + title: Windows client documentation for IT Pros description: Learn how to deploy, secure, and manage Windows clients for your organization. ms.topic: hub-page ms.service: windows-client diff --git a/windows/security/docfx.json b/windows/security/docfx.json index 2e3135282a..d93c46f45c 100644 --- a/windows/security/docfx.json +++ b/windows/security/docfx.json @@ -53,7 +53,6 @@ "folder_relative_path_in_docset": "./" } }, - "titleSuffix": "Windows Security", "contributors_to_exclude": [ "alekyaj", "alexbuckgit", From 134b9be4f6c0cf97ec3473ad896210db9378e5e2 Mon Sep 17 00:00:00 2001 From: Aaron Czechowski Date: Thu, 1 Aug 2024 09:54:29 -0700 Subject: [PATCH 104/108] move into editable section --- windows/client-management/mdm/policy-csp-update.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/windows/client-management/mdm/policy-csp-update.md b/windows/client-management/mdm/policy-csp-update.md index 84ade66a36..b9c4783c85 100644 --- a/windows/client-management/mdm/policy-csp-update.md +++ b/windows/client-management/mdm/policy-csp-update.md @@ -1222,10 +1222,11 @@ If you enter an invalid value, you'll remain on your current version until you c Supported value type is a string containing Windows version number. For example, `1809`, `1903`, etc. - + > [!NOTE] > You need to set up the ProductVersion CSP along with the TargetReleaseVersion CSP for it to work. -> + + **Description framework properties**: From f861a38b7a7cf3e3ca7bd74c6fd6e4d825cc7a95 Mon Sep 17 00:00:00 2001 From: Vinay Pamnani <37223378+vinaypamnani-msft@users.noreply.github.com> Date: Thu, 1 Aug 2024 10:57:57 -0600 Subject: [PATCH 105/108] Update link --- windows/hub/index.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/hub/index.yml b/windows/hub/index.yml index cc73d3aebc..82bfa7955a 100644 --- a/windows/hub/index.yml +++ b/windows/hub/index.yml @@ -91,7 +91,7 @@ productDirectory: text: Diagnostic Data Viewer - url: /windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services text: Manage connections to Microsoft services - - url: /windows/privacy/windows-10-and-privacy-compliance + - url: /windows/privacy/windows-privacy-compliance-guide text: Windows privacy compliance guide - url: /windows/privacy text: Learn more about privacy in Windows > From 91447abb9116d9fa04e2364ff9ef1e53ce216277 Mon Sep 17 00:00:00 2001 From: "Daniel H. Brown" <32883970+DHB-MSFT@users.noreply.github.com> Date: Thu, 1 Aug 2024 11:03:01 -0700 Subject: [PATCH 106/108] Remove links to archived articles --- ...required-windows-diagnostic-data-events-and-fields-2004.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/windows/privacy/required-windows-diagnostic-data-events-and-fields-2004.md b/windows/privacy/required-windows-diagnostic-data-events-and-fields-2004.md index a2da4f8863..4fb9beb260 100644 --- a/windows/privacy/required-windows-diagnostic-data-events-and-fields-2004.md +++ b/windows/privacy/required-windows-diagnostic-data-events-and-fields-2004.md @@ -33,11 +33,7 @@ You can learn more about Windows functional and diagnostic data through these ar - [Required diagnostic events and fields for Windows 11, versions 23H2 and 22H2](required-diagnostic-events-fields-windows-11-22H2.md) - [Required diagnostic events and fields for Windows 11, version 21H2](required-windows-11-diagnostic-events-and-fields.md) -- [Windows 10, version 1903 and Windows 10, version 1909 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1903.md) - [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) -- [Windows 10, version 1703 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1703.md) - [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) - [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) From 57184d53f53b8d35a5123a9663331047d079ee30 Mon Sep 17 00:00:00 2001 From: David Strome <21028455+dstrome@users.noreply.github.com> Date: Thu, 1 Aug 2024 11:22:09 -0700 Subject: [PATCH 107/108] add workflows to repo --- .github/workflows/AutoLabelAssign.yml | 41 +++++++++++++++++++ .../workflows/AutoLabelMsftContributor.yml | 40 ++++++++++++++++++ .github/workflows/BackgroundTasks.yml | 26 ++++++++++++ .github/workflows/LiveMergeCheck.yml | 22 ++++++++++ .github/workflows/PrFileCount.yml | 22 ++++++++++ .github/workflows/ProtectedFiles.yml | 20 +++++++++ 6 files changed, 171 insertions(+) create mode 100644 .github/workflows/AutoLabelAssign.yml create mode 100644 .github/workflows/AutoLabelMsftContributor.yml create mode 100644 .github/workflows/BackgroundTasks.yml create mode 100644 .github/workflows/LiveMergeCheck.yml create mode 100644 .github/workflows/PrFileCount.yml create mode 100644 .github/workflows/ProtectedFiles.yml diff --git a/.github/workflows/AutoLabelAssign.yml b/.github/workflows/AutoLabelAssign.yml new file mode 100644 index 0000000000..8247aa8e9c --- /dev/null +++ b/.github/workflows/AutoLabelAssign.yml @@ -0,0 +1,41 @@ +name: Assign and label PR + +permissions: + pull-requests: write + contents: read + actions: read + +on: + workflow_run: + workflows: [Background tasks] + types: + - completed + +jobs: + download-payload: + name: Download and extract payload artifact + uses: MicrosoftDocs/microsoft-365-docs/.github/workflows/Shared-ExtractPayload.yml@workflows-prod + with: + WorkflowId: ${{ github.event.workflow_run.id }} + OrgRepo: ${{ github.repository }} + secrets: + AccessToken: ${{ secrets.GITHUB_TOKEN }} + + label-assign: + name: Run assign and label + needs: [download-payload] + uses: MicrosoftDocs/microsoft-365-docs/.github/workflows/Shared-AutoLabelAssign.yml@workflows-prod + with: + PayloadJson: ${{ needs.download-payload.outputs.WorkflowPayload }} + AutoAssignUsers: 1 + AutoLabel: 1 + ExcludedUserList: '["user1", "user2"]' + ExcludedBranchList: '["branch1", "branch2"]' + secrets: + AccessToken: ${{ secrets.GITHUB_TOKEN }} + + + + + + diff --git a/.github/workflows/AutoLabelMsftContributor.yml b/.github/workflows/AutoLabelMsftContributor.yml new file mode 100644 index 0000000000..66992cfeef --- /dev/null +++ b/.github/workflows/AutoLabelMsftContributor.yml @@ -0,0 +1,40 @@ +name: Auto label Microsoft contributors + +permissions: + pull-requests: write + contents: read + actions: read + +on: + workflow_run: + workflows: [Background tasks] + types: + - completed + +jobs: + download-payload: + if: github.repository_visibility == 'public' + name: Download and extract payload artifact + uses: MicrosoftDocs/microsoft-365-docs/.github/workflows/Shared-ExtractPayload.yml@workflows-prod + with: + WorkflowId: ${{ github.event.workflow_run.id }} + OrgRepo: ${{ github.repository }} + secrets: + AccessToken: ${{ secrets.GITHUB_TOKEN }} + + label-msft: + name: Label Microsoft contributors + if: github.repository_visibility == 'public' + needs: [download-payload] + uses: MicrosoftDocs/microsoft-365-docs/.github/workflows/Shared-AutoLabelMsftContributor.yml@workflows-prod + with: + PayloadJson: ${{ needs.download-payload.outputs.WorkflowPayload }} + secrets: + AccessToken: ${{ secrets.GITHUB_TOKEN }} + TeamReadAccessToken: ${{ secrets.ORG_READTEAMS_TOKEN }} + + + + + + diff --git a/.github/workflows/BackgroundTasks.yml b/.github/workflows/BackgroundTasks.yml new file mode 100644 index 0000000000..c0389bb252 --- /dev/null +++ b/.github/workflows/BackgroundTasks.yml @@ -0,0 +1,26 @@ +name: Background tasks + +permissions: + pull-requests: write + contents: read + +on: + pull_request_target: + +jobs: + upload: + runs-on: ubuntu-latest + + steps: + - name: Save payload data + env: + PayloadJson: ${{ toJSON(github) }} + AccessToken: ${{ github.token }} + run: | + mkdir -p ./pr + echo $PayloadJson > ./pr/PayloadJson.json + sed -i -e "s/$AccessToken/XYZ/g" ./pr/PayloadJson.json + - uses: actions/upload-artifact@v4 + with: + name: PayloadJson + path: pr/ diff --git a/.github/workflows/LiveMergeCheck.yml b/.github/workflows/LiveMergeCheck.yml new file mode 100644 index 0000000000..faeb2a0ef4 --- /dev/null +++ b/.github/workflows/LiveMergeCheck.yml @@ -0,0 +1,22 @@ +name: PR can merge into branch + +permissions: + pull-requests: write + statuses: write + contents: read + +on: + pull_request_target: + types: [opened, reopened, synchronize, edited] + +jobs: + + live-merge: + uses: MicrosoftDocs/microsoft-365-docs/.github/workflows/Shared-LiveMergeCheck.yml@workflows-prod + with: + PayloadJson: ${{ toJSON(github) }} + secrets: + AccessToken: ${{ secrets.GITHUB_TOKEN }} + + + \ No newline at end of file diff --git a/.github/workflows/PrFileCount.yml b/.github/workflows/PrFileCount.yml new file mode 100644 index 0000000000..40f7d61629 --- /dev/null +++ b/.github/workflows/PrFileCount.yml @@ -0,0 +1,22 @@ +name: PR file count less than limit + +permissions: + pull-requests: write + statuses: write + contents: read + +on: + pull_request_target: + types: [opened, reopened, synchronize, labeled, unlabeled, edited] + +jobs: + + file-count: + uses: MicrosoftDocs/microsoft-365-docs/.github/workflows/Shared-PrFileCount.yml@workflows-prod + with: + PayloadJson: ${{ toJSON(github) }} + secrets: + AccessToken: ${{ secrets.GITHUB_TOKEN }} + + + diff --git a/.github/workflows/ProtectedFiles.yml b/.github/workflows/ProtectedFiles.yml new file mode 100644 index 0000000000..007f8f04b1 --- /dev/null +++ b/.github/workflows/ProtectedFiles.yml @@ -0,0 +1,20 @@ +name: PR has no protected files + +permissions: + pull-requests: write + statuses: write + contents: read + +on: [pull_request_target] + +jobs: + + protected-files: + uses: MicrosoftDocs/microsoft-365-docs/.github/workflows/Shared-ProtectedFiles.yml@workflows-prod + with: + PayloadJson: ${{ toJSON(github) }} + secrets: + AccessToken: ${{ secrets.GITHUB_TOKEN }} + + + \ No newline at end of file From 069256bb0540706979f165d55875243405777811 Mon Sep 17 00:00:00 2001 From: Vinay Pamnani <37223378+vinaypamnani-msft@users.noreply.github.com> Date: Fri, 2 Aug 2024 12:17:05 -0600 Subject: [PATCH 108/108] Update redirect for smartscreen --- .openpublishing.redirection.windows-security.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.openpublishing.redirection.windows-security.json b/.openpublishing.redirection.windows-security.json index 93967da44e..4e67945cc9 100644 --- a/.openpublishing.redirection.windows-security.json +++ b/.openpublishing.redirection.windows-security.json @@ -4082,7 +4082,7 @@ }, { "source_path": "windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview.md", - "redirect_url": "/windows/security/operating-system-security/virus-and-threat-protection/microsoft-defender-smartscreen", + "redirect_url": "https://feedback.smartscreen.microsoft.com/smartscreenfaq.aspx", "redirect_document_id": false }, { @@ -6727,7 +6727,7 @@ }, { "source_path": "windows/security/threat-protection/windows-defender-smartscreen/windows-defender-smartscreen-overview.md", - "redirect_url": "/windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview", + "redirect_url": "https://feedback.smartscreen.microsoft.com/smartscreenfaq.aspx", "redirect_document_id": false }, {

>q6=q68Uw-~Ua4Z4K-2)I{ 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 literal 64370 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≀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 Jmfy9B_Wk26C@WTlgEki93s3wW!-~l7>^C_P@ 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 literal 0 HcmV?d00001 diff --git a/windows/deployment/do/waas-delivery-optimization-configure.md b/windows/deployment/do/waas-delivery-optimization-configure.md new file mode 100644 index 0000000000..97ad1a3077 --- /dev/null +++ b/windows/deployment/do/waas-delivery-optimization-configure.md @@ -0,0 +1,237 @@ +--- +title: Configure Delivery Optimization for Windows +description: In this article, learn how to set up Delivery Optimization for use by Windows clients in your organization. +ms.service: windows-client +ms.subservice: itpro-updates +ms.topic: how-to +author: cmknox +ms.author: carmenf +ms.reviewer: mstewart +manager: aaroncz +ms.collection: + - tier3 + - essentials-get-started +ms.localizationpriority: medium +appliesto: +- ✅ Windows 11 +- ✅ Windows 10 +- ✅ Delivery Optimization +ms.date: 07/01/2024 +--- + +# Configure Delivery Optimization for Windows + +## Delivery Optimization set up considerations checklist + +* Allow Delivery Optimization communication +* Find Delivery Optimization +* Network topology +* Device count +* System resources +* Improve efficiencies +* Connected Cache + +:::image type="content" source="images/do-setup-full.png" alt-text="Screenshot of the various Delivery Optimization configurations that should be considered to maximize efficiency." lightbox="images/do-setup-full.png"::: + +## Allow DO communication + +:::image type="content" source="images/do-setup-allow-communication.png" alt-text="Screenshot of the considerations to allow Delivery Optimization communication." lightbox="images/do-setup-allow-communication.png"::: + +Learn more about Firewall, Proxy, and Port requirements for Delivery Optimization communication. + +### Firewall + +There are some host names that you need to permit through your Firewall for Delivery Optimization to communicate. Check the [full list](waas-delivery-optimization-faq.yml#what-hostnames-should-i-allow-through-my-firewall-to-support-delivery-optimization) of host names to permit. + +### Local proxy + +When using a proxy, you’ll want to bypass calls from the Delivery Optimization service (*.prod.do.dsp.mp.microsoft.com), as any altering of the public IP address will prevent peering from working properly. For downloads from HTTP sources, Delivery Optimization can use the automatic proxy discovery capability of WinHttp to handle communication with the proxy server. It’s important to know, Delivery Optimization uses byte range requests, so you’ll want to make sure your proxy allows this capability.. [Learn more](delivery-optimization-proxy.md) about Delivery Optimization with a proxy server. + +### Cloud proxy + +If you are using a cloud proxy, you should configure it to allow Delivery Optimization traffic to [bypass the proxy](waas-delivery-optimization-faq.yml#what-is-the-recommended-configuration-for-delivery-optimization-used-with-cloud-proxies). Otherwise, you may experience reduced performance and increased bandwidth consumption. + +### Ports + +Delivery Optimization requires the use of certain ports to deliver content. Make sure you have opened all the [required ports](/waas-delivery-optimization-faq.yml#which-ports-does-delivery-optimization-use) to make Delivery Optimization work seamlessly. + +## DO presence + +:::image type="content" source="images/do-setup-presence.png" alt-text="Screenshot of different product areas where you'll find Delivery Optimization." lightbox="images/do-setup-presence.png"::: + +Use Group Policy or MDM Policies to locate Delivery Optimization settings. + +**Group Policies:** Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization. +**MDM Policies:** You can use an MDM solution like Intune to configure Delivery Optimization. + +Delivery Optimization is increasingly found throughout Microsoft products. Learn more about the areas where there is integration to see how you can optimize the results in your environment. + +* [Microsoft Endpoint Manager (MEM)](https://learn.microsoft.com/en-us/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) +* [Microsoft Endpoint Configuration Manager (MECM)](https://learn.microsoft.com/en-us/mem/intune/configuration/delivery-optimization-windows) +* [Autopilot](https://learn.microsoft.com/en-us/windows/deployment/windows-deployment-scenarios#modern-deployment-methods)/[Autopatch](https://learn.microsoft.com/en-us/windows/deployment/windows-autopatch/overview/windows-autopatch-overview) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies will be applied. + +## Network topology + +:::image type="content" source="images/do-setup-network-topology.png" alt-text="Screenshot of Delivery Optimization network topology considerations." lightbox="images/do-setup-network-topology.png"::: + +Peer groups can be defined in Delivery Optimization using a combination of settings such as [‘DODownloadMode’](waas-delivery-optimization-reference.md#download-mode), [‘DOGroupID’](waas-delivery-optimization-reference.md#group-id), [‘DOGroupIDSource’](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [‘DORestrictPeerSelection’](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings you use will depend on your desired peer group(s) and your network topology.* + +### Peer-to-peer setup + +#### Define peer groups + +##### Local area network (LAN) + +To limit a peer group to your LAN, choose [‘DODownloadMode’](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This will include any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. + +##### Wide area network (WAN) + +To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use Download Mode ‘2’, Group-mode. Group download mode allows you to define a unique GUID Group ID or leverage existing “boundaries” in your enterprise with the [‘DOGroupIDSource’](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. + +##### GroupIDSource default behavior + +There are several options for identifying your Group ID using the [‘DOGroupIDSource’](waas-delivery-optimization-reference.md#select-the-source-of-group-ids). The default behavior, when the [‘DOGroupID’](waas-delivery-optimization-reference.md#group-id) or [‘DOGroupIDSource’](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) policies are not set, is to determine the Group ID using AD Site (1), Authenticated domain SID (2), or Microsoft Entra tenant ID (5). More information on all [‘DOGroupIDSource’](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting options available. + +> [!NOTE] +> If your peer group spans across NATs, the Teredo service will be used on port 3544. + +##### Restrict peer selection + +If your environment requires a more granular approach, you can use the Restrict Peer Discovery setting alongside the Download Mode to achieve more control. For example, if you have several different subnets behind the same NAT but want to limit your peer groups to a single subnet, choose [‘DODownloadMode’](waas-delivery-optimization-reference.md#download-mode) (1) and [‘DORestrictPeerSelection’](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection)(Subnet). This setting can be used in conjunction with any of the peer-related Download Modes (1’, 2’, or ‘3’). + +### Non-peering options + +There are two valid Download Modes that do not leverage the peer-to-peer functionality to deliver content; Download Modes (0) and (99). Download Mode (0) provides hash checks of the requested content and allows for quick detection and recovery of corrupted data due to the use of piece level hash checks. Download Mode (99) will provide a reliable download experience over HTTP from the download's original source or Microsoft, with no additional checks. + +### Peering with VPN + +By default, if Delivery Optimization detects a VPN, peering will not be used. To enable this behavior, use the [‘DOAllowVPNPeerCaching’](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization Client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification use the [‘DOVpnKeywords’](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN. Also related, there is a [‘DODisallowCacheServerDownloadsOnVPN*’](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) policy to prevent downloads from a cache server while on a VPN connection. + +## Device counts + +:::image type="content" source="images/do-setup-device-counts.png" alt-text="Screenshot of Delivery Optimization device count considerations." lightbox="images/do-setup-device-counts.png"::: + +Delivery Optimization is designed to perform best in a large-scale environment with many devices. Depending on the size of the environment, you should evaluate the value of the [‘DOMinFileSizeToCache’](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to optimize peering. + +### Cache file size + +Content peering has a limited number of slots available at any given time. By default, only content files that are 50MB or larger can be used for peering. In an environment with more than 30 devices, change the [‘DOMinFileSizeToCache’](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to a lower value (10MB), to have more content available for peering, which can be distributed among many devices. For an even larger number of devices (>100) you can raise this setting to (1MB). + +### Mobile devices + +By default, peer-to-peer capabilities are not enabled for devices using a battery. If there are many mobile devices in your environment, consider enabling the [‘DOMinBatteryPercentageAllowedToUpload’](waas-delivery-optimization-reference.md#allow-uploads-while-the-device-is-on-battery-while-under-set-battery-level) policy to 60%, to use peering while on battery. + +## System resources + +:::image type="content" source="images/do-setup-system-resources.png" alt-text="Screenshot of Delivery Optimization system resources considerations." lightbox="images/do-setup-system-resources.png"::: + +There are some Delivery Optimization configurations that can make an impact when ample system resources are available. + +### Disk size + +Alter the minimum disk size a device must have to use peering with the [‘DOMinDiskSizeAllowedToPeer’](waas-delivery-optimization-reference.md#minimum-disk-size-allowed-to-use-peer-caching) setting. You can also manage the amount of space the Delivery Optimization cache uses with the following settings: [‘DOMaxCacheSize’](waas-delivery-optimization-reference.md#max-cache-size)/[’DOAbsoluteMaxCacheSize’](waas-delivery-optimization-reference.md#absolute-max-cache-size). + +### RAM size + +Control the minimum amount of RAM (inclusive) allowed to use peer caching, [‘DOMinRAMAllowedToPeer’](waas-delivery-optimization-reference.md#minimum-ram-inclusive-allowed-to-use-peer-caching). + +### Large # of devices with healthy system resources + +In a lab situation, you typically have set number of devices that are plugged in and have a lot of free disk space. By increasing the content expiration interval of [‘DOMaxCacheAge’](waas-delivery-optimization-reference.md#max-cache-age) to 7 or more (up to 30 days), you can take advantage of these devices, using them as excellent upload sources to upload more content over a longer period. + +## Improve efficiencies + +:::image type="content" source="images/do-setup-improve-efficiencies.png" alt-text="Screenshot of Delivery Optimization improve efficiency considerations." lightbox="images/do-setup-improve-efficiencies.png"::: + +Looking to improve efficiency? Some of the most powerful settings you can change that could have a big impact within your environment include: + +* Help optimize peer connection over HTTP connections using the [‘DOMinBackgroundQoS’](waas-delivery-optimization-reference.md#minimum-background-qos) policy. A good value for this is something lower than the average download speed seen in your network. For example, if your average speed is 1000KB/s, set this policy to 500KB/s. +* Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of policies include: [‘DODelayBackgroundDownloadFromHttp’](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs), [‘DODelayForegroundDownloadFromHttp’](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs), [‘DelayCacheServerFallbackBackground*’](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs), [‘DelayCacheServerFallbackForeground*’](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs). For applicable scenarios (improving efficiency from peers or cache server) a good starting point is ’60 - 90’ seconds for the background settings and ’30 – 60’ for foreground settings. +* Reduce any disruptions and help to manage the timing of network usage by utilizing the business hours policies, [‘DOSetHoursToLimitForegroundDownloadBandwidth’](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth) and [‘DOSetHoursToLimitBackgroundDownloadBandwidth’](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth). +* Manage network usage as a percentage or absolute value (Note: The absolute policies are recommended in low bandwidth environments). These policies include: [‘DOPercentageMaxForegroundBandwidth’](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth)/[’DOPercentageMaxBackgroundBandwidth’](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [‘DOMaxBackgroundDownloadBandwidth’](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [‘DOMaxForegroundDownloadBandwidth’](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). + +> [!NOTE] +> Not all content types are not eligible for P2P. Refer the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. + +## Connected cache + +:::image type="content" source="images/do-setup-connected-cache.png" alt-text="Screenshot of Delivery Optimization options when using Connected Cache." lightbox="images/do-setup-connected-cache.png"::: + +> [!NOTE] +> When using the Connected Cache dedicated cache solution for your environment there are a handful of policies you should be aware of, some of which have been mentioned throughout this page (denoted with *). + +* [‘DOCacheHost’](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cachehost server names, separated with commas. Delivery Optimization client will connect to the listed Microsoft Connected Cache servers in the order as they are listed. +* [‘DOCacheHostSource’](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cachehost servers on the network, using DHCP. +* [‘DelayCacheServerFallbackBackground’](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [‘DelayCacheServerFallbackForeground’](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cachehost servers. (See recommended values in ‘Improving Efficiencies’ section). +* [‘DODisallowCacheServerDownloadsOnVPN’](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cachehost server to supply content, when device is on a VPN connection. + +# Monitor Delivery Optimization and Troubleshooting + +Whether you opt for the default Delivery Optimization configurations or tailor them to suit your environment, you'll want to track the outcomes to see how they improve your efficiency. [Learn more](hwaas-delivery-optimization-monitor.md) about the monitoring options for Delivery Optimization. + +## Troubleshooting + +### DO Troubleshooter + +[Check out](https://aka.ms/do-fix) the new Delivery Optimization Troubleshooter. This tool provides a device health check to verify the device is set up properly to use Delivery Optimization. To scope the output more specifically, use one of the available switches: + +* -HealthCheck: Provides an overall check of the device setup to ensure Delivery Optimization communication is possible on the device. +* -P2P: Provides output specific to P2P settings, efficiency, and errors. +* -MCC: Provides output specific to MCC settings and verifies the client can access the cache server. + +### Testing Delivery Optimization + +[Learn more](delivery-optimization-test.md) for guidance on basic testing scenarios to see how Delivery Optimization works. + +### Common problems and solutions + +This section summarizes common problems and some solutions to try. + +#### If you don't see any bytes from peers + +If you don't see any bytes coming from peers the cause might be one of the following issues: + +* Clients aren't able to reach the Delivery Optimization cloud services. +* The cloud service doesn't see other peers on the network. +* Clients aren't able to connect to peers that are offered back from the cloud service. +* None of the computers on the network are getting updates from peers. + +#### Clients aren't able to reach the Delivery Optimization cloud services + +Try these steps: + +1. Start a download of an app that is larger than 50 MB from the Store (for example "Candy Crush Saga"). +2. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and observe the [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) setting. For peering to work, download mode should be 1, 2, or 3. +3. If the download mode is 99, it could indicate your device is unable to reach the Delivery Optimization cloud services. Ensure that the Delivery Optimization host names are allowed access: most importantly **\*.prod.do.dsp.mp.microsoft.com**. + +#### The cloud service doesn't see other peers on the network + +Try these steps: + +1. Download the same app on two different devices on the same network, waiting 10 - 15 minutes between downloads. +2. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and ensure that **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1 or 2 on both devices. +3. Run `Get-DeliveryOptimizationPerfSnap` from an elevated PowerShell window on the second device. The **NumberOfPeers** field should be nonzero. +4. If the number of peers is zero and **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1, ensure that both devices are using the same public IP address to reach the internet (you can easily do this by opening a browser window and do a search for "what is my IP"). In the case where devices aren't reporting the same public IP address, configure **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** to 2 (Group) and use a custom **[DOGroupID (Guid)](waas-delivery-optimization-reference.md#group-id)**. + +> [!NOTE] +> Starting in Windows 10, version 2004, `Get-DeliveryOptimizationStatus` has a new option `-PeerInfo` which returns a real-time list of potential peers per file, including which peers are successfully connected and the total bytes sent or received from each peer. + +#### Clients aren't able to connect to peers offered by the cloud service + +Try a Telnet test between two devices on the network to ensure they can connect using port 7680. Follow these steps: + +1. Install Telnet by running `dism /online /Enable-Feature /FeatureName:TelnetClient` from an elevated command prompt. +2. Run the test. For example, if you are on device with IP 192.168.8.12 and you're trying to test the connection to 192.168.9.17 run `telnet 192.168.9.17 7680` (the syntax is *telnet [destination IP] [port]*. You'll either see a connection error or a blinking cursor like this /_. The blinking cursor means success. + +> [!NOTE] +> You can also use [Test-NetConnection](/powershell/module/nettcpip/test-netconnection) instead of Telnet to run the test. +> **Test-NetConnection -ComputerName 192.168.9.17 -Port 7680** + +#### None of the computers on the network are getting updates from peers + +Check Delivery Optimization settings that could limit participation in peer caching. Check whether the following settings in assigned group policies, local group policies, or MDM policies are too restrictive: + +* Minimum RAM (inclusive) allowed to use peer caching +* Minimum disk size allowed to use peer caching +* Enable peer caching while the device connects using VPN. +* Allow uploads when the device is on battery while under the set battery level From 5a8fbd8872ba62fb6f843e11340d579f632b3d30 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Thu, 27 Jun 2024 16:31:04 -0600 Subject: [PATCH 009/108] Acrolinx fixes --- .../do/waas-delivery-optimization-configure.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/deployment/do/waas-delivery-optimization-configure.md b/windows/deployment/do/waas-delivery-optimization-configure.md index 97ad1a3077..f3a5cb4b36 100644 --- a/windows/deployment/do/waas-delivery-optimization-configure.md +++ b/windows/deployment/do/waas-delivery-optimization-configure.md @@ -53,7 +53,7 @@ If you are using a cloud proxy, you should configure it to allow Delivery Optimi ### Ports -Delivery Optimization requires the use of certain ports to deliver content. Make sure you have opened all the [required ports](/waas-delivery-optimization-faq.yml#which-ports-does-delivery-optimization-use) to make Delivery Optimization work seamlessly. +Delivery Optimization requires the use of certain ports to deliver content. Make sure you have opened all the [required ports](waas-delivery-optimization-faq.yml#which-ports-does-delivery-optimization-use) to make Delivery Optimization work seamlessly. ## DO presence @@ -66,9 +66,9 @@ Use Group Policy or MDM Policies to locate Delivery Optimization settings. Delivery Optimization is increasingly found throughout Microsoft products. Learn more about the areas where there is integration to see how you can optimize the results in your environment. -* [Microsoft Endpoint Manager (MEM)](https://learn.microsoft.com/en-us/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) -* [Microsoft Endpoint Configuration Manager (MECM)](https://learn.microsoft.com/en-us/mem/intune/configuration/delivery-optimization-windows) -* [Autopilot](https://learn.microsoft.com/en-us/windows/deployment/windows-deployment-scenarios#modern-deployment-methods)/[Autopatch](https://learn.microsoft.com/en-us/windows/deployment/windows-autopatch/overview/windows-autopatch-overview) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies will be applied. +* [Microsoft Endpoint Manager (MEM)](https://learn.microsoft.com/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) +* [Microsoft Endpoint Configuration Manager (MECM)](https://learn.microsoft.com/mem/intune/configuration/delivery-optimization-windows) +* [Autopilot](https://learn.microsoft.com/windows/deployment/windows-deployment-scenarios#modern-deployment-methods)/[Autopatch](https://learn.microsoft.com/windows/deployment/windows-autopatch/overview/windows-autopatch-overview) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies will be applied. ## Network topology @@ -167,7 +167,7 @@ Looking to improve efficiency? Some of the most powerful settings you can change # Monitor Delivery Optimization and Troubleshooting -Whether you opt for the default Delivery Optimization configurations or tailor them to suit your environment, you'll want to track the outcomes to see how they improve your efficiency. [Learn more](hwaas-delivery-optimization-monitor.md) about the monitoring options for Delivery Optimization. +Whether you opt for the default Delivery Optimization configurations or tailor them to suit your environment, you'll want to track the outcomes to see how they improve your efficiency. [Learn more](waas-delivery-optimization-monitor.md) about the monitoring options for Delivery Optimization. ## Troubleshooting From 27352b1258e4c2a8ba57d5657618d6624e7db361 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Thu, 27 Jun 2024 16:35:50 -0600 Subject: [PATCH 010/108] Fix warning --- windows/deployment/do/waas-delivery-optimization-configure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/do/waas-delivery-optimization-configure.md b/windows/deployment/do/waas-delivery-optimization-configure.md index f3a5cb4b36..e655cf641b 100644 --- a/windows/deployment/do/waas-delivery-optimization-configure.md +++ b/windows/deployment/do/waas-delivery-optimization-configure.md @@ -165,7 +165,7 @@ Looking to improve efficiency? Some of the most powerful settings you can change * [‘DelayCacheServerFallbackBackground’](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [‘DelayCacheServerFallbackForeground’](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cachehost servers. (See recommended values in ‘Improving Efficiencies’ section). * [‘DODisallowCacheServerDownloadsOnVPN’](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cachehost server to supply content, when device is on a VPN connection. -# Monitor Delivery Optimization and Troubleshooting +## Monitor Delivery Optimization and Troubleshooting Whether you opt for the default Delivery Optimization configurations or tailor them to suit your environment, you'll want to track the outcomes to see how they improve your efficiency. [Learn more](waas-delivery-optimization-monitor.md) about the monitoring options for Delivery Optimization. From 21d7658e8da792e6a4fa6f96a6a292619a625b2b Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Thu, 27 Jun 2024 17:20:43 -0600 Subject: [PATCH 011/108] More acrolinx fixes --- .../waas-delivery-optimization-configure.md | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/windows/deployment/do/waas-delivery-optimization-configure.md b/windows/deployment/do/waas-delivery-optimization-configure.md index e655cf641b..9a93014d9a 100644 --- a/windows/deployment/do/waas-delivery-optimization-configure.md +++ b/windows/deployment/do/waas-delivery-optimization-configure.md @@ -45,81 +45,81 @@ There are some host names that you need to permit through your Firewall for Deli ### Local proxy -When using a proxy, you’ll want to bypass calls from the Delivery Optimization service (*.prod.do.dsp.mp.microsoft.com), as any altering of the public IP address will prevent peering from working properly. For downloads from HTTP sources, Delivery Optimization can use the automatic proxy discovery capability of WinHttp to handle communication with the proxy server. It’s important to know, Delivery Optimization uses byte range requests, so you’ll want to make sure your proxy allows this capability.. [Learn more](delivery-optimization-proxy.md) about Delivery Optimization with a proxy server. +When using a proxy, you want to bypass calls from the Delivery Optimization service (*.prod.do.dsp.mp.microsoft.com), as any altering of the public IP address prevents peering from working properly. For downloads from HTTP sources, Delivery Optimization can use the automatic proxy discovery capability of WinHttp to handle communication with the proxy server. It’s important to know, Delivery Optimization uses byte range requests, so you’ll want to make sure your proxy allows this capability. [Learn more](delivery-optimization-proxy.md) about Delivery Optimization with a proxy server. ### Cloud proxy -If you are using a cloud proxy, you should configure it to allow Delivery Optimization traffic to [bypass the proxy](waas-delivery-optimization-faq.yml#what-is-the-recommended-configuration-for-delivery-optimization-used-with-cloud-proxies). Otherwise, you may experience reduced performance and increased bandwidth consumption. +If you're using a cloud proxy, you should configure it to allow Delivery Optimization traffic to [bypass the proxy](waas-delivery-optimization-faq.yml#what-is-the-recommended-configuration-for-delivery-optimization-used-with-cloud-proxies). Otherwise, you may experience reduced performance and increased bandwidth consumption. ### Ports -Delivery Optimization requires the use of certain ports to deliver content. Make sure you have opened all the [required ports](waas-delivery-optimization-faq.yml#which-ports-does-delivery-optimization-use) to make Delivery Optimization work seamlessly. +Delivery Optimization requires the use of certain ports to deliver content. Make sure all the [required ports](waas-delivery-optimization-faq.yml#which-ports-does-delivery-optimization-use) are open to make Delivery Optimization work seamlessly. ## DO presence -:::image type="content" source="images/do-setup-presence.png" alt-text="Screenshot of different product areas where you'll find Delivery Optimization." lightbox="images/do-setup-presence.png"::: +:::image type="content" source="images/do-setup-presence.png" alt-text="Screenshot of different product areas where you find Delivery Optimization." lightbox="images/do-setup-presence.png"::: Use Group Policy or MDM Policies to locate Delivery Optimization settings. **Group Policies:** Computer Configuration\Administrative Templates\Windows Components\Delivery Optimization. **MDM Policies:** You can use an MDM solution like Intune to configure Delivery Optimization. -Delivery Optimization is increasingly found throughout Microsoft products. Learn more about the areas where there is integration to see how you can optimize the results in your environment. +Delivery Optimization is increasingly found throughout Microsoft products. Learn more about the areas where there's integration to see how you can optimize the results in your environment. * [Microsoft Endpoint Manager (MEM)](https://learn.microsoft.com/mem/configmgr/sum/deploy-use/optimize-windows-10-update-delivery) * [Microsoft Endpoint Configuration Manager (MECM)](https://learn.microsoft.com/mem/intune/configuration/delivery-optimization-windows) -* [Autopilot](https://learn.microsoft.com/windows/deployment/windows-deployment-scenarios#modern-deployment-methods)/[Autopatch](https://learn.microsoft.com/windows/deployment/windows-autopatch/overview/windows-autopatch-overview) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies will be applied. +* [Autopilot](https://learn.microsoft.com/windows/deployment/windows-deployment-scenarios#modern-deployment-methods)/[Autopatch](https://learn.microsoft.com/windows/deployment/windows-autopatch/overview/windows-autopatch-overview) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies are applied. ## Network topology :::image type="content" source="images/do-setup-network-topology.png" alt-text="Screenshot of Delivery Optimization network topology considerations." lightbox="images/do-setup-network-topology.png"::: -Peer groups can be defined in Delivery Optimization using a combination of settings such as [‘DODownloadMode’](waas-delivery-optimization-reference.md#download-mode), [‘DOGroupID’](waas-delivery-optimization-reference.md#group-id), [‘DOGroupIDSource’](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [‘DORestrictPeerSelection’](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings you use will depend on your desired peer group(s) and your network topology.* +Peer groups can be defined in Delivery Optimization using a combination of settings such as [DODownloadMode](waas-delivery-optimization-reference.md#download-mode), [DOGroupID](waas-delivery-optimization-reference.md#group-id), [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids), and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection). *The combination of settings in use will depend on your desired peer group(s) and your network topology.* -### Peer-to-peer setup +### Peering setup #### Define peer groups ##### Local area network (LAN) -To limit a peer group to your LAN, choose [‘DODownloadMode’](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This will include any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. +To limit a peer group to your LAN, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1), LAN-mode. This Download Mode setting includes any devices that share the same public IP address when they connect to the Internet (behind the same NAT) in a single peer group. ##### Wide area network (WAN) -To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use Download Mode ‘2’, Group-mode. Group download mode allows you to define a unique GUID Group ID or leverage existing “boundaries” in your enterprise with the [‘DOGroupIDSource’](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. +To achieve peer groups across NATs within the same site, over the WAN, or to have more control in your local environment, use Download Mode ‘2’, Group-mode. Group download mode allows you to define a unique GUID Group ID or use existing “boundaries” in your enterprise with the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting to identify a peer group. ##### GroupIDSource default behavior -There are several options for identifying your Group ID using the [‘DOGroupIDSource’](waas-delivery-optimization-reference.md#select-the-source-of-group-ids). The default behavior, when the [‘DOGroupID’](waas-delivery-optimization-reference.md#group-id) or [‘DOGroupIDSource’](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) policies are not set, is to determine the Group ID using AD Site (1), Authenticated domain SID (2), or Microsoft Entra tenant ID (5). More information on all [‘DOGroupIDSource’](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting options available. +There are several options for identifying your Group ID using the [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids). The default behavior, when the [DOGroupID](waas-delivery-optimization-reference.md#group-id) or [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) policies aren't set, is to determine the Group ID using AD Site (1), Authenticated domain SID (2), or Microsoft Entra tenant ID (5). More information on all [DOGroupIDSource](waas-delivery-optimization-reference.md#select-the-source-of-group-ids) setting options available. > [!NOTE] > If your peer group spans across NATs, the Teredo service will be used on port 3544. ##### Restrict peer selection -If your environment requires a more granular approach, you can use the Restrict Peer Discovery setting alongside the Download Mode to achieve more control. For example, if you have several different subnets behind the same NAT but want to limit your peer groups to a single subnet, choose [‘DODownloadMode’](waas-delivery-optimization-reference.md#download-mode) (1) and [‘DORestrictPeerSelection’](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection)(Subnet). This setting can be used in conjunction with any of the peer-related Download Modes (1’, 2’, or ‘3’). +If your environment requires a more granular approach, you can use the Restrict Peer Discovery setting alongside the Download Mode to achieve more control. For example, if you have several different subnets behind the same NAT but want to limit your peer groups to a single subnet, choose [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) (1) and [DORestrictPeerSelection](waas-delivery-optimization-reference.md#select-a-method-to-restrict-peer-selection)(Subnet). This setting can be used with any of the peer-related Download Modes (1, 2, or 3). ### Non-peering options -There are two valid Download Modes that do not leverage the peer-to-peer functionality to deliver content; Download Modes (0) and (99). Download Mode (0) provides hash checks of the requested content and allows for quick detection and recovery of corrupted data due to the use of piece level hash checks. Download Mode (99) will provide a reliable download experience over HTTP from the download's original source or Microsoft, with no additional checks. +There are two valid Download Modes that don't use the peer-to-peer functionality to deliver content; Download Modes (0) and (99). Download Mode (0) provides hash checks of the requested content and allows for quick detection and recovery of corrupted data due to the use of piece level hash checks. Download Mode (99) will provide a reliable download experience over HTTP from the download's original source or Microsoft, with no other checks. ### Peering with VPN -By default, if Delivery Optimization detects a VPN, peering will not be used. To enable this behavior, use the [‘DOAllowVPNPeerCaching’](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization Client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification use the [‘DOVpnKeywords’](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN. Also related, there is a [‘DODisallowCacheServerDownloadsOnVPN*’](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) policy to prevent downloads from a cache server while on a VPN connection. +By default, if Delivery Optimization detects a VPN, peering is not used. To enable this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization Client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN. Also related, there's a [DODisallowCacheServerDownloadsOnVPN*](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) policy to prevent downloads from a cache server while on a VPN connection. ## Device counts :::image type="content" source="images/do-setup-device-counts.png" alt-text="Screenshot of Delivery Optimization device count considerations." lightbox="images/do-setup-device-counts.png"::: -Delivery Optimization is designed to perform best in a large-scale environment with many devices. Depending on the size of the environment, you should evaluate the value of the [‘DOMinFileSizeToCache’](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to optimize peering. +Delivery Optimization is designed to perform best in a large-scale environment with many devices. Depending on the size of the environment, you should evaluate the value of the [DOMinFileSizeToCache](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to optimize peering. ### Cache file size -Content peering has a limited number of slots available at any given time. By default, only content files that are 50MB or larger can be used for peering. In an environment with more than 30 devices, change the [‘DOMinFileSizeToCache’](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to a lower value (10MB), to have more content available for peering, which can be distributed among many devices. For an even larger number of devices (>100) you can raise this setting to (1MB). +Content peering has a limited number of slots available at any given time. By default, only content files that are 50 MB or larger can be used for peering. In an environment with more than 30 devices, change the [DOMinFileSizeToCache](waas-delivery-optimization-reference.md#minimum-peer-caching-content-file-size) to a lower value (10 MB), to have more content available for peering, which can be distributed among many devices. For an even larger number of devices (>100), you can raise this setting to (1 MB). ### Mobile devices -By default, peer-to-peer capabilities are not enabled for devices using a battery. If there are many mobile devices in your environment, consider enabling the [‘DOMinBatteryPercentageAllowedToUpload’](waas-delivery-optimization-reference.md#allow-uploads-while-the-device-is-on-battery-while-under-set-battery-level) policy to 60%, to use peering while on battery. +By default, peer-to-peer capabilities aren't enabled for devices using a battery. If there are many mobile devices in your environment, consider enabling the [DOMinBatteryPercentageAllowedToUpload](waas-delivery-optimization-reference.md#allow-uploads-while-the-device-is-on-battery-while-under-set-battery-level) policy to 60%, to use peering while on battery. ## System resources @@ -129,29 +129,29 @@ There are some Delivery Optimization configurations that can make an impact when ### Disk size -Alter the minimum disk size a device must have to use peering with the [‘DOMinDiskSizeAllowedToPeer’](waas-delivery-optimization-reference.md#minimum-disk-size-allowed-to-use-peer-caching) setting. You can also manage the amount of space the Delivery Optimization cache uses with the following settings: [‘DOMaxCacheSize’](waas-delivery-optimization-reference.md#max-cache-size)/[’DOAbsoluteMaxCacheSize’](waas-delivery-optimization-reference.md#absolute-max-cache-size). +Alter the minimum disk size a device must have to use peering with the [DOMinDiskSizeAllowedToPeer](waas-delivery-optimization-reference.md#minimum-disk-size-allowed-to-use-peer-caching) setting. You can also manage the amount of space the Delivery Optimization cache uses with the following settings: [DOMaxCacheSize](waas-delivery-optimization-reference.md#max-cache-size)/[DOAbsoluteMaxCacheSize](waas-delivery-optimization-reference.md#absolute-max-cache-size). ### RAM size -Control the minimum amount of RAM (inclusive) allowed to use peer caching, [‘DOMinRAMAllowedToPeer’](waas-delivery-optimization-reference.md#minimum-ram-inclusive-allowed-to-use-peer-caching). +Control the minimum amount of RAM (inclusive) allowed to use peer caching, [DOMinRAMAllowedToPeer](waas-delivery-optimization-reference.md#minimum-ram-inclusive-allowed-to-use-peer-caching). ### Large # of devices with healthy system resources -In a lab situation, you typically have set number of devices that are plugged in and have a lot of free disk space. By increasing the content expiration interval of [‘DOMaxCacheAge’](waas-delivery-optimization-reference.md#max-cache-age) to 7 or more (up to 30 days), you can take advantage of these devices, using them as excellent upload sources to upload more content over a longer period. +In a lab situation, there's typically a set number of devices that are plugged in and have ample free disk space. By increasing the content expiration interval of [DOMaxCacheAge](waas-delivery-optimization-reference.md#max-cache-age) to 7 or more (up to 30 days), you can take advantage of these devices, using them as excellent upload sources to upload more content over a longer period. ## Improve efficiencies :::image type="content" source="images/do-setup-improve-efficiencies.png" alt-text="Screenshot of Delivery Optimization improve efficiency considerations." lightbox="images/do-setup-improve-efficiencies.png"::: -Looking to improve efficiency? Some of the most powerful settings you can change that could have a big impact within your environment include: +Looking to improve efficiency? Some of the most powerful settings you can change that could have a significant impact within your environment include: -* Help optimize peer connection over HTTP connections using the [‘DOMinBackgroundQoS’](waas-delivery-optimization-reference.md#minimum-background-qos) policy. A good value for this is something lower than the average download speed seen in your network. For example, if your average speed is 1000KB/s, set this policy to 500KB/s. -* Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of policies include: [‘DODelayBackgroundDownloadFromHttp’](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs), [‘DODelayForegroundDownloadFromHttp’](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs), [‘DelayCacheServerFallbackBackground*’](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs), [‘DelayCacheServerFallbackForeground*’](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs). For applicable scenarios (improving efficiency from peers or cache server) a good starting point is ’60 - 90’ seconds for the background settings and ’30 – 60’ for foreground settings. -* Reduce any disruptions and help to manage the timing of network usage by utilizing the business hours policies, [‘DOSetHoursToLimitForegroundDownloadBandwidth’](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth) and [‘DOSetHoursToLimitBackgroundDownloadBandwidth’](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth). -* Manage network usage as a percentage or absolute value (Note: The absolute policies are recommended in low bandwidth environments). These policies include: [‘DOPercentageMaxForegroundBandwidth’](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth)/[’DOPercentageMaxBackgroundBandwidth’](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [‘DOMaxBackgroundDownloadBandwidth’](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [‘DOMaxForegroundDownloadBandwidth’](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). +* Help optimize peer connection over HTTP connections using the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy. A good value for the [DOMinBackgroundQoS](waas-delivery-optimization-reference.md#minimum-background-qos) policy is something lower than the average download speed seen in your network. For example, if your average speed is 1000 KB/s, set this policy to 500 KB/s. +* Improve chances of downloading from peers and/or cache server by delaying the time DO attempts to make connections before falling back to the HTTP source. The set of policies include: [DODelayBackgroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-background-download-from-http-in-secs), [DODelayForegroundDownloadFromHttp](waas-delivery-optimization-reference.md#delay-foreground-download-from-http-in-secs), [DelayCacheServerFallbackBackground*](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs), [DelayCacheServerFallbackForeground*](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs). For applicable scenarios (improving efficiency from peers or cache server) a good starting point is ’60 - 90’ seconds for the background settings and ’30 – 60’ for foreground settings. +* Reduce any disruptions and help to manage the timing of network usage by utilizing the business hours policies, [DOSetHoursToLimitForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-foreground-download-bandwidth) and [DOSetHoursToLimitBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#set-business-hours-to-limit-background-download-bandwidth). +* Manage network usage as a percentage or absolute value (Note: The absolute policies are recommended in low bandwidth environments). These policies include: [DOPercentageMaxForegroundBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth)/[DOPercentageMaxBackgroundBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth), [DOMaxBackgroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-background-download-bandwidth-in-kbs), and [DOMaxForegroundDownloadBandwidth](waas-delivery-optimization-reference.md#maximum-foreground-download-bandwidth-in-kbs). > [!NOTE] -> Not all content types are not eligible for P2P. Refer the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. +> Not all content types aren't eligible for P2P. Refer the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. ## Connected cache @@ -160,18 +160,18 @@ Looking to improve efficiency? Some of the most powerful settings you can change > [!NOTE] > When using the Connected Cache dedicated cache solution for your environment there are a handful of policies you should be aware of, some of which have been mentioned throughout this page (denoted with *). -* [‘DOCacheHost’](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cachehost server names, separated with commas. Delivery Optimization client will connect to the listed Microsoft Connected Cache servers in the order as they are listed. -* [‘DOCacheHostSource’](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cachehost servers on the network, using DHCP. -* [‘DelayCacheServerFallbackBackground’](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [‘DelayCacheServerFallbackForeground’](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cachehost servers. (See recommended values in ‘Improving Efficiencies’ section). -* [‘DODisallowCacheServerDownloadsOnVPN’](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cachehost server to supply content, when device is on a VPN connection. +* [DOCacheHost](waas-delivery-optimization-reference.md#cache-server-hostname) is the list of cache host server names, separated with commas. Delivery Optimization client connects to the listed Microsoft Connected Cache servers in the order as they're listed. +* [DOCacheHostSource](waas-delivery-optimization-reference.md#cache-server-hostname-source) can be used to dynamically discover cache host servers on the network, using DHCP. +* [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in ‘Improving Efficiencies’ section). +* [DODisallowCacheServerDownloadsOnVPN](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cache host server to supply content, when device is on a VPN connection. ## Monitor Delivery Optimization and Troubleshooting -Whether you opt for the default Delivery Optimization configurations or tailor them to suit your environment, you'll want to track the outcomes to see how they improve your efficiency. [Learn more](waas-delivery-optimization-monitor.md) about the monitoring options for Delivery Optimization. +Whether you opt for the default Delivery Optimization configurations or tailor them to suit your environment, you will want to track the outcomes to see how they improve your efficiency. [Learn more](waas-delivery-optimization-monitor.md) about the monitoring options for Delivery Optimization. -## Troubleshooting +### Troubleshooting -### DO Troubleshooter +#### DO Troubleshooter [Check out](https://aka.ms/do-fix) the new Delivery Optimization Troubleshooter. This tool provides a device health check to verify the device is set up properly to use Delivery Optimization. To scope the output more specifically, use one of the available switches: @@ -221,7 +221,7 @@ Try these steps: Try a Telnet test between two devices on the network to ensure they can connect using port 7680. Follow these steps: 1. Install Telnet by running `dism /online /Enable-Feature /FeatureName:TelnetClient` from an elevated command prompt. -2. Run the test. For example, if you are on device with IP 192.168.8.12 and you're trying to test the connection to 192.168.9.17 run `telnet 192.168.9.17 7680` (the syntax is *telnet [destination IP] [port]*. You'll either see a connection error or a blinking cursor like this /_. The blinking cursor means success. +2. Run the test. For example, if you're on device with IP 192.168.8.12 and you're trying to test the connection to 192.168.9.17 run `telnet 192.168.9.17 7680` (the syntax is *telnet [destination IP] [port]*. When you see a connection error or a blinking cursor like this /_. The blinking cursor means success. > [!NOTE] > You can also use [Test-NetConnection](/powershell/module/nettcpip/test-netconnection) instead of Telnet to run the test. From 38aff663c0799dd35cd48c291c016a900e609df5 Mon Sep 17 00:00:00 2001 From: "[cmknox]" <[cmknox@gmail.com]> Date: Sat, 29 Jun 2024 22:35:39 -0600 Subject: [PATCH 012/108] Add numbered checklist, remove full setup image, add separate Troubleshoot page --- .../do/deliver-optimization-troubleshoot.md | 87 +++++++++++++++ ....md => delivery-optimization-configure.md} | 99 ++++-------------- .../deployment/do/images/do-setup-full.png | Bin 133468 -> 0 bytes 3 files changed, 106 insertions(+), 80 deletions(-) create mode 100644 windows/deployment/do/deliver-optimization-troubleshoot.md rename windows/deployment/do/{waas-delivery-optimization-configure.md => delivery-optimization-configure.md} (75%) delete mode 100644 windows/deployment/do/images/do-setup-full.png diff --git a/windows/deployment/do/deliver-optimization-troubleshoot.md b/windows/deployment/do/deliver-optimization-troubleshoot.md new file mode 100644 index 0000000000..b47e1eca95 --- /dev/null +++ b/windows/deployment/do/deliver-optimization-troubleshoot.md @@ -0,0 +1,87 @@ +--- +title: Troubleshoot Delivery Optimization +description: In this article, learn how to troubleshoot Delivery Optimization. +ms.service: windows-client +ms.subservice: itpro-updates +ms.topic: how-to +author: cmknox +ms.author: carmenf +ms.reviewer: mstewart +manager: aaroncz +ms.collection: + - tier3 + - essentials-get-started +ms.localizationpriority: medium +appliesto: +- ✅ Windows 11 +- ✅ Windows 10 +- ✅ Delivery Optimization +ms.date: 07/01/2024 +--- + +# Troubleshoot Delivery Optimization + +#### DO Troubleshooter + +[Check out](https://aka.ms/do-fix) the new Delivery Optimization Troubleshooter. This tool provides a device health check to verify the device is set up properly to use Delivery Optimization. To scope the output more specifically, use one of the available switches: + +* -HealthCheck: Provides an overall check of the device setup to ensure Delivery Optimization communication is possible on the device. +* -P2P: Provides output specific to P2P settings, efficiency, and errors. +* -MCC: Provides output specific to MCC settings and verifies the client can access the cache server. + +### Testing Delivery Optimization + +[Learn more](delivery-optimization-test.md) for guidance on basic testing scenarios to see how Delivery Optimization works. + +### Common problems and solutions + +This section summarizes common problems and some solutions to try. + +#### If you don't see any bytes from peers + +If you don't see any bytes coming from peers the cause might be one of the following issues: + +* Clients aren't able to reach the Delivery Optimization cloud services. +* The cloud service doesn't see other peers on the network. +* Clients aren't able to connect to peers that are offered back from the cloud service. +* None of the computers on the network are getting updates from peers. + +#### Clients aren't able to reach the Delivery Optimization cloud services + +Try these steps: + +1. Start a download of an app that is larger than 50 MB from the Store (for example "Candy Crush Saga"). +2. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and observe the [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) setting. For peering to work, download mode should be 1, 2, or 3. +3. If the download mode is 99, it could indicate your device is unable to reach the Delivery Optimization cloud services. Ensure that the Delivery Optimization host names are allowed access: most importantly **\*.prod.do.dsp.mp.microsoft.com**. + +#### The cloud service doesn't see other peers on the network + +Try these steps: + +1. Download the same app on two different devices on the same network, waiting 10 - 15 minutes between downloads. +2. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and ensure that **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1 or 2 on both devices. +3. Run `Get-DeliveryOptimizationPerfSnap` from an elevated PowerShell window on the second device. The **NumberOfPeers** field should be nonzero. +4. If the number of peers is zero and **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1, ensure that both devices are using the same public IP address to reach the internet (you can easily do this by opening a browser window and do a search for "what is my IP"). In the case where devices aren't reporting the same public IP address, configure **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** to 2 (Group) and use a custom **[DOGroupID (Guid)](waas-delivery-optimization-reference.md#group-id)**. + +> [!NOTE] +> Starting in Windows 10, version 2004, `Get-DeliveryOptimizationStatus` has a new option `-PeerInfo` which returns a real-time list of potential peers per file, including which peers are successfully connected and the total bytes sent or received from each peer. + +#### Clients aren't able to connect to peers offered by the cloud service + +Try a Telnet test between two devices on the network to ensure they can connect using port 7680. Follow these steps: + +1. Install Telnet by running `dism /online /Enable-Feature /FeatureName:TelnetClient` from an elevated command prompt. +2. Run the test. For example, if you're on device with IP 192.168.8.12 and you're trying to test the connection to 192.168.9.17 run `telnet 192.168.9.17 7680` (the syntax is *telnet [destination IP] [port]*. When you see a connection error or a blinking cursor like this /_. The blinking cursor means success. + +> [!NOTE] +> You can also use [Test-NetConnection](/powershell/module/nettcpip/test-netconnection) instead of Telnet to run the test. +> **Test-NetConnection -ComputerName 192.168.9.17 -Port 7680** + +#### None of the computers on the network are getting updates from peers + +Check Delivery Optimization settings that could limit participation in peer caching. Check whether the following settings in assigned group policies, local group policies, or MDM policies are too restrictive: + +* Minimum RAM (inclusive) allowed to use peer caching +* Minimum disk size allowed to use peer caching +* Enable peer caching while the device connects using VPN. +* Allow uploads when the device is on battery while under the set battery level diff --git a/windows/deployment/do/waas-delivery-optimization-configure.md b/windows/deployment/do/delivery-optimization-configure.md similarity index 75% rename from windows/deployment/do/waas-delivery-optimization-configure.md rename to windows/deployment/do/delivery-optimization-configure.md index 9a93014d9a..3695c13b12 100644 --- a/windows/deployment/do/waas-delivery-optimization-configure.md +++ b/windows/deployment/do/delivery-optimization-configure.md @@ -1,6 +1,6 @@ --- title: Configure Delivery Optimization for Windows -description: In this article, learn how to set up Delivery Optimization for use by Windows clients in your organization. +description: In this article, learn about the different configuration considerations to optimize Delivery Optimization in your environment. ms.service: windows-client ms.subservice: itpro-updates ms.topic: how-to @@ -23,17 +23,15 @@ ms.date: 07/01/2024 ## Delivery Optimization set up considerations checklist -* Allow Delivery Optimization communication -* Find Delivery Optimization -* Network topology -* Device count -* System resources -* Improve efficiencies -* Connected Cache +1. Allow Delivery Optimization communication +1. Find Delivery Optimization +1. Network topology +1. Device count +1. System resources +1. Improve efficiencies +1. Connected Cache -:::image type="content" source="images/do-setup-full.png" alt-text="Screenshot of the various Delivery Optimization configurations that should be considered to maximize efficiency." lightbox="images/do-setup-full.png"::: - -## Allow DO communication +## 1. Allow DO communication :::image type="content" source="images/do-setup-allow-communication.png" alt-text="Screenshot of the considerations to allow Delivery Optimization communication." lightbox="images/do-setup-allow-communication.png"::: @@ -55,7 +53,7 @@ If you're using a cloud proxy, you should configure it to allow Delivery Optimiz Delivery Optimization requires the use of certain ports to deliver content. Make sure all the [required ports](waas-delivery-optimization-faq.yml#which-ports-does-delivery-optimization-use) are open to make Delivery Optimization work seamlessly. -## DO presence +## 2. DO presence :::image type="content" source="images/do-setup-presence.png" alt-text="Screenshot of different product areas where you find Delivery Optimization." lightbox="images/do-setup-presence.png"::: @@ -70,7 +68,7 @@ Delivery Optimization is increasingly found throughout Microsoft products. Learn * [Microsoft Endpoint Configuration Manager (MECM)](https://learn.microsoft.com/mem/intune/configuration/delivery-optimization-windows) * [Autopilot](https://learn.microsoft.com/windows/deployment/windows-deployment-scenarios#modern-deployment-methods)/[Autopatch](https://learn.microsoft.com/windows/deployment/windows-autopatch/overview/windows-autopatch-overview) – there are no specific settings that should be configured for Autopilot or Autopatch devices. However, it’s important to remember that once the device is connected to the corporate network, Delivery Optimization policies are applied. -## Network topology +## 3. Network topology :::image type="content" source="images/do-setup-network-topology.png" alt-text="Screenshot of Delivery Optimization network topology considerations." lightbox="images/do-setup-network-topology.png"::: @@ -107,7 +105,7 @@ There are two valid Download Modes that don't use the peer-to-peer functionality By default, if Delivery Optimization detects a VPN, peering is not used. To enable this behavior, use the [DOAllowVPNPeerCaching](waas-delivery-optimization-reference.md#enable-peer-caching-while-the-device-connects-via-vpn) policy. The Delivery Optimization Client looks in the network adapter’s ‘Description’ and ‘FriendlyName’ strings to determine VPN usage. To allow greater flexibility for VPN identification, use the [DOVpnKeywords](waas-delivery-optimization-reference.md#vpn-keywords) to add descriptors for a particular VPN. Also related, there's a [DODisallowCacheServerDownloadsOnVPN*](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) policy to prevent downloads from a cache server while on a VPN connection. -## Device counts +## 4. Device counts :::image type="content" source="images/do-setup-device-counts.png" alt-text="Screenshot of Delivery Optimization device count considerations." lightbox="images/do-setup-device-counts.png"::: @@ -121,7 +119,7 @@ Content peering has a limited number of slots available at any given time. By de By default, peer-to-peer capabilities aren't enabled for devices using a battery. If there are many mobile devices in your environment, consider enabling the [DOMinBatteryPercentageAllowedToUpload](waas-delivery-optimization-reference.md#allow-uploads-while-the-device-is-on-battery-while-under-set-battery-level) policy to 60%, to use peering while on battery. -## System resources +## 5. System resources :::image type="content" source="images/do-setup-system-resources.png" alt-text="Screenshot of Delivery Optimization system resources considerations." lightbox="images/do-setup-system-resources.png"::: @@ -139,7 +137,7 @@ Control the minimum amount of RAM (inclusive) allowed to use peer caching, [DOMi In a lab situation, there's typically a set number of devices that are plugged in and have ample free disk space. By increasing the content expiration interval of [DOMaxCacheAge](waas-delivery-optimization-reference.md#max-cache-age) to 7 or more (up to 30 days), you can take advantage of these devices, using them as excellent upload sources to upload more content over a longer period. -## Improve efficiencies +## 6. Improve efficiencies :::image type="content" source="images/do-setup-improve-efficiencies.png" alt-text="Screenshot of Delivery Optimization improve efficiency considerations." lightbox="images/do-setup-improve-efficiencies.png"::: @@ -153,7 +151,7 @@ Looking to improve efficiency? Some of the most powerful settings you can change > [!NOTE] > Not all content types aren't eligible for P2P. Refer the [complete list](waas-delivery-optimization.md#types-of-download-content-supported-by-delivery-optimization) to learn more. -## Connected cache +## 7. Connected cache :::image type="content" source="images/do-setup-connected-cache.png" alt-text="Screenshot of Delivery Optimization options when using Connected Cache." lightbox="images/do-setup-connected-cache.png"::: @@ -165,73 +163,14 @@ Looking to improve efficiency? Some of the most powerful settings you can change * [DelayCacheServerFallbackBackground](waas-delivery-optimization-reference.md#delay-background-download-cache-server-fallback-in-secs) and [DelayCacheServerFallbackForeground](waas-delivery-optimization-reference.md#delay-foreground-download-cache-server-fallback-in-secs) are the delay policies to help improve chances of pulling content from the network cache host servers. (See recommended values in ‘Improving Efficiencies’ section). * [DODisallowCacheServerDownloadsOnVPN](waas-delivery-optimization-reference.md#disallow-cache-server-downloads-on-vpn) allows control of the cache host server to supply content, when device is on a VPN connection. -## Monitor Delivery Optimization and Troubleshooting +## Monitor Delivery Optimization Whether you opt for the default Delivery Optimization configurations or tailor them to suit your environment, you will want to track the outcomes to see how they improve your efficiency. [Learn more](waas-delivery-optimization-monitor.md) about the monitoring options for Delivery Optimization. -### Troubleshooting +## Troubleshoot Delivery Optimization -#### DO Troubleshooter +There could be many different reasons why Delivery Optimization is not working in your environment. [Learn more](elivery-optimization-troubleshoot.md) about the DO Troubleshooter and common problems and solutions to help improve the experience of using Delivery Optimization. -[Check out](https://aka.ms/do-fix) the new Delivery Optimization Troubleshooter. This tool provides a device health check to verify the device is set up properly to use Delivery Optimization. To scope the output more specifically, use one of the available switches: - -* -HealthCheck: Provides an overall check of the device setup to ensure Delivery Optimization communication is possible on the device. -* -P2P: Provides output specific to P2P settings, efficiency, and errors. -* -MCC: Provides output specific to MCC settings and verifies the client can access the cache server. - -### Testing Delivery Optimization +## Test Delivery Optimization [Learn more](delivery-optimization-test.md) for guidance on basic testing scenarios to see how Delivery Optimization works. - -### Common problems and solutions - -This section summarizes common problems and some solutions to try. - -#### If you don't see any bytes from peers - -If you don't see any bytes coming from peers the cause might be one of the following issues: - -* Clients aren't able to reach the Delivery Optimization cloud services. -* The cloud service doesn't see other peers on the network. -* Clients aren't able to connect to peers that are offered back from the cloud service. -* None of the computers on the network are getting updates from peers. - -#### Clients aren't able to reach the Delivery Optimization cloud services - -Try these steps: - -1. Start a download of an app that is larger than 50 MB from the Store (for example "Candy Crush Saga"). -2. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and observe the [DODownloadMode](waas-delivery-optimization-reference.md#download-mode) setting. For peering to work, download mode should be 1, 2, or 3. -3. If the download mode is 99, it could indicate your device is unable to reach the Delivery Optimization cloud services. Ensure that the Delivery Optimization host names are allowed access: most importantly **\*.prod.do.dsp.mp.microsoft.com**. - -#### The cloud service doesn't see other peers on the network - -Try these steps: - -1. Download the same app on two different devices on the same network, waiting 10 - 15 minutes between downloads. -2. Run `Get-DeliveryOptimizationStatus` from an elevated PowerShell window and ensure that **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1 or 2 on both devices. -3. Run `Get-DeliveryOptimizationPerfSnap` from an elevated PowerShell window on the second device. The **NumberOfPeers** field should be nonzero. -4. If the number of peers is zero and **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** is 1, ensure that both devices are using the same public IP address to reach the internet (you can easily do this by opening a browser window and do a search for "what is my IP"). In the case where devices aren't reporting the same public IP address, configure **[DODownloadMode](waas-delivery-optimization-reference.md#download-mode)** to 2 (Group) and use a custom **[DOGroupID (Guid)](waas-delivery-optimization-reference.md#group-id)**. - -> [!NOTE] -> Starting in Windows 10, version 2004, `Get-DeliveryOptimizationStatus` has a new option `-PeerInfo` which returns a real-time list of potential peers per file, including which peers are successfully connected and the total bytes sent or received from each peer. - -#### Clients aren't able to connect to peers offered by the cloud service - -Try a Telnet test between two devices on the network to ensure they can connect using port 7680. Follow these steps: - -1. Install Telnet by running `dism /online /Enable-Feature /FeatureName:TelnetClient` from an elevated command prompt. -2. Run the test. For example, if you're on device with IP 192.168.8.12 and you're trying to test the connection to 192.168.9.17 run `telnet 192.168.9.17 7680` (the syntax is *telnet [destination IP] [port]*. When you see a connection error or a blinking cursor like this /_. The blinking cursor means success. - -> [!NOTE] -> You can also use [Test-NetConnection](/powershell/module/nettcpip/test-netconnection) instead of Telnet to run the test. -> **Test-NetConnection -ComputerName 192.168.9.17 -Port 7680** - -#### None of the computers on the network are getting updates from peers - -Check Delivery Optimization settings that could limit participation in peer caching. Check whether the following settings in assigned group policies, local group policies, or MDM policies are too restrictive: - -* Minimum RAM (inclusive) allowed to use peer caching -* Minimum disk size allowed to use peer caching -* Enable peer caching while the device connects using VPN. -* Allow uploads when the device is on battery while under the set battery level diff --git a/windows/deployment/do/images/do-setup-full.png b/windows/deployment/do/images/do-setup-full.png deleted file mode 100644 index 1cdbdaf0de455899fe20ed683aba1418c64ad742..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133468 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