#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 |
|
) |
| |