From d2765a37f25edeecc1c22e32f48d8b2217a77691 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 6 Jun 2015 19:12:42 +0200 Subject: [PATCH] Added patch for semi-stub of FileFsVolumeInformation information class. --- README.md | 3 +- debian/changelog | 1 + ...tub-for-FileFsVolumeInformation-info.patch | 55 +++++++++++ .../ntdll-FileFsVolumeInformation/definition | 1 + patches/patchinstall.sh | 91 +++++++++++-------- 5 files changed, 114 insertions(+), 37 deletions(-) create mode 100644 patches/ntdll-FileFsVolumeInformation/0001-ntdll-Add-semi-stub-for-FileFsVolumeInformation-info.patch create mode 100644 patches/ntdll-FileFsVolumeInformation/definition diff --git a/README.md b/README.md index ae7e1839..29c67f54 100644 --- a/README.md +++ b/README.md @@ -39,9 +39,10 @@ Wine. All those differences are also documented on the Included bug fixes and improvements ----------------------------------- -**Bug fixes and features included in the next upcoming release [16]:** +**Bug fixes and features included in the next upcoming release [17]:** * Add implementation for kernel32.GetNumaProcessorNode ([Wine Bug #38660](https://bugs.winehq.org/show_bug.cgi?id=38660)) +* Add semi-stub for FileFsVolumeInformation information class ([Wine Bug #21466](https://bugs.winehq.org/show_bug.cgi?id=21466)) * Allow to enable/disable InsertMode in wineconsole settings ([Wine Bug #38697](https://bugs.winehq.org/show_bug.cgi?id=38697)) * Allow to set pixel format for desktop window * Fix endless loop in regedit when importing files with very long lines diff --git a/debian/changelog b/debian/changelog index e07c8759..fe2b02f1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -35,6 +35,7 @@ wine-staging (1.7.45) UNRELEASED; urgency=low * Added patch to fix endless loop in regedit when importing files with very long lines. * Added patch to improve stubs for NtQueryEaFile. + * Added patch for semi-stub of FileFsVolumeInformation information class. * Removed patch to handle '\r' as whitespace in wbemprox queries (accepted upstream). * Removed patch to make sure OpenClipboard with current owner doesn't fail diff --git a/patches/ntdll-FileFsVolumeInformation/0001-ntdll-Add-semi-stub-for-FileFsVolumeInformation-info.patch b/patches/ntdll-FileFsVolumeInformation/0001-ntdll-Add-semi-stub-for-FileFsVolumeInformation-info.patch new file mode 100644 index 00000000..c6a99382 --- /dev/null +++ b/patches/ntdll-FileFsVolumeInformation/0001-ntdll-Add-semi-stub-for-FileFsVolumeInformation-info.patch @@ -0,0 +1,55 @@ +From 8d067985073de790af3a9471998cea38b7a5d373 Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Sat, 6 Jun 2015 19:04:57 +0200 +Subject: ntdll: Add semi-stub for FileFsVolumeInformation information class. + +--- + dlls/ntdll/file.c | 13 ++++++++++++- + dlls/ntdll/tests/file.c | 4 ++-- + 2 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c +index d081750..afd22ac 100644 +--- a/dlls/ntdll/file.c ++++ b/dlls/ntdll/file.c +@@ -3060,7 +3060,18 @@ NTSTATUS WINAPI NtQueryVolumeInformationFile( HANDLE handle, PIO_STATUS_BLOCK io + switch( info_class ) + { + case FileFsVolumeInformation: +- if (!once++) FIXME( "%p: volume info not supported\n", handle ); ++ if (length < sizeof(FILE_FS_VOLUME_INFORMATION)) ++ io->u.Status = STATUS_BUFFER_TOO_SMALL; ++ else ++ { ++ FILE_FS_VOLUME_INFORMATION *info = buffer; ++ ++ if (!once++) FIXME( "%p: faking volume info\n", handle ); ++ memset( info, 0, sizeof(*info) ); ++ ++ io->Information = sizeof(*info); ++ io->u.Status = STATUS_SUCCESS; ++ } + break; + case FileFsLabelInformation: + FIXME( "%p: label info not supported\n", handle ); +diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c +index 2df0edc..3b9f097 100644 +--- a/dlls/ntdll/tests/file.c ++++ b/dlls/ntdll/tests/file.c +@@ -1920,11 +1920,11 @@ static void test_query_volume_information_file(void) + + ffvi = (FILE_FS_VOLUME_INFORMATION *)buf; + +-todo_wine +-{ + ok(status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %d\n", status); + ok(U(io).Status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %d\n", U(io).Status); + ++todo_wine ++{ + ok(io.Information == (FIELD_OFFSET(FILE_FS_VOLUME_INFORMATION, VolumeLabel) + ffvi->VolumeLabelLength), + "expected %d, got %lu\n", (FIELD_OFFSET(FILE_FS_VOLUME_INFORMATION, VolumeLabel) + ffvi->VolumeLabelLength), + io.Information); +-- +2.4.2 + diff --git a/patches/ntdll-FileFsVolumeInformation/definition b/patches/ntdll-FileFsVolumeInformation/definition new file mode 100644 index 00000000..3ae5c729 --- /dev/null +++ b/patches/ntdll-FileFsVolumeInformation/definition @@ -0,0 +1 @@ +Fixes: [21466] Add semi-stub for FileFsVolumeInformation information class diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 70f1eabb..fd861b3d 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -169,6 +169,7 @@ patch_enable_all () enable_ntdll_Exception="$1" enable_ntdll_FileDispositionInformation="$1" enable_ntdll_FileFsFullSizeInformation="$1" + enable_ntdll_FileFsVolumeInformation="$1" enable_ntdll_Fix_Alignment="$1" enable_ntdll_Fix_Free="$1" enable_ntdll_FreeBSD_Directory="$1" @@ -581,6 +582,9 @@ patch_enable () ntdll-FileFsFullSizeInformation) enable_ntdll_FileFsFullSizeInformation="$2" ;; + ntdll-FileFsVolumeInformation) + enable_ntdll_FileFsVolumeInformation="$2" + ;; ntdll-Fix_Alignment) enable_ntdll_Fix_Alignment="$2" ;; @@ -3644,6 +3648,21 @@ if test "$enable_ntdll_FileFsFullSizeInformation" -eq 1; then ) >> "$patchlist" fi +# Patchset ntdll-FileFsVolumeInformation +# | +# | This patchset fixes the following Wine bugs: +# | * [#21466] Add semi-stub for FileFsVolumeInformation information class +# | +# | Modified files: +# | * dlls/ntdll/file.c, dlls/ntdll/tests/file.c +# | +if test "$enable_ntdll_FileFsVolumeInformation" -eq 1; then + patch_apply ntdll-FileFsVolumeInformation/0001-ntdll-Add-semi-stub-for-FileFsVolumeInformation-info.patch + ( + echo '+ { "Sebastian Lackner", "ntdll: Add semi-stub for FileFsVolumeInformation information class.", 1 },'; + ) >> "$patchlist" +fi + # Patchset ntdll-Fix_Alignment # | # | This patchset fixes the following Wine bugs: @@ -5138,6 +5157,42 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then ) >> "$patchlist" fi +# Patchset wined3d-UnhandledBlendFactor +# | +# | Modified files: +# | * dlls/wined3d/state.c +# | +if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then + patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch + ( + echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },'; + ) >> "$patchlist" +fi + +# Patchset wined3d-resource_check_usage +# | +# | Modified files: +# | * dlls/wined3d/resource.c +# | +if test "$enable_wined3d_resource_check_usage" -eq 1; then + patch_apply wined3d-resource_check_usage/0001-wined3d-Silence-repeated-resource_check_usage-FIXME.patch + ( + echo '+ { "Erich E. Hoover", "wined3d: Silence repeated resource_check_usage FIXME.", 2 },'; + ) >> "$patchlist" +fi + +# Patchset wined3d-wined3d_swapchain_present +# | +# | Modified files: +# | * dlls/wined3d/swapchain.c +# | +if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then + patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch + ( + echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },'; + ) >> "$patchlist" +fi + # Patchset wined3d-Multisampling # | # | This patchset fixes the following Wine bugs: @@ -5187,42 +5242,6 @@ if test "$enable_wined3d_Revert_PixelFormat" -eq 1; then ) >> "$patchlist" fi -# Patchset wined3d-resource_check_usage -# | -# | Modified files: -# | * dlls/wined3d/resource.c -# | -if test "$enable_wined3d_resource_check_usage" -eq 1; then - patch_apply wined3d-resource_check_usage/0001-wined3d-Silence-repeated-resource_check_usage-FIXME.patch - ( - echo '+ { "Erich E. Hoover", "wined3d: Silence repeated resource_check_usage FIXME.", 2 },'; - ) >> "$patchlist" -fi - -# Patchset wined3d-wined3d_swapchain_present -# | -# | Modified files: -# | * dlls/wined3d/swapchain.c -# | -if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then - patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch - ( - echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },'; - ) >> "$patchlist" -fi - -# Patchset wined3d-UnhandledBlendFactor -# | -# | Modified files: -# | * dlls/wined3d/state.c -# | -if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then - patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch - ( - echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-CSMT_Main # | # | This patchset fixes the following Wine bugs: