C6381
Предупреждение C6381: для завершения работы <функции> API требуется допустимый dwReason или lpMessage.
Данное предупреждение возникает при вызове функции InitiateSystemShutdownEx, если выполняется одно из следующих условий.
Не передается допустимая причина завершения работы (dwReason). Если параметр dwReason равен нулю, то по умолчанию такое завершение работы считается неопределенным. Кроме того, этот незапланированное завершение работы. Следует использовать для этого параметра один из кодов причины завершения работы системы.
Не передается сообщение о завершении работы (lpMessage).
Рекомендуется использовать при вызове этой функции API соответствующие параметры, чтобы помочь системным администраторам определить причину завершения работы.
Пример
В следующем коде создается данное предупреждение, поскольку значение dwReason равно нулю, а значение lpMessage не передается:
void f()
{
//...
BOOL bRet;
bRet = InitiateSystemShutdownEx( NULL,
NULL, // message
0,
FALSE,
TRUE,
0); // shutdown reason
// ...
}
Для устранения этого предупреждения укажите значения dwReason и lpMessage, как показано в следующем коде:
#include <windows.h>
void f()
{
//...
BOOL bRet;
bRet = InitiateSystemShutdownEx( NULL,
"Hardware Failure", // message
0,
FALSE,
TRUE,
SHTDN_REASON_MAJOR_HARDWARE ); // reason
// ...
}