ReactOS  0.4.13-dev-39-g8b6696f
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
38 
42 BOOLEAN
43 NTAPI
52 
55 BOOLEAN
56 NTAPI
61 
65 BOOLEAN
66 NTAPI
75 
79 BOOLEAN
80 NTAPI
86 
89 VOID
90 NTAPI
93 
96 VOID
97 NTAPI
100 
104 NTSTATUS
105 NTAPI
109 
112 BOOLEAN
113 NTAPI
116 
121 NTAPI
125 
128 VOID
129 NTAPI
131  _In_ PFILE_LOCK FileLock);
132 
135 VOID
136 NTAPI
138  _Out_ PFILE_LOCK FileLock,
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,
221  _In_ ULONG Key,
223  _In_ PVOID Process);
224 
228 BOOLEAN
229 NTAPI
231  _In_ PFILE_LOCK FileLock,
234  _In_ ULONG Key,
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,
269  _In_ ULONG Key,
272 
275 NTSTATUS
276 NTAPI
278  _In_ PFILE_LOCK FileLock,
282 
285 NTSTATUS
286 NTAPI
288  _In_ PFILE_LOCK FileLock,
291  _In_ ULONG Key,
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,
315  _In_ ULONG Key,
319  _In_opt_ PIRP Irp,
322 
325 VOID
326 NTAPI
328  _In_ PTUNNEL Cache);
329 
332 VOID
333 NTAPI
342 
346 BOOLEAN
347 NTAPI
356 
359 VOID
360 NTAPI
364 
367 VOID
368 NTAPI
370  _In_ PTUNNEL Cache);
371 
374 VOID
375 NTAPI
380 
384 BOOLEAN
385 NTAPI
388 
392 BOOLEAN
393 NTAPI
397 
401 BOOLEAN
402 NTAPI
404  _In_ ANSI_STRING DbcsName,
408 
412 BOOLEAN
413 NTAPI
415  _In_ ANSI_STRING DbcsName,
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
455 
458 VOID
459 NTAPI
463 
466 VOID
467 NTAPI
471 
475 BOOLEAN
476 NTAPI
480  _In_ LONGLONG Lbn,
482 
485 VOID
486 NTAPI
489  _In_ LONGLONG Vbn,
491 
494 BOOLEAN
495 NTAPI
504 
507 BOOLEAN
508 NTAPI
513 
516 BOOLEAN
517 NTAPI
519  _In_ PLARGE_MCB OpaqueMcb,
522  _Out_ PULONG Index);
523 
526 ULONG
527 NTAPI
530 
534 BOOLEAN
535 NTAPI
542 
546 BOOLEAN
547 NTAPI
552 
556 VOID
557 NTAPI
559  _Out_ PMCB Mcb,
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,
586 
589 VOID
590 NTAPI
592  _Inout_ PMCB Mcb,
593  _In_ VBN Vbn,
595 
598 BOOLEAN
599 NTAPI
601  _In_ PMCB Mcb,
602  _In_ VBN Vbn,
603  _Out_ PLBN Lbn,
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,
631  _Out_ PVBN Vbn,
632  _Out_ PLBN Lbn,
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,
665 
669 NTSTATUS
670 NTAPI
672  _In_ POPLOCK Oplock,
677 
681 BOOLEAN
682 NTAPI
684  _In_ POPLOCK Oplock);
685 
689 BOOLEAN
690 NTAPI
692  _In_ POPLOCK Oplock);
693 
696 NTSTATUS
697 NTAPI
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,
731 
734 VOID
735 NTAPI
737  _In_ PNOTIFY_SYNC NotifySync,
744  _In_ ULONG Action,
747 
750 VOID
751 NTAPI
753  _In_ PNOTIFY_SYNC NotifySync,
760  _In_ ULONG Action,
762 
765 VOID
766 NTAPI
768  _In_ PNOTIFY_SYNC NotifySync,
771 
774 VOID
775 NTAPI
780 
784 BOOLEAN
785 NTAPI
788 
792 BOOLEAN
793 NTAPI
795  _In_ PCUNICODE_STRING Name1,
798  _In_reads_opt_(0x10000) PCWCH UpcaseTable);
799 
803 BOOLEAN
804 NTAPI
810 
813 VOID
814 NTAPI
819 
822 VOID
823 NTAPI
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,
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,
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,
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
947 
948 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
949 
950 #if (NTDDI_VERSION >= NTDDI_WS03)
951 
954 VOID
955 NTAPI
959 
962 VOID
963 NTAPI
965  _In_ PBASE_MCB Mcb);
966 
969 VOID
970 NTAPI
973 
976 VOID
977 NTAPI
980  _In_ LONGLONG Vbn);
981 
984 BOOLEAN
985 NTAPI
988  _In_ LONGLONG Vbn,
989  _In_ LONGLONG Lbn,
991 
994 BOOLEAN
995 NTAPI
998  _In_ LONGLONG Vbn,
1000 
1003 BOOLEAN
1004 NTAPI
1006  _In_ PBASE_MCB Mcb,
1007  _In_ LONGLONG Vbn,
1013 
1016 BOOLEAN
1017 NTAPI
1019  _In_ PBASE_MCB Mcb,
1021  _Out_ PLONGLONG Lbn);
1022 
1025 BOOLEAN
1026 NTAPI
1028  _In_ PBASE_MCB OpaqueMcb,
1031  _Inout_ PULONG Index);
1032 
1035 ULONG
1036 NTAPI
1038  _In_ PBASE_MCB Mcb);
1039 
1042 BOOLEAN
1043 NTAPI
1045  _In_ PBASE_MCB Mcb,
1050 
1053 BOOLEAN
1054 NTAPI
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(
1071  _In_ USHORT Flags);
1072 
1075 NTSTATUS
1076 NTAPI
1077 FsRtlAddBaseMcbEntryEx(
1079  _In_ LONGLONG Vbn,
1080  _In_ LONGLONG Lbn,
1082 
1086 BOOLEAN
1087 NTAPI
1088 FsRtlCurrentOplock(
1089  _In_ POPLOCK Oplock);
1090 
1094 NTSTATUS
1095 NTAPI
1097  _Inout_ POPLOCK Oplock,
1099  _In_ PIRP Irp,
1103 
1106 NTSTATUS
1107 NTAPI
1108 FsRtlNotifyVolumeEventEx(
1112 
1115 VOID
1116 NTAPI
1117 FsRtlNotifyCleanupAll(
1118  _In_ PNOTIFY_SYNC NotifySync,
1120 
1123 NTSTATUS
1124 NTAPI
1125 FsRtlRegisterUncProviderEx(
1129  _In_ ULONG Flags);
1130 
1135 NTSTATUS
1136 NTAPI
1137 FsRtlCancellableWaitForSingleObject(
1138  _In_ PVOID Object,
1140  _In_opt_ PIRP Irp);
1141 
1146 NTSTATUS
1147 NTAPI
1148 FsRtlCancellableWaitForMultipleObjects(
1149  _In_ ULONG Count,
1150  _In_reads_(Count) PVOID ObjectArray[],
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
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(
1215 
1219 NTSTATUS
1220 NTAPI
1221 FsRtlAllocateExtraCreateParameter(
1226  _In_ ULONG PoolTag,
1228 
1231 VOID
1232 NTAPI
1233 FsRtlFreeExtraCreateParameter(
1235 
1239 VOID
1240 NTAPI
1241 FsRtlInitExtraCreateParameterLookasideList(
1244  _In_ SIZE_T Size,
1245  _In_ ULONG Tag);
1246 
1249 VOID
1250 NTAPI
1251 FsRtlDeleteExtraCreateParameterLookasideList(
1254 
1258 NTSTATUS
1259 NTAPI
1260 FsRtlAllocateExtraCreateParameterFromLookasideList(
1267 
1271 NTSTATUS
1272 NTAPI
1273 FsRtlInsertExtraCreateParameter(
1276 
1280 NTSTATUS
1281 NTAPI
1282 FsRtlFindExtraCreateParameter(
1287 
1291 NTSTATUS
1292 NTAPI
1293 FsRtlRemoveExtraCreateParameter(
1298 
1302 NTSTATUS
1303 NTAPI
1305  _In_ PIRP Irp,
1307 
1311 NTSTATUS
1312 NTAPI
1313 FsRtlSetEcpListIntoIrp(
1314  _Inout_ PIRP Irp,
1316 
1320 NTSTATUS
1321 NTAPI
1328 
1331 VOID
1332 NTAPI
1333 FsRtlAcknowledgeEcp(
1335 
1338 BOOLEAN
1339 NTAPI
1340 FsRtlIsEcpAcknowledged(
1342 
1345 BOOLEAN
1346 NTAPI
1347 FsRtlIsEcpFromUserMode(
1349 
1353 NTSTATUS
1354 NTAPI
1355 FsRtlChangeBackingFileObject(
1356  _In_opt_ PFILE_OBJECT CurrentFileObject,
1359  _In_ ULONG Flags);
1360 
1364 NTSTATUS
1365 NTAPI
1366 FsRtlLogCcFlushError(
1371  _In_ ULONG Flags);
1372 
1375 BOOLEAN
1376 NTAPI
1377 FsRtlAreVolumeStartupApplicationsComplete(VOID);
1378 
1380 ULONG
1381 NTAPI
1383 
1385 NTSTATUS
1386 NTAPI
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,
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,
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,
1459 
1463 NTSTATUS
1464 NTAPI
1465 FsRtlOplockFsctrlEx(
1466  _In_ POPLOCK Oplock,
1467  _In_ PIRP Irp,
1469  _In_ ULONG Flags);
1470 
1473 BOOLEAN
1474 NTAPI
1475 FsRtlOplockKeysEqual(
1476  _In_opt_ PFILE_OBJECT Fo1,
1478 
1480 NTSTATUS
1481 NTAPI
1484 
1486 VOID
1487 NTAPI
1489  _Out_ PECP_HEADER Ecp,
1490  _In_ ULONG EcpFlags,
1492  _In_ ULONG TotalSize,
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,
1516 
1521 NTAPI
1522 FsRtlRemovePerFileContext(
1523  _In_ PVOID* PerFileContextPointer,
1526 
1529 VOID
1530 NTAPI
1531 FsRtlTeardownPerFileContexts(
1532  _In_ PVOID* PerFileContextPointer);
1533 
1537 NTSTATUS
1538 NTAPI
1542 
1547 NTAPI
1552 
1557 NTAPI
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
1604 extern const UCHAR * const *FsRtlLegalAnsiCharacterArray;
1605 #define LEGAL_ANSI_CHARACTER_ARRAY (*FsRtlLegalAnsiCharacterArray)
1606 #endif
1607 
1608 #define FsRtlIsAnsiCharacterWild(C) \
1609  FsRtlTestAnsiCharacter((C), FALSE, FALSE, FSRTL_WILD_CHARACTER)
1610 
1611 #define FsRtlIsAnsiCharacterLegalFat(C, WILD) \
1612  FsRtlTestAnsiCharacter((C), TRUE, (WILD), FSRTL_FAT_LEGAL)
1613 
1614 #define FsRtlIsAnsiCharacterLegalHpfs(C, WILD) \
1615  FsRtlTestAnsiCharacter((C), TRUE, (WILD), FSRTL_HPFS_LEGAL)
1616 
1617 #define FsRtlIsAnsiCharacterLegalNtfs(C, WILD) \
1618  FsRtlTestAnsiCharacter((C), TRUE, (WILD), FSRTL_NTFS_LEGAL)
1619 
1620 #define FsRtlIsAnsiCharacterLegalNtfsStream(C,WILD_OK) \
1621  FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_STREAM_LEGAL)
1622 
1623 #define FsRtlIsAnsiCharacterLegal(C,FLAGS) \
1624  FsRtlTestAnsiCharacter((C), TRUE, FALSE, (FLAGS))
1625 
1626 #define FsRtlTestAnsiCharacter(C, DEFAULT_RET, WILD_OK, FLAGS) \
1627  (((SCHAR)(C) < 0) ? DEFAULT_RET : \
1628  FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(C)], \
1629  (FLAGS) | ((WILD_OK) ? FSRTL_WILD_CHARACTER : 0)))
1630 
1631 #define FsRtlIsLeadDbcsCharacter(DBCS_CHAR) \
1632  ((BOOLEAN)((UCHAR)(DBCS_CHAR) < 0x80 ? FALSE : \
1633  (NLS_MB_CODE_PAGE_TAG && \
1634  (NLS_OEM_LEAD_BYTE_INFO[(UCHAR)(DBCS_CHAR)] != 0))))
1635 
1636 #define FsRtlIsUnicodeCharacterWild(C) \
1637  ((((C) >= 0x40) ? FALSE : \
1638  FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(C)], FSRTL_WILD_CHARACTER )))
1639 
1640 #define FsRtlInitPerFileContext(_fc, _owner, _inst, _cb) \
1641  ((_fc)->OwnerId = (_owner), \
1642  (_fc)->InstanceId = (_inst), \
1643  (_fc)->FreeCallback = (_cb))
1644 
1645 #define FsRtlGetPerFileContextPointer(_fo) \
1646  (FsRtlSupportsPerFileContexts(_fo) ? \
1647  FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer : NULL)
1648 
1649 #define FsRtlSupportsPerFileContexts(_fo) \
1650  ((FsRtlGetPerStreamContextPointer(_fo) != NULL) && \
1651  (FsRtlGetPerStreamContextPointer(_fo)->Version >= FSRTL_FCB_HEADER_V1) && \
1652  (FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer != NULL))
1653 
1654 #define FsRtlSetupAdvancedHeaderEx(_advhdr, _fmutx, _fctxptr) \
1655 { \
1656  FsRtlSetupAdvancedHeader( _advhdr, _fmutx ); \
1657  if ((_fctxptr) != NULL) { \
1658  (_advhdr)->FileContextSupportPointer = (_fctxptr); \
1659  } \
1660 }
1661 
1662 #define FsRtlGetPerStreamContextPointer(FO) \
1663  ((PFSRTL_ADVANCED_FCB_HEADER)(FO)->FsContext)
1664 
1665 #define FsRtlInitPerStreamContext(PSC, O, I, FC) \
1666  ((PSC)->OwnerId = (O), \
1667  (PSC)->InstanceId = (I), \
1668  (PSC)->FreeCallback = (FC))
1669 
1670 #define FsRtlSupportsPerStreamContexts(FO) \
1671  ((BOOLEAN)((NULL != FsRtlGetPerStreamContextPointer(FO) && \
1672  FlagOn(FsRtlGetPerStreamContextPointer(FO)->Flags2, \
1673  FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS)))
1674 
1675 #define FsRtlLookupPerStreamContext(_sc, _oid, _iid) \
1676  (((NULL != (_sc)) && \
1677  FlagOn((_sc)->Flags2,FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS) && \
1678  !IsListEmpty(&(_sc)->FilterContexts)) ? \
1679  FsRtlLookupPerStreamContextInternal((_sc), (_oid), (_iid)) : NULL)
1680 
1683 VOID
1684 NTAPI
1685 FsRtlSetupAdvancedHeader(
1686  _In_ PVOID AdvHdr,
1690 
1693 #if (NTDDI_VERSION >= NTDDI_VISTA)
1695 #else
1696  localAdvHdr->Version = FSRTL_FCB_HEADER_V0;
1697 #endif
1698  InitializeListHead( &localAdvHdr->FilterContexts );
1699  if (FMutex != NULL) {
1700  localAdvHdr->FastMutex = FMutex;
1701  }
1702 #if (NTDDI_VERSION >= NTDDI_VISTA)
1703  *((PULONG_PTR)(&localAdvHdr->PushLock)) = 0;
1704  localAdvHdr->FileContextSupportPointer = NULL;
1705 #endif
1706 }
1707 
1708 #define FsRtlInitPerFileObjectContext(_fc, _owner, _inst) \
1709  ((_fc)->OwnerId = (_owner), (_fc)->InstanceId = (_inst))
1710 
1711 #define FsRtlCompleteRequest(IRP, STATUS) { \
1712  (IRP)->IoStatus.Status = (STATUS); \
1713  IoCompleteRequest( (IRP), IO_DISK_INCREMENT ); \
1714 }
1715 $endif (_NTIFS_)
HANDLE MupHandle
Definition: unc.c:21
_Must_inspect_result_ _Outptr_ PVOID * SectionObject
Definition: fsrtlfuncs.h:860
#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)
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
_In_ POOL_TYPE PoolType
Definition: fsrtlfuncs.h:447
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
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG _In_opt_ PVOID _In_opt_ PVOID FilterContext
Definition: fsrtlfuncs.h:738
#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:1011
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
uint16_t * PWSTR
Definition: typedefs.h:54
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:1198
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
_In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN Wait
Definition: fsrtlfuncs.h:16
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)
LONG NTSTATUS
Definition: precomp.h:26
_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
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
BOOLEAN(NTAPI * PFILTER_REPORT_CHANGE)(_In_ PVOID NotifyContext, _In_ PVOID FilterContext)
Definition: fsrtltypes.h:297
NTSTATUS NTAPI FsRtlGetFileSize(IN PFILE_OBJECT FileObject, IN OUT PLARGE_INTEGER FileSize)
Definition: fastio.c:815
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:1594
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:1272
#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:1607
_Must_inspect_result_ _In_ PFILE_OBJECT NewFileObject
Definition: fsrtlfuncs.h:1357
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
_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
BOOLEAN(NTAPI * PCHECK_FOR_TRAVERSE_ACCESS)(_In_ PVOID NotifyContext, _In_opt_ PVOID TargetContext, _In_ PSECURITY_SUBJECT_CONTEXT SubjectContext)
Definition: fsrtltypes.h:291
_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:167
_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:173
_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 * POPLOCK_WAIT_COMPLETE_ROUTINE)(_In_ PVOID Context, _In_ PIRP Irp)
Definition: fsrtltypes.h:253
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
_In_ PLARGE_INTEGER FileOffset
Definition: fsrtlfuncs.h:16
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
unsigned char BOOLEAN
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:1025
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
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING StreamName
Definition: fsrtlfuncs.h:738
VOID(NTAPI * PUNLOCK_ROUTINE)(_In_ PVOID Context, _In_ PFILE_LOCK_INFO FileLockInfo)
Definition: fsrtltypes.h:198
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
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
_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
NTKERNELAPI NTSTATUS NTAPI FsRtlGetEcpListFromIrp(IN PIRP Irp, OUT PECP_LIST *EcpList)
Definition: fsrtl.c:273
_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:1698
VOID NTAPI FsRtlDissectName(IN UNICODE_STRING Name, OUT PUNICODE_STRING FirstPart, OUT PUNICODE_STRING RemainingPart)
Definition: name.c:398
NTKERNELAPI NTSTATUS NTAPI FsRtlGetNextExtraCreateParameter(IN PECP_LIST EcpList, IN PVOID CurrentEcpContext, OUT LPGUID NextEcpType OPTIONAL, OUT PVOID *NextEcpContext, OUT PULONG NextEcpContextSize OPTIONAL)
Definition: fsrtl.c:283
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
_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_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
_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
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
NTSTATUS(NTAPI * PCOMPLETE_LOCK_IRP_ROUTINE)(_In_ PVOID Context, _In_ PIRP Irp)
Definition: fsrtltypes.h:183
_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
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
#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
VOID(NTAPI * PFSRTL_STACK_OVERFLOW_ROUTINE)(_In_ PVOID Context, _In_ PKEVENT Event)
Definition: fsrtltypes.h:105
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
#define _In_
Definition: no_sal2.h:204
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
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG _In_opt_ PVOID TargetContext
Definition: fsrtlfuncs.h:738
_When_(CompletionRoutine !=NULL, _Must_inspect_result_) _IRQL_requires_max_(APC_LEVEL) NTKERNELAPI NTSTATUS NTAPI FsRtlCheckOplock(_In_ POPLOCK Oplock
#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
* 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:1688
_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
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
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
_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
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
_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 SubjectContext
Definition: fsrtlfuncs.h:722
_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
_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:63
#define FSRTL_FCB_HEADER_V1
Definition: fsrtltypes.h:43
_Out_ PLONGLONG _Out_ PLONGLONG LargeLbn
Definition: fsrtlfuncs.h:520
VOID(* PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK)(_Inout_ PVOID EcpContext, _In_ LPCGUID EcpType)
Definition: fsrtltypes.h:135
_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
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
VOID(NTAPI * POPLOCK_FS_PREPOST_IRP)(_In_ PVOID Context, _In_ PIRP Irp)
Definition: fsrtltypes.h:258
_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
struct @1596::@1597 driver
_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