60 lines
981 B
C
60 lines
981 B
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1990 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
eballoc.c
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Process/Thread Environment Block allocation functions
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Steve Wood (stevewo) 10-May-1990
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#include "ntrtlp.h"
|
||
|
#include <nturtl.h>
|
||
|
|
||
|
#if defined(ALLOC_PRAGMA) && defined(NTOS_KERNEL_RUNTIME)
|
||
|
#pragma alloc_text(PAGE,RtlAcquirePebLock)
|
||
|
#pragma alloc_text(PAGE,RtlReleasePebLock)
|
||
|
#endif
|
||
|
|
||
|
typedef VOID (*PEB_LOCK_ROUTINE)(PVOID FastLock);
|
||
|
|
||
|
VOID
|
||
|
RtlAcquirePebLock( VOID )
|
||
|
{
|
||
|
PEB_LOCK_ROUTINE LockRoutine;
|
||
|
PPEB Peb;
|
||
|
|
||
|
RTL_PAGED_CODE();
|
||
|
|
||
|
Peb = NtCurrentPeb();
|
||
|
|
||
|
LockRoutine = (PEB_LOCK_ROUTINE)Peb->FastPebLockRoutine;
|
||
|
ASSERT(LockRoutine);
|
||
|
(LockRoutine)(Peb->FastPebLock);
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
RtlReleasePebLock( VOID )
|
||
|
{
|
||
|
PEB_LOCK_ROUTINE LockRoutine;
|
||
|
PPEB Peb;
|
||
|
|
||
|
RTL_PAGED_CODE();
|
||
|
|
||
|
Peb = NtCurrentPeb();
|
||
|
|
||
|
LockRoutine = (PEB_LOCK_ROUTINE)Peb->FastPebUnlockRoutine;
|
||
|
ASSERT(LockRoutine);
|
||
|
(LockRoutine)(Peb->FastPebLock);
|
||
|
}
|