https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d788a52c79f5822cc8a21…
commit d788a52c79f5822cc8a21920de421b77519ebd94
Author: Pierre Schweitzer <pierre(a)reactos.org>
AuthorDate: Sun Oct 8 10:12:08 2017 +0200
[KERNEL32_APITEST]: Add tests for IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME that show
its usage is "one-shot". Once queried, it gets forgotten.
---
.../rostests/apitests/kernel32/DeviceIoControl.c | 37 ++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/modules/rostests/apitests/kernel32/DeviceIoControl.c
b/modules/rostests/apitests/kernel32/DeviceIoControl.c
index faa10d5465..be3086edda 100644
--- a/modules/rostests/apitests/kernel32/DeviceIoControl.c
+++ b/modules/rostests/apitests/kernel32/DeviceIoControl.c
@@ -183,6 +183,42 @@ QueryUniqueId(VOID)
HeapFree(GetProcessHeap(), 0, AllocatedMUI);
}
+static
+VOID
+QuerySuggestedLinkName(VOID)
+{
+ UINT Ret;
+ DWORD Size, Error;
+ MOUNTDEV_SUGGESTED_LINK_NAME MSLN;
+
+ Size = 0;
+ Ret = DeviceIoControl(Device, IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME, NULL, 0,
&MSLN, sizeof(MSLN) - 1, &Size, NULL);
+ ok_type(Ret == 0, "DeviceIoControl succeed\n");
+ Error = GetLastError();
+ if (DriveType == DRIVE_FIXED)
+ {
+ ok_type(Error == ERROR_INVALID_PARAMETER, "Expecting
ERROR_INVALID_PARAMETER, got %ld\n", Error);
+ }
+ else
+ {
+ ok_type(Error == ERROR_INSUFFICIENT_BUFFER, "Expecting
ERROR_INSUFFICIENT_BUFFER, got %ld\n", Error);
+ }
+ ok_type(Size == 0, "Invalid output size: %ld\n", Size);
+
+ Ret = DeviceIoControl(Device, IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME, NULL, 0,
&MSLN, sizeof(MSLN), &Size, NULL);
+ ok_type(Ret == 0, "DeviceIoControl succeed\n");
+ Error = GetLastError();
+ if (DriveType == DRIVE_FIXED)
+ {
+ ok_type(Error == ERROR_NOT_FOUND, "Expecting ERROR_NOT_FOUND, got
%ld\n", Error);
+ }
+ else
+ {
+ ok_type(Error == ERROR_FILE_NOT_FOUND, "Expecting ERROR_FILE_NOT_FOUND, got
%ld\n", Error);
+ }
+ ok_type(Size == 0, "Invalid output size: %ld\n", Size);
+}
+
START_TEST(DeviceIoControl)
{
UINT Ret;
@@ -221,6 +257,7 @@ START_TEST(DeviceIoControl)
{
QueryDeviceName();
QueryUniqueId();
+ QuerySuggestedLinkName();
}
CloseHandle(Device);