From b6a21b238f584c12e17ccbd5355950ba217f24ee Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 23 Dec 2014 23:07:04 +0100 Subject: [PATCH] Removed several patches (accepted upstream). --- debian/changelog | 2 + patches/Makefile | 2 +- ...tests-Add-tests-for-UTF-7-conversion.patch | 337 +----------------- ...sh-when-NULL-pointer-is-passed-to-at.patch | 20 +- ...l.exe-Add-a-stub-for-IoCsqInitialize.patch | 66 +--- 5 files changed, 26 insertions(+), 401 deletions(-) diff --git a/debian/changelog b/debian/changelog index 59c17ca8..8a2a97d2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -28,6 +28,8 @@ wine-staging (1.7.34) UNRELEASED; urgency=low * Removed patch for stub of ntdll.RtlSetHeapInformation (accepted upstream). * Removed patch for wine64 support on FreeBSD (accepted upstream). * Partially removed patches for ntdll DOS attributes (accepted upstream). + * Partially removed patches for UTF7 support (accepted upstream). + * Partially removed patches for IoCsqInitialize (accepted upstream). -- Sebastian Lackner Mon, 15 Dec 2014 22:42:09 +0100 wine-compholio (1.7.33) unstable; urgency=low diff --git a/patches/Makefile b/patches/Makefile index 4e256cdd..95aa9c45 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -1261,7 +1261,7 @@ ntoskrnl-Emulator.ok: ntdll-User_Shared_Data.ok # | * [#36777] vSphere needs IoCsqInitialize # | # | Modified files: -# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec, include/Makefile.in, include/ddk/csq.h +# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec # | .INTERMEDIATE: ntoskrnl-IoCsqInitialize.ok ntoskrnl-IoCsqInitialize.ok: diff --git a/patches/kernel32-UTF7_Support/0003-kernel32-tests-Add-tests-for-UTF-7-conversion.patch b/patches/kernel32-UTF7_Support/0003-kernel32-tests-Add-tests-for-UTF-7-conversion.patch index 67324082..03351332 100644 --- a/patches/kernel32-UTF7_Support/0003-kernel32-tests-Add-tests-for-UTF-7-conversion.patch +++ b/patches/kernel32-UTF7_Support/0003-kernel32-tests-Add-tests-for-UTF-7-conversion.patch @@ -1,340 +1,17 @@ -From 33869b53b2b4bd532042b3cd92c1ab3652d583ff Mon Sep 17 00:00:00 2001 +From a7936c46c18d4c5a81c8eb2aa6c027aa0ae583b0 Mon Sep 17 00:00:00 2001 From: Alex Henrie Date: Fri, 17 Oct 2014 00:18:39 -0600 Subject: kernel32/tests: Add tests for UTF-7 conversion. --- - dlls/kernel32/tests/codepage.c | 593 +++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 593 insertions(+) + dlls/kernel32/tests/codepage.c | 284 +++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 284 insertions(+) diff --git a/dlls/kernel32/tests/codepage.c b/dlls/kernel32/tests/codepage.c -index 6e89533..0eabaac 100644 +index aa7977d..fda83ca 100644 --- a/dlls/kernel32/tests/codepage.c +++ b/dlls/kernel32/tests/codepage.c -@@ -433,6 +433,266 @@ static void test_utf7_encoding(void) - static const char base64_encoding_table[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - -+ const struct -+ { -+ /* inputs */ -+ WCHAR src[16]; -+ int srclen; -+ char* dst; -+ int dstlen; -+ /* expected outputs */ -+ char expected_dst[16]; -+ int chars_written; -+ int len; -+ DWORD error; -+ int reversed_len; -+ } -+ tests[] = -+ { -+ /* tests string conversion with srclen=-1 */ -+ { -+ {0x4F60,0x597D,0x5417,0}, -+ -1, -+ output, -+ sizeof(output) - 1, -+ "+T2BZfVQX-", -+ 11, -+ 11, -+ 0xdeadbeef, -+ 4 -+ }, -+ /* tests string conversion with srclen=-2 */ -+ { -+ {0x4F60,0x597D,0x5417,0}, -+ -2, -+ output, -+ sizeof(output) - 1, -+ "+T2BZfVQX-", -+ 11, -+ 11, -+ 0xdeadbeef, -+ 4 -+ }, -+ /* tests some invalid UTF-16 (stray lead surrogate) */ -+ { -+ {0xD801,0}, -+ -1, -+ output, -+ sizeof(output) - 1, -+ "+2AE-", -+ 6, -+ 6, -+ 0xdeadbeef, -+ 2 -+ }, -+ /* tests some more invalid UTF-16 (codepoint does not exist) */ -+ { -+ {0xFF00,0}, -+ -1, -+ output, -+ sizeof(output) - 1, -+ "+/wA-", -+ 6, -+ 6, -+ 0xdeadbeef, -+ 2 -+ }, -+ /* tests string conversion with dstlen=strlen(expected_dst) */ -+ { -+ {0x4F60,0x597D,0x5417,0}, -+ -1, -+ output, -+ 10, -+ "+T2BZfVQX-", -+ 10, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER, -+ 3 -+ }, -+ /* tests string conversion with dstlen=strlen(expected_dst)+1 */ -+ { -+ {0x4F60,0x597D,0x5417,0}, -+ -1, -+ output, -+ 11, -+ "+T2BZfVQX-", -+ 11, -+ 11, -+ 0xdeadbeef, -+ 4 -+ }, -+ /* tests string conversion with dstlen=strlen(expected_dst)+2 */ -+ { -+ {0x4F60,0x597D,0x5417,0}, -+ -1, -+ output, -+ 12, -+ "+T2BZfVQX-", -+ 11, -+ 11, -+ 0xdeadbeef, -+ 4 -+ }, -+ /* tests dry run with dst=NULL and dstlen=0 */ -+ { -+ {0x4F60,0x597D,0x5417,0}, -+ -1, -+ NULL, -+ 0, -+ {}, -+ 0, -+ 11, -+ 0xdeadbeef, -+ 0 -+ }, -+ /* tests dry run with dst!=NULL and dstlen=0 */ -+ { -+ {0x4F60,0x597D,0x5417,0}, -+ -1, -+ output, -+ 0, -+ {}, -+ 0, -+ 11, -+ 0xdeadbeef, -+ 0 -+ }, -+ /* tests srclen > strlenW(src) */ -+ { -+ {'a',0,'b',0}, -+ 4, -+ output, -+ sizeof(output) - 1, -+ "a\0b", -+ 4, -+ 4, -+ 0xdeadbeef, -+ 4 -+ }, -+ /* tests srclen < strlenW(src) with directly encodable chars */ -+ { -+ {'h','e','l','l','o',0}, -+ 2, -+ output, -+ sizeof(output) - 1, -+ "he", -+ 2, -+ 2, -+ 0xdeadbeef, -+ 2 -+ }, -+ /* tests srclen < strlenW(src) with non-directly encodable chars */ -+ { -+ {0x4F60,0x597D,0x5417,0}, -+ 2, -+ output, -+ sizeof(output) - 1, -+ "+T2BZfQ-", -+ 8, -+ 8, -+ 0xdeadbeef, -+ 2 -+ }, -+ /* tests a buffer that runs out while not encoding a UTF-7 sequence */ -+ { -+ {'h','e','l','l','o',0}, -+ -1, -+ output, -+ 2, -+ "he", -+ 2, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER, -+ 2 -+ }, -+ /* tests a buffer that runs out after writing 1 base64 character */ -+ { -+ {0x4F60,0x0001,0}, -+ -1, -+ output, -+ 2, -+ "+T", -+ 2, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER, -+ 0 -+ }, -+ /* tests a buffer that runs out after writing 2 base64 characters */ -+ { -+ {0x4F60,0x0001,0}, -+ -1, -+ output, -+ 3, -+ "+T2", -+ 3, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER, -+ 0 -+ }, -+ /* tests a buffer that runs out after writing 3 base64 characters */ -+ { -+ {0x4F60,0x0001,0}, -+ -1, -+ output, -+ 4, -+ "+T2A", -+ 4, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER, -+ 1 -+ }, -+ /* tests a buffer that runs out just after writing the + sign */ -+ { -+ {0x4F60,0}, -+ -1, -+ output, -+ 1, -+ "+", -+ 1, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER, -+ 0 -+ }, -+ /* tests a buffer that runs out just before writing the - sign -+ * the number of bits to encode here is evenly divisible by 6 */ -+ { -+ {0x4F60,0x597D,0x5417,0}, -+ -1, -+ output, -+ 9, -+ "+T2BZfVQX", -+ 9, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER, -+ 3 -+ }, -+ /* tests a buffer that runs out just before writing the - sign -+ * the number of bits to encode here is NOT evenly divisible by 6 */ -+ { -+ {0x4F60,0}, -+ -1, -+ output, -+ 4, -+ "+T2", -+ 3, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER, -+ 0 -+ }, -+ /* tests a buffer that runs out in the middle of escaping a + sign */ -+ { -+ {'+',0}, -+ -1, -+ output, -+ 1, -+ "+", -+ 1, -+ 0, -+ ERROR_INSUFFICIENT_BUFFER, -+ 0 -+ } -+ }; -+ - if (WideCharToMultiByte(CP_UTF7, 0, foobarW, -1, NULL, 0, NULL, NULL) == 0 && - GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) - { -@@ -525,6 +785,55 @@ static void test_utf7_encoding(void) - ok(output[expected_len] == '#', "i=0x%04x: expected output[%i]='#', got output[%i]=%i\n", - i, expected_len, expected_len, output[expected_len]); - } -+ -+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) -+ { -+ memset(output, '#', sizeof(output) - 1); -+ output[sizeof(output) - 1] = 0; -+ -+ SetLastError(0xdeadbeef); -+ len = WideCharToMultiByte(CP_UTF7, 0, tests[i].src, tests[i].srclen, -+ tests[i].dst, tests[i].dstlen, NULL, NULL); -+ -+ ok(GetLastError() == tests[i].error, -+ "tests[%i]: expected error=0x%x, got error=0x%x\n", i, tests[i].error, GetLastError()); -+ ok(len == tests[i].len, "tests[%i]: expected len=%i, got len=%i\n", i, tests[i].len, len); -+ -+ if (tests[i].dst) -+ { -+ ok(memcmp(tests[i].dst, tests[i].expected_dst, tests[i].chars_written) == 0, -+ "tests[%i]: expected dst=\"%s\", got dst=\"%s\"\n", -+ i, tests[i].expected_dst, tests[i].dst); -+ ok(tests[i].dst[tests[i].chars_written] == '#', -+ "tests[%i]: expected dst[%i]='#', got dst[%i]=%i\n", -+ i, tests[i].chars_written, tests[i].chars_written, tests[i].dst[tests[i].chars_written]); -+ } -+ -+ /* utf16-to-utf7 tests that are not dry runs can be reversed to make utf7-to-utf16 tests */ -+ if (tests[i].chars_written) -+ { -+ WCHAR w_buffer[16]; -+ -+ memset(w_buffer, '#', sizeof(w_buffer) - sizeof(WCHAR)); -+ w_buffer[sizeof(w_buffer) / sizeof(WCHAR) - 1] = 0; -+ -+ SetLastError(0xdeadbeef); -+ len = MultiByteToWideChar(CP_UTF7, 0, tests[i].expected_dst, tests[i].chars_written, -+ w_buffer, sizeof(w_buffer) / sizeof(WCHAR) - 1); -+ -+ ok(GetLastError() == 0xdeadbeef, -+ "tests[%i]: expected error=0xdeadbeef, got error=0x%x\n", i, GetLastError()); -+ ok(len == tests[i].reversed_len, -+ "tests[%i]: expected len=%i, got len=%i\n", i, tests[i].reversed_len, len); -+ ok(memcmp(w_buffer, tests[i].src, tests[i].reversed_len * sizeof(WCHAR)) == 0, -+ "tests[%i]: expected w_buffer[0:%i]=%s, got w_buffer[0:%i]=%s\n", -+ i, tests[i].reversed_len, wine_dbgstr_wn(tests[i].src, tests[i].reversed_len), -+ tests[i].reversed_len, wine_dbgstr_wn(w_buffer, tests[i].reversed_len)); -+ ok(w_buffer[tests[i].reversed_len] == 0x2323, -+ "tests[%i]: expected w_buffer[%i]=0x2323, got w_buffer[%i]=0x%04x\n", -+ i, tests[i].reversed_len, tests[i].reversed_len, w_buffer[tests[i].reversed_len]); -+ } -+ } - } - - static void test_utf7_decoding(void) -@@ -545,6 +854,265 @@ static void test_utf7_decoding(void) +@@ -681,6 +681,265 @@ static void test_utf7_decoding(void) 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1 /* 0x70-0x7F */ }; @@ -600,7 +277,7 @@ index 6e89533..0eabaac 100644 if (MultiByteToWideChar(CP_UTF7, 0, "foobar", -1, NULL, 0) == 0 && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) { -@@ -645,6 +1213,31 @@ static void test_utf7_decoding(void) +@@ -781,6 +1040,31 @@ static void test_utf7_decoding(void) "i=0x%02x: expected output=%s, got output=%s\n", i, wine_dbgstr_wn(expected, expected_len + 1), wine_dbgstr_wn(output, expected_len + 1)); } @@ -633,5 +310,5 @@ index 6e89533..0eabaac 100644 static void test_undefined_byte_char(void) -- -2.1.3 +2.2.1 diff --git a/patches/msvcrt-atof_strtod/0001-msvcrt-Avoid-crash-when-NULL-pointer-is-passed-to-at.patch b/patches/msvcrt-atof_strtod/0001-msvcrt-Avoid-crash-when-NULL-pointer-is-passed-to-at.patch index e170e1f7..0e277f55 100644 --- a/patches/msvcrt-atof_strtod/0001-msvcrt-Avoid-crash-when-NULL-pointer-is-passed-to-at.patch +++ b/patches/msvcrt-atof_strtod/0001-msvcrt-Avoid-crash-when-NULL-pointer-is-passed-to-at.patch @@ -1,4 +1,4 @@ -From e600a4020ee684f73376d5c7389e6326291d3f1b Mon Sep 17 00:00:00 2001 +From 59b1380d74f70b875c9e4642131b0fdbf06ec820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 8 Nov 2014 22:39:28 +0100 Subject: msvcrt: Avoid crash when NULL pointer is passed to atof / strtod @@ -27,7 +27,7 @@ index 6f9280f..d933643 100644 } diff --git a/dlls/msvcrt/tests/string.c b/dlls/msvcrt/tests/string.c -index 1788035..5620c6d 100644 +index e2d53d4..d40d8d8 100644 --- a/dlls/msvcrt/tests/string.c +++ b/dlls/msvcrt/tests/string.c @@ -89,6 +89,8 @@ static int (__cdecl *p_tolower)(int); @@ -37,9 +37,9 @@ index 1788035..5620c6d 100644 +static double (__cdecl *p__atof_l)(const char*,_locale_t); +static double (__cdecl *p__strtod_l)(const char *,char**,_locale_t); static int (__cdecl *p__strnset_s)(char*,size_t,int,size_t); + static int (__cdecl *p__wcsset_s)(wchar_t*,size_t,wchar_t); - #define SETNOFAIL(x,y) x = (void*)GetProcAddress(hMsvcrt,y) -@@ -1552,6 +1554,31 @@ static void test__strtod(void) +@@ -1553,6 +1555,31 @@ static void test__strtod(void) char *end; double d; @@ -71,7 +71,7 @@ index 1788035..5620c6d 100644 d = strtod(double1, &end); ok(almost_equal(d, 12.1), "d = %lf\n", d); ok(end == double1+4, "incorrect end (%d)\n", (int)(end-double1)); -@@ -2609,6 +2636,11 @@ static void test_atoi(void) +@@ -2610,6 +2637,11 @@ static void test_atoi(void) { int r; @@ -83,7 +83,7 @@ index 1788035..5620c6d 100644 r = atoi("0"); ok(r == 0, "atoi(0) = %d\n", r); -@@ -2622,6 +2654,35 @@ static void test_atoi(void) +@@ -2623,6 +2655,35 @@ static void test_atoi(void) ok(r == 0, "atoi(4294967296) = %d\n", r); } @@ -119,16 +119,16 @@ index 1788035..5620c6d 100644 static void test_strncpy(void) { #define TEST_STRNCPY_LEN 10 -@@ -2796,6 +2857,8 @@ START_TEST(string) +@@ -2831,6 +2892,8 @@ START_TEST(string) p_mbrtowc = (void*)GetProcAddress(hMsvcrt, "mbrtowc"); p_mbsrtowcs = (void*)GetProcAddress(hMsvcrt, "mbsrtowcs"); p__atodbl_l = (void*)GetProcAddress(hMsvcrt, "_atodbl_l"); + p__atof_l = (void*)GetProcAddress(hMsvcrt, "_atof_l"); + p__strtod_l = (void*)GetProcAddress(hMsvcrt, "_strtod_l"); p__strnset_s = (void*)GetProcAddress(hMsvcrt, "_strnset_s"); + p__wcsset_s = (void*)GetProcAddress(hMsvcrt, "_wcsset_s"); - /* MSVCRT memcpy behaves like memmove for overlapping moves, -@@ -2848,6 +2911,7 @@ START_TEST(string) +@@ -2884,6 +2947,7 @@ START_TEST(string) test__stricmp(); test__wcstoi64(); test_atoi(); @@ -137,5 +137,5 @@ index 1788035..5620c6d 100644 test_strxfrm(); test__strnset_s(); -- -1.9.1 +2.2.1 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 index 9fc5f6b7..23d82e1d 100644 --- 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 @@ -1,4 +1,4 @@ -From 4be020848661860f46ea2ce1091279ea25dc021a Mon Sep 17 00:00:00 2001 +From 61ec97d56ed90a727ae0b29cc72f1f86300a72ee 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. @@ -6,13 +6,10 @@ Subject: ntoskrnl.exe: Add a stub for IoCsqInitialize. --- dlls/ntoskrnl.exe/ntoskrnl.c | 12 ++++++++++++ dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +- - include/Makefile.in | 1 + - include/ddk/csq.h | 33 +++++++++++++++++++++++++++++++++ - 4 files changed, 47 insertions(+), 1 deletion(-) - create mode 100644 include/ddk/csq.h + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c -index a31b186..03a79c2 100644 +index 78df9f1..103ae3c 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -33,6 +33,7 @@ @@ -23,7 +20,7 @@ index a31b186..03a79c2 100644 #include "ddk/ntddk.h" #include "ddk/ntifs.h" #include "wine/unicode.h" -@@ -1947,3 +1948,14 @@ NTSTATUS WINAPI IoRegisterPlugPlayNotification(IO_NOTIFICATION_EVENT_CATEGORY ca +@@ -1996,3 +1997,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; } @@ -39,7 +36,7 @@ index a31b186..03a79c2 100644 + return STATUS_NOT_IMPLEMENTED; +} diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec -index 4ead907..ddb6b72 100644 +index 3bcf21c..228da29 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -348,7 +348,7 @@ @@ -51,57 +48,6 @@ index 4ead907..ddb6b72 100644 @ stub IoCsqInsertIrp @ stub IoCsqRemoveIrp @ stub IoCsqRemoveNextIrp -diff --git a/include/Makefile.in b/include/Makefile.in -index e8d2379..633c09d 100644 ---- a/include/Makefile.in -+++ b/include/Makefile.in -@@ -244,6 +244,7 @@ SRCDIR_INCLUDES = \ - dde.rh \ - ddeml.h \ - ddk/compstui.h \ -+ ddk/csq.h \ - ddk/hidsdi.h \ - ddk/imm.h \ - ddk/mountmgr.h \ -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 +2.2.1