PnpCallAddDevice
__int64 __fastcall PnpCallAddDevice(__int64 a1, INT64 a2, INT64 *a3, INT64 a4){
int v4;
int v8;
int v9;
VOID **v10;
__int64 v11;
__int64 v12;
unsigned int v13;
__int64 v14;
_DEVICE_OBJECT *v16;
VF_DEVOBJ_TYPE v17;
__int64 v18[4];
_GROUP_AFFINITY PreviousAffinity;
v18[0] = 0i64;
v4 = a4;
PreviousAffinity = 0i64;
if( (byte_140C130BB & 8) != 0 )
McTemplateK0qhzr1z_EtwWriteTransfer(
*(_WORD *)(a2 + 56) >> 1,
a2,
(INT64)a3,
a4,
*(_WORD *)(a2 + 56) >> 1,
*(_QWORD *)(a2 + 64),
*(const WCHAR **)(a1 + 48));
v8 = PnpSetDeviceAffinityThread(*(_QWORD *)(a1 + 32), &PreviousAffinity);
v18[1] = a1;
v18[2] = a2;
v9 = v8;
v18[3] = (__int64)KeGetCurrentThread();
v10 = PnpEnableWatchdog(4, (__int64)v18);
v13 = PpvUtilCallAddDevice(
*(_DEVICE_OBJECT **)(a1 + 32),
(_DRIVER_OBJECT *)a2,
a3,
(_DRIVER_OBJECT *)(unsigned int)(v4 + 1),
v16,
v17);
if( v10 )
PnpDisableWatchdog((__int64)v10);
if( v9 )
KeRevertToUserGroupAffinityThread(&PreviousAffinity);
if( (byte_140C130BB & 8) != 0 )
McTemplateK0q_EtwWriteTransfer(v12, v11, v14, v13);
return v13;
}Referenced by:
PipCallDriverAddDevice