The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at C28109.

warning C28109: Variable cannot be held at the time function is called

The program is holding a resource that should not be held when it is calling this function. Typically, it indicates that the resource was unintentionally acquired twice. The Code Analysis tool reports this warning when resources are acquired and released in the same function.

The following code example generates this warning:

ExAcquireResourceLite(resource, true);  
ExAcquireResourceLite(resource, true);  

The following code example avoids this warning:

ExAcquireResourceLite(resource, true);