InitFreeNull rule (kmdf)
The InitFreeNull rule specifies that DDIs receiving PWDFDEVICE_INIT as a parameter cannot be called by using a NULL pointer to a WDFDEVICE_INIT structure.
The framework-supplied methods initialize the WDFDEVICE_INIT structure. When the driver calls WdfDeviceCreate to create either a functional device object (FDO) or a physical device object (PDO), the WdfDeviceCreate method sets the first parameter to NULL if it succeeds.
If the driver encounters an error when it calls a device object initialization method or WdfDeviceCreate, the driver must call WdfDeviceInitFree. After a successful call to WdfDeviceInitFree, you should set the pointer to the WDFDEVICE_INIT structure to NULL (PWDFDEVICE_INIT=NULL).
Driver model: KMDF
How to test
At compile time |
---|
Run Static Driver Verifier and specify the InitFreeNull rule. Use the following steps to run an analysis of your code:
For more information, see Using Static Driver Verifier to Find Defects in Drivers. |
Applies to
WdfDeviceCreate WdfDeviceInitAssignName WdfDeviceInitAssignSDDLString WdfDeviceInitAssignWdmIrpPreprocessCallback WdfDeviceInitFree WdfDeviceInitRegisterPnpStateChangeCallback WdfDeviceInitRegisterPowerPolicyStateChangeCallback WdfDeviceInitRegisterPowerStateChangeCallback WdfPdoInitAddCompatibleID WdfPdoInitAddDeviceText WdfPdoInitAddHardwareID WdfPdoInitAssignDeviceID WdfPdoInitAssignInstanceID WdfPdoInitAssignRawDevice
See also
InitFreeDeviceCallback InitFreeDeviceCreate InitFreeDeviceCreateType2 PdoInitFreeDeviceCreateType2 InitFreeDeviceCreateType4 PdoInitFreeDeviceCallback PdoInitFreeDeviceCreate PdoInitFreeDeviceCreateType4