Category Archives: PC

Auto Added by WPeMatico

Introducing Driver Module Framework – Windows Developer Blog

The Microsoft Devices team is excited to announce the release of an open source framework for Windows driver developers — Driver Module Framework (DMF). With DMF, not only can you easily develop simple and structured Windows Driver Framework (WDF) drivers but also share code amongst your drivers.Over the years Surface organization developed many products such as Pro, Studio, Laptop, Book with unique, innovative hardware capabilities. To light up these capabilities, we often needed to write drivers and firmware. Even though these products had commonalities in terms of how they interfaced with the hardware, individual product teams worked in isolation and built either their own drivers from scratch or copied based on their awareness of existing code and modified to suit their needs. This did help in meeting their immediate business priorities, but led to tremendous duplication of code and maintenance overhead. Developers with varied level of experience often created many divergent solutions to solve the same problem and the code lacked structure and quality.
About three years ago, the team decided to take a holistic look at drivers written for various Surface products and started an effort to structure code in a way that allows for maximum reuse of code with goals to improve the efficiency, serviceability, and scalability of teams to build new products.
We started by breaking down individual functionalities in drivers into a shareable code base. This iterative effort led to the creation of DMF: an extension to WDF that provides you with a library of new WDF Objects called DMF Modules. Modules allow interaction with one another, WDF, and hardware in a structured manner.
Today, all WDF drivers on the team are written by using DMF. Modules are well tested and can be reused or extended later to meet new requirements. Besides having the benefit of well-architected drivers, bug fixes are now efficient. A bug fix in a Module is automatically applied to all the drivers that were built using the Module.
As part of the open source effort, we have shared many Modules that provide solutions for commonly faced problems.

Let’s start by looking at a typical design of WDF driver.

In this design, the driver maintains state in a device context and the code is divided into units that access the device context and communicate among themselves. You, as the driver developer, are responsible for making sure that accesses to the device context are synchronized and strict locking hierarchy is adhered to when units communicate with each other to avoid corruption and deadlock. As WDF calls into the driver, you are also responsible for dispatching work to each of the units as needed. It is hard to know the flow of communication and keep access to the device context properly synchronized.
If you want to reuse for example FIFO code in another driver. You need to understand the complex interaction between the units before extracting the code and the fields used to store the state. Often times, that is error prone.
Now let’s improve the architecture by using DMF. Here the driver is built by using a client Module and several prebuilt generic utility Modules. We are going to refer to code that uses a Module as the client driver. Between WDF and individual Modules, there is a thin arbitration layer (DMF) to bind Modules and dispatch WDF events to each Module. Now, Modules communicate with each other and the client driver in a well-defined manner as shown by the arrows. Instead of all the Modules sharing the device context, each one uses its own context area to maintain its state.

Here are some key differences between a traditional WDF and DMF-based WDF driver:
WDF communicates with DMF, while DMF communicates with the driver.
The device context (shown in green) exists independently in each Module and in the client driver-specific code. Each smaller device context holds only the elements that are needed for that Module. No Module can access another Module’s device context.
The WDF callbacks (shown in red) now exist independently in each Module and in the client-specific code. WDF calls into the client driver. DMF intercepts that call and dispatches it to each Module in the tree of instantiated Modules. Each Module handles each callback as it sees fit. Finally, DMF dispatches the callbacks to the client driver’s callbacks.
Finally, note the arrows. The arrows specifically show the flow among Modules and the client-specific code. In this example, client-specific code can only communicate with three Modules: ACPI, Button, and Stream. It cannot communicate with GPIO, FIFO, List, or Thread. ACPI cannot communicate with FIFO, etc. Even without looking at source code, we have a good idea of how data flows in this driver.
To summarize, each Module is a self-contained single unit. It has its own code, context, and callbacks. This makes the code easy to reuse. Organizing drivers in this way solves many problems.

DMF follows design and interaction patterns of WDF. DMF does not replace WDF nor does it restrict the driver from using OS interfaces directly. DMF makes it easier for you to break down the tasks that a device driver must perform into smaller units. Then, those smaller, self-contained units that perform a single task can be written as Modules.
1. DMF Modules use interaction patterns consistent with existing WDF objects. Just like any WDF object, a DMF Module:
Has a CONFIG structure, methods, and event callbacks.
Can be parented to other WDF objects for life time management.
2. Modules within a client driver are organized into a tree structure that is maintained by the core of DMF. The core is responsible for creating, opening, closing, and destroying Modules. In turn each Module is responsible allocating and freeing its own resources.
3. Modules that are siblings of each other cannot communicate directly. Only Modules in a parent-child relationship can communicate with each other; only parent Modules can communicate with their children Modules (with the exception of callbacks).
4. Modules can be extended to meet new requirements, or a new Module can be created by combining multiple Modules.
5. Module design is analogous to a class in an object-oriented programming pattern. If you are familiar with the Universal Extensible Firmware Interface (UEFI) Driver Execution Environment (DXE), you will find similarity with Modules.)

DMF Module

C++ Analogous Concept

Module
C++ Object
Module Context
C++ Object Private Data (members). Also, importantly this is analogous to WDF drivers’ “device context”.
Module Config
C++ Object Constructor Parameters
Module Public Methods
C++ Object Public Functions
Module Private Methods
C++ Object Private Functions
Module Handle
C++ “this” pointer
Client driver
The code that instantiates the C++ object.
6. Each Module has its own locks. Each Module is responsible for locking its own private context. Thus, locking is granular but, at the same time, efficient and easy to understand.
7. Modules can be used by the client driver or by other Modules; are agnostic about the code that uses them.
8. Modules can use any number of child Modules. Child Modules, in turn, can use any number of Child Modules.
9. DMF provides default implementations for many driver routines such as DriverEntry, AddDevice, WDF Queue creation, so that simple driver (aka Container driver) can be created with as little code as possible.
10. The client driver only needs to instantiate the Module that the driver needs. Child Modules (if any) required are automatically instantiated by DMF on behalf of the driver.
11. Modules support inheritance. If you want to modify or add capabilities to an existing Module X, it is easy to make a Module Y that is a parent of X. Y then reuses X but provides other functionality as needed.
12. Modules can directly receive all WDF callbacks that are received by the client driver.
13. DMF supports all WDF drivers: KMDF/UMDF, Bus/Filter/Function Drivers, Miniport Drivers, C / C++ Drivers.
14. You can easily integrate DMF into their existing drivers or easily write new drivers from scratch.

The current release of DMF includes these Modules:

Modules for buffer management

Description

DMF_BufferPool                                  
Provides a list of zero or more pre-allocated buffers with bounds-checking validation and timer logic to manage lifetime of buffers. This is a fundamental block used by many other Modules.
DMF_BufferQueue
This data structure is composed of two DMF_BufferPool instances providing producer/consumer usage pattern.
DMF_PingPongBuffer
Provides a “ping-pong” buffer that allows the Client to read from one part of the buffer which contains fully transmitted/processed data while another part of the Client code continues populating a new partially filled buffer.
DMF_RingBuffer
Provides a classic ring-buffer data structure.
DMF_ThreadedBufferQueue
Allows the Client to enqueue work. That work is then processed synchronously. Client may optionally wait for work to complete. This is a good example of how Modules can use other Modules to create more complex Modules.

Modules for task management

Description

DMF_QueuedWorkitem
This Module enhances the WDFWORKITEM primitive in two ways: 1. Allows Client to enqueue work items even if they are already enqueued. 2. Allows a call specific context to be enqueued.
DMF_ScheduledTask
Allows the Client to specify that an operation should happen a single time, either for the lifetime of the machine or for the current boot cycle.
DMF_Thread
This Module creates a thread and associated “stop” event, a ‘work ready” event and a provides callback function to the Client. An internal callback function waits for the above events and calls the Client callback when the “work-ready” event is set.

Modules for notification

Description

DMF_NotifyUserWithEvent
Allows the client driver to easily set up an event in Kernel-mode that is also accessible in User-mode.
DMF_NotifyUserWithRequest
Allows a Client to notify User-mode of events using the classic IOCTL from User-mode pattern. Data can be sent with the event.

Modules for accessing various I/O targets

Description

DMF SelfTarget
Allows the client driver to send a WDFREQUEST to its own stack.
DMF_AcpiTarget
Allows the client driver to query ACPI in various ways. It allows the Client to easily query/invoke/evaluate DSM methods.
DMF_ContinuousRequestTarget
Allows the Client to send requests to WDFIOTARGET in a continuous manner. It is similar to the WDF UsbContinuousReader object but it works for all WDFIOTARGETS.
DMF_DeviceInterfaceTarget
Allows the Client to register for a PnP Notification an interface and automatically manage the arrival and removal of the associated device. It also allows the Client send requests in a continuous manner using DMF_ContinuousRequestTarget as a Child Module.
DMF_GpioTarget
Allows the client driver to communicate with the GPIO pins exposed by the GPIO WDFIOTARGET. This Module automatically looks for the GPIO resources and opens the appropriate targets based on settings set by the Client.
DMF_HidTarget
Allows the client driver to communicate with an underlying HID WDFIOTARGET. Methods are provided that allow the Client to work with input/output/feature reports.
DMF_I2cTarget
Allows the Client to communicate with an I2C bus that is exposed by SPB.  This Module automatically looks for the I2C resources and opens the appropriate targets based on settings set by the Client.
DMF_RequestTarget
Contains code that builds and send requests. It can be used with any WDFIOTARGET.
DMF_ResourceHub
Allows the client driver to communicate with a Resource Hub WDFIOTARGET. The Module contains all the code need to parse the type resource and other information.
DMF_SerialTarget
Allows the client driver to open Serial IO Stream target and send requests.
DMF_SpiTarget
Allows the client driver to communicate with an SPI bus that is exposed by SPB.

Miscellaneous utility Modules

Description

DMF_AcpiNotification
Allows the client driver to register for and receive asynchronous notifications via ACPI.
DMF_AlertableSleep
Allows the client driver to cause a thread to sleep and cancel that sleep at any time.
DMF_ButtonTargetViaMsGpio
Allows the client driver to communicate with the device interfaces exposed by MSGPIOWIN32. These interfaces allow the driver to inject button and tablet related messages.
DMF_CrashDump
Allows the client driver to easily write data to the Windows Crash Dump file when the system crashes.
DMF_IoctlHandler
Allows the Client to more easily handle IOCTLs. Client provides a table of supported IOCTLS, the kind of access required, and the minimum/maximum sizes of the input/output buffers as well as a callback that processes the IOCTL.
DMF_Pdo
Allows the client driver to easily create PDOs for enumerating virtual devices.
DMF_Registry
Provides functions that allow the client driver to work easily with the Registry.
DMF_SmbiosWmi
Allows the client driver to read the SMBIOS data which the Module retrieves using WMI.
DMF_VirtualHidDeviceVhf
This Module is a wrapper around the VHF API. Modules use this Module as a Child Module to create virtual HID devices. Those parent Modules expose Methods that are specific to that virtual HID device.
DMF_VirtualHidKeyboard
Provides an example of how to create a Virtual HID device using DMF_VirtualHidDeviceVhf.
DMF_Wmi
Allows the client driver work with the WMI API easily.

DMF and its Modules, templates and sample code have been shared for public use on Github. We will continue to improve the code and add new Modules in the open-source repository. Also, look forward to more sample drivers that show different features of DMF and to help you understand the various ways DMF can be used.
DMF has been designed with the goal to develop and maintain quality drivers with maximum efficiency and maintainability. It’s now being shared to the world as open source so the Windows ecosystem can leverage this framework and utility-modules to write quality drivers. WDF over a decade ago brought tremendous improvement over WDM and changed the driver landscape, however it has not provided an ability for a 3rd party driver house to create extensions/libraries that plug seamlessly into the WDF messaging model and can be shared across drivers.
We are confident that DMF will help you develop and maintain quality drivers with maximum efficiency and maintainability.
Look out for more posts about DMF. We intend to answer your questions, so please post your comments on Github!

Announcing Windows Admin Center Preview 1808 – Windows Experience Blog

Hello Windows Insiders!Thank you for your continued interest in the Windows Admin Center insider preview! If you are new to the preview, check out the previous posts for the 1806 and 1807 releases.

Much of the work in this release was under the hood – we are implementing new infrastructure to support future scenarios and improving the experience for the Azure Site Recovery and Azure Update Management hybrid scenarios.
Server settings such as environment variables, remote desktop and RBAC settings are now available as a standalone tool at the bottom of the tool list in the Server Manager solution. Hyper-V host settings are also available on standalone servers and clusters with Hyper-V enabled. The Hyper-V host settings on a cluster allows you to change configurations across all cluster nodes at once!
In Virtual Machines, a new security settings section has been added to the individual VM settings.

We’ve also made updates to the Windows Admin Center SDK (Preview), as we prepare for our upcoming SDK GA.  We’ve added a CLI to enable easy creation of tools and solutions; added the ability to target different SDK versions; refreshed SDK examples for tool, solution, and gateway plugin; and updated our publishing options.

Preview: Apps & Features tool
Apps & Features is a new extension that allows Administrators to remotely manage the components that are installed on their Windows deployments.  When connecting to a Windows 10 client, the extension will load both the Apps (Store and Win32) that are installed, as well as the Features that can be enabled or disabled.  When you connect to a server, you will just see the Apps portion of the extension.  This feature is currently available in preview on our extension feed and can be installed from the Available Extensions in the Extension Manager.

Task Scheduler
Added weekly & monthly triggers, support for multiple triggers.
File share improvements
File sharing has been expanded to multiple tools and includes more features!  In the Files tool, now you can quickly share a folder, edit share permissions, or stop sharing a folder from the action buttons.  We’ve added the ability to set Deny as a permission option on a user or group, and the folder icon now indicates if a folder is shared.  Additionally, in the Storage tool on the file shares tab, you can now create a new share, edit a share, or remove a share.
Azure Update Management support in service mode (gateway installation on a server)
Last month when we released Azure Update Management support, the feature was only usable from Windows Admin Center installed on a desktop. The feature now works regardless of how you’ve deployed Windows Admin Center. Azure Update Management is a free service from Azure security and management that lets you manage and update all the servers in your environment from a central place.
Hyper-Converged Infrastructure
For Hyper-Converged clusters, the Drives > Summary page now shows the recommended reserve capacity to help you size volumes optimally. There are also two new charts on this page, showing the hit rate of the Storage Spaces Direct read cache (higher is better), and how full the write cache is (lower is better). To make advanced concepts like these more approachable, we’re added explanatory tooltips, with links to documentation, all throughout the HCI experience.
This month we also began work to make the Hyper-Converged Cluster experience responsive to different viewport sizes. The Drives > Summary page is a good example: whether your monitor is 1920×1080, 1366×768, or even if you have the browser window snapped to half the screen (e.g. 960px width), everything reflows elegantly and displays correctly. Note that we have NOT completed this work for certain pages, such as the Dashboard, just yet – stay tuned for future updates.

Windows Admin Center CLI
We’ve released the Windows Admin Center CLI as part of the SDK!  The CLI installs seamlessly alongside your other global dependencies by running ‘npm install -g windows-admin-center-cli’.  Once installed, you can create a new empty tool or solution with a single command, with more features planned in upcoming releases.  Read more about using the CLI in our SDK documentation.
Target an SDK version
Keeping your extension up to date with SDK changes and platform changes is easy.  We’re using NPM to tag the GA release, preview release, and latest versions of our platform dependencies.  Learn how to use those to update your development environment automatically, and switch between versions to validate your extension’s integration with our latest features.
Refreshed SDK examples
We’ve refreshed the tool, solution, and gateway plugin examples to leverage all the latest features in the Windows Admin Center platform, and the examples are now built on top of the Windows Admin Center CLI.  Check them out!
Publishing extensions and plugins
You have more options for publishing extensions and gateway plugins.  Now you can bundle a gateway plugin with an extension package.
What’s next?
We’re on the path to GA release of the Windows Admin Center SDK!  A number of additional improvements and new content are planned between now and then, stay tuned for updates.

Events – A expanding the navigation tree a couple levels deep, it may appear that there are many duplicate items. These are not duplicated, but the result of the content below that point being flattened in to one level. [18588187]
Microsoft Edge Browser – if you have Windows Admin Center installed as a service and using Microsoft Edge as your browser, connecting your gateway to Azure will fail after spawning a new (blank) browser tab. [17990376]
Tag filtering – if you select connections using the multiselect checkboxes, then filter your connection list by tags, the original selection persists so any action you select will apply to all the previously selected machines. [18099259]
HCI – The total size of the write cache is incorrect and variable, and the “donut” visualization can sometimes be out of sync with the legend values by 1 update cycle (30 seconds).

Registered Insiders may download Windows Admin Center Preview 1808 directly from the Windows Server Insider Preview download page, under the Additional Downloads dropdown. If you have not yet registered as an Insider, see Getting Started with Windows 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. Send us feedback via UserVoice. We also encourage you to visit the Windows Admin Center space on the Microsoft Tech Communities forum to collaborate, share and learn from experts.

All pre-release software made available to you via the Windows Server Insider program are governed by the Insider Terms of Use.
No downtime for Hustle-As-A-Service,Dona

Announcing Windows Server 2019 Insider Preview Build 17733 – Windows Experience Blog

Hello Windows Insiders!Today we are pleased to release a new build of the Windows Server vNext Long-Term Servicing Channel (LTSC) release that contains both the Desktop Experience and Server Core, as well as a new build of the next Windows Server Semi-Annual Channel release, Microsoft Hyper-V Server and Windows Admin Center 1808.
In each preview release, there are two major areas that we would like you to try out:
In-place OS Upgrade (from Windows Server 2012 R2, Windows Server 2016 or a previous preview build). Build-to-Build upgrade is also supported.
Application compatibility – please let us know if any server roles or applications stops working or fails to function as it used to.

To see the full list of new functionality introduced in earlier builds of Windows Server, plus updated installation instructions for the Server Core App Compatibility FoD Preview that includes support for Internet Explorer 11, see aka.ms/ServerInsider-WhatsNew.
Windows Admin Center Preview 1808
See http://aka.ms/WACPreview1808-InsiderBlog for full details.
A Faster, Safer Internet with HTTP/2 and CUBIC
The Internet is part of our daily lives at work and at home, and in the enterprise and in the cloud.  We are committed to making your Internet experience faster and safer, and in #8 A Faster, Safer Internet, a new post on the Networking Blog, we discuss how the features in Windows Server 2019 and Windows 10 bring those goals to reality. These goals are accomplished by:
Microsoft Edge on Windows 10 clients taking advantage of connection coalescing for HTTP/2, as supported by Windows Server 2019.
Improved security in Microsoft Edge browsers due to guaranteeing HTTP/2 preferred cipher suites.
Improved performance on Windows 10 due to Cubic, the new default TCP congestion provider.
For more details about these improvements, please see our blog entry: Top 10 Networking Features in Windows Server 2019: #8 A Faster, Safer Internet.
SDN Goes Mainstream
If you’ve ever deployed Software Defined Networking (SDN), you know it provides great power but is historically difficult to deploy. Now, with Windows Server 2019, it’s easy to deploy and manage through a new deployment UI and Windows Admin Center extension that will enable anyone to harness the power of SDN.
For more details about these improvements, please see our blog entry: Top 10 Networking Features in Windows Server 2019: #7 SDN Goes Mainstream
Cluster Sets (Hyperscale for Hyper-Converged)
We have announced cluster sets previously, but since then, we have done additional work to improve placement of virtual machines. While preserving existing experience of Failover Cluster management experiences on member clusters, an instance of a cluster set additionally offers key use cases around lifecycle management of a cluster set at the aggregate.
To recap, cluster sets is the new cloud scale-out technology in this preview release that increases, by orders of magnitude, the count of cluster nodes in a single Software-Defined Data Center (SDDC) cloud. A cluster set is a loosely-coupled grouping of multiple failover clusters: compute, storage, or hyper-converged. Cluster Sets technology enables fluidity of virtual machines across member clusters within a cluster set and a unified storage namespace across the set.
Please test out this new functionality and let us know what you think. You can find a short introductory video and links to more information on Microsoft Server & Tools Blogs: Cluster Sets in Windows Server 2019 – Hyperscale for Hyperconverged !!
Docs: https://aka.ms/Cluster_Sets on Windows IT Pro Center
Video: Learn all about Windows Server 2019 Cluster Sets on YouTube
Code: Microsoft / WSLab / Scenarios / S2D and Cluster Sets on GitHub
Feedback: csrequests@microsoft.com
Failover Cluster: Cluster Network Object
The Cluster Network Object (CNO) in a failover cluster is crucial to the management of a cluster. When creating a cluster, the creation process will detect the IP address scheme that is used on the network cards. If your network uses DHCP, the Cluster IP address will automatically get an IP address from your DHCP server. If your network uses static IP addresses, you will be prompted to enter an IP address to be used. However, there are only so many IP addresses that may be available, so we have introduced new functionality that is available when creating a cluster and the CNO.
You may be familiar with how a Scale-Out File Server (SOFS) works—an SOFS has a separate network name, and it is a distributed name. That means that the network name will take on the IP address of all the nodes. So, in DNS you can see the SOFS network name with an entry that is the IP address of the physical (or virtual) nodes. The system now offers that as an option for the CNO and will do some detection to make things a little easier, depending on how and where you create the cluster.
There is now a new switch for FailoverClusters, PowerShell cmdlets for failover clusters, called –ManagementPointNetworkType that you can use with New-Cluster. The options for this switch are:
Singleton: Use the traditional method of DHCP or static IP address.
Distributed: Use a Distributed Network Name using node IP addresses.
Automatic: Use detection. If running in Azure, use Distributed; if running on-premises, use Singleton (the default).
So, for example, to create a cluster utilizing Node1 and Node2 on-premises, where DHCP provides IP addresses, and to have the CNO as a distributed name, the PowerShell command would be:
New-Cluster -Name Cluster -ManagementPointNetworkType Distributed -Node Node1,Node2
If you use Failover Cluster Manager to create the cluster, it will default to using Automatic for the network type.

This makes creating clusters in Azure a much easier process, because there is no need to create an additional Internal Load Balancer (ILB) for the Failover Cluster.

Windows Server 2019 Preview is available in ISO format in 18 languages, and in VHDX format in English only. This build and all future pre-release builds will require use of activation keys during setup. The following keys allow for unlimited activations:
Datacenter Edition
6XBNX-4JQGW-QX6QG-74P76-72V67
Standard Edition
MFY9F-XBN2F-TYFMP-CCV49-RMYVH
Windows Server vNext Semi-Annual Preview – The Server Core Edition is available in English only, in ISO or VHDX format. The images are pre-keyed – no need to enter a key during setup.
Microsoft Hyper-V Server
Windows Admin Center Preview 1808 – see http://aka.ms/WACPreview1808-InsiderBlog for full details.
Symbols are available on the public symbol server – see Update on Microsoft’s Symbol Server blog post and Using the Microsoft Symbol Server. Matching Windows Server container images will be available via Docker Hub. For more information about Windows Server containers and Insider builds, click here.
This build will expire December 14th, 2018.

To obtain the Insider software downloads, registered Insiders may navigate to the Windows Server Insider Preview download page.  If you have not yet registered as an Insider, see GETTING STARTED WITH SERVER on the Windows Insiders for Business portal.

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 on in this format:
[Server #####] Title of my feedback
We also encourage you to visit the Windows Server Insiders space on the Microsoft Tech Communities forum to collaborate, share and learn from experts.

[NEW] The Virtual Hard Disk Miniport Driver (Vhdmp.sys) may experience a bug check, SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e).
[NEW] A Remote Desktop connection may fail when Windows Defender Application Guard launches. This issue may affect preview releases starting with build 17727.
When a Windows Defender Application Guard container crashes, the resulting type of dump may be unexpected.
On a preview build of the operating system, Narrator is not available by default after installation. On an affected system, the audio service is disabled by default.
A Multi-Resilient Volume (MRV) may fail to mount during node maintenance for a software-defined datacenter (SDDC) cluster, causing virtual machines to go offline.
On recent preview builds, database applications might not be able to initialize a database and fail with a stack overflow or insufficient privileges when the database is located on an SMB volume.
Shielded VMs running Linux do not boot. The loader (LSVMLoad) waits for a passphrase for the boot partition.
Creating or modifying environment variables by using setx fails on a system running in a Nano Container (that is, Nano Server as a container image). On an affected system, setx requires a specific path in the registry, HKCUEnvironment, to exist by default. You can work around this issue by changing where the variable is stored in the registry, or you can add the expected registry path before executing setx commands. To specify that the variable be set for system-wide use in HKLM rather than in HKCU, the default, add the /M switch to a setx command. To instead add the expected registry path, run reg add HKCUEnvironment before executing setx commands.

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.
No downtime for Hustle-As-A-Service,Dona

Windows 10 Tip: Emoji Panel overhaul includes more languages, ways to insert multiple emoji – Windows Experience Blog

If you like to express yourself with emojis, the Windows 10 April 2018 Update features updates to the Emoji Panel that includes support for more languages.
Now, you can use Emoji Panel to insert multiple emoji at once. After opening up the panel by pressing hotkey Windows logo key + “.” or “;”, you can browse, search and then select more than one emoji. The panel won’t go away until you click close button or press the “Esc” key. More emoji will also now appear as you’re typing related words with the touch keyboard.
Emoji search is now available for more languages. You can find an emoji by keyword in more than 150 locales, including English (Great Britain), French (France), German (Germany), Spanish (Spain) and more.
We’ve also added Emoji Panel support for more languages. You can now use the emoji in more than 190 locales – 151 of which have tooltip support when you hover over each emoji. This includes English (Great Britain), French (France), German (Germany) and Spanish (Spain).
Check out the Emoji Panel:

And stay tuned for more emoji, including superheroes, redheads, a softball, a pirate flag and more coming in the next Windows 10 update!
If you like this, check out more Windows 10 Tips.
Updated August 13, 2018 9:43 am

Announcing Windows 10 Insider Preview Build 18214 – Windows Experience Blog

Hello Windows Insiders!Today, we are releasing Windows 10 Insider Preview Build 18214 (19H1) to Windows Insiders who have opted in to Skip Ahead.

Your Phone app is now LIVE!
Android phone users, check it out and keep the feedback coming. Build 17723+ is highly recommended for the best experience. Your Phone app is also live for Insiders who are in Skip Ahead running 19H1 builds. With Your Phone app, you get instant access to your Android’s most recent photos on your PC. Drag and drop that photo from your phone onto your PC. Copy, edit, or ink on that photo, right from your PC. Android 7.0+ are compatible with Your Phone app. For PCs tied to the China region, Your Phone app services will be enabled in the future.
For iPhone users, Your Phone app helps you to link your phone to your PC. Surf the web on your phone, then send the webpage instantly to your computer to pick up where you left off to continue what you’re doing–read, watch, or browse with all the benefits of a bigger screen. With a linked phone, continuing on your PC is one share away.
A Faster Safer Internet with HTTP/2 and CUBIC
The Internet is part of our daily lives both at work and at home, in the enterprise and in the cloud.  We are committed to making your Internet experience faster and safer, and in this blog, we discuss how the features in Windows Server 2019 and Windows 10 brings those goals to reality.
Windows 10 Microsoft Edge clients will take advantage of connection coalescing for HTTP/2 as supported in Windows Server 2019
Improved security on Microsoft Edge browsers by guaranteeing HTTP/2 preferred cipher suites
Improved performance on Windows 10 thanks to Cubic, the new default TCP congestion provider
For a full writeup detailing this improvement, please see our announcement A Faster, Safer Internet.

We fixed the issue resulting in the Clock & Calendar flyout sometimes not appearing until you clicked Start or the Action Center. This same issue impacted both notifications and the taskbar jump lists appearing. Thank you to all the Windows Insiders who gave feedback on this issue.
We fixed an issue that could result in an unexpected sihost.exe error when entering Safe Mode.
We fixed an issue where Timeline’s scrollbar didn’t work with touch.
We fixed an issue where when naming a tile folder in Start it would commit as soon as you pressed space.
As some keen eye’d Insiders noticed, we’ve been working on our scaling logic and you should find apps resize better now after monitor DPI changes. As always, we appreciate feedback in this space, so let us know if you have any issues.
We fixed an issue where the enabled/disabled state of Fast Startup would be reset to default after upgrading. After upgrading off of this build your preferred state will persist.
We fixed an issue where the Windows Security icon in the taskbar systray would become a little bit blurrier every time there was a resolution change.
We fixed an issue where the USERNAME environment variable was returning SYSTEM when queried from an un-elevated Command Prompt in recent builds.
We’ve updated the messaging in Snipping Tool to more closely align with the commitment we made here. You’ll also notice in the message that we’re exploring renaming our updated snipping experience – bringing together the old and new. The app update with this change hasn’t flighted yet, but if you have any feedback on the subject we’re open to hearing it.

The dark theme File Explorer payload mentioned here is on its way to Skip Ahead, but not yet there. You may see some unexpectedly light colors in these surfaces when in dark mode and/or dark on dark text.
When you upgrade to this build you’ll find that the taskbar flyouts (network, volume, etc) no longer have an acrylic background.
When you use the Ease of Access Make Text bigger setting, you might see text clipping issues, or find that text is not increasing in size everywhere.
When you set up Microsoft Edge as your kiosk app and configure the start/new tab page URL from assigned access Settings, Microsoft Edge may not get launched with the configured URL. The fix for this issue should be included in the next flight.
You may see the notification count icon overlapping with the extension icon in the Microsoft Edge toolbar when an extension has unread notifications.
On Windows 10 in S Mode, launching Office in the Store may fail to launch with an error about a .dll not being designed to run on Windows. The error message is that a .dll “is either not designed to run on Windows or it contains an error. Try installing the program again…” Some people have been able to work around this by uninstalling and reinstalling Office from the Store. If that doesn’t work, you can try to install a version of Office not from the Store.
When the Narrator Quickstart launches, Scan Mode may not reliably be on by default. We recommend going through the Quickstart with Scan Mode on. To verify that Scan Mode is on, press Caps Lock + Space.
When using Narrator Scan mode you may experience multiple stops for a single control. An example of this is if you have an image that is also a link. This is something we are actively working on.
If the Narrator key is set to just Insert and you attempt to send a Narrator command from a braille display then these commands will not function. As long as the Caps Lock key is a part of the Narrator key mapping then braille functionality will work as designed.
There is a known issue in Narrator’s automatic dialog reading where the title of the dialog is being spoken more than once.
When using Narrator Scan mode Shift + Selection commands in Edge, the text does not get selected properly.
Narrator sometimes does not read combo boxes until Alt + down arrow is pressed.
For more information about Narrator new keyboard layout and other known issues, please refer to Intro to New Narrator Keyboard Layout doc (ms/RS5NarratorKeyboard).
We’re investigating a potential increase in Start reliability and performance issues in this build.

If you install any of the recent builds from the Fast ring and switch to the Slow ring – optional content such as enabling developer mode will fail. You will have to remain in the Fast ring to add/install/enable optional content. This is because optional content will only install on builds approved for specific rings.
No downtime for Hustle-As-A-Service,Dona

Announcing Windows 10 Insider Preview Build 17735 – Windows Experience Blog

Hello Windows Insiders!
Today, we are releasing Windows 10 Insider Preview Build 17735 (RS5) to Windows Insiders in the Fast ring.

We fixed an issue resulting in Reveal not working in Build 17733, for example in Start or Settings.
We fixed an issue resulting in links that launched one app from another app not working in the last few flights for some Insiders.
We fixed an issue in Windows Mixed Reality where the voice command, “Flashlight on,” would fail to activate the flashlight feature.
We fixed an issue resulting in Notepad’s “Search with Bing” feature searching for “10 10” instead of “10 + 10” if that was the search query. We also fixed an issue where accented characters would end up as question marks in the resulting search.
We fixed an issue where Ctrl + 0 to reset the zoom level in Notepad wouldn’t work if the 0 was typed from a keypad.
We fixed an issue where nearby sharing would become blocked on the sender device after canceling share to three different devices.
Narrator Scan Mode has been improved to prevent multiple stops for a single control.
We fixed the issue where Narrator said “Not a Narrator command” when navigating Win32 menu bar items.
We removed the Windows alert sound when performing the Narrator Find command.
We fixed the issue where Narrator got stuck at a word boundary when making a selection using select current and previous character.

Your PC will bugcheck (GSOD) when deleting a local folder that is synced to OneDrive.
When you upgrade to this build you’ll find that the taskbar flyouts (network, volume, etc) no longer have an acrylic background.
When you use the Ease of Access Make Text bigger setting, you might see text clipping issues, or find that text is not increasing in size everywhere.
On Windows 10 in S Mode, launching Office in the Store may fail to launch with an error about a .dll not being designed to run on Windows. The error message is that a .dll “is either not designed to run on Windows or it contains an error. Try installing the program again…” Some people have been able to work around this by uninstalling and reinstalling Office from the Store.
When using Narrator Scan mode Shift + Selection commands in Microsoft Edge, the text does not get selected properly.
Narrator sometimes does not read in the Settings app when you navigate using Tab and arrow keys. Try switching to Narrator Scan mode temporarily. And when you turn Scan mode off again, Narrator will now read when you navigate using Tab and arrows key. Alternatively, you can restart Narrator to work around this issue.
We’re investigating a potential increase in Start reliability and performance issues in this build.
After setting up a Windows Mixed Reality headset for the first time on this build with motion controllers, the controllers may need to be re-paired a second time before appearing in the headset.
No downtime for Hustle-As-A-Service,Dona

Announcing Windows 10 Insider Preview Build 17733 – Windows Experience Blog

Hello Windows Insiders!Today, we are releasing Windows 10 Insider Preview Build 17733 (RS5) to Windows Insiders in the Fast ring.

Dark Theme in File Explorer
With Build 17666 we started our journey bringing dark theme to File Explorer. Today’s build marks the turning point where we’ve finished what we set out to do for this release. Thank you to all Insiders that have shared feedback during this time!

Thanks everyone for your feedback about the XAML shadows we added recently. We’re taking them offline for the moment while we work on addressing some of the things you shared with us. You will also notice that the acrylic has been removed from some popup controls. They will be back in a future flight.
We fixed an issue from recently flights where the touch keyboard might become invisible on the screen.
We fixed an issue in recent flights where components of a notification with a progress bar (like the one when using nearby sharing) might flash every time the progress bar updated.
We fixed an issue where on certain devices if you reset your device and chose to keep files, after logging back into Windows the Sound Settings page would be unresponsive.
We fixed the issue where the High Contrast dropdown flashed when the values were changed.

We fixed the issue where Narrator couldn’t access all the emoji in the Touch Keyboard’s emoji panel.
We fixed the issue where Narrator didn’t say “selected” after image was selected using the keyboard.
We fixed the issue where Touch Narrator’s focus remained on the word even after deselecting it.
We fixed the issue where the Narrator key got sticky when using the Mouse Mode command.
We fixed the issue where Narrator’s Command Restore Default dialog was not read by Narrator.
We fixed the issue where Narrator’s copy and paste feature would say “selection removed” but the selection remained.
We fixed the issue where Narrator automatic dialog read the Command key Assignment dialog twice.
We have improved the Narrator experience when moving by character and announcing phonetic pronunciations.
We fixed the issue where Narrator focus and keyboard focus got out of sync after navigating TreeView controls.
We fixed the issue where Narrator misread the Calculator app’s display on focus for values over 100.
We fixed the issue where when launching Narrator QuickStart using the link in Narrator Settings, the Narrator icon would appear in the taskbar.
We fixed the issue where Narrator couldn’t read the label of the Word document recovery dialog.
We fixed the issue so Narrator can now navigate the New Notepad Status Bar contents.
We fixed the issue where Narrator Scan mode navigation didn’t progress after tabbing onto a link.
We fixed the issue where Narrator navigated out of the Microsoft Edge browser window using Scan mode on some web pages.
We fixed the issue where Narrator crashed when Developer Mode was in use and the generated string to display was null.
We fixed the issue where Narrator continuous reading got stuck on a table element in some HTML emails.

Your PC will bugcheck (GSOD) when deleting a local folder that is synced to OneDrive.
Clicking a link to launch one app from another app may not work for some Insiders. We’re investigating.
When you upgrade to this build you’ll find that the taskbar flyouts (network, volume, etc) no longer have an acrylic background.
When you use the Ease of Access Make Text bigger setting, you might see text clipping issues, or find that text is not increasing in size everywhere.
On Windows 10 in S Mode, launching Office in the Store may fail to launch with an error about a .dll not being designed to run on Windows. The error message is that a .dll “is either not designed to run on Windows or it contains an error. Try installing the program again…” Some people have been able to work around this by uninstalling and reinstalling Office from the Store.
When using Narrator Scan mode you may experience multiple stops for a single control. An example of this is if you have an image that is also a link. This is something we are actively working on.
When using Narrator Scan mode Shift + Selection commands in Microsoft Edge, the text does not get selected properly.
We’re investigating a potential increase in Start reliability and performance issues in this build.
After setting up a Windows Mixed Reality headset for the first time on this build with motion controllers, the controllers may need to be re-paired a second time before appearing in the headset.
When using a Windows Mixed Reality immersive app, saying “Flashlight on,” may fail to activate the flashlight feature even though the status appears as active on the Start menu.

If you install any of the recent builds from the Fast ring and switch to the Slow ring – optional content such as enabling developer mode will fail. You will have to remain in the Fast ring to add/install/enable optional content. This is because optional content will only install on builds approved for specific rings.

Have you read our latest story? An old discarded PC is gold to this Windows Insider, who revives old computers and donates them to community members in need.

And every Windows feature has a story. One of our favorites is the development of Eye Control, which Microsoft has been working on with the help of Steve Gleason, an NFL football player who is now living with ALS.
No downtime for Hustle-As-A-Service,Dona

Announcing Windows Community Toolkit v4.0 – Windows Developer Blog

The Windows Community Toolkit recently reached over 1 million downloads across all nuget packages. This is a very big milestone for the community and I’m very excited to announce yet another major update to the Windows Community Toolkit, version 4.0. With the help of the Windows community, this update introduces several new additions and improvements, specifically:New DataGrid with fluent design for all UWP developers
Two new Microsoft Graph controls. PowerBIEmbedded enables embedding PowerBI dashboards in your UWP apps and PlannerTasksList allows users to work with Microsoft Planner tasks
The Twitter, LinkedIn, and Microsoft Translator services have moved to the .NET Standard services package and available to even more developers, including desktop and Xamarin developers
Strong-named packages for those developers that require strong-named assemblies
Dark theme support for the sample app and theme chooser for each sample
These are some of the biggest updates in this release and I encourage you to view the full release notes on our GitHub. Let’s take a look at some of these updates in more details.

New fluent DataGrid control
We had introduced a preview of a fluent DataGrid control for Windows 10 in Version 3.0. In the past several months, we have added a few more features based on community feedback, ensured more reliability and better accessibility for the DataGrid control. We are now pleased to announce the general availability of the DataGrid control.
The DataGrid control is a robust control that provides a flexible way to display a collection of data in rows and columns. It retains the programming model for DataGrid from Silverlight and WPF so it is familiar to XAML developers who have used the DataGrid control in older XAML technologies. Developers can now create highly flexible tabular visualization of data with editing, data validation and data shaping functionalities with a few simple lines of code in Windows 10:

Make sure to visit the DataGrid documentation to learn about the capabilities of the DataGrid control with detailed guidance documents and How-Tos with code samples. DataGrid comes in a standalone nuget package that you can download and add reference to.
New Microsoft Graph controls
Version 3 of the toolkit introduced a new category of UWP controls to enable developers access the Microsoft Graph. With few lines of code, developers can add UI to enable users to log in to the Microsoft Graph, search for coworkers and friends, browse SharePoint files and more. Version 4.0 introduces two new Microsoft Graph controls: PlannerTaskList and PowerBIEmbedded.
The PlannerTaskList enables developers to integrate tasks directly in their apps and allow users to interact with the Microsoft Planner tasks. Teams and individuals depend on Microsoft Planner to get organized quickly, work together effortlessly, and stay on the same page.

The PowerBIEmbedded control enables developers to embed a rich PowerBI dashboard directly in their apps and allow users to interact with the rich data directly.
Moved Twitter, LinkedIn, and Microsoft Translator services to .NET Standard
The Windows Community Toolkit contains APIs to make it easy to work with web services such as Twitter, OneDrive, LinkedIn, Microsoft Graph and more. Originally only available to only UWP developers, with this update, most services have moved to our .NET Standard services package (Microsoft.Toolkit.Services). These services are now available to any framework implementing .NET Standard 1.4 and above, which includes UWP, the .NET Framework (including WPF and WinForms), Xamarin, .NET Core and many more.
Get started today
As a reminder, you can get started by following this tutorial, or preview the latest features by installing the Windows Community Toolkit Sample App from the Microsoft Store. If you would like to contribute, please join us on GitHub! To join the conversation on Twitter, use the #windowstoolkit hashtag.
Happy coding!
Updated August 8, 2018 8:36 am

What’s your monetization strategy? – Windows Developer Blog

Selecting how to monetize your app is a big part of any development process. Different kinds of apps can have very different opportunities and needs—so your monetization strategy can inform not just your business model, but your app’s final design, content, and code.Microsoft Store offers a variety of different ways to add monetization to your app. Here’s a quick breakdown of our 4 biggest earners and how they can work for you.

Charging an up-front base price is a one-time transaction: you offer a product and the user pays for it. Microsoft Store allows you to change your base price at any time, in any market, so you can always experiment with your numbers and see how your target audience responds.
A general rule of thumb for setting a base price is to scope out the competition. Once you know what the market has paid in the past, you can set a price point for your own unique product.
You can see from the data below that charging a base price is the most used option in the Microsoft Store for apps.

In-app purchases are microtransactions that allow customers to purchase additional content within an app itself. These small fees can build up to big returns—a Gartner Research report revealed that customers will spend 24% more on in-app purchases than they would to buy an app outright. Once a customer sees value, they have an incentive to pay.
Content is king for in-app purchases. The more your customers use or enjoy your app, the more likely they are to purchase new content that is bigger, better, or simply more.
In-app purchase is the most chosen method to monetize for games within the Microsoft Store, as shown below.

With subscriptions, customers pay a recurring, scheduled fee to access your app. You select the amount, the schedule, and if it covers your entire app or applies to digital products within your app, like features or content.
The subscription model is ideal for apps that offer continuous content and services. In addition to a reliable revenue stream, you also gain access to a quantifiable base of loyal users.

Mobile advertising is one of most profitable app revenue models for developers with native, banner, and interstitial formats heading the list.
If you elect the ad route, include your designers so they can fold your advertising formats seamlessly into your app experience. You can find test ads and more information on best practices here.

No matter which monetization strategy you choose, be sure to check out how you get paid. Comment below on which monetization strategy you’re using!

Bring your film libraries together through Movies Anywhere, now available on Xbox and Windows 10 – Windows Experience Blog

The Microsoft Movies & TV app for Xbox and Windows 10 devices now supports Movies Anywhere, which brings your favorite film libraries together in one place.

When you connect your Microsoft account with your Movies Anywhere account, you can enjoy all of your eligible movies from Microsoft across your favorite screens at no extra cost. This includes Xbox and Windows, iOS and Android, smart TVs and streaming devices.
You’ll also be able to watch eligible movies you previously bought from other participating digital retailers through the Movies & TV app on Xbox and Windows 10.
As part of this launch, you can add “X-Men: Days of Future Past” for free to your digital collection, for a limited time, if you connect your Microsoft account to Movies Anywhere for the first time.
Head over to Xbox Wire to find out more.
Updated August 6, 2018 9:06 pm