PnpDeleteObjectDispatch

NTSTATUS __stdcall PnpDeleteObjectDispatch(
        HPNPCTX *hPnpCtx,
        WCHAR *ObjectName,
        PNP_OBJECT_TYPE ObjectType,
        UINT64 Flags){
  int v7; 
  NTSTATUS ObjectDispatchCallback; 
  void *v10[2]; 
  int v11[16]; 

  v10[0] = 0i64;
  v7 = Flags;
  memset(v11, 0i64, sizeof(v11));
  if( (_WORD)v7 )
    return -1073741811;
  ObjectDispatchCallback = PnpCtxGetObjectDispatchCallback((__int64)hPnpCtx, ObjectType, v10);
  if( ObjectDispatchCallback >= 0 )
  {
    if( v10[0] )
    {
      v11[0] = v7;
      ObjectDispatchCallback = ((__int64(__fastcall *)(HPNPCTX *, WCHAR *, _QWORD, __int64, int *))v10[0])(
                                 hPnpCtx,
                                 ObjectName,
                                 (unsigned int)ObjectType,
                                 4i64,
                                 v11);
      if( ObjectDispatchCallback >= 0 && ObjectType >= 7 )
        PnpObjectRaiseDeleteEvent((__int64)hPnpCtx, (__int64)ObjectName, (unsigned int)ObjectType);
    }
    else
    {
      return -1073741822;
    }
  }
  return ObjectDispatchCallback;
}

Referenced by:

PnpDeleteObject