245 if (IrpContext->Vcb ==
NULL) {
277 #if (NTDDI_VERSION >= NTDDI_WIN7) 293 Vcb = IrpContext->Vcb;
294 NextFcb =
Vcb->RootIndexFcb;
301 RelatedFileObject =
NULL;
312 RelatedFileObject =
FileObject->RelatedFileObject;
315 RelatedTypeOfOpen = CdDecodeFileObject( IrpContext, RelatedFileObject, &NextFcb, &RelatedCcb );
331 RelatedFileName = &RelatedFileObject->FileName;
346 Status = CdNormalizeFileNames( IrpContext,
507 CdFindPrefix( IrpContext,
616 ShortNameMatch =
FALSE;
631 CleanupCompoundPathEntry =
TRUE;
633 FoundEntry = CdFindPathEntry( IrpContext,
655 if (CleanupFileContext) {
661 CleanupFileContext =
TRUE;
663 FoundEntry = CdFindFileByShortName( IrpContext,
677 ShortNameMatch =
TRUE;
685 FoundEntry = CdFindPathEntry( IrpContext,
808 CdOpenDirectoryFromPathEntry( IrpContext,
820 CleanupCompoundPathEntry =
FALSE;
830 if (CleanupFileContext) {
836 CleanupFileContext =
TRUE;
842 CdConvertNameToCdName( IrpContext, &FinalName );
844 FoundEntry = CdFindFile( IrpContext,
937 if (CleanupCompoundPathEntry) {
946 if (CleanupFileContext) {
969 CdTeardownStructures( IrpContext,
CurrentFcb, &RemovedFcb );
UNICODE_STRING VersionString
VOID CdCleanupFileContext(_In_ PIRP_CONTEXT IrpContext, _In_ PFILE_ENUM_CONTEXT FileContext)
#define VCB_STATE_AUDIO_DISK
#define STATUS_FILE_IS_A_DIRECTORY
#define IRP_CONTEXT_FLAG_WAIT
#define SL_CASE_SENSITIVE
_Inout_ PFCB * CurrentFcb
#define CdAcquireVcbShared(IC, V, I)
#define SL_OPEN_PAGING_FILE
#define STATUS_INVALID_PARAMETER
#define BooleanFlagOn(F, SF)
#define FILE_DIRECTORY_FILE
#define SafeNodeType(Ptr)
VOID CdUpcaseName(_In_ PIRP_CONTEXT IrpContext, _In_ PCD_NAME Name, _Inout_ PCD_NAME UpcaseName)
ULONG CdShortNameDirentOffset(_In_ PIRP_CONTEXT IrpContext, _In_ PUNICODE_STRING Name)
#define CdReleaseFcb(IC, F)
#define CdInitializeCompoundPathEntry(IC, CP)
#define STATUS_INVALID_DEVICE_REQUEST
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK _In_ USHORT _In_ ULONG CreateDisposition
_In_ PFCB _In_ PCD_NAME _In_ BOOLEAN _Inout_ PFILE_ENUM_CONTEXT _Out_ PCD_NAME * MatchingName
#define CdAcquireFcbExclusive(IC, F, I)
#define FILE_OPEN_BY_FILE_ID
_In_ PFCB _In_ PCD_NAME _In_ BOOLEAN _In_ ULONG ShortNameDirentOffset
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB Vcb
#define STATUS_FILE_CORRUPT_ERROR
#define STATUS_NOT_A_DIRECTORY
VOID CdCompleteRequest(_Inout_opt_ PIRP_CONTEXT IrpContext, _Inout_opt_ PIRP Irp, _In_ NTSTATUS Status)
#define CDFS_NTC_FCB_DATA
#define IRP_CONTEXT_FLAG_TRAIL_BACKSLASH
#define CD_ATTRIBUTE_DIRECTORY
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT FileObject
#define _Analysis_assume_lock_held_(lock)
#define _SEH2_AbnormalTermination()
_In_ PFCB _In_ PCD_NAME _In_ BOOLEAN _Inout_ PFILE_ENUM_CONTEXT FileContext
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
#define FILE_ATTRIBUTE_DIRECTORY
#define CdAcquireVcbExclusive(IC, V, I)
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG _Out_opt_ PULONG CreateDisposition
#define CdReleaseVcb(IC, V)
#define NT_SUCCESS(StatCode)
#define STATUS_OBJECT_PATH_NOT_FOUND
#define STATUS_ACCESS_DENIED
#define FILE_NON_DIRECTORY_FILE
enum _TYPE_OF_OPEN TYPE_OF_OPEN
#define CdCleanupCompoundPathEntry(IC, CP)
VOID CdDissectName(_In_ PIRP_CONTEXT IrpContext, _Inout_ PUNICODE_STRING RemainingName, _Out_ PUNICODE_STRING FinalName)
VOID CdVerifyVcb(_In_ PIRP_CONTEXT IrpContext, _Inout_ PVCB Vcb)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
struct _FileName FileName
#define SL_OPEN_TARGET_DIRECTORY
#define STATUS_OBJECT_NAME_NOT_FOUND
#define CdRaiseStatus(IC, S)
_In_ PIO_STACK_LOCATION IrpSp
#define STATUS_DISK_CORRUPT_ERROR
#define RtlCopyMemory(Destination, Source, Length)
#define FILE_OPEN_REQUIRING_OPLOCK
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
PFCB_NONPAGED FcbNonpaged
HRESULT Create([out]ITransactionReceiver **ppReceiver)
#define CdInitializeFileContext(IC, FC)
_In_ PFCB _In_ PCD_NAME _In_ BOOLEAN _Inout_ PCOMPOUND_PATH_ENTRY CompoundPathEntry
_Inout_ PFCB _Inout_ PUNICODE_STRING RemainingName