Поделиться через


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
  // ...
}