Набор правил IrpProcessing (KMDF)
Используйте эти правила, чтобы убедиться, что драйвер правильно обрабатывает пакеты запросов ввода-вывода (IRP).
В этом разделе
Раздел | Описание |
---|---|
Правило FwdIrpToIoQueueValid указывает, что драйвер отправляет IRP в очередь ввода-вывода с помощью метода WdfDeviceWdmDispatchToIoQueue из обратного вызова EvtDeviceWdmIrpDispatch или обратного вызова EvtDeviceWdmIrpPreprocess. |
|
Правило SetCompletionRoutineFromDispatch проверяет, что драйвер не задает подпрограмму завершения для IRP из функции обратного вызова EvtDeviceWdmIrpDispatch. |
|
Правило MiniportOnlyWdmDevice указывает, что драйверы WDF не должны использовать функции IoCreateDevice и IoCreateDeviceSecure для создания объектов устройств WDM. Это приведет к сбою компьютера, если кто-то пытается отправить IRP на устройство WDM. Это связано с тем, что для записей диспетчера IRP устройства задано значение WDF, но платформа не создала устройство WDF. Однако минипорт-драйверы могут использовать DDIs, так как для них не заданы точки входа диспетчера драйверов. |
Выбор набора правил IrpProcessing
Выберите проект драйвера (.vcxProj) в Microsoft Visual Studio. В меню "Драйвер" нажмите кнопку "Запустить средство проверки статического драйвера...".
Перейдите на вкладку "Правила ". В разделе "Наборы правил" выберите IrpProcessing.
Чтобы выбрать набор правил по умолчанию в окне командной строки разработчика Visual Studio, укажите IrpProcessing.sdv с параметром /проверка. Например:
msbuild /t:sdv /p:Inputs="/check:IrpProcessing.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
Дополнительные сведения см. в статье "Использование средства проверки статических драйверов для поиска дефектов в драйверах и командах средства проверки статических драйверов( MSBuild)".