IopReferenceFileObject

NTSTATUS __stdcall IopReferenceFileObject(
        VOID *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,
         (_OBJECT_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(KeGetCurrentThread()->ApcState.Process) )
    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