diff --git a/drivers/filesystems/ntfs/fcb.c b/drivers/filesystems/ntfs/fcb.c index 2ff5ac5395f..7badedba171 100644 --- a/drivers/filesystems/ntfs/fcb.c +++ b/drivers/filesystems/ntfs/fcb.c @@ -143,6 +143,12 @@ NtfsFCBIsCompressed(PNTFS_FCB Fcb) return ((Fcb->Entry.FileAttributes & NTFS_FILE_TYPE_COMPRESSED) == NTFS_FILE_TYPE_COMPRESSED); } +BOOLEAN +NtfsFCBIsEncrypted(PNTFS_FCB Fcb) +{ + return ((Fcb->Entry.FileAttributes & NTFS_FILE_TYPE_ENCRYPTED) == NTFS_FILE_TYPE_ENCRYPTED); +} + BOOLEAN NtfsFCBIsRoot(PNTFS_FCB Fcb) { diff --git a/drivers/filesystems/ntfs/ntfs.h b/drivers/filesystems/ntfs/ntfs.h index 38107a808a9..b5bb0645fa7 100644 --- a/drivers/filesystems/ntfs/ntfs.h +++ b/drivers/filesystems/ntfs/ntfs.h @@ -935,6 +935,9 @@ NtfsFCBIsReparsePoint(PNTFS_FCB Fcb); BOOLEAN NtfsFCBIsCompressed(PNTFS_FCB Fcb); +BOOLEAN +NtfsFCBIsEncrypted(PNTFS_FCB Fcb); + BOOLEAN NtfsFCBIsRoot(PNTFS_FCB Fcb); diff --git a/drivers/filesystems/ntfs/rw.c b/drivers/filesystems/ntfs/rw.c index a060adbb411..f5bac1e9c4e 100644 --- a/drivers/filesystems/ntfs/rw.c +++ b/drivers/filesystems/ntfs/rw.c @@ -79,6 +79,13 @@ NtfsReadFile(PDEVICE_EXTENSION DeviceExt, return STATUS_NOT_IMPLEMENTED; } + if (NtfsFCBIsEncrypted(Fcb)) + { + DPRINT1("Encrypted file!\n"); + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; + } + FileRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (FileRecord == NULL) {