test: eballoc.c Source File

Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

# eballoc.c

Go to the documentation of this file.

    00001 /*++
    00002
    00003 Copyright (c) 1990  Microsoft Corporation
    00004
    00005 Module Name:
    00006
    00007     eballoc.c
    00008
    00009 Abstract:
    00010
    00011     Process/Thread Environment Block allocation functions
    00012
    00013 Author:
    00014
    00015     Steve Wood (stevewo) 10-May-1990
    00016
    00017 Revision History:
    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 }