Compartir a través de


C6381

Advertencia C6381: La API de cierre <función> requiere dwReason o lpMessage válido

Se emite esta advertencia si se llama a InitiateSystemShutdownEx:

  • Sin pasar una razón de cierre válida (dwReason). Si el parámetro dwReason es cero, el valor predeterminado es un cierre indefinido. De forma predeterminada, también es un cierre imprevisto. Debe utilizar uno de los Códigos de causa de cierre del sistema para este parámetro.

  • Sin pasar un mensaje de cierre del sistema (lpMessage).

Recomendamos que utilice los parámetros adecuados cuando llame a esta API, a fin de ayudar a los administradores del sistema a determinar la causa del cierre.

Ejemplo

El código siguiente genera esta advertencia porque dwReason es cero y lpMessage es null:

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

Para corregir esta advertencia, especifique dwReason y lpMessage como se muestra en el código siguiente:

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