Aug 31, 2021 Download NVIDIA GeForce 471.96 WHQL drivers. The DCH driver is a Microsoft DCH (Declarative Componentized Hardware supported apps) driver and refers to a new Windows 10 driver package.
I haven't seen a post on TPU or anywhere really...
Just went to geforce.com to download the latest driver. There was usually a drop down box to select standard or DCH drivers...that's now gone. It used to default to standard driver search but now defaulting to DCH.
Has nvidia stopped issuing standard drivers since 441.66 came? I mean standard were there when 441.66 dropped but...not anymore.
Same with the driver download page on nvidia.com
Have we reached the death of nvidia standard drivers and are joining the era of forced upgrades to DCH?
- How to fix Intel DCH graphics driver installation error in windows 10 latest versionHi guys, here’s how to fix graphics driver installation error in windows.
- The primary graphics driver for the NUC8i7HNK and NUC8i7HVK is the Radeon™ driver. If you don't install both the Intel HD Graphics driver and the Radeon driver, you might experience the following problems: Unstable graphics; Can't set up multiple displays; Applications crash after opening; Notes. This is a DCH driver.
This topic describes how the DCHU driver sample applies DCH design principles. You can use it as a model to apply DCH design principles to your own driver package.
If you would like a local copy of the sample repo, clone from Windows-driver-samples.
Some portions of the sample may use directives and APIs that are only available on certain versions of Windows 10 and above. Please refer to Device and Driver Installation to see what OS version a given directive is supported on.
Before you read this section, you should become familiar with the DCH Design Principles.
The sample provides example scenarios where two hardware partners, Contoso (a system builder, or OEM) and Fabrikam (a device manufacturer, or IHV) are working together to create a driver that is DCH-compliant for a device in Contoso's upcoming system. The device in question is an OSR USB FX2 learning kit. In the past, Fabrikam would write a legacy driver package that was customized to a specific Contoso product line, and then hand it to the OEM to handle servicing. This resulted in significant maintenance overhead, so Fabrikam decided to refactor the code and create a DCH-compliant driver package instead.
Use declarative sections/directives and properly isolate INF
First, Fabrikam reviews the list of INF sections and directives that are invalid in DCH-compliant driver packages. During this exercise, Fabrikam notices that they're using many of these sections and directives in their driver package.
Their driver INF registers a co-installer that applies platform-dependent settings and files. This means that the driver package is larger than it should be, and it is harder to service the driver when a bug affects only a subset of the OEM systems that ship the driver. Also, most of the OEM-specific modifications are related to branding, so Fabrikam needs to update the driver package every time an OEM is added or when a minor issue affects a subset of OEM systems.
Fabrikam removes the non-declarative sections and directives and uses the InfVerif tool to verify that the new driver package's INF file follows the declarative INF requirement.
Use extension INFs to componentize a driver package
Next, Fabrikam separates customizations that are specific to OEM partners (such as Contoso) from the base driver package into an extension INF.
The following snippet, updated from [
osrfx2_DCHU_extension.inx], specifies the
Extension class and identifies Contoso as the provider since they will own the extension driver package:
osrfx2_DCHU_base.inx], Fabrikam specifies the following entries:
osrfx2_DCHU_extension.inx], Contoso overrides the OperatingParams registry value set by the base and adds OperatingExceptions:
Note that extensions are always processed after the base INF but in no definite order. If a base INF is updated to a newer version, then the extensions will still be re-applied after the new base INF is installed.
Install a service from an INF file
Fabrikam uses a Win32 service to control the LEDs on the OSR board. They view this component as part of the core functionality of the device, so they include it as part of their base INF ([
osrfx2_DCHU_base.inx]). This user-mode service (usersvc) can be added and started declaratively by specifying the AddService directive in the INF file:
Note that such a service could also be installed in a component or extension INF, depending on the scenario.
Use a component to install legacy software from a driver package
Fabrikam has an executable file
osrfx2_DCHU_componentsoftware.exe that they previously installed using a co-installer. This legacy software displays the registry keys set by the board and is required by the OEM. This is a GUI-based executable that only runs on Windows for desktop editions. To install it, Fabrikam creates a separate component driver package and adds it in their extension INF.
The following snippet from [
osrfx2_DCHU_extension.inx] uses the AddComponent directive to create a virtual child device:
Then, in the component INF [
osrfx2_DCHU_component.inx], Fabrikam specifies the AddSoftware directive to install the optional executable:
The source code for the Win32 app is included in the sample.
Note that the component driver package is only distributed on Desktop SKUs due to targeting set in the Windows Hardware Dev Center dashboard. For more info, see Publish a driver to Windows Update.
Allow communication with a hardware support app
Dch Driver Package Download For Pc
Fabrikam would like to provide a GUI-based companion app as part of the Windows Driver package. Because Win32-based companion applications cannot be part of a Windows Driver package, they port their Win32 app to the Universal Windows Platform (UWP) and pair the app with the device.
The following snippet from
osrfx2_DCHU_base/device.c shows how the base driver package adds a custom capability to the device interface instance:
The new app (not included in the sample) is secure and can be updated easily in the Microsoft Store. With the UWP application ready, Contoso uses DISM - Deployment Image Servicing and Management to pre-load the application on Windows Desktop edition images.
Tightly coupling multiple INF files
Ideally, there should be strong versioning contracts between base, extensions, and components. There are servicing advantages in having these three packages serviced independently (the 'loosely coupled' scenario), but there are scenarios where they need to be bundled in a single driver package ('tightly coupled') due to poor versioning contracts. The sample includes examples of both scenarios:
When the extension and component are in the same driver package ('tightly coupled'), the extension INF specifies the CopyINF directive to cause the component INF to be copied to the target system. This is demonstrated in DCHU_Sampleosrfx2_DCHU_extension_tightosrfx2_DCHU_extensionosrfx2_DCHU_extension.inx:
This directive can also be used to coordinate installation of INF files in multifunction devices. For more details, see Copying INF files.
While a base driver can payload an extension (and target the base driver in the shipping label), an extension bundled with another driver cannot be published to the extension hardware ID.
Run from the Driver Store
To make it easier to update the driver, Fabrikam specifies the Driver Store as the destination to copy the driver files by using dirid 13 where possible. Using a destination directory value of 13 can result in improved stability during the driver update process. Here is an example from [
See the run from Driver Store page for more details regarding how to dynamically find and load files from the Driver Store.
The following diagram shows the driver packages that Fabrikam and Contoso created for their DCH-compliant driver. In the loosely coupled example, they will make three separate submissions on the Windows Hardware Dev Center dashboard: one for the base, one for the extension, and one for the component. In the tightly coupled example, they will make two submissions: base and extension/component.
Dch Driver Package Download For Windows 7
Note that the component INF will match on the component hardware ID, whereas the base and extensions will match on the board's hardware ID.