第3章: 安裝WinDriver

本章將介紹在開發平台上安裝WinDriver的過程,並介紹如何驗證WinDriver是否已正確安裝。最後一節討論了卸載過程。

要了解如何安裝在目標平台上創建的驅動程序,請參閲第15章: 分發你的驅動程序

3.1. 系統要求

您可以在下面找到Windows、Linux和Mac的系統要求。

3.1.1. Windows系統要求

請確保您的開發機器符合以下要求:

  • Microsoft支持的任何x86 32位或64位 (x64: AMD64或Intel EM64T) 處理器、ARM、ARM64處理器。
  • 任何支持C,.NET,Java或Python的編譯器或開發環境。

3.1.1.1 在Windows上編譯C/C ++ 應用程序的要求

  • 使用C/C ++ 工作負載安裝Visual Studio 2013或更高版本。
  • 安裝Windows軟件開發工具包 (SDK)
  • 要編譯內核插件,請使用與已安裝的Windows SDK版本匹配的版本安裝Windows驅動程序工具包 (WDK) (WDK和SDK版本號應相同)。有關更多信息,請參閲Microsoft網站。
  • 或者,Microsoft的EWDK映像也可用於編譯基於WinDriver的應用程序,而無需安裝Visual Studio,SDK和WDK。

3.1.2. Linux系統要求

以下任何一種處理器體系結構,具有2.6.x或更高版本的Linux內核:

  • 32位x86。
  • 64位x86 AMD64或Intel EM64T (x86_64)
  • ARM Cortex-A7,A9,A15,A53,A57.

ℹ️ 備註

Jungo努力支持新的linux內核版本儘可能接近他們的發行版。要了解最新支持的內核版本,請參閲WinDriver發行説明,可以在WinDriver發行説明。

  • 一個GCC編譯器。GCC編譯器的版本應該與用於構建正在運行的linux內核的編譯器版本相匹配。
  • 任何支持C for user模式的32位或64位開發環境 (取決於您的目標配置)。
  • 在您的開發PC上:glibc2.14.x (或更新版本)。
  • 運行GUI WinDriver應用程序需要以下庫 (例如,DriverWizard (請參閲第6章: 使用DriverWizard); 調試監視器 (詳見8.2.調試監視器):
  • libstdc++.so.6
  • libpng12.so.0
  • libQt5Gui.so
  • libQt5Core.so
  • libQt5Network.so
  • libQt5PrintSupport5.so
  • make, gcc, flex, bison(用於安裝WinDriver和內核插件)
  • libcurl4-openssl-dev(用於重新編譯WDAPI庫)
  • 正在運行的Linux內核可選依賴項的內核源代碼:
  • gcc-multilib(用於在64位系統上編譯32位應用程序)
  • libcurl4-openssl-dev:i386(用於在64位系統上重新編譯32位WDAPI庫)
  • Cmake (用於編譯用户模式示例)

檢查3.2.2.1.為安裝準備系統有關如何在各種Linux發行版上安裝上述要求的説明。

3.1.3.MacOS系統要求

請確保您的開發機器符合以下要求:

  • 運行MacOS版本10.10-11的Apple Macintosh計算機。
  • XCode命令行工具

3.2.WinDriver安裝過程

3.2.1.Windows WinDriver安裝説明

⚠注意

在Windows上安裝驅動程序需要管理員權限。

  • 運行WinDriver安裝-WD1650.EXE(對於32位) 或WD1650X64.EXE(對於64位) 或WD1650ARM64.EXE-並按照安裝説明進行操作。
  • 安裝結束時,系統可能會提示您重新啓動計算機。

WinDriver安裝定義了一個WD_BASEDIR環境變量,該變量設置為指向安裝過程中選擇的WinDriver目錄的位置。此變量在DriverWizard代碼生成過程中使用-它確定用於保存生成的代碼的默認目錄,並在生成的項目/生成文件的包含路徑中使用。此變量也用於示例內核插件項目和makefile中。

如果安裝失敗並出現ERROR_FILE_NOT_FOUND錯誤,請檢查Windows註冊表以查看RunOnce鍵是否存在於HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows\CurrentVersion。為了使用INF文件正確安裝驅動程序,Windows即插即用需要此註冊表項。如果RunOnce缺少密鑰,請創建它; 然後嘗試再次安裝INF文件。

以下步驟僅適用於註冊用户:

要使用您從Jungo收到的許可證註冊您的WinDriver副本,請按照下列步驟操作:

啓動驅動程序嚮導:開始|程序|WinDriver|驅動程序嚮導。
選擇註冊WinDriver選項從文件菜單,並插入從Jungo收到的許可證字符串。
單擊激活許可證按鈕。
要註冊您在評估期間開發的源代碼,請參閲WDU_Init()/WDC_DriverOpen()。
使用低級WD_xxx API而不是WDC_xxx API (默認情況下使用) 時,請參閲WD_License()在本手冊中。

3.2.1.1.設置測試簽名

WinDriver安裝程序中的一個頁面專門用於設置您的計算機以對驅動程序包進行測試簽名。本節包含以下選項:

  1. Create test certificate checkbox: 選中此複選框將創建自簽名測試證書。安裝後,您可以通過雙擊.cer文件:$WD_BASEDIR/WinDriver1650_development.cer,或通過查看本地計算機的證書存儲。為此,請打開 “運行” 對話框 (WinKey + r) 並輸入certlm.msc。您將能夠看到WinDriver1650.development “個人” 、 “受信任的根認證機構” 和 “受信任的發佈者” 下的證書
  2. 啓用 test sign mode複選框: 選中此複選框將通過啓用testsigning引導配置。此模式允許加載測試簽名的驅動程序。

⚠注意

更改後testsigning引導配置,需要重新啓動才能使更改生效。這些更改生效後,您無需在開發過程中使用Windows安全設置執行任何其他操作 (與禁用數字簽名強制相反,這必須在每次重新啓動後執行)。

⚠注意

您必須具有管理權限並禁用安全啓動才能更改testsigning引導配置。

啓用或禁用此配置可以使用wdreg.exe(見17.3.5.1.1啓用和禁用測試簽名模式)

關於WindRriver_windriver1270激活_驅動程序

3.2.2.Linux WinDriver安裝説明

3.2.2.1.為安裝準備系統

在Linux中,內核模塊必須使用與編譯內核本身相同的頭文件進行編譯。由於WinDriver安裝內核模塊,因此在安裝過程中必須使用linux內核的頭文件進行編譯。

在諸如Ubuntu,CentOS和Fedora之類的現代Linux發行版中,內核標頭通常已經隨操作系統一起安裝,或者可以通過發行版的軟件包管理器輕鬆獲得。我們的建議是跳到下一節,如果失敗,請嘗試此處提到的步驟。

在其他不太常見的linux內核/發行版上,編譯內核本身可能是必要的。如果您正在使用這樣的內核,有關編譯它的更多信息,請查看您正在使用的linux內核的文檔。

以下説明可能會根據發行版的不同版本而有所不同。

CentOS:

# Prepare and update apt package manager databases
sudo yum update
 
# Install prerequistes for kernel development and kernel headers
sudo yum install kernel-devel kernel-headers
sudo yum groupinstall "Development Tools"
 
# qt5 install for GUI applications to work
sudo yum --enablerepo=extras install epel-release
sudo yum install qt5-qtbase qt5-qtbase-gui
 
# Install in order to be able to recompile wdapi
sudo yum install libcurl-devel

瀏覽網頁以查找適用於您的CentOS版本的CMake的確切安裝説明。

Ubuntu/Debian:

# Prepare and update apt package manager databases
sudo apt update
 
# Install prerequistes for kernel development and kernel headers
sudo apt install make gcc bison flex linux-headers-$(uname -r)
 
# CMake install for compiling user mode samples and generated code
sudo apt install cmake
 
# qt5 install for GUI applications to work
sudo apt install libqt5gui5 libqt5printsupport5

Fedora (在版本36上測試):

# Prepare and update apt package manager databases
sudo dnf update
 
# Install prerequistes for kernel development and kernel headers
sudo dnf install kernel-devel kernel-headers
sudo dnf groupinstall "Development Tools"
  • 在開發Linux計算機上,將目錄更改為首選安裝目錄,例如,更改為主目錄:
$ cd ~

⚠注意

安裝目錄的路徑不能包含任何空格。

  • 提取WinDriver分發文件-WD1650LN.tar.gz/WD1650LNx86_64.tar/WD1650LNARM.tar/WD1650LNARM64.tar
$ tar -xvzf <file location>/WD1650LN[x86_64/ARM/ARM64].tar.gz

3.2.2.2.在x86/x86_64系統上安裝WinDriver

為了使以下説明工作,請確保您已執行中3.2.2.1.描述的安裝系統的準備

  • 將目錄更改為您WinDriver的redist目錄 (tar自動創建WinDriver目錄):
$ cd <WinDriver directory path>/redist
  • 安裝WinDriver,輸入以下內容:
`<WinDriver directory>/redist`$ ./configure

⚠注意

配置腳本根據正在運行的內核創建makefile。您可以選擇使用另一個已安裝的內核源,方法是使用--with-kernel-source=選項,其中是內核源目錄的完整路徑-例如,/usr/src/linux。如果Linux內核版本為2.6.26或更高版本,則配置腳本會生成使用kbuild編譯內核模塊的makefile。有關配置腳本選項的完整列表,請使用--help選項:./configure --help

⚠注意

如果要對具有相同VID/PID的多個USB設備使用WinDriver,請在makefile.usb.kbuild添加-DMULTIPLE_SAME_DEVICES到EXTRA_CFLAGS變量中。

  • 然後:
<WinDriver directory>/redist $ make
  • 安裝驅動程序 (以root用户身份):
<WinDriver directory>/ddist $ sudo make install
  • 創建一個符號鏈接,以便您可以輕鬆啓動DriverWizard GUI:
$ ln -s <WinDriver路徑>/wizard/wdwizard /usr/bin/wdwizard

在較舊的Linux環境 (如Ubuntu 16.04) 上,系統提供Qt4而不是Qt5,請運行wdwizard_legacy而不是wdwizard。

  • 更改文件wdwizard的讀取和執行權限,以便普通用户可以訪問此程序。
  • 更改用户和組id並授予對設備文件的讀/寫權限/dev/windrvr1650,具體取決於您希望允許用户通過設備訪問硬件的方式。由於安全原因,默認情況下,僅使用root用户的權限創建設備文件。通過修改您的/etc/udev/permissions.d/50-udev.permissions文件。例如,添加以下行以提供讀取和寫入權限:windrvr1650:root:root:0666
  • 定義一個新的WD_BASEDIR環境變量,並將其設置為指向安裝過程中選擇的WinDriver目錄的位置。此變量用於WinDriver示例和生成的DriverWizard代碼的make和源文件中,還用於確定保存生成的DriverWizard項目的默認目錄。如果您不定義此變量,則在嘗試使用WinDriver makefiles構建示例/生成的代碼時,將指示您這樣做。
  • 退出超級用户模式:
# exit
  • 您現在可以開始使用WinDriver訪問您的硬件並生成驅動程序代碼!

⚠注意

使用WinDriver/util/wdreg腳本加載WinDriver內核模塊。

以下步驟僅適用於註冊用户:

要使用您從Jungo收到的許可證註冊您的WinDriver副本,請按照下列步驟操作:

  • 啓動驅動程序嚮導:
$ <path to WinDriver>/wizard/wdwizard
  • 從文件菜單選擇Register WinDriver 選項,並輸入從Jungo收到的許可證字符串。
  • 單擊激活許可證按鈕。
  • 要註冊您在評估期間開發的源代碼,請參閲WDC_DriverOpen()。使用低級WD_xxx API而不是WDC_xxx API (默認情況下使用) 時,請參閲WD_License()在本手冊中。

3.2.2.3.在ARM/ARM64系統上安裝WinDriver

為了使以下説明工作,請確保您已執行中3.2.2.1.描述的安裝系統的準備;以下步驟假設您能夠在ARM/ARM64平台上編譯WinDriver的內核模塊,並將其與正在運行的內核的標頭鏈接。如果您的平台無法做到這一點,
請參見3.2.2.3.1.針對Linux ARM/ARM64系統交叉編譯WinDriver內核模塊

從WinDriver 14.0.0開始,Jungo發佈了統一的ARM和ARM64版本,試圖支持儘可能多的平台。我們已經測試了不同的平台與WinDriver一起工作,但我們認為具有類似憑據的其他平台應該與這些設置一起工作。

因此,我們提供了一個安裝腳本wd_arm_install.sh或wd_arm64_install.sh,允許用户手動或自動嘗試不同編譯的WinDriver內核模塊,直到用户希望成功安裝它們。

為了能夠開始:

  • 確保您擁有Linux的所有WinDriver依賴項 (gcc,Make,正在運行的kernel sources/headers)。ARM目前不支持Qt應用程序,因此不需要Qt dll。
    運行以下命令:
cd WinDriver/redist && sudo ./wd_arm64_install.sh

或者取決於你的平台。

cd WinDriver/redist && sudo ./wd_arm64_install.sh
  • 選擇平台類型以安裝WinDriver,或選擇自動安裝以嘗試在您的平台上安裝所有可用版本的WinDriver。如果安裝成功,腳本將退出。如果需要,您可以修改腳本的源代碼以重新分發驅動程序。
  • 如果所有安裝都失敗-請隨時聯繫Jungo的支持,以獲取在您的平台上運行WinDriver或為其移植WinDriver的幫助,請訪問sales@jungo.com。
3.2.2.3.1.針對Linux ARM/ARM64系統交叉編譯WinDriver內核模塊

某些ARM/ARM64平台不支持在平台本身上編譯內核模塊 (這是在Linux上安裝WinDriver的經典和推薦方法)。對於這些情況,我們提供了一種在開發機器上交叉編譯WinDriver內核模塊,然後將其安裝在ARM/ARM64平台上的方法。為此,請執行以下步驟:

在開發機器上:

  1. 從供應商的網站獲取並交叉編譯您平台的linux內核源代碼。搜索供應商關於如何執行此操作的説明。
  2. 確保您已經為平台安裝了相關的gcc編譯器 (ARM:arm-linux-gnueabihf-gcc,ARM64:aarch64-linux-gnu-gcc)。
  3. 將ARM/ARM64 WinDriver軟件包下載到您的Linux開發機器上 (即使您的開發平台具有不同的體系結構!)。
  4. 解開WinDriver軟件包
$ tar -xzvf WD1650LNARM.tar.gz
# or 
$ tar -xzvf WD1650LNARM64.tar.gz
  1. 轉到redist文件夾並運行交叉編譯腳本:

對於ARM:

$ cd WD1650LNARM/redist
$ sudo ./wd_arm_cross_compile.sh PATH_TO_YOUR_COMPILED_KERNEL_SOURCE

或對於ARM64:

$ cd WD1650LNARM64/redist
$ sudo ./wd_arm64_cross_compile.sh PATH_TO_YOUR_COMPILED_KERNEL_SOURCE

按照腳本中的説明進行操作,並選擇其中一個選項.ko要生成的文件。由於您的平台可能與腳本中列出的平台不同 (那裏有無數的平台和內核類型),您可以嘗試使用不同的選項進行編譯,並嘗試在您的平台上安裝生成的內核模塊,直到找到一個有效的版本。如果在嘗試了所有版本後,您還沒有找到適合您平台的版本,請隨時聯繫sales@jungo.com為進一步的援助。

在ARM/ARM64平台上:

  1. 將WinDriver軟件包傳輸到您的平台並untar它:
$ tar -xzvf WD1650LNARM.tar.gz
# or 
$ tar -xzvf WD1650LNARM64.tar.gz
  1. 轉到redist文件夾並安裝驅動程序:
$ cd WD1650LNARM/redist
  1. 在你的平台上覆制目錄WD1650/redist/LINUX.PRECOMPILED.ARM或WD1650/redist/LINUX.PRECOMPILED.ARM64從開發機器到WD1650/redist/LINUX.PRECOMPILED.ARM或WD1650/redist/LINUX.PRECOMPILED.ARM64。
  2. 安裝預編譯的內核模塊:
$ ./configure --enable-precompiled
$ sudo make precompiled_install

3.2.2.4.限制Linux上的硬件訪問

自從/dev/windrvr1650提供用户程序可直接硬件訪問,這可能會損害多用户Linux系統上的內核穩定性。請限制對DriverWizard和設備文件的訪問/dev/windrvr1650給受信任的用户。

出於安全原因,WinDriver安裝腳本不會自動執行更改/dev/windrvr1650和DriverWizard應用程序 (wdwizard)。

因此,在Linux中運行所有與WinDriver相關的用户應用程序的默認方式需要使用sudo或以root身份運行它們。驅動程序嚮導和調試監視器中涉及打開web瀏覽器的某些GUI功能可能無法正常工作,如果這些應用程序以root用户身份啓動。

更改的所有權/dev/windrvr1650到您的用户名可以Linux終端中使用chmod命令。

3.2.3.MacOS WinDriver安裝説明

3.2.3.1系統安裝準備

首先,禁用System Integrity Protection (SIP)。有關如何執行此操作的説明可能因不同的MacOS版本而異,因此請查找適用於您的特定版本的説明。

在MacOS 11 (Big Sur) 上,為了使WinDriver能夠加載,您可能還需要禁用Apple Mobile File Integrity (AMFI)。這可以通過添加"amfi_get_out_of_my_way=1"按以下方式添加到boot-args:

# Print out the nvram variables to see if boot-args already contain other values
sudo nvram -p
# If boot-args doesn't exist in the list or is empty, run this
sudo nvram boot-args="amfi_get_out_of_my_way=1"
# Otherwise, modify the command such that it keeps all previous values and appends
amfi_get_out_of_my_way=1 as well.

⚠注意

取消SIP和AMFI會削弱系統的安全機制,但WinDriver必須在MacOS上運行並允許一般的驅動程序開發。禁用這些機制的風險由您自己承擔。

之後,安裝依賴項,這些步驟假設您已安裝Homebrew包管理器。如果尚未安裝,請先安裝它,然後運行以下命令:

安裝Qt5 (需要DriverWizard、調試監視器需要)

$ brew install qt5

然後安裝CMake(編譯生成的代碼和示例所需)

$ brew install cmake

3.2.3.2在MacOS x86_64上安裝

然後使用終端窗口,運行以下命令:

# Unzipping
$ tar -xvzf WD1650MAC.tar.gz
# Driver install 
$ cd WD1650MAC/redist/ 
$ sudo ./wd_mac_install.sh

在MacOS版本11 (Big Sur) 及更高版本上,使用安裝腳本安裝WinDriver將從系統偏好設置的安全和隱私部分彈出消息,以允許安裝內核擴展。為了運行WinDriver,您必須允許安裝它。這也將需要重新啓動。重新啓動系統後,您可能需要再次運行

sudo ./wd_mac_install.sh

3.2.3.3 MacOS ARM64 (M1) 上的安裝

然後使用終端窗口,運行以下命令:

# Unzipping 
$ tar -xvzf WD1650MACARM64.tar.gz
# Driver install 
$ cd WD1650MACARM64/redist/ 
$ sudo ./wd_mac_install.sh
  • 適用於MacOS的ARM64版本的WinDriver要求用户在安裝之前指定他們希望使用的設備的供應商ID和產品ID。安裝腳本將提示用户輸入這些參數。有關更多信息,請搜索有關Apple的文檔IOPCIMatch。
  • 在MacOS版本11 (Big Sur) 及更高版本上,使用安裝腳本安裝WinDriver將從系統偏好設置的安全和隱私部分彈出消息,以允許安裝內核擴展。為了運行WinDriver,您必須允許安裝它。這也將需要重新啓動。重新啓動系統後,您可能需要再次運行
sudo ./wd_mac_install.sh

⚠注意

如果用户輸入的VID/PID掩碼太 “長” (覆蓋許多設備) 這可能會導致系統崩潰,因為MacOS Big Sur及更高版本不允許WinDriver訪問某些系統保留的設備。系統將重新啓動並刪除內核擴展,用户將不得不再次運行安裝腳本並輸入不同的更具體的參數才能安裝WinDriver。在此類系統上執行PCI掃描 (使用DriverWizard或WDC_PciScanDevices()) 將僅顯示在此階段回答用户提供的參數的設備。

3.3.升級您的安裝

要升級到新版本的WinDriver,請按照前面的第3.2節。下載並安裝新版本的WinDriver,該版本與您的開發平台以及您打算使用該驅動程序的目標平台的操作系統和CPU配置相匹配。

安裝後,啓動DriverWizard並輸入新的許可證字符串 (如果已收到)。這樣就完成了最低限度的升級步驟。

升級源代碼:

  • 將新的許可證字符串作為參數傳遞給WDC_DriverOpen()/WDU_Init()(或至WD_License()使用低級API時)。
  • 驗證對WD_DriverName()在您的驅動程序代碼 (如果存在) 中使用新驅動程序模塊的名稱-windrvr1650或此驅動程序的重命名版本。

如果您使用生成的DriverWizard代碼或來自新WinDriver版本的示例之一,則該代碼將已使用來自新版本的默認驅動程序名稱。此外,如果您的代碼基於早期版本的WinDriver生成/示例代碼,請使用windrvr.h從新版本足以更新代碼以使用新的默認驅動程序-模塊名稱 (由於使用WD_DEFAULT_DRIVER_NAME_BASE定義)。

如果您選擇重命名WinDriver驅動程序模塊 (如17.2章),確保您的代碼調用WD_DriverName()替換為您的自定義驅動程序名稱。如果將驅動程序從新版本重命名為舊項目中已使用的名稱,則無需修改代碼。

3.4.檢查您的安裝

3.4.1.安裝檢查

  • 啓動DriverWizard-/wizard/wdwizard。在Windows上,您還可以從Start菜單:Start|Programs|WinDriver|DriverWizard。
  • 如果您是註冊用户,請確保您的WinDriver許可證已註冊 (請參閲 [第3.2節] (3.2。WinDriver安裝過程),其中説明了如何安裝WinDriver並註冊您的許可證)。
  • 如果您是評估版用户,則無需註冊許可證。

對於pci卡/USB設備-將卡插入PCI總線/將設備插入USB插槽,並驗證DriverWizard是否檢測到它。對於ISA卡 (Windows和Linux) -將您的卡插入ISA總線,使用您的卡的資源配置DriverWizard並嘗試使用DriverWizard讀/寫卡。

3.5.正在卸載WinDriver

本節將幫助您卸載WinDriver的評估版或註冊版本

3.5.1.Windows WinDriver卸載説明

您可以選擇使用圖形wdreg_gui.exe實用程序,而不是wdreg.exe。

wdreg.exe和wdreg_gui.exe在WinDriver\util目錄下
(見第16章: 動態加載驅動程序有關這些實用程序的詳細信息)。

要卸載WinDriver,請按照以下步驟操作:

  • 關閉所有打開的WinDriver應用程序,包括DriverWizard、調試監視器和特定於用户的應用程序。
  • 如果您創建了內核插件驅動程序,請卸載並擦除它:
    (如果您的內核插件驅動程序當前已安裝,請使用wdreg實用程序:)
# The Kernel PlugIn driver name should be specified without the `*.sys` extension.
wdreg -name <Kernel PlugIn name> uninstall

從windir%\system32\drivers目錄,卸載已通過INF文件向WinDriver註冊的所有即插即用設備 (USB/PCI):

# Uninstall a device INF using the wdreg utility:
wdreg -inf <path to the INF file> uninstall
  • 驗證沒有INF文件註冊您的設備 (s) 與WinDriver的內核模塊 (windrvr1650.sys) 中找到windir%\inf directory。
  • 卸載WinDriver:
  1. 在開發PC上,在其上安裝了WinDriver工具包:開始|WinDriver|卸載,或運行uninstall.exeWinDriver安裝目錄中的實用程序。卸載將停止並卸載WinDriver內核模塊 (windrvr1650.sys); 刪除windrvr1650.inf文件從windir%\inf目錄; 從windows中刪除WinDriver開始菜單; 刪除WinDriver安裝目錄 (添加到此目錄的文件除外); 從桌面上刪除DriverWizard和Debug Monitor實用程序的快捷方式圖標。
  2. 在目標PC上,在其上安裝了WinDriver內核模塊 (windrvr1650.sys),但不是整個WinDriver工具包。使用wdreg用於停止和卸載驅動程序的實用程序:
wdreg -inf <path to windrvr1650.inf> uninstall

⚠注意

運行此命令時,windrvr1650.sys應位於同一目錄中windrvr1650.inf。

在開發PC上,相關的wdreg卸載命令由卸載實用程序執行。

如果在WinDriver服務有打開的句柄時嘗試卸載WinDriver (windrvr1650.sys或者您重命名的驅動程序,或者有已連接並已啓用的即插即用設備註冊為使用此服務,wdreg將無法卸載驅動程序。這可確保您在使用驅動程序時不會將其卸載。

您可以通過運行調試監視器實用程序來檢查是否加載了WinDriver內核模塊 (WinDriver\util\wddebug_gui.exe)。加載驅動程序時,調試監視器日誌會顯示驅動程序和操作系統信息; 否則,它會顯示相關的錯誤消息。在開發PC上,uninstall命令將刪除調試監視器可執行文件; 要在卸載後使用此實用程序,請在執行卸載過程之前創建wddebug_gui.exe的副本。

  • 如果windrvr1650.sys已成功卸載,請擦除以下文件 (如果存在):
  • windir%\system32\drivers\windrvr1650.sys
  • windir%\inf\windrvr1650.inf
  • windir%\system32\wdapi1650.dll
  • windir%\system32\wdapi1650_arm64.dll(Windows ARM64)
  • windir%\sysWOW64\wdapi1650_32.dll(Windows x64)
  • 重新啓動計算機。

3.5.2.Linux WinDriver卸載説明

必須以root權限執行以下命令。

  • 驗證WinDriver驅動程序模塊是否未被其他程序使用:
  • 查看模塊列表和使用它們的程序:
> /sbin/lsmod "
  • 確定使用WinDriver驅動程序模塊的所有應用程序和模塊。默認情況下,WinDriver模塊名稱以windrvr1650。
  • 關閉使用WinDriver驅動程序模塊的所有應用程序。
  • 如果創建了內核插件驅動程序,請卸載內核插件驅動程序模塊:
/sbin/rmmod kp_xxx_module
  • 運行以下命令以卸載WinDriver驅動程序模塊:
/sbin/modprobe -r windrvr1650
  • 如果你創建了一個內核插件驅動程序,也要刪除它。
  • 刪除文件.windriver.rc從/etc目錄:
rm -f /etc/.windriver.rc
  • 刪除文件.windriver.rc從$HOME:
rm -f $ HOME/.windriver.rc
  • 如果創建了指向DriverWizard的符號鏈接,請使用以下命令刪除該鏈接:
rm -f /usr/bin/wdwizard
  • 使用以下命令刪除WinDriver安裝目錄:
rm -rf (WinDriver目錄的路徑)

例如,# rm -rf ~/WinDriver。

  • 刪除WinDriver共享對象文件 (如果存在):
/usr/lib/libwdapi1650.so(32位x86) 
/usr/lib64/libwdapi1650.so(64位x86)

3.5.3.MacOS WinDriver卸載説明

要在MacOS上卸載WinDriver,請打開終端窗口並鍵入以下命令:

$ cd WinDriver-1650-Darwin/redist/ 
$ sudo ./wd_mac_uninstall.sh