C28104

警告的 C28104:应当访问的资源,如函数退出之前未获取

要获取资源的功能,在退出之前退出,而无需访问该资源。 此警告意味着函数说明与 __drv_acquiresResource,但不返回确实获取资源。 如果此功能是包装函数,则路径全部函数未达到所包装的功能。 如果无法到达该包装功能是,因为该函数返回 false,而实际上并没有访问该资源,则可能需要使用一个条件批注 (__drv_when)。

如果此功能实际实现该资源的获取,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)
}