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