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