C6381
ostrzeżenie C6381: zamknięcie interfejsu API <function> wymaga prawidłowego dwReason lub lpMessage
To ostrzeżenie jest zgłaszane, jeśli InitiateSystemShutdownEx jest wywoływane:
Bez prawidłowej przyczyny zamknięcia (dwReason).Parametr dwReason jest równy zeru, domyślne zamknięcie jest niezdefiniowane.Domyślnie jest to również nieplanowane zamknięcie.Dla tego parametru należy używać jednego z kodów System Shutdown Reason Codes.
Bez przekazywania komunikatu zamknięcia (lpMessage).
Firma Microsoft zaleca użycie odpowiednich parametrów podczas wywoływania tego interfejsu API, aby pomóc administratorom systemu w określeniu przyczyny zamknięcia systemu.
Przykład
Poniższy kod generuje to ostrzeżenie, ponieważ dwReason jest równy zero i lpMessage ma wartość null:
void f()
{
//...
BOOL bRet;
bRet = InitiateSystemShutdownEx( NULL,
NULL, // message
0,
FALSE,
TRUE,
0); // shutdown reason
// ...
}
Aby poprawić to ostrzeżenie, należy określić dwReason i lpMessage, jak pokazano w poniższym kodzie:
#include <windows.h>
void f()
{
//...
BOOL bRet;
bRet = InitiateSystemShutdownEx( NULL,
"Hardware Failure", // message
0,
FALSE,
TRUE,
SHTDN_REASON_MAJOR_HARDWARE ); // reason
// ...
}