SmcVolumePnpNotification
NTSTATUS __stdcall SmcVolumePnpNotification(VOID *NotificationStructure, VOID *Context){
__int64 v2;
unsigned int v4;
__int64 v5;
unsigned int v6;
_DWORD *v7;
unsigned int v8;
_SMC_CACHE *v9;
_SMC_CACHE *v10;
v2 = *(_QWORD *)((char *)NotificationStructure + 4) - *(_QWORD *)&GUID_TARGET_DEVICE_QUERY_REMOVE.Data1;
v4 = 0;
if( !v2 )
v2 = *(_QWORD *)((char *)NotificationStructure + 12) - *(_QWORD *)GUID_TARGET_DEVICE_QUERY_REMOVE.Data4;
if( !v2 )
goto LABEL_7;
v5 = *(_QWORD *)((char *)NotificationStructure + 4) - *(_QWORD *)&GUID_TARGET_DEVICE_REMOVE_COMPLETE.Data1;
if( !v5 )
v5 = *(_QWORD *)((char *)NotificationStructure + 12) - *(_QWORD *)GUID_TARGET_DEVICE_REMOVE_COMPLETE.Data4;
if( !v5 )
{
LABEL_7:
v6 = 0;
v7 = &unk_140D231D8;
do
{
v8 = v6 | (16 * (*v7 & 0xFFF));
v9 = SmcCacheReference(&CacheMgr, v8);
v10 = v9;
if( v9 )
v4 = v8;
if( v9 )
{
if( *((_QWORD *)v9 + 6) != *((_QWORD *)NotificationStructure + 3) )
v10 = 0i64;
ExReleaseRundownProtection((_EX_RUNDOWN_REF *)&unk_140D231C8 + 4 * (v4 & 0xF));
if( v10 )
SmcCacheDelete(&CacheMgr, v4);
}
++v6;
v7 += 8;
}
while( v6 < 0x10 );
}
return 0;
}Referenced by:
No references.