PiSwPnPInfoInit
INT64 __fastcall PiSwPnPInfoInit(INT64 a1, INT64 a2, WCHAR **a3){
int MultiSZ;
WCHAR **v6;
_OWORD *PoolWithTag;
*(_DWORD *)(a1 + 40) = *(_DWORD *)(a2 + 64);
MultiSZ = PnpAllocateMultiSZ(*(WCHAR **)(a2 + 32), *(unsigned int *)(a2 + 24), a3);
if( MultiSZ >= 0 )
{
MultiSZ = PnpAllocateMultiSZ(*(WCHAR **)(a2 + 48), *(unsigned int *)(a2 + 40), v6);
if( MultiSZ >= 0 )
{
if( *(_QWORD *)(a2 + 56) )
{
PoolWithTag = ExAllocatePoolWithTag(PagedPool, 0x10ui64, 0x57706E50ui64);
*(_QWORD *)(a1 + 16) = PoolWithTag;
if( PoolWithTag )
*PoolWithTag = *(_OWORD *)*(_QWORD *)(a2 + 56);
else
MultiSZ = -1073741670;
}
if( MultiSZ >= 0 )
{
MultiSZ = PnpAllocatePWSTR(*(WCHAR **)(a2 + 72), 0x7FFFui64, 0x57706E50ui64, (WCHAR **)(a1 + 24));
if( MultiSZ >= 0 )
return(unsigned int)PnpAllocatePWSTR(*(WCHAR **)(a2 + 80), 0x7FFFui64, 0x57706E50ui64, (WCHAR **)(a1 + 32));
}
}
}
return(unsigned int)MultiSZ;
}Referenced by:
PiSwIrpStartCreateWorker
PiSwQueuedCreateInfoCreate