Avertissement C6381

L’API d’arrêt 'function' nécessite une dwReason ou lpMessage valide

Notes

Cet avertissement est émis s’il InitiateSystemShutdownEx est appelé :

  • Sans passer une raison d’arrêt valide (dwReason). Si dwReason le paramètre est égal à zéro, la valeur par défaut est un arrêt non défini. Par défaut, il s’agit également d’un arrêt non planifié. Vous devez utiliser l’un des codes de raison d’arrêt du système pour ce paramètre.

  • Sans passer un message d’arrêt (lpMessage).

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

Nom de l’analyse du code : SHUTDOWN_API

Exemple

Le code suivant génère cet avertissement, car dwReason est égal à 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
  // ...
}