驅動程式 - Windows Driver Model (WDM) - 使用範例 - C/C++ (DDK) - 開發環境



參考資訊:
https://github.com/steward-fu/wadk
https://github.com/steward-fu/website/releases/download/wdm

司徒目前使用Debian做為開發測試環境,Compiler使用clang,Linker則是使用lld-link,測試的作業系統目前使用Windows XP,模擬器使用QEMU(qemu-system-i386),由於QEMU支援Snapshot功能,因此只要做好Snapshot的環境,就可以相當方便測試WDM驅動程式

clang、lld-link、wine、box86

$ sudo apt-get install gcc-arm* clang llvm lld wine wine32-tools wine-development libwine fonts-wine -y

$ cd
$ git clone https://github.com/ptitSeb/box86
$ mkdir box86/build
$ cd box86/build
$ cmake ..
$ make
$ sudo make install

使用司徒預先做好的Windows XP、Wine環境

$ cd
$ wget https://github.com/steward-fu/website/releases/download/wdm/winxp.gz
$ wget https://github.com/steward-fu/website/releases/download/wdm/winxp.qcow2
$ wget https://github.com/steward-fu/website/releases/download/wdm/myqemu
$ wget https://github.com/steward-fu/website/releases/download/wdm/wine_env.tar.gz

$ sudo mkdir /opt/qemu
$ sudo mv winxp.qcow2 winxp.gz /opt/qemu
$ sudo mv myqemu /usr/local/bin
$ sudo chmod a+x /usr/local/bin/myqemu

$ sudo vim /usr/local/bin/myx86
    #!/bin/bash
    WINEPREFIX=~/.wine_x86 box86 wine "$@"

$ sudo chmod a+x /usr/local/bin/myx86

$ tar xvf wine_env.tar.gz

$ myx86 --version
    wine-10.0 (Debian 10.0~repack-6)

Clone wadk

$ cd
$ git clone https://github.com/steward-fu/wadk
$ sudo mv wadk /opt

假如在Windows WSL環境測試,記得設定wslconfig

C:/> vim ~/.wslconfig
    [wsl2]
    guiApplications=true
    nestedVirtualization=true