PipGrowDeviceObjectList
VOID __stdcall PipGrowDeviceObjectList(_DEVICE_OBJECT_LIST **List){
unsigned int *v1;
_DEVICE_OBJECT_LIST *DeviceObjectList;
unsigned int i;
UINT64 MatchAllKeyword;
EVENT_FILTER_DESCRIPTOR *v6;
void *savedregs;
UINT64 MatchAnyKeyword;
int Level;
UINT64 ControlCode;
_DEVICE_OBJECT_LIST *v11;
v1 = (unsigned int *)*List;
ControlCode = 0i64;
Level = 0;
LODWORD(MatchAnyKeyword) = 0;
DeviceObjectList = PiAllocateDeviceObjectList((_PNP_DEVICE_DELETE_TYPE)v1[3], 2 * v1[1]);
v11 = DeviceObjectList;
if( DeviceObjectList )
{
for( i = 0; i < *v1; ++i )
{
PipDeviceObjectListElementAt(v1, i, &ControlCode, &Level, (int *)&MatchAnyKeyword);
PipDeviceObjectListAdd(
(GUID *)&v11,
ControlCode,
Level,
(unsigned int)MatchAnyKeyword,
MatchAllKeyword,
v6,
savedregs);
}
PiClearDeviceObjectList(v1);
ExFreePoolWithTag(v1, 0);
DeviceObjectList = v11;
}
*List = DeviceObjectList;
}Referenced by:
PipDeviceObjectListAdd