This commit is contained in:
DavidXanatos 2024-03-16 14:09:32 +01:00
parent 826dea2443
commit cfa92da854
4 changed files with 23 additions and 10 deletions

View File

@ -4,6 +4,13 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## [1.13.4 / 5.68.4] - 2024-02-??
### Fixed
- fixed issue with symlinks related to startmenu folders
## [1.13.3 / 5.68.3] - 2024-03-16
### Added

View File

@ -21,8 +21,8 @@
#ifndef _MY_VERSION_H
#define _MY_VERSION_H
#define MY_VERSION_BINARY 5,68,3
#define MY_VERSION_STRING "5.68.3"
#define MY_VERSION_BINARY 5,68,4
#define MY_VERSION_STRING "5.68.4"
#define MY_ABI_VERSION 0x56800
// These #defines are used by either Resource Compiler or NSIS installer

View File

@ -919,7 +919,7 @@ _FX NTSTATUS File_GetFileName(HANDLE FileHandle, ULONG NameLen, WCHAR* NameBuf)
//---------------------------------------------------------------------------
_FX NTSTATUS File_OpenForAddTempLink(HANDLE* handle, WCHAR *path, ULONG CreateOptions)
_FX NTSTATUS File_OpenForAddTempLink(HANDLE* handle, WCHAR *path, BOOLEAN OpenReparsePoint)
{
NTSTATUS status;
OBJECT_ATTRIBUTES objattrs;
@ -959,9 +959,10 @@ _FX NTSTATUS File_OpenForAddTempLink(HANDLE* handle, WCHAR *path, ULONG CreateOp
RtlInitUnicodeString(&objname, CopyPath);
status = pNtCreateFile(
handle, FILE_GENERIC_READ | SYNCHRONIZE, &objattrs,
handle, (OpenReparsePoint ? FILE_GENERIC_READ : FILE_READ_ATTRIBUTES) | SYNCHRONIZE, &objattrs,
&IoStatusBlock, NULL, 0, FILE_SHARE_VALID_FLAGS,
FILE_OPEN, CreateOptions,
FILE_OPEN,
FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT | (OpenReparsePoint ? FILE_OPEN_REPARSE_POINT : 0),
NULL, 0);
Dll_PopTlsNameBuffer(TlsData);
@ -979,10 +980,10 @@ _FX NTSTATUS File_OpenForAddTempLink(HANDLE* handle, WCHAR *path, ULONG CreateOp
RtlInitUnicodeString(&objname, path);
status = pNtCreateFile(
handle, FILE_GENERIC_READ | SYNCHRONIZE, &objattrs,
handle, (OpenReparsePoint ? FILE_GENERIC_READ : FILE_READ_ATTRIBUTES) | SYNCHRONIZE, &objattrs,
&IoStatusBlock, NULL, 0, FILE_SHARE_VALID_FLAGS,
FILE_OPEN,
CreateOptions,
FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT | (OpenReparsePoint ? FILE_OPEN_REPARSE_POINT : 0),
NULL, 0);
}
@ -1020,7 +1021,12 @@ _FX FILE_LINK *File_AddTempLink(WCHAR *path)
stop = TRUE;
newpath = NULL;
status = File_OpenForAddTempLink(&handle, path, FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT | FILE_OPEN_REPARSE_POINT);
/*if (wcsstr(path, L"Programme")) {
while (! IsDebuggerPresent()) { OutputDebugString(L"BREAK\n"); Sleep(500); }
__debugbreak();
}*/
status = File_OpenForAddTempLink(&handle, path, TRUE);
if (NT_SUCCESS(status)) {
@ -1086,7 +1092,7 @@ _FX FILE_LINK *File_AddTempLink(WCHAR *path)
if (!newpath) {
status = File_OpenForAddTempLink(&handle, path, FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT);
status = File_OpenForAddTempLink(&handle, path, FALSE);
if (NT_SUCCESS(status)) {

View File

@ -2,7 +2,7 @@
#define VERSION_MJR 1
#define VERSION_MIN 13
#define VERSION_REV 3
#define VERSION_REV 4
#define VERSION_UPD 0
#ifndef STR