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


DF — нечеткий случайный тест IOCTL (надежность)

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

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

  • Использование MinFunctionCode и MaxFunctionCode для указания диапазона кодов функций IOCTL или FSCTL, используемых в вызовах
  • Используйте MinDeviceType и MaxDeviceType , чтобы указать диапазон типов устройств, используемых в вызовах.
  • Используйте SeedNumber , чтобы указать начальное число для подпрограммы создания случайных чисел.

Функция, которую тест Fuzz использует для создания случайных чисел для теста, использует начальное число для алгоритма создания случайных чисел. Чтобы воспроизвести условия теста, используйте параметр начального номера, чтобы указать начальный номер, который использовался в исходной тестовой пробной версии.

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

Двоичный файл теста: Devfund_FuzzTest.dll Методы теста: DoRandomFSCTLTest

Сведения о тесте

   
Характеристики
  • 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
Требуется специальная конфигурация Да
Тип automatic

 

Дополнительная документация

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

Выполнение теста

Перед запуском теста завершите настройку теста, как описано в разделе Требования к тестированию : Предварительные требования к тестированию надежности Device.Fundamentals.

Устранение неполадок

Общие сведения об устранении неполадок при тестировании HLK см. в разделе Устранение неполадок при тестировании Windows HLK.

Сведения об устранении неполадок, относящихся к тестам Device Fundamentals в HLK и WDK, см. в дополнительной документации по Device.DevFund.

Дополнительные сведения

Параметры

Имя параметра Описание параметра
DQ Запрос SDEL WDTF, используемый для идентификации целевых устройств. https://go.microsoft.com/fwlink/?LinkId=232678
Wpa2PskAesSsid Требуется только в том случае, если DUT или одно из его дочерних устройств является адаптером Wi-Fi. Укажите SSID сети WPA2 AES WiFi, которую тест может использовать для тестирования адаптера Wi-Fi. Значение по умолчанию — kitstestssid.
Wpa2PskPassword Требуется только в том случае, если DUT или одно из его дочерних устройств является адаптером Wi-Fi. Укажите пароль сети Wi-Fi WPA2 AES, указанной с помощью параметра Wpa2PskAesSsid. Значение по умолчанию — password.
ChangeBufferProtectionFlags Верно или неверно. Изменяет флаги защиты памяти буферов, передаваемых на тестируемое устройство. Флаги защиты памяти чередуются между отсутствием доступа, только для чтения и только для чтения с защитой страницы.
Impersonate Верно или неверно. Запускает тест от имени пользователя без прав администратора.
FillZeroPageWithNull Верно или неверно. Сопоставляет нулевую страницу и заполняет ее значениями NULL. Этот тест определяет драйверы, которые не проверяют ссылку на указатель перед разыменовкой указателя.
DoPoolCheck Верно или неверно. Отслеживает использование драйвером выгружаемых и невыгружаемых пулов системной памяти с помощью тегов пулов и списков просмотра. Этот параметр также отслеживает изменения в количестве обрабатываемых исключений, которые могут указывать на ошибки в обработке исключений.
DoSync Верно или неверно. Также открывает дескриптор устройства в режиме СИНХРОНИЗАЦИИ (FILE_SYNCHRONOUS_IO_ALERT). Случайные операции чтения и записи пропускаются.
TestCycles Количество циклов тестирования.
DriverVerifierAdditionalDrivers Дополнительные драйверы, для которых должно быть включено средство проверки драйверов
DriverVerifierExcludedFlags Заполнитель для флагов средства проверки драйверов, которые могут быть исключены вручную для тестового запуска
WDKDeviceID Идентификатор тестируемого устройства
QueryHardwareID Идентификатор оборудования тестируемого устройства
WDTFREMOTESYSTEM Требуется только в том случае, если DUT или одно из его дочерних устройств является проводной сетевой картой без адреса шлюза IPv6. Если определено, что это требуется, укажите IPv6-адрес, по которому тестовый сетевой адаптер может проверить связь для тестирования сетевых операций ввода-вывода. Например: fe80::78b6:810:9c12:46cd
DriverVerifierCustomizeConfiguration Указывает, что для этого теста может потребоваться автоматически обновить параметры средства проверки драйверов.
MinDeviceType Задает минимальное значение поля DeviceType в ioCTLs. Минимальное возможное значение — 0. Используйте -1 для автоматического обнаружения типов (предпочтительно).
MaxDeviceType Задает максимальное значение поля DeviceType в ioCTLs. Максимально возможное значение — 65535. Используйте -1 для автоматического обнаружения типов (предпочтительно).
MinFunctionCode Задает минимальное значение поля FunctionCode в ioCTLs. Минимальное возможное значение — 0.
MaxFunctionCode Задает максимальное значение поля FunctionCode в ioCTLs. Максимально возможное значение — 4095.
MinInBuffer Указывает минимальный размер входных буферов в байтах, которые тест передает драйверу в ICTL.
MaxInBuffer Указывает максимальный размер входных буферов в байтах, которые тест передает драйверу в ICTL.
MinOutBuffer Указывает минимальный размер в байтах выходных буферов, которые тест передает драйверу в ioCTL.
MaxOutBuffer Указывает максимальный размер в байтах выходных буферов, которые тест передает драйверу в ioCTL.
MaxRandomCalls Указывает максимальное количество вызовов, которые выполняет тест.
MaxTailoredCalls Указывает максимальное количество вызовов, которые тест выполняет во время специализированного случайного теста.
SeedNumber Указан начальный номер, используемый при создании случайных ioCTL.