Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

181 lines
2.5 KiB

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
fmutexc.c
Abstract:
This module implements the code necessary to acquire and release fast
mutexes.
Author:
David N. Cutler (davec) 23-Jun-2000
Environment:
Any mode.
Revision History:
--*/
#include "exp.h"
#if !defined (_X86_)
#undef ExAcquireFastMutex
VOID
ExAcquireFastMutex (
IN PFAST_MUTEX FastMutex
)
/*++
Routine Description:
This function acquires ownership of a fast mutex and raises IRQL to
APC Level.
Arguments:
FastMutex - Supplies a pointer to a fast mutex.
Return Value:
None.
--*/
{
xxAcquireFastMutex(FastMutex);
return;
}
#undef ExReleaseFastMutex
VOID
ExReleaseFastMutex (
IN PFAST_MUTEX FastMutex
)
/*++
Routine Description:
This function releases ownership to a fast mutex and lowers IRQL to
its previous level.
Arguments:
FastMutex - Supplies a pointer to a fast mutex.
Return Value:
None.
--*/
{
xxReleaseFastMutex(FastMutex);
return;
}
#undef ExTryToAcquireFastMutex
BOOLEAN
ExTryToAcquireFastMutex (
IN PFAST_MUTEX FastMutex
)
/*++
Routine Description:
This function attempts to acquire ownership of a fast mutex, and if
successful, raises IRQL to APC level.
Arguments:
FastMutex - Supplies a pointer to a fast mutex.
Return Value:
If the fast mutex was successfully acquired, then a value of TRUE
is returned as the function value. Otherwise, a value of FALSE is
returned.
--*/
{
return xxTryToAcquireFastMutex(FastMutex);
}
#undef ExAcquireFastMutexUnsafe
VOID
ExAcquireFastMutexUnsafe (
IN PFAST_MUTEX FastMutex
)
/*++
Routine Description:
This function acquires ownership of a fast mutex, but does not raise
IRQL to APC Level.
Arguments:
FastMutex - Supplies a pointer to a fast mutex.
Return Value:
None.
--*/
{
xxAcquireFastMutexUnsafe(FastMutex);
return;
}
#undef ExReleaseFastMutexUnsafe
VOID
ExReleaseFastMutexUnsafe (
IN PFAST_MUTEX FastMutex
)
/*++
Routine Description:
This function releases ownership to a fast mutex, and does not restore
IRQL to its previous level.
Arguments:
FastMutex - Supplies a pointer to a fast mutex.
Return Value:
None.
--*/
{
xxReleaseFastMutexUnsafe(FastMutex);
return;
}
#endif