FsRtlGetMarkHandleInfo
NTSTATUS __stdcall FsRtlGetMarkHandleInfo(_IRP *a1){
_IO_STACK_LOCATION *CurrentStackLocation;
unsigned int Options;
_IRP *MasterIrp;
__int128 *p_Type;
__int128 v7;
__int64 v8;
v8 = 0i64;
CurrentStackLocation = a1->Tail.CurrentStackLocation;
v7 = 0i64;
Options = CurrentStackLocation->Parameters.Options;
if( !IoIs32bitProcess(a1) )
{
if( Options >= 0x18 )
{
p_Type = (__int128 *)&a1->AssociatedIrp.MasterIrp->Type;
return *((_DWORD *)p_Type + 4);
}
return 0;
}
if( Options < 0xC )
return 0;
MasterIrp = a1->AssociatedIrp.MasterIrp;
LODWORD(v8) = MasterIrp->MdlAddress;
LODWORD(v7) = *(_DWORD *)&MasterIrp->Type;
*((_QWORD *)&v7 + 1) = *(int *)&MasterIrp->AllocationProcessorNumber;
p_Type = &v7;
return *((_DWORD *)p_Type + 4);
}Referenced by:
FsRtlCheckOplockEx2