ViGenericVerifyIrpStackUpward

VOID __stdcall ViGenericVerifyIrpStackUpward(
        _IOV_REQUEST_PACKET *IovPacket,
        _IO_STACK_LOCATION *IrpSp,
        _IOV_STACK_LOCATION *RequestHeadLocationData,
        _IOV_STACK_LOCATION *StackLocationData,
        UINT64 IsNewlyCompleted,
        UINT64 RequestFinalized){
  _QWORD *v6; 
  VOID *v9; 
  unsigned int v10; 
  _IOV_STACK_LOCATION v11; 
  _VF_ERROR_ID v12; 

  v6 = *(_QWORD **)IovPacket;
  v9 = (VOID *)*((_QWORD *)StackLocationData + 5);
  v10 = *(_DWORD *)(*(_QWORD *)IovPacket + 48i64);
  if( (IovPacket[14] & 0x20) != 0 )
  {
    v11 = RequestHeadLocationData[1];
    if( (v11 & 0x1000000) == 0 )
    {
      if( v10 != RequestHeadLocationData[24] )
      {
        v12 = 571;
        RequestHeadLocationData[1] = v11 | 0x1000000;
        if( IrpSp->MinorFunction != 0xFF )
          v12 = 531;
        ViErrorReport1(v12, v9, v6);
      }
      if( v6[7] != *((_QWORD *)RequestHeadLocationData + 13) )
      {
        RequestHeadLocationData[1] |= 0x1000000u;
        ViErrorReport1(532, v9, v6);
      }
    }
  }
  if( !VfMajorIsValidIrpStatus(IrpSp, v10) )
    ViErrorReport6(768, v9, v6, v10);
}

Referenced by:

No references.