PnpQueryRebalance
INT64 __fastcall PnpQueryRebalance(
_DEVICE_NODE *Subtree,
_PNP_RESOURCE_REQUEST *RebalanceTable,
UINT *RebalanceTableCount,
_DEVICE_NODE **VetoNode,
_PNP_DEVNODE_QUERY_REBALANCE_VETO_REASON *VetoReason,
INT64 RebalanceDueToDynamicPartitioning){
_DEVICE_NODE *v6;
int v7;
int Rebalance;
INT64 v14;
v6 = (_DEVICE_NODE *)*((_QWORD *)Subtree + 1);
v7 = 0;
if( !v6 )
return(unsigned int)PnpQueryRebalanceWorker(
(ULONG_PTR)Subtree,
(__int64)RebalanceTable,
RebalanceTableCount,
(ULONG_PTR *)VetoNode,
(__int64)VetoReason,
RebalanceDueToDynamicPartitioning);
do
{
LOBYTE(v14) = RebalanceDueToDynamicPartitioning;
Rebalance = PnpQueryRebalance(v6, RebalanceTable, RebalanceTableCount, VetoNode, VetoReason, v14);
v6 = *(_DEVICE_NODE **)v6;
if( Rebalance < 0 )
v7 = -1073741823;
}
while( v6 );
if( v7 >= 0 )
return(unsigned int)PnpQueryRebalanceWorker(
(ULONG_PTR)Subtree,
(__int64)RebalanceTable,
RebalanceTableCount,
(ULONG_PTR *)VetoNode,
(__int64)VetoReason,
RebalanceDueToDynamicPartitioning);
return(unsigned int)v7;
}Referenced by:
PnpFindRebalanceCandidates
PnpQueryRebalance