ReactOS  0.4.13-dev-99-g7e18b6d
fltkernel.h
Go to the documentation of this file.
1 /*
2  * fltkernel.h
3  *
4  * This file is part of the ReactOS DDK package.
5  *
6  * Contributors:
7  * Amine Khaldi (amine.khaldi@reactos.org)
8  *
9  * THIS SOFTWARE IS NOT COPYRIGHTED
10  *
11  * This source code is offered for use in the public domain. You may
12  * use, modify or distribute it freely.
13  *
14  * This code is distributed in the hope that it will be useful but
15  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
16  * DISCLAIMED. This includes but is not limited to warranties of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18  *
19  */
20 #pragma once
21 
22 #ifndef __FLTKERNEL__
23 #define __FLTKERNEL__
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 #define FLT_MGR_BASELINE (((OSVER(NTDDI_VERSION) == NTDDI_WIN2K) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WIN2KSP4))) || \
30  ((OSVER(NTDDI_VERSION) == NTDDI_WINXP) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WINXPSP2))) || \
31  ((OSVER(NTDDI_VERSION) == NTDDI_WS03) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WS03SP1))) || \
32  (NTDDI_VERSION >= NTDDI_VISTA))
33 
34 #define FLT_MGR_AFTER_XPSP2 (((OSVER(NTDDI_VERSION) == NTDDI_WIN2K) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WIN2KSP4))) || \
35  ((OSVER(NTDDI_VERSION) == NTDDI_WINXP) && (SPVER(NTDDI_VERSION) > SPVER(NTDDI_WINXPSP2))) || \
36  ((OSVER(NTDDI_VERSION) == NTDDI_WS03) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WS03SP1))) || \
37  (NTDDI_VERSION >= NTDDI_VISTA))
38 
39 #define FLT_MGR_LONGHORN (NTDDI_VERSION >= NTDDI_VISTA)
40 #define FLT_MGR_WIN7 (NTDDI_VERSION >= NTDDI_WIN7)
41 
42 #include <ntifs.h>
43 #include <fltuserstructures.h>
44 #include <initguid.h>
45 
46 #if FLT_MGR_BASELINE
47 
48 #if FLT_MGR_LONGHORN
49 #define FLT_ASSERT(_e) NT_ASSERT(_e)
50 #define FLT_ASSERTMSG(_m, _e) NT_ASSERTMSG(_m, _e)
51 #else
52 #define FLT_ASSERT(_e) ASSERT(_e)
53 #define FLT_ASSERTMSG(_m, _e) ASSERTMSG(_m, _e)
54 #endif /* FLT_MGR_LONGHORN */
55 
56 #define Add2Ptr(P,I) ((PVOID)((PUCHAR)(P) + (I)))
57 #define PtrOffset(B,O) ((ULONG)((ULONG_PTR)(O) - (ULONG_PTR)(B)))
58 
59 #define ROUND_TO_SIZE(_length, _alignment) \
60  ((((ULONG_PTR)(_length)) + ((_alignment)-1)) & ~(ULONG_PTR) ((_alignment) - 1))
61 
62 #define IS_ALIGNED(_pointer, _alignment) \
63  ((((ULONG_PTR) (_pointer)) & ((_alignment) - 1)) == 0)
64 
65 #define IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION ((UCHAR)-1)
66 #define IRP_MJ_RELEASE_FOR_SECTION_SYNCHRONIZATION ((UCHAR)-2)
67 #define IRP_MJ_ACQUIRE_FOR_MOD_WRITE ((UCHAR)-3)
68 #define IRP_MJ_RELEASE_FOR_MOD_WRITE ((UCHAR)-4)
69 #define IRP_MJ_ACQUIRE_FOR_CC_FLUSH ((UCHAR)-5)
70 #define IRP_MJ_RELEASE_FOR_CC_FLUSH ((UCHAR)-6)
71 #define IRP_MJ_FAST_IO_CHECK_IF_POSSIBLE ((UCHAR)-13)
72 #define IRP_MJ_NETWORK_QUERY_OPEN ((UCHAR)-14)
73 #define IRP_MJ_MDL_READ ((UCHAR)-15)
74 #define IRP_MJ_MDL_READ_COMPLETE ((UCHAR)-16)
75 #define IRP_MJ_PREPARE_MDL_WRITE ((UCHAR)-17)
76 #define IRP_MJ_MDL_WRITE_COMPLETE ((UCHAR)-18)
77 #define IRP_MJ_VOLUME_MOUNT ((UCHAR)-19)
78 #define IRP_MJ_VOLUME_DISMOUNT ((UCHAR)-20)
79 #define IRP_MJ_OPERATION_END ((UCHAR)0x80)
80 #define FLT_INTERNAL_OPERATION_COUNT 22
81 
82 #define NULL_CONTEXT ((PFLT_CONTEXT)NULL)
83 
84 typedef struct _FLT_FILTER *PFLT_FILTER;
85 typedef struct _FLT_VOLUME *PFLT_VOLUME;
86 typedef struct _FLT_INSTANCE *PFLT_INSTANCE;
87 typedef struct _FLT_PORT *PFLT_PORT;
88 
90 
91 #if !FLT_MGR_LONGHORN
92 typedef struct _KTRANSACTION *PKTRANSACTION;
93 #endif
94 
95 #if !defined(_AMD64_) && !defined(_IA64_) && !defined(_ARM_)
96 #include "pshpack4.h"
97 #endif
98 
99 typedef union _FLT_PARAMETERS {
100  struct {
108  } Create;
109  struct {
111  ULONG Options;
115  } CreatePipe;
116  struct {
118  ULONG Options;
122  } CreateMailslot;
123  struct {
129  } Read;
130  struct {
131  ULONG Length;
136  } Write;
137  struct {
138  ULONG Length;
142  struct {
143  ULONG Length;
146  _ANONYMOUS_UNION union {
147  _ANONYMOUS_STRUCT struct {
150  } DUMMYSTRUCTNAME;
153  } DUMMYUNIONNAME;
156  struct {
157  ULONG Length;
161  PVOID EaBuffer;
163  } QueryEa;
164  struct {
165  ULONG Length;
166  PVOID EaBuffer;
168  } SetEa;
169  struct {
170  ULONG Length;
174  struct {
175  ULONG Length;
179  union {
180  struct {
181  ULONG Length;
187  } QueryDirectory;
188  struct {
189  ULONG Length;
195  } NotifyDirectory;
197  union {
198  struct {
201  } VerifyVolume;
202  struct {
206  } Common;
207  struct {
214  } Neither;
215  struct {
220  } Buffered;
221  struct {
228  } Direct;
230  union {
231  struct {
235  } Common;
236  struct {
243  } Neither;
244  struct {
249  } Buffered;
250  struct {
257  } Direct;
258  struct {
264  } FastIo;
265  } DeviceIoControl;
266  struct {
273  } LockControl;
274  struct {
279  } QuerySecurity;
280  struct {
283  } SetSecurity;
284  struct {
289  } WMI;
290  struct {
291  ULONG Length;
297  } QueryQuota;
298  struct {
299  ULONG Length;
302  } SetQuota;
303  union {
304  struct {
307  } StartDevice;
308  struct {
311  struct {
317  } QueryInterface;
318  struct {
321  struct {
324  struct {
326  PVOID Buffer;
329  } ReadWriteConfig;
330  struct {
332  } SetLock;
333  struct {
335  } QueryId;
336  struct {
339  } QueryDeviceText;
340  struct {
345  } Pnp;
346  struct {
350  struct {
354  struct {
357  struct {
359  ULONG Length;
363  struct {
367  struct {
372  } MdlRead;
373  struct {
375  } MdlReadComplete;
376  struct {
380  PMDL *MdlChain;
381  } PrepareMdlWrite;
382  struct {
384  PMDL MdlChain;
386  struct {
388  } MountVolume;
389  struct {
396  } Others;
398 
399 #if !defined(_AMD64_) && !defined(_IA64_) && !defined(_ARM_)
400 #include "poppack.h"
401 #endif
402 
403 typedef struct _FLT_IO_PARAMETER_BLOCK {
413 
414 #define FLTFL_CALLBACK_DATA_REISSUE_MASK 0x0000FFFF
415 #define FLTFL_CALLBACK_DATA_IRP_OPERATION 0x00000001
416 #define FLTFL_CALLBACK_DATA_FAST_IO_OPERATION 0x00000002
417 #define FLTFL_CALLBACK_DATA_FS_FILTER_OPERATION 0x00000004
418 #define FLTFL_CALLBACK_DATA_SYSTEM_BUFFER 0x00000008
419 #define FLTFL_CALLBACK_DATA_GENERATED_IO 0x00010000
420 #define FLTFL_CALLBACK_DATA_REISSUED_IO 0x00020000
421 #define FLTFL_CALLBACK_DATA_DRAINING_IO 0x00040000
422 #define FLTFL_CALLBACK_DATA_POST_OPERATION 0x00080000
423 #define FLTFL_CALLBACK_DATA_NEW_SYSTEM_BUFFER 0x00100000
424 #define FLTFL_CALLBACK_DATA_DIRTY 0x80000000
425 
426 #define FLT_SET_CALLBACK_DATA_DIRTY(Data) FltSetCallbackDataDirty(Data)
427 #define FLT_CLEAR_CALLBACK_DATA_DIRTY(Data) FltClearCallbackDataDirty(Data)
428 #define FLT_IS_CALLBACK_DATA_DIRTY(Data) FltIsCallbackDataDirty(Data)
429 
430 #define FLT_IS_IRP_OPERATION(Data) (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_IRP_OPERATION))
431 #define FLT_IS_FASTIO_OPERATION(Data) (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_FAST_IO_OPERATION))
432 #define FLT_IS_FS_FILTER_OPERATION(Data) (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_FS_FILTER_OPERATION))
433 #define FLT_IS_REISSUED_IO(Data) (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_REISSUED_IO))
434 #define FLT_IS_SYSTEM_BUFFER(Data) (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_SYSTEM_BUFFER))
435 
437 
438 #define FLT_VOLUME_CONTEXT 0x0001
439 #define FLT_INSTANCE_CONTEXT 0x0002
440 #define FLT_FILE_CONTEXT 0x0004
441 #define FLT_STREAM_CONTEXT 0x0008
442 #define FLT_STREAMHANDLE_CONTEXT 0x0010
443 #define FLT_TRANSACTION_CONTEXT 0x0020
444 #define FLT_CONTEXT_END 0xffff
445 
446 #define FLT_ALL_CONTEXTS (FLT_VOLUME_CONTEXT | FLT_INSTANCE_CONTEXT | \
447  FLT_FILE_CONTEXT | FLT_STREAM_CONTEXT | \
448  FLT_STREAMHANDLE_CONTEXT | FLT_TRANSACTION_CONTEXT)
449 
451 
452 #if FLT_MGR_WIN7
454 #define FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY 0x00000001
455 #endif /* FLT_MGR_WIN7 */
456 
457 typedef struct _FLT_CALLBACK_DATA {
463  _ANONYMOUS_UNION union {
464  _ANONYMOUS_STRUCT struct {
467  } DUMMYSTRUCTNAME;
469  } DUMMYUNIONNAME;
472 
473 typedef struct _FLT_RELATED_OBJECTS {
480  PKTRANSACTION CONST Transaction;
483 
484 typedef struct _FLT_RELATED_CONTEXTS {
492 
493 typedef VOID
497 
498 typedef PVOID
501  _In_ SIZE_T Size,
503 
504 typedef VOID
506  _In_ PVOID Pool,
508 
510 
511 #define FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH 0x0001
512 
513 #define FLT_VARIABLE_SIZED_CONTEXTS ((SIZE_T)-1)
514 
526 
528 
529 #define FLTFL_INSTANCE_SETUP_AUTOMATIC_ATTACHMENT 0x00000001
530 #define FLTFL_INSTANCE_SETUP_MANUAL_ATTACHMENT 0x00000002
531 #define FLTFL_INSTANCE_SETUP_NEWLY_MOUNTED_VOLUME 0x00000004
532 
533 #if FLT_MGR_LONGHORN
534 
535 #define FLTFL_INSTANCE_SETUP_DETACHED_VOLUME 0x00000008
536 
537 #define FLT_MAX_TRANSACTION_NOTIFICATIONS (TRANSACTION_NOTIFY_PREPREPARE | \
538  TRANSACTION_NOTIFY_PREPARE | \
539  TRANSACTION_NOTIFY_COMMIT | \
540  TRANSACTION_NOTIFY_ROLLBACK | \
541  TRANSACTION_NOTIFY_COMMIT_FINALIZE)
542 
543 #endif /* FLT_MGR_LONGHORN */
544 
545 typedef NTSTATUS
547  _In_ PCFLT_RELATED_OBJECTS FltObjects,
549  _In_ DEVICE_TYPE VolumeDeviceType,
550  _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType);
551 
553 
554 typedef NTSTATUS
556  _In_ PCFLT_RELATED_OBJECTS FltObjects,
558 
560 
561 #define FLTFL_INSTANCE_TEARDOWN_MANUAL 0x00000001
562 #define FLTFL_INSTANCE_TEARDOWN_FILTER_UNLOAD 0x00000002
563 #define FLTFL_INSTANCE_TEARDOWN_MANDATORY_FILTER_UNLOAD 0x00000004
564 #define FLTFL_INSTANCE_TEARDOWN_VOLUME_DISMOUNT 0x00000008
565 #define FLTFL_INSTANCE_TEARDOWN_INTERNAL_ERROR 0x00000010
566 
567 typedef VOID
569  _In_ PCFLT_RELATED_OBJECTS FltObjects,
571 
580 
584  _In_ PCFLT_RELATED_OBJECTS FltObjects,
586 
591 
593 
594 #define FLTFL_POST_OPERATION_DRAINING 0x00000001
595 
599  _In_ PCFLT_RELATED_OBJECTS FltObjects,
602 
604 
605 #define FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO 0x00000001
606 #define FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO 0x00000002
607 #define FLTFL_OPERATION_REGISTRATION_SKIP_NON_DASD_IO 0x00000004
608 
616 
617 typedef struct _FLT_TAG_DATA_BUFFER {
621  _ANONYMOUS_UNION union {
622  struct {
630  struct {
635  WCHAR PathBuffer[1];
637  struct {
640  struct {
642  UCHAR DataBuffer[1];
644  } DUMMYUNIONNAME;
646 
647 #define FLT_TAG_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(FLT_TAG_DATA_BUFFER, GenericReparseBuffer)
648 
650 
651 #define FLTFL_FILTER_UNLOAD_MANDATORY 0x00000001
652 
653 typedef NTSTATUS
656 
657 typedef struct _FLT_NAME_CONTROL {
660 
662 
663 typedef NTSTATUS
669  _Out_ PBOOLEAN CacheFileNameInformation,
671 
673 
674 #define FLTFL_NORMALIZE_NAME_CASE_SENSITIVE 0x01
675 #define FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAME 0x02
676 
677 typedef NTSTATUS
681  _In_ USHORT VolumeNameLength,
682  _In_ PCUNICODE_STRING Component,
683  _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName,
684  _In_ ULONG ExpandComponentNameLength,
686  _Inout_ PVOID *NormalizationContext);
687 
688 typedef NTSTATUS
693  _In_ USHORT VolumeNameLength,
694  _In_ PCUNICODE_STRING Component,
695  _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName,
696  _In_ ULONG ExpandComponentNameLength,
698  _Inout_ PVOID *NormalizationContext);
699 
700 typedef VOID
702  _In_opt_ PVOID *NormalizationContext);
703 
704 #if FLT_MGR_LONGHORN
705 typedef NTSTATUS
707  _In_ PCFLT_RELATED_OBJECTS FltObjects,
710 #endif /* FLT_MGR_LONGHORN */
711 
712 #define FLT_REGISTRATION_VERSION_0200 0x0200
713 #define FLT_REGISTRATION_VERSION_0201 0x0201
714 #define FLT_REGISTRATION_VERSION_0202 0x0202
715 #define FLT_REGISTRATION_VERSION_0203 0x0203
716 
717 #if FLT_MGR_LONGHORN
718 #define FLT_REGISTRATION_VERSION FLT_REGISTRATION_VERSION_0202
719 #else
720 #define FLT_REGISTRATION_VERSION FLT_REGISTRATION_VERSION_0200
721 #endif
722 
724 
725 #define FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP 0x00000001
726 #define FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS 0x00000002
727 
728 typedef struct _FLT_REGISTRATION {
742 #if FLT_MGR_LONGHORN
745 #endif /* FLT_MGR_LONGHORN */
747 
748 typedef VOID
752 
754 
755 #define FLTFL_IO_OPERATION_NON_CACHED 0x00000001
756 #define FLTFL_IO_OPERATION_PAGING 0x00000002
757 #define FLTFL_IO_OPERATION_DO_NOT_UPDATE_BYTE_OFFSET 0x00000004
758 
759 #if FLT_MGR_LONGHORN
760 #define FLTFL_IO_OPERATION_SYNCHRONOUS_PAGING 0x00000008
761 #endif
762 
763 typedef VOID
765  _In_ PCFLT_RELATED_OBJECTS FltObjects,
766  _In_ PFLT_IO_PARAMETER_BLOCK IopbSnapshot,
769 
771 
772 #define FLT_VALID_FILE_NAME_FORMATS 0x000000ff
773 
774 #define FLT_FILE_NAME_NORMALIZED 0x01
775 #define FLT_FILE_NAME_OPENED 0x02
776 #define FLT_FILE_NAME_SHORT 0x03
777 
778 #define FltGetFileNameFormat( _NameOptions ) ((_NameOptions) & FLT_VALID_FILE_NAME_FORMATS)
779 
780 #define FLT_VALID_FILE_NAME_QUERY_METHODS 0x0000ff00
781 
782 #define FLT_FILE_NAME_QUERY_DEFAULT 0x0100
783 #define FLT_FILE_NAME_QUERY_CACHE_ONLY 0x0200
784 #define FLT_FILE_NAME_QUERY_FILESYSTEM_ONLY 0x0300
785 #define FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP 0x0400
786 
787 #define FltGetFileNameQueryMethod( _NameOptions ) ((_NameOptions) & FLT_VALID_FILE_NAME_QUERY_METHODS)
788 
789 #define FLT_VALID_FILE_NAME_FLAGS 0xff000000
790 
791 #define FLT_FILE_NAME_REQUEST_FROM_CURRENT_PROVIDER 0x01000000
792 #define FLT_FILE_NAME_DO_NOT_CACHE 0x02000000
793 
794 #if FLT_MGR_AFTER_XPSP2
795 #define FLT_FILE_NAME_ALLOW_QUERY_ON_REPARSE 0x04000000
796 #endif
797 
799 
800 #define FLTFL_FILE_NAME_PARSED_FINAL_COMPONENT 0x0001
801 #define FLTFL_FILE_NAME_PARSED_EXTENSION 0x0002
802 #define FLTFL_FILE_NAME_PARSED_STREAM 0x0004
803 #define FLTFL_FILE_NAME_PARSED_PARENT_DIR 0x0008
804 
817 
822 
823 typedef struct _FLT_VOLUME_PROPERTIES {
834 
835 #define FLT_PORT_CONNECT 0x0001
836 #define FLT_PORT_ALL_ACCESS (FLT_PORT_CONNECT | STANDARD_RIGHTS_ALL)
837 
838 typedef NTSTATUS
840  _In_opt_ PVOID PortCookie,
845  _Out_ PULONG ReturnOutputBufferLength);
846 
847 typedef NTSTATUS
851  _In_reads_bytes_opt_(SizeOfContext) PVOID ConnectionContext,
853  _Outptr_result_maybenull_ PVOID *ConnectionPortCookie);
854 
855 typedef VOID
857  _In_opt_ PVOID ConnectionCookie);
858 
859 typedef VOID
862 
863 typedef struct _FLT_DEFERRED_IO_WORKITEM *PFLT_DEFERRED_IO_WORKITEM;
864 typedef struct _FLT_GENERIC_WORKITEM *PFLT_GENERIC_WORKITEM;
865 
866 typedef VOID
868  _In_ PFLT_DEFERRED_IO_WORKITEM FltWorkItem,
871 
872 typedef VOID
874  _In_ PFLT_GENERIC_WORKITEM FltWorkItem,
877 
879 
881 
882 typedef NTSTATUS
887 
888 typedef VOID
892 
893 typedef PFLT_CALLBACK_DATA
898 
899 typedef VOID
903 
904 typedef VOID
908 
909 typedef VOID
913 
915 
916 typedef struct _FLT_CALLBACK_DATA_QUEUE {
927 
928 typedef NTSTATUS
932 
933 typedef VOID
937 
938 typedef VOID
942 
943 VOID
944 FLTAPI
947 
948 VOID
949 FLTAPI
952 
953 BOOLEAN
954 FLTAPI
957 
959 BOOLEAN
960 FLTAPI
963  _In_ PCFLT_RELATED_OBJECTS FltObjects,
966  _In_ PFLT_POST_OPERATION_CALLBACK SafePostCallback,
967  _Out_ PFLT_POSTOP_CALLBACK_STATUS RetPostOperationStatus);
968 
971 NTSTATUS
972 FLTAPI
973 FltCheckAndGrowNameControl(
974  _Inout_ PFLT_NAME_CONTROL NameCtrl,
976 
979 NTSTATUS
980 FLTAPI
981 FltPurgeFileNameInformationCache(
984 
987 NTSTATUS
988 FLTAPI
993 
995 VOID
996 FLTAPI
999 
1002 NTSTATUS
1003 FLTAPI
1006 
1009 PVOID
1010 FLTAPI
1011 FltGetRoutineAddress(
1012  _In_ PCSTR FltMgrRoutineName);
1013 
1016 VOID
1017 FLTAPI
1018 FltCompletePendedPreOperation(
1022 
1024 VOID
1025 FLTAPI
1026 FltCompletePendedPostOperation(
1028 
1031 NTSTATUS
1032 FLTAPI
1033 FltRequestOperationStatusCallback(
1037 
1039 _When_((PoolType!=NonPagedPoolNx), _IRQL_requires_max_(APC_LEVEL))
1040 PVOID
1041 FLTAPI
1042 FltAllocatePoolAlignedWithTag(
1046  _In_ ULONG Tag);
1047 
1049 VOID
1050 FLTAPI
1051 FltFreePoolAlignedWithTag(
1054  _In_ ULONG Tag);
1055 
1058 NTSTATUS
1059 FLTAPI
1064 
1067 NTSTATUS
1068 FLTAPI
1074 
1076 VOID
1077 FLTAPI
1080 
1082 VOID
1083 FLTAPI
1084 FltReferenceFileNameInformation(
1086 
1088 NTSTATUS
1089 FLTAPI
1090 FltParseFileName(
1095 
1097 NTSTATUS
1098 FLTAPI
1099 FltParseFileNameInformation(
1101 
1104 NTSTATUS
1105 FLTAPI
1106 FltGetTunneledName(
1110 
1113 NTSTATUS
1114 FLTAPI
1119 
1122 NTSTATUS
1123 FLTAPI
1132 
1135 NTSTATUS
1136 FLTAPI
1137 FltIsDirectory(
1141 
1144 NTSTATUS
1145 FLTAPI
1147  _In_ PCUNICODE_STRING FilterName);
1148 
1151 NTSTATUS
1152 FLTAPI
1154  _In_ PCUNICODE_STRING FilterName);
1155 
1158 NTSTATUS
1159 FLTAPI
1165 
1168 NTSTATUS
1169 FLTAPI
1170 FltAttachVolumeAtAltitude(
1176 
1179 NTSTATUS
1180 FLTAPI
1185 
1188 NTSTATUS
1189 FLTAPI
1190 FltAllocateCallbackData(
1194 
1196 VOID
1197 FLTAPI
1198 FltFreeCallbackData(
1200 
1202 VOID
1203 FLTAPI
1204 FltReuseCallbackData(
1206 
1209 VOID
1210 FLTAPI
1211 FltPerformSynchronousIo(
1213 
1217 NTSTATUS
1218 FLTAPI
1219 FltPerformAsynchronousIo(
1223 
1226 NTSTATUS
1227 FLTAPI
1228 FltCreateFile(
1242  _In_ ULONG Flags);
1243 
1247 NTSTATUS
1248 FLTAPI
1249 FltReadFile(
1250  _In_ PFLT_INSTANCE InitiatingInstance,
1253  _In_ ULONG Length,
1259 
1262 NTSTATUS
1263 FLTAPI
1264 FltTagFile(
1265  _In_ PFLT_INSTANCE InitiatingInstance,
1267  _In_ ULONG FileTag,
1268  _In_opt_ GUID *Guid,
1271 
1274 NTSTATUS
1275 FLTAPI
1276 FltUntagFile(
1277  _In_ PFLT_INSTANCE InitiatingInstance,
1279  _In_ ULONG FileTag,
1280  _In_opt_ GUID *Guid);
1281 
1285 NTSTATUS
1286 FLTAPI
1287 FltWriteFile(
1288  _In_ PFLT_INSTANCE InitiatingInstance,
1291  _In_ ULONG Length,
1297 
1300 NTSTATUS
1301 FLTAPI
1302 FltQueryInformationFile(
1309 
1312 NTSTATUS
1313 FLTAPI
1314 FltSetInformationFile(
1318  _In_ ULONG Length,
1320 
1323 NTSTATUS
1324 FLTAPI
1325 FltQueryVolumeInformationFile(
1332 
1335 NTSTATUS
1336 FLTAPI
1337 FltQuerySecurityObject(
1344 
1347 NTSTATUS
1348 FLTAPI
1349 FltSetSecurityObject(
1354 
1357 NTSTATUS
1358 FLTAPI
1359 FltFlushBuffers(
1362 
1365 NTSTATUS
1366 FLTAPI
1367 FltFsControlFile(
1376 
1379 NTSTATUS
1380 FLTAPI
1381 FltDeviceIoControlFile(
1390 
1394 VOID
1395 FLTAPI
1396 FltReissueSynchronousIo(
1397  _In_ PFLT_INSTANCE InitiatingInstance,
1399 
1401 NTSTATUS
1402 FLTAPI
1403 FltClose(
1405 
1407 VOID
1408 FLTAPI
1409 FltCancelFileOpen(
1412 
1415 NTSTATUS
1416 FLTAPI
1417 FltCreateSystemVolumeInformationFolder(
1419 
1421 BOOLEAN
1422 FLTAPI
1423 FltSupportsFileContexts(
1425 
1427 BOOLEAN
1428 FLTAPI
1429 FltSupportsStreamContexts(
1431 
1433 BOOLEAN
1434 FLTAPI
1435 FltSupportsStreamHandleContexts(
1437 
1440 NTSTATUS
1441 FLTAPI
1442 FltAllocateContext(
1448 
1450 VOID
1451 FLTAPI
1452 FltGetContexts(
1453  _In_ PCFLT_RELATED_OBJECTS FltObjects,
1456 
1458 VOID
1459 FLTAPI
1460 FltReleaseContexts(
1462 
1464 NTSTATUS
1465 FLTAPI
1466 FltSetVolumeContext(
1471 
1473 NTSTATUS
1474 FLTAPI
1475 FltSetInstanceContext(
1480 
1482 NTSTATUS
1483 FLTAPI
1484 FltSetFileContext(
1490 
1492 NTSTATUS
1493 FLTAPI
1494 FltSetStreamContext(
1500 
1502 NTSTATUS
1503 FLTAPI
1504 FltSetStreamHandleContext(
1510 
1512 VOID
1513 FLTAPI
1514 FltDeleteContext(
1516 
1518 NTSTATUS
1519 FLTAPI
1520 FltDeleteVolumeContext(
1524 
1526 NTSTATUS
1527 FLTAPI
1528 FltDeleteInstanceContext(
1531 
1533 NTSTATUS
1534 FLTAPI
1535 FltDeleteFileContext(
1539 
1541 NTSTATUS
1542 FLTAPI
1543 FltDeleteStreamContext(
1547 
1549 NTSTATUS
1550 FLTAPI
1551 FltDeleteStreamHandleContext(
1555 
1557 NTSTATUS
1558 FLTAPI
1559 FltGetVolumeContext(
1563 
1565 NTSTATUS
1566 FLTAPI
1567 FltGetInstanceContext(
1570 
1572 NTSTATUS
1573 FLTAPI
1574 FltGetFileContext(
1578 
1580 NTSTATUS
1581 FLTAPI
1582 FltGetStreamContext(
1586 
1588 NTSTATUS
1589 FLTAPI
1590 FltGetStreamHandleContext(
1594 
1596 VOID
1597 FLTAPI
1598 FltReferenceContext(
1600 
1602 VOID
1603 FLTAPI
1604 FltReleaseContext(
1606 
1608 NTSTATUS
1609 FLTAPI
1611  _In_ PCUNICODE_STRING FilterName,
1613 
1615 NTSTATUS
1616 FLTAPI
1617 FltGetVolumeFromName(
1621 
1623 NTSTATUS
1624 FLTAPI
1625 FltGetVolumeInstanceFromName(
1630 
1632 NTSTATUS
1633 FLTAPI
1634 FltGetVolumeFromInstance(
1637 
1639 NTSTATUS
1640 FLTAPI
1641 FltGetFilterFromInstance(
1644 
1646 NTSTATUS
1647 FLTAPI
1648 FltGetVolumeFromFileObject(
1652 
1654 NTSTATUS
1655 FLTAPI
1656 FltGetVolumeFromDeviceObject(
1660 
1662 NTSTATUS
1663 FLTAPI
1664 FltGetDeviceObject(
1667 
1669 NTSTATUS
1670 FLTAPI
1674 
1676 NTSTATUS
1677 FLTAPI
1678 FltGetLowerInstance(
1679  _In_ PFLT_INSTANCE CurrentInstance,
1681 
1683 NTSTATUS
1684 FLTAPI
1685 FltGetUpperInstance(
1686  _In_ PFLT_INSTANCE CurrentInstance,
1688 
1690 NTSTATUS
1691 FLTAPI
1692 FltGetTopInstance(
1695 
1697 NTSTATUS
1698 FLTAPI
1699 FltGetBottomInstance(
1702 
1703 LONG
1704 FLTAPI
1706  _In_ PFLT_INSTANCE Instance1,
1707  _In_ PFLT_INSTANCE Instance2);
1708 
1710 NTSTATUS
1711 FLTAPI
1712 FltGetFilterInformation(
1714  _In_ FILTER_INFORMATION_CLASS InformationClass,
1718 
1720 NTSTATUS
1721 FLTAPI
1722 FltGetInstanceInformation(
1724  _In_ INSTANCE_INFORMATION_CLASS InformationClass,
1728 
1730 NTSTATUS
1731 FLTAPI
1737 
1740 NTSTATUS
1741 FLTAPI
1742 FltIsVolumeWritable(
1745 
1748 NTSTATUS
1749 FLTAPI
1750 FltGetVolumeGuidName(
1754 
1757 NTSTATUS
1758 FLTAPI
1759 FltQueryVolumeInformation(
1762  _Out_writes_bytes_(Length) PVOID FsInformation,
1763  _In_ ULONG Length,
1765 
1768 NTSTATUS
1769 FLTAPI
1770 FltSetVolumeInformation(
1773  _Out_writes_bytes_(Length) PVOID FsInformation,
1774  _In_ ULONG Length,
1776 
1779 NTSTATUS
1780 FLTAPI
1781 FltEnumerateFilters(
1785 
1788 NTSTATUS
1789 FLTAPI
1795 
1798 NTSTATUS
1799 FLTAPI
1800 FltEnumerateInstances(
1806 
1809 NTSTATUS
1810 FLTAPI
1811 FltEnumerateFilterInformation(
1812  _In_ ULONG Index,
1813  _In_ FILTER_INFORMATION_CLASS InformationClass,
1817 
1820 NTSTATUS
1821 FLTAPI
1822 FltEnumerateInstanceInformationByFilter(
1825  _In_ INSTANCE_INFORMATION_CLASS InformationClass,
1829 
1832 NTSTATUS
1833 FLTAPI
1834 FltEnumerateInstanceInformationByVolume(
1836  _In_ ULONG Index,
1837  _In_ INSTANCE_INFORMATION_CLASS InformationClass,
1841 
1844 NTSTATUS
1845 FLTAPI
1846 FltEnumerateVolumeInformation(
1848  _In_ ULONG Index,
1849  _In_ FILTER_VOLUME_INFORMATION_CLASS InformationClass,
1853 
1856 NTSTATUS
1857 FLTAPI
1860 
1862 VOID
1863 FLTAPI
1866 
1869 NTSTATUS
1870 FLTAPI
1871 FltCreateCommunicationPort(
1880 
1882 VOID
1883 FLTAPI
1884 FltCloseCommunicationPort(
1886 
1888 VOID
1889 FLTAPI
1890 FltCloseClientPort(
1893 
1896 NTSTATUS
1897 FLTAPI
1898 FltSendMessage(
1906 
1909 NTSTATUS
1910 FLTAPI
1914 
1916 VOID
1917 FLTAPI
1920 
1923 BOOLEAN
1924 FLTAPI
1925 FltCancelIo(
1927 
1929 NTSTATUS
1930 FLTAPI
1931 FltSetCancelCompletion(
1934 
1937 NTSTATUS
1938 FLTAPI
1939 FltClearCancelCompletion(
1941 
1942 BOOLEAN
1943 FLTAPI
1946 
1950 FLTAPI
1951 FltAllocateDeferredIoWorkItem(VOID);
1952 
1954 VOID
1955 FLTAPI
1956 FltFreeDeferredIoWorkItem(
1957  _In_ PFLT_DEFERRED_IO_WORKITEM FltWorkItem);
1958 
1962 FLTAPI
1963 FltAllocateGenericWorkItem(VOID);
1964 
1966 VOID
1967 FLTAPI
1968 FltFreeGenericWorkItem(
1969  _In_ PFLT_GENERIC_WORKITEM FltWorkItem);
1970 
1973 NTSTATUS
1974 FLTAPI
1975 FltQueueDeferredIoWorkItem(
1976  _In_ PFLT_DEFERRED_IO_WORKITEM FltWorkItem,
1980  _In_ PVOID Context);
1981 
1984 NTSTATUS
1985 FLTAPI
1986 FltQueueGenericWorkItem(
1987  _In_ PFLT_GENERIC_WORKITEM FltWorkItem,
1992 
1995 NTSTATUS
1996 FLTAPI
1997 FltLockUserBuffer(
1999 
2000 NTSTATUS
2001 FLTAPI
2004  _Outptr_opt_ PMDL **MdlAddressPointer,
2008 
2009 PMDL
2010 FASTCALL
2013 
2014 VOID
2015 FASTCALL
2018 
2019 NTSTATUS
2020 FLTAPI
2029  _In_ PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO CbdqCompleteCanceledIo);
2030 
2031 VOID
2032 FLTAPI
2035 
2036 VOID
2037 FLTAPI
2040 
2042 NTSTATUS
2043 FLTAPI
2049 
2052 FLTAPI
2056 
2059 FLTAPI
2063 
2065 VOID
2066 FLTAPI
2067 FltInitializeOplock(
2068  _Out_ POPLOCK Oplock);
2069 
2071 VOID
2072 FLTAPI
2073 FltUninitializeOplock(
2074  _In_ POPLOCK Oplock);
2075 
2079 FLTAPI
2080 FltOplockFsctrl(
2081  _In_ POPLOCK Oplock,
2083  _In_ ULONG OpenCount);
2084 
2088 FLTAPI
2089 FltCheckOplock(
2090  _In_ POPLOCK Oplock,
2095 
2097 BOOLEAN
2098 FLTAPI
2099 FltOplockIsFastIoPossible(
2100  _In_ POPLOCK Oplock);
2101 
2103 BOOLEAN
2104 FLTAPI
2105 FltCurrentBatchOplock(
2106  _In_ POPLOCK Oplock);
2107 
2108 VOID
2109 FLTAPI
2111  _Out_ PFILE_LOCK FileLock);
2112 
2113 VOID
2114 FLTAPI
2116  _In_ PFILE_LOCK FileLock);
2117 
2120 PFILE_LOCK
2121 FLTAPI
2122 FltAllocateFileLock(
2123  _In_opt_ PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE CompleteLockCallbackDataRoutine,
2125 
2127 VOID
2128 FLTAPI
2129 FltFreeFileLock(
2130  _In_ PFILE_LOCK FileLock);
2131 
2135 FLTAPI
2136 FltProcessFileLock(
2137  _In_ PFILE_LOCK FileLock,
2140 
2143 BOOLEAN
2144 FLTAPI
2145 FltCheckLockForReadAccess(
2146  _In_ PFILE_LOCK FileLock,
2148 
2151 BOOLEAN
2152 FLTAPI
2153 FltCheckLockForWriteAccess(
2154  _In_ PFILE_LOCK FileLock,
2156 
2157 _Acquires_lock_(_Global_critical_region_)
2159 VOID
2160 FLTAPI
2161 FltAcquireResourceExclusive(
2163 
2164 _Acquires_lock_(_Global_critical_region_)
2166 VOID
2167 FLTAPI
2168 FltAcquireResourceShared(
2170 
2171 _Releases_lock_(_Global_critical_region_)
2173 VOID
2174 FLTAPI
2175 FltReleaseResource(
2177 
2179 VOID
2180 FLTAPI
2181 FltInitializePushLock(
2182  _Out_ PEX_PUSH_LOCK PushLock);
2183 
2185 VOID
2186 FLTAPI
2187 FltDeletePushLock(
2188  _In_ PEX_PUSH_LOCK PushLock);
2189 
2190 _Acquires_lock_(_Global_critical_region_)
2192 VOID
2193 FLTAPI
2194 FltAcquirePushLockExclusive(
2195  _Inout_ _Requires_lock_not_held_(*_Curr_) _Acquires_lock_(*_Curr_) PEX_PUSH_LOCK PushLock);
2196 
2197 _Acquires_lock_(_Global_critical_region_)
2199 VOID
2200 FLTAPI
2201 FltAcquirePushLockShared(
2202  _Inout_ _Requires_lock_not_held_(*_Curr_) _Acquires_lock_(*_Curr_) PEX_PUSH_LOCK PushLock);
2203 
2204 _Releases_lock_(_Global_critical_region_)
2206 VOID
2207 FLTAPI
2208 FltReleasePushLock(
2209  _Inout_ _Requires_lock_held_(*_Curr_) _Releases_lock_(*_Curr_) PEX_PUSH_LOCK PushLock);
2210 
2211 BOOLEAN
2212 FLTAPI
2215 
2217 BOOLEAN
2218 FLTAPI
2219 FltIs32bitProcess(
2221 
2223 PEPROCESS
2224 FLTAPI
2225 FltGetRequestorProcess(
2227 
2229 ULONG
2230 FLTAPI
2231 FltGetRequestorProcessId(
2233 
2235 VOID
2236 FLTAPI
2237 FltNotifyFilterChangeDirectory(
2238  _Inout_ PNOTIFY_SYNC NotifySync,
2249 
2250 PCHAR
2251 FLTAPI
2253  _In_ UCHAR IrpMajorCode);
2254 
2255 #if FLT_MGR_AFTER_XPSP2
2256 
2259 NTSTATUS
2260 FLTAPI
2261 FltCreateFileEx(
2276  _In_ ULONG Flags);
2277 
2280 NTSTATUS
2281 FLTAPI
2282 FltOpenVolume(
2286 
2289 NTSTATUS
2290 FLTAPI
2291 FltQueryEaFile(
2302 
2305 NTSTATUS
2306 FLTAPI
2307 FltSetEaFile(
2311  _In_ ULONG Length);
2312 
2313 #endif /* FLT_MGR_AFTER_XPSP2 */
2314 
2315 #if FLT_MGR_LONGHORN
2316 
2319 NTSTATUS
2320 FLTAPI
2321 FltCreateFileEx2(
2336  _In_ ULONG Flags,
2338 
2341 NTSTATUS
2342 FLTAPI
2343 FltQueryDirectoryFile(
2353 
2355 BOOLEAN
2356 FLTAPI
2357 FltSupportsFileContextsEx(
2360 
2362 NTSTATUS
2363 FLTAPI
2364 FltSetTransactionContext(
2366  _In_ PKTRANSACTION Transaction,
2370 
2372 NTSTATUS
2373 FLTAPI
2374 FltDeleteTransactionContext(
2376  _In_ PKTRANSACTION Transaction,
2378 
2380 NTSTATUS
2381 FLTAPI
2382 FltGetTransactionContext(
2384  _In_ PKTRANSACTION Transaction,
2386 
2388 BOOLEAN
2389 FLTAPI
2390 FltIsFltMgrVolumeDeviceObject(
2392 
2394 NTSTATUS
2395 FLTAPI
2396 FltGetVolumeInformation(
2398  _In_ FILTER_VOLUME_INFORMATION_CLASS InformationClass,
2402 
2404 NTSTATUS
2405 FLTAPI
2406 FltGetFileSystemType(
2408  _Out_ PFLT_FILESYSTEM_TYPE FileSystemType);
2409 
2412 NTSTATUS
2413 FLTAPI
2414 FltIsVolumeSnapshot(
2417 
2421 NTSTATUS
2422 FLTAPI
2423 FltCancellableWaitForSingleObject(
2424  _In_ PVOID Object,
2427 
2431 NTSTATUS
2432 FLTAPI
2433 FltCancellableWaitForMultipleObjects(
2434  _In_ ULONG Count,
2435  _In_reads_(Count) PVOID ObjectArray[],
2440 
2442 HANDLE
2443 FLTAPI
2444 FltGetRequestorProcessIdEx(
2446 
2449 NTSTATUS
2450 FLTAPI
2451 FltEnlistInTransaction(
2453  _In_ PKTRANSACTION Transaction,
2456 
2458 NTSTATUS
2459 FLTAPI
2460 FltRollbackEnlistment(
2462  _In_ PKTRANSACTION Transaction,
2464 
2466 NTSTATUS
2467 FLTAPI
2468 FltPrePrepareComplete(
2470  _In_ PKTRANSACTION Transaction,
2472 
2474 NTSTATUS
2475 FLTAPI
2476 FltPrepareComplete(
2478  _In_ PKTRANSACTION Transaction,
2480 
2482 NTSTATUS
2483 FLTAPI
2484 FltCommitComplete(
2486  _In_ PKTRANSACTION Transaction,
2488 
2490 NTSTATUS
2491 FLTAPI
2492 FltCommitFinalizeComplete(
2494  _In_ PKTRANSACTION Transaction,
2496 
2498 NTSTATUS
2499 FLTAPI
2500 FltRollbackComplete(
2502  _In_ PKTRANSACTION Transaction,
2504 
2507 NTSTATUS
2508 FLTAPI
2509 FltAllocateExtraCreateParameterList(
2513 
2516 NTSTATUS
2517 FLTAPI
2518 FltAllocateExtraCreateParameter(
2524  _In_ ULONG PoolTag,
2526 
2528 VOID
2529 FLTAPI
2530 FltInitExtraCreateParameterLookasideList(
2534  _In_ SIZE_T Size,
2535  _In_ ULONG Tag);
2536 
2538 VOID
2539 FLTAPI
2540 FltDeleteExtraCreateParameterLookasideList(
2544 
2547 NTSTATUS
2548 FLTAPI
2549 FltAllocateExtraCreateParameterFromLookasideList(
2557 
2559 NTSTATUS
2560 FLTAPI
2561 FltInsertExtraCreateParameter(
2565 
2567 NTSTATUS
2568 FLTAPI
2569 FltFindExtraCreateParameter(
2575 
2577 NTSTATUS
2578 FLTAPI
2579 FltRemoveExtraCreateParameter(
2585 
2587 VOID
2588 FLTAPI
2589 FltFreeExtraCreateParameterList(
2592 
2594 VOID
2595 FLTAPI
2596 FltFreeExtraCreateParameter(
2599 
2601 NTSTATUS
2602 FLTAPI
2603 FltGetEcpListFromCallbackData(
2607 
2609 NTSTATUS
2610 FLTAPI
2611 FltSetEcpListIntoCallbackData(
2615 
2617 NTSTATUS
2618 FLTAPI
2619 FltGetNextExtraCreateParameter(
2626 
2628 VOID
2629 FLTAPI
2630 FltAcknowledgeEcp(
2633 
2635 BOOLEAN
2636 FLTAPI
2637 FltIsEcpAcknowledged(
2640 
2642 BOOLEAN
2643 FLTAPI
2644 FltIsEcpFromUserMode(
2647 
2649 NTSTATUS
2650 FLTAPI
2651 FltRetrieveIoPriorityInfo(
2656 
2658 NTSTATUS
2659 FLTAPI
2660 FltApplyPriorityInfoThread(
2661  _In_ PIO_PRIORITY_INFO InputPriorityInfo,
2663  _In_ PETHREAD Thread);
2664 
2667 FLTAPI
2668 FltGetIoPriorityHint(
2670 
2673 FLTAPI
2674 FltGetIoPriorityHintFromCallbackData(
2676 
2678 NTSTATUS
2679 FLTAPI
2680 FltSetIoPriorityHintIntoCallbackData(
2683 
2686 FLTAPI
2687 FltGetIoPriorityHintFromFileObject(
2689 
2692 NTSTATUS
2693 FLTAPI
2694 FltSetIoPriorityHintIntoFileObject(
2697 
2700 FLTAPI
2701 FltGetIoPriorityHintFromThread(
2702  _In_ PETHREAD Thread);
2703 
2705 NTSTATUS
2706 FLTAPI
2707 FltSetIoPriorityHintIntoThread(
2710 
2711 #endif /* FLT_MGR_LONGHORN */
2712 
2713 #if FLT_MGR_WIN7
2714 
2717 NTSTATUS
2718 FLTAPI
2719 FltAllocateCallbackDataEx(
2724 
2726 _IRQL_requires_max_(DPC_LEVEL)
2727 PVOID
2728 FLTAPI
2729 FltGetNewSystemBufferAddress(
2731 
2735 FLTAPI
2736 FltCheckOplockEx(
2737  _In_ POPLOCK Oplock,
2739  _In_ ULONG Flags,
2743 
2745 BOOLEAN
2746 FLTAPI
2747 FltCurrentOplock(
2748  _In_ POPLOCK Oplock);
2749 
2751 BOOLEAN
2752 FLTAPI
2753 FltCurrentOplockH(
2754  _In_ POPLOCK Oplock);
2755 
2758 FLTAPI
2759 FltOplockBreakH(
2760  _In_ POPLOCK Oplock,
2762  _In_ ULONG Flags,
2766 
2769 FLTAPI
2770 FltOplockBreakToNone(
2771  _In_ POPLOCK Oplock,
2776 
2779 FLTAPI
2780 FltOplockBreakToNoneEx(
2781  _In_ POPLOCK Oplock,
2783  _In_ ULONG Flags,
2787 
2789 BOOLEAN
2790 FLTAPI
2791 FltOplockIsSharedRequest(
2793 
2797 FLTAPI
2798 FltOplockFsctrlEx(
2799  _In_ POPLOCK Oplock,
2802  _In_ ULONG Flags);
2803 
2804 BOOLEAN
2805 FLTAPI
2807  _In_opt_ PFILE_OBJECT Fo1,
2809 
2812 NTSTATUS
2813 FLTAPI
2814 FltGetRequestorSessionId(
2817 
2819 NTSTATUS
2820 FLTAPI
2821 FltAdjustDeviceStackSizeForIoRedirection(
2822  _In_ PFLT_INSTANCE SourceInstance,
2825 
2827 NTSTATUS
2828 FLTAPI
2829 FltIsIoRedirectionAllowed(
2830  _In_ PFLT_INSTANCE SourceInstance,
2833 
2835 NTSTATUS
2836 FLTAPI
2837 FltIsIoRedirectionAllowedForOperation(
2842 
2843 #endif /* FLT_MGR_WIN7 */
2844 
2845 #endif /* FLT_MGR_BASELINE */
2846 
2847 #ifdef __cplusplus
2848 } /* extern "C" */
2849 #endif
2850 
2851 #endif /* __FLTKERNEL__ */
_Must_inspect_result_ *NumberFiltersReturned PFLT_FILTER * FilterList
Definition: fltkernel.h:1782
ULONG POINTER_ALIGNMENT Spare1
Definition: fltkernel.h:191
UNICODE_STRING Stream
Definition: fltkernel.h:813
#define FLTFL_IO_OPERATION_SYNCHRONOUS_PAGING
Definition: fltkernel.h:760
_Inout_ PLIST_ENTRY _In_ PVOID FsContext
Definition: fltkernel.h:2239
_Must_inspect_result_ *NumberFiltersReturned PFLT_FILTER _In_ ULONG FilterListSize
Definition: fltkernel.h:1782
signed char * PCHAR
Definition: retypes.h:7
ULONG FLT_IO_OPERATION_FLAGS
Definition: fltkernel.h:753
_Must_inspect_result_ _In_ FSRTL_ALLOCATE_ECPLIST_FLAGS _Outptr_ PECP_LIST * EcpList
Definition: fltkernel.h:2511
_Out_opt_ PIO_PRIORITY_INFO OutputPriorityInfo
Definition: fltkernel.h:2662
BOOLEAN POINTER_ALIGNMENT CheckForReadOperation
Definition: fltkernel.h:361
union _FLT_PARAMETERS::@1890 FileSystemControl
ULONG POINTER_ALIGNMENT Length
Definition: fltkernel.h:276
_Must_inspect_result_ _Inout_ PFLT_VOLUME Volume
Definition: fltkernel.h:1162
PFLT_TRANSACTION_NOTIFICATION_CALLBACK TransactionNotificationCallback
Definition: fltkernel.h:743
struct _FLT_PARAMETERS::@1906 PrepareMdlWrite
PVOID SystemBuffer
Definition: fltkernel.h:219
struct _FLT_NAME_CONTROL * PFLT_NAME_CONTROL
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID _Inout_opt_ PULONG _In_opt_ PLARGE_INTEGER Timeout
Definition: fltkernel.h:1903
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FILE_INFORMATION_CLASS _In_ BOOLEAN _In_opt_ PUNICODE_STRING FileName
Definition: fltkernel.h:2347
PDEVICE_OBJECT DeviceObject
Definition: fltkernel.h:200
PFILE_NETWORK_OPEN_INFORMATION NetworkInformation
Definition: fltkernel.h:365
struct _FLT_PARAMETERS::@1898::@1926 QueryInterface
struct _FLT_OPERATION_REGISTRATION FLT_OPERATION_REGISTRATION
ULONG FSRTL_ALLOCATE_ECPLIST_FLAGS
Definition: fsrtltypes.h:141
VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_ACQUIRE)(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _Out_opt_ PKIRQL Irql)
Definition: fltkernel.h:900
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_ PFLT_CALLBACK_DATA _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS _In_opt_ PSECURITY_SUBJECT_CONTEXT SubjectContext
Definition: fltkernel.h:2239
PVOID SecurityBuffer
Definition: fltkernel.h:277
#define _Must_inspect_result_
Definition: no_sal2.h:314
ULONG FLT_INSTANCE_QUERY_TEARDOWN_FLAGS
Definition: fltkernel.h:552
struct _FLT_PARAMETERS::@1898::@1932 QueryDeviceText
struct _FLT_TAG_DATA_BUFFER::@1936::@1940 GenericGUIDReparseBuffer
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ FLT_IO_OPERATION_FLAGS _Out_opt_ PULONG BytesWritten
Definition: fltkernel.h:1293
_ANONYMOUS_UNION union _FLT_CALLBACK_DATA::@1934 DUMMYUNIONNAME
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FS_INFORMATION_CLASS FsInformationClass
Definition: fltkernel.h:1329
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA CallbackData
Definition: fltkernel.h:2082
_In_ IO_PRIORITY_HINT PriorityHint
Definition: fltkernel.h:2682
ULONG POINTER_ALIGNMENT EaIndex
Definition: fltkernel.h:160
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_opt_ PVOID _In_opt_ PFLTOPLOCK_WAIT_COMPLETE_ROUTINE _In_opt_ PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE PrePostCallbackDataRoutine
Definition: fltkernel.h:2091
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG IoControlCode
Definition: fltkernel.h:1383
PUNICODE_STRING FileName
Definition: fltkernel.h:182
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_ ULONG _In_opt_ PULONG _In_ BOOLEAN RestartScan
Definition: fltkernel.h:2298
CONST FLT_OPERATION_REGISTRATION * OperationRegistration
Definition: fltkernel.h:733
UNICODE_STRING Name
Definition: fltkernel.h:658
ULONG POINTER_ALIGNMENT FileIndex
Definition: fltkernel.h:184
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_opt_ PVOID _In_opt_ PFLTOPLOCK_WAIT_COMPLETE_ROUTINE WaitCompletionRoutine
Definition: fltkernel.h:2091
struct _FLT_PARAMETERS::@1890::@1917 Buffered
PFLT_CALLBACK_DATA(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_PEEK_NEXT_IO)(_In_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_opt_ PFLT_CALLBACK_DATA Cbd, _In_opt_ PVOID PeekContext)
Definition: fltkernel.h:894
struct _FLT_PARAMETERS::@1898::@1925 QueryDeviceRelations
_Must_inspect_result_ _Inout_opt_ PUNICODE_STRING _Out_opt_ PULONG BufferSizeNeeded
Definition: fltkernel.h:1117
VOID(FLTAPI * PFLT_GET_OPERATION_STATUS_CALLBACK)(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PFLT_IO_PARAMETER_BLOCK IopbSnapshot, _In_ NTSTATUS OperationStatus, _In_opt_ PVOID RequesterContext)
Definition: fltkernel.h:764
FLT_POSTOP_CALLBACK_STATUS(FLTAPI * PFLT_POST_OPERATION_CALLBACK)(_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_opt_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags)
Definition: fltkernel.h:597
_Must_inspect_result_ _In_opt_ PUNLOCK_ROUTINE UnlockRoutine
Definition: fltkernel.h:2124
_Must_inspect_result_ _Out_writes_to_opt_(VolumeListSize, *NumberVolumesReturned) PFLT_VOLUME *VolumeList
enum _FLT_POSTOP_CALLBACK_STATUS FLT_POSTOP_CALLBACK_STATUS
_FLT_SET_CONTEXT_OPERATION
Definition: fltkernel.h:818
BUS_QUERY_ID_TYPE IdType
Definition: fltkernel.h:334
NTSTATUS NTAPI FltStartFiltering(_In_ PFLT_FILTER Filter)
Definition: Filter.c:377
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG _Out_writes_bytes_to_opt_(OutputBufferLength, *LengthReturned) PVOID OutputBuffer
PFLT_NORMALIZE_NAME_COMPONENT_EX NormalizeNameComponentExCallback
Definition: fltkernel.h:744
ULONG ClusterCount
Definition: fltkernel.h:151
struct _FLT_CONTEXT_REGISTRATION * PFLT_CONTEXT_REGISTRATION
FILE_INFORMATION_CLASS FileInformationClass
Definition: fltkernel.h:183
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA Data
Definition: fltkernel.h:1977
NTSTATUS FLTAPI FltBuildDefaultSecurityDescriptor(_Outptr_ PSECURITY_DESCRIPTOR *SecurityDescriptor, _In_ ACCESS_MASK DesiredAccess)
Definition: Misc.c:27
NTSTATUS FLTAPI FltDecodeParameters(_In_ PFLT_CALLBACK_DATA CallbackData, _Outptr_opt_ PMDL **MdlAddressPointer, _Outptr_opt_result_bytebuffer_(**Length) PVOID **Buffer, _Outptr_opt_ PULONG *Length, _Out_opt_ LOCK_OPERATION *DesiredAccess)
struct _FLT_FILTER * PFLT_FILTER
Definition: fltkernel.h:84
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: wsk.h:182
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_ ULONG _In_opt_ PULONG EaIndex
Definition: fltkernel.h:2298
struct _FLT_PARAMETERS::@1894 SetSecurity
uint16_t * PWSTR
Definition: typedefs.h:54
#define _ANONYMOUS_UNION
Definition: ntbasedef.h:30
PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: fltkernel.h:282
#define FLT_IS_IRP_OPERATION(Data)
Definition: fltkernel.h:430
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1873
ULONG FLT_OPERATION_REGISTRATION_FLAGS
Definition: fltkernel.h:603
_Inout_ PVOID _In_ FSRTL_ECP_LOOKASIDE_FLAGS _In_ SIZE_T Size
Definition: fltkernel.h:2532
_In_ PFLT_INSTANCE _Out_opt_ PBOOLEAN SourceDeviceStackSizeModified
Definition: fltkernel.h:2823
#define _In_reads_(size)
Definition: no_sal2.h:228
struct _FLT_VOLUME * PFLT_VOLUME
Definition: fltkernel.h:85
BOOLEAN FLTAPI FltOplockKeysEqual(_In_opt_ PFILE_OBJECT Fo1, _In_opt_ PFILE_OBJECT Fo2)
enum _FLT_PREOP_CALLBACK_STATUS * PFLT_PREOP_CALLBACK_STATUS
enum _DEVICE_USAGE_NOTIFICATION_TYPE DEVICE_USAGE_NOTIFICATION_TYPE
ULONG FSRTL_ECP_LOOKASIDE_FLAGS
Definition: fsrtltypes.h:143
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
_Must_inspect_result_ NTSTATUS FLTAPI FltCbdqInsertIo(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA Cbd, _In_opt_ PFLT_CALLBACK_DATA_QUEUE_IO_CONTEXT Context, _In_opt_ PVOID InsertContext)
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ PFLT_DEFERRED_IO_WORKITEM_ROUTINE WorkerRoutine
Definition: fltkernel.h:1977
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_opt_ PVOID EaBuffer
Definition: iofuncs.h:835
UNICODE_STRING ParentDir
Definition: fltkernel.h:815
LONG NTSTATUS
Definition: precomp.h:26
USHORT POINTER_ALIGNMENT Reserved
Definition: fltkernel.h:112
VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO)(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA Cbd)
Definition: fltkernel.h:889
struct _FLT_CALLBACK_DATA_QUEUE * PFLT_CALLBACK_DATA_QUEUE
Definition: fltkernel.h:880
PLARGE_INTEGER EndingOffset
Definition: fltkernel.h:351
PVOID InterfaceSpecificData
Definition: fltkernel.h:316
#define _Outptr_
Definition: no_sal2.h:396
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN ReturnSingleEntry
Definition: fltkernel.h:2295
VOID(FLTAPI * PFLTOPLOCK_WAIT_COMPLETE_ROUTINE)(_In_ PFLT_CALLBACK_DATA CallbackData, _In_opt_ PVOID Context)
Definition: fltkernel.h:934
struct _FLT_RELATED_OBJECTS * PFLT_RELATED_OBJECTS
PLARGE_INTEGER Length
Definition: fltkernel.h:267
struct _FLT_PARAMETERS::@1892 LockControl
struct _FLT_PARAMETERS::@1897 SetQuota
_In_ PCUNICODE_STRING _Outptr_ PFLT_VOLUME * RetVolume
Definition: fltkernel.h:1619
USHORT FLT_CONTEXT_TYPE
Definition: fltkernel.h:436
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T _In_ POOL_TYPE _Outptr_result_bytebuffer_(ContextSize) PFLT_CONTEXT *ReturnedContext)
LIST_ENTRY QueueLinks
Definition: fltkernel.h:465
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG _In_ ULONG OutputBufferLength
Definition: fltkernel.h:1374
static OUT PIO_STATUS_BLOCK OUT PVOID FileInformation
Definition: pipe.c:75
_Must_inspect_result_ _In_ ULONG _Out_ PULONG NumberVolumesReturned
Definition: fltkernel.h:1793
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownStartCallback
Definition: fltkernel.h:737
PFLT_INSTANCE_SETUP_CALLBACK InstanceSetupCallback
Definition: fltkernel.h:735
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
Definition: exfuncs.h:1015
ULONG FLT_INSTANCE_TEARDOWN_FLAGS
Definition: fltkernel.h:559
PVOID OutputBuffer
Definition: fltkernel.h:212
VOID(FLTAPI * PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE)(_In_ PFLT_CALLBACK_DATA CallbackData, _In_opt_ PVOID Context)
Definition: fltkernel.h:939
ULONG PageProtection
Definition: fltkernel.h:348
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN WatchTree
Definition: fltkernel.h:2239
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_opt_ PCUNICODE_STRING _Outptr_opt_result_maybenull_ PFLT_INSTANCE * RetInstance
Definition: fltkernel.h:1162
_Outptr_ PFLT_PORT * ClientPort
Definition: fltkernel.h:1892
_Requires_lock_not_held_(Vcb->fcb_lock) _Acquires_shared_lock_(Vcb -> fcb_lock) static __inline void acquire_fcb_lock_shared(device_extension *Vcb)
Definition: btrfs_drv.h:910
PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO RemoveIo
Definition: fltkernel.h:921
ULONG WhichSpace
Definition: fltkernel.h:325
_Must_inspect_result_ _In_ LPCGUID EcpType
Definition: fltkernel.h:2520
NTSTATUS FLTAPI FltEnumerateVolumes(_In_ PFLT_FILTER Filter, _Out_writes_to_opt_(VolumeListSize, *NumberVolumesReturned) PFLT_VOLUME *VolumeList, _In_ ULONG VolumeListSize, _Out_ PULONG NumberVolumesReturned)
Definition: Volume.c:112
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T ContextSize
Definition: fltkernel.h:1444
DWORD LCID
Definition: nls.h:13
PFLT_NORMALIZE_NAME_COMPONENT NormalizeNameComponentCallback
Definition: fltkernel.h:740
_Must_inspect_result_ _Out_ PBOOLEAN IsSnapshotVolume
Definition: fltkernel.h:2416
LARGE_INTEGER AllocationSize
Definition: fltkernel.h:107
BOOLEAN(NTAPI * PFILTER_REPORT_CHANGE)(_In_ PVOID NotifyContext, _In_ PVOID FilterContext)
Definition: fsrtltypes.h:297
UNICODE_STRING FileSystemDriverName
Definition: fltkernel.h:830
struct _FLT_CALLBACK_DATA FLT_CALLBACK_DATA
_Must_inspect_result_ _In_ ULONG Index
Definition: fltkernel.h:1824
LARGE_INTEGER FileOffset
Definition: fltkernel.h:358
DEVICE_TYPE DeviceType
Definition: fltkernel.h:824
struct _FLT_PARAMETERS::@1881 Read
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG ShareAccess
Definition: fltkernel.h:1230
struct _FLT_RELATED_CONTEXTS FLT_RELATED_CONTEXTS
struct _FLT_TAG_DATA_BUFFER * PFLT_TAG_DATA_BUFFER
struct _FLT_PARAMETERS::@1889::@1913 NotifyDirectory
enum _DEVICE_TEXT_TYPE DEVICE_TEXT_TYPE
#define FASTCALL
Definition: nt_native.h:50
_Out_ PKIRQL Irql
Definition: csq.h:179
PVOID WriteBuffer
Definition: fltkernel.h:134
CONST GUID * InterfaceType
Definition: fltkernel.h:312
PFLT_INSTANCE TargetInstance
Definition: fltkernel.h:410
PVOID VolumeBuffer
Definition: fltkernel.h:172
VOID(FLTAPI * PFLT_GENERIC_WORKITEM_ROUTINE)(_In_ PFLT_GENERIC_WORKITEM FltWorkItem, _In_ PVOID FltObject, _In_opt_ PVOID Context)
Definition: fltkernel.h:873
FLT_PARAMETERS Parameters
Definition: fltkernel.h:411
_In_ PFLT_INSTANCE _Out_ PBOOLEAN _Out_opt_ PBOOLEAN RedirectionAllowedAllIo
Definition: fltkernel.h:2839
_Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING FinalComponent
Definition: fltkernel.h:1092
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE RootDirectory
Definition: fltkernel.h:1126
FLT_OPERATION_REGISTRATION_FLAGS Flags
Definition: fltkernel.h:611
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_ PFLT_CALLBACK_DATA _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS _In_opt_ PSECURITY_SUBJECT_CONTEXT _In_opt_ PFILTER_REPORT_CHANGE FilterCallback
Definition: fltkernel.h:2239
enum _FLT_SET_CONTEXT_OPERATION * PFLT_SET_CONTEXT_OPERATION
CHAR InputBuffer[80]
Definition: conmgr.c:33
#define _In_opt_
Definition: no_sal2.h:213
struct _FLT_PARAMETERS::@1887 QueryVolumeInformation
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_ ULONG _In_ FLT_FILE_NAME_OPTIONS _Outptr_ PFLT_FILE_NAME_INFORMATION * RetFileNameInformation
Definition: fltkernel.h:1129
_Must_inspect_result_ _In_ CONST FLT_REGISTRATION _Outptr_ PFLT_FILTER * RetFilter
Definition: fltkernel.h:991
VOID FLTAPI FltCbdqEnable(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq)
_In_ FLT_CONTEXT_TYPE DesiredContexts
Definition: fltkernel.h:1454
NTSTATUS FLTAPI FltCbdqInitialize(_In_ PFLT_INSTANCE Instance, _Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA_QUEUE_INSERT_IO CbdqInsertIo, _In_ PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO CbdqRemoveIo, _In_ PFLT_CALLBACK_DATA_QUEUE_PEEK_NEXT_IO CbdqPeekNextIo, _In_ PFLT_CALLBACK_DATA_QUEUE_ACQUIRE CbdqAcquire, _In_ PFLT_CALLBACK_DATA_QUEUE_RELEASE CbdqRelease, _In_ PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO CbdqCompleteCanceledIo)
ULONG DeviceType
Definition: fltkernel.h:387
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG CreateDisposition
Definition: fltkernel.h:1230
struct _FLT_PORT * PFLT_PORT
Definition: fltkernel.h:87
_ANONYMOUS_STRUCT struct _FLT_CALLBACK_DATA::@1934::@1935 DUMMYSTRUCTNAME
struct _FLT_NAME_CONTROL FLT_NAME_CONTROL
uint32_t ULONG_PTR
Definition: typedefs.h:63
ULONG FLT_FILE_NAME_OPTIONS
Definition: fltkernel.h:661
ULONG BufferSize
Definition: fltkernel.h:287
VOID(FLTAPI * PFLT_COMPLETED_ASYNC_IO_CALLBACK)(_In_ PFLT_CALLBACK_DATA CallbackData, _In_ PFLT_CONTEXT Context)
Definition: fltkernel.h:749
FS_FILTER_SECTION_SYNC_TYPE SyncType
Definition: fltkernel.h:347
UNICODE_STRING Volume
Definition: fltkernel.h:810
PIO_SECURITY_CONTEXT SecurityContext
Definition: fltkernel.h:101
PVOID InputBuffer
Definition: fltkernel.h:211
_Must_inspect_result_ _Out_ PIO_STATUS_BLOCK Iosb
Definition: fltkernel.h:1761
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID _Inout_opt_ PULONG ReplyLength
Definition: fltkernel.h:1903
_In_ ULONG VolumePropertiesLength
Definition: fltkernel.h:1735
PFLT_CALLBACK_DATA_QUEUE_RELEASE Release
Definition: fltkernel.h:924
UCHAR KIRQL
Definition: env_spec_w32.h:591
_Must_inspect_result_ _In_ PFLT_GET_OPERATION_STATUS_CALLBACK CallbackRoutine
Definition: fltkernel.h:1035
struct _FLT_PARAMETERS::@1907 MdlWriteComplete
_Must_inspect_result_ _Out_ PHANDLE _Outptr_opt_ PFILE_OBJECT * VolumeFileObject
Definition: fltkernel.h:2284
_Outptr_ PFLT_INSTANCE * UpperInstance
Definition: fltkernel.h:1687
const struct _FLT_CONTEXT_REGISTRATION * PCFLT_CONTEXT_REGISTRATION
Definition: fltkernel.h:525
struct _FLT_PARAMETERS::@1878 Create
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
enum _FLT_PREOP_CALLBACK_STATUS FLT_PREOP_CALLBACK_STATUS
ULONG FLT_POST_OPERATION_FLAGS
Definition: fltkernel.h:592
LONG FLTAPI FltCompareInstanceAltitudes(_In_ PFLT_INSTANCE Instance1, _In_ PFLT_INSTANCE Instance2)
struct _FLT_FILE_NAME_INFORMATION * PFLT_FILE_NAME_INFORMATION
struct _FLT_PARAMETERS::@1895 WMI
ERESOURCE * PERESOURCE
Definition: env_spec_w32.h:595
PFLT_NORMALIZE_CONTEXT_CLEANUP NormalizeContextCleanupCallback
Definition: fltkernel.h:741
PDEVICE_CAPABILITIES Capabilities
Definition: fltkernel.h:319
FLT_CONTEXT_REGISTRATION_FLAGS Flags
Definition: fltkernel.h:517
_Acquires_exclusive_lock_ Resource _Acquires_shared_lock_ Resource _Inout_ PERESOURCE Resource
Definition: cdprocs.h:848
PFLT_POST_OPERATION_CALLBACK PostOperation
Definition: fltkernel.h:613
BOOLEAN(NTAPI * PCHECK_FOR_TRAVERSE_ACCESS)(_In_ PVOID NotifyContext, _In_opt_ PVOID TargetContext, _In_ PSECURITY_SUBJECT_CONTEXT SubjectContext)
Definition: fsrtltypes.h:291
VOID FASTCALL FltRetainSwappedBufferMdlAddress(_In_ PFLT_CALLBACK_DATA CallbackData)
_Must_inspect_result_ _Out_ PULONG SessionId
Definition: fltkernel.h:2816
struct _FLT_PARAMETERS::@1888 SetVolumeInformation
long LONG
Definition: pedump.c:60
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
_In_ PDEVICE_OBJECT DeviceObject
Definition: fltkernel.h:1658
VOID FLTAPI FltClearCallbackDataDirty(_Inout_ PFLT_CALLBACK_DATA Data)
struct _FLT_VOLUME_PROPERTIES * PFLT_VOLUME_PROPERTIES
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1802
_Must_inspect_result_ _In_ LPCGUID ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _In_ ULONG _Outptr_ PVOID * EcpContext
Definition: fltkernel.h:2520
_ANONYMOUS_UNION union _FLT_TAG_DATA_BUFFER::@1936 DUMMYUNIONNAME
struct _FLT_PARAMETERS::@1880 CreateMailslot
_ANONYMOUS_UNION union _FLT_PARAMETERS::@1884::@1910 DUMMYUNIONNAME
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK InstanceQueryTeardownCallback
Definition: fltkernel.h:736
USHORT SubstituteNameOffset
Definition: fltkernel.h:623
LCID POINTER_ALIGNMENT LocaleId
Definition: fltkernel.h:338
_In_ PFLT_INSTANCE TargetInstance
Definition: fltkernel.h:2823
PFLT_INSTANCE Instance
Definition: fltkernel.h:919
_Unreferenced_parameter_ PVOID * CompletionContext
Definition: cdprocs.h:1130
union _FLT_PARAMETERS::@1891 DeviceIoControl
struct _FLT_PARAMETERS::@1893 QuerySecurity
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN IgnoreBuffer
Definition: fltkernel.h:2239
BOOLEAN AdvanceOnly
Definition: fltkernel.h:149
_In_ PECP_LIST _In_ LPCGUID _Outptr_opt_ PVOID _Out_opt_ ULONG * EcpContextSize
Definition: fltkernel.h:2571
_Must_inspect_result_ _In_ LPCGUID ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _In_ ULONG PoolTag
Definition: fltkernel.h:2520
BOOLEAN InPath
Definition: fltkernel.h:341
unsigned char BOOLEAN
NTSTATUS FLTAPI FltDetachVolume(_Inout_ PFLT_FILTER Filter, _Inout_ PFLT_VOLUME Volume, _In_opt_ PCUNICODE_STRING InstanceName)
Definition: Volume.c:184
#define _Out_writes_bytes_opt_(a)
Definition: btrfs_drv.h:171
VOID FLTAPI FltUninitializeFileLock(_In_ PFILE_LOCK FileLock)
PVOID PFLT_CONTEXT
Definition: fltkernel.h:89
ULONG POINTER_ALIGNMENT LockKey
Definition: fltkernel.h:360
smooth NULL
Definition: ftsmooth.c:416
_Must_inspect_result_ _In_opt_ PFLT_FILTER _In_ ULONG _Out_ PULONG NumberInstancesReturned
Definition: fltkernel.h:1804
struct _FLT_TAG_DATA_BUFFER * TagData
Definition: fltkernel.h:462
_IRQL_requires_same_ _In_ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT _Inout_ PNTSTATUS OperationStatus
Definition: ketypes.h:360
_Must_inspect_result_ _In_ PKTRANSACTION _In_ PFLT_CONTEXT _In_ NOTIFICATION_MASK NotificationMask
Definition: fltkernel.h:2453
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FILE_INFORMATION_CLASS _Out_opt_ PULONG LengthReturned
Definition: fltkernel.h:1306
VOID FLTAPI FltCbdqDisable(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq)
USHORT POINTER_ALIGNMENT FileAttributes
Definition: fltkernel.h:103
NTSTATUS(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_INSERT_IO)(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA Cbd, _In_opt_ PVOID InsertContext)
Definition: fltkernel.h:883
#define _Out_
Definition: no_sal2.h:323
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG FileTag
Definition: fltkernel.h:1266
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_ PFLT_CALLBACK_DATA NotifyCallbackData
Definition: fltkernel.h:2239
FLT_CONTEXT_TYPE ContextType
Definition: fltkernel.h:516
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
Definition: fltkernel.h:1339
VOID(FLTAPI * PFLT_CONTEXT_CLEANUP_CALLBACK)(_In_ PFLT_CONTEXT Context, _In_ FLT_CONTEXT_TYPE ContextType)
Definition: fltkernel.h:494
#define FLTFL_IO_OPERATION_PAGING
Definition: fltkernel.h:756
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
Definition: bufpool.h:45
PFLT_CALLBACK_DATA_QUEUE_ACQUIRE Acquire
Definition: fltkernel.h:923
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ ULONG OpenCount
Definition: fltkernel.h:2082
UNICODE_STRING Share
Definition: fltkernel.h:811
_Must_inspect_result_ __drv_aliasesMem _In_ PDEVICE_OBJECT _In_opt_ PVOID _In_ ULONG _Out_opt_ PVOID OutputBuffer
Definition: iofuncs.h:713
VOID FLTAPI FltUnregisterFilter(_In_ PFLT_FILTER Filter)
Definition: Filter.c:319
void * PVOID
Definition: retypes.h:9
struct _FLT_PARAMETERS::@1898::@1933 UsageNotification
VOID(FLTAPI * PFLT_COMPLETE_CANCELED_CALLBACK)(_In_ PFLT_CALLBACK_DATA CallbackData)
Definition: fltkernel.h:860
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
Definition: fltkernel.h:1230
WaitType
Definition: shlextdbg.cpp:19
struct _FLT_PARAMETERS::@1902 FastIoCheckIfPossible
_In_ PCUNICODE_STRING _In_ PVOID Driver
Definition: cmfuncs.h:32
struct _FLT_TAG_DATA_BUFFER::@1936::@1938 MountPointReparseBuffer
PMDL OutputMdlAddress
Definition: fltkernel.h:213
struct _FLT_PARAMETERS::@1890::@1914 VerifyVolume
enum _FSINFOCLASS FS_INFORMATION_CLASS
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
#define POINTER_ALIGNMENT
PVOID ReadBuffer
Definition: fltkernel.h:127
ULONG FLT_CALLBACK_DATA_QUEUE_FLAGS
Definition: fltkernel.h:914
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_ PCUNICODE_STRING Altitude
Definition: fltkernel.h:1172
USHORT FLT_CONTEXT_REGISTRATION_FLAGS
Definition: fltkernel.h:509
BOOLEAN FLTAPI FltIsOperationSynchronous(_In_ PFLT_CALLBACK_DATA CallbackData)
NTSTATUS(FLTAPI * PFLT_TRANSACTION_NOTIFICATION_CALLBACK)(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PFLT_CONTEXT TransactionContext, _In_ ULONG NotificationMask)
Definition: fltkernel.h:706
VOID(NTAPI * PUNLOCK_ROUTINE)(_In_ PVOID Context, _In_ PFILE_LOCK_INFO FileLockInfo)
Definition: fsrtltypes.h:198
_In_ PIRP _In_ PVOID InsertContext
Definition: csq.h:257
PFLT_CONTEXT_ALLOCATE_CALLBACK ContextAllocateCallback
Definition: fltkernel.h:521
PMDL FASTCALL FltGetSwappedBufferMdlAddress(_In_ PFLT_CALLBACK_DATA CallbackData)
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
Definition: directory.c:44
#define _Out_opt_
Definition: no_sal2.h:339
PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList
Definition: fltkernel.h:322
PFLT_GENERATE_FILE_NAME GenerateFileNameCallback
Definition: fltkernel.h:739
_Must_inspect_result_ *NumberFiltersReturned PFLT_FILTER _In_ ULONG _Out_ PULONG NumberFiltersReturned
Definition: fltkernel.h:1782
BOOLEAN ReplaceIfExists
Definition: fltkernel.h:148
HANDLE DeleteHandle
Definition: fltkernel.h:152
PCHAR FLTAPI FltGetIrpName(_In_ UCHAR IrpMajorCode)
union _FLT_PARAMETERS * PFLT_PARAMETERS
PFLT_CALLBACK_DATA_QUEUE_PEEK_NEXT_IO PeekNextIo
Definition: fltkernel.h:922
DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type
Definition: fltkernel.h:343
_In_ PFLT_COMPLETE_CANCELED_CALLBACK CanceledCallback
Definition: fltkernel.h:1933
struct _FLT_PARAMETERS::@1908 MountVolume
IO_STATUS_BLOCK IoStatus
Definition: fltkernel.h:461
_Inout_ PVOID Lookaside
Definition: fltkernel.h:2532
struct _FLT_PARAMETERS::@1903 NetworkQueryOpen
_Outptr_ PDEVICE_OBJECT * DiskDeviceObject
Definition: fltkernel.h:1673
struct _FLT_TAG_DATA_BUFFER FLT_TAG_DATA_BUFFER
__wchar_t WCHAR
Definition: xmlstorage.h:180
PFILE_OBJECT TargetFileObject
Definition: fltkernel.h:409
struct _FLT_PARAMETERS::@1900 AcquireForModifiedPageWriter
NTSTATUS(FLTAPI * PFLT_INSTANCE_SETUP_CALLBACK)(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_SETUP_FLAGS Flags, _In_ DEVICE_TYPE VolumeDeviceType, _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType)
Definition: fltkernel.h:546
USHORT SubstituteNameLength
Definition: fltkernel.h:624
NTSTATUS(FLTAPI * PFLT_NORMALIZE_NAME_COMPONENT)(_In_ PFLT_INSTANCE Instance, _In_ PCUNICODE_STRING ParentDirectory, _In_ USHORT VolumeNameLength, _In_ PCUNICODE_STRING Component, _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName, _In_ ULONG ExpandComponentNameLength, _In_ FLT_NORMALIZE_NAME_FLAGS Flags, _Inout_ PVOID *NormalizationContext)
Definition: fltkernel.h:678
NTSTATUS(FLTAPI * PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK)(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags)
Definition: fltkernel.h:555
_In_ FLT_SET_CONTEXT_OPERATION _In_ PFLT_CONTEXT _Outptr_opt_result_maybenull_ PFLT_CONTEXT * OldContext
Definition: fltkernel.h:1468
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG EaLength
Definition: fltkernel.h:1241
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1873
enum _FLT_SET_CONTEXT_OPERATION FLT_SET_CONTEXT_OPERATION
INT POOL_TYPE
Definition: typedefs.h:76
_Must_inspect_result_ _In_ CONST FLT_REGISTRATION * Registration
Definition: fltkernel.h:991
BOOLEAN FailImmediately
Definition: fltkernel.h:271
PERESOURCE ResourceToRelease
Definition: fltkernel.h:355
struct _FLT_OPERATION_REGISTRATION * PFLT_OPERATION_REGISTRATION
PERESOURCE * ResourceToRelease
Definition: fltkernel.h:352
_ANONYMOUS_STRUCT struct _FLT_PARAMETERS::@1884::@1910::@1911 DUMMYSTRUCTNAME
_Must_inspect_result_ _Out_ PIO_STATUS_BLOCK _Out_writes_bytes_(Length) PVOID FsInformation
PFLT_FILTER_UNLOAD_CALLBACK FilterUnloadCallback
Definition: fltkernel.h:734
IO_CSQ_IRP_CONTEXT FLT_CALLBACK_DATA_QUEUE_IO_CONTEXT
Definition: fltkernel.h:878
union _FLT_PARAMETERS FLT_PARAMETERS
Definition: bufpool.h:50
#define _Outptr_result_maybenull_
Definition: no_sal2.h:426
union _FLT_PARAMETERS::@1898 Pnp
PETHREAD CONST Thread
Definition: fltkernel.h:459
NTSTATUS(FLTAPI * PFLT_MESSAGE_NOTIFY)(_In_opt_ PVOID PortCookie, _In_reads_bytes_opt_(InputBufferLength) PVOID InputBuffer, _In_ ULONG InputBufferLength, _Out_writes_bytes_to_opt_(OutputBufferLength, *ReturnOutputBufferLength) PVOID OutputBuffer, _In_ ULONG OutputBufferLength, _Out_ PULONG ReturnOutputBufferLength)
Definition: fltkernel.h:839
VOID(FLTAPI * PFLT_INSTANCE_TEARDOWN_CALLBACK)(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Reason)
Definition: fltkernel.h:568
_Must_inspect_result_ _In_opt_ PFILE_OBJECT FileObject
Definition: fltkernel.h:983
enum _WAIT_TYPE WAIT_TYPE
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2653
_Must_inspect_result_ _Out_ PHANDLE VolumeHandle
Definition: fltkernel.h:2284
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE Instance
Definition: fltkernel.h:1071
struct _FLT_PARAMETERS::@1882 Write
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG CreateOptions
Definition: fltkernel.h:1230
VOID FLTAPI FltSetCallbackDataDirty(_Inout_ PFLT_CALLBACK_DATA Data)
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_opt_ GUID _In_ USHORT DataBufferLength
Definition: fltkernel.h:1270
#define _Inout_
Definition: no_sal2.h:244
PFLT_CALLBACK_DATA_QUEUE_INSERT_IO InsertIo
Definition: fltkernel.h:920
NTSTATUS FLTAPI FltGetVolumeProperties(_In_ PFLT_VOLUME Volume, _Out_writes_bytes_to_opt_(VolumePropertiesLength, *LengthReturned) PFLT_VOLUME_PROPERTIES VolumeProperties, _In_ ULONG VolumePropertiesLength, _Out_ PULONG LengthReturned)
Definition: Volume.c:26
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
BOOLEAN ExclusiveLock
Definition: fltkernel.h:272
DEVICE_TEXT_TYPE DeviceTextType
Definition: fltkernel.h:337
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
_Acquires_lock_(_Global_critical_region_) _IRQL_requires_max_(APC_LEVEL) VOID FLTAPI FltAcquireResourceExclusive(_Inout_ _Requires_lock_not_held_(*_Curr_) _Acquires_lock_(*_Curr_) PERESOURCE Resource)
Definition: Object.c:59
* PFILE_OBJECT
Definition: iotypes.h:1954
struct _FLT_PARAMETERS::@1886 SetEa
FLT_CALLBACK_DATA_QUEUE_FLAGS Flags
Definition: fltkernel.h:918
LARGE_INTEGER ByteOffset
Definition: fltkernel.h:126
PVOID FilterContext[4]
Definition: fltkernel.h:468
static IUnknown Object
Definition: main.c:512
_Must_inspect_result_ PFLT_CALLBACK_DATA FLTAPI FltCbdqRemoveIo(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA_QUEUE_IO_CONTEXT Context)
_In_ PFLT_INSTANCE _Out_ PBOOLEAN RedirectionAllowed
Definition: fltkernel.h:2831
_In_ FILTER_INFORMATION_CLASS _In_ ULONG BufferSize
Definition: fltkernel.h:1716
_Must_inspect_result_ _In_ LPCGUID ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback
Definition: fltkernel.h:2520
struct _FLT_PARAMETERS::@1890::@1918 Direct
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG Flags
Definition: fltkernel.h:1241
enum _WORK_QUEUE_TYPE WORK_QUEUE_TYPE
union _FLT_PARAMETERS::@1889 DirectoryControl
UNICODE_STRING RealDeviceName
Definition: fltkernel.h:832
unsigned char UCHAR
Definition: xmlstorage.h:181
_In_ FLT_PREOP_CALLBACK_STATUS CallbackStatus
Definition: fltkernel.h:1020
PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO CompleteCanceledIo
Definition: fltkernel.h:925
char * PBOOLEAN
Definition: retypes.h:11
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID ReplyBuffer
Definition: fltkernel.h:1903
NTSTATUS FLTAPI FltAttachVolume(_Inout_ PFLT_FILTER Filter, _Inout_ PFLT_VOLUME Volume, _In_opt_ PCUNICODE_STRING InstanceName, _Outptr_opt_result_maybenull_ PFLT_INSTANCE *RetInstance)
Definition: Volume.c:195
_In_ PECP_LIST _In_opt_ PVOID CurrentEcpContext
Definition: fltkernel.h:2621
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_ ULONG EaListLength
Definition: fltkernel.h:2298
ULONG POINTER_ALIGNMENT EaLength
Definition: fltkernel.h:105
USHORT Version
Definition: fltkernel.h:314
struct _FLT_PARAMETERS::@1898::@1928 FilterResourceRequirements
_Must_inspect_result_ _In_ PFLT_INSTANCE _Out_ PBOOLEAN IsDirectory
Definition: fltkernel.h:1139
PFLT_CONTEXT_CLEANUP_CALLBACK ContextCleanupCallback
Definition: fltkernel.h:518
struct _FLT_PARAMETERS::@1898::@1929 ReadWriteConfig
_Releases_lock_(_Global_critical_region_) _IRQL_requires_max_(DISPATCH_LEVEL) VOID FLTAPI FltReleaseResource(_Inout_ _Requires_lock_held_(*_Curr_) _Releases_lock_(*_Curr_) PERESOURCE Resource)
Definition: Object.c:101
#define NTSTATUS
Definition: precomp.h:20
_In_ FLT_PREOP_CALLBACK_STATUS _In_opt_ PVOID Context
Definition: fltkernel.h:1020
_In_opt_ PFILE_OBJECT Fo2
Definition: fsrtlfuncs.h:1477
BOOLEAN FLTAPI FltIsCallbackDataDirty(_In_ PFLT_CALLBACK_DATA Data)
VOID FLTAPI FltReleaseFileNameInformation(_In_ PFLT_FILE_NAME_INFORMATION FileNameInformation)
Definition: Misc.c:109
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
_Must_inspect_result_ _In_ PFLT_FILE_NAME_INFORMATION _Outptr_result_maybenull_ PFLT_FILE_NAME_INFORMATION * RetTunneledFileNameInformation
Definition: fltkernel.h:1108
#define VOID
Definition: acefi.h:82
PFLT_CONTEXT_FREE_CALLBACK ContextFreeCallback
Definition: fltkernel.h:522
_FLT_PREOP_CALLBACK_STATUS
Definition: fltkernel.h:572
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_reads_bytes_opt_(EaLength) PVOID EaBuffer
struct _FLT_CALLBACK_DATA * PFLT_CALLBACK_DATA
FLT_CALLBACK_DATA_FLAGS Flags
Definition: fltkernel.h:458
KIRQL * PKIRQL
Definition: env_spec_w32.h:592
enum _FLT_POSTOP_CALLBACK_STATUS * PFLT_POSTOP_CALLBACK_STATUS
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER ByteOffset
Definition: fltkernel.h:1251
struct _FLT_INSTANCE * PFLT_INSTANCE
Definition: fltkernel.h:86
PVOID QuotaBuffer
Definition: fltkernel.h:295
ULONG POINTER_ALIGNMENT Spare2
Definition: fltkernel.h:192
FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass
Definition: fltkernel.h:171
_Must_inspect_result_ _In_ USHORT NewSize
Definition: fltkernel.h:975
#define _Outptr_opt_
Definition: no_sal2.h:397
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOID _Out_opt_ ULONG * NextEcpContextSize
Definition: fltkernel.h:2621
Definition: typedefs.h:117
#define FlagOn(_F, _SF)
Definition: ext2fs.h:179
struct _FLT_IO_PARAMETER_BLOCK * PFLT_IO_PARAMETER_BLOCK
_Must_inspect_result_ _In_opt_ PFILE_OBJECT _Outptr_ PFLT_CALLBACK_DATA * RetNewCallbackData
Definition: fltkernel.h:1192
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownCompleteCallback
Definition: fltkernel.h:738
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
Definition: fltkernel.h:1230
NTSTATUS(FLTAPI * PFLT_FILTER_UNLOAD_CALLBACK)(FLT_FILTER_UNLOAD_FLAGS Flags)
Definition: fltkernel.h:654
struct _FLT_PARAMETERS::@1885 QueryEa
PVOID Parameters
Definition: fltkernel.h:114
UNICODE_STRING FinalComponent
Definition: fltkernel.h:814
ULONG FLT_NORMALIZE_NAME_FLAGS
Definition: fltkernel.h:672
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1873
PCM_RESOURCE_LIST AllocatedResourcesTranslated
Definition: fltkernel.h:306
SECURITY_INFORMATION SecurityInformation
Definition: fltkernel.h:275
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG InputBufferLength
Definition: fltkernel.h:1372
VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO)(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _Inout_ PFLT_CALLBACK_DATA Cbd)
Definition: fltkernel.h:910
enum _IO_PRIORITY_HINT IO_PRIORITY_HINT
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_ ULONG FileNameLength
Definition: fltkernel.h:1129
ULONG FLT_REGISTRATION_FLAGS
Definition: fltkernel.h:723
ULONG_PTR ProviderId
Definition: fltkernel.h:285
struct _FLT_PARAMETERS::@1899 AcquireForSectionSynchronization
#define _ANONYMOUS_STRUCT
Definition: ntbasedef.h:56
* PDEVICE_CAPABILITIES
Definition: iotypes.h:927
struct _FLT_PARAMETERS::@1890::@1915 Common
struct _FLT_PARAMETERS::@1879 CreatePipe
ULONG FLT_ALLOCATE_CALLBACK_DATA_FLAGS
Definition: fltkernel.h:453
PFILE_OBJECT ParentOfTarget
Definition: fltkernel.h:145
struct _FLT_PARAMETERS::@1890::@1916 Neither
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ FLT_IO_OPERATION_FLAGS _Out_opt_ PULONG _In_opt_ PFLT_COMPLETED_ASYNC_IO_CALLBACK _In_opt_ PVOID CallbackContext
Definition: fltkernel.h:1255
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
NTSTATUS(FLTAPI * PFLT_CONNECT_NOTIFY)(_In_ PFLT_PORT ClientPort, _In_opt_ PVOID ServerPortCookie, _In_reads_bytes_opt_(SizeOfContext) PVOID ConnectionContext, _In_ ULONG SizeOfContext, _Outptr_result_maybenull_ PVOID *ConnectionPortCookie)
Definition: fltkernel.h:848
#define _In_
Definition: no_sal2.h:204
#define _Outptr_opt_result_bytebuffer_(size)
Definition: no_sal2.h:404
Definition: csq.h:222
const struct _FLT_RELATED_OBJECTS * PCFLT_RELATED_OBJECTS
Definition: fltkernel.h:482
_Must_inspect_result_ _In_ PFLT_GET_OPERATION_STATUS_CALLBACK _In_opt_ PVOID RequesterContext
Definition: fltkernel.h:1035
struct _FLT_CALLBACK_DATA_QUEUE FLT_CALLBACK_DATA_QUEUE
Definition: fltkernel.h:880
ULONG_PTR SIZE_T
Definition: typedefs.h:78
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK DesiredAccess
Definition: fltkernel.h:1230
BOOLEAN Lock
Definition: fltkernel.h:331
NTSTATUS FLTAPI FltGetDestinationFileNameInformation(_In_ PFLT_INSTANCE Instance, _In_ PFILE_OBJECT FileObject, _In_opt_ HANDLE RootDirectory, _In_reads_bytes_(FileNameLength) PWSTR FileName, _In_ ULONG FileNameLength, _In_ FLT_FILE_NAME_OPTIONS NameOptions, _Outptr_ PFLT_FILE_NAME_INFORMATION *RetFileNameInformation)
Definition: Misc.c:88
FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass
Definition: fltkernel.h:139
NTSTATUS FLTAPI FltGetFileNameInformation(_In_ PFLT_CALLBACK_DATA CallbackData, _In_ FLT_FILE_NAME_OPTIONS NameOptions, _Outptr_ PFLT_FILE_NAME_INFORMATION *FileNameInformation)
Definition: Misc.c:75
PVOID InfoBuffer
Definition: fltkernel.h:140
PINTERFACE Interface
Definition: fltkernel.h:315
_Must_inspect_result_ _In_ FLT_FILE_NAME_OPTIONS NameOptions
Definition: fltkernel.h:1062
NTSTATUS NTAPI FltGetFilterFromName(_In_ PCUNICODE_STRING FilterName, _Out_ PFLT_FILTER *RetFilter)
Definition: Filter.c:403
LARGE_INTEGER Argument6
Definition: fltkernel.h:395
_Outptr_ PFLT_INSTANCE * LowerInstance
Definition: fltkernel.h:1680
ULONG FLT_INSTANCE_SETUP_FLAGS
Definition: fltkernel.h:527
enum _LOCK_OPERATION LOCK_OPERATION
FLT_FILE_NAME_PARSED_FLAGS NamesParsed
Definition: fltkernel.h:807
ULONG POINTER_ALIGNMENT InputBufferLength
Definition: fltkernel.h:204
_In_ PFLT_INSTANCE _Out_ PBOOLEAN RedirectionAllowedThisIo
Definition: fltkernel.h:2839
struct _FLT_PARAMETERS::@1898::@1930 SetLock
unsigned short USHORT
Definition: pedump.c:61
USHORT UnparsedNameLength
Definition: fltkernel.h:620
struct _FLT_PARAMETERS::@1905 MdlReadComplete
PFILE_GET_QUOTA_INFORMATION SidList
Definition: fltkernel.h:293
IO_CSQ_IRP_CONTEXT * PFLT_CALLBACK_DATA_QUEUE_IO_CONTEXT
Definition: fltkernel.h:878
NTSTATUS(FLTAPI * PFLT_GENERATE_FILE_NAME)(_In_ PFLT_INSTANCE Instance, _In_ PFILE_OBJECT FileObject, _In_opt_ PFLT_CALLBACK_DATA CallbackData, _In_ FLT_FILE_NAME_OPTIONS NameOptions, _Out_ PBOOLEAN CacheFileNameInformation, _Out_ PFLT_NAME_CONTROL FileName)
Definition: fltkernel.h:664
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER AllocationSize
Definition: fltkernel.h:1230
struct _FLT_PARAMETERS::@1898::@1927 DeviceCapabilities
USHORT FLT_FILE_NAME_PARSED_FLAGS
Definition: fltkernel.h:798
_Must_inspect_result_ _In_ PKTRANSACTION _In_ PFLT_CONTEXT TransactionContext
Definition: fltkernel.h:2453
NTSTATUS FLTAPI FltGetFileNameInformationUnsafe(_In_ PFILE_OBJECT FileObject, _In_opt_ PFLT_INSTANCE Instance, _In_ FLT_FILE_NAME_OPTIONS NameOptions, _Outptr_ PFLT_FILE_NAME_INFORMATION *FileNameInformation)
Definition: Misc.c:60
ULONG POINTER_ALIGNMENT Key
Definition: fltkernel.h:125
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG SenderBufferLength
Definition: fltkernel.h:1902
_Inout_ PLIST_ENTRY NotifyList
Definition: fltkernel.h:2239
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1873
#define DEVICE_TYPE
Definition: guid.c:10
_In_ FILTER_INFORMATION_CLASS _In_ ULONG _Out_ PULONG BytesReturned
Definition: fltkernel.h:1716
_Must_inspect_result_ _In_ ULONG VolumeListSize
Definition: fltkernel.h:1793
PVOID(FLTAPI * PFLT_CONTEXT_ALLOCATE_CALLBACK)(_In_ POOL_TYPE PoolType, _In_ SIZE_T Size, _In_ FLT_CONTEXT_TYPE ContextType)
Definition: fltkernel.h:499
#define _Outptr_opt_result_maybenull_
Definition: no_sal2.h:410
struct _FLT_GENERIC_WORKITEM * PFLT_GENERIC_WORKITEM
Definition: fltkernel.h:864
ULONG FLT_CALLBACK_DATA_FLAGS
Definition: fltkernel.h:450
_In_ FLT_CONTEXT_TYPE _Out_ PFLT_RELATED_CONTEXTS Contexts
Definition: fltkernel.h:1454
unsigned int * PULONG
Definition: retypes.h:1
struct _FLT_REGISTRATION * PFLT_REGISTRATION
FLT_REGISTRATION_FLAGS Flags
Definition: fltkernel.h:731
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES ObjectAttributes
Definition: fltkernel.h:1230
struct _FLT_REGISTRATION FLT_REGISTRATION
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG CompletionFilter
Definition: fltkernel.h:2239
struct _FLT_TAG_DATA_BUFFER::@1936::@1939 GenericReparseBuffer
NTSTATUS(FLTAPI * PFLT_NORMALIZE_NAME_COMPONENT_EX)(_In_ PFLT_INSTANCE Instance, _In_ PFILE_OBJECT FileObject, _In_ PCUNICODE_STRING ParentDirectory, _In_ USHORT VolumeNameLength, _In_ PCUNICODE_STRING Component, _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName, _In_ ULONG ExpandComponentNameLength, _In_ FLT_NORMALIZE_NAME_FLAGS Flags, _Inout_ PVOID *NormalizationContext)
Definition: fltkernel.h:689
struct _FLT_FILE_NAME_INFORMATION FLT_FILE_NAME_INFORMATION
_Must_inspect_result_ _Out_ PBOOLEAN IsWritable
Definition: fltkernel.h:1744
PEPROCESS ProcessId
Definition: fltkernel.h:270
struct _FLT_RELATED_OBJECTS FLT_RELATED_OBJECTS
VOID(FLTAPI * PFLT_DISCONNECT_NOTIFY)(_In_opt_ PVOID ConnectionCookie)
Definition: fltkernel.h:856
IN PVOID Instance
Definition: pci.h:359
IN PDCB ParentDirectory
Definition: fatprocs.h:689
struct _FLT_PARAMETERS::@1889::@1912 QueryDirectory
#define IRP_PAGING_IO
ULONG SidListLength
Definition: fltkernel.h:294
struct _FLT_IO_PARAMETER_BLOCK FLT_IO_PARAMETER_BLOCK
_In_opt_ PIRP _In_opt_ PVOID PeekContext
Definition: csq.h:159
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG FsControlCode
Definition: fltkernel.h:1369
USHORT ShareAccess
Definition: fltkernel.h:104
VOID FLTAPI FltFreeSecurityDescriptor(_In_ PSECURITY_DESCRIPTOR SecurityDescriptor)
Definition: Misc.c:39
VOID(FLTAPI * PFLT_DEFERRED_IO_WORKITEM_ROUTINE)(_In_ PFLT_DEFERRED_IO_WORKITEM FltWorkItem, _In_ PFLT_CALLBACK_DATA CallbackData, _In_opt_ PVOID Context)
Definition: fltkernel.h:867
ULONG POINTER_ALIGNMENT IoControlCode
Definition: fltkernel.h:234
IN ULONG IN ULONG Tag
Definition: evtlib.h:159
CONST FLT_CONTEXT_REGISTRATION * ContextRegistration
Definition: fltkernel.h:732
enum _FS_FILTER_SECTION_SYNC_TYPE FS_FILTER_SECTION_SYNC_TYPE
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_ PFLT_CALLBACK_DATA _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback
Definition: fltkernel.h:2239
_In_ FLT_SET_CONTEXT_OPERATION _In_ PFLT_CONTEXT NewContext
Definition: fltkernel.h:1468
PFLT_IO_PARAMETER_BLOCK CONST Iopb
Definition: fltkernel.h:460
PCM_RESOURCE_LIST AllocatedResources
Definition: fltkernel.h:305
_Must_inspect_result_ _Inout_opt_ PUNICODE_STRING VolumeName
Definition: fltkernel.h:1117
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION _Inout_updates_bytes_opt_(Length) PSECURITY_DESCRIPTOR SecurityDescriptor
struct _FLT_TAG_DATA_BUFFER::@1936::@1937 SymbolicLinkReparseBuffer
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FILE_INFORMATION_CLASS FileInformationClass
Definition: fltkernel.h:1306
UNICODE_STRING FileSystemDeviceName
Definition: fltkernel.h:831
_Must_inspect_result_ _In_opt_ PFLT_FILTER _In_ ULONG InstanceListSize
Definition: fltkernel.h:1804
NTSTATUS(* PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE)(_In_opt_ PVOID Context, _In_ PFLT_CALLBACK_DATA CallbackData)
Definition: fltkernel.h:929
Definition: iotypes.h:166
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_opt_ PCUNICODE_STRING InstanceName
Definition: fltkernel.h:1162
NTSTATUS NTAPI FltRegisterFilter(_In_ PDRIVER_OBJECT DriverObject, _In_ const FLT_REGISTRATION *Registration, _Out_ PFLT_FILTER *RetFilter)
Definition: Filter.c:112
_Must_inspect_result_ PFLT_CALLBACK_DATA FLTAPI FltCbdqRemoveNextIo(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_opt_ PVOID PeekContext)
struct _FLT_DEFERRED_IO_WORKITEM * PFLT_DEFERRED_IO_WORKITEM
Definition: fltkernel.h:863
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK IoStatusBlock
Definition: fltkernel.h:1230
struct _FLT_PARAMETERS::@1904 MdlRead
struct _FLT_PARAMETERS::@1898::@1924 StartDevice
ULONG POINTER_ALIGNMENT FsControlCode
Definition: fltkernel.h:205
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:997
PVOID DirectoryBuffer
Definition: fltkernel.h:185
struct _FLT_PARAMETERS::@1901 ReleaseForModifiedPageWriter
NTSTATUS FLTAPI FltGetVolumeName(_In_ PFLT_VOLUME Volume, _Inout_opt_ PUNICODE_STRING VolumeName, _Out_opt_ PULONG BufferSizeNeeded)
Definition: Volume.c:207
unsigned int ULONG
Definition: retypes.h:1
ULONG EaListLength
Definition: fltkernel.h:159
UNICODE_STRING Extension
Definition: fltkernel.h:812
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE ContextType
Definition: fltkernel.h:1444
struct _FLT_PARAMETERS::@1883 QueryFileInformation
struct _FLT_PARAMETERS::@1884 SetFileInformation
KPROCESSOR_MODE RequestorMode
Definition: fltkernel.h:470
_Must_inspect_result_ _In_ WAIT_TYPE _In_opt_ PLARGE_INTEGER _In_opt_ PKWAIT_BLOCK WaitBlockArray
Definition: fsrtlfuncs.h:1151
_In_ FLT_SET_CONTEXT_OPERATION Operation
Definition: fltkernel.h:1468
BOOLEAN FLTAPI FltIsIoCanceled(_In_ PFLT_CALLBACK_DATA CallbackData)
PMDL * MdlChain
Definition: fltkernel.h:371
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY _In_ LONG MaxConnections
Definition: fltkernel.h:1873
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION _In_ ULONG _Out_opt_ PULONG LengthNeeded
Definition: fltkernel.h:1342
VOID(* PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK)(_Inout_ PVOID EcpContext, _In_ LPCGUID EcpType)
Definition: fsrtltypes.h:135
_Must_inspect_result_ _In_ PVOID FltObject
Definition: fltkernel.h:1988
PVOID InputSystemBuffer
Definition: fltkernel.h:225
const char * PCSTR
Definition: typedefs.h:51
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD _Inout_ PIO_PRIORITY_INFO PriorityInfo
Definition: fltkernel.h:2653
NTSTATUS FLTAPI FltGetDiskDeviceObject(_In_ PFLT_VOLUME Volume, _Outptr_ PDEVICE_OBJECT *DiskDeviceObject)
Definition: Misc.c:48
PFLT_PRE_OPERATION_CALLBACK PreOperation
Definition: fltkernel.h:612
_Must_inspect_result_ _IRQL_requires_max_(APC_LEVEL) NTSTATUS FLTAPI FltCheckAndGrowNameControl(_Inout_ PFLT_NAME_CONTROL NameCtrl
_When_(CallbackStatus==FLT_PREOP_COMPLETE, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(CallbackStatus!
_Must_inspect_result_ _In_ LPCGUID ULONG SizeOfContext
Definition: fltkernel.h:2520
FLT_PREOP_CALLBACK_STATUS(FLTAPI * PFLT_PRE_OPERATION_CALLBACK)(_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Outptr_result_maybenull_ PVOID *CompletionContext)
Definition: fltkernel.h:582
_In_ FILTER_INFORMATION_CLASS InformationClass
Definition: fltkernel.h:1714
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID NextEcpType
Definition: fltkernel.h:2621
ULONG POINTER_ALIGNMENT CompletionFilter
Definition: fltkernel.h:190
VOID FLTAPI FltInitializeFileLock(_Out_ PFILE_LOCK FileLock)
VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_RELEASE)(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_opt_ KIRQL Irql)
Definition: fltkernel.h:905
struct _FLT_RELATED_CONTEXTS * PFLT_RELATED_CONTEXTS
_Must_inspect_result_ _In_ FLT_FILE_NAME_OPTIONS _Outptr_ PFLT_FILE_NAME_INFORMATION * FileNameInformation
Definition: fltkernel.h:1062
struct _FLT_PARAMETERS::@1898::@1931 QueryId
ULONG NOTIFICATION_MASK
Definition: ktmtypes.h:99
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
Definition: env.c:45
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T _In_ POOL_TYPE PoolType
Definition: fltkernel.h:1444
FLT_FILE_NAME_OPTIONS Format
Definition: fltkernel.h:808
PVOID QueueContext[2]
Definition: fltkernel.h:466
VOID(FLTAPI * PFLT_NORMALIZE_CONTEXT_CLEANUP)(_In_opt_ PVOID *NormalizationContext)
Definition: fltkernel.h:701
#define APC_LEVEL
Definition: env_spec_w32.h:695
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1873
ULONG FLT_FILTER_UNLOAD_FLAGS
Definition: fltkernel.h:649
_Inout_opt_ PUNICODE_STRING Extension
Definition: fltkernel.h:1092
_Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING Stream
Definition: fltkernel.h:1092
struct _FLT_PARAMETERS::@1896 QueryQuota
struct _FLT_VOLUME_PROPERTIES FLT_VOLUME_PROPERTIES
#define CONST
Definition: pedump.c:81
ULONG ACCESS_MASK
Definition: nt_native.h:40
_Must_inspect_result_ _Out_ PUNICODE_STRING VolumeGuidName
Definition: fltkernel.h:1752
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _Out_writes_bytes_to_(Length, *BytesRead) PVOID Buffer
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOID * NextEcpContext
Definition: fltkernel.h:2621
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ FLT_IO_OPERATION_FLAGS _Out_opt_ PULONG BytesRead
Definition: fltkernel.h:1255
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _Outptr_opt_ PFILE_OBJECT _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_opt_ PIO_DRIVER_CREATE_CONTEXT DriverContext
Definition: fltkernel.h:2335
struct _FLT_PARAMETERS::@1909 Others
DEVICE_RELATION_TYPE Type
Definition: fltkernel.h:309
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING FullDirectoryName
Definition: fltkernel.h:2239
#define _Requires_lock_held_(a)
Definition: btrfs_drv.h:168
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ PFLT_DEFERRED_IO_WORKITEM_ROUTINE _In_ WORK_QUEUE_TYPE QueueType
Definition: fltkernel.h:1977
ULONG OutputBufferLength
Definition: fltkernel.h:203
_FLT_POSTOP_CALLBACK_STATUS
Definition: fltkernel.h:587
_Must_inspect_result_ BOOLEAN FLTAPI FltDoCompletionProcessingWhenSafe(_In_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_opt_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags, _In_ PFLT_POST_OPERATION_CALLBACK SafePostCallback, _Out_ PFLT_POSTOP_CALLBACK_STATUS RetPostOperationStatus)
ULONG FSRTL_ALLOCATE_ECP_FLAGS
Definition: fsrtltypes.h:142
NTSTATUS NTAPI FltUnloadFilter(_In_ PCUNICODE_STRING FilterName)
Definition: Filter.c:86
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_reads_bytes_(FileNameLength) PWSTR FileName
struct _FLT_PARAMETERS::@1891::@1923 FastIo
NTSTATUS NTAPI FltLoadFilter(_In_ PCUNICODE_STRING FilterName)
Definition: Filter.c:62
struct _FLT_CONTEXT_REGISTRATION FLT_CONTEXT_REGISTRATION
#define _Inout_opt_
Definition: no_sal2.h:258
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_opt_ GUID * Guid
Definition: fltkernel.h:1266
_Must_inspect_result_ _In_ LPCGUID _In_ ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _Inout_ PVOID LookasideList
Definition: fltkernel.h:2551
VOID(FLTAPI * PFLT_CONTEXT_FREE_CALLBACK)(_In_ PVOID Pool, _In_ FLT_CONTEXT_TYPE ContextType)
Definition: fltkernel.h:505
_Out_ PFLT_FILESYSTEM_TYPE FileSystemType
Definition: fltkernel.h:2408