NOTE(ASSUMING_PROTECTED(DataExpr, ...))
This annotation, which is allowed only within a function definition, tells LockLint that this function assumes that the variables represented by the specified expressions are protected in one of the following ways:
The appropriate lock is held for each variable
The variables are invisible to other threads
There are no competing threads when the call is made
LockLint issues an error if none of these conditions is true.
f(Foo* p, Bar* q) { NOTE(ASSUMING_PROTECTED(*p, *q)) p->a++; ... }