OpenAFS
OpenAFS distributed network file system
|
00001 /* 00002 * Copyright (c) 2008, 2009, 2010, 2011 Kernel Drivers, LLC. 00003 * Copyright (c) 2009, 2010, 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 names of Kernel Drivers, LLC and Your File System, Inc. 00018 * nor the names of their contributors may be used to endorse or promote 00019 * products derived from this software without specific prior written 00020 * permission from Kernel Drivers, LLC and Your File System, Inc. 00021 * 00022 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00023 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 00024 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 00025 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 00026 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00027 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00028 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00029 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00030 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00031 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00032 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00033 */ 00034 00035 #ifndef _AFS_STRUCTS_H 00036 #define _AFS_STRUCTS_H 00037 00038 // 00039 // File: AFSStructs.h 00040 // 00041 00042 // 00043 // Library queue request cb 00044 // 00045 00046 typedef struct _AFS_LIBRARY_QUEUE_REQUEST_CB 00047 { 00048 00049 struct _AFS_LIBRARY_QUEUE_REQUEST_CB *fLink; 00050 00051 PIRP Irp; 00052 00053 } AFSLibraryQueueRequestCB; 00054 00055 typedef struct AFS_PROCESS_CB 00056 { 00057 00058 AFSBTreeEntry TreeEntry; // HashIndex = ProcessId 00059 00060 ERESOURCE Lock; 00061 00062 ULONG Flags; 00063 00064 ULONGLONG ParentProcessId; 00065 00066 ULONGLONG CreatingProcessId; 00067 00068 ULONGLONG CreatingThreadId; 00069 00070 GUID *ActiveAuthGroup; 00071 00072 struct _AFS_PROCESS_AUTH_GROUP_CB *AuthGroupList; 00073 00074 struct AFS_THREAD_CB *ThreadList; 00075 00076 } AFSProcessCB; 00077 00078 typedef struct AFS_THREAD_CB 00079 { 00080 00081 struct AFS_THREAD_CB *Next; 00082 00083 ULONGLONG ThreadId; 00084 00085 ULONG Flags; 00086 00087 GUID *ActiveAuthGroup; 00088 00089 } AFSThreadCB; 00090 00091 typedef struct _AFS_SID_ENTRY_CB 00092 { 00093 00094 AFSBTreeEntry TreeEntry; 00095 00096 ULONG Flags; 00097 00098 GUID AuthGroup; 00099 00100 } AFSSIDEntryCB; 00101 00102 typedef struct _AFS_PROCESS_AUTH_GROUP_CB 00103 { 00104 00105 struct _AFS_PROCESS_AUTH_GROUP_CB *Next; 00106 00107 ULONG Flags; 00108 00109 ULONGLONG AuthGroupHash; 00110 00111 GUID AuthGroup; 00112 00113 } AFSProcessAuthGroupCB; 00114 00115 typedef struct _AFS_SET_DACL_CB 00116 { 00117 00118 AFSProcessCB *ProcessCB; 00119 00120 NTSTATUS RequestStatus; 00121 00122 KEVENT Event; 00123 00124 } AFSSetDaclRequestCB; 00125 00126 typedef struct _AFS_SRVTABLE_ENTRY 00127 { 00128 00129 PVOID *ServiceTable; 00130 00131 ULONG LowCall; 00132 00133 ULONG HiCall; 00134 00135 PVOID *ArgTable; 00136 00137 } AFSSrvcTableEntry; 00138 00139 #endif /* _AFS_STRUCTS_H */