PnpDuplicateUnicodeString

UINT8 __stdcall PnpDuplicateUnicodeString(UNICODE_STRING *StringOut, UNICODE_STRING *StringIn){
  wchar_t *StringRoutine; 
  if( StringIn->Buffer )
  {
    StringRoutine = (wchar_t *)ExpAllocateStringRoutine(StringIn->MaximumLength);
    StringOut->Buffer = StringRoutine;
    if( !StringRoutine )
      return(unsigned __int8)StringRoutine;
    memmove((UINT8 *)StringRoutine, (UINT8 *)StringIn->Buffer, StringIn->MaximumLength);
  }
  else
  {
    StringOut->Buffer = 0i64;
  }
  StringOut->Length = StringIn->Length;
  StringOut->MaximumLength = StringIn->MaximumLength;
  LOBYTE(StringRoutine) = 1;
  return(unsigned __int8)StringRoutine;
}

Referenced by:

PiDevCfgAppendMultiSz
PiDevCfgBuildIndirectString
PiDevCfgConfigureDevice
PiDevCfgConfigureDeviceLocation
PiDevCfgProcessDeviceCallback
PiDevCfgQueryDriverNode
PiDevCfgQueryIncludedDriverConfigurations
PiDevCfgQueryIncludedDriverNode