docs: @Override
      protected int writeBytesWireFormat ( byte[] dst, int dstIndex ) {
          int start = dstIndex;
  
          SMBUtil.writeInt2(25, dst, dstIndex);
  
          dst[ dstIndex + 2 ] = (byte) ( this.sessionBinding ? 0x1 : 0 );
          dst[ dstIndex + 3 ] = (byte) ( this.securityMode );
          dstIndex += 4;
  
          SMBUtil.writeInt4(this.capabilities, dst, dstIndex);
          dstIndex += 4;
          SMBUtil.writeInt4(0, dst, dstIndex); // Channel
          dstIndex += 4;
  
          int offsetOffset = dstIndex;
          dstIndex += 2;
          SMBUtil.writeInt2(this.token != null ? this.token.length : 0, dst, dstIndex);
          dstIndex += 2;
          SMBUtil.writeInt8(this.previousSessionId, dst, dstIndex);
          dstIndex += 8;
          SMBUtil.writeInt2(dstIndex - getHeaderStart(), dst, offsetOffset);
  
          dstIndex += pad8(dstIndex);
  
          if ( this.token != null ) {
              System.arraycopy(this.token, 0, dst, dstIndex, this.token.length);
              dstIndex += this.token.length;
          }
  
          return dstIndex - start;
      }