From 90d7c40949f57e5e1ecd39bcb7f4a986276d7ea8 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 8 Nov 2014 06:14:33 +0100 Subject: [PATCH] Added patch with stub for IoCsqInitialize. --- README.md | 3 +- debian/changelog | 1 + patches/Makefile | 19 ++++ ...l.exe-Add-a-stub-for-IoCsqInitialize.patch | 94 +++++++++++++++++++ patches/ntoskrnl-IoCsqInitialize/definition | 4 + 5 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 patches/ntoskrnl-IoCsqInitialize/0001-ntoskrnl.exe-Add-a-stub-for-IoCsqInitialize.patch create mode 100644 patches/ntoskrnl-IoCsqInitialize/definition diff --git a/README.md b/README.md index 9ed170b3..f3b1d963 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Wine. All those differences are also documented on the Included bug fixes and improvements =================================== -**Bugfixes and features included in the next upcoming release [8]:** +**Bugfixes and features included in the next upcoming release [9]:** * Add stub for NtSetLdtEntries/ZwSetLdtEntries ([Wine Bug #26268](https://bugs.winehq.org/show_bug.cgi?id=26268)) * Allow selection of audio device for PulseAudio backend @@ -49,6 +49,7 @@ Included bug fixes and improvements * Fix crash of Trine Demo on start ([Wine Bug #19231](https://bugs.winehq.org/show_bug.cgi?id=19231)) * Fix texture corruption in CSI: Fatal Conspiracy ([Wine Bug #33768](https://bugs.winehq.org/show_bug.cgi?id=33768)) * Return correct values for GetThreadTimes function ([Wine Bug #20230](https://bugs.winehq.org/show_bug.cgi?id=20230)) +* vSphere needs IoCsqInitialize ([Wine Bug #36777](https://bugs.winehq.org/show_bug.cgi?id=36777)) **Bugs fixed in Wine Staging 1.7.30 [90]:** diff --git a/debian/changelog b/debian/changelog index 8c8f2f14..ed05d0af 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ wine-compholio (1.7.31) UNRELEASED; urgency=low * Added patch to implement DXTn support for d3dx9_36. * Added patch to return correct values for GetThreadTimes. * Added patch to align texture dimensions to block size for compressed textures. + * Added patch with stub for IoCsqInitialize. * Removed patch for iphlpapi stub functions (accepted upstream). * Removed patches for FindFirstFileExW (accepted upstream). * Removed patches for TLB dependencies lookup in resources (accepted upstream). diff --git a/patches/Makefile b/patches/Makefile index 143feef7..49e7e70d 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -64,6 +64,7 @@ PATCHLIST := \ ntdll-Pipe_SpecialCharacters.ok \ ntdll-ThreadTime.ok \ ntdll-WRITECOPY.ok \ + ntoskrnl-IoCsqInitialize.ok \ ntoskrnl-Irp_Status.ok \ ntoskrnl-KeSetSystemAffinityThread.ok \ ntoskrnl-Write_CR4.ok \ @@ -1037,6 +1038,24 @@ ntdll-WRITECOPY.ok: echo '+ { "ntdll-WRITECOPY", "Michael Müller", "Change WRITECOPY memory protection to WRITE on first write. [rev 4]" },'; \ ) > ntdll-WRITECOPY.ok +# Patchset ntoskrnl-IoCsqInitialize +# | +# | Included patches: +# | * Add stub for IoCsqInitialize. [by Austin English] +# | +# | This patchset fixes the following Wine bugs: +# | * [#36777] vSphere needs IoCsqInitialize +# | +# | Modified files: +# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec, include/ddk/csq.h +# | +.INTERMEDIATE: ntoskrnl-IoCsqInitialize.ok +ntoskrnl-IoCsqInitialize.ok: + $(call APPLY_FILE,ntoskrnl-IoCsqInitialize/0001-ntoskrnl.exe-Add-a-stub-for-IoCsqInitialize.patch) + @( \ + echo '+ { "ntoskrnl-IoCsqInitialize", "Austin English", "Add stub for IoCsqInitialize." },'; \ + ) > ntoskrnl-IoCsqInitialize.ok + # Patchset ntoskrnl-Irp_Status # | # | Included patches: diff --git a/patches/ntoskrnl-IoCsqInitialize/0001-ntoskrnl.exe-Add-a-stub-for-IoCsqInitialize.patch b/patches/ntoskrnl-IoCsqInitialize/0001-ntoskrnl.exe-Add-a-stub-for-IoCsqInitialize.patch new file mode 100644 index 00000000..47f762c6 --- /dev/null +++ b/patches/ntoskrnl-IoCsqInitialize/0001-ntoskrnl.exe-Add-a-stub-for-IoCsqInitialize.patch @@ -0,0 +1,94 @@ +From 499c08a3b6c1c05c5fb8edefc571feedac3dc85a Mon Sep 17 00:00:00 2001 +From: Austin English +Date: Tue, 4 Nov 2014 18:29:11 -0600 +Subject: ntoskrnl.exe: Add a stub for IoCsqInitialize. + +--- + dlls/ntoskrnl.exe/ntoskrnl.c | 12 ++++++++++++ + dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +- + include/ddk/csq.h | 33 +++++++++++++++++++++++++++++++++ + 3 files changed, 46 insertions(+), 1 deletion(-) + create mode 100644 include/ddk/csq.h + +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c +index a31b186..03a79c2 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.c ++++ b/dlls/ntoskrnl.exe/ntoskrnl.c +@@ -33,6 +33,7 @@ + #include "winternl.h" + #include "excpt.h" + #include "winioctl.h" ++#include "ddk/csq.h" + #include "ddk/ntddk.h" + #include "ddk/ntifs.h" + #include "wine/unicode.h" +@@ -1947,3 +1948,14 @@ NTSTATUS WINAPI IoRegisterPlugPlayNotification(IO_NOTIFICATION_EVENT_CATEGORY ca + FIXME("(%u %u %p %p %p %p %p) stub\n", category, flags, data, driver, callback, context, notification); + return STATUS_SUCCESS; + } ++ ++/***************************************************** ++ * IoCsqInitialize (NTOSKRNL.EXE.@) ++ */ ++NTSTATUS WINAPI IoCsqInitialize(PIO_CSQ csq, PIO_CSQ_INSERT_IRP insert_irp, PIO_CSQ_REMOVE_IRP remove_irp, ++ PIO_CSQ_PEEK_NEXT_IRP peek_irp, PIO_CSQ_ACQUIRE_LOCK acquire_lock, ++ PIO_CSQ_RELEASE_LOCK release_lock, PIO_CSQ_COMPLETE_CANCELED_IRP complete_irp) ++{ ++ FIXME("(%p %p %p %p %p %p %p) stub\n", csq, insert_irp, remove_irp, peek_irp, acquire_lock, release_lock, complete_irp); ++ return STATUS_NOT_IMPLEMENTED; ++} +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +index 4ead907..ddb6b72 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec ++++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +@@ -348,7 +348,7 @@ + @ stdcall IoCreateSymbolicLink(ptr ptr) + @ stdcall IoCreateSynchronizationEvent(ptr ptr) + @ stub IoCreateUnprotectedSymbolicLink +-@ stub IoCsqInitialize ++@ stdcall IoCsqInitialize(ptr ptr ptr ptr ptr ptr ptr) + @ stub IoCsqInsertIrp + @ stub IoCsqRemoveIrp + @ stub IoCsqRemoveNextIrp +diff --git a/include/ddk/csq.h b/include/ddk/csq.h +new file mode 100644 +index 0000000..6c75e5c +--- /dev/null ++++ b/include/ddk/csq.h +@@ -0,0 +1,33 @@ ++/* ++ * Copyright (C) the Wine project ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include "ddk/ntddk.h" ++ ++#ifndef __WINE_CSQ_H ++#define __WINE_CSQ_H ++ ++typedef struct _IO_CSQ IO_CSQ, *PIO_CSQ; ++ ++typedef VOID (*PIO_CSQ_ACQUIRE_LOCK)(PIO_CSQ Csq, PKIRQL Irql); ++typedef VOID (*PIO_CSQ_COMPLETE_CANCELED_IRP)(PIO_CSQ Csq, PIRP Irp); ++typedef VOID (*PIO_CSQ_INSERT_IRP)(PIO_CSQ Csq, PIRP Irp); ++typedef PIRP (*PIO_CSQ_PEEK_NEXT_IRP)(PIO_CSQ Csq, PIRP Irp, PVOID PeekContext); ++typedef VOID (*PIO_CSQ_RELEASE_LOCK)(PIO_CSQ Csq, KIRQL Irql); ++typedef VOID (*PIO_CSQ_REMOVE_IRP)(PIO_CSQ Csq, PIRP Irp); ++ ++#endif /* __WINE_CSQ_H */ +-- +2.1.3 + diff --git a/patches/ntoskrnl-IoCsqInitialize/definition b/patches/ntoskrnl-IoCsqInitialize/definition new file mode 100644 index 00000000..b743de94 --- /dev/null +++ b/patches/ntoskrnl-IoCsqInitialize/definition @@ -0,0 +1,4 @@ +Author: Austin English +Subject: Add stub for IoCsqInitialize. +Revision: 1 +Fixes: [36777] vSphere needs IoCsqInitialize