PipDependencyGraphDepthFirstSearch
UINT8 __stdcall PipDependencyGraphDepthFirstSearch(
_PNP_DEPENDENCY_NODE *StartNode,
_PNP_DEPENDENCY_NODE *GoalNode,
UINT64 *PathLength,
UINT64 *DependencyTypes){
_PNP_DEPENDENCY_NODE *v7;
_PNP_DEPENDENCY_NODE *v8;
_PNP_DEPENDENCY_NODE v10;
_PNP_DEPENDENCY_NODE *v11;
_PNP_DEPENDENCY_NODE *v12;
*(_DWORD *)PathLength = 0;
*(_DWORD *)DependencyTypes = 0;
if( StartNode != GoalNode )
{
v7 = StartNode + 4;
v8 = (_PNP_DEPENDENCY_NODE *)*((_QWORD *)StartNode + 2);
do
{
if( v8 == v7 )
return 0;
v11 = v8;
v12 = (_PNP_DEPENDENCY_NODE *)*((_QWORD *)v8 + 4);
v8 = *(_PNP_DEPENDENCY_NODE **)v8;
}
while( !PipDependencyGraphDepthFirstSearch(v12, GoalNode, PathLength, DependencyTypes) );
v10 = v11[12];
++*(_DWORD *)PathLength;
*(_DWORD *)DependencyTypes = v10;
}
return 1;
}Referenced by:
PipDependencyGraphDepthFirstSearch
PipFindDependencyNodePath