3.5 windows xp ReactOS EiAllocatePool()
系列文章目录
文章目录
- 系列文章目录
- @[TOC](文章目录) 道过 ExAllocatePool()分配缓冲区
- EiAllocatePool()
道过 ExAllocatePool()分配缓冲区
文章目录
- 系列文章目录
- @[TOC](文章目录) 道过 ExAllocatePool()分配缓冲区
- EiAllocatePool()
EiAllocatePool()
道过 ExAllocatePool()分配缓冲区
/* FUNCTIONS ***************************************************************/
static PVOID STDCALL
EiAllocatePool(POOL_TYPE PoolType,
ULONG NumberOfBytes,
ULONG Tag,
PVOID Caller)
{
PVOID Block;
/* FIXME: Handle SESSION_POOL_MASK, VERIFIER_POOL_MASK, QUOTA_POOL_MASK */
if (PoolType & PAGED_POOL_MASK)//最低位为1
{
Block = ExAllocatePagedPoolWithTag(PoolType,NumberOfBytes,Tag);
}
else
{
Block = ExAllocateNonPagedPoolWithTag(PoolType,NumberOfBytes,Tag,Caller);
}
if ((PoolType & MUST_SUCCEED_POOL_MASK) && Block==NULL)
{//只许成功不许失败,但是失败了
KEBUGCHECK(MUST_SUCCEED_POOL_EMPTY);
}
return(Block);
}