IopReferenceFileObject

NTSTATUS __stdcall IopReferenceFileObject(
        PVOID Handle,
        UINT64 DesiredAccess,
        INT8 AccessMode,
        FILE_OBJECT **pFileObject,
        OBJECT_HANDLE_INFORMATION *pHandleInformation){
  int v6; 
  _QWORD *v7; 
  _DWORD *v8; 
  PVOID Object; 
  Object = 0i64;
  v6 = ObReferenceObjectByHandle(
         Handle,
         DesiredAccess,
         (POBJECT_TYPE)IoFileObjectType,
         AccessMode,
         &Object,
         pHandleInformation);
  v7 = Object;
  *pFileObject = (FILE_OBJECT *)Object;
  if( v6 < 0 )
    return v6;
  v8 = (_DWORD *)v7[26];
  if( !v8 || (*v8 & 4) == 0 || !PsIsProcessAppContainer(*((_EPROCESS **)KeGetCurrentThread() + 23)) )
    return v6;
  ObfDereferenceObjectWithTag(*pFileObject, 0x746C6644ui64);
  return -1073739504;
}

Referenced by:

BuildQueryDirectoryIrp
IopSetEaOrQuotaInformationFile
IopValidateJunctionTarget
IopXxxControlFile
NtCancelIoFile
NtCancelIoFileEx
NtFlushBuffersFileEx
NtLockFile
NtNotifyChangeDirectoryFileEx
NtQueryEaFile
NtQueryInformationFile
NtQueryQuotaInformationFile
NtQueryVolumeInformationFile
NtReadFile
NtReadFileScatter
NtSetEaFile
NtSetInformationFile
NtSetVolumeInformationFile
NtWriteFileGather