FsRtlAllocateExtraCreateParameterList
NTSTATUS __stdcall FsRtlAllocateExtraCreateParameterList(UINT64 Flags, _ECP_LIST **EcpList){
_ECP_LIST *PoolWithQuotaTag;
int v4;
*EcpList = 0i64;
if( (Flags & 1) != 0 )
{
PoolWithQuotaTag = (_ECP_LIST *)ExAllocatePoolWithQuotaTag((POOL_TYPE)9, 0x18ui64, 0x6C655346ui64);
v4 = 2;
}
else
{
++*(&WheapErrorSourceTable + 143);
PoolWithQuotaTag = (_ECP_LIST *)RtlpInterlockedPopEntrySList((PSLIST_HEADER)((char *)&WheapErrorSourceTable + 552));
if( !PoolWithQuotaTag )
{
++*(&WheapErrorSourceTable + 144);
PoolWithQuotaTag = (_ECP_LIST *)(*(&WheapErrorSourceTable + 75))(
*(&WheapErrorSourceTable + 147),
*(&WheapErrorSourceTable + 149),
*(&WheapErrorSourceTable + 148));
}
v4 = 6;
}
if( !PoolWithQuotaTag )
return -1073741670;
PoolWithQuotaTag->Flags = v4;
PoolWithQuotaTag->Signature = 1282433861;
PoolWithQuotaTag->EcpList.Blink = &PoolWithQuotaTag->EcpList;
PoolWithQuotaTag->EcpList.Flink = &PoolWithQuotaTag->EcpList;
*EcpList = PoolWithQuotaTag;
return 0;
}Referenced by:
IopSymlinkAllocateAndAddECP
PspCreateUserProcessEcp