PipConvertResolutionsToReservations
NTSTATUS __stdcall PipConvertResolutionsToReservations(PNP_DEPENDENCY_NODE *ProviderNode){
NTSTATUS v2;
PNP_DEPENDENCY_NODE *v3;
PNP_DEPENDENCY_NODE *v4;
PNP_DEPENDENCY_NODE *v6;
PNP_DEPENDENCY_NODE *v7;
PNP_DEPENDENCY_NODE *v8;
PNP_BINDING_REQUEST *v9;
__int64 v10;
__int128 Dependent;
Dependent = 0i64;
if( !ProviderNode )
return -1073741811;
v2 = 0;
PipDeleteBindingIds(ProviderNode);
v3 = ProviderNode + 8;
v4 = (PNP_DEPENDENCY_NODE *)*((_QWORD *)ProviderNode + 4);
while( v4 != v3 )
{
v6 = v4;
v4 = *(PNP_DEPENDENCY_NODE **)v4;
if( !*((_BYTE *)v6 + 56) )
{
v7 = (PNP_DEPENDENCY_NODE *)*((_QWORD *)v6 + 5);
while( v7 != v6 + 10 )
{
v8 = v7;
v7 = *(PNP_DEPENDENCY_NODE **)v7;
v9 = v8 + 4;
if( *v9 == 1 )
{
v10 = *((_QWORD *)v6 + 3);
LODWORD(Dependent) = 0;
*((_QWORD *)&Dependent + 1) = *(_QWORD *)(v10 + 48);
v2 = PipSetDependency((PNP_BINDING_RESOLUTION *)&Dependent, v9);
}
}
*((_BYTE *)v6 + 56) = 1;
}
}
return v2;
}Referenced by:
PipDeleteAllDependencyRelations
PnpSurpriseRemoveLockedDeviceNode