Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qfilesystemengine_win.cpp File Reference

(c0411eac4bc7cfb60fed98c05bd8beac77a18641)

#include "qfilesystemengine_p.h"
#include "qoperatingsystemversion.h"
#include "qplatformdefs.h"
#include "qsysinfo.h"
#include "qscopeguard.h"
#include "private/qabstractfileengine_p.h"
#include "private/qfiledevice_p.h"
#include "private/qfsfileengine_p.h"
#include <private/qsystemlibrary_p.h>
#include <qdebug.h>
#include "qdir.h"
#include "qdatetime.h"
#include "qfile.h"
#include "qvarlengtharray.h"
#include "qt_windows.h"
#include "qstring.h"
#include <sys/types.h>
#include <direct.h>
#include <winioctl.h>
#include <objbase.h>
#include <shlobj.h>
#include <shobjidl.h>
#include <shellapi.h>
#include <lm.h>
#include <accctrl.h>
#include <initguid.h>
#include <ctype.h>
#include <limits.h>
#include <security.h>
#include <cstdio>
#include <QtCore/private/qfunctions_win_p.h>
#include <QtCore/private/wcharhelpers_win_p.h>
Include dependency graph for qfilesystemengine_win.cpp:

Go to the source code of this file.

Classes

struct  _REPARSE_DATA_BUFFER
class  FileOperationProgressSink

Macros

#define SECURITY_WIN32
#define SPI_GETPLATFORMTYPE   257
#define PATH_MAX   FILENAME_MAX
#define _INTPTR_T_DEFINED
#define INVALID_FILE_ATTRIBUTES   (DWORD (-1))
#define REPARSE_DATA_BUFFER_HEADER_SIZE   FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer)
#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE   16384
#define IO_REPARSE_TAG_SYMLINK   (0xA000000CL)
#define FSCTL_GET_REPARSE_POINT    CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)

Typedefs

typedef INT_PTR intptr_t
typedef struct _REPARSE_DATA_BUFFER REPARSE_DATA_BUFFER
typedef struct _REPARSE_DATA_BUFFERPREPARSE_DATA_BUFFER

Functions

QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED bool qEnableNtfsPermissionChecks () noexcept
bool qDisableNtfsPermissionChecks () noexcept
bool qAreNtfsPermissionChecksEnabled () noexcept
 [raii]
static bool toFileTime (const QDateTime &date, FILETIME *fileTime)
static QString readSymLink (const QFileSystemEntry &link)
static QString readLink (const QFileSystemEntry &link)
static bool uncShareExists (const QString &server)
static bool getFindData (QString path, WIN32_FIND_DATA &findData)
static QByteArray fileId (HANDLE handle)
QByteArray fileIdWin8 (HANDLE handle)
static bool tryDriveUNCFallback (const QFileSystemEntry &fname, QFileSystemMetaData &data)
static bool tryFindFallback (const QFileSystemEntry &fname, QFileSystemMetaData &data)
static bool mkDir (const QString &path, SECURITY_ATTRIBUTES *securityAttributes, DWORD *lastError=nullptr)
static bool rmDir (const QString &path)
static bool createDirectoryWithParents (const QString &nativeName, SECURITY_ATTRIBUTES *securityAttributes, bool shouldMkdirFirst=true)
static QDateTime fileTimeToQDateTime (const FILETIME *time)

Variables

static QBasicAtomicInt qt_ntfs_permission_lookup_v2 = Q_BASIC_ATOMIC_INITIALIZER(0)

Macro Definition Documentation

◆ _INTPTR_T_DEFINED

#define _INTPTR_T_DEFINED

Definition at line 64 of file qfilesystemengine_win.cpp.

◆ FSCTL_GET_REPARSE_POINT

#define FSCTL_GET_REPARSE_POINT    CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)

Definition at line 107 of file qfilesystemengine_win.cpp.

◆ INVALID_FILE_ATTRIBUTES

#define INVALID_FILE_ATTRIBUTES   (DWORD (-1))

Definition at line 68 of file qfilesystemengine_win.cpp.

◆ IO_REPARSE_TAG_SYMLINK

#define IO_REPARSE_TAG_SYMLINK   (0xA000000CL)

Definition at line 104 of file qfilesystemengine_win.cpp.

◆ MAXIMUM_REPARSE_DATA_BUFFER_SIZE

#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE   16384

Definition at line 101 of file qfilesystemengine_win.cpp.

◆ PATH_MAX

#define PATH_MAX   FILENAME_MAX

Definition at line 51 of file qfilesystemengine_win.cpp.

◆ REPARSE_DATA_BUFFER_HEADER_SIZE

#define REPARSE_DATA_BUFFER_HEADER_SIZE   FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer)

Definition at line 97 of file qfilesystemengine_win.cpp.

◆ SECURITY_WIN32

#define SECURITY_WIN32

Definition at line 38 of file qfilesystemengine_win.cpp.

◆ SPI_GETPLATFORMTYPE

#define SPI_GETPLATFORMTYPE   257

Definition at line 47 of file qfilesystemengine_win.cpp.

Typedef Documentation

◆ intptr_t

typedef INT_PTR intptr_t

Definition at line 61 of file qfilesystemengine_win.cpp.

◆ PREPARSE_DATA_BUFFER

◆ REPARSE_DATA_BUFFER

Function Documentation

◆ createDirectoryWithParents()

bool createDirectoryWithParents ( const QString & nativeName,
SECURITY_ATTRIBUTES * securityAttributes,
bool shouldMkdirFirst = true )
static

Definition at line 1492 of file qfilesystemengine_win.cpp.

◆ fileId()

QByteArray fileId ( HANDLE handle)
inlinestatic

Definition at line 1011 of file qfilesystemengine_win.cpp.

◆ fileIdWin8()

QByteArray fileIdWin8 ( HANDLE handle)

Definition at line 1026 of file qfilesystemengine_win.cpp.

◆ fileTimeToQDateTime()

QDateTime fileTimeToQDateTime ( const FILETIME * time)
inlinestatic

Definition at line 1893 of file qfilesystemengine_win.cpp.

◆ getFindData()

bool getFindData ( QString path,
WIN32_FIND_DATA & findData )
inlinestatic

Definition at line 750 of file qfilesystemengine_win.cpp.

◆ mkDir()

bool mkDir ( const QString & path,
SECURITY_ATTRIBUTES * securityAttributes,
DWORD * lastError = nullptr )
inlinestatic

Definition at line 1445 of file qfilesystemengine_win.cpp.

◆ qAreNtfsPermissionChecksEnabled()

bool qAreNtfsPermissionChecksEnabled ( )
related

[raii]

[free-funcs]

Definition at line 411 of file qfilesystemengine_win.cpp.

◆ qDisableNtfsPermissionChecks()

bool qDisableNtfsPermissionChecks ( )
related

Definition at line 404 of file qfilesystemengine_win.cpp.

◆ qEnableNtfsPermissionChecks()

QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED bool qEnableNtfsPermissionChecks ( )
related

Definition at line 397 of file qfilesystemengine_win.cpp.

◆ readLink()

QString readLink ( const QFileSystemEntry & link)
static

Definition at line 699 of file qfilesystemengine_win.cpp.

◆ readSymLink()

QString readSymLink ( const QFileSystemEntry & link)
static

Definition at line 648 of file qfilesystemengine_win.cpp.

◆ rmDir()

bool rmDir ( const QString & path)
inlinestatic

Definition at line 1458 of file qfilesystemengine_win.cpp.

◆ toFileTime()

bool toFileTime ( const QDateTime & date,
FILETIME * fileTime )
inlinestatic

Definition at line 611 of file qfilesystemengine_win.cpp.

◆ tryDriveUNCFallback()

bool tryDriveUNCFallback ( const QFileSystemEntry & fname,
QFileSystemMetaData & data )
static

Definition at line 1287 of file qfilesystemengine_win.cpp.

References uncShareExists().

Here is the call graph for this function:

◆ tryFindFallback()

bool tryFindFallback ( const QFileSystemEntry & fname,
QFileSystemMetaData & data )
static

Definition at line 1339 of file qfilesystemengine_win.cpp.

◆ uncShareExists()

bool uncShareExists ( const QString & server)
static

Definition at line 737 of file qfilesystemengine_win.cpp.

Referenced by tryDriveUNCFallback().

Here is the caller graph for this function:

Variable Documentation

◆ qt_ntfs_permission_lookup_v2

QBasicAtomicInt qt_ntfs_permission_lookup_v2 = Q_BASIC_ATOMIC_INITIALIZER(0)
static

Definition at line 392 of file qfilesystemengine_win.cpp.