CmMoveBaseContainer
__int64 __fastcall CmMoveBaseContainer(__int64 a1, const WCHAR *a2, const WCHAR *a3, const WCHAR *a4){
__int64 v4;
int DevicesInBaseContainerList;
PVOID v9;
int v10;
const WCHAR *i;
__int64 v12;
PVOID P;
v4 = PiPnpRtlCtx;
P = 0i64;
DevicesInBaseContainerList = CmGetDevicesInBaseContainerList(PiPnpRtlCtx, a3, a2, &P);
v9 = P;
v10 = DevicesInBaseContainerList;
if( DevicesInBaseContainerList >= 0 )
{
for( i = (const WCHAR *)P; *i; i += v12 + 1 )
{
v10 = CmRemoveDeviceFromContainer(v4, a3, (__int64)a2, (__int64)i);
if( v10 < 0 )
break;
v10 = CmAddDeviceToContainer(v4, a4, a2, i, 0i64);
if( v10 < 0 )
break;
v12 = -1i64;
do
++v12;
while( i[v12] );
}
}
if( v9 )
ExFreePoolWithTag(v9, 0);
return(unsigned int)v10;
}Referenced by:
PiDcHandleCustomDeviceEvent