PnpSetDeviceAffinityThread
UINT64 __stdcall PnpSetDeviceAffinityThread(_DEVICE_OBJECT *Device, _GROUP_AFFINITY *PreviousAffinity){
unsigned int v3;
struct _GROUP_AFFINITY Affinity;
Affinity = 0i64;
if( Device )
Device = *(_DEVICE_OBJECT **)(*((_QWORD *)Device + 39) + 40i64);
if( !Device )
return 0i64;
v3 = *((_DWORD *)Device + 165);
if( v3 > 0xFFFFFFFD )
return 0i64;
if( v3 >= (unsigned __int16)KeNumberNodes )
return 0i64;
KeQueryNodeActiveAffinity(*((_WORD *)Device + 330), &Affinity, 0i64);
KeAndGroupAffinityEx(&KeActiveProcessors, &Affinity, &Affinity);
if( !Affinity.Mask )
return 0i64;
KeSetSystemGroupAffinityThread(&Affinity, PreviousAffinity);
return 1i64;
}Referenced by:
PnpCallAddDevice
PnpSendIrp