78 lines
2.3 KiB
C
78 lines
2.3 KiB
C
/*++
|
|
Copyright (c) 1989 Microsoft Corporation
|
|
|
|
Module Name:
|
|
tsecomm.c
|
|
|
|
Abstract:
|
|
Common security definitions and routines.
|
|
|
|
This module defines macros that provide a mode-independent interface for security test procedures.
|
|
|
|
The mode must be specified by defining one, but not both, of:
|
|
_TST_USER_ (for user mode tests)
|
|
_TST_KERNEL_ (for kernel mode tests)
|
|
|
|
Author:
|
|
Jim Kelly (JimK) 23-Mar-1990
|
|
|
|
Environment:
|
|
Test of security.
|
|
--*/
|
|
|
|
#ifndef _TSECOMM_
|
|
#define _TSECOMM_
|
|
|
|
// Common Definitions //
|
|
#define SEASSERT_SUCCESS(s) { \
|
|
if (!NT_SUCCESS((s))) { \
|
|
DbgPrint("** ! Failed ! **\n"); \
|
|
DbgPrint("Status is: 0x%lx \n", (s)); \
|
|
} \
|
|
ASSERT(NT_SUCCESS(s)); }
|
|
|
|
// Kernel Mode Definitions //
|
|
#ifdef _TST_KERNEL_
|
|
#define TstAllocatePool(PoolType,NumberOfBytes) (ExAllocatePool( (PoolType), (NumberOfBytes) ))
|
|
#define TstDeallocatePool(Pointer, NumberOfBytes) (ExFreePool( (Pointer) ))
|
|
#endif // _TST_KERNEL_
|
|
|
|
// User Mode Definitions //
|
|
|
|
#ifdef _TST_USER_
|
|
|
|
#include <nt.h>
|
|
#include <ntrtl.h>
|
|
#include <nturtl.h>
|
|
|
|
#include "sep.h"
|
|
|
|
#define TstAllocatePool(IgnoredPoolType,NumberOfBytes) (ITstAllocatePool( (NumberOfBytes) ))
|
|
#define TstDeallocatePool(Pointer, NumberOfBytes) (ITstDeallocatePool((Pointer),(NumberOfBytes) ))
|
|
|
|
|
|
PVOID ITstAllocatePool(IN ULONG NumberOfBytes)
|
|
{
|
|
NTSTATUS Status;
|
|
PVOID PoolAddress = NULL;
|
|
ULONG RegionSize;
|
|
|
|
RegionSize = NumberOfBytes;
|
|
Status = NtAllocateVirtualMemory( NtCurrentProcess(), &PoolAddress, 0, &RegionSize, MEM_COMMIT, PAGE_READWRITE);
|
|
return PoolAddress;
|
|
}
|
|
|
|
|
|
VOID ITstDeallocatePool(IN PVOID Pointer, IN ULONG NumberOfBytes)
|
|
{
|
|
NTSTATUS Status;
|
|
PVOID PoolAddress;
|
|
ULONG RegionSize;
|
|
|
|
RegionSize = NumberOfBytes;
|
|
PoolAddress = Pointer;
|
|
Status = NtFreeVirtualMemory( NtCurrentProcess(), &PoolAddress, &RegionSize, MEM_DECOMMIT);
|
|
}
|
|
#endif // _TST_USER_
|
|
|
|
#endif //_TSECOMM_
|