VfPowerVerifyIrpStackDownward

VOID __stdcall VfPowerVerifyIrpStackDownward(
        _IOV_REQUEST_PACKET *IovPacket,
        _DEVICE_OBJECT *DeviceObject,
        _IO_STACK_LOCATION *IrpLastSp,
        _IO_STACK_LOCATION *IrpSp,
        _IOV_STACK_LOCATION *RequestHeadLocationData,
        _IOV_STACK_LOCATION *StackLocationData,
        VOID *CallerAddress){
  const VOID *v8; 
  int v10; 
  _IOV_STACK_LOCATION v11; 
  _DRIVER_OBJECT *DriverObject; 
  VOID *v13; 

  v8 = *(const VOID **)IovPacket;
  v10 = *(_DWORD *)(*(_QWORD *)IovPacket + 48i64);
  v11 = RequestHeadLocationData[24];
  if( *(_DWORD *)(*((_QWORD *)IovPacket + 30) + 56i64) == 3 )
    ViErrorReport1(529, CallerAddress, *(const VOID **)IovPacket);
  DriverObject = DeviceObject->DriverObject;
  if( (VOID(__fastcall *)(_DEVICE_OBJECT *, _IRP *))DriverObject->MajorFunction[22] == IopInvalidDeviceRequest )
  {
    RequestHeadLocationData[1] |= 0x1000000u;
    LODWORD(v13) = VfGetPristineDriverInit(DriverObject);
    ViErrorReport1(543, v13, v8);
    StackLocationData[1] |= 0x80000000;
  }
  if( IrpLastSp && v10 < 0 )
  {
    if( v10 == -1073741637 )
    {
      if( v11 != -1073741637 )
        ViErrorReport1(538, CallerAddress, v8);
    }
    else if( (RequestHeadLocationData[1] & 0x2000000) == 0 )
    {
      ViErrorReport1(537, CallerAddress, v8);
      RequestHeadLocationData[1] |= 0x2000000u;
    }
  }
}

Referenced by:

No references.