Partager via


C28103

avertissement C28103 : Fuite de la ressource

L'objet spécifié contient une ressource qui n'a pas été libérée.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.

Exemple

L'exemple de code suivant génère cet avertissement :

res = KeSaveFloatingPointState(buffer);

L'exemple de code suivant permet d'éviter cet avertissement :

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

Si cet avertissement est reporté 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.Notez que si vous utilisez des fonctions wrapper pour les fonctions système, les fonctions wrapper doivent utiliser les mêmes annotations que les fonctions système le font.Actuellement, de nombreuses fonctions système sont annotées dans le fichier de modèle, les annotations ne sont donc pas visibles dans les fichiers d'en-tête.