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