summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--general/WinHEC 2017 Lab/README.md13
-rw-r--r--general/toaster/toastpkg/README.md92
-rw-r--r--general/toaster/umdf2/README.md26
-rw-r--r--general/tracing/SystemTraceControl/README.md17
-rw-r--r--general/tracing/evntdrv/README.md45
-rw-r--r--general/tracing/tracedriver/README.md38
-rw-r--r--general/umdfSkeleton/README.md11
-rw-r--r--gnss/ReadMe.md11
-rw-r--r--gpio/samples/README.md24
-rw-r--r--hid/firefly/README.md10
-rw-r--r--hid/hclient/README.md14
-rw-r--r--hid/hidusbfx2/README.md14
-rw-r--r--hid/vhidmini2/README.md18
13 files changed, 117 insertions, 216 deletions
diff --git a/general/WinHEC 2017 Lab/README.md b/general/WinHEC 2017 Lab/README.md
index bb75411a..eda72f91 100644
--- a/general/WinHEC 2017 Lab/README.md
+++ b/general/WinHEC 2017 Lab/README.md
@@ -8,17 +8,6 @@ products:
- windows-wdk
---
-
-
-<!---
- name: WinHEC 2017 Lab
- platform: KMDF
- language: cpp
- category: Network
- description: WinHEC 2017 Lab
- samplefwlink: https://go.microsoft.com/fwlink/p/?linkid=869054
---->
-
# WinHEC 2017 Lab
-Toaster samples from the WinHEC 2017 Lab: Toaster Driver, PlugInToaster, and Toaster Support App. \ No newline at end of file
+Toaster samples from the WinHEC 2017 Lab: Toaster Driver, PlugInToaster, and Toaster Support App.
diff --git a/general/toaster/toastpkg/README.md b/general/toaster/toastpkg/README.md
index 91ffaf8d..7aceb704 100644
--- a/general/toaster/toastpkg/README.md
+++ b/general/toaster/toastpkg/README.md
@@ -8,17 +8,6 @@ products:
- windows-wdk
---
-
-
-<!---
- name: Toaster Package Sample Driver
- platform: WDM
- language: cpp
- category: General
- description: Simulates hardware-first and software-first installation of the toaster sample driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617723
---->
-
# Toaster Package Sample Driver
The Toaster collection is an iterative series of samples that demonstrate fundamental aspects of Windows driver development for both Kernel-Mode Driver Framework (KMDF) and User-Mode Driver Framework (UMDF) version 1.
@@ -29,9 +18,9 @@ The Toaster sample collection comprises driver projects (.vcxproj files) that ar
## Related technologies
-[Windows Driver Frameworks](http://msdn.microsoft.com/en-us/library/windows/hardware/ff557565)
+[Windows Driver Frameworks](https://docs.microsoft.com/windows-hardware/drivers/wdf/)
-For detailed descriptions and code walkthroughs of each project, see [Sample Toaster Driver Programming Tour](http://msdn.microsoft.com/en-us/library/windows/hardware/dn569312). To learn how to build and run the samples, read on.
+For detailed descriptions and code walkthroughs of each project, see [Sample Toaster Driver Programming Tour](https://docs.microsoft.com/windows-hardware/drivers/wdf/sample-toaster-driver-programming-tour). To learn how to build and run the samples, read on.
## Run the sample
@@ -44,23 +33,29 @@ The process of moving the driver package to the target computer and installing t
Before doing this, you should back up your package.vcxproj file, located in your sample directory, for example C:\\Toaster\\C++\\Package.
1. In the Properties for the package project, navigate to **Common Properties \> References**.
+
1. Remove all references except WdfSimple. (Use the **Remove Reference** button at the bottom.)
### Automatic deployment (root enumerated)
-Before you automatically deploy a driver, you must provision the target computer. For instructions, see [Configuring a Computer for Driver Deployment, Testing, and Debugging](http://msdn.microsoft.com/en-us/library/windows/hardware/).
+Before you automatically deploy a driver, you must provision the target computer. For instructions, see [Provision a computer for driver deployment and testing](https://docs.microsoft.com/windows-hardware/drivers/gettingstarted/provision-a-target-computer-wdk-8-1).
1. On the host computer, in Visual Studio, in Solution Explorer, right click the **package** project (within the package folder), and choose **Properties**. Navigate to **Configuration Properties \> Driver Install \> Deployment**.
+
1. Check **Enable deployment**, and check **Remove previous driver versions before deployment**. For **Target Computer Name**, use the drop down to select the name of a target computer that you provisioned previously. Select **Hardware ID Driver Update**, and enter **{b85b7c50-6a01-11d2-b841-00c04fad5171}\\MsToaster** for the hardware ID. (You can find this value in the WdfSimple.inx file.) Click **Apply** and **OK**.
+
1. Because this solution contains many projects, you may find it easier to remove some of them before you build and deploy a driver package. To do so, right click **package** (lower case), and choose **Properties**. Navigate to **Common Properties-\>References** and click **Remove Reference** to remove projects you don't want. (You can add them back later by using **Add New Reference**.) Click **OK**.
+
1. On the **Build** menu, choose **Build Solution** or **Rebuild Solution** (if you removed references).
+
1. If you removed references and deployment does not succeed, try deleting the contents of the c:\\DriverTest\\Drivers folder on the target machine, and then retry deployment.
### Manual deployment (root enumerated)
-Before you manually deploy a driver, you must turn on test signing and install a certificate on the target computer. You also need to copy the [DevCon](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544707) tool to the target computer. For instructions, see [Preparing a Computer for Manual Driver Deployment](https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/preparing-a-computer-for-manual-driver-deployment).
+Before you manually deploy a driver, you must turn on test signing and install a certificate on the target computer. You also need to copy the [DevCon](https://docs.microsoft.com/windows-hardware/drivers/devtest/devcon) tool to the target computer. For instructions, see [Preparing a Computer for Manual Driver Deployment](https://docs.microsoft.com/windows-hardware/drivers/develop/preparing-a-computer-for-manual-driver-deployment).
1. Copy all of the files in your driver package to a folder on the target computer (for example, c:\\WdfSimplePackage).
+
1. On the target computer, open a Command Prompt window as Administrator. Navigate to your driver package folder, and enter the following command:
**devcon install WdfSimple.inf {b85b7c50-6a01-11d2-b841-00c04fad5171}\\MsToaster**
@@ -75,78 +70,95 @@ In Device Manager, on the **View** menu, choose **Devices by connection**. Locat
As an alternative to building the Toaster sample in Visual Studio, you can build it in a Visual Studio Command Prompt window. In Visual Studio, on the **Tools** menu, choose **Visual Studio Command Prompt**. In the Visual Studio Command Prompt window, navigate to the folder that has the solution file, Toaster.sln. Use the MSBuild command to build the solution. Here are some examples:
-**msbuild /p:configuration="Debug" /p:platform="x64" Toaster.sln**
+`msbuild /p:configuration="Debug" /p:platform="x64" Toaster.sln`
-**msbuild /p:configuration="Release" /p:platform="Win32" Toaster.sln**
+`msbuild /p:configuration="Release" /p:platform="Win32" Toaster.sln`
-For more information about using MSBuild to build a driver package, see [Building a Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554644).
+For more information about using MSBuild to build a driver package, see [Building a Driver with Visual Studio and the WDK](https://docs.microsoft.com/windows-hardware/drivers/develop/building-a-driver).
## UMDF Toaster File Manifest
-#### WUDFToaster.idl
+### WUDFToaster.idl
+
Component Interface file
-#### WUDFToaster.cpp
+### WUDFToaster.cpp
+
DLL Support code - provides the DLL's entry point as well as the DllGetClassObject export.
-#### WUDFToaster.def
+### WUDFToaster.def
+
This file lists the functions that the driver DLL exports.
-#### stdafx.h
+### stdafx.h
+
This is the main header file for the sample driver.
-#### driver.cpp & driver.h
+### driver.cpp and driver.h (WUDFToaster)
+
Definition and implementation of the IDriverEntry callbacks in CDriver class.
-#### device.cpp & device.h
+### device.cpp and device.h (WUDFToaster)
+
Definition and implementation of various interfaces and their callbacks in CDevice class. Add your PnP and Power interfaces specific for your hardware.
-#### queue.cpp & queue.h
+### queue.cpp and queue.h
+
Definition and implementation of the base queue callback class (CQueue). IQueueCallbackDevicekIoControl, IQueueCallbackRead and IQueueCallBackWrite callbacks are implemented to handle I/O control requests.
-#### WUDFToaster.rc
+### WUDFToaster.rc
+
This file defines resource information for the WUDF Toaster sample driver.
-#### WUDFToaster.inf
+### WUDFToaster.inf
+
Sample INF for installing the sample WUDF Toaster driver under the Toaster class of devices.
-#### WUDFtoaster.ctl, internal.h
+### WUDFtoaster.ctl, internal.h
+
This file lists the WPP trace control GUID(s) for the sample driver. This file can be used with the tracelog command's -guid flag to enable the collection of these trace events within an established trace session.
These GUIDs must remain in sync with the trace control guids defined in internal.h.
## Toastmon File Manifest
-#### comsup.cpp & comsup.h
+### comsup.cpp and comsup.h
+
Boilerplate COM Support code - specifically base classes which provide implementations for the standard COM interfaces IUnknown and IClassFactory which are used throughout the sample.
The implementation of IClassFactory is designed to create instances of the CMyDriver class. If you should change the name of your base driver class, you would also need to modify this file.
-#### dllsup.cpp
+### dllsup.cpp
+
Boilerplate DLL Support code - provides the DLL's entry point as well as the single required export (DllGetClassObject).
These depend on comsup.cpp to perform the necessary class creation.
-#### exports.def
+### exports.def
+
This file lists the functions that the driver DLL exports.
-#### makefile
-This file redirects to the real makefile, which is shared by all the driver components of the Windows Driver Kit.
+### internal.h
-#### internal.h
This is the main header file for the ToastMon driver
-#### driver.cpp & driver.h
+### driver.cpp and driver.h (Toastmon)
+
Definition and implementation of the driver callback class for the ToastMon sample.
-#### device.cpp & device.h
+### device.cpp and device.h (Toastmon)
+
Definition and implementation of the device callback class for the ToastMon sample. This is mostly boilerplate, but also registers for RemoteInterface Arrival notifications. When a RemoteInterface arrival callback occurs, it calls CreateRemoteInterface and creates a CMyRemoteTarget callback object to handle I/O on that RemoteInterface.
-#### RemoteTarget.cpp & RemoteTarget.h
+### RemoteTarget.cpp and RemoteTarget.h
+
Definition and implementation of the remote target callback class for the ToastMon sample.
-#### list.h
+### list.h
+
Doubly-linked-list code
-#### ToastMon.rc
+### ToastMon.rc
+
This file defines resource information for the ToastMon sample driver.
-#### UMDFToastMon.inf
+### UMDFToastMon.inf
+
Sample INF for installing the Skeleton driver to control a root enumerated device with a hardware ID of UMDFSamples\\ToastMon
diff --git a/general/toaster/umdf2/README.md b/general/toaster/umdf2/README.md
index b4c88918..fbc282a3 100644
--- a/general/toaster/umdf2/README.md
+++ b/general/toaster/umdf2/README.md
@@ -8,17 +8,6 @@ products:
- windows-wdk
---
-
-
-<!---
- name: Toaster Sample (UMDF version 2)
- platform: UMDF2
- language: cpp
- category: General WDF
- description: An iterative series of samples that demonstrate driver development using UMDF version 2.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=620310
---->
-
# Toaster Sample (UMDF Version 2)
The Toaster (UMDF version 2) sample is an iterative series of samples that demonstrate fundamental aspects of Windows driver development.
@@ -27,7 +16,7 @@ The Toaster sample collection is comprised of driver projects (.vcxproj files) t
## Related technologies
-[User-Mode Driver Framework](http://msdn.microsoft.com/en-us/library/windows/hardware/ff560456)
+[Windows Driver Frameworks](https://docs.microsoft.com/windows-hardware/drivers/wdf/)
## Run the sample
@@ -40,19 +29,24 @@ The process of moving the driver package to the target computer and installing t
Before you automatically deploy a driver, you must provision the target computer. For instructions, see [Configuring a Computer for Driver Deployment, Testing, and Debugging](http://msdn.microsoft.com/en-us/library/windows/hardware/).
1. On the host computer, in Visual Studio, in Solution Explorer, right click **package** (lower case), and choose **Properties**. Navigate to **Configuration Properties \> Driver Install \> Deployment**.
+
1. Check **Enable deployment**, and check **Remove previous driver versions before deployment**. For **Target Computer Name**, select the name of a target computer that you provisioned previously. Select **Hardware ID Driver Update**, and enter **root\\toaster** for the hardware ID. Click **OK**.
+
1. Because this solution contains many projects, you may find it easier to remove some of them before you build and deploy a driver package. To do so, right click **package** (lower case), and choose **Properties**. Navigate to **Common Properties-\>References** and click **Remove Reference** to remove projects you don't want. (You can add them back later by using **Add New Reference**.) Click **OK**.
+
1. On the **Build** menu, choose **Build Solution** or **Rebuild Solution** (if you removed references).
+
1. If you removed references and deployment does not succeed, try deleting the contents of the c:\\DriverTest\\Drivers folder on the target machine, and then retry deployment.
### Manual deployment (root enumerated)
-Before you manually deploy a driver, you must turn on test signing and install a certificate on the target computer. You also need to copy the [DevCon](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544707) tool to the target computer. For instructions, see [Preparing a Computer for Manual Driver Deployment](https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/preparing-a-computer-for-manual-driver-deployment).
+Before you manually deploy a driver, you must turn on test signing and install a certificate on the target computer. You also need to copy the [DevCon](https://docs.microsoft.com/windows-hardware/drivers/devtest/devcon) tool to the target computer. For instructions, see [Preparing a Computer for Manual Driver Deployment](https://docs.microsoft.com/windows-hardware/drivers/develop/preparing-a-computer-for-manual-driver-deployment).
1. Copy all of the files in your driver package to a folder on the target computer (for example, c:\\Umdf2toaster).
+
1. On the target computer, open a Command Prompt window as Administrator. Navigate to your driver package folder, and enter a command such as:
- **devcon install wdfsimpleum.inf root\\toaster**
+ `devcon install wdfsimpleum.inf root\\toaster`
### View the root enumerated driver in Device Manager
@@ -64,6 +58,6 @@ In Device Manager, on the **View** menu, choose **Devices by connection**. Locat
As an alternative to building the driver sample in Visual Studio, you can build it in a Visual Studio Command Prompt window. In Visual Studio, on the **Tools** menu, choose **Visual Studio Command Prompt**. In the Visual Studio Command Prompt window, navigate to the folder that has the solution file, Umdf2toaster.sln. Use the MSBuild command to build the solution. Here is an example:
-**msbuild /p:configuration="Release" /p:platform="Win32" Umdf2toaster.sln**
+`msbuild /p:configuration="Release" /p:platform="Win32" Umdf2toaster.sln`
-For more information about using MSBuild to build a driver package, see [Building a Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554644).
+For more information about using MSBuild to build a driver package, see [Building a Driver with Visual Studio and the WDK](https://docs.microsoft.com/windows-hardware/drivers/develop/building-a-driver).
diff --git a/general/tracing/SystemTraceControl/README.md b/general/tracing/SystemTraceControl/README.md
index ff5e52f6..009df087 100644
--- a/general/tracing/SystemTraceControl/README.md
+++ b/general/tracing/SystemTraceControl/README.md
@@ -8,23 +8,12 @@ products:
- windows-wdk
---
-
-
-<!---
- name: System Trace Control
- platform: Application
- language: cpp
- category: General Tracing
- description: Demonstrates how to use event tracing control APIs to collect events from the system trace provider.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617725
---->
-
# SystemTraceProvider
This sample application demonstrates how to use event tracing control APIs to collect events from the system trace provider.
-The sample code provided shows how to start an [Event Tracing](http://msdn.microsoft.com/en-us/library/windows/hardware/bb968803) for Windows trace session and how to enable system events with stacks. When you build and run the application, it collects the trace data for 30 seconds and then stops. The sample application writes the results to a file, Systemtrace.etl. For more information, see [Tools for Software Tracing](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552961).
+The sample code provided shows how to start an [Event Tracing]https://docs.microsoft.com/windows/win32/etw/event-tracing-portal) for Windows trace session and how to enable system events with stacks. When you build and run the application, it collects the trace data for 30 seconds and then stops. The sample application writes the results to a file, Systemtrace.etl. For more information, see [Tools for Software Tracing](https://docs.microsoft.com/windows-hardware/drivers/devtest/tools-for-software-tracing).
-You can process the Systemtrace.etl file using Tracerpt.exe, a command-line trace tool included in Windows that formats trace events. It also analyzes the events and generates summary reports. For more information about how to use this tool, see [Tracerpt](http://go.microsoft.com/fwlink/p/?linkid=179389) topic on the TechNet website.
+You can process the Systemtrace.etl file using Tracerpt.exe, a command-line trace tool included in Windows that formats trace events. It also analyzes the events and generates summary reports. For more information about how to use this tool, see [Tracerpt](https://docs.microsoft.com/windows-server/administration/windows-commands/tracerpt_1).
-You can also process the file using the [Windows Performance Toolkit](http://go.microsoft.com/fwlink/p/?linkid=250774) (WPT), which is available in the SDK.
+You can also process the file using the [Windows Performance Toolkit](https://docs.microsoft.com/windows-hardware/test/wpt/) (WPT), which is available in the SDK.
diff --git a/general/tracing/evntdrv/README.md b/general/tracing/evntdrv/README.md
index bc7c5cba..392681f1 100644
--- a/general/tracing/evntdrv/README.md
+++ b/general/tracing/evntdrv/README.md
@@ -8,36 +8,25 @@ products:
- windows-wdk
---
-
-
-<!---
- name: Eventdrv
- platform: Application
- language: cpp
- category: General Tracing
- description: Demonstrates the use of the Event Tracing for Windows (ETW) API in a driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617724
---->
-
# Eventdrv
-Eventdrv is a sample kernel-mode trace provider and driver. The driver does not control any hardware; it simply generates trace events. It is designed to demonstrate the use of the [Event Tracing for Windows (ETW)](http://msdn.microsoft.com/en-us/library/windows/hardware/ff545699) API in a driver.
+Eventdrv is a sample kernel-mode trace provider and driver. The driver does not control any hardware; it simply generates trace events. It is designed to demonstrate the use of the [Event Tracing for Windows (ETW)](https://docs.microsoft.com/windows-hardware/drivers/devtest/event-tracing-for-windows--etw-) API in a driver.
-Evntdrv registers as a provider by calling the [**EtwRegister**](http://msdn.microsoft.com/en-us/library/windows/hardware/ff545603) API. If the registration is successful, it logs a StartEvent with the device's name, the length of the name, and the status code. Then, when the sample receives a DeviceIOControl call, it logs a SampleEventA event. Finally, when the driver gets unloaded, it logs an UnloadEvent event with a pointer to the device object
+Evntdrv registers as a provider by calling the [**EtwRegister**](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/wdm/nf-wdm-etwregister) API. If the registration is successful, it logs a StartEvent with the device's name, the length of the name, and the status code. Then, when the sample receives a DeviceIOControl call, it logs a SampleEventA event. Finally, when the driver gets unloaded, it logs an UnloadEvent event with a pointer to the device object
-**Note** The Windows Pre-Processor (WPP) Tracing tools such as TraceView.exe cannot be used to start, stop, or view traces.
+> [!NOTE]
+> The Windows Pre-Processor (WPP) Tracing tools such as TraceView.exe cannot be used to start, stop, or view traces.
## Run the sample
1. Install the manifest (Evntdrv.xml), which is located in the Evntdrv\\Eventdrv folder. Open a Visual Studio Command window (Run as administrator) and use the following command:
- ```
- wevtutil im evntdrv.xml
- ```
+ `wevtutil im evntdrv.xml`
Installing the manifest creates registry keys that enable tools to find the resource and message files that contain event provider information. For further details about the WevtUtil.exe tool, see the MSDN Library.
-
- **Note** Using a Visual Studio Command windows sets up the environment variables you need to run the tracing tools for this sample.
+
+ > [!NOTE]
+ > Using a Visual Studio Command windows sets up the environment variables you need to run the tracing tools for this sample.
1. Make a folder in the system directory called ETWDriverSample (for example, C:\\ETWDriverSample).
@@ -47,32 +36,24 @@ Evntdrv registers as a provider by calling the [**EtwRegister**](http://msdn.mic
1. Use Tracelog to start a trace session that is called "TestEventdrv." The following command starts the trace session and creates a trace log file, Eventdrv.etl, in the local directory.
- ```
- Tracelog -start TestEventdrv -guid #b5a0bda9-50fe-4d0e-a83d-bae3f58c94d6 -f Eventdrv.etl
- ```
+ `tracelog -start TestEventdrv -guid #b5a0bda9-50fe-4d0e-a83d-bae3f58c94d6 -f Eventdrv.etl`
1. To generate trace messages, run Evntctrl.exe. Each time you type a character other than **Q** or **q**, Evntctrl sends an IOCTL to the driver that signals it to generate trace messages. To stop Evntctrl, type **Q** or **q**.
1. To stop the trace session, run the following command:
- ```
- tracelog -stop TestEventdrv
- ```
+ `tracelog -stop TestEventdrv`
1. To display the traces collected in the Tracedrv.etl file, run the following command:
- ```
- tracerpt Eventdrv.etl
- ```
+ `tracerpt Eventdrv.etl`
This command creates two files: Summary.txt and Dumpfile.xml. Dumpfile.xml will contain the event information in an XML format.
1. To uninstall the manifest, run the following command:
- ```
- wevtutil um evntdrv.xml
- ```
+ `wevtutil um evntdrv.xml`
## Notes
-If you are building the Eventdrv sample to test on a 64-bit version of Windows, you need to sign the driver. All 64-bit versions of Windows require driver code to have a digital signature for the driver to load. See [Signing a Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554809) and [Signing a Driver During Development and Testing](http://msdn.microsoft.com/en-us/library/windows/hardware/hh967733). You might also need to configure the test computer so that it can load test-signed kernel mode code, see [The TESTSIGNING Boot Configuration Option](http://msdn.microsoft.com/en-us/library/windows/hardware/ff553484) and [**BCDEdit /set**](http://msdn.microsoft.com/en-us/library/windows/hardware/ff542202).
+If you are building the Eventdrv sample to test on a 64-bit version of Windows, you need to sign the driver. All 64-bit versions of Windows require driver code to have a digital signature for the driver to load. See [Signing a Driver](https://docs.microsoft.com/windows-hardware/drivers/develop/signing-a-driver) and [Signing a Driver During Development and Testing](https://docs.microsoft.com/windows-hardware/drivers/install/signing-drivers-during-development-and-test). You might also need to configure the test computer so that it can load test-signed kernel mode code, see [The TESTSIGNING Boot Configuration Option](https://docs.microsoft.com/windows-hardware/drivers/install/the-testsigning-boot-configuration-option) and [**BCDEdit /set**](https://docs.microsoft.com/windows-hardware/drivers/devtest/bcdedit--set).
diff --git a/general/tracing/tracedriver/README.md b/general/tracing/tracedriver/README.md
index 17f9e04f..3d32e0b6 100644
--- a/general/tracing/tracedriver/README.md
+++ b/general/tracing/tracedriver/README.md
@@ -8,33 +8,23 @@ products:
- windows-wdk
---
-
-
-<!---
- name: Tracedrv
- platform: Application
- language: cpp
- category: General Tracing
- description: A sample driver instrumented for software tracing.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617726
---->
-
# Tracedrv
Tracedrv is a sample driver instrumented for software tracing. The driver does not control any hardware; it simply generates trace messages. It is designed to show how to use WPP software tracing macros in a driver.
Tracedrv initializes tracing (by using WPP\_INIT\_TRACING) and, when it receives a DeviceIOControl call, it starts a thread that logs 100 trace messages. The WPP software tracing directives, calls, and macros in the code are accompanied by comments that explain their purpose
-While examining Tracedrv, read the [WPP Software Tracing](http://msdn.microsoft.com/en-us/library/windows/hardware/ff556204) in the Windows Driver Kit (WDK). This section includes a reference section that describes the directives, macros, and calls required for WPP software tracing.
+While examining Tracedrv, read the [WPP Software Tracing](https://docs.microsoft.com/windows-hardware/drivers/devtest/wpp-software-tracing) in the Windows Driver Kit (WDK). This section includes a reference section that describes the directives, macros, and calls required for WPP software tracing.
## Run the sample
To test the Tracedrv event tracing provider, use the following procedure.
1. Copy the Tracectl.exe file that was created when you built the Tracedrv solution from the Tracectl directory (for example, \\Documents\\Visual Studio 2015\\Projects\\tracedrv\\tracectl\\*platform*) to the Tracedrv directory (for example, \\Documents\\Visual Studio 2015\\Projects\\tracedrv\\tracedrv\\*platform*).
+
1. Use Tracepdb to create a trace message format (TMF) file and a trace message control (TMC) file from the Tracedrv.pdb file. Tracepdb is located in the C:\\Program Files (x86)\\Windows Kits\\10\\bin\\*platform* directory. The PDB file that is used in this command is created when you the build the solution. Open a Visual Studio Command prompt window and navigate to the target build platform and configuration directory. Type the following command:
- **tracepdb -f tracedrv.pdb**
+ `tracepdb -f tracedrv.pdb`
1. In the same Tracedrv target build directory, create a control GUID file for Tracedrv by opening a text file, adding the following content, and saving the file as Tracedrv.ctl.
@@ -44,26 +34,22 @@ To test the Tracedrv event tracing provider, use the following procedure.
1. Use Tracelog to start a trace session that is called *TestTracedrv*. Tracelog is located in the C:\\Program Files (x86)\\Windows Kits\\10\\bin\\*platform* directory. The Tracedrv.ctl file that is used in this command was created in the previous step. The following command starts a trace session and creates a trace log file, tracedrv.etl, in the local directory.
- ```
- tracelog -start TestTracedrv -guid tracedrv.ctl -f tracedrv.etl -flag 1
- ```
+ `tracelog -start TestTracedrv -guid tracedrv.ctl -f tracedrv.etl -flag 1`
- **Note** Without the -flag parameter, Tracedrv will not generate any trace messages.
+ > [!NOTE]
+ > Without the -flag parameter, Tracedrv will not generate any trace messages.
1. To generate trace messages, run Tracectl.exe. This executable file is built when you build the solution. Each time you type a character, other than **Q** or **q**, Tracectl sends an IOCTL to the driver that signals it to generate trace messages. To stop Tracectl, type **Q** or **q**.
+
1. To stop the trace session, use the following Tracelog command.
- ```
- tracelog -stop TestTracedrv
- ```
+ `tracelog -stop TestTracedrv`
1. To display the trace messages in the Tracedrv.etl file, use Tracefmt.exe. Tracefmt.exe is located in the C:\\Program Files (x86)\\Windows Kits\\10\\bin\\*platform*. The TMF file used in this command was created by Tracepdb.exe in step 2. The **-p** option specifies the directory of the TMF file. In this case, the TMF file is in the current directory. Type the following command:
- ```
- tracefmt tracedrv.etl -p . -o Tracedrv.out
- ```
+ `tracefmt tracedrv.etl -p . -o Tracedrv.out`
-The resulting Tracedrv.out file is a human-readable text file of the Tracedrv trace messages. To interpret the trace messages, in the Tracedrv.c file, search for the [**DoTraceMessage**](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544918) macros.
+The resulting Tracedrv.out file is a human-readable text file of the Tracedrv trace messages. To interpret the trace messages, in the Tracedrv.c file, search for the [**DoTraceMessage**](https://docs.microsoft.com/previous-versions/windows/hardware/previsioning-framework/ff544918(v=vs.85)) macros.
## Notes
@@ -71,6 +57,6 @@ This sample driver should not be used in a production environment.
Also, because it is not a Plug and Play driver, Tracedrv does not demonstrate tracing in a Plug and Play environment.
-Tracedrv demonstrates the basic elements required for software tracing. It does not demonstrate more advanced tracing techniques, such as writing customized tracing calls (variations of [**DoTraceMessage**](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544918)), or the use of WMI calls for software tracing.
+Tracedrv demonstrates the basic elements required for software tracing. It does not demonstrate more advanced tracing techniques, such as writing customized tracing calls (variations of [**DoTraceMessage**](https://docs.microsoft.com/previous-versions/windows/hardware/previsioning-framework/ff544918(v=vs.85))), or the use of WMI calls for software tracing.
-If you are building the Tracedrv sample to test on a 64-bit version of Windows, you need to sign the driver. All 64-bit versions of Windows require driver code to have a digital signature for the driver to load. See [Signing a Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554809) and [Signing a Driver During Development and Testing](http://msdn.microsoft.com/en-us/library/windows/hardware/hh967733). You might also need to configure the test computer so that it can load test-signed kernel mode code, see [The TESTSIGNING Boot Configuration Option](http://msdn.microsoft.com/en-us/library/windows/hardware/ff553484) and [**BCDEdit /set**](http://msdn.microsoft.com/en-us/library/windows/hardware/ff542202).
+If you are building the Tracedrv sample to test on a 64-bit version of Windows, you need to sign the driver. All 64-bit versions of Windows require driver code to have a digital signature for the driver to load. See [Signing a Driver](https://docs.microsoft.com/windows-hardware/drivers/develop/signing-a-driver) and [Signing a Driver During Development and Testing](https://docs.microsoft.com/windows-hardware/drivers/install/signing-drivers-during-development-and-test). You might also need to configure the test computer so that it can load test-signed kernel mode code, see [The TESTSIGNING Boot Configuration Option](https://docs.microsoft.com/windows-hardware/drivers/install/the-testsigning-boot-configuration-option) and [**BCDEdit /set**](https://docs.microsoft.com/windows-hardware/drivers/devtest/bcdedit--set).
diff --git a/general/umdfSkeleton/README.md b/general/umdfSkeleton/README.md
index cb855463..59a5f25b 100644
--- a/general/umdfSkeleton/README.md
+++ b/general/umdfSkeleton/README.md
@@ -8,17 +8,6 @@ products:
- windows-wdk
---
-
-
-<!---
- name: UMDF Driver Skeleton Sample (UMDF version 1)
- platform: UMDF1
- language: cpp
- category: General WDF
- description: Demonstrates how to use UDMF to write a minimal driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617727
---->
-
# UMDF Driver Skeleton Sample (UMDF Version 1)
This sample demonstrates how to use version 1 of the User-Mode Driver Framework to write a minimal driver.
diff --git a/gnss/ReadMe.md b/gnss/ReadMe.md
index 09adccf2..24a7f1b8 100644
--- a/gnss/ReadMe.md
+++ b/gnss/ReadMe.md
@@ -8,15 +8,6 @@ products:
- windows-wdk
---
-<!---
- name: GPS/GNSS UMDF Sample Driver (UMDF Version 2)
- platform: UMDF2
- language: cpp
- category: GPS/GNSS
- description: Provides base sample driver that IHVs and partners can use to extend to build their custom Windows GPS/GNSS drivers
- samplefwlink: https://go.microsoft.com/fwlink/?linkid=2045369
---->
-
# GNSS UMDF Sample Driver (UMDF Version 2)
Provides a base sample driver that IHVs and partners can use to extend to build their custom Windows GPS/GNSS drivers.
@@ -38,7 +29,9 @@ Provides a base sample driver that IHVs and partners can use to extend to build
### What is not covered
- This sample currently doesn't support Geofence, SUPL, and AGNSS, as this is not mandatory GNSS DDI functionality.
+
- SUPL and AGNSS are mandatory only if required by mobile operator, and the sample does not support them currently.
+
- Not a production driver.
### What a Partner needs to do
diff --git a/gpio/samples/README.md b/gpio/samples/README.md
index f94a3348..b2a8c7b7 100644
--- a/gpio/samples/README.md
+++ b/gpio/samples/README.md
@@ -8,25 +8,15 @@ products:
- windows-wdk
---
-
-<!---
- name: GPIO Sample Drivers
- platform: KMDF UMDF1
- language: cpp
- category: GPIO
- description: Illustrates how to write a GPIO controller driver that works in conjunction with the GPIO framework extension (GpioClx).
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617729
---->
-
# GPIO Sample Drivers
-The GPIO samples contain annotated code to illustrate how to write a [GPIO controller driver](http://msdn.microsoft.com/en-us/library/windows/hardware/hh439509) that works in conjunction with the [GPIO framework extension](http://msdn.microsoft.com/en-us/library/windows/hardware/hh439512) (GpioClx) to handle GPIO I/O control requests, and a peripheral driver that runs in kernel mode and uses GPIO resources. For a sample that shows how to write a GPIO peripheral driver that runs in user mode, please refer to the SPB accelerometer sample driver (SPB\\peripherals\\accelerometer).
+The GPIO samples contain annotated code to illustrate how to write a [GPIO controller driver](https://docs.microsoft.com/windows-hardware/drivers/gpio/index) that works in conjunction with the [GPIO framework extension](https://docs.microsoft.com/windows-hardware/drivers/gpio/gpio-driver-support-overview) (GpioClx) to handle GPIO I/O control requests, and a peripheral driver that runs in kernel mode and uses GPIO resources.
The GPIO sample set contains the following samples:
-Minifilter | Sample Description
------------|-------------------
-SimGpio | The files in this sample contain the source code for a GPIO controller driver that communicates with GpioClx through the GpioClx device driver interface (DDI). The GPIO controller driver is written for a hypothetical memory-mapped GPIO controller (simgpio). The code is meant to be purely instructional. An ASL file illustrates how to specify a GPIO interrupt and I/O descriptor in the ACPI firmware.
-SimGpio_I2C | The files in this sample contain the source code for a GPIO controller driver that communicates with GpioClx through the GpioClx DDI. In contrast to the SimGpio sample, the GPIO controller in this sample is not memory-mapped. The GPIO controller driver is written for a hypothetical GPIO controller that resides on an I2C bus (simgpio_i2c). The code is meant to be purely instructional. An ASL file illustrates how to specify a GPIO interrupt and I/O descriptor in the ACPI firmware.
-SimDevice\kmdf | The purpose of this sample is to show how a driver opens a device and performs I/O operations on a GPIO controller in kernel mode. Additionally, this sample demonstrates how the driver connects to a GPIO interrupt resource. The ASL file illustrates how to specify a GPIO interrupt and I/O descriptor in the ACPI firmware.
-SimDevice\umdf | The purpose of this sample is to show how a driver opens a device and performs I/O operations on a GPIO controller in user mode. Additionally, this sample demonstrates how the driver connects to a GPIO interrupt resource. The ASL file illustrates how to specify a GPIO interrupt and I/O descriptor in the ACPI firmware. \ No newline at end of file
+| Minifilter | Sample description |
+| --- | --- |
+| SimGpio | The files in this sample contain the source code for a GPIO controller driver that communicates with GpioClx through the GpioClx device driver interface (DDI). The GPIO controller driver is written for a hypothetical memory-mapped GPIO controller (simgpio). The code is meant to be purely instructional. An ASL file illustrates how to specify a GPIO interrupt and I/O descriptor in the ACPI firmware. |
+| SimGpio_I2C | The files in this sample contain the source code for a GPIO controller driver that communicates with GpioClx through the GpioClx DDI. In contrast to the SimGpio sample, the GPIO controller in this sample is not memory-mapped. The GPIO controller driver is written for a hypothetical GPIO controller that resides on an I2C bus (simgpio_i2c). The code is meant to be purely instructional. An ASL file illustrates how to specify a GPIO interrupt and I/O descriptor in the ACPI firmware. |
+| SimDevice\kmdf | The purpose of this sample is to show how a driver opens a device and performs I/O operations on a GPIO controller in kernel mode. Additionally, this sample demonstrates how the driver connects to a GPIO interrupt resource. The ASL file illustrates how to specify a GPIO interrupt and I/O descriptor in the ACPI firmware. |
+| SimDevice\umdf | The purpose of this sample is to show how a driver opens a device and performs I/O operations on a GPIO controller in user mode. Additionally, this sample demonstrates how the driver connects to a GPIO interrupt resource. The ASL file illustrates how to specify a GPIO interrupt and I/O descriptor in the ACPI firmware. |
diff --git a/hid/firefly/README.md b/hid/firefly/README.md
index c7a6c617..4a694726 100644
--- a/hid/firefly/README.md
+++ b/hid/firefly/README.md
@@ -37,15 +37,15 @@ To install the driver:
1. You may need to make Group Policy changes in order to replace the existing mouse driver. If you are unable to perform steps 3-9, do the following:
- 1. Open **gpedit.msd**.
+ 1. Open **gpedit.msd**.
- 1. In the Group Policy Object Editor navigation pane, open the Computer Configuration folder. Then open Administrative Templates, open System, open Device Installation, and then open Device Installation Restrictions.
+ 1. In the Group Policy Object Editor navigation pane, open the Computer Configuration folder. Then open Administrative Templates, open System, open Device Installation, and then open Device Installation Restrictions.
- 1. Enable *Prevent installation of devices not described by other policy settings*. This will prevent Windows from automatically installing the default mouse driver so that you can then install Firefly.
+ 1. Enable *Prevent installation of devices not described by other policy settings*. This will prevent Windows from automatically installing the default mouse driver so that you can then install Firefly.
- 1. Enable *Allow administrators to override device installation policy*. This will allow you to bypass the ""The installation of this device is forbidden by system policy" error that you may otherwise receive when you attempt to install Firefly.
+ 1. Enable *Allow administrators to override device installation policy*. This will allow you to bypass the ""The installation of this device is forbidden by system policy" error that you may otherwise receive when you attempt to install Firefly.
- 1. You may need to reboot.
+ 1. You may need to reboot.
1. Bring up the Device Manager (type **devmgmt.msc** in the Start/Run window and press enter).
diff --git a/hid/hclient/README.md b/hid/hclient/README.md
index 018c81a2..591d7cea 100644
--- a/hid/hclient/README.md
+++ b/hid/hclient/README.md
@@ -8,16 +8,6 @@ products:
- windows-wdk
---
-
-<!---
- name: HClient sample application
- platform: WDM
- language: cpp
- category: HID
- description: Demonstrates how to write a user-mode client application that communicates with HID devices.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617730
---->
-
# HClient sample application
The *HClient* sample demonstrates how to write a user-mode client application that communicates with HID devices. (These are devices that conform to the HID device class specification.)
@@ -26,6 +16,6 @@ You will find this sample useful if you need to develop an application that comm
## Related topics
-[Human Input Devices Design Guide](http://msdn.microsoft.com/en-us/library/windows/hardware/ff539952)
+[Human Input Devices Design Guide](https://docs.microsoft.com/windows-hardware/drivers/hid/)
-[Human Input Devices Reference](http://msdn.microsoft.com/en-us/library/windows/hardware/ff539956)
+[Human Input Devices Reference](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/_hid/)
diff --git a/hid/hidusbfx2/README.md b/hid/hidusbfx2/README.md
index 35ba8a36..57af8ef1 100644
--- a/hid/hidusbfx2/README.md
+++ b/hid/hidusbfx2/README.md
@@ -16,19 +16,17 @@ The sample also demonstrates how to write a HID minidriver using Windows Driver
## Related topics
-[Human Input Devices Design Guide](http://msdn.microsoft.com/en-us/library/windows/hardware/ff539952)
+[Human Input Devices Design Guide](https://docs.microsoft.com/windows-hardware/drivers/hid/)
-[Human Input Devices Reference](http://msdn.microsoft.com/en-us/library/windows/hardware/ff539956)
+[Human Input Devices Reference](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/_hid/)
## Related technologies
-[Creating Framework-based HID Minidrivers](http://msdn.microsoft.com/en-us/library/windows/hardware/ff540774)
-
-[Creating UMDF-based HID Minidrivers](http://msdn.microsoft.com/en-us/library/windows/hardware/hh439579)
+[Creating WDF HID Minidrivers](https://docs.microsoft.com/windows-hardware/drivers/wdf/creating-umdf-hid-minidrivers)
## Build the sample
-For information on how to build a driver solution using Microsoft Visual Studio, see [Building a Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554644).
+For information on how to build a driver solution using Microsoft Visual Studio, see [Building a Driver with Visual Studio and the WDK](https://docs.microsoft.com/windows-hardware/drivers/develop/building-a-driver).
## Theory of Operation
@@ -36,7 +34,7 @@ A HID USB device provides a HID descriptor (through an interface descriptor) tha
### Overview of the Device
-You can view the specification for the device in the [Using the OSR USB FX-2 Learning Kit](http://go.microsoft.com/fwlink/p/?linkid=64091) document.
+You can view the specification for the device in the [Using the OSR USB FX-2 Learning Kit](http://www.osronline.com/hardware/OSRFX2_32.pdf) document.
The device is loosely based on the development board that is supplied with the Cypress EZ-USB FX2 Development Kit (CY3681) and contains one interface and three endpoints (Interrupt IN, Bulk Out, and Bulk IN). The firmware supports vendor commands to query or set the LED bar graph display and 7-segment LED display, and to query toggle switch states.
@@ -111,7 +109,7 @@ To start installing the sample, you must:
- The WDF coinstaller from the *\<WDK ROOT\>\\redist\\wdf\\\<platform\>* directory.
> [!NOTE]
- > Information the user should notice even if skimmingYou can obtain redistributable framework updates by downloading the **wdfcoinstaller.msi** package from [WDK 8 Redistributable Components](http://go.microsoft.com/fwlink/p/?LinkID=226396). This package performs a silent install into the directory of your WDK installation. You will see no confirmation that the installation has completed. You can verify that the redistributables have been installed on top of the WDK by ensuring there is a redist\\wdf directory under the root directory of the WDK, %ProgramFiles(x86)%\\Windows Kits\\8.0.
+ > Information the user should notice even if skimmingYou can obtain redistributable framework updates by downloading the **wdfcoinstaller.msi** package from [WDK 8 Redistributable Components](https://go.microsoft.com/fwlink/p/?LinkID=253170). This package performs a silent install into the directory of your WDK installation. You will see no confirmation that the installation has completed. You can verify that the redistributables have been installed on top of the WDK by ensuring there is a redist\\wdf directory under the root directory of the WDK, %ProgramFiles(x86)%\\Windows Kits\\8.0.
1. Plug in the device and follow these steps:
diff --git a/hid/vhidmini2/README.md b/hid/vhidmini2/README.md
index c93d5603..18ec16a9 100644
--- a/hid/vhidmini2/README.md
+++ b/hid/vhidmini2/README.md
@@ -8,16 +8,6 @@ products:
- windows-wdk
---
-
-<!---
- name: HID Minidriver Sample (UMDF version 2)
- platform: UMDF2
- language: cpp
- category: HID
- description: Demonstrates how to write a HID minidriver using User-Mode Driver Framework (UMDF).
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617731
---->
-
# HID Minidriver Sample (UMDF version 2)
The *HID minidriver* sample demonstrates how to write a HID minidriver using User-Mode Driver Framework (UMDF).
@@ -26,10 +16,10 @@ The sample demonstrates how to communicate with an HID minidriver from an HID cl
## Related topics
-[Creating UMDF-based HID Minidrivers](http://msdn.microsoft.com/en-us/library/windows/hardware/hh439579)
+[Creating WDF HID Minidrivers](https://docs.microsoft.com/windows-hardware/drivers/wdf/creating-umdf-hid-minidrivers)
-[Human Input Devices Design Guide](http://msdn.microsoft.com/en-us/library/windows/hardware/ff539952)
+[Human Input Devices Design Guide](https://docs.microsoft.com/windows-hardware/drivers/hid/)
-[Human Input Devices Reference](http://msdn.microsoft.com/en-us/library/windows/hardware/ff539956)
+[Human Input Devices Reference](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/_hid/)
-[UMDF HID Minidriver IOCTLs](http://msdn.microsoft.com/en-us/library/windows/hardware/hh463977)
+[UMDF HID Minidriver IOCTLs](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/hidport/)