PnpGetMultiSzLength
NTSTATUS __stdcall PnpGetMultiSzLength(PWCHAR MultiSz, UINT64 MaxLength, UINT64 *MultiSzLength){
__int64 v4;
signed int v6;
__int64 *v7;
size_t v8;
size_t v9;
size_t v10;
size_t v11;
size_t pcchLength;
pcchLength = 0i64;
*MultiSzLength = 0i64;
v4 = 0i64;
do
{
v6 = RtlStringCchLengthW(&MultiSz[v4], MaxLength - v4, &pcchLength);
if( v6 < 0 )
break;
v8 = *v7;
v9 = -1i64;
v10 = pcchLength;
v11 = *v7 + pcchLength;
if( v11 >= *v7 )
v9 = *v7 + pcchLength;
v6 = v11 < *v7 ? 0xC0000095 : 0;
*v7 = v9;
if( v11 < v8 )
break;
v4 = -1i64;
if( v9 + 1 >= v9 )
v4 = v9 + 1;
v6 = v9 + 1 < v9 ? 0xC0000095 : 0;
*v7 = v4;
if( v9 + 1 < v9 )
break;
}
while( v10 );
return v6;
}Referenced by:
PiSwStartCreate
PnpAllocateMultiSZ
PnpCompareMultiSz