ویرگول
ورودثبت نام
سید عمید قائم مقامی
سید عمید قائم مقامیبرنامه نویسی سیستم ویندوز و مهندسی معکوس و علاقه مند به آموزش.
سید عمید قائم مقامی
سید عمید قائم مقامی
خواندن ۲ دقیقه·۱۵ ساعت پیش

درایور نویسی سطح کرنل(آماده سازی، همراه با کد نمونه):

دانلود Windows Driver Kit (WDK)

از WDK برای توسعه، تست و استقرار (Deploy) درایورها در ویندوز استفاده کنید.

  • آخرین نسخه منتشرشدهٔ WDK را روی ویندوز ۷ و نسخه‌های جدیدتر نصب و اجرا کنید.

  • از آخرین نسخهٔ WDK برای ساخت درایورهای مخصوص ویندوز 10، ویندوز سرور 2016 و نسخه‌های جدیدتر ویندوز (کلاینت و سرور) استفاده کنید.

قدم اول Install Visual Studio 2022:
WDK به Visual Studio نیاز دارد.

قدم دوم :
وقتی Visual Studio 2022 را نصب می‌کنید، گزینهٔ Desktop development with C++ را انتخاب کنید. سپس در بخش Individual Components این موارد را اضافه کنید:

  • MSVC v143 - VS 2022 C++ ARM64/ARM64EC Spectre-mitigated libs (Latest)

  • MSVC v143 - VS 2022 C++ x64/x86 Spectre-mitigated libs (Latest)

  • C++ ATL for latest v143 build tools with Spectre Mitigations (ARM64/ARM64EC)

  • C++ ATL for latest v143 build tools with Spectre Mitigations (x86 & x64)

  • C++ MFC for latest v143 build tools with Spectre Mitigations (ARM64/ARM64EC)

  • C++ MFC for latest v143 build tools with Spectre Mitigations (x86 & x64)

  • Windows Driver Kit

در صفحه اصلی اینستالر ویژوال استدیو بخش زیر رو هم تیکشو بزنید:

Desktop development with C++

قدم سوم نصب SDK:

نصب Visual Studio، آخرین نسخهٔ SDK را دانلود نمی‌کند. از لینک زیر برای نصب آخرین نسخهٔ SDK استفاده کنید:

[Download the latest Windows SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/)

لینک‌های ارائه‌شده برای SDK و WDK شمارهٔ بیلد (Build Number) یکسان دارند، که همیشه برای کارکرد صحیح این کیت‌ها با هم لازم است. اگر تصمیم گرفتید جفت SDK/WDK خود را نصب کنید، شاید برای نسخهٔ دیگری از ویندوز، مطمئن شوید که شمارهٔ بیلدها یکسان باشند. برای اطلاعات بیشتر، به Kit versioning مراجعه کنید.

قدم چهارم نصب WDK:

[Download the latest WDK](https://learn.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk)

از نسخهٔ 17.11.0 به بعد، WDK VSIX به عنوان یک کامپوننت جداگانه در Visual Studio گنجانده شده است. قبل از نصب WDK، نصب‌کننده بررسی می‌کند که آیا نسخهٔ سازگار VSIX قبلاً نصب شده است یا خیر. اگر نصب‌کننده WDK VSIX را پیدا نکند، از شما می‌خواهد آن را نصب کنید.

برای نصب WDK VSIX:

  1. نصب‌کنندهٔ Visual Studio را اجرا کنید.

  2. گزینهٔ Modify را انتخاب کنید.

  3. به تب Individual Components بروید.

  4. Windows Driver Kit را اضافه کنید.

  5. سپس دوباره Modify را انتخاب کنید.

باید ورژن wdk و sdk یکسان باشد.


چون تا الان وابستگی‌ها را نصب کرده‌ایم، می‌توانیم اولین درایور آزمایشی خود را ایجاد کنیم. برای این کار، مراحل زیر را دنبال کنید:

  1. Visual Studio را باز کنید و روی "Create a new project" کلیک کنید.

  1. در بخش Project Type، گزینهٔ Driver را انتخاب کنید.

  2. گزینهٔ Kernel Mode Driver (KMDF) را انتخاب کنید و در پنجرهٔ بعدی، جزئیات مورد نیاز را وارد کنید.

  1. با راست‌کلیک روی Source Files در کادر بالای سمت راست، یک فایل جدید اضافه کنید: Add → New Item → C++ File.
    نام فایل را با پسوند .c وارد کنید.

  2. معماری هدف (Target Architecture) صحیح را انتخاب کنید.

بیایید یک کد حداقلی قرار دهیم که هنگام لود شدن و آنلود شدن درایور فقط یک رشته را چاپ کند.

#include <ntddk.h> #include <wdf.h> DRIVER_INITIALIZE DriverEntry; EVT_WDF_DRIVER_DEVICE_ADD KmdfHelloWorldEvtDeviceAdd; _Use_decl_annotations_ VOID DriverUnload( ) { KdPrint(("This is driver Exit \r\n")); } NTSTATUS DriverEntry( _In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath ) { UNREFERENCED_PARAMETER(DriverObject); UNREFERENCED_PARAMETER(RegistryPath); // NTSTATUS variable to record success or failure NTSTATUS status = STATUS_SUCCESS; KdPrint(("This is driver entry \r\n")); return status; }

Telegram: @CaKeegan
Gmail : amidgm2020@gmail.com

visual studiokernelwindowsdriver
۰
۰
سید عمید قائم مقامی
سید عمید قائم مقامی
برنامه نویسی سیستم ویندوز و مهندسی معکوس و علاقه مند به آموزش.
شاید از این پست‌ها خوشتان بیاید