VfSetIoBuildRequest
UINT8 __stdcall VfSetIoBuildRequest(_IRP *Irp){
UINT8 v2;
_IOV_DATABASE_HEADER *v3;
unsigned int Flags;
_IO_STACK_LOCATION *CurrentStackLocation;
v2 = 0;
v3 = VfIrpDatabaseEntryFindAndLock(Irp);
if( v3 )
{
v3[14] |= 0x1000u;
v2 = 1;
Flags = Irp->Flags;
if( (Flags & 0x10) != 0 && (Flags & 0x40) != 0 && (Flags & 0x20) != 0 )
{
CurrentStackLocation = Irp->Tail.CurrentStackLocation;
if( (unsigned __int8)(CurrentStackLocation[-1].MajorFunction - 14) <= 1u )
{
*((_QWORD *)v3 + 25) = Irp->AssociatedIrp.MasterIrp;
v3[52] = (_IOV_DATABASE_HEADER)CurrentStackLocation[-1].Parameters.SecurityContext;
}
}
VfIrpDatabaseEntryReleaseLock(v3);
}
return v2;
}Referenced by:
IovBuildDeviceIoControlRequest