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.

Summary of Thesycon’s Skills

Windows System Architecture and Windows Internals

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

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.

Custom Software Development and Design Services

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 Phase Tasks that can be outsourced to Thesycon


Design Select the right design approach
  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)
Implementation Implement 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
Test Perform 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
  Analyze and fix problems encountered during tests
Mass Production Design 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.
Maintenance Adapt device driver software to new Windows or service pack releases
  Provide software updates to implement new features
  Analyze problems reported from the field

Support Policy

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.




Device Driver - Software Development - Consulting home