Condividi tramite


Avviso C6381

L'API di arresto 'function' richiede un dwReason o lpMessage valido

Osservazioni:

Questo avviso viene generato se InitiateSystemShutdownEx viene chiamato:

  • Senza passare un motivo di arresto valido (dwReason). Se dwReason il parametro è zero, il valore predefinito è un arresto non definito. Per impostazione predefinita, è anche un arresto non pianificato. Per questo parametro è consigliabile usare uno dei codici motivo di arresto del sistema.

  • Senza passare un messaggio di arresto (lpMessage).

È consigliabile usare i parametri appropriati quando si chiama questa API per aiutare gli amministratori di sistema a determinare la causa dell'arresto.

Nome dell'analisi del codice: SHUTDOWN_API

Esempio

Il codice seguente genera questo avviso perché dwReason è zero e lpMessage è null:

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

Per correggere questo avviso, specificare dwReason e lpMessage come illustrato nel codice seguente:

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