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


Выбор и настройка тестов "Основы устройства"

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

Получение максимально эффективной работы с тестами по основам устройств

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

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

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

Тесты по основам устройств включают тесты в следующих категориях.

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

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

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

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

Дополнительные сведения о DQ и других параметрах среды выполнения см. в разделе Параметры теста Device Fundamentals.

Параметры теста "Основы устройства"

Параметр Описание

DQ

Определяет устройство или устройства, которые должны использоваться для тестирования. Параметр DQ принимает запрос SDEL WDTF, который идентифицирует целевые устройства. Этот запрос может быть очень гибким, и его можно использовать для выражения любого количества устройств, от одного устройства до всех устройств в системе.

Распространенные примеры:

Чтобы протестировать все устройства, установленные с определенным INF-файлом, выполните следующие действия.

INF::FileName=INF_File_Name

Например, INF::OriginalInfFileName='KMDFTest.inf'

Inf::OriginalInFileName можно использовать с любым INF.

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

DeviceId='DeviceId'

Например, DeviceID='USB\ROOT_HUB\4&1CD5D022&0'

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

Interfaces::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: The test is not принудительно, чтобы проверка драйверов включена. WDTF_TEST : INFO : DV включен с флагом:=0x209bb WDTF_TEST : INFO : DV успешно включен для всех драйверов этого devnode(UniqueTargetName):=KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGET : INFO : - GetInterface("Support") WDTF_TARGET : INFO : : INFO : Целевой объект: 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 : - For Target:KMDFTest Device ROOT\SAMPLE\0000 Simple IO Interface не найден. WDTF_SIMPLE_IO : INFO : — для target:KMDFTest Device ROOT\SAMPLE\0000 WDTF будет использовать интерфейс ANY Simple IO.

Дополнительные сведения см. в разделе Файлы конфигурации вложенных файлов и файлы журналов. WDTF_TARGETS : INFO : Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TEST : INFO : Выполнение 1 цикла проверки завершения ввода-вывода WDTF_TEST : INFO : цикл завершения ввода-вывода No 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 не найден простой интерфейс ввода-вывода. WDTF_SIMPLE_IO : INFO : — для target:KMDFTest Device ROOT\SAMPLE\0000 WDTF будет использовать интерфейс ANY Simple IO. WDTF_SIMPLE_IO : INFO : - Open(KMDFTest Device ROOT\SAMPLE\0000 ) Попробуйте счетчик 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

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

Например, Класс=CDROM будет тестировать все устройства класса CDROM.

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

DoPoolCheck

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

ChangeBufferProtectionFlags

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

DoSimpleIO

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

DoConcurrentIO

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

FillZeroPageWithNull

Верно или неверно. Сопоставляет нулевую страницу и заполняет ее значениями NULL. Этот тест определяет драйверы, которые не проверяют ссылку указателя перед разыменовкой указателя.

FuzzTestPeriod

Нечеткий период тестирования в минутах.

HPU

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

Олицетворять

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

IOPeriod

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

Тип IOType

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

LPU

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

MaxInBuffer

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

MinInBuffer

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

MaxOutBuffer

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

MinOutBuffer

Задает минимальный размер в байтах выходных буферов, которые тест передает драйверу в FSCTL (или 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

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

ResumeDelay

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

TestCycles

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

WDTFREMOTESYSTEM

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

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

Wpa2PskAesSsid

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

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

Wpa2PskPassword

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

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

Служебные тесты

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

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

Параметры: Ни один

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

Параметры: Ни один

Отображение устройств

Параметры: Ни один

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

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

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

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

Параметры: Ни один

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

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

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