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


Расширенная проверка ввода-вывода

Эта функция доступна только в Windows XP и более поздних версиях операционной системы Windows.

В Windows 7 и более поздних версиях операционной системы Windows улучшенная проверка ввода-вывода автоматически активируется при выборе проверки ввода-вывода. Он недоступен или необходим, чтобы выбрать его в качестве отдельного параметра.

При активации расширенной проверки ввода-вывода средство проверки драйверов отслеживает вызовы нескольких подпрограмм диспетчера ввода-вывода и выполняет стресс-тестирование PnP IRPs, power IRPs и WMI IRP.

В Windows Vista и Windows XP расширенная проверка ввода-вывода активируется независимо от проверки ввода-вывода, но выбор обоих вариантов обеспечивает более полный тест методов интерфейса ввода-вывода в драйвере.

Функции расширенной проверки ввода-вывода

Средство проверки драйверов добавляет следующие проверки при активации расширенной проверки ввода-вывода.

  • Отслеживает все ip-адреса irps, чтобы драйвер возвращал STATUS_PENDING, если и только если он вызвал IoMarkIrpPending.

  • Отслеживает использование IoDeleteDevice , чтобы убедиться, что драйвер не удаляет одно и то же устройство еще раз, и обнаруживает неуместный отсоединение и удаление объектов устройства.

  • Проверяет правильно ли драйвер очистку всех вызовов IoSkipCurrentIrpStackLocation.

К новым стрессам и тестам относятся:

  • Scrambling порядок перечисленных устройств, чтобы убедиться, что драйверы самонастраивающийся (PnP) не делают предположений о порядке запуска устройства.

  • Настройка состояния PnP и Power IRPs при завершении, чтобы поймать драйверы, возвращающие неверное состояние из подпрограмм отправки.

  • Отправка поддельных ip-адресов Power IRP для проверки ошибок пути кода драйвера.

  • Отправка поддельных IP-адресов WMI для проверки ошибок пути кода драйвера.

  • Вставка поддельных фильтров в каждый стек WDM.

Отображение расширенных ошибок проверки ввода-вывода

Ошибки драйвера, пойманные расширенной проверкой ввода-вывода, отображаются таким же образом, как и при проверке ввода-вывода уровня 2.

На синем экране эти ошибки отмечаются сообщением ОБ ОШИБКЕ ПРОВЕРКИ СИСТЕМЫ ВВОДА-ВЫВОДА и строкой ОШИБКИ WDM DRIVER XXX, где XXX — код ошибки ввода-вывода.

В файле аварийного дампа эти ошибки отмечаются сообщением BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION), а также кодом ошибки ввода-вывода. В этом случае код ошибки ввода-вывода отображается как первый параметр проверки ошибки 0xC9.

В отладчике ядра (KD или WinDbg) эти ошибки отмечаются сообщением WDM DRIVER ERROR и описательной текстовой строкой. Если отладчик ядра активен, можно игнорировать ошибки уровня 2 и возобновить системную операцию. (Это невозможно при любых других проверках ошибок.)

Синий экран, файл аварийного дампа и отладчик ядра отображают дополнительные сведения. Полное описание всех сообщений об ошибках уровня ввода-вывода 2 см. в разделе "Проверка ошибок" 0xC9.

Активация этого параметра

Вы можете активировать функцию расширенной проверки ввода-вывода для одного или нескольких драйверов с помощью диспетчера проверки драйверов или командной строки Verifier.exe. Дополнительные сведения см. в разделе "Выбор параметров средства проверки драйвера".

Примечание. В Windows 7 и более поздних версиях операционной системы Windows расширенная проверка ввода-вывода автоматически активируется при выборе проверки ввода-вывода. Он недоступен или необходим, чтобы выбрать его в качестве отдельного параметра.

  • В командной строке

    В командной строке параметр расширенной проверки ввода-вывода представлен битом 6 (0x40). Чтобы активировать расширенную проверку ввода-вывода, используйте значение флага 0x40 или добавьте 0x40 в значение флага. Например:

    verifier /flags 0x40 /driver MyDriver.sys
    

    Функция будет активна после следующей загрузки.

    В Windows Vista и более поздних версиях Windows можно также активировать и отключить расширенную проверку ввода-вывода без перезагрузки компьютера, добавив в команду параметр /volatile . Например:

    verifier /volatile /flags 0x40 /adddriver MyDriver.sys
    

    Этот параметр действует немедленно, но теряется при завершении работы или перезагрузке компьютера. Дополнительные сведения см. в разделе "Использование переменных параметров".

  • Использование диспетчера проверки драйверов

    1. Запустите диспетчер проверки драйверов. В окне командной строки введите средство проверки .
    2. Выберите " Создать настраиваемые параметры" (для разработчиков кода) и нажмите кнопку "Далее".
    3. Выберите отдельные параметры из полного списка.
    4. Выберите (проверьте) расширенную проверку ввода-вывода.

    Функция проверки DMA также включена в стандартные параметры. Чтобы использовать эту функцию, в диспетчере проверки драйверов нажмите кнопку "Создать стандартные параметры".