PnpNotifyTargetDeviceChangeNotifyEntry
VOID __fastcall PnpNotifyTargetDeviceChangeNotifyEntry(INT64 a1, INT64 a2, INT64 *a3, _DWORD *a4){
int SessionIdFromPDO;
_EJOB *CurrentServerSilo;
_ETHREAD *CurrentThread;
int v11;
SessionIdFromPDO = -1;
CurrentServerSilo = PsGetCurrentServerSilo();
if( *(_DWORD *)(a1 + 20) != (unsigned int)PsGetServerSiloServiceSessionId(CurrentServerSilo) )
SessionIdFromPDO = IopGetSessionIdFromPDO(*(DEVICE_OBJECT **)(a1 + 88));
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
ExAcquireResourceExclusiveLite(*(ERESOURCE **)(a1 + 72), 1u);
if( (SessionIdFromPDO == -1 || *(_DWORD *)(a1 + 20) == SessionIdFromPDO) && !*(_BYTE *)(a1 + 58) )
{
*(_QWORD *)(a2 + 24) = *(_QWORD *)(a1 + 80);
v11 = PnpNotifyDriverCallback(a1, a2, a4);
}
else
{
*a4 = -1073741637;
v11 = -1073741808;
}
*(_DWORD *)a3 = v11;
ExReleaseResourceLite(*(PERESOURCE *)(a1 + 72));
KeLeaveCriticalRegion();
}Referenced by:
PnpProcessDeferredRegistrations