+#ifdef WIN32
+ /*
+ * Windows doesn't support O_DIRECT or O_SYNC with the _open interface,
+ * so fail if we're passed those flags
+ */
+ if ((td->io_ops->flags & FIO_SYNCIO) && (td->o.odirect || td->o.sync_io)) {
+ log_err("fio: Windows does not support direct or non-buffered io with"
+ " the synchronous ioengines. Use the 'windowsaio' ioengine"
+ " with 'direct=1' and 'iodepth=1' instead.\n");
+ ret = 1;
+ }
+#endif
+
+ /*
+ * For fully compressible data, just zero them at init time.
+ * It's faster than repeatedly filling it.
+ */
+ if (td->o.compress_percentage == 100) {
+ td->o.zero_buffers = 1;
+ td->o.compress_percentage = 0;
+ }
+
+ /*
+ * Using a non-uniform random distribution excludes usage of
+ * a random map
+ */
+ if (td->o.random_distribution != FIO_RAND_DIST_RANDOM)
+ td->o.norandommap = 1;
+