Re: RtlAllocateHeap
- From
- Alex Fedotov ()
- To
- Alexey Nevolin
- Date
- 2001-03-12T06:44:20Z
- Area
- SU.WINDOWS.NT.PROG
From: "Alex Fedotov" <alexf@3cube.com>
Alexey Nevolin wrote:
> NTSYSAPI
> HANDLE
> NTAPI
> RtlCreateHeap (
> IN ULONG Flags,
> IN PVOID Base,
> IN ULONG Reserve,
> IN ULONG Commit,
> IN ULONG Lock,
> IN PVOID RtlHeapParams);
>
> Что такое Flags, Reserve, Commit - понятно (флаги, сколько максимально,
> сколько надо). А остальное??? В kernel32.dll это все выглядит так:
> [...]
> Т.е. оно опускает (заранее нули) все остальные параметры. А что это за
> параметры?
Что такое Base вроде тоже понятно. Это базовый адрес создаваемой кучи.
Поиск в Internet на эту тему дал единственный полезный результат на
http://www.sysinternals.com/ntw2k/info/native.shtml. Там у Руссиновича
несколько другой прототип функции (ты свой, кстати, откуда взял?):
//
// Data structure for heap definition. This includes various
// sizing parameters and callback routines, which, if left NULL,
// result in default behavior
//
typedef struct {
ULONG Length;
ULONG Unknown[11];
} RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION;
//
// Heap creation routine
//
HANDLE
NTAPI
RtlCreateHeap(
ULONG Flags,
PVOID BaseAddress,
ULONG SizeToReserve,
ULONG SizeToCommit,
PVOID Unknown,
PRTL_HEAP_DEFINITION Definition
);
А вызывается она у него так:
//
// Initialize some heap
//
memset( &heapParams, 0, sizeof( RTL_HEAP_DEFINITION ));
heapParams.Length = sizeof( RTL_HEAP_DEFINITION );
Heap = RtlCreateHeap( 2, 0, 0x100000, 0x1000, 0, &heapParams );
--
Alex Fedotov
--- ifmail v.2.15dev5
* Origin: 3Cube, Inc. (www.3cube.com) (2:5020/400)