summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--network/ndis/netvmini/6x/README.md3
-rw-r--r--print/XPSDrvSmpl/README.md54
-rw-r--r--serial/serenum/README.md2
-rw-r--r--tools/dv/samples/DV-FailDriver-WDM/README.md21
-rw-r--r--tools/sdv/samples/SDV-FailDriver-KMDF/README.md34
-rw-r--r--tools/sdv/samples/SDV-FailDriver-NDIS/README.md33
-rw-r--r--tools/sdv/samples/SDV-FailDriver-STORPORT/README.md29
-rw-r--r--tools/sdv/samples/SDV-FailDriver-WDM/README.md33
-rw-r--r--video/KMDOD/README.md25
-rw-r--r--video/pixlib/README.md12
-rw-r--r--wmi/wmiacpi/README.md19
-rw-r--r--wmi/wmisamp/README.md21
12 files changed, 153 insertions, 133 deletions
diff --git a/network/ndis/netvmini/6x/README.md b/network/ndis/netvmini/6x/README.md
index 3ad33ac0..ff122de2 100644
--- a/network/ndis/netvmini/6x/README.md
+++ b/network/ndis/netvmini/6x/README.md
@@ -18,6 +18,7 @@ This sample driver demonstrates an NDIS virtual miniport driver. If a single ins
To test the miniport driver, install more than one miniport driver instance. You can repeat the installation to install more than one instance of the miniport.
-**Note** This sample provides an example of minimal driver intended for education purposes. The driver and its sample test programs are not intended for use in a production environment.
+> [!NOTE]
+> This sample provides an example of minimal driver intended for education purposes. The driver and its sample test programs are not intended for use in a production environment.
For more information on creating NDIS Miniport Drivers, see [NDIS Miniport Drivers](https://docs.microsoft.com/windows-hardware/drivers/network/ndis-miniport-drivers).
diff --git a/print/XPSDrvSmpl/README.md b/print/XPSDrvSmpl/README.md
index 11278035..f23f78ad 100644
--- a/print/XPSDrvSmpl/README.md
+++ b/print/XPSDrvSmpl/README.md
@@ -23,31 +23,52 @@ The sample broadly consists of three components: a set of filters, a configurati
To build a driver solution using Windows Driver Kit (WDK) 10 and Visual Studio 2017, perform the following steps.
1. Open the solution file in Visual Studio 2017.
+
1. Add all non-binary files (usually located in the \\install directory of the sample) to the Package project:
+
1. In the **Solution Explorer**, expand the **package** project and right click **Driver Files**
+
1. Select **Add**, then click **Existing Item**
+
1. Navigate to the location to which you downloaded the sample, and select all the files in the **install** directory, or the equivalent set of non-binary files such as INFs, INIs, GPD, PPD files, etc.
+
1. Click **Add**
+
1. Configure these files to be added into the driver package:
+
1. In the **Solution Explorer**, right click on the solution and choose **Add** > **New Project**. Choose **Driver Install Package** under Visual C++/Windows Driver/Package.
+
1. In the **Solution Explorer**, right click the **Driver Package** project and select **Properties**.
+
1. In the left pane, click **Configuration Properties** \> **Driver Install** \> **Package Files**. (If **Package Files** is not available, you may need to re-install the **Windows Driver Kit**.)
+
1. In the right pane, click **<Edit...>** and use the ellipsis button (...) to browse to the set of files that needs to be added to the driver package. All of the data files added in **Step 2.iii**, except the INF file, should be added. This configuration is per architecture, so this configuration must be repeated for each architecture that will be built.
+
1. Click **OK**.
+
1. Add a reference to the driver package.
+
1. In the **Solution Explorer**, right click the **package** project and select **Add Reference**.
+
1. In the right pane, check the **Driver Package** created in step 3.
+
1. Click **OK**.
+
1. Open the INF file and edit it to match the built output.
+
1. Open the INF file.
+
1. In the Version section, add a reference to a catalog file like this: CatalogFile=XpsDrvSmpl.cat.
+
1. In the SourceDisksFiles section, change the location of the DLL files you are building to =1. This indicates that there is no architecture specific directory in this driver. If you ship multiple architectures simultaneously, you will need to collate the driver INF manually.
-At this point, Visual Studio 2017 will be able to build a driver package and output the files to disk. In order to configure driver signing and deployment, see [Developing, Testing, and Deploying Drivers](https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/).
+At this point, Visual Studio 2017 will be able to build a driver package and output the files to disk. In order to configure driver signing and deployment, see [Developing, Testing, and Deploying Drivers](https://docs.microsoft.com/windows-hardware/drivers/develop/).
-**Note** If you compile your sample driver with Microsoft Visual Studio version 10, or 11 with the \_DEBUG flag set, then you should not use CComVariant on the following two XPS Print Filter Pipeline properties:
+> [!NOTE]
+> If you compile your sample driver with Microsoft Visual Studio version 10, or 11 with the \_DEBUG flag set, then you should not use CComVariant on the following two XPS Print Filter Pipeline properties:
- XPS\_FP\_USER\_TOKEN
+
- XPS\_FP\_PRINTER\_HANDLE
There is a known issue with the current implementation of the Print Filter Pipeline, where the variant type for these two properties is set to VT\_BYREF. And as a result of this known issue, any filter binary that is compiled with the \_DEBUG flag set will experience the ATLASSERT() failure. This is because when you use the CComVariant, its destructor checks the returned value from the Clear() function, as shown:
@@ -68,6 +89,7 @@ When you compile this sample driver with Visual Studio version 9, you don't expe
The sample has the following prerequisites:
- Microsoft XPS Document Writer print driver and the XPS filter-pipeline infrastructure.
+
- Microsoft MSXML 6.0
Install the driver through the **Add Printer Wizard** by selecting \<driver root\>\\install as the source for the driver install.
@@ -83,7 +105,9 @@ The Page Scaling filter is written by using the stream interface to attempt to d
Two interfaces are defined in *ipkarch.h* and *ipkfile.h* that need support from an additional PK archive handling module called pkarch.dll. Pkarch.dll is a file that is included in the [PKWare SDK](https://support.pkware.com/pages/viewpage.action?pageId=721433). If this module is not present, the page scaling filter sample will revert to merely copying the data from the read stream to the write stream. Developers who are using this sample can choose one of the following options:
- Simplify the scaling filter to use the XPS interfaces (like the other four filters)
+
- License the third-party zip library that is used in the sample
+
- Modify the sample to use another ZIP library. For example, you can modify the sample to use the [Packaging API Reference](https://docs.microsoft.com/previous-versions/windows/desktop/opc/packaging-programming-reference)
IPKArch defines an interface for initializing, controlling, and accessing the PK archive. IPKFile defines an interface that abstracts the details of a PK archive file header record from the XPS container handling. Access to the files within the archive is provided through a map between the file name and file objects that support the IPKFile interface. This allows the XPS processing code to retrieve file data by name (a convenience as the interaction between parts and relationships between parts is defined using the part name).
@@ -95,8 +119,11 @@ There are five filters that are split into two types: four use the XPS filter in
The four filters that use the XPS interface provide support for the following:
- The Watermark Filter is responsible for adding mark-up to Fixed Page content to express textual, bitmap, and vector-based watermarks.
+
- The Booklet Filter is responsible for page re-ordering and padding page insertion to create booklets from the XPS document. Note that this filter re-uses the NUp filter to provide appropriate page transformation.
+
- The NUp Filter is responsible for transforming and combining logical pages onto physical pages to provide multiple page per sheet support.
+
- The Color Management Filter is responsible for constructing and applying color transforms to Fixed Page content.
The stream interface filter provides Page Scaling support (that is, wrapping content with the appropriate transforms to scale from a source Fixed Page to the destination).
@@ -134,7 +161,9 @@ The Watermark filter is intended to demonstrate adding presentation content to t
The filter is configured by parsing an input PrintTicket by using DOM to extract the relevant features and options. If the functionality is enabled, the filter processes the document as required. The PrintTicket is constructed through the following algorithm to provide settings at the appropriate scope (Fixed Document Sequence, Fixed Document and Fixed Page):
1. Validate and merge the print ticket from the FDS with the default PrintTicket converted from the default DevMode in the property bag. The resultant ticket will be the Job level ticket.
+
1. Validate and merge the print ticket from the current FD with the Job level ticket from step 1. The resultant ticket will be the document level ticket.
+
1. Validate and merge the print ticket from the current FP with the Doc level ticket from step 2. The resultant ticket will be the page level ticket.
When a watermark is enabled in the PrintTicket, the filter creates a watermark of the appropriate type (text, raster, or vector). This is returned as a generic watermark interface that abstracts the watermark type from the filter. The filter then calls the watermark object to send any resources that it may require to the filter pipeline (the font for text, the bitmap for raster, and none for vector). All resources are added through a resource cache that enables the watermark object to ignore any problems with sending repeated resources (the cache checks if the resource is present and only sends it if it has not seen the resource before). With the resource in place, the filter instantiates a SAX handler passing the watermark object. The SAX handler is used to parse the Fixed Page, allowing the filter to control when it inserts the watermark into the Fixed Page; when underlay is required, the mark-up is inserted when the FixedPage start element is encountered and when overlay is required the mark-up is inserted when FixedPage end element is encountered. By passing the abstracted watermark object, the SAX handler can be re-used for any watermark as it merely requests appropriate mark-up from the watermark object and inserts it into the Fixed Page mark-up as appropriate.
@@ -144,14 +173,19 @@ When a watermark is enabled in the PrintTicket, the filter creates a watermark o
XPS documents can contain a range of vector elements that contain color data that describes how the elements should be rendered on a specific device. The following elements support color data:
- Color
+
- Fill
+
- Stroke
When any of these elements are found in a fixed page, the SAX handler passes the associated color data to a color conversion object. This uses the following algorithm to convert the color:
1. The XML mark-up is broken down into color channel values, color channel value types, color format, and any other color details contained in the color mark-up string.
+
1. The resulting values are color transformed in conjunction with preferences defined in the PrintTicket. The result is a new set of color values.
+
1. These new values are used to reconstructs a color reference containing the new color values.
+
1. The newly constructed color reference is used in place of the original color reference, resulting in the transformed color output.
### Bitmap Resources
@@ -165,9 +199,13 @@ After the color managed bitmap object is created, the object is passed to a reso
If a bitmap has not been handled yet, the caching manager calls a write data method in the color bitmap object to indicate that the bitmap should write itself out to the filter pipeline. The write process also includes the application of a color transform to the bitmap. The following steps occur to apply the transform:
1. A stream is created to the bitmap itself and the bitmap is loaded into memory.
+
1. A bitmap codec object is created that takes the bitmap and uses an appropriate codec to decompress the bitmap and present the bitmap data and values.
+
1. The bitmap data is then converted by using a color transform supplied by the color profile management class.
+
1. The bitmap codec object re-encodes the bitmap by using a matching codec to that used to decode the bitmap.
+
1. The encoded bitmap is streamed back out to the container.
### Booklet Filter
@@ -201,11 +239,17 @@ Within the filter, SAX is used to parse the XPS container with each fixed page b
The stream filter is required to handle the Open Packaging conventions that are used by an XPS document. These conventions can be thought of as the document structure above that of the PK archive itself. Sources for a set of classes are provided that support processing of the XPS document in terms of the constituent files in the PK archive. This includes:
- Initiating the document processing based on the root relationships part defined in the package.
+
- Validation of the parts within the package against their content type and usage.
+
- Processing of Fixed Document Sequence and all resources associated with it.
+
- Processing of the Fixed Documents within the Fixed Document Sequence and all resources associated with them.
+
- Processing of the Fixed Page parts with the Fixed Documents and all resources associated with them.
+
- Passing Fixed Page content processing to a registered FP handler for modification.
+
- Passing all parts on to a PK archive handling module with valid ordering.
The XPS processor is not responsible for extracting or decompressing part data from the PK archive. This task is the responsibility of an additional module that implements an interface known to the XPS container handling code.
@@ -215,15 +259,21 @@ The XPS processor is not responsible for extracting or decompressing part data f
The UI Plug-in is intended to demonstrate how to extend the standard Unidrv UI to add additional property sheets and controls and to provide support for custom features that are not supported by the core Unidrv UI. Three new pages have been added that allow control of the sample filters:
- Color--enables configuration of the color conversion filter.
+
- Watermarks--enables a watermark to be selected and enable configuration of its properties for use in the watermark filter.
+
- Features--includes controls to configure the page scaling, booklet, and NUp filters. In addition, the standard driver settings--duplex, intent, and page borders--can also be modified.
Various UI control types have been implemented on these property pages to enable a user to modify settings in the driver. The UI supports the following control types:
- Check-box
+
- Combo-box
+
- List-Box
+
- Edit-Box
+
- Edit number (with buddy up/down control)
The settings that associated with each of these controls are stored as one the following types:
diff --git a/serial/serenum/README.md b/serial/serenum/README.md
index d3f712a6..8cb87182 100644
--- a/serial/serenum/README.md
+++ b/serial/serenum/README.md
@@ -36,4 +36,4 @@ Windows provides Serenum to support Serial and other serial port function driver
| String.c | String handling support, mainly ASCII to UNICODE functionality |
| Serenum.rc | Resource script |
-For more information, see [Features of Serial and Serenum](http://msdn.microsoft.com/en-us/library/windows/hardware/ff546505).
+For more information, see [Features of Serial and Serenum](https://docs.microsoft.com/windows-hardware/drivers/serports/features-of-serial-and-serenum).
diff --git a/tools/dv/samples/DV-FailDriver-WDM/README.md b/tools/dv/samples/DV-FailDriver-WDM/README.md
index 2b2bde4e..6d7e1f24 100644
--- a/tools/dv/samples/DV-FailDriver-WDM/README.md
+++ b/tools/dv/samples/DV-FailDriver-WDM/README.md
@@ -8,21 +8,12 @@ products:
- windows-wdk
---
-
-<!---
- name: DV-FailDriver-WDM
- platform: WDM
- language: cpp
- category: DriverVerifier Tools
- description: Demonstrates how Driver Verifier (DV) can find errors in a WDM driver.
- samplefwlink: https://go.microsoft.com/fwlink/p/?linkid=856743
---->
-
# DV-FailDriver-WDM
-The DV-FailDriver-WDM sample driver contains intentional code errors that are designed to show the capabilities and features of [Driver Verifier](https://msdn.microsoft.com/en-us/library/windows/hardware/ff545448) (DV) and the [Device Fundamentals tests](https://msdn.microsoft.com/en-us/library/windows/hardware/jj673011). Driver Verifier is a component of the Windows kernel designed to detect drivers that are behaving poorly and stop their execution via a bugcheck; the Device Fundamentals tests are a series of tests provided in the Windows Driver Kit (WDK) designed to provide a good basic set of tests against a driver.
+The DV-FailDriver-WDM sample driver contains intentional code errors that are designed to show the capabilities and features of [Driver Verifier](https://docs.microsoft.com/windows-hardware/drivers/devtest/driver-verifier) (DV) and the [Device Fundamentals tests](https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/device-fundamentals-tests). Driver Verifier is a component of the Windows kernel designed to detect drivers that are behaving poorly and stop their execution via a bugcheck; the Device Fundamentals tests are a series of tests provided in the Windows Driver Kit (WDK) designed to provide a good basic set of tests against a driver.
-**Caution** This sample driver contains intentional code errors that are designed to show the capabilities and features of DV and SDV. This sample driver is not intended as an example for real driver development projects.
+> [!CAUTION]
+> This sample driver contains intentional code errors that are designed to show the capabilities and features of DV and SDV. This sample driver is not intended as an example for real driver development projects.
## Build the sample for desktop
@@ -32,10 +23,10 @@ The DV-FailDriver-WDM sample driver contains intentional code errors that are de
## Deploy the sample
-See [Deploying a Driver to a Test Computer](https://msdn.microsoft.com/en-us/library/windows/hardware/hh454834) for details on how to deploy the sample.
+See [Deploying a Driver to a Test Computer](https://docs.microsoft.com/windows-hardware/drivers/develop/deploying-a-driver-to-a-test-computer) for details on how to deploy the sample.
## Test the sample
-See [How to test a driver at runtime](https://msdn.microsoft.com/en-us/library/windows/hardware/ff554820) for details on how to run tests on the Toastmon driver.
+See [How to test a driver at runtime](https://docs.microsoft.com/windows-hardware/drivers/develop/how-to-test-a-driver-at-runtime-from-a-command-prompt) for details on how to run tests on the Toastmon driver.
-To observe the injected defect being caught by DV, you should enable DV on the Toastmon driver, and then run the "DF - PNP Surprise Remove (Development and Integration)" test on the Toastmon sample driver and device. \ No newline at end of file
+To observe the injected defect being caught by DV, you should enable DV on the Toastmon driver, and then run the "DF - PNP Surprise Remove (Development and Integration)" test on the Toastmon sample driver and device.
diff --git a/tools/sdv/samples/SDV-FailDriver-KMDF/README.md b/tools/sdv/samples/SDV-FailDriver-KMDF/README.md
index 5ff03ec1..afe148d1 100644
--- a/tools/sdv/samples/SDV-FailDriver-KMDF/README.md
+++ b/tools/sdv/samples/SDV-FailDriver-KMDF/README.md
@@ -10,9 +10,10 @@ products:
# SDV-FailDriver-KMDF
-The SDV-FailDriver-KMDF sample driver contains intentional code errors that are designed to show the capabilities and features of [Static Driver Verifier](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552808) (SDV). SDV is a static verification tool that systematically analyzes the source code of Windows kernel-mode drivers. SDV is included in the Windows Driver Kit (WDK) and can be run from Microsoft Visual Studio. The sample demonstrates how SDV can find errors in a KMDF driver.
+The SDV-FailDriver-KMDF sample driver contains intentional code errors that are designed to show the capabilities and features of [Static Driver Verifier](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier) (SDV). SDV is a static verification tool that systematically analyzes the source code of Windows kernel-mode drivers. SDV is included in the Windows Driver Kit (WDK) and can be run from Microsoft Visual Studio. The sample demonstrates how SDV can find errors in a KMDF driver.
-**Caution** These sample drivers contain intentional code errors that are designed to show the capabilities and features of SDV. These sample drivers are not functional and are not intended as examples for real driver development projects.
+> [!CAUTION]
+> These sample drivers contain intentional code errors that are designed to show the capabilities and features of SDV. These sample drivers are not functional and are not intended as examples for real driver development projects.
## Run the sample
@@ -24,7 +25,7 @@ The SDV-FailDriver-KMDF sample driver contains intentional code errors that are
1. The fail\_driver1 sample driver includes a library. To add the library, click the **Libraries** tab and click **Add Library**.
- Browse to the sample library directory and select the library project file (fail\_library1.vcxProj). The library must be added before SDV analyzes the driver. For more information, see [Library Processing in Static Driver Verifier](http://msdn.microsoft.com/en-us/library/windows/hardware/ff548182).
+ Browse to the sample library directory and select the library project file (fail\_library1.vcxProj). The library must be added before SDV analyzes the driver. For more information, see [Library Processing in Static Driver Verifier](https://docs.microsoft.com/windows-hardware/drivers/devtest/library-processing-in-static-driver-verifier).
1. Click the **Rules** tab to select which driver DDI usage rules to verify when you start the analysis.
@@ -32,16 +33,23 @@ The SDV-FailDriver-KMDF sample driver contains intentional code errors that are
Use the default rule set, or select **Custom rule selection**, click **Clear All**, and then select the following rules for the KMDF fail\_driver1 sample:
- - [DriverCreate](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544957)
- - [DeviceInitAPI](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544843)
- - [CtlDeviceFinishInitDeviceAdd](http://msdn.microsoft.com/en-us/library/windows/hardware/ff543607)
- - [MdlAfterReqCompletedIoctl](http://msdn.microsoft.com/en-us/library/windows/hardware/ff549047)
- - [MemAfterReqCompletedIntIoctlA](http://msdn.microsoft.com/en-us/library/windows/hardware/ff549090)
- - [MdlAfterReqCompletedIntIoctlA](http://msdn.microsoft.com/en-us/library/windows/hardware/ff549042)
- - [MarkCancOnCancReqLocal](http://msdn.microsoft.com/en-us/library/windows/hardware/ff549011)
- - [StopAckWithinEvtIoStop](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552846)
+ - [DriverCreate](https://docs.microsoft.com/windows-hardware/drivers/devtest/kmdf-drivercreate)
- For information about the rules, see [DDI Compliance Rules](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552840).
+ - [DeviceInitAPI](https://docs.microsoft.com/windows-hardware/drivers/devtest/kmdf-deviceinitapi)
+
+ - [CtlDeviceFinishInitDeviceAdd](https://docs.microsoft.com/windows-hardware/drivers/devtest/kmdf-ctldevicefinishinitdeviceadd)
+
+ - [MdlAfterReqCompletedIoctl](https://docs.microsoft.com/windows-hardware/drivers/devtest/kmdf-mdlafterreqcompletedioctl)
+
+ - [MemAfterReqCompletedIntIoctlA](https://docs.microsoft.com/windows-hardware/drivers/devtest/kmdf-memafterreqcompletedintioctla)
+
+ - [MdlAfterReqCompletedIntIoctlA](https://docs.microsoft.com/windows-hardware/drivers/devtest/kmdf-mdlafterreqcompletedintioctla)
+
+ - [MarkCancOnCancReqLocal](https://docs.microsoft.com/windows-hardware/drivers/devtest/kmdf-markcanconcancreqlocal)
+
+ - [StopAckWithinEvtIoStop](https://docs.microsoft.com/windows-hardware/drivers/devtest/kmdf-stopackwithinevtiostop)
+
+ For information about the rules, see [DDI Compliance Rules](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier-rules).
1. Start the static analysis. Click the **Main** tab, and then click **Start**. When you click **Start**, a message is displayed to let you know that static analysis is scheduled and that the analysis can take a long time to run. Click **OK** to continue.
@@ -49,4 +57,4 @@ The SDV-FailDriver-KMDF sample driver contains intentional code errors that are
As the static analysis proceeds, SDV reports the status of the analysis. When the analysis is complete, SDV reports the results and statistics. If the driver fails to satisfy a DDI usage rule, the result is reported as a defect. SDV finds 8 defects in this sample.
-On the **Main** tab, under **Results**, click the **Rules** tab. This tab displays the name of each rule that was verified in the last run and the results of the analysis. To view the reported defects, click the **Defect** link in the **Results** column. This opens the [Static Driver Verifier Report Page](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552834) and the [Trace Viewer](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544659), which displays a trace of the code path to the rule violation. For more information, see [Interpreting Static Driver Verifier Results](http://msdn.microsoft.com/en-us/library/windows/hardware/ff547228).
+On the **Main** tab, under **Results**, click the **Rules** tab. This tab displays the name of each rule that was verified in the last run and the results of the analysis. To view the reported defects, click the **Defect** link in the **Results** column. This opens the [Static Driver Verifier Report Page](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier-report) and the [Trace Viewer](https://docs.microsoft.com/windows-hardware/drivers/devtest/defect-viewer), which displays a trace of the code path to the rule violation. For more information, see [Interpreting Static Driver Verifier Results](https://docs.microsoft.com/windows-hardware/drivers/devtest/interpreting-static-driver-verifier-results).
diff --git a/tools/sdv/samples/SDV-FailDriver-NDIS/README.md b/tools/sdv/samples/SDV-FailDriver-NDIS/README.md
index 830b71c2..43d4a90d 100644
--- a/tools/sdv/samples/SDV-FailDriver-NDIS/README.md
+++ b/tools/sdv/samples/SDV-FailDriver-NDIS/README.md
@@ -8,21 +8,12 @@ products:
- windows-wdk
---
-
-<!---
- name: SDV-FailDriver-NDIS
- platform: WDM
- language: cpp
- category: StaticDriverVerifier Network
- description: Demonstrates how Static Driver Verifier (SDV) can find errors in a NDIS driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617995
---->
-
# SDV-FailDriver-NDIS
-The SDV-FailDriver-NDIS sample driver contains intentional code errors that are designed to show the capabilities and features of [Static Driver Verifier](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552808) (SDV). SDV is a static verification tool that systematically analyzes the source code of Windows kernel-mode drivers. SDV is included in the Windows Driver Kit (WDK) and can be run from Microsoft Visual Studio. The sample demonstrates how SDV can find errors in an NDIS driver.
+The SDV-FailDriver-NDIS sample driver contains intentional code errors that are designed to show the capabilities and features of [Static Driver Verifier](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier) (SDV). SDV is a static verification tool that systematically analyzes the source code of Windows kernel-mode drivers. SDV is included in the Windows Driver Kit (WDK) and can be run from Microsoft Visual Studio. The sample demonstrates how SDV can find errors in an NDIS driver.
-**Caution** These sample drivers contain intentional code errors that are designed to show the capabilities and features of SDV. These sample drivers are not functional and are not intended as examples for real driver development projects.
+> [!CAUTION]
+> These sample drivers contain intentional code errors that are designed to show the capabilities and features of SDV. These sample drivers are not functional and are not intended as examples for real driver development projects.
## Run the sample
@@ -38,13 +29,17 @@ The SDV-FailDriver-NDIS sample driver contains intentional code errors that are
Use the default rule set, or select **Custom rule selection**, click **Clear All**, and then select the following rules for the NDIS sdvmp sample:
- - [NdisAllocateMemoryWithTagPriority](http://msdn.microsoft.com/en-us/library/windows/hardware/ff549326)
- - [Init\_RegisterSG](http://msdn.microsoft.com/en-us/library/windows/hardware/ff547153)
- - [NdisStallExecution\_Delay](http://msdn.microsoft.com/en-us/library/windows/hardware/ff549332)
- - [Flags\_Irql](http://msdn.microsoft.com/en-us/library/windows/hardware/ff546123)
- - [Irql\_Synch\_Function](http://msdn.microsoft.com/en-us/library/windows/hardware/ff548015)
+ - [NdisAllocateMemoryWithTagPriority](https://docs.microsoft.com/windows-hardware/drivers/devtest/ndis-ndisallocatememorywithtagpriority)
+
+ - [Init\_RegisterSG](https://docs.microsoft.com/windows-hardware/drivers/devtest/ndis-init-registersg)
+
+ - [NdisStallExecution\_Delay](https://docs.microsoft.com/windows-hardware/drivers/devtest/ndis-ndisstallexecution-delay)
+
+ - [Flags\_Irql](https://docs.microsoft.com/windows-hardware/drivers/devtest/ndis-flags-irql)
+
+ - [Irql\_Synch\_Function](https://docs.microsoft.com/windows-hardware/drivers/devtest/ndis-irql-synch-function)
- For information about the rules, see [DDI Compliance Rules](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552840).
+ For information about the rules, see [DDI Compliance Rules](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier-rules).
1. Start the static analysis. Click the **Main** tab, and click **Start**. When you click **Start**, a message is displayed to let you know that static analysis is scheduled and that the analysis can take a long time to run. Click **OK** to continue.
@@ -52,4 +47,4 @@ The SDV-FailDriver-NDIS sample driver contains intentional code errors that are
As the static analysis proceeds, SDV reports the status of the analysis. When the analysis is complete, SDV reports the results and statistics. If the driver fails to satisfy a DDI usage rule, the result is reported as a defect. SDV finds 5 defects in this sample.
-On the **Main** tab, under **Results**, click the **Rules** tab. This tab displays the name of each rule that was verified in the last run and the results of the analysis. To view the reported defects, click the **Defect** link in the **Results** column. This opens the [Static Driver Verifier Report Page](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552834) and the [Trace Viewer](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544659), which displays a trace of the code path to the rule violation. For more information, see [Interpreting Static Driver Verifier Results](http://msdn.microsoft.com/en-us/library/windows/hardware/ff547228). \ No newline at end of file
+On the **Main** tab, under **Results**, click the **Rules** tab. This tab displays the name of each rule that was verified in the last run and the results of the analysis. To view the reported defects, click the **Defect** link in the **Results** column. This opens the [Static Driver Verifier Report Page](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier-report) and the [Trace Viewer](https://docs.microsoft.com/windows-hardware/drivers/devtest/defect-viewer), which displays a trace of the code path to the rule violation. For more information, see [Interpreting Static Driver Verifier Results](https://docs.microsoft.com/windows-hardware/drivers/devtest/interpreting-static-driver-verifier-results).
diff --git a/tools/sdv/samples/SDV-FailDriver-STORPORT/README.md b/tools/sdv/samples/SDV-FailDriver-STORPORT/README.md
index 3dd4cdce..39770a7f 100644
--- a/tools/sdv/samples/SDV-FailDriver-STORPORT/README.md
+++ b/tools/sdv/samples/SDV-FailDriver-STORPORT/README.md
@@ -10,9 +10,10 @@ products:
# SDV-FailDriver-STORPORT
-The SDV-FailDriver-Storport sample driver contains intentional code errors that are designed to show the capabilities and features of [Static Driver Verifier](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552808) (SDV). SDV is a static verification tool that systematically analyzes the source code of Windows kernel-mode drivers. SDV is included in the Windows Driver Kit (WDK) and can be run from Microsoft Visual Studio. The sample demonstrates how SDV can find errors in a Storport driver.
+The SDV-FailDriver-Storport sample driver contains intentional code errors that are designed to show the capabilities and features of [Static Driver Verifier](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier) (SDV). SDV is a static verification tool that systematically analyzes the source code of Windows kernel-mode drivers. SDV is included in the Windows Driver Kit (WDK) and can be run from Microsoft Visual Studio. The sample demonstrates how SDV can find errors in a Storport driver.
-**Caution** These sample drivers contain intentional code errors that are designed to show the capabilities and features of SDV. These sample drivers are not functional and are not intended as examples for real driver development projects.
+> [!CAUTION]
+> These sample drivers contain intentional code errors that are designed to show the capabilities and features of SDV. These sample drivers are not functional and are not intended as examples for real driver development projects.
## Run the sample
@@ -28,15 +29,21 @@ The SDV-FailDriver-Storport sample driver contains intentional code errors that
Use the default rule set, or select **Custom rule selection**, click **Clear All**, and then select the following rules for the Storport sample:
- - [StorPortAllocatePool2 Rule (Storport)](http://msdn.microsoft.com/en-us/library/windows/hardware/hh454259)
- - [StorPortDeprecated Rule (Storport)](http://msdn.microsoft.com/en-us/library/windows/hardware/hh454263)
- - [StorPortEnablePassive Rule (Storport)](http://msdn.microsoft.com/en-us/library/windows/hardware/hh454264)
- - [StorPortNotification2 Rule (Storport)](http://msdn.microsoft.com/en-us/library/windows/hardware/hh454268)
- - [StorPortSpinLock Rule (Storport)](http://msdn.microsoft.com/en-us/library/windows/hardware/hh454273)
- - [StorPortStartIo Rule (Storport)](http://msdn.microsoft.com/en-us/library/windows/hardware/hh454274)
- - [StorPortStatusPending Rule (Storport)](http://msdn.microsoft.com/en-us/library/windows/hardware/hh454275)
+ - [StorPortAllocatePool2 Rule (Storport)](https://docs.microsoft.com/windows-hardware/drivers/devtest/storport-storportallocatepool2)
- For information about the rules, see [DDI Compliance Rules](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552840).
+ - [StorPortDeprecated Rule (Storport)](https://docs.microsoft.com/windows-hardware/drivers/devtest/storport-storportdeprecated)
+
+ - [StorPortEnablePassive Rule (Storport)](https://docs.microsoft.com/windows-hardware/drivers/devtest/storport-storportenablepassive)
+
+ - [StorPortNotification2 Rule (Storport)](https://docs.microsoft.com/windows-hardware/drivers/devtest/storport-storportnotification2)
+
+ - [StorPortSpinLock Rule (Storport)](https://docs.microsoft.com/windows-hardware/drivers/devtest/storport-storportspinlock)
+
+ - [StorPortStartIo Rule (Storport)](https://docs.microsoft.com/windows-hardware/drivers/devtest/storport-storportstartio)
+
+ - [StorPortStatusPending Rule (Storport)](https://docs.microsoft.com/windows-hardware/drivers/devtest/storport-storportstatuspending)
+
+ For information about the rules, see [DDI Compliance Rules](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier-rules).
1. Start the static analysis. Click the **Main** tab, and click **Start**. When you click **Start**, a message is displayed to let you know that static analysis is scheduled and that the analysis can take a long time to run. Click **OK** to continue.
@@ -44,4 +51,4 @@ The SDV-FailDriver-Storport sample driver contains intentional code errors that
As the static analysis proceeds, SDV reports the status of the analysis. When the analysis is complete, SDV reports the results and statistics. If the driver fails to satisfy a DDI usage rule, the result is reported as a defect. SDV finds 7 defects in this sample.
-On the **Main** tab, under **Results**, click the **Rules** tab. This tab displays the name of each rule that was verified in the last run and the results of the analysis. To view the reported defects, click the **Defect** link in the **Results** column. This opens the [Static Driver Verifier Report Page](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552834) and the [Trace Viewer](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544659), which displays a trace of the code path to the rule violation. For more information, see [Interpreting Static Driver Verifier Results](http://msdn.microsoft.com/en-us/library/windows/hardware/ff547228).
+On the **Main** tab, under **Results**, click the **Rules** tab. This tab displays the name of each rule that was verified in the last run and the results of the analysis. To view the reported defects, click the **Defect** link in the **Results** column. This opens the [Static Driver Verifier Report Page](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier-report) and the [Trace Viewer](https://docs.microsoft.com/windows-hardware/drivers/devtest/defect-viewer), which displays a trace of the code path to the rule violation. For more information, see [Interpreting Static Driver Verifier Results](https://docs.microsoft.com/windows-hardware/drivers/devtest/interpreting-static-driver-verifier-results).
diff --git a/tools/sdv/samples/SDV-FailDriver-WDM/README.md b/tools/sdv/samples/SDV-FailDriver-WDM/README.md
index 34827aa3..33223725 100644
--- a/tools/sdv/samples/SDV-FailDriver-WDM/README.md
+++ b/tools/sdv/samples/SDV-FailDriver-WDM/README.md
@@ -8,21 +8,12 @@ products:
- windows-wdk
---
-
-<!---
- name: SDV-FailDriver-WDM
- platform: WDM
- language: cpp
- category: StaticDriverVerifier
- description: Demonstrates how Static Driver Verifier (SDV) can find errors in a WDM driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617999
---->
-
# SDV-FailDriver-WDM
-The SDV-FailDriver-WDM sample driver contains intentional code errors that are designed to show the capabilities and features of [Static Driver Verifier](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552808) (SDV). SDV is a static verification tool that systematically analyzes the source code of Windows kernel-mode drivers. SDV is included in the Windows Driver Kit (WDK) and can be run from Microsoft Visual Studio. The sample demonstrates how SDV can find errors in a WDM driver.
+The SDV-FailDriver-WDM sample driver contains intentional code errors that are designed to show the capabilities and features of [Static Driver Verifier](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier) (SDV). SDV is a static verification tool that systematically analyzes the source code of Windows kernel-mode drivers. SDV is included in the Windows Driver Kit (WDK) and can be run from Microsoft Visual Studio. The sample demonstrates how SDV can find errors in a WDM driver.
-**Caution** These sample drivers contain intentional code errors that are designed to show the capabilities and features of SDV. These sample drivers are not functional and are not intended as examples for real driver development projects.
+> [!CAUTION]
+> These sample drivers contain intentional code errors that are designed to show the capabilities and features of SDV. These sample drivers are not functional and are not intended as examples for real driver development projects.
## Run the sample
@@ -38,13 +29,17 @@ The SDV-FailDriver-WDM sample driver contains intentional code errors that are d
Use the default rule set, or select **Custom rule selection**, click **Clear All**, and then select the following rules for the WDM fail\_driver1 sample:
- - [CancelSpinLock](http://msdn.microsoft.com/en-us/library/windows/hardware/ff542478)
- - [IrqlIoApcLte](http://msdn.microsoft.com/en-us/library/windows/hardware/ff547759)
- - [IrqlKeSetEvent](http://msdn.microsoft.com/en-us/library/windows/hardware/ff547835)
- - [LowerDriverReturn](http://msdn.microsoft.com/en-us/library/windows/hardware/ff548273)
- - [SpinLock (WDM)](http://msdn.microsoft.com/en-us/library/windows/hardware/ff551861)
+ - [CancelSpinLock](https://docs.microsoft.com/windows-hardware/drivers/devtest/wdm-cancelspinlock)
+
+ - [IrqlIoApcLte](https://docs.microsoft.com/windows-hardware/drivers/devtest/wdm-irqlioapclte)
+
+ - [IrqlKeSetEvent](https://docs.microsoft.com/windows-hardware/drivers/devtest/wdm-irqlkesetevent)
+
+ - [LowerDriverReturn](https://docs.microsoft.com/windows-hardware/drivers/devtest/wdm-lowerdriverreturn)
+
+ - [SpinLock (WDM)](https://docs.microsoft.com/windows-hardware/drivers/devtest/wdm-spinlock)
- For information about the rules, see [DDI Compliance Rules](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552840).
+ For information about the rules, see [DDI Compliance Rules](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier-rules).
1. Start the static analysis. Click the **Main** tab, and click **Start**. When you click **Start**, a message is displayed to let you know that static analysis is scheduled and that the analysis can take a long time to run. Click **OK** to continue.
@@ -52,4 +47,4 @@ The SDV-FailDriver-WDM sample driver contains intentional code errors that are d
As the static analysis proceeds, SDV reports the status of the analysis. When the analysis is complete, SDV reports the results and statistics. If the driver fails to satisfy a DDI usage rule, the result is reported as a defect. SDV finds 5 defects in this sample.
-To view specific defects in the [Static Driver Verifier Report](http://msdn.microsoft.com/en-us/library/windows/hardware/ff552834), click the Defect in the **Results** pane. This opens the [Trace Viewer](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544659), which displays a trace of the code path to the rule violation. For more information, see [Interpreting Static Driver Verifier Results](http://msdn.microsoft.com/en-us/library/windows/hardware/ff547228). \ No newline at end of file
+On the **Main** tab, under **Results**, click the **Rules** tab. This tab displays the name of each rule that was verified in the last run and the results of the analysis. To view the reported defects, click the **Defect** link in the **Results** column. This opens the [Static Driver Verifier Report Page](https://docs.microsoft.com/windows-hardware/drivers/devtest/static-driver-verifier-report) and the [Trace Viewer](https://docs.microsoft.com/windows-hardware/drivers/devtest/defect-viewer), which displays a trace of the code path to the rule violation. For more information, see [Interpreting Static Driver Verifier Results](https://docs.microsoft.com/windows-hardware/drivers/devtest/interpreting-static-driver-verifier-results).
diff --git a/video/KMDOD/README.md b/video/KMDOD/README.md
index 94f2cf0c..39d1df7e 100644
--- a/video/KMDOD/README.md
+++ b/video/KMDOD/README.md
@@ -8,21 +8,11 @@ products:
- windows-wdk
---
-
-<!---
- name: Kernel mode display-only miniport driver (KMDOD) sample
- platform: WDM
- language: cpp
- category: Video
- description: Implements most DDIs that a display-only miniport driver should provide to the Windows Display Driver Model (WDDM).
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=620317
---->
-
# Kernel mode display-only miniport driver (KMDOD) sample
The kernel mode display-only miniport driver (KMDOD) sample implements most of the device driver interfaces (DDIs) that a display-only miniport driver should provide to the Windows Display Driver Model (WDDM). The code is useful to understand how to write a miniport driver for a display-only device, or how to develop a full WDDM driver.
-For more info on how a KMDOD works, see [Kernel Mode Display-Only Driver (KMDOD) Interface](http://msdn.microsoft.com/en-us/library/windows/hardware/jj673962). For more info on WDDM drivers, see [Windows Display Driver Model (WDDM) Design Guide](http://msdn.microsoft.com/en-us/library/windows/hardware/ff570593).
+For more info on WDDM drivers, see [Windows Display Driver Model (WDDM) Design Guide](https://docs.microsoft.com/windows-hardware/drivers/display/windows-vista-display-driver-model-design-guide).
This code can also help you to understand the use and implementation of display-related DDIs. The INF file shows how to make a display miniport driver visible to other WDDM components.
@@ -34,14 +24,18 @@ If the current display driver is not a WDDM 1.2 compliant driver, the sample dri
## Installation
-In Microsoft Visual Studio, press **F5** to build the sample and then deploy it to a target machine. For more info, see [Deploying a Driver to a Test Computer](http://msdn.microsoft.com/en-us/library/windows/hardware/hh454834).
+In Microsoft Visual Studio, press **F5** to build the sample and then deploy it to a target machine. For more info, see [Deploying a Driver to a Test Computer](https://docs.microsoft.com/windows-hardware/drivers/develop/deploying-a-driver-to-a-test-computer).
In some cases you might need to install the driver manually, as follows.
1. Add the following files to the directory given by ...\\[x64]\\C++\\Package:
+
- SampleDriver.cat
+
- SampleDriver.inf
+
- SampleDriver.sys
+
- SampleDriver.cer
1. Unless you've provided a production certificate, you should manually install the SampleDriver.cer digital certificate with the following command:
@@ -52,9 +46,10 @@ In some cases you might need to install the driver manually, as follows.
`Bcdedit.exe -set TESTSIGNING ON`
- **Note** After you change the TESTSIGNING boot configuration option, restart the computer for the change to take effect.
+ > [!NOTE]
+ > After you change the TESTSIGNING boot configuration option, restart the computer for the change to take effect.
- For more info, see [The TESTSIGNING Boot Configuration Option](http://msdn.microsoft.com/en-us/library/windows/hardware/ff553484).
+ For more info, see [The TESTSIGNING Boot Configuration Option](https://docs.microsoft.com/windows-hardware/drivers/install/the-testsigning-boot-configuration-option).
1. Manually install the driver using Device Manager, which is available from Control Panel.
@@ -71,4 +66,4 @@ Text
This new code provides generic identifiers for ACPI hardware.
-You can optionally delete the original lines of code within these sections of the INF file. \ No newline at end of file
+You can optionally delete the original lines of code within these sections of the INF file.
diff --git a/video/pixlib/README.md b/video/pixlib/README.md
index 733782c1..4153a4c3 100644
--- a/video/pixlib/README.md
+++ b/video/pixlib/README.md
@@ -8,18 +8,8 @@ products:
- windows-wdk
---
-
-<!---
- name: PixLib sample
- platform: LIB
- language: cpp
- category: Video
- description: Demonstrates how to implement the CPixel class for use by a display driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=618005
---->
-
# PixLib sample
The PixLib sample demonstrates how to implement the **CPixel** class for use by a display driver.
-For more information, see the WDK documentation topic, [CPixel Support Methods for Lightweight MIP Maps](http://msdn.microsoft.com/en-us/library/windows/hardware/ff540585). \ No newline at end of file
+For more information, see the WDK documentation topic, [CPixel Support Methods for Lightweight MIP Maps](https://docs.microsoft.com/windows-hardware/drivers/display/cpixel-support-methods-for-lightweight-mip-maps).
diff --git a/wmi/wmiacpi/README.md b/wmi/wmiacpi/README.md
index ae6292db..0afc710f 100644
--- a/wmi/wmiacpi/README.md
+++ b/wmi/wmiacpi/README.md
@@ -8,16 +8,6 @@ products:
- windows-wdk
---
-
-<!---
- name: WMIACPI Sample
- platform: WDM
- language: cpp
- category: WMI ACPI
- description: Contains ACPI BIOS and WMI sample code that enables instrumentation of the ACPI BIOS from within ACPI Source Language (ASL) code.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=618006
---->
-
# WMI ACPI Sample
The WMIACPI sample contains ACPI BIOS and Microsoft Windows Management Instrumentation (WMI) sample code that enables instrumentation of the ACPI BIOS from within ACPI Source Language (ASL) code. ASL code can expose data blocks, methods, and events through WMI by leveraging the ACPI-WMI mapping driver (Wmiacpi.sys).
@@ -28,12 +18,12 @@ The WMIACPI sample contains files which allow an ACPI BIOS developer to add inst
The following table lists the files included in the sample and their function:
-| File | Description|
+| File | Description |
| --- | --- |
| Device.asl | ASL code that can be included in the ACPI bios that exposes a set of packages, strings, data, methods and events. |
| Acpimof.mof | Managed object format (MOF) file that contains a description of the data blocks, methods, and events that are exposed. This description is required so that WMI can access the data blocks, methods, and events. |
| Acpimof.rc<br>Acpimof.def | Files that are required to build Acpimof.dll, which is a resource-only DLL. |
-| Wmi-Acpi.htm | The *Windows Instrumentation: WMI and ACPI* whitepaper. |
+| Wmi-Acpi.htm | The *Windows Instrumentation: WMI and ACPI* white paper. |
| acpimov.vcxproj | Visual Studio project file for the sample. |
| acpimof.sln | Visual Studio solution file for the sample. |
@@ -42,8 +32,11 @@ The following table lists the files included in the sample and their function:
To add the sample code to your ACPI bios and access through WMI:
1. Include the contents of *Device.asl* to your ASL source and rebuild the DSDT. Update the operating system with the new DSDT through reflashing.
+
1. Build *Acpimof.dll* in the WMIACPI directory. *Acpimof.dll* is a resource-only DLL that contains the compiled MOF in a form that WMI can import into its schema.
+
1. Copy *Acpimof.dll* to %windir%\\system32 and add a value named "MofImagePath" under the HKEY\_LOCAL\_MACHINE\\CurrentControlSet\\Services\\WmiAcpi key. The contents of the value should be a path to the *Acpimof.dll* file.
+
1. Restart your computer. When Plug and Play (PnP) recognizes the new device with a pnpid of pnp0c14, it will install *Wmiacpi.sys* automatically and make the MOF resource in Acpimof.dll available to the WMI schema.
-Note that you do not need an INF file because Windows supplies an INF for the ACPI-WMI mapping driver device as part of the operating system. \ No newline at end of file
+Note that you do not need an INF file because Windows supplies an INF for the ACPI-WMI mapping driver device as part of the operating system.
diff --git a/wmi/wmisamp/README.md b/wmi/wmisamp/README.md
index c305be3e..ae810493 100644
--- a/wmi/wmisamp/README.md
+++ b/wmi/wmisamp/README.md
@@ -8,16 +8,6 @@ products:
- windows-wdk
---
-
-<!---
- name: WmiSamp WMI Provider
- platform: KMDF
- language: cpp
- category: WMI
- description: Demonstrates how to register WMI providers in KMDF, create provider instances, and handle WMI queries sent to a device.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=618007
---->
-
# Sample KMDF Driver Implementing a WMI Data Provider
WmiSamp WMI Provider is a sample KMDF driver that implements a WMI data provider.
@@ -32,9 +22,10 @@ The **Firefly**, **PCIDRV**, and **Toaster** sample drivers also implement WMI d
## Installation
-In Visual Studio, you can press F5 to build the sample and then deploy it to a target machine. For more information, see [Deploying a Driver to a Test Computer](http://msdn.microsoft.com/en-us/library/windows/hardware/hh454834).
+In Visual Studio, you can press F5 to build the sample and then deploy it to a target machine. For more information, see [Deploying a Driver to a Test Computer](https://docs.microsoft.com/windows-hardware/drivers/develop/deploying-a-driver-to-a-test-computer).
-**Note** You 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 Windows Driver Kit (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.
+> [!NOTE]
+> You 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 Windows Driver Kit (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.
## Testing
@@ -45,8 +36,12 @@ To test the WmiSamp driver, run the generated WmiSamp.vbs script file. This will
WmiMofCk validates that the classes, properties, methods and events specified in a binary mof file (.bmf) are valid for use with WMI. It also generates useful output files needed to build and test the WMI data provider.
- If the -h parameter is specified, a C language header file is created that defines the GUIDs, data structures, and method indices specified in the MOF file.
+
- If the -t parameter is specified, a VBScript applet is created that will query all data blocks and properties specified in the .mof file. This can be useful for testing WMI data providers.
+
- If the -x parameter is specified, a text file is created that contains the text representation of the binary .mof data. This can be included in the source of the driver if the driver supports reporting the binary .mof via a WMI query rather than a resource on the driver image file.
+
- Usage: wmimofck -h\<C Header output file\> -x\<Hexdump output file\> -t\<VBScript test output file\> \<binary mof input file\>
-**Note** A byproduct of compiling the .mof file is a .vbs file. This is a VBScript file that is run from the command line on the target machine running the new device driver. It will cause WMI to query all data blocks and properties, and put the results into a .log file. This can be very useful for testing WMI support in your driver. For more sophisticated testing, the VBScript can be extended by hand. \ No newline at end of file
+> [!NOTE]
+> A byproduct of compiling the .mof file is a .vbs file. This is a VBScript file that is run from the command line on the target machine running the new device driver. It will cause WMI to query all data blocks and properties, and put the results into a .log file. This can be very useful for testing WMI support in your driver. For more sophisticated testing, the VBScript can be extended by hand.