PipDeviceObjectListAdd
VOID __stdcall PipDeviceObjectListAdd(
GUID *SourceId,
UINT64 ControlCode,
UINT8 Level,
UINT64 MatchAnyKeyword,
UINT64 MatchAllKeyword,
EVENT_FILTER_DESCRIPTOR *FilterData,
PVOID CallbackContext){
_DEVICE_OBJECT_LIST *v7;
int v8;
_DEVICE_RELATION_LEVEL v9;
__int64 Count;
int v13;
_DEVICE_OBJECT_LIST *List;
v8 = MatchAnyKeyword;
List = *(_DEVICE_OBJECT_LIST **)&SourceId->Data1;
v7 = List;
v9 = Level;
if( List->Count + 1 != List->MaxCount || (PipGrowDeviceObjectList(&List), v7 = List, v13 >= 0) )
{
Count = v7->Count;
ObfReferenceObjectWithTag((PVOID)ControlCode, 0x4C706E50u);
v7->Devices[Count].Flags = 0;
v7->Devices[Count].DeviceObject = (_DEVICE_OBJECT *)ControlCode;
v7->Devices[Count].RelationLevel = v9;
if( v8 == 1 )
{
v7->Devices[Count].Flags = 1;
++v7->TagCount;
}
++v7->Count;
}
*(_QWORD *)&SourceId->Data1 = v7;
}Referenced by:
PipGrowDeviceObjectList