PiSwPnPInfoInit

NTSTATUS __stdcall PiSwPnPInfoInit(WCHAR **PnPInfo, _SW_DEVICE_CREATE_IOCTL_DATA *IoctlData){
  __int64 v2; 
  NTSTATUS MultiSZ; 
  __int64 v6; 
  VOID **PoolWithTag; 

  *((_DWORD *)PnPInfo + 10) = IoctlData[16];
  MultiSZ = PnpAllocateMultiSZ(*((VOID **)IoctlData + 4), (unsigned int)IoctlData[6], v2, PnPInfo);
  if( MultiSZ >= 0 )
  {
    MultiSZ = PnpAllocateMultiSZ(*((VOID **)IoctlData + 6), (unsigned int)IoctlData[10], v6, PnPInfo + 1);
    if( MultiSZ >= 0 )
    {
      if( *((_QWORD *)IoctlData + 7) )
      {
        PoolWithTag = ExAllocatePoolWithTag(1ui64, 0x10ui64, 1466986064i64);
        PnPInfo[2] = (WCHAR *)PoolWithTag;
        if( PoolWithTag )
          *(_OWORD *)PoolWithTag = *(_OWORD *)*((_QWORD *)IoctlData + 7);
        else
          MultiSZ = -1073741670;
      }
      if( MultiSZ >= 0 )
      {
        MultiSZ = PnpAllocatePWSTR(*((WCHAR **)IoctlData + 9), 0x7FFFui64, 0x57706E50u, (PVOID *)PnPInfo + 3);
        if( MultiSZ >= 0 )
          return PnpAllocatePWSTR(*((WCHAR **)IoctlData + 10), 0x7FFFui64, 0x57706E50u, (PVOID *)PnPInfo + 4);
      }
    }
  }
  return MultiSZ;
}

Referenced by:

PiSwIrpStartCreateWorker
PiSwQueuedCreateInfoCreate