https://git.reactos.org/?p=reactos.git;a=commitdiff;h=45a643a136eedf8b39d22…
commit 45a643a136eedf8b39d22f5add94fd372320fdee
Author: Pierre Schweitzer <pierre(a)reactos.org>
AuthorDate: Tue Nov 12 23:46:53 2019 +0100
Commit: Pierre Schweitzer <pierre(a)reactos.org>
CommitDate: Tue Nov 12 23:46:53 2019 +0100
[SHELLBTRFS] Addendum to 1725ddf
---
dll/shellext/shellbtrfs/contextmenu.cpp | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/dll/shellext/shellbtrfs/contextmenu.cpp
b/dll/shellext/shellbtrfs/contextmenu.cpp
index 3fbca1cb7c2..bf4b5e92c09 100755
--- a/dll/shellext/shellbtrfs/contextmenu.cpp
+++ b/dll/shellext/shellbtrfs/contextmenu.cpp
@@ -833,15 +833,25 @@ void BtrfsContextMenu::reflink_copy(HWND hwnd, const WCHAR* fn,
const WCHAR* dir
streambufsize += 0x1000;
streambuf.resize(streambufsize);
+#ifndef __REACTOS__
memset(streambuf.data(), 0, streambufsize);
Status = NtQueryInformationFile(source, &iosb, streambuf.data(),
streambufsize, FileStreamInformation);
+#else
+ memset(&streambuf[0], 0, streambufsize);
+
+ Status = NtQueryInformationFile(source, &iosb, &streambuf[0],
streambufsize, FileStreamInformation);
+#endif
} while (Status == STATUS_BUFFER_OVERFLOW);
if (!NT_SUCCESS(Status))
throw ntstatus_error(Status);
+#ifndef __REACTOS__
auto fsi =
reinterpret_cast<FILE_STREAM_INFORMATION*>(streambuf.data());
+#else
+ auto fsi =
reinterpret_cast<FILE_STREAM_INFORMATION*>(&streambuf[0]);
+#endif
while (true) {
if (fsi->StreamNameLength > 0) {
@@ -1525,15 +1535,25 @@ static void reflink_copy2(const wstring& srcfn, const
wstring& destdir, const ws
streambufsize += 0x1000;
streambuf.resize(streambufsize);
+#ifndef __REACTOS__
memset(streambuf.data(), 0, streambufsize);
Status = NtQueryInformationFile(source, &iosb, streambuf.data(),
streambufsize, FileStreamInformation);
+#else
+ memset(&streambuf[0], 0, streambufsize);
+
+ Status = NtQueryInformationFile(source, &iosb, &streambuf[0],
streambufsize, FileStreamInformation);
+#endif
} while (Status == STATUS_BUFFER_OVERFLOW);
if (!NT_SUCCESS(Status))
throw ntstatus_error(Status);
+#ifndef __REACTOS__
auto fsi =
reinterpret_cast<FILE_STREAM_INFORMATION*>(streambuf.data());
+#else
+ auto fsi =
reinterpret_cast<FILE_STREAM_INFORMATION*>(&streambuf[0]);
+#endif
while (true) {
if (fsi->StreamNameLength > 0) {