Auswählen und Konfigurieren der Gerätegrundlagentests

WDK für Windows 8 stellt ein Treibertestframework bereit, das eine Reihe von Tests enthält, die als Gerätegrundlagentests bezeichnet werden. Die Gerätegrundlagentests sind eine Sammlung von Tests, die sowohl intern bei Microsoft zum Testen der Treiber- und Treiberbeispiele verwendet werden, die mit Windows und dem WDK ausgeliefert werden, als auch extern im Rahmen des Windows-Zertifizierungsprogramms für Hardware. Sie können die Tests aus Ihrer Entwicklungsumgebung ausführen. Wenn Sie die Tests ausführen, können Sie dieselben Parameter verwenden, die für Windows-Zertifizierungstests verwendet werden, oder Sie können die Laufzeitparameter entsprechend Ihren Test- und Debuganforderungen konfigurieren und anpassen.

Das Beste aus den Tests der Gerätegrundlagen

Um den größten Nutzen aus den Tests der Gerätegrundlagen zu erzielen, muss Ihr Gerät von den Standard-E/A-Plug-Ins unterstützt werden. Informationen dazu, ob Ihr Gerätetyp unterstützt wird und ob bestimmte Anforderungen für Tests bestehen, finden Sie unter Bereitgestellte WDTF Simple E/A-Plug-Ins. Der Test "Gerätegrundlagen" enthält auch ein Hilfsprogramm, mit dem Sie Ihr Gerät testen können, um festzustellen, ob es unterstützt wird. Wenn Ihr Gerät nicht unterstützt wird, können Sie ein WDTF Simple E/O-Plug-In erstellen. in Visual Studio. Weitere Informationen finden Sie unter Anpassen von E/A für Ihr Gerät mithilfe des WDTF Simple E/O Action Plug-Ins.

Informationen zu den Gerätegrundlagentests

Der WDK stellt die Gerätegrundlagentests in zwei Konfigurationen bereit: "Basic" und "Certification". In beiden Konfigurationen können Sie die Testparameter bearbeiten, um die Länge des Tests, die Anzahl der auszuführenden Testzyklen und andere Testparameter zu variieren, je nachdem, wie Sie die Zielgeräte oder -treiber testen möchten. Die Basic-Konfiguration ist für allgemeine Tests und Debuggen von Treibern und Geräten vorgesehen. Verwenden Sie die Basic-Konfiguration frühzeitig und während des gesamten Entwicklungszyklus. Die Tests in der Basic-Konfiguration weisen dieselben Einstellungen auf, die beim Windows-Zertifizierungstest verwendet werden, mit Ausnahme einer kürzeren Laufzeit. In der Zertifizierungskonfiguration weisen die Tests dieselben Einstellungen auf, die beim Windows-Zertifizierungstest verwendet werden. Verwenden Sie die Zertifizierungskonfiguration, um die Bereitschaft zum Testen Ihres Geräts oder Treibers für das Windows-Zertifizierungsprogramm für Hardware zu überprüfen.

Die Gerätegrundlagentests umfassen Tests in den folgenden Kategorien.

Festlegen der Laufzeittestparameter

Sie können die Laufzeitparameter für viele der Gerätegrundlagentests bearbeiten. Im Fenster Treibertestgruppe gibt ein Pfeil (») neben einem Testnamen an, dass der Test Parameter enthält, die Sie ändern können. Wählen Sie den Pfeil (») aus, um die Laufzeitparameter anzuzeigen.

Einer der nützlichsten Parameter ist DQ, der das zu testende Zielgerät angibt. Der Standardwert (IsDevice) testet alle Geräte auf dem Zielcomputer. Der DQ-Parameter verwendet eine WDTF-SDEL-Abfrage, die die Zielgeräte identifiziert. Sie können ein bestimmtes Gerät zum Testen angeben, z. B.:

DeviceID='USB\ROOT_HUB\4&1CD5D022&0' wählt nur das Gerät zum Testen mit der angegebenen DeviceID aus.

Weitere Informationen zu DQ und den anderen Laufzeitparametern finden Sie unter Testparameter für Gerätegrundlagen.

Testparameter für Gerätegrundlagen

Parameter BESCHREIBUNG

DQ

Gibt das Gerät oder die Geräte an, die zum Testen verwendet werden sollen. Der DQ-Parameter verwendet eine WDTF-SDEL-Abfrage, die die Zielgeräte identifiziert. Diese Abfrage kann sehr flexibel sein und verwendet werden, um eine beliebige Anzahl von Geräten auszudrücken, von einem einzelnen Gerät bis zu allen Geräten im System.

Häufige Beispiele:

So testen Sie alle Geräte, die mit einer bestimmten INF-Datei installiert wurden:

INF::FileName=INF_File_Name

Beispiel : INF::OriginalInfFileName='KMDFTest.inf'

Inf::OriginalInFileName kann mit jedem INF verwendet werden.

So testen Sie ein Gerät mit einer bestimmten Geräte-ID:

DeviceId='DeviceId'

DeviceID='USB\ROOT_HUB\4&1CD5D022&0'

So testen Sie ein Gerät mit einer bestimmten Schnittstelle:

Schnittstellen::InterfaceGUID

So testen Sie ein Gerät mit einem bestimmten Treiberbuchstaben:

Volume::D riverLetter='DriveLetter'

Beispiel : Volume::D riverLetter='c:\'

So testen Sie ein Gerät mit einem bestimmten Treiber:

DriverBinaryNames=mydriver.sys

Wobei KMDFTest.inf der zum Installieren des Treibers verwendete Inf ist. Sie können auch das Folloiwng-Ziel für die Geräte verwenden, dieKMDFTest.sys Treiber verwenden.

(DriverBinaryNames='KMDFTest.sys') funktioniert.

Nachdem Sie die SDEL ordnungsgemäß festgelegt haben, sollte die folgende Ausgabe in der Konsole angezeigt werden, wenn Sie einen Test ausführen.

WDTF_TARGETS : INFO : - Query("IsDevice AND ((Inf::OriginalInfFileName='KMDFTest.inf')") WDTF_TARGETS : INFO : Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TEST : INFO : WARNING: Der Test erzwingt nicht, dass die Treiberüberprüfung aktiviert ist. WDTF_TEST : INFO : DV ist mit Flag:=0x209bb WDTF_TEST aktiviert: INFO : DV ist erfolgreich für alle Treiber dieses devnode(UniqueTargetName):=KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGET : 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 : - Für Target:KMDFTest Device ROOT\SAMPLE\0000 wurde keine simple E/A-Schnittstelle gefunden. WDTF_SIMPLE_IO : INFO : - Für Target:KMDFTest Device ROOT\SAMPLE\0000 verwendet WDTF die ANY Simple E/A-Schnittstelle.

Weitere Informationen finden Sie unter Konfigurations- und Protokolldateien für angefügte Dateien. WDTF_TARGETS : INFO : Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TEST : INFO : Führen Sie 1 Zyklus des E/A-Beendigungstests WDTF_TEST aus : INFO : E/A-Terminierungszyklus #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 Device ROOT\SAMPLE\0000 keine simple E/A-Schnittstelle gefunden. WDTF_SIMPLE_IO : INFO : - Für Target:KMDFTest Device ROOT\SAMPLE\0000 verwendet WDTF die ANY Simple E/A-Schnittstelle. WDTF_SIMPLE_IO : INFO : - Open(KMDFTest Device ROOT\SAMPLE\0000 ) Try count 1 WDTF_SUPPORT : INFO : - WaitForMinutes : 1 WDTF_SIMPLE_IO : INFO : - PerformIO(KMDFTest Device ROOT\SAMPLE\0000 ) Count 1 WDTF_SIMPLEIO_STRESS_PROC : INFO : - Terminate(KMDFTest Device ROOT\SAMPLE\0000 ) process

So testen Sie alle Geräte einer bestimmten Geräteklasse:

Beispielsweise würde Class=CDROM alle Geräte der Klasse CDROM testen.

Beispielsweise teste ClassGUID= {36fc9e60-c465-11cf-8056-444553540000} alle Geräte, deren Klassen-GUID der angegebenen GUID entspricht. In diesem Fall ist die GUID für die USB-Klasse.

DoPoolCheck

Richtig oder falsch. Überwacht die Verwendung der Systemspeicherpools mit und ohne Auslagerung durch den Treiber mithilfe von Pooltags und Lookaside-Listen. Mit dieser Option werden auch Änderungen an der Anzahl der behandelten Ausnahmen überwacht, die auf Fehler bei der Ausnahmebehandlung hinweisen können.

ChangeBufferProtectionFlags

Richtig oder falsch. Ändert die Speicherschutzflags von Puffern, die an das getestete Gerät übergeben werden. Die Speicherschutzflags wechseln zwischen keinem Zugriff, schreibgeschütztem Zugriff und schreibgeschütztem Zugriff mit Seitenschutz.

DoSimpleIO

„True“ oder „False“. Führt SimpleI/O (falls gefunden) auf Testgeräten vor und nach der Ausführung von PNP-Vorgängen aus.

DoConcurrentIO

„True“ oder „False“. Verwendet die gleichzeitige WDTF-E /A-Schnittstelle, um E/A-Anforderungen an Zielgerätestapel zu senden, während PnP-Vorgänge ausgeführt werden.

FillZeroPageWithNull

Richtig oder falsch. Ordnet die Nullseite zu und füllt sie mit NULL-Werten aus. Dieser Test identifiziert Treiber, die keinen Zeigerverweis überprüfen, bevor der Zeiger deferencing wird.

FuzzTestPeriod

Fuzz-Testzeitraum in Minuten.

HPU

Gibt den prozentsatz der hohen Prozessorauslastung an.

Identität

„True“ oder „False“. Führt den Test als Benutzer ohne Administratorberechtigungen aus.

IOPeriod

Gibt den E/A-Zeitraum in Minuten an.

IOType

Gibt den Typ des E/A-Belastungstests an: SimpleIOStressEx oder SimpleIOStressProc (E/A in einem separaten Prozess).

LPU

Gibt den prozentsatz der niedrigen Prozessorauslastung an.

MaxInBuffer

Gibt die maximale Größe der Eingabepuffer in Bytes an, die der Test an den Treiber in FSCTLs (oder IOCTLs für IOCTL-Tests) übergibt.

MinInBuffer

Gibt die Mindestgröße der Eingabepuffer in Bytes an, die der Test an den Treiber in FSCTLs (oder IOCTLs für IOCTL-Tests) übergibt.

MaxOutBuffer

Gibt die maximale Größe der Ausgabepuffer in Bytes an, die der Test an den Treiber in FSCTLs (oder IOCTLs für IOCTL-Tests) übergibt.

MinOutBuffer

Gibt die Mindestgröße der Ausgabepuffer in Bytes an, die der Test an den Treiber in FSCTLs (oder IOCTLs für IOCTL-Tests) übergibt.

MaxRandomCalls

Gibt die maximale Anzahl von Aufrufen an, die der Test ausgibt.

MaxTailoredCalls

Gibt die maximale Anzahl von Aufrufen an, die der Test während des angepassten Zufallstests ausgibt.

MaxDeviceType

Gibt den maximalen Wert des DeviceType-Felds in den FSCTLs (oder IOCTLs für IOCTL-Tests) an. Der größtmögliche Wert ist 65.535.

MinDeviceType

Gibt den Mindestwert des DeviceType-Felds in den FSCTLs (oder IOCTLs für IOCTL-Tests) an. Der kleinstmögliche Wert ist 0.

MaxFunctionCode

Gibt den maximalen Wert des FunctionCode-Felds in den FSCTLs (oder IOCTLs für IOCTL-Tests) an. Der größtmögliche Wert ist 4.095.

MinFunctionCode

Gibt den Mindestwert des FunctionCode-Felds in den FSCTLs (oder IOCTLs für IOCTL-Tests) an. Der kleinstmögliche Wert ist 0.

PU

Gibt den Prozentsatz der Prozessorauslastung an.

PingPongPeriod

Gibt den Ping-Pong-Zeitraum in Minuten an; die Zeit, zu der der Prozessor zwischen hoher (HPU) und niedriger Prozessorauslastung (LPU) wechselt.

ResumeDelay

Die Verzögerungszeit (in Sekunden), nachdem der Computer aus dem Standbymodus fortgesetzt wird und bevor der nächste E/A-Zyklus beginnt. Die Verzögerungszeit ist erforderlich, damit Geräte ihren Arbeitszustand wiederherstellen können (IP-Adresse für Netzwerk-Karte usw. erneuern).

TestCycles

Gibt die Anzahl der auszuführenden Testzyklen (Iterationen) an.

WDTFREMOTESYSTEM

Dieser Parameter ist nur erforderlich, wenn das getestete Gerät oder eines seiner untergeordneten Geräte ein kabelgebundener Netzwerkadapter ohne IPv6-Gatewayadresse ist. Wenn dieser Parameter in Ihrem Netzwerk erforderlich ist, müssen Sie eine IPv6-Adresse angeben, die der Testnetzwerkadapter an das Testnetzwerk pingen kann.

Beispiel: fe80::78b6:810:9c12:46cd

Wpa2PskAesSsid

Dieser Parameter ist nur erforderlich, wenn das getestete Gerät oder eines seiner untergeordneten Geräte ein WLAN-Adapter ist. Geben Sie die SSID eines WPA2 AES-WLAN-Netzwerks an, das der Test zum Testen des WLAN-Adapters verwenden kann.

Standardwert: kitstestssid

Wpa2PskPassword

Dieser Parameter ist nur erforderlich, wenn das getestete Gerät oder eines seiner untergeordneten Geräte ein WLAN-Adapter ist. Geben Sie das Kennwort des WPA2 AES WiFi-Netzwerks an, das mithilfe des Wpa2PskAesSsid-Parameters angegeben wird.

Standardwert: kennwort

Hilfsprogrammtests

Testen Beschreibung

Anzeigen von Geräten mit WDTF Simple I/O-Plug-Ins

Parameter: Nichts

Anzeigen von Geräten mit aktivierter Treiberüberprüfung

Parameter: Nichts

Anzeigen von Geräten

Parameter: Nichts

Treiberüberprüfung

Testen Beschreibung

Deaktivieren der Treiberüberprüfung

Deaktiviert die Treiberüberprüfung auf dem Testcomputer.

Parameter: Nichts

Aktivieren der Treiberüberprüfung

Sie können diesen Test verwenden, um die Treiberüberprüfung für alle Treiber eines Geräts (oder gerätes) auf dem Testcomputer zu aktivieren.

Parameter: – Siehe Treiberüberprüfungsoptionen.