[KERNEL32_APITEST]: Add tests for IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME that show...
authorPierre Schweitzer <pierre@reactos.org>
Sun, 8 Oct 2017 08:12:08 +0000 (10:12 +0200)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 8 Oct 2017 08:12:08 +0000 (10:12 +0200)
modules/rostests/apitests/kernel32/DeviceIoControl.c

index faa10d5..be3086e 100644 (file)
@@ -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);