C6381

تحذير C6381: تتطلب إيقاف تشغيل واجهة برمجة تطبيقات <دالة> dwReason صحيحة أو lpMessage

Th هو تحذير هو هو لو sued InitiateSystemShutdownEx هو تسمى:

  • بدون تمرير صالح متوقَّف عن التشغيل السبب (dwReason). إذا كانت معلمة dwReason هو صفر، والقيمة الافتراضية هو إيقاف تشغيل غير معرف. بشكل افتراضي، فإنه هو أيضا إيقاف غير المخطط لها. ينبغي عليك استخدم واحد "رموز أسباب متوقَّف عن التشغيل النظام" لهذه معلمة.

  • بدون تمرير متوقَّف عن التشغيل الرسالة (lpMessage).

من المستحسن استخدام المعلمات المناسبة عند استدعاء API إلى المساعدة administraإلىrs النظام بتحديد السبب لإيقاف التشغيل.

مثال

يلي تعليمات برمجية ينشئ هذا التحذير لأن 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
  // ...
}