OpenAFS
OpenAFS distributed network file system
/cygdrive/c/src/openafs/openafs.git/repo/src/WINNT/afsrdr/common/AFSProvider.h
00001 /*
00002  * Copyright (c) 2008-2011 Kernel Drivers, LLC.
00003  * Copyright (c) 2009-2011 Your File System, Inc.
00004  * All rights reserved.
00005  *
00006  * Redistribution and use in source and binary forms, with or without
00007  * modification, are permitted provided that the following conditions
00008  * are met:
00009  *
00010  * - Redistributions of source code must retain the above copyright notice,
00011  *   this list of conditions and the following disclaimer.
00012  * - Redistributions in binary form must reproduce the above copyright
00013  *   notice,
00014  *   this list of conditions and the following disclaimer in the
00015  *   documentation
00016  *   and/or other materials provided with the distribution.
00017  * - Neither the name of Kernel Drivers, LLC nor the names of its
00018  *   contributors may be
00019  *   used to endorse or promote products derived from this software without
00020  *   specific prior written permission from Kernel Drivers, LLC
00021  *   and Your File System, Inc.
00022  *
00023  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00024  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
00025  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
00026  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
00027  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00028  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00029  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00030  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00031  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00032  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00033  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00034  */
00035 
00036 #ifndef _AFS_PROVIDER_H
00037 #define _AFS_PROVIDER_H
00038 
00039 
00040 //
00041 // Network provider interface header
00042 //
00043 
00044 
00045 //
00046 // Redirector device name
00047 //
00048 
00049 #define AFS_RDR_DEVICE_NAME         L"\\Device\\AFSRedirector"
00050 
00051 //
00052 // Provider specific IOCtl requests
00053 //
00054 
00055 #define IOCTL_AFS_ADD_CONNECTION      CTL_CODE( FILE_DEVICE_DISK_FILE_SYSTEM, 0x2001, METHOD_BUFFERED, FILE_ANY_ACCESS)
00056 #define IOCTL_AFS_CANCEL_CONNECTION   CTL_CODE( FILE_DEVICE_DISK_FILE_SYSTEM, 0x2002, METHOD_BUFFERED, FILE_ANY_ACCESS)
00057 #define IOCTL_AFS_GET_CONNECTION      CTL_CODE( FILE_DEVICE_DISK_FILE_SYSTEM, 0x2003, METHOD_BUFFERED, FILE_ANY_ACCESS)
00058 #define IOCTL_AFS_LIST_CONNECTIONS    CTL_CODE( FILE_DEVICE_DISK_FILE_SYSTEM, 0x2004, METHOD_BUFFERED, FILE_ANY_ACCESS)
00059 #define IOCTL_AFS_GET_CONNECTION_INFORMATION CTL_CODE( FILE_DEVICE_DISK_FILE_SYSTEM, 0x2005, METHOD_BUFFERED, FILE_ANY_ACCESS)
00060 
00061 //
00062 // Versions for the following structures
00063 //
00064 
00065 #define AFS_NETWORKPROVIDER_INTERFACE_VERSION_1         0x00000001
00066 
00067 #pragma pack(push, 1)
00068 typedef struct _AFS_NETWORKPROVIDER_CONNECTION_CB
00069 {
00070 
00071     ULONG       Version;
00072 
00073     ULONG       CurrentIndex;
00074 
00075     ULONG       Type;
00076 
00077     ULONG       Scope;
00078 
00079     ULONG       DisplayType;
00080 
00081     ULONG       Usage;
00082 
00083     ULONG       CommentOffset;  // From the beginning of this structure
00084 
00085     ULONG       CommentLength;
00086 
00087     ULONG       RemainingPathOffset;    // From the beginning of this structure
00088 
00089     ULONG       RemainingPathLength;
00090 
00091     ULONG       RemoteNameLength;
00092 
00093     LARGE_INTEGER AuthenticationId;
00094 
00095     WCHAR       LocalName;
00096 
00097     WCHAR       RemoteName[ 1];
00098 
00099 } AFSNetworkProviderConnectionCB;
00100 
00101 typedef struct _AFS_CANCEL_CONNECTION_RESULT_CB
00102 {
00103 
00104     ULONG       Version;
00105 
00106     ULONG       Status;
00107 
00108     WCHAR       LocalName;
00109 
00110 } AFSCancelConnectionResultCB;
00111 #pragma pack(pop)
00112 
00113 #endif
 All Data Structures Files Functions Variables