PpProfileCancelHardwareProfileTransition
VOID __stdcall PpProfileCancelHardwareProfileTransition(){
_DWORD *i;
ExAcquireFastMutex((PFAST_MUTEX)((char *)&PnpReplaceEvent + 160));
for( i = (_DWORD *)*(&PnpReplaceEvent + 28); i != (_DWORD *)((char *)&PnpReplaceEvent + 224); i = *(_DWORD **)i )
{
if( *(i - 2) != 1 )
{
_InterlockedDecrement((_DWORD *)&PnpReplaceEvent + 60);
*(i - 2) = 1;
}
}
KeReleaseGuardedMutex((PKGUARDED_MUTEX)((char *)&PnpReplaceEvent + 160));
if( *(&PnpReplaceEvent + 288) )
PnpRequestHwProfileChangeNotification(&GUID_HWPROFILE_CHANGE_CANCELLED, 2, 0i64, 0i64);
KeReleaseSemaphore((_KSEMAPHORE *)&PnpReplaceEvent + 8, 0i64, 1i64, 0);
}Referenced by:
PipProcessStartPhase2
PnpProcessQueryRemoveAndEject