The documentation (online MSDN library) says:

__drv_requiresIRQL(APC_LEVEL)
VOID
ExReleaseFastMutex(
__inout
__drv_in(__drv_restoresIRQL
__drv_releasesResource(FastMutex))
PFAST_MUTEX FastMutex
);

The correct annotations for ExReleaseFastMutex from the model file are:

__drv_requiresIRQL(APC_LEVEL)
__drv_restoresIRQLGlobal(FastMutex, FastMutex)
VOID
ExReleaseFastMutex(
__inout
__drv_in(
__drv_deref(__drv_releasesResource(FastMutex))))
PFAST_MUTEX FastMutex
);

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com

Re: PREfast 6001 annotations: DOCERR by Doron

Doron
Mon Mar 10 00:08:30 CDT 2008

please use the feedback button on the page to send this correction

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"Maxim S. Shatskih" <maxim@storagecraft.com> wrote in message
news:%23iHVk6SgIHA.6136@TK2MSFTNGP03.phx.gbl...
> The documentation (online MSDN library) says:
>
> __drv_requiresIRQL(APC_LEVEL)
> VOID
> ExReleaseFastMutex(
> __inout
> __drv_in(__drv_restoresIRQL
> __drv_releasesResource(FastMutex))
> PFAST_MUTEX FastMutex
> );
>
> The correct annotations for ExReleaseFastMutex from the model file are:
>
> __drv_requiresIRQL(APC_LEVEL)
> __drv_restoresIRQLGlobal(FastMutex, FastMutex)
> VOID
> ExReleaseFastMutex(
> __inout
> __drv_in(
> __drv_deref(__drv_releasesResource(FastMutex))))
> PFAST_MUTEX FastMutex
> );
>
> --
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> maxim@storagecraft.com
> http://www.storagecraft.com
>