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

(b6ab002b3b287455399649ae6a70e94278574a53)

#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 63 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 106 of file qfilesystemengine_win.cpp.

◆ INVALID_FILE_ATTRIBUTES

#define INVALID_FILE_ATTRIBUTES   (DWORD (-1))

Definition at line 67 of file qfilesystemengine_win.cpp.

◆ IO_REPARSE_TAG_SYMLINK

#define IO_REPARSE_TAG_SYMLINK   (0xA000000CL)

Definition at line 103 of file qfilesystemengine_win.cpp.

◆ MAXIMUM_REPARSE_DATA_BUFFER_SIZE

#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE   16384

Definition at line 100 of file qfilesystemengine_win.cpp.

◆ PATH_MAX

#define PATH_MAX   FILENAME_MAX

Definition at line 50 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 96 of file qfilesystemengine_win.cpp.

◆ SECURITY_WIN32

#define SECURITY_WIN32

Definition at line 37 of file qfilesystemengine_win.cpp.

◆ SPI_GETPLATFORMTYPE

#define SPI_GETPLATFORMTYPE   257

Definition at line 46 of file qfilesystemengine_win.cpp.

Typedef Documentation

◆ intptr_t

typedef INT_PTR intptr_t

Definition at line 60 of file qfilesystemengine_win.cpp.

◆ PREPARSE_DATA_BUFFER

◆ REPARSE_DATA_BUFFER

Function Documentation

◆ createDirectoryWithParents()

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

Definition at line 1491 of file qfilesystemengine_win.cpp.

◆ fileId()

static QByteArray fileId ( HANDLE handle)
inlinestatic

Definition at line 1010 of file qfilesystemengine_win.cpp.

◆ fileIdWin8()

QByteArray fileIdWin8 ( HANDLE handle)

Definition at line 1025 of file qfilesystemengine_win.cpp.

◆ fileTimeToQDateTime()

static QDateTime fileTimeToQDateTime ( const FILETIME * time)
inlinestatic

Definition at line 1884 of file qfilesystemengine_win.cpp.

◆ getFindData()

static bool getFindData ( QString path,
WIN32_FIND_DATA & findData )
inlinestatic

Definition at line 749 of file qfilesystemengine_win.cpp.

◆ mkDir()

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

Definition at line 1444 of file qfilesystemengine_win.cpp.

◆ qAreNtfsPermissionChecksEnabled()

bool qAreNtfsPermissionChecksEnabled ( )
related

[raii]

[free-funcs]

Definition at line 410 of file qfilesystemengine_win.cpp.

◆ qDisableNtfsPermissionChecks()

bool qDisableNtfsPermissionChecks ( )
related

Definition at line 403 of file qfilesystemengine_win.cpp.

◆ qEnableNtfsPermissionChecks()

QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED bool qEnableNtfsPermissionChecks ( )
related

Definition at line 396 of file qfilesystemengine_win.cpp.

◆ readLink()

static QString readLink ( const QFileSystemEntry & link)
static

Definition at line 698 of file qfilesystemengine_win.cpp.

◆ readSymLink()

static QString readSymLink ( const QFileSystemEntry & link)
static

Definition at line 647 of file qfilesystemengine_win.cpp.

◆ rmDir()

static bool rmDir ( const QString & path)
inlinestatic

Definition at line 1457 of file qfilesystemengine_win.cpp.

◆ toFileTime()

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

Definition at line 610 of file qfilesystemengine_win.cpp.

◆ tryDriveUNCFallback()

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

Definition at line 1286 of file qfilesystemengine_win.cpp.

References uncShareExists().

+ Here is the call graph for this function:

◆ tryFindFallback()

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

Definition at line 1338 of file qfilesystemengine_win.cpp.

◆ uncShareExists()

static bool uncShareExists ( const QString & server)
static

Definition at line 736 of file qfilesystemengine_win.cpp.

Referenced by tryDriveUNCFallback().

+ Here is the caller graph for this function:

Variable Documentation

◆ qt_ntfs_permission_lookup_v2

static QBasicAtomicInt qt_ntfs_permission_lookup_v2 = Q_BASIC_ATOMIC_INITIALIZER(0)
static

Definition at line 391 of file qfilesystemengine_win.cpp.