PiAllocateDeviceObjectList
_DEVICE_OBJECT_LIST *__stdcall PiAllocateDeviceObjectList(PNP_DEVICE_DELETE_TYPE OperationCode, UINT64 MaxCount){
int v2;
VOID **CriticalMemory;
_DEVICE_OBJECT_LIST *v5;
v2 = MaxCount;
CriticalMemory = PnpAllocateCriticalMemory(OperationCode, PagedPool, 24 * (int)MaxCount + 16i64, 0x54706E50u);
v5 = (_DEVICE_OBJECT_LIST *)CriticalMemory;
if( CriticalMemory )
{
*(_DWORD *)CriticalMemory = 0;
*((_DWORD *)CriticalMemory + 2) = 0;
*((_DWORD *)CriticalMemory + 3) = OperationCode;
*((_DWORD *)CriticalMemory + 1) = v2;
PiClearDeviceObjectList((_DEVICE_OBJECT_LIST *)CriticalMemory);
}
return v5;
}Referenced by:
IopAllocateRelationList
PipGrowDeviceObjectList