23#define BugCheckFileId (CDFS_BUG_CHECK_FILEINFO)
79CdQueryAlternateNameInfo (
96#pragma alloc_text(PAGE, CdCommonQueryInfo)
97#pragma alloc_text(PAGE, CdCommonSetInfo)
98#pragma alloc_text(PAGE, CdFastQueryBasicInfo)
99#pragma alloc_text(PAGE, CdFastQueryStdInfo)
100#pragma alloc_text(PAGE, CdFastQueryNetworkInfo)
101#pragma alloc_text(PAGE, CdQueryAlternateNameInfo)
102#pragma alloc_text(PAGE, CdQueryBasicInfo)
103#pragma alloc_text(PAGE, CdQueryEaInfo)
104#pragma alloc_text(PAGE, CdQueryInternalInfo)
105#pragma alloc_text(PAGE, CdQueryNameInfo)
106#pragma alloc_text(PAGE, CdQueryNetworkInfo)
107#pragma alloc_text(PAGE, CdQueryPositionInfo)
108#pragma alloc_text(PAGE, CdQueryStandardInfo)
158 Buffer =
Irp->AssociatedIrp.SystemBuffer;
421 Buffer =
Irp->AssociatedIrp.SystemBuffer;
559 Buffer->CreationTime.QuadPart =
560 Buffer->LastWriteTime.QuadPart =
563 Buffer->LastAccessTime.QuadPart = 0;
684 Buffer->AllocationSize.QuadPart =
685 Buffer->EndOfFile.QuadPart = 0;
691 Buffer->AllocationSize.QuadPart =
Fcb->AllocationSize.QuadPart;
692 Buffer->EndOfFile.QuadPart =
Fcb->FileSize.QuadPart;
697 Buffer->NumberOfLinks = 1;
815 Buffer->CreationTime.QuadPart =
816 Buffer->LastWriteTime.QuadPart =
819 Buffer->LastAccessTime.QuadPart = 0;
829 Buffer->AllocationSize.QuadPart =
830 Buffer->EndOfFile.QuadPart = 0;
834 Buffer->AllocationSize.QuadPart =
Fcb->AllocationSize.QuadPart;
835 Buffer->EndOfFile.QuadPart =
Fcb->FileSize.QuadPart;
904 Buffer->LastWriteTime.QuadPart =
905 Buffer->CreationTime.QuadPart =
908 Buffer->LastAccessTime.QuadPart = 0;
964 Buffer->NumberOfLinks = 1;
974 Buffer->AllocationSize.QuadPart =
975 Buffer->EndOfFile.QuadPart = 0;
981 Buffer->AllocationSize.QuadPart =
Fcb->AllocationSize.QuadPart;
982 Buffer->EndOfFile.QuadPart =
Fcb->FileSize.QuadPart;
1209 if (LengthToCopy > *
Length) {
1235CdQueryAlternateNameInfo (
1298 Buffer->FileNameLength = 0;
1319 ReleaseParentFcb =
TRUE;
1336 CleanupDirectoryLookup =
TRUE;
1360 NameToUse = &
FileContext.InitialDirent->Dirent.CdCaseFileName.FileName;
1372 CleanupFileLookup =
TRUE;
1379 CdUpdateDirentFromRawDirent( IrpContext,
1390 NameToUse = &
Dirent.CdCaseFileName.FileName;
1415 Buffer->FileNameLength = ShortNameLength;
1428 if (CleanupFileLookup) {
1433 }
else if (CleanupDirectoryLookup) {
1439 if (ReleaseParentFcb) {
1501 Buffer->LastWriteTime.QuadPart =
1502 Buffer->CreationTime.QuadPart =
1505 Buffer->LastAccessTime.QuadPart = 0;
1516 Buffer->AllocationSize.QuadPart =
1517 Buffer->EndOfFile.QuadPart = 0;
1521 Buffer->AllocationSize.QuadPart =
Fcb->AllocationSize.QuadPart;
1522 Buffer->EndOfFile.QuadPart =
Fcb->FileSize.QuadPart;
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
#define BYTE_COUNT_8_DOT_3
VOID CdCompleteRequest(_Inout_opt_ PIRP_CONTEXT IrpContext, _Inout_opt_ PIRP Irp, _In_ NTSTATUS Status)
#define ASSERT_FILE_OBJECT(FO)
FAST_IO_QUERY_NETWORK_OPEN_INFO CdFastQueryNetworkInfo
#define CdInitializeDirent(IC, D)
VOID CdUpdatePathEntryName(_In_ PIRP_CONTEXT IrpContext, _Inout_ PPATH_ENTRY PathEntry, _In_ BOOLEAN IgnoreCase)
static INLINE VOID CdVerifyOrCreateDirStreamFile(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb)
_In_ PFCB _In_ PDIRENT_ENUM_CONTEXT _Inout_ PDIRENT Dirent
#define CdInitializeCompoundPathEntry(IC, CP)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN TypeOfOpen
FAST_IO_QUERY_STANDARD_INFO CdFastQueryStdInfo
_In_ PFCB _In_ PCD_NAME _In_ BOOLEAN _Inout_ PCOMPOUND_PATH_ENTRY CompoundPathEntry
#define CdReleaseFile(IC, F)
TYPE_OF_OPEN CdFastDecodeFileObject(_In_ PFILE_OBJECT FileObject, _Out_ PFCB *Fcb)
VOID CdUpdateDirentName(_In_ PIRP_CONTEXT IrpContext, _Inout_ PDIRENT Dirent, _In_ ULONG IgnoreCase)
#define CdInitializeFileContext(IC, FC)
_In_ PFCB _In_ PCD_NAME _In_ BOOLEAN _Inout_ PFILE_ENUM_CONTEXT FileContext
BOOLEAN CdFindDirectory(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _In_ PCD_NAME Name, _In_ BOOLEAN IgnoreCase, _Inout_ PFILE_ENUM_CONTEXT FileContext)
#define CdCleanupDirContext(IC, DC)
FAST_IO_QUERY_BASIC_INFO CdFastQueryBasicInfo
VOID CdGenerate8dot3Name(_In_ PIRP_CONTEXT IrpContext, _In_ PUNICODE_STRING FileName, _In_ ULONG DirentOffset, _Out_writes_bytes_to_(BYTE_COUNT_8_DOT_3, *ShortByteCount) PWCHAR ShortFileName, _Out_ PUSHORT ShortByteCount)
#define CdCleanupCompoundPathEntry(IC, CP)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
BOOLEAN CdVerifyFcbOperation(_In_opt_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb)
VOID CdLookupDirent(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _In_ ULONG DirentOffset, _Out_ PDIRENT_ENUM_CONTEXT DirContext)
#define CdCleanupDirent(IC, D)
#define CdInitializeDirContext(IC, DC)
#define CdAcquireFileShared(IC, F)
enum _TYPE_OF_OPEN TYPE_OF_OPEN
_In_ PFCB _In_ PDIRENT_ENUM_CONTEXT DirContext
VOID CdLookupPathEntry(_In_ PIRP_CONTEXT IrpContext, _In_ ULONG PathEntryOffset, _In_ ULONG Ordinal, _In_ BOOLEAN VerifyBounds, _Inout_ PCOMPOUND_PATH_ENTRY CompoundPathEntry)
VOID CdCleanupFileContext(_In_ PIRP_CONTEXT IrpContext, _In_ PFILE_ENUM_CONTEXT FileContext)
BOOLEAN CdIs8dot3Name(_In_ PIRP_CONTEXT IrpContext, _In_ UNICODE_STRING FileName)
#define CdUnlockFcb(IC, F)
#define CdRaiseStatus(IC, S)
#define FCB_STATE_INITIALIZED
#define CdFidIsDirectory(I)
#define CCB_FLAG_OPEN_WITH_VERSION
#define CdQueryFidDirentOffset(I)
#define CCB_FLAG_OPEN_BY_ID
#define CdQueryFidPathTableOffset(I)
#define _Requires_lock_held_(lock)
VOID CdQueryInternalInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _Out_ PFILE_INTERNAL_INFORMATION Buffer, _Inout_ PULONG Length)
VOID CdQueryPositionInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFILE_OBJECT FileObject, _Out_ PFILE_POSITION_INFORMATION Buffer, _Inout_ PULONG Length)
VOID CdQueryBasicInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _Out_ PFILE_BASIC_INFORMATION Buffer, _Inout_ PULONG Length)
VOID CdQueryStandardInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _Out_ PFILE_STANDARD_INFORMATION Buffer, _Inout_ PULONG Length)
VOID CdQueryNetworkInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _Out_ PFILE_NETWORK_OPEN_INFORMATION Buffer, _Inout_ PULONG Length)
VOID CdQueryEaInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _Out_ PFILE_EA_INFORMATION Buffer, _Inout_ PULONG Length)
NTSTATUS CdQueryNameInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFILE_OBJECT FileObject, _Out_ PFILE_NAME_INFORMATION Buffer, _Inout_ PULONG Length)
_In_ PIO_STACK_LOCATION IrpSp
#define _IRQL_requires_same_
#define ExAcquireResourceSharedLite(res, wait)
@ FilePositionInformation
@ FileInternalInformation
@ FileAlternateNameInformation
@ FileNetworkOpenInformation
struct _FILE_NETWORK_OPEN_INFORMATION FILE_NETWORK_OPEN_INFORMATION
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
struct _FILE_INTERNAL_INFORMATION FILE_INTERNAL_INFORMATION
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
struct _FILE_EA_INFORMATION FILE_EA_INFORMATION
#define FILE_STANDARD_INFORMATION
#define FILE_BASIC_INFORMATION
static OUT PIO_STATUS_BLOCK OUT PVOID IN ULONG IN FILE_INFORMATION_CLASS FileInformationClass
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
#define _Function_class_(n)
struct _FILE_POSITION_INFORMATION FILE_POSITION_INFORMATION
struct _FILE_ALIGNMENT_INFORMATION FILE_ALIGNMENT_INFORMATION
#define FILE_ATTRIBUTE_DIRECTORY
#define UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG _In_ ULONG Length
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
struct _FILE_ACCESS_INFORMATION FILE_ACCESS_INFORMATION
#define FileStandardInformation
#define STATUS_BUFFER_OVERFLOW
union _IO_STACK_LOCATION::@1579 Parameters
struct _IO_STACK_LOCATION::@3978::@3987 QueryFile
struct _FCB * RootIndexFcb
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_DISK_CORRUPT_ERROR
#define STATUS_OBJECT_NAME_NOT_FOUND
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
_In_ WDFDPC _In_ BOOLEAN Wait
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
#define FO_NO_INTERMEDIATE_BUFFERING