Partager via


C6381

Avertissement C6381 : l'API de fermeture <fonction> exige un dwReason ou lpMessage valide

Cet avertissement s'affiche si InitiateSystemShutdownEx est appelé :

  • sans passer une raison de fermeture valide (dwReason). Si le paramètre dwReason a la valeur zéro, la valeur par défaut est une fermeture non définie. Par défaut, elle correspond également à une fermeture non planifiée. Vous devez utiliser l'un des codes de raison de fermeture du système pour ce paramètre ;

  • sans passer un message de fermeture (lpMessage).

Nous vous recommandons d'utiliser des paramètres appropriés lors de l'appel à cette API pour aider les administrateurs système à déterminer la cause de la fermeture.

Exemple

Le code suivant génère cet avertissement car dwReason a la valeur zéro et lpMessage a la valeur null :

void f()
{
  //...
  BOOL bRet;
  bRet = InitiateSystemShutdownEx( NULL,
                                   NULL, // message
                                   0,        
                                   FALSE,    
                                   TRUE,     
                                   0);  // shutdown reason
  // ...
}

Pour corriger cet avertissement, spécifiez dwReason et lpMessage, comme indiqué dans le code suivant :

#include <windows.h>
void f()
{
  //...
  BOOL bRet;
  bRet = InitiateSystemShutdownEx( NULL,
                               "Hardware Failure",  // message  
                               0,        
                               FALSE,    
                               TRUE,     
                               SHTDN_REASON_MAJOR_HARDWARE ); // reason
  // ...
}