FsRtlCheckNoSharedConflict
BOOL __fastcall FsRtlCheckNoSharedConflict(INT64 a1, LARGE_INTEGER *a2, LARGE_INTEGER *a3){
_RTL_SPLAY_LINKS *FirstOverlappingSharedNode;
_RTL_SPLAY_LINKS *v7;
PRTL_SPLAY_LINKS Links;
Links = 0i64;
FirstOverlappingSharedNode = FsRtlFindFirstOverlappingSharedNode(*(_RTL_SPLAY_LINKS **)(a1 + 8), a2, a3, &Links, 0i64);
v7 = FirstOverlappingSharedNode;
if( Links )
{
FirstOverlappingSharedNode = RtlSplay(Links);
*(_QWORD *)(a1 + 8) = FirstOverlappingSharedNode;
}
if( v7 )
{
if( LOBYTE(v7[-1].LeftChild) )
{
FirstOverlappingSharedNode = (_RTL_SPLAY_LINKS *)FsRtlFindFirstOverlapInNode(
&v7[-1].Parent,
(unsigned __int64 *)&a2->QuadPart,
(unsigned __int64 *)&a3->QuadPart);
LOBYTE(FirstOverlappingSharedNode) = FirstOverlappingSharedNode == 0i64;
}
else
{
LOBYTE(FirstOverlappingSharedNode) = 0;
}
}
else
{
LOBYTE(FirstOverlappingSharedNode) = 1;
}
return(int)FirstOverlappingSharedNode;
}Referenced by:
FsRtlFastCheckLockForWrite