C6381
Aviso C6381: Desligamento de API <function> requer um dwReason válido ou lpMessage
Esse aviso é emitido se InitiateSystemShutdownEx for chamado:
Sem passar uma razão de desligamento válido (dwReason). Se o parâmetro de dwReason for zero, o padrão é um desligamento indefinido. Por padrão, é também um desligamento não planejado. Você deve usar um dos códigos de razão de desligamento do sistema para este parâmetro.
Sem passar uma mensagem de desligamento (lpMessage).
Recomendamos que você use parâmetros adequados ao chamar essa API para ajudar os administradores de sistema para determinar a causa do desligamento.
Exemplo
O código a seguir gera este aviso porque dwReason é zero e lpMessage é nulo:
void f()
{
//...
BOOL bRet;
bRet = InitiateSystemShutdownEx( NULL,
NULL, // message
0,
FALSE,
TRUE,
0); // shutdown reason
// ...
}
Para corrigir esse aviso, especifica dwReason e lpMessage, conforme mostrado no código a seguir:
#include <windows.h>
void f()
{
//...
BOOL bRet;
bRet = InitiateSystemShutdownEx( NULL,
"Hardware Failure", // message
0,
FALSE,
TRUE,
SHTDN_REASON_MAJOR_HARDWARE ); // reason
// ...
}