Share via


C6381

경고 C6381: 종료 API <function>에는 유효한 dwReason 또는 lpMessage가 있어야 합니다.

이 경고는 다음과 같은 상황에서 InitiateSystemShutdownEx가 호출될 때 생성됩니다.

  • 올바른 종료 이유(dwReason)를 전달하지 않은 경우. dwReason 매개 변수가 0인 경우의 기본값은 정의되지 않은 종료입니다. 기본적으로 이것은 계획되지 않은 종료이기도 합니다. 이 매개 변수에는 시스템 종료 이유 코드 중 하나를 사용해야 합니다.

  • 종료 메시지를 전달하지 않은 경우(lpMessage)

시스템 관리자가 종료 원인을 확인하는 데 도움이 되도록 이 API를 호출할 때 적절한 매개 변수를 사용하는 것이 좋습니다.

예제

다음 코드에서는 dwReason이 0이고 lpMessage가 null이기 때문에 이 경고가 생성됩니다.

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