共用方式為


C6381

警告 C6381: 關閉 API <function> 需要有效的 dwReason 或 lpMessage

如果呼叫 InitiateSystemShutdownEx,就會發出這個警告:

  • 未傳遞有效的關機理由 (dwReason)。如果 dwReason 參數是零,則預設值是未定義的關機。依照預設,它也會是不在計劃中的關機。您應使用這個參數的其中一個「系統關機理由代碼」。

  • 未傳遞關機訊息 (lpMessage)。

建議您在呼叫這個 API 以協助系統管理員判定關機原因時,使用適當的參數。

範例

下列程式碼會因為 dwReason 為零且 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
  // ...
}