VerifierObReferenceObjectByHandle
NTSTATUS __stdcall VerifierObReferenceObjectByHandle(
VOID *Handle,
UINT64 DesiredAccess,
PVOID ObjectType,
INT64 AccessMode,
INT64 HandleInformation,
INT64 HandleInformationa){
ULONG_PTR v6;
ULONG_PTR v8;
NTSTATUS v9;
NTSTATUS v10;
ULONG_PTR v11;
ULONG_PTR v12;
v6 = (unsigned int)ObjectType;
v8 = (char)AccessMode;
v9 = ((__int64(__fastcall *)(VOID *, UINT64, PVOID, INT64, INT64))pXdvObReferenceObjectByHandle)(
Handle,
DesiredAccess,
ObjectType,
AccessMode,
HandleInformation);
v10 = v9;
if( (v9 == -1073741816 || v9 == -1073741788)
&& (!(_BYTE)v8
|| (KeGetCurrentThread()->$66B5187701DB455CD8F8862345C5A268::$BF47041B248301F87E570BEB78208C5A::_bf_0 & 0x400) != 0)
&& (MmVerifierData & 0x800) != 0 )
{
if( !Handle )
{
v11 = 0;
v12 = 245;
LABEL_13:
VerifierBugCheckIfAppropriate(0xC4ui64, v12, v11, v6, 0, HandleInformationa);
return v10;
}
if( !(_BYTE)v8
|| ((unsigned __int64)Handle & 0xFFFFFFFF80000000ui64) == 0
|| (unsigned __int64)Handle > 0xFFFFFFFFFFFFFFFDui64 )
{
v11 = (unsigned int)Handle;
v12 = 60;
goto LABEL_13;
}
VerifierBugCheckIfAppropriate(0xC4ui64, 0xF7u, (ULONG_PTR)Handle, v6, v8, HandleInformationa);
}
return v10;
}Referenced by:
No references.