ReactOS  r74622
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
446  _Out_ PLARGE_MCB Mcb,
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
1096 FsRtlOplockBreakToNone(
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:37
CONST WCHAR * PCWCH
Definition: ntbasedef.h:410
unsigned int * PULONG32
Definition: basetsd.h:124
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
_Must_inspect_result_ _In_ WAIT_TYPE WaitType
Definition: fsrtlfuncs.h:1151
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:587
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
_In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ PEPROCESS _In_ ULONG _In_ BOOLEAN _In_ BOOLEAN ExclusiveLock
Definition: iotypes.h:1451
_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:169
uint16_t * PWCHAR
Definition: typedefs.h:55
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:442
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:616
_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:492
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:381
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:122
_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
#define __drv_aliasesMem
Definition: driverspecs.h:238
_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:764
_In_ ULONG BufferLength
Definition: usbdlib.h:225
#define MCB_FLAG_RAISE_ON_ALLOCATION_FAILURE
Definition: fsrtltypes.h:233
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
_In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ PEPROCESS _In_ ULONG _In_ BOOLEAN FailImmediately
Definition: iotypes.h:1451
_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
struct @1372::@1373 driver
_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:464
#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:213
#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
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:550
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:67
_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:274
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
#define const
Definition: zconf.h:230
_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:152
_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:376
INT POOL_TYPE
Definition: typedefs.h:77
BOOLEAN NTAPI FsRtlCheckLockForReadAccess(IN PFILE_LOCK FileLock, IN PIRP Irp)
Definition: filelock.c:676
uint64_t ULONGLONG
Definition: typedefs.h:66
NTSTATUS NTAPI FsRtlBalanceReads(PDEVICE_OBJECT TargetDevice)
Definition: faulttol.c:35
VOID NTAPI FsRtlInitializeOplock(IN OUT POPLOCK Oplock)
Definition: oplock.c:95
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:890
#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:72
* PFILE_OBJECT
Definition: iotypes.h:1949
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
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:718
_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:411
_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:118
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:444
ULONG_PTR SIZE_T
Definition: typedefs.h:79
#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
LONG NTSTATUS
Definition: DriverTester.h:11
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_ 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
_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
The FsRtlAllocateResource routine is obsolete
Definition: fsrtlfuncs.h:435
_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:153
_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
_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:64
#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:45
_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:689
_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:147
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