C28103C28103

avertissement C28103 : une fuite de ressourceswarning C28103: Leaking resource

L’objet spécifié contient une ressource qui n’a pas été libérée.The specified object contains a resource that has not been freed. Une fonction appelée a été annotée avec __drv_acquiresResource ou __drv_acquiresResourceGlobal et cet avertissement indique que la ressource nommée dans l’annotation n’a pas été libérée.A function being called has been annotated with __drv_acquiresResource or __drv_acquiresResourceGlobal and this warning indicates that the resource named in the annotation was not freed.

ExempleExample

L'exemple de code suivant génère cet avertissement :The following code example generates this warning:

res = KeSaveFloatingPointState(buffer);

L'exemple de code suivant évite cet avertissement :The following code example avoids this warning:

res = KeSaveFloatingPointState(buffer);
if (NT_SUCCESS(res))
{
    res = KeRestoreFloatingPointState(buffer);
}

Si cet avertissement est signalé comme un faux positif, la cause la plus probable est que la fonction qui libère la ressource n’est pas annotée avec __drv_releasesResource ou __drv_releasesResourceGlobal.If this warning is reported as a false positive, the most likely cause is that the function that releases the resource is not annotated with __drv_releasesResource or __drv_releasesResourceGlobal. Notez que si vous utilisez des fonctions wrapper pour les fonctions système, les fonctions wrapper doivent utiliser les mêmes annotations que d’effectuer les fonctions système.Note that if you are using wrapper functions for system functions, the wrapper functions should use the same annotations that the system functions do. Actuellement, les nombreuses fonctions système sont annotées dans le fichier de modèle, les annotations ne sont pas visibles dans les fichiers d’en-tête.Currently, many system functions are annotated in the model file, so the annotations are not visible in the header files.