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


Правило InitFreeNull (kmdf)

Правило InitFreeNull указывает, что DDIs, получающие PWDFDEVICE_INIT в качестве параметра, не могут вызываться с помощью указателя NULL на структуру WDFDEVICE_INIT .

Предоставляемые платформой методы инициализируют структуру WDFDEVICE_INIT . Когда драйвер вызывает WdfDeviceCreate для создания объекта функционального устройства (FDO) или физического объекта устройства (PDO), метод WdfDeviceCreate присваивает первому параметру значение NULL при успешном выполнении.

Если драйвер обнаруживает ошибку при вызове метода инициализации объекта устройства или WdfDeviceCreate, драйвер должен вызвать WdfDeviceInitFree. После успешного вызова WdfDeviceInitFree необходимо задать для указателя на структуру WDFDEVICE_INITзначение NULL (PWDFDEVICE_INIT=NULL).

Модель драйвера: KMDF

Как тестировать

Во время компиляции

Запустите средство проверки статических драйверов и укажите правило InitFreeNull .

Чтобы выполнить анализ кода, выполните следующие действия.
  1. Подготовьте код (используйте объявления типов ролей).
  2. Запустите средство проверки статических драйверов.
  3. Просмотр и анализ результатов.

Дополнительные сведения см. в статье Использование средства проверки статических драйверов для поиска дефектов в драйверах.

Применяется к

WdfDeviceCreateWdfDeviceInitAssignNameWdfDeviceInitAssignSDDLStringWdfDeviceInitAssignWdmIrpPreprocessCallbackWdfDeviceInitFreeWdfDeviceInitRegisterPnpStateChangeCallbackWdfDeviceInitRegisterPowerPolicyStateChangeCallbackWdfDeviceInitRegisterPowerStateChangeCallbackWdfPdoInitAddCompatibleIDWdfPdoInitAddDeviceTextWdfPdoInitAddHardwareIDWdfPdoInitAssignDeviceIDWdfPdoInitAssignInstanceIDWdfPdoInitAssignRawDevice

См. также раздел

InitFreeDeviceCallbackInitFreeDeviceCreateType2PdoInitFreeDeviceCreateType2InitFreeDeviceCreateType2 InitFreeDeviceCreateType4PdoInitFreeDeviceCallbackPdoInitFreeDeviceCreateType4