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.