WmipCompleteGuidIrpWithError

VOID __stdcall WmipCompleteGuidIrpWithError(_WMIGUIDOBJECT *GuidObject){
  __int64 v2; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  memset(&LockHandle, 0, sizeof(LockHandle));
  KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&ExBootDevicesRemovedEvent + 429, &LockHandle);
  v2 = *((_QWORD *)GuidObject + 9);
  if( v2 )
  {
    WmipClearIrpObjectList((_IRP *)v2);
    v2 &= -(__int64)(_InterlockedExchange64((volatile __int64 *)(v2 + 104), 0i64) != 0);
  }
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
  if( v2 )
  {
    *(_DWORD *)(v2 + 48) = -1073741816;
    IofCompleteRequest((PIRP)v2, 0);
  }
}

Referenced by:

WmipReceiveNotifications