Category Archives: Windows Blog

Windows Blog

New optimizations boost performance in preview builds of Microsoft Edge – Microsoft Edge Blog

Starting with Microsoft Edge build 81.0.389.0 on 64-bit Windows 10, we’ve enabled new toolchain optimizations that should provide a substantial performance improvement in general browsing workloads.We’ve measured an up to 13% performance improvement in the Speedometer 2.0 benchmark when compared to Microsoft Edge 79. Speedometer measures performance by simulating user interactions in a sample web app across a number of DOM APIs and popular JavaScript frameworks used by top sites, and is generally regarded as a good proxy for real-world performance across a number of different subsystems including the DOM, JavaScript engine, layout, and more.
We’d like your help validating these improvements in your real-world browsing as we approach our next Beta release later this month. You can try out these improvements by comparing performance in the latest Dev or Canary builds to Microsoft Edge 80 or earlier.
The details:
We measured Speedometer 2.0 in ten consecutive runs on Microsoft Edge 79, where the optimizations are not yet implemented.  The results are below.

Microsoft Edgev. 79.0.309.71
1
84.6
2
85.4
3
85.3
4
85.3
5
84.6
6
84.9
7
85.8
8
84.7
9
84.8
10
84.3
Median
84.85
Benchmarked on Windows 10 1909 (OS Build 18363.592) on a Microsoft Surface Pro 5 (Intel(R) i5-8250U CPU 1.60GHz and 8 GB RAM), with no other applications running and no additional browser tabs open.
We then ran Speedometer 2.0 on recent versions of Microsoft Edge 81 which include the new optimizations, with the following results.

Microsoft Edgev. 81.0.410.0
Microsoft Edgev. 81.0.403.1
1
96.3
96.7
2
91.1
95.7
3
91.7
95.2
4
96
95.5
5
97.6
95.5
6
97.4
95.9
7
96.8
96.2
8
94.4
96.2
9
96.4
95.5
10
94.4
95.4
Median
96.15
95.6
Benchmarked on Windows 10 1909 (OS Build 18363.592) on a Microsoft Surface Pro 5 (Intel(R) i5-8250U CPU 1.60GHz and 8 GB RAM), with no other applications running and no additional browser tabs open.
We would love for you to try the new optimizations in Dev or Canary and let us know if you notice these improvements in  your real-world experience. Please join us on the Microsoft Edge Insider forums or Twitter to discuss your experience and let us know what you think! We hope you enjoy the changes and look forward to your feedback!
Update as of 02/20/2020 – Thank you to the Microsoft Edge Insider Community for continuing to test and provide feedback on Microsoft Edge. Your testing and feedback helped us identify a compatibility issue with a third party app that we’re actively working to address. We’ve modified the optimizations to mitigate the issue and expect you’ll see more modest performance improvements in the upcoming Beta Channel build. Please continue hammering on the Canary and Dev builds and sending us feedback!

Nature photographer uses ASUS all over the world to connect people to wildlife | Windows Experience Blog

The last place Kristi Odom expected to be was in a crowd.
Shy by nature, she studied electrical and computer engineering at Georgia Tech, but a loss in her family led to unusual environments (for her): football games and concerts. And during those moments, she found what she’d do for the rest of her life.
“I’ve always been close to my family, very close to my grandfather. And when he passed away, he left me his camera gear. I started taking photos to feel close to him and to remember him,” Odom says. “And I realized that even in being quiet, I could have a loud voice that went far. And photography brought me out of my shell. It made me less introverted and it put me in the middle of everything and made me realize that I had a voice that I could share.”

Sleeping lion just waking up at Karongwe Game Reserve South Africa, December 2019 (Photo by Kristi Odom)

Now the introvert goes to conferences and speaks in front of thousands. She leads conservation-focused workshops. (This year, those will be in Bolivia, Kenya and New Zealand). Besides the Smithsonian, she’s had an image up in Times Square, on display at conferences like CES and Photoplus, and in various publications including Forbes, Outside magazine, People.com, Rollingstone.com, ABC news and Nikon.com.
And now she’s expanded her skillset by opening a new branch of her company, thanks to faster processors and graphics cards in laptops.
“I’ve just started doing video work over the last year and a half, and that’s because of the technology that’s now available. Currently my workstation is the ASUS ZenBook Pro Duo, and this laptop opens up so many possibilities,” she says. “Being able to edit on an airplane or in a tent, and to be able to put a piece together at the height of the passion of the moment helps me put my emotion into my work. My main goal in life has always been to connect people emotionally to wildlife, to show people the beauty that there is in animals and the beauty there is in this planet that we have. And hopefully through visuals I can get people to really care more for this planet.”
Find out more about Odom at Microsoft Stories.

Announcing Windows 10 Insider Preview Build 19564 | Windows Experience Blog

After installing Build 19564.1000, Windows Insiders will be offered Build 19564.1005 (KB4541091) as a Cumulative Update via Windows Update. This Cumulative Update does not include any new code and is designed to help us test our servicing pipeline.Hello Windows Insiders, today we’re releasing Windows 10 Insider Preview Build 19564.1000 to Windows Insiders in the Fast ring.
If you want a complete look at what build is in which Insider ring, head over to Flight Hub. You can also check out the rest of our documentation here, including a list of new features and updates.
Not seeing any of the features in this build? Check your Windows Insider Settings to make sure you’re on the Fast ring. Submit feedback here to let us know if things weren’t working the way you expected.

Graphics Settings Improvements
We’ve updated the Graphics settings page (Settings > System > Display > Graphics settings), allowing for better control over designating which GPU your apps run on. With this update, the app list and GPU preference are pre-populated on a best effort basis to improve the default preference management experience. If your desired app isn’t pre-populated, you can still add it by using the app selection drop-down.

You’ll notice alongside this, we’ve also added a search box and a filter for the list of apps.

Preview the new Calendar app on Windows 10

We’ve been working on an improved version of the Calendar app for Windows 10 and the preview is now available to Windows Insiders! Here is a sneak peek of what’s new in the preview:
New themes: choose from over 30 different themes!
Improved month view: Month view now includes an agenda pane that lets you see your day’s events at a glance.
Simplified event creation: We’ve made it even easier to add an event to your calendar.
Redesigned account navigation: We’ve collapsed the account navigation pane, leaving more space for your day’s events.       All of your syncing calendar accounts are now represented as clickable icons on the left.
You can try the preview by going to the Calendar app and selecting the toggle to try the new experience. Don’t worry, you can always switch back at any time! We are excited to hear what you think of the new experience.

Learn more about the Calendar preview here!

We fixed an issue resulting in East Asian IMEs (Simplified Chinese, Traditional Chinese, Korean and the Japanese IME) potentially being missing from the language/keyboard switcher (e.g. opened by Windows key + Space key) after upgrading from 20H1 Build 19041 or lower builds to Windows 10 Insider Preview build (19536 or later). Please note that this fix will stop it from happening, however, if you were already impacted from a previous build, you’ll need to remove and re-add any keyboards that are missing from the keyboard switcher by going to Settings > Time & Language > Language > Preferred languages, in order to get yourself back into a good
We’ve updated the Japanese IME so that when using the new Microsoft Edge in inPrivate mode, this will also enable private mode in the IME.
We fixed an issue from the previous flight where if you brought up clipboard history (WIN+V) and dismissed it without pasting anything, input in many places would stop working until you rebooted your PC.
We fixed a rare crash when opening the Windows Ink Workspace.
We fixed an issue that could result in the Wheel UI (that you’d see when using a Surface Dial) crashing when no custom commands had been configured.
We fixed an issue that could result in the login screen password field unexpectedly not rendering.
WSL Issue 4860: We’ve fixed an issue resulting in some Insiders experiencing this error message when using WSL2: A connection attempt failed on Windows.
We’ve resolved one issue preventing some Insiders from updating to newer builds with error 0xc1900101. We’re continuing to review logs to further investigate additional issues with this error code.
We fixed an issue with the Windows setup UI (that you would see when using an ISO, or if prompted to fix issues impacting Windows Update, such as low space) where the apostrophe in “you’re” was replaced by junk characters.
We fixed an issue resulting in certain devices no longer sleeping on idle in recent builds.
We reduced TLS usage in certain shell components. What does that mean for you? Basically, we made things take a little less memory, which also helps certain apps that are sensitive to TLS usage.
We fixed an issue resulting in a small set of Insiders seeing their system time unexpectedly jump forward.
We fixed a crash resulting in some Insiders seeing a green screen with a CRITICAL_PROCESS_DIED error message.
We fixed an issue that could result in a deadlock (where everything would freeze) when using your PC.
We fixed a crash some Insiders were hitting in EoaExperiences.exe when using the text input cursor indicator.
We fixed an issue resulting in not being able to set focus to the search box in the common file dialog when launched from remote desktop connection settings and certain other apps.
We fixed an issue where File Explorer wasn’t calculating the correct folder size in Properties when the UNC path was longer than MAX_PATH.
We fixed an issue where the banner at the top of Settings might say an update was in progress, even though Windows Update Settings would say you’re up to date.
For Insiders that have the Settings header, you may notice the OneDrive icon has been updated with today’s build.
We fixed an issue resulting in Settings crashing when selecting sync across devices > Get Started under Clipboard.
We fixed an issue with wallpaper transitions on Build 19536+, which was affecting some third-party wallpaper apps.

BattlEye and Microsoft have found incompatibility issues due to changes in the operating system between some Insider Preview builds and certain versions of BattlEye anti-cheat software. To safeguard Insiders who might have these versions installed on their PC, we have applied a compatibility hold on these devices from being offered affected builds of Windows Insider Preview. See this article for details.
We are aware Narrator and NVDA users that seek the latest release of Microsoft Edge based on Chromium may experience some difficulty when navigating and reading certain web content. Narrator, NVDA and the Edge teams are aware of these issues. Users of legacy Microsoft Edge will not be affected. NVAccess has released a NVDA 2019.3 that resolves the known issue with Edge.
We’re looking into reports of the update process hanging for extended periods of time when attempting to install a new build.
We’re investigating reports that some Insiders are unable to update to newer builds with error 0x8007042b.
The Documents section under Privacy has a broken icon (just a rectangle).
When you upgrade with certain languages, like Japanese, the “Installing Windows X%” page isn’t rendering the text correctly (only boxes are displayed).
The cloud recovery option for Reset this PC isn’t working on this build. Please use the local reinstall option when performing Reset this PC.

Love is in the air! Valentine’s Day is this Friday and Bing wants to help you celebrate. Our Valentine’s Day spotlight provides gift ideas, recipes, love songs, and more. We even have a fun quiz where you can test your love songs IQ and challenge your friends!
If you want to be among the first to learn about these Bing features, join our Bing Insiders Program.
Thanks,BLB

Releasing Windows 10 Insider Preview Build 19041.84 to the Slow ring | Windows Experience Blog

Hello Windows Insiders, today we’re releasing 20H1 Build 19041.84 (KB4539080) to Windows Insiders in the Slow ring. This Cumulative Update includes quality improvements. Key changes include:
Security updates to Microsoft Edge, Internet Explorer, Windows App Platform and Frameworks, Microsoft Graphics Component, Windows Input and Composition, Windows Media, Windows Shell, the Microsoft Scripting Engine, Windows Fundamentals, Windows Management, Windows Virtualization, Windows Peripherals, Windows Network Security and Containers, Windows Storage and Filesystems, and Windows Server.
We have fixed an issue where in certain cases, after Windows runs a scheduled task during a maintenance window, a PC may get into an unbootable state after installing Build 19041.21 (KB4535550).
For more information about the resolved security vulnerabilities, please refer to the Security Update Guide.

We are aware Narrator and NVDA users that seek the latest release of Microsoft Edge based on Chromium may experience some difficulty when navigating and reading certain web content. Narrator, NVDA and the Edge teams are aware of these issues. Users of legacy Microsoft Edge will not be affected. NVAccess has released a NVDA 2019.3 that resolves the known issue with Edge.
Thanks,BLB

Microsoft 365 Developer Day: Dual-screen experiences – Windows Developer Blog

Today at Microsoft 365 Developer Day: Dual-screen experiences, we showed you our vision for dual screens. We shared how dual-screen devices are optimized for the way you naturally work and want to get things done. We created a device experience that gives you the option to benefit from a larger screen and have two defined screens so you can do more on a single device.We shared how your apps work and how you can optimize for three dual-screen patterns whether you are building apps for Windows, Android, or the Web.
Expansive workspaces. This is an opportunity to show more detail as your app spans across two screens and allows you to highlight your content on a bigger, more expansive, canvas. Whether your users are reading an article, scrolling a feed, or browsing a gallery, having more real estate helps your users to see more of your content.
Focused screens. Dual-screen devices are more than just a bigger screen – they allow you to take advantage of the defined screens and accomplish what you need without interruption. You can see your app on one screen and your tools on the other and stay in your flow.
Connected apps. When your apps can work together across screens you can achieve broader and bigger tasks without losing context. Your work flows naturally for app-to-app launches, or if your app opens a new window – content will be placed naturally across screens making side-by-side comparisons and multi-tasking easy and natural.

Your code is important, and our goal is to make going on this journey with us as easy as possible. This starts by maintaining app compatibility and ensuring your existing websites and apps work well on dual-screen devices. Windows 10X is an expression of Windows 10 and for the first-time apps will run in containers to deliver non-intrusive updates and improved system resources for extended battery life.
Windows Insider Preview SDK
Starting today, you can download and install the Microsoft Emulator and tools to start developing apps and testing your apps for Windows 10X. We focused on creating an emulator experience that behaves naturally and adapts to the different device postures. This is an early preview of the experience and you will see updates regularly that follow the same standard Insider builds process.
Preview SDK for Microsoft Surface Duo update
We’ve also updated the preview SDK for Surface Duo to include all our Java native samples as Kotlin samples, drag-and-drop to help you capture the value of moving data between two apps on dual-screen devices, and to support users on MacOS, Linux (Ubuntu), and Windows with Android Studio, Visual Studio, and VS code integration.

Dual-screen devices create an opportunity for your apps to engage with people in a new and innovative way. Today, we showed you three dual-screen patterns: expansive workspaces, focused screens, and connected apps and how to enhance your app using one technology – however you can create these patterns using all the technologies and frameworks below.
Building web apps for dual-screen devices
One of the most-used apps on any device is the browser, and many other popular apps are powered by HTML, CSS, and JavaScript, either as PWAs or WebViews. We want to empower web developers to build a great dual-screen experience, whether you are building a website or web app.
To accomplish this, we’ve proposed a new JavaScript API and a CSS media query with a set of pre-defined env() variables. We’re working with the Second-screen and CSS Working Groups at the W3C, and as the standards process progresses, we intend to contribute our implementation to Chromium. The goal is to enable you to build interoperable dual-screen experiences across browsers and operating systems. You can learn more about these proposals on GitHub.
We also introduced new features in the Microsoft Edge DevTools which allows you to simulate and remotely debug dual-screen devices from Microsoft Edge on your desktop. We expect to add these to the DevTools in preview builds of Microsoft Edge soon.
You can also start using our refreshed WinUI 3.0 Alpha that comes with a chromium-based Edge WebView2. The WebView2 API is still early and more details and features will be added to our upcoming WinUI 3 Preview.
Using cross-platform frameworks for dual-screen development
To help you utilize all the possibilities for dual-screen devices we built the TwoPaneView control. This control automatically optimizes and adjusts your app so that you can focus on your content and see how your app will respond when spanned or rotated.
Utilize the new dual-screen SDK for Xamarin.Forms to build apps across Windows 10X and Android. This SDK includes a new TwoPaneView control and APIs such as the DualScreenInfo helper class to enable you to access important information and build beautiful dual-screen apps like the XamarinTV app we showed today.

Download the early sneak preview of the React Native dual-screen modules, a TwoPaneView component analogous to WinUI and Xamarin.Forms controls, and a lower-level DualScreenInfo module that returns usable screen regions around the seam and spanning events.
Developing Windows apps for dual screens
With the WinUI library you can use the TwoPaneView control that provides you two panes – pane 1 and pane 2 for content. This allows you to determine how much content can be shown on each screen and support scrolling of the content independently in each pane.
On Windows 10X, the OS has been designed to respond to the keyboard and posture to reveal what we call the Wonder Bar. This feature enables the familiarity of a laptop while increasing productivity by hosting system-provided input accelerators, and a virtual trackpad for precision mouse input. Apps using CompactOverlayView for always-on-top mini views like picture-in-picture, or MediaTransportControl for background audio playback, will automatically be placed into the Wonder Bar, for seamless and natural peripheral multitasking.
This is just the beginning for creating enhanced experiences for dual-screen devices. We are excited to work with you to idealize and innovate great dual-screen experiences. Please continue to reach out to us at [email protected] so we can learn and build together.

Announcing Windows 10 Insider Preview Build 19559 | Windows Experience Blog

Hello Windows Insiders, today we’re releasing Windows 10 Insider Preview Build 19559.1000 to Windows Insiders in the Fast ring.If you want a complete look at what build is in which Insider ring, head over to Flight Hub. You can also check out the rest of our documentation here, including a list of new features and updates.
Not seeing any of the features in this build? Check your Windows Insider Settings to make sure you’re on the Fast ring. Submit feedback here to let us know if things weren’t working the way you expected.

We fixed an issue with the IME candidate window for East Asian IMEs (Simplified Chinese, Traditional Chinese, and the Japanese IME) not opening sometimes on recent builds.
We fixed an issue that could result in explorer.exe crashing when backing out of folders containing .heic or RAW files.
We fixed an issue that could result in explorer.exe hanging when attempting to delete certain large .tif files.
We fixed an issue resulting in the top few pixels of a window getting clipped when using WIN+Up and then snapping the window to the side using WIN+Left/Right).
We fixed an issue resulting in Event Viewer crashing when selecting certain events recently.
For any of our Insiders using an arm64 device, such as the Surface Pro X, running Enterprise or Pro edition, you’ll now be able to see and install Hyper-V features.
We fixed an issue resulting in some Insiders experiencing a green screen in recent builds with error KMODE EXCEPTION NOT HANDLED.

BattlEye and Microsoft have found incompatibility issues due to changes in the operating system between some Insider Preview builds and certain versions of BattlEye anti-cheat software. To safeguard Insiders who might have these versions installed on their PC, we have applied a compatibility hold on these devices from being offered affected builds of Windows Insider Preview. See this article for details.
We are aware Narrator and NVDA users that seek the latest release of Microsoft Edge based on Chromium may experience some difficulty when navigating and reading certain web content. Narrator, NVDA, and the Edge teams are aware of these issues. Users of legacy Microsoft Edge will not be affected. NVAccess has released a beta of NVDA that resolves the known issue with Edge. Further information can also be found in the In Process blog post that goes into more detail about the beta.
We’re looking into reports of the update process hanging for extended periods of time when attempting to install a new build.
We’re investigating reports that some Insiders are unable to update to newer builds with error 0x8007042b.
We’re looking into reports that some Insiders are unable to update to newer builds with error 0xc1900101.
East Asian IMEs (Simplified Chinese, Traditional Chinese, Korean and the Japanese IME) may be missing from the language/keyboard switcher (e.g. opened by Windows key + Space key) after upgrading from 20H1 Build 19041 or lower builds to Windows 10 Insider Preview build (19536 or later) if you have multiple languages/keyboards added. We are investigating the issue. In the meantime, please remove and re-add any keyboards that are missing from the keyboard switcher by going to Settings > Time & Language > Language > Preferred languages. It doesn’t happen if you updated from build19536 or later.
The Documents section under Privacy has a broken icon (just a rectangle).
We’re investigating reports that certain devices are no longer sleeping on idle. We have identified the root cause and are working on a fix for an upcoming flight. If your device is impacted, manually triggering sleep should work (Start > Power button > Sleep).
WSL Issue 4860: Some Insiders are experiencing this error message when using WSL2: A connection attempt failed on Windows. Thank you if you were one of those who reported it on the previous flight—we have a fix ready which will be including in an upcoming flight.
There’s an issue in this build where if you bring up clipboard history (WIN+V) and dismiss it without pasting anything, input in many places will stop working until you reboot your PC. We appreciate your patience.
Thanks,BLB

Bringing the Microsoft Edge DevTools to more languages – Microsoft Edge Blog

We know inclusivity makes us work better and we love when we find ways to put that knowledge into practice. On the Edge team, we believe—and usage and research show—that developer experiences are more productive when they fit our language and location preferences. Today, we’re excited to move in that direction by announcing that the new Microsoft Edge now features DevTools localized in 10 languages (in addition to English):
Chinese (Simplified) – 中文(简体)(简体)
Chinese (Traditional) – 中文(繁體)(繁體)
French – français
German – deutsch
Italian – italiano
Portuguese – português
Korean – 한국어
Japanese – 日本語
Russian – русский
Spanish – español
This adds our new browser tools to a long list of other localized Microsoft developer experiences including VS Code, Azure Portal, and more.
This release is the result of collaboration over many months between our team and the DevTools, Lighthouse, and Chrome teams at Google. We’ve contributed all localizability features upstream (explainer), and plan to continue to do so so that other browsers can benefit from this work.
Try the localized developer tools
Make sure you have “Enable localized Developer Tools” turned on by heading to edge://flags, finding that flag, and setting it to “Enabled” (this is on by default in Canary; on by default soon in Dev, Beta, and Stable channels). Once on, your DevTools will match the language of the browser. On macOS, the developer tools inherit the language from the operating system. You can change the language in the Settings under the “Language and Region” section. Add another language, change it to your primary. Once you restart Microsoft Edge, the developer tools will be in that language.
If you just wanted to try the feature out and wish to revert to English, go to DevTools Settings (F1) > Preferences and click the checkbox to deselect “Match browser language.”

What’s next
For the initial release, we went with the top languages used by web developers within our ecosystem. Next, we’re evaluating popular right-to-left languages like Hebrew and Arabic and working on localizing our documentation. If you’d like those languages or other features in the localization and internationalization space, please let us know. We’re always happy to hear your thoughts.
To get in touch, you can Send Feedback from the Microsoft Edge menu (Alt-Shift-I), or share your thoughts with us on Twitter.
– Erica Draud, Program Manager, Microsoft Edge DevTools

Announcing Windows 10 Insider Preview Build 19555 | Windows Experience Blog

Hello Windows Insiders, today we’re releasing Windows 10 Insider Preview Build 19555.1001 to Windows Insiders in the Fast ring.If you want a complete look at what build is in which Insider ring, head over to Flight Hub. You can also check out the rest of our documentation here, including a list of new features and updates.
Not seeing any of the features in this build? Check your Windows Insider Settings to make sure you’re on the Fast ring. Submit feedback here to let us know if things weren’t working the way you expected.

We’ve resolved an issue where certain external USB 3.0 drives ended up in an unresponsive state with Start Code 10 after they were attached.
The cloud recovery option for Reset this PC is now back up and running on this build.
We fixed an issue resulting in ARM64 devices not being able to upgrade to the previous build.
We’ve updated Protection History in the Windows Security app to show a loading indicator in cases where loading is taking longer than expected.
We fixed an issue with the modern print dialog not displaying the print preview correctly in certain cases in recent flights.
We fixed an issue that could result in the Start menu and apps not opening until explorer.exe had been restarted after locking then unlocking your computer while listening to music.
We fixed an alignment issue with the toggles under Windows Update > Advanced options when certain policies were enabled/disabled.

BattlEye and Microsoft have found incompatibility issues due to changes in the operating system between some Insider Preview builds and certain versions of BattlEye anti-cheat software. To safeguard Insiders who might have these versions installed on their PC, we have applied a compatibility hold on these devices from being offered affected builds of Windows Insider Preview. See this article for details.
We are aware Narrator and NVDA users that seek the latest release of Microsoft Edge based on Chromium may experience some difficulty when navigating and reading certain web content. Narrator, NVDA and the Edge teams are aware of these issues. Users of legacy Microsoft Edge will not be affected. NVAccess has released a beta of NVDA that resolves the known issue with Edge. Further information can also be found in the In Process blog post that goes into more detail about the beta.
We’re looking into reports of the update process hanging for extended periods of time when attempting to install a new build.
We’re investigating reports that some Insiders are unable to update to newer builds with error 0x8007042b.
We’re looking into reports that some Insiders are unable to update to newer builds with error 0xc1900101.
The Documents section under Privacy has a broken icon (just a rectangle).
The IME candidate window for East Asian IMEs (Simplified Chinese, Traditional Chinese, and the Japanese IME) may not open sometimes. We are investigating your reports. As a workaround if you encounter this, please change the focus to another application or editing area and back to the original and try again. Alternatively, you can go to Task Manager and end the “TextInputHost.exe” task from the Details tab, and it should work afterwards.
We’re investigating reports that certain devices are no longer sleeping on idle. We have identified the root cause and are working on a fix for an upcoming flight. If your device is impacted, manually triggering sleep should work (Start > Power button > Sleep).

Did you miss the Grammys on Sunday? No worries, Bing has you covered. Check out our Grammy Award winners carousel. From Record of the Year to Pop Solo Performance, we cover it all. Select a winner and learn more about their career journey. Check it out here and let us know what you think!
If you want to be among the first to learn about these Bing features, join our Bing Insiders Program.

Help us continue to improve Microsoft Edge! Join our latest user research session today, January 30 from 11 a.m. to 12:30 p.m. PST to give us your feedback. Get more details about this session.
Thanks,BLB

TraceProcessor 0.3.0 – Windows Developer Blog

TraceProcessor version 0.3.0 is now available on NuGet with the following package ID:Microsoft.Windows.EventTracing.Processing.All
This release contains some feature additions and bug fixes since version 0.2.0. (A full changelog is below). Basic usage is still the same as in version 0.1.0.
The focus of this release has been in preparation for a forthcoming version 1.0.0, including many minor changes to naming and data types moving towards a finalized version 1 API.
Also, this release adds trace.UseStreaming(), which supports accessing multiple types of trace data in a streaming manner (processing data as it is read from the trace file, rather than buffering that data in memory). For example, a syscalls trace can be quite large, and buffering the entire list of syscalls in a trace can be quite expensive. The following code shows accessing syscall data in the normal, buffered manner via trace.UseSyscalls():
[code lang=”csharp”]
using Microsoft.Windows.EventTracing;using Microsoft.Windows.EventTracing.Processes;using Microsoft.Windows.EventTracing.Syscalls;using System;using System.Collections.Generic;
class Program{static void Main(string[] args){if (args.Length != 1){Console.Error.WriteLine(“Usage: <trace.etl>”);return;}
using (ITraceProcessor trace = TraceProcessor.Create(args[0])){IPendingResult<ISyscallDataSource> pendingSyscallData = trace.UseSyscalls();
trace.Process();
ISyscallDataSource syscallData = pendingSyscallData.Result;
Dictionary<IProcess, int> syscallsPerCommandLine = new Dictionary<IProcess, int>();
foreach (ISyscall syscall in syscallData.Syscalls){IProcess process = syscall.Thread?.Process;
if (process == null){continue;}
if (!syscallsPerCommandLine.ContainsKey(process)){syscallsPerCommandLine.Add(process, 0);}
++syscallsPerCommandLine[process];}
Console.WriteLine(“Process Command Line: Syscalls Count”);
foreach (IProcess process in syscallsPerCommandLine.Keys){Console.WriteLine($”{process.CommandLine}: {syscallsPerCommandLine[process]}”);}}}}
[/code]
With a large syscalls trace, attempting to buffer the syscall data in memory can be quite expensive, or it may not even be possible. The following code shows how to access the same syscall data in a streaming manner, replacing trace.UseSyscalls() with trace.UseStreaming().UseSyscalls():
[code lang=”csharp”]
using Microsoft.Windows.EventTracing;using Microsoft.Windows.EventTracing.Processes;using Microsoft.Windows.EventTracing.Syscalls;using System;using System.Collections.Generic;
class Program{static void Main(string[] args){if (args.Length != 1){Console.Error.WriteLine(“Usage: <trace.etl>”);return;}
using (ITraceProcessor trace = TraceProcessor.Create(args[0])){IPendingResult<IThreadDataSource> pendingThreadData = trace.UseThreads();
Dictionary<IProcess, int> syscallsPerCommandLine = new Dictionary<IProcess, int>();
trace.UseStreaming().UseSyscalls(ConsumerSchedule.SecondPass, context =>{Syscall syscall = context.Data;IProcess process = syscall.GetThread(pendingThreadData.Result)?.Process;
if (process == null){return;}
if (!syscallsPerCommandLine.ContainsKey(process)){syscallsPerCommandLine.Add(process, 0);}
++syscallsPerCommandLine[process];});
trace.Process();
Console.WriteLine(“Process Command Line: Syscalls Count”);
foreach (IProcess process in syscallsPerCommandLine.Keys){Console.WriteLine($”{process.CommandLine}: {syscallsPerCommandLine[process]}”);}}}}
[/code]
By default, all streaming data is provided during the first pass through the trace, and buffered data from other sources is not available. This example shows how to combine streaming with buffering – thread data is buffered before syscall data is streamed. As a result, the trace must be read twice – once to get buffered thread data, and a second time to access streaming syscall data with the buffered thread data now available. In order to combine streaming and buffering in this way, the example passes ConsumerSchedule.SecondPass to trace.UseStreaming().UseSyscalls(), which causes syscall processing to happen in a second pass through the trace. By running in a second pass, the syscall callback can access the pending result from trace.UseThreads() when it processes each syscall. Without this optional argument, syscall streaming would have run in the first pass through the trace (there would be only one pass), and the pending result from trace.UseThreads() would not be available yet. In that case, the callback would still have access to the ThreadId from the syscall, but it would not have access to the process for the thread (because thread to process linking data is provided via other events which may not have been processed yet).
Some key differences in usage between buffering and streaming:
Buffering returns an IPendingResult<T>, and the result it holds is available only before the trace has been processed. After the trace has been processed, the results can be enumerated using techniques such as foreach and LINQ.
Streaming returns void and instead takes a callback argument. It calls the callback once as each item becomes available. Because the data is not buffered, there is never a list of results to enumerate with foreach or LINQ – the streaming callback needs to buffer whatever part of the data it wants to save for use after processing has completed.
The code for processing buffered data appears after the call to trace.Process(), when the pending results are available.
The code for processing streaming data appears before the call to trace.Process(), as a callback to the trace.UseStreaming.Use…() method.
A streaming consumer can choose to process only part of the stream and cancel future callbacks by calling context.Cancel(). A buffering consumer always is provided a full, buffered list.
Sometimes trace data comes in a sequence of events – for example, syscalls are logged via separate enter and exit events, but the combined data from both events can be more helpful. The method trace.UseStreaming().UseSyscalls() correlates the data from both of these events and provides it as the pair becomes available. A few types of correlated data are available via trace.UseStreaming():

Code

Description

trace.UseStreaming().UseContextSwitchData()
Streams correlated context switch data (from compact and non-compact events, with more accurate SwitchInThreadIds than raw non-compact events).
trace.UseStreaming().UseScheduledTasks()
Streams correlated scheduled task data.
trace.UseStreaming().UseSyscalls()
Streams correlated system call data.
trace.UseStreaming().UseWindowInFocus()
Streams correlated window-in-focus data.
Additionally, trace.UseStreaming() provides parsed events for a number of different standalone event types:

Code

Description

trace.UseStreaming().UseLastBranchRecordEvents()
Streams parsed last branch record (LBR) events.
trace.UseStreaming().UseReadyThreadEvents()
Streams parsed ready thread events.
trace.UseStreaming().UseThreadCreateEvents()
Streams parsed thread create events.
trace.UseStreaming().UseThreadExitEvents()
Streams parsed thread exit events.
trace.UseStreaming().UseThreadRundownStartEvents()
Streams parsed thread rundown start events.
trace.UseStreaming().UseThreadRundownStopEvents()
Streams parsed thread rundown stop events.
trace.UseStreaming().UseThreadSetNameEvents()
Streams parsed thread set name events.
Finally, trace.UseStreaming() also provides the underlying events used to correlate data in the list above. These underlying events are:

Code

Description

Included in

trace.UseStreaming().UseCompactContextSwitchEvents()
Streams parsed compact context switch events.
trace.UseStreaming().UseContextSwitchData()
trace.UseStreaming().UseContextSwitchEvents()
Streams parsed context switch events. SwitchInThreadIds may not be accurate in some cases.
trace.UseStreaming().UseContextSwitchData()
trace.UseStreaming().UseFocusChangeEvents()
Streams parsed window focus change events.
trace.UseStreaming().UseWindowInFocus()
trace.UseStreaming().UseScheduledTaskStartEvents()
Streams parsed scheduled task start events.
trace.UseStreaming().UseScheduledTasks()
trace.UseStreaming().UseScheduledTaskStopEvents()
Streams parsed scheduled task stop events.
trace.UseStreaming().UseScheduledTasks()
trace.UseStreaming().UseScheduledTaskTriggerEvents()
Streams parsed scheduled task trigger events.
trace.UseStreaming().UseScheduledTasks()
trace.UseStreaming().UseSessionLayerSetActiveWindowEvents()
Streams parsed session-layer set active window events.
trace.UseStreaming().UseWindowInFocus()
trace.UseStreaming().UseSyscallEnterEvents()
Streams parsed syscall enter events.
trace.UseStreaming().UseSyscalls()
trace.UseStreaming().UseSyscallExitEvents()
Streams parsed syscall exit events.
trace.UseStreaming().UseSyscalls()
If there are other types of data that you think would benefit from streaming support, please let us know.
As before, if you find these packages useful, we would love to hear from you, and we welcome your feedback. For questions using this package, you can post on StackOverflow with the tag .net-traceprocessing, and issues can also be filed on the eventtracing-processing project on GitHub.

Breaking Changes
StartTime and StopTime have changed from DateTime to DateTimeOffset (no longer UTC but now preserving the trace time zone offset).
The following three properties on IContextSwitchIn were incorrect and have been removed: ThreadState, IsWaitModeSwapable and ThreadRank. These properties remain available from IContextSwitchOut.
Metadata has been removed. Use trace.UseMetadata instead.
OriginalFileName was removed because it may contain inaccurate data. Use IImage.OriginalFileName instead.
IImageWeakKey was removed because it may contain inaccurate data. Use IImage.Timestamp and IImage.Size instead.
WeakKey was removed because it may contain inaccurate data. Use Use IImage.Timestamp and IImage.Size instead.
DefaultSymCachePath was removed. Use static properties on SymCachePath instead.
DefaultSymbolPath was removed. Use static properties on SymCachePath instead.
Service snapshots were previously available from both IServiceDataSource and ISystemMetadata. They are now only available from IServiceDataSource.
Trace statistics and stack events have had their shapes made consistent with event APIs elsewhere in trace processor.

Renames:

ExecutingDeferredProcedureCall was removed. Use ICpuSample.IsExecutingDeferredProcedureCall instead.
ExecutingInterruptServicingRoutine was removed. Use ICpuSample.IsExecutingInterruptServicingRoutine instead.
IsWaitModeSwapable was incorrect and has been renamed IsUserMode.
The enum RawWaitReason has been renamed KernelWaitReason.
The RawWaitReason property on IContextSwitchOut has been renamed WaitReason.
StartTime has been renamed to EnterTime, and ISyscall.StopTime has been renamed to ExitTime.
ErrorCode has been changed to ExitCode for consistency.
UniqueKey has been renamed to ObjectAddress for accuracy.
TimeRange has been renamed to TraceTimeRange.
DiskIOPriority has been renamed to IOPriority.
A few core types named GenericEvent* have been renamed to TraceEvent* for consistency, since they also apply to classic and unparsed events (TraceEventHeaderFlags, TraceEventHeaderProperties and TraceEventType).
Trace statistics-related types are now in the Event namespace instead of the Metadata namespace.
StackEvent-related types are now in the Event namespace instead of the Symbols namespace.
Type has been replaced by TraceEvent.HeaderType.
EventProperty has been renamed to HeaderProperties.
Core extensibility types have been moved from the .Events namespace up to the Microsoft.Windows.EventTracing namespace.
Size has been renamed to Length for consistency.
WindowsTracePreprocessor has been renamed to TraceMessage for accuracy.
IsWindowsTracePreprocessor has been renamed to IsTraceMessage for accuracy.

Data Type Updates:
Most properties on IContextSwitch, IContextSwitchOut IContextSwitchIn have been made nullable for correctness.
uint Processor has been changed to int Processor on multiple types.
ID-like properties (for example, ProcessId and ThreadId) have been changed from uint to int for consistency with .NET.
UserStackRange is now nullable, and Base and Limit addresses have been swapped to match KernelStackRange ordering and actual Windows stack memory layout.
The type of RemainingQuantum on IContextSwitchOut has been changed from int? to long? due to observed data overflow.
Throughout the API, timestamp properties are now of type TraceTimestamp rather than Timestamp. (TraceTimestamp implicitly converts to Timestamp).

Cleanup:
ITraceTimestampContext has a new method (GetDateTimeOffset).
EventContext is now a ref struct instead of a class.
UserData is now of type ReadOnlySpan<byte> instead of IntPtr. The associated EventContext.UserDataLength has been removed; instead use EventContext.UserData.Length.
ExtendedData is now of type ExtendedDataItemReadOnlySpan, which is enumerable, rather than IReadOnlyList<ExtendedDataItem>.
TraceEvent has been split from EventContext and moved to EventContext.Event.
ICompletableEventConsumer has been replaced by ICompletable.
EventConsumerSchedule and IScheduledEventConsumer have been replaced by ConsumerSchedule and IScheduledConsumer.
Completion requests are no longer included in trace.Use(IEventConsumer) and require a separate call to trace.UseCompletion.
PendingResultAvailability has been merged into ConsumerSchedule.
UsePendingResult has been moved into an extension method.
PreparatoryPass and MainPass have been replaced with FirstPass and SecondPass.
WindowInFocus processing will no longer throw an exception when focus change events are missing.
Generic event field parsing exceptions will no longer be thrown during processing. Instead they are thrown on access to the Fields property of the IGenericEvent. GenericEventSettings.SuppressFieldParsingExceptions has been removed.
MarkHandled and MarkWarning have been removed.

New Data Exposed
Streaming window-in-focus data as well as parsed events are now available via trace.UseStreaming().
UseClassicEvents() now provides all classic events, not just unhandled ones.
Previously the very last ContextSwitch on each processor was omitted from IContextSwitchDataSource.ContextSwitches, as the information about the thread switching in at that time was not present. Now these context switches are included in the list with a null value for IContextSwitch.SwitchIn.
A new HypervisorPartitionDataSource has been added that exposes data about the Hyper-V partition the trace was recorded in.
TraceTimestamp now provides a .DateTimeOffset property to get the absolute (clock) time for a timestamp.
Streaming Last Branch Record (LBR) events are now available via trace.UseStreaming().
Streaming ready thread events are now available via trace.UseStreaming().
Streaming syscall data as well as parsed events are now available via trace.UseStreaming().
Streaming context switch data as well as parsed events (both standard and compact) are now available via trace.UseStreaming().
Streaming scheduled task data as well as parsed events are now available via trace.UseStreaming().
IContextSwitchOut now contains Rank (only present for the non-legacy implementation).
IContextSwitchIn now contains WaitTime (only present for the non-legacy implementation).
IScheduledTask now provides user information.
NuGet packages for individual namespaces are now available in addition to the .All packages.
Streaming thread events are now available via trace.UseStreaming().
IThread now provides BasePriority, IOPriority PagePriority, ProcessorAffinity and ServiceId.
Bug Fixes
Thread IDs used for syscalls are now taken from a reliable data source.
An access violation that could occur on program exit has been fixed.
Other
TraceTimestamp now implements IComparable, IEquatable and multiple comparison operators.
An event consumer can cancel future event delivery by calling EventContext.Cancel().
Scheduled tasks now support the remaining trigger types.

Announcing Windows Server vNext Insider Preview Build 19551 | Windows Experience Blog

Hello Windows Insiders!Today we are pleased to release a new Insider preview build of the Windows Server VNext Semi-Annual Channel Datacenter and Standard editions.

This build includes a fix that enlightens National Language Support (NLS) components to be container-aware. NLS state is now instanced per container. This fix addresses some scenarios where a container OS components attempts to access data that is unavailable in the container due to instancing.

Windows Server vNext Semi-Annual Preview The Server Core Datacenter and Standard Editions are available in the 18 supported Server languages in ISO format and in VHDX format in English only.
Matching Windows Server Core App Compatibility FoD Preview
Matching Windows Server Language Packs

Symbols are available on the public symbol server – see Update on Microsoft’s Symbol Server blog post and Using the Microsoft Symbol Server.
Containers: For more information about how to obtain and install Windows Server containers and Insider builds, click here.  Quick start information, here.
Keys: The following keys allow for unlimited activations of Windows Server Semi-Annual Channel Previews
Server Standard: V6N4W-86M3X-J77X3-JF6XW-D9PRV
Server Datacenter: B69WH-PRNHK-BXVK3-P9XF7-XD84W
The Windows Server Preview will expire July 31st, 2020.

Registered Insiders may navigate directly to the Windows Server Insider Preview download page.  See the Additional Downloads dropdown for Windows Admin Center and other supplemental apps and products. If you have not yet registered as an Insider, see GETTING STARTED WITH SERVER on the Windows Insiders for Business portal.

The most important part of a frequent release cycle is to hear what’s working and what needs to be improved, so your feedback is extremely valued. For Windows Server, use your registered Windows 10 Insider device and use the Feedback Hub application. In the app, choose the Windows Server category and then the appropriate subcategory for your feedback. In the title of the Feedback, please indicate the build number you are providing feedback as shown below:
[Server #####] Title of my feedback
See Share Feedback on Windows Server via Feedback Hub for specifics. We also encourage you to visit the Windows Server Insiders space on the Microsoft Tech Communities forum to collaborate, share and learn from experts.
For Windows Admin Center, Send us feedback via UserVoice. We also encourage you to visit the Windows Admin Center space on the Microsoft Tech Communities.

This is pre-release software – it is provided for use “as-is” and is not supported in production environments. Users are responsible for installing any updates made available from Windows Update.   All pre-release software made available to you via the Windows Server Insider program are governed by the Insider Terms of Use.
Thanks,BLB