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