Поделиться через


Как выбрать и настроить тесты по основам устройства

WDK для Windows 8 предоставляет платформу тестирования драйверов, включающую набор тестов, называемых тестами основы устройств. Базовые тесты устройств — это коллекция тестов, которые используются как внутри корпорации Майкрософт, так и для тестирования драйверов и примеров драйверов, которые отправляются с Windows и WDK, а также во внешних целях в рамках программы сертификации Windows для оборудования. Тесты можно выполнять из среды разработки. При выполнении тестов можно использовать те же параметры, которые используются для тестирования сертификации Windows, или настроить и настроить параметры во время выполнения в соответствии с потребностями тестирования и отладки.

Максимальное использование тестов основных функций устройства

Чтобы получить наибольшее преимущество от тестов основных функций устройств, ваше устройство должно поддерживаться стандартными модулями ввода-вывода. Чтобы узнать, поддерживается ли тип вашего устройства, и определить, существуют ли конкретные требования для тестирования, ознакомьтесь с предоставленными простыми модулями ввода-вывода WDTF. Тест основных функций устройств также включает служебную программу, которую можно использовать для проверки поддерживается ли ваше устройство. Если ваше устройство не поддерживается, вы можете создать плагин простого ввода/вывода для WDTF. в Visual Studio. Дополнительную информацию см. в статье «Настройка ввода-вывода для устройства с использованием подключаемого модуля действия простого ввода-вывода WDTF».

Сведения об основных тестах устройств

WDK предоставляет основные тесты для устройств в двух конфигурациях: «Базовый» и «Сертификация». В обеих конфигурациях можно изменить параметры теста, чтобы изменить длину теста, количество циклов тестирования и другие параметры теста в зависимости от способа тестирования целевых устройств или драйверов. Базовая конфигурация предназначена для общего тестирования драйверов и устройств и отладки. Используйте базовую конфигурацию на ранних этапах и на протяжении всего цикла разработки. Тесты в базовой конфигурации имеют те же параметры, которые используются в тестировании сертификации Windows, за исключением более короткого времени выполнения. В конфигурации сертификации тесты имеют те же параметры, которые используются в тестировании сертификации Windows. Используйте конфигурацию сертификации, чтобы проверить готовность к тестированию устройства или драйвера для программы сертификации Windows для оборудования.

Основные тесты устройств включают тесты в следующие категории.

Настройка параметров теста во время выполнения

Вы можете изменить параметры времени выполнения для многих тестов основных функций устройства. В окне группы тестирования драйверов стрелка (") рядом с именем теста указывает, что тест имеет параметры, которые можно изменить. Выберите стрелку (") для отображения параметров времени выполнения.

Одним из наиболее полезных параметров является DQ, который указывает целевое устройство для тестирования. Значение по умолчанию (IsDevice) проверяет все устройства на целевом компьютере. Параметр DQ принимает запрос WDTFSDEL , определяющий целевые устройства. Например, можно указать определенное устройство для тестирования:

DeviceID='USB\ROOT_HUB\4&1CD5D022&0' выбирает только устройство для тестирования с указанным Идентификатором устройства.

Дополнительные сведения о 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'

Чтобы протестировать устройство с определенным интерфейсом, выполните указанные действия.

Интерфейсы::InterfaceGUID

Чтобы протестировать устройство с определенным письмом драйвера, выполните указанные действия.

Volume::DriverLetter='DriveLetter'

Например, Volume::DriverLetter='c:\'

Чтобы протестировать устройство с определенным драйвером, выполните указанные действия.

DriverBinaryNames=mydriver.sys

Где файл KMDFTest.inf используется для установки драйвера. Вы также можете использовать следующее, чтобы нацелить устройства, использующие драйвер 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 включён с флагом:=0x209bb WDTF_TEST: INFO: DV успешно включён для всех драйверов этого devnode (UniqueTargetName):=KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGET: INFO: - GetInterface("Поддержка") WDTF_TARGET: INFO: Target: DESKTOP-2OVFH3G WDTF_TARGETS: INFO: - Query("IsDevice") WDTF_TARGETS: INFO: Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGETS: INFO: - GetRelations("ниже-или-сам/", "IsDevice") WDTF_TARGETS: INFO: Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGETS: INFO: - GetInterfacesIfExist("SimpleIOStressProc") WDTF_SIMPLE_IO: INFO: - Для Target:KMDFTest Device ROOT\SAMPLE\0000 не был найден простой интерфейс ввода-вывода. WDTF_SIMPLE_IO: INFO: - Для Target:KMDFTest Device ROOT\SAMPLE\0000 WDTF будет использовать любой простой интерфейс ввода-вывода.

Дополнительные сведения см. в вложенных файлах конфигурации и журналах. WDTF_TARGETS: INFO: Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TEST: INFO: Выполнение 1 циклов теста завершения ввода-вывода WDTF_TEST: INFO: цикл завершения ввода-вывода #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: — для целевого объекта: KMDFTest Device ROOT\SAMPLE\0000 нет простого интерфейса ввода-вывода. WDTF_SIMPLE_IO: INFO: — для ROOT устройства Target:KMDFTest\SAMPLE\0000 WDTF будет использовать любой простой интерфейс ввода-вывода. WDTF_SIMPLE_IO: INFO: - Open(KMDFTest Device ROOT\SAMPLE\0000) Попробуйте 1 WDTF_SUPPORT: INFO: - WaitForMinutes : 1 WDTF_SIMPLE_IO : — PerformIO(KMDFTest Device ROOT\SAMPLE\0000) Count 1 WDTF_SIMPLEIO_STRESS_PROC : INFO: - End(KMDFTest Device ROOT\SAMPLE\0000)

Чтобы проверить все устройства определенного класса устройства, выполните указанные действия.

Например, Class=CDROM протестирует все устройства класса CDROM.

Например, ClassGUID= {36fc9e60-c465-11cf-8056-444553540000} протестирует все устройства, guid класса которых соответствует указанному GUID. В этом случае GUID предназначен для USB-класса.

DoPoolCheck

Верно или неверно. Отслеживает использование страничных и нестраничных пулов памяти системы драйвером с помощью тегов пулов и списков ожидания. Этот параметр также отслеживает изменения в количестве исключений, обрабатываемых, что может указывать на ошибки в обработке исключений.

ChangeBufferProtectionFlags

Верно или неверно. Изменяет флаги защиты памяти буферов, передаваемых на тестируемое устройство. Флаги защиты памяти чередуются между отсутствием доступа, доступом только для чтения и доступом только для чтения с помощью page guard.

DoSimpleIO

Верно или неверно. Запускает SimpleI/O (если найдено) на тестовых устройствах до и после выполнения операций PNP.

DoConcurrentIO

Верно или неверно. Использует одновременный интерфейс ввода-вывода WDTF для отправки запросов ввода-вывода в целевые стеки устройств при выполнении операций PnP.

FillZeroPageWithNull

Верно или неверно. Отображает нулевую страницу и заполняет её нулевыми значениями. Этот тест определяет драйверы, которые не проверяют указатель перед его разыменованием.

FuzzTestPeriod

Длительность фазз-тестирования в минутах.

HPU

Указывает высокий процент использования процессора.

Имитировать

Верно или неверно. Выполняет тест от имени пользователя без прав администратора.

IoPeriod

Указывает период ввода-вывода в минутах.

IoType

Указывает тип теста стресса ввода-вывода: SimpleIOStressEx или SimpleIOStressProc (ввода-вывода в отдельном процессе).

LPU

Процент низкой загрузки процессора

MaxInBuffer

Указывает максимальный размер в байтах входных буферов, которые тест передает драйверу в FSCTLs (или IOCTLs для тестов IOCTL).

MinInBuffer

Указывает минимальный размер в байтах входных буферов, которые тест передает драйверу в FSCTLs (или ioCTLs для тестов IOCTL).

MaxOutBuffer

Задает максимальный размер в байтах выходных буферов, которые тест передает драйверу в FSCTLs (или IOCTLs для тестов IOCTL).

MinOutBuffer

Указывает минимальный размер в байтах выходных буферов, которые тест передает драйверу в FSCTLs (или ioCTLs для тестов IOCTL).

MaxRandomCalls

Указывает максимальное количество вызовов, возникающих при проверке.

MaxTailoredCalls

Указывает максимальное количество вызовов, осуществляемых в рамках адаптированного случайного теста.

MaxDeviceType

Указывает максимальное значение поля DeviceType в FSCTLs (или IOCTLs для тестов IOCTL). Максимально возможное значение — 65535.

MinDeviceType

Указывает минимальное значение поля DeviceType в FSCTLs (или IOCTLs для тестов IOCTL). Минимальное возможное значение равно 0.

MaxFunctionCode

Задает максимальное значение поля FunctionCode в FSCTLs (или IOCTLs для тестов IOCTL). Максимально возможное значение — 4095.

MinFunctionCode

Указывает минимальное значение поля FunctionCode в FSCTLs (или IOCTLs для тестов IOCTL). Минимальное возможное значение равно 0.

PU

Указывает процент использования процессора

PingPongPeriod

Указывает период ping pong в минутах; время, когда процессор чередуется между высоким уровнем использования процессора (HPU) и низким уровнем использования процессора (LPU).

ВозобновлениеЗадержка

Время задержки (в секундах) после возобновления работы компьютера из спящего режима и до начала следующего цикла ввода-вывода. Время задержки необходимо для восстановления рабочего состояния устройств (продление IP-адреса сетевой карты и т. д.).

TestCycles

Указывает количество циклов тестирования (итерации) для выполнения.

WDTFREMOTESYSTEM

Этот параметр требуется только в том случае, если устройство под тестом или одно из дочерних устройств является проводным сетевым адаптером, у которых нет адреса шлюза IPv6. Если этот параметр необходим в сети, необходимо указать IPv6-адрес, который тестовый сетевой адаптер может проверить для тестирования сети.

Пример: fe80::78b6:810:9c12:46cd

Wpa2PskAesSsid

Этот параметр требуется только в том случае, если устройство под тестом или одно из его дочерних устройств является адаптером Wi-Fi. Укажите SSID сети WPA2 AES WiFi, которую тест может использовать для тестирования адаптера WiFi.

Значение по умолчанию: kitstestsid

Wpa2PskPassword

Этот параметр требуется только в том случае, если устройство под тестом или одно из его дочерних устройств является адаптером Wi-Fi. Укажите пароль сети WIFi WPA2 AES, указанной с помощью параметра Wpa2PskAesSsid.

Значение по умолчанию: пароль

Тесты служебной программы

Тест Описание

Отображение устройств с подключаемыми модулями WDTF Simple I/O

Параметры : Нет

Отображение устройств с включенным средство проверки драйверов

Параметры : Нет

Устройства отображения

Параметры : Нет

Средство проверки драйверов

Тест Описание

Отключение средства проверки драйверов

Отключает средство проверки драйверов на тестовом компьютере.

Параметры : Нет

Включение средства проверки драйверов

Этот тест можно использовать для включения средства проверки драйверов для всех драйверов устройства (или устройств) на тестовом компьютере.

Параметры: — см. параметры средства проверки драйверов.