PiAllocateDeviceObjectList
_DEVICE_OBJECT_LIST *__fastcall PiAllocateDeviceObjectList(_PNP_DEVICE_DELETE_TYPE OperationCode, UINT64 MaxCount){
int v2;
CHAR *CriticalMemory;
_DEVICE_OBJECT_LIST *v5;
v2 = MaxCount;
CriticalMemory = PnpAllocateCriticalMemory(
*(INT64 *)&OperationCode,
PagedPool,
24 * (int)MaxCount + 16i64,
0x54706E50ui64);
v5 = (_DEVICE_OBJECT_LIST *)CriticalMemory;
if( CriticalMemory )
{
*(_DWORD *)CriticalMemory = 0;
*((_DWORD *)CriticalMemory + 2) = 0;
*((_DWORD *)CriticalMemory + 3) = OperationCode;
*((_DWORD *)CriticalMemory + 1) = v2;
PiClearDeviceObjectList(CriticalMemory);
}
return v5;
}Referenced by:
IopAllocateRelationList
PipGrowDeviceObjectList