[Windows笔记]驱动程序开发

1,698 阅读2分钟

配置开发环境

  • 安装Visual Studio
  • 安装Windows Driver Kit
  • 安装VisualBox/VMware

Getting started with Windows drivers

docs.microsoft.com/en-us/windo…

Concepts for all driver developers

docs.microsoft.com/en-us/windo…

I/O request packets(IRP)

docs.microsoft.com/en-us/windo…

KMDF as a generic driver pair model

docs.microsoft.com/en-us/windo…

KMDF extensions and driver triples

docs.microsoft.com/en-us/windo…

Windows Driver Modal(WDM)

docs.microsoft.com/en-us/windo…

Windows Driver Framework(WDF)

docs.microsoft.com/en-us/windo…

KMDF

UMDF/UMDF2

UMDF 1.x Design Guide

Getting Started with UMDF 2

Minidrivers

docs.microsoft.com/en-us/windo…

参考:

Windows 10 驱动开发笔记

Win8.1+VS2013+WDK8.1+VirtualBox or VMware 驱动开发环境配置

编写通用 Hello World 驱动程序 (KMDF)

BCDEdit 命令行选项

Bluetooth Profile Drivers

docs.microsoft.com/en-us/windo…

HID drivers

docs.microsoft.com/en-us/windo…

安装驱动

devcon.exe

C:\Windows\inf\setupapi.dev.log

HID驱动

docs.microsoft.com/en-us/windo…

HID Client

docs.microsoft.com/en-us/windo…

HID Usages

docs.microsoft.com/en-us/windo…

HID Collections

docs.microsoft.com/en-us/windo…

HID Transports

Windows 8 introduces support for HID over Bluetooth LE.

docs.microsoft.com/en-us/windo…

Write a HID source driver by using Virtual HID Framework (VHF)Write a HID source driver by using Virtual HID Framework (VHF)

虚拟键盘

Developing, Testing, and Deploying Drivers

docs.microsoft.com/en-us/windo…

Universal Drivers

docs.microsoft.com/en-us/windo…

Deploying Drivers

docs.microsoft.com/en-us/windo…

Windows Management Instrumentation(WMI)

docs.microsoft.com/en-us/windo…

Stream media device driver design guide

docs.microsoft.com/en-us/windo…

Windows driver samples

docs.microsoft.com/en-us/windo…

Driver Development Tools

docs.microsoft.com/en-us/windo…

Tools for Software Tracing

docs.microsoft.com/en-us/windo…

Windows software trace preprocessor (WPP)

docs.microsoft.com/en-us/windo…

Event Tracing for Windows (ETW)

docs.microsoft.com/en-us/windo…

Kernel-Mode Driver Architecture Design Guide

docs.microsoft.com/en-us/windo…

Interrupt Service Routines (ISRs)

docs.microsoft.com/en-us/windo…

Deferred Procedure Calls (DPCs)

docs.microsoft.com/en-us/windo…

参考

Creating KMDF HID Minidrivers

Debuggin Tools for Windows(WinDbg, KD, CDB, NTSD)

docs.microsoft.com/en-us/windo…

Getting Started with Windows Debugging

docs.microsoft.com/en-us/windo…

Setting Up Debugging (Kernel-Mode and User-Mode)

docs.microsoft.com/en-us/windo…

Device Access API

docs.microsoft.com/en-us/previ…

docs.microsoft.com/en-us/windo…

UWP device apps

docs.microsoft.com/en-us/windo…

Device sync and update for Store device apps in Windows 8.1

docs.microsoft.com/en-us/windo…

Creating a device background task in Windows 8.1 (UWP device apps)

docs.microsoft.com/en-us/windo…

Automatic installation for UWP device apps

docs.microsoft.com/en-us/windo…

Hardware Support App (HSA): Steps for Driver Developers

docs.microsoft.com/en-us/windo…

Develop UWP apps

docs.microsoft.com/en-us/windo…

Devices, sensors, and power

docs.microsoft.com/en-us/windo…

Enumerate devices

docs.microsoft.com/en-us/windo…

AEP service class IDs

docs.microsoft.com/en-us/windo…

Partner Center for Windows Hardware

docs.microsoft.com/en-us/windo…

Device metadata

The Device Metadata Experience

Create a Device Metadata Experience

docs.microsoft.com/en-us/windo…

参考

a

Device metadata

docs.microsoft.com/en-us/previ…

Device metadata schema reference

docs.microsoft.com/en-us/previ…

SoftwareInfo XML Schema

docs.microsoft.com/en-us/previ…

IdentityForPrivilegedApplicationsType

docs.microsoft.com/en-us/previ…

Windows Search

docs.microsoft.com/en-us/windo…

Windows Search Developer's Guide

docs.microsoft.com/en-us/windo…

Querying the Index Programmatically

docs.microsoft.com/en-us/windo…

Using Advanced Query Syntax Programmatically

docs.microsoft.com/en-us/windo…

参考:

Custom Drivers in Windows 8

Windows Hardware Lab Kit (WHLK)

docs.microsoft.com/en-us/windo…

Device and Driver Installation

docs.microsoft.com/en-us/windo…

.Net Guide

docs.microsoft.com/en-us/dotne…

Native interoperability

docs.microsoft.com/en-us/dotne…

Platform Invoke (P/Invoke)

docs.microsoft.com/en-us/dotne…

注意事项:

docs.microsoft.com/en-us/uwp/w…

DeviceIoControll:Introduced into api-ms-win-core-io-l1-1-0.dll in 10.0.17763.

stackoverflow.com/questions/4…

Half-way through this thread from 2014 is the mention that "there is no [...] API for pen injection", and things haven't improved since then, so a driver for pen injection is still required. Having said that, the Windows UI Automation API can apparently inject all pointer types (and a game pad to boot), but that's only supported from Windows 10 Anniversary Edition (and I haven't tried it).

stackoverflow.com/questions/4…

blog.mzikmund.com/2018/01/inj…

docs.microsoft.com/en-us/windo…

stackoverflow.com/questions/4…

And there is no public apis in win32 for pen injection. If your system is Windows 10, version 1809, InjectSyntheticPointerInput can be used.

Windows 1703 build 15063

docs.microsoft.com/en-us/windo…

blogs.windows.com/windowsdeve…