InitFreeNull-Regel (kmdf)
Die InitFreeNull-Regel gibt an, dass DDIs, die PWDFDEVICE_INIT als Parameter empfangen, nicht mithilfe eines NULL-Zeigers auf eine WDFDEVICE_INIT-Struktur aufgerufen werden können.
Die vom Framework bereitgestellten Methoden initialisieren die WDFDEVICE_INIT-Struktur . Wenn der Treiber WdfDeviceCreate aufruft, um entweder ein Funktionales Geräteobjekt (Functional Device Object, FDO) oder ein physisches Geräteobjekt (PDO) zu erstellen, legt die WdfDeviceCreate-Methode den ersten Parameter auf NULL fest, wenn dies erfolgreich ist.
Wenn beim Aufrufen einer Initialisierungsmethode des Geräteobjekts oder WdfDeviceCreate für den Treiber ein Fehler auftritt, muss der Treiber WdfDeviceInitFree aufrufen. Nach einem erfolgreichen Aufruf von WdfDeviceInitFree sollten Sie den Zeiger auf die WDFDEVICE_INIT-Struktur auf NULL (PWDFDEVICE_INIT=NULL) festlegen.
Treibermodell: KMDF
So führen Sie einen Test durch
Beim Kompilieren: |
---|
Führen Sie Static Driver Verifier aus , und geben Sie die Regel InitFreeNull an. Gehen Sie folgendermaßen vor, um Ihren Code zu analysieren:
Weitere Informationen finden Sie unter Verwenden der statischen Treiberüberprüfung, um Fehler in Treibern zu finden. |
Gilt für:
WdfDeviceCreateWdfDeviceInitAssignNameWdfDeviceInitAssignSDDLStringWdfDeviceInitAssignWdmIrpPreprocessCallbackWdfDeviceInitFreeWdfDeviceInitRegisterPnpStateChang ECallbackWdfDeviceInitRegisterPowerPolicyStateChangeCallbackWdfDeviceInitRegisterPowerStateChangeCallbackWdfPdoInitAddCompatibleIDWdfPdoInitAddDeviceTextWdfPdoInitAddHardwareIDWdfPdoInitAssignDeviceIDWdfPdoInitAssignInstanceIDWdfPdoInitAssignRawDevice
Weitere Informationen
InitFreeDeviceCallbackInitFreeDeviceCreateInitFreeDeviceCreateType2PdoInitFreeDeviceCreateType2InitFreeDeviceCreateType4PdoInitFreeDeviceCallbackPdoInitFreeDeviceCreatePdoInitFreeDeviceCreateType4