SmKmFileInfoGetPath

NTSTATUS __stdcall SmKmFileInfoGetPath(_SMKM_FILE_INFO *FileInfo, WCHAR *Buffer, UINT64 BufferSize){
  __int64 v4; 
  char v6; 
  char v7; 
  INT16 v8; 
  int NameStringMode; 
  size_t v10; 
  __int64 ReturnLength[2]; 
  VOID *v13[66]; 

  LODWORD(ReturnLength[0]) = 0;
  v4 = (unsigned int)BufferSize;
  memset(v13, 0i64, sizeof(v13));
  IoSetThreadHardErrorMode(0);
  v7 = v6;
  NameStringMode = ObQueryNameStringMode(
                     *((VOID **)FileInfo + 1),
                     (_OBJECT_NAME_INFORMATION *)v13,
                     0x210ui64,
                     (UINT64 *)ReturnLength,
                     0);
  if( NameStringMode >= 0 )
  {
    memset(Buffer, 0i64, v4);
    v10 = LOWORD(v13[0]);
    if( LOWORD(v13[0]) >= (unsigned __int64)(v4 - 2) )
      v10 = v4 - 2;
    memmove(Buffer, v13[1], v10);
    NameStringMode = 0;
  }
  LOBYTE(v8) = v7;
  IoSetThreadHardErrorMode(v8);
  return NameStringMode;
}

Referenced by:

SmProcessListRequestExtended
SmcGetCacheStats