ReactOS 0.4.15-dev-7788-g1ad9096
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
26extern "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
84typedef struct _FLT_FILTER *PFLT_FILTER;
85typedef struct _FLT_VOLUME *PFLT_VOLUME;
87typedef struct _FLT_PORT *PFLT_PORT;
88
90
91#if !FLT_MGR_LONGHORN
92typedef struct _KTRANSACTION *PKTRANSACTION;
93#endif
94
95#if !defined(_AMD64_) && !defined(_IA64_) && !defined(_ARM_)
96#include "pshpack4.h"
97#endif
98
99typedef union _FLT_PARAMETERS {
100 struct {
109 struct {
116 struct {
123 struct {
130 struct {
137 struct {
142 struct {
146 _ANONYMOUS_UNION union {
147 _ANONYMOUS_STRUCT struct {
156 struct {
164 struct {
169 struct {
174 struct {
179 union {
180 struct {
188 struct {
197 union {
198 struct {
202 struct {
207 struct {
215 struct {
221 struct {
230 union {
231 struct {
236 struct {
244 struct {
250 struct {
258 struct {
266 struct {
274 struct {
280 struct {
284 struct {
290 struct {
298 struct {
303 union {
304 struct {
308 struct {
311 struct {
318 struct {
321 struct {
324 struct {
330 struct {
333 struct {
336 struct {
340 struct {
346 struct {
350 struct {
354 struct {
357 struct {
363 struct {
367 struct {
373 struct {
376 struct {
380 PMDL *MdlChain;
382 struct {
386 struct {
389 struct {
398
399#if !defined(_AMD64_) && !defined(_IA64_) && !defined(_ARM_)
400#include "poppack.h"
401#endif
402
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
457typedef struct _FLT_CALLBACK_DATA {
463 _ANONYMOUS_UNION union {
464 _ANONYMOUS_STRUCT struct {
466 PVOID QueueContext[2];
472
473typedef struct _FLT_RELATED_OBJECTS {
480 PKTRANSACTION CONST Transaction;
483
484typedef struct _FLT_RELATED_CONTEXTS {
492
493typedef VOID
497
498typedef PVOID
503
504typedef VOID
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
545typedef NTSTATUS
547 _In_ PCFLT_RELATED_OBJECTS FltObjects,
549 _In_ DEVICE_TYPE VolumeDeviceType,
550 _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType);
551
553
554typedef 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
567typedef 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
617typedef 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];
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
653typedef NTSTATUS
656
657typedef struct _FLT_NAME_CONTROL {
660
662
663typedef 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
677typedef NTSTATUS
681 _In_ USHORT VolumeNameLength,
683 _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName,
684 _In_ ULONG ExpandComponentNameLength,
686 _Inout_ PVOID *NormalizationContext);
687
688typedef NTSTATUS
693 _In_ USHORT VolumeNameLength,
695 _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName,
696 _In_ ULONG ExpandComponentNameLength,
698 _Inout_ PVOID *NormalizationContext);
699
700typedef VOID
702 _In_opt_ PVOID *NormalizationContext);
703
704#if FLT_MGR_LONGHORN
705typedef 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
728typedef struct _FLT_REGISTRATION {
742#if FLT_MGR_LONGHORN
745#endif /* FLT_MGR_LONGHORN */
747
748typedef 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
763typedef 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
834
835#define FLT_PORT_CONNECT 0x0001
836#define FLT_PORT_ALL_ACCESS (FLT_PORT_CONNECT | STANDARD_RIGHTS_ALL)
837
838typedef NTSTATUS
839(FLTAPI *PFLT_MESSAGE_NOTIFY)(
840 _In_opt_ PVOID PortCookie,
845 _Out_ PULONG ReturnOutputBufferLength);
846
847typedef NTSTATUS
848(FLTAPI *PFLT_CONNECT_NOTIFY)(
851 _In_reads_bytes_opt_(SizeOfContext) PVOID ConnectionContext,
853 _Outptr_result_maybenull_ PVOID *ConnectionPortCookie);
854
855typedef VOID
856(FLTAPI *PFLT_DISCONNECT_NOTIFY)(
857 _In_opt_ PVOID ConnectionCookie);
858
859typedef VOID
862
863typedef struct _FLT_DEFERRED_IO_WORKITEM *PFLT_DEFERRED_IO_WORKITEM;
864typedef struct _FLT_GENERIC_WORKITEM *PFLT_GENERIC_WORKITEM;
865
866typedef VOID
871
872typedef VOID
874 _In_ PFLT_GENERIC_WORKITEM FltWorkItem,
877
879
881
882typedef NTSTATUS
887
888typedef VOID
892
898
899typedef VOID
903
904typedef VOID
908
909typedef VOID
913
915
927
928typedef NTSTATUS
932
933typedef VOID
937
938typedef VOID
942
943VOID
944FLTAPI
947
948VOID
949FLTAPI
952
954FLTAPI
957
960FLTAPI
963 _In_ PCFLT_RELATED_OBJECTS FltObjects,
966 _In_ PFLT_POST_OPERATION_CALLBACK SafePostCallback,
967 _Out_ PFLT_POSTOP_CALLBACK_STATUS RetPostOperationStatus);
968
972FLTAPI
973FltCheckAndGrowNameControl(
974 _Inout_ PFLT_NAME_CONTROL NameCtrl,
976
980FLTAPI
981FltPurgeFileNameInformationCache(
984
988FLTAPI
993
995VOID
996FLTAPI
999
1003FLTAPI
1006
1009PVOID
1010FLTAPI
1011FltGetRoutineAddress(
1012 _In_ PCSTR FltMgrRoutineName);
1013
1016VOID
1017FLTAPI
1018FltCompletePendedPreOperation(
1022
1024VOID
1025FLTAPI
1026FltCompletePendedPostOperation(
1028
1032FLTAPI
1033FltRequestOperationStatusCallback(
1037
1039_When_((PoolType!=NonPagedPoolNx), _IRQL_requires_max_(APC_LEVEL))
1040PVOID
1041FLTAPI
1042FltAllocatePoolAlignedWithTag(
1046 _In_ ULONG Tag);
1047
1049VOID
1050FLTAPI
1051FltFreePoolAlignedWithTag(
1055
1059FLTAPI
1064
1068FLTAPI
1074
1076VOID
1077FLTAPI
1080
1082VOID
1083FLTAPI
1084FltReferenceFileNameInformation(
1086
1089FLTAPI
1090FltParseFileName(
1095
1098FLTAPI
1099FltParseFileNameInformation(
1101
1105FLTAPI
1106FltGetTunneledName(
1110
1114FLTAPI
1119
1123FLTAPI
1132
1136FLTAPI
1137FltIsDirectory(
1141
1145FLTAPI
1147 _In_ PCUNICODE_STRING FilterName);
1148
1152FLTAPI
1154 _In_ PCUNICODE_STRING FilterName);
1155
1159FLTAPI
1165
1169FLTAPI
1170FltAttachVolumeAtAltitude(
1176
1180FLTAPI
1185
1189FLTAPI
1190FltAllocateCallbackData(
1194
1196VOID
1197FLTAPI
1198FltFreeCallbackData(
1200
1202VOID
1203FLTAPI
1204FltReuseCallbackData(
1206
1209VOID
1210FLTAPI
1211FltPerformSynchronousIo(
1213
1218FLTAPI
1219FltPerformAsynchronousIo(
1223
1227FLTAPI
1228FltCreateFile(
1243
1248FLTAPI
1249FltReadFile(
1250 _In_ PFLT_INSTANCE InitiatingInstance,
1259
1263FLTAPI
1264FltTagFile(
1265 _In_ PFLT_INSTANCE InitiatingInstance,
1271
1275FLTAPI
1276FltUntagFile(
1277 _In_ PFLT_INSTANCE InitiatingInstance,
1280 _In_opt_ GUID *Guid);
1281
1286FLTAPI
1287FltWriteFile(
1288 _In_ PFLT_INSTANCE InitiatingInstance,
1297
1301FLTAPI
1302FltQueryInformationFile(
1309
1313FLTAPI
1314FltSetInformationFile(
1320
1324FLTAPI
1325FltQueryVolumeInformationFile(
1332
1336FLTAPI
1337FltQuerySecurityObject(
1344
1348FLTAPI
1349FltSetSecurityObject(
1354
1358FLTAPI
1359FltFlushBuffers(
1362
1366FLTAPI
1367FltFsControlFile(
1376
1380FLTAPI
1381FltDeviceIoControlFile(
1390
1393VOID
1394FLTAPI
1395FltReissueSynchronousIo(
1396 _In_ PFLT_INSTANCE InitiatingInstance,
1398
1401FLTAPI
1402FltClose(
1404
1406VOID
1407FLTAPI
1408FltCancelFileOpen(
1411
1415FLTAPI
1416FltCreateSystemVolumeInformationFolder(
1418
1420BOOLEAN
1421FLTAPI
1422FltSupportsFileContexts(
1424
1426BOOLEAN
1427FLTAPI
1428FltSupportsStreamContexts(
1430
1432BOOLEAN
1433FLTAPI
1434FltSupportsStreamHandleContexts(
1436
1440FLTAPI
1441FltAllocateContext(
1447
1449VOID
1450FLTAPI
1451FltGetContexts(
1452 _In_ PCFLT_RELATED_OBJECTS FltObjects,
1455
1457VOID
1458FLTAPI
1459FltReleaseContexts(
1461
1464FLTAPI
1465FltSetVolumeContext(
1470
1473FLTAPI
1474FltSetInstanceContext(
1479
1482FLTAPI
1483FltSetFileContext(
1489
1492FLTAPI
1493FltSetStreamContext(
1499
1502FLTAPI
1503FltSetStreamHandleContext(
1509
1511VOID
1512FLTAPI
1513FltDeleteContext(
1515
1518FLTAPI
1519FltDeleteVolumeContext(
1523
1526FLTAPI
1527FltDeleteInstanceContext(
1530
1533FLTAPI
1534FltDeleteFileContext(
1538
1541FLTAPI
1542FltDeleteStreamContext(
1546
1549FLTAPI
1550FltDeleteStreamHandleContext(
1554
1557FLTAPI
1558FltGetVolumeContext(
1562
1565FLTAPI
1566FltGetInstanceContext(
1569
1572FLTAPI
1573FltGetFileContext(
1577
1580FLTAPI
1581FltGetStreamContext(
1585
1588FLTAPI
1589FltGetStreamHandleContext(
1593
1595VOID
1596FLTAPI
1597FltReferenceContext(
1599
1601VOID
1602FLTAPI
1603FltReleaseContext(
1605
1608FLTAPI
1610 _In_ PCUNICODE_STRING FilterName,
1612
1615FLTAPI
1616FltGetVolumeFromName(
1620
1623FLTAPI
1624FltGetVolumeInstanceFromName(
1629
1632FLTAPI
1633FltGetVolumeFromInstance(
1636
1639FLTAPI
1640FltGetFilterFromInstance(
1643
1646FLTAPI
1647FltGetVolumeFromFileObject(
1651
1654FLTAPI
1655FltGetVolumeFromDeviceObject(
1659
1662FLTAPI
1663FltGetDeviceObject(
1666
1669FLTAPI
1673
1676FLTAPI
1677FltGetLowerInstance(
1678 _In_ PFLT_INSTANCE CurrentInstance,
1680
1683FLTAPI
1684FltGetUpperInstance(
1685 _In_ PFLT_INSTANCE CurrentInstance,
1687
1690FLTAPI
1691FltGetTopInstance(
1694
1697FLTAPI
1698FltGetBottomInstance(
1701
1702LONG
1703FLTAPI
1705 _In_ PFLT_INSTANCE Instance1,
1706 _In_ PFLT_INSTANCE Instance2);
1707
1710FLTAPI
1711FltGetFilterInformation(
1713 _In_ FILTER_INFORMATION_CLASS InformationClass,
1717
1720FLTAPI
1721FltGetInstanceInformation(
1723 _In_ INSTANCE_INFORMATION_CLASS InformationClass,
1727
1730FLTAPI
1736
1740FLTAPI
1741FltIsVolumeWritable(
1744
1748FLTAPI
1749FltGetVolumeGuidName(
1753
1757FLTAPI
1758FltQueryVolumeInformation(
1764
1768FLTAPI
1769FltSetVolumeInformation(
1772 _Out_writes_bytes_(Length) PVOID FsInformation,
1775
1779FLTAPI
1780FltEnumerateFilters(
1784
1788FLTAPI
1794
1798FLTAPI
1799FltEnumerateInstances(
1805
1809FLTAPI
1810FltEnumerateFilterInformation(
1812 _In_ FILTER_INFORMATION_CLASS InformationClass,
1816
1820FLTAPI
1821FltEnumerateInstanceInformationByFilter(
1824 _In_ INSTANCE_INFORMATION_CLASS InformationClass,
1828
1832FLTAPI
1833FltEnumerateInstanceInformationByVolume(
1836 _In_ INSTANCE_INFORMATION_CLASS InformationClass,
1840
1844FLTAPI
1845FltEnumerateVolumeInformation(
1848 _In_ FILTER_VOLUME_INFORMATION_CLASS InformationClass,
1852
1856FLTAPI
1859
1861VOID
1862FLTAPI
1865
1869FLTAPI
1870FltCreateCommunicationPort(
1879
1881VOID
1882FLTAPI
1883FltCloseCommunicationPort(
1885
1887VOID
1888FLTAPI
1889FltCloseClientPort(
1892
1896FLTAPI
1897FltSendMessage(
1905
1909FLTAPI
1913
1915VOID
1916FLTAPI
1919
1922BOOLEAN
1923FLTAPI
1924FltCancelIo(
1926
1929FLTAPI
1930FltSetCancelCompletion(
1933
1937FLTAPI
1938FltClearCancelCompletion(
1940
1941BOOLEAN
1942FLTAPI
1945
1949FLTAPI
1950FltAllocateDeferredIoWorkItem(VOID);
1951
1953VOID
1954FLTAPI
1955FltFreeDeferredIoWorkItem(
1956 _In_ PFLT_DEFERRED_IO_WORKITEM FltWorkItem);
1957
1961FLTAPI
1962FltAllocateGenericWorkItem(VOID);
1963
1965VOID
1966FLTAPI
1967FltFreeGenericWorkItem(
1968 _In_ PFLT_GENERIC_WORKITEM FltWorkItem);
1969
1973FLTAPI
1974FltQueueDeferredIoWorkItem(
1975 _In_ PFLT_DEFERRED_IO_WORKITEM FltWorkItem,
1980
1984FLTAPI
1985FltQueueGenericWorkItem(
1986 _In_ PFLT_GENERIC_WORKITEM FltWorkItem,
1991
1995FLTAPI
1996FltLockUserBuffer(
1998
2000FLTAPI
2003 _Outptr_opt_ PMDL **MdlAddressPointer,
2007
2008PMDL
2012
2013VOID
2017
2019FLTAPI
2029
2030VOID
2031FLTAPI
2034
2035VOID
2036FLTAPI
2039
2042FLTAPI
2048
2051FLTAPI
2055
2058FLTAPI
2062
2064VOID
2065FLTAPI
2066FltInitializeOplock(
2067 _Out_ POPLOCK Oplock);
2068
2070VOID
2071FLTAPI
2072FltUninitializeOplock(
2073 _In_ POPLOCK Oplock);
2074
2078FLTAPI
2079FltOplockFsctrl(
2080 _In_ POPLOCK Oplock,
2083
2087FLTAPI
2088FltCheckOplock(
2089 _In_ POPLOCK Oplock,
2094
2096BOOLEAN
2097FLTAPI
2098FltOplockIsFastIoPossible(
2099 _In_ POPLOCK Oplock);
2100
2102BOOLEAN
2103FLTAPI
2104FltCurrentBatchOplock(
2105 _In_ POPLOCK Oplock);
2106
2107VOID
2108FLTAPI
2110 _Out_ PFILE_LOCK FileLock);
2111
2112VOID
2113FLTAPI
2115 _In_ PFILE_LOCK FileLock);
2116
2120FLTAPI
2121FltAllocateFileLock(
2122 _In_opt_ PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE CompleteLockCallbackDataRoutine,
2124
2126VOID
2127FLTAPI
2128FltFreeFileLock(
2129 _In_ PFILE_LOCK FileLock);
2130
2134FLTAPI
2135FltProcessFileLock(
2136 _In_ PFILE_LOCK FileLock,
2139
2142BOOLEAN
2143FLTAPI
2144FltCheckLockForReadAccess(
2145 _In_ PFILE_LOCK FileLock,
2147
2150BOOLEAN
2151FLTAPI
2152FltCheckLockForWriteAccess(
2153 _In_ PFILE_LOCK FileLock,
2155
2156_Acquires_lock_(_Global_critical_region_)
2158VOID
2159FLTAPI
2160FltAcquireResourceExclusive(
2162
2163_Acquires_lock_(_Global_critical_region_)
2165VOID
2166FLTAPI
2167FltAcquireResourceShared(
2169
2170_Releases_lock_(_Global_critical_region_)
2172VOID
2173FLTAPI
2174FltReleaseResource(
2176
2178VOID
2179FLTAPI
2180FltInitializePushLock(
2181 _Out_ PEX_PUSH_LOCK PushLock);
2182
2184VOID
2185FLTAPI
2186FltDeletePushLock(
2187 _In_ PEX_PUSH_LOCK PushLock);
2188
2189_Acquires_lock_(_Global_critical_region_)
2191VOID
2192FLTAPI
2193FltAcquirePushLockExclusive(
2195
2196_Acquires_lock_(_Global_critical_region_)
2198VOID
2199FLTAPI
2200FltAcquirePushLockShared(
2202
2203_Releases_lock_(_Global_critical_region_)
2205VOID
2206FLTAPI
2207FltReleasePushLock(
2208 _Inout_ _Requires_lock_held_(*_Curr_) _Releases_lock_(*_Curr_) PEX_PUSH_LOCK PushLock);
2209
2210BOOLEAN
2211FLTAPI
2214
2216BOOLEAN
2217FLTAPI
2218FltIs32bitProcess(
2220
2223FLTAPI
2224FltGetRequestorProcess(
2226
2228ULONG
2229FLTAPI
2230FltGetRequestorProcessId(
2232
2234VOID
2235FLTAPI
2236FltNotifyFilterChangeDirectory(
2237 _Inout_ PNOTIFY_SYNC NotifySync,
2248
2249PCHAR
2250FLTAPI
2252 _In_ UCHAR IrpMajorCode);
2253
2254#if FLT_MGR_AFTER_XPSP2
2255
2259FLTAPI
2260FltCreateFileEx(
2275 _In_ ULONG Flags);
2276
2280FLTAPI
2281FltOpenVolume(
2285
2289FLTAPI
2290FltQueryEaFile(
2301
2305FLTAPI
2306FltSetEaFile(
2310 _In_ ULONG Length);
2311
2312#endif /* FLT_MGR_AFTER_XPSP2 */
2313
2314#if FLT_MGR_LONGHORN
2315
2319FLTAPI
2320FltCreateFileEx2(
2337
2341FLTAPI
2342FltQueryDirectoryFile(
2352
2354BOOLEAN
2355FLTAPI
2356FltSupportsFileContextsEx(
2359
2362FLTAPI
2363FltSetTransactionContext(
2365 _In_ PKTRANSACTION Transaction,
2369
2372FLTAPI
2373FltDeleteTransactionContext(
2375 _In_ PKTRANSACTION Transaction,
2377
2380FLTAPI
2381FltGetTransactionContext(
2383 _In_ PKTRANSACTION Transaction,
2385
2387BOOLEAN
2388FLTAPI
2389FltIsFltMgrVolumeDeviceObject(
2391
2394FLTAPI
2395FltGetVolumeInformation(
2397 _In_ FILTER_VOLUME_INFORMATION_CLASS InformationClass,
2401
2404FLTAPI
2405FltGetFileSystemType(
2407 _Out_ PFLT_FILESYSTEM_TYPE FileSystemType);
2408
2412FLTAPI
2413FltIsVolumeSnapshot(
2416
2421FLTAPI
2422FltCancellableWaitForSingleObject(
2426
2431FLTAPI
2432FltCancellableWaitForMultipleObjects(
2434 _In_reads_(Count) PVOID ObjectArray[],
2439
2441HANDLE
2442FLTAPI
2443FltGetRequestorProcessIdEx(
2445
2449FLTAPI
2450FltEnlistInTransaction(
2452 _In_ PKTRANSACTION Transaction,
2455
2458FLTAPI
2459FltRollbackEnlistment(
2461 _In_ PKTRANSACTION Transaction,
2463
2466FLTAPI
2467FltPrePrepareComplete(
2469 _In_ PKTRANSACTION Transaction,
2471
2474FLTAPI
2475FltPrepareComplete(
2477 _In_ PKTRANSACTION Transaction,
2479
2482FLTAPI
2483FltCommitComplete(
2485 _In_ PKTRANSACTION Transaction,
2487
2490FLTAPI
2491FltCommitFinalizeComplete(
2493 _In_ PKTRANSACTION Transaction,
2495
2498FLTAPI
2499FltRollbackComplete(
2501 _In_ PKTRANSACTION Transaction,
2503
2507FLTAPI
2508FltAllocateExtraCreateParameterList(
2512
2516FLTAPI
2517FltAllocateExtraCreateParameter(
2525
2527VOID
2528FLTAPI
2529FltInitExtraCreateParameterLookasideList(
2534 _In_ ULONG Tag);
2535
2537VOID
2538FLTAPI
2539FltDeleteExtraCreateParameterLookasideList(
2543
2547FLTAPI
2548FltAllocateExtraCreateParameterFromLookasideList(
2556
2559FLTAPI
2560FltInsertExtraCreateParameter(
2564
2567FLTAPI
2568FltFindExtraCreateParameter(
2574
2577FLTAPI
2578FltRemoveExtraCreateParameter(
2584
2586VOID
2587FLTAPI
2588FltFreeExtraCreateParameterList(
2591
2593VOID
2594FLTAPI
2595FltFreeExtraCreateParameter(
2598
2601FLTAPI
2602FltGetEcpListFromCallbackData(
2606
2609FLTAPI
2610FltSetEcpListIntoCallbackData(
2614
2617FLTAPI
2618FltGetNextExtraCreateParameter(
2625
2627VOID
2628FLTAPI
2629FltAcknowledgeEcp(
2632
2634BOOLEAN
2635FLTAPI
2636FltIsEcpAcknowledged(
2639
2641BOOLEAN
2642FLTAPI
2643FltIsEcpFromUserMode(
2646
2649FLTAPI
2650FltRetrieveIoPriorityInfo(
2655
2658FLTAPI
2659FltApplyPriorityInfoThread(
2660 _In_ PIO_PRIORITY_INFO InputPriorityInfo,
2663
2666FLTAPI
2667FltGetIoPriorityHint(
2669
2672FLTAPI
2673FltGetIoPriorityHintFromCallbackData(
2675
2678FLTAPI
2679FltSetIoPriorityHintIntoCallbackData(
2682
2685FLTAPI
2686FltGetIoPriorityHintFromFileObject(
2688
2692FLTAPI
2693FltSetIoPriorityHintIntoFileObject(
2696
2699FLTAPI
2700FltGetIoPriorityHintFromThread(
2702
2705FLTAPI
2706FltSetIoPriorityHintIntoThread(
2709
2710#endif /* FLT_MGR_LONGHORN */
2711
2712#if FLT_MGR_WIN7
2713
2717FLTAPI
2718FltAllocateCallbackDataEx(
2723
2726PVOID
2727FLTAPI
2728FltGetNewSystemBufferAddress(
2730
2734FLTAPI
2735FltCheckOplockEx(
2736 _In_ POPLOCK Oplock,
2742
2744BOOLEAN
2745FLTAPI
2746FltCurrentOplock(
2747 _In_ POPLOCK Oplock);
2748
2750BOOLEAN
2751FLTAPI
2752FltCurrentOplockH(
2753 _In_ POPLOCK Oplock);
2754
2757FLTAPI
2758FltOplockBreakH(
2759 _In_ POPLOCK Oplock,
2765
2768FLTAPI
2769FltOplockBreakToNone(
2770 _In_ POPLOCK Oplock,
2775
2778FLTAPI
2779FltOplockBreakToNoneEx(
2780 _In_ POPLOCK Oplock,
2786
2788BOOLEAN
2789FLTAPI
2790FltOplockIsSharedRequest(
2792
2796FLTAPI
2797FltOplockFsctrlEx(
2798 _In_ POPLOCK Oplock,
2801 _In_ ULONG Flags);
2802
2803BOOLEAN
2804FLTAPI
2808
2812FLTAPI
2813FltGetRequestorSessionId(
2816
2819FLTAPI
2820FltAdjustDeviceStackSizeForIoRedirection(
2821 _In_ PFLT_INSTANCE SourceInstance,
2824
2827FLTAPI
2828FltIsIoRedirectionAllowed(
2829 _In_ PFLT_INSTANCE SourceInstance,
2832
2835FLTAPI
2836FltIsIoRedirectionAllowedForOperation(
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__ */
NTSTATUS NTAPI FltStartFiltering(_In_ PFLT_FILTER Filter)
Definition: Filter.c:377
NTSTATUS NTAPI FltGetFilterFromName(_In_ PCUNICODE_STRING FilterName, _Out_ PFLT_FILTER *RetFilter)
Definition: Filter.c:403
VOID FLTAPI FltUnregisterFilter(_In_ PFLT_FILTER Filter)
Definition: Filter.c:319
NTSTATUS NTAPI FltRegisterFilter(_In_ PDRIVER_OBJECT DriverObject, _In_ const FLT_REGISTRATION *Registration, _Out_ PFLT_FILTER *RetFilter)
Definition: Filter.c:112
NTSTATUS NTAPI FltLoadFilter(_In_ PCUNICODE_STRING FilterName)
Definition: Filter.c:62
NTSTATUS NTAPI FltUnloadFilter(_In_ PCUNICODE_STRING FilterName)
Definition: Filter.c:86
NTSTATUS FLTAPI FltBuildDefaultSecurityDescriptor(_Outptr_ PSECURITY_DESCRIPTOR *SecurityDescriptor, _In_ ACCESS_MASK DesiredAccess)
Definition: Misc.c:27
VOID FLTAPI FltReleaseFileNameInformation(_In_ PFLT_FILE_NAME_INFORMATION FileNameInformation)
Definition: Misc.c:109
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
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
VOID FLTAPI FltFreeSecurityDescriptor(_In_ PSECURITY_DESCRIPTOR SecurityDescriptor)
Definition: Misc.c:39
NTSTATUS FLTAPI FltGetDiskDeviceObject(_In_ PFLT_VOLUME Volume, _Outptr_ PDEVICE_OBJECT *DiskDeviceObject)
Definition: Misc.c:48
NTSTATUS FLTAPI FltGetFileNameInformation(_In_ PFLT_CALLBACK_DATA CallbackData, _In_ FLT_FILE_NAME_OPTIONS NameOptions, _Outptr_ PFLT_FILE_NAME_INFORMATION *FileNameInformation)
Definition: Misc.c:75
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
unsigned char BOOLEAN
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
NTSTATUS FLTAPI FltDetachVolume(_Inout_ PFLT_FILTER Filter, _Inout_ PFLT_VOLUME Volume, _In_opt_ PCUNICODE_STRING InstanceName)
Definition: Volume.c:184
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
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
NTSTATUS FLTAPI FltGetVolumeName(_In_ PFLT_VOLUME Volume, _Inout_opt_ PUNICODE_STRING VolumeName, _Out_opt_ PULONG BufferSizeNeeded)
Definition: Volume.c:207
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
_Acquires_exclusive_lock_ Resource _Acquires_shared_lock_ Resource _Inout_ PERESOURCE Resource
Definition: cdprocs.h:843
Definition: bufpool.h:45
Definition: bufpool.h:50
#define _Acquires_lock_(lock)
#define _Requires_lock_held_(lock)
#define _Requires_lock_not_held_(lock)
#define _Releases_lock_(lock)
_In_ PIRP _In_ PVOID InsertContext
Definition: csq.h:258
_In_opt_ PIRP _In_opt_ PVOID PeekContext
Definition: csq.h:160
_Out_ PKIRQL Irql
Definition: csq.h:179
#define NULL
Definition: types.h:112
#define DEVICE_TYPE
Definition: guid.c:10
#define NTSTATUS
Definition: precomp.h:21
#define _IRQL_requires_max_(irql)
Definition: driverspecs.h:230
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
UCHAR KIRQL
Definition: env_spec_w32.h:591
#define APC_LEVEL
Definition: env_spec_w32.h:695
KIRQL * PKIRQL
Definition: env_spec_w32.h:592
ERESOURCE * PERESOURCE
Definition: env_spec_w32.h:595
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
#define FlagOn(_F, _SF)
Definition: ext2fs.h:179
IN PDCB ParentDirectory
Definition: fatprocs.h:698
struct _FLT_GENERIC_WORKITEM * PFLT_GENERIC_WORKITEM
Definition: fltkernel.h:864
_Must_inspect_result_ _In_ CONST FLT_REGISTRATION * Registration
Definition: fltkernel.h:991
_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)
PMDL FASTCALL FltGetSwappedBufferMdlAddress(_In_ PFLT_CALLBACK_DATA CallbackData)
_Must_inspect_result_ _Inout_opt_ PUNICODE_STRING VolumeName
Definition: fltkernel.h:1117
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG SenderBufferLength
Definition: fltkernel.h:1901
_Must_inspect_result_ _In_opt_ PFLT_FILTER _In_ ULONG _Out_ PULONG NumberInstancesReturned
Definition: fltkernel.h:1804
_Must_inspect_result_ _In_ PKTRANSACTION _In_ PFLT_CONTEXT TransactionContext
Definition: fltkernel.h:2453
struct _FLT_DEFERRED_IO_WORKITEM * PFLT_DEFERRED_IO_WORKITEM
Definition: fltkernel.h:863
struct _FLT_RELATED_CONTEXTS * PFLT_RELATED_CONTEXTS
_In_ PCUNICODE_STRING _Outptr_ PFLT_VOLUME * RetVolume
Definition: fltkernel.h:1619
_Out_opt_ PIO_PRIORITY_INFO OutputPriorityInfo
Definition: fltkernel.h:2661
VOID FASTCALL FltRetainSwappedBufferMdlAddress(_In_ PFLT_CALLBACK_DATA CallbackData)
struct _FLT_FILTER * PFLT_FILTER
Definition: fltkernel.h:84
VOID(FLTAPI * PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE)(_In_ PFLT_CALLBACK_DATA CallbackData, _In_opt_ PVOID Context)
Definition: fltkernel.h:939
_Must_inspect_result_ _In_ ULONG VolumeListSize
Definition: fltkernel.h:1792
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
_In_ FLT_SET_CONTEXT_OPERATION Operation
Definition: fltkernel.h:1467
_Must_inspect_result_ _Out_ PHANDLE _Outptr_opt_ PFILE_OBJECT * VolumeFileObject
Definition: fltkernel.h:2284
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_ ULONG _In_opt_ PULONG _In_ BOOLEAN RestartScan
Definition: fltkernel.h:2299
_Must_inspect_result_ PFLT_CALLBACK_DATA FLTAPI FltCbdqRemoveIo(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA_QUEUE_IO_CONTEXT Context)
VOID(FLTAPI * PFLT_CONTEXT_FREE_CALLBACK)(_In_ PVOID Pool, _In_ FLT_CONTEXT_TYPE ContextType)
Definition: fltkernel.h:505
struct _FLT_FILE_NAME_INFORMATION FLT_FILE_NAME_INFORMATION
_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:1258
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ ULONG OpenCount
Definition: fltkernel.h:2082
NTSTATUS(FLTAPI * PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK)(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags)
Definition: fltkernel.h:555
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_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_ ULONG EaListLength
Definition: fltkernel.h:2297
struct _FLT_CALLBACK_DATA_QUEUE * PFLT_CALLBACK_DATA_QUEUE
Definition: fltkernel.h:880
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)
ULONG FLT_OPERATION_REGISTRATION_FLAGS
Definition: fltkernel.h:603
_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:2245
_In_ IO_PRIORITY_HINT PriorityHint
Definition: fltkernel.h:2681
struct _FLT_REGISTRATION FLT_REGISTRATION
_In_ FLT_CONTEXT_TYPE DesiredContexts
Definition: fltkernel.h:1453
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_ PFILE_OBJECT _In_ ULONG _In_ FILE_INFORMATION_CLASS FileInformationClass
Definition: fltkernel.h:1307
VOID FLTAPI FltCbdqEnable(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq)
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FS_INFORMATION_CLASS FsInformationClass
Definition: fltkernel.h:1330
USHORT FLT_CONTEXT_REGISTRATION_FLAGS
Definition: fltkernel.h:509
PCHAR FLTAPI FltGetIrpName(_In_ UCHAR IrpMajorCode)
NTSTATUS(FLTAPI * PFLT_TRANSACTION_NOTIFICATION_CALLBACK)(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PFLT_CONTEXT TransactionContext, _In_ ULONG NotificationMask)
Definition: fltkernel.h:706
USHORT FLT_FILE_NAME_PARSED_FLAGS
Definition: fltkernel.h:798
VOID(FLTAPI * PFLT_COMPLETED_ASYNC_IO_CALLBACK)(_In_ PFLT_CALLBACK_DATA CallbackData, _In_ PFLT_CONTEXT Context)
Definition: fltkernel.h:749
_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:1236
_Must_inspect_result_ _In_ PFLT_INSTANCE _Out_ PBOOLEAN IsDirectory
Definition: fltkernel.h:1140
_Must_inspect_result_ _In_opt_ PUNLOCK_ROUTINE UnlockRoutine
Definition: fltkernel.h:2123
_Inout_opt_ PUNICODE_STRING Extension
Definition: fltkernel.h:1092
_Outptr_ PFLT_PORT * ClientPort
Definition: fltkernel.h:1891
struct _FLT_INSTANCE * PFLT_INSTANCE
Definition: fltkernel.h:86
enum _FLT_POSTOP_CALLBACK_STATUS FLT_POSTOP_CALLBACK_STATUS
_FLT_SET_CONTEXT_OPERATION
Definition: fltkernel.h:818
@ FLT_SET_CONTEXT_KEEP_IF_EXISTS
Definition: fltkernel.h:820
@ FLT_SET_CONTEXT_REPLACE_IF_EXISTS
Definition: fltkernel.h:819
_Must_inspect_result_ _Inout_ PFLT_VOLUME Volume
Definition: fltkernel.h:1162
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA CallbackData
Definition: fltkernel.h:2081
struct _FLT_VOLUME_PROPERTIES * PFLT_VOLUME_PROPERTIES
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG FsControlCode
Definition: fltkernel.h:1370
ULONG FLT_INSTANCE_TEARDOWN_FLAGS
Definition: fltkernel.h:559
ULONG FLT_IO_OPERATION_FLAGS
Definition: fltkernel.h:753
_Must_inspect_result_ _Out_ PULONG SessionId
Definition: fltkernel.h:2815
ULONG FLT_INSTANCE_SETUP_FLAGS
Definition: fltkernel.h:527
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
Definition: fltkernel.h:1231
_Must_inspect_result_ _In_opt_ PFILE_OBJECT _Outptr_ PFLT_CALLBACK_DATA * RetNewCallbackData
Definition: fltkernel.h:1193
_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:1242
struct _FLT_FILE_NAME_INFORMATION * PFLT_FILE_NAME_INFORMATION
ULONG FLT_FILE_NAME_OPTIONS
Definition: fltkernel.h:661
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID ReplyBuffer
Definition: fltkernel.h:1902
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_ ULONG FileNameLength
Definition: fltkernel.h:1129
LONG FLTAPI FltCompareInstanceAltitudes(_In_ PFLT_INSTANCE Instance1, _In_ PFLT_INSTANCE Instance2)
_Must_inspect_result_ _In_ LPCGUID ULONG SizeOfContext
Definition: fltkernel.h:2520
_Outptr_ PFLT_INSTANCE * UpperInstance
Definition: fltkernel.h:1686
_Must_inspect_result_ PFLT_CALLBACK_DATA FLTAPI FltCbdqRemoveNextIo(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_opt_ PVOID PeekContext)
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_opt_ PCUNICODE_STRING InstanceName
Definition: fltkernel.h:1163
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T ContextSize
Definition: fltkernel.h:1444
_Must_inspect_result_ _In_ LPCGUID ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback
Definition: fltkernel.h:2522
ULONG FLT_FILTER_UNLOAD_FLAGS
Definition: fltkernel.h:649
struct _FLT_IO_PARAMETER_BLOCK * PFLT_IO_PARAMETER_BLOCK
#define FLTFL_IO_OPERATION_PAGING
Definition: fltkernel.h:756
struct _FLT_CONTEXT_REGISTRATION * PFLT_CONTEXT_REGISTRATION
union _FLT_PARAMETERS * PFLT_PARAMETERS
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
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD _Inout_ PIO_PRIORITY_INFO PriorityInfo
Definition: fltkernel.h:2654
_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:1131
PVOID PFLT_CONTEXT
Definition: fltkernel.h:89
struct _FLT_REGISTRATION * PFLT_REGISTRATION
struct _FLT_OPERATION_REGISTRATION FLT_OPERATION_REGISTRATION
VOID FLTAPI FltCbdqDisable(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq)
USHORT FLT_CONTEXT_TYPE
Definition: fltkernel.h:436
IO_CSQ_IRP_CONTEXT FLT_CALLBACK_DATA_QUEUE_IO_CONTEXT
Definition: fltkernel.h:878
VOID(FLTAPI * PFLT_DISCONNECT_NOTIFY)(_In_opt_ PVOID ConnectionCookie)
Definition: fltkernel.h:856
_Must_inspect_result_ _In_ CONST FLT_REGISTRATION _Outptr_ PFLT_FILTER * RetFilter
Definition: fltkernel.h:992
#define FLTFL_IO_OPERATION_SYNCHRONOUS_PAGING
Definition: fltkernel.h:760
enum _FLT_PREOP_CALLBACK_STATUS FLT_PREOP_CALLBACK_STATUS
_In_ PFLT_INSTANCE _Out_ PBOOLEAN _Out_opt_ PBOOLEAN RedirectionAllowedAllIo
Definition: fltkernel.h:2840
_FLT_PREOP_CALLBACK_STATUS
Definition: fltkernel.h:572
@ FLT_PREOP_DISALLOW_FASTIO
Definition: fltkernel.h:576
@ FLT_PREOP_COMPLETE
Definition: fltkernel.h:577
@ FLT_PREOP_PENDING
Definition: fltkernel.h:575
@ FLT_PREOP_SUCCESS_WITH_CALLBACK
Definition: fltkernel.h:573
@ FLT_PREOP_SUCCESS_NO_CALLBACK
Definition: fltkernel.h:574
@ FLT_PREOP_SYNCHRONIZE
Definition: fltkernel.h:578
_Inout_ PVOID _In_ FSRTL_ECP_LOOKASIDE_FLAGS _In_ SIZE_T Size
Definition: fltkernel.h:2533
ULONG FLT_CALLBACK_DATA_QUEUE_FLAGS
Definition: fltkernel.h:914
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN ReturnSingleEntry
Definition: fltkernel.h:2295
_Must_inspect_result_ *NumberFiltersReturned PFLT_FILTER * FilterList
Definition: fltkernel.h:1781
_FLT_POSTOP_CALLBACK_STATUS
Definition: fltkernel.h:587
@ FLT_POSTOP_MORE_PROCESSING_REQUIRED
Definition: fltkernel.h:589
@ FLT_POSTOP_FINISHED_PROCESSING
Definition: fltkernel.h:588
VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_RELEASE)(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_opt_ KIRQL Irql)
Definition: fltkernel.h:905
_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:1904
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1801
_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:2247
_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:2093
_In_ ULONG VolumePropertiesLength
Definition: fltkernel.h:1734
_In_ PECP_LIST _In_opt_ PVOID CurrentEcpContext
Definition: fltkernel.h:2621
_In_ FLT_SET_CONTEXT_OPERATION _In_ PFLT_CONTEXT NewContext
Definition: fltkernel.h:1468
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
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ PFLT_DEFERRED_IO_WORKITEM_ROUTINE _In_ WORK_QUEUE_TYPE QueueType
Definition: fltkernel.h:1978
VOID(FLTAPI * PFLT_COMPLETE_CANCELED_CALLBACK)(_In_ PFLT_CALLBACK_DATA CallbackData)
Definition: fltkernel.h:860
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION _In_ ULONG _Out_opt_ PULONG LengthNeeded
Definition: fltkernel.h:1343
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOID * NextEcpContext
Definition: fltkernel.h:2623
BOOLEAN FLTAPI FltOplockKeysEqual(_In_opt_ PFILE_OBJECT Fo1, _In_opt_ PFILE_OBJECT Fo2)
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FILE_INFORMATION_CLASS _Out_opt_ PULONG LengthReturned
Definition: fltkernel.h:1308
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING FullDirectoryName
Definition: fltkernel.h:2240
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
struct _FLT_CALLBACK_DATA_QUEUE FLT_CALLBACK_DATA_QUEUE
Definition: fltkernel.h:880
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FILE_INFORMATION_CLASS _In_ BOOLEAN _In_opt_ PUNICODE_STRING FileName
Definition: fltkernel.h:2349
enum _FLT_PREOP_CALLBACK_STATUS * PFLT_PREOP_CALLBACK_STATUS
VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO)(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _Inout_ PFLT_CALLBACK_DATA Cbd)
Definition: fltkernel.h:910
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID NextEcpType
Definition: fltkernel.h:2622
_Must_inspect_result_ _In_ PFLT_GET_OPERATION_STATUS_CALLBACK _In_opt_ PVOID RequesterContext
Definition: fltkernel.h:1036
_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:1877
_Must_inspect_result_ _In_ FSRTL_ALLOCATE_ECPLIST_FLAGS _Outptr_ PECP_LIST * EcpList
Definition: fltkernel.h:2511
_Must_inspect_result_ *NumberFiltersReturned PFLT_FILTER _In_ ULONG FilterListSize
Definition: fltkernel.h:1782
_Must_inspect_result_ _In_opt_ PFLT_FILTER _In_ ULONG InstanceListSize
Definition: fltkernel.h:1803
_Outptr_ PDEVICE_OBJECT * DiskDeviceObject
Definition: fltkernel.h:1672
struct _FLT_IO_PARAMETER_BLOCK FLT_IO_PARAMETER_BLOCK
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG CompletionFilter
Definition: fltkernel.h:2243
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOID _Out_opt_ ULONG * NextEcpContextSize
Definition: fltkernel.h:2624
_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:1237
struct _FLT_CONTEXT_REGISTRATION FLT_CONTEXT_REGISTRATION
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
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA Data
Definition: fltkernel.h:1976
VOID FLTAPI FltClearCallbackDataDirty(_Inout_ PFLT_CALLBACK_DATA Data)
_Must_inspect_result_ _Inout_opt_ PUNICODE_STRING _Out_opt_ PULONG BufferSizeNeeded
Definition: fltkernel.h:1118
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_opt_ PVOID _In_opt_ PFLTOPLOCK_WAIT_COMPLETE_ROUTINE WaitCompletionRoutine
Definition: fltkernel.h:2092
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG InputBufferLength
Definition: fltkernel.h:1372
VOID(FLTAPI * PFLT_NORMALIZE_CONTEXT_CLEANUP)(_In_opt_ PVOID *NormalizationContext)
Definition: fltkernel.h:701
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN WatchTree
Definition: fltkernel.h:2241
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1872
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN IgnoreBuffer
Definition: fltkernel.h:2242
_Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING FinalComponent
Definition: fltkernel.h:1094
_Must_inspect_result_ _In_ FLT_FILE_NAME_OPTIONS NameOptions
Definition: fltkernel.h:1062
VOID(FLTAPI * PFLT_GENERIC_WORKITEM_ROUTINE)(_In_ PFLT_GENERIC_WORKITEM FltWorkItem, _In_ PVOID FltObject, _In_opt_ PVOID Context)
Definition: fltkernel.h:873
struct _FLT_OPERATION_REGISTRATION * PFLT_OPERATION_REGISTRATION
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_ PFLT_CALLBACK_DATA NotifyCallbackData
Definition: fltkernel.h:2244
_In_ PFLT_INSTANCE TargetInstance
Definition: fltkernel.h:2822
struct _FLT_PORT * PFLT_PORT
Definition: fltkernel.h:87
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_ ULONG _In_opt_ PULONG EaIndex
Definition: fltkernel.h:2298
VOID FLTAPI FltSetCallbackDataDirty(_Inout_ PFLT_CALLBACK_DATA Data)
_Outptr_ PFLT_INSTANCE * LowerInstance
Definition: fltkernel.h:1679
struct _FLT_RELATED_OBJECTS * PFLT_RELATED_OBJECTS
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2653
struct _FLT_CALLBACK_DATA * PFLT_CALLBACK_DATA
_In_ FLT_PREOP_CALLBACK_STATUS CallbackStatus
Definition: fltkernel.h:1020
ULONG FLT_ALLOCATE_CALLBACK_DATA_FLAGS
Definition: fltkernel.h:453
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES ObjectAttributes
Definition: fltkernel.h:1233
ULONG FLT_REGISTRATION_FLAGS
Definition: fltkernel.h:723
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
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
ULONG FLT_INSTANCE_QUERY_TEARDOWN_FLAGS
Definition: fltkernel.h:552
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG FileTag
Definition: fltkernel.h:1267
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_ PCUNICODE_STRING Altitude
Definition: fltkernel.h:1173
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)
_In_ PFLT_INSTANCE _Out_opt_ PBOOLEAN SourceDeviceStackSizeModified
Definition: fltkernel.h:2823
_Must_inspect_result_ _In_ PFLT_GET_OPERATION_STATUS_CALLBACK CallbackRoutine
Definition: fltkernel.h:1035
_Must_inspect_result_ _In_ FLT_FILE_NAME_OPTIONS _Outptr_ PFLT_FILE_NAME_INFORMATION * FileNameInformation
Definition: fltkernel.h:1063
enum _FLT_SET_CONTEXT_OPERATION * PFLT_SET_CONTEXT_OPERATION
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1875
_In_ FLT_CONTEXT_TYPE _Out_ PFLT_RELATED_CONTEXTS Contexts
Definition: fltkernel.h:1454
_Must_inspect_result_ _Out_ PHANDLE VolumeHandle
Definition: fltkernel.h:2283
_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)
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_opt_ PCUNICODE_STRING _Outptr_opt_result_maybenull_ PFLT_INSTANCE * RetInstance
Definition: fltkernel.h:1164
_In_ PFLT_INSTANCE _Out_ PBOOLEAN RedirectionAllowedThisIo
Definition: fltkernel.h:2839
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER ByteOffset
Definition: fltkernel.h:1252
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
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
Definition: fltkernel.h:1340
struct _FLT_RELATED_CONTEXTS FLT_RELATED_CONTEXTS
BOOLEAN FLTAPI FltIsCallbackDataDirty(_In_ PFLT_CALLBACK_DATA Data)
#define FLT_IS_IRP_OPERATION(Data)
Definition: fltkernel.h:430
_Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING Stream
Definition: fltkernel.h:1093
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE RootDirectory
Definition: fltkernel.h:1127
enum _FLT_POSTOP_CALLBACK_STATUS * PFLT_POSTOP_CALLBACK_STATUS
const struct _FLT_RELATED_OBJECTS * PCFLT_RELATED_OBJECTS
Definition: fltkernel.h:482
_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
IO_CSQ_IRP_CONTEXT * PFLT_CALLBACK_DATA_QUEUE_IO_CONTEXT
Definition: fltkernel.h:878
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID _Inout_opt_ PULONG ReplyLength
Definition: fltkernel.h:1903
union _FLT_PARAMETERS FLT_PARAMETERS
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
_Out_ PFLT_FILESYSTEM_TYPE FileSystemType
Definition: fltkernel.h:2407
enum _FLT_SET_CONTEXT_OPERATION FLT_SET_CONTEXT_OPERATION
VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO)(_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA Cbd)
Definition: fltkernel.h:889
_Must_inspect_result_ _In_ PKTRANSACTION _In_ PFLT_CONTEXT _In_ NOTIFICATION_MASK NotificationMask
Definition: fltkernel.h:2454
struct _FLT_RELATED_OBJECTS FLT_RELATED_OBJECTS
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_NAME_CONTROL FLT_NAME_CONTROL
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ PFLT_DEFERRED_IO_WORKITEM_ROUTINE WorkerRoutine
Definition: fltkernel.h:1977
_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:1235
struct _FLT_CALLBACK_DATA FLT_CALLBACK_DATA
_Must_inspect_result_ _In_ PVOID FltObject
Definition: fltkernel.h:1987
VOID FLTAPI FltUninitializeFileLock(_In_ PFILE_LOCK FileLock)
_In_ PECP_LIST _In_ LPCGUID _Outptr_opt_ PVOID _Out_opt_ ULONG * EcpContextSize
Definition: fltkernel.h:2573
struct _FLT_VOLUME * PFLT_VOLUME
Definition: fltkernel.h:85
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T _In_ POOL_TYPE PoolType
Definition: fltkernel.h:1445
_Must_inspect_result_ _Out_ PUNICODE_STRING VolumeGuidName
Definition: fltkernel.h:1751
ULONG FLT_CALLBACK_DATA_FLAGS
Definition: fltkernel.h:450
struct _FLT_TAG_DATA_BUFFER * PFLT_TAG_DATA_BUFFER
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
BOOLEAN FLTAPI FltIsIoCanceled(_In_ PFLT_CALLBACK_DATA CallbackData)
VOID(FLTAPI * PFLT_CONTEXT_CLEANUP_CALLBACK)(_In_ PFLT_CONTEXT Context, _In_ FLT_CONTEXT_TYPE ContextType)
Definition: fltkernel.h:494
_Inout_ PLIST_ENTRY NotifyList
Definition: fltkernel.h:2238
_Must_inspect_result_ *NumberFiltersReturned PFLT_FILTER _In_ ULONG _Out_ PULONG NumberFiltersReturned
Definition: fltkernel.h:1783
NTSTATUS(FLTAPI * PFLT_FILTER_UNLOAD_CALLBACK)(FLT_FILTER_UNLOAD_FLAGS Flags)
Definition: fltkernel.h:654
_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:2554
_In_ FLT_PREOP_CALLBACK_STATUS _In_opt_ PVOID Context
Definition: fltkernel.h:1021
_In_ PFLT_COMPLETE_CANCELED_CALLBACK CanceledCallback
Definition: fltkernel.h:1932
struct _FLT_NAME_CONTROL * PFLT_NAME_CONTROL
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE Instance
Definition: fltkernel.h:1071
_Must_inspect_result_ _In_ USHORT NewSize
Definition: fltkernel.h:975
_Must_inspect_result_ _Out_ PBOOLEAN IsWritable
Definition: fltkernel.h:1743
BOOLEAN FLTAPI FltIsOperationSynchronous(_In_ PFLT_CALLBACK_DATA CallbackData)
_In_ FLT_SET_CONTEXT_OPERATION _In_ PFLT_CONTEXT _Outptr_opt_result_maybenull_ PFLT_CONTEXT * OldContext
Definition: fltkernel.h:1469
_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:2246
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 FsContext
Definition: fltkernel.h:2239
_In_ PFLT_INSTANCE _Out_ PBOOLEAN RedirectionAllowed
Definition: fltkernel.h:2831
NTSTATUS(* PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE)(_In_opt_ PVOID Context, _In_ PFLT_CALLBACK_DATA CallbackData)
Definition: fltkernel.h:929
_Must_inspect_result_ _In_opt_ PFILE_OBJECT FileObject
Definition: fltkernel.h:983
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1874
struct _FLT_TAG_DATA_BUFFER FLT_TAG_DATA_BUFFER
_Must_inspect_result_ _Out_ PBOOLEAN IsSnapshotVolume
Definition: fltkernel.h:2415
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 _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1876
_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:1878
_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:2524
const struct _FLT_CONTEXT_REGISTRATION * PCFLT_CONTEXT_REGISTRATION
Definition: fltkernel.h:525
_Must_inspect_result_ _In_ PFLT_FILE_NAME_INFORMATION _Outptr_result_maybenull_ PFLT_FILE_NAME_INFORMATION * RetTunneledFileNameInformation
Definition: fltkernel.h:1109
ULONG FLT_POST_OPERATION_FLAGS
Definition: fltkernel.h:592
VOID(FLTAPI * PFLTOPLOCK_WAIT_COMPLETE_ROUTINE)(_In_ PFLT_CALLBACK_DATA CallbackData, _In_opt_ PVOID Context)
Definition: fltkernel.h:934
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE ContextType
Definition: fltkernel.h:1443
_Must_inspect_result_ _In_ ULONG _Out_ PULONG NumberVolumesReturned
Definition: fltkernel.h:1793
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG _In_ ULONG OutputBufferLength
Definition: fltkernel.h:1374
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_opt_ GUID _In_ USHORT DataBufferLength
Definition: fltkernel.h:1270
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK IoStatusBlock
Definition: fltkernel.h:1234
_Must_inspect_result_ _Out_ PIO_STATUS_BLOCK Iosb
Definition: fltkernel.h:1760
VOID FLTAPI FltInitializeFileLock(_Out_ PFILE_LOCK FileLock)
_In_ FILTER_INFORMATION_CLASS InformationClass
Definition: fltkernel.h:1713
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
_Must_inspect_result_ _In_ LPCGUID EcpType
Definition: fltkernel.h:2519
struct _FLT_VOLUME_PROPERTIES FLT_VOLUME_PROPERTIES
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
Definition: directory.c:44
enum _FSINFOCLASS FS_INFORMATION_CLASS
_Must_inspect_result_ _In_ WAIT_TYPE _In_opt_ PLARGE_INTEGER _In_opt_ PKWAIT_BLOCK WaitBlockArray
Definition: fsrtlfuncs.h:1153
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG _In_opt_ PVOID _In_opt_ PVOID FilterContext
Definition: fsrtlfuncs.h:746
_In_opt_ PFILE_OBJECT Fo2
Definition: fsrtlfuncs.h:1477
VOID(* PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK)(_Inout_ PVOID EcpContext, _In_ LPCGUID EcpType)
Definition: fsrtltypes.h:135
ULONG FSRTL_ECP_LOOKASIDE_FLAGS
Definition: fsrtltypes.h:143
VOID(NTAPI * PUNLOCK_ROUTINE)(_In_ PVOID Context, _In_ PFILE_LOCK_INFO FileLockInfo)
Definition: fsrtltypes.h:198
BOOLEAN(NTAPI * PCHECK_FOR_TRAVERSE_ACCESS)(_In_ PVOID NotifyContext, _In_opt_ PVOID TargetContext, _In_ PSECURITY_SUBJECT_CONTEXT SubjectContext)
Definition: fsrtltypes.h:291
BOOLEAN(NTAPI * PFILTER_REPORT_CHANGE)(_In_ PVOID NotifyContext, _In_ PVOID FilterContext)
Definition: fsrtltypes.h:297
ULONG FSRTL_ALLOCATE_ECP_FLAGS
Definition: fsrtltypes.h:142
ULONG FSRTL_ALLOCATE_ECPLIST_FLAGS
Definition: fsrtltypes.h:141
ULONG NOTIFICATION_MASK
Definition: ktmtypes.h:99
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
Definition: env.c:47
static OUT PIO_STATUS_BLOCK OUT PVOID FileInformation
Definition: pipe.c:75
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
#define _Outptr_result_bytebuffer_(size)
Definition: ms_sal.h:472
#define _Out_opt_
Definition: ms_sal.h:346
#define _In_reads_bytes_(size)
Definition: ms_sal.h:321
#define _Inout_
Definition: ms_sal.h:378
#define _Out_writes_bytes_(size)
Definition: ms_sal.h:350
#define _Out_writes_bytes_to_(size, count)
Definition: ms_sal.h:360
#define _Outptr_result_maybenull_
Definition: ms_sal.h:428
#define _Outptr_opt_result_bytebuffer_(size)
Definition: ms_sal.h:473
#define _Outptr_opt_
Definition: ms_sal.h:429
#define _Outptr_
Definition: ms_sal.h:427
#define _Inout_updates_bytes_opt_(size)
Definition: ms_sal.h:400
#define _Outptr_opt_result_maybenull_
Definition: ms_sal.h:430
#define _Inout_opt_
Definition: ms_sal.h:379
#define _Must_inspect_result_
Definition: ms_sal.h:558
#define _Out_
Definition: ms_sal.h:345
#define _When_(expr, annos)
Definition: ms_sal.h:254
#define _Out_writes_to_opt_(size, count)
Definition: ms_sal.h:356
#define _Out_writes_bytes_to_opt_(size, count)
Definition: ms_sal.h:361
#define _In_
Definition: ms_sal.h:308
#define _In_reads_bytes_opt_(size)
Definition: ms_sal.h:322
#define _In_opt_
Definition: ms_sal.h:309
#define _Out_writes_bytes_opt_(size)
Definition: ms_sal.h:351
#define _In_reads_(size)
Definition: ms_sal.h:319
int Count
Definition: noreturn.cpp:7
ULONG ACCESS_MASK
Definition: nt_native.h:40
#define FASTCALL
Definition: nt_native.h:50
#define DUMMYSTRUCTNAME
Definition: ntbasedef.h:58
#define _ANONYMOUS_UNION
Definition: ntbasedef.h:30
#define _ANONYMOUS_STRUCT
Definition: ntbasedef.h:56
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
enum _WAIT_TYPE WAIT_TYPE
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
#define CONST
Definition: pedump.c:81
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
DWORD LCID
Definition: nls.h:13
WaitType
Definition: shlextdbg.cpp:18
FLT_CALLBACK_DATA_QUEUE_FLAGS Flags
Definition: fltkernel.h:918
PFLT_CALLBACK_DATA_QUEUE_INSERT_IO InsertIo
Definition: fltkernel.h:920
PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO CompleteCanceledIo
Definition: fltkernel.h:925
PFLT_CALLBACK_DATA_QUEUE_PEEK_NEXT_IO PeekNextIo
Definition: fltkernel.h:922
PFLT_INSTANCE Instance
Definition: fltkernel.h:919
PFLT_CALLBACK_DATA_QUEUE_ACQUIRE Acquire
Definition: fltkernel.h:923
PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO RemoveIo
Definition: fltkernel.h:921
PFLT_CALLBACK_DATA_QUEUE_RELEASE Release
Definition: fltkernel.h:924
struct _FLT_TAG_DATA_BUFFER * TagData
Definition: fltkernel.h:462
PETHREAD CONST Thread
Definition: fltkernel.h:459
PFLT_IO_PARAMETER_BLOCK CONST Iopb
Definition: fltkernel.h:460
_ANONYMOUS_UNION union _FLT_CALLBACK_DATA::@2016 DUMMYUNIONNAME
FLT_CALLBACK_DATA_FLAGS Flags
Definition: fltkernel.h:458
LIST_ENTRY QueueLinks
Definition: fltkernel.h:465
KPROCESSOR_MODE RequestorMode
Definition: fltkernel.h:470
IO_STATUS_BLOCK IoStatus
Definition: fltkernel.h:461
PFLT_CONTEXT_ALLOCATE_CALLBACK ContextAllocateCallback
Definition: fltkernel.h:521
PFLT_CONTEXT_FREE_CALLBACK ContextFreeCallback
Definition: fltkernel.h:522
FLT_CONTEXT_TYPE ContextType
Definition: fltkernel.h:516
FLT_CONTEXT_REGISTRATION_FLAGS Flags
Definition: fltkernel.h:517
PFLT_CONTEXT_CLEANUP_CALLBACK ContextCleanupCallback
Definition: fltkernel.h:518
FLT_FILE_NAME_OPTIONS Format
Definition: fltkernel.h:808
FLT_FILE_NAME_PARSED_FLAGS NamesParsed
Definition: fltkernel.h:807
UNICODE_STRING Volume
Definition: fltkernel.h:810
UNICODE_STRING Stream
Definition: fltkernel.h:813
UNICODE_STRING Extension
Definition: fltkernel.h:812
UNICODE_STRING Share
Definition: fltkernel.h:811
UNICODE_STRING FinalComponent
Definition: fltkernel.h:814
UNICODE_STRING ParentDir
Definition: fltkernel.h:815
PFLT_INSTANCE TargetInstance
Definition: fltkernel.h:410
FLT_PARAMETERS Parameters
Definition: fltkernel.h:411
PFILE_OBJECT TargetFileObject
Definition: fltkernel.h:409
UNICODE_STRING Name
Definition: fltkernel.h:658
PFLT_PRE_OPERATION_CALLBACK PreOperation
Definition: fltkernel.h:612
PFLT_POST_OPERATION_CALLBACK PostOperation
Definition: fltkernel.h:613
FLT_OPERATION_REGISTRATION_FLAGS Flags
Definition: fltkernel.h:611
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownStartCallback
Definition: fltkernel.h:737
PFLT_NORMALIZE_NAME_COMPONENT_EX NormalizeNameComponentExCallback
Definition: fltkernel.h:744
PFLT_NORMALIZE_NAME_COMPONENT NormalizeNameComponentCallback
Definition: fltkernel.h:740
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK InstanceQueryTeardownCallback
Definition: fltkernel.h:736
FLT_REGISTRATION_FLAGS Flags
Definition: fltkernel.h:731
PFLT_NORMALIZE_CONTEXT_CLEANUP NormalizeContextCleanupCallback
Definition: fltkernel.h:741
PFLT_GENERATE_FILE_NAME GenerateFileNameCallback
Definition: fltkernel.h:739
PFLT_INSTANCE_SETUP_CALLBACK InstanceSetupCallback
Definition: fltkernel.h:735
CONST FLT_CONTEXT_REGISTRATION * ContextRegistration
Definition: fltkernel.h:732
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownCompleteCallback
Definition: fltkernel.h:738
PFLT_TRANSACTION_NOTIFICATION_CALLBACK TransactionNotificationCallback
Definition: fltkernel.h:743
PFLT_FILTER_UNLOAD_CALLBACK FilterUnloadCallback
Definition: fltkernel.h:734
CONST FLT_OPERATION_REGISTRATION * OperationRegistration
Definition: fltkernel.h:733
struct _FLT_TAG_DATA_BUFFER::@2018::@2019 SymbolicLinkReparseBuffer
USHORT SubstituteNameLength
Definition: fltkernel.h:624
_ANONYMOUS_UNION union _FLT_TAG_DATA_BUFFER::@2018 DUMMYUNIONNAME
USHORT SubstituteNameOffset
Definition: fltkernel.h:623
struct _FLT_TAG_DATA_BUFFER::@2018::@2022 GenericGUIDReparseBuffer
struct _FLT_TAG_DATA_BUFFER::@2018::@2021 GenericReparseBuffer
struct _FLT_TAG_DATA_BUFFER::@2018::@2020 MountPointReparseBuffer
USHORT UnparsedNameLength
Definition: fltkernel.h:620
DEVICE_TYPE DeviceType
Definition: fltkernel.h:824
UNICODE_STRING FileSystemDriverName
Definition: fltkernel.h:830
UNICODE_STRING FileSystemDeviceName
Definition: fltkernel.h:831
UNICODE_STRING RealDeviceName
Definition: fltkernel.h:832
Definition: csq.h:222
Definition: typedefs.h:120
Definition: iotypes.h:189
uint16_t * PWSTR
Definition: typedefs.h:56
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char * PBOOLEAN
Definition: typedefs.h:53
INT POOL_TYPE
Definition: typedefs.h:78
void * PVOID
Definition: typedefs.h:50
ULONG_PTR SIZE_T
Definition: typedefs.h:80
const char * PCSTR
Definition: typedefs.h:52
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
char * PCHAR
Definition: typedefs.h:51
struct _FLT_PARAMETERS::@1984 FastIoCheckIfPossible
struct _FLT_PARAMETERS::@1981 AcquireForSectionSynchronization
struct _FLT_PARAMETERS::@1976 SetSecurity
BOOLEAN POINTER_ALIGNMENT CheckForReadOperation
Definition: fltkernel.h:361
ULONG POINTER_ALIGNMENT Spare1
Definition: fltkernel.h:191
ULONG POINTER_ALIGNMENT Key
Definition: fltkernel.h:125
PUNICODE_STRING FileName
Definition: fltkernel.h:182
DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type
Definition: fltkernel.h:343
struct _FLT_PARAMETERS::@1967 QueryEa
USHORT ShareAccess
Definition: fltkernel.h:104
struct _FLT_PARAMETERS::@1977 WMI
PVOID WriteBuffer
Definition: fltkernel.h:134
struct _FLT_PARAMETERS::@1980::@2007 QueryDeviceRelations
PFILE_OBJECT ParentOfTarget
Definition: fltkernel.h:145
LARGE_INTEGER ByteOffset
Definition: fltkernel.h:126
struct _FLT_PARAMETERS::@1980::@2014 QueryDeviceText
PVOID InterfaceSpecificData
Definition: fltkernel.h:316
struct _FLT_PARAMETERS::@1974 LockControl
PLARGE_INTEGER EndingOffset
Definition: fltkernel.h:351
PDEVICE_CAPABILITIES Capabilities
Definition: fltkernel.h:319
PERESOURCE ResourceToRelease
Definition: fltkernel.h:355
PVOID VolumeBuffer
Definition: fltkernel.h:172
PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList
Definition: fltkernel.h:322
struct _FLT_PARAMETERS::@1980::@2008 QueryInterface
struct _FLT_PARAMETERS::@1980::@2006 StartDevice
USHORT Version
Definition: fltkernel.h:314
struct _FLT_PARAMETERS::@1961 CreatePipe
LARGE_INTEGER AllocationSize
Definition: fltkernel.h:107
BUS_QUERY_ID_TYPE IdType
Definition: fltkernel.h:334
struct _FLT_PARAMETERS::@1965 QueryFileInformation
struct _FLT_PARAMETERS::@1972::@1997 Common
struct _FLT_PARAMETERS::@1970 SetVolumeInformation
struct _FLT_PARAMETERS::@1973::@2005 FastIo
union _FLT_PARAMETERS::@1980 Pnp
struct _FLT_PARAMETERS::@1978 QueryQuota
struct _FLT_PARAMETERS::@1988 PrepareMdlWrite
PMDL OutputMdlAddress
Definition: fltkernel.h:213
DEVICE_RELATION_TYPE Type
Definition: fltkernel.h:309
struct _FLT_PARAMETERS::@1972::@1998 Neither
PERESOURCE * ResourceToRelease
Definition: fltkernel.h:352
BOOLEAN Lock
Definition: fltkernel.h:331
PMDL * MdlChain
Definition: fltkernel.h:371
struct _FLT_PARAMETERS::@1966 SetFileInformation
struct _FLT_PARAMETERS::@1989 MdlWriteComplete
struct _FLT_PARAMETERS::@1986 MdlRead
ULONG POINTER_ALIGNMENT EaLength
Definition: fltkernel.h:105
ULONG WhichSpace
Definition: fltkernel.h:325
FS_FILTER_SECTION_SYNC_TYPE SyncType
Definition: fltkernel.h:347
PCM_RESOURCE_LIST AllocatedResourcesTranslated
Definition: fltkernel.h:306
PVOID InfoBuffer
Definition: fltkernel.h:140
struct _FLT_PARAMETERS::@1969 QueryVolumeInformation
struct _FLT_PARAMETERS::@1971::@1995 NotifyDirectory
struct _FLT_PARAMETERS::@1960 Create
FILE_INFORMATION_CLASS FileInformationClass
Definition: fltkernel.h:183
ULONG POINTER_ALIGNMENT FileIndex
Definition: fltkernel.h:184
SECURITY_INFORMATION SecurityInformation
Definition: fltkernel.h:275
struct _FLT_PARAMETERS::@1991 Others
struct _FLT_PARAMETERS::@1972::@2000 Direct
ULONG POINTER_ALIGNMENT Spare2
Definition: fltkernel.h:192
struct _FLT_PARAMETERS::@1972::@1999 Buffered
LARGE_INTEGER Argument6
Definition: fltkernel.h:395
struct _FLT_PARAMETERS::@1980::@2010 FilterResourceRequirements
PEPROCESS ProcessId
Definition: fltkernel.h:270
ULONG OutputBufferLength
Definition: fltkernel.h:203
FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass
Definition: fltkernel.h:171
ULONG ClusterCount
Definition: fltkernel.h:151
struct _FLT_PARAMETERS::@1963 Read
ULONG POINTER_ALIGNMENT Length
Definition: fltkernel.h:276
BOOLEAN InPath
Definition: fltkernel.h:341
PVOID SystemBuffer
Definition: fltkernel.h:219
ULONG POINTER_ALIGNMENT EaIndex
Definition: fltkernel.h:160
struct _FLT_PARAMETERS::@1980::@2015 UsageNotification
union _FLT_PARAMETERS::@1973 DeviceIoControl
struct _FLT_PARAMETERS::@1983 ReleaseForModifiedPageWriter
struct _FLT_PARAMETERS::@1980::@2012 SetLock
ULONG DeviceType
Definition: fltkernel.h:387
DEVICE_TEXT_TYPE DeviceTextType
Definition: fltkernel.h:337
BOOLEAN ReplaceIfExists
Definition: fltkernel.h:148
ULONG POINTER_ALIGNMENT LockKey
Definition: fltkernel.h:360
PVOID QuotaBuffer
Definition: fltkernel.h:295
ULONG_PTR ProviderId
Definition: fltkernel.h:285
PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: fltkernel.h:282
PVOID OutputBuffer
Definition: fltkernel.h:212
PVOID DirectoryBuffer
Definition: fltkernel.h:185
ULONG EaListLength
Definition: fltkernel.h:159
BOOLEAN ExclusiveLock
Definition: fltkernel.h:272
struct _FLT_PARAMETERS::@1975 QuerySecurity
PVOID SecurityBuffer
Definition: fltkernel.h:277
PLARGE_INTEGER Length
Definition: fltkernel.h:267
struct _FLT_PARAMETERS::@1985 NetworkQueryOpen
USHORT POINTER_ALIGNMENT FileAttributes
Definition: fltkernel.h:103
ULONG SidListLength
Definition: fltkernel.h:294
struct _FLT_PARAMETERS::@1972::@1996 VerifyVolume
struct _FLT_PARAMETERS::@1990 MountVolume
union _FLT_PARAMETERS::@1972 FileSystemControl
struct _FLT_PARAMETERS::@1980::@2009 DeviceCapabilities
struct _FLT_PARAMETERS::@1987 MdlReadComplete
BOOLEAN AdvanceOnly
Definition: fltkernel.h:149
PVOID Parameters
Definition: fltkernel.h:114
struct _FLT_PARAMETERS::@1982 AcquireForModifiedPageWriter
union _FLT_PARAMETERS::@1971 DirectoryControl
ULONG POINTER_ALIGNMENT CompletionFilter
Definition: fltkernel.h:190
CONST GUID * InterfaceType
Definition: fltkernel.h:312
ULONG PageProtection
Definition: fltkernel.h:348
LCID POINTER_ALIGNMENT LocaleId
Definition: fltkernel.h:338
PFILE_NETWORK_OPEN_INFORMATION NetworkInformation
Definition: fltkernel.h:365
LARGE_INTEGER FileOffset
Definition: fltkernel.h:358
struct _FLT_PARAMETERS::@1979 SetQuota
PINTERFACE Interface
Definition: fltkernel.h:315
struct _FLT_PARAMETERS::@1980::@2011 ReadWriteConfig
PVOID InputSystemBuffer
Definition: fltkernel.h:225
HANDLE DeleteHandle
Definition: fltkernel.h:152
struct _FLT_PARAMETERS::@1962 CreateMailslot
FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass
Definition: fltkernel.h:139
PIO_SECURITY_CONTEXT SecurityContext
Definition: fltkernel.h:101
USHORT POINTER_ALIGNMENT Reserved
Definition: fltkernel.h:112
ULONG POINTER_ALIGNMENT InputBufferLength
Definition: fltkernel.h:204
_ANONYMOUS_UNION union _FLT_PARAMETERS::@1966::@1992 DUMMYUNIONNAME
struct _FLT_PARAMETERS::@1980::@2013 QueryId
struct _FLT_PARAMETERS::@1964 Write
PVOID ReadBuffer
Definition: fltkernel.h:127
BOOLEAN FailImmediately
Definition: fltkernel.h:271
ULONG POINTER_ALIGNMENT IoControlCode
Definition: fltkernel.h:234
struct _FLT_PARAMETERS::@1971::@1994 QueryDirectory
PVOID InputBuffer
Definition: fltkernel.h:211
_ANONYMOUS_STRUCT struct _FLT_PARAMETERS::@1966::@1992::@1993 DUMMYSTRUCTNAME
PFILE_GET_QUOTA_INFORMATION SidList
Definition: fltkernel.h:293
ULONG BufferSize
Definition: fltkernel.h:287
ULONG POINTER_ALIGNMENT FsControlCode
Definition: fltkernel.h:205
PDEVICE_OBJECT DeviceObject
Definition: fltkernel.h:200
struct _FLT_PARAMETERS::@1968 SetEa
PCM_RESOURCE_LIST AllocatedResources
Definition: fltkernel.h:305
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDRIVER Driver
Definition: wdfcontrol.h:83
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ UCHAR _In_ UCHAR _In_ ULONG _In_ WDFCONTEXT DriverContext
Definition: wdfdevice.h:1703
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4065
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2658
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3815
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:325
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:320
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:322
_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:1052
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_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:960
_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:870
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:254
_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:414
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG PoolTag
Definition: wdfmemory.h:164
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
Definition: wdfobject.h:762
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG _Out_opt_ PULONG CreateDisposition
Definition: wdfregistry.h:120
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
Definition: wdfregistry.h:118
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
Definition: wdfrequest.h:898
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
Definition: wdfwmi.h:481
#define POINTER_ALIGNMENT
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
_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:191
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
enum _WORK_QUEUE_TYPE WORK_QUEUE_TYPE
_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:845
enum _FS_FILTER_SECTION_SYNC_TYPE FS_FILTER_SECTION_SYNC_TYPE
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
#define IRP_PAGING_IO
* PFILE_OBJECT
Definition: iotypes.h:1998
* PDEVICE_CAPABILITIES
Definition: iotypes.h:965
enum _IO_PRIORITY_HINT IO_PRIORITY_HINT
enum _DEVICE_TEXT_TYPE DEVICE_TEXT_TYPE
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
enum _DEVICE_USAGE_NOTIFICATION_TYPE DEVICE_USAGE_NOTIFICATION_TYPE
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:1036
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
_IRQL_requires_same_ _In_ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT _Inout_ PNTSTATUS OperationStatus
Definition: ketypes.h:373
enum _LOCK_OPERATION LOCK_OPERATION
_In_ ULONG Component
Definition: potypes.h:496
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180