ExpPartitionCreatePoolInternal
NTSTATUS __stdcall ExpPartitionCreatePoolInternal(INT64 a1, INT64 a2, INT64 a3, INT64 a4, INT64 arg20){
unsigned int v5;
unsigned int v6;
VOID **PoolWithTag;
int v10;
INT64 a6;
v5 = a3;
v6 = a2;
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x2E0ui64, 1817671749i64);
if( !PoolWithTag )
return -1073741801;
LODWORD(a6) = arg20;
v10 = ExpWorkQueueInitializeWithMinimumThreads(
(_ENODE *)PoolWithTag,
v6,
v5,
(_LIST_ENTRY *)a1,
a4,
a6,
(_EX_WORK_QUEUE *)(*(_QWORD *)(*(_QWORD *)(a1 + 16) + 8i64 * *(unsigned __int16 *)(a4 + 146)) + 276i64));
if( v10 >= 0 )
{
*(_QWORD *)(*(_QWORD *)(*(_QWORD *)(a1 + 8) + 8i64 * *(unsigned __int16 *)(a4 + 146)) + 8i64 * (int)arg20) = PoolWithTag;
PoolWithTag = 0i64;
v10 = 0;
}
if( PoolWithTag )
{
ExpWorkQueueDestroy(PoolWithTag);
ExFreePoolWithTag(PoolWithTag, 0);
}
return v10;
}Referenced by:
ExpPartitionCreatePool
ExpPartitionCreatePoolDelayed
ExpPartitionInitialize