https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a3c13c624f4a115f99560…
commit a3c13c624f4a115f99560990f065dd94e4526304
Author: Pierre Schweitzer <pierre(a)reactos.org>
AuthorDate: Tue Nov 12 23:12:48 2019 +0100
Commit: Pierre Schweitzer <pierre(a)reactos.org>
CommitDate: Tue Nov 12 23:12:48 2019 +0100
[SHELLBTRFS] Addendum to 1725ddf
---
dll/shellext/shellbtrfs/mountmgr_local.cpp | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/dll/shellext/shellbtrfs/mountmgr_local.cpp
b/dll/shellext/shellbtrfs/mountmgr_local.cpp
index ee7901e1f2a..061962369ff 100644
--- a/dll/shellext/shellbtrfs/mountmgr_local.cpp
+++ b/dll/shellext/shellbtrfs/mountmgr_local.cpp
@@ -48,7 +48,11 @@ void mountmgr::create_point(const wstring_view& symlink, const
wstring_view& dev
memcpy((uint8_t*)mcpi + mcpi->DeviceNameOffset, device.data(), device.length() *
sizeof(WCHAR));
Status = NtDeviceIoControlFile(h, nullptr, nullptr, nullptr, &iosb,
IOCTL_MOUNTMGR_CREATE_POINT,
+#ifndef __REACTOS__
buf.data(), (ULONG)buf.size(), nullptr, 0);
+#else
+ &buf[0], (ULONG)buf.size(), nullptr, 0);
+#endif
if (!NT_SUCCESS(Status))
throw ntstatus_error(Status);
@@ -103,13 +107,21 @@ void mountmgr::delete_points(const wstring_view& symlink, const
wstring_view& un
#endif
Status = NtDeviceIoControlFile(h, nullptr, nullptr, nullptr, &iosb,
IOCTL_MOUNTMGR_DELETE_POINTS,
+#ifndef __REACTOS__
buf.data(), (ULONG)buf.size(), buf2.data(),
(ULONG)buf2.size());
+#else
+ &buf[0], (ULONG)buf.size(), &buf2[0],
(ULONG)buf2.size());
+#endif
if (Status == STATUS_BUFFER_OVERFLOW) {
buf2.resize(mmps->Size);
Status = NtDeviceIoControlFile(h, nullptr, nullptr, nullptr, &iosb,
IOCTL_MOUNTMGR_DELETE_POINTS,
+#ifndef __REACTOS__
buf.data(), (ULONG)buf.size(), buf2.data(),
(ULONG)buf2.size());
+#else
+ &buf[0], (ULONG)buf.size(), &buf2[0],
(ULONG)buf2.size());
+#endif
}
if (!NT_SUCCESS(Status))
@@ -166,7 +178,11 @@ vector<mountmgr_point> mountmgr::query_points(const
wstring_view& symlink, const
#endif
Status = NtDeviceIoControlFile(h, nullptr, nullptr, nullptr, &iosb,
IOCTL_MOUNTMGR_QUERY_POINTS,
+#ifndef __REACTOS__
buf.data(), (ULONG)buf.size(), buf2.data(),
(ULONG)buf2.size());
+#else
+ &buf[0], (ULONG)buf.size(), &buf2[0],
(ULONG)buf2.size());
+#endif
if (!NT_SUCCESS(Status) && Status != STATUS_BUFFER_OVERFLOW)
throw ntstatus_error(Status);
@@ -179,7 +195,11 @@ vector<mountmgr_point> mountmgr::query_points(const
wstring_view& symlink, const
#endif
Status = NtDeviceIoControlFile(h, nullptr, nullptr, nullptr, &iosb,
IOCTL_MOUNTMGR_QUERY_POINTS,
+#ifndef __REACTOS__
buf.data(), (ULONG)buf.size(), buf2.data(),
(ULONG)buf2.size());
+#else
+ &buf[0], (ULONG)buf.size(), &buf2[0],
(ULONG)buf2.size());
+#endif
if (!NT_SUCCESS(Status))
throw ntstatus_error(Status);