23 #define BugCheckFileId (CDFS_BUG_CHECK_FILEINFO) 79 CdQueryAlternateNameInfo (
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) {
1235 CdQueryAlternateNameInfo (
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;
VOID CdCleanupFileContext(_In_ PIRP_CONTEXT IrpContext, _In_ PFILE_ENUM_CONTEXT FileContext)
#define FCB_STATE_INITIALIZED
struct _FILE_INTERNAL_INFORMATION FILE_INTERNAL_INFORMATION
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define FsRtlEnterFileSystem
#define CdQueryFidPathTableOffset(I)
#define FsRtlExitFileSystem
BOOLEAN CdIs8dot3Name(_In_ PIRP_CONTEXT IrpContext, _In_ UNICODE_STRING FileName)
#define CdReleaseFile(IC, F)
IN BOOLEAN OUT PSTR Buffer
FAST_IO_QUERY_BASIC_INFO CdFastQueryBasicInfo
#define UNREFERENCED_PARAMETER(P)
#define STATUS_INVALID_PARAMETER
_In_ WDFDPC _In_ BOOLEAN Wait
FAST_IO_QUERY_STANDARD_INFO CdFastQueryStdInfo
#define CdInitializeCompoundPathEntry(IC, CP)
FAST_IO_QUERY_NETWORK_OPEN_INFO CdFastQueryNetworkInfo
VOID CdUpdateDirentName(_In_ PIRP_CONTEXT IrpContext, _Inout_ PDIRENT Dirent, _In_ ULONG IgnoreCase)
#define CdCleanupDirContext(IC, DC)
struct _FCB * RootIndexFcb
static OUT PIO_STATUS_BLOCK OUT PVOID IN ULONG IN FILE_INFORMATION_CLASS FileInformationClass
struct _FILE_ACCESS_INFORMATION FILE_ACCESS_INFORMATION
#define ASSERT_FILE_OBJECT(FO)
#define FO_NO_INTERMEDIATE_BUFFERING
struct _FILE_POSITION_INFORMATION FILE_POSITION_INFORMATION
#define CdAcquireFileShared(IC, F)
VOID CdQueryPositionInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFILE_OBJECT FileObject, _Out_ PFILE_POSITION_INFORMATION Buffer, _Inout_ PULONG Length)
struct _FILE_NETWORK_OPEN_INFORMATION FILE_NETWORK_OPEN_INFORMATION
#define CdUnlockFcb(IC, F)
_In_ PDEVICE_OBJECT DeviceObject
_Function_class_(FAST_IO_QUERY_BASIC_INFO)
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN TypeOfOpen
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
TYPE_OF_OPEN CdFastDecodeFileObject(_In_ PFILE_OBJECT FileObject, _Out_ PFCB *Fcb)
VOID CdCompleteRequest(_Inout_opt_ PIRP_CONTEXT IrpContext, _Inout_opt_ PIRP Irp, _In_ NTSTATUS Status)
VOID CdQueryEaInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _Out_ PFILE_EA_INFORMATION Buffer, _Inout_ PULONG Length)
VOID CdUpdatePathEntryName(_In_ PIRP_CONTEXT IrpContext, _Inout_ PPATH_ENTRY PathEntry, _In_ BOOLEAN IgnoreCase)
_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 _IRQL_requires_same_
#define CdQueryFidDirentOffset(I)
#define CCB_FLAG_OPEN_WITH_VERSION
_In_ PFCB _In_ PCD_NAME _In_ BOOLEAN _Inout_ PFILE_ENUM_CONTEXT FileContext
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
#define CdFidIsDirectory(I)
#define FILE_ATTRIBUTE_DIRECTORY
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
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)
CdVerifyOrCreateDirStreamFile(IrpContext, Fcb)
#define CdInitializeDirContext(IC, DC)
struct _FILE_ALIGNMENT_INFORMATION FILE_ALIGNMENT_INFORMATION
_In_ PFCB _In_ PDIRENT_ENUM_CONTEXT DirContext
#define CdInitializeDirent(IC, D)
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
struct _FILE_EA_INFORMATION FILE_EA_INFORMATION
#define CCB_FLAG_OPEN_BY_ID
VOID CdQueryStandardInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _Out_ PFILE_STANDARD_INFORMATION Buffer, _Inout_ PULONG Length)
VOID CdQueryBasicInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _Out_ PFILE_BASIC_INFORMATION Buffer, _Inout_ PULONG Length)
#define FILE_STANDARD_INFORMATION
_Requires_lock_held_(_Global_critical_region_)
enum _TYPE_OF_OPEN TYPE_OF_OPEN
_Inout_ PFILE_OBJECT _In_ TYPE_OF_OPEN PFCB _In_opt_ PCCB Ccb
BOOLEAN CdFindDirectory(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _In_ PCD_NAME Name, _In_ BOOLEAN IgnoreCase, _Inout_ PFILE_ENUM_CONTEXT FileContext)
#define CdCleanupCompoundPathEntry(IC, CP)
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
#define STATUS_OBJECT_NAME_NOT_FOUND
#define STATUS_BUFFER_OVERFLOW
#define CdRaiseStatus(IC, S)
_In_ PIO_STACK_LOCATION IrpSp
VOID CdQueryInternalInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _Out_ PFILE_INTERNAL_INFORMATION Buffer, _Inout_ PULONG Length)
VOID CdQueryNetworkInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _Out_ PFILE_NETWORK_OPEN_INFORMATION Buffer, _Inout_ PULONG Length)
NTSTATUS CdQueryNameInfo(_In_ PIRP_CONTEXT IrpContext, _In_ PFILE_OBJECT FileObject, _Out_ PFILE_NAME_INFORMATION Buffer, _Inout_ PULONG Length)
BOOLEAN CdVerifyFcbOperation(_In_opt_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb)
#define BYTE_COUNT_8_DOT_3
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
#define FileStandardInformation
VOID CdLookupPathEntry(_In_ PIRP_CONTEXT IrpContext, _In_ ULONG PathEntryOffset, _In_ ULONG Ordinal, _In_ BOOLEAN VerifyBounds, _Inout_ PCOMPOUND_PATH_ENTRY CompoundPathEntry)
#define STATUS_DISK_CORRUPT_ERROR
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
_In_ PFCB _In_ PDIRENT_ENUM_CONTEXT _Inout_ PDIRENT Dirent
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
#define CdInitializeFileContext(IC, FC)
#define CdCleanupDirent(IC, D)
_In_ PFCB _In_ PCD_NAME _In_ BOOLEAN _Inout_ PCOMPOUND_PATH_ENTRY CompoundPathEntry
VOID CdLookupDirent(_In_ PIRP_CONTEXT IrpContext, _In_ PFCB Fcb, _In_ ULONG DirentOffset, _Out_ PDIRENT_ENUM_CONTEXT DirContext)
#define FILE_BASIC_INFORMATION