IoQueryFileDosDeviceName

NTSTATUS __stdcall IoQueryFileDosDeviceName(_FILE_OBJECT *FileObject, _OBJECT_NAME_INFORMATION **ObjectNameInformation){
  UINT64 v2; 
  UINT8 v5; 
  _OBJECT_NAME_INFORMATION *PoolWithTag; 
  OBJECT_NAME_INFORMATION *v7; 
  NTSTATUS NameInternal; 
  UINT64 *ReturnLength; 
  unsigned int i; 
  v2 = 208i64;
  for( i = 208; ; v2 = i )
  {
    PoolWithTag = (_OBJECT_NAME_INFORMATION *)ExAllocatePoolWithTag(PagedPool, v2, 0x6E446F49ui64);
    if( !PoolWithTag )
      break;
    LOBYTE(v7) = 1;
    LODWORD(ReturnLength) = v2;
    NameInternal = IopQueryNameInternal(FileObject, v5, v7, (UINT64)PoolWithTag, ReturnLength, (INT8)&i);
    if( !NameInternal )
    {
      *ObjectNameInformation = PoolWithTag;
      return NameInternal;
    }
    ExFreePoolWithTag(PoolWithTag, 0);
    if( NameInternal != -2147483643 )
      return NameInternal;
  }
  return -1073741670;
}

Referenced by:

CcMmLogLostDelayedWriteError
NtQueryInformationProcess
PiDrvDbQuerySystemPathWin32