次の方法で共有


C28104

警告 C28104: 関数の終了が得られなかった前に取得する必要のあるリソース

終了する前にリソースを取得する関数はリソースを取得せずに終了しました。この警告は、関数が __drv_acquiresResource が、が指定されていることを示します。戻り、リソースを取得します。この関数は、ラッパー関数の場合、関数へのパスは、ラップされた関数に到達していません。関数は、エラーを返し、実際にリソースを取得していないため、ラップされた関数に達する失敗した場合、条件付きコメント (__drv_when) を使用する必要がある場合があります。

この関数が実際に Resource Acquisition Is Initialization、Resource Acquisition Is コンストラクターの組み合わせ Application Programming Interface を実装する場合は、リソースが取得されることを検出することが PFD ができないことがあります。このケースでは、エラーを抑制する警告する #pragma を使用します。{ に挿入される関数本体を開始する行に、#pragma を設定できます。呼び出し元の関数は、コメントを必要としますが、コード分析ツールは、リソースが取得されたことを検出できません。

使用例

__drv_acquireResourceGlobal(HWLock, lockid)
void GetHardwareLock(lockid)
#pragma warning (suppress: 28104)
{
   // code to implement a hardware lock (which the Code Analysis tool can't recognize)
}