summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Golden <[email protected]>2019-09-25 07:54:18 -0700
committerGitHub <[email protected]>2019-09-25 07:54:18 -0700
commit2e237713e298495b141560a5e7c76d6b1efa0153 (patch)
tree552f09c62562d62e3b8f2701f223f6f53792403e
parent16022c593787aef040b8a37ef697316e07f1322e (diff)
-rw-r--r--network/ndis/filter/README.md2
-rw-r--r--network/trans/msnmntr/README.md2
-rw-r--r--nfp/net/README.md10
-rw-r--r--pofx/PEP/README.md18
-rw-r--r--pofx/UMDF2/README.md41
-rw-r--r--pofx/WDF/README.md94
-rw-r--r--pos/drivers/MagneticStripeReader/README.md10
-rw-r--r--pos/drivers/barcodescanner/README.md10
-rw-r--r--print/OEM Printer Customization Plug-in Samples/README.md70
-rw-r--r--print/SampleOpenXPS/README.md13
-rw-r--r--print/SampleXPS/README.md13
-rw-r--r--print/SimplePipelineFilter/README.md15
-rw-r--r--print/XPSDrvSmpl/README.md8
-rw-r--r--print/XpsRasFilter/README.md24
-rw-r--r--print/autoconfig/README.md32
-rw-r--r--print/cpsuisam/README.md13
-rw-r--r--print/v4PrintDriverSamples/PrinterExtensionSample/README.md20
-rw-r--r--print/v4PrintDriverSamples/v4PrintDriver-ConstraintScript/README.md27
-rw-r--r--print/v4PrintDriverSamples/v4PrintDriver-HostBasedSampleDriver/README.md51
-rw-r--r--print/v4PrintDriverSamples/v4PrintDriver-USBMon-Bidi-Extension/README.md30
-rw-r--r--print/v4PrintDriverSamples/v4PrintDriver-WSDMon-Bidi-Extension/README.md19
-rw-r--r--sd/miniport/sdhc/README.md18
-rw-r--r--security/elam/README.md24
-rw-r--r--sensors/ADXL345Acc/readme.md9
-rw-r--r--sensors/Activity/readme.md9
-rw-r--r--sensors/CustomSensors/readme.md9
-rw-r--r--sensors/Fusion/readme.md9
-rw-r--r--sensors/Pedometer/readme.md9
-rw-r--r--sensors/SensorsComboDriver/readme.md9
-rw-r--r--sensors/SimpleDeviceOrientationSensor/readme.md9
30 files changed, 224 insertions, 403 deletions
diff --git a/network/ndis/filter/README.md b/network/ndis/filter/README.md
index c9615ce2..e9e34278 100644
--- a/network/ndis/filter/README.md
+++ b/network/ndis/filter/README.md
@@ -82,7 +82,7 @@ On the host computer, in **Visual Studio**, in the **Debug** menu, choose **Atta
> [!NOTE]
> If you see a dialog box that asks you to allow the debugger to communicate through the firewall, click the boxes for all types of networks. Click **Allow Access**.
-For more information, see [Setting Up Kernel-Mode Debugging in Visual Studio](http://msdn.microsoft.com/library/windows/hardware/hh439376).
+For more information, see [Setting Up Kernel-Mode Debugging in Visual Studio](https://docs.microsoft.com/windows-hardware/drivers/debugger/setting-up-kernel-mode-debugging-in-visual-studio).
### Setting up kernel-mode debugging manually
diff --git a/network/trans/msnmntr/README.md b/network/trans/msnmntr/README.md
index 41846336..20a8c283 100644
--- a/network/trans/msnmntr/README.md
+++ b/network/trans/msnmntr/README.md
@@ -86,4 +86,4 @@ As an alternative to building the WFP MSN Messenger Monitor Sample in Visual Stu
`msbuild /p:configuration="Release" /p:platform="Win32" msnmntr.sln`
-For more information about using [MSBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild?view=vs-2019) to build a driver package, see [Building a Driver Using the Command Line (MSBuild)](https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/building-a-driver#building-a-driver-using-the-command-line-msbuild).
+For more information about using [MSBuild](https://docs.microsoft.com/visualstudio/msbuild/msbuild?view=vs-2019) to build a driver package, see [Building a Driver Using the Command Line (MSBuild)](https://docs.microsoft.com/windows-hardware/drivers/develop/building-a-driver#building-a-driver-using-the-command-line-msbuild).
diff --git a/nfp/net/README.md b/nfp/net/README.md
index d19a048a..0df76029 100644
--- a/nfp/net/README.md
+++ b/nfp/net/README.md
@@ -8,16 +8,6 @@ products:
- windows-wdk
---
-
-<!---
- name: Near-Field Proximity Sample Driver (UMDF Version 1)
- platform: UMDF1
- language: cpp
- category: Proximity
- description: Demonstrates how to use UMDF version 1 to write a near-field proximity driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=620200
---->
-
# Near-Field Proximity Sample Driver (UMDF Version 1)
> [!WARNING]
diff --git a/pofx/PEP/README.md b/pofx/PEP/README.md
index 7e593aea..9af1699d 100644
--- a/pofx/PEP/README.md
+++ b/pofx/PEP/README.md
@@ -8,22 +8,14 @@ products:
- windows-wdk
---
-
-<!---
- name: Power Engine Plugin (PEP) ACPI Sample
- platform: KMDF
- language: cpp
- category: ACPI Power
- description: Demonstrates an interface which allows PEP to implement ACPI runtime methods natively via a driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=620311
---->
-
# PEP ACPI Sample
The Power Engine Plugin (PEP) provides interfaces for platform power management including device power management (DPM), processor power management (PPM), and, starting with Windows 10, ACPI runtime methods. This sample documents the latter: an interface which allows a PEP to implement ACPI runtime methods natively via a Windows driver rather than firmware (AML). A PEP using the ACPI interface is often called a Platform Extension. Note that this interface can be used independently or in conjunction with the DPM and/or PPM interfaces as appropriate.
Use the PEP ACPI interface if:
-* You want to write peripheral (off-SoC) device power management in C rather than in ACPI Source Language (ASL).
-* You need to override an ACPI method which exists in a platform's DSDT or SSDT firmware tables.
-* Shipping, maintaining, and updating a driver binary suits your platform better than firmware updates (note that you will still need FADT, MADT, DBG2, and so on in firmware - this interface is only for runtime methods).
+- You want to write peripheral (off-SoC) device power management in C rather than in ACPI Source Language (ASL).
+
+- You need to override an ACPI method which exists in a platform's DSDT or SSDT firmware tables.
+
+- Shipping, maintaining, and updating a driver binary suits your platform better than firmware updates (note that you will still need FADT, MADT, DBG2, and so on in firmware, this interface is only for runtime methods).
diff --git a/pofx/UMDF2/README.md b/pofx/UMDF2/README.md
index c526f412..a8958cc4 100644
--- a/pofx/UMDF2/README.md
+++ b/pofx/UMDF2/README.md
@@ -16,14 +16,13 @@ This solution demonstrates how a User-Mode Driver Framework (UMDF) version 2 dri
This sample builds a Universal Windows Driver. It uses only APIs and DDIs that are included in OneCoreUAP.
-Related technologies
---------------------
-For related information, see the [KMDF Power Framework (PoFx) Sample](http://go.microsoft.com/fwlink/p/?LinkId=617937).
+## Related technologies
-[User-Mode Driver Framework](http://msdn.microsoft.com/en-us/library/windows/hardware/ff560456)
+[KMDF Power Framework (PoFx) Sample](https://docs.microsoft.com/samples/microsoft/windows-driver-samples/kmdf-power-framework-pofx-sample/).
-Run the sample
---------------
+[User-Mode Driver Framework](https://docs.microsoft.com/windows-hardware/drivers/wdf/getting-started-with-umdf-version-2)
+
+## Run the sample
The computer where you install the driver is called the *target computer* or the *test computer*. Typically this is a separate computer from where you develop and build the driver package. The computer where you develop and build the driver is called the *host computer*.
@@ -31,20 +30,27 @@ The process of moving the driver package to the target computer and installing t
### 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).
+
+After you have provisioned the target computer, continue with these steps:
+
+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. 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**.
-2. 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\\SingleComponentSingleState** for the hardware ID. Click **OK**.
-3. On the **Build** menu, choose **Build Solution**.
+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\\SingleComponentSingleState** for the hardware ID. Click **OK**.
+
+1. On the **Build** menu, choose **Build Solution**.
### 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).
+
+After you have prepared the target computer for manual deployment, continue with these steps:
+
+1. Copy all of the files in your driver package to a folder on the target computer (for example, c:\\PoFx).
-1. Copy all of the files in your driver package to a folder on the target computer (for example, c:\\PoFx).
-2. On the target computer, open a Command Prompt window as Administrator. Navigate to your driver package folder, and enter the following command:
+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 SingleComponentSingleStateUm.inf root\\SingleComponentSingleState**
+ `devcon install SingleComponentSingleStateUm.inf root\\SingleComponentSingleState`
### View the root enumerated driver in Device Manager
@@ -52,11 +58,10 @@ On the target computer, in a Command Prompt window, enter **devmgmt** to open De
In Device Manager, on the **View** menu, choose **Devices by connection**. Locate **UMDF 2.0 Single Component Single State Device** as a child of the root node of the device tree.
-Build the sample using MSBuild
-------------------------------
+## Build the sample using MSBuild
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, PoFx.sln. Use the MSBuild command to build the solution. Here is an example:
-**msbuild /p:configuration="Release" /p:platform="Win32" PoFx.sln**
+`msbuild /p:configuration="Release" /p:platform="Win32" PoFx.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](https://docs.microsoft.com/visualstudio/msbuild/msbuild?view=vs-2019) 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/pofx/WDF/README.md b/pofx/WDF/README.md
index c4503eee..697642d5 100644
--- a/pofx/WDF/README.md
+++ b/pofx/WDF/README.md
@@ -16,63 +16,65 @@ This solution consists of two samples that demonstrate how a KMDF driver can imp
This sample builds a Universal Windows Driver. It uses only APIs and DDIs that are included in OneCoreUAP.
-Related technologies
---------------------
-[Supporting Functional Power States](http://msdn.microsoft.com/en-us/library/windows/hardware/hh451017)
+## Related technologies
-SingleComp Overview
--------------------
+[Supporting Functional Power States](https://docs.microsoft.com/windows-hardware/drivers/wdf/supporting-functional-power-states)
+
+## SingleComp Overview
This sample demonstrates how a KMDF driver can implement F-state-based power management for a device that has only a single component.
-The sample illustrates the use of the [**WdfDeviceWdmAssignPowerFrameworkSettings**](http://msdn.microsoft.com/en-us/library/windows/hardware/hh451097) method to specify power framework settings for the single component that represents the entire device. The power framework settings that can be specified include the F-states for the component and the power framework callbacks that are invoked when the component's active/idle condition or its F-state changes.
+The sample illustrates the use of the [**WdfDeviceWdmAssignPowerFrameworkSettings**](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/wdfdevice/nf-wdfdevice-wdfdevicewdmassignpowerframeworksettings) method to specify power framework settings for the single component that represents the entire device. The power framework settings that can be specified include the F-states for the component and the power framework callbacks that are invoked when the component's active/idle condition or its F-state changes.
-The sample also illustrates the use of the [**WdfDeviceAssignS0IdleSettings**](http://msdn.microsoft.com/en-us/library/windows/hardware/ff545903) method to instruct KMDF to begin power-management of the device (and the component that represents the entire device).
+The sample also illustrates the use of the [**WdfDeviceAssignS0IdleSettings**](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/wdfdevice/nf-wdfdevice-wdfdeviceassigns0idlesettings) method to instruct KMDF to begin power-management of the device (and the component that represents the entire device).
-Installation
-------------
+## Installation (SingleComp)
The driver can be installed on a root-enumerated device using the devcon.exe tool.
-1. Obtain the devcon.exe tool from the WDK
-2. Copy the driver binary, INF file and the KMDF coinstaller to a directory on your test machine.
+1. Obtain the devcon.exe tool from the WDK
+
+1. Copy the driver binary, INF file and the KMDF coinstaller to a directory on your test machine.
- **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.
-3. Run the command "devcon.exe install SingleComponentFStateSample.inf root\\SingleComponentFStateDevice".
+1. Run the command "devcon.exe install SingleComponentFStateSample.inf root\\SingleComponentFStateDevice".
Use the PowerFxApp.exe application to send I/O requests to the driver. Running the command "PowerFxApp.exe /?" displays detailed usage information.
-For detailed information about implementing F-state-based power management for a single component device, see [Supporting Multiple Functional Power States for Single-Component Devices](http://msdn.microsoft.com/en-us/library/windows/hardware/hh451032).
+For detailed information about implementing F-state-based power management for a single component device, see [Supporting Multiple Functional Power States for Single-Component Devices](https://docs.microsoft.com/windows-hardware/drivers/wdf/supporting-multiple-functional-power-states-for-single-component-devices).
-MultiComp Overview
-------------------
+## MultiComp Overview
This sample demonstrates how a KMDF driver can implement F-state-based power management for a device that has an arbitrary number of components that can be individually power-managed.
The sample driver statically links to a helper library (WdfPoFx.lib) that encapsulates all of the generic code to interact with the power framework. The device-specific code is implemented in the driver itself, outside of the helper library. The idea behind this organizing the code in this manner is make the helper library reusable by other drivers. The directory structure for the sample is as follows:
-- The helper library is implemented in the 'lib' subdirectory.
-- The interface between the helper library and the rest of the driver code is defined in the 'inc' subdirectory.
-- The driver is implemented in the 'driver' subdirectory.
+- The helper library is implemented in the 'lib' subdirectory.
+
+- The interface between the helper library and the rest of the driver code is defined in the 'inc' subdirectory.
-Installation
-------------
+- The driver is implemented in the 'driver' subdirectory.
+
+## Installation (MultiComp)
The driver can be installed on a root-enumerated device using the devcon.exe tool.
-1. Obtain the devcon.exe tool from the WDK
-2. Copy the driver binary, INF file and the KMDF coinstaller to a directory on your test machine.
- **Note** You can obtain the co-installers by downloading theWdfcoinstaller.msi package from [WDK 8 Redistributable Components](http://go.microsoft.com/fwlink/p/?LinkID=226396).
-3. Run the command "devcon.exe install WdfMultiComp.inf WDF\\WdfMultiComp".
+1. Obtain the devcon.exe tool from the WDK
+
+1. Copy the driver binary, INF file and the KMDF coinstaller to a directory on your test machine.
+
+ > [!NOTE]
+ > You can obtain the co-installers by downloading theWdfcoinstaller.msi package from [WDK 8 Redistributable Components](https://go.microsoft.com/fwlink/p/?LinkID=253170).
-Testing
--------
+1. Run the command `devcon.exe install WdfMultiComp.inf WDF\WdfMultiComp`.
+
+## Testing
Use the PowerFxApp.exe application to send I/O requests to the driver. Running the command "PowerFxApp.exe /?" displays detailed usage information.
-Design overview
----------------
+## Design overview
The driver controls a device that has more than one component. It needs to access one of those components for processing each I/O request that it receives. The specific component that it needs to access depends on the I/O request that it receives.
@@ -82,38 +84,40 @@ When the driver's dispatch routine for the top-level queue is invoked, it examin
The driver's top-level queue and component queues are all power-managed so KMDF ensures that the device is in D0 while the queues are in a dispatching state. The key point to note is that the driver is designed to maintain a component queue in a dispatching state only when the component is active. In order to achieve this, the driver stops the component queue when the component becomes idle and starts the component queue when the component becomes active. (To be precise, this mechanism of stopping and starting queues is encapsulated in the power framework helper library used by the driver). Thus, the driver is able to ensure that when the component queue is in a dispatching state, not only is the device in D0 but the component corresponding to that queue is also active. Thus it is safe to access the component hardware when the component queue's dispatch routine is invoked.
-Implementation notes
---------------------
+## Implementation notes
+
+The driver uses the power framework helper library to manage most of its interactions with the power framework. In order to achieve this, during device initialization, the driver performs the following tasks in its [*EvtDriverDeviceAdd*](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/wdfdriver/nc-wdfdriver-evt_wdf_driver_device_add) callback.
+
+- Enables the helper library to register its own KMDF callbacks for PNP and power-management of the device.
-The driver uses the power framework helper library to manage most of its interactions with the power framework. In order to achieve this, during device initialization, the driver performs the following tasks in its [*EvtDriverDeviceAdd*](http://msdn.microsoft.com/en-us/library/windows/hardware/ff541693) callback.
+- Provides the helper library with power-framework-related information about the device.
-- Enables the helper library to register its own KMDF callbacks for PNP and power-management of the device.
-- Provides the helper library with power-framework-related information about the device.
-- Provides the helper library with information about the component queues.
+- Provides the helper library with information about the component queues.
During I/O request processing, the driver uses routines provided by helper library to forward requests to component queues and also to complete requests.
The main tasks performed by the power framework helper library on behalf of the driver are:
-- Registration and unregistration with the power framework.
-- Stopping component queues when the corresponding components become idle and starting them when the corresponding components become active.
-- Notifying the power framework when the device returns to its working state (D0) in response to the system returning from a low-power state to the working state (S0).
+- Registration and unregistration with the power framework.
+
+- Stopping component queues when the corresponding components become idle and starting them when the corresponding components become active.
+
+- Notifying the power framework when the device returns to its working state (D0) in response to the system returning from a low-power state to the working state (S0).
The power framework helper library does not have any hardware-specific information, so any tasks that are specific to the device's hardware are performed by the driver. In this sample, the device hardware is represented by a very simple simulation. The notable hardware-specific tasks in this sample are:
-- Accessing component hardware to process I/O requests.
-- Accessing component hardware to change the component's F-state.
+- Accessing component hardware to process I/O requests.
+
+- Accessing component hardware to change the component's F-state.
As mentioned earlier, the hardware access shown is this sample is entirely simulated in software. This sample does not work with a real device, it installs on a root-enumerated software device.
-S0-idle power management support
---------------------------------
+## S0-idle power management support
The power framework helper library implements support for S0-idle power management for the device. Note that this is different from the component power management support that is enabled by the power framework. Component power management enables individual components of the device to be power-managed by putting them in different F-states while the device is in a working state (D0). S0-idle power management for the device enables the device as a whole to be power-managed by putting it into different D-states while the system is in a working state (S0).
The code to implement S0-idle power management support for the device is conditionally compiled based on the value of the PFH\_S0IDLE\_SUPPORTED compiler switch. If the switch is set to a nonzero value, the code to implement S0-idle power management support is included. If set to zero, the code is omitted thereby resulting in a smaller binary size. Thus, a driver that requires S0-idle power management for the device can use the power framework helper library's support for it but a driver that does not require it can reduce its binary size by omitting the code that is specific to S0-idle power management.
-Additional Information
-----------------------
+## Additional Information
-For detailed information about implementing F-state-based power management for a multiple component device, see [Supporting Multiple Functional Power States for Multiple-Component Devices](http://msdn.microsoft.com/en-us/library/windows/hardware/hh451028).
+For detailed information about implementing F-state-based power management for a multiple component device, see [Supporting Multiple Functional Power States for Multiple-Component Devices](https://docs.microsoft.com/windows-hardware/drivers/wdf/supporting-multiple-functional-power-states-for-multiple-component-devices).
diff --git a/pos/drivers/MagneticStripeReader/README.md b/pos/drivers/MagneticStripeReader/README.md
index 2eda5959..60f797f5 100644
--- a/pos/drivers/MagneticStripeReader/README.md
+++ b/pos/drivers/MagneticStripeReader/README.md
@@ -8,16 +8,6 @@ products:
- windows-wdk
---
-
-<!---
- name: Magnetic Stripe Reader Driver Sample
- platform: UMDF2
- language: cpp
- category: POS
- description: This UMDF version 2 sample serves as a template for creating a new Magnetic Stripe Reader driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=620202
---->
-
# Magnetic Stripe Reader Driver Sample
This sample serves as a template for creating a new Magnetic Stripe Reader driver.
diff --git a/pos/drivers/barcodescanner/README.md b/pos/drivers/barcodescanner/README.md
index d7826850..c482a959 100644
--- a/pos/drivers/barcodescanner/README.md
+++ b/pos/drivers/barcodescanner/README.md
@@ -8,16 +8,6 @@ products:
- windows-wdk
---
-
-<!---
- name: Barcode Scanner Driver Sample
- platform: UMDF2
- language: cpp
- category: POS
- description: This UDMF version 2 sample serves as a template for creating a new Barcode Scanner driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=620201
---->
-
# Barcode Scanner Driver Sample
This sample serves as a template for creating a new Barcode Scanner driver.
diff --git a/print/OEM Printer Customization Plug-in Samples/README.md b/print/OEM Printer Customization Plug-in Samples/README.md
index 4d50703d..9c3beff5 100644
--- a/print/OEM Printer Customization Plug-in Samples/README.md
+++ b/print/OEM Printer Customization Plug-in Samples/README.md
@@ -10,15 +10,15 @@ products:
# OEM Printer Customization Plug-in Samples
-The OEMDLL samples are an illustration of OEM customization plug-ins. The BITMAP, OEMPS, OEMUI, OEMUNI, OEMPREAN, CUSTHLP, SyncSet, ThemeUI, PSUIRep, and Watermark samples do not affect the printer output. They are only examples of how to build OEM Customization DLLs of various types.
+The OEMDLL samples are an illustration of OEM customization plug-ins. The BITMAP, OEMPS, OEMUI, OEMUNI, OEMPREAN, CUSTHLP, SyncSet, ThemeUI, PSUIRep, and Watermark samples do not affect the printer output. They are only examples of how to build OEM Customization DLLs of various types.
The following samples are included as part of this sample set:
| Sample | Description |
-|--------|-------------|
-| BITMAP | a Unidrv-based bitmap rendering plug-in. This sample demonstrates how to write a Unidrv-based rendering plug-in that functions as a bitmap driver. The sample is based on the redesigned version of the OEMUNI sample. |
-| CUSTHLP | An OEM help-customization plug-in. This sample demonstrates adding OEM help to your customization plug-in and how to replace standard Microsoft supplied help with customized help. |
-| OEMPREAN | illustrates how you can leverage the pre-analysis feature in Unidrv. This sample is built on the redesigned version of the OEMUNI sample. |
+| --- | --- |
+| BITMAP | A Unidrv-based bitmap rendering plug-in. This sample demonstrates how to write a Unidrv-based rendering plug-in that functions as a bitmap driver. The sample is based on the redesigned version of the OEMUNI sample. |
+| CUSTHLP | An OEM help-customization plug-in. This sample demonstrates adding OEM help to your customization plug-in and how to replace standard Microsoft supplied help with customized help. |
+| OEMPREAN | Illustrates how you can leverage the pre-analysis feature in Unidrv. This sample is built on the redesigned version of the OEMUNI sample. |
| OEMPS | A PostScript rendering plug-in. This sample demonstrates how to write a PostScript-based rendering plug-in. |
| OEMUI | A user interface plug-in (both PostScript and Unidrv flavors are available). The OEMUI sample demonstrates common UI tasks such as adding additional elements to the UI (that is, items and pages). |
| OEMUNI | A user interface plug-in (both PostScript and Unidrv flavors are available). The OEMUI sample demonstrates common UI tasks such as adding additional elements to the UI (that is, items and pages). |
@@ -30,13 +30,15 @@ The following samples are included as part of this sample set:
| WATERMARK | Demonstrates how to produce customizable watermark page simulation by controlling PostScript injected in the printing stream. The components of the sample include a PostScript-based rendering module in conjunction with a UI module. The rendering module is responsible for the injection of the modified PostScript into the printing stream. This sample demonstrates the required COM interfaces, required functions with sample code and how to use the OEM's private DEVMODE section to communicate between the UI and rendering modules. |
| WATERMARKUNI | Demonstrates how to produce customizable watermark page simulation by controlling PCL data injected in the printing stream. The components of the sample include a UNIDRV-based rendering module in conjunction with a UI module. The rendering module is responsible for the injection of the PCL data into the printing stream. This sample demonstrates the required COM interfaces, required functions with sample code and how to use the OEM's private DEVMODE section to communicate between the UI and rendering modules. This sample works only if you have a page printer that has its own fonts. It doesn't download any fonts nor convert fonts to bitmap. |
-For information about how to develop a plug-in for customizing the print driver UI, see [COM Interfaces for UI Plug-Ins](https://docs.microsoft.com/en-us/windows-hardware/drivers/print/com-interfaces-for-ui-plug-ins).
+For information about how to develop a plug-in for customizing the print driver UI, see [COM Interfaces for UI Plug-Ins](https://docs.microsoft.com/windows-hardware/drivers/print/com-interfaces-for-ui-plug-ins).
-**Note** The OEMDLL samples are for the v3 print driver model only.
+> [!NOTE]
+> The OEMDLL samples are for the v3 print driver model only.
-**Note** To build this sample, you can use Microsoft Visual Studio 2017 (Community, Professional, or Enterprise) and Windows Driver Kit (WDK) 10. You can get Visual Studio 2017 [here](https://www.visualstudio.com) and WDK 10 [here](https://developer.microsoft.com/en-us/windows/hardware/download-kits-windows-hardware-development).
+To build this sample, you can use Microsoft Visual Studio 2017 (Community, Professional, or Enterprise) and Windows Driver Kit (WDK) 10. You can get Visual Studio 2017 [here](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=15) and WDK 10 [here](https://docs.microsoft.com/windows-hardware/drivers/download-the-wdk).
You can also build this sample with Visual Studio 2013 (Professional or Ultimate) and Windows Driver Kit (WDK) 8.1.
+
For Windows Driver Kit (WDK) 8 samples, download the WDK 8 samples pack. The samples in the WDK 8 samples pack will build only with Microsoft Visual Studio Professional 2012 (Professional or Ultimate) and WDK 8.
## Operating system requirements
@@ -49,23 +51,38 @@ Server - Windows Server 2008 R2 or later
To build a driver solution using Windows 10 driver kit (Windows Driver Kit (WDK)) 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**, 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 the Package project and select **Properties**
+
1. In the left pane, click **Configuration Properties** > **Driver Install** > **Package Files**.
+
1. In the right pane, use the ellipsis button (...) to browse to the set of files that needs to be added to the driver package. All the data files that you added in **Step 2-c**, 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. 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 that matches the .INF name like this: CatalogFile=XpsDrvSmpl.cat
+
+ 1. In the Version section, add a reference to a catalog file that matches the .INF name 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/).
-For more information about how to build a driver solution using Microsoft Visual Studio, see [Building a Driver](https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/building-a-driver).
+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/).
+
+For more information about 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).
## Run the sample
@@ -79,15 +96,20 @@ After building the samples, you can install them by using the Add Printer Wizard
This sample includes the following features:
-- The supported ColorMode options in the bitmap driver's GPD are monochrome, 4bpp, 8bpp, and 24bpp.
-- The bitmap driver implements the IPrintOemUni::ImageProcessing callback to access bitmap data one band at a time. The driver's implementation of ImageProcessing buffers the band data every time it is called. The function is also responsible for filling the BITMAPINFOHEADER and COLORTABLE structures that are necessary for dumping the data out to a bitmap file.
-- The bitmap driver implements the OEMEndDoc DDI hook to dump the buffered bitmap data to the spooler at the end of the print job. The driver's implementation of OEMEndDoc dumps the headers first and then the buffered data.
-- The GrowBuffer helper function is called every time the buffer needs to be enlarged to hold the bitmap data.
+- The supported ColorMode options in the bitmap driver's GPD are monochrome, 4bpp, 8bpp, and 24bpp.
+
+- The bitmap driver implements the IPrintOemUni::ImageProcessing callback to access bitmap data one band at a time. The driver's implementation of ImageProcessing buffers the band data every time it is called. The function is also responsible for filling the BITMAPINFOHEADER and COLORTABLE structures that are necessary for dumping the data out to a bitmap file.
+
+- The bitmap driver implements the OEMEndDoc DDI hook to dump the buffered bitmap data to the spooler at the end of the print job. The driver's implementation of OEMEndDoc dumps the headers first and then the buffered data.
+
+- The GrowBuffer helper function is called every time the buffer needs to be enlarged to hold the bitmap data.
+
- The bitmap driver renders multi-page documents into a single large output bitmap file.
This sample has the following limitations:
-- The plug-in does not support landscape orientation although the option exists in the GPD.
+- The plug-in does not support landscape orientation although the option exists in the GPD.
+
- In 24bpp mode, documents larger than three pages will produce an extremely large bitmap (.bmp) file. Although the output is correct, you might not be able to view it because of memory limitations in the bitmap viewer.
### OEMPREAN
@@ -96,21 +118,23 @@ When preanalysis is enabled in the GPD (for more details about preanalysis, see
In order for plugins to also take part in preanalysis, they can enable OEM preanalysis by specifying the `"*PreAnalysisOptions: 8"` parameter in the GPD. The OEM rendering plug-in must hook both `DrvStartBanding` and `DrvNextBand` when this mode is enabled in the GPD. The OEM rendering plug-in must test the `pptl` parameter of the `OEMStartBanding` call to determine whether preanalysis has been enabled on this page. If the `pptl` parameter is `NULL`, preanalysis has been enabled, and the OEM rendering plug-in should consider all drawing calls up to the first call to `OEMNextBand` to be part of preanalysis.
-During these preanalysis phase drawing calls, the plug-in should not draw on the surface. The plug-in should also not call back into unidrv. You should use this phase only for analysis of the objects on the page. For example, certain printers need to handle black objects that intersect with color objects differently from black objects that appear by themselves. Other printers might need to halftone `StretchBlt` objects differently from `BitBlt` objects.
-You should be aware that after preanalysis, you might get more calls than you saw in the normal rendering, because primitives that cross band boundaries yield two or more DDI calls after the preanalysis pass.
+During these preanalysis phase drawing calls, the plug-in should not draw on the surface. The plug-in should also not call back into unidrv. You should use this phase only for analysis of the objects on the page. For example, certain printers need to handle black objects that intersect with color objects differently from black objects that appear by themselves. Other printers might need to halftone `StretchBlt` objects differently from `BitBlt` objects.
+You should be aware that after preanalysis, you might get more calls than you saw in the normal rendering, because primitives that cross band boundaries yield two or more DDI calls after the preanalysis pass.
The sample uses the `bPreAnalysis` flag in the OEMPDEV structure to denote whether a particular pass is the preanalysis pass or the actual rendering pass. If the `bPreAnalysis` flag is set, it indicates that the current pass is the preanalysis pass. The sample implements all of the drawing function hooks in Ddihook.cpp. The sample uses the `OEMStartBanding` and `OEMNextBand` functions to respectively set and reset the `bPreAnalysis` flag. The sample also uses the `DBG_CLIPOBJ` debug macro function to dump the bounds of the clipping rectangle available for preanalysis in each of the drawing functions during the preanalysis pass. To view all of the debug output in the debugger, you must set the debug level to VERBOSE. The rest of the sample is identical to the Oemuni sample that illustrates a basic OEM rendering plug-in.
-**Note** that the surface used during preanalysis might differ from the surface passed in during the rendering pass.
+> [!NOTE]
+> The surface used during preanalysis might differ from the surface passed in during the rendering pass.
### PTPCPIPR
-This sample is an educational example that illustrates the basic functionality that a Unidrv plug-in for the `IPrintOemPrintTicketProvider` interface should implement.
-The primary functionality of the plug-in is to support the PhotoPrintingIntent PrintSchema keyword. The PhotoPrintingIntent keyword is designed to provide a mechanism for photo printers to support enhancements that are specific to photo printing. An application or the user (through the print UI) can then specify whether a particular print job is a photo-printing job, in which case the device can apply appropriate enhancements.
-The intent setting is communicated to the device driver in a PrintTicket. The actual enhancements made are device-specific, and as such, the driver has to map the high-level intent setting into specific output settings, like resolution or bpp. This plug-in sample demonstrates the conversion.
+This sample is an educational example that illustrates the basic functionality that a Unidrv plug-in for the `IPrintOemPrintTicketProvider` interface should implement.
+The primary functionality of the plug-in is to support the PhotoPrintingIntent PrintSchema keyword. The PhotoPrintingIntent keyword is designed to provide a mechanism for photo printers to support enhancements that are specific to photo printing. An application or the user (through the print UI) can then specify whether a particular print job is a photo-printing job, in which case the device can apply appropriate enhancements.
+The intent setting is communicated to the device driver in a PrintTicket. The actual enhancements made are device-specific, and as such, the driver has to map the high-level intent setting into specific output settings, like resolution or bpp. This plug-in sample demonstrates the conversion.
The plug-in implements the `ExpandIntentOptions` method of the `IPrintOemPrintTicketProvider` interface. This method is called with an input print-ticket. The plug-in checks if the print-ticket contains a photo-printing intent setting, and if so, removes the setting, while instead adding to the print-ticket output settings as mentioned above. The code sample uses MSXML6 for all PrintTicket XML handling.
### UINUIREP
This sample shows how a plug-in for a Unidrv-based driver can replace the default UI. It provides new property sheets for the printer property and printing preferences pages.
Use this sample as an example of implementing full UI replacement in a Unidrv-based plugin. It also demonstrates the use of the new `IPrintCoreHelper` interface.
-This sample is only provided for educational purposes and should not be used in a production environment. \ No newline at end of file
+
+This sample is only provided for educational purposes and should not be used in a production environment.
diff --git a/print/SampleOpenXPS/README.md b/print/SampleOpenXPS/README.md
index 312d5226..98269683 100644
--- a/print/SampleOpenXPS/README.md
+++ b/print/SampleOpenXPS/README.md
@@ -8,19 +8,8 @@ products:
- windows-wdk
---
-
-
-<!---
- name: OpenXPS Documents Print Sample
- platform: Application
- language: cpp
- category: Print
- description: Contains a set of documents that exercise a variety of features of OpenXPS.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617941
---->
-
# OpenXPS Documents Print Sample
This sample contains a set of documents that were generated from a variety of sources, including those generated from the Windows Presentation Foundation in the .NET Framework, from Office 2007, and from the Microsoft XPS Document Writer (MXDW). A few of the documents were either hand-built from scratch or hand-modified from another source. They have been included to provide you with a few documents that exercise a variety of features of the XML Paper Specification.
-In addition, a few high-quality documents have been provided in the Showcase directory to highlight some of the XPS advantages in terms of screen-to-print fidelity. We've also created some documents that are intended to fail, by violating at least one conformance rule. These are in the ConformanceViolations directory. For information about OpenXPS in Windows, see [Improvements in XPSDrv](http://msdn.microsoft.com/en-us/library/windows/hardware/jj218730(v=vs.85).aspx) and [OpenXPS Support in Windows](http://msdn.microsoft.com/en-us/library/windows/hardware/br259130.aspx).
+In addition, a few high-quality documents have been provided in the Showcase directory to highlight some of the XPS advantages in terms of screen-to-print fidelity. We've also created some documents that are intended to fail, by violating at least one conformance rule. These are in the ConformanceViolations directory. For information about OpenXPS in Windows, see [Improvements in XPSDrv](https://docs.microsoft.com/windows-hardware/drivers/print/improvements-in-xpsdrv) and [Driver Support for OpenXPS](https://docs.microsoft.com/windows-hardware/drivers/print/driver-support-for-openxps).
diff --git a/print/SampleXPS/README.md b/print/SampleXPS/README.md
index 921a5548..795694d2 100644
--- a/print/SampleXPS/README.md
+++ b/print/SampleXPS/README.md
@@ -8,19 +8,8 @@ products:
- windows-wdk
---
-
-
-<!---
- name: XPS Documents Print Sample
- platform: Application
- language: cpp
- category: Print
- description: Contains a set of documents that exercise a variety of features of the XML Paper Specification.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617942
---->
-
# XPS Documents Print Sample
This sample is a set of documents that were generated from a variety of sources, including those generated from the Windows Presentation Foundation in the .NET Framework, from Office 2007, and from the Microsoft XPS Document Writer (MXDW). The set of documents also includes documents that were either hand-built from scratch or hand-modified from another source. They have been included to provide you with a few documents that exercise a variety of features of the XML Paper Specification.
-In addition, a few high-quality documents have been provided in the Showcase directory to highlight some of the XPS advantages in terms of screen-to-print fidelity. There are also some documents that are intended to fail by violating at least one conformance rule. These are in the ConformanceViolations directory. For information about XPS in Windows, see [XPS Printing Features](http://msdn.microsoft.com/en-us/library/windows/hardware/ff564299(v=vs.85).aspx).
+In addition, a few high-quality documents have been provided in the Showcase directory to highlight some of the XPS advantages in terms of screen-to-print fidelity. There are also some documents that are intended to fail by violating at least one conformance rule. These are in the ConformanceViolations directory. For information about XPS in Windows, see [XPS Printing Features](https://docs.microsoft.com/windows-hardware/drivers/print/xps-printing-features).
diff --git a/print/SimplePipelineFilter/README.md b/print/SimplePipelineFilter/README.md
index 3ac67cea..b3a1567c 100644
--- a/print/SimplePipelineFilter/README.md
+++ b/print/SimplePipelineFilter/README.md
@@ -8,21 +8,12 @@ products:
- windows-wdk
---
-
-
-<!---
- name: Print Pipeline Simple Filter
- platform: DLL
- language: cpp
- category: Print
- description: This sample shows how to use the print pipeline's filter interfaces.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617944
---->
-
# Print Pipeline Simple Filter
The printing system supports a print filter pipeline. The pipeline is run when a print job is consumed by the print spooler and sent to the device.
This sample shows how to use the print pipeline's filter interfaces.
-The filters in the print pipeline consume a certain data type and produce a certain data type. This information is specified in the pipeline configuration file on a per printer driver basis. The WDK print filter sample contains two filter samples: one that consumes and produces XPS data type, and the other one consumes and produces opaque byte stream. For more information, see the [XpsDrv](http://msdn.microsoft.com/en-us/windows/hardware/gg463364) whitepaper.
+The filters in the print pipeline consume a certain data type and produce a certain data type. This information is specified in the pipeline configuration file on a per printer driver basis.
+
+The WDK print filter sample contains two filter samples: one that consumes and produces XPS data type, and the other one consumes and produces opaque byte stream. For more information, see [XPS Printer Driver (XPSDrv)](https://docs.microsoft.com/windows-hardware/drivers/print/xpsdrv-printer-driver).
diff --git a/print/XPSDrvSmpl/README.md b/print/XPSDrvSmpl/README.md
index 3b609f11..11278035 100644
--- a/print/XPSDrvSmpl/README.md
+++ b/print/XPSDrvSmpl/README.md
@@ -16,7 +16,7 @@ Windows includes a print architecture and a document format known as XPS (XML Pa
This sample is intended to provide a starting point for developing XPSDrv printer drivers and to illustrate the facility and potential of an XPSDrv print driver. This goal is accomplished by implementing a number of real-world features within a set of XPS print pipeline filters that are configured through a configuration plug-in that supports custom UI content and PrintTicket handling.
-The sample broadly consists of three components: a set of filters, a configuration plug-in for handling custom UI content, and a configuration plug-in for handling more advanced PrintTicket features. For more information, see [XPS Printing Features](https://docs.microsoft.com/en-us/windows-hardware/drivers/print/xps-printing-features).
+The sample broadly consists of three components: a set of filters, a configuration plug-in for handling custom UI content, and a configuration plug-in for handling more advanced PrintTicket features. For more information, see [XPS Printing Features](https://docs.microsoft.com/windows-hardware/drivers/print/xps-printing-features).
## Build the sample
@@ -80,11 +80,11 @@ This sample can be used as a basis for implementing a driver based on the new XP
The Page Scaling filter is written by using the stream interface to attempt to demonstrate how to use the stream interface. It thus depends on a ZIP library to handle the PK archive structure. The sample does not include the code for the PK archive handling.
-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](http://www.pkware.com/software/developer-tools/sdk/pkzip-standard-toolkit). 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:
+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/en-us/previous-versions/windows/desktop/opc/packaging-programming-reference)
+- 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).
@@ -239,4 +239,4 @@ When a property page receives a message for a control, it looks up the relevant
The sample Print Ticket Provider plug-in is intended to demonstrate how to validate and map driver settings from a DevMode description to a Print Ticket description and back again. The driver allows configuration of custom settings through a custom user interface. These custom settings are represented as either GPD options or in the OEM private DevMode and are mapped to and from the Print Ticket using an XML schema.
-To support Print Ticket handling, the Unidrv UI Plug-in Print Ticket Provider Interface is utilized. The Unidrv UI Plug-in interface includes methods that allow mapping of DevMode to and from a Print Ticket Schema. A collection of feature conversion objects are stored at the plug-in interface level, each of which is responsible for the conversion of a specific feature (Color, Watermark, Booklet, Scaling, and NUp). Whenever the Unidrv core calls through the external interface of the plug-in to convert from DevMode to Print Ticket or Print Ticket to DevMode, the collection is iterated through calling each conversion object in turn; each then perform its own DevMode/Print Ticket mapping via the appropriate get and set functions. The sample get and set functions provide an interface to read and write the GPD options, OEM private DevMode, and Print Ticket keyword value pairs. \ No newline at end of file
+To support Print Ticket handling, the Unidrv UI Plug-in Print Ticket Provider Interface is utilized. The Unidrv UI Plug-in interface includes methods that allow mapping of DevMode to and from a Print Ticket Schema. A collection of feature conversion objects are stored at the plug-in interface level, each of which is responsible for the conversion of a specific feature (Color, Watermark, Booklet, Scaling, and NUp). Whenever the Unidrv core calls through the external interface of the plug-in to convert from DevMode to Print Ticket or Print Ticket to DevMode, the collection is iterated through calling each conversion object in turn; each then perform its own DevMode/Print Ticket mapping via the appropriate get and set functions. The sample get and set functions provide an interface to read and write the GPD options, OEM private DevMode, and Print Ticket keyword value pairs.
diff --git a/print/XpsRasFilter/README.md b/print/XpsRasFilter/README.md
index 75291fff..55f637df 100644
--- a/print/XpsRasFilter/README.md
+++ b/print/XpsRasFilter/README.md
@@ -8,38 +8,36 @@ products:
- windows-wdk
---
-
-
-<!---
- name: XPS Rasterization Filter Service Sample
- platform: DLL
- language: cpp
- category: Print
- description: Implements an XPSDrv filter that rasterizes fixed pages in an XPS document.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617951
---->
-
# XPS Rasterization Filter Service Sample
This sample implements an XPSDrv filter that rasterizes fixed pages in an XPS document. Hardware vendors can modify this sample to build an XPSDrv filter that produces bitmap images for their printers or other display devices. The sample uses the XPS Rasterization Service that creates rasterizer objects for use by XPSDrv filters. A rasterizer object takes an XPS Object Model (XPS OM) page object and creates a bitmap of a specified region of the page. The sample implements an XPSDrv filter (xpsrasfilter.dll) that can be inserted into the XPS Filter Pipeline. For each fixed page in an XPS document, the sample filter does the following:
- Uses the XPS rasterization service to create a rasterizer object for the fixed page.
+
- Partitions the fixed page into several horizontal bands.
+
- Uses the rasterizer object to render each horizontal band as a bitmap image.
-The Print Filter Pipeline is part of the XPS Print Path [Windows Print Path Overview](https://docs.microsoft.com/windows-hardware/drivers/print/windows-print-path-overview). Fixed pages are sent as an XPS data stream from the XPS Spooler to the print filter pipeline. The print filter pipeline manager takes the XPS fixed page, calls each filter in the order defined in the pipeline configuration file, and then sends either Fixed Page OM objects or a data stream to each filter as required. The filters process the data and return either Fixed Page OM objects or a data stream back to the print filter pipeline manager. (See MSDN entry for Filter Pipeline Interfaces items IXpsDocumentProvider, IXpsDocumentConsumer, IPrintWriteStream, and IPrintReadStream.)
+The Print Filter Pipeline is part of the XPS Print Path [Windows Print Path Overview](https://docs.microsoft.com/windows-hardware/drivers/print/windows-print-path-overview). Fixed pages are sent as an XPS data stream from the XPS Spooler to the print filter pipeline. The print filter pipeline manager takes the XPS fixed page, calls each filter in the order defined in the pipeline configuration file, and then sends either Fixed Page OM objects or a data stream to each filter as required. The filters process the data and return either Fixed Page OM objects or a data stream back to the print filter pipeline manager.
+
+For more information, see [IXpsDocumentProvider](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/filterpipeline/nn-filterpipeline-ixpsdocumentprovider), [IXpsDocumentConsumer](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/filterpipeline/nn-filterpipeline-ixpsdocumentconsumer), [IPrintWriteStream](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/filterpipeline/nn-filterpipeline-iprintwritestream), and [IPrintReadStream](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/filterpipeline/nn-filterpipeline-iprintreadstream).
As a print filter pipeline service, the XPS Rasterization Service can be loaded into the filter pipeline when the pipeline is initialized by adding a filter service provider tag to the configuration XML file (for example, \<FilterServiceProvider dll="XpsRasterService.dll"/\>). The service is then available to be called by the filters when they are initialized and called by the print filter pipeline manager.
The XPS Rasterization Service operates as follows:
- The calling filter initializes an instance of the rasterizer by passing in the XPS OM for the fixed page.
+
- The calling filter calls the RasterizeRect method of the rasterizer to render a specified rectangle area of the fixed page.
+
- RasterizeRect writes the WIC (Windows Imaging Component) bitmap data to memory. (The address is specified as a parameter to RasterizeRect.)
The default parameters in this sample are as follows:
- Letter-sized physical page (can override in print ticket).
+
- 0.25-inch margins (creating an 8-inch by 10.5-inch imageable area).
+
- Scaling is set to FitApplicationBleedSizeToImageableSize.
-- Destination resolution set to 96 dpi (can override in print ticket). \ No newline at end of file
+
+- Destination resolution set to 96 dpi (can override in print ticket).
diff --git a/print/autoconfig/README.md b/print/autoconfig/README.md
index dc067394..a4311618 100644
--- a/print/autoconfig/README.md
+++ b/print/autoconfig/README.md
@@ -8,17 +8,6 @@ products:
- windows-wdk
---
-
-
-<!---
- name: Print auto-configuration sample
- platform: Utility
- language: cpp
- category: Print
- description: Demonstrates how to implement auto-configuration in v4 print drivers.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617938
---->
-
# Print auto-configuration sample
This sample demonstrates how to implement auto-configuration in v4 print drivers.
@@ -27,30 +16,31 @@ This sample demonstrates how to implement auto-configuration in v4 print drivers
Many printers ship with optional components which are not present in all versions of the printer. For these printers, it's important that the driver only shows options which are enabled by the currently installed hardware. For example, if a stapling unit is optional for a particular printer, then the driver shouldn't expose the stapling feature to the end user if that unit is not installed.
-Windows auto-configuration allows a print driver to specify a mapping between driver installable options and the state of the printer as expressed through the Bidi Schema.
+Windows auto-configuration allows a print driver to specify a mapping between driver installable options and the state of the printer as expressed through the Bidi Schema.
-For more information on auto-configuration, see [Printer Autoconfiguration](http://msdn.microsoft.com/en-us/library/windows/hardware/ff560774(v=vs.85).aspx).
+For more information on auto-configuration, see [Printer Autoconfiguration](https://docs.microsoft.com/windows-hardware/drivers/print/printer-autoconfiguration).
-For more information on the Bidi Schema, see [Bidirectional Communication Schema](https://msdn.microsoft.com/en-us/library/windows/hardware/ff545169(v=vs.85).aspx).
+For more information on the Bidi Schema, see [Bidirectional Communication Schema](https://docs.microsoft.com/windows-hardware/drivers/print/bidirectional-communication-schema).
## Build the sample
The auto-configuration sample doesn't have any binaries to be built. It may be installed by using **Add Printer Wizard** and supplying the AutoCnfg.INF as the INF file.
-But to build a signed driver package using Windows Driver Kit (WDK) 10 and Visual Studio 2015, for the project file (csproj) that ships with the auto-configuration sample, perform the following steps.
+Too build a signed driver package using Windows Driver Kit (WDK) 10 and Visual Studio 2015, for the project file (csproj) that ships with the auto-configuration sample, perform the following steps.
1. Open the solution file in Visual Studio 2015.
-2. On the **Build** menu, select **Configuration Manager...**.
+1. On the **Build** menu, select **Configuration Manager...**.
-3. In **Configuration Manager**, select the **Configuration** and **Platform** that you want to build your driver for.
+1. In **Configuration Manager**, select the **Configuration** and **Platform** that you want to build your driver for.
-**Note** When the driver builds, it will be placed in the output folder for the architecture you selected.
+> [!NOTE]
+> When the driver builds, it will be placed in the output folder for the architecture you selected.
-At this point, Visual Studio 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](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554651(v=vs.85).aspx).
+At this point, Visual Studio 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/).
-For more information about 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 more information about 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).
## Run the sample
-To run the auto-configuration sample, you must install this driver to support a printer which is installed against either a WSD port, or TCP/IP port. Additionally, USB printers may be supported if the driver is updated to incorporate USB Bidi Javascript, as described here: [Print Driver USB Monitor and Bidi Sample](https://github.com/Microsoft/Windows-driver-samples/tree/master/print/v4PrintDriverSamples/v4PrintDriver-USBMon-Bidi-Extension).
+To run the auto-configuration sample, you must install this driver to support a printer which is installed against either a WSD port, or TCP/IP port. Additionally, USB printers may be supported if the driver is updated to incorporate USB Bidi Javascript, as described here: [Print Driver USB Monitor and Bidi Sample](https://docs.microsoft.com/samples/microsoft/windows-driver-samples/print-driver-usb-monitor-and-bidi-sample/).
diff --git a/print/cpsuisam/README.md b/print/cpsuisam/README.md
index 232b0fc6..f43a5020 100644
--- a/print/cpsuisam/README.md
+++ b/print/cpsuisam/README.md
@@ -8,17 +8,6 @@ products:
- windows-wdk
---
-
-
-<!---
- name: Common Property Sheet User Interface (CPSUI) Sample
- platform: Application
- language: cpp
- category: Print
- description: The CPSUISAM application causes the CPSUI to call the print spooler to create property sheet pages for the default printer.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617940
---->
-
# Common Property Sheet UI Sample
The CPSUISAM application causes the Common Property Sheet User Interface (CPSUI) to call the Windows print spooler to create property sheet pages for the system's default printer.
@@ -29,4 +18,4 @@ The application then creates an additional property sheet page to illustrate som
CPSUI is a user-mode DLL that enables you to create property sheet pages that have a standard appearance.
-CPSUIAM causes CPSUI to call the Windows print spooler to create property sheet pages for the system's default printer. The application then creates an additional property sheet page to illustrate some of the techniques that you can use when you are using CPSUI to create a new page. For more information, see [Common Property Sheet User Interface](http://msdn.microsoft.com/en-us/library/windows/hardware/ff546163(v=vs.85).aspx).
+CPSUIAM causes CPSUI to call the Windows print spooler to create property sheet pages for the system's default printer. The application then creates an additional property sheet page to illustrate some of the techniques that you can use when you are using CPSUI to create a new page. For more information, see [Common Property Sheet User Interface](https://docs.microsoft.com/windows-hardware/drivers/print/common-property-sheet-user-interface).
diff --git a/print/v4PrintDriverSamples/PrinterExtensionSample/README.md b/print/v4PrintDriverSamples/PrinterExtensionSample/README.md
index 5f9dfc36..043811a4 100644
--- a/print/v4PrintDriverSamples/PrinterExtensionSample/README.md
+++ b/print/v4PrintDriverSamples/PrinterExtensionSample/README.md
@@ -8,25 +8,15 @@ products:
- windows-wdk
---
-
-
-<!---
- name: Printer Extension Sample
- platform: Application
- language: cs
- category: Print
- description: Demonstrates how to use .NET to build a customized, desktop UI for a v4 print driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617945
---->
-
# Printer Extension Sample
This sample demonstrates how to use .NET to build a customized, desktop UI for a v4 print driver. This .NET app uses PrintTicket, PrintCapabilities and Bidi in order to communicate with the print system and is suitable for inclusion in a v4 print driver.
-**Note** This sample is for the v4 print driver model.
+> [!NOTE]
+> This sample is for the v4 print driver model.
-# Related topics
+## Related topics
-[Building a Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554644)
+[Building a Driver with Visual Studio and the WDK](https://docs.microsoft.com/windows-hardware/drivers/develop/building-a-driver)
-[v4 Print Driver Interfaces and Enumerations](http://msdn.microsoft.com/en-us/library/hh464103(v=vs.85).aspx)
+[v4 Printer Driver](https://docs.microsoft.com/windows-hardware/drivers/print/v4-printer-driver)
diff --git a/print/v4PrintDriverSamples/v4PrintDriver-ConstraintScript/README.md b/print/v4PrintDriverSamples/v4PrintDriver-ConstraintScript/README.md
index bf0c4bbf..a98abd5f 100644
--- a/print/v4PrintDriverSamples/v4PrintDriver-ConstraintScript/README.md
+++ b/print/v4PrintDriverSamples/v4PrintDriver-ConstraintScript/README.md
@@ -8,34 +8,25 @@ products:
- windows-wdk
---
-
-
-<!---
- name: Print Driver Constraints Sample
- platform: Utility
- language: js
- category: Print
- description: Demonstrates how to implement advanced constraint handling and PrintTicket/PrintCapabilities handling using JavaScript.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617946
---->
-
# Print Driver Constraints Sample
This sample demonstrates how to implement advanced constraint handling, and also PrintTicket/PrintCapabilities handling using JavaScript.
The Constraints.js file in this sample demonstrates the implementation of JavaScript-based constraints to be used with a v4 print driver. The file implements the following two of the four functions used by JavaScript constraint files, as well as several helper functions:
-- **ValidatePrintTicket** takes a given [IPrintSchemaTicket](http://msdn.microsoft.com/en-us/library/hh451398(v=vs.85).aspx) object and validates it for the current printer. The function may determine that the Print Ticket was already valid, modify the Print Ticket to make it valid, or determine that the Print Ticket is invalid and could not be made valid.
-- **CompletePrintCapabilities** takes a given **IPrintSchemaTicket** object and the [IPrintSchemaCapabilities](http://msdn.microsoft.com/en-us/library/hh451256(v=vs.85).aspx) object that was produced by the configuration module and augments it as needed. This can be used to establish positive constraint situations.
+- **ValidatePrintTicket** takes a given [IPrintSchemaTicket](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/printerextension/nn-printerextension-iprintschematicket) object and validates it for the current printer. The function may determine that the Print Ticket was already valid, modify the Print Ticket to make it valid, or determine that the Print Ticket is invalid and could not be made valid.
+
+- **CompletePrintCapabilities** takes a given **IPrintSchemaTicket** object and the [IPrintSchemaCapabilities](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/printerextension/nn-printerextension-iprintschemacapabilities) object that was produced by the configuration module and augments it as needed. This can be used to establish positive constraint situations.
This sample does not demonstrate **ConvertPrintTicketToDevMode** or **ConvertDevModeToPrintTicket**, which utilize a property bag to store data in the private section of the DEVMODE structure.
-**Note** This sample is for the v4 print driver model.
+> [!NOTE]
+> This sample is for the v4 print driver model.
-# Related topics
+## Related topics
-[Building a Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554644)
+[Building a Driver with Visual Studio and the WDK](https://docs.microsoft.com/windows-hardware/drivers/develop/building-a-driver)
-[IPrintSchemaCapabilities](http://msdn.microsoft.com/en-us/library/hh451256(v=vs.85).aspx)
+[IPrintSchemaCapabilities](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/printerextension/nn-printerextension-iprintschemacapabilities)
-[IPrintSchemaTicket](http://msdn.microsoft.com/en-us/library/hh451398(v=vs.85).aspx)
+[IPrintSchemaTicket](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/printerextension/nn-printerextension-iprintschematicket)
diff --git a/print/v4PrintDriverSamples/v4PrintDriver-HostBasedSampleDriver/README.md b/print/v4PrintDriverSamples/v4PrintDriver-HostBasedSampleDriver/README.md
index 0fc9a4b0..3c7bfba2 100644
--- a/print/v4PrintDriverSamples/v4PrintDriver-HostBasedSampleDriver/README.md
+++ b/print/v4PrintDriverSamples/v4PrintDriver-HostBasedSampleDriver/README.md
@@ -9,22 +9,12 @@ products:
- windows-wdk
---
-
-
-<!---
- name: USB Host-Based Print Driver Sample
- platform: Utility
- language: js xml
- category: Print
- description: Demonstrates how to support host-based devices that use the v4 print driver model and are connected via USB.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617947
---->
-
# USB Host-Based Print Driver Sample
This driver sample demonstrates how to support host-based devices that use the v4 print driver model, and are connected via USB.
-**Note** This sample is for the v4 print driver model.
+> [!NOTE]
+> This sample is for the v4 print driver model.
Windows enables manufacturers to support Bidirectional Communication (Bidi) for USB devices, by using a combination of both a Bidi XML file and a Javascript file known as a USB Bidi extender. The *usb\_host\_based\_sample.js* file that is included with the sample, plays the role of the USB Bidi extender.
@@ -34,39 +24,44 @@ By default, Bidi queries and status requests are routed over the USB device inte
In addition to extending Bidi communication, this driver sample also specifies the schema elements that it supports. The *usb\_host\_based\_sample\_extension.xml* file that is included with the sample, provides information about the supported schema elements.
-The Bidi schema is a hierarchy of printer attributes, some of which are properties and others that are values (or value entries).
+The Bidi schema is a hierarchy of printer attributes, some of which are properties and others that are values (or value entries):
-*Property*
+- *Property*
+
+ - A property is a node in the schema hierarchy. A property can have one or more children, and these children can be other properties or values.
-- A property is a node in the schema hierarchy. A property can have one or more children, and these children can be other properties or values.
+- *Value*
-*Value*
+ - A value is a leaf in the schema hierarchy that represents either a single data item or a list of related data items. A value has a name, a data type, and a data value. A value cannot have child elements.
-- A value is a leaf in the schema hierarchy that represents either a single data item or a list of related data items. A value has a name, a data type, and a data value. A value cannot have child elements.
+For more information, see [USB Bidi Extender](https://docs.microsoft.com/windows-hardware/drivers/print/usb-bidi-extender) and [Bidi Communication Schema](https://docs.microsoft.com/windows-hardware/drivers/print/bidirectional-communication-schema).
-For more information, see [USB Bidi Extender](http://msdn.microsoft.com/en-us/library/windows/hardware/jj659903(v=vs.85).aspx) and [Bidi Communication Schema](http://msdn.microsoft.com/en-us/library/windows/hardware/ff545169(v=vs.85).aspx).
+## File manifest
Here are the core files that you will find in this sample:
-**usb\_host\_based\_sample.js**
+### usb\_host\_based\_sample.js
+
+A USB Bidi Extension JavaScript file which includes support for controlling printing for host-based devices. This is the only code in the driver sample. It is invoked by USBMon and it communicates with the device to do the following:
-- A USB Bidi Extension JavaScript file which includes support for controlling printing for host-based devices. This is the only code in the driver sample. It is invoked by USBMon and it communicates with the device to do the following:
- Determine if the device is ready to receive data
- - Check to see if there is an error condition
- - Read the device status
+
+- Check to see if there is an error condition
+
+- Read the device status
-**usb\_host\_based\_sample\_events.xml**
+### usb\_host\_based\_sample\_events.xml
-- A 'driver events' XML file that specifies an event which detects when the user needs to flip over the paper in the tray.
+A 'driver events' XML file that specifies an event which detects when the user needs to flip over the paper in the tray.
-**usb\_host\_based\_sample\_extension.xml**
+### usb\_host\_based\_sample\_extension.xml
-- A USB Bidi Extension XML file that specifies the supported Bidi Schema elements for this driver.
+A USB Bidi Extension XML file that specifies the supported Bidi Schema elements for this driver.
## Build the sample
-For information and instructions about how to test and deploy drivers, see [Developing, Testing, and Deploying Drivers](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554651(v=vs.85).aspx).
+For information and instructions about how to test and deploy drivers, see [Developing, Testing, and Deploying Drivers](https://docs.microsoft.com/windows-hardware/drivers/develop/).
## Run the sample
-To understand how to run this sample as a Windows driver, see the [v4 Printer Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/hh706306(v=vs.85).aspx) collection of topics. \ No newline at end of file
+To understand how to run this sample as a Windows driver, see the [v4 Printer Driver](https://docs.microsoft.com/windows-hardware/drivers/print/v4-printer-driver) collection of topics.
diff --git a/print/v4PrintDriverSamples/v4PrintDriver-USBMon-Bidi-Extension/README.md b/print/v4PrintDriverSamples/v4PrintDriver-USBMon-Bidi-Extension/README.md
index 1db85fb3..e68dd7a4 100644
--- a/print/v4PrintDriverSamples/v4PrintDriver-USBMon-Bidi-Extension/README.md
+++ b/print/v4PrintDriverSamples/v4PrintDriver-USBMon-Bidi-Extension/README.md
@@ -9,36 +9,28 @@ products:
- windows-wdk
---
-
-
-<!---
- name: Print Driver USB Monitor and Bidi Sample
- platform: Utility
- language: js xml
- category: Print
- description: Demonstrates how to support bidirectional (Bidi) communication over the USB bus using JavaScript and XML.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617948
---->
-
# Print Driver USB Monitor and Bidi Sample
This sample demonstrates how to support bidirectional (Bidi) communication over the USB bus, using JavaScript and XML. This sample supports bidirectional status while not printing, and unsolicited status from the printer while printing.
+## File manifest
+
The following files are included in the sample:
-**USBMON\_Bidi\_JavaScript\_File.js**
+### USBMON\_Bidi\_JavaScript\_File.js
-- This JavaScript file demonstrates the implementation of a Bidi support for USBMon with a v4 print driver. The JavaScript file supports three functions: getSchemas() is used to make Bidi GET queries to a device, setSchema() is used to make a single Bidi SET query to the device, and getStatus() is called repeatedly during printing in order to retrieve unsolicited status from the printer using the data from the read channel of the device.
+This JavaScript file demonstrates the implementation of a Bidi support for USBMon with a v4 print driver. The JavaScript file supports three functions: getSchemas() is used to make Bidi GET queries to a device, setSchema() is used to make a single Bidi SET query to the device, and getStatus() is called repeatedly during printing in order to retrieve unsolicited status from the printer using the data from the read channel of the device.
-**USBMON\_Bidi\_XML\_File.xml**
+### USBMON\_Bidi\_XML\_File.xml
-- This XML file demonstrates how to build a Bidi Schema extension for USB. It describes the supported schema elements that can be queried or set, along with their restrictions.
+This XML file demonstrates how to build a Bidi Schema extension for USB. It describes the supported schema elements that can be queried or set, along with their restrictions.
-For more information, see [USB Bidi Extender](http://msdn.microsoft.com/en-us/library/windows/hardware/jj659903(v=vs.85).aspx).
+For more information, see [USB Bidi Extender](https://docs.microsoft.com/windows-hardware/drivers/print/usb-bidi-extender).
-**Note** This sample is for the v4 print driver model.
+> [!NOTE]
+> This sample is for the v4 print driver model.
-**Note** When you make calls to printerStream.read() in the sample, the printer returns an array which includes an additional element that represents the array length. The following JavaScript code can be used to copy the returned array into a new array, and also to remove the additional element.
+When you make calls to printerStream.read() in the sample, the printer returns an array which includes an additional element that represents the array length. The following JavaScript code can be used to copy the returned array into a new array, and also to remove the additional element.
```js
var readBuffer = [];
@@ -53,4 +45,4 @@ var cleanArray = [];
for ( i = 0; i < readBytes; i++ ) {
cleanArray[i] = readBuffer.shift();
}
-``` \ No newline at end of file
+```
diff --git a/print/v4PrintDriverSamples/v4PrintDriver-WSDMon-Bidi-Extension/README.md b/print/v4PrintDriverSamples/v4PrintDriver-WSDMon-Bidi-Extension/README.md
index 66a2f90b..a7ed3f9f 100644
--- a/print/v4PrintDriverSamples/v4PrintDriver-WSDMon-Bidi-Extension/README.md
+++ b/print/v4PrintDriverSamples/v4PrintDriver-WSDMon-Bidi-Extension/README.md
@@ -8,24 +8,14 @@ products:
- windows-wdk
---
-
-
-<!---
- name: WSDMon Bidi Extension Sample
- platform: Utility
- language: xml
- category: Print
- description: Demonstrates how to use an XML extension file to support bidirectional (Bidi) communication with a WSD connected printer.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617949
---->
-
# WSDMon Bidi Extension Sample
This sample demonstrates how to use an XML extension file to support bidirectional (Bidi) communication with a WSD connected printer.
The v4 print driver model continues to employ the WSDMon Bidi Extension file format, as well as the SNMP Bidi Extension file format.
-**Note** Third-party port monitors and language monitors are not supported in the v4 driver model or with print class drivers.
+> [!NOTE]
+> Third-party port monitors and language monitors are not supported in the v4 driver model or with print class drivers.
The WSDMON port monitor is a printer port monitor that supports printing to network printers that comply with the Web Services for Devices (WSD) technology. The WSDMON port monitor listens for WSD events and updates the printer status accordingly.
@@ -59,6 +49,7 @@ WSDMON supports the following Xcv commands:
- ServiceID
-**Note** This sample is for the v4 print driver model.
+> [!NOTE]
+> This sample is for the v4 print driver model.
-For more information, see [V4 Driver Connectivity Architecture](http://msdn.microsoft.com/en-us/library/windows/hardware/) and [Bidirectional Communication Schema](http://msdn.microsoft.com/en-us/library/windows/hardware/ff545169(v=vs.85).aspx). \ No newline at end of file
+For more information, see [v4 Driver Connectivity Architecture](https://docs.microsoft.com/windows-hardware/drivers/print/v4-driver-connectivity-architecture) and [Bidirectional Communication Schema](https://docs.microsoft.com/windows-hardware/drivers/print/bidirectional-communication-schema).
diff --git a/sd/miniport/sdhc/README.md b/sd/miniport/sdhc/README.md
index 73bb691f..2872f735 100644
--- a/sd/miniport/sdhc/README.md
+++ b/sd/miniport/sdhc/README.md
@@ -8,16 +8,6 @@ products:
- windows-wdk
---
-
-<!---
- name: Standard SD Host Controller Miniport
- platform: WDM
- language: cpp
- category: Storage
- description: Provides a functional miniport implementation for a standard SD host controller.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617952
---->
-
# Standard SD Host Controller Miniport
This is a sample for a Secure Digital (SD) Host Controller miniport driver. The driver works in conjunction with sdport.sys, which implements SD/SDIO/eMMC protocol and WDM interfaces, to provide the host register interface.
@@ -26,8 +16,12 @@ This is a sample for a Secure Digital (SD) Host Controller miniport driver. The
This sample builds a Windows Universal driver. It uses only APIs and DDIs that are included in Windows Core.
-This driver, sdhc.sys, provides a functional miniport implementation for a standard SD host controller. However, it does not have support for many more recent features such as:
+This driver, sdhc.sys, provides a functional miniport implementation for a standard SD host controller.
+
+However, it does not have support for many more recent features such as:
- UHS-I speed modes.
+
- HS400
-- SD 4.0 \ No newline at end of file
+
+- SD 4.0
diff --git a/security/elam/README.md b/security/elam/README.md
index db28ffb6..e6bf44a6 100644
--- a/security/elam/README.md
+++ b/security/elam/README.md
@@ -8,19 +8,9 @@ products:
- windows-wdk
---
-
-<!---
- name: Early Launch Anti-Malware Driver
- platform: KMDF
- language: cpp
- category: Security
- description: Demonstrates how to receive notifications about the initialization of regular boot start drivers in an Early Launch Anti-Malware driver.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617954
---->
-
# Early Launch Anti-Malware Driver
-This sample demonstrates how to use the [**IoRegisterBootDriverCallback**](http://msdn.microsoft.com/en-us/library/windows/hardware/hh439379) and [**IoUnRegisterBootDriverCallback**](http://msdn.microsoft.com/en-us/library/windows/hardware/hh439394) DDIs from an Early Launch Anti-Malware driver, to receive notifications about the initialization of regular boot start drivers.
+This sample demonstrates how to use the [**IoRegisterBootDriverCallback**](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/ntddk/nf-ntddk-ioregisterbootdrivercallback) and [**IoUnRegisterBootDriverCallback**](https://docs.microsoft.com/windows-hardware/drivers/ddi/content/ntddk/nf-ntddk-iounregisterbootdrivercallback) DDIs from an Early Launch Anti-Malware driver, to receive notifications about the initialization of regular boot start drivers.
This sample driver is a minimal driver meant to demonstrate the usage of the APIs mentioned above. It is not intended for use in a production environment.
@@ -34,13 +24,13 @@ Early Launch drivers are required to be signed with a code-signing certificate t
1. Copy the signed elamsample.sys file to the %WINDIR%\\System32\\Drivers directory on your test machine.
-2. Use the sc.exe tool present in Windows to install the driver:
+1. Use the sc.exe tool present in Windows to install the driver:
+
+ `sc create ElamSample binpath=%windir%\\system32\\drivers\\elamsample.sys type=kernel start=boot error=critical group=Early-Launch`
- `sc create ElamSample binpath=%windir%\\system32\\drivers\\elamsample.sys type=kernel start=boot error=critical group=Early-Launch`
-
-3. Enable test signing:
+1. Enable test signing:
- `bcdedit /set testsigning on`
+ `bcdedit /set testsigning on`
## Code tour
@@ -124,4 +114,4 @@ ElamSample: 93 29 d5 f2 e2 7a c9 79 41 b2 6d c0 78 35 2a d3
ElamSample: da 2d 7e 72 f0 05 5f 8b 63 8c 7b a2 6b 37 5c 4f
ElamSample reports that all Boot Start drivers have been initialized and that ElamSample is about to be unloaded ElamSample is being unloaded.
-``` \ No newline at end of file
+```
diff --git a/sensors/ADXL345Acc/readme.md b/sensors/ADXL345Acc/readme.md
index 5346295e..2a1fc26b 100644
--- a/sensors/ADXL345Acc/readme.md
+++ b/sensors/ADXL345Acc/readme.md
@@ -8,15 +8,6 @@ products:
- windows-wdk
---
-<!---
- name: ADXL345 Accelerometer Sample Driver
- platform: UMDF2
- language: cpp
- category: Sensors
- description: Demonstrates how to write a UMDF v2 driver to control an ADXL345 accelerometer chip.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617957
---->
-
# ADXL345 Accelerometer Sample Driver
The ADXL345 accelerometer sample shows how to write a UMDF v2 driver to control an ADXL345 accelerometer chip.
diff --git a/sensors/Activity/readme.md b/sensors/Activity/readme.md
index 2b905f43..e56c65bf 100644
--- a/sensors/Activity/readme.md
+++ b/sensors/Activity/readme.md
@@ -8,15 +8,6 @@ products:
- windows-wdk
---
-<!---
- name: Activity Sensor Driver Sample
- platform: UMDF2
- language: cpp
- category: Sensors
- description: Demonstrates how to write a UMDF v2 driver to control an activity sensor.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617956
---->
-
# Activity Sensor Driver Sample
The activity sample shows how to write a UMDF v2 driver to control an activity sensor.
diff --git a/sensors/CustomSensors/readme.md b/sensors/CustomSensors/readme.md
index 54e8d3ee..d97083da 100644
--- a/sensors/CustomSensors/readme.md
+++ b/sensors/CustomSensors/readme.md
@@ -8,15 +8,6 @@ products:
- windows-wdk
---
-<!---
- name: Custom Sensor Driver Sample
- platform: UMDF2
- language: cpp
- category: Sensors
- description: Demonstrates how to write a UMDF v2 driver to control a custom sensor.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617958
---->
-
# Custom Sensor Driver Sample
The CustomSensor sample shows how to write a UMDF v2 driver to control a custom sensor.
diff --git a/sensors/Fusion/readme.md b/sensors/Fusion/readme.md
index 0eeaa5df..7ec75d6b 100644
--- a/sensors/Fusion/readme.md
+++ b/sensors/Fusion/readme.md
@@ -8,15 +8,6 @@ products:
- windows-wdk
---
-<!---
- name: Fusion Sensor Driver Sample
- platform: UMDF2
- language: cpp
- category: Sensors
- description: Demonstrates how to write a UMDF v2 driver to control a virtual FusionSensor sensor.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=856914
---->
-
# Fusion Sensor Driver Sample
The FusionSensor sample shows how to write a UMDF v2 driver to control a virtual FusionSensor sensor.
diff --git a/sensors/Pedometer/readme.md b/sensors/Pedometer/readme.md
index b94fac76..920a7ace 100644
--- a/sensors/Pedometer/readme.md
+++ b/sensors/Pedometer/readme.md
@@ -8,15 +8,6 @@ products:
- windows-wdk
---
-<!---
- name: Pedometer sensor sample
- platform: UMDF2
- language: cpp
- category: Sensors
- description: Demonstrates how to write a UMDF v2 driver to control a virtual pedometer sensor.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617959
---->
-
# Pedometer sensor sample
The Pedometer sample shows how to write a UMDF v2 driver to control a virtual pedometer sensor.
diff --git a/sensors/SensorsComboDriver/readme.md b/sensors/SensorsComboDriver/readme.md
index 6dca7ff1..44109a0f 100644
--- a/sensors/SensorsComboDriver/readme.md
+++ b/sensors/SensorsComboDriver/readme.md
@@ -8,15 +8,6 @@ products:
- windows-wdk
---
-<!---
- name: Sensors Combo Driver Sample
- platform: UMDF2
- language: cpp
- category: Sensors
- description: Demonstrates how to write UMDF v2 drivers to control various types of virtual sensors.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=856915
---->
-
# Sensors Combo Driver Sample
The sensors combo driver sensor sample shows how to write UMDF v2 drivers to control various types of virtual sensors such as ambient light, barometer, gyroscope, magnetometer, geomagnetic, gravity vector, proximity, linear accelerometer and relative fusion.
diff --git a/sensors/SimpleDeviceOrientationSensor/readme.md b/sensors/SimpleDeviceOrientationSensor/readme.md
index 87041c28..64b34e9d 100644
--- a/sensors/SimpleDeviceOrientationSensor/readme.md
+++ b/sensors/SimpleDeviceOrientationSensor/readme.md
@@ -8,15 +8,6 @@ products:
- windows-wdk
---
-<!---
- name: Simple device orientation sensor sample
- platform: UMDF2
- language: cpp
- category: Sensors
- description: Demonstrates how to write a UMDF v2 sensor driver to output simple device orientation values.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=617960
---->
-
# Simple Device Orientation Sensor sample
This sample shows you how to write a UMDF v2 sensor driver to output simple device orientation values.