ReactOS  0.4.15-dev-1367-g07cc0b5
fsrtlfuncs.h File Reference

Go to the source code of this file.

Macros

#define FsRtlEnterFileSystem   KeEnterCriticalRegion
 
#define FsRtlExitFileSystem   KeLeaveCriticalRegion
 
#define FsRtlFastLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)   FsRtlPrivateLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, NULL, A10, A11)
 
#define FsRtlAreThereCurrentFileLocks(FL)   ((FL)->FastIoIsQuestionable)
 
#define FsRtlIncrementLockRequestsInProgress(FL)
 
#define FsRtlDecrementLockRequestsInProgress(FL)
 
#define LEGAL_ANSI_CHARACTER_ARRAY   (*FsRtlLegalAnsiCharacterArray)
 
#define FsRtlIsAnsiCharacterWild(C)   FsRtlTestAnsiCharacter((C), FALSE, FALSE, FSRTL_WILD_CHARACTER)
 
#define FsRtlIsAnsiCharacterLegalFat(C, WILD)   FsRtlTestAnsiCharacter((C), TRUE, (WILD), FSRTL_FAT_LEGAL)
 
#define FsRtlIsAnsiCharacterLegalHpfs(C, WILD)   FsRtlTestAnsiCharacter((C), TRUE, (WILD), FSRTL_HPFS_LEGAL)
 
#define FsRtlIsAnsiCharacterLegalNtfs(C, WILD)   FsRtlTestAnsiCharacter((C), TRUE, (WILD), FSRTL_NTFS_LEGAL)
 
#define FsRtlIsAnsiCharacterLegalNtfsStream(C, WILD_OK)   FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_STREAM_LEGAL)
 
#define FsRtlIsAnsiCharacterLegal(C, FLAGS)   FsRtlTestAnsiCharacter((C), TRUE, FALSE, (FLAGS))
 
#define FsRtlTestAnsiCharacter(C, DEFAULT_RET, WILD_OK, FLAGS)
 
#define FsRtlIsLeadDbcsCharacter(DBCS_CHAR)
 
#define FsRtlIsUnicodeCharacterWild(C)
 
#define FsRtlInitPerFileContext(_fc, _owner, _inst, _cb)
 
#define FsRtlGetPerFileContextPointer(_fo)
 
#define FsRtlSupportsPerFileContexts(_fo)
 
#define FsRtlSetupAdvancedHeaderEx(_advhdr, _fmutx, _fctxptr)
 
#define FsRtlGetPerStreamContextPointer(FO)   ((PFSRTL_ADVANCED_FCB_HEADER)(FO)->FsContext)
 
#define FsRtlInitPerStreamContext(PSC, O, I, FC)
 
#define FsRtlSupportsPerStreamContexts(FO)
 
#define FsRtlLookupPerStreamContext(_sc, _oid, _iid)
 
#define FsRtlInitPerFileObjectContext(_fc, _owner, _inst)   ((_fc)->OwnerId = (_owner), (_fc)->InstanceId = (_inst))
 
#define FsRtlCompleteRequest(IRP, STATUS)
 

Functions

 $if (_NTIFS_) _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) NTKERNELAPI BOOLEAN NTAPI FsRtlCopyRead(_In_ PFILE_OBJECT FileObject
 
_In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN _In_ ULONG _Out_writes_bytes_ (Length) PVOID Buffer
 
_Must_inspect_result_ _IRQL_requires_max_ (PASSIVE_LEVEL) NTKERNELAPI BOOLEAN NTAPI FsRtlCopyWrite(_In_ PFILE_OBJECT FileObject
 
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN _In_ ULONG _In_reads_bytes_ (Length) PVOID Buffer
 
_Must_inspect_result_ _IRQL_requires_max_ (APC_LEVEL) NTKERNELAPI BOOLEAN NTAPI FsRtlMdlReadDev(_In_ PFILE_OBJECT FileObject
 
_Must_inspect_result_ NTKERNELAPI BOOLEAN NTAPI FsRtlIsTotalDeviceFailure (_In_ NTSTATUS Status)
 
_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)
 
_In_ ULONGLONG _In_ PUNICODE_STRING _In_ PUNICODE_STRING _In_ BOOLEAN _In_ ULONG _In_reads_bytes_ (DataLength) PVOID Data)
 
NTKERNELAPI NTSTATUS NTAPI FsRtlNormalizeNtstatus (_In_ NTSTATUS Exception, _In_ NTSTATUS GenericException)
 
_Must_inspect_result_ NTKERNELAPI BOOLEAN NTAPI FsRtlIsNtstatusExpected (_In_ NTSTATUS Ntstatus)
 
The FsRtlAllocateResource routine is but is exported to support existing driver binaries Use ExAllocateFromNPagedLookasideList and ExInitializeResourceLite instead NTKERNELAPI PERESOURCE NTAPI FsRtlAllocateResource (VOID)
 
Obsolete NTKERNELAPI VOID NTAPI FsRtlInitializeMcb (_Out_ PMCB Mcb, _In_ POOL_TYPE PoolType)
 
 _When_ (CompletionRoutine !=NULL, _Must_inspect_result_) _IRQL_requires_max_(APC_LEVEL) NTKERNELAPI NTSTATUS NTAPI FsRtlCheckOplock(_In_ POPLOCK Oplock
 
_Must_inspect_result_ _In_ PCUNICODE_STRING _In_ BOOLEAN _In_reads_opt_ (0x10000) PCWCH UpcaseTable)
 
 _IRQL_requires_max_ (DISPATCH_LEVEL) NTKERNELAPI VOID NTAPI FsRtlPostPagingFileStackOverflow(_In_ PVOID Context
 
NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadNotPossible (VOID)
 
NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadWait (VOID)
 
NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadNoWait (VOID)
 
NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadResourceMiss (VOID)
 
 _When_ (!Flags &MCB_FLAG_RAISE_ON_ALLOCATION_FAILURE, _Must_inspect_result_) _IRQL_requires_max_(APC_LEVEL) BOOLEAN NTAPI FsRtlInitializeBaseMcbEx(_Out_ PBASE_MCB Mcb
 
_Must_inspect_result_ _When_ (Irp!=NULL, _IRQL_requires_max_(PASSIVE_LEVEL)) _When_(Irp
 
_Must_inspect_result_ _When_ (Irp !=NULL, _IRQL_requires_max_(PASSIVE_LEVEL)) _When_(Irp
 
_Must_inspect_result_ _In_reads_ (Count) PVOID ObjectArray[]
 
NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastMdlReadWait (VOID)
 
_Must_inspect_result_ _In_reads_bytes_ (BufferLength) PREPARSE_DATA_BUFFER ReparseBuffer)
 
_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)
 
 _When_ (Flags|FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(!(Flags|FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL)
 
NTKERNELAPI ULONG NTAPI FsRtlQueryMaximumVirtualDiskNestingLevel (VOID)
 
NTKERNELAPI NTSTATUS NTAPI FsRtlGetVirtualDiskNestingLevel (_In_ PDEVICE_OBJECT DeviceObject, _Out_ PULONG NestingLevel, _Out_opt_ PULONG NestingFlags)
 
 _When_ (Flags|OPLOCK_FLAG_BACK_OUT_ATOMIC_OPLOCK, _Must_inspect_result_) _IRQL_requires_max_(APC_LEVEL) NTKERNELAPI NTSTATUS NTAPI FsRtlCheckOplockEx(_In_ POPLOCK Oplock
 
NTKERNELAPI NTSTATUS NTAPI FsRtlInitializeExtraCreateParameterList (_Inout_ PECP_LIST EcpList)
 
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)
 
NTKERNELAPI NTSTATUS NTAPI FsRtlRegisterFileSystemFilterCallbacks (_In_ struct _DRIVER_OBJECT *FilterDriverObject, _In_ PFS_FILTER_CALLBACKS Callbacks)
 
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)
 
 if (FMutex !=NULL)
 

Variables

_In_ PLARGE_INTEGER FileOffset
 
_In_ PLARGE_INTEGER _In_ ULONG Length
 
_In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN Wait
 
_In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN _In_ ULONG LockKey
 
_In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN _In_ ULONG _Out_ PIO_STATUS_BLOCK IoStatus
 
_In_ PLARGE_INTEGER _In_ ULONG _In_ BOOLEAN _In_ ULONG _Out_ PIO_STATUS_BLOCK _In_ PDEVICE_OBJECT DeviceObject
 
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDLMdlChain
 
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
 
_Must_inspect_result_ _In_opt_ PUNLOCK_ROUTINE UnlockRoutine
 
_In_opt_ PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine
 
_Must_inspect_result_ _In_ PIRP Irp
 
_Must_inspect_result_ _In_ PIRP _In_opt_ PVOID Context
 
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG Key
 
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT FileObject
 
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
 
_Must_inspect_result_ _In_ BOOLEAN Restart
 
_In_ PFILE_OBJECT _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ PEPROCESS _In_ ULONG _In_opt_ PVOID _In_ BOOLEAN AlreadySynchronized
 
_In_ ULONGLONG DirectoryKey
 
_In_ ULONGLONG _In_ PUNICODE_STRING ShortName
 
_In_ ULONGLONG _In_ PUNICODE_STRING _In_ PUNICODE_STRING LongName
 
_In_ ULONGLONG _In_ PUNICODE_STRING _In_ PUNICODE_STRING _In_ BOOLEAN KeyByShortName
 
_In_ ULONGLONG _In_ PUNICODE_STRING _In_ PUNICODE_STRING _In_ BOOLEAN _In_ ULONG DataLength
 
_Must_inspect_result_ _In_ ULONGLONG _In_ PUNICODE_STRING Name
 
_Must_inspect_result_ _In_ ULONGLONG _In_ PUNICODE_STRING _Out_ PUNICODE_STRING _Out_ PUNICODE_STRING _Inout_ PULONG _Out_writes_bytes_to_ DataLength PVOID Data
 
_Out_ PANSI_STRING FirstPart
 
_Out_ PANSI_STRING _Out_ PANSI_STRING RemainingPart
 
_Must_inspect_result_ _In_ BOOLEAN WildCardsPermissible
 
_Must_inspect_result_ _In_ BOOLEAN _In_ BOOLEAN PathNamePermissible
 
_Must_inspect_result_ _In_ BOOLEAN _In_ BOOLEAN _In_ BOOLEAN LeadingBackslashPermissible
 
The FsRtlAllocateResource routine is obsolete
 
_In_ POOL_TYPE PoolType
 
_In_ BOOLEAN SelfSynchronized
 
_In_ LONGLONG Vbn
 
_Must_inspect_result_ _In_ LONGLONG _In_ LONGLONG Lbn
 
_Must_inspect_result_ _In_ LONGLONG _In_ LONGLONG _In_ LONGLONG SectorCount
 
_In_ LONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG SectorCountFromLbn
 
_In_ LONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG StartingLbn
 
_In_ LONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG SectorCountFromStartingLbn
 
_In_ LONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PLONGLONG _Out_opt_ PULONG Index
 
_Out_ PLONGLONG LargeVbn
 
_Out_ PLONGLONG _Out_ PLONGLONG LargeLbn
 
_Must_inspect_result_ _In_ ULONG RunIndex
 
_Must_inspect_result_ _In_ LONGLONG _In_ LONGLONG Amount
 
_Must_inspect_result_ _In_ PIRP _In_ ULONG OpenCount
 
_In_ PIRP _In_opt_ PVOID _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine
 
_In_ PIRP _In_opt_ PVOID _In_opt_ POPLOCK_WAIT_COMPLETE_ROUTINE _In_opt_ POPLOCK_FS_PREPOST_IRP PostIrpRoutine
 
_In_ ULONG EventCode
 
_In_ PLIST_ENTRY NotifyList
 
_In_ PLIST_ENTRY _In_ PVOID FsContext
 
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING FullDirectoryName
 
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN WatchTree
 
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN IgnoreBuffer
 
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG CompletionFilter
 
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_opt_ PIRP NotifyIrp
 
_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_opt_ PIRP _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback
 
_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
 
_In_ PLIST_ENTRY _In_ PSTRING FullTargetName
 
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT TargetNameOffset
 
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING StreamName
 
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING NormalizedParentName
 
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG FilterMatch
 
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG Action
 
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG _In_opt_ PVOID TargetContext
 
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG _In_opt_ PVOID _In_opt_ PVOID FilterContext
 
_Must_inspect_result_ _In_ PCUNICODE_STRING Name2
 
_Must_inspect_result_ _In_ PCUNICODE_STRING _In_ BOOLEAN IgnoreCase
 
_Must_inspect_result_ _In_ PUNICODE_STRING _In_ BOOLEAN _In_opt_ PWCHAR UpcaseTable
 
_In_ PKEVENT Event
 
_In_ PKEVENT _In_ PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine
 
_Must_inspect_result_ _In_ PCUNICODE_STRING RedirectorDeviceName
 
_Must_inspect_result_ _In_ PCUNICODE_STRING _In_ BOOLEAN MailslotsSupported
 
_Must_inspect_result_ _Outptr_ PVOIDSectionObject
 
_Must_inspect_result_ _Outptr_ PVOID _Out_opt_ PLARGE_INTEGER SectionFileSize
 
_Must_inspect_result_ _Outptr_ PVOID _Out_opt_ PLARGE_INTEGER _In_ PFILE_OBJECT _In_ ACCESS_MASK DesiredAccess
 
_Must_inspect_result_ _Outptr_ PVOID _Out_opt_ PLARGE_INTEGER _In_ PFILE_OBJECT _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes
 
_Must_inspect_result_ _Outptr_ PVOID _Out_opt_ PLARGE_INTEGER _In_ PFILE_OBJECT _In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER MaximumSize
 
_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
 
_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
 
_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 _In_ ULONG Flags = FSRTL_FLAG_ADVANCED_HEADER
 
_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
 
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
 
_Must_inspect_result_ _In_opt_ PVOID OwnerId
 
_Must_inspect_result_ _In_opt_ PVOID _In_opt_ PVOID InstanceId
 
_Must_inspect_result_ _In_opt_ PIO_STACK_LOCATION IrpSp
 
_Must_inspect_result_ _In_ PUNICODE_STRING RedirDevName
 
_Must_inspect_result_ _In_opt_ PLARGE_INTEGER Timeout
 
_Must_inspect_result_ _In_ WAIT_TYPE WaitType
 
_Must_inspect_result_ _In_ WAIT_TYPE _In_opt_ PLARGE_INTEGER _In_opt_ PKWAIT_BLOCK WaitBlockArray
 
_Must_inspect_result_ _In_ ULONG Level
 
_Must_inspect_result_ _In_ ULONG _Out_writes_bytes_ pBufferSize PVOID pBuffer
 
_Must_inspect_result_ _In_ ULONG _Out_writes_bytes_ pBufferSize PVOID _Inout_ PULONG pBufferSize
 
_Must_inspect_result_ _Out_ PULONG32 pProviderId
 
_Must_inspect_result_ _In_ USHORT PathLength
 
_Must_inspect_result_ _In_ USHORT _Out_ USHORTNewLength
 
_Must_inspect_result_ _Outptr_ PECP_LISTEcpList
 
_Must_inspect_result_ _In_ ULONG SizeOfContext
 
_Must_inspect_result_ _In_ ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback
 
_Must_inspect_result_ _In_ ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _In_ ULONG PoolTag
 
_In_ FSRTL_ECP_LOOKASIDE_FLAGS _In_ SIZE_T Size
 
_In_ FSRTL_ECP_LOOKASIDE_FLAGS _In_ SIZE_T _In_ ULONG Tag
 
_Must_inspect_result_ ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _Inout_ PVOID LookasideList
 
_Must_inspect_result_ ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _Inout_ PVOID _Outptr_ PVOIDEcpContext
 
_Must_inspect_result_ _In_ LPCGUID EcpType
 
_Must_inspect_result_ _In_ LPCGUID _Outptr_opt_ PVOID _Out_opt_ ULONGEcpContextSize
 
_Must_inspect_result_ _In_opt_ PVOID CurrentEcpContext
 
_Must_inspect_result_ _In_opt_ PVOID _Out_opt_ LPGUID NextEcpType
 
_Must_inspect_result_ _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOIDNextEcpContext
 
_Must_inspect_result_ _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOID _Out_opt_ ULONGNextEcpContextSize
 
_Must_inspect_result_ _In_ PFILE_OBJECT NewFileObject
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ FSRTL_CHANGE_BACKING_TYPE ChangeBackingType
 
_Must_inspect_result_ _In_ PDEVICE_OBJECT _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer
 
_Must_inspect_result_ _In_ PDEVICE_OBJECT _In_ PSECTION_OBJECT_POINTERS _In_ NTSTATUS FlushError
 
_In_opt_ PFILE_OBJECT Fo2
 
const UCHAR *constFsRtlLegalAnsiCharacterArray
 
_In_ PFAST_MUTEX FMutex
 
localAdvHdr Flags2 = FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS
 
localAdvHdr Version = FSRTL_FCB_HEADER_V1
 
InitializeListHeadlocalAdvHdr = 0
 
localAdvHdr FileContextSupportPointer = NULL
 

Macro Definition Documentation

◆ FsRtlAreThereCurrentFileLocks

#define FsRtlAreThereCurrentFileLocks (   FL)    ((FL)->FastIoIsQuestionable)

Definition at line 1584 of file fsrtlfuncs.h.

◆ FsRtlCompleteRequest

#define FsRtlCompleteRequest (   IRP,
  STATUS 
)
Value:
{ \
(IRP)->IoStatus.Status = (STATUS); \
IoCompleteRequest( (IRP), IO_DISK_INCREMENT ); \
}
#define IO_DISK_INCREMENT
Definition: iotypes.h:583
#define STATUS
Definition: blue.h:142
struct _IRP IRP
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
Definition: mxum.h:155

Definition at line 1711 of file fsrtlfuncs.h.

◆ FsRtlDecrementLockRequestsInProgress

#define FsRtlDecrementLockRequestsInProgress (   FL)
Value:
{ \
ASSERT((FL)->LockRequestsInProgress > 0); \
(void) \
(InterlockedDecrement((LONG volatile *)&((FL)->LockRequestsInProgress))); \
}
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
long LONG
Definition: pedump.c:60
#define InterlockedDecrement
Definition: armddk.h:52

Definition at line 1593 of file fsrtlfuncs.h.

◆ FsRtlEnterFileSystem

#define FsRtlEnterFileSystem   KeEnterCriticalRegion

◆ FsRtlExitFileSystem

#define FsRtlExitFileSystem   KeLeaveCriticalRegion

◆ FsRtlFastLock

#define FsRtlFastLock (   A1,
  A2,
  A3,
  A4,
  A5,
  A6,
  A7,
  A8,
  A9,
  A10,
  A11 
)    FsRtlPrivateLock(A1, A2, A3, A4, A5, A6, A7, A8, A9, NULL, A10, A11)

Definition at line 1581 of file fsrtlfuncs.h.

◆ FsRtlGetPerFileContextPointer

#define FsRtlGetPerFileContextPointer (   _fo)
Value:
FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer : NULL)
#define FsRtlSupportsPerFileContexts(_fo)
Definition: fsrtlfuncs.h:1649
#define NULL
Definition: types.h:112

Definition at line 1645 of file fsrtlfuncs.h.

◆ FsRtlGetPerStreamContextPointer

#define FsRtlGetPerStreamContextPointer (   FO)    ((PFSRTL_ADVANCED_FCB_HEADER)(FO)->FsContext)

Definition at line 1662 of file fsrtlfuncs.h.

◆ FsRtlIncrementLockRequestsInProgress

#define FsRtlIncrementLockRequestsInProgress (   FL)
Value:
{ \
ASSERT((FL)->LockRequestsInProgress >= 0); \
(void) \
(InterlockedIncrement((LONG volatile *)&((FL)->LockRequestsInProgress))); \
}
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
long LONG
Definition: pedump.c:60
#define InterlockedIncrement
Definition: armddk.h:53

Definition at line 1587 of file fsrtlfuncs.h.

◆ FsRtlInitPerFileContext

#define FsRtlInitPerFileContext (   _fc,
  _owner,
  _inst,
  _cb 
)
Value:
((_fc)->OwnerId = (_owner), \
(_fc)->InstanceId = (_inst), \
(_fc)->FreeCallback = (_cb))
_Must_inspect_result_ _In_opt_ PVOID _In_opt_ PVOID InstanceId
Definition: fsrtlfuncs.h:907
_Must_inspect_result_ _In_opt_ PVOID OwnerId
Definition: fsrtlfuncs.h:907

Definition at line 1640 of file fsrtlfuncs.h.

◆ FsRtlInitPerFileObjectContext

#define FsRtlInitPerFileObjectContext (   _fc,
  _owner,
  _inst 
)    ((_fc)->OwnerId = (_owner), (_fc)->InstanceId = (_inst))

Definition at line 1708 of file fsrtlfuncs.h.

◆ FsRtlInitPerStreamContext

#define FsRtlInitPerStreamContext (   PSC,
  O,
  I,
  FC 
)
Value:
((PSC)->OwnerId = (O), \
(PSC)->InstanceId = (I), \
(PSC)->FreeCallback = (FC))
static const WCHAR O[]
Definition: oid.c:1251
_Must_inspect_result_ _In_opt_ PVOID _In_opt_ PVOID InstanceId
Definition: fsrtlfuncs.h:907
#define I(s)
_Must_inspect_result_ _In_opt_ PVOID OwnerId
Definition: fsrtlfuncs.h:907

Definition at line 1665 of file fsrtlfuncs.h.

◆ FsRtlIsAnsiCharacterLegal

#define FsRtlIsAnsiCharacterLegal (   C,
  FLAGS 
)    FsRtlTestAnsiCharacter((C), TRUE, FALSE, (FLAGS))

Definition at line 1623 of file fsrtlfuncs.h.

◆ FsRtlIsAnsiCharacterLegalFat

#define FsRtlIsAnsiCharacterLegalFat (   C,
  WILD 
)    FsRtlTestAnsiCharacter((C), TRUE, (WILD), FSRTL_FAT_LEGAL)

Definition at line 1611 of file fsrtlfuncs.h.

◆ FsRtlIsAnsiCharacterLegalHpfs

#define FsRtlIsAnsiCharacterLegalHpfs (   C,
  WILD 
)    FsRtlTestAnsiCharacter((C), TRUE, (WILD), FSRTL_HPFS_LEGAL)

Definition at line 1614 of file fsrtlfuncs.h.

◆ FsRtlIsAnsiCharacterLegalNtfs

#define FsRtlIsAnsiCharacterLegalNtfs (   C,
  WILD 
)    FsRtlTestAnsiCharacter((C), TRUE, (WILD), FSRTL_NTFS_LEGAL)

Definition at line 1617 of file fsrtlfuncs.h.

◆ FsRtlIsAnsiCharacterLegalNtfsStream

#define FsRtlIsAnsiCharacterLegalNtfsStream (   C,
  WILD_OK 
)    FsRtlTestAnsiCharacter((C), TRUE, (WILD_OK), FSRTL_NTFS_STREAM_LEGAL)

Definition at line 1620 of file fsrtlfuncs.h.

◆ FsRtlIsAnsiCharacterWild

#define FsRtlIsAnsiCharacterWild (   C)    FsRtlTestAnsiCharacter((C), FALSE, FALSE, FSRTL_WILD_CHARACTER)

Definition at line 1608 of file fsrtlfuncs.h.

◆ FsRtlIsLeadDbcsCharacter

#define FsRtlIsLeadDbcsCharacter (   DBCS_CHAR)
Value:
((BOOLEAN)((UCHAR)(DBCS_CHAR) < 0x80 ? FALSE : \
(NLS_OEM_LEAD_BYTE_INFO[(UCHAR)(DBCS_CHAR)] != 0))))
BOOLEAN NLS_MB_CODE_PAGE_TAG
#define NLS_OEM_LEAD_BYTE_INFO
Definition: init.c:414
#define FALSE
Definition: types.h:117
unsigned char UCHAR
Definition: xmlstorage.h:181
#define BOOLEAN
Definition: pedump.c:73

Definition at line 1631 of file fsrtlfuncs.h.

◆ FsRtlIsUnicodeCharacterWild

#define FsRtlIsUnicodeCharacterWild (   C)
Value:
((((C) >= 0x40) ? FALSE : \
Definition: terminate.cpp:23
#define FALSE
Definition: types.h:117
#define LEGAL_ANSI_CHARACTER_ARRAY
Definition: fsrtlfuncs.h:1605
#define C(c)
Definition: builtin.c:4556
#define FSRTL_WILD_CHARACTER
Definition: fsrtltypes.h:85

Definition at line 1636 of file fsrtlfuncs.h.

◆ FsRtlLookupPerStreamContext

#define FsRtlLookupPerStreamContext (   _sc,
  _oid,
  _iid 
)
Value:
(((NULL != (_sc)) && \
!IsListEmpty(&(_sc)->FilterContexts)) ? \
FsRtlLookupPerStreamContextInternal((_sc), (_oid), (_iid)) : NULL)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
Definition: rtlfuncs.h:57
#define FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS
Definition: fsrtltypes.h:55
#define NULL
Definition: types.h:112
localAdvHdr Flags2
Definition: fsrtlfuncs.h:1692
PFSRTL_PER_STREAM_CONTEXT NTAPI FsRtlLookupPerStreamContextInternal(IN PFSRTL_ADVANCED_FCB_HEADER AdvFcbHeader, IN PVOID OwnerId OPTIONAL, IN PVOID InstanceId OPTIONAL)
Definition: filtrctx.c:126

Definition at line 1675 of file fsrtlfuncs.h.

◆ FsRtlSetupAdvancedHeaderEx

#define FsRtlSetupAdvancedHeaderEx (   _advhdr,
  _fmutx,
  _fctxptr 
)
Value:
{ \
FsRtlSetupAdvancedHeader( _advhdr, _fmutx ); \
if ((_fctxptr) != NULL) { \
(_advhdr)->FileContextSupportPointer = (_fctxptr); \
} \
}
localAdvHdr FileContextSupportPointer
Definition: fsrtlfuncs.h:1704
#define NULL
Definition: types.h:112

Definition at line 1654 of file fsrtlfuncs.h.

◆ FsRtlSupportsPerFileContexts

#define FsRtlSupportsPerFileContexts (   _fo)
Value:
(FsRtlGetPerStreamContextPointer(_fo)->FileContextSupportPointer != NULL))
#define FsRtlGetPerStreamContextPointer(FO)
Definition: fsrtlfuncs.h:1662
#define NULL
Definition: types.h:112
#define FSRTL_FCB_HEADER_V1
Definition: fsrtltypes.h:43

Definition at line 1649 of file fsrtlfuncs.h.

◆ FsRtlSupportsPerStreamContexts

#define FsRtlSupportsPerStreamContexts (   FO)
Value:
#define FsRtlGetPerStreamContextPointer(FO)
Definition: fsrtlfuncs.h:1662
#define FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS
Definition: fsrtltypes.h:55
#define FlagOn(_F, _SF)
Definition: ext2fs.h:179
#define NULL
Definition: types.h:112
#define BOOLEAN
Definition: pedump.c:73
localAdvHdr Flags2
Definition: fsrtlfuncs.h:1692

Definition at line 1670 of file fsrtlfuncs.h.

◆ FsRtlTestAnsiCharacter

#define FsRtlTestAnsiCharacter (   C,
  DEFAULT_RET,
  WILD_OK,
  FLAGS 
)
Value:
(((SCHAR)(C) < 0) ? DEFAULT_RET : \
(FLAGS) | ((WILD_OK) ? FSRTL_WILD_CHARACTER : 0)))
Definition: terminate.cpp:23
signed char SCHAR
Definition: sqltypes.h:14
#define FlagOn(_F, _SF)
Definition: ext2fs.h:179
#define LEGAL_ANSI_CHARACTER_ARRAY
Definition: fsrtlfuncs.h:1605
ULONG FLAGS
Definition: mapi.h:36
#define FSRTL_WILD_CHARACTER
Definition: fsrtltypes.h:85

Definition at line 1626 of file fsrtlfuncs.h.

◆ LEGAL_ANSI_CHARACTER_ARRAY

#define LEGAL_ANSI_CHARACTER_ARRAY   (*FsRtlLegalAnsiCharacterArray)

Definition at line 1605 of file fsrtlfuncs.h.

Function Documentation

◆ $if()

$if ( _NTIFS_  )

Definition at line 1 of file cctypes.h.

7  {
8  CSHORT NodeTypeCode;
9  CSHORT NodeByteSize;
10  ULONG MappedLength;
11  LARGE_INTEGER MappedFileOffset;
* PPUBLIC_BCB
Definition: cctypes.h:12
PUBLIC_BCB
Definition: cctypes.h:12
unsigned int ULONG
Definition: retypes.h:1
short CSHORT
Definition: umtypes.h:127

◆ _In_reads_()

_Must_inspect_result_ _In_reads_ ( Count  )

◆ _In_reads_bytes_() [1/3]

◆ _In_reads_bytes_() [2/3]

◆ _In_reads_bytes_() [3/3]

_Must_inspect_result_ _In_reads_bytes_ ( BufferLength  )

◆ _In_reads_opt_()

_Must_inspect_result_ _In_ PCUNICODE_STRING _In_ BOOLEAN _In_reads_opt_ ( 0x10000  )

◆ _IRQL_requires_max_() [1/3]

_Must_inspect_result_ _IRQL_requires_max_ ( PASSIVE_LEVEL  )

Definition at line 64 of file Messaging.c.

75 {
76  PFLT_SERVER_PORT_OBJECT PortObject;
78 
79  /* The caller must allow at least one connection */
80  if (MaxConnections == 0)
81  {
83  }
84 
85  /* The request must be for a kernel handle */
86  if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87  {
89  }
90 
91  /*
92  * Get rundown protection on the target to stop the owner
93  * from unloading whilst this port object is open. It gets
94  * removed in the FltpServerPortClose callback
95  */
97  if (!NT_SUCCESS(Status))
98  {
99  return Status;
100  }
101 
102  /* Create the server port object for this filter */
106  KernelMode,
107  NULL,
108  sizeof(FLT_SERVER_PORT_OBJECT),
109  0,
110  0,
111  (PVOID *)&PortObject);
112  if (NT_SUCCESS(Status))
113  {
114  /* Zero out the struct */
115  RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116 
117  /* Increment the ref count on the target filter */
119 
120  /* Setup the filter port object */
121  PortObject->Filter = Filter;
122  PortObject->ConnectNotify = ConnectNotifyCallback;
124  PortObject->MessageNotify = MessageNotifyCallback;
125  PortObject->Cookie = ServerPortCookie;
126  PortObject->MaxConnections = MaxConnections;
127 
128  /* Insert the object */
129  Status = ObInsertObject(PortObject,
130  NULL,
132  0,
133  NULL,
135  if (NT_SUCCESS(Status))
136  {
137  /* Lock the connection list */
139 
140  /* Add the new port object to the connection list and increment the count */
143 
144  /* Unlock the connection list*/
146  }
147  }
148 
149  if (!NT_SUCCESS(Status))
150  {
151  /* Allow the filter to be cleaned up */
153  }
154 
155  return Status;
156 }
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1873
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
LONG NTSTATUS
Definition: precomp.h:26
#define InsertTailList(ListHead, Entry)
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
LIST_ENTRY mList
Definition: fltmgrint.h:56
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1802
#define FILE_READ_DATA
Definition: nt_native.h:628
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:952
Status
Definition: gdiplustypes.h:24
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1873
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1873
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2932
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1873
#define NULL
Definition: types.h:112
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY _In_ LONG MaxConnections
Definition: fltkernel.h:1873
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1873
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121

◆ _IRQL_requires_max_() [2/3]

_Must_inspect_result_ _IRQL_requires_max_ ( APC_LEVEL  )

Definition at line 197 of file cddata.c.

254 {
255  THREAD_CONTEXT ThreadContext = {0};
256  PIRP_CONTEXT IrpContext = NULL;
257  BOOLEAN Wait;
258 
259 #ifdef CD_SANITY
260  PVOID PreviousTopLevel;
261 #endif
262 
264 
265 #if DBG
266 
267  KIRQL SaveIrql = KeGetCurrentIrql();
268 
269 #endif
270 
272 
274 
276 
277 #ifdef CD_SANITY
278  PreviousTopLevel = IoGetTopLevelIrp();
279 #endif
280 
281  //
282  // Loop until this request has been completed or posted.
283  //
284 
285  do {
286 
287  //
288  // Use a try-except to handle the exception cases.
289  //
290 
291  _SEH2_TRY {
292 
293  //
294  // If the IrpContext is NULL then this is the first pass through
295  // this loop.
296  //
297 
298  if (IrpContext == NULL) {
299 
300  //
301  // Decide if this request is waitable an allocate the IrpContext.
302  // If the file object in the stack location is NULL then this
303  // is a mount which is always waitable. Otherwise we look at
304  // the file object flags.
305  //
306 
308 
309  Wait = TRUE;
310 
311  } else {
312 
313  Wait = CanFsdWait( Irp );
314  }
315 
316  IrpContext = CdCreateIrpContext( Irp, Wait );
317 
318  //
319  // Update the thread context information.
320  //
321 
322  CdSetThreadContext( IrpContext, &ThreadContext );
323 
324 #ifdef CD_SANITY
325  NT_ASSERT( !CdTestTopLevel ||
326  SafeNodeType( IrpContext->TopLevel ) == CDFS_NTC_IRP_CONTEXT );
327 #endif
328 
329  //
330  // Otherwise cleanup the IrpContext for the retry.
331  //
332 
333  } else {
334 
335  //
336  // Set the MORE_PROCESSING flag to make sure the IrpContext
337  // isn't inadvertently deleted here. Then cleanup the
338  // IrpContext to perform the retry.
339  //
340 
341  SetFlag( IrpContext->Flags, IRP_CONTEXT_FLAG_MORE_PROCESSING );
342  CdCleanupIrpContext( IrpContext, FALSE );
343  }
344 
345  //
346  // Case on the major irp code.
347  //
348 
349  switch (IrpContext->MajorFunction) {
350 
351  case IRP_MJ_CREATE :
352 
353  Status = CdCommonCreate( IrpContext, Irp );
354  break;
355 
356  case IRP_MJ_CLOSE :
357 
358  Status = CdCommonClose( IrpContext, Irp );
359  break;
360 
361  case IRP_MJ_READ :
362 
363  //
364  // If this is an Mdl complete request, don't go through
365  // common read.
366  //
367 
368  if (FlagOn( IrpContext->MinorFunction, IRP_MN_COMPLETE )) {
369 
370  Status = CdCompleteMdl( IrpContext, Irp );
371 
372  } else {
373 
374  Status = CdCommonRead( IrpContext, Irp );
375  }
376 
377  break;
378 
379  case IRP_MJ_WRITE :
380 
381  Status = CdCommonWrite( IrpContext, Irp );
382  break;
383 
385 
386  Status = CdCommonQueryInfo( IrpContext, Irp );
387  break;
388 
390 
391  Status = CdCommonSetInfo( IrpContext, Irp );
392  break;
393 
395 
396  Status = CdCommonQueryVolInfo( IrpContext, Irp );
397  break;
398 
400 
401  Status = CdCommonDirControl( IrpContext, Irp );
402  break;
403 
405 
406  Status = CdCommonFsControl( IrpContext, Irp );
407  break;
408 
409  case IRP_MJ_DEVICE_CONTROL :
410 
411  Status = CdCommonDevControl( IrpContext, Irp );
412  break;
413 
414  case IRP_MJ_LOCK_CONTROL :
415 
416  Status = CdCommonLockControl( IrpContext, Irp );
417  break;
418 
419  case IRP_MJ_CLEANUP :
420 
421  Status = CdCommonCleanup( IrpContext, Irp );
422  break;
423 
424  case IRP_MJ_PNP :
425 
426  Status = CdCommonPnp( IrpContext, Irp );
427  break;
428 
429  case IRP_MJ_SHUTDOWN :
430 
431  Status = CdCommonShutdown( IrpContext, Irp );
432  break;
433 
434  default :
435 
437  CdCompleteRequest( IrpContext, Irp, Status );
438  }
439 
441 
442  Status = CdProcessException( IrpContext, Irp, _SEH2_GetExceptionCode() );
443  } _SEH2_END;
444 
445  } while (Status == STATUS_CANT_WAIT);
446 
447 #ifdef CD_SANITY
448  NT_ASSERT( !CdTestTopLevel ||
449  (PreviousTopLevel == IoGetTopLevelIrp()) );
450 #endif
451 
453 
454  NT_ASSERT( SaveIrql == KeGetCurrentIrql( ));
455 
456  return Status;
457 }
#define KeGetCurrentIrql()
Definition: env_spec_w32.h:706
VOID CdSetThreadContext(_Inout_ PIRP_CONTEXT IrpContext, _In_ PTHREAD_CONTEXT ThreadContext)
Definition: cddata.c:981
#define IRP_MJ_CREATE
Definition: rdpdr.c:44
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
#define IRP_MJ_SHUTDOWN
#define TRUE
Definition: types.h:120
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define IRP_CONTEXT_FLAG_MORE_PROCESSING
Definition: cdstruc.h:1214
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
#define SafeNodeType(Ptr)
Definition: nodetype.h:54
#define IRP_MJ_PNP
Definition: cdrw_usr.h:52
LONG NTSTATUS
Definition: precomp.h:26
#define STATUS_INVALID_DEVICE_REQUEST
Definition: udferr_usr.h:138
_SEH2_TRY
Definition: create.c:4226
#define IRP_MN_COMPLETE
Definition: iotypes.h:4399
UCHAR KIRQL
Definition: env_spec_w32.h:591
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
#define FALSE
Definition: types.h:117
_In_ PIRP Irp
Definition: csq.h:116
VOID CdCompleteRequest(_Inout_opt_ PIRP_CONTEXT IrpContext, _Inout_opt_ PIRP Irp, _In_ NTSTATUS Status)
Definition: cddata.c:914
#define _SEH2_GetExceptionInformation()
Definition: pseh2_64.h:11
unsigned char BOOLEAN
#define IRP_MJ_QUERY_VOLUME_INFORMATION
Definition: rdpdr.c:50
#define IRP_MJ_DIRECTORY_CONTROL
Definition: rdpdr.c:51
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
Status
Definition: gdiplustypes.h:24
#define IRP_MJ_FILE_SYSTEM_CONTROL
PIRP NTAPI IoGetTopLevelIrp(VOID)
Definition: irp.c:1843
#define CanFsdWait(I)
Definition: cdprocs.h:2001
NTSTATUS CdCompleteMdl(_In_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: cachesup.c:411
#define IRP_MJ_CLOSE
Definition: rdpdr.c:45
NTSTATUS CdCommonDevControl(_Inout_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: devctrl.c:46
#define FlagOn(_F, _SF)
Definition: ext2fs.h:179
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2789
#define SetFlag(_F, _SF)
Definition: ext2fs.h:187
_SEH2_END
Definition: create.c:4400
LONG CdExceptionFilter(_Inout_ PIRP_CONTEXT IrpContext, _In_ PEXCEPTION_POINTERS ExceptionPointer)
Definition: cddata.c:525
#define ASSERT_OPTIONAL_IRP(I)
Definition: cddata.h:252
#define NULL
Definition: types.h:112
VOID CdCleanupIrpContext(_In_ PIRP_CONTEXT IrpContext, _In_ BOOLEAN Post)
Definition: strucsup.c:1733
NTSTATUS CdCommonLockControl(_Inout_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: lockctrl.c:35
#define CDFS_NTC_IRP_CONTEXT
Definition: nodetype.h:34
#define IRP_MJ_LOCK_CONTROL
Definition: rdpdr.c:53
#define IRP_MJ_READ
Definition: rdpdr.c:46
#define IRP_MJ_CLEANUP
#define IRP_MJ_SET_INFORMATION
Definition: rdpdr.c:49
#define IRP_MJ_WRITE
Definition: rdpdr.c:47
#define IRP_MJ_QUERY_INFORMATION
Definition: rdpdr.c:48
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:6
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:12
_Ret_valid_ PIRP_CONTEXT CdCreateIrpContext(_In_ PIRP Irp, _In_ BOOLEAN Wait)
Definition: strucsup.c:1573
#define IRP_MJ_DEVICE_CONTROL
Definition: rdpdr.c:52
#define STATUS_CANT_WAIT
Definition: ntstatus.h:452
#define NT_ASSERT
Definition: rtlfuncs.h:3312

◆ _IRQL_requires_max_() [3/3]

_IRQL_requires_max_ ( DISPATCH_LEVEL  )

Definition at line 3557 of file common.c.

3587 {
3588  NTSTATUS status;
3589  BOOLEAN requestSent = FALSE;
3590 
3591  BOOLEAN shouldRetry = TRUE;
3592  PCDB cdb = (PCDB)DeviceExtension->PowerContext.Srb.Cdb;
3593  ULONG timeoutValue = DeviceExtension->TimeOutValue;
3594  ULONG retryCount = 1;
3595 
3596  // reset some fields.
3597  DeviceExtension->PowerContext.RetryIntervalIn100ns = 0;
3598  status = PowerContextReuseRequest(DeviceExtension);
3599  RequestClearSendTime(DeviceExtension->PowerContext.PowerRequest);
3600 
3601  if (!NT_SUCCESS(status))
3602  {
3603  return status;
3604  }
3605 
3606  // set proper timeout value and max retry count.
3607  switch(DeviceExtension->PowerContext.PowerChangeState.PowerDown)
3608  {
3612  break;
3613 
3614  case PowerDownDeviceLocked:
3615  // Case of issuing SYNC CACHE command. Do not use power irp timeout remaining time in this case
3616  // as we want to give best try on SYNC CACHE command.
3617  retryCount = MAXIMUM_RETRIES;
3618  timeoutValue = DeviceExtension->TimeOutValue;
3619  break;
3620 
3622  {
3623  // Case of issuing STOP UNIT command
3624  // As "Imme" bit is set to '1', this command should be completed in short time.
3625  // This command is at low importance, failure of this command has very small impact.
3626  ULONG secondsRemaining = 0;
3627 
3628 #if (WINVER >= 0x0601)
3629  // this API is introduced in Windows7
3630  PoQueryWatchdogTime(DeviceExtension->LowerPdo, &secondsRemaining);
3631 #endif
3632 
3633  if (secondsRemaining == 0)
3634  {
3635  // not able to retrieve remaining time from PoQueryWatchdogTime API, use default values.
3636  retryCount = MAXIMUM_RETRIES;
3637  timeoutValue = SCSI_CDROM_TIMEOUT;
3638  }
3639  else
3640  {
3641  // plan to leave about 30 seconds to lower level drivers if possible.
3642  if (secondsRemaining >= 32)
3643  {
3644  retryCount = (secondsRemaining - 30)/SCSI_CDROM_TIMEOUT + 1;
3645  timeoutValue = SCSI_CDROM_TIMEOUT;
3646 
3647  if (retryCount > MAXIMUM_RETRIES)
3648  {
3649  retryCount = MAXIMUM_RETRIES;
3650  }
3651 
3652  if (retryCount == 1)
3653  {
3654  timeoutValue = secondsRemaining - 30;
3655  }
3656  }
3657  else
3658  {
3659  // issue the command with minimal timeout value and do not retry on it.
3660  retryCount = 1;
3661  timeoutValue = 2;
3662  }
3663  }
3664  }
3665  break;
3666  default:
3667  NT_ASSERT( FALSE );
3669  return status;
3670  }
3671 
3672  DeviceExtension->PowerContext.RetryCount = retryCount;
3673 
3674  // issue command.
3675  while (shouldRetry)
3676  {
3677 
3678  // set SRB fields.
3679  DeviceExtension->PowerContext.Srb.SrbFlags = SRB_FLAGS_NO_DATA_TRANSFER |
3684 
3685  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_EXECUTE_SCSI;
3686  DeviceExtension->PowerContext.Srb.TimeOutValue = timeoutValue;
3687 
3688  if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceInitial)
3689  {
3690  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_LOCK_QUEUE;
3691  }
3692  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceLocked)
3693  {
3694  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_QUIESCE_DEVICE;
3695  }
3696  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced)
3697  {
3698  // Case of issuing SYNC CACHE command.
3699  DeviceExtension->PowerContext.Srb.CdbLength = 10;
3700  cdb->SYNCHRONIZE_CACHE10.OperationCode = SCSIOP_SYNCHRONIZE_CACHE;
3701  }
3702  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceFlushed)
3703  {
3704  // Case of issuing STOP UNIT command.
3705  DeviceExtension->PowerContext.Srb.CdbLength = 6;
3706  cdb->START_STOP.OperationCode = SCSIOP_START_STOP_UNIT;
3707  cdb->START_STOP.Start = 0;
3708  cdb->START_STOP.Immediate = 1;
3709  }
3710  else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceStopped)
3711  {
3712  DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_UNLOCK_QUEUE;
3713  }
3714 
3715  // Set up completion routine and context if requested
3716  if (CompletionRoutine)
3717  {
3718  WdfRequestSetCompletionRoutine(DeviceExtension->PowerContext.PowerRequest,
3720  Context);
3721  }
3722 
3723  status = RequestSend(DeviceExtension,
3724  DeviceExtension->PowerContext.PowerRequest,
3725  DeviceExtension->IoTarget,
3727  &requestSent);
3728 
3729  if (requestSent)
3730  {
3731  if ((CompletionRoutine == NULL) &&
3732  (SRB_STATUS(DeviceExtension->PowerContext.Srb.SrbStatus) != SRB_STATUS_SUCCESS))
3733  {
3734  TracePrint((TRACE_LEVEL_ERROR,
3735  TRACE_FLAG_POWER,
3736  "%p\tError occured when issuing %s command to device. Srb %p, Status %x\n",
3737  DeviceExtension->PowerContext.PowerRequest,
3738  (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced) ? "SYNC CACHE" : "STOP UNIT",
3739  &DeviceExtension->PowerContext.Srb,
3740  DeviceExtension->PowerContext.Srb.SrbStatus));
3741 
3742  NT_ASSERT(!(TEST_FLAG(DeviceExtension->PowerContext.Srb.SrbStatus, SRB_STATUS_QUEUE_FROZEN)));
3743 
3744  shouldRetry = RequestSenseInfoInterpret(DeviceExtension,
3745  DeviceExtension->PowerContext.PowerRequest,
3746  &(DeviceExtension->PowerContext.Srb),
3747  retryCount - DeviceExtension->PowerContext.RetryCount,
3748  &status,
3749  &(DeviceExtension->PowerContext.RetryIntervalIn100ns));
3750 
3751  if (shouldRetry && (DeviceExtension->PowerContext.RetryCount-- == 0))
3752  {
3753  shouldRetry = FALSE;
3754  }
3755  }
3756  else
3757  {
3758  // succeeded, do not need to retry.
3759  shouldRetry = FALSE;
3760  }
3761 
3762  }
3763  else
3764  {
3765  // request failed to be sent
3766  shouldRetry = FALSE;
3767  }
3768 
3769  if (shouldRetry)
3770  {
3771  LARGE_INTEGER t;
3772  t.QuadPart = -DeviceExtension->PowerContext.RetryIntervalIn100ns;
3774 
3775  status = PowerContextReuseRequest(DeviceExtension);
3776  if (!NT_SUCCESS(status))
3777  {
3778  shouldRetry = FALSE;
3779  }
3780  }
3781  }
3782 
3783  if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced)
3784  {
3785  // record SYNC CACHE command completion time stamp.
3786  KeQueryTickCount(&DeviceExtension->PowerContext.Step1CompleteTime);
3787  }
3788 
3789  return status;
3790 }
#define SRB_FUNCTION_UNLOCK_QUEUE
Definition: srb.h:325
#define SCSIOP_SYNCHRONIZE_CACHE
Definition: cdrw_hw.h:918
#define SRB_FUNCTION_QUIESCE_DEVICE
Definition: srb.h:90
#define SRB_FLAGS_NO_QUEUE_FREEZE
Definition: srb.h:396
#define TRUE
Definition: types.h:120
Definition: cdrw_hw.h:28
LONG NTSTATUS
Definition: precomp.h:26
struct _CDB::_SYNCHRONIZE_CACHE10 SYNCHRONIZE_CACHE10
GLdouble GLdouble t
Definition: gl.h:2047
#define SRB_STATUS(Status)
Definition: srb.h:381
VOID RequestClearSendTime(_In_ WDFREQUEST Request)
Definition: common.c:111
#define MAXIMUM_RETRIES
Definition: cdrom.h:124
return STATUS_NOT_IMPLEMENTED
#define SCSI_CDROM_TIMEOUT
Definition: cdrom.c:170
#define FALSE
Definition: types.h:117
NTSTATUS NTAPI KeDelayExecutionThread(IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Interval OPTIONAL)
Definition: wait.c:283
#define SRB_FLAGS_BYPASS_LOCKED_QUEUE
Definition: srb.h:402
unsigned char BOOLEAN
union _CDB * PCDB
struct _CDB::_START_STOP START_STOP
VOID NTAPI KeQueryTickCount(IN PLARGE_INTEGER TickCount)
Definition: clock.c:165
#define TEST_FLAG(Flags, Bit)
Definition: cdrom.h:1495
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER
Definition: srb.h:389
#define SRB_FLAGS_NO_DATA_TRANSFER
Definition: srb.h:394
BOOLEAN RequestSenseInfoInterpret(_In_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ WDFREQUEST Request, _In_ PSCSI_REQUEST_BLOCK Srb, _In_ ULONG RetriedCount, _Out_ NTSTATUS *Status, _Out_opt_ _Deref_out_range_(0, MAXIMUM_RETRY_FOR_SINGLE_IO_IN_100NS_UNITS) LONGLONG *RetryIntervalIn100ns)
Definition: sense.c:2467
#define SRB_STATUS_QUEUE_FROZEN
Definition: srb.h:378
NTSTATUS RequestSend(_In_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ WDFREQUEST Request, _In_ WDFIOTARGET IoTarget, _In_ ULONG Flags, _Out_opt_ PBOOLEAN RequestSent)
Definition: common.c:3793
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:893
#define NULL
Definition: types.h:112
#define SRB_FUNCTION_EXECUTE_SCSI
Definition: srb.h:307
unsigned int ULONG
Definition: retypes.h:1
#define SRB_STATUS_SUCCESS
Definition: srb.h:333
#define SRB_FLAGS_D3_PROCESSING
Definition: srb.h:156
static SERVICE_STATUS status
Definition: service.c:31
#define SCSIOP_START_STOP_UNIT
Definition: cdrw_hw.h:897
#define SRB_FUNCTION_LOCK_QUEUE
Definition: srb.h:324
#define NT_ASSERT
Definition: rtlfuncs.h:3312
Definition: ps.c:97

◆ _Out_writes_bytes_()

◆ _Outptr_result_bytebuffer_()

◆ _When_() [1/6]

◆ _When_() [2/6]

_When_ ( !Flags MCB_FLAG_RAISE_ON_ALLOCATION_FAILURE,
_Must_inspect_result_   
)

◆ _When_() [3/6]

◆ _When_() [4/6]

◆ _When_() [5/6]

_When_ ( Flags FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL,
_IRQL_requires_max_(DISPATCH_LEVEL  
)

◆ _When_() [6/6]

_When_ ( Flags OPLOCK_FLAG_BACK_OUT_ATOMIC_OPLOCK,
_Must_inspect_result_   
)

◆ FsRtlAllocateResource()

The FsRtlAllocateResource routine is but is exported to support existing driver binaries Use ExAllocateFromNPagedLookasideList and ExInitializeResourceLite instead NTKERNELAPI PERESOURCE NTAPI FsRtlAllocateResource ( VOID  )

Definition at line 209 of file fsrtlpc.c.

210 {
211  PAGED_CODE();
212 
213  /* Return a preallocated ERESOURCE */
216 }
ULONG FsRtlPagingIoResourceSelector
Definition: fsrtlpc.c:18
#define FSRTL_MAX_RESOURCES
Definition: fsrtl.h:45
PERESOURCE FsRtlPagingIoResources
Definition: fsrtlpc.c:17
#define PAGED_CODE()

◆ FsRtlGetVirtualDiskNestingLevel()

NTKERNELAPI NTSTATUS NTAPI FsRtlGetVirtualDiskNestingLevel ( _In_ PDEVICE_OBJECT  DeviceObject,
_Out_ PULONG  NestingLevel,
_Out_opt_ PULONG  NestingFlags 
)

◆ FsRtlIncrementCcFastMdlReadWait()

NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastMdlReadWait ( VOID  )

◆ FsRtlIncrementCcFastReadNotPossible()

NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadNotPossible ( VOID  )

Definition at line 34 of file fastio.c.

35 {
37 }
ULONG CcFastReadNotPossible
Definition: copysup.c:21

◆ FsRtlIncrementCcFastReadNoWait()

NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadNoWait ( VOID  )

Definition at line 54 of file fastio.c.

55 {
57 }
ULONG CcFastReadNoWait
Definition: copysup.c:23

◆ FsRtlIncrementCcFastReadResourceMiss()

NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadResourceMiss ( VOID  )

Definition at line 24 of file fastio.c.

25 {
27 }
ULONG CcFastReadResourceMiss
Definition: copysup.c:24

Referenced by FsRtlCopyRead().

◆ FsRtlIncrementCcFastReadWait()

NTKERNELAPI VOID NTAPI FsRtlIncrementCcFastReadWait ( VOID  )

Definition at line 44 of file fastio.c.

45 {
47 }
ULONG CcFastReadWait
Definition: copysup.c:22

◆ FsRtlInitializeExtraCreateParameter()

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 
)

◆ FsRtlInitializeExtraCreateParameterList()

NTKERNELAPI NTSTATUS NTAPI FsRtlInitializeExtraCreateParameterList ( _Inout_ PECP_LIST  EcpList)

◆ FsRtlInitializeMcb()

Obsolete NTKERNELAPI VOID NTAPI FsRtlInitializeMcb ( _Out_ PMCB  Mcb,
_In_ POOL_TYPE  PoolType 
)

◆ FsRtlIsNtstatusExpected()

_Must_inspect_result_ NTKERNELAPI BOOLEAN NTAPI FsRtlIsNtstatusExpected ( _In_ NTSTATUS  Ntstatus)

◆ FsRtlIsTotalDeviceFailure()

_Must_inspect_result_ NTKERNELAPI BOOLEAN NTAPI FsRtlIsTotalDeviceFailure ( _In_ NTSTATUS  Status)

◆ FsRtlNormalizeNtstatus()

NTKERNELAPI NTSTATUS NTAPI FsRtlNormalizeNtstatus ( _In_ NTSTATUS  Exception,
_In_ NTSTATUS  GenericException 
)

◆ FsRtlNotifyStreamFileObject()

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 
)

◆ FsRtlPrivateLock()

_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 
)

◆ FsRtlQueryMaximumVirtualDiskNestingLevel()

NTKERNELAPI ULONG NTAPI FsRtlQueryMaximumVirtualDiskNestingLevel ( VOID  )

◆ FsRtlRegisterFileSystemFilterCallbacks()

NTKERNELAPI NTSTATUS NTAPI FsRtlRegisterFileSystemFilterCallbacks ( _In_ struct _DRIVER_OBJECT FilterDriverObject,
_In_ PFS_FILTER_CALLBACKS  Callbacks 
)

◆ if()

if ( FMutex = NULL)

Definition at line 1699 of file fsrtlfuncs.h.

1699  {
1700  localAdvHdr->FastMutex = FMutex;
1701  }
InitializeListHead & localAdvHdr
Definition: fsrtlfuncs.h:1698
_In_ PFAST_MUTEX FMutex
Definition: fsrtlfuncs.h:1688

Variable Documentation

◆ Action

◆ AllocationAttributes

◆ AlreadySynchronized

◆ Amount

◆ ChangeBackingType

◆ CleanupCallback

◆ CompleteLockIrpRoutine

_In_opt_ PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine

Definition at line 139 of file fsrtlfuncs.h.

Referenced by FsRtlAllocateFileLock(), and FsRtlInitializeFileLock().

◆ CompletionFilter

Definition at line 722 of file fsrtlfuncs.h.

◆ CompletionRoutine

◆ Context

◆ CurrentEcpContext

Definition at line 1324 of file fsrtlfuncs.h.

◆ Data

◆ DataLength

◆ DesiredAccess

◆ DeviceObject

◆ DirectoryKey

◆ EcpContext

Definition at line 1262 of file fsrtlfuncs.h.

◆ EcpContextSize

Definition at line 1284 of file fsrtlfuncs.h.

◆ EcpList

Definition at line 1207 of file fsrtlfuncs.h.

◆ EcpType

Definition at line 1284 of file fsrtlfuncs.h.

◆ Event

◆ EventCode

_In_ ULONG EventCode

Definition at line 700 of file fsrtlfuncs.h.

◆ FileContextSupportPointer

localAdvHdr FileContextSupportPointer = NULL

Definition at line 1704 of file fsrtlfuncs.h.

◆ FileObject

◆ FileOffset

Definition at line 16 of file fsrtlfuncs.h.

◆ FileSize

◆ FilterCallback

◆ FilterContext

◆ FilterMatch

◆ FirstPart

◆ Flags

◆ Flags2

◆ FlushError

◆ FMutex

_In_ PFAST_MUTEX FMutex
Initial value:
{
struct _FSRTL_ADVANCED_FCB_HEADER * PFSRTL_ADVANCED_FCB_HEADER
InitializeListHead & localAdvHdr
Definition: fsrtlfuncs.h:1698

Definition at line 1688 of file fsrtlfuncs.h.

Referenced by if().

◆ Fo2

Definition at line 1477 of file fsrtlfuncs.h.

◆ FsContext

Definition at line 722 of file fsrtlfuncs.h.

◆ FsRtlLegalAnsiCharacterArray

const UCHAR* const* FsRtlLegalAnsiCharacterArray

Definition at line 154 of file fsrtlpc.c.

Referenced by START_TEST().

◆ FullDirectoryName

_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING FullDirectoryName

Definition at line 722 of file fsrtlfuncs.h.

◆ FullTargetName

◆ IgnoreBuffer

Definition at line 722 of file fsrtlfuncs.h.

◆ IgnoreCase

Definition at line 796 of file fsrtlfuncs.h.

◆ Index

◆ InstanceId

◆ IoStatus

◆ Irp

Definition at line 177 of file fsrtlfuncs.h.

◆ IrpSp

◆ Key

Definition at line 219 of file fsrtlfuncs.h.

◆ KeyByShortName

◆ LargeLbn

◆ LargeVbn

◆ Lbn

◆ LeadingBackslashPermissible

_Must_inspect_result_ _In_ BOOLEAN _In_ BOOLEAN _In_ BOOLEAN LeadingBackslashPermissible

Definition at line 405 of file fsrtlfuncs.h.

Referenced by FsRtlIsFatDbcsLegal(), and FsRtlIsHpfsDbcsLegal().

◆ Length

◆ Level

Definition at line 1163 of file fsrtlfuncs.h.

◆ localAdvHdr

*() PULONG_PTR localAdvHdr = 0

Definition at line 1698 of file fsrtlfuncs.h.

Referenced by if().

◆ LockKey

◆ LongName

◆ LookasideList

◆ MailslotsSupported

Definition at line 836 of file fsrtlfuncs.h.

◆ MaximumSize

◆ MdlChain

◆ Name

◆ Name2

◆ NewFileObject

Definition at line 1357 of file fsrtlfuncs.h.

Referenced by AfdAccept(), and SatisfyAccept().

◆ NewLength

Definition at line 1197 of file fsrtlfuncs.h.

◆ NextEcpContext

◆ NextEcpContextSize

◆ NextEcpType

Definition at line 1324 of file fsrtlfuncs.h.

◆ NormalizedParentName

◆ NotifyIrp

◆ NotifyList

_In_ PLIST_ENTRY NotifyList

Definition at line 722 of file fsrtlfuncs.h.

◆ ObjectAttributes

◆ obsolete

The FsRtlAllocateResource routine is obsolete

Definition at line 435 of file fsrtlfuncs.h.

◆ OpenCount

Definition at line 663 of file fsrtlfuncs.h.

◆ OwnerId

◆ PathLength

Definition at line 1197 of file fsrtlfuncs.h.

◆ PathNamePermissible

Definition at line 405 of file fsrtlfuncs.h.

Referenced by FsRtlIsFatDbcsLegal(), and FsRtlIsHpfsDbcsLegal().

◆ pBuffer

◆ pBufferSize

◆ PoolTag

◆ PoolType

Definition at line 447 of file fsrtlfuncs.h.

◆ PostIrpRoutine

◆ pProviderId

Definition at line 1174 of file fsrtlfuncs.h.

◆ Process

Definition at line 219 of file fsrtlfuncs.h.

Referenced by $endif(), _Struct_size_bytes_(), AllocW32Process(), BaseSrvCreatePairWaitHandles(), BaseSrvDestroyPairWaitHandles(), co_IntRegisterLogonProcess(), CON_API(), connect(), CSR_API(), CsrInsertThread(), CsrLocateThreadByClientId(), DbgkClearProcessDebugObject(), DbgkCopyProcessDebugPort(), DbgkCreateThread(), DbgkExitProcess(), DbgkExitThread(), DbgkForwardException(), DbgkMapViewOfSection(), DbgkOpenProcessDebugPort(), DbgkpCloseObject(), DbgkpMarkProcessPeb(), DbgkpOpenHandles(), DbgkpPostFakeModuleMessages(), DbgkpPostFakeProcessCreateMessages(), DbgkpPostFakeThreadMessages(), DbgkpQueueMessage(), DbgkpSetProcessDebugObject(), DbgkUnMapViewOfSection(), DbgUiDebugActiveProcess(), DbgUiIssueRemoteBreakin(), DbgUiStopDebugging(), DebugBreakProcess(), DECLARE_INTERFACE_(), DestroyProcessClasses(), CWineTest::DoListCommand(), ExAllocatePoolWithQuotaTag(), ExCreateHandleTable(), ExDupHandleTable(), ExFreePoolWithTag(), ExitProcessCallback(), ExitThreadCallback(), ExpAllocateHandleTable(), ExpAllocateTablePagedPool(), ExpAllocateTablePagedPoolNoZero(), ExpDebuggerWorker(), ExpDesktopClose(), ExpDesktopOkToClose(), ExpDesktopOpen(), ExpFreeHandleTable(), ExpFreeLowLevelTable(), ExpFreeTablePagedPool(), ExpRaiseHardError(), ExpWindowStationOkToClose(), ExReturnPoolQuota(), ExSwapinWorkerThreads(), Ext2FastIoLock(), Ext2FastIoUnlockAll(), Ext2FastIoUnlockAllByKey(), Ext2FastIoUnlockSingle(), FFSFastIoLock(), FFSFastIoUnlockAll(), FFSFastIoUnlockAllByKey(), FFSFastIoUnlockSingle(), find_process(), find_thread(), FsRtlCheckLockForWriteAccess(), FsRtlFastCheckLockForRead(), FsRtlFastCheckLockForWrite(), FsRtlFastUnlockAll(), FsRtlFastUnlockAllByKey(), FsRtlFastUnlockSingle(), FsRtlPrivateLock(), GDI_CleanupForProcess(), GdiProcessCreate(), GdiProcessDestroy(), gethostbyaddr(), gethostbyname(), GetOwnerModuleFromPidEntry(), GetProcessID(), GetProcessId(), GetProcessLuid(), GetProcessMemoryInfo(), getprotobyname(), getprotobynumber(), getservbyname(), getservbyport(), getsockopt(), handle_gdb_query(), inet_ntoa(), InitProcessCallback(), InitThreadCallback(), IntAllowSetForegroundWindow(), IntResolveDesktop(), IntVideoPortMapPhysicalMemory(), IoGetRequestorProcessId(), IoGetRequestorSessionId(), IopCloseFile(), IsConsoleProcess(), KdbpAttachToProcess(), KdbpAttachToThread(), KdbpCmdBreakPointList(), KdbpCmdProc(), KdbpCmdThread(), KdbpGetBreakPointInfo(), KdbpOverwriteInstruction(), Ke386CallBios(), Ke386IoSetAccessProcess(), Ke386SetIOPL(), KeAttachProcess(), KeDetachProcess(), KeFreezeAllThreads(), KeInitializeProcess(), KeInitializeProfile(), KeInitializeThread(), KeInitThread(), KeProfileInterruptWithSource(), KeQueryBasePriorityThread(), KeQueryRuntimeProcess(), KeQueryValuesProcess(), KeSetAffinityProcess(), KeSetAutoAlignmentProcess(), KeSetBasePriorityThread(), KeSetDisableBoostProcess(), KeSetPriorityAndQuantumProcess(), KeSetProcess(), KeSetQuantumProcess(), KeStackAttachProcess(), KeStartThread(), KeTerminateThread(), KeThawAllThreads(), KeUnstackDetachProcess(), KiAcquireProcessLockRaiseToSynch(), KiAttachProcess(), KiDeliverApc(), KiInitializeContextThread(), KiInitializeHandBuiltThread(), KiReadyThread(), KiSystemStartupBootStack(), KiTrap02Handler(), KiTrap08Handler(), MapGlobalUserHeap(), MI_IS_WS_UNSAFE(), MI_WS_OWNER(), MiBalancerThread(), MiCalculatePageCommitment(), MiCopyFromUserPage(), MiCopyPageToPage(), MiCowCacheSectionPage(), MiDecommitPages(), MiDereferenceSession(), MiDispatchFault(), MiGetPageEntryForProcess(), MiGetPageTableForProcess(), MiGetPteForProcess(), MiGetPteValueForProcess(), MiInsertNode(), MiIsEntireRangeCommitted(), MiLoadImageSection(), MiLoadUserSymbols(), MiLockProcessWorkingSet(), MiLockProcessWorkingSetForFault(), MiLockProcessWorkingSetShared(), MiLockProcessWorkingSetUnsafe(), MiMapLockedPagesInUserSpace(), MiMapPageInHyperSpace(), MiProtectVirtualMemory(), MiQueryMemorySectionName(), MiReadPage(), MiRemoveNode(), MiResolveDemandZeroFault(), MiResolveProtoPteFault(), MiRosCleanupMemoryArea(), MiRosProtectVirtualMemory(), MiRosUnmapViewOfSection(), MiSessionCreateInternal(), MiSessionLeader(), MiSetProtectionOnSection(), MiUnlockProcessWorkingSet(), MiUnlockProcessWorkingSetForFault(), MiUnlockProcessWorkingSetShared(), MiUnlockProcessWorkingSetUnsafe(), MiUnmapLockedPagesInUserSpace(), MiUnmapPageInHyperSpace(), MiUnmapViewOfSection(), MiZeroPhysicalPage(), MmAccessFaultSectionView(), MmAlterViewAttributes(), MmCleanProcessAddressSpace(), MmCopyVirtualMemory(), MmCreatePageFileMapping(), MmCreatePeb(), MmCreateProcessAddressSpace(), MmCreateTeb(), MmCreateVirtualMapping(), MmCreateVirtualMappingUnsafe(), MmDeleteAllRmaps(), MmDeletePageFileMapping(), MmDeletePageTable(), MmDeleteProcessAddressSpace(), MmDeleteProcessAddressSpace2(), MmDeleteRmap(), MmDeleteTeb(), MmDeleteVirtualMapping(), MmFindGap(), MmFreeCacheSectionPage(), MmFreeMemoryArea(), MmFreePageTable(), MmFreeSectionPage(), MmGetPageEntryForProcess(), MmGetPageEntryForProcessForPAE(), MmGetPageFileMapping(), MmGetPageProtect(), MmGetPageTableForProcess(), MmGetPageTableForProcessForPAE(), MmGetPfnForProcess(), MmGetPhysicalAddressProcess(), MmGetSessionById(), MmGetSessionId(), MmGetSessionIdEx(), MmGetSessionLocaleId(), MmInitializeHandBuiltProcess(), MmInitializeProcessAddressSpace(), MmInsertMemoryArea(), MmInsertRmap(), MmIsDirtyPage(), MmIsDisabledPage(), MmIsPagePresent(), MmIsPageSwapEntry(), MmLocateMemoryAreaByAddress(), MmLocateMemoryAreaByRegion(), MmMapViewOfArm3Section(), MmMapViewOfSection(), MmNotPresentFaultCachePage(), MmNotPresentFaultSectionView(), MmPageOutCacheSection(), MmPageOutDeleteMapping(), MmPageOutPhysicalAddress(), MmPageOutSectionView(), MmpPageOutPhysicalAddress(), MmSessionCreate(), MmSessionDelete(), MmSetCleanPage(), MmSetDirtyPage(), MmSetMemoryPriorityProcess(), MmSetPageProtect(), MmUnlockPages(), MmUnmapViewOfSection(), MmWritePageSectionView(), NonConsoleProcessShutdown(), NotifyUserProcessForShutdown(), NpFsdCreateNamedPipe(), NtAllocateVirtualMemory(), NtAssignProcessToJobObject(), NtCreateProfile(), NtDebugActiveProcess(), NtFlushInstructionCache(), NtFlushVirtualMemory(), NtFreeVirtualMemory(), NtGetWriteWatch(), NtIsProcessInJob(), NtLockVirtualMemory(), NtMapViewOfSection(), NtOpenProcess(), NtProtectVirtualMemory(), NtQueryInformationJobObject(), NtQueryInformationProcess(), NtReadVirtualMemory(), NtRemoveProcessDebug(), NtResetWriteWatch(), NtResumeProcess(), NtSetInformationProcess(), NtSetInformationThread(), NtSetTimerResolution(), NtSuspendProcess(), NtTerminateProcess(), NtUnlockVirtualMemory(), NtUnmapViewOfSection(), NtUserCallOneParam(), NtUserGetGuiResources(), NtUserGetThreadDesktop(), NtUserProcessConnect(), NtUserResolveDesktop(), NtUserWaitForInputIdle(), NtWaitForDebugEvent(), NtWriteVirtualMemory(), ObClearProcessHandleTable(), ObDereferenceDeviceMap(), ObDereferenceProcessHandleTable(), ObFindHandleForObject(), ObGetProcessHandleCount(), ObInheritDeviceMap(), ObInitProcess(), ObKillProcess(), ObpCloseHandle(), ObpDecrementHandleCount(), ObpDuplicateHandleCallback(), ObpIncrementHandleCount(), ObpIncrementHandleDataBase(), ObpIncrementUnnamedHandleCount(), ObpReferenceProcessObjectByHandle(), ObQueryDeviceMapInformation(), ObReferenceProcessHandleTable(), ObSetDeviceMap(), PopGracefulShutdown(), PsChangeQuantumTable(), PsChargePoolQuota(), PsChargeProcessNonPagedPoolQuota(), PsChargeProcessPagedPoolQuota(), PsChargeProcessPageFileQuota(), PsChargeProcessPoolQuota(), PsConvertToGuiThread(), PsGetNextProcessThread(), PsGetProcessCreateTimeQuadPart(), PsGetProcessDebugPort(), PsGetProcessExitProcessCalled(), PsGetProcessExitStatus(), PsGetProcessId(), PsGetProcessImageFileName(), PsGetProcessInheritedFromUniqueProcessId(), PsGetProcessJob(), PsGetProcessPeb(), PsGetProcessPriorityClass(), PsGetProcessSectionBaseAddress(), PsGetProcessSecurityPort(), PsGetProcessSessionId(), PsGetProcessSessionIdEx(), PsGetProcessWin32Process(), PsGetProcessWin32WindowStation(), PsIsProcessBeingDebugged(), PsIsSystemProcess(), PsLookupProcessByProcessId(), PsLookupProcessThreadByCid(), PsOpenTokenOfProcess(), PspAssignPrimaryToken(), PspChargeProcessQuotaSpecifiedPool(), PspComputeQuantumAndPriority(), PspCreateProcess(), PspCreateThread(), PspDeleteLdt(), PspDeleteProcess(), PspDeleteProcessSecurity(), PspDeleteThread(), PspDeleteVdmObjects(), PspDestroyQuotaBlock(), PspExitProcess(), PspInheritQuota(), PspInitializeProcessSecurity(), PspIsProcessExiting(), PspLockProcessSecurityExclusive(), PspLockProcessSecurityShared(), PspMapSystemDll(), PspReturnProcessQuotaSpecifiedPool(), PspSetPrimaryToken(), PspSetQuotaLimits(), PspShutdownProcessManager(), PspTerminateProcess(), PspUnlockProcessSecurityExclusive(), PspUnlockProcessSecurityShared(), PspWriteTebImpersonationInfo(), PsReferenceEffectiveToken(), PsReferencePrimaryToken(), PsReferenceProcessFilePointer(), PsResumeProcess(), PsReturnPoolQuota(), PsReturnProcessNonPagedPoolQuota(), PsReturnProcessPagedPoolQuota(), PsReturnProcessPageFileQuota(), PsSetProcessPriorityByClass(), PsSetProcessPriorityClass(), PsSetProcessSecurityPort(), PsSetProcessWin32Process(), PsSetProcessWindowStation(), PsSuspendProcess(), PsTerminateProcess(), QSI_DEF(), RfsdFastIoLock(), RfsdFastIoUnlockAll(), RfsdFastIoUnlockAllByKey(), RfsdFastIoUnlockSingle(), RtlpSecMemFreeVirtualMemory(), CWineTest::RunTest(), SeAssignPrimaryToken(), SeCaptureSubjectContextEx(), SeCreateAccessStateEx(), SeDeassignPrimaryToken(), SeExchangePrimaryToken(), SeLocateProcessImageName(), setsockopt(), SmpSbCreateSession(), socket(), START_TEST(), TestObjectTypes(), TestPoolQuota(), UnmapGlobalUserHeap(), UserProcessCreate(), UserProcessDestroy(), Win32kProcessCallback(), WPUModifyIFSHandle(), WPUQueryBlockingCallback(), WSAAccept(), WSAAddressToStringA(), WSAAddressToStringW(), WSAAsyncGetHostByAddr(), WSAAsyncGetHostByName(), WSAAsyncGetProtoByName(), WSAAsyncGetProtoByNumber(), WSAAsyncGetServByName(), WSAAsyncGetServByPort(), WSACancelAsyncRequest(), WSACancelBlockingCall(), WSACleanup(), WSAIsBlocking(), WSAJoinLeaf(), WSALookupServiceBeginW(), WSALookupServiceEnd(), WSALookupServiceNextW(), WsApiProlog(), WSARecvDisconnect(), WSASendDisconnect(), WSASetBlockingHook(), WSASocketW(), WSAStringToAddressA(), WSAStringToAddressW(), WSAUnhookBlockingHook(), WSCGetProviderPath(), WsProcAllocate(), WsProcDelete(), WsProcDetachSocket(), WsProcGetAsyncHelper(), WsProcGetNsCatalog(), WsProcGetTCatalog(), WsProcInitialize(), WsProcOpenAsyncHelperDevice(), WsProcSetVersion(), WsSlowProlog(), WsSlowPrologTid(), WsSockFindIfsSocket(), WsThreadCreate(), WsThreadGetCurrentThread(), and WsThreadInitialize().

◆ Ptr

Definition at line 898 of file fsrtlfuncs.h.

Referenced by AcpiOsMapMemory(), AddDesktopItemW(), AddItemW(), AVrfInitializeVerifier(), AVrfpChainDuplicateThunks(), AVrfpSnapDllImports(), BasepCheckForReadOnlyResource(), BuildAliasInfoBuffer(), BuildGroupInfoBuffer(), BuildInteractiveProfileBuffer(), BuildUserInfoBuffer(), CalcCheckSum(), CalculateChecksum(), ClearLineBuffer(), CmpFree(), ConDrvChangeScreenBufferAttributes(), ConDrvFillConsoleOutput(), ConDrvReadConsoleOutput(), ConDrvWriteConsoleOutput(), ConDrvWriteConsoleOutputVDM(), ConioFillRegion(), ConioResizeBuffer(), ConioWriteConsole(), ConvertPackageArguments(), CreateDirectoryPath(), CreateNestedKey(), CreateShortcut(), CriticalDeviceCoInstaller(), DeleteItemW(), DesktopPtrToUser(), DetectBiosFloppyPeripheral(), DetectPnpBios(), DiskGetExtendedDriveParameters(), DiskRead(), DoChangePassword(), DosCopyEnvironmentBlock(), DsAddressToSiteNamesA(), DsAddressToSiteNamesExA(), DsAddressToSiteNamesExW(), DsAddressToSiteNamesW(), DsEnumerateDomainTrustsA(), DsGetDcNameWithAccountA(), DsGetDcSiteCoverageA(), DsGetDcSiteCoverageW(), Ext2ZeroData(), FilterConnectCommunicationPort(), FindAcpiBios(), FindPxeStructure(), FltGetVolumeProperties(), FltRegisterFilter(), FreeLibrary(), FsRtlDoesNameContainWildCards(), FsRtlInsertPerFileObjectContext(), GetBuiltinDomainSid(), GetName(), GetOutlineTextMetricsW(), GetPciIrqRoutingTable(), GetProcessorInformation(), GetSourcePaths(), GetTimeZoneListIndex(), GlobalAlloc(), GlobalFree(), GlobalLock(), GlobalReAlloc(), HalpGetCmosData(), HalpSetCmosData(), HidClassPDO_HandleQueryDeviceId(), HidClassPDO_HandleQueryHardwareId(), HvpWriteLog(), InfGetBinaryField(), InfGetIntField(), InfGetMultiSzField(), InfGetStringField(), InfpGetBinaryField(), InfpGetIntField(), InfpGetMultiSzField(), InfpGetStringField(), IniCacheGetKeyName(), IniCacheGetKeyValue(), IniCacheGetSectionName(), IniCacheLoadFromMemory(), IniCacheSaveByHandle(), IniCacheSkipToNextSection(), IniCacheSkipWhitespace(), IntReadConsoleOutputStringAttributes(), IntReadConsoleOutputStringChars(), IntWriteConsoleOutputStringAttribute(), IntWriteConsoleOutputStringChars(), IopGetDeviceRelations(), IopQueryCompatibleIds(), IopQueryHardwareIds(), jpeg_free_large(), jpeg_free_small(), jpeg_open_backing_store(), Ki386CreateIdentityMap(), KmtFltSendBufferToDriver(), LdrVerifyMappedImageMatchesChecksum(), LISTVIEW_GetColumnInfo(), LocalAlloc(), LocalReAlloc(), LogfpFree(), LogonUserExW(), LsaIFree_LSAPR_ACCOUNT_ENUM_BUFFER(), LsaIFree_LSAPR_CR_CIPHER_VALUE(), LsaIFree_LSAPR_PRIVILEGE_ENUM_BUFFER(), LsaIFree_LSAPR_PRIVILEGE_SET(), LsaIFree_LSAPR_REFERENCED_DOMAIN_LIST(), LsaIFree_LSAPR_SR_SECURITY_DESCRIPTOR(), LsaIFree_LSAPR_TRANSLATED_NAMES(), LsaIFree_LSAPR_TRANSLATED_SIDS(), LsapGetLogonSessionData(), LsapLookupFullyQualifiedWellKnownName(), LsapLookupIsolatedWellKnownName(), LsapLookupWellKnownSid(), LsapSplitNames(), LsarSetAccountDomain(), LsarSetPrimaryDomain(), MiniportSend(), MiSpecialPoolCheckPattern(), MxMemory::MxFreePool(), MyFree(), MyLogonUser(), NetEnumerateComputerNames(), NetGroupGetUsers(), NetLocalGroupGetMembers(), NetUserChangePassword(), CNewMenu::NewItemByCommand(), CZipExtract::CCompleteSettingsPage::OnSetActive(), PnpDecodeDma(), PnpDecodeFixedIoPort(), PnpDecodeFixedMemory(), PnpDecodeIoPort(), PnpDecodeIrq(), PnpDecodeMemory16(), PnpDecodeMemory32(), PoolsCorruption(), PoolsTest(), PrintDeviceData(), QueryDosDeviceW(), ReadHostsFile(), RegpCreateOrOpenKey(), auto_array_ptr< Type >::reset(), RtlDebugFreeHeap(), RtlDebugReAllocateHeap(), RtlDebugSizeHeap(), RtlFreeHeap(), RtlpCopyParameterString(), RtlpDphAllocateNode(), RtlpDphFindBusyMemory(), RtlpPageHeapAllocate(), RtlpPageHeapDestroy(), RtlpPageHeapFree(), RtlpPageHeapReAllocate(), RtlReAllocateHeap(), RtlSizeHeap(), SamIFree_SAMPR_ALIAS_INFO_BUFFER(), SamIFree_SAMPR_DISPLAY_INFO_BUFFER(), SamIFree_SAMPR_DOMAIN_INFO_BUFFER(), SamIFree_SAMPR_ENUMERATION_BUFFER(), SamIFree_SAMPR_GET_GROUPS_BUFFER(), SamIFree_SAMPR_GET_MEMBERS_BUFFER(), SamIFree_SAMPR_GROUP_INFO_BUFFER(), SamIFree_SAMPR_PSID_ARRAY(), SamIFree_SAMPR_RETURNED_USTRING_ARRAY(), SamIFree_SAMPR_SR_SECURITY_DESCRIPTOR(), SamIFree_SAMPR_ULONG_ARRAY(), SamIFree_SAMPR_USER_INFO_BUFFER(), SamIFreeVoid(), ScmControlService(), ScmCreateManagerHandle(), ScmCreateServiceHandle(), ScmSendStartCommand(), SdbpBuildSignMediaId(), SeiPatchNewImport(), SetupCreateDirectory(), SharedFace_AddRef(), SharedFace_Create(), SharedFace_Release(), SharedMem_AddRef(), SharedMem_Create(), SharedMem_Release(), SharedPtrToUser(), SpiCleanupAfterInit(), SpiSendRequestSense(), START_TEST(), Test_GetFiles(), test_specialhandling(), ToolsPageWndProc(), USBHUB_DumpingIDs(), USBPORT_DumpingIDs(), VideoPortFreePool(), and VideoPortReleaseBuffer().

◆ RedirDevName

Definition at line 1127 of file fsrtlfuncs.h.

◆ RedirectorDeviceName

Definition at line 836 of file fsrtlfuncs.h.

◆ RemainingPart

◆ Restart

Definition at line 257 of file fsrtlfuncs.h.

◆ RunIndex

◆ SectionFileSize

Definition at line 860 of file fsrtlfuncs.h.

◆ SectionObject

◆ SectionObjectPointer

◆ SectionPageProtection

◆ SectorCount

Definition at line 479 of file fsrtlfuncs.h.

◆ SectorCountFromLbn

◆ SectorCountFromStartingLbn

◆ SelfSynchronized

_In_ BOOLEAN SelfSynchronized

Definition at line 462 of file fsrtlfuncs.h.

Referenced by FsRtlResetLargeMcb().

◆ ShortName

◆ Size

◆ SizeOfContext

Definition at line 1223 of file fsrtlfuncs.h.

◆ StackOverflowRoutine

◆ StartingLbn

◆ StreamName

◆ SubjectContext

◆ Tag

◆ TargetContext

◆ TargetNameOffset

_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT TargetNameOffset

Definition at line 738 of file fsrtlfuncs.h.

Referenced by FsRtlNotifyFilterReportChange(), and FsRtlNotifyFullReportChange().

◆ Timeout

◆ TraverseCallback

◆ UnlockRoutine

Definition at line 124 of file fsrtlfuncs.h.

◆ UpcaseTable

◆ Vbn

◆ Version

Definition at line 1694 of file fsrtlfuncs.h.

◆ Wait

◆ WaitBlockArray

◆ WaitType

◆ WatchTree

Definition at line 722 of file fsrtlfuncs.h.

◆ WildCardsPermissible

_Must_inspect_result_ _In_ BOOLEAN WildCardsPermissible

Definition at line 405 of file fsrtlfuncs.h.

Referenced by FsRtlIsFatDbcsLegal(), and FsRtlIsHpfsDbcsLegal().