summaryrefslogtreecommitdiff
path: root/audio/sysvad
diff options
context:
space:
mode:
Diffstat (limited to 'audio/sysvad')
-rw-r--r--audio/sysvad/README.md90
1 files changed, 40 insertions, 50 deletions
diff --git a/audio/sysvad/README.md b/audio/sysvad/README.md
index 128f40b2..77de39a3 100644
--- a/audio/sysvad/README.md
+++ b/audio/sysvad/README.md
@@ -9,15 +9,6 @@ products:
urlFragment: sysvad-virtual-audio-device-driver-sample
---
-<!---
- name: SysVAD Virtual Audio Device Driver Sample
- platform: WDM
- language: cpp
- category: Audio
- description: The Microsoft SysVAD Virtual Audio Device Driver (SYSVAD) shows how to develop a WDM audio driver that exposes support for multiple audio devices.
- samplefwlink: http://go.microsoft.com/fwlink/p/?LinkId=620183
---->
-
# SysVAD Virtual Audio Device Driver Sample
The Microsoft SysVAD Virtual Audio Device Driver (SYSVAD) shows how to develop a WDM audio driver that exposes support for multiple audio devices.
@@ -26,23 +17,23 @@ Some of these audio devices are embedded in the system (for example, speakers, m
Driver developers can use the framework in this sample to provide support for various audio devices without concern for hardware dependencies. The framework includes implementations of the following interfaces:
-- The CAdapterCommon interface gives the miniports access to virtual mixer hardware. It also implements the **IAdapterPowerManagement** interface.
+- The CAdapterCommon interface gives the miniports access to virtual mixer hardware. It also implements the **IAdapterPowerManagement** interface.
-- The CMiniportTopologySYSVAD interface is the base class for all sample topologies. It has very basic common functions. In addition, this class contains common topology property handlers.
+- The CMiniportTopologySYSVAD interface is the base class for all sample topologies. It has very basic common functions. In addition, this class contains common topology property handlers.
The following table shows the features that are implemented in the various subdirectories of this sample.
-Directory | Description
------|------------
-TabletAudioSample | Endpoints that are present in TabletAudioSample driver.
-PhoneAudioSample | Endpoints that are present in PhoneAudioSample driver.
-EndpointsCommon | Endpoints that are present in both TabletAudioSample and PhoneAudioSample. It also contains other common code shared by both sample drivers.
-SwapAPO | Sample APO that installs onto endpoints exposed by the SysVAD sample driver and swaps the left and right channels.
-DelayAPO | Sample APO that adds a delay to the input samples.
-KwsAPO | Sample APO that uses KSPROPERTY_INTERLEAVEDAUDIO_FORMATINFORMATION to determine if the keyword spotter pin is interleaving loopback audio with the microphone audio and identify which channels contain loopback audio. If it is interleaved the APO will strip out the loopback audio and deliver only the microphone audio upstream. Because channel data is removed, the APO negotiates an output format which is different than the input format.
-KeywordDetectorAdapter | Sample Keyword Detector Adapter.
+| Directory | Description |
+| --- | --- |
+| TabletAudioSample | Endpoints that are present in TabletAudioSample driver |
+| PhoneAudioSample | Endpoints that are present in PhoneAudioSample driver |
+| EndpointsCommon | Endpoints that are present in both TabletAudioSample and PhoneAudioSample. It also contains other common code shared by both sample drivers. |
+| SwapAPO | Sample APO that installs onto endpoints exposed by the SysVAD sample driver and swaps the left and right channels |
+| DelayAPO | Sample APO that adds a delay to the input samples |
+| KwsAPO | Sample APO that uses KSPROPERTY_INTERLEAVEDAUDIO_FORMATINFORMATION to determine if the keyword spotter pin is interleaving loopback audio with the microphone audio and identify which channels contain loopback audio. If it is interleaved the APO will strip out the loopback audio and deliver only the microphone audio upstream. Because channel data is removed, the APO negotiates an output format which is different than the input format. |
+| KeywordDetectorAdapter | Sample Keyword Detector Adapter |
-For more information about the Windows audio engine, see [Exposing Hardware-Offloaded Audio Processing in Windows](http://msdn.microsoft.com/en-us/windows/hardware/br259116), and note that audio hardware that is offload-capable replicates the architecture that is presented in the diagram shown in the topic.
+For more information about the Windows audio engine, see [Hardware-Offloaded Audio Processing](https://docs.microsoft.com/windows-hardware/drivers/audio/hardware-offloaded-audio-processing), and note that audio hardware that is offload-capable replicates the architecture that is presented in the diagram shown in the topic.
## Build the sample
@@ -50,21 +41,21 @@ If you simply want to Build this sample driver and don't intend to run or test i
Perform the following steps to build this sample driver.
-**1. Open the driver solution in Visual Studio**
+### 1. Open the driver solution in Visual Studio
In Microsoft Visual Studio, Click **File** \> **Open** \> **Project/Solution...** and navigate to the folder that contains the sample files (for example, *C:\Windows-driver-samples\audio\sysvad*). Double-click the *sysvad* solution file.
In Visual Studio locate the Solution Explorer. (If this is not already open, choose **Solution Explorer** from the **View** menu.) In Solution Explorer, you can see one solution that has eight projects.
-**2. Set the sample's configuration and platform**
+### 2. Set the sample's configuration and platform
In Solution Explorer, right-click **Solution 'sysvad' (8 projects)**, and choose **Configuration Manager**. Make sure that the configuration and platform settings are the same for the eight projects. By default, the configuration is set to **Debug**, and the platform is set to **Win32** for all the projects. If you make any configuration and/or platform changes for one project, you must make the same changes for the remaining three projects.
-**3. Build the sample using Visual Studio**
+### 3. Build the sample using Visual Studio
In Visual Studio, click **Build** \> **Build Solution**.
-**4. Locate the built driver package**
+### 4. Locate the built driver package
In File Explorer, navigate to the folder that contains the sample files. For example, you would navigate to *C:\\Windows-driver-samples\\audio\\sysvad*, if that's the folder you specified in the preceding Step 1.
@@ -72,16 +63,16 @@ In the folder, the location of the driver package varies depending on the config
The package should contain these files:
-File | Description
------|------------
-TabletAudioSample.sys OR PhoneAudioSample.sys| The driver file.
-SwapAPO.dll | The swap APO.
-DelayAPO.dll | The delay APO.
-KWSApo.dll | The KWS APO.
-sysvad.cat | A signed catalog file, which serves as the signature for the entire package.
-TabletAudioSample.inf | An information (INF) file that contains information needed to install the driver.
-PhoneAudioSample.inf | An information (INF) file that contains information needed to install the driver.
-KeywordDetectorContosoAdapter.dll | Sample Keyword detector adapter.
+| File | Description |
+| --- | --- |
+| TabletAudioSample.sys OR PhoneAudioSample.sys| The driver file |
+| SwapAPO.dll | The swap APO |
+| DelayAPO.dll | The delay APO |
+| KWSApo.dll | The KWS APO |
+| sysvad.cat | A signed catalog file, which serves as the signature for the entire package. |
+| TabletAudioSample.inf | An information (INF) file that contains information needed to install the driver. |
+| PhoneAudioSample.inf | An information (INF) file that contains information needed to install the driver. |
+| KeywordDetectorContosoAdapter.dll | Sample Keyword detector adapter |
## Run the sample
@@ -93,9 +84,9 @@ The process of moving the driver package to the target computer and installing t
Before you automatically deploy a driver, you must provision the target computer. Verify that the target computer has an ethernet cable connecting it to your local network, and that your host and target computers can ping each other. Then perform the following steps to prepare your host and target computers.
-**1. Provision the target computer**
+#### 1. Provision the target computer
-On the target computer install the latest [Windows Driver Kit](http://msdn.microsoft.com/en-us/windows/hardware/gg454513.aspx) (WDK), and then when the installation is completed, navigate to the following folder:
+On the target computer install the latest [Windows Driver Kit](https://docs.microsoft.com/windows-hardware/drivers/download-the-wdk) (WDK), and then when the installation is completed, navigate to the following folder:
\\Program Files (x86)\\Windows Kits\\10\\Remote\\<*architecture*>\\
@@ -107,9 +98,9 @@ Double-click the *WDK Test Target Setup x64-x64\_en-us.msi* file to run it. This
On the host computer, in Visual Studio click **Driver** \> **Test** \> **Configure Computers...**, and then click **Add a new computer**.
-Type the name of the target computer, select **Provision computer and choose debugger settings**, and click **Next**. In the next window, verify that the **Connection Type** is set to Network. Leave the other (default) settings as they are, and click **Next**. For more information about the settings in this window, see [Getting Set Up for Debugging](http://msdn.microsoft.com/en-us/library/windows/hardware/hh450944(v=vs.85).aspx).
+Type the name of the target computer, select **Provision computer and choose debugger settings**, and click **Next**. In the next window, verify that the **Connection Type** is set to Network. Leave the other (default) settings as they are, and click **Next**. For more information about the settings in this window, see [Setting Up Debugging](https://docs.microsoft.com/windows-hardware/drivers/debugger/getting-set-up-for-debugging).
-**2. Prepare the host computer**
+#### 2. Prepare the host computer
If you haven't already done so, then preform the steps in the **Build the sample** section, to build the sample driver.
@@ -125,15 +116,15 @@ On the target computer, perform the steps in the **Test the sample** section to
Before you manually deploy a driver, you must prepare the target computer by turning on test signing and by installing a certificate. You also need to locate the DevCon tool in your WDK installation. After that you're ready to run the built driver sample.
-**1. Prepare the target computer**
+#### 1. Prepare the target computer
Open a Command Prompt window as Administrator. Then enter the following command:
-**bcdedit /set TESTSIGNING ON**
+`bcdedit /set TESTSIGNING ON`
Reboot the target computer. Then navigate to the Tools folder in your WDK installation and locate the DevCon tool. For example, look in the following folder:
-*C:\\Program Files (x86)\\Windows Kits\\10\\Tools\\x64\\devcon.exe*
+C:\\Program Files (x86)\\Windows Kits\\10\\Tools\\x64\\devcon.exe
Copy *devcon.exe* to a folder on the target computer where it is easier to find. For example, create a *C:\\Tools* folder and copy *devcon.exe* to that folder.
@@ -141,23 +132,23 @@ Create a folder on the target for the built driver package (for example, *C:\\Sy
Create a folder on the target computer for the certificate created by the build process. For example, you could create a folder named *C:\\Certificates* on the target computer, and then copy *package.cer* to it from the host computer. You can find this certificate in the same folder on the host computer, as the *package* folder that contains the built driver files. On the target computer, right-click the certificate file, and click **Install**, then follow the prompts to install the test certificate.
-If you need more detailed instructions for setting up the target computer, 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).
+If you need more detailed instructions for setting up the target computer, see [Preparing a Computer for Manual Driver Deployment](https://docs.microsoft.com/windows-hardware/drivers/develop/preparing-a-computer-for-manual-driver-deployment).
-**2. Install the driver**
+#### 2. Install the driver
-The TabletAudioSample or PhoneAudioSample driver package contains a sample driver and 2 driver extension samples. The following instructions show you how to install and test the sample driver.
+The TabletAudioSample or PhoneAudioSample driver package contains a sample driver and 2 driver extension samples. The following instructions show you how to install and test the sample driver.
-The INF file required for installing this driver is *TabletAudioSample.inf*.
+The INF file required for installing this driver is *TabletAudioSample.inf*.
On the target computer, open a Command Prompt window as Administrator. Navigate to your driver package folder, and enter the following command:
-**devcon dp_add TabletAudioSample.inf**
+`devcon dp_add TabletAudioSample.inf`
If you get an error message about *devcon* not being recognized, try adding the path to the *devcon* tool. For example, if you copied it to a folder called *C:\\Tools*, then try using the following command:
-**C:\\tools\\devcon dp_add TabletAudioSample.inf**
+`C:\\tools\\devcon dp_add TabletAudioSample.inf`
-For more detailed instructions, see [Configuring a Computer for Driver Deployment, Testing, and Debugging](http://msdn.microsoft.com/en-us/library/windows/hardware/hh698272(v=vs.85).aspx).
+For more detailed 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 successfully installing the sample driver, you're now ready to test it.
@@ -168,4 +159,3 @@ On the target computer, in a Command Prompt window, enter **devmgmt** to open De
On the target computer, open Control Panel and navigate to **Hardware and Sound** \> **Manage audio devices**. In the Sound dialog box, select the speaker icon labeled as *Microsoft Virtual Audio Device (WDM) - Tablet Audio Sample*, then click **Set Default**, but do not click **OK**. This will keep the Sound dialog box open.
Locate an MP3 or other audio file on the target computer and double-click to play it. Then in the Sound dialog box, verify that there is activity in the volume level indicator associated with the *Microsoft Virtual Audio Device (WDM) - Tablet Audio Sample* driver.
-