PiSwAddPdoAssociation
NTSTATUS __stdcall PiSwAddPdoAssociation(
PI_SWD_OBJECT *SwDeviceObject,
VOID *ParentDeviceObject,
VOID *ChildDeviceObject){
NTSTATUS v3;
VOID **PoolWithTag;
PI_SWD_OBJECT **v8;
_QWORD *v9;
_QWORD *v10;
v3 = 0;
PoolWithTag = ExAllocatePoolWithTag(1ui64, 0x30ui64, 1466986064i64);
if( !PoolWithTag )
return -1073741670;
ObfReferenceObject(ParentDeviceObject);
ObfReferenceObject(ChildDeviceObject);
PoolWithTag[4] = ParentDeviceObject;
PoolWithTag[5] = ChildDeviceObject;
v8 = (PI_SWD_OBJECT **)*((_QWORD *)SwDeviceObject + 17);
if( *v8 != SwDeviceObject + 32
|| (*PoolWithTag = SwDeviceObject + 32,
PoolWithTag[1] = v8,
*v8 = (PI_SWD_OBJECT *)PoolWithTag,
*((_QWORD *)SwDeviceObject + 17) = PoolWithTag,
v9 = PoolWithTag + 2,
v10 = (_QWORD *)qword_140C43078,
*(__int64 **)qword_140C43078 != &PiSwGlobalPdoAssociationList) )
{
__fastfail(3u);
}
*v9 = &PiSwGlobalPdoAssociationList;
v9[1] = v10;
*v10 = v9;
qword_140C43078 = (__int64)v9;
return v3;
}Referenced by:
PiSwGetChildPdo