共用方式為


如何選取及設定裝置基本概念測試

適用於 Windows 8 的 WDK 提供驅動程式測試架構,其中包含一組稱為裝置基本概念測試的測試。 裝置基本概念測試是一組測試,這些測試同時用於內部Microsoft,以測試隨附於 Windows 和 WDK 的驅動程式和驅動程式範例,以及作為硬體 Windows 認證計劃的一部分。 您可以從開發環境執行測試。 當您執行測試時,可以使用用於 Windows 認證測試的相同參數,或者您可以根據您的測試和偵錯需求來設定和自定義運行時間參數。

充分利用裝置基本概念測試

若要從裝置基本概念測試中獲得最大好處,預設 I/O 外掛程式必須支援您的裝置。若要查看您的裝置類型是否受到支援,以及判斷是否有特定的測試需求,請參閱 提供的 WDTF 簡單 I/O 外掛程式。裝置基本概念測試也包含一個公用程式,可用來測試您的裝置,以查看它是否受到支援。 如果您的裝置不受支援,您可以建立 WDTF 簡易 I/O 外掛程式。 在 Visual Studio 中。 如需詳細資訊,請參閱 如何使用WDTF簡單 I/O 動作外掛程式來自定義裝置的 I/O。

關於裝置基本概念測試

WDK 會在兩種設定中提供裝置基本概念測試:基本和認證。 在這兩個組態中,您可以編輯測試參數來變更測試的長度、要執行的測試週期數目,以及其他測試參數,視您想要測試目標裝置或驅動程式的方式而定。 基本設定適用於一般驅動程式和裝置測試和偵錯。 在開發週期中及早使用基本設定。 基本組態中的測試與 Windows 認證測試中使用的設定相同,但運行時間較短除外。 在 [認證] 組態中,測試具有與 Windows 認證測試中使用的相同設定。 使用認證組態來驗證測試裝置或硬體 Windows 認證計劃的驅動程式的整備程度。

裝置 基本概念測試 包含下列類別中的測試。

設定運行時間測試參數

您可以編輯許多裝置基本概念測試的運行時間參數。 在 [驅動程序測試群組] 視窗中,測試名稱旁的箭號 (») 表示測試具有您可以變更的參數。 選取箭號 (») 以顯示運行時間參數。

其中一個最有用的參數是 DQ,指定要測試的目標裝置。 預設值 (IsDevice) 會測試目標電腦上的所有裝置。 DQ 參數會採用可識別目標裝置的 WDTF SDEL 查詢。 您可以指定特定裝置進行測試,例如:

DeviceID='USB\ROOT_HUB\4&1CD5D022&0' 只會選取裝置以使用指定的 DeviceID 進行測試。

如需 DQ 和其他運行時間參數的詳細資訊,請參閱裝置基本概念測試參數

裝置基本概念測試參數

參數 描述

DQ

識別應該用於測試的裝置或裝置。 DQ 參數會採用可識別目標裝置的 WDTFSDEL 查詢。 此查詢非常有彈性,而且可用來表達任何數目的裝置,從單一裝置到系統中的所有裝置。

常見範例:

若要測試與特定 INF 檔案一起安裝的所有裝置:

INF::FileName=INF_File_Name

例如, INF::OriginalInfFileName='KMDFTest.inf'

Inf::OriginalInFileName 可以搭配任何 INF 使用。

若要測試具有特定裝置識別碼的裝置:

DeviceId='DeviceId'

例如, DeviceID='USB\ROOT_HUB\4&1CD5D022&0'

若要測試具有特定介面的裝置:

Interface::InterfaceGUID

若要測試具有特定驅動程式信件的裝置:

Volume::D riverLetter='DriveLetter'

例如, Volume::D riverLetter='c:\'

若要測試具有特定驅動程式的裝置:

DriverBinaryNames=mydriver.sys

其中 KMDFTest.inf 是用來安裝驅動程式的 inf 。 您也可以使用 folloiwng 以使用 KMDFTest.sys 驅動程式的裝置為目標。

DriverBinaryNames=』KMDFTest.sys『) 可運作。

正確設定 SDEL 之後,您應該會在控制臺上看到下列輸出,當您執行測試時。

WDTF_TARGETS: INFO : - Query(“IsDevice AND ((Inf::OriginalInfFileName='KMDFTest.inf'))”) WDTF_TARGETS: INFO: Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TEST : INFO : WARNING: 測試未強制啟用驅動程式驗證器。WDTF_TEST: INFO : DV 已啟用 Flag:=0x209bb WDTF_TEST : INFO : DV 已成功啟用此 devnode(UniqueTargetName):=KMDFTest 裝置 ROOT\SAMPLE\0000 WDTF_TARGET : INFO : INFO : - GetInterface(“Support”) WDTF_TARGET : INFO : Target: DESKTOP-2OVFH3G WDTF_TARGETS : INFO : - Query(“IsDevice”) WDTF_TARGETS : INFO : Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGETS : INFO : - GetRelations(“below-or-self/”,“IsDevice”) WDTF_TARGETS: INFO: Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGETS : INFO : - GetInterfacesIfExist(“SimpleIOStressProc”) WDTF_SIMPLE_IO: INFO : - 針對 Target:KMDFTest 裝置 ROOT\SAMPLE\0000 找不到簡單的 IO 接口。WDTF_SIMPLE_IO: INFO : - 針對 Target:KMDFTest 裝置 ROOT\SAMPLE\0000 WDTF,將會使用 ANY Simple IO Interface。

如需詳細資訊,請參閱附加的檔案組態和記錄檔。 WDTF_TARGETS: INFO: Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TEST : INFO : 執行 I/O 終止測試WDTF_TEST的 1 個週期: INFO : INFO : I/O 終止週期 #1 WDTF_SIMPLEIO_STRESS_PROC: INFO : - StartAsync(KMDFTest Device ROOT\SAMPLE\0000 ) WDTF_SIMPLEIO_STRESS_PROC: INFO : - WaitAsyncCompletion(KMDFTest Device ROOT\SAMPLE\0000 ) WDTF_SIMPLE_IO: INFO : - for Target:KMDFTest 裝置 ROOT\SAMPLE\0000 找不到簡單的 IO 介面。WDTF_SIMPLE_IO: INFO : - 針對 Target:KMDFTest 裝置 ROOT\SAMPLE\0000 WDTF,將會使用 ANY Simple IO Interface。WDTF_SIMPLE_IO: INFO : - Open(KMDFTest Device ROOT\SAMPLE\0000 ) Try count 1 WDTF_SUPPORT : INFO : - WaitForMinutes : 1 WDTF_SIMPLE_IO : INFO : INFO : - PerformIO(KMDFTest Device ROOT\SAMPLE\0000 ) Count 1 WDTF_SIMPLEIO_STRESS_PROC: INFO : - Terminate(KMDFTest Device ROOT\SAMPLE\0000 ) 進程

若要測試特定裝置類別的所有裝置:

例如, Class=CDROM 會測試 CDROM 類別的所有裝置。

例如, ClassGUID= {36fc9e60-c465-11cf-8056-444553540000} 會測試類別 GUID 符合指定 GUID 的所有裝置。 在此情況下,GUID 適用於 USB 類別。

DoPoolCheck

是非題。 使用集區標籤和外觀清單,監視驅動程式使用分頁和非分頁系統記憶體集區。 此選項也會監視所處理的例外狀況數目變更,這可能表示例外狀況處理中的錯誤。

ChangeBufferProtectionFlags

是非題。 變更傳遞至測試裝置之緩衝區的記憶體保護旗標。 記憶體保護旗標在無存取權、只讀和唯讀之間交替使用頁面防護。

DoSimpleIO

是非題。 在執行 PNP 作業之前和之後,在測試裝置上執行 SimpleI/O (如果找到的話)。

DoConcurrentIO

是非題。 使用 WDTF 並行 I/O 介面,在執行 PnP 作業時,將 I/O 要求傳送至目標裝置堆疊。

FillZeroPageWithNull

是非題。 對應零頁,並填入NULL值。 此測試會識別在取值指標之前未驗證指標參考的驅動程式。

FuzzTestPeriod

以分鐘為單位的模糊測試期間。

HPU

指定高處理器使用率百分比。

類比

是非題。 以沒有系統管理員許可權的使用者身分執行測試。

IOPeriod

指定以分鐘為單位的 I/O 期間。

IOType

指定 I/O 壓力測試的類型:SimpleIOStressEx 或 SimpleIOStressProc (個別程式中的 I/O)。

LPU

指定低處理器使用率百分比

MaxInBuffer

指定測試傳遞至 FSCTL 中驅動程式的輸入緩衝區大小上限,以位元組為單位(或 IOCTL 測試的 IOCTL)。

MinInBuffer

指定測試在 FSCTL 中傳遞至驅動程式的輸入緩衝區大小下限,以位元組為單位(或 IOCTL 測試的 IOCTL)。

MaxOutBuffer

指定測試在 FSCTL 中傳遞至驅動程式的輸出緩衝區大小上限,以位元組為單位(或 IOCTL 測試的 IOCTL)。

MinOutBuffer

指定測試在 FSCTL 中傳遞至驅動程式的輸出緩衝區大小下限,以位元組為單位(或 IOCTL 測試的 IOCTL)。

MaxRandomCalls

指定測試所發出的呼叫數目上限。

MaxTailoredCalls

指定量身訂做隨機測試期間測試問題的最大呼叫數目。

MaxDeviceType

指定 FSCTL 中 DeviceType 欄位的最大值(或 IOCTL 測試的 IOCTL)。 可能的最大值為 65535。

MinDeviceType

指定 FSCTL 中 DeviceType 欄位的最小值(或 IOCTL 測試的 IOCTL)。 可能的最小值為 0。

MaxFunctionCode

指定 FSCTL 中 FunctionCode 欄位的最大值(或 IOCTL 測試的 IOCTLs)。 可能的最大值為 4095。

MinFunctionCode

指定 FSCTL 中 FunctionCode 欄位的最小值(或 IOCTL 測試的 IOCTL)。 可能的最小值為 0。

指定處理器使用率百分比

PingPongPeriod

指定以分鐘為單位的乒乓球期間:處理器在高 (HPU) 和低 (LPU) 處理器使用率之間交替的時間。

ResumeDelay

機器從睡眠模式恢復,並在下一個 I/O 周期開始之前,延遲時間(以秒為單位)。 允許裝置還原其工作狀態所需的延遲時間(更新網路卡的IP位址等等)。

TestCycles

指定要執行的測試週期數(反覆專案)。

WDTFREMOTESYSTEM

只有當受測裝置或其其中一個子裝置是沒有IPv6閘道位址的有線網路適配器時,才需要此參數。 如果您的網路上需要此參數,您必須提供測試網路適配器可以 Ping 到測試網路的 IPv6 位址。

範例: fe80::78b6:810:9c12:46cd

Wpa2PskAesSsid

只有當受測裝置或其其中一個子裝置是WiFi配接器時,才需要此參數。 提供WPA2 AES WiFi 網路的 SSID,測試可用來測試WiFi配接器。

默認值: kitstestssid

Wpa2PskPassword

只有當受測裝置或其其中一個子裝置是WiFi配接器時,才需要此參數。 提供使用 Wpa2PskAesSsid 參數所指定的 WPA2 AES WiFi 網路密碼。

默認值: password

公用程序測試

Test 描述

顯示具有 WDTF 簡單 I/O 外掛程式的裝置

參數:

顯示已啟用驅動程式驗證工具的裝置

參數:

顯示裝置

參數:

驅動程式驗證器

Test 描述

停用驅動程式驗證程式

停用 測試電腦上的驅動程式驗證器

參數:

啟用驅動程式驗證器

您可以使用此測試,為測試電腦上的裝置(或裝置)的所有驅動程式啟用 驅動程式驗證器

參數: - 請參閱 驅動程式驗證器選項