IoSetDependency

INT64 __stdcall IoSetDependency(DEVICE_OBJECT *DependentPdo, DEVICE_OBJECT *ProviderPdo, UINT64 DependencyTypes){
  int v4; 
  INT64 a1; 
  DEVICE_OBJECT *v6; 
  const UNICODE_STRING *a2[2]; 
  int v8; 
  int v9; 
  HIDWORD(a1) = 0;
  HIDWORD(a2[0]) = 0;
  v9 = 0;
  if( DependentPdo && ProviderPdo && (DependencyTypes & 3) != 0 && (DependencyTypes & 0xFFFFFFFC) == 0 )
  {
    if( DependentPdo == ProviderPdo )
      return 3221225473i64;
    LODWORD(a1) = 0;
    LODWORD(a2[0]) = 0;
    v6 = DependentPdo;
    a2[1] = (const UNICODE_STRING *)ProviderPdo;
    v8 = DependencyTypes;
    PnpAcquireDependencyRelationsLock(1u);
    v4 = PipSetDependency((INT64)&a1, a2);
    ExReleaseResourceLite(&PiDependencyRelationsLock);
    PpDevNodeUnlockTree(0);
    if( v4 >= 0 )
      PipProcessRebuildPowerRelationsQueue();
  }
  else
  {
    return(unsigned int)-1073741811;
  }
  return(unsigned int)v4;
}

Referenced by:

No references.