WmipCompleteGuidIrpWithError

VOID __fastcall WmipCompleteGuidIrpWithError(INT64 a1){
  __int64 v2; 
  struct _KLOCK_QUEUE_HANDLE LockHandle; 
  memset(&LockHandle, 0, sizeof(LockHandle));
  KeAcquireInStackQueuedSpinLock(&WmipCancelSpinLock, &LockHandle);
  v2 = *(_QWORD *)(a1 + 72);
  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((_IRP *)v2, 0);
  }
}

Referenced by:

WmipReceiveNotifications