window 11 环境下WDK版本已更新

下载 Windows 驱动程序工具包 (WDK) - Windows drivers | Microsoft Docs

windows 11最新的WDK版本已出,对应的SDK版本 22000.1.210604-1628,目前无法在Visual Studio Installer中下载

驱动环境配置与安装

1.首先安装Visual Studio 2019或其他版本

2.下载SDK 22000.1.210604-1628.co_release_WindowsSDK.ISO直接解压安装。

 一直next即可。

3.下载window11 对应的wdk.

使用

新建KMDF驱动项目测试

 下面开启我们的第一个驱动helloword 开发

#include <ntddk.h>
#include <wdf.h>
DRIVER_INITIALIZE DriverEntry;
EVT_WDF_DRIVER_DEVICE_ADD KmdfHelloWorldEvtDeviceAdd;

NTSTATUS
DriverEntry(
    _In_ PDRIVER_OBJECT     DriverObject,
    _In_ PUNICODE_STRING    RegistryPath
)
{
    // NTSTATUS variable to record success or failure
    NTSTATUS status = STATUS_SUCCESS;

    // Allocate the driver configuration object
    WDF_DRIVER_CONFIG config;

    // Print "Hello World" for DriverEntry
    KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: DriverEntry\n"));

    // Initialize the driver configuration object to register the
    // entry point for the EvtDeviceAdd callback, KmdfHelloWorldEvtDeviceAdd
    WDF_DRIVER_CONFIG_INIT(&config,
        KmdfHelloWorldEvtDeviceAdd
    );

    // Finally, create the driver object
    status = WdfDriverCreate(DriverObject,
        RegistryPath,
        WDF_NO_OBJECT_ATTRIBUTES,
        &config,
        WDF_NO_HANDLE
    );
    return status;
}

NTSTATUS
KmdfHelloWorldEvtDeviceAdd(
    _In_    WDFDRIVER       Driver,
    _Inout_ PWDFDEVICE_INIT DeviceInit
)
{
    // We're not using the driver object,
    // so we need to mark it as unreferenced
    UNREFERENCED_PARAMETER(Driver);

    NTSTATUS status;

    // Allocate the device object
    WDFDEVICE hDevice;

    // Print "Hello World"
    KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: KmdfHelloWorldEvtDeviceAdd\n"));

    // Create the device object
    status = WdfDeviceCreate(&DeviceInit,
        WDF_NO_OBJECT_ATTRIBUTES,
        &hDevice
    );
    return status;
}

编译配置 

1.代码写好后,在左侧工程名(hellodrv)上右键,选择properties,进行工程的设置,选择目标操作系统版本

2.调试--》支持仅我的代码调试调试 ,设置为否

3.c/c++ --》常规--》将警告视为错误,改为否

3.inf2Cat设置

‎Inf2Cat (inf2Cat .exe) 是一个命令行工具,用于确定‎‎驱动程序包的‎‎INF 文件是否可以为指定的 Windows 版本列表进行数字签名。如果是这样,Inf2Cat 生成适用于指定 Windows 版本的未签名‎‎目录文件‎‎。

 编译

编译后出现MSB8040错误信息

此项目需要 Spectre 缓解库

 解决方法

方法一、c/C++--》SpectreMitigation,设置Disabled

 方法二、visual Studio installer安装缓解库

编译

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值