Rebase against f11563c65fa50e2f8b7e39cade34bb7a998b26f7.

This commit is contained in:
Zebediah Figura
2018-09-28 16:57:12 -05:00
parent 732d40058d
commit 761ca063a0
6 changed files with 74 additions and 110 deletions

View File

@@ -1,4 +1,4 @@
From 97655d49034368dde4a9565f15692ae9416b8bc8 Mon Sep 17 00:00:00 2001
From 204020058c317ff7180f3d637da102526751ac29 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Thu, 16 Jan 2014 20:56:49 -0700
Subject: [PATCH] ntdll: Add support for junction point creation.
@@ -6,20 +6,18 @@ Subject: [PATCH] ntdll: Add support for junction point creation.
---
dlls/ntdll/file.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++
dlls/ntdll/tests/file.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++++
include/Makefile.in | 1 +
include/ntifs.h | 50 ++++++++++++++++++++++++++
4 files changed, 236 insertions(+)
create mode 100644 include/ntifs.h
include/ddk/ntifs.h | 26 ++++++++++++++
3 files changed, 211 insertions(+)
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index c4528fe..8cd673a 100644
index 348a6b6..d34a28d 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -108,12 +108,14 @@
#include "winioctl.h"
#include "ddk/ntddk.h"
#include "ddk/ntddser.h"
+#include "ntifs.h"
+#include "ddk/ntifs.h"
WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
WINE_DECLARE_DEBUG_CHANNEL(winediag);
@@ -107,7 +105,7 @@ index c4528fe..8cd673a 100644
/**************************************************************************
* NtFsControlFile [NTDLL.@]
* ZwFsControlFile [NTDLL.@]
@@ -1738,11 +1810,30 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
@@ -1728,11 +1800,30 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
}
break;
}
@@ -139,18 +137,18 @@ index c4528fe..8cd673a 100644
return server_ioctl_file( handle, event, apc, apc_context, io, code,
in_buffer, in_size, out_buffer, out_size );
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index bf87000..198e415 100644
index 6d5ce72..60b32f5 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -37,6 +37,7 @@
#include "winternl.h"
@@ -38,6 +38,7 @@
#include "winuser.h"
#include "winioctl.h"
+#include "ntifs.h"
#include "winnls.h"
+#include "ddk/ntifs.h"
#ifndef IO_COMPLETION_ALL_ACCESS
#define IO_COMPLETION_ALL_ACCESS 0x001F0003
@@ -4335,6 +4336,98 @@ static void test_query_ea(void)
@@ -4540,6 +4541,98 @@ static void test_query_ea(void)
#undef EA_BUFFER_SIZE
}
@@ -249,53 +247,20 @@ index bf87000..198e415 100644
START_TEST(file)
{
HMODULE hkernel32 = GetModuleHandleA("kernel32.dll");
@@ -4401,4 +4494,5 @@ START_TEST(file)
@@ -4607,4 +4700,5 @@ START_TEST(file)
test_ioctl();
test_flush_buffers_file();
test_query_ea();
+ test_junction_points();
}
diff --git a/include/Makefile.in b/include/Makefile.in
index 78ab095..dc2bede 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -469,6 +469,7 @@ SOURCES = \
ntddstor.h \
ntdef.h \
ntdsapi.h \
+ ntifs.h \
ntlsa.h \
ntquery.h \
ntsecapi.h \
diff --git a/include/ntifs.h b/include/ntifs.h
new file mode 100644
index 0000000..85100fe
--- /dev/null
+++ b/include/ntifs.h
@@ -0,0 +1,50 @@
+/*
+ * Win32 definitions for Windows NT
+ *
+ * Copyright 2012 Erich Hoover
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_NTIFS_H
+#define __WINE_NTIFS_H
+
diff --git a/include/ddk/ntifs.h b/include/ddk/ntifs.h
index a1ed847..ccbd2a7 100644
--- a/include/ddk/ntifs.h
+++ b/include/ddk/ntifs.h
@@ -132,4 +132,30 @@ typedef struct _FS_FILTER_CALLBACKS
BOOLEAN WINAPI FsRtlIsNameInExpression(PUNICODE_STRING, PUNICODE_STRING, BOOLEAN, PWCH);
NTSTATUS WINAPI ObQueryNameString(PVOID,POBJECT_NAME_INFORMATION,ULONG,PULONG);
+typedef struct _REPARSE_DATA_BUFFER {
+ ULONG ReparseTag;
+ USHORT ReparseDataLength;
@@ -322,7 +287,7 @@ index 0000000..85100fe
+ };
+} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
+
+#endif /* __WINE_NTIFS_H */
#endif
--
1.9.1
2.7.4

View File

@@ -1,4 +1,4 @@
From 029fb5b0aa9c8ecb76da3aae5a2394072bf2fa33 Mon Sep 17 00:00:00 2001
From 1fe09b6fd1dd6fe7520932c2c226728301d5d099 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Thu, 16 Jan 2014 21:00:21 -0700
Subject: [PATCH] ntdll: Add support for deleting junction points.
@@ -6,11 +6,11 @@ Subject: [PATCH] ntdll: Add support for deleting junction points.
---
dlls/ntdll/file.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++
dlls/ntdll/tests/file.c | 22 +++++++++++++++++++++
include/ntifs.h | 12 ++++++++++++
include/ddk/ntifs.h | 12 ++++++++++++
3 files changed, 85 insertions(+)
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index 73f9de4..4594c57 100644
index 66cc16a..9b8d4c8 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -1775,6 +1775,41 @@ cleanup:
@@ -55,7 +55,7 @@ index 73f9de4..4594c57 100644
/**************************************************************************
* NtFsControlFile [NTDLL.@]
* ZwFsControlFile [NTDLL.@]
@@ -1871,6 +1906,22 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
@@ -1861,6 +1896,22 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
status = STATUS_SUCCESS;
break;
@@ -79,10 +79,10 @@ index 73f9de4..4594c57 100644
{
REPARSE_DATA_BUFFER *buffer = (REPARSE_DATA_BUFFER *)out_buffer;
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index 286d1e4..a5cb3b7 100644
index 94d5a04..a92961d 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -4360,12 +4360,15 @@ static void test_junction_points(void)
@@ -4565,12 +4565,15 @@ static void test_junction_points(void)
static const WCHAR junctionW[] = {'\\','j','u','n','c','t','i','o','n',0};
WCHAR path[MAX_PATH], junction_path[MAX_PATH], target_path[MAX_PATH];
static const WCHAR targetW[] = {'\\','t','a','r','g','e','t',0};
@@ -98,7 +98,7 @@ index 286d1e4..a5cb3b7 100644
UNICODE_STRING nameW;
HANDLE hJunction;
WCHAR *dest;
@@ -4413,6 +4416,8 @@ static void test_junction_points(void)
@@ -4618,6 +4621,8 @@ static void test_junction_points(void)
win_skip("Failed to open junction point directory handle (0x%x).\n", GetLastError());
goto cleanup;
}
@@ -107,7 +107,7 @@ index 286d1e4..a5cb3b7 100644
buffer_len = build_reparse_buffer(nameW.Buffer, &buffer);
bret = DeviceIoControl(hJunction, FSCTL_SET_REPARSE_POINT, (LPVOID)buffer, buffer_len, NULL, 0, &dwret, 0);
ok(bret, "Failed to create junction point! (0x%x)\n", GetLastError());
@@ -4427,6 +4432,23 @@ static void test_junction_points(void)
@@ -4632,6 +4637,23 @@ static void test_junction_points(void)
ok(bret, "Failed to read junction point!\n");
ok((memcmp(dest, nameW.Buffer, string_len) == 0), "Junction point destination does not match ('%s' != '%s')!\n",
wine_dbgstr_w(dest), wine_dbgstr_w(nameW.Buffer));
@@ -131,11 +131,11 @@ index 286d1e4..a5cb3b7 100644
CloseHandle(hJunction);
cleanup:
diff --git a/include/ntifs.h b/include/ntifs.h
index 85100fe..10820e4 100644
--- a/include/ntifs.h
+++ b/include/ntifs.h
@@ -47,4 +47,16 @@ typedef struct _REPARSE_DATA_BUFFER {
diff --git a/include/ddk/ntifs.h b/include/ddk/ntifs.h
index ccbd2a7..679d8ba 100644
--- a/include/ddk/ntifs.h
+++ b/include/ddk/ntifs.h
@@ -158,4 +158,16 @@ typedef struct _REPARSE_DATA_BUFFER {
};
} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
@@ -151,7 +151,7 @@ index 85100fe..10820e4 100644
+
+#define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer)
+
#endif /* __WINE_NTIFS_H */
#endif
--
1.9.1
2.7.4