ReactOS  0.4.15-dev-3326-ga91f5e8
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,
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,
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 
1393 VOID
1394 FLTAPI
1395 FltReissueSynchronousIo(
1396  _In_ PFLT_INSTANCE InitiatingInstance,
1398 
1400 NTSTATUS
1401 FLTAPI
1402 FltClose(
1404 
1406 VOID
1407 FLTAPI
1408 FltCancelFileOpen(
1411 
1414 NTSTATUS
1415 FLTAPI
1416 FltCreateSystemVolumeInformationFolder(
1418 
1420 BOOLEAN
1421 FLTAPI
1422 FltSupportsFileContexts(
1424 
1426 BOOLEAN
1427 FLTAPI
1428 FltSupportsStreamContexts(
1430 
1432 BOOLEAN
1433 FLTAPI
1434 FltSupportsStreamHandleContexts(
1436 
1439 NTSTATUS
1440 FLTAPI
1441 FltAllocateContext(
1447 
1449 VOID
1450 FLTAPI
1451 FltGetContexts(
1452  _In_ PCFLT_RELATED_OBJECTS FltObjects,
1455 
1457 VOID
1458 FLTAPI
1459 FltReleaseContexts(
1461 
1463 NTSTATUS
1464 FLTAPI
1465 FltSetVolumeContext(
1470 
1472 NTSTATUS
1473 FLTAPI
1474 FltSetInstanceContext(
1479 
1481 NTSTATUS
1482 FLTAPI
1483 FltSetFileContext(
1489 
1491 NTSTATUS
1492 FLTAPI
1493 FltSetStreamContext(
1499 
1501 NTSTATUS
1502 FLTAPI
1503 FltSetStreamHandleContext(
1509 
1511 VOID
1512 FLTAPI
1513 FltDeleteContext(
1515 
1517 NTSTATUS
1518 FLTAPI
1519 FltDeleteVolumeContext(
1523 
1525 NTSTATUS
1526 FLTAPI
1527 FltDeleteInstanceContext(
1530 
1532 NTSTATUS
1533 FLTAPI
1534 FltDeleteFileContext(
1538 
1540 NTSTATUS
1541 FLTAPI
1542 FltDeleteStreamContext(
1546 
1548 NTSTATUS
1549 FLTAPI
1550 FltDeleteStreamHandleContext(
1554 
1556 NTSTATUS
1557 FLTAPI
1558 FltGetVolumeContext(
1562 
1564 NTSTATUS
1565 FLTAPI
1566 FltGetInstanceContext(
1569 
1571 NTSTATUS
1572 FLTAPI
1573 FltGetFileContext(
1577 
1579 NTSTATUS
1580 FLTAPI
1581 FltGetStreamContext(
1585 
1587 NTSTATUS
1588 FLTAPI
1589 FltGetStreamHandleContext(
1593 
1595 VOID
1596 FLTAPI
1597 FltReferenceContext(
1599 
1601 VOID
1602 FLTAPI
1603 FltReleaseContext(
1605 
1607 NTSTATUS
1608 FLTAPI
1610  _In_ PCUNICODE_STRING FilterName,
1612 
1614 NTSTATUS
1615 FLTAPI
1616 FltGetVolumeFromName(
1620 
1622 NTSTATUS
1623 FLTAPI
1624 FltGetVolumeInstanceFromName(
1629 
1631 NTSTATUS
1632 FLTAPI
1633 FltGetVolumeFromInstance(
1636 
1638 NTSTATUS
1639 FLTAPI
1640 FltGetFilterFromInstance(
1643 
1645 NTSTATUS
1646 FLTAPI
1647 FltGetVolumeFromFileObject(
1651 
1653 NTSTATUS
1654 FLTAPI
1655 FltGetVolumeFromDeviceObject(
1659 
1661 NTSTATUS
1662 FLTAPI
1663 FltGetDeviceObject(
1666 
1668 NTSTATUS
1669 FLTAPI
1673 
1675 NTSTATUS
1676 FLTAPI
1677 FltGetLowerInstance(
1678  _In_ PFLT_INSTANCE CurrentInstance,
1680 
1682 NTSTATUS
1683 FLTAPI
1684 FltGetUpperInstance(
1685  _In_ PFLT_INSTANCE CurrentInstance,
1687 
1689 NTSTATUS
1690 FLTAPI
1691 FltGetTopInstance(
1694 
1696 NTSTATUS
1697 FLTAPI
1698 FltGetBottomInstance(
1701 
1702 LONG
1703 FLTAPI
1705  _In_ PFLT_INSTANCE Instance1,
1706  _In_ PFLT_INSTANCE Instance2);
1707 
1709 NTSTATUS
1710 FLTAPI
1711 FltGetFilterInformation(
1713  _In_ FILTER_INFORMATION_CLASS InformationClass,
1717 
1719 NTSTATUS
1720 FLTAPI
1721 FltGetInstanceInformation(
1723  _In_ INSTANCE_INFORMATION_CLASS InformationClass,
1727 
1729 NTSTATUS
1730 FLTAPI
1736 
1739 NTSTATUS
1740 FLTAPI
1741 FltIsVolumeWritable(
1744 
1747 NTSTATUS
1748 FLTAPI
1749 FltGetVolumeGuidName(
1753 
1756 NTSTATUS
1757 FLTAPI
1758 FltQueryVolumeInformation(
1761  _Out_writes_bytes_(Length) PVOID FsInformation,
1762  _In_ ULONG Length,
1764 
1767 NTSTATUS
1768 FLTAPI
1769 FltSetVolumeInformation(
1772  _Out_writes_bytes_(Length) PVOID FsInformation,
1773  _In_ ULONG Length,
1775 
1778 NTSTATUS
1779 FLTAPI
1780 FltEnumerateFilters(
1784 
1787 NTSTATUS
1788 FLTAPI
1794 
1797 NTSTATUS
1798 FLTAPI
1799 FltEnumerateInstances(
1805 
1808 NTSTATUS
1809 FLTAPI
1810 FltEnumerateFilterInformation(
1811  _In_ ULONG Index,
1812  _In_ FILTER_INFORMATION_CLASS InformationClass,
1816 
1819 NTSTATUS
1820 FLTAPI
1821 FltEnumerateInstanceInformationByFilter(
1824  _In_ INSTANCE_INFORMATION_CLASS InformationClass,
1828 
1831 NTSTATUS
1832 FLTAPI
1833 FltEnumerateInstanceInformationByVolume(
1835  _In_ ULONG Index,
1836  _In_ INSTANCE_INFORMATION_CLASS InformationClass,
1840 
1843 NTSTATUS
1844 FLTAPI
1845 FltEnumerateVolumeInformation(
1847  _In_ ULONG Index,
1848  _In_ FILTER_VOLUME_INFORMATION_CLASS InformationClass,
1852 
1855 NTSTATUS
1856 FLTAPI
1859 
1861 VOID
1862 FLTAPI
1865 
1868 NTSTATUS
1869 FLTAPI
1870 FltCreateCommunicationPort(
1879 
1881 VOID
1882 FLTAPI
1883 FltCloseCommunicationPort(
1885 
1887 VOID
1888 FLTAPI
1889 FltCloseClientPort(
1892 
1895 NTSTATUS
1896 FLTAPI
1897 FltSendMessage(
1905 
1908 NTSTATUS
1909 FLTAPI
1913 
1915 VOID
1916 FLTAPI
1919 
1922 BOOLEAN
1923 FLTAPI
1924 FltCancelIo(
1926 
1928 NTSTATUS
1929 FLTAPI
1930 FltSetCancelCompletion(
1933 
1936 NTSTATUS
1937 FLTAPI
1938 FltClearCancelCompletion(
1940 
1941 BOOLEAN
1942 FLTAPI
1945 
1949 FLTAPI
1950 FltAllocateDeferredIoWorkItem(VOID);
1951 
1953 VOID
1954 FLTAPI
1955 FltFreeDeferredIoWorkItem(
1956  _In_ PFLT_DEFERRED_IO_WORKITEM FltWorkItem);
1957 
1961 FLTAPI
1962 FltAllocateGenericWorkItem(VOID);
1963 
1965 VOID
1966 FLTAPI
1967 FltFreeGenericWorkItem(
1968  _In_ PFLT_GENERIC_WORKITEM FltWorkItem);
1969 
1972 NTSTATUS
1973 FLTAPI
1974 FltQueueDeferredIoWorkItem(
1975  _In_ PFLT_DEFERRED_IO_WORKITEM FltWorkItem,
1979  _In_ PVOID Context);
1980 
1983 NTSTATUS
1984 FLTAPI
1985 FltQueueGenericWorkItem(
1986  _In_ PFLT_GENERIC_WORKITEM FltWorkItem,
1991 
1994 NTSTATUS
1995 FLTAPI
1996 FltLockUserBuffer(
1998 
1999 NTSTATUS
2000 FLTAPI
2003  _Outptr_opt_ PMDL **MdlAddressPointer,
2007 
2008 PMDL
2009 FASTCALL
2012 
2013 VOID
2014 FASTCALL
2017 
2018 NTSTATUS
2019 FLTAPI
2028  _In_ PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO CbdqCompleteCanceledIo);
2029 
2030 VOID
2031 FLTAPI
2034 
2035 VOID
2036 FLTAPI
2039 
2041 NTSTATUS
2042 FLTAPI
2048 
2051 FLTAPI
2055 
2058 FLTAPI
2062 
2064 VOID
2065 FLTAPI
2066 FltInitializeOplock(
2067  _Out_ POPLOCK Oplock);
2068 
2070 VOID
2071 FLTAPI
2072 FltUninitializeOplock(
2073  _In_ POPLOCK Oplock);
2074 
2078 FLTAPI
2079 FltOplockFsctrl(
2080  _In_ POPLOCK Oplock,
2082  _In_ ULONG OpenCount);
2083 
2087 FLTAPI
2088 FltCheckOplock(
2089  _In_ POPLOCK Oplock,
2094 
2096 BOOLEAN
2097 FLTAPI
2098 FltOplockIsFastIoPossible(
2099  _In_ POPLOCK Oplock);
2100 
2102 BOOLEAN
2103 FLTAPI
2104 FltCurrentBatchOplock(
2105  _In_ POPLOCK Oplock);
2106 
2107 VOID
2108 FLTAPI
2110  _Out_ PFILE_LOCK FileLock);
2111 
2112 VOID
2113 FLTAPI
2115  _In_ PFILE_LOCK FileLock);
2116 
2119 PFILE_LOCK
2120 FLTAPI
2121 FltAllocateFileLock(
2122  _In_opt_ PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE CompleteLockCallbackDataRoutine,
2124 
2126 VOID
2127 FLTAPI
2128 FltFreeFileLock(
2129  _In_ PFILE_LOCK FileLock);
2130 
2134 FLTAPI
2135 FltProcessFileLock(
2136  _In_ PFILE_LOCK FileLock,
2139 
2142 BOOLEAN
2143 FLTAPI
2144 FltCheckLockForReadAccess(
2145  _In_ PFILE_LOCK FileLock,
2147 
2150 BOOLEAN
2151 FLTAPI
2152 FltCheckLockForWriteAccess(
2153  _In_ PFILE_LOCK FileLock,
2155 
2156 _Acquires_lock_(_Global_critical_region_)
2158 VOID
2159 FLTAPI
2160 FltAcquireResourceExclusive(
2162 
2163 _Acquires_lock_(_Global_critical_region_)
2165 VOID
2166 FLTAPI
2167 FltAcquireResourceShared(
2169 
2170 _Releases_lock_(_Global_critical_region_)
2172 VOID
2173 FLTAPI
2174 FltReleaseResource(
2176 
2178 VOID
2179 FLTAPI
2180 FltInitializePushLock(
2181  _Out_ PEX_PUSH_LOCK PushLock);
2182 
2184 VOID
2185 FLTAPI
2186 FltDeletePushLock(
2187  _In_ PEX_PUSH_LOCK PushLock);
2188 
2189 _Acquires_lock_(_Global_critical_region_)
2191 VOID
2192 FLTAPI
2193 FltAcquirePushLockExclusive(
2194  _Inout_ _Requires_lock_not_held_(*_Curr_) _Acquires_lock_(*_Curr_) PEX_PUSH_LOCK PushLock);
2195 
2196 _Acquires_lock_(_Global_critical_region_)
2198 VOID
2199 FLTAPI
2200 FltAcquirePushLockShared(
2201  _Inout_ _Requires_lock_not_held_(*_Curr_) _Acquires_lock_(*_Curr_) PEX_PUSH_LOCK PushLock);
2202 
2203 _Releases_lock_(_Global_critical_region_)
2205 VOID
2206 FLTAPI
2207 FltReleasePushLock(
2208  _Inout_ _Requires_lock_held_(*_Curr_) _Releases_lock_(*_Curr_) PEX_PUSH_LOCK PushLock);
2209 
2210 BOOLEAN
2211 FLTAPI
2214 
2216 BOOLEAN
2217 FLTAPI
2218 FltIs32bitProcess(
2220 
2222 PEPROCESS
2223 FLTAPI
2224 FltGetRequestorProcess(
2226 
2228 ULONG
2229 FLTAPI
2230 FltGetRequestorProcessId(
2232 
2234 VOID
2235 FLTAPI
2236 FltNotifyFilterChangeDirectory(
2237  _Inout_ PNOTIFY_SYNC NotifySync,
2248 
2249 PCHAR
2250 FLTAPI
2252  _In_ UCHAR IrpMajorCode);
2253 
2254 #if FLT_MGR_AFTER_XPSP2
2255 
2258 NTSTATUS
2259 FLTAPI
2260 FltCreateFileEx(
2275  _In_ ULONG Flags);
2276 
2279 NTSTATUS
2280 FLTAPI
2281 FltOpenVolume(
2285 
2288 NTSTATUS
2289 FLTAPI
2290 FltQueryEaFile(
2301 
2304 NTSTATUS
2305 FLTAPI
2306 FltSetEaFile(
2310  _In_ ULONG Length);
2311 
2312 #endif /* FLT_MGR_AFTER_XPSP2 */
2313 
2314 #if FLT_MGR_LONGHORN
2315 
2318 NTSTATUS
2319 FLTAPI
2320 FltCreateFileEx2(
2335  _In_ ULONG Flags,
2337 
2340 NTSTATUS
2341 FLTAPI
2342 FltQueryDirectoryFile(
2352 
2354 BOOLEAN
2355 FLTAPI
2356 FltSupportsFileContextsEx(
2359 
2361 NTSTATUS
2362 FLTAPI
2363 FltSetTransactionContext(
2365  _In_ PKTRANSACTION Transaction,
2369 
2371 NTSTATUS
2372 FLTAPI
2373 FltDeleteTransactionContext(
2375  _In_ PKTRANSACTION Transaction,
2377 
2379 NTSTATUS
2380 FLTAPI
2381 FltGetTransactionContext(
2383  _In_ PKTRANSACTION Transaction,
2385 
2387 BOOLEAN
2388 FLTAPI
2389 FltIsFltMgrVolumeDeviceObject(
2391 
2393 NTSTATUS
2394 FLTAPI
2395 FltGetVolumeInformation(
2397  _In_ FILTER_VOLUME_INFORMATION_CLASS InformationClass,
2401 
2403 NTSTATUS
2404 FLTAPI
2405 FltGetFileSystemType(
2407  _Out_ PFLT_FILESYSTEM_TYPE FileSystemType);
2408 
2411 NTSTATUS
2412 FLTAPI
2413 FltIsVolumeSnapshot(
2416 
2420 NTSTATUS
2421 FLTAPI
2422 FltCancellableWaitForSingleObject(
2423  _In_ PVOID Object,
2426 
2430 NTSTATUS
2431 FLTAPI
2432 FltCancellableWaitForMultipleObjects(
2433  _In_ ULONG Count,
2434  _In_reads_(Count) PVOID ObjectArray[],
2439 
2441 HANDLE
2442 FLTAPI
2443 FltGetRequestorProcessIdEx(
2445 
2448 NTSTATUS
2449 FLTAPI
2450 FltEnlistInTransaction(
2452  _In_ PKTRANSACTION Transaction,
2455 
2457 NTSTATUS
2458 FLTAPI
2459 FltRollbackEnlistment(
2461  _In_ PKTRANSACTION Transaction,
2463 
2465 NTSTATUS
2466 FLTAPI
2467 FltPrePrepareComplete(
2469  _In_ PKTRANSACTION Transaction,
2471 
2473 NTSTATUS
2474 FLTAPI
2475 FltPrepareComplete(
2477  _In_ PKTRANSACTION Transaction,
2479 
2481 NTSTATUS
2482 FLTAPI
2483 FltCommitComplete(
2485  _In_ PKTRANSACTION Transaction,
2487 
2489 NTSTATUS
2490 FLTAPI
2491 FltCommitFinalizeComplete(
2493  _In_ PKTRANSACTION Transaction,
2495 
2497 NTSTATUS
2498 FLTAPI
2499 FltRollbackComplete(
2501  _In_ PKTRANSACTION Transaction,
2503 
2506 NTSTATUS
2507 FLTAPI
2508 FltAllocateExtraCreateParameterList(
2512 
2515 NTSTATUS
2516 FLTAPI
2517 FltAllocateExtraCreateParameter(
2523  _In_ ULONG PoolTag,
2525 
2527 VOID
2528 FLTAPI
2529 FltInitExtraCreateParameterLookasideList(
2533  _In_ SIZE_T Size,
2534  _In_ ULONG Tag);
2535 
2537 VOID
2538 FLTAPI
2539 FltDeleteExtraCreateParameterLookasideList(
2543 
2546 NTSTATUS
2547 FLTAPI
2548 FltAllocateExtraCreateParameterFromLookasideList(
2556 
2558 NTSTATUS
2559 FLTAPI
2560 FltInsertExtraCreateParameter(
2564 
2566 NTSTATUS
2567 FLTAPI
2568 FltFindExtraCreateParameter(
2574 
2576 NTSTATUS
2577 FLTAPI
2578 FltRemoveExtraCreateParameter(
2584 
2586 VOID
2587 FLTAPI
2588 FltFreeExtraCreateParameterList(
2591 
2593 VOID
2594 FLTAPI
2595 FltFreeExtraCreateParameter(
2598 
2600 NTSTATUS
2601 FLTAPI
2602 FltGetEcpListFromCallbackData(
2606 
2608 NTSTATUS
2609 FLTAPI
2610 FltSetEcpListIntoCallbackData(
2614 
2616 NTSTATUS
2617 FLTAPI
2618 FltGetNextExtraCreateParameter(
2625 
2627 VOID
2628 FLTAPI
2629 FltAcknowledgeEcp(
2632 
2634 BOOLEAN
2635 FLTAPI
2636 FltIsEcpAcknowledged(
2639 
2641 BOOLEAN
2642 FLTAPI
2643 FltIsEcpFromUserMode(
2646 
2648 NTSTATUS
2649 FLTAPI
2650 FltRetrieveIoPriorityInfo(
2655 
2657 NTSTATUS
2658 FLTAPI
2659 FltApplyPriorityInfoThread(
2660  _In_ PIO_PRIORITY_INFO InputPriorityInfo,
2662  _In_ PETHREAD Thread);
2663 
2666 FLTAPI
2667 FltGetIoPriorityHint(
2669 
2672 FLTAPI
2673 FltGetIoPriorityHintFromCallbackData(
2675 
2677 NTSTATUS
2678 FLTAPI
2679 FltSetIoPriorityHintIntoCallbackData(
2682 
2685 FLTAPI
2686 FltGetIoPriorityHintFromFileObject(
2688 
2691 NTSTATUS
2692 FLTAPI
2693 FltSetIoPriorityHintIntoFileObject(
2696 
2699 FLTAPI
2700 FltGetIoPriorityHintFromThread(
2701  _In_ PETHREAD Thread);
2702 
2704 NTSTATUS
2705 FLTAPI
2706 FltSetIoPriorityHintIntoThread(
2709 
2710 #endif /* FLT_MGR_LONGHORN */
2711 
2712 #if FLT_MGR_WIN7
2713 
2716 NTSTATUS
2717 FLTAPI
2718 FltAllocateCallbackDataEx(
2723 
2725 _IRQL_requires_max_(DPC_LEVEL)
2726 PVOID
2727 FLTAPI
2728 FltGetNewSystemBufferAddress(
2730 
2734 FLTAPI
2735 FltCheckOplockEx(
2736  _In_ POPLOCK Oplock,
2738  _In_ ULONG Flags,
2742 
2744 BOOLEAN
2745 FLTAPI
2746 FltCurrentOplock(
2747  _In_ POPLOCK Oplock);
2748 
2750 BOOLEAN
2751 FLTAPI
2752 FltCurrentOplockH(
2753  _In_ POPLOCK Oplock);
2754 
2757 FLTAPI
2758 FltOplockBreakH(
2759  _In_ POPLOCK Oplock,
2761  _In_ ULONG Flags,
2765 
2768 FLTAPI
2769 FltOplockBreakToNone(
2770  _In_ POPLOCK Oplock,
2775 
2778 FLTAPI
2779 FltOplockBreakToNoneEx(
2780  _In_ POPLOCK Oplock,
2782  _In_ ULONG Flags,
2786 
2788 BOOLEAN
2789 FLTAPI
2790 FltOplockIsSharedRequest(
2792 
2796 FLTAPI
2797 FltOplockFsctrlEx(
2798  _In_ POPLOCK Oplock,
2801  _In_ ULONG Flags);
2802 
2803 BOOLEAN
2804 FLTAPI
2806  _In_opt_ PFILE_OBJECT Fo1,
2808 
2811 NTSTATUS
2812 FLTAPI
2813 FltGetRequestorSessionId(
2816 
2818 NTSTATUS
2819 FLTAPI
2820 FltAdjustDeviceStackSizeForIoRedirection(
2821  _In_ PFLT_INSTANCE SourceInstance,
2824 
2826 NTSTATUS
2827 FLTAPI
2828 FltIsIoRedirectionAllowed(
2829  _In_ PFLT_INSTANCE SourceInstance,
2832 
2834 NTSTATUS
2835 FLTAPI
2836 FltIsIoRedirectionAllowedForOperation(
2841 
2842 #endif /* FLT_MGR_WIN7 */
2843 
2844 #endif /* FLT_MGR_BASELINE */
2845 
2846 #ifdef __cplusplus
2847 } /* extern "C" */
2848 #endif
2849 
2850 #endif /* __FLTKERNEL__ */
_Must_inspect_result_ *NumberFiltersReturned PFLT_FILTER * FilterList
Definition: fltkernel.h:1781
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:2238
_Must_inspect_result_ *NumberFiltersReturned PFLT_FILTER _In_ ULONG FilterListSize
Definition: fltkernel.h:1781
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
Definition: wdfiotarget.h:949
signed char * PCHAR
Definition: retypes.h:7
struct _FLT_PARAMETERS::@1940 MdlWriteComplete
ULONG FLT_IO_OPERATION_FLAGS
Definition: fltkernel.h:753
_Must_inspect_result_ _In_ FSRTL_ALLOCATE_ECPLIST_FLAGS _Outptr_ PECP_LIST * EcpList
Definition: fltkernel.h:2510
_Out_opt_ PIO_PRIORITY_INFO OutputPriorityInfo
Definition: fltkernel.h:2661
BOOLEAN POINTER_ALIGNMENT CheckForReadOperation
Definition: fltkernel.h:361
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
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:1902
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FILE_INFORMATION_CLASS _In_ BOOLEAN _In_opt_ PUNICODE_STRING FileName
Definition: fltkernel.h:2346
PDEVICE_OBJECT DeviceObject
Definition: fltkernel.h:200
PFILE_NETWORK_OPEN_INFORMATION NetworkInformation
Definition: fltkernel.h:365
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:2238
PVOID SecurityBuffer
Definition: fltkernel.h:277
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2654
ULONG FLT_INSTANCE_QUERY_TEARDOWN_FLAGS
Definition: fltkernel.h:552
_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_ PFILE_OBJECT _In_ ULONG _In_ ULONG InputBufferLength
Definition: fltkernel.h:1372
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA CallbackData
Definition: fltkernel.h:2081
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
_In_ IO_PRIORITY_HINT PriorityHint
Definition: fltkernel.h:2681
ULONG POINTER_ALIGNMENT EaIndex
Definition: fltkernel.h:160
struct _FLT_PARAMETERS::@1915 Write
#define _In_opt_
Definition: ms_sal.h:309
_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:2090
PUNICODE_STRING FileName
Definition: fltkernel.h:182
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ ULONG _Out_ WDFLOOKASIDE * Lookaside
Definition: wdfmemory.h:407
#define _Inout_
Definition: ms_sal.h:378
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_ ULONG _In_opt_ PULONG _In_ BOOLEAN RestartScan
Definition: fltkernel.h:2297
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:2090
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
_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
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
Definition: wdfrequest.h:893
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:2123
_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
#define _Out_
Definition: ms_sal.h:345
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:1976
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:2297
_In_ ULONG Component
Definition: potypes.h:496
struct _FLT_PARAMETERS::@1936 NetworkQueryOpen
uint16_t * PWSTR
Definition: typedefs.h:56
#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:1872
ULONG FLT_OPERATION_REGISTRATION_FLAGS
Definition: fltkernel.h:603
_Inout_ PVOID _In_ FSRTL_ECP_LOOKASIDE_FLAGS _In_ SIZE_T Size
Definition: fltkernel.h:2531
_In_ PFLT_INSTANCE _Out_opt_ PBOOLEAN SourceDeviceStackSizeModified
Definition: fltkernel.h:2822
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
#define _Outptr_
Definition: ms_sal.h:427
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:1976
_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:837
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
struct _FLT_PARAMETERS::@1920 QueryVolumeInformation
PVOID InterfaceSpecificData
Definition: fltkernel.h:316
struct _FLT_PARAMETERS::@1923::@1947 VerifyVolume
struct _FLT_PARAMETERS::@1942 Others
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN ReturnSingleEntry
Definition: fltkernel.h:2294
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::@1931::@1966 UsageNotification
_In_ PCUNICODE_STRING _Outptr_ PFLT_VOLUME * RetVolume
Definition: fltkernel.h:1618
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
static OUT PIO_STATUS_BLOCK OUT PVOID FileInformation
Definition: pipe.c:75
_Must_inspect_result_ _In_ ULONG _Out_ PULONG NumberVolumesReturned
Definition: fltkernel.h:1792
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownStartCallback
Definition: fltkernel.h:737
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
PFLT_INSTANCE_SETUP_CALLBACK InstanceSetupCallback
Definition: fltkernel.h:735
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:2238
_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:1891
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:2519
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
struct _FLT_PARAMETERS::@1926 QuerySecurity
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T ContextSize
Definition: fltkernel.h:1443
DWORD LCID
Definition: nls.h:13
PFLT_NORMALIZE_NAME_COMPONENT NormalizeNameComponentCallback
Definition: fltkernel.h:740
_Must_inspect_result_ _Out_ PBOOLEAN IsSnapshotVolume
Definition: fltkernel.h:2415
LARGE_INTEGER AllocationSize
Definition: fltkernel.h:107
BOOLEAN(NTAPI * PFILTER_REPORT_CHANGE)(_In_ PVOID NotifyContext, _In_ PVOID FilterContext)
Definition: fsrtltypes.h:297
_ANONYMOUS_UNION union _FLT_PARAMETERS::@1917::@1943 DUMMYUNIONNAME
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:318
UNICODE_STRING FileSystemDriverName
Definition: fltkernel.h:830
struct _FLT_CALLBACK_DATA FLT_CALLBACK_DATA
LARGE_INTEGER FileOffset
Definition: fltkernel.h:358
DEVICE_TYPE DeviceType
Definition: fltkernel.h:824
_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
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
struct _FLT_PARAMETERS::@1934 ReleaseForModifiedPageWriter
_In_ PFLT_INSTANCE _Out_ PBOOLEAN _Out_opt_ PBOOLEAN RedirectionAllowedAllIo
Definition: fltkernel.h:2838
_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:2238
enum _FLT_SET_CONTEXT_OPERATION * PFLT_SET_CONTEXT_OPERATION
struct _FLT_PARAMETERS::@1914 Read
_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_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
Definition: wdfiotarget.h:1039
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
Definition: wdfiotarget.h:859
_Must_inspect_result_ _In_ CONST FLT_REGISTRATION _Outptr_ PFLT_FILTER * RetFilter
Definition: fltkernel.h:991
union _FLT_PARAMETERS::@1923 FileSystemControl
VOID FLTAPI FltCbdqEnable(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq)
_In_ FLT_CONTEXT_TYPE DesiredContexts
Definition: fltkernel.h:1453
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
struct _FLT_PORT * PFLT_PORT
Definition: fltkernel.h:87
struct _FLT_PARAMETERS::@1931::@1961 FilterResourceRequirements
struct _FLT_NAME_CONTROL FLT_NAME_CONTROL
uint32_t ULONG_PTR
Definition: typedefs.h:65
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
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:318
_Must_inspect_result_ _Out_ PIO_STATUS_BLOCK Iosb
Definition: fltkernel.h:1760
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID _Inout_opt_ PULONG ReplyLength
Definition: fltkernel.h:1902
_In_ ULONG VolumePropertiesLength
Definition: fltkernel.h:1734
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
_Must_inspect_result_ _Out_ PHANDLE _Outptr_opt_ PFILE_OBJECT * VolumeFileObject
Definition: fltkernel.h:2283
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_Outptr_ PFLT_INSTANCE * UpperInstance
Definition: fltkernel.h:1686
const struct _FLT_CONTEXT_REGISTRATION * PCFLT_CONTEXT_REGISTRATION
Definition: fltkernel.h:525
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
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:843
struct _FLT_PARAMETERS::@1912 CreatePipe
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T _In_ POOL_TYPE PoolType
Definition: fltkernel.h:1443
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:2815
long LONG
Definition: pedump.c:60
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
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:1801
_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:2519
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:2822
PFLT_INSTANCE Instance
Definition: fltkernel.h:919
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN IgnoreBuffer
Definition: fltkernel.h:2238
BOOLEAN AdvanceOnly
Definition: fltkernel.h:149
_In_ PECP_LIST _In_ LPCGUID _Outptr_opt_ PVOID _Out_opt_ ULONG * EcpContextSize
Definition: fltkernel.h:2570
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
VOID FLTAPI FltUninitializeFileLock(_In_ PFILE_LOCK FileLock)
PVOID PFLT_CONTEXT
Definition: fltkernel.h:89
ULONG POINTER_ALIGNMENT LockKey
Definition: fltkernel.h:360
_Must_inspect_result_ _In_opt_ PFLT_FILTER _In_ ULONG _Out_ PULONG NumberInstancesReturned
Definition: fltkernel.h:1803
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:2452
_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 _In_
Definition: ms_sal.h:308
_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:2238
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
struct _FLT_PARAMETERS::@1911 Create
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
struct _FLT_TAG_DATA_BUFFER::@1969::@1971 MountPointReparseBuffer
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:2081
_ANONYMOUS_STRUCT struct _FLT_CALLBACK_DATA::@1967::@1968 DUMMYSTRUCTNAME
UNICODE_STRING Share
Definition: fltkernel.h:811
VOID FLTAPI FltUnregisterFilter(_In_ PFLT_FILTER Filter)
Definition: Filter.c:319
void * PVOID
Definition: retypes.h:9
VOID(FLTAPI * PFLT_COMPLETE_CANCELED_CALLBACK)(_In_ PFLT_CALLBACK_DATA CallbackData)
Definition: fltkernel.h:860
struct _FLT_PARAMETERS::@1921 SetVolumeInformation
_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:17
struct _FLT_PARAMETERS::@1917 SetFileInformation
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
PMDL OutputMdlAddress
Definition: fltkernel.h:213
#define _Out_writes_bytes_opt_(size)
Definition: ms_sal.h:351
enum _FSINFOCLASS FS_INFORMATION_CLASS
struct _FLT_PARAMETERS::@1924::@1956 FastIo
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:859
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
#define POINTER_ALIGNMENT
PVOID ReadBuffer
Definition: fltkernel.h:127
struct _FLT_PARAMETERS::@1931::@1964 QueryId
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
struct _FLT_PARAMETERS::@1927 SetSecurity
union _FLT_PARAMETERS::@1924 DeviceIoControl
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 _Requires_lock_not_held_(a)
Definition: btrfs_drv.h:214
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:1781
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:949
BOOLEAN ReplaceIfExists
Definition: fltkernel.h:148
int Count
Definition: noreturn.cpp:7
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
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG _Out_opt_ PULONG CreateDisposition
Definition: wdfregistry.h:112
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_In_ PFLT_COMPLETE_CANCELED_CALLBACK CanceledCallback
Definition: fltkernel.h:1932
IO_STATUS_BLOCK IoStatus
Definition: fltkernel.h:461
struct _FLT_PARAMETERS::@1923::@1948 Common
_Outptr_ PDEVICE_OBJECT * DiskDeviceObject
Definition: fltkernel.h:1672
struct _FLT_PARAMETERS::@1922::@1945 QueryDirectory
struct _FLT_TAG_DATA_BUFFER FLT_TAG_DATA_BUFFER
__wchar_t WCHAR
Definition: xmlstorage.h:180
PFILE_OBJECT TargetFileObject
Definition: fltkernel.h:409
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:1467
_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:1872
enum _FLT_SET_CONTEXT_OPERATION FLT_SET_CONTEXT_OPERATION
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
Definition: wdfobject.h:760
INT POOL_TYPE
Definition: typedefs.h:78
_In_ WDFCOLLECTION _In_ ULONG Index
_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
struct _FLT_PARAMETERS::@1923::@1949 Neither
PERESOURCE * ResourceToRelease
Definition: fltkernel.h:352
struct _FLT_PARAMETERS::@1939 PrepareMdlWrite
union _FLT_PARAMETERS::@1922 DirectoryControl
_Must_inspect_result_ _Out_ PIO_STATUS_BLOCK _Out_writes_bytes_(Length) PVOID FsInformation
PFLT_FILTER_UNLOAD_CALLBACK FilterUnloadCallback
Definition: fltkernel.h:734
struct _FLT_PARAMETERS::@1938 MdlReadComplete
IO_CSQ_IRP_CONTEXT FLT_CALLBACK_DATA_QUEUE_IO_CONTEXT
Definition: fltkernel.h:878
union _FLT_PARAMETERS FLT_PARAMETERS
Definition: bufpool.h:50
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:2652
_Must_inspect_result_ _Out_ PHANDLE VolumeHandle
Definition: fltkernel.h:2283
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE Instance
Definition: fltkernel.h:1071
VOID FLTAPI FltSetCallbackDataDirty(_Inout_ PFLT_CALLBACK_DATA Data)
struct _FLT_PARAMETERS::@1932 AcquireForSectionSynchronization
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_opt_ GUID _In_ USHORT DataBufferLength
Definition: fltkernel.h:1270
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
struct _FLT_PARAMETERS::@1931::@1962 ReadWriteConfig
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:1998
FLT_CALLBACK_DATA_QUEUE_FLAGS Flags
Definition: fltkernel.h:918
LARGE_INTEGER ByteOffset
Definition: fltkernel.h:126
PVOID FilterContext[4]
Definition: fltkernel.h:468
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG PoolTag
Definition: wdfmemory.h:159
_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:2830
_Must_inspect_result_ _In_ LPCGUID ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback
Definition: fltkernel.h:2519
_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
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG _In_ ULONG OutputBufferLength
Definition: fltkernel.h:1374
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:1902
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:2620
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_ ULONG EaListLength
Definition: fltkernel.h:2297
ULONG POINTER_ALIGNMENT EaLength
Definition: fltkernel.h:105
USHORT Version
Definition: fltkernel.h:314
_Must_inspect_result_ _In_ PFLT_INSTANCE _Out_ PBOOLEAN IsDirectory
Definition: fltkernel.h:1139
PFLT_CONTEXT_CLEANUP_CALLBACK ContextCleanupCallback
Definition: fltkernel.h:518
_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:454
_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
#define _Inout_opt_
Definition: ms_sal.h:379
PFLT_CONTEXT_FREE_CALLBACK ContextFreeCallback
Definition: fltkernel.h:522
_FLT_PREOP_CALLBACK_STATUS
Definition: fltkernel.h:572
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:318
_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
struct _FLT_PARAMETERS::@1931::@1960 DeviceCapabilities
struct _FLT_TAG_DATA_BUFFER::@1969::@1970 SymbolicLinkReparseBuffer
_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
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOID _Out_opt_ ULONG * NextEcpContextSize
Definition: fltkernel.h:2620
Definition: typedefs.h:119
#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
struct _FLT_PARAMETERS::@1931::@1958 QueryDeviceRelations
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownCompleteCallback
Definition: fltkernel.h:738
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
Definition: fltkernel.h:1230
#define _Must_inspect_result_
Definition: ms_sal.h:558
NTSTATUS(FLTAPI * PFLT_FILTER_UNLOAD_CALLBACK)(FLT_FILTER_UNLOAD_FLAGS Flags)
Definition: fltkernel.h:654
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:1872
PCM_RESOURCE_LIST AllocatedResourcesTranslated
Definition: fltkernel.h:306
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4061
#define _In_reads_(size)
Definition: ms_sal.h:319
SECURITY_INFORMATION SecurityInformation
Definition: fltkernel.h:275
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
#define _ANONYMOUS_STRUCT
Definition: ntbasedef.h:56
* PDEVICE_CAPABILITIES
Definition: iotypes.h:965
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
Definition: wdfregistry.h:112
struct _FLT_PARAMETERS::@1919 SetEa
ULONG FLT_ALLOCATE_CALLBACK_DATA_FLAGS
Definition: fltkernel.h:453
PFILE_OBJECT ParentOfTarget
Definition: fltkernel.h:145
struct _FLT_PARAMETERS::@1937 MdlRead
struct _FLT_PARAMETERS::@1931::@1963 SetLock
struct _FLT_PARAMETERS::@1922::@1946 NotifyDirectory
_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
struct _FLT_PARAMETERS::@1913 CreateMailslot
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:80
_ANONYMOUS_STRUCT struct _FLT_PARAMETERS::@1917::@1943::@1944 DUMMYSTRUCTNAME
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
struct _FLT_PARAMETERS::@1928 WMI
#define _Outptr_opt_result_maybenull_
Definition: ms_sal.h:430
NTSTATUS FLTAPI FltGetFileNameInformation(_In_ PFLT_CALLBACK_DATA CallbackData, _In_ FLT_FILE_NAME_OPTIONS NameOptions, _Outptr_ PFLT_FILE_NAME_INFORMATION *FileNameInformation)
Definition: Misc.c:75
struct _FLT_PARAMETERS::@1916 QueryFileInformation
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:1679
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:2838
unsigned short USHORT
Definition: pedump.c:61
USHORT UnparsedNameLength
Definition: fltkernel.h:620
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
USHORT FLT_FILE_NAME_PARSED_FLAGS
Definition: fltkernel.h:798
_Must_inspect_result_ _In_ PKTRANSACTION _In_ PFLT_CONTEXT TransactionContext
Definition: fltkernel.h:2452
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:1901
_Inout_ PLIST_ENTRY NotifyList
Definition: fltkernel.h:2238
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1872
#define DEVICE_TYPE
Definition: guid.c:10
_Must_inspect_result_ _In_ ULONG VolumeListSize
Definition: fltkernel.h:1792
PVOID(FLTAPI * PFLT_CONTEXT_ALLOCATE_CALLBACK)(_In_ POOL_TYPE PoolType, _In_ SIZE_T Size, _In_ FLT_CONTEXT_TYPE ContextType)
Definition: fltkernel.h:499
struct _FLT_GENERIC_WORKITEM * PFLT_GENERIC_WORKITEM
Definition: fltkernel.h:864
#define _Out_opt_
Definition: ms_sal.h:346
ULONG FLT_CALLBACK_DATA_FLAGS
Definition: fltkernel.h:450
_In_ FLT_CONTEXT_TYPE _Out_ PFLT_RELATED_CONTEXTS Contexts
Definition: fltkernel.h:1453
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:1035
unsigned int * PULONG
Definition: retypes.h:1
struct _FLT_REGISTRATION * PFLT_REGISTRATION
#define NULL
Definition: types.h:112
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:2238
#define _Outptr_opt_
Definition: ms_sal.h:429
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:1743
struct _FLT_PARAMETERS::@1935 FastIoCheckIfPossible
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 PDCB ParentDirectory
Definition: fatprocs.h:698
#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
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:2238
_In_ FLT_SET_CONTEXT_OPERATION _In_ PFLT_CONTEXT NewContext
Definition: fltkernel.h:1467
struct _FLT_PARAMETERS::@1925 LockControl
PFLT_IO_PARAMETER_BLOCK CONST Iopb
Definition: fltkernel.h:460
struct _FLT_PARAMETERS::@1923::@1951 Direct
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
union _FLT_PARAMETERS::@1931 Pnp
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FILE_INFORMATION_CLASS FileInformationClass
Definition: fltkernel.h:1306
struct _FLT_PARAMETERS::@1930 SetQuota
UNICODE_STRING FileSystemDeviceName
Definition: fltkernel.h:831
_Must_inspect_result_ _In_opt_ PFLT_FILTER _In_ ULONG InstanceListSize
Definition: fltkernel.h:1803
NTSTATUS(* PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE)(_In_opt_ PVOID Context, _In_ PFLT_CALLBACK_DATA CallbackData)
Definition: fltkernel.h:929
Definition: iotypes.h:189
_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
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3810
ULONG POINTER_ALIGNMENT FsControlCode
Definition: fltkernel.h:205
PVOID DirectoryBuffer
Definition: fltkernel.h:185
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:1443
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:1467
BOOLEAN FLTAPI FltIsIoCanceled(_In_ PFLT_CALLBACK_DATA CallbackData)
struct _FLT_PARAMETERS::@1918 QueryEa
#define _Outptr_result_maybenull_
Definition: ms_sal.h:428
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:1872
struct _FLT_PARAMETERS::@1931::@1965 QueryDeviceText
_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:1987
PVOID InputSystemBuffer
Definition: fltkernel.h:225
const char * PCSTR
Definition: typedefs.h:52
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD _Inout_ PIO_PRIORITY_INFO PriorityInfo
Definition: fltkernel.h:2652
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
Definition: cddata.c:197
_When_(CallbackStatus==FLT_PREOP_COMPLETE, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(CallbackStatus!
_Must_inspect_result_ _In_ LPCGUID ULONG SizeOfContext
Definition: fltkernel.h:2519
struct _FLT_PARAMETERS::@1933 AcquireForModifiedPageWriter
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
struct _FLT_PARAMETERS::@1931::@1957 StartDevice
_In_ FILTER_INFORMATION_CLASS InformationClass
Definition: fltkernel.h:1713
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID NextEcpType
Definition: fltkernel.h:2620
ULONG POINTER_ALIGNMENT CompletionFilter
Definition: fltkernel.h:190
_ANONYMOUS_UNION union _FLT_CALLBACK_DATA::@1967 DUMMYUNIONNAME
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::@1931::@1959 QueryInterface
ULONG NOTIFICATION_MASK
Definition: ktmtypes.h:99
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
Definition: env.c:47
struct _FLT_PARAMETERS::@1923::@1950 Buffered
_Must_inspect_result_ _In_ WDFDRIVER Driver
Definition: wdfcontrol.h:83
struct _FLT_TAG_DATA_BUFFER::@1969::@1972 GenericReparseBuffer
FLT_FILE_NAME_OPTIONS Format
Definition: fltkernel.h:808
PVOID QueueContext[2]
Definition: fltkernel.h:466
struct _FLT_PARAMETERS::@1929 QueryQuota
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _Out_writes_bytes_to_(Length, *BytesRead) PVOID Buffer
struct _FLT_TAG_DATA_BUFFER::@1969::@1973 GenericGUIDReparseBuffer
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:1872
ULONG FLT_FILTER_UNLOAD_FLAGS
Definition: fltkernel.h:649
_Inout_opt_ PUNICODE_STRING Extension
Definition: fltkernel.h:1092
#define _Outptr_opt_result_bytebuffer_(size)
Definition: ms_sal.h:473
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT DriverContext
Definition: wdfdevice.h:1697
struct _FLT_PARAMETERS::@1941 MountVolume
_Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING Stream
Definition: fltkernel.h:1092
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:1751
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOID * NextEcpContext
Definition: fltkernel.h:2620
IN PVOID Instance
Definition: pci.h:361
DEVICE_RELATION_TYPE Type
Definition: fltkernel.h:309
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING FullDirectoryName
Definition: fltkernel.h:2238
#define _Requires_lock_held_(a)
Definition: btrfs_drv.h:206
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ PFLT_DEFERRED_IO_WORKITEM_ROUTINE _In_ WORK_QUEUE_TYPE QueueType
Definition: fltkernel.h:1976
ULONG OutputBufferLength
Definition: fltkernel.h:203
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:251
_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
NTSTATUS NTAPI FltLoadFilter(_In_ PCUNICODE_STRING FilterName)
Definition: Filter.c:62
struct _FLT_CONTEXT_REGISTRATION FLT_CONTEXT_REGISTRATION
_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:2550
_ANONYMOUS_UNION union _FLT_TAG_DATA_BUFFER::@1969 DUMMYUNIONNAME
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:2407