Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenfltuserstructures.h
Go to the documentation of this file.
00001 /* 00002 * fltuserstructures.h 00003 * 00004 * This file is part of the ReactOS DDK package. 00005 * 00006 * Contributors: 00007 * Amine Khaldi (amine.khaldi@reactos.org) 00008 * 00009 * THIS SOFTWARE IS NOT COPYRIGHTED 00010 * 00011 * This source code is offered for use in the public domain. You may 00012 * use, modify or distribute it freely. 00013 * 00014 * This code is distributed in the hope that it will be useful but 00015 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00016 * DISCLAIMED. This includes but is not limited to warranties of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00018 * 00019 */ 00020 #pragma once 00021 00022 #ifndef __FLT_USER_STRUCTURES_H__ 00023 #define __FLT_USER_STRUCTURES_H__ 00024 00025 #if FLT_MGR_BASELINE 00026 00027 #define FLTAPI NTAPI 00028 00029 #define FILTER_NAME_MAX_CHARS 255 00030 #define FILTER_NAME_MAX_BYTES (FILTER_NAME_MAX_CHARS * sizeof(WCHAR)) 00031 #define VOLUME_NAME_MAX_CHARS 1024 00032 #define VOLUME_NAME_MAX_BYTES (VOLUME_NAME_MAX_CHARS * sizeof(WCHAR)) 00033 #define INSTANCE_NAME_MAX_CHARS 255 00034 #define INSTANCE_NAME_MAX_BYTES (INSTANCE_NAME_MAX_CHARS * sizeof(WCHAR)) 00035 00036 typedef HANDLE HFILTER, HFILTER_INSTANCE, HFILTER_VOLUME; 00037 00038 typedef _Return_type_success_(return >= 0) LONG NTSTATUS, *PNTSTATUS; 00039 00040 /* Known File System Types */ 00041 00042 typedef enum _FLT_FILESYSTEM_TYPE { 00043 FLT_FSTYPE_UNKNOWN, 00044 FLT_FSTYPE_RAW, 00045 FLT_FSTYPE_NTFS, 00046 FLT_FSTYPE_FAT, 00047 FLT_FSTYPE_CDFS, 00048 FLT_FSTYPE_UDFS, 00049 FLT_FSTYPE_LANMAN, 00050 FLT_FSTYPE_WEBDAV, 00051 FLT_FSTYPE_RDPDR, 00052 FLT_FSTYPE_NFS, 00053 FLT_FSTYPE_MS_NETWARE, 00054 FLT_FSTYPE_NETWARE, 00055 FLT_FSTYPE_BSUDF, 00056 FLT_FSTYPE_MUP, 00057 FLT_FSTYPE_RSFX, 00058 FLT_FSTYPE_ROXIO_UDF1, 00059 FLT_FSTYPE_ROXIO_UDF2, 00060 FLT_FSTYPE_ROXIO_UDF3, 00061 FLT_FSTYPE_TACIT, 00062 FLT_FSTYPE_FS_REC, 00063 FLT_FSTYPE_INCD, 00064 FLT_FSTYPE_INCD_FAT, 00065 FLT_FSTYPE_EXFAT, 00066 FLT_FSTYPE_PSFS, 00067 FLT_FSTYPE_GPFS, 00068 FLT_FSTYPE_NPFS, 00069 FLT_FSTYPE_MSFS, 00070 FLT_FSTYPE_CSVFS 00071 } FLT_FILESYSTEM_TYPE, *PFLT_FILESYSTEM_TYPE; 00072 00073 typedef enum _FILTER_INFORMATION_CLASS { 00074 FilterFullInformation, 00075 FilterAggregateBasicInformation, 00076 FilterAggregateStandardInformation 00077 } FILTER_INFORMATION_CLASS, *PFILTER_INFORMATION_CLASS; 00078 00079 typedef enum _FILTER_VOLUME_INFORMATION_CLASS { 00080 FilterVolumeBasicInformation, 00081 FilterVolumeStandardInformation 00082 } FILTER_VOLUME_INFORMATION_CLASS, *PFILTER_VOLUME_INFORMATION_CLASS; 00083 00084 typedef enum _INSTANCE_INFORMATION_CLASS { 00085 InstanceBasicInformation, 00086 InstancePartialInformation, 00087 InstanceFullInformation, 00088 InstanceAggregateStandardInformation 00089 } INSTANCE_INFORMATION_CLASS, *PINSTANCE_INFORMATION_CLASS; 00090 00091 typedef struct _FILTER_FULL_INFORMATION { 00092 ULONG NextEntryOffset; 00093 ULONG FrameID; 00094 ULONG NumberOfInstances; 00095 USHORT FilterNameLength; 00096 WCHAR FilterNameBuffer[1]; 00097 } FILTER_FULL_INFORMATION, *PFILTER_FULL_INFORMATION; 00098 00099 typedef struct _FILTER_AGGREGATE_BASIC_INFORMATION { 00100 ULONG NextEntryOffset; 00101 ULONG Flags; 00102 union { 00103 struct { 00104 ULONG FrameID; 00105 ULONG NumberOfInstances; 00106 USHORT FilterNameLength; 00107 USHORT FilterNameBufferOffset; 00108 USHORT FilterAltitudeLength; 00109 USHORT FilterAltitudeBufferOffset; 00110 } MiniFilter; 00111 struct { 00112 USHORT FilterNameLength; 00113 USHORT FilterNameBufferOffset; 00114 } LegacyFilter; 00115 } Type; 00116 } FILTER_AGGREGATE_BASIC_INFORMATION, *PFILTER_AGGREGATE_BASIC_INFORMATION; 00117 00118 #if FLT_MGR_LONGHORN 00119 00120 #define FLTFL_AGGREGATE_INFO_IS_MINIFILTER 0x00000001 00121 #define FLTFL_AGGREGATE_INFO_IS_LEGACYFILTER 0x00000002 00122 #define FLTFL_ASI_IS_MINIFILTER 0x00000001 00123 #define FLTFL_ASI_IS_LEGACYFILTER 0x00000002 00124 #define FLTFL_VSI_DETACHED_VOLUME 0x00000001 00125 #define FLTFL_IASI_IS_MINIFILTER 0x00000001 00126 #define FLTFL_IASI_IS_LEGACYFILTER 0x00000002 00127 #define FLTFL_IASIM_DETACHED_VOLUME 0x00000001 00128 #define FLTFL_IASIL_DETACHED_VOLUME 0x00000001 00129 00130 typedef struct _FILTER_AGGREGATE_STANDARD_INFORMATION { 00131 ULONG NextEntryOffset; 00132 ULONG Flags; 00133 union { 00134 struct { 00135 ULONG Flags; 00136 ULONG FrameID; 00137 ULONG NumberOfInstances; 00138 USHORT FilterNameLength; 00139 USHORT FilterNameBufferOffset; 00140 USHORT FilterAltitudeLength; 00141 USHORT FilterAltitudeBufferOffset; 00142 } MiniFilter; 00143 struct { 00144 ULONG Flags; 00145 USHORT FilterNameLength; 00146 USHORT FilterNameBufferOffset; 00147 USHORT FilterAltitudeLength; 00148 USHORT FilterAltitudeBufferOffset; 00149 } LegacyFilter; 00150 } Type; 00151 } FILTER_AGGREGATE_STANDARD_INFORMATION, *PFILTER_AGGREGATE_STANDARD_INFORMATION; 00152 00153 typedef struct _FILTER_VOLUME_STANDARD_INFORMATION { 00154 ULONG NextEntryOffset; 00155 ULONG Flags; 00156 ULONG FrameID; 00157 FLT_FILESYSTEM_TYPE FileSystemType; 00158 USHORT FilterVolumeNameLength; 00159 WCHAR FilterVolumeName[1]; 00160 } FILTER_VOLUME_STANDARD_INFORMATION, *PFILTER_VOLUME_STANDARD_INFORMATION; 00161 00162 typedef struct _INSTANCE_AGGREGATE_STANDARD_INFORMATION { 00163 ULONG NextEntryOffset; 00164 ULONG Flags; 00165 union { 00166 struct { 00167 ULONG Flags; 00168 ULONG FrameID; 00169 FLT_FILESYSTEM_TYPE VolumeFileSystemType; 00170 USHORT InstanceNameLength; 00171 USHORT InstanceNameBufferOffset; 00172 USHORT AltitudeLength; 00173 USHORT AltitudeBufferOffset; 00174 USHORT VolumeNameLength; 00175 USHORT VolumeNameBufferOffset; 00176 USHORT FilterNameLength; 00177 USHORT FilterNameBufferOffset; 00178 } MiniFilter; 00179 struct { 00180 ULONG Flags; 00181 USHORT AltitudeLength; 00182 USHORT AltitudeBufferOffset; 00183 USHORT VolumeNameLength; 00184 USHORT VolumeNameBufferOffset; 00185 USHORT FilterNameLength; 00186 USHORT FilterNameBufferOffset; 00187 } LegacyFilter; 00188 } Type; 00189 } INSTANCE_AGGREGATE_STANDARD_INFORMATION, *PINSTANCE_AGGREGATE_STANDARD_INFORMATION; 00190 00191 #endif /* FLT_MGR_LONGHORN */ 00192 00193 typedef struct _FILTER_VOLUME_BASIC_INFORMATION { 00194 USHORT FilterVolumeNameLength; 00195 WCHAR FilterVolumeName[1]; 00196 } FILTER_VOLUME_BASIC_INFORMATION, *PFILTER_VOLUME_BASIC_INFORMATION; 00197 00198 _Struct_size_bytes_(sizeof(INSTANCE_BASIC_INFORMATION) * InstanceNameLength) 00199 typedef struct _INSTANCE_BASIC_INFORMATION { 00200 ULONG NextEntryOffset; 00201 USHORT InstanceNameLength; 00202 USHORT InstanceNameBufferOffset; 00203 } INSTANCE_BASIC_INFORMATION, *PINSTANCE_BASIC_INFORMATION; 00204 00205 _Struct_size_bytes_(sizeof(INSTANCE_PARTIAL_INFORMATION) + InstanceNameLength + AltitudeLength) 00206 typedef struct _INSTANCE_PARTIAL_INFORMATION { 00207 ULONG NextEntryOffset; 00208 USHORT InstanceNameLength; 00209 USHORT InstanceNameBufferOffset; 00210 USHORT AltitudeLength; 00211 USHORT AltitudeBufferOffset; 00212 } INSTANCE_PARTIAL_INFORMATION, *PINSTANCE_PARTIAL_INFORMATION; 00213 00214 _Struct_size_bytes_(sizeof(INSTANCE_FULL_INFORMATION) + InstanceNameLength + AltitudeLength + VolumeNameLength + FilterNameLength) 00215 typedef struct _INSTANCE_FULL_INFORMATION { 00216 ULONG NextEntryOffset; 00217 USHORT InstanceNameLength; 00218 USHORT InstanceNameBufferOffset; 00219 USHORT AltitudeLength; 00220 USHORT AltitudeBufferOffset; 00221 USHORT VolumeNameLength; 00222 USHORT VolumeNameBufferOffset; 00223 USHORT FilterNameLength; 00224 USHORT FilterNameBufferOffset; 00225 } INSTANCE_FULL_INFORMATION, *PINSTANCE_FULL_INFORMATION; 00226 00227 typedef struct _FILTER_MESSAGE_HEADER { 00228 ULONG ReplyLength; 00229 ULONGLONG MessageId; 00230 } FILTER_MESSAGE_HEADER, *PFILTER_MESSAGE_HEADER; 00231 00232 typedef struct _FILTER_REPLY_HEADER { 00233 NTSTATUS Status; 00234 ULONGLONG MessageId; 00235 } FILTER_REPLY_HEADER, *PFILTER_REPLY_HEADER; 00236 00237 #endif /* FLT_MGR_BASELINE */ 00238 00239 #endif /* __FLT_USER_STRUCTURES_H__ */ Generated on Sun May 27 2012 04:29:58 for ReactOS by
1.7.6.1
|