PiSwProcessParentStartIrp

VOID __stdcall PiSwProcessParentStartIrp(DEVICE_OBJECT *ParentDeviceObject){
  __int64 v2; 
  _ETHREAD *CurrentThread; 
  LIST_ENTRY *Children; 
  if( ParentDeviceObject )
    v2 = *(_QWORD *)(*((_QWORD *)ParentDeviceObject + 39) + 40i64);
  else
    v2 = 0i64;
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --*((_WORD *)CurrentThread + 242);
  ExAcquireResourceExclusiveLite((ERESOURCE *)PiSwLockObj, 1u);
  Children = PiSwFindChildren((UNICODE_STRING *)(v2 + 40));
  ExReleaseResourceLite((PERESOURCE)PiSwLockObj);
  KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
  if( Children )
    IoInvalidateDeviceRelations(ParentDeviceObject, SingleBusRelations);
}

Referenced by:

PnpDeviceCompletionProcessCompletedRequest
PnpStartDeviceNode