code: private static final ByteBuffer createReadWriteMessage (final byte opCode, final int logicalBlockAddress, final short transferLength) {
  
          ByteBuffer cdb = ByteBuffer.allocate(DEFAULT_CDB_LENGTH);
          // operation code
          cdb.put(opCode);
  
          // logical block address
          cdb.position(LOGICAL_BLOCK_ADDRESS_OFFSET);
          cdb.putInt(logicalBlockAddress);
  
          // set transfer length
          cdb.position(TRANSFER_LENGTH_OFFSET);
          cdb.putShort(transferLength);
          cdb.rewind();
  
          return cdb;
  
      }
docs: Creates the Command Descriptor Block for a given Operation Message.
  
  @param opCode The Operation Code.
  @param logicalBlockAddress The Logical Block Address to begin the read operation.
  @param transferLength The transfer length field specifies the number of contiguous logical blocks of data to be
  transferred. A transfer length of zero indicates that 256 logical blocks shall be transferred. Any
  other value indicates the number of logical blocks that shall be transferred.
  @return A <code>ByteBuffer</code> object with the above data.