#include <uLib/_Internal.h>
#include <uLib/UtilFunc.h>
#include <uLib/StrFunc.h>
#include <uLib/Debug.h>
#include <WinIoCtl.h>
Go to the source code of this file.
|
#define | CTL_CODE(DeviceType, Function, Method, Access) |
|
#define | FILE_DEVICE_FILE_SYSTEM 0x00000009 |
|
#define | METHOD_BUFFERED 0 |
|
#define | FILE_ANY_ACCESS 0 |
|
#define | FSCTL_GET_REPARSE_POINT CTL_CODE( FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS ) /* REPARSE_DATA_BUFFER */ |
|
#define | FSCTL_SET_REPARSE_POINT CTL_CODE( FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS ) /* REPARSE_DATA_BUFFER */ |
|
#define | FSCTL_DELETE_REPARSE_POINT CTL_CODE( FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_SPECIAL_ACCESS ) /* REPARSE_DATA_BUFFER */ |
|
#define | REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET( REPARSE_DATA_BUFFER, GenericReparseBuffer ) |
|
#define | SYMLINK_FLAG_RELATIVE 0x00000001 |
|
#define | IO_REPARSE_TAG_IIS_CACHE 0xA0000010 |
|
#define | IO_REPARSE_TAG_VALID_VALUES 0xF000FFFF |
|
#define | IsReparseTagValid(_tag) |
|
#define | MAX_REPARSE_BUFFER MAXIMUM_REPARSE_DATA_BUFFER_SIZE |
|
#define | SET_WRPD_PRIVILEGE 1 |
|
#define | FA_REPARSE_DIR (FILE_ATTRIBUTE_DIRECTORY| FILE_ATTRIBUTE_REPARSE_POINT) |
|
|
HANDLE | _OpenReparsePoint (CSTR LinkName, ACCESS_MASK Access, DWORD Share) |
|
bool | _CanReparse (CSTR PathName) |
|
ULARGE_INTEGER | _GetReparseData (HANDLE hObj, PVOID Buffer, DWORD cbBuffer) |
|
bool | _SetReparseData (HANDLE hObj, PREPARSE_DATA_BUFFER pRpd, OPTIN DWORD cbRpd=0) |
|
ULARGE_INTEGER | GetAttributeAndReparseTag (CSTR PathName) |
|
bool | IsSymLink (CSTR PathName) |
|
bool | IsSymLinkDir (CSTR PathName) |
|
bool | IsJunctionDir (CSTR PathName) |
|
bool | IsVolumeMountPoint (CSTR PathName, TSTR VolNameBuf, UINT ccBuf) |
|
bool | RemoveReparseData (CSTR PathName) |
|
bool | SetCustomReparseData (CSTR PathName, ULONG Tag, REFGUID Guid, PVOID pData, WORD cbData) |
|
bool | CreateJunctionDir (CSTR LinkName, CSTR TargetName, CSTR PrintName) |
|
bool | DeleteJunctionDir (CSTR DirName) |
|
bool | CreateSymLink (CSTR LinkName, CSTR TargetName, CSTR PrintName) |
|
INT | GetReparseTarget (CSTR LinkName, TSTR SubstPath, UINT cchSubst, TSTR PrintName, UINT cchPrint, PULARGE_INTEGER AttrTag) |
|
◆ REPARSE_DATA_BUFFER
struct REPARSE_DATA_BUFFER |
◆ REPARSE_DATA_BUFFER.__unnamed__
union REPARSE_DATA_BUFFER.__unnamed__ |
◆ REPARSE_DATA_BUFFER.__unnamed__.SymbolicLinkReparseBuffer
struct REPARSE_DATA_BUFFER.__unnamed__.SymbolicLinkReparseBuffer |
Definition at line 83 of file ReparsePnt.cpp.
Class Members |
USHORT |
SubstituteNameOffset |
|
USHORT |
SubstituteNameLength |
|
USHORT |
PrintNameOffset |
|
USHORT |
PrintNameLength |
|
ULONG |
Flags |
|
WCHAR |
PathBuffer[1] |
|
◆ REPARSE_DATA_BUFFER.__unnamed__.MountPointReparseBuffer
struct REPARSE_DATA_BUFFER.__unnamed__.MountPointReparseBuffer |
Definition at line 91 of file ReparsePnt.cpp.
Class Members |
USHORT |
SubstituteNameOffset |
|
USHORT |
SubstituteNameLength |
|
USHORT |
PrintNameOffset |
|
USHORT |
PrintNameLength |
|
WCHAR |
PathBuffer[1] |
|
◆ REPARSE_DATA_BUFFER.__unnamed__.GenericReparseBuffer
struct REPARSE_DATA_BUFFER.__unnamed__.GenericReparseBuffer |
◆ CTL_CODE
#define CTL_CODE |
( |
|
DeviceType, |
|
|
|
Function, |
|
|
|
Method, |
|
|
|
Access |
|
) |
| |
Value:( \
((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
)
Definition at line 50 of file ReparsePnt.cpp.
◆ FILE_DEVICE_FILE_SYSTEM
#define FILE_DEVICE_FILE_SYSTEM 0x00000009 |
◆ METHOD_BUFFERED
#define METHOD_BUFFERED 0 |
◆ FILE_ANY_ACCESS
#define FILE_ANY_ACCESS 0 |
◆ FSCTL_GET_REPARSE_POINT
◆ FSCTL_SET_REPARSE_POINT
◆ FSCTL_DELETE_REPARSE_POINT
◆ REPARSE_DATA_BUFFER_HEADER_SIZE
#define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET( REPARSE_DATA_BUFFER, GenericReparseBuffer ) |
◆ SYMLINK_FLAG_RELATIVE
#define SYMLINK_FLAG_RELATIVE 0x00000001 |
◆ IO_REPARSE_TAG_IIS_CACHE
#define IO_REPARSE_TAG_IIS_CACHE 0xA0000010 |
◆ IO_REPARSE_TAG_VALID_VALUES
#define IO_REPARSE_TAG_VALID_VALUES 0xF000FFFF |
◆ IsReparseTagValid
#define IsReparseTagValid |
( |
|
_tag | ) |
|
Value:( \
&& ((_tag) > IO_REPARSE_TAG_RESERVED_RANGE) \
)
#define IO_REPARSE_TAG_VALID_VALUES
Definition at line 115 of file ReparsePnt.cpp.
◆ MAX_REPARSE_BUFFER
#define MAX_REPARSE_BUFFER MAXIMUM_REPARSE_DATA_BUFFER_SIZE |
◆ SET_WRPD_PRIVILEGE
#define SET_WRPD_PRIVILEGE 1 |
◆ FA_REPARSE_DIR
#define FA_REPARSE_DIR (FILE_ATTRIBUTE_DIRECTORY| FILE_ATTRIBUTE_REPARSE_POINT) |
◆ eCnsFlags
◆ _OpenReparsePoint()
HANDLE _OpenReparsePoint |
( |
CSTR |
LinkName, |
|
|
ACCESS_MASK |
Access, |
|
|
DWORD |
Share |
|
) |
| |
◆ _CanReparse()
bool _CanReparse |
( |
CSTR |
PathName | ) |
|
◆ _GetReparseData()
ULARGE_INTEGER _GetReparseData |
( |
HANDLE |
hObj, |
|
|
PVOID |
Buffer, |
|
|
DWORD |
cbBuffer |
|
) |
| |
◆ _SetReparseData()
bool _SetReparseData |
( |
HANDLE |
hObj, |
|
|
PREPARSE_DATA_BUFFER |
pRpd, |
|
|
OPTIN DWORD |
cbRpd = 0 |
|
) |
| |
◆ SetCustomReparseData()
bool SetCustomReparseData |
( |
CSTR |
PathName, |
|
|
ULONG |
Tag, |
|
|
REFGUID |
Guid, |
|
|
PVOID |
pData, |
|
|
WORD |
cbData |
|
) |
| |
◆ GetReparseTarget()
INT GetReparseTarget |
( |
CSTR |
LinkName, |
|
|
TSTR |
SubstPath, |
|
|
UINT |
cchSubst, |
|
|
TSTR |
PrintName, |
|
|
UINT |
cchPrint, |
|
|
PULARGE_INTEGER |
AttrTag |
|
) |
| |