ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

fsrtlfuncs.h
Go to the documentation of this file.
00001 $if (_NTIFS_)
00002 /* FSRTL Functions */
00003 
00004 #define FsRtlEnterFileSystem    KeEnterCriticalRegion
00005 #define FsRtlExitFileSystem     KeLeaveCriticalRegion
00006 
00007 #if (NTDDI_VERSION >= NTDDI_WIN2K)
00008 
00009 _Must_inspect_result_
00010 _IRQL_requires_max_(PASSIVE_LEVEL)
00011 NTKERNELAPI
00012 BOOLEAN
00013 NTAPI
00014 FsRtlCopyRead(
00015   _In_ PFILE_OBJECT FileObject,
00016   _In_ PLARGE_INTEGER FileOffset,
00017   _In_ ULONG Length,
00018   _In_ BOOLEAN Wait,
00019   _In_ ULONG LockKey,
00020   _Out_writes_bytes_(Length) PVOID Buffer,
00021   _Out_ PIO_STATUS_BLOCK IoStatus,
00022   _In_ PDEVICE_OBJECT DeviceObject);
00023 
00024 _Must_inspect_result_
00025 _IRQL_requires_max_(PASSIVE_LEVEL)
00026 NTKERNELAPI
00027 BOOLEAN
00028 NTAPI
00029 FsRtlCopyWrite(
00030   _In_ PFILE_OBJECT FileObject,
00031   _In_ PLARGE_INTEGER FileOffset,
00032   _In_ ULONG Length,
00033   _In_ BOOLEAN Wait,
00034   _In_ ULONG LockKey,
00035   _In_reads_bytes_(Length) PVOID Buffer,
00036   _Out_ PIO_STATUS_BLOCK IoStatus,
00037   _In_ PDEVICE_OBJECT DeviceObject);
00038 
00039 _Must_inspect_result_
00040 _IRQL_requires_max_(APC_LEVEL)
00041 NTKERNELAPI
00042 BOOLEAN
00043 NTAPI
00044 FsRtlMdlReadDev(
00045   _In_ PFILE_OBJECT FileObject,
00046   _In_ PLARGE_INTEGER FileOffset,
00047   _In_ ULONG Length,
00048   _In_ ULONG LockKey,
00049   _Outptr_ PMDL *MdlChain,
00050   _Out_ PIO_STATUS_BLOCK IoStatus,
00051   _In_opt_ PDEVICE_OBJECT DeviceObject);
00052 
00053 _IRQL_requires_max_(PASSIVE_LEVEL)
00054 NTKERNELAPI
00055 BOOLEAN
00056 NTAPI
00057 FsRtlMdlReadCompleteDev(
00058   _In_ PFILE_OBJECT FileObject,
00059   _In_ PMDL MdlChain,
00060   _In_opt_ PDEVICE_OBJECT DeviceObject);
00061 
00062 _Must_inspect_result_
00063 _IRQL_requires_max_(APC_LEVEL)
00064 NTKERNELAPI
00065 BOOLEAN
00066 NTAPI
00067 FsRtlPrepareMdlWriteDev(
00068   _In_ PFILE_OBJECT FileObject,
00069   _In_ PLARGE_INTEGER FileOffset,
00070   _In_ ULONG Length,
00071   _In_ ULONG LockKey,
00072   _Outptr_ PMDL *MdlChain,
00073   _Out_ PIO_STATUS_BLOCK IoStatus,
00074   _In_ PDEVICE_OBJECT DeviceObject);
00075 
00076 _Must_inspect_result_
00077 _IRQL_requires_max_(PASSIVE_LEVEL)
00078 NTKERNELAPI
00079 BOOLEAN
00080 NTAPI
00081 FsRtlMdlWriteCompleteDev(
00082   _In_ PFILE_OBJECT FileObject,
00083   _In_ PLARGE_INTEGER FileOffset,
00084   _In_ PMDL MdlChain,
00085   _In_opt_ PDEVICE_OBJECT DeviceObject);
00086 
00087 _IRQL_requires_max_(PASSIVE_LEVEL)
00088 NTKERNELAPI
00089 VOID
00090 NTAPI
00091 FsRtlAcquireFileExclusive(
00092   _In_ PFILE_OBJECT FileObject);
00093 
00094 _IRQL_requires_max_(APC_LEVEL)
00095 NTKERNELAPI
00096 VOID
00097 NTAPI
00098 FsRtlReleaseFile(
00099   _In_ PFILE_OBJECT FileObject);
00100 
00101 _Must_inspect_result_
00102 _IRQL_requires_max_(PASSIVE_LEVEL)
00103 NTKERNELAPI
00104 NTSTATUS
00105 NTAPI
00106 FsRtlGetFileSize(
00107   _In_ PFILE_OBJECT FileObject,
00108   _Out_ PLARGE_INTEGER FileSize);
00109 
00110 _Must_inspect_result_
00111 NTKERNELAPI
00112 BOOLEAN
00113 NTAPI
00114 FsRtlIsTotalDeviceFailure(
00115   _In_ NTSTATUS Status);
00116 
00117 _Must_inspect_result_
00118 _IRQL_requires_max_(APC_LEVEL)
00119 NTKERNELAPI
00120 PFILE_LOCK
00121 NTAPI
00122 FsRtlAllocateFileLock(
00123   _In_opt_ PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine,
00124   _In_opt_ PUNLOCK_ROUTINE UnlockRoutine);
00125 
00126 _IRQL_requires_max_(APC_LEVEL)
00127 NTKERNELAPI
00128 VOID
00129 NTAPI
00130 FsRtlFreeFileLock(
00131   _In_ PFILE_LOCK FileLock);
00132 
00133 _IRQL_requires_max_(APC_LEVEL)
00134 NTKERNELAPI
00135 VOID
00136 NTAPI
00137 FsRtlInitializeFileLock(
00138   _Out_ PFILE_LOCK FileLock,
00139   _In_opt_ PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine,
00140   _In_opt_ PUNLOCK_ROUTINE UnlockRoutine);
00141 
00142 _IRQL_requires_max_(APC_LEVEL)
00143 NTKERNELAPI
00144 VOID
00145 NTAPI
00146 FsRtlUninitializeFileLock(
00147   _Inout_ PFILE_LOCK FileLock);
00148 
00149 /*
00150   FsRtlProcessFileLock:
00151 
00152   ret:
00153     -STATUS_INVALID_DEVICE_REQUEST
00154     -STATUS_RANGE_NOT_LOCKED from unlock routines.
00155     -STATUS_PENDING, STATUS_LOCK_NOT_GRANTED from FsRtlPrivateLock
00156     (redirected IoStatus->Status).
00157 
00158   Internals:
00159     -switch ( Irp->CurrentStackLocation->MinorFunction )
00160         lock: return FsRtlPrivateLock;
00161         unlocksingle: return FsRtlFastUnlockSingle;
00162         unlockall: return FsRtlFastUnlockAll;
00163         unlockallbykey: return FsRtlFastUnlockAllByKey;
00164         default: IofCompleteRequest with STATUS_INVALID_DEVICE_REQUEST;
00165                  return STATUS_INVALID_DEVICE_REQUEST;
00166 
00167     -'AllwaysZero' is passed thru as 'AllwaysZero' to lock / unlock routines.
00168     -'Irp' is passet thru as 'Irp' to FsRtlPrivateLock.
00169 */
00170 _Must_inspect_result_
00171 _IRQL_requires_max_(APC_LEVEL)
00172 NTKERNELAPI
00173 NTSTATUS
00174 NTAPI
00175 FsRtlProcessFileLock(
00176   _In_ PFILE_LOCK FileLock,
00177   _In_ PIRP Irp,
00178   _In_opt_ PVOID Context);
00179 
00180 /*
00181   FsRtlCheckLockForReadAccess:
00182 
00183   All this really does is pick out the lock parameters from the irp (io stack
00184   location?), get IoGetRequestorProcess, and pass values on to
00185   FsRtlFastCheckLockForRead.
00186 */
00187 _Must_inspect_result_
00188 _IRQL_requires_max_(APC_LEVEL)
00189 NTKERNELAPI
00190 BOOLEAN
00191 NTAPI
00192 FsRtlCheckLockForReadAccess(
00193   _In_ PFILE_LOCK FileLock,
00194   _In_ PIRP Irp);
00195 
00196 /*
00197   FsRtlCheckLockForWriteAccess:
00198 
00199   All this really does is pick out the lock parameters from the irp (io stack
00200   location?), get IoGetRequestorProcess, and pass values on to
00201   FsRtlFastCheckLockForWrite.
00202 */
00203 _Must_inspect_result_
00204 _IRQL_requires_max_(APC_LEVEL)
00205 NTKERNELAPI
00206 BOOLEAN
00207 NTAPI
00208 FsRtlCheckLockForWriteAccess(
00209   _In_ PFILE_LOCK FileLock,
00210   _In_ PIRP Irp);
00211 
00212 _Must_inspect_result_
00213 _IRQL_requires_max_(APC_LEVEL)
00214 NTKERNELAPI
00215 BOOLEAN
00216 NTAPI
00217 FsRtlFastCheckLockForRead(
00218   _In_ PFILE_LOCK FileLock,
00219   _In_ PLARGE_INTEGER FileOffset,
00220   _In_ PLARGE_INTEGER Length,
00221   _In_ ULONG Key,
00222   _In_ PFILE_OBJECT FileObject,
00223   _In_ PVOID Process);
00224 
00225 _Must_inspect_result_
00226 _IRQL_requires_max_(APC_LEVEL)
00227 NTKERNELAPI
00228 BOOLEAN
00229 NTAPI
00230 FsRtlFastCheckLockForWrite(
00231   _In_ PFILE_LOCK FileLock,
00232   _In_ PLARGE_INTEGER FileOffset,
00233   _In_ PLARGE_INTEGER Length,
00234   _In_ ULONG Key,
00235   _In_ PFILE_OBJECT FileObject,
00236   _In_ PVOID Process);
00237 
00238 /*
00239   FsRtlGetNextFileLock:
00240 
00241   ret: NULL if no more locks
00242 
00243   Internals:
00244     FsRtlGetNextFileLock uses FileLock->LastReturnedLockInfo and
00245     FileLock->LastReturnedLock as storage.
00246     LastReturnedLock is a pointer to the 'raw' lock inkl. double linked
00247     list, and FsRtlGetNextFileLock needs this to get next lock on subsequent
00248     calls with Restart = FALSE.
00249 */
00250 _Must_inspect_result_
00251 _IRQL_requires_max_(APC_LEVEL)
00252 NTKERNELAPI
00253 PFILE_LOCK_INFO
00254 NTAPI
00255 FsRtlGetNextFileLock(
00256   _In_ PFILE_LOCK FileLock,
00257   _In_ BOOLEAN Restart);
00258 
00259 _IRQL_requires_max_(APC_LEVEL)
00260 NTKERNELAPI
00261 NTSTATUS
00262 NTAPI
00263 FsRtlFastUnlockSingle(
00264   _In_ PFILE_LOCK FileLock,
00265   _In_ PFILE_OBJECT FileObject,
00266   _In_ PLARGE_INTEGER FileOffset,
00267   _In_ PLARGE_INTEGER Length,
00268   _In_ PEPROCESS Process,
00269   _In_ ULONG Key,
00270   _In_opt_ PVOID Context,
00271   _In_ BOOLEAN AlreadySynchronized);
00272 
00273 _IRQL_requires_max_(APC_LEVEL)
00274 NTKERNELAPI
00275 NTSTATUS
00276 NTAPI
00277 FsRtlFastUnlockAll(
00278   _In_ PFILE_LOCK FileLock,
00279   _In_ PFILE_OBJECT FileObject,
00280   _In_ PEPROCESS Process,
00281   _In_opt_ PVOID Context);
00282 
00283 _IRQL_requires_max_(APC_LEVEL)
00284 NTKERNELAPI
00285 NTSTATUS
00286 NTAPI
00287 FsRtlFastUnlockAllByKey(
00288   _In_ PFILE_LOCK FileLock,
00289   _In_ PFILE_OBJECT FileObject,
00290   _In_ PEPROCESS Process,
00291   _In_ ULONG Key,
00292   _In_opt_ PVOID Context);
00293 
00294 /*
00295   FsRtlPrivateLock:
00296 
00297   ret: IoStatus->Status: STATUS_PENDING, STATUS_LOCK_NOT_GRANTED
00298 
00299   Internals:
00300     -Calls IoCompleteRequest if Irp
00301     -Uses exception handling / ExRaiseStatus with STATUS_INSUFFICIENT_RESOURCES
00302 */
00303 _Must_inspect_result_
00304 _IRQL_requires_max_(APC_LEVEL)
00305 __drv_preferredFunction(FsRtlFastLock, "Obsolete")
00306 NTKERNELAPI
00307 BOOLEAN
00308 NTAPI
00309 FsRtlPrivateLock(
00310   _In_ PFILE_LOCK FileLock,
00311   _In_ PFILE_OBJECT FileObject,
00312   _In_ PLARGE_INTEGER FileOffset,
00313   _In_ PLARGE_INTEGER Length,
00314   _In_ PEPROCESS Process,
00315   _In_ ULONG Key,
00316   _In_ BOOLEAN FailImmediately,
00317   _In_ BOOLEAN ExclusiveLock,
00318   _Out_ PIO_STATUS_BLOCK IoStatus,
00319   _In_opt_ PIRP Irp,
00320   _In_opt_ __drv_aliasesMem PVOID Context,
00321   _In_ BOOLEAN AlreadySynchronized);
00322 
00323 _IRQL_requires_max_(APC_LEVEL)
00324 NTKERNELAPI
00325 VOID
00326 NTAPI
00327 FsRtlInitializeTunnelCache(
00328   _In_ PTUNNEL Cache);
00329 
00330 _IRQL_requires_max_(APC_LEVEL)
00331 NTKERNELAPI
00332 VOID
00333 NTAPI
00334 FsRtlAddToTunnelCache(
00335   _In_ PTUNNEL Cache,
00336   _In_ ULONGLONG DirectoryKey,
00337   _In_ PUNICODE_STRING ShortName,
00338   _In_ PUNICODE_STRING LongName,
00339   _In_ BOOLEAN KeyByShortName,
00340   _In_ ULONG DataLength,
00341   _In_reads_bytes_(DataLength) PVOID Data);
00342 
00343 _Must_inspect_result_
00344 _IRQL_requires_max_(APC_LEVEL)
00345 NTKERNELAPI
00346 BOOLEAN
00347 NTAPI
00348 FsRtlFindInTunnelCache(
00349   _In_ PTUNNEL Cache,
00350   _In_ ULONGLONG DirectoryKey,
00351   _In_ PUNICODE_STRING Name,
00352   _Out_ PUNICODE_STRING ShortName,
00353   _Out_ PUNICODE_STRING LongName,
00354   _Inout_ PULONG DataLength,
00355   _Out_writes_bytes_to_(*DataLength, *DataLength) PVOID Data);
00356 
00357 _IRQL_requires_max_(APC_LEVEL)
00358 NTKERNELAPI
00359 VOID
00360 NTAPI
00361 FsRtlDeleteKeyFromTunnelCache(
00362   _In_ PTUNNEL Cache,
00363   _In_ ULONGLONG DirectoryKey);
00364 
00365 _IRQL_requires_max_(APC_LEVEL)
00366 NTKERNELAPI
00367 VOID
00368 NTAPI
00369 FsRtlDeleteTunnelCache(
00370   _In_ PTUNNEL Cache);
00371 
00372 _IRQL_requires_max_(APC_LEVEL)
00373 NTKERNELAPI
00374 VOID
00375 NTAPI
00376 FsRtlDissectDbcs(
00377   _In_ ANSI_STRING Name,
00378   _Out_ PANSI_STRING FirstPart,
00379   _Out_ PANSI_STRING RemainingPart);
00380 
00381 _Must_inspect_result_
00382 _IRQL_requires_max_(APC_LEVEL)
00383 NTKERNELAPI
00384 BOOLEAN
00385 NTAPI
00386 FsRtlDoesDbcsContainWildCards(
00387   _In_ PANSI_STRING Name);
00388 
00389 _Must_inspect_result_
00390 _IRQL_requires_max_(APC_LEVEL)
00391 NTKERNELAPI
00392 BOOLEAN
00393 NTAPI
00394 FsRtlIsDbcsInExpression(
00395   _In_ PANSI_STRING Expression,
00396   _In_ PANSI_STRING Name);
00397 
00398 _Must_inspect_result_
00399 _IRQL_requires_max_(APC_LEVEL)
00400 NTKERNELAPI
00401 BOOLEAN
00402 NTAPI
00403 FsRtlIsFatDbcsLegal(
00404   _In_ ANSI_STRING DbcsName,
00405   _In_ BOOLEAN WildCardsPermissible,
00406   _In_ BOOLEAN PathNamePermissible,
00407   _In_ BOOLEAN LeadingBackslashPermissible);
00408 
00409 _Must_inspect_result_
00410 _IRQL_requires_max_(APC_LEVEL)
00411 NTKERNELAPI
00412 BOOLEAN
00413 NTAPI
00414 FsRtlIsHpfsDbcsLegal(
00415   _In_ ANSI_STRING DbcsName,
00416   _In_ BOOLEAN WildCardsPermissible,
00417   _In_ BOOLEAN PathNamePermissible,
00418   _In_ BOOLEAN LeadingBackslashPermissible);
00419 
00420 NTKERNELAPI
00421 NTSTATUS
00422 NTAPI
00423 FsRtlNormalizeNtstatus(
00424   _In_ NTSTATUS Exception,
00425   _In_ NTSTATUS GenericException);
00426 
00427 _Must_inspect_result_
00428 NTKERNELAPI
00429 BOOLEAN
00430 NTAPI
00431 FsRtlIsNtstatusExpected(
00432   _In_ NTSTATUS Ntstatus);
00433 
00434 _IRQL_requires_max_(APC_LEVEL)
00435 __drv_preferredFunction(ExAllocateFromNPagedLookasideList, "The FsRtlAllocateResource routine is obsolete, but is exported to support existing driver binaries. Use ExAllocateFromNPagedLookasideList and ExInitializeResourceLite instead.")
00436 NTKERNELAPI
00437 PERESOURCE
00438 NTAPI
00439 FsRtlAllocateResource(VOID);
00440 
00441 _IRQL_requires_max_(APC_LEVEL)
00442 NTKERNELAPI
00443 VOID
00444 NTAPI
00445 FsRtlInitializeLargeMcb(
00446   _Out_ PLARGE_MCB Mcb,
00447   _In_ POOL_TYPE PoolType);
00448 
00449 _IRQL_requires_max_(APC_LEVEL)
00450 NTKERNELAPI
00451 VOID
00452 NTAPI
00453 FsRtlUninitializeLargeMcb(
00454   _Inout_ PLARGE_MCB Mcb);
00455 
00456 _IRQL_requires_max_(APC_LEVEL)
00457 NTKERNELAPI
00458 VOID
00459 NTAPI
00460 FsRtlResetLargeMcb(
00461   _Inout_ PLARGE_MCB Mcb,
00462   _In_ BOOLEAN SelfSynchronized);
00463 
00464 _IRQL_requires_max_(APC_LEVEL)
00465 NTKERNELAPI
00466 VOID
00467 NTAPI
00468 FsRtlTruncateLargeMcb(
00469   _Inout_ PLARGE_MCB Mcb,
00470   _In_ LONGLONG Vbn);
00471 
00472 _Must_inspect_result_
00473 _IRQL_requires_max_(APC_LEVEL)
00474 NTKERNELAPI
00475 BOOLEAN
00476 NTAPI
00477 FsRtlAddLargeMcbEntry(
00478   _Inout_ PLARGE_MCB Mcb,
00479   _In_ LONGLONG Vbn,
00480   _In_ LONGLONG Lbn,
00481   _In_ LONGLONG SectorCount);
00482 
00483 _IRQL_requires_max_(APC_LEVEL)
00484 NTKERNELAPI
00485 VOID
00486 NTAPI
00487 FsRtlRemoveLargeMcbEntry(
00488   _Inout_ PLARGE_MCB Mcb,
00489   _In_ LONGLONG Vbn,
00490   _In_ LONGLONG SectorCount);
00491 
00492 _IRQL_requires_max_(APC_LEVEL)
00493 NTKERNELAPI
00494 BOOLEAN
00495 NTAPI
00496 FsRtlLookupLargeMcbEntry(
00497   _In_ PLARGE_MCB Mcb,
00498   _In_ LONGLONG Vbn,
00499   _Out_opt_ PLONGLONG Lbn,
00500   _Out_opt_ PLONGLONG SectorCountFromLbn,
00501   _Out_opt_ PLONGLONG StartingLbn,
00502   _Out_opt_ PLONGLONG SectorCountFromStartingLbn,
00503   _Out_opt_ PULONG Index);
00504 
00505 _IRQL_requires_max_(APC_LEVEL)
00506 NTKERNELAPI
00507 BOOLEAN
00508 NTAPI
00509 FsRtlLookupLastLargeMcbEntry(
00510   _In_ PLARGE_MCB Mcb,
00511   _Out_ PLONGLONG Vbn,
00512   _Out_ PLONGLONG Lbn);
00513 
00514 _IRQL_requires_max_(APC_LEVEL)
00515 NTKERNELAPI
00516 BOOLEAN
00517 NTAPI
00518 FsRtlLookupLastLargeMcbEntryAndIndex(
00519   _In_ PLARGE_MCB OpaqueMcb,
00520   _Out_ PLONGLONG LargeVbn,
00521   _Out_ PLONGLONG LargeLbn,
00522   _Out_ PULONG Index);
00523 
00524 _IRQL_requires_max_(APC_LEVEL)
00525 NTKERNELAPI
00526 ULONG
00527 NTAPI
00528 FsRtlNumberOfRunsInLargeMcb(
00529   _In_ PLARGE_MCB Mcb);
00530 
00531 _Must_inspect_result_
00532 _IRQL_requires_max_(APC_LEVEL)
00533 NTKERNELAPI
00534 BOOLEAN
00535 NTAPI
00536 FsRtlGetNextLargeMcbEntry(
00537   _In_ PLARGE_MCB Mcb,
00538   _In_ ULONG RunIndex,
00539   _Out_ PLONGLONG Vbn,
00540   _Out_ PLONGLONG Lbn,
00541   _Out_ PLONGLONG SectorCount);
00542 
00543 _Must_inspect_result_
00544 _IRQL_requires_max_(APC_LEVEL)
00545 NTKERNELAPI
00546 BOOLEAN
00547 NTAPI
00548 FsRtlSplitLargeMcb(
00549   _Inout_ PLARGE_MCB Mcb,
00550   _In_ LONGLONG Vbn,
00551   _In_ LONGLONG Amount);
00552 
00553 _IRQL_requires_max_(APC_LEVEL)
00554 __drv_preferredFunction(FsRtlInitializeLargeMcb, "Obsolete")
00555 NTKERNELAPI
00556 VOID
00557 NTAPI
00558 FsRtlInitializeMcb(
00559   _Out_ PMCB Mcb,
00560   _In_ POOL_TYPE PoolType);
00561 
00562 _IRQL_requires_max_(APC_LEVEL)
00563 NTKERNELAPI
00564 VOID
00565 NTAPI
00566 FsRtlUninitializeMcb(
00567   _Inout_ PMCB Mcb);
00568 
00569 _IRQL_requires_max_(APC_LEVEL)
00570 NTKERNELAPI
00571 VOID
00572 NTAPI
00573 FsRtlTruncateMcb(
00574   _Inout_ PMCB Mcb,
00575   _In_ VBN Vbn);
00576 
00577 _IRQL_requires_max_(APC_LEVEL)
00578 NTKERNELAPI
00579 BOOLEAN
00580 NTAPI
00581 FsRtlAddMcbEntry(
00582   _Inout_ PMCB Mcb,
00583   _In_ VBN Vbn,
00584   _In_ LBN Lbn,
00585   _In_ ULONG SectorCount);
00586 
00587 _IRQL_requires_max_(APC_LEVEL)
00588 NTKERNELAPI
00589 VOID
00590 NTAPI
00591 FsRtlRemoveMcbEntry(
00592   _Inout_ PMCB Mcb,
00593   _In_ VBN Vbn,
00594   _In_ ULONG SectorCount);
00595 
00596 _IRQL_requires_max_(APC_LEVEL)
00597 NTKERNELAPI
00598 BOOLEAN
00599 NTAPI
00600 FsRtlLookupMcbEntry(
00601   _In_ PMCB Mcb,
00602   _In_ VBN Vbn,
00603   _Out_ PLBN Lbn,
00604   _Out_opt_ PULONG SectorCount,
00605   _Out_ PULONG Index);
00606 
00607 _IRQL_requires_max_(APC_LEVEL)
00608 NTKERNELAPI
00609 BOOLEAN
00610 NTAPI
00611 FsRtlLookupLastMcbEntry(
00612   _In_ PMCB Mcb,
00613   _Out_ PVBN Vbn,
00614   _Out_ PLBN Lbn);
00615 
00616 _IRQL_requires_max_(APC_LEVEL)
00617 NTKERNELAPI
00618 ULONG
00619 NTAPI
00620 FsRtlNumberOfRunsInMcb(
00621   _In_ PMCB Mcb);
00622 
00623 _Must_inspect_result_
00624 _IRQL_requires_max_(APC_LEVEL)
00625 NTKERNELAPI
00626 BOOLEAN
00627 NTAPI
00628 FsRtlGetNextMcbEntry(
00629   _In_ PMCB Mcb,
00630   _In_ ULONG RunIndex,
00631   _Out_ PVBN Vbn,
00632   _Out_ PLBN Lbn,
00633   _Out_ PULONG SectorCount);
00634 
00635 _IRQL_requires_max_(PASSIVE_LEVEL)
00636 NTKERNELAPI
00637 NTSTATUS
00638 NTAPI
00639 FsRtlBalanceReads(
00640   _In_ PDEVICE_OBJECT TargetDevice);
00641 
00642 _IRQL_requires_max_(APC_LEVEL)
00643 NTKERNELAPI
00644 VOID
00645 NTAPI
00646 FsRtlInitializeOplock(
00647   _Inout_ POPLOCK Oplock);
00648 
00649 _IRQL_requires_max_(APC_LEVEL)
00650 NTKERNELAPI
00651 VOID
00652 NTAPI
00653 FsRtlUninitializeOplock(
00654   _Inout_ POPLOCK Oplock);
00655 
00656 _Must_inspect_result_
00657 _IRQL_requires_max_(APC_LEVEL)
00658 NTKERNELAPI
00659 NTSTATUS
00660 NTAPI
00661 FsRtlOplockFsctrl(
00662   _In_ POPLOCK Oplock,
00663   _In_ PIRP Irp,
00664   _In_ ULONG OpenCount);
00665 
00666 _When_(CompletionRoutine != NULL, _Must_inspect_result_)
00667 _IRQL_requires_max_(APC_LEVEL)
00668 NTKERNELAPI
00669 NTSTATUS
00670 NTAPI
00671 FsRtlCheckOplock(
00672   _In_ POPLOCK Oplock,
00673   _In_ PIRP Irp,
00674   _In_opt_ PVOID Context,
00675   _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
00676   _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
00677 
00678 _Must_inspect_result_
00679 _IRQL_requires_max_(APC_LEVEL)
00680 NTKERNELAPI
00681 BOOLEAN
00682 NTAPI
00683 FsRtlOplockIsFastIoPossible(
00684   _In_ POPLOCK Oplock);
00685 
00686 _Must_inspect_result_
00687 _IRQL_requires_max_(APC_LEVEL)
00688 NTKERNELAPI
00689 BOOLEAN
00690 NTAPI
00691 FsRtlCurrentBatchOplock(
00692   _In_ POPLOCK Oplock);
00693 
00694 _IRQL_requires_max_(APC_LEVEL)
00695 NTKERNELAPI
00696 NTSTATUS
00697 NTAPI
00698 FsRtlNotifyVolumeEvent(
00699   _In_ PFILE_OBJECT FileObject,
00700   _In_ ULONG EventCode);
00701 
00702 _IRQL_requires_max_(APC_LEVEL)
00703 NTKERNELAPI
00704 VOID
00705 NTAPI
00706 FsRtlNotifyInitializeSync(
00707   _In_ PNOTIFY_SYNC *NotifySync);
00708 
00709 _IRQL_requires_max_(APC_LEVEL)
00710 NTKERNELAPI
00711 VOID
00712 NTAPI
00713 FsRtlNotifyUninitializeSync(
00714   _In_ PNOTIFY_SYNC *NotifySync);
00715 
00716 _IRQL_requires_max_(PASSIVE_LEVEL)
00717 NTKERNELAPI
00718 VOID
00719 NTAPI
00720 FsRtlNotifyFullChangeDirectory(
00721   _In_ PNOTIFY_SYNC NotifySync,
00722   _In_ PLIST_ENTRY NotifyList,
00723   _In_ PVOID FsContext,
00724   _In_ PSTRING FullDirectoryName,
00725   _In_ BOOLEAN WatchTree,
00726   _In_ BOOLEAN IgnoreBuffer,
00727   _In_ ULONG CompletionFilter,
00728   _In_opt_ PIRP NotifyIrp,
00729   _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback,
00730   _In_opt_ PSECURITY_SUBJECT_CONTEXT SubjectContext);
00731 
00732 _IRQL_requires_max_(PASSIVE_LEVEL)
00733 NTKERNELAPI
00734 VOID
00735 NTAPI
00736 FsRtlNotifyFilterReportChange(
00737   _In_ PNOTIFY_SYNC NotifySync,
00738   _In_ PLIST_ENTRY NotifyList,
00739   _In_ PSTRING FullTargetName,
00740   _In_ USHORT TargetNameOffset,
00741   _In_opt_ PSTRING StreamName,
00742   _In_opt_ PSTRING NormalizedParentName,
00743   _In_ ULONG FilterMatch,
00744   _In_ ULONG Action,
00745   _In_opt_ PVOID TargetContext,
00746   _In_opt_ PVOID FilterContext);
00747 
00748 _IRQL_requires_max_(PASSIVE_LEVEL)
00749 NTKERNELAPI
00750 VOID
00751 NTAPI
00752 FsRtlNotifyFullReportChange(
00753   _In_ PNOTIFY_SYNC NotifySync,
00754   _In_ PLIST_ENTRY NotifyList,
00755   _In_ PSTRING FullTargetName,
00756   _In_ USHORT TargetNameOffset,
00757   _In_opt_ PSTRING StreamName,
00758   _In_opt_ PSTRING NormalizedParentName,
00759   _In_ ULONG FilterMatch,
00760   _In_ ULONG Action,
00761   _In_opt_ PVOID TargetContext);
00762 
00763 _IRQL_requires_max_(APC_LEVEL)
00764 NTKERNELAPI
00765 VOID
00766 NTAPI
00767 FsRtlNotifyCleanup(
00768   _In_ PNOTIFY_SYNC NotifySync,
00769   _In_ PLIST_ENTRY NotifyList,
00770   _In_ PVOID FsContext);
00771 
00772 _IRQL_requires_max_(PASSIVE_LEVEL)
00773 NTKERNELAPI
00774 VOID
00775 NTAPI
00776 FsRtlDissectName(
00777   _In_ UNICODE_STRING Name,
00778   _Out_ PUNICODE_STRING FirstPart,
00779   _Out_ PUNICODE_STRING RemainingPart);
00780 
00781 _Must_inspect_result_
00782 _IRQL_requires_max_(PASSIVE_LEVEL)
00783 NTKERNELAPI
00784 BOOLEAN
00785 NTAPI
00786 FsRtlDoesNameContainWildCards(
00787   _In_ PUNICODE_STRING Name);
00788 
00789 _Must_inspect_result_
00790 _IRQL_requires_max_(PASSIVE_LEVEL)
00791 NTKERNELAPI
00792 BOOLEAN
00793 NTAPI
00794 FsRtlAreNamesEqual(
00795   _In_ PCUNICODE_STRING Name1,
00796   _In_ PCUNICODE_STRING Name2,
00797   _In_ BOOLEAN IgnoreCase,
00798   _In_reads_opt_(0x10000) PCWCH UpcaseTable);
00799 
00800 _Must_inspect_result_
00801 _IRQL_requires_max_(PASSIVE_LEVEL)
00802 NTKERNELAPI
00803 BOOLEAN
00804 NTAPI
00805 FsRtlIsNameInExpression(
00806   _In_ PUNICODE_STRING Expression,
00807   _In_ PUNICODE_STRING Name,
00808   _In_ BOOLEAN IgnoreCase,
00809   _In_opt_ PWCHAR UpcaseTable);
00810 
00811 _IRQL_requires_max_(DISPATCH_LEVEL)
00812 NTKERNELAPI
00813 VOID
00814 NTAPI
00815 FsRtlPostPagingFileStackOverflow(
00816   _In_ PVOID Context,
00817   _In_ PKEVENT Event,
00818   _In_ PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine);
00819 
00820 _IRQL_requires_max_(DISPATCH_LEVEL)
00821 NTKERNELAPI
00822 VOID
00823 NTAPI
00824 FsRtlPostStackOverflow (
00825   _In_ PVOID Context,
00826   _In_ PKEVENT Event,
00827   _In_ PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine);
00828 
00829 _Must_inspect_result_
00830 _IRQL_requires_max_(PASSIVE_LEVEL)
00831 NTKERNELAPI
00832 NTSTATUS
00833 NTAPI
00834 FsRtlRegisterUncProvider(
00835   _Out_ PHANDLE MupHandle,
00836   _In_ PUNICODE_STRING RedirectorDeviceName,
00837   _In_ BOOLEAN MailslotsSupported);
00838 
00839 _IRQL_requires_max_(PASSIVE_LEVEL)
00840 NTKERNELAPI
00841 VOID
00842 NTAPI
00843 FsRtlDeregisterUncProvider(
00844   _In_ HANDLE Handle);
00845 
00846 _IRQL_requires_max_(APC_LEVEL)
00847 NTKERNELAPI
00848 VOID
00849 NTAPI
00850 FsRtlTeardownPerStreamContexts(
00851   _In_ PFSRTL_ADVANCED_FCB_HEADER AdvancedHeader);
00852 
00853 _Must_inspect_result_
00854 _IRQL_requires_max_(APC_LEVEL)
00855 NTKERNELAPI
00856 NTSTATUS
00857 NTAPI
00858 FsRtlCreateSectionForDataScan(
00859   _Out_ PHANDLE SectionHandle,
00860   _Outptr_ PVOID *SectionObject,
00861   _Out_opt_ PLARGE_INTEGER SectionFileSize,
00862   _In_ PFILE_OBJECT FileObject,
00863   _In_ ACCESS_MASK DesiredAccess,
00864   _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes,
00865   _In_opt_ PLARGE_INTEGER MaximumSize,
00866   _In_ ULONG SectionPageProtection,
00867   _In_ ULONG AllocationAttributes,
00868   _In_ ULONG Flags);
00869 
00870 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
00871 
00872 #if (NTDDI_VERSION >= NTDDI_WINXP)
00873 
00874 _IRQL_requires_max_(PASSIVE_LEVEL)
00875 NTKERNELAPI
00876 VOID
00877 NTAPI
00878 FsRtlNotifyFilterChangeDirectory(
00879   _In_ PNOTIFY_SYNC NotifySync,
00880   _In_ PLIST_ENTRY NotifyList,
00881   _In_ PVOID FsContext,
00882   _In_ PSTRING FullDirectoryName,
00883   _In_ BOOLEAN WatchTree,
00884   _In_ BOOLEAN IgnoreBuffer,
00885   _In_ ULONG CompletionFilter,
00886   _In_opt_ PIRP NotifyIrp,
00887   _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback,
00888   _In_opt_ PSECURITY_SUBJECT_CONTEXT SubjectContext,
00889   _In_opt_ PFILTER_REPORT_CHANGE FilterCallback);
00890 
00891 _Must_inspect_result_
00892 _IRQL_requires_max_(APC_LEVEL)
00893 NTKERNELAPI
00894 NTSTATUS
00895 NTAPI
00896 FsRtlInsertPerStreamContext(
00897   _In_ PFSRTL_ADVANCED_FCB_HEADER PerStreamContext,
00898   _In_ PFSRTL_PER_STREAM_CONTEXT Ptr);
00899 
00900 _Must_inspect_result_
00901 _IRQL_requires_max_(APC_LEVEL)
00902 NTKERNELAPI
00903 PFSRTL_PER_STREAM_CONTEXT
00904 NTAPI
00905 FsRtlLookupPerStreamContextInternal(
00906   _In_ PFSRTL_ADVANCED_FCB_HEADER StreamContext,
00907   _In_opt_ PVOID OwnerId,
00908   _In_opt_ PVOID InstanceId);
00909 
00910 _Must_inspect_result_
00911 _IRQL_requires_max_(APC_LEVEL)
00912 NTKERNELAPI
00913 PFSRTL_PER_STREAM_CONTEXT
00914 NTAPI
00915 FsRtlRemovePerStreamContext(
00916   _In_ PFSRTL_ADVANCED_FCB_HEADER StreamContext,
00917   _In_opt_ PVOID OwnerId,
00918   _In_opt_ PVOID InstanceId);
00919 
00920 NTKERNELAPI
00921 VOID
00922 NTAPI
00923 FsRtlIncrementCcFastReadNotPossible(
00924   VOID);
00925 
00926 NTKERNELAPI
00927 VOID
00928 NTAPI
00929 FsRtlIncrementCcFastReadWait(VOID);
00930 
00931 NTKERNELAPI
00932 VOID
00933 NTAPI
00934 FsRtlIncrementCcFastReadNoWait(VOID);
00935 
00936 NTKERNELAPI
00937 VOID
00938 NTAPI
00939 FsRtlIncrementCcFastReadResourceMiss(VOID);
00940 
00941 _IRQL_requires_max_(APC_LEVEL)
00942 NTKERNELAPI
00943 LOGICAL
00944 NTAPI
00945 FsRtlIsPagingFile(
00946   _In_ PFILE_OBJECT FileObject);
00947 
00948 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
00949 
00950 #if (NTDDI_VERSION >= NTDDI_WS03)
00951 
00952 _IRQL_requires_max_(APC_LEVEL)
00953 NTKERNELAPI
00954 VOID
00955 NTAPI
00956 FsRtlInitializeBaseMcb(
00957   _Out_ PBASE_MCB Mcb,
00958   _In_ POOL_TYPE PoolType);
00959 
00960 _IRQL_requires_max_(APC_LEVEL)
00961 NTKERNELAPI
00962 VOID
00963 NTAPI
00964 FsRtlUninitializeBaseMcb(
00965   _In_ PBASE_MCB Mcb);
00966 
00967 _IRQL_requires_max_(APC_LEVEL)
00968 NTKERNELAPI
00969 VOID
00970 NTAPI
00971 FsRtlResetBaseMcb(
00972   _Out_ PBASE_MCB Mcb);
00973 
00974 _IRQL_requires_max_(APC_LEVEL)
00975 NTKERNELAPI
00976 VOID
00977 NTAPI
00978 FsRtlTruncateBaseMcb(
00979   _Inout_ PBASE_MCB Mcb,
00980   _In_ LONGLONG Vbn);
00981 
00982 _IRQL_requires_max_(APC_LEVEL)
00983 NTKERNELAPI
00984 BOOLEAN
00985 NTAPI
00986 FsRtlAddBaseMcbEntry(
00987   _Inout_ PBASE_MCB Mcb,
00988   _In_ LONGLONG Vbn,
00989   _In_ LONGLONG Lbn,
00990   _In_ LONGLONG SectorCount);
00991 
00992 _IRQL_requires_max_(APC_LEVEL)
00993 NTKERNELAPI
00994 BOOLEAN
00995 NTAPI
00996 FsRtlRemoveBaseMcbEntry(
00997   _Inout_ PBASE_MCB Mcb,
00998   _In_ LONGLONG Vbn,
00999   _In_ LONGLONG SectorCount);
01000 
01001 _IRQL_requires_max_(APC_LEVEL)
01002 NTKERNELAPI
01003 BOOLEAN
01004 NTAPI
01005 FsRtlLookupBaseMcbEntry(
01006   _In_ PBASE_MCB Mcb,
01007   _In_ LONGLONG Vbn,
01008   _Out_opt_ PLONGLONG Lbn,
01009   _Out_opt_ PLONGLONG SectorCountFromLbn,
01010   _Out_opt_ PLONGLONG StartingLbn,
01011   _Out_opt_ PLONGLONG SectorCountFromStartingLbn,
01012   _Out_opt_ PULONG Index);
01013 
01014 _IRQL_requires_max_(APC_LEVEL)
01015 NTKERNELAPI
01016 BOOLEAN
01017 NTAPI
01018 FsRtlLookupLastBaseMcbEntry(
01019   _In_ PBASE_MCB Mcb,
01020   _Out_ PLONGLONG Vbn,
01021   _Out_ PLONGLONG Lbn);
01022 
01023 _IRQL_requires_max_(APC_LEVEL)
01024 NTKERNELAPI
01025 BOOLEAN
01026 NTAPI
01027 FsRtlLookupLastBaseMcbEntryAndIndex(
01028   _In_ PBASE_MCB OpaqueMcb,
01029   _Inout_ PLONGLONG LargeVbn,
01030   _Inout_ PLONGLONG LargeLbn,
01031   _Inout_ PULONG Index);
01032 
01033 _IRQL_requires_max_(APC_LEVEL)
01034 NTKERNELAPI
01035 ULONG
01036 NTAPI
01037 FsRtlNumberOfRunsInBaseMcb(
01038   _In_ PBASE_MCB Mcb);
01039 
01040 _IRQL_requires_max_(APC_LEVEL)
01041 NTKERNELAPI
01042 BOOLEAN
01043 NTAPI
01044 FsRtlGetNextBaseMcbEntry(
01045   _In_ PBASE_MCB Mcb,
01046   _In_ ULONG RunIndex,
01047   _Out_ PLONGLONG Vbn,
01048   _Out_ PLONGLONG Lbn,
01049   _Out_ PLONGLONG SectorCount);
01050 
01051 _IRQL_requires_max_(APC_LEVEL)
01052 NTKERNELAPI
01053 BOOLEAN
01054 NTAPI
01055 FsRtlSplitBaseMcb(
01056   _Inout_ PBASE_MCB Mcb,
01057   _In_ LONGLONG Vbn,
01058   _In_ LONGLONG Amount);
01059 
01060 #endif /* (NTDDI_VERSION >= NTDDI_WS03) */
01061 
01062 #if (NTDDI_VERSION >= NTDDI_VISTA)
01063 
01064 _When_(!Flags & MCB_FLAG_RAISE_ON_ALLOCATION_FAILURE, _Must_inspect_result_)
01065 _IRQL_requires_max_(APC_LEVEL)
01066 BOOLEAN
01067 NTAPI
01068 FsRtlInitializeBaseMcbEx(
01069   _Out_ PBASE_MCB Mcb,
01070   _In_ POOL_TYPE PoolType,
01071   _In_ USHORT Flags);
01072 
01073 _Must_inspect_result_
01074 _IRQL_requires_max_(APC_LEVEL)
01075 NTSTATUS
01076 NTAPI
01077 FsRtlAddBaseMcbEntryEx(
01078   _Inout_ PBASE_MCB Mcb,
01079   _In_ LONGLONG Vbn,
01080   _In_ LONGLONG Lbn,
01081   _In_ LONGLONG SectorCount);
01082 
01083 _Must_inspect_result_
01084 _IRQL_requires_max_(APC_LEVEL)
01085 NTKERNELAPI
01086 BOOLEAN
01087 NTAPI
01088 FsRtlCurrentOplock(
01089   _In_ POPLOCK Oplock);
01090 
01091 _Must_inspect_result_
01092 _IRQL_requires_max_(APC_LEVEL)
01093 NTKERNELAPI
01094 NTSTATUS
01095 NTAPI
01096 FsRtlOplockBreakToNone(
01097   _Inout_ POPLOCK Oplock,
01098   _In_opt_ PIO_STACK_LOCATION IrpSp,
01099   _In_ PIRP Irp,
01100   _In_opt_ PVOID Context,
01101   _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
01102   _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
01103 
01104 _IRQL_requires_max_(DISPATCH_LEVEL)
01105 NTKERNELAPI
01106 NTSTATUS
01107 NTAPI
01108 FsRtlNotifyVolumeEventEx(
01109   _In_ PFILE_OBJECT FileObject,
01110   _In_ ULONG EventCode,
01111   _In_ PTARGET_DEVICE_CUSTOM_NOTIFICATION Event);
01112 
01113 _IRQL_requires_max_(APC_LEVEL)
01114 NTKERNELAPI
01115 VOID
01116 NTAPI
01117 FsRtlNotifyCleanupAll(
01118   _In_ PNOTIFY_SYNC NotifySync,
01119   _In_ PLIST_ENTRY NotifyList);
01120 
01121 _Must_inspect_result_
01122 _IRQL_requires_max_(PASSIVE_LEVEL)
01123 NTSTATUS
01124 NTAPI
01125 FsRtlRegisterUncProviderEx(
01126   _Out_ PHANDLE MupHandle,
01127   _In_ PUNICODE_STRING RedirDevName,
01128   _In_ PDEVICE_OBJECT DeviceObject,
01129   _In_ ULONG Flags);
01130 
01131 _Must_inspect_result_
01132 _When_(Irp!=NULL, _IRQL_requires_max_(PASSIVE_LEVEL))
01133 _When_(Irp==NULL, _IRQL_requires_max_(APC_LEVEL))
01134 NTKERNELAPI
01135 NTSTATUS
01136 NTAPI
01137 FsRtlCancellableWaitForSingleObject(
01138   _In_ PVOID Object,
01139   _In_opt_ PLARGE_INTEGER Timeout,
01140   _In_opt_ PIRP Irp);
01141 
01142 _Must_inspect_result_
01143 _When_(Irp != NULL, _IRQL_requires_max_(PASSIVE_LEVEL))
01144 _When_(Irp == NULL, _IRQL_requires_max_(APC_LEVEL))
01145 NTKERNELAPI
01146 NTSTATUS
01147 NTAPI
01148 FsRtlCancellableWaitForMultipleObjects(
01149   _In_ ULONG Count,
01150   _In_reads_(Count) PVOID ObjectArray[],
01151   _In_ WAIT_TYPE WaitType,
01152   _In_opt_ PLARGE_INTEGER Timeout,
01153   _In_opt_ PKWAIT_BLOCK WaitBlockArray,
01154   _In_opt_ PIRP Irp);
01155 
01156 _Must_inspect_result_
01157 _IRQL_requires_max_(APC_LEVEL)
01158 NTKERNELAPI
01159 NTSTATUS
01160 NTAPI
01161 FsRtlMupGetProviderInfoFromFileObject(
01162   _In_ PFILE_OBJECT pFileObject,
01163   _In_ ULONG Level,
01164   _Out_writes_bytes_(*pBufferSize) PVOID pBuffer,
01165   _Inout_ PULONG pBufferSize);
01166 
01167 _Must_inspect_result_
01168 _IRQL_requires_max_(APC_LEVEL)
01169 NTKERNELAPI
01170 NTSTATUS
01171 NTAPI
01172 FsRtlMupGetProviderIdFromName(
01173   _In_ PUNICODE_STRING pProviderName,
01174   _Out_ PULONG32 pProviderId);
01175 
01176 NTKERNELAPI
01177 VOID
01178 NTAPI
01179 FsRtlIncrementCcFastMdlReadWait(VOID);
01180 
01181 _Must_inspect_result_
01182 _IRQL_requires_max_(PASSIVE_LEVEL)
01183 NTKERNELAPI
01184 NTSTATUS
01185 NTAPI
01186 FsRtlValidateReparsePointBuffer(
01187   _In_ ULONG BufferLength,
01188   _In_reads_bytes_(BufferLength) PREPARSE_DATA_BUFFER ReparseBuffer);
01189 
01190 _Must_inspect_result_
01191 _IRQL_requires_max_(PASSIVE_LEVEL)
01192 NTKERNELAPI
01193 NTSTATUS
01194 NTAPI
01195 FsRtlRemoveDotsFromPath(
01196   _Inout_updates_bytes_(PathLength) PWSTR OriginalString,
01197   _In_ USHORT PathLength,
01198   _Out_ USHORT *NewLength);
01199 
01200 _Must_inspect_result_
01201 _IRQL_requires_max_(APC_LEVEL)
01202 NTKERNELAPI
01203 NTSTATUS
01204 NTAPI
01205 FsRtlAllocateExtraCreateParameterList(
01206   _In_ FSRTL_ALLOCATE_ECPLIST_FLAGS Flags,
01207   _Outptr_ PECP_LIST *EcpList);
01208 
01209 _IRQL_requires_max_(APC_LEVEL)
01210 NTKERNELAPI
01211 VOID
01212 NTAPI
01213 FsRtlFreeExtraCreateParameterList(
01214   _In_ PECP_LIST EcpList);
01215 
01216 _Must_inspect_result_
01217 _IRQL_requires_max_(APC_LEVEL)
01218 NTKERNELAPI
01219 NTSTATUS
01220 NTAPI
01221 FsRtlAllocateExtraCreateParameter(
01222   _In_ LPCGUID EcpType,
01223   _In_ ULONG SizeOfContext,
01224   _In_ FSRTL_ALLOCATE_ECP_FLAGS Flags,
01225   _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback,
01226   _In_ ULONG PoolTag,
01227   _Outptr_result_bytebuffer_(SizeOfContext) PVOID *EcpContext);
01228 
01229 _IRQL_requires_max_(APC_LEVEL)
01230 NTKERNELAPI
01231 VOID
01232 NTAPI
01233 FsRtlFreeExtraCreateParameter(
01234   _In_ PVOID EcpContext);
01235 
01236 _When_(Flags|FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL, _IRQL_requires_max_(DISPATCH_LEVEL))
01237 _When_(!(Flags|FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL), _IRQL_requires_max_(APC_LEVEL))
01238 NTKERNELAPI
01239 VOID
01240 NTAPI
01241 FsRtlInitExtraCreateParameterLookasideList(
01242   _Inout_ PVOID Lookaside,
01243   _In_ FSRTL_ECP_LOOKASIDE_FLAGS Flags,
01244   _In_ SIZE_T Size,
01245   _In_ ULONG Tag);
01246 
01247 _When_(Flags|FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL, _IRQL_requires_max_(DISPATCH_LEVEL))
01248 _When_(!(Flags|FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL), _IRQL_requires_max_(APC_LEVEL))
01249 VOID
01250 NTAPI
01251 FsRtlDeleteExtraCreateParameterLookasideList(
01252   _Inout_ PVOID Lookaside,
01253   _In_ FSRTL_ECP_LOOKASIDE_FLAGS Flags);
01254 
01255 _Must_inspect_result_
01256 _IRQL_requires_max_(APC_LEVEL)
01257 NTKERNELAPI
01258 NTSTATUS
01259 NTAPI
01260 FsRtlAllocateExtraCreateParameterFromLookasideList(
01261   _In_ LPCGUID EcpType,
01262   ULONG SizeOfContext,
01263   _In_ FSRTL_ALLOCATE_ECP_FLAGS Flags,
01264   _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback,
01265   _Inout_ PVOID LookasideList,
01266   _Outptr_ PVOID *EcpContext);
01267 
01268 _Must_inspect_result_
01269 _IRQL_requires_max_(APC_LEVEL)
01270 NTKERNELAPI
01271 NTSTATUS
01272 NTAPI
01273 FsRtlInsertExtraCreateParameter(
01274   _Inout_ PECP_LIST EcpList,
01275   _Inout_ PVOID EcpContext);
01276 
01277 _Must_inspect_result_
01278 _IRQL_requires_max_(APC_LEVEL)
01279 NTKERNELAPI
01280 NTSTATUS
01281 NTAPI
01282 FsRtlFindExtraCreateParameter(
01283   _In_ PECP_LIST EcpList,
01284   _In_ LPCGUID EcpType,
01285   _Outptr_opt_ PVOID *EcpContext,
01286   _Out_opt_ ULONG *EcpContextSize);
01287 
01288 _Must_inspect_result_
01289 _IRQL_requires_max_(APC_LEVEL)
01290 NTKERNELAPI
01291 NTSTATUS
01292 NTAPI
01293 FsRtlRemoveExtraCreateParameter(
01294   _Inout_ PECP_LIST EcpList,
01295   _In_ LPCGUID EcpType,
01296   _Outptr_ PVOID *EcpContext,
01297   _Out_opt_ ULONG *EcpContextSize);
01298 
01299 _Must_inspect_result_
01300 _IRQL_requires_max_(APC_LEVEL)
01301 NTKERNELAPI
01302 NTSTATUS
01303 NTAPI
01304 FsRtlGetEcpListFromIrp(
01305   _In_ PIRP Irp,
01306   _Outptr_result_maybenull_ PECP_LIST *EcpList);
01307 
01308 _Must_inspect_result_
01309 _IRQL_requires_max_(APC_LEVEL)
01310 NTKERNELAPI
01311 NTSTATUS
01312 NTAPI
01313 FsRtlSetEcpListIntoIrp(
01314   _Inout_ PIRP Irp,
01315   _In_ PECP_LIST EcpList);
01316 
01317 _Must_inspect_result_
01318 _IRQL_requires_max_(APC_LEVEL)
01319 NTKERNELAPI
01320 NTSTATUS
01321 NTAPI
01322 FsRtlGetNextExtraCreateParameter(
01323   _In_ PECP_LIST EcpList,
01324   _In_opt_ PVOID CurrentEcpContext,
01325   _Out_opt_ LPGUID NextEcpType,
01326   _Outptr_opt_ PVOID *NextEcpContext,
01327   _Out_opt_ ULONG *NextEcpContextSize);
01328 
01329 _IRQL_requires_max_(APC_LEVEL)
01330 NTKERNELAPI
01331 VOID
01332 NTAPI
01333 FsRtlAcknowledgeEcp(
01334   _In_ PVOID EcpContext);
01335 
01336 _IRQL_requires_max_(APC_LEVEL)
01337 NTKERNELAPI
01338 BOOLEAN
01339 NTAPI
01340 FsRtlIsEcpAcknowledged(
01341   _In_ PVOID EcpContext);
01342 
01343 _IRQL_requires_max_(APC_LEVEL)
01344 NTKERNELAPI
01345 BOOLEAN
01346 NTAPI
01347 FsRtlIsEcpFromUserMode(
01348   _In_ PVOID EcpContext);
01349 
01350 _Must_inspect_result_
01351 _IRQL_requires_max_(PASSIVE_LEVEL)
01352 NTKERNELAPI
01353 NTSTATUS
01354 NTAPI
01355 FsRtlChangeBackingFileObject(
01356   _In_opt_ PFILE_OBJECT CurrentFileObject,
01357   _In_ PFILE_OBJECT NewFileObject,
01358   _In_ FSRTL_CHANGE_BACKING_TYPE ChangeBackingType,
01359   _In_ ULONG Flags);
01360 
01361 _Must_inspect_result_
01362 _IRQL_requires_max_(APC_LEVEL)
01363 NTKERNELAPI
01364 NTSTATUS
01365 NTAPI
01366 FsRtlLogCcFlushError(
01367   _In_ PUNICODE_STRING FileName,
01368   _In_ PDEVICE_OBJECT DeviceObject,
01369   _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer,
01370   _In_ NTSTATUS FlushError,
01371   _In_ ULONG Flags);
01372 
01373 _IRQL_requires_max_(APC_LEVEL)
01374 NTKERNELAPI
01375 BOOLEAN
01376 NTAPI
01377 FsRtlAreVolumeStartupApplicationsComplete(VOID);
01378 
01379 NTKERNELAPI
01380 ULONG
01381 NTAPI
01382 FsRtlQueryMaximumVirtualDiskNestingLevel(VOID);
01383 
01384 NTKERNELAPI
01385 NTSTATUS
01386 NTAPI
01387 FsRtlGetVirtualDiskNestingLevel(
01388   _In_ PDEVICE_OBJECT DeviceObject,
01389   _Out_ PULONG NestingLevel,
01390   _Out_opt_ PULONG NestingFlags);
01391 
01392 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
01393 
01394 #if (NTDDI_VERSION >= NTDDI_VISTASP1)
01395 _When_(Flags | OPLOCK_FLAG_BACK_OUT_ATOMIC_OPLOCK, _Must_inspect_result_)
01396 _IRQL_requires_max_(APC_LEVEL)
01397 NTKERNELAPI
01398 NTSTATUS
01399 NTAPI
01400 FsRtlCheckOplockEx(
01401   _In_ POPLOCK Oplock,
01402   _In_ PIRP Irp,
01403   _In_ ULONG Flags,
01404   _In_opt_ PVOID Context,
01405   _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
01406   _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
01407 
01408 #endif
01409 
01410 #if (NTDDI_VERSION >= NTDDI_WIN7)
01411 
01412 _IRQL_requires_max_(APC_LEVEL)
01413 NTKERNELAPI
01414 BOOLEAN
01415 NTAPI
01416 FsRtlAreThereCurrentOrInProgressFileLocks(
01417   _In_ PFILE_LOCK FileLock);
01418 
01419 _Must_inspect_result_
01420 _IRQL_requires_max_(APC_LEVEL)
01421 NTKERNELAPI
01422 BOOLEAN
01423 NTAPI
01424 FsRtlOplockIsSharedRequest(
01425   _In_ PIRP Irp);
01426 
01427 _Must_inspect_result_
01428 _IRQL_requires_max_(APC_LEVEL)
01429 NTKERNELAPI
01430 NTSTATUS
01431 NTAPI
01432 FsRtlOplockBreakH(
01433   _In_ POPLOCK Oplock,
01434   _In_ PIRP Irp,
01435   _In_ ULONG Flags,
01436   _In_opt_ PVOID Context,
01437   _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
01438   _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
01439 
01440 _IRQL_requires_max_(APC_LEVEL)
01441 NTKERNELAPI
01442 BOOLEAN
01443 NTAPI
01444 FsRtlCurrentOplockH(
01445   _In_ POPLOCK Oplock);
01446 
01447 _Must_inspect_result_
01448 _IRQL_requires_max_(APC_LEVEL)
01449 NTKERNELAPI
01450 NTSTATUS
01451 NTAPI
01452 FsRtlOplockBreakToNoneEx(
01453   _Inout_ POPLOCK Oplock,
01454   _In_ PIRP Irp,
01455   _In_ ULONG Flags,
01456   _In_opt_ PVOID Context,
01457   _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
01458   _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine);
01459 
01460 _Must_inspect_result_
01461 _IRQL_requires_max_(APC_LEVEL)
01462 NTKERNELAPI
01463 NTSTATUS
01464 NTAPI
01465 FsRtlOplockFsctrlEx(
01466   _In_ POPLOCK Oplock,
01467   _In_ PIRP Irp,
01468   _In_ ULONG OpenCount,
01469   _In_ ULONG Flags);
01470 
01471 _IRQL_requires_max_(APC_LEVEL)
01472 NTKERNELAPI
01473 BOOLEAN
01474 NTAPI
01475 FsRtlOplockKeysEqual(
01476   _In_opt_ PFILE_OBJECT Fo1,
01477   _In_opt_ PFILE_OBJECT Fo2);
01478 
01479 NTKERNELAPI
01480 NTSTATUS
01481 NTAPI
01482 FsRtlInitializeExtraCreateParameterList(
01483   _Inout_ PECP_LIST EcpList);
01484 
01485 NTKERNELAPI
01486 VOID
01487 NTAPI
01488 FsRtlInitializeExtraCreateParameter(
01489   _Out_ PECP_HEADER Ecp,
01490   _In_ ULONG EcpFlags,
01491   _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback,
01492   _In_ ULONG TotalSize,
01493   _In_ LPCGUID EcpType,
01494   _In_opt_ PVOID ListAllocatedFrom);
01495 
01496 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
01497 
01498 _Must_inspect_result_
01499 _IRQL_requires_max_(APC_LEVEL)
01500 NTKERNELAPI
01501 NTSTATUS
01502 NTAPI
01503 FsRtlInsertPerFileContext(
01504   _In_ PVOID* PerFileContextPointer,
01505   _In_ PFSRTL_PER_FILE_CONTEXT Ptr);
01506 
01507 _Must_inspect_result_
01508 _IRQL_requires_max_(APC_LEVEL)
01509 NTKERNELAPI
01510 PFSRTL_PER_FILE_CONTEXT
01511 NTAPI
01512 FsRtlLookupPerFileContext(
01513   _In_ PVOID* PerFileContextPointer,
01514   _In_opt_ PVOID OwnerId,
01515   _In_opt_ PVOID InstanceId);
01516 
01517 _Must_inspect_result_
01518 _IRQL_requires_max_(APC_LEVEL)
01519 NTKERNELAPI
01520 PFSRTL_PER_FILE_CONTEXT
01521 NTAPI
01522 FsRtlRemovePerFileContext(
01523   _In_ PVOID* PerFileContextPointer,
01524   _In_opt_ PVOID OwnerId,
01525   _In_opt_ PVOID InstanceId);
01526 
01527 _IRQL_requires_max_(APC_LEVEL)
01528 NTKERNELAPI
01529 VOID
01530 NTAPI
01531 FsRtlTeardownPerFileContexts(
01532   _In_ PVOID* PerFileContextPointer);
01533 
01534 _Must_inspect_result_
01535 _IRQL_requires_max_(APC_LEVEL)
01536 NTKERNELAPI
01537 NTSTATUS
01538 NTAPI
01539 FsRtlInsertPerFileObjectContext(
01540   _In_ PFILE_OBJECT FileObject,
01541   _In_ PFSRTL_PER_FILEOBJECT_CONTEXT Ptr);
01542 
01543 _Must_inspect_result_
01544 _IRQL_requires_max_(APC_LEVEL)
01545 NTKERNELAPI
01546 PFSRTL_PER_FILEOBJECT_CONTEXT
01547 NTAPI
01548 FsRtlLookupPerFileObjectContext(
01549   _In_ PFILE_OBJECT FileObject,
01550   _In_opt_ PVOID OwnerId,
01551   _In_opt_ PVOID InstanceId);
01552 
01553 _Must_inspect_result_
01554 _IRQL_requires_max_(APC_LEVEL)
01555 NTKERNELAPI
01556 PFSRTL_PER_FILEOBJECT_CONTEXT
01557 NTAPI
01558 FsRtlRemovePerFileObjectContext(
01559   _In_ PFILE_OBJECT FileObject,
01560   _In_opt_ PVOID OwnerId,
01561   _In_opt_ PVOID InstanceId);
01562 
01563 #define FsRtlFastLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) (       \
01564      FsRtlPrivateLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, NULL, A10, A11)   \
01565 )
01566 
01567 #define FsRtlAreThereCurrentFileLocks(FL) ( \
01568     ((FL)->FastIoIsQuestionable)            \
01569 )
01570 
01571 #define FsRtlIncrementLockRequestsInProgress(FL) {                           \
01572     ASSERT( (FL)->LockRequestsInProgress >= 0 );                             \
01573     (void)                                                                   \
01574     (InterlockedIncrement((LONG volatile *)&((FL)->LockRequestsInProgress)));\
01575 }
01576 
01577 #define FsRtlDecrementLockRequestsInProgress(FL) {                           \
01578     ASSERT( (FL)->LockRequestsInProgress > 0 );                              \
01579     (void)                                                                   \
01580     (InterlockedDecrement((LONG volatile *)&((FL)->LockRequestsInProgress)));\
01581 }
01582 
01583 /* GCC compatible definition, MS one is retarded */
01584 extern NTKERNELAPI const UCHAR * const FsRtlLegalAnsiCharacterArray;
01585 #define LEGAL_ANSI_CHARACTER_ARRAY        FsRtlLegalAnsiCharacterArray
01586 
01587 #define FsRtlIsAnsiCharacterWild(C) (                                       \
01588     FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], FSRTL_WILD_CHARACTER ) \
01589 )
01590 
01591 #define FsRtlIsAnsiCharacterLegalFat(C, WILD) (                                \
01592     FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_FAT_LEGAL) |       \
01593                                         ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))  \
01594 )
01595 
01596 #define FsRtlIsAnsiCharacterLegalHpfs(C, WILD) (                               \
01597     FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_HPFS_LEGAL) |      \
01598                                         ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))  \
01599 )
01600 
01601 #define FsRtlIsAnsiCharacterLegalNtfs(C, WILD) (                               \
01602     FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_NTFS_LEGAL) |      \
01603                                         ((WILD) ? FSRTL_WILD_CHARACTER : 0 ))  \
01604 )
01605 
01606 #define FsRtlIsAnsiCharacterLegalNtfsStream(C,WILD_OK) (                    \
01607     FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_STREAM_LEGAL)   \
01608 )
01609 
01610 #define FsRtlIsAnsiCharacterLegal(C,FLAGS) (          \
01611     FsRtlTestAnsiCharacter((C), TRUE, FALSE, (FLAGS)) \
01612 )
01613 
01614 #define FsRtlTestAnsiCharacter(C, DEFAULT_RET, WILD_OK, FLAGS) (            \
01615         ((SCHAR)(C) < 0) ? DEFAULT_RET :                                    \
01616                            FlagOn( LEGAL_ANSI_CHARACTER_ARRAY[(C)],         \
01617                                    (FLAGS) |                                \
01618                                    ((WILD_OK) ? FSRTL_WILD_CHARACTER : 0) ) \
01619 )
01620 
01621 #define FsRtlIsLeadDbcsCharacter(DBCS_CHAR) (                               \
01622     (BOOLEAN)((UCHAR)(DBCS_CHAR) < 0x80 ? FALSE :                           \
01623               (NLS_MB_CODE_PAGE_TAG &&                                      \
01624                (NLS_OEM_LEAD_BYTE_INFO[(UCHAR)(DBCS_CHAR)] != 0)))          \
01625 )
01626 
01627 #define FsRtlIsUnicodeCharacterWild(C) (                                    \
01628     (((C) >= 0x40) ?                                                        \
01629     FALSE :                                                                 \
01630     FlagOn(FsRtlLegalAnsiCharacterArray[(C)], FSRTL_WILD_CHARACTER ))       \
01631 )
01632 
01633 #define FsRtlInitPerFileContext( _fc, _owner, _inst, _cb)   \
01634     ((_fc)->OwnerId = (_owner),                               \
01635      (_fc)->InstanceId = (_inst),                             \
01636      (_fc)->FreeCallback = (_cb))
01637 
01638 #define FsRtlGetPerFileContextPointer(_fo) \
01639     (FsRtlSupportsPerFileContexts(_fo) ? \
01640         FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer : \
01641         NULL)
01642 
01643 #define FsRtlSupportsPerFileContexts(_fo)                     \
01644     ((FsRtlGetPerStreamContextPointer(_fo) != NULL) &&        \
01645      (FsRtlGetPerStreamContextPointer(_fo)->Version >= FSRTL_FCB_HEADER_V1) &&  \
01646      (FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer != NULL))
01647 
01648 #define FsRtlSetupAdvancedHeaderEx( _advhdr, _fmutx, _fctxptr )                     \
01649 {                                                                                   \
01650     FsRtlSetupAdvancedHeader( _advhdr, _fmutx );                                    \
01651     if ((_fctxptr) != NULL) {                                                       \
01652         (_advhdr)->FileContextSupportPointer = (_fctxptr);                          \
01653     }                                                                               \
01654 }
01655 
01656 #define FsRtlGetPerStreamContextPointer(FO) (   \
01657     (PFSRTL_ADVANCED_FCB_HEADER)(FO)->FsContext \
01658 )
01659 
01660 #define FsRtlInitPerStreamContext(PSC, O, I, FC) ( \
01661     (PSC)->OwnerId = (O),                          \
01662     (PSC)->InstanceId = (I),                       \
01663     (PSC)->FreeCallback = (FC)                     \
01664 )
01665 
01666 #define FsRtlSupportsPerStreamContexts(FO) (                       \
01667     (BOOLEAN)((NULL != FsRtlGetPerStreamContextPointer(FO) &&     \
01668               FlagOn(FsRtlGetPerStreamContextPointer(FO)->Flags2, \
01669               FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS))               \
01670 )
01671 
01672 #define FsRtlLookupPerStreamContext(_sc, _oid, _iid)                          \
01673  (((NULL != (_sc)) &&                                                         \
01674    FlagOn((_sc)->Flags2,FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS) &&              \
01675    !IsListEmpty(&(_sc)->FilterContexts)) ?                                    \
01676         FsRtlLookupPerStreamContextInternal((_sc), (_oid), (_iid)) :          \
01677         NULL)
01678 
01679 _IRQL_requires_max_(APC_LEVEL)
01680 FORCEINLINE
01681 VOID
01682 NTAPI
01683 FsRtlSetupAdvancedHeader(
01684   _In_ PVOID AdvHdr,
01685   _In_ PFAST_MUTEX FMutex )
01686 {
01687   PFSRTL_ADVANCED_FCB_HEADER localAdvHdr = (PFSRTL_ADVANCED_FCB_HEADER)AdvHdr;
01688 
01689   localAdvHdr->Flags |= FSRTL_FLAG_ADVANCED_HEADER;
01690   localAdvHdr->Flags2 |= FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS;
01691 #if (NTDDI_VERSION >= NTDDI_VISTA)
01692   localAdvHdr->Version = FSRTL_FCB_HEADER_V1;
01693 #else
01694   localAdvHdr->Version = FSRTL_FCB_HEADER_V0;
01695 #endif
01696   InitializeListHead( &localAdvHdr->FilterContexts );
01697   if (FMutex != NULL) {
01698     localAdvHdr->FastMutex = FMutex;
01699   }
01700 #if (NTDDI_VERSION >= NTDDI_VISTA)
01701   *((PULONG_PTR)(&localAdvHdr->PushLock)) = 0;
01702   localAdvHdr->FileContextSupportPointer = NULL;
01703 #endif
01704 }
01705 
01706 #define FsRtlInitPerFileObjectContext(_fc, _owner, _inst)         \
01707            ((_fc)->OwnerId = (_owner), (_fc)->InstanceId = (_inst))
01708 
01709 #define FsRtlCompleteRequest(IRP,STATUS) {         \
01710     (IRP)->IoStatus.Status = (STATUS);             \
01711     IoCompleteRequest( (IRP), IO_DISK_INCREMENT ); \
01712 }
01713 $endif (_NTIFS_)

Generated on Sun May 27 2012 04:33:23 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.