Active Development USB Devices Driver



  • This page contains drivers for USB Video Capture Device manufactured by Active Development™. Please note we are carefully scanning all the content on our website for viruses and trojans. This and other Sound Cards drivers we're hosting are 100% safe. Vendor: Active Development™ Device: USB Video Capture Device.
  • HID® ActivID® Device Installer (AIDI) aidi2.30.zip - (2.95 MB) ActivID Device Installer is a software package that allows installing the drivers for some smartcard readers including ActivKey SIM and ActivKey Display products.
  • Assuming your using Linux and libusb-1.0 as a PyUSB's backend library. According to the libusb documentation: // Detach a kernel driver from an interface. // If successful, you will then be able to claim the interface and perform I/O. Int libusbdetachkerneldriver (libusbdevicehandle.dev, int interfacenumber) // Re-attach an interface's kernel driver, which was previously // detached.
  • If you are new to USB driver development, use the OSR USB FX2 learning kit to study USB samples included with the WDK. You can get the learning kit from OSR Online. It contains the USB FX2 device and all the required hardware specifications to implement a client driver. You can also get a Microsoft USB Test Tool (MUTT) devices.

The Device Manager window opens. Expand Universal Serial Bus controllers. Right-click a USB Root Hub in the list, and then click Properties. The USB Root Hub Properties dialog box is displayed. Click the Power Management tab. Click to clear the Allow the computer to turn off this device to save power check box, and then click OK.

-->

In this topic you'll use the USB Kernel-Mode Driver template provided with Microsoft Visual Studio Professional 2019 to write a simple kernel-mode driver framework (KMDF)-based client driver. After building and installing the client driver, you'll view the client driver in Device Manager and view the driver output in a debugger.

For an explanation about the source code generated by the template, see Understanding the KMDF template code for a USB client driver.

Prerequisites

For developing, debugging, and installing a kernel-mode driver, you need two computers:

  • A host computer running Windows 7 or a later version of the Windows operating system. The host computer is your development environment, where you write and debug your driver.
  • A target computer running Windows Vista or a later version of Windows. The target computer has the kernel-mode driver that you want to debug.
Active Development USB Devices Driver

Before you begin, make sure that you meet the following requirements:

Software requirements

  • Your host computer hosts your development environment and has Visual Studio Professional 2019.
  • Your host computer has the latest Windows Driver Kit (WDK) for Windows 8. The kit include headers, libraries, tools, documentation, and the debugging tools required to develop, build, and debug a KMDF driver. To get the latest version of the WDK, see Download the Windows Driver Kit (WDK).
  • Your host computer has the latest version of debugging tools for Windows. You can get the latest version from the WDK or you can Download and Install Debugging Tools for Windows.
  • Your target computer is running Windows Vista or a later version of Windows.
  • Your host and target computers are configured for kernel debugging. For more information, see Setting Up a Network Connection in Visual Studio.

Hardware requirements

Get a USB device for which you will be writing the client driver. In most cases, you are provided with a USB device and its hardware specification. The specification describes device capabilities and the supported vendor commands. Use the specification to determine the functionality of the USB driver and the related design decisions.

If you are new to USB driver development, use the OSR USB FX2 learning kit to study USB samples included with the WDK. You can get the learning kit from OSR Online. It contains the USB FX2 device and all the required hardware specifications to implement a client driver.

You can also get a Microsoft USB Test Tool (MUTT) devices. MUTT hardware can be purchased from JJG Technologies. The device does not have installed firmware installed. To install firmware, download the MUTT software package from this Web site and run MUTTUtil.exe. For more information, see the documentation included with the package.

Microsoft Usb Video Device Driver Windows 10

Recommended reading

  • Developing Drivers with Windows Driver Foundation, written by Penny Orwick and Guy Smith. For more information, see Developing Drivers with WDF.

Instructions

Step 1: Generate the KMDF driver code by using the Visual Studio Professional 2019 USB driver template

For instructions about generating KMDF driver code, see the steps in Writing a KMDF driver based on a template.

For USB-specific code, select the following options in Visual Studio Professional 2019

  1. In the New Project dialog box, in the search box at the top, type USB.
  2. In the middle pane, select Kernel Mode Driver, USB (KMDF).
  3. Select Next.
  4. Enter a project name, choose a save location, and select Create.

The following screen shots show the New Project dialog box for the USB Kernel-Mode Driver template.

Devices

This topic assumes that the name of the Visual Studio project is 'MyUSBDriver_'. It contains the following files:

Windows usb driver development
FilesDescription
Public.hProvides common declarations shared by the client driver and user applications that communicate with the USB device.
<Project name>.infContains information required to install the client driver on the target computer.
Trace.hDeclares tracing functions and macros.
Driver.h; Driver.cDeclares and defines driver entry points and event callback routines.
Device.h; Device.cDeclares and defines event callback routine for the prepare-hardware event.
Queue.h; Queue.cDeclares and defines an event callback routine for the event raised by the framework's queue object.

Step 2: Modify the INF file to add information about your device

Before you build the driver, you must modify the template INF file with information about your device, specifically the hardware ID string.

In Solution Explorer, under Driver Files Cirrus logic modem driver download for windows password. , double-click the INF file.

In the INF file you can provide information such as the manufacturer and provider name, the device setup class, and so on. One piece of information that you must provide is the hardware identifier of your device.

To provide the hardware ID string:

  1. Attach your USB device to your host computer and let Windows enumerate the device.

  2. Open Device Manager and open properties for your device.

  3. On the Details tab, select Hardward Ids under Property.

    The hardware ID for the device is displayed in the list box. Select and hold (or right-click) and copy the hardware ID string.

  4. Replace USBVID_vvvv&PID_pppp in the following line with your hardware ID string.

    [Standard.NT$ARCH$] %MyUSBDriver_.DeviceDesc%=MyUSBDriver__Device, USBVID_vvvv&PID_pppp

Step 3: Build the USB client driver code

To build your driver

  1. Open the driver project or solution in Visual Studio Professional 2019
  2. Select and hold (or right-click) the solution in the Solution Explorer and select Configuration Manager.
  3. From the Configuration Manager, select the Active Solution Configuration (for example, Windows 8 Debug or Windows 8 Release) and the Active Solution Platform (for example, Win32) that correspond to the type of build you're interested in.
  4. From the Build menu, select Build Solution.

For more information, see Building a Driver.

Step 4: Configure a computer for testing and debugging

To test and debug a driver, you run the debugger on the host computer and the driver on the target computer. So far, you have used Visual Studio on the host computer to build a driver. Next you need to configure a target computer. To configure a target computer, follow the instructions in Provision a computer for driver deployment and testing.

Step 5: Enable tracing for kernel debugging

The template code contains several trace messages (TraceEvents) that can help you track function calls. All functions in the source code contain trace messages that mark the entry and exit of a routine. For errors, the trace message contains the error code and a meaningful string. Because WPP tracing is enabled for your driver project, the PDB symbol file created during the build process contains trace message formatting instructions. If you configure the host and target computers for WPP tracing, your driver can send trace messages to a file or the debugger.

To configure your host computer for WPP tracing

  1. Create trace message format (TMF) files by extracting trace message formatting instructions from the PDB symbol file.

    You can use Tracepdb.exe to create TMF files. The tool is located in the <install folder>Windows Kits8.0bin<architecture> folder of the WDK. The following command creates TMF files for the driver project.

    tracepdb -f [PDBFiles] -p [TMFDirectory]

    The -f option specifies the location and the name of the PDB symbol file. The -p option specifies the location for the TMF files that are created by Tracepdb. For more information, see Tracepdb Commands.

    At the specified location you'll see three files (one per .c file in the project). They are given GUID file names.

  2. In the debugger, type the following commands:

    1. .load Wmitrace

      Archimedes automacao driver download for windows 10 64-bit. Loads the Wmitrace.dll extension.

    2. .chain

      Verify that the debugger extension is loaded.

    3. !wmitrace.searchpath +<TMF file location>

      Add the location of the TMF files to the debugger extension's search path.

      The output resembles this:

      Trace Format search path is: 'C:Program Files (x86)Microsoft Visual Studio 14.0Common7IDE;c:driverstmf'

To configure your target computer for WPP tracing

  1. Make sure you have the Tracelog tool on your target computer. The tool is located in the <install_folder>Windows Kits8.0Tools<arch> folder of the WDK. For more information, see Tracelog Command Syntax.

  2. Open a Command Window and run as administrator.

  3. Type the following command:

    tracelog -start MyTrace -guid #c918ee71-68c7-4140-8f7d-c907abbcb05d -flag 0xFFFF -level 7-rt -kd

    The command starts a trace session named MyTrace.

    The guid argument specifies the GUID of the trace provider, which is the client driver. You can get the GUID from Trace.h in the Visual Studio Professional 2019 project. As another option, you can type the following command and specify the GUID in a .guid file. The file contains the GUID in hyphen format:

    tracelog -start MyTrace -guid c:driversProvider.guid -flag 0xFFFF -level 7-rt -kd

    You can stop the trace session by typing the following command:

    tracelog -stop MyTrace

Examples of usb devices

Active Development Usb Devices Driver Win 7

Windows

Step 6: Deploy the driver on the target computer

  1. In the Solution Explorer window, select and hold (or right-click) the <project name>Package , and choose Properties.
  2. In the left pane, navigate to Configuration Properties > Driver Install > Deployment.
  3. Check Enable deployment, and check Import into driver store.
  4. For Remote Computer Name, specify the name of the target computer.
  5. Select Install and Verify.
  6. Select Ok.
  7. On the Debug menu, choose Start Debugging, or press F5 on the keyboard.

Note Do not specify the hardware ID of your device under Hardware ID Driver Update. The hardware ID must be specified only in your driver's information (INF) file.

For more information about deploying the driver to the target system in Visual Studio Professional 2019, see Deploying a Driver to a Test Computer.

You can also manually install the driver on the target computer by using Device Manager. If you want to install the driver from a command prompt, these utilities are available:

  • This tool comes with the Windows. It is in WindowsSystem32. You can use this utility to add the driver to the driver store.

    For more information, see PnPUtil Examples.

  • This tool comes with the WDK. You can use it to install and update drivers.

Step 7: View the driver in Device Manager

  1. Enter the following command to open Device Manager:

    devmgmt

  2. Verify that Device Manager shows a node for the following node:

    Samples

    MyUSBDriver_Device

Step 8: View the output in the debugger

Visual Studio first displays progress in the Output window. Then it opens the Debugger Immediate Window. Verify that trace messages appear in the debugger on the host computer. The output should look like this, where 'MyUSBDriver_' is the name of the driver module:

Related topics

Understanding the KMDF template code for a USB client driver
Getting started with USB client driver development

Custom Windows Device Driver Development

Thesycon has provided custom Windows driver development services since 1998; the founders of Thesycon have worked in this area since 1994. Based on those many years of experience we offer development services to customers who want to outsource specific tasks of their product development. Thesycon specializes in device driver design and in specific bus technologies such as USB, FireWire and PCI. Clients can contract Thesycon to create a complete PC and device connectivity solution.

We place a high priority on software quality and good customer support. Our software works reliably in real-world conditions and is maintainable and extensible. As many of our customers work in the area of industrial, medical and automotive applications, we always focus on robustness and efficiency.

Active Development Usb Devices Driver Download

Windows System Architecture and Windows Internals

Best Usb Devices

Members of the Thesycon development team have a deep understanding of the internal architecture of the Windows operating system, specifically the kernel. We have written kernel-mode software since the days of Windows 95 and Windows NT. We are familiar with many of the components included in current Windows releases and know all concepts and standards related to driver development very well.

Windows Kernel-Mode Device Drivers

At Thesycon, we have a strong background in hardware. We know devices and combine this knowledge with our deep familiarity with the internals of the Windows operating system to create reliable and efficient device drivers. Thesycon has successfully completed numerous Windows device driver projects, including for USB and FireWire devices, or sophisticated, high-speed PCI/PCI Express DMA devices. We have great experience in creating complex kernel-mode drivers such as bus drivers, filter drivers, network drivers and software-only drivers. We maintain an internal framework which allows us to create reliable and WDM-compliant drivers very quickly.

Win32 Multithreaded Application and Service Programming

Our developers are very familiar with Windows multithreading and I/O concepts. We are able to design robust and efficient Windows applications or services that handle I/O tasks using dedicated threads. A defensive programming style and compliance with documentation ensure that reliable and maintainable code is produced. Our huge experience with Win32-level multi-threaded software development results from countless projects where we successfully created services, applications, utilities, DLLs and other components.

Multimedia and Professional Audio

We are familiar with all current Windows multimedia technologies such as DirectX/DirectShow, BDA and kernel streaming (KS) drivers. Past projects have demanded that we also create audio device drivers for professional use. We have the necessary skills to create reliable WDM audio/MIDI and ASIO drivers with low-latency requirements. Many USB professional audio devices currently available in the market are equipped with Windows drivers created by Thesycon.

Bus Technologies

Thesycon has worked with USB and IEEE 1394 technologies since they became available on the market. We know the technologies very well and have helped many customers to integrate a USB or 1394 interface into their product. Our developers are familiar with both the PC side and the embedded device side of a bus connection. Of course, we are also accustomed to work with other standard buses such as PCI, CardBus, PCI Express and with network communication technologies such as Ethernet, W-LAN, TCP/IP, etc.

Other Operating Systems

Usb Device Manager

Thesycon have also gained experience with other operating systems, in particular Windows CE and Windows Mobile, Linux and Mac OS X. On those systems, we have successfully created PCI, USB and audio drivers, for instance. In past projects we have developed concepts and strategies to implement device driver functionality in an abstract, operating system independent way. So Windows and other operating systems can be supported with one driver architecture and one code base.

Customers can benefit from Thesycon’s expertise at any stage of product development, from early design discussions to deployment and maintenance. We can handle a complete task, for example all the software needed for PC interfacing, on a pre-quoted fixed cost basis. We will design, implement and test the software and provide support during integration, so customers can benefit from our know-how and reduce project risks.

Project PhaseTasks that can be outsourced to Thesycon
Define a driver architecture that fits well into Windows concepts
Modularize the driver software and define internal interfaces
Define programming interfaces exposed to client applications
Select a device communication protocol (e.g. a USB device class) that is best-suited for the project, or design and document a private communication protocol that is optimized to meet the target requirements (e.g. regarding throughput and stability)
ImplementationImplement kernel-mode device drivers according to interfaces and rules defined by Microsoft, or the respective OS vendor
Create additional software components such as an API library (DLL), a device service, a GUI utility, or an installer
Create an SDK and sample applications to be provided to users
TestPerform WHQL tests and execute submissions to get a Windows driver signed by WHQL
Develop specific test benches and tools to support driver and device tests
Mass ProductionDesign and implement software tools to support mass production of devices (factory automation tools)
Develop concepts and tools to handle individualization of USB and other devices in a factory, e.g. FLASH programming, serial number programming, etc.
MaintenanceAdapt device driver software to new Windows or service pack releases
Provide software updates to implement new features

Thesycon follows a customer-first support policy - customers' needs are put ahead of our own internal product development. Customers' requirements, for example to meet critical project deadlines, are always highest priority for us.

Customer support is done by the developer who wrote the code. During a project, customers are directly in touch with the developer(s). This ensures that correct answers and solution approaches can be provided quickly.

© 2021 THESYCON