FindWDK - CMake module for building drivers with Windows Development Kit (WDK)

  •        218

FindWDK makes it possible to build kernel drivers and kernel libraries with Windows Development Kit (WDK) and CMake.



Related Projects

Windows-driver-samples - This repo contains driver samples prepared for use with Microsoft Visual Studio and the Windows Driver Kit (WDK)

  •    C

These are the official Microsoft Windows Driver Kit (WDK) team driver code samples for Windows 10. They provide a foundation for Universal Windows driver support of all hardware form factors, from phones to desktop PCs. Use these samples with Visual Studio 2015 and Windows Driver Kit (WDK) 10.Use Visual Studio 2015 and Windows Driver Kit (WDK) 10 to build, test, and deploy your drivers. With Windows 10, the driver development environment is integrated into Visual Studio. To get started, download the driver development kits and tools for Windows 10.


  •    C++

The VisualDDK is a plugin for Microsoft Visual Studio allowing debugging device drivers right from the IDE. Additionally, a simple Driver Project Wizard is provided.

cotire - CMake module to speed up builds.

  •    CMake

Cotire (compile time reducer) is a CMake module that speeds up the build process of CMake based build systems by fully automating techniques as precompiled header usage and single compilation unit builds for C and C++. Cotire looks at the properties of the target provided by CMake (e.g., target type, source files, compile flags, preprocessor defines, include directories, ...) and sets up custom commands that will generate a unity source file, a prefix header and a precompiled header at build time specially tailored to the target.

Windows-Driver-Frameworks - WDF makes it easy to write high-quality Windows drivers

  •    C++

The Windows Driver Frameworks (WDF) are a set of libraries that make it simple to write high-quality device drivers.Developers can use the MSDN reference documentation to learn about the core concepts of WDF and the APIs available for use. Still, there's no substitute for actual source code. That's why we've published the source behind KMDF and UMDF v2 for anyone to dig through and debug drivers with.

rtl8723bs - Realtek SDIO Wi-Fi driver

  •    Objective-C

It was then tidied up and had huge chunks of unused code removed by a number of contributors (see the git history for details), and eventually merged into the kernel staging tree in time for kernel 4.12-rc1. This repository contains the history of the driver cleanup, which is not available in the upstream-merged driver. Compiling or running the driver on older kernels is not supported, please ask your distribution to provide updated kernel packages.

KdExploitMe - A kernel driver to practice writing exploits against, as well as some example exploits using public techniques

  •    C++

A kernel driver to practice writing exploits against, as well as some example exploits using public techniques. The intent of this driver is to educate security testers on how memory corruption issues in Windows kernel drivers can be exploited. Knowing how to exploit security issues allows security testers to prove that bugs are exploitable which can be used to convince developers to fix bugs. While these techniques can be used for evil, I have written this driver in the hopes that you will use this knowledge for good.

DownloadProject - CMake module for downloading an external project's source at configure time

  •    CMake

An example as described in that article is provided here to demonstrate how to use the DownloadProject module. It uses googletest as the example, downloading and building trivial gtest and gmock test cases to show the technique.

awesome-cmake - A curated list of awesome CMake resources, scripts, modules, examples and others.


Your contributions are highly welcome (first see These provide a wide range of functionality - from dealing with compiler flags to using tools. Some also contain modules.

cmake-init - Template for reliable, cross-platform C++ project setup using cmake.

  •    C++

cmake-init is a sophisticated copy & paste template for modern C and C++ projects. The main goals include support of all use cases around software development (programming, testing, Q&A, deployment, documentation) while being modular, flexible, and idomatic. cmake-init is therefore a collection of cmake best-practices. The file contains a task checklist for new projects. More generally, a new project should contain all core modules and, as needed, add the maintainer and development modules as required. cmake-init does not impose modularity rules for the cmake targets.

cmake-examples - A collection of as simple as possible, modern CMake projects

  •    CMake

This repository is a collection of as simple as possible CMake projects (with a focus on installing). The idea is to try and help understand exactly what each part of a CMakeLists.txt file does and why it is needed. Please see the Core Example README for steps on using the example libraries and the Installing README for an overview of installing CMake libraries. The More Example section contains slightly more complex examples and will continue to grow.

CMake - Mirror of CMake upstream repository

  •    C

CMake is a cross-platform, open-source build system generator. For full documentation visit the CMake Home Page and the CMake Documentation Page. The CMake Community Wiki also references useful guides and recipes. CMake is maintained and supported by Kitware and developed in collaboration with a productive community of contributors.

xf86-input-mtrack - Xorg Multitouch Trackpad Driver

  •    Shell

An Xorg driver for multitouch trackpads. Supports any trackpad whose kernel driver uses the slotted multitouch protocol. For more information on the protocol see the kernel documentation. This driver is compatible with Xorg server versions 1.7 to 1.12. It requires the mtdev library to operate.

TitanHide - Hiding kernel-driver for x86/x64.

  •    C

Do not come here and open issues about problems with installation, crashes with bug check 0x109: CRITICAL_STRUCTURE_CORRUPTION or questions on how to disable PatchGuard. I will permanently ban you from the issue tracker. If you don't know how to properly install the tool you don't know enough to use it responsibly and you should use something else like ScyllaHide. To disable PatchGuard, try UPGDSED. TitanHide is a driver intended to hide debuggers from certain processes. The driver hooks various Nt* kernel functions (using SSDT table hooks) and modifies the return values of the original functions. To hide a process, you must pass a simple structure with a ProcessID and the hiding option(s) to enable, to the driver. The internal API is designed to add hooks with little effort, which means adding features is really easy.

cmake-examples - Useful CMake Examples

  •    CMake

CMake is a cross-platform open-source meta-build system which can build, test and package software. It can be used to support multiple native build environments including make, Apple’s xcode and Microsoft Visual Studio. This repository includes some example modern CMake configurations which I have picked up when exploring it’s usage for various projects. The examples are laid out in a tutorial like format. The first examples are very basic and slowly increase in complexity drawing on previous examples to show more complex use cases.

suitesparse-metis-for-windows - CMake scripts for painless usage of SuiteSparse+METIS from Visual Studio and the rest of Windows/Linux/OSX IDEs supported by CMake

  •    C

CMake scripts for painless usage of Tim Davis' SuiteSparse (CHOLMOD,UMFPACK,AMD,LDL,SPQR,...) and METIS from Visual Studio and the rest of Windows/Linux/OSX IDEs supported by CMake. The project includes precompiled BLAS/LAPACK DLLs for easy use with Visual C++. Licensed under BSD 3-Clause License. The goal is using one single CMake code to build against SuiteSparse in standard Linux package systems (e.g. libsuitesparse-dev) and in manual compilations under Windows.

The Linux Tulip driver

  •    C

This project contains the Linux 2.4.x kernel driver for the Digital/Intel 21x4x (quot;Tulipquot;) series of ethernet chips. Requires kernel version 2.3.50 or later. This project serves as a focal point for further driver development and discussion.

cmake-modules - My collection of CMake modules

  •    CMake

Ryan A. Pavlik, Ph.D. This is a collection of CMake modules that I've produced during the course of a variety of software development. There are a number of find modules, especially for virtual reality and physical simulation packages, some utility modules of more general interest, and some patches or workarounds for CMake itself.

learning-cmake - learning cmake

  •    CMake

This is a simple CMake tutorial project which contains some different scenarios.

android-cmake - CMake toolchain file and other scripts for the Android NDK

  •    CMake

Main goal is to share these scripts so that devs that use CMake as their build system may easily compile native code for Android. So if you have installed the NDK as ~/android-ndk-r10d then android-cmake will locate it automatically.

cmake-ide - Use Emacs as a C/C++ IDE

  •    Emacs

cmake-ide will set variables and call functions for the installed dependent packages. It works by running CMake in Emacs in order to obtain the necessary compiler flags to pass to the other tools. Since all the dependencies are specified in the CMake scripts, there is no need to maintain a parallel dependency tracking system for Emacs. Just ask CMake.