00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#include "ntrtlp.h"
00022
#include <nturtl.h>
00023
00024
#if defined(ALLOC_PRAGMA) && defined(NTOS_KERNEL_RUNTIME)
00025
#pragma alloc_text(PAGE,RtlAcquirePebLock)
00026
#pragma alloc_text(PAGE,RtlReleasePebLock)
00027
#endif
00028
00029 typedef VOID (*
PEB_LOCK_ROUTINE)(PVOID FastLock);
00030
00031
VOID
00032 RtlAcquirePebLock( VOID )
00033 {
00034
PEB_LOCK_ROUTINE LockRoutine;
00035 PPEB Peb;
00036
00037
RTL_PAGED_CODE();
00038
00039 Peb = NtCurrentPeb();
00040
00041 LockRoutine = (
PEB_LOCK_ROUTINE)Peb->FastPebLockRoutine;
00042
ASSERT(LockRoutine);
00043 (LockRoutine)(Peb->FastPebLock);
00044 }
00045
00046
VOID
00047 RtlReleasePebLock( VOID )
00048 {
00049
PEB_LOCK_ROUTINE LockRoutine;
00050 PPEB Peb;
00051
00052
RTL_PAGED_CODE();
00053
00054 Peb = NtCurrentPeb();
00055
00056 LockRoutine = (
PEB_LOCK_ROUTINE)Peb->FastPebUnlockRoutine;
00057
ASSERT(LockRoutine);
00058 (LockRoutine)(Peb->FastPebLock);
00059 }