Windows: RDR File System Framework driver
authorPeter Scott <pscott@kerneldrivers.com>
Thu, 15 Sep 2011 05:33:20 +0000 (01:33 -0400)
committerJeffrey Altman <jaltman@openafs.org>
Thu, 15 Sep 2011 18:27:42 +0000 (11:27 -0700)
commit9399093a767c0638ee247d89d5f8f70b518b9396
treed1d3c211fc933e24b11876049caa57a36b29b9e9
parent6e82b5be128a07124fe8a69d6932ffe011fb1077
Windows: RDR File System Framework driver

This is the first of two kernel drivers used to implement
the AFS Redirector: AFSRedir.sys.

This driver is registered at boot time and provides the binding
to the Windows kernel infrastructure.  However, it only provides
a framework of a file system driver.  All of the AFS specific
interfaces are actually implemented in a secondary library
driver, AFSRedirLib.sys.  The rationale for this model is that
file system drivers cannot be unloaded on a running system.
By using this approach the library driver can be unloaded which
permits systems to be live updated.

To permit this model to work, all memory allocation is performed
by AFSRedir.sys.  This confuses the driver verifier tool.  When
the library is unloaded all objects are still valid.  Operation
is simply paused until a new library is brought up.  Under the
current configuration the library is loaded as part of afsd_service
initialization of AFSRedir.sys and is automatically unloaded when
afsd_service.exe shuts down.

The framework driver also implements all of the process and
thread tracking logic necessary to support Authentication Groups.

Communication between AFSRedir.sys and afsd_service.exe is
performed via a reverse ioctl model whereby the service contributes
threads to the driver to convey requests for processing.

The original file system was derived from the Kernel Drivers
File System under license from Kernel Drivers, LLC.

Rod Widdowson <rdw@steadingsoftware.com> and Jeffrey Altman
<jaltman@your-file-system.com> contributed to the development
of this driver.

Change-Id: Ic123cacd868ddde31d66bf17d3ad2a13c22cd1f4
Reviewed-on: http://gerrit.openafs.org/5437
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Tested-by: Rod Widdowson <rdw@steadingsoftware.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
38 files changed:
src/WINNT/afsrdr/kernel/fs/AFSAuthGroupSupport.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSBTreeSupport.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSCleanup.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSClose.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSCommSupport.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSCreate.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSData.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSDevControl.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSDirControl.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSEa.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSFSControl.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSFastIoSupport.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSFileInfo.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSFlushBuffers.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSGeneric.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSInit.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSInternalDevControl.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSLibrarySupport.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSLockControl.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSLogSupport.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSNetworkProviderSupport.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSProcessSupport.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSQuota.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSRDRSupport.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSRead.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSRedirInstall.inf [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSSecurity.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSShutdown.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSSystemControl.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSVolumeInfo.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/AFSWrite.cpp [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/Filesystem.rc [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/Include/AFSCommon.h [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/Include/AFSDefines.h [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/Include/AFSExtern.h [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/Include/AFSStructs.h [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/MAKEFILE [new file with mode: 0644]
src/WINNT/afsrdr/kernel/fs/sources [new file with mode: 0644]