PiDevCfgResolveVariableGenerateGuid

NTSTATUS __stdcall PiDevCfgResolveVariableGenerateGuid(
        _PI_DEVCFG_RESOLVE_CONTEXT *ResolveContext,
        VOID *VariableKeyHandle,
        _PI_DEVCFG_VARIABLE_ENTRY *VariableEntryResult){
  int v4; 
  size_t v5; 
  VOID **PoolWithTag; 
  VOID **v7; 
  _UNICODE_STRING GuidString; 
  UUID Uuid; 

  Uuid = 0i64;
  *(_QWORD *)&GuidString.Length = 0i64;
  GuidString.Buffer = 0i64;
  v4 = ExUuidCreate(&Uuid);
  if( v4 >= 0 )
  {
    v4 = RtlStringFromGUIDEx(&Uuid, &GuidString, 1u);
    if( v4 >= 0 )
    {
      v4 = RtlUpcaseUnicodeString(&GuidString, &GuidString, 0);
      if( v4 >= 0 )
      {
        v5 = GuidString.Length + 2;
        PoolWithTag = ExAllocatePoolWithTag(1ui64, v5, 1667526736i64);
        v7 = PoolWithTag;
        if( PoolWithTag )
        {
          memmove(PoolWithTag, GuidString.Buffer, v5);
          VariableEntryResult[8] = 1;
          VariableEntryResult[9] = v5;
          *((_QWORD *)VariableEntryResult + 5) = v7;
        }
        else
        {
          v4 = -1073741670;
        }
      }
    }
  }
  RtlFreeAnsiString(&GuidString);
  return v4;
}

Referenced by:

No references.