120 lines
2.3 KiB
C
120 lines
2.3 KiB
C
|
/******************************************************************************
|
||
|
*beta2.c - DLL file to support building BETA2 (Build 340) compatible
|
||
|
* image files with new libraries that call Heap???Ex functions
|
||
|
*
|
||
|
* Copyright (c) 1989-1992, Microsoft Corporation. All rights reserved.
|
||
|
*
|
||
|
*Purpose:
|
||
|
*
|
||
|
*Revision History:
|
||
|
* 04-28-93 SRW Created.
|
||
|
*
|
||
|
*******************************************************************************/
|
||
|
|
||
|
#include <nt.h>
|
||
|
#include <ntrtl.h>
|
||
|
#include <nturtl.h>
|
||
|
|
||
|
//
|
||
|
// The following functions are here for compatibility with the old
|
||
|
// heap API. They will go away by Build 352
|
||
|
//
|
||
|
|
||
|
PVOID
|
||
|
NTAPI
|
||
|
RtlExAllocateHeap(
|
||
|
IN PVOID HeapHandle,
|
||
|
IN ULONG Flags,
|
||
|
IN ULONG Size
|
||
|
);
|
||
|
|
||
|
PVOID
|
||
|
NTAPI
|
||
|
RtlExReAllocateHeap(
|
||
|
IN PVOID HeapHandle,
|
||
|
IN ULONG Flags,
|
||
|
IN PVOID BaseAddress,
|
||
|
IN ULONG Size
|
||
|
);
|
||
|
|
||
|
BOOLEAN
|
||
|
NTAPI
|
||
|
RtlExFreeHeap(
|
||
|
IN PVOID HeapHandle,
|
||
|
IN ULONG Flags,
|
||
|
IN PVOID BaseAddress
|
||
|
);
|
||
|
|
||
|
ULONG
|
||
|
NTAPI
|
||
|
RtlExSizeHeap(
|
||
|
IN PVOID HeapHandle,
|
||
|
IN ULONG Flags,
|
||
|
IN PVOID BaseAddress
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
PreBeta2RtlUnwind (
|
||
|
IN PVOID TargetFrame OPTIONAL,
|
||
|
IN PVOID TargetIp OPTIONAL,
|
||
|
IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL
|
||
|
);
|
||
|
|
||
|
#define INVERTED_FLAGS (HEAP_NO_SERIALIZE | HEAP_GENERATE_EXCEPTIONS | HEAP_REALLOC_IN_PLACE_ONLY)
|
||
|
|
||
|
PVOID
|
||
|
NTAPI
|
||
|
RtlExAllocateHeap(
|
||
|
IN PVOID HeapHandle,
|
||
|
IN ULONG Flags,
|
||
|
IN ULONG Size
|
||
|
)
|
||
|
{
|
||
|
return( RtlAllocateHeap( HeapHandle, Flags ^ INVERTED_FLAGS, Size ) );
|
||
|
}
|
||
|
|
||
|
PVOID
|
||
|
NTAPI
|
||
|
RtlExReAllocateHeap(
|
||
|
IN PVOID HeapHandle,
|
||
|
IN ULONG Flags,
|
||
|
IN PVOID BaseAddress,
|
||
|
IN ULONG Size
|
||
|
)
|
||
|
{
|
||
|
return( RtlReAllocateHeap( HeapHandle, Flags ^ INVERTED_FLAGS, BaseAddress, Size ) );
|
||
|
}
|
||
|
|
||
|
BOOLEAN
|
||
|
NTAPI
|
||
|
RtlExFreeHeap(
|
||
|
IN PVOID HeapHandle,
|
||
|
IN ULONG Flags,
|
||
|
IN PVOID BaseAddress
|
||
|
)
|
||
|
{
|
||
|
return( RtlFreeHeap( HeapHandle, Flags ^ INVERTED_FLAGS, BaseAddress ) );
|
||
|
}
|
||
|
|
||
|
ULONG
|
||
|
NTAPI
|
||
|
RtlExSizeHeap(
|
||
|
IN PVOID HeapHandle,
|
||
|
IN ULONG Flags,
|
||
|
IN PVOID BaseAddress
|
||
|
)
|
||
|
{
|
||
|
return( RtlSizeHeap( HeapHandle, Flags ^ INVERTED_FLAGS, BaseAddress ) );
|
||
|
}
|
||
|
|
||
|
|
||
|
VOID
|
||
|
PreBeta2RtlUnwind(
|
||
|
IN PVOID TargetFrame OPTIONAL,
|
||
|
IN PVOID TargetIp OPTIONAL,
|
||
|
IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL
|
||
|
)
|
||
|
{
|
||
|
RtlUnwind( TargetFrame, TargetIp, ExceptionRecord, 0 );
|
||
|
}
|