OpenAFS
OpenAFS distributed network file system
|
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