Windows: Direct IO for AFS Redirector

Implement a new IO processing model in which extents are not passed between
afsredirlib.sys and afsd_service.exe.  Instead the AFSCache file is
maintained exclusively by the service and the redirector locks kernel
memory, maps it into the service's address space, and permits the service
to manage all IO directly.

This interface adds an AFS Cache Bypass option to the AFS Redirector which
is activated when the file handle has been opened with the no intermediate
buffering option.

This patchset implements the kernel interface.  A subsequent
patchset will implement the service component.

Assisted by Jeffrey Altman <jaltman@your-file-system.com>

Reviewed-on: http://gerrit.openafs.org/9210
Reviewed-by: Peter Scott <pscott@kerneldrivers.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit be0296a8ade48c8944056999eab787bc0db1a01f)

Change-Id: I075cf9c9622cf0c78c8708afc30edf560d8465a9
Reviewed-on: http://gerrit.openafs.org/9225
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Windows: Direct IO Support for Service

This patchset implements and enables by default the new
Direct IO pathway between the AFS redirector and the afsd_service.exe.
When Direct IO is enabled all reads and writes are performed by the
AFS redirector locking memory allocated by the kernel and mapping it into
the service's memory address space.

The service supports cache bypass in this mode when the
AFS_REQUEST_FLAG_CACHE_BYPASS flag is set in the request from the
redirector.  When cache bypass is active, the AFSCache file is ignored and
data is either directly fetched from or stored to the file server.  Cache
bypass is enabled by IIS and other applications that request no
intermediate buffering when opening file handles.   This is often done
because the application implements its own data caching.  All cache bypass
store operations are synchronous.

When cache bypass is not enabled, the memory region provided by the AFS
redirector is either used to populate the cm_buf_t objects or is populated
by them.  When cache bypass is not enabled, one outstanding store
operation can be in flight asynchronously to improve performance.

Direct IO is enabled by default and can be disabled by creating the
registry value.

  ..\Services\TransarcAFSDaemon\Parameters
  "DirectIO"  DWORD  0x0

Reviewed-on: http://gerrit.openafs.org/9211
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 2ca80b4b6a3fde34b5eeeba37d2df5a9e253d787)

Change-Id: Ibe0956428209ce91c8b1ca2da2bb81dd05a474b9
Reviewed-on: http://gerrit.openafs.org/9226
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>