From 9fce6a37ecb2a09e14bd3d384132fe3b09c3dcc1 Mon Sep 17 00:00:00 2001 From: Alexandre Goujon Date: Wed, 11 Jul 2012 22:26:51 +0200 Subject: [PATCH] kernel32/tests: Add a IOCTL_DVD_READ_STRUCTURE (DvdCopyrightDescriptor) test. --- dlls/kernel32/tests/volume.c | 21 +++++++++++++++++++++ dlls/ntdll/cdrom.c | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/dlls/kernel32/tests/volume.c b/dlls/kernel32/tests/volume.c index cf402ad4b25..45bac3177ae 100644 --- a/dlls/kernel32/tests/volume.c +++ b/dlls/kernel32/tests/volume.c @@ -749,6 +749,7 @@ static void test_dvd_read_structure(HANDLE handle) DVD_READ_STRUCTURE dvdReadStructure; DVD_LAYER_DESCRIPTOR dvdLayerDescriptor; struct COMPLETE_DVD_LAYER_DESCRIPTOR completeDvdLayerDescriptor; + DVD_COPYRIGHT_DESCRIPTOR dvdCopyrightDescriptor; dvdReadStructure.BlockByteOffset.QuadPart = 0; dvdReadStructure.SessionId = 0; @@ -818,6 +819,26 @@ static void test_dvd_read_structure(HANDLE handle) ok( (!ret && GetLastError() == ERROR_INVALID_PARAMETER), "IOCTL_DVD_READ_STRUCTURE should have failed\n"); } + + + /* DvdCopyrightDescriptor */ + dvdReadStructure.Format = 1; + + SetLastError(0xdeadbeef); + + /* Strangely, with NULL lpOutBuffer, last error is insufficient buffer, not invalid parameter as we could expect */ + ret = DeviceIoControl(handle, IOCTL_DVD_READ_STRUCTURE, &dvdReadStructure, sizeof(DVD_READ_STRUCTURE), + NULL, sizeof(DVD_COPYRIGHT_DESCRIPTOR), &nbBytes, NULL); + ok(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER, "IOCTL_DVD_READ_STRUCTURE should have failed %d %u\n", ret, GetLastError()); + + for(i=0; i