ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

fltuserstructures.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.