Compartir a través de


Regla InitFreeNull (kmdf)

La regla InitFreeNull especifica que las DDIs que reciben PWDFDEVICE_INIT como parámetro no se pueden llamar mediante un puntero NULL a una estructura de WDFDEVICE_INIT .

Los métodos proporcionados por el marco inicializan la estructura WDFDEVICE_INIT . Cuando el controlador llama a WdfDeviceCreate para crear un objeto de dispositivo funcional (FDO) o un objeto de dispositivo físico (PDO), el método WdfDeviceCreate establece el primer parámetro en NULL si se ejecuta correctamente.

Si el controlador encuentra un error cuando llama a un método de inicialización de objeto de dispositivo o WdfDeviceCreate, el controlador debe llamar a WdfDeviceInitFree. Después de una llamada correcta a WdfDeviceInitFree, debe establecer el puntero en la estructura WDFDEVICE_INIT en NULL (PWDFDEVICE_INIT=NULL).

Modelo de controlador: KMDF

Cómo probar

En tiempo de compilación

Ejecute el Comprobador de controladores estáticos y especifique la regla InitFreeNull .

Usa los pasos siguientes para ejecutar un análisis de tu código:
  1. Prepara el código (usa declaraciones de tipos de rol).
  2. Ejecuta el comprobador de controlador estático.
  3. Consulta y analiza los resultados.

Para obtener más información, vea Usar comprobador de controladores estáticos para buscar defectos en controladores.

Se aplica a

WdfDeviceCreateWdfDeviceInitAssignNameWdfDeviceInitAssignSDDLStringWdfDeviceInitAssignWdmIrpPreprocessCallbackWdfDeviceInitFreeWdfDeviceInitRegisterPnpStateChangECallbackWdfDeviceInitRegisterPowerPolicyStateChangeCallbackWdfDeviceInitRegisterPowerStateChangeCallbackWdfPdoInitAddCompatibleIDWdfPdoInitAddDeviceTextWdfPdoInitAddHardwareIDWdfPdoInitAssignDeviceIDWdfPdoInitAssignInstanceIDWdfPdoInitAssignRawDevice

Consulte también

InitFreeDeviceCallbackInitFreeDeviceCreateInitFreeDeviceCreateType2PdoInitFreeDeviceCreateType2InitFreeDeviceCreateType4PdoInitFreeDeviceCallbackPdoInitFreeDeviceCreatePdoInitFreeDeviceCreateType4