docs: @Override
      protected int writeBytesWireFormat ( byte[] dst, int dstIndex ) {
          int start = dstIndex;
          SMBUtil.writeInt2(57, dst, dstIndex);
          dstIndex += 4;
          SMBUtil.writeInt4(this.controlCode, dst, dstIndex);
          dstIndex += 4;
          System.arraycopy(this.fileId, 0, dst, dstIndex, 16);
          dstIndex += 16;
  
          int inputOffsetOffset = dstIndex;
          dstIndex += 4;
          int inputLengthOffset = dstIndex;
          dstIndex += 4;
          SMBUtil.writeInt4(this.maxInputResponse, dst, dstIndex);
          dstIndex += 4;
  
          int outputOffsetOffset = dstIndex;
          dstIndex += 4;
          int outputLengthOffset = dstIndex;
          dstIndex += 4;
          SMBUtil.writeInt4(this.maxOutputResponse, dst, dstIndex);
          dstIndex += 4;
  
          SMBUtil.writeInt4(this.flags, dst, dstIndex);
          dstIndex += 4;
          dstIndex += 4; // Reserved2
  
          if ( this.inputData != null ) {
              SMBUtil.writeInt4(dstIndex - getHeaderStart(), dst, inputOffsetOffset);
              int len = this.inputData.encode(dst, dstIndex);
              SMBUtil.writeInt4(len, dst, inputLengthOffset);
              dstIndex += len;
          }
          else {
              SMBUtil.writeInt4(0, dst, inputOffsetOffset);
              SMBUtil.writeInt4(0, dst, inputLengthOffset);
          }
  
          if ( this.outputData != null ) {
              SMBUtil.writeInt4(dstIndex - getHeaderStart(), dst, outputOffsetOffset);
              int len = this.outputData.encode(dst, dstIndex);
              SMBUtil.writeInt4(len, dst, outputLengthOffset);
              dstIndex += len;
          }
          else {
              SMBUtil.writeInt4(0, dst, outputOffsetOffset);
              SMBUtil.writeInt4(0, dst, outputLengthOffset);
          }
  
          return dstIndex - start;
      }