ReactOS  0.4.10-dev-348-gbcec1fd
fsrtlfuncs.h
Go to the documentation of this file.
1 $if (_NTIFS_)
2 /* FSRTL Functions */
3 
4 #define FsRtlEnterFileSystem KeEnterCriticalRegion
5 #define FsRtlExitFileSystem KeLeaveCriticalRegion
6 
7 #if (NTDDI_VERSION >= NTDDI_WIN2K)
8 
12 BOOLEAN
13 NTAPI
23 
27 BOOLEAN
28 NTAPI
30  _In_ PFILE_OBJECT FileObject,
31  _In_ PLARGE_INTEGER FileOffset,
32  _In_ ULONG Length,
33  _In_ BOOLEAN Wait,
34  _In_ ULONG LockKey,
35  _In_reads_bytes_(Length) PVOID Buffer,
36  _Out_ PIO_STATUS_BLOCK IoStatus,
37  _In_ PDEVICE_OBJECT DeviceObject);
38 
42 BOOLEAN
43 NTAPI
45  _In_ PFILE_OBJECT FileObject,
46  _In_ PLARGE_INTEGER FileOffset,
47  _In_ ULONG Length,
48  _In_ ULONG LockKey,
50  _Out_ PIO_STATUS_BLOCK IoStatus,
51  _In_opt_ PDEVICE_OBJECT DeviceObject);
52 
55 BOOLEAN
56 NTAPI
58  _In_ PFILE_OBJECT FileObject,
59  _In_ PMDL MdlChain,
60  _In_opt_ PDEVICE_OBJECT DeviceObject);
61 
65 BOOLEAN
66 NTAPI
68  _In_ PFILE_OBJECT FileObject,
69  _In_ PLARGE_INTEGER FileOffset,
70  _In_ ULONG Length,
71  _In_ ULONG LockKey,
72  _Outptr_ PMDL *MdlChain,
73  _Out_ PIO_STATUS_BLOCK IoStatus,
74  _In_ PDEVICE_OBJECT DeviceObject);
75 
79 BOOLEAN
80 NTAPI
82  _In_ PFILE_OBJECT FileObject,
83  _In_ PLARGE_INTEGER FileOffset,
84  _In_ PMDL MdlChain,
85  _In_opt_ PDEVICE_OBJECT DeviceObject);
86 
89 VOID
90 NTAPI
92  _In_ PFILE_OBJECT FileObject);
93 
96 VOID
97 NTAPI
99  _In_ PFILE_OBJECT FileObject);
100 
104 NTSTATUS
105 NTAPI
107  _In_ PFILE_OBJECT FileObject,
109 
112 BOOLEAN
113 NTAPI
116 
121 NTAPI
123  _In_opt_ PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine,
124  _In_opt_ PUNLOCK_ROUTINE UnlockRoutine);
125 
128 VOID
129 NTAPI
131  _In_ PFILE_LOCK FileLock);
132 
135 VOID
136 NTAPI
138  _Out_ PFILE_LOCK FileLock,
139  _In_opt_ PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine,
140  _In_opt_ PUNLOCK_ROUTINE UnlockRoutine);
141 
144 VOID
145 NTAPI
147  _Inout_ PFILE_LOCK FileLock);
148 
149 /*
150  FsRtlProcessFileLock:
151 
152  ret:
153  -STATUS_INVALID_DEVICE_REQUEST
154  -STATUS_RANGE_NOT_LOCKED from unlock routines.
155  -STATUS_PENDING, STATUS_LOCK_NOT_GRANTED from FsRtlPrivateLock
156  (redirected IoStatus->Status).
157 
158  Internals:
159  -switch ( Irp->CurrentStackLocation->MinorFunction )
160  lock: return FsRtlPrivateLock;
161  unlocksingle: return FsRtlFastUnlockSingle;
162  unlockall: return FsRtlFastUnlockAll;
163  unlockallbykey: return FsRtlFastUnlockAllByKey;
164  default: IofCompleteRequest with STATUS_INVALID_DEVICE_REQUEST;
165  return STATUS_INVALID_DEVICE_REQUEST;
166 
167  -'AllwaysZero' is passed thru as 'AllwaysZero' to lock / unlock routines.
168  -'Irp' is passet thru as 'Irp' to FsRtlPrivateLock.
169 */
173 NTSTATUS
174 NTAPI
176  _In_ PFILE_LOCK FileLock,
179 
180 /*
181  FsRtlCheckLockForReadAccess:
182 
183  All this really does is pick out the lock parameters from the irp (io stack
184  location?), get IoGetRequestorProcess, and pass values on to
185  FsRtlFastCheckLockForRead.
186 */
190 BOOLEAN
191 NTAPI
193  _In_ PFILE_LOCK FileLock,
194  _In_ PIRP Irp);
195 
196 /*
197  FsRtlCheckLockForWriteAccess:
198 
199  All this really does is pick out the lock parameters from the irp (io stack
200  location?), get IoGetRequestorProcess, and pass values on to
201  FsRtlFastCheckLockForWrite.
202 */
206 BOOLEAN
207 NTAPI
209  _In_ PFILE_LOCK FileLock,
210  _In_ PIRP Irp);
211 
215 BOOLEAN
216 NTAPI
218  _In_ PFILE_LOCK FileLock,
219  _In_ PLARGE_INTEGER FileOffset,
220  _In_ PLARGE_INTEGER Length,
221  _In_ ULONG Key,
222  _In_ PFILE_OBJECT FileObject,
223  _In_ PVOID Process);
224 
228 BOOLEAN
229 NTAPI
231  _In_ PFILE_LOCK FileLock,
232  _In_ PLARGE_INTEGER FileOffset,
233  _In_ PLARGE_INTEGER Length,
234  _In_ ULONG Key,
235  _In_ PFILE_OBJECT FileObject,
236  _In_ PVOID Process);
237 
238 /*
239  FsRtlGetNextFileLock:
240 
241  ret: NULL if no more locks
242 
243  Internals:
244  FsRtlGetNextFileLock uses FileLock->LastReturnedLockInfo and
245  FileLock->LastReturnedLock as storage.
246  LastReturnedLock is a pointer to the 'raw' lock inkl. double linked
247  list, and FsRtlGetNextFileLock needs this to get next lock on subsequent
248  calls with Restart = FALSE.
249 */
254 NTAPI
256  _In_ PFILE_LOCK FileLock,
258 
261 NTSTATUS
262 NTAPI
264  _In_ PFILE_LOCK FileLock,
265  _In_ PFILE_OBJECT FileObject,
266  _In_ PLARGE_INTEGER FileOffset,
267  _In_ PLARGE_INTEGER Length,
268  _In_ PEPROCESS Process,
269  _In_ ULONG Key,
270  _In_opt_ PVOID Context,
272 
275 NTSTATUS
276 NTAPI
278  _In_ PFILE_LOCK FileLock,
279  _In_ PFILE_OBJECT FileObject,
280  _In_ PEPROCESS Process,
281  _In_opt_ PVOID Context);
282 
285 NTSTATUS
286 NTAPI
288  _In_ PFILE_LOCK FileLock,
289  _In_ PFILE_OBJECT FileObject,
290  _In_ PEPROCESS Process,
291  _In_ ULONG Key,
292  _In_opt_ PVOID Context);
293 
294 /*
295  FsRtlPrivateLock:
296 
297  ret: IoStatus->Status: STATUS_PENDING, STATUS_LOCK_NOT_GRANTED
298 
299  Internals:
300  -Calls IoCompleteRequest if Irp
301  -Uses exception handling / ExRaiseStatus with STATUS_INSUFFICIENT_RESOURCES
302 */
307 BOOLEAN
308 NTAPI
310  _In_ PFILE_LOCK FileLock,
311  _In_ PFILE_OBJECT FileObject,
312  _In_ PLARGE_INTEGER FileOffset,
313  _In_ PLARGE_INTEGER Length,
314  _In_ PEPROCESS Process,
315  _In_ ULONG Key,
318  _Out_ PIO_STATUS_BLOCK IoStatus,
319  _In_opt_ PIRP Irp,
321  _In_ BOOLEAN AlreadySynchronized);
322 
325 VOID
326 NTAPI
328  _In_ PTUNNEL Cache);
329 
332 VOID
333 NTAPI
335  _In_ PTUNNEL Cache,
341  _In_reads_bytes_(DataLength) PVOID Data);
342 
346 BOOLEAN
347 NTAPI
349  _In_ PTUNNEL Cache,
350  _In_ ULONGLONG DirectoryKey,
352  _Out_ PUNICODE_STRING ShortName,
353  _Out_ PUNICODE_STRING LongName,
354  _Inout_ PULONG DataLength,
355  _Out_writes_bytes_to_(*DataLength, *DataLength) PVOID Data);
356 
359 VOID
360 NTAPI
362  _In_ PTUNNEL Cache,
363  _In_ ULONGLONG DirectoryKey);
364 
367 VOID
368 NTAPI
370  _In_ PTUNNEL Cache);
371 
374 VOID
375 NTAPI
377  _In_ ANSI_STRING Name,
380 
384 BOOLEAN
385 NTAPI
387  _In_ PANSI_STRING Name);
388 
392 BOOLEAN
393 NTAPI
396  _In_ PANSI_STRING Name);
397 
401 BOOLEAN
402 NTAPI
404  _In_ ANSI_STRING DbcsName,
408 
412 BOOLEAN
413 NTAPI
415  _In_ ANSI_STRING DbcsName,
416  _In_ BOOLEAN WildCardsPermissible,
417  _In_ BOOLEAN PathNamePermissible,
418  _In_ BOOLEAN LeadingBackslashPermissible);
419 
421 NTSTATUS
422 NTAPI
424  _In_ NTSTATUS Exception,
425  _In_ NTSTATUS GenericException);
426 
429 BOOLEAN
430 NTAPI
432  _In_ NTSTATUS Ntstatus);
433 
435 __drv_preferredFunction(ExAllocateFromNPagedLookasideList, "The FsRtlAllocateResource routine is obsolete, but is exported to support existing driver binaries. Use ExAllocateFromNPagedLookasideList and ExInitializeResourceLite instead.")
438 NTAPI
440 
443 VOID
444 NTAPI
448 
451 VOID
452 NTAPI
454  _Inout_ PLARGE_MCB Mcb);
455 
458 VOID
459 NTAPI
461  _Inout_ PLARGE_MCB Mcb,
463 
466 VOID
467 NTAPI
469  _Inout_ PLARGE_MCB Mcb,
471 
475 BOOLEAN
476 NTAPI
478  _Inout_ PLARGE_MCB Mcb,
480  _In_ LONGLONG Lbn,
482 
485 VOID
486 NTAPI
488  _Inout_ PLARGE_MCB Mcb,
489  _In_ LONGLONG Vbn,
490  _In_ LONGLONG SectorCount);
491 
494 BOOLEAN
495 NTAPI
497  _In_ PLARGE_MCB Mcb,
499  _Out_opt_ PLONGLONG Lbn,
504 
507 BOOLEAN
508 NTAPI
510  _In_ PLARGE_MCB Mcb,
511  _Out_ PLONGLONG Vbn,
512  _Out_ PLONGLONG Lbn);
513 
516 BOOLEAN
517 NTAPI
519  _In_ PLARGE_MCB OpaqueMcb,
522  _Out_ PULONG Index);
523 
526 ULONG
527 NTAPI
529  _In_ PLARGE_MCB Mcb);
530 
534 BOOLEAN
535 NTAPI
537  _In_ PLARGE_MCB Mcb,
539  _Out_ PLONGLONG Vbn,
540  _Out_ PLONGLONG Lbn,
541  _Out_ PLONGLONG SectorCount);
542 
546 BOOLEAN
547 NTAPI
549  _Inout_ PLARGE_MCB Mcb,
552 
556 VOID
557 NTAPI
559  _Out_ PMCB Mcb,
560  _In_ POOL_TYPE PoolType);
561 
564 VOID
565 NTAPI
567  _Inout_ PMCB Mcb);
568 
571 VOID
572 NTAPI
574  _Inout_ PMCB Mcb,
575  _In_ VBN Vbn);
576 
579 BOOLEAN
580 NTAPI
582  _Inout_ PMCB Mcb,
583  _In_ VBN Vbn,
584  _In_ LBN Lbn,
585  _In_ ULONG SectorCount);
586 
589 VOID
590 NTAPI
592  _Inout_ PMCB Mcb,
593  _In_ VBN Vbn,
594  _In_ ULONG SectorCount);
595 
598 BOOLEAN
599 NTAPI
601  _In_ PMCB Mcb,
602  _In_ VBN Vbn,
603  _Out_ PLBN Lbn,
604  _Out_opt_ PULONG SectorCount,
605  _Out_ PULONG Index);
606 
609 BOOLEAN
610 NTAPI
612  _In_ PMCB Mcb,
613  _Out_ PVBN Vbn,
614  _Out_ PLBN Lbn);
615 
618 ULONG
619 NTAPI
621  _In_ PMCB Mcb);
622 
626 BOOLEAN
627 NTAPI
629  _In_ PMCB Mcb,
630  _In_ ULONG RunIndex,
631  _Out_ PVBN Vbn,
632  _Out_ PLBN Lbn,
633  _Out_ PULONG SectorCount);
634 
637 NTSTATUS
638 NTAPI
641 
644 VOID
645 NTAPI
647  _Inout_ POPLOCK Oplock);
648 
651 VOID
652 NTAPI
654  _Inout_ POPLOCK Oplock);
655 
659 NTSTATUS
660 NTAPI
662  _In_ POPLOCK Oplock,
663  _In_ PIRP Irp,
665 
669 NTSTATUS
670 NTAPI
672  _In_ POPLOCK Oplock,
673  _In_ PIRP Irp,
674  _In_opt_ PVOID Context,
675  _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
676  _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
677 
681 BOOLEAN
682 NTAPI
684  _In_ POPLOCK Oplock);
685 
689 BOOLEAN
690 NTAPI
692  _In_ POPLOCK Oplock);
693 
696 NTSTATUS
697 NTAPI
699  _In_ PFILE_OBJECT FileObject,
701 
704 VOID
705 NTAPI
707  _In_ PNOTIFY_SYNC *NotifySync);
708 
711 VOID
712 NTAPI
714  _In_ PNOTIFY_SYNC *NotifySync);
715 
718 VOID
719 NTAPI
721  _In_ PNOTIFY_SYNC NotifySync,
729  _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback,
731 
734 VOID
735 NTAPI
737  _In_ PNOTIFY_SYNC NotifySync,
738  _In_ PLIST_ENTRY NotifyList,
744  _In_ ULONG Action,
747 
750 VOID
751 NTAPI
753  _In_ PNOTIFY_SYNC NotifySync,
754  _In_ PLIST_ENTRY NotifyList,
755  _In_ PSTRING FullTargetName,
756  _In_ USHORT TargetNameOffset,
757  _In_opt_ PSTRING StreamName,
758  _In_opt_ PSTRING NormalizedParentName,
759  _In_ ULONG FilterMatch,
760  _In_ ULONG Action,
761  _In_opt_ PVOID TargetContext);
762 
765 VOID
766 NTAPI
768  _In_ PNOTIFY_SYNC NotifySync,
769  _In_ PLIST_ENTRY NotifyList,
770  _In_ PVOID FsContext);
771 
774 VOID
775 NTAPI
777  _In_ UNICODE_STRING Name,
778  _Out_ PUNICODE_STRING FirstPart,
779  _Out_ PUNICODE_STRING RemainingPart);
780 
784 BOOLEAN
785 NTAPI
787  _In_ PUNICODE_STRING Name);
788 
792 BOOLEAN
793 NTAPI
795  _In_ PCUNICODE_STRING Name1,
798  _In_reads_opt_(0x10000) PCWCH UpcaseTable);
799 
803 BOOLEAN
804 NTAPI
806  _In_ PUNICODE_STRING Expression,
808  _In_ BOOLEAN IgnoreCase,
809  _In_opt_ PWCHAR UpcaseTable);
810 
813 VOID
814 NTAPI
816  _In_ PVOID Context,
819 
822 VOID
823 NTAPI
825  _In_ PVOID Context,
826  _In_ PKEVENT Event,
827  _In_ PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine);
828 
832 NTSTATUS
833 NTAPI
838 
841 VOID
842 NTAPI
844  _In_ HANDLE Handle);
845 
848 VOID
849 NTAPI
851  _In_ PFSRTL_ADVANCED_FCB_HEADER AdvancedHeader);
852 
856 NTSTATUS
857 NTAPI
859  _Out_ PHANDLE SectionHandle,
862  _In_ PFILE_OBJECT FileObject,
868  _In_ ULONG Flags);
869 
870 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
871 
872 #if (NTDDI_VERSION >= NTDDI_WINXP)
873 
876 VOID
877 NTAPI
879  _In_ PNOTIFY_SYNC NotifySync,
880  _In_ PLIST_ENTRY NotifyList,
881  _In_ PVOID FsContext,
882  _In_ PSTRING FullDirectoryName,
883  _In_ BOOLEAN WatchTree,
884  _In_ BOOLEAN IgnoreBuffer,
885  _In_ ULONG CompletionFilter,
886  _In_opt_ PIRP NotifyIrp,
887  _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback,
888  _In_opt_ PSECURITY_SUBJECT_CONTEXT SubjectContext,
889  _In_opt_ PFILTER_REPORT_CHANGE FilterCallback);
890 
894 NTSTATUS
895 NTAPI
897  _In_ PFSRTL_ADVANCED_FCB_HEADER PerStreamContext,
899 
904 NTAPI
906  _In_ PFSRTL_ADVANCED_FCB_HEADER StreamContext,
909 
914 NTAPI
916  _In_ PFSRTL_ADVANCED_FCB_HEADER StreamContext,
917  _In_opt_ PVOID OwnerId,
918  _In_opt_ PVOID InstanceId);
919 
921 VOID
922 NTAPI
924  VOID);
925 
927 VOID
928 NTAPI
930 
932 VOID
933 NTAPI
935 
937 VOID
938 NTAPI
940 
943 LOGICAL
944 NTAPI
946  _In_ PFILE_OBJECT FileObject);
947 
948 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
949 
950 #if (NTDDI_VERSION >= NTDDI_WS03)
951 
954 VOID
955 NTAPI
957  _Out_ PBASE_MCB Mcb,
958  _In_ POOL_TYPE PoolType);
959 
962 VOID
963 NTAPI
965  _In_ PBASE_MCB Mcb);
966 
969 VOID
970 NTAPI
972  _Out_ PBASE_MCB Mcb);
973 
976 VOID
977 NTAPI
979  _Inout_ PBASE_MCB Mcb,
980  _In_ LONGLONG Vbn);
981 
984 BOOLEAN
985 NTAPI
987  _Inout_ PBASE_MCB Mcb,
988  _In_ LONGLONG Vbn,
989  _In_ LONGLONG Lbn,
990  _In_ LONGLONG SectorCount);
991 
994 BOOLEAN
995 NTAPI
997  _Inout_ PBASE_MCB Mcb,
998  _In_ LONGLONG Vbn,
999  _In_ LONGLONG SectorCount);
1000 
1003 BOOLEAN
1004 NTAPI
1006  _In_ PBASE_MCB Mcb,
1007  _In_ LONGLONG Vbn,
1008  _Out_opt_ PLONGLONG Lbn,
1009  _Out_opt_ PLONGLONG SectorCountFromLbn,
1010  _Out_opt_ PLONGLONG StartingLbn,
1011  _Out_opt_ PLONGLONG SectorCountFromStartingLbn,
1012  _Out_opt_ PULONG Index);
1013 
1016 BOOLEAN
1017 NTAPI
1019  _In_ PBASE_MCB Mcb,
1020  _Out_ PLONGLONG Vbn,
1021  _Out_ PLONGLONG Lbn);
1022 
1025 BOOLEAN
1026 NTAPI
1028  _In_ PBASE_MCB OpaqueMcb,
1029  _Inout_ PLONGLONG LargeVbn,
1030  _Inout_ PLONGLONG LargeLbn,
1031  _Inout_ PULONG Index);
1032 
1035 ULONG
1036 NTAPI
1038  _In_ PBASE_MCB Mcb);
1039 
1042 BOOLEAN
1043 NTAPI
1045  _In_ PBASE_MCB Mcb,
1046  _In_ ULONG RunIndex,
1047  _Out_ PLONGLONG Vbn,
1048  _Out_ PLONGLONG Lbn,
1049  _Out_ PLONGLONG SectorCount);
1050 
1053 BOOLEAN
1054 NTAPI
1056  _Inout_ PBASE_MCB Mcb,
1057  _In_ LONGLONG Vbn,
1058  _In_ LONGLONG Amount);
1059 
1060 #endif /* (NTDDI_VERSION >= NTDDI_WS03) */
1061 
1062 #if (NTDDI_VERSION >= NTDDI_VISTA)
1063 
1066 BOOLEAN
1067 NTAPI
1068 FsRtlInitializeBaseMcbEx(
1069  _Out_ PBASE_MCB Mcb,
1070  _In_ POOL_TYPE PoolType,
1071  _In_ USHORT Flags);
1072 
1075 NTSTATUS
1076 NTAPI
1077 FsRtlAddBaseMcbEntryEx(
1078  _Inout_ PBASE_MCB Mcb,
1079  _In_ LONGLONG Vbn,
1080  _In_ LONGLONG Lbn,
1081  _In_ LONGLONG SectorCount);
1082 
1086 BOOLEAN
1087 NTAPI
1088 FsRtlCurrentOplock(
1089  _In_ POPLOCK Oplock);
1090 
1094 NTSTATUS
1095 NTAPI
1097  _Inout_ POPLOCK Oplock,
1099  _In_ PIRP Irp,
1100  _In_opt_ PVOID Context,
1101  _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
1102  _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
1103 
1106 NTSTATUS
1107 NTAPI
1108 FsRtlNotifyVolumeEventEx(
1109  _In_ PFILE_OBJECT FileObject,
1110  _In_ ULONG EventCode,
1112 
1115 VOID
1116 NTAPI
1117 FsRtlNotifyCleanupAll(
1118  _In_ PNOTIFY_SYNC NotifySync,
1119  _In_ PLIST_ENTRY NotifyList);
1120 
1123 NTSTATUS
1124 NTAPI
1125 FsRtlRegisterUncProviderEx(
1126  _Out_ PHANDLE MupHandle,
1128  _In_ PDEVICE_OBJECT DeviceObject,
1129  _In_ ULONG Flags);
1130 
1135 NTSTATUS
1136 NTAPI
1137 FsRtlCancellableWaitForSingleObject(
1138  _In_ PVOID Object,
1140  _In_opt_ PIRP Irp);
1141 
1144 _When_(Irp == NULL, _IRQL_requires_max_(APC_LEVEL))
1146 NTSTATUS
1147 NTAPI
1148 FsRtlCancellableWaitForMultipleObjects(
1149  _In_ ULONG Count,
1150  _In_reads_(Count) PVOID ObjectArray[],
1152  _In_opt_ PLARGE_INTEGER Timeout,
1154  _In_opt_ PIRP Irp);
1155 
1159 NTSTATUS
1160 NTAPI
1161 FsRtlMupGetProviderInfoFromFileObject(
1162  _In_ PFILE_OBJECT pFileObject,
1166 
1170 NTSTATUS
1171 NTAPI
1172 FsRtlMupGetProviderIdFromName(
1173  _In_ PUNICODE_STRING pProviderName,
1175 
1177 VOID
1178 NTAPI
1180 
1184 NTSTATUS
1185 NTAPI
1188  _In_reads_bytes_(BufferLength) PREPARSE_DATA_BUFFER ReparseBuffer);
1189 
1193 NTSTATUS
1194 NTAPI
1196  _Inout_updates_bytes_(PathLength) PWSTR OriginalString,
1199 
1203 NTSTATUS
1204 NTAPI
1205 FsRtlAllocateExtraCreateParameterList(
1208 
1211 VOID
1212 NTAPI
1213 FsRtlFreeExtraCreateParameterList(
1214  _In_ PECP_LIST EcpList);
1215 
1219 NTSTATUS
1220 NTAPI
1221 FsRtlAllocateExtraCreateParameter(
1226  _In_ ULONG PoolTag,
1227  _Outptr_result_bytebuffer_(SizeOfContext) PVOID *EcpContext);
1228 
1231 VOID
1232 NTAPI
1233 FsRtlFreeExtraCreateParameter(
1234  _In_ PVOID EcpContext);
1235 
1237 _When_(!(Flags|FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL), _IRQL_requires_max_(APC_LEVEL))
1239 VOID
1240 NTAPI
1241 FsRtlInitExtraCreateParameterLookasideList(
1244  _In_ SIZE_T Size,
1245  _In_ ULONG Tag);
1246 
1247 _When_(Flags|FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL, _IRQL_requires_max_(DISPATCH_LEVEL))
1248 _When_(!(Flags|FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL), _IRQL_requires_max_(APC_LEVEL))
1249 VOID
1250 NTAPI
1251 FsRtlDeleteExtraCreateParameterLookasideList(
1252  _Inout_ PVOID Lookaside,
1254 
1258 NTSTATUS
1259 NTAPI
1260 FsRtlAllocateExtraCreateParameterFromLookasideList(
1261  _In_ LPCGUID EcpType,
1262  ULONG SizeOfContext,
1266  _Outptr_ PVOID *EcpContext);
1267 
1271 NTSTATUS
1272 NTAPI
1273 FsRtlInsertExtraCreateParameter(
1274  _Inout_ PECP_LIST EcpList,
1275  _Inout_ PVOID EcpContext);
1276 
1280 NTSTATUS
1281 NTAPI
1282 FsRtlFindExtraCreateParameter(
1283  _In_ PECP_LIST EcpList,
1284  _In_ LPCGUID EcpType,
1285  _Outptr_opt_ PVOID *EcpContext,
1287 
1291 NTSTATUS
1292 NTAPI
1293 FsRtlRemoveExtraCreateParameter(
1294  _Inout_ PECP_LIST EcpList,
1295  _In_ LPCGUID EcpType,
1296  _Outptr_ PVOID *EcpContext,
1297  _Out_opt_ ULONG *EcpContextSize);
1298 
1302 NTSTATUS
1303 NTAPI
1304 FsRtlGetEcpListFromIrp(
1305  _In_ PIRP Irp,
1307 
1311 NTSTATUS
1312 NTAPI
1313 FsRtlSetEcpListIntoIrp(
1314  _Inout_ PIRP Irp,
1315  _In_ PECP_LIST EcpList);
1316 
1320 NTSTATUS
1321 NTAPI
1322 FsRtlGetNextExtraCreateParameter(
1323  _In_ PECP_LIST EcpList,
1328 
1331 VOID
1332 NTAPI
1333 FsRtlAcknowledgeEcp(
1334  _In_ PVOID EcpContext);
1335 
1338 BOOLEAN
1339 NTAPI
1340 FsRtlIsEcpAcknowledged(
1341  _In_ PVOID EcpContext);
1342 
1345 BOOLEAN
1346 NTAPI
1347 FsRtlIsEcpFromUserMode(
1348  _In_ PVOID EcpContext);
1349 
1353 NTSTATUS
1354 NTAPI
1355 FsRtlChangeBackingFileObject(
1356  _In_opt_ PFILE_OBJECT CurrentFileObject,
1359  _In_ ULONG Flags);
1360 
1364 NTSTATUS
1365 NTAPI
1366 FsRtlLogCcFlushError(
1368  _In_ PDEVICE_OBJECT DeviceObject,
1371  _In_ ULONG Flags);
1372 
1375 BOOLEAN
1376 NTAPI
1377 FsRtlAreVolumeStartupApplicationsComplete(VOID);
1378 
1380 ULONG
1381 NTAPI
1383 
1385 NTSTATUS
1386 NTAPI
1388  _In_ PDEVICE_OBJECT DeviceObject,
1389  _Out_ PULONG NestingLevel,
1390  _Out_opt_ PULONG NestingFlags);
1391 
1392 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
1393 
1394 #if (NTDDI_VERSION >= NTDDI_VISTASP1)
1398 NTSTATUS
1399 NTAPI
1400 FsRtlCheckOplockEx(
1401  _In_ POPLOCK Oplock,
1402  _In_ PIRP Irp,
1403  _In_ ULONG Flags,
1404  _In_opt_ PVOID Context,
1405  _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
1406  _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
1407 
1408 #endif
1409 
1410 #if (NTDDI_VERSION >= NTDDI_WIN7)
1411 
1414 BOOLEAN
1415 NTAPI
1416 FsRtlAreThereCurrentOrInProgressFileLocks(
1417  _In_ PFILE_LOCK FileLock);
1418 
1422 BOOLEAN
1423 NTAPI
1424 FsRtlOplockIsSharedRequest(
1425  _In_ PIRP Irp);
1426 
1430 NTSTATUS
1431 NTAPI
1432 FsRtlOplockBreakH(
1433  _In_ POPLOCK Oplock,
1434  _In_ PIRP Irp,
1435  _In_ ULONG Flags,
1436  _In_opt_ PVOID Context,
1437  _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
1438  _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
1439 
1442 BOOLEAN
1443 NTAPI
1444 FsRtlCurrentOplockH(
1445  _In_ POPLOCK Oplock);
1446 
1450 NTSTATUS
1451 NTAPI
1452 FsRtlOplockBreakToNoneEx(
1453  _Inout_ POPLOCK Oplock,
1454  _In_ PIRP Irp,
1455  _In_ ULONG Flags,
1456  _In_opt_ PVOID Context,
1457  _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
1458  _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
1459 
1463 NTSTATUS
1464 NTAPI
1465 FsRtlOplockFsctrlEx(
1466  _In_ POPLOCK Oplock,
1467  _In_ PIRP Irp,
1468  _In_ ULONG OpenCount,
1469  _In_ ULONG Flags);
1470 
1473 BOOLEAN
1474 NTAPI
1475 FsRtlOplockKeysEqual(
1476  _In_opt_ PFILE_OBJECT Fo1,
1478 
1480 NTSTATUS
1481 NTAPI
1483  _Inout_ PECP_LIST EcpList);
1484 
1486 VOID
1487 NTAPI
1489  _Out_ PECP_HEADER Ecp,
1490  _In_ ULONG EcpFlags,
1492  _In_ ULONG TotalSize,
1493  _In_ LPCGUID EcpType,
1494  _In_opt_ PVOID ListAllocatedFrom);
1495 
1496 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
1497 
1501 NTSTATUS
1502 NTAPI
1503 FsRtlInsertPerFileContext(
1504  _In_ PVOID* PerFileContextPointer,
1506 
1511 NTAPI
1512 FsRtlLookupPerFileContext(
1513  _In_ PVOID* PerFileContextPointer,
1514  _In_opt_ PVOID OwnerId,
1515  _In_opt_ PVOID InstanceId);
1516 
1521 NTAPI
1522 FsRtlRemovePerFileContext(
1523  _In_ PVOID* PerFileContextPointer,
1524  _In_opt_ PVOID OwnerId,
1525  _In_opt_ PVOID InstanceId);
1526 
1529 VOID
1530 NTAPI
1531 FsRtlTeardownPerFileContexts(
1532  _In_ PVOID* PerFileContextPointer);
1533 
1537 NTSTATUS
1538 NTAPI
1540  _In_ PFILE_OBJECT FileObject,
1542 
1547 NTAPI
1549  _In_ PFILE_OBJECT FileObject,
1550  _In_opt_ PVOID OwnerId,
1551  _In_opt_ PVOID InstanceId);
1552 
1557 NTAPI
1559  _In_ PFILE_OBJECT FileObject,
1560  _In_opt_ PVOID OwnerId,
1561  _In_opt_ PVOID InstanceId);
1562 
1564 NTSTATUS
1565 NTAPI
1567  _In_ struct _DRIVER_OBJECT *FilterDriverObject,
1569 
1570 #if (NTDDI_VERSION >= NTDDI_VISTA)
1572 NTSTATUS
1573 NTAPI
1575  _In_ struct _FILE_OBJECT * StreamFileObject,
1576  _In_opt_ struct _DEVICE_OBJECT *DeviceObjectHint,
1578  _In_ BOOLEAN SafeToRecurse);
1579 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
1580 
1581 #define FsRtlFastLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) \
1582  FsRtlPrivateLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, NULL, A10, A11)
1583 
1584 #define FsRtlAreThereCurrentFileLocks(FL) \
1585  ((FL)->FastIoIsQuestionable)
1586 
1587 #define FsRtlIncrementLockRequestsInProgress(FL) { \
1588  ASSERT((FL)->LockRequestsInProgress >= 0); \
1589  (void) \
1590  (InterlockedIncrement((LONG volatile *)&((FL)->LockRequestsInProgress))); \
1591 }
1592 
1593 #define FsRtlDecrementLockRequestsInProgress(FL) { \
1594  ASSERT((FL)->LockRequestsInProgress > 0); \
1595  (void) \
1596  (InterlockedDecrement((LONG volatile *)&((FL)->LockRequestsInProgress))); \
1597 }
1598 
1599 #ifdef _NTSYSTEM_
1600 extern const UCHAR * const FsRtlLegalAnsiCharacterArray;
1601 #define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray
1602 #else
1603 __CREATE_NTOS_DATA_IMPORT_ALIAS(FsRtlLegalAnsiCharacterArray)
1604 extern const UCHAR * const *FsRtlLegalAnsiCharacterArray;
1605 #define LEGAL_ANSI_CHARACTER_ARRAY (*FsRtlLegalAnsiCharacterArray)
1606 #endif
1607 
1608 #define FsRtlIsAnsiCharacterWild(C) \
1609  FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], FSRTL_WILD_CHARACTER)
1610 
1611 #define FsRtlIsAnsiCharacterLegalFat(C, WILD) \
1612  FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_FAT_LEGAL) | \
1613  ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))
1614 
1615 #define FsRtlIsAnsiCharacterLegalHpfs(C, WILD) \
1616  FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_HPFS_LEGAL) | \
1617  ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))
1618 
1619 #define FsRtlIsAnsiCharacterLegalNtfs(C, WILD) \
1620  FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_NTFS_LEGAL) | \
1621  ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))
1622 
1623 #define FsRtlIsAnsiCharacterLegalNtfsStream(C,WILD_OK) \
1624  FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_STREAM_LEGAL)
1625 
1626 #define FsRtlIsAnsiCharacterLegal(C,FLAGS) \
1627  FsRtlTestAnsiCharacter((C), TRUE, FALSE, (FLAGS))
1628 
1629 #define FsRtlTestAnsiCharacter(C, DEFAULT_RET, WILD_OK, FLAGS) \
1630  (((SCHAR)(C) < 0) ? DEFAULT_RET : \
1631  FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(C)], \
1632  (FLAGS) | ((WILD_OK) ? FSRTL_WILD_CHARACTER : 0)))
1633 
1634 #define FsRtlIsLeadDbcsCharacter(DBCS_CHAR) \
1635  ((BOOLEAN)((UCHAR)(DBCS_CHAR) < 0x80 ? FALSE : \
1636  (NLS_MB_CODE_PAGE_TAG && \
1637  (NLS_OEM_LEAD_BYTE_INFO[(UCHAR)(DBCS_CHAR)] != 0))))
1638 
1639 #define FsRtlIsUnicodeCharacterWild(C) \
1640  ((((C) >= 0x40) ? FALSE : \
1641  FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(C)], FSRTL_WILD_CHARACTER )))
1642 
1643 #define FsRtlInitPerFileContext(_fc, _owner, _inst, _cb) \
1644  ((_fc)->OwnerId = (_owner), \
1645  (_fc)->InstanceId = (_inst), \
1646  (_fc)->FreeCallback = (_cb))
1647 
1648 #define FsRtlGetPerFileContextPointer(_fo) \
1649  (FsRtlSupportsPerFileContexts(_fo) ? \
1650  FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer : NULL)
1651 
1652 #define FsRtlSupportsPerFileContexts(_fo) \
1653  ((FsRtlGetPerStreamContextPointer(_fo) != NULL) && \
1654  (FsRtlGetPerStreamContextPointer(_fo)->Version >= FSRTL_FCB_HEADER_V1) && \
1655  (FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer != NULL))
1656 
1657 #define FsRtlSetupAdvancedHeaderEx(_advhdr, _fmutx, _fctxptr) \
1658 { \
1659  FsRtlSetupAdvancedHeader( _advhdr, _fmutx ); \
1660  if ((_fctxptr) != NULL) { \
1661  (_advhdr)->FileContextSupportPointer = (_fctxptr); \
1662  } \
1663 }
1664 
1665 #define FsRtlGetPerStreamContextPointer(FO) \
1666  ((PFSRTL_ADVANCED_FCB_HEADER)(FO)->FsContext)
1667 
1668 #define FsRtlInitPerStreamContext(PSC, O, I, FC) \
1669  ((PSC)->OwnerId = (O), \
1670  (PSC)->InstanceId = (I), \
1671  (PSC)->FreeCallback = (FC))
1672 
1673 #define FsRtlSupportsPerStreamContexts(FO) \
1674  ((BOOLEAN)((NULL != FsRtlGetPerStreamContextPointer(FO) && \
1675  FlagOn(FsRtlGetPerStreamContextPointer(FO)->Flags2, \
1676  FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS)))
1677 
1678 #define FsRtlLookupPerStreamContext(_sc, _oid, _iid) \
1679  (((NULL != (_sc)) && \
1680  FlagOn((_sc)->Flags2,FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS) && \
1681  !IsListEmpty(&(_sc)->FilterContexts)) ? \
1682  FsRtlLookupPerStreamContextInternal((_sc), (_oid), (_iid)) : NULL)
1683 
1686 VOID
1687 NTAPI
1688 FsRtlSetupAdvancedHeader(
1689  _In_ PVOID AdvHdr,
1693 
1694  localAdvHdr->Flags |= FSRTL_FLAG_ADVANCED_HEADER;
1696 #if (NTDDI_VERSION >= NTDDI_VISTA)
1697  localAdvHdr->Version = FSRTL_FCB_HEADER_V1;
1698 #else
1699  localAdvHdr->Version = FSRTL_FCB_HEADER_V0;
1700 #endif
1702  if (FMutex != NULL) {
1703  localAdvHdr->FastMutex = FMutex;
1704  }
1705 #if (NTDDI_VERSION >= NTDDI_VISTA)
1706  *((PULONG_PTR)(&localAdvHdr->PushLock)) = 0;
1708 #endif
1709 }
1710 
1711 #define FsRtlInitPerFileObjectContext(_fc, _owner, _inst) \
1712  ((_fc)->OwnerId = (_owner), (_fc)->InstanceId = (_inst))
1713 
1714 #define FsRtlCompleteRequest(IRP, STATUS) { \
1715  (IRP)->IoStatus.Status = (STATUS); \
1716  IoCompleteRequest( (IRP), IO_DISK_INCREMENT ); \
1717 }
1718 $endif (_NTIFS_)
HANDLE MupHandle
Definition: unc.c:21
_Must_inspect_result_ _Outptr_ PVOID * SectionObject
Definition: fsrtlfuncs.h:860
DWORD *typedef PVOID
Definition: winlogon.h:52
#define _Inout_updates_bytes_(size)
Definition: no_sal2.h:287
_Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) NTKERNELAPI BOOLEAN NTAPI FsRtlCopyWrite(_In_ PFILE_OBJECT FileObject
Definition: Messaging.c:64
CONST WCHAR * PCWCH
Definition: ntbasedef.h:418
unsigned int * PULONG32
Definition: basetsd.h:125
NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadWait(VOID)
Definition: fastio.c:44
_Must_inspect_result_ Obsolete NTKERNELAPI BOOLEAN NTAPI FsRtlPrivateLock(_In_ PFILE_LOCK FileLock, _In_ PFILE_OBJECT FileObject, _In_ PLARGE_INTEGER FileOffset, _In_ PLARGE_INTEGER Length, _In_ PEPROCESS Process, _In_ ULONG Key, _In_ BOOLEAN FailImmediately, _In_ BOOLEAN ExclusiveLock, _Out_ PIO_STATUS_BLOCK IoStatus, _In_opt_ PIRP Irp, _In_opt_ __drv_aliasesMem PVOID Context, _In_ BOOLEAN AlreadySynchronized)
ULONG FSRTL_ALLOCATE_ECPLIST_FLAGS
Definition: fsrtltypes.h:141
_Must_inspect_result_ _In_ LONGLONG _In_ LONGLONG Amount
Definition: fsrtlfuncs.h:550
PCWSTR Expression
_Must_inspect_result_ _In_opt_ PLARGE_INTEGER Timeout
Definition: fsrtlfuncs.h:1139
#define _Must_inspect_result_
Definition: no_sal2.h:314
#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name)
NTKERNELAPI NTSTATUS NTAPI FsRtlRegisterFileSystemFilterCallbacks(_In_ struct _DRIVER_OBJECT *FilterDriverObject, _In_ PFS_FILTER_CALLBACKS Callbacks)
VOID(NTAPI * PFSRTL_STACK_OVERFLOW_ROUTINE)(_In_ PVOID Context, _In_ PKEVENT Event)
Definition: fsrtltypes.h:105
BOOLEAN NTAPI FsRtlFastCheckLockForRead(IN PFILE_LOCK FileLock, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, IN ULONG Key, IN PFILE_OBJECT FileObject, IN PVOID Process)
Definition: filelock.c:752
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ FSRTL_CHANGE_BACKING_TYPE ChangeBackingType
Definition: fsrtlfuncs.h:1357
BOOLEAN NTAPI FsRtlLookupLastBaseMcbEntry(IN PBASE_MCB OpaqueMcb, OUT PLONGLONG Vbn, OUT PLONGLONG Lbn)
Definition: largemcb.c:701
NTKERNELAPI NTSTATUS NTAPI FsRtlInitializeExtraCreateParameterList(_Inout_ PECP_LIST EcpList)
_Must_inspect_result_ _Outptr_ PECP_LIST * EcpList
Definition: fsrtlfuncs.h:1207
_Must_inspect_result_ _In_ LPCGUID _Outptr_opt_ PVOID _Out_opt_ ULONG * EcpContextSize
Definition: fsrtlfuncs.h:1284
_In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN _In_ ULONG LockKey
Definition: fsrtlfuncs.h:16
#define _Out_writes_bytes_to_(size, count)
Definition: no_sal2.h:374
VOID NTAPI FsRtlTruncateMcb(IN PMCB Mcb, IN VBN Vbn)
Definition: mcb.c:173
_Must_inspect_result_ _In_ BOOLEAN _In_ BOOLEAN _In_ BOOLEAN LeadingBackslashPermissible
Definition: fsrtlfuncs.h:405
#define FSRTL_FCB_HEADER_V0
Definition: fsrtltypes.h:42
_Must_inspect_result_ _In_ ULONG SizeOfContext
Definition: fsrtlfuncs.h:1223
_In_ BOOLEAN SelfSynchronized
Definition: fsrtlfuncs.h:462
NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadResourceMiss(VOID)
Definition: fastio.c:24
_Must_inspect_result_ __drv_aliasesMem PDEVICE_OBJECT _In_ PDEVICE_OBJECT TargetDevice
Definition: iofuncs.h:688
BOOLEAN NTAPI FsRtlMdlReadCompleteDev(IN PFILE_OBJECT FileObject, IN PMDL MemoryDescriptorList, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.c:1009
VOID NTAPI FsRtlInitializeFileLock(IN PFILE_LOCK FileLock, IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine OPTIONAL, IN PUNLOCK_ROUTINE UnlockRoutine OPTIONAL)
Definition: filelock.c:1261
VOID NTAPI FsRtlNotifyFullChangeDirectory(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PVOID FsContext, IN PSTRING FullDirectoryName, IN BOOLEAN WatchTree, IN BOOLEAN IgnoreBuffer, IN ULONG CompletionFilter, IN PIRP NotifyIrp, IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL, IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL)
Definition: notify.c:1458
Definition: fatfs.h:173
_Must_inspect_result_ _In_ USHORT PathLength
Definition: fsrtlfuncs.h:1197
_In_ PIRP Irp
Definition: csq.h:116
_In_ PLIST_ENTRY NotifyList
Definition: fsrtlfuncs.h:722
NTKERNELAPI NTSTATUS NTAPI FsRtlNormalizeNtstatus(_In_ NTSTATUS Exception, _In_ NTSTATUS GenericException)
BOOLEAN NTAPI FsRtlMdlWriteCompleteDev(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.c:1196
VOID NTAPI FsRtlUninitializeFileLock(IN PFILE_LOCK FileLock)
Definition: filelock.c:1278
BOOLEAN NTAPI FsRtlCheckLockForWriteAccess(IN PFILE_LOCK FileLock, IN PIRP Irp)
Definition: filelock.c:714
VBN * PVBN
Definition: fsrtltypes.h:8
VOID NTAPI FsRtlRemoveLargeMcbEntry(IN PLARGE_MCB Mcb, IN LONGLONG Vbn, IN LONGLONG SectorCount)
Definition: largemcb.c:862
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
_Must_inspect_result_ _Outptr_ PVOID _Out_opt_ PLARGE_INTEGER _In_ PFILE_OBJECT _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER MaximumSize
Definition: fsrtlfuncs.h:860
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
Definition: fsrtlfuncs.h:898
_In_ PFILE_OBJECT _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ PEPROCESS _In_ ULONG _In_opt_ PVOID _In_ BOOLEAN AlreadySynchronized
Definition: fsrtlfuncs.h:265
ULONG FSRTL_ECP_LOOKASIDE_FLAGS
Definition: fsrtltypes.h:143
NTKERNELAPI VOID NTAPI FsRtlInitializeExtraCreateParameter(_Out_ PECP_HEADER Ecp, _In_ ULONG EcpFlags, _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback, _In_ ULONG TotalSize, _In_ LPCGUID EcpType, _In_opt_ PVOID ListAllocatedFrom)
_Must_inspect_result_ _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOID * NextEcpContext
Definition: fsrtlfuncs.h:1324
VOID NTAPI FsRtlNotifyFilterReportChange(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PSTRING FullTargetName, IN USHORT TargetNameOffset, IN PSTRING StreamName OPTIONAL, IN PSTRING NormalizedParentName OPTIONAL, IN ULONG FilterMatch, IN ULONG Action, IN PVOID TargetContext, IN PVOID FilterContext)
Definition: notify.c:973
PFILE_LOCK NTAPI FsRtlAllocateFileLock(IN PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine OPTIONAL, IN PUNLOCK_ROUTINE UnlockRoutine OPTIONAL)
Definition: filelock.c:1314
BOOLEAN NTAPI FsRtlSplitBaseMcb(IN PBASE_MCB OpaqueMcb, IN LONGLONG Vbn, IN LONGLONG Amount)
Definition: largemcb.c:919
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT FileObject
Definition: fsrtlfuncs.h:219
#define _NTIFS_
Definition: ifssupp.h:20
#define _Outptr_
Definition: no_sal2.h:396
_In_ LONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG SectorCountFromLbn
Definition: fsrtlfuncs.h:498
PVOID *typedef PWSTR
Definition: winlogon.h:57
VOID NTAPI FsRtlPostPagingFileStackOverflow(IN PVOID Context, IN PKEVENT Event, IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine)
Definition: stackovf.c:206
_Must_inspect_result_ _In_ LONGLONG _In_ LONGLONG Lbn
Definition: fsrtlfuncs.h:479
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING NormalizedParentName
Definition: fsrtlfuncs.h:738
_Must_inspect_result_ _In_ ULONG _Out_writes_bytes_ pBufferSize PVOID _Inout_ PULONG pBufferSize
Definition: fsrtlfuncs.h:1164
VOID NTAPI FsRtlDeleteKeyFromTunnelCache(IN PTUNNEL Cache, IN ULONGLONG DirectoryKey)
Definition: tunnel.c:588
NTSTATUS ExInitializeResourceLite(PULONG res)
Definition: env_spec_w32.h:641
_Must_inspect_result_ _Outptr_ PVOID _Out_opt_ PLARGE_INTEGER _In_ PFILE_OBJECT _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG AllocationAttributes
Definition: fsrtlfuncs.h:860
_Must_inspect_result_ _In_ USHORT _Out_ USHORT * NewLength
Definition: fsrtlfuncs.h:1197
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
Definition: exfuncs.h:1015
_Must_inspect_result_ _Out_ PULONG32 pProviderId
Definition: fsrtlfuncs.h:1174
_Out_ PANSI_STRING _Out_ PANSI_STRING RemainingPart
Definition: fsrtlfuncs.h:378
_Must_inspect_result_ _In_opt_ PIO_STACK_LOCATION IrpSp
Definition: fsrtlfuncs.h:1098
_In_ ULONGLONG _In_ PUNICODE_STRING _In_ PUNICODE_STRING _In_ BOOLEAN _In_ ULONG DataLength
Definition: fsrtlfuncs.h:336
VOID NTAPI FsRtlNotifyFullReportChange(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PSTRING FullTargetName, IN USHORT TargetNameOffset, IN PSTRING StreamName OPTIONAL, IN PSTRING NormalizedParentName OPTIONAL, IN ULONG FilterMatch, IN ULONG Action, IN PVOID TargetContext)
Definition: notify.c:1523
NTSTATUS NTAPI FsRtlGetFileSize(IN PFILE_OBJECT FileObject, IN OUT PLARGE_INTEGER FileSize)
Definition: fastio.c:813
VOID NTAPI FsRtlUninitializeOplock(IN POPLOCK Oplock)
Definition: oplock.c:1602
uint16_t * PWCHAR
Definition: typedefs.h:54
VOID NTAPI FsRtlAcquireFileExclusive(IN PFILE_OBJECT FileObject)
Definition: fastio.c:1592
BOOLEAN NTAPI FsRtlPrepareMdlWriteDev(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.c:1270
#define FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL
Definition: fsrtltypes.h:120
_Out_ PLONGLONG LargeVbn
Definition: fsrtlfuncs.h:520
VOID NTAPI FsRtlReleaseFile(IN PFILE_OBJECT FileObject)
Definition: fastio.c:1605
_Must_inspect_result_ _In_ PFILE_OBJECT NewFileObject
Definition: fsrtlfuncs.h:1357
VOID(* PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK)(_Inout_ PVOID EcpContext, _In_ LPCGUID EcpType)
Definition: fsrtltypes.h:135
PVOID PMDL
Definition: usb.h:39
NTSTATUS NTAPI FsRtlInsertPerFileObjectContext(IN PFILE_OBJECT FileObject, IN PFSRTL_PER_FILEOBJECT_CONTEXT Ptr)
Definition: filtrctx.c:175
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_opt_ PIRP _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback
Definition: fsrtlfuncs.h:722
ULONG NTAPI FsRtlNumberOfRunsInLargeMcb(IN PLARGE_MCB Mcb)
Definition: largemcb.c:769
BOOLEAN NTAPI FsRtlDoesNameContainWildCards(IN PUNICODE_STRING Name)
Definition: name.c:464
BOOLEAN NTAPI FsRtlDoesDbcsContainWildCards(IN PANSI_STRING Name)
Definition: dbcsname.c:117
LBN * PLBN
Definition: fsrtltypes.h:5
_Must_inspect_result_ _Outptr_ PVOID _Out_opt_ PLARGE_INTEGER _In_ PFILE_OBJECT _In_ ACCESS_MASK DesiredAccess
Definition: fsrtlfuncs.h:860
BOOLEAN NTAPI FsRtlIsHpfsDbcsLegal(IN ANSI_STRING DbcsName, IN BOOLEAN WildCardsPermissible, IN BOOLEAN PathNamePermissible, IN BOOLEAN LeadingBackslashPermissible)
Definition: dbcsname.c:638
_Must_inspect_result_ _In_ BOOLEAN _In_ BOOLEAN PathNamePermissible
Definition: fsrtlfuncs.h:405
NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadNoWait(VOID)
Definition: fastio.c:54
BOOLEAN NTAPI FsRtlIsNameInExpression(IN PUNICODE_STRING Expression, IN PUNICODE_STRING Name, IN BOOLEAN IgnoreCase, IN PWCHAR UpcaseTable OPTIONAL)
Definition: name.c:514
VOID NTAPI FsRtlTruncateLargeMcb(IN PLARGE_MCB Mcb, IN LONGLONG Vbn)
Definition: largemcb.c:1016
#define _In_opt_
Definition: no_sal2.h:213
_Must_inspect_result_ _In_ PDEVICE_OBJECT _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer
Definition: fsrtlfuncs.h:1368
_Must_inspect_result_ _In_ ULONG RunIndex
Definition: fsrtlfuncs.h:538
Obsolete NTKERNELAPI VOID NTAPI FsRtlInitializeMcb(_Out_ PMCB Mcb, _In_ POOL_TYPE PoolType)
_In_ PLIST_ENTRY _In_ PSTRING FullTargetName
Definition: fsrtlfuncs.h:738
BOOLEAN NTAPI FsRtlLookupBaseMcbEntry(IN PBASE_MCB OpaqueMcb, IN LONGLONG Vbn, OUT PLONGLONG Lbn OPTIONAL, OUT PLONGLONG SectorCountFromLbn OPTIONAL, OUT PLONGLONG StartingLbn OPTIONAL, OUT PLONGLONG SectorCountFromStartingLbn OPTIONAL, OUT PULONG Index OPTIONAL)
Definition: largemcb.c:504
VOID NTAPI FsRtlNotifyCleanup(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PVOID FsContext)
Definition: notify.c:635
BOOLEAN NTAPI FsRtlGetNextLargeMcbEntry(IN PLARGE_MCB Mcb, IN ULONG RunIndex, OUT PLONGLONG Vbn, OUT PLONGLONG Lbn, OUT PLONGLONG SectorCount)
Definition: largemcb.c:391
__GNU_EXTENSION typedef __int64 * PLONGLONG
Definition: ntbasedef.h:389
NTSTATUS NTAPI FsRtlFastUnlockAllByKey(IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN PEPROCESS Process, IN ULONG Key, IN PVOID Context OPTIONAL)
Definition: filelock.c:1087
NTSTATUS NTAPI FsRtlOplockFsctrl(IN POPLOCK Oplock, IN PIRP Irp, IN ULONG OpenCount)
Definition: oplock.c:1432
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_opt_ PIRP NotifyIrp
Definition: fsrtlfuncs.h:722
_Must_inspect_result_ NTKERNELAPI BOOLEAN NTAPI FsRtlIsTotalDeviceFailure(_In_ NTSTATUS Status)
_Must_inspect_result_ _Outptr_ PVOID _Out_opt_ PLARGE_INTEGER SectionFileSize
Definition: fsrtlfuncs.h:860
VOID NTAPI FsRtlInitializeBaseMcb(IN PBASE_MCB OpaqueMcb, IN POOL_TYPE PoolType)
Definition: largemcb.c:419
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_In_ PVOID FilterContext
Definition: fsrtltypes.h:299
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN _In_ ULONG _In_reads_bytes_(Length) PVOID Buffer
_Must_inspect_result_ _In_ PIRP _In_ ULONG OpenCount
Definition: fsrtlfuncs.h:663
ERESOURCE * PERESOURCE
Definition: env_spec_w32.h:595
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
NTSTATUS NTAPI FsRtlFastUnlockSingle(IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, IN PEPROCESS Process, IN ULONG Key, IN PVOID Context OPTIONAL, IN BOOLEAN AlreadySynchronized)
Definition: filelock.c:829
struct _FSRTL_ADVANCED_FCB_HEADER * PFSRTL_ADVANCED_FCB_HEADER
_Must_inspect_result_ _In_reads_(Count) PVOID ObjectArray[]
VOID NTAPI FsRtlAddToTunnelCache(IN PTUNNEL Cache, IN ULONGLONG DirectoryKey, IN PUNICODE_STRING ShortName, IN PUNICODE_STRING LongName, IN BOOLEAN KeyByShortName, IN ULONG DataLength, IN PVOID Data)
Definition: tunnel.c:341
_Must_inspect_result_ _Outptr_ PVOID _Out_opt_ PLARGE_INTEGER _In_ PFILE_OBJECT _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER _In_ ULONG SectionPageProtection
Definition: fsrtlfuncs.h:860
BOOLEAN NTAPI FsRtlFindInTunnelCache(IN PTUNNEL Cache, IN ULONGLONG DirectoryKey, IN PUNICODE_STRING Name, OUT PUNICODE_STRING ShortName, OUT PUNICODE_STRING LongName, IN OUT PULONG DataLength, OUT PVOID Data)
Definition: tunnel.c:765
_In_ ULONG BufferLength
Definition: usbdlib.h:225
#define MCB_FLAG_RAISE_ON_ALLOCATION_FAILURE
Definition: fsrtltypes.h:233
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN FailImmediately
Definition: fatprocs.h:2697
BOOLEAN NTAPI FsRtlGetNextMcbEntry(IN PMCB Mcb, IN ULONG RunIndex, OUT PVBN Vbn, OUT PLBN Lbn, OUT PULONG SectorCount)
Definition: mcb.c:40
_Must_inspect_result_ _In_ BOOLEAN WildCardsPermissible
Definition: fsrtlfuncs.h:405
#define __drv_aliasesMem
Definition: btrfs_drv.h:161
_Must_inspect_result_ _In_opt_ PVOID _In_opt_ PVOID InstanceId
Definition: fsrtlfuncs.h:907
NTKERNELAPI NTSTATUS NTAPI FsRtlValidateReparsePointBuffer(IN ULONG BufferLength, IN PREPARSE_DATA_BUFFER ReparseBuffer)
Definition: fsrtl.c:146
_Must_inspect_result_ _In_ ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback
Definition: fsrtlfuncs.h:1223
VOID NTAPI FsRtlUninitializeMcb(IN PMCB Mcb)
Definition: mcb.c:186
VOID NTAPI FsRtlInitializeLargeMcb(IN PLARGE_MCB Mcb, IN POOL_TYPE PoolType)
Definition: largemcb.c:450
LOGICAL NTAPI FsRtlIsPagingFile(IN PFILE_OBJECT FileObject)
Definition: filtrctx.c:64
BOOLEAN NTAPI FsRtlLookupLastLargeMcbEntry(IN PLARGE_MCB Mcb, OUT PLONGLONG Vbn, OUT PLONGLONG Lbn)
Definition: largemcb.c:722
smooth NULL
Definition: ftsmooth.c:416
#define __drv_preferredFunction(func, why)
Definition: driverspecs.h:293
enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE FS_FILTER_STREAM_FO_NOTIFICATION_TYPE
VOID NTAPI FsRtlDissectDbcs(IN ANSI_STRING Name, OUT PANSI_STRING FirstPart, OUT PANSI_STRING RemainingPart)
Definition: dbcsname.c:45
#define FORCEINLINE
Definition: ntbasedef.h:221
#define _Out_
Definition: no_sal2.h:323
_Must_inspect_result_ ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _Inout_ PVOID LookasideList
Definition: fsrtlfuncs.h:1262
#define NTKERNELAPI
VOID NTAPI FsRtlUninitializeBaseMcb(IN PBASE_MCB Mcb)
Definition: largemcb.c:1031
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN IgnoreBuffer
Definition: fsrtlfuncs.h:722
BOOLEAN NTAPI FsRtlIsDbcsInExpression(IN PANSI_STRING Expression, IN PANSI_STRING Name)
Definition: dbcsname.c:160
$endif(_WDMDDK_) $if(_NTDDK_) typedef struct _NEON128
Definition: ke.h:202
Definition: bufpool.h:45
_Must_inspect_result_ _In_ PCUNICODE_STRING _In_ BOOLEAN IgnoreCase
Definition: fsrtlfuncs.h:796
const UCHAR *const * FsRtlLegalAnsiCharacterArray
Definition: fsrtlpc.c:154
WaitType
Definition: shlextdbg.cpp:19
BOOLEAN NTAPI FsRtlLookupMcbEntry(IN PMCB Mcb, IN VBN Vbn, OUT PLBN Lbn, OUT PULONG SectorCount OPTIONAL, OUT PULONG Index)
Definition: mcb.c:113
_Must_inspect_result_ _In_ PCUNICODE_STRING _In_ BOOLEAN _In_reads_opt_(0x10000) PCWCH UpcaseTable)
_In_ ULONGLONG _In_ PUNICODE_STRING _In_ PUNICODE_STRING _In_ BOOLEAN KeyByShortName
Definition: fsrtlfuncs.h:336
_In_ LONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG StartingLbn
Definition: fsrtlfuncs.h:498
BOOLEAN NTAPI FsRtlMdlReadDev(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.c:1023
NTKERNELAPI NTSTATUS NTAPI FsRtlGetVirtualDiskNestingLevel(_In_ PDEVICE_OBJECT DeviceObject, _Out_ PULONG NestingLevel, _Out_opt_ PULONG NestingFlags)
PFILE_LOCK_INFO NTAPI FsRtlGetNextFileLock(IN PFILE_LOCK FileLock, IN BOOLEAN Restart)
Definition: filelock.c:259
_In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN _In_ ULONG _Out_ PIO_STATUS_BLOCK IoStatus
Definition: fsrtlfuncs.h:21
UINTN Size
Definition: acefiex.h:555
FSRTL_COMMON_FCB_HEADER_LAYOUT PFAST_MUTEX FastMutex
Definition: fsrtltypes.h:34
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING StreamName
Definition: fsrtlfuncs.h:738
int64_t LONGLONG
Definition: typedefs.h:66
_In_ ULONGLONG _In_ PUNICODE_STRING ShortName
Definition: fsrtlfuncs.h:336
#define _Out_opt_
Definition: no_sal2.h:339
_In_ HANDLE Handle
Definition: extypes.h:390
_Must_inspect_result_ ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _Inout_ PVOID _Outptr_ PVOID * EcpContext
Definition: fsrtlfuncs.h:1262
BOOLEAN NTAPI FsRtlAreNamesEqual(IN PCUNICODE_STRING Name1, IN PCUNICODE_STRING Name2, IN BOOLEAN IgnoreCase, IN PCWCH UpcaseTable OPTIONAL)
Definition: name.c:296
unsigned char BOOLEAN
VOID NTAPI FsRtlResetBaseMcb(IN PBASE_MCB OpaqueMcb)
Definition: largemcb.c:878
_Must_inspect_result_ _In_ LPCGUID EcpType
Definition: fsrtlfuncs.h:1284
_Must_inspect_result_ _In_ ULONG _Out_writes_bytes_ pBufferSize PVOID pBuffer
Definition: fsrtlfuncs.h:1164
LONG NTSTATUS
Definition: precomp.h:26
_Must_inspect_result_ _In_opt_ PUNLOCK_ROUTINE UnlockRoutine
Definition: fsrtlfuncs.h:124
VOID NTAPI FsRtlTeardownPerStreamContexts(IN PFSRTL_ADVANCED_FCB_HEADER AdvFcbHeader)
Definition: filtrctx.c:368
NTSTATUS NTAPI FsRtlNotifyVolumeEvent(IN PFILE_OBJECT FileObject, IN ULONG EventCode)
Definition: pnp.c:38
_Inout_ PVOID Lookaside
Definition: fltkernel.h:2532
const struct winhelp_callbacks Callbacks
Definition: callback.c:161
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG FilterMatch
Definition: fsrtlfuncs.h:738
BOOLEAN NTAPI FsRtlAddBaseMcbEntry(IN PBASE_MCB OpaqueMcb, IN LONGLONG Vbn, IN LONGLONG Lbn, IN LONGLONG SectorCount)
Definition: largemcb.c:135
InitializeListHead & localAdvHdr
Definition: fsrtlfuncs.h:1701
VOID NTAPI FsRtlDissectName(IN UNICODE_STRING Name, OUT PUNICODE_STRING FirstPart, OUT PUNICODE_STRING RemainingPart)
Definition: name.c:398
INT POOL_TYPE
Definition: typedefs.h:76
BOOLEAN NTAPI FsRtlCheckLockForReadAccess(IN PFILE_LOCK FileLock, IN PIRP Irp)
Definition: filelock.c:676
uint64_t ULONGLONG
Definition: typedefs.h:65
NTSTATUS NTAPI FsRtlBalanceReads(PDEVICE_OBJECT TargetDevice)
Definition: faulttol.c:35
VOID NTAPI FsRtlInitializeOplock(IN OUT POPLOCK Oplock)
Definition: oplock.c:1402
PVOID PNOTIFY_SYNC
Definition: fsrtltypes.h:284
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG Action
Definition: fsrtlfuncs.h:738
BOOLEAN NTAPI FsRtlGetNextBaseMcbEntry(IN PBASE_MCB OpaqueMcb, IN ULONG RunIndex, OUT PLONGLONG Vbn, OUT PLONGLONG Lbn, OUT PLONGLONG SectorCount)
Definition: largemcb.c:326
VOID NTAPI FsRtlInitializeTunnelCache(IN PTUNNEL Cache)
Definition: tunnel.c:891
#define _Outptr_result_maybenull_
Definition: no_sal2.h:426
enum _WAIT_TYPE WAIT_TYPE
BOOLEAN NTAPI FsRtlRemoveBaseMcbEntry(IN PBASE_MCB OpaqueMcb, IN LONGLONG Vbn, IN LONGLONG SectorCount)
Definition: largemcb.c:799
VOID NTAPI FsRtlPostStackOverflow(IN PVOID Context, IN PKEVENT Event, IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine)
Definition: stackovf.c:232
#define FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS
Definition: fsrtltypes.h:55
BOOLEAN NTAPI FsRtlLookupLastBaseMcbEntryAndIndex(IN PBASE_MCB OpaqueMcb, IN OUT PLONGLONG LargeVbn, IN OUT PLONGLONG LargeLbn, IN OUT PULONG Index)
Definition: largemcb.c:653
#define OPLOCK_FLAG_BACK_OUT_ATOMIC_OPLOCK
Definition: fsrtltypes.h:268
#define _Inout_
Definition: no_sal2.h:244
_In_ ULONGLONG DirectoryKey
Definition: fsrtlfuncs.h:336
BOOLEAN NTAPI FsRtlCurrentBatchOplock(IN POPLOCK Oplock)
Definition: oplock.c:1366
* PFILE_OBJECT
Definition: iotypes.h:1954
static IUnknown Object
Definition: main.c:512
_In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN _In_ ULONG _Out_writes_bytes_(Length) PVOID Buffer
BOOLEAN NTAPI FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb, IN LONGLONG Vbn, IN LONGLONG Lbn, IN LONGLONG SectorCount)
Definition: largemcb.c:282
_In_ PUNICODE_STRING Name
Definition: mrx.h:218
NTSTATUS NTAPI FsRtlCreateSectionForDataScan(OUT PHANDLE SectionHandle, OUT PVOID *SectionObject, OUT PLARGE_INTEGER SectionFileSize OPTIONAL, IN PFILE_OBJECT FileObject, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN PLARGE_INTEGER MaximumSize OPTIONAL, IN ULONG SectionPageProtection, IN ULONG AllocationAttributes, IN ULONG Flags)
Definition: fsfilter.c:60
_In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN _In_ ULONG _Out_ PIO_STATUS_BLOCK _In_ PDEVICE_OBJECT DeviceObject
Definition: fsrtlfuncs.h:21
unsigned char UCHAR
Definition: xmlstorage.h:181
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN WatchTree
Definition: fsrtlfuncs.h:722
IN REFCLSID IN PUNKNOWN IN POOL_TYPE PoolType
Definition: unknown.h:68
VOID UINTN Length
Definition: acefiex.h:744
_Must_inspect_result_ _In_opt_ PVOID _Out_opt_ LPGUID NextEcpType
Definition: fsrtlfuncs.h:1324
NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastMdlReadWait(VOID)
_In_opt_ PFILE_OBJECT Fo2
Definition: fsrtlfuncs.h:1477
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
Definition: fsrtlfuncs.h:108
int jpeg_marker_parser_method routine
Definition: jpeglib.h:1089
#define _Outptr_opt_
Definition: no_sal2.h:397
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG CompletionFilter
Definition: fsrtlfuncs.h:722
Definition: typedefs.h:117
NTSTATUS NTAPI FsRtlFastUnlockAll(IN PFILE_LOCK FileLock, IN PFILE_OBJECT FileObject, IN PEPROCESS Process, IN PVOID Context OPTIONAL)
Definition: filelock.c:1026
BOOLEAN NTAPI FsRtlLookupLastMcbEntry(IN PMCB Mcb, OUT PVBN Vbn, OUT PLBN Lbn)
Definition: mcb.c:86
PVOID * POPLOCK
Definition: fsrtltypes.h:250
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
BOOLEAN NTAPI FsRtlLookupLastLargeMcbEntryAndIndex(IN PLARGE_MCB OpaqueMcb, OUT PLONGLONG LargeVbn, OUT PLONGLONG LargeLbn, OUT PULONG Index)
Definition: largemcb.c:675
_Must_inspect_result_ _In_ ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _In_ ULONG PoolTag
Definition: fsrtlfuncs.h:1223
_In_ LONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG SectorCountFromStartingLbn
Definition: fsrtlfuncs.h:498
_Must_inspect_result_ _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOID _Out_opt_ ULONG * NextEcpContextSize
Definition: fsrtlfuncs.h:1324
_In_ ULONG EventCode
Definition: fsrtlfuncs.h:700
ULONG VBN
Definition: fsrtltypes.h:7
NTSTATUS NTAPI FsRtlProcessFileLock(IN PFILE_LOCK FileLock, IN PIRP Irp, IN PVOID Context OPTIONAL)
Definition: filelock.c:1153
Status
Definition: gdiplustypes.h:24
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
#define _In_
Definition: no_sal2.h:204
struct _ECP_LIST * PECP_LIST
Definition: fsrtltypes.h:139
_In_opt_ PVOID TargetContext
Definition: fsrtltypes.h:293
BOOLEAN NTAPI FsRtlIsFatDbcsLegal(IN ANSI_STRING DbcsName, IN BOOLEAN WildCardsPermissible, IN BOOLEAN PathNamePermissible, IN BOOLEAN LeadingBackslashPermissible)
Definition: dbcsname.c:466
ULONG_PTR SIZE_T
Definition: typedefs.h:78
#define FSRTL_FLAG_ADVANCED_HEADER
Definition: fsrtltypes.h:51
BOOLEAN NTAPI FsRtlLookupLargeMcbEntry(IN PLARGE_MCB Mcb, IN LONGLONG Vbn, OUT PLONGLONG Lbn OPTIONAL, OUT PLONGLONG SectorCountFromLbn OPTIONAL, OUT PLONGLONG StartingLbn OPTIONAL, OUT PLONGLONG SectorCountFromStartingLbn OPTIONAL, OUT PULONG Index OPTIONAL)
Definition: largemcb.c:564
DWORD *typedef HANDLE
Definition: winlogon.h:52
* PFAST_MUTEX
Definition: extypes.h:17
PFSRTL_PER_FILEOBJECT_CONTEXT NTAPI FsRtlRemovePerFileObjectContext(IN PFILE_OBJECT FileObject, IN PVOID OwnerId OPTIONAL, IN PVOID InstanceId OPTIONAL)
Definition: filtrctx.c:254
VOID NTAPI FsRtlTruncateBaseMcb(IN PBASE_MCB OpaqueMcb, IN LONGLONG Vbn)
Definition: largemcb.c:1003
_In_ PFAST_MUTEX FMutex
Definition: fsrtlfuncs.h:1691
_Must_inspect_result_ _In_ PUNICODE_STRING RedirDevName
Definition: fsrtlfuncs.h:1127
PFSRTL_PER_STREAM_CONTEXT NTAPI FsRtlRemovePerStreamContext(IN PFSRTL_ADVANCED_FCB_HEADER AdvFcbHeader, IN PVOID OwnerId OPTIONAL, IN PVOID InstanceId OPTIONAL)
Definition: filtrctx.c:312
The FsRtlAllocateResource routine is but is exported to support existing driver binaries Use ExAllocateFromNPagedLookasideList and ExInitializeResourceLite instead NTKERNELAPI PERESOURCE NTAPI FsRtlAllocateResource(VOID)
Definition: fsrtlpc.c:209
struct _ECP_HEADER * PECP_HEADER
Definition: fsrtltypes.h:287
unsigned short USHORT
Definition: pedump.c:61
_In_ LONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PULONG Index
Definition: fsrtlfuncs.h:498
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT TargetNameOffset
Definition: fsrtlfuncs.h:738
_Must_inspect_result_ _In_opt_ PVOID CurrentEcpContext
Definition: fsrtlfuncs.h:1324
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
IN PVCB IN ULONG IN OUT PULONG IN BOOLEAN OUT PLARGE_MCB Mcb
Definition: fatprocs.h:334
_In_ ULONGLONG _In_ PUNICODE_STRING _In_ PUNICODE_STRING LongName
Definition: fsrtlfuncs.h:336
NTKERNELAPI ULONG NTAPI FsRtlQueryMaximumVirtualDiskNestingLevel(VOID)
BOOLEAN NTAPI FsRtlAddMcbEntry(IN PMCB Mcb, IN VBN Vbn, IN LBN Lbn, IN ULONG SectorCount)
Definition: mcb.c:22
_Must_inspect_result_ _In_ PDEVICE_OBJECT _In_ PSECTION_OBJECT_POINTERS _In_ NTSTATUS FlushError
Definition: fsrtlfuncs.h:1368
VOID NTAPI FsRtlUninitializeLargeMcb(IN PLARGE_MCB Mcb)
Definition: largemcb.c:1053
unsigned int * PULONG
Definition: retypes.h:1
_Must_inspect_result_ _In_ PUNICODE_STRING _In_ BOOLEAN _In_opt_ PWCHAR UpcaseTable
Definition: fsrtlfuncs.h:807
NTSTATUS NTAPI FsRtlOplockBreakToNone(IN PINTERNAL_OPLOCK Oplock, IN PIO_STACK_LOCATION Stack, IN PIRP Irp, IN PVOID Context, IN POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine OPTIONAL, IN POPLOCK_FS_PREPOST_IRP PostIrpRoutine OPTIONAL)
Definition: oplock.c:903
_Must_inspect_result_ _In_ LONGLONG _In_ LONGLONG _In_ LONGLONG SectorCount
Definition: fsrtlfuncs.h:479
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_opt_ PIRP _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS _In_opt_ PSECURITY_SUBJECT_CONTEXT _In_opt_ PFILTER_REPORT_CHANGE FilterCallback
Definition: fsrtlfuncs.h:880
_In_ BOOLEAN Wait
Definition: cctypes.h:23
NTSTATUS NTAPI FsRtlRemoveDotsFromPath(PWSTR OriginalString, USHORT PathLength, USHORT *NewLength)
PFSRTL_PER_FILEOBJECT_CONTEXT NTAPI FsRtlLookupPerFileObjectContext(IN PFILE_OBJECT FileObject, IN PVOID OwnerId OPTIONAL, IN PVOID InstanceId OPTIONAL)
Definition: filtrctx.c:74
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG BOOLEAN BOOLEAN ExclusiveLock
Definition: fatprocs.h:2697
The FsRtlAllocateResource routine is obsolete
Definition: fsrtlfuncs.h:435
struct @1540::@1541 driver
_In_ LONGLONG Vbn
Definition: fsrtlfuncs.h:470
_Must_inspect_result_ NTKERNELAPI BOOLEAN NTAPI FsRtlIsNtstatusExpected(_In_ NTSTATUS Ntstatus)
IN ULONG IN ULONG Tag
Definition: evtlib.h:159
_In_ PLARGE_INTEGER FileOffset
Definition: cctypes.h:53
BOOLEAN NTAPI FsRtlCopyRead(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.c:64
BOOLEAN NTAPI FsRtlCopyWrite(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN PDEVICE_OBJECT DeviceObject)
Definition: fastio.c:264
VOID NTAPI FsRtlRemoveMcbEntry(IN PMCB Mcb, IN VBN Vbn, IN ULONG SectorCount)
Definition: mcb.c:158
NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadNotPossible(VOID)
Definition: fastio.c:34
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:219
VOID NTAPI FsRtlFreeFileLock(IN PFILE_LOCK FileLock)
Definition: filelock.c:1338
VOID NTAPI FsRtlNotifyInitializeSync(IN PNOTIFY_SYNC *NotifySync)
Definition: notify.c:1561
_In_ PLIST_ENTRY _In_ PVOID FsContext
Definition: fsrtlfuncs.h:722
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING FullDirectoryName
Definition: fsrtlfuncs.h:722
VOID NTAPI FsRtlResetLargeMcb(IN PLARGE_MCB Mcb, IN BOOLEAN SelfSynchronized)
Definition: largemcb.c:900
NTSTATUS NTAPI FsRtlInsertPerStreamContext(IN PFSRTL_ADVANCED_FCB_HEADER AdvFcbHeader, IN PFSRTL_PER_STREAM_CONTEXT PerStreamContext)
Definition: filtrctx.c:235
PVOID PIRP
Definition: usb.h:38
_In_ PIRP _In_opt_ PVOID _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine
Definition: fsrtlfuncs.h:673
unsigned int ULONG
Definition: retypes.h:1
#define const
Definition: zconf.h:230
_Must_inspect_result_ _In_ WAIT_TYPE _In_opt_ PLARGE_INTEGER _In_opt_ PKWAIT_BLOCK WaitBlockArray
Definition: fsrtlfuncs.h:1151
uint32_t * PULONG_PTR
Definition: typedefs.h:63
#define FSRTL_FCB_HEADER_V1
Definition: fsrtltypes.h:43
_Out_ PLONGLONG _Out_ PLONGLONG LargeLbn
Definition: fsrtlfuncs.h:520
_In_opt_ PVOID _In_ PSECURITY_SUBJECT_CONTEXT SubjectContext
Definition: fsrtltypes.h:293
_Must_inspect_result_ _In_ BOOLEAN Restart
Definition: fsrtlfuncs.h:257
$if(_NTIFS_) _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) NTKERNELAPI BOOLEAN NTAPI FsRtlCopyRead(_In_ PFILE_OBJECT FileObject
Definition: cctypes.h:1
_When_(CompletionRoutine!=NULL, _Must_inspect_result_) _IRQL_requires_max_(APC_LEVEL) NTKERNELAPI NTSTATUS NTAPI FsRtlCheckOplock(_In_ POPLOCK Oplock
VOID NTAPI FsRtlNotifyUninitializeSync(IN PNOTIFY_SYNC *NotifySync)
Definition: notify.c:1639
NTSTATUS NTAPI FsRtlCheckOplock(IN POPLOCK Oplock, IN PIRP Irp, IN PVOID Context, IN POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine OPTIONAL, IN POPLOCK_FS_PREPOST_IRP PostIrpRoutine OPTIONAL)
Definition: oplock.c:1172
_Must_inspect_result_ _In_ PCUNICODE_STRING RedirectorDeviceName
Definition: fsrtlfuncs.h:836
_Must_inspect_result_ _In_ PCUNICODE_STRING Name2
Definition: fsrtlfuncs.h:796
_In_opt_ PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine
Definition: fsrtlfuncs.h:139
NTKERNELAPI NTSTATUS NTAPI FsRtlNotifyStreamFileObject(_In_ struct _FILE_OBJECT *StreamFileObject, _In_opt_ struct _DEVICE_OBJECT *DeviceObjectHint, _In_ FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType, _In_ BOOLEAN SafeToRecurse)
_In_ PKEVENT _In_ PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine
Definition: fsrtlfuncs.h:817
_Must_inspect_result_ _In_ PCUNICODE_STRING _In_ BOOLEAN MailslotsSupported
Definition: fsrtlfuncs.h:836
_Must_inspect_result_ _In_opt_ PVOID OwnerId
Definition: fsrtlfuncs.h:907
VOID NTAPI FsRtlDeleteTunnelCache(IN PTUNNEL Cache)
Definition: tunnel.c:690
_Must_inspect_result_ _In_ ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _In_ ULONG _Outptr_result_bytebuffer_(SizeOfContext) PVOID *EcpContext)
#define FsRtlFastLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)
Definition: fsrtlfuncs.h:1581
_Out_ PANSI_STRING FirstPart
Definition: fsrtlfuncs.h:378
BOOLEAN NTAPI FsRtlFastCheckLockForWrite(IN PFILE_LOCK FileLock, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, IN ULONG Key, IN PFILE_OBJECT FileObject, IN PVOID Process)
Definition: filelock.c:786
#define APC_LEVEL
Definition: env_spec_w32.h:695
ULONG NTAPI FsRtlNumberOfRunsInMcb(IN PMCB Mcb)
Definition: mcb.c:146
ULONG NTAPI FsRtlNumberOfRunsInBaseMcb(IN PBASE_MCB OpaqueMcb)
Definition: largemcb.c:746
ULONG ACCESS_MASK
Definition: nt_native.h:40
_In_ PIRP _In_opt_ PVOID _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine
Definition: fsrtlfuncs.h:673
BOOLEAN NTAPI FsRtlOplockIsFastIoPossible(IN POPLOCK Oplock)
Definition: oplock.c:1566
BOOLEAN NTAPI FsRtlSplitLargeMcb(IN PLARGE_MCB Mcb, IN LONGLONG Vbn, IN LONGLONG Amount)
Definition: largemcb.c:979
_Must_inspect_result_ _Outptr_ PVOID _Out_opt_ PLARGE_INTEGER _In_ PFILE_OBJECT _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes
Definition: fsrtlfuncs.h:860
_Must_inspect_result_ _In_ ULONG Level
Definition: fsrtlfuncs.h:1163
enum _FSRTL_CHANGE_BACKING_TYPE FSRTL_CHANGE_BACKING_TYPE
ULONG FSRTL_ALLOCATE_ECP_FLAGS
Definition: fsrtltypes.h:142
NTSTATUS NTAPI FsRtlRegisterUncProvider(OUT PHANDLE Handle, IN PCUNICODE_STRING RedirectorDeviceName, IN BOOLEAN MailslotsSupported)
Definition: unc.c:280
VOID NTAPI FsRtlDeregisterUncProvider(IN HANDLE Handle)
Definition: unc.c:202
PFSRTL_PER_STREAM_CONTEXT NTAPI FsRtlLookupPerStreamContextInternal(IN PFSRTL_ADVANCED_FCB_HEADER AdvFcbHeader, IN PVOID OwnerId OPTIONAL, IN PVOID InstanceId OPTIONAL)
Definition: filtrctx.c:126
VOID NTAPI FsRtlNotifyFilterChangeDirectory(IN PNOTIFY_SYNC NotifySync, IN PLIST_ENTRY NotifyList, IN PVOID FsContext, IN PSTRING FullDirectoryName, IN BOOLEAN WatchTree, IN BOOLEAN IgnoreBuffer, IN ULONG CompletionFilter, IN PIRP NotifyIrp, IN PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback OPTIONAL, IN PSECURITY_SUBJECT_CONTEXT SubjectContext OPTIONAL, IN PFILTER_REPORT_CHANGE FilterCallback OPTIONAL)
Definition: notify.c:749