OpenAFS
OpenAFS distributed network file system
/cygdrive/c/src/openafs/openafs.git/repo/src/WINNT/afsrdr/kernel/fs/Include/AFSStructs.h
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 */
 All Data Structures Files Functions Variables