11{
12
13
15 {
20 {
21 struct
22 {
30 struct
31 {
38 struct
39 {
44
50
52#ifdef UNICODE
53 #define TargetFullPathW TargetFullPath
54#else
56#endif
59
60
61
62
63
69#endif
71 {
73 }
74
75
76
78 {
81 }
82
83
87 {
88
92 + TargetLen +
sizeof(
WCHAR));
94
95
99 Data->MountPointReparseBuffer.SubstituteNameOffset = 0;
100 Data->MountPointReparseBuffer.SubstituteNameLength = TargetNTPath.
Length;
101 wcscpy(
Data->MountPointReparseBuffer.PathBuffer,
103 Data->MountPointReparseBuffer.PrintNameOffset = TargetNTPath.
Length +
sizeof(
WCHAR);
104 Data->MountPointReparseBuffer.PrintNameLength = (
USHORT)TargetLen;
106 +
Data->MountPointReparseBuffer.PrintNameOffset),
107 TargetFullPathW);
110 {
111
115 }
117 }
121}
BOOL WINAPI DeviceIoControl(IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer OPTIONAL, IN DWORD nInBufferSize OPTIONAL, OUT LPVOID lpOutBuffer OPTIONAL, IN DWORD nOutBufferSize OPTIONAL, OUT LPDWORD lpBytesReturned OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
#define INVALID_HANDLE_VALUE
#define MultiByteToWideChar
UNICODE_STRING * PUNICODE_STRING
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define FILE_FLAG_BACKUP_SEMANTICS
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
NTSYSAPI BOOLEAN NTAPI RtlDosPathNameToNtPathName_U(_In_opt_z_ PCWSTR DosPathName, _Out_ PUNICODE_STRING NtPathName, _Out_opt_ PCWSTR *NtFileNamePart, _Out_opt_ PRTL_RELATIVE_NAME_U DirectoryInfo)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define FSCTL_SET_REPARSE_POINT
struct _REPARSE_DATA_BUFFER REPARSE_DATA_BUFFER
struct _REPARSE_DATA_BUFFER * PREPARSE_DATA_BUFFER
USHORT SubstituteNameLength
_ANONYMOUS_UNION union _REPARSE_DATA_BUFFER::@4134 DUMMYUNIONNAME
struct _REPARSE_DATA_BUFFER::@314::@318 GenericReparseBuffer
USHORT SubstituteNameOffset
struct _REPARSE_DATA_BUFFER::@314::@317 MountPointReparseBuffer
struct _REPARSE_DATA_BUFFER::@314::@316 SymbolicLinkReparseBuffer
#define FIELD_OFFSET(t, f)
#define IO_REPARSE_TAG_MOUNT_POINT