Microsoft объяснила улучшения драйверов для Windows 11 следующего поколения

С середины 2023 года Microsoft прилагает усилия по интеграции Rust в Windows. Компания предпринимает шаги, чтобы привлечь разработчиков драйверов к написанию кода на этом языке. Теперь она поделилась очередными подробностями о продвижении такой разработки.

В июле Microsoft уже поделилась некоторыми подробностями о том, как команда разработчиков Surface в компании помогает в этом направлении, создав новый проект с открытым исходным кодом windows-drivers-rs. Он представляет собой платформу, предназначенную для разработки драйверов Windows на Rust.

Вслед за этим сегодня компания опубликовала более подробную информацию о достигнутом прогрессе. Чтобы упростить разработку драйверов Rust, подобно тому, как это происходит на языке C, был представлен новый контейнер cargo-wdk в составе windows-drivers-rs. Это расширение генерирует пустые проекты драйверов с предустановленными связями, этапами сборки и зависимостями, а также может вызывать инструменты WDK, такие как InfVerif, аналогично сборке драйвера на языке C в Visual Studio.

Microsoft заявляет, что долгосрочная цель — предоставить разработчикам Rust в среде Cargo те же инструменты сборки и параметры настройки, что и в Visual Studio, а среднесрочные планы включают автоматическую установку WDK, поддержку NT_TARGET_VERSION, полную поддержку ARM64 и многое другое.

В настоящее время windows-drivers-rs позволяет использовать определённые типы драйверов в Rust, но по-прежнему требует значительного использования небезопасного кода. Технологический гигант также рассказал о том, как команда Windows Driver Framework (WDF) работает с экспертами Rust над разработкой более безопасных абстракций для KMD (драйверов режима ядра) и UMD (драйверов режима пользователя). Другие команды Microsoft разрабатывают безопасные структуры и API помимо WDF как для ядра, так и для разработки сторонних драйверов. Некоторые из них уже включены в ядро ​​Windows.

Microsoft заявляет, что в ближайшие месяцы поделится дополнительной информацией о передовых практиках разработки драйверов, в том числе об использовании CodeQL для статического анализа. В июле компания обновила своё руководство по статическому анализу драйверов сторонних разработчиков для Windows 11 версии 25H2.

В июне Microsoft заявила, что вносит серьёзные изменения в разработку драйверов оборудования в Windows, в том числе прекращает поддержку метаданных и интернет-служб Windows (WMIS), а также меняет процесс подписания драйверов предварительной версии. Компания сообщила партнёрам, что она избавится от старых драйверов в Центре обновления Windows.