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