共用方式為


DF - 模糊開啟和關閉測試 (可靠性)

此測試會執行數千個 create-open-close 序列,並採用數種不同的方式來開啟和關閉指定裝置或裝置的實例:基本開啟作業、直接裝置開啟作業,以及開啟和關閉壓力測試。

基本開啟作業

在基本開啟作業期間,模糊測試會重複開啟, (使用不同的方法和選項,建立指定裝置或指定驅動程式匯出的) 實例。

模糊測試一律會執行基本開放式作業。 您不需要選取它們,也無法從測試會話中排除它們。

模糊測試會呼叫適用于裝置的系統服務, (ZwXxx 常式) 呼叫系統服務,以在使用者模式中執行所有開啟作業。 如果開啟呼叫傳回裝置的控制碼,模糊測試會使用控制碼來執行針對測試會話選取的其他裝置測試。

基本開啟作業有五種類型:

  • 標準開啟: 模糊測試會以非同步方式開啟裝置,並只指定原生裝置名稱。

  • 以新增反斜線開啟: 模糊測試會發出裝置名稱的開啟呼叫,後面接著反斜線 () ,例如 \device\cdrom\,就像呼叫是在裝置內開啟根目錄一樣。

    此作業會決定驅動程式或檔案系統在其命名空間中如何管理開啟的要求。 特別是,如果裝置在其命名空間中不支援開啟要求,驅動程式必須藉由失敗要求來防止未經授權的存取,或在呼叫IoCreateDevice 或 IoCreateDeviceSecure時設定FILE_DEVICE_SECURE_OPEN裝置特性來建立裝置物件。

  • 開啟為具名管道: 模糊測試會開啟裝置,並建立裝置的具名管道。 shareAccess) (存取參數一開始會設定為讀取和寫入,但如果要求失敗,則會調整。 如果裝置不支援具名管道,它應該會失敗要求。

  • 以 mailslot 開啟: 模糊測試會將裝置開啟為 mailslot。 如果裝置不支援這種類型的連線,它應該會失敗要求。

  • 開啟為樹狀結構連線: 模糊測試會將裝置開啟為樹狀結構連線,以用於遠端網路存取。 shareAccess) (存取參數一開始會設定為讀取和寫入,但如果要求失敗,則會調整。 如果裝置不支援這種類型的連線,它應該會失敗要求。

開啟呼叫中使用的參數會因應裝置的特性而有所不同,而且可能會讓呼叫成功。 例如,如果基本開啟作業失敗,因為呼叫不符合裝置的安全性需求,則模糊測試會重複開啟作業,並要求較少存取。 例如,如果要求寫入存取權的開啟作業傳回安全性違規錯誤,則會重複開啟並要求讀取權限。

直接裝置開啟作業

直接裝置開啟作業期間,模糊測試會以裝置的形式直接開啟裝置,而不是檔案系統中的檔案。 直接裝置開啟作業一律為同步。 如果呼叫成功,模糊測試會使用提供的控制碼來執行其他選取的測試。

開啟和關閉測試

開啟和關閉測試期間,模糊測試會建立數個執行緒,每個執行緒都會執行數千個 create-open-close 序列。 這會測試驅動程式處理不尋常、簡單且預期的呼叫量的能力。

Open 和 Close 測試會使用基本開啟作業和以新增反斜線測試開啟所使用的相同選項,並在這些測試之前執行。

測試二進位檔: Devfund_FuzzTest.dll Test 方法: DoOpenCloseTest

測試詳細資料

   
規格
  • Device.DevFund.Reliability.BasicReliabilityAndPerformance
  • Device.DevFund.Reliability.BasicSecurity
  • Device.DevFund.DriverFramework.KMDF.Reliability
  • Device.DevFund.DriverFramework.UMDF.Reliability
平台
  • Windows 10,用戶端版本 (x86)
  • Windows 10,用戶端版本 (x64)
  • Windows Server 2016 (x64)
  • Windows 10,用戶端版本 (Arm64)
  • Windows 10,行動裝置版 (Arm)
  • Windows 10,行動裝置版 (Arm64)
支援的版本
  • Windows 10
  • Windows 10 (版本 1511)
  • Windows 10 (版本 1607)
  • Windows 10 (版本 1703)
  • Windows 10 (版本 1709)
  • Windows 10 (版本 1803)
  • Windows 10 版本 1809
  • Windows 10 (版本 1903)
  • Windows 10的下一個更新
預期的執行時間 (以分鐘為單位) 15
類別 案例
以分鐘為單位的逾時 () 180
需要重新開機 false
需要特殊設定 true
類型 automatic

 

其他檔

此功能區域中的測試可能會有其他檔,包括必要條件、設定和疑難排解資訊,可在下列主題中找到 () :

執行測試

執行測試之前,請先完成測試設定,如測試需求中所述: Device.Fundamentals 可靠性測試必要條件

疑難排解

如需 HLK 測試失敗的一般疑難排解,請參閱 針對 Windows HLK 測試失敗進行疑難排解

如需 HLK 和 WDK 中裝置基本概念測試的特定疑難排解資訊,請參閱 Device.DevFund 其他檔

詳細資訊

參數

參數名稱 參數描述
DQ WDTF SDEL 查詢,用來識別目標裝置 () - https://go.microsoft.com/fwlink/?LinkId=232678
Wpa2PskAesSsid 只有在 DUT 或其其中一個子裝置是 WiFi 配接器時才需要。 請提供 WPA2 AES WiFi 網路的 SSID,讓測試可用來測試 WiFi 配接器。 預設值為 'kitstestssid'。
Wpa2PskPassword 只有在 DUT 或其其中一個子裝置是 WiFi 配接器時才需要。 請使用 Wpa2PskAesSsid 參數指定之 WPA2 AES WiFi 網路的密碼。 預設值為 'password'。
ChangeBufferProtectionFlags 是非題。 變更傳遞至測試裝置之緩衝區的記憶體保護旗標。 記憶體保護旗標會在沒有存取權、唯讀和唯讀之間替代,並使用頁面防護。
Impersonate 是非題。 以非系統管理使用者身分執行測試。
FillZeroPageWithNull 是非題。 對應零頁,並填入 Null 值。 此測試會識別在取值指標之前未驗證指標參考的驅動程式。
DoPoolCheck 是非題。 使用集區標籤和 lookaside 清單,監視驅動程式使用分頁和非分頁系統記憶體集區。 此選項也會監視所處理之例外狀況數目的變更,這可能表示例外狀況處理中的錯誤。
DoSync 是非題。 也會在同步模式中開啟裝置控制碼 (FILE_SYNCHRONOUS_IO_ALERT) 。 會略過隨機讀取和寫入作業。
TestCycles 測試週期數目。
DriverVerifierAdditionalDrivers 應啟用驅動程式驗證程式的其他驅動程式
DriverVerifierExcludedFlags 可能針對測試回合手動排除的驅動程式驗證器旗標預留位置
WDKDeviceID 受測裝置的裝置識別碼
QueryHardwareID 受測裝置的硬體識別碼
WDTFREMOTESYSTEM 只有在 DUT 或其其中一個子裝置是沒有 IPv6 閘道位址的有線 NIC 時才需要。 如果判斷為必要,請提供測試 NIC 可以 Ping 的 IPv6 位址來測試網路 I/O。 例如:fe80::78b6:810:9c12:46cd
DriverVerifierCustomizeConfiguration 指定此測試可能會想要自動更新驅動程式驗證程式設定